在实际的工业自动化设备应用中,各种通信是必不可少的,比如PN通讯、S7通信、MODBUS TCP通信、MODBUS通信等等;而使用最广的实属MODBUS通信了,毕竟MODBUS是一款公开、免费、通用的通信协议;可往往很多时候在工业现场进行设备调试时,偶尔会无故导致通信失败或根本通信不上,而此时借用一个调试工具来进行测试到底可能存在的因素在哪;其次,作为初学者而言,想学习MODBUS通信,在不增加通信仪表的情况下也可以借助调工具进行测试学习。
下面通过西门子200SMART PLC作为MODBUS主站,借助调试工具作从站进行通信测试。
通信任务如图1所示。
图1:数据交互示意图
硬件准备:
RS485转USB接头一个、RS485公头一个、电缆线2根,如图2所示;PC电脑一台、200SMART一台、通信网线一根。CPU本体端口引脚说明如图3所示。
图2:USB转串口硬件
图3:串口引脚说明
通信指令:西门子200SMART库指令自动集成MODBUS通讯库指令,根据不同的端口调用不同的库指令本示例会用到的2条主站指令,图4为主站初始化指令;图5为主站数据读写指令。
图4:主站初始化指令
图5:主站数据读写指令
实施步骤:
1.在SMART侧调用MODBUS主站库指令进行编程,如图6/7所示。
图6:主站数据读写程序
图7:主站数据读写程序
2.通信程序编写完成后需要分配286个V存储区用于内部运算,如图8所示。
图8:分配库存储器
3.下载程序后进行测试,需要把图2的硬件USB一端插在电脑端,RS485公头插在CPU本体串口上面;插接好后在电脑管理器中查看具体的COM口。
图9:端口号查看
4.打开Modsim32调试软件,在连接设置中选择与图9匹配的端口6,如图10所示;选择连接端口后会弹出协议参数设置对话框,如图11所示。需要注意,通信参数务必和初始化指令的参数一致才行。
图10:连接设置
图11:设置通信参数
5.在图10中的“文件”菜单中选择新建,device ID表示从站地址,设置为2。
第一组数据读取从站40001(VW300-VW308)开始的连续5个字的数据放在主站VW200开始的5个字中,在调试软件中分别在40001连续的5个字里面写数据,则在200SMART这边监控VW200-VW208的数据是一样的,如图12所示。
图12:数据交换
第二组数据主站I0.0连续8个位的状态写给从站Q0.0连续的8个位,当强制I0.2和I0.4时,从站0003 0005的状态1;如图13所示。
图13:数据交换
第三组读取从站QB6的数据存在主站VB210中,在调试软件中分别把Q6.0 Q6.1置位为1,在SMART侧VB210的数据为3,如图14所示。
图14:数据交换
第四组读取从站AIW18的数据存在主站VW212中,在调试软件中把30010设置为457的值后,在SMART侧VW212的数据为457,如图15所示。
图15:数据交换
-
plc
+关注
关注
5009文章
13205浏览量
462447 -
通信
+关注
关注
18文章
5985浏览量
135902 -
MODBUS
+关注
关注
28文章
1778浏览量
76872
原文标题:MODBUS通信异常?调试助手来帮忙
文章出处:【微信号:gkongbbs,微信公众号:工控论坛】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论