资源预览内容
第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
第9页 / 共12页
第10页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
www.plcworld.c nQE WORLDS7200 MODBUS RTU 通讯Modbus RTU主站指令库西门子在MicroAA/IN V4.0 SP5中正式推出Modbus RTU主站协i文库(西门子标准库折令。图1.西门子标准描令库(MicroA/VIN V4.0 SP5)注意:1. Modbus RTU主站描令库的功能是通过在用户程序中调用预先编好的程序功能块实现的.该库对Port 0和Port 1有效。该描令库将设置通信口工作在自由口模式厂2. Modbus RTU主站描令库使用了一兰用户中断功能,编其他段序时不能任用户程序中禁I上中断。3. Modbus RTU主站库对CPU的版本冇要求。CPU的版本必须为2.00或若2.01 (叩订货号为6ES72V-*23-0BA*) . 1.22版木之前(包IS 1.22版木)的S7-200 CPU不支持。使用Modbus RTU主站指令库可以读写Modbus RTU从站的數字量、楔拟垦I/O以及保持奇存器。要使用Modbus RTU主站折令库,须1術卜列步恋:1. 安装西门子标准指令库2. 按照要求编写用户程序调用Modubs RTU主站折令库Modbus RTU主站功能编程1. 调用Modbus RTU主站初始化和控制子程序使用SM0.0调用MBUS_CTRL完成主站的初始化并启动其功能控制:图2用SM0.0调用Modbus RTU主站初始化与控制了程序各参敌盘义如下:a. EN 使能: 必须保证毎一扫描周期都被使能(使用SM0.0)b. Mode 模式: 为1时.使能Modbus协议功能:为0时恢复为系统PPI协议c. Baud波特率:支持的通讯波特率为 1200. 2400. 4800. 9600. 19200, 38400 57600, 115200.d. Parity 校验:校验方式选择0 =无校验1=奇佼验2=假牧骏超时: 主站等待从站响应的时间.以空抄为敢位典型的设置值为1000唯抄(1秒).允许役置的范e. TimeoutBl为 1 - 32767.注意*这个值必须设置足筋大以保证从站有时间响应.f. Done 完成位:初始化完成.此位会H动置仁町以用该位启动MBUS.MSG读写操作(见例程g. Error切始化错误代码 只有在Done位为1时有效八0=无错课1=校验选抒ir法2=波特率选择非法3=模式选择II:法2. 调用Modbus RTU主站读写子程序MBUS_MSG.发送一个Modbus请求:图3.调用Modbus RTU I站读打fl :族参故盘义如下:使能:同一时刻只能有一个读写功能(即MBUS MSG)使能注念,建仪毎一个述石功能(叩MBUS_MSG)郁用1:一个MBUS_MSG倚令的Done充 成位来激活.以保证所有读写抬令循环进行(见例程。b. First读写请求位:每一个新的读写请求必须使用脉冲触发c. Slave从站地J:可选择的范刑1-247d. RW从站地ht:0 =读1注意:1. 开关型输出和保持奇存器支持渎和9功能2. 开关屋输入和懊拟呈输入只支持述功能e. Addr读写从站选择读丐的数据类型欣”地 00001至Oxxxx-开关駅输出址:www.plcworld.cnQE WORLD10001至1xxxx-开关歌输入30001至3xxxx-検拟敬输入40001至4xxxx保持奇存器f. Count数据个数通讯的数据个数(位或字的个数)注直 Modbus主站呗如丐的最大为120个字(是指毎一个MBUS_MSG描令)数据折g. DataPtr1.如果足读指令.读冋的数挥放到这个数据区中针:2.如果是写指令.要写岀的数据放到这个数据区中h. Done 完成位读写功能完成位借误代i. Error只有在Done位为1时.错洪代码才有效码:0 =无績误1 =响应校验需误2 =未用3 =接收超时(从站无响应)4 请求参数钳決(slave address, Modbus address, count, RW)5 = Modbus/自由口未便能6 = Modbus正在忙于其它请求7 =响应错误(响应不是请求的操作8 =响应CRC校骏和错误101 =从站不支持请求的功能102 =从站不支持数据地址103 =从站不支持此种数抵类空104 =从站设备故障105 =从站按爱了信息.但足响应被延迟106 =从站忙.拒绝了该信总107 =从站拒绝了信息108 =从站存储器奇糾锚谋常见的错误: 如果多个MBUS_MSG抬令同时使能会造成6号错误 从站delay参数i殳的时间过K会适成主站3号钳误 从站掉电或不运行.网络故障祁会适成主站3号错误3. 在CPU的V数抑区中为库描令分配存储区(Library Memory)Modbus Master描令库需要个284个字节的全站V ”储区。关于Modbus RTU主站协议库的补充说明此为式推出的标准库指令说明资料。在Modbus RTU Master协议和PPI协议之间切换:Modbus RTU Master协议折令库使通信1工作在门由口模代下.此时不能与Micro/WIN轶件通信.要在切换冋PPI 协议.可以:将MBUS-CTRL描令的Mode输入端设盘为逻辑将CPU的允许楔式选择开关置为STOP位豊Modbus RTU Master协议库的执行时间:Modbus RTU Master协议库的MBUS_CTRL指令不需要很长的执行时间。MBUS.nU要1.11 ms用于初始化.在 百续的每个扫描周期中只占用0.41 ms.S用MBUS_MSG子程序会加长处理时间。大部分时间都用于CRC校脸的计算.每读、写一个字的数ISttflKK 1.8 5 ms打描时间.敌据虽多的侑况下(读.写120字的数据).扫描时间大概会扩增加222 msa读操作的时间主要 消耗在接收数撫I-.:写操作的时间主要消耗在发送数据k.Modbus地址通常Modbus地址由5位数字组成.包插起始的敌抵类型代号.以及版面的偏移地址.Modbus Master协议库把标 准的Modbus地址映射为所谓Modbus功能号.读写从站的数据Modbus Master协议库支持如下地址:00001 - 09999:数字量输出(线圈)10001 - 19999:数字星输入(触点)3000139999:输入数撫寄“器(通常为模拟屋输入)4000149999:敌栩保持寄存器Modbus Master协议岸支持的功能为了支持上述Modbus地址的读吗.Modbus Master协议库需耍从站支持卜列功能:衣1.需耍从站支持的功能Modbus地址Modbus从站须支持的功能00001 - 09999数字i|功能1写功能5:写单输出点功能15:写多输岀点10001 19999飲字It 入功能2写卜30001 - 39999谀M4输入奇存器厂40001 - 49999读|功能3功虢6:写阻奇存!BE元功能16:吗多奇存器单兀Modbus地址和S7-200存背区地址的映射S7-200通过Modbus Master和Slave协议库通信时 Modbus地址和S7-200内倫区地址的映射关系都类似。Modbus保持寄存器地址映射举例:Modbus保持寄存器地址S7-200存储区字寻址S7-200存餡区字节寻址www.plcworld.cnEE WORLD40003 9A BCVW204 9A BCModbus数字眾地址映射举例:位地址(Oxxxx fll 1xxxx)数据总是以字节为单位打包读写。第一个字节中的最低有效位对应Modbus地址的起始地址。如F图所示=图4.数字虽地址映射举例常问何軀Modbus RTU主站席对CPU的版本是否育鼻求,为什么轴译例子程序时,会遇到4个?Modbus RTU主站库对CPU的版本确实冇要求.CPU的版木必须为2.00或者2.01(即订货号为6ES721 0BA) 1.22版木之前(包括1.22版木的S7-200 CPU不支持.Modbus指令库启动后,如何通过同一个通信瑞口进行CPU监控?Modbus描令库使用的是CPU的自由口通信功能,工作在自由口模式下的通讯口不能使用Micro/WIN的PPI编程 通信监控。如果通仃口都已经被占用可以芳电:加一个通信模块(如EM 277、CP 243-1. EM 241等)扩展出一个编程通信口中上自由口模式.可以将CPU上的模式开关从RUN拨到STOP:或者保持处干RUN状态.用程序停止 折今库的Modbus檢式(參见招今阵应用如何理解Modbus地址勾功能码的区别?Modbus地址与Modbus的功能码是两个层次的概念根据Modbus通信协议.Modbus数据的地址使用Oxxxx、1xxxx. 3xxxx和4xxxx的形式.分别表爪数字杀输出、 数字量输入、模拟呈输入等数撫地址。在便用S7-200的描令库时.Modbus数抵地址与S7-200的I/O和数撫存储 区地址间冇转宦的对应关系.有吃设备表明它支持Modbus RTU通信协议但也详细提供了读写敬据的详细通信軸格式其中包括如何捋定Modb us站的地址.斋要读写数据类型、长度等等。数据帧有特定字节描岀此折令读写的数据类里利地址.此字节的数据内 容即所谓功能码,如功能1指宦除取单个/多个数字虽输出点的值。支持Modbus协议的i殳篇或软件使用时用门fl接设垃或看到的应为足Modbus数拥地址Modbus地址所访问的数 据.是通过并种功能读写而来.功能码是Modbus地址的底层.如果Modbus通信的一方提供的所谓Modbus协议 只有功能码.则需要注慰解此功能号与Modbus地址间的对应关系。如何访问大于9999的保持寄存3S地址?通常Modbus协议的保持奇存器地址范悯在4000149999之间.对于丫数应用來说已经够了.但冇兰Modbus从 站把地址映射到保持奇存器区的地址超过9999的部分Modbus Master协议9999的保持青存器地址.地址范闹为400001 - 465536:只需在ill用MBUS.MSG 了程序时给Addr参数赋郴应的值即町.如41676&Modubs Master扩展地址模式仅支持保持奇存器区.不支持其他地址类型。CPU上的通信口 (PortO)支持Modbus RTU从站通信协议S7-20O CPU I:的通信口 PortO町以支持Modbus RTU协议.成为Modbus RTU从站.此功能是通过S7200的自由 口通信楔式实现因此可以通过无线数据电台等慢速通信设备传输。如果想( S7-200 CPU Z间、或者其他支捕Modbus RTU的i殳备使用Modbus RTU协议通佢.需耍山右S7200 CPU做Modbus主站S7-200 CPU做主站必须由用户自己用自由口模式按相关协议編程详侑请乡考S7200系统手册之相关节.嬰实现Modbus RTU通信.斋嬰STEP 7-Micro/WIN32 V3.2
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号