登录
首页 PLC论坛 台达PLC
回帖 发帖
正文

主题:还是台达PLC的通讯时序的问题

点击:3387 回复:7

我发过一个帖子求教各位大佬“轮询造成的通讯延迟如何减少?”,当时用了一个笨办法勉强实现了功能。但是依旧有20~30ms的延时。现在我想把这个延迟进一步缩小。
传送门:http://m.gkong.com/bbs/463077.ashx
我又看了台达的编程手册,发现里面有一些通讯状态的标志位。
于是我想在程序中直接调用标志位状态,编写轮询程序,但是试了几次没有成功。通讯会在第一次成功后卡死,或者程序在已经建立的轮询中跳出并进入另一个轮询时卡死。
所以我想了解这些特殊继电器的工作时序是怎样的?哪里有他们的时序图?
附件 1.jpg
附件 2.jpg
附件 3.jpg
以上是在台达应用技术手册上截取的特殊继电器M的地址和说明。
例如M1121特殊继电器,已知它是一个只读继电器,表示通讯数据发送等待。我理解为,它是在上电后,没用通讯前是一直置位的。但是当M1122送信要求置位后,它的状态是怎样的?数据在通讯线中流动的时候,它的状态是怎样的?通讯错误,逾时等待期间的状态?
例如M1127特殊继电器,已知它是通讯指令数据传送接收完毕标志,需要人工复位。但是在实际使用中,复位M1127指令和MOV D1050 D0同时使用的时候,D0接收不到D1050的数据(或者是上一次轮询的数据),必须先MOV,然后延时一小段时间后再复位M1127。中间这个延时最小能到多少毫秒呢?
这些都是毫秒级甚至微秒级的状态,根本监测不出来。台达的咨询就是个渣,电话里牛头不对马嘴。
呃,我找到时序图了,还没看……
贴上来大家看一下
附件 11.jpg
附件 12.jpg
最后修改:2019/2/18 11:37:19
19-02-18 10:48
波特率设置的是多少,这个高些也快些
19-02-18 11:09
时序很清楚啊.1123复位,然后下一轮就行吧.
19-02-18 15:22
我的想法是这样的。
用步进梯形图来写。
第一步判断是否在正在通讯,监测M1122、M1128、M1131三个位,同时为0时认为系统没有在通讯,进入下一步。
第二步判断是否有写操作。有则执行写操作,写完成后返回第一步。没有则进入下一步读操作。
第三步执行读操作。进行一次轮询后,返回第一步。
目前还没实现,SFC有各种限制,命令老是冲突。
19-02-19 09:23
我做过台达3个伺服的位置读取轮询,台达的手册还是很清楚的,功能也可以达到。
你说的卡死,我不是很理解,plc不会卡死,多半是你程序的下一次轮询的条件不对。
另外你的程序很厉害了,已经控制到0.02~0.03秒通讯控制延时,单次485通讯的时间也差不多这么长
19-02-19 09:45
看你原帖,大意是想停止轮询,优先控制启停,那轮询要做个开关,有启停时先关闭轮询,然后
set m1125
rst m1127
rst m1128
设置好启停语句
set m1122
通讯完成后再打开轮询
19-02-19 10:07
明天去研究一下
20-01-12 22:15
确实要进行错开操作,不然很容易通讯异常延时,我在汇川、台达都是这么结果
20-01-13 07:51

工控新闻

更多新闻资讯