MODBUS RTU属于串口通信,这个串口可能是:嵌入在S7-1200CPU本体上的通信板CB1241,也有可能是独立的通信模块CM1241,还有可能是支持 PROFINET 或 PROFIBUS 分布式 I/O 机架上ET200M(SP)上的PTP通信模块。
CM1241通信模块或CB1241通信板可以使用MODBUS (V2.2)/MODBUS(RTU) V3.0编程,而ET200上只能使用MODBUS(RTU) V3.0。因此首先要正确使用相应的版本。
对你而言,可能就是使用CPU机架上的串口,而不是分布式,因此指令版本不是问题。你又确认所使用的端口地址Port参数(硬件组态分配的)也就是所谓的硬件标识符正确。但是我要说的是,组态中硬件标识符,均是10进制数,切不可在其前添加16#把它错当16进制数。
第二,你谈到仿真。你说的仿真是个什么形式,使用PLCSIM仿真通信,还是指用MODSCAN32(主站)、MODSIM32(从站)来模拟终端与真实或者虚拟的PLC通信?
博途软件选件PLCSIM仿真器,可以仿真2台1200/1500PLC的通信,通信支持S7通信,TCP、 ISO on TCP,支持访问ET200上的DI/DO/AI/AO,但不支持智能IO通信。而你的MODBUS RTU通信,仿真器是不支持的。
可参看:PLCSIM使用入门
http://www.ad.siemens.com.cn/productportal/Prods/S7-1200_PLC_EASY_PLUS/08-Function/17-PLCSIM.html
若你有实物PLC,需要通过串口调试助手来测试自己的程序。务必要统一PLC与串口调试助手上的参数设置。请参考:ModSim32-ModScan32Modbus调试工具使用及配置说明
https://wenku.baidu.com/view/0ea403899b89680203d825ae.html
回答者:
如是
-
高级工程师  第11级
2020-02-17 14:25:58
本回答有22位钻石用户推荐
以下网友赞了您的问题:
填写您的评论...
提问者对于答案的评价:
暂无评论