登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:西门子1200自由口17组数据轮询做法

点击:922 回复:3

附件 208ef51876dd2255d4e2f8452a0ba9a.jpg
附件 2a43e7e5e0e7864d4fbf53293c64442.jpg
附件 719d2f0fec427646e77f7d8df0ed7aa.jpg
附件 9d8b3f27abb428db1902c562d9ca1f1.jpg
附件 a660f9f0f73510426578b7226de5e70.jpg
附件 f7772df94d91b354f35af0d7ef85248.jpg
一共有17组数据需要轮询发送,上图为目前设计的轮询,目前的状态有个问题,数据能正常接收,但是固定的周期后(大约4-5S),接收的数据,上一个数组会自动覆盖下一个数组,也就是指针出现了错位,一会又恢复正常。这种轮询有很大的弊端,但是目前还没有想到更好的办法,我的目的是,一组发送对应一组接受,比如说Send[1]对应Receive[1],依次对应下去,并且数据接收稳定。大家有什么好的办法吗??最好轮询是又快又稳定。
谢谢!
最后修改:2022/11/4 20:36:42
22-11-04 20:35
已经搞定了,在此结贴
22-11-09 17:02
怎么没有分享一样原因呢?
22-11-10 06:47
通讯要求:
硬件:西门子1214C+1241通讯单元    三菱Q系列主机+QJ71C24N通讯单元
控制要求:
模拟三菱MC协议1的报文格式,实现两个PLC485口通讯
实施办法:
采用西门子自由口协议,通过分析MC协议1的报文,给三菱主机发出报文。
通过串口调试工具监控,报文发送和返回格式正常
遇到的问题:
因为工艺要求,需要获取主机内的数据较多,且区域比较分散,所以采用了17组报文轮询发送,但实际PLC接受过来的报文时好时坏。
解决方案:
通过测试,发现报文发送的间隔时间太短,读取的内存数量比较多,导致收到的报文出现紊乱,通过减少读取数量和加大间隔时间,实现了报文的稳定获取。
22-11-10 14:29

工控新闻

更多新闻资讯