以前使用PLC200的时候用过一个MODBUS主站程序(用的port0),现在用smart使用一个SBCM01块儿,程序还是一样(系统块儿中也添加了SBCM01),用电脑监控报文时,却一条也收不到,可是PLC上RX/TX的指示灯却是偶尔闪以下,这样说明有数据传输啊,可是为什么监控不到任何报文呢?
是不是因为我少设置了什么东西了,导致PLC没用SBCM01这个块儿发送呢?
问题补充:
前提:使用西门子200SMARTPLC,另外附加了一个SBCM01的模块,编程软件为STEP7MicroWINSMART,modbus主站编程使用的程序块儿为MBUS_CTRL和MBUS_MSG。
说明下,如图1,我先用网线连接的PLC与电脑(图2),用于编程和下载,然后用一根485转USB的线连接了电脑和PLC的SBCM01模块儿,连接方式为图3。
顺便说一句,有位好心人回答说“通讯参数设置prot0口SMB30中,改为prot1口的SMB130中设置”,可是port口设置在哪儿我都没找到,麻烦告知。
另外,如果谁有用SBCM01模块儿实现的modbus485的主站从站程序,可以的话给我借鉴下,谢谢各位。
图片说明:
最佳答案
端口定义可以用程序赋值定义!
sbcm01模块组态参数的分配
程序库官网有
ModbusRTU通信相关指令使用的视频教程链接如下:
ModbusRTU通信从站编程S7-200SMARTModbusRTU通信(1):概述及从站编程——跟我学http://www.ad.siemens.com.cn/service/elearning/cn/Course.ASpx?CourseID=1078
S7-200SMARTModbusRTU通信(1):概述及从站编程——跟我做http://www.ad.siemens.com.cn/service/elearning/cn/Course.aspx?CourseID=1079
主站编程S7-200SMARTModbusRTU通信(2):主站编程——跟我学http://www.ad.siemens.com.cn/service/elearning/cn/Course.aspx?CourseID=1080
S7-200SMARTModbusRTU通信(2):主站编程——跟我做http://www.ad.siemens.com.cn/service/elearning/cn/Course.aspx?CourseID=1081
下载测试S7-200SMARTModbusRTU通信(3):下载测试——跟我学http://www.ad.siemens.com.cn/service/elearning/cn/Course.aspx?CourseID=1082
S7-200SMARTModbusRTU通信(3):下载测试——跟我做http://www.ad.siemens.com.cn/service/elearning/cn/Course.aspx?CourseID=1083
西门子热线工程师内部学习讲座-ModbusRTU部分:
S7-200SMARTPLCModbusRTU(西门子热线工程师内部学习讲座)
详细的参考:参考,西门子S7-200SMARTPLUSV1.8技术参考,链接:https://support.industry.siemens.com/cs/document/76488152
里的modbus通讯章节,历程也有。
提问者对于答案的评价:
感谢“WWCWWC”和“左传”两位的回答,最后看了“左传”发的技术资料里的通信部分,终于知道自己问题出在哪儿了,很弱智的问题,MBUS_CTRL这个模块在200中没有port这个输入,在200smart中加入了这个输入,所以我用曾经200编的程序,编译下载任何问题没有,只是系统默认我选择了port0口,改用新模块就完全没问题了。
专家置评
已阅,最佳答案正确