pc机与变频器的串行通信研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PC机与变频器的串行通信研究 导语:?本文就带有rs-485通信接口的日普变频器作为研究对象,设计了变频器网络监控的方案,实现了对变频器各项参数的在线监视和控制。以下就围绕如何在c++builder编程环境下,利用api函数编写计算机与日普变频器(rp3200)之间的串行通信程序进行阐述。 引言 计算机串行通信是计算机与控制设备(如变频器)进行数据传送的一种通信方式,也是实现工业自动控制经常用到的通信模式。每一种通信方式都严格约定了与其对应的通信协议。要确保计算机与变频器之间能正常通信,就必须遵照变频器通信协议编写通信程序。本文就带有rs-485通信接口的日普变频器作为研究对象,设计了变频器网络监控的方案,实现了对变频器各项参数的在线监视和控制。以下就围绕如何在c++builder编程环境下,利用api函数编写计算机与日普变频器(rp3200)之间的串行通信程序进行阐述。 串行通信 串行通信在工业系统控制的范畴中一直占据着极其重要的地位,串行端口(rs-232)是计算机上的标准配置,常用于连接调制解调器来传输数据,在计算机的硬件设备管理器中可以看到,定义为com1、com2等。常用的串行通信方式有两种,分别是rs-232和rs-485,本文以rs-485方式为例进行介绍。 使用c++builderapi函数编写通信程序 c++builder本身不提供单独的串行通信组件,这不是说它不能使用这项功能,而是必须使用一些windowsapi函数来达到这个目的。windowsapi是由操作系统提供的函数,这些函数可以为程序设计人员提供相当多的执行功能,就连操作系统本身也是由这些api函数所组成,由于已经将win32api均声明进去了,因此在中使用api时只要直接使用即可。使用时必须以api函数的定义使用,才可以得到正确的结果,尤其参数的定义更是重要,使用时必须注意和定义相符,否则执行结果将会出错,以下就先说明这些必备的函数。 c++builder中与串行通信相关的api函数 c++builder本身并不提供单独的串行通信组件,而是使用一些windowsapi的函数来达到此目的。这些函数是由操作系统所提供,可以为程序设计人员提供相当多的执行功能。api中与串行通信相关的函数约有20个,以下对经常使用的函数作以讨论。 打开串行端口 hcomm=createfile(comno,generic_read|generic_write, 0,null,open_existing,1,0) 函数参数定义如下: hcomm:createfile()函数的返回值,程序使用此返回值进行相关的串行端口操作。 comno:定义串行端口号,为com1、com2等。 generic_read|generic_write:对串行端口的读/写操作。 0:是否共享串行端口,通常不会将串行端口与其它程序共享,因此设为0,否则为1。 null:函数的返回值hcomm是否可被子程序继承,此处设为不可继承。 open_existing:打开端口的方式,串行端口是一种设备,必须指定为open_existing方式。 1:使用同步或异步方式传输数据,变频器为异步方式,因此设为1。 0:由于使用串行端口编程,设为0。 得到串行端口状态 getcommstate(hcomm,dcb) 函数参数定义如下: hcomm:createfile()函数的返回值。 dcb:串行端口控制块地址,负责对串行端口参数进行设置,具体参数如下: dcb.baudrate:设置串行端口的波特率,有19200kb/s、9600kb/s、4800kb/s几种,一般为:9600kb/s。 dcb.bytesize:设置串行端口的数据位数,有5、6、7、8几种,变频器数据位数为8。 dcb.parity:设置串行端口的校验位检查,有none、even、odd几种,设为none。 dcb.stopbits:设置串行端口的停止位数,有1、1.5、2几种,变频器的停止位数为1。 设置串行端口状态 setcommstate(hcomm,dcb) 函数参数定义与getcommstate()函数相同。 向串行端口写数据 writefile(hcomm,senddata,bs,lrc,null) 函数参数定义如下: hcomm:createfile()函数的返回值。 senddata:写数据的地址。 bs:写入数据的字节数。 lrc:被写入的数据地址。 null:写入数据的同步检查,串行端口采用同步通信时可以设为null。 清除串行端口的错误或将串行端口当前的数据状态送至输入缓冲区 clearcommerror(hcomm,dwerr

文档评论(0)

xina171127 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档