通信示例

本章节提供2个关于通信管理和全局触发相关的示例。

文本-协议解析的通信示例

示例需求:VM接收外部TCP服务端发送的字符串数据,能解析{字符串,整型数据}格式的数据,其他格式数据无法解析。解析成功时,将解析后的整型数据赋值给流程1直线查找模块中的运行参数边缘阈值,并触发方案中的流程1运行。

根据以上需求,可提炼的方案要求如下:

  • 需要新建1个流程,且流程名称为流程1,流程中至少需包含图像源和直线查找模块。

  • 通信管理的设备列表中需创建一个TCP客户端,用于接收外部TCP服务端的数据。

  • 通信管理的接收事件需新建一个文本-协议解析的事件,对TCP客户端接收的数据通过接收事件进行数据解析,且只能解析{字符串,整型数据}格式的数据。

  • 全局触发需添加一个事件触发,用于触发流程执行,并将整型数据赋能给直线查找模块对应的参数。

  1. 新建流程1,涉及的模块和顺序如下图所示。
    图 1 新建流程
  2. 通过通信管理的设备管理添加设备。
    1. 协议类型选择TCP客户端。
    2. 目标IP目标端口填写TCP服务端的IP地址和端口号。
    3. 在设备列表选中TCP客户端并启用。
    图 2 通信设备设置
  3. 切换到通信管理的接收事件,新增文本-协议解析的接收事件。
  4. 完成接收事件的相关参数设置。
    1. 绑定设备选择步骤2中新增的TCP客户端。
    2. 根据需解析的数据格式要求,将分隔符设置为“,”。
    3. 输出列表添加2个参数,第一个参数类型选择string,第二个参数类型选择int。
    图 3 接收事件设置
  5. 进入全局触发页签,添加触发事件并完成相关参数设置。
    1. 在事件触发页面添加一个触发事件。
    2. 触发事件选择“0 文本-协议解析”。
    3. 点击在内容查看页签中将out2的目标输出订阅到流程1中直线查找模块的边缘阈值参数。参见如下视频。
    4. 触发命令类型选择执行流程。
    5. 触发配置选择流程1。
    6. 触发字符订阅“0 文本-协议解析”中的out1。
    图 4 全局触发设置

完成以上操作后,当TCP服务端发送的数据为“ABC,2”时,接收事件中的out1参数赋值为ABC,out2参数赋值为2,且直线查找模块的边缘阈值参数被赋值为2,流程1自动运行1次。

字节匹配-协议组装的通信示例

示例需求:VM接收外部ModBus设备(使用TCP客户端形式通信)发送的4位字节数据,前两位解析为整数型数据,后两位解析为字符类数据。解析成功时,触发方案中所有流程运行。

根据以上需求,可提炼的方案要求如下:

  • 需要新建至少1个流程。

  • 通信管理的设备列表中需创建一个ModBus通信并新建一个含2个寄存器个数的寄存器地址,用于接收外部ModBus设备的数据。

  • 通信管理的接收事件需新建一个字节匹配-协议组装的事件,对ModBus设备发送的数据通过接收事件进行数据解析,且将数据的前两位字节解析为整数型数据,后两位解析为字符类数据。

  • 全局触发需添加一个事件触发,用于触发所有流程执行。

  1. 完成方案中各流程的搭建。
    说明:

    该示例对方案流程搭建无要求,可根据需求自行搭建。

  2. 通过通信管理的设备管理添加设备。
    1. 协议类型选择ModBus通信。
    2. 通信方式选择TcpClient。
    3. 目标IP目标端口填写ModBus设备的IP地址和端口号。
    4. 添加1个寄存器地址,其中协议类型选择RTU,Int类型选择16bit,寄存器个数设置为2。
    5. 在设备列表选中ModBus通信设备并启用。
    图 5 通信设备设置
  3. 切换到通信管理的接收事件,新增字节匹配-协议组装的接收事件。
  4. 完成接收事件中解析配置部分的参数设置。
    1. 绑定设备选择步骤2中新增的ModBus设备,绑定地址选择步骤2中添加的寄存器地址。
    2. 规则匹配逻辑设置为与。
    3. 规则列表添加2个参数并完成规则设置。
      • 第一个参数in1:字节起止位置设置为0~1,类型选择int,顺序选择ABCD,比较规则配置选择不比较。

      • 第二个参数in2:字节起止位置设置为2~3,类型选择string,顺序选择ABCD,比较规则配置选择不比较。

    图 6 接收事件的解析配置
  5. 组装配置的组装列表处添加2个参数并完成设置。
    • 第一个参数out1:类型选择int,内容订阅规则列表的in1。

    • 第二个参数out2:类型选择string,内容订阅规则列表的in2。

    图 7 接收事件的组装配置
  6. 进入全局触发页签,添加触发事件并完成相关参数设置。
    1. 在事件触发页面添加一个触发事件。
    2. 触发事件选择“2 字节匹配-协议组装”。
    3. 触发命令类型选择执行流程。
    4. 触发配置选择全流程。
    5. 触发字符订阅“2 字节匹配-协议组装”中的out2。
    图 8 全局触发设置
  7. 回到通信管理中的ModBus通信设备,双击打开已创建的寄存器地址,启用轮询使能

完成以上操作后,当ModBus通信发送的16进制数据为“00 5C 41 44”时,接收事件中的out1参数赋值为92,out2参数赋值为AD,所有流程自动执行一次。