登录
首页 串口通信 串口通信
回帖 发帖
正文

主题:请教关于轮询时间和超时时间的设置问题

点击:1670 回复:13

PLC与5个仪表主从modbus rs485通讯,5个仪表波特率都是9600;
程序里我设置了500ms的blink脉冲,再通过计数器计数,计数等于0~4时分别于5个仪表通讯;
每个仪表读取的字长度均为16,那么功能块超时时间如何设置?
还有blink脉冲的时间的如何设置更为合理?
21-11-10 13:15
轮询通讯两种方式: 1)通过blink脉冲,然后计数器计数依次与仪表通讯; 2)上一功能块完成后利用done输出作为下一个execute的执行命令。
关于1)我出过的问题是:我试验的2个仪表,blink脉冲500ms,blink 输出1时与仪表1通讯,0时与仪表2通讯,但有一个仪表在read功能块执行和不执行时(就是执行命令execute为0和1时)显示数字是不同的,有差异;所以出现了问题1) blink脉冲时间和功能块timeout如何设定更为合理?
关于2)如果执行过程中有一个仪表超时了出现了问题2),一个仪表通讯超时会不会影响整条通讯线路?那么这时超时时间如何设置更为合理?
最后修改:2021/11/10 13:35:42
21-11-10 13:24
之前做的1个PLC带5个仪表做无协议通讯,以0.1秒的延时往上加,一直到通讯正常为止。
附件 微信截图_20211110145427.jpg
21-11-10 14:56
我觉得参考一下组态软件做主站和多个从站通信轮询的机制就很好呢
21-11-10 19:51

引用 YXBK 在 2021/11/10 14:56:33 发言【内容省略】

我现在2个仪表都出现问题了,用常规的功能块read读好了,想省点事用scanner 第二个始终扫描不出来
21-11-11 08:05

引用 guanyumou 在 2021/11/10 19:51:35 发言【内容省略】

版主有没具体的截图,或者麻烦说具体点可以吗?
21-11-11 08:06
附件 微信截图_20211111081541.jpg
附件 微信截图_20211111081617.jpg
21-11-11 08:16
Y版,那你这相当于就是给每个通讯功能块指定个时间,彼此不受通讯是否成功的影响,到时间了直接切换到下一个,T0,T1,T2依次摸索着来啊?
21-11-11 08:33
做个延时,没有done的时候,断开前方读取,强行执行下一个读取,依次循环!
有done,直接进行下一个读取!
21-11-11 08:39
关版是让你去看看他的教学视频
21-11-11 09:24

上一页下一页

工控新闻

更多新闻资讯