是刘六六哦
级别: 探索解密
精华主题: 0
发帖数量: 51 个
工控威望: 101 点
下载积分: 834 分
在线时间: 43(小时)
注册时间: 2020-07-05
最后登录: 2025-12-04
查看是刘六六哦的 主题 / 回贴
楼主  发表于: 9小时前
西门子PLC通过modbustcp通讯,做轮询怎样减少轮询时间,现在的方案是 写参数(地址,长度,功能码)-执行-等待完成信号-结束 ,这样下来至少需要4个扫描周期(前提是在下个周期就拿到Done信号),有40组参数,这样下来至少需要40*4个扫描周期,算50ms一个周期就需要8s才能轮完一圈,时间太长,现在放到中断里面(10ms),这样下来轮询一次也将近2s,外部负载随着就变大了,扫描周期会将近100ms,各位有没有什么好的方法
是刘六六哦
级别: 探索解密
精华主题: 0
发帖数量: 51 个
工控威望: 101 点
下载积分: 834 分
在线时间: 43(小时)
注册时间: 2020-07-05
最后登录: 2025-12-04
查看是刘六六哦的 主题 / 回贴
1楼  发表于: 6小时前
引用
引用第2楼不小心遇见你于2025-12-04 12:30发表的  :
你确定要这么久吗?我用485 处理36个也比你这个快

我是只有一台设备,要读写40组数据,流程是 先写参数(地址,长度,功能码)--req--等待Done信号--结束   总共四个部分,用的1200,程序框架差不多就是20~30ms的扫描周期,因为地址不连续,只能一组一组的进行读写