用cpu上集成的串口 和下面modbus rtu的仪表进行通讯时。 CTRL和MSG块的done一直是1,error一直是0 。不管串口是否连接通讯线,都没有变化。连接通讯线时也没数据读到。测试了两套PLC都是一样的,PLC都是新的不存在损坏。用modscan单独测试仪表也能读到数据。请教是怎么回事!
钻石用户推荐最佳答案
新PLC,没有错误代码。done一直为1,这就说明你MSG指令没有调用激活才会出现done一直为1。当MSG指令在工作是done位是为零,当收到MSG工作完成done才会从0变为1。你做通讯轮训读取仪表除了双方通讯格式要设定一直,接线正确,还要按照正确格式去编写程序,当然还有硬件一定是没问题。现在就是重点检查轮训程序,用上一个MSG的done位的变化来激活下一条MSG指令,一般都是用上一条Done为的上升沿去激活一个中间继电器后再用这个中间继电器去激活下一条MSG指令,不要直接用上一条MSG的done位来做下一条MSG指令激活条件,这样做如果逻辑处理不好程序会出问题。
200 smart modbus通讯
http://www.ad.siemens.com.cn/productportal/prods/s7-200-smart-portal/200smarttop/smartsms/020.html
Modbus RTU 主站:
http://www.ad.siemens.com.cn/productportal/prods/s7-200-smart-portal/200smarttop/communication/serial_port/modbus/Master/Master.htm
提问者对于答案的评价:
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc343706.html