Skip to content

2.7 设备应用层 Machine

luosheng edited this page Jun 7, 2023 · 1 revision

设备表示层表示的是一台需要通讯的设备,属于Modbus.Net自身对于IUtility的通用封装。

它是Modbus.Net里的高层API。

内部实现

Modbus.Net里的设备表示层分为IMachineProperty和IMachineMethod。

  • IMachineProperty: 设备的属性。

  • AddressUnit:通讯的地址单元。

    AddressUnit是用类的方式表示一个个的通讯地址,这样可以把只有位置的单一地址信息扩展成使用者更好理解的有具体意义的通讯地址信息。您可以在任何时候改变它。

  • AddressFormater: 地址格式化。

    AddressFormater把通讯地址单元中的地址变为字符串。您可以在任何时候改变它。

  • AddressCombiner: 地址组合器。

    AddressCombiner把离散的地址按照开发者自行定义的方式组合成连续地址,这样可以减少单次读写时候的通讯次数。

  • Endian: 数据的端格式。

    BaseMachine同样需要引用端格式,在读写的时候按照正确的方式处理字节数组中的数据。

  • IMachineMethod:设备方法组的接口。

  • IMachineMethodData: 读写数据的过程接口。继承自IMachineMethod。

    读数据的时候,首先组合通讯地址,得到一条或多条连续地址,然后把地址变成字符串和读取个数,向Utility发送相关信息。

    写数据的时候,首先要先读一次数据,然后把需要写入的数据转换成字节数组之后替换相应的位置,再向Utility发送写入的相关信息。

  • 使用者只能看到IMachineProperty,但是调用方法组中的方法时可以调用IMachineProperty中的 GetMachineMethods方法。

内部图6

外部接口

BaseMachine已经实现了IMachineMethodData,包括GetDatas/GetDatasAsync和SetDatas/SetDatasAsync。

外部图6

Home

Clone this wiki locally