恭喜,你发布的帖子
发布于 2023-07-01 23:19:32
33楼
比如某个仪表,走232C串口通信/或者485/TCP但是只允许一个连接的,程序有诺干(若干)个地方跟这个仪表需要通信,但是受限于通信连接只能同时一个通信
--------------------------------------------------------------------------------------------------------------
这句话的问题很多:
1)前提是只有一个仪表
2)程序中有多处通信需求与上述这一个仪表通信
3)只允许一个链接
4)涉及得通信是用户程序级别的异步通信
那么楼主想要的是什么呢?
程序跑到某段,需要这个特定仪表的某个参数参与计算或控制,就要发起一次通信去读或写这个参数。
这是什么?这是通信与逻辑耦合了,而我们编程是要做到通信与逻辑去耦合。通信与逻辑程序是异步执行的,完全可以把通信作为一种后台的服务,与逻辑程序之间就是数据的交互,而不是事件逻辑响应。
因此,楼主所谓的智能通信,我觉得其核心就是事件响应做通信,这是把通信与控制耦合了,以此类推。
版主果然不一般,把我没能完整表达的意思基本上表达出来了!假设
1,PLC走485跟若干仪表通信,有时候读有时候写,有时候同一个仪表,有时候不同仪表。但是因为是485,一次只能完成一个工作,又因为是异步通信,可能经历诺干个周期。我想做一个功能块来负责通信,这个块完全平行调用,每个需要的地方,只需要输入要读写的地址,剩下的完全智能轮询。那么对仪表的通信,是不是将变得很简单?
2,有一个变频器控制若干个轴,根据实际需要在几个轴之间加上接触器来回切换。轴有启动和停止两个命令,当启动命令关闭后轴保持运行,直至收到停止命令,或者其他轴有启动要求,然后斜坡停止,抱闸,切换到另外一个轴,如果同时有请求,那么先运行的有优先权!常规的做法是一个地方读写变频器的控制字,状态字。然后每个轴根据这些去做逻辑控制,切换!我的目标是做成一个功能块,还是平行调用。每个使用的地方,只管负责请求和停止,给定,剩下的后台智能处理。
但是上述两种,都需要有一个在这个FB的实例之间穿梭的变量,直到当前的运行状态,或者有更好的办法我还没发现?
请填写推广理由:
分享
只看
楼主