Skip to content

2.3 传输连接层 Connector

luosheng edited this page Jun 7, 2023 · 3 revisions

传输连接层表示协议通过怎样的传输方式进行传输,对应Modbus.Net中的IConnector。

内部调用

IConnector有一个标识了连接关键字的字段ConnectionToken,这个关键字用来区分不同的连接。

public abstract string ConnectionToken { get; }

BaseConnector为完全抽象类,继承IConnector,具体如何操作完全由继承类完成。
目前框架中已经实现了TcpConnector和ComConnector。

内部图2

外部接口

Connect和ConnectAsync用于建立连接,Disconnect用于断开连接。IProtocalLinker会向IConnector发送连接请求。

只有一个具体的通讯协议才可以指定调用哪种Connector的Connect进行连接。

SendMsg和SendMsgAsync用于向目标设备发送数据,并接收目标设备的响应。

SendMsgWithoutReturn和SendMsgWithoutReturnAsync用于向目标设备发送数据,并且这次发送目标设备不会有任何响应。

外部图2

输入输出参数类型

IConnector有两个参数类型,分别代表输入类型和输出类型,默认都是byte[]。
对于非线性传输的通讯,需要使用到结构化的数据,此时可以改变输入和输出数据的类型。

Modbus.Net.Opc是已经开放的代码中修改了这两个类型的样例,使用包含的标签数组的结构化数据作为输入类型,以及具有多个返回参数的输出类型。

Home

Clone this wiki locally