我们这里以 TCP 通讯为例,视觉作为 TCP 服务端,与视觉交互的第三方设备作为 TCP 客户端。当 TCP 客户端连接上视觉服务端后,客户端发送字符串 T1,视觉执行流程 1;
客户端发送字符串 T2,视觉执行流程 2。
这样的需求我们可以通过全局触发功能实现。这里介绍两种方法,方法一为更通用的方
法,其接收的数据类型可以是 int,float,string,byte 等类型;方法二为简单方法,但
接收的数据类型只能是 string 类型。
方法一:
第一步: 打开 VM 后,在快捷菜单中点击通信按钮
在打开通信界面后,点击设备列表后的加号,在协议类型中选择 TCP 服务端,设置需要的
本机 IP 和本机端口,点击创建。
第二步:点击接收事件,进入接收事件窗口,点击事件列表后的加号,选择字节匹配处理
方式,选择协议组装事件类型,点击创建。
将绑定设备选为需要进行通信的设备的名称,这里选择 TCP 服务端,点击规则列表下的加号,根据需要添加相应的规则。比如这里接收字符串 T1,就将类型设为 string,比较规则设置为等号。
需要注意的是,在规则列表中目前只支持与逻辑,也就是说必须全部满足该事件下的规则才能触发该事件。这里由于要求通讯接收到 T1 时执行流程 1,接收到 T2 时执行流程 2,属于或的逻辑,因此需要使用两个接收事件。第一个事件接收 T1,第二个事件接收 T2。
第三步:在快捷菜单中点击全局触发按钮。
点击事件触发序号下的加号,根据项目情况添加触发事件。
第四步:为了看到效果,分别建立两个一样的流程。
当执行该流程后给客户端发送流程已执行,打开网络调试助手,实际效果如下。
需要注意的是:这种使用接收事件进行触发的方法属于通用型方法,接收的数据类型可以是 int,float,string,byte 类型。
但是,如果接收的数据类型为 string 类型,还有一种更简单的方法。
方法二:
第一步:与方法一的第一步相同,创建 TCP 服务端
第二步:借助全局触发中的字符串触发。假如现在希望客户端给服务端发送 T3,执行流程
3,可以按下图所示进行配置。
第三步:添加流程 3,客户端发送 T3,执行效果如下