恭喜,你发布的帖子
发布于 2021-08-17 16:39:45
27楼
组织上PLC侧程序的发送任务可以和一个异步缓冲发送队列LXMT交互,本次发送任务来了就将所有发送数据先丢到队尾等到轮到这个任务再把LXMT队头信息拷贝到SBuffer再发送,这样慢是慢点但不至于丢掉任何发送请求,即使突然下电了过会再上电也有合理处理措施;PLC侧接收任务可以和一个异步接收队列LRCV交互,接收到RBuffer通讯接收区数据但来不及处理先搬运缓存到LRCV的队尾,等轮到这个接收信息再处理,这样不至于丢掉任何接收数据;LXMT/LRCV和物理串行端口的发送接收地址缓冲区SBuffer/RBuffer交互。
这样形成收发二级缓存可能可靠点,不过LXMT/LRCV空间可能会很大并且它的每个元素都是一个不同长度的消息,不过用间接寻址也能做;两个缓存的长度和延时时间由PLC和驱动器通讯的字节长度以及最大异步延时等情况而定。
@芳季 芳工你看这样处理行不行。
请填写推广理由:
分享
只看
楼主