海康Visionmaster-通讯管理:使用 Modbus TCP 通讯 协议与流程交互

使用 Modbus TCP 通讯协议与视觉通讯,当地址为 0000 的保持型寄存器(4x 寄存器)变为 1 时,触发视觉流程执行一次,同时视觉将地址为 0000 的寄存器复位(也即写为 0),视觉流程执行完成后,将结果数据:特征匹配状态、特征匹配点 X、特征匹配点Y、特征角度分别写入到地址为 0001,0002,0004,0006 的保持型寄存器中。
在这里插入图片描述
PLC 通过用户自定义协议通讯。这个问题主要涉及 4 个知识点。

  1. 全局模块中通讯设备的创建
  2. 通讯接收事件与全局触发的关系
  3. 通讯发送事件的使用
  4. 发送整数和浮点数到 Modbus 寄存器
    首先第一步:创建通讯设备,在工具栏中点通讯管理图标,进入通讯管理界面,图标如下
    图黄色箭头所示:
    在这里插入图片描述
    进入通讯管理界面后,创建一个 Modbus 通讯设备如下图所示:
    在这里插入图片描述
    注意目标 IP,填的是 PLC 的 IP 地址,在本例中由于没有连接实际的 PLC,是以 Modbus仿真设备来模拟,所以 IP 地址填 127.0.0.1,目标端口要填 502,因为 Modbus TCP 协议默认端口就是 502。
    第二步添加触发流程运行一次的寄存器地址,注意轮询使能要打开,设置如下图所示:
    在这里插入图片描述
    这里要注意地址的数据类型,寄存器个数,发送顺序。发送顺序和 PLC 类型有关,有的 PLC 使用大端模式,有的 PLC 使用小端模式(所谓大端模式,小端模式也就是数据的高低字节顺序不同,大端是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,小端模式恰恰相反)。添加特征匹配模块状态状态寄存器地址,由于这个是写入寄存器,轮询不必打开,如下图
    所示:
    在这里插入图片描述
    添加特征匹配坐标 X 存放地址,由于这个是写入寄存器,轮询不必打开,如下图所示:
    在这里插入图片描述
    添加特征匹配坐标 Y 存放地址,由于这个是写入寄存器,轮询不必打开,如下图所示:
    在这里插入图片描述
    添加特征匹配角度存放地址,由于这个是写入寄存器,轮询不必打开,如下图所示:
    在这里插入图片描述
    第三步,定义接收事件,如下图所示:
    在这里插入图片描述
    在接收事件中,绑定地址下拉选择之前添加的触发寄存器地址。
    在规则列表中,定义规则,如上图所示。
    第四步,配置全局触发,在工具栏中点全局触发图标,如下图黄色箭头所示图标:
    在这里插入图片描述
    点击黄色箭头所示图标进入全局触发设置,选择事件触发 Tab 页,在触发事件中下拉选择上一步配置好的接收事件,触发命令类型选择执行流程,触发配置选择流程 1,触发字符无需填写。
    第五步,定义发送事件,如下图所示:
    在这里插入图片描述
    发送事件中配置好需要发送的数据,上图中配置好了触发数据(注意选择正确的绑定地址,绑定地址在前面添加通讯设备时已经创建)接着配置特征匹配状态,如下图所示:
    在这里插入图片描述
    配置特征点 X 坐标数据,如下图所示:
    在这里插入图片描述
    配置特征点 Y 坐标数据,如下图所示:
    在这里插入图片描述
    配置发送角度,如下图所示:
    在这里插入图片描述
    第六步,在流程中配置发送数据模块,在流程编辑页面添加数据发送模块,如下图所示
    在这里插入图片描述
    如图中所示的那样,这里配置了 5 个数据发送模块,之所以要配置 5 个数据发送模块,是因为单个数据发送模块,发送非字符串类型且每一项数据类型又不相同是做不到的,其中复位寄存器,匹配状态数据类型是整数类型,而匹配点 X,匹配点 Y,匹配角度是浮点数类型,因此,这里只能用 5 个数据发送模块来实现。以上图中,发送数据 1 为例,需要发送 0 到寄存器 0000,所以配置如下图所示:
    在这里插入图片描述
    由于输出数据,订阅的值不可以是常量,所以这里选择订阅一个全局变量,这个全局变量的值为 0。
    其他 4 个发送数据模块的配置,也同样配置,主要是发送事件中下来选择正确的地址即可。匹配状态的数据发送配置如下图所示:
    在这里插入图片描述
    坐标 X 的数据发送配置,坐标 Y 的数据发送,如下图所示:
    在这里插入图片描述
    匹配坐标 Y 的数据发送,如下图所示:
    在这里插入图片描述
    匹配角度的数据发送,如下图所示:
    在这里插入图片描述
    至此为止,所有配置全部完成了,其实需要配置的步骤并不多,这里之所以把详细的每一步都贴图出来,目的就是为了让阅读本文的初级用户,按照本文的操作步骤一步一步来,也能解决该问题。

