当前位置: 首页 > news >正文

海康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.lryc.cn/news/225581.html

相关文章:

  • assimp中如何判断矩阵是否是单位矩阵
  • 大数据Doris(二十):数据导入(Broker Load)介绍
  • Docker快速安装kafka
  • ChatGPT是什么?黑客试图淹没其服务
  • 【Java 进阶篇】Java Web 开发之 Listener 篇:ServletContextListener 使用详解
  • [C/C++]数据结构 链表OJ题:环形链表(如何判断链表是否有环)
  • c#流程控制
  • 基于SSM的学生二手书籍交易平台的设计与实现
  • xcode-工程设置
  • Milvus Cloud——LLM Agent 现阶段出现的问题
  • 百度智能云千帆大模型平台再升级,SDK版本开源发布!
  • 按键精灵中的数据类型转换
  • Golang Gorm 连接数据库
  • [C++随笔录] 红黑树
  • C 和 C++ 可变参数介绍
  • 【Git】gui图形化界面的使用、ssh协议以及idea集成Git
  • C语言之文件操作(详解版)
  • 解决mac 下 docker-compose 不是命令
  • test_sizeof
  • 100+ Windows运行命令大全,装B高手必备
  • iOS 设置图标和upload包时显示错误
  • 软件工程的舞台上,《人月神话》的美学纷飞
  • C现代方法(第19章)笔记——程序设计
  • Elasticsearch 作为 GenAI 缓存层
  • FPGA与STM32_FSMC总线通信实验
  • maven配置自定义下载路径,以及阿里云下载镜像
  • 01.单一职责原则
  • RT-Thread上部署TinyMaix推理框架,使MCU赋予AI能力
  • 设计模式 -- 策略模式(Strategy Pattern)
  • Spring Boot 集成 ElasticSearch