|
封装设备FB并不难。就找了以前老版本程序中用UDT最少的,改写省事,简单做个FB,生成5个温控器。温控器内部功能没写完,只是验证这样的模式和轮询,测试OK。
每个温控器只要填进去自己的从站号,引入公共资源就行。下图中圈红框的是和公共资源有关的,其它都是设备自己的内部功能。
设备都要使用plc资源,有的独占,有的共享。Modbus设备就属于需要共享485端口资源的设备。其它通信资源一般也有共享,可以参考这种模式。
设备FB是和UDT脱钩了,但我还是打算在FB接口和hmi界面之间使用UDT连接,便于多路复用。这样就有应用选择,FB可以标准化通用,但在处理和HMI视觉之间的关系上,可以选择用或不用专门抽象界面实体的UDT。
可以给每个设备标准FB匹配一个界面交互标准UDT,这个UDT就和这个FB的接口衔接对应。一种FB一种UDT,成对儿的,从底层到视觉交互。
DB块中:能用就尽量用UDT
非标准FB或FC块中:可以用UDT
标准FB或FC块中:能不用就不用UDT,或者说干脆就不用。
上面做的走ModbusRTU通信的West温控器的FB块,里面没用UDT。它的主要特点是:可以做到使用上的平行调用,非常简单。
用的时候,直接拖拽几个实例。管脚填写各自的从站号,12345,并连接到485模块初始化时候绑定的那个MB-Master背景数据块就可以了。
无需额外搞多个从站之间的轮询控制。这些实例在各自内部会协调依次轮询,而且通信质量不好的(3次错误)淘汰,修复了可召回。根据内部工作模式变化,提供按钮可见性反馈,及内部Pretune停止后的回馈以自动关闭界面按钮。提供每个通信任务成败的历史数据。写数据成功了就不再写,除非数据再变化。因为没有UDT牵绊,复制到哪就可以用。
|
|