一种变流器ModBus通信程序设计方案(董志然).docVIP

一种变流器ModBus通信程序设计方案(董志然).doc

  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文档。上传文档
查看更多
一种变流器ModBus通信程序设计方案(董志然)

北京科诺伟业科技有限公司 技术报告(董志然2012-4-13) 一种变流器ModBus通信程序设计方案 内容及目的 本技术报告提出了一种采用使用DSP实现变流器ModBus通信协议的方法。使用有限的DSP时间及空间资源,完成了变流器机侧控制器与主控PLC之间的Modbus协议的RTU模式数据传输。在现有RS232及RS485接口的基础上,完成了协议底层以及应用层功能,并成功应用于风力机模拟控制实验平台。 实现原理及思路 Modbus是一种主从方式的通信协议,即仅主设备可以初始化通信过程,从设备需要根据主设备提供的数据信息做出适当的响应。为减小通信开销,采用RTU的传输模式。标准的Modbus使用RS232C、RS422或者RS485串行接口,分析其通信流程,可见其可工作方式是半双工,本处使用RS232C通信接口实现半双工的通信方式。 变流器的控制器DSP2407工作过程中需要完成大量的数据运算及处理,故可利用的剩余的时间与空间资源非常有限,本处采用主循环与中断协调工作的方式完成通信数据帧的校验、解析与包装。 软硬件关键技术及控制流程 Modbus协议通信方式及数据格式 Modbus通信协议采用主从方式,在同一个网络中有一个主设备及最多达255台从设备,从设备的地址编码为 1~255。主设备地址码为0,通信时采用广播方式,可以将消息发送给所有的从设备,从设备收到主设备发送来的地址码后与自己的地址码进行比较,如果一致时则与主设备进行通信。Modbus通信以帧为单位,且定义了这些帧的意义,控制器只要按照协议解释其接收和发送的帧数据,就能与在同一网络中采用同样协议的控制器实现通信。常用的Modbus通信规约有两种:一种是Modbus ASCII格式;一种是Modbus RTU格式。一般来说,数据量少而且主要是文本的通信采用Modbus ASCII规约;数据量大而且是二进制数值的通信多采用Modbus RTU规约。本处正符合Modbus RTU格式特点,故选用第二种。数据格式如表3.1所示。 起始标志 设备地址 功能代码 数据 CRC校验 结束 T1-T2-T3-T4 8Bit 8Bit n个8Bit 16Bit T1-T2-T3-T4 表3.1 RTU数据格式 使用RTU模式,消息发送至少要以3.5个字符时间的停顿间隔开始。在程序中可以通过定时器完成。传输的第一个域是设备地址。网络设备不断侦测网络总线,包括停顿间隔时间,当第一个域(地址域)接收到,每个设备都进行解码以判断是否发往自己的。在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定了消息的结束。一个新的消息可在此停顿后开始。?  整个消息帧必须作为一连续的流转输。如果在帧完成之前有超过3.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。同样地,如果一个新消息在小于3.5个字符时间内接着前个消息开始,接收的设备将认为它是前一消息的延续。这将导致一个错误,因为在最后的CRC域的值不可能是正确的。 地址码可以根据需要自行设置。 功能码是通讯信息帧的第二个字节。ModBus通讯规约可定义的功能码范围为1~127,其中为用户预留的是65~72、100~110。根据实际需要,实现了以下功能码功能。 #define SCI_READ_HLD_REG 0x03 // word,read N hold_reg #define SCI_READ_HLD_REG 0x03 // word,read N hold_reg #define SCI_READ_AI 0x04 // word,read N input_reg #define SCI_SET_1_HLD_REG 0x06 // word,write 1 hold_reg #define SCI_SET_N_HLD_REG 0x10 // word,write N hold_reg #define SCI_MASK_HLD_REG 0x16 // word,mask write N hold_reg #define

文档评论(0)

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

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

1亿VIP精品文档

相关文档