http://www.niftyadmin.cn/n/5170154.html

相关文章

Git应用(1)

一、Git Git(读音为/gɪt/。中文 饭桶 )是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 了解更多可到GIT官网:Git - Downloads GIT一般工作流程如下: 1.从远程仓库中克隆 Git 资源作为本地…

GPT-4 Turbo 发布 | 大模型训练的新时代:超算互联网的调度与调优

★OpenAI;ChatGPT;Sam Altman;Assistance API;GPT4 Turbo;DALL-E 3;多模态交互;算力调度;算力调优;大模型训练;GH200;snowflake;AGI;A…

ElementUI的el-upload上传组件与表单一起提交遇到的各种问题以及解决办法(超详细,每个步骤都有详细解读)

背景: 使用ruoyi-vue进行2次开发,需要实现表单与文件上传一起提交,并且文件上传有4个,且文件校验很复杂,因此ruoyi-vue集成的上传组件FileUpload调试几天后发现真不太适用,最终选择element UI原生组件el-upload(FileUpload也是基于el-upload实现的),要实现表单与文件同…

模型预处理的ToTensor和Normalize

模型预处理的ToTensor和Normalize flyfish import torch import numpy as np from torchvision import transformsmean (0.485, 0.456, 0.406) std (0.229, 0.224, 0.225)# data0 np.random.randint(0,255,size [4,5,3],dtypeuint8) # data0 data0.astype(np.float64) da…

快速修复因相机断电导致视频文件打不开的问题

3-5 本文主要解决因相机突然断电导致拍摄的视频文件打不开的问题。 在日常工作中,有时候需要使用相机拍摄视频,比如现在有不少短视频拍摄的需求,如果因电池突然断电的原因,导致拍出来的视频播放不了,这时候就容易出大…

Python 编码最全梳理

为什么要写这篇文章呢?这里就要提到某一天,工作的时候,突然发现自己在编码方面,一窍不通。实在惭愧 字符编码是计算机技术的基石,对于程序员来说尤其重要,字符编码的知识是必须要懂的 编码入门知识 ASCI…

oracle中分组函数LISTAGG

前言 Oracle中的 GROUP_CONCAT 函数用于将多行数据合并为一行,并以指定的分隔符分隔各个值。在Oracle中,没有直接的GROUP_CONCAT函数,但可以使用 LISTAGG 函数来实现类似的功能。 如何使用 1、使用SELECT语句选择需要合并的列,…

CSS 移动端 1px(线条/边框) 不同机型上显示粗细不同,解决办法

由于不同的手机有不同的像素密度导致的。如果移动显示屏的分辨率始终是普通屏幕的2倍&#xff0c;1px的边框在devicePixelRatio2的移动显示屏下会显示成2px&#xff0c;所以在高清瓶下看着1px总是感觉变胖了 <!DOCTYPE html> <html lang"en"> <head&g…