欢迎来到西门子工业支持中心网站!
欢迎来到西门子工业支持中心网站!
悬赏:10西币 | 解决时间:2021-10-18 17:40
产品版区:
SIMATIC S7-200
彭之焕
彭之焕 - 新生  第1级
我在做一台仪表与200的自由口通信,要求首先200通过XMT发出询问指令,然后仪表返回一段测量数据,实际编程中我把接收指令RCV放在字符发送中断9号事件里面,SMW90设置为0,结束符为16#0A,然后我还在中断程序里面加入了一个自加一的程序,可实际运行结果是每次触发XMT指令,中断程序也确实运行了,自加一指令也能正常运行,但是接收缓冲区死活接收不到数据,我又换串口调试助手来测试,在主程序的初始化程序里面加入了RCV指令,程序一运行就执行接收指令,结果我用串口助手发了跟仪表一样的测试数据,200又可以正常接收数据了,我现在就非常懵,不知道怎么回事,难道200的自由口通信必须先接收数据然后才能发送数据吗,可是如果200不向仪表发出询问指令,仪表也没法返回数据啊,陷入死胡同了,求各位高玩指点指点
问题补充:
我又重新检查了一下,发现在发送完成中断程序里面,无论是用SM0.0 EU RCV还是SM0.1 RCV,或者是LPS SMB87==16#20这些方法,RCV指令始终无法触发,只有在主程序里面通过SM0.1才能触发,这个我感觉真的很奇怪,不知道为什么
最佳答案
回答者:
WWCWWC
回答时间:2021-10-15 10:39
提问者对于答案的评价:
谢谢解答,最后我想了个办法,在串口上并了一根线借助串口助手监测发送的信息,发现VB100的XMT指令内容压根没发出去,目前正在折腾新问题
最佳答案作者回复:
单独与调试软件连接,发送指令XMT正常?
如果正常,那么,那个从站的通讯连接是否有问题?就是通讯极性连接问题。
plc侧是3+、8-。
专家置评
已阅,最佳答案正确
置评专家:西门子自动化产品支持 2021-10-23 10:47
肯定是先发才能收,再看看报文写的是不是正确。
先用 XMT 发送,利用发送完成中断,进入接收。然后接收完中断再次XMT发送,这样的机制做自由口通讯程序。
如何监视 S7-200 和串行设备之间的自由口通信
https://support.industry.siemens.com/cs/document/26726155
演示系统:SIMATIC S7-200 视频教程---3 就是一个自由口通讯的示例
https://support.industry.siemens.com/cs/document/30839030
自由口通信常见问题
http://www.ad.siemens.com.cn/productportal/Prods/s7-200-portal/MicroPower2013/Smart%20SMS/018.html
中断程序中的接收指令前多了个 屁
见图 相当于只启动了一次接收指令
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!