PLC的Modbus通信.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文档。上传文档
查看更多
第 PAGE 6 页 共 NUMPAGES 14 页 PLC与串口的MODBUS通信 1 需求 1 程序开始,赋值VB10=1,等待执行步进电机阶段1。 2 VB10=1,等待执行步进电机阶段1;VB10=2,等待执行步进电机阶段2;VB10=3,等待执行步进电机阶段3。 2 当(VB10=1且I0.1)或者(VB10=2且I0.2)或者(VB10=3且I0.3),主站首先向从站发送控制命令帧,从站收到以后,返回给主站一应答帧表明数据已经收到。主站在接收到该应答帧后开始计时,10s后读从站执行状态信息,判断从站该阶段的动作是否完成,如果完成了进入下一阶段的等待,如果未完成,5s后再次读取从站执行状态信息判断阶段动作是否完成。 3 步进电机阶段动作能循环执行。 4 紧急情况下(I0.5=1),可以通过主站向从站写入命令使从站程序初始化。 5 当主站读取到的状态信息出错时,可以通过I/O输出指示出来(Q0.1指示步进电机阶段1读取状态信息出错;Q0.2指示步进电机阶段2读取状态信息出错;Q0.3指示步进电机阶段3读取状态信息出错),在错误解除以后,可以通过I/O输入(I0.0)将错误指示消除,并使程序复位。 2 方案 MODBUS协议是一种主从协议,只允许一个主设备,设计中以PLC作为主站MSP430开发板作为从站。如图1示。 图1 PLC与MSP430连接图 为方便起见,首先以PC机作为MODBUS从站,在PC机上利用串口调试助手来接收和发送数据,PLC通过PPI电缆连接到串口,采用PROT0通讯口作为MODBUS通讯口。 3 具体实现: 3.1 MODBUS数据帧介绍 MODBUS广泛应用于工业通讯领域,它规定了通信双方的通信格式,只要双方都使用该规定就可以解析出正确的通信内容。 在此,首先介绍一下MODBUS通信的数据帧格式,以3号功能码以及16号功能码为例,3号功能码是读保持寄存器的值,16号功能码是写保持寄存器的值。 1、读取保持寄存器 当MODBUS主站需要读取指定地址处数据时,首先向从站发送一个读命令帧,所发送命令帧格式如表1。 表1 读命令主站发送命令帧格式 设备地址 功能码 地址H 地址L 数据量H 数据量L CRC H CRC L Add0 3H HoldStart DataNum CRC高位 CRC低位 数据帧说明如下表: 表2 读命令主站发送命令帧说明 设备地址 要读数据的从站地址 功能码 03H代表读取多个保持寄存器 地址H 所读取数据的地址以两个字节表示 地址L 数据量H 所读取数据的个数以两个字节表示(注:此处说的数据量以字为单位) 数据量L CRC H CRC校验码在数据帧中以两个字节表示,主要用于检验数据传输过程中是否出错 CRC L 例: 需要读取2号站从第4个寄存器开始的3个寄存器,MODBUS主站发送的数据帧为: 02 03 00 04 00 03 44 39 从站在接收到主站的读命令以后,会发送一个返回命令帧,返回的命令帧格式如表3。 表3 读命令从站返回命令帧格式 设备地址 功能码 数据量 数据1 数据N CRC H CRC L Add0 3H 返回数据的字节数N Data(1-N) CRC高位 CRC低位 数据帧说明如下表: 表4 读命令从站返回命令帧说明 设备地址 返回数据的从站地址 功能码 03H代表该数据帧是应答读取多个保持寄存器 数据量 返回数据的字节个数(注:以字节为单位) 数据 所返回的数据(数据个数与数据量相同) CRC H CRC校验码在数据帧中以两个字节表示,主要用于检验应答帧在传输过程中是否出错 CRC L 例: 对于主站的读命令帧,2号站如果第4个寄存器开始的3个寄存器里面的值分别为: 31,32H,33H,34H,35H,36H 则应答帧应该是: 02 03 06 31 32 33 34 35 36 D1 AC 对于发送的命令帧与应答帧之间有如下关系: 1:两个数据帧的设备地址相同。 2:两个数据帧的功能码相同。 3:返回的数据量N=2ⅹDataNum 如果从站在接收到数据以后,认为接收到的主站发送过来的数据是错误的,会返回一个异常帧给主站,告诉主站,从站接收到的数据是错误的。异常帧的数据格式如表5,数据帧不再具体说明。 表5 异常帧格式 设备地址 功能码 错误信息 CRC H CRC L Add0 83H 一个字节的错误信息 CRC高位 CRC低位 例: 2号站在接收到主站发送的命令以后,判断得出该命令是错误的,发送回一个异常帧: 02 83 01 70 F0 错误信息可以根据不同的错误类型而不同。 2、写保持寄存器 当MODBUS主站需要向从站指定地址写入数据时,会发送一个数据帧,数据帧格式如表6。 表6 写命令主站发送数据帧格式 设备地址 功能码 地址

文档评论(0)

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

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

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档