恭喜,你发布的帖子
发布于 2022-11-04 08:52:39
2楼
品牌通信任务表
我拿到一个工厂品牌的温控器之后,会仔细看厂家提供的Modbus通信手册,并根据手册中的地址信息,列出一个通信任务清单。
这个列表清单是个任务全集。它包含未来我可能,在任何工作模式下,对这个温控器进行任何操作,所需的读写任务配置的全部信息。
本帖案例中的这个管脚参数,是个UDT类型的数组。这个数组包含了很多单个任务。每个modbus任务,是读是写,开始地址,读写长度,都在UDT中做了数值预设。每个任务有自己的数据区。
为什么要采用这样一个参数形式呢?因为任何modbus设备,不管是变频器或者现场的任何仪表,他们在应用上都要由程序员形成并面对这样一个通信任务表。
设备FB的界面功能解析为底层IO操作,或者底层IO信息还原为FB的界面功能,都要根据这个任务表中的具体任务配置来实施。包括FB内部的工艺关联,都要联系到这个任务表。
所以把这样一个具有共性的通信任务清单,单独封装起来,便于日后的调整和扩展。
比如,一开始某个任务不被需要,或忘记了,后期添加即可。
或者遇到另一种modbus设备,复制一下,把任务队列的内容改一下就可以了。
总之,这个参数就是定义了具体的IO空间范围。
Modbus协议是个标准化的基准空间。在这个基准空间中,由程序员规划出的一个具体特定的小空间范围的描述,就对应了一个现实中落地的功能集合,也就是正在被你使用的,这个具体设备的功能愿景。
这世上无尽的Modbus设备,每一个设备都对应了属于自己的一个独特的小空间。所有这些小空间,合并在一起,形成的大空间,它的基本共性就叫Modbus协议。
每一个具体的,被特征数值填写了的品牌通信任务表,就是一个独特的个例对象。
请填写推广理由:
分享
只看
楼主