1. 实验准备:

  1. 智能相机:本次实验使用的相机型号为:IS8200M,支持目前最新的InSight6.13版本固件,所以相机的固件也升级到了最新的6.01.03,这里建议固件版本最好使用最新的。注意,5.3以下的版本不支持Modbus TCP通讯,所以如果最高支持不到5.3的相机,请选择其他通讯方式。
  2. 软件(InSight)版本: 6.13。 官网下载链接:点击下载
  3. Modbus Poll 测试软件,网上一堆,请自行搜索下载。

2. 相机配置:

  1. 硬件连接部分可以查询我的博客:点击 这里不做说明。
  2. 在电子表格视图下,点击菜单 “传感器–网络设置”:选择工业协议,如图。
  3. 保存作业,并按照提示重启相机。

3. 相机的控制/状态字:


上图中红色部分为输入输出的IO信号:
VisionControl 是相机的输入,总共32个bit,每个bit分别控制相机触发、离线等操作。
VisionStatus 是相机的输出,总共32个bit,每个bit分别输出相机的准备和完成信号等。
具体的通讯位见下图:***红圈中的点位是经常用到的

4. 测试相机的控制 / 状态:

VisionControl 控制相机对应的区:WriteSingleCoil ,地址从0开始,共32个bit。
VisionStatus 相机状态对应的区:ReadDiscreteInputs,地址从100000开始,共32个bit。

  1. 在电子表格中插入Count工具,用于观察相机是否触发,相机在线。
  2. 打开Modbus Poll测试软件,并选择Modbus TCP连接方式,IP为相机的IP,端口502。
  3. 测试触发:点击菜单栏的Functions,选择 “05_WriteSingleCoil”,将Address设为1(TriggerEnabled),Value值修改为On,点击Send。然后将Address设为2(Trigger),Value值修改为On,点击Send。然后观察电子表格中Count值是否增加,相机每触发一次,Count函数+1。
  4. 查看相机状态:选择 “ReadDiscreteInputs[1x]” 区,可以看到Address 1(TriggerReady)已经置1了。
    可以用同样的方式,测试Offline信号(05_WriteSingleCoil 区中 Address 7置On或者Off,观察ReadDiscreteInputs[1x] 区 Address 7 的状态)。

5. 相机的输入数据 / 输出数据:

区地址:

数据地址:

  1. 输入数据对应的区地址:16_WriteMultiRegisters,地址从402002开始。
  2. 输出数据对应的区地址:03_ReadHoldingRegisters,地址从407006开始。

6. 相机发送数据工具编辑:

  1. 在电子表格中将A0触发器类型改为“网络”,并按照以下流程插入函数:
  2. 插入” FormatOutputBuffer”函数,引用要发送的值,选择类型,这里添加3个16位整数。
  3. 插入"WriteResultsBuffer",事件引用 A0,Buffer 引用 FormatOutputBuffer,协议选择"Modbus TCP 服务器"。

7. 相机接收数据工具编辑:

  1. 插入” FormatInputBuffer”函数,定义接收的数据类型,这里定义4个16位整数。
  2. 插入” ReadUserDataBuffer”函数,事件引用 A0,协议选择”ModBus TCP”
  3. 因为有4个输入,所以分别插入4个 ” GetBufferData” 函数,Buffer 全部引用” ReadUserDataBuffer”,Index 分别设0、1、2、3 。

8. 最终测试:

为了方便观察,这里新建了4个mbp,左边是相机的输入,右边是相机的输出。

测试触发 / 相机离线

测试相机输入数据:

测试相机发送数据:

9. 相机操作流程:

a. 触发拍照: TriggerEnabled 置 1,Trigger 置 1
b. 切换 Job_ID: SetOffline 置 1,写入 16 位整数的 ID 号至 Command,ExecuteCommand置 1,SetOffline 置 0
c. 写入数据到相机: 写入数据到 UserData,SetUserData 置 1,Trigger 置 1
d. 读取相机结果: BufferResultEnabled 置 1,Trigger 置 1,等 ResultsValid 出现下降沿时读取 InspectionResults。

以上相机Job和Modbus Poll的WorkSpace工程,见百度云盘,30天有效期限。

 下载链接:https://pan.baidu.com/s/1Hj5lBrJTBy2YAxk-BUlc5g 提取码:erdn

康耐视InSight相机实现ModBusTCP通讯详解相关推荐

  1. delphi 串口通信发送_STM32第五章串口通讯详解

    点击上方"果果小师弟",选择"置顶/星标公众号"干货福利,第一时间送达! 串口通信是串行通信里面的异步方式.串行通信是相对于并行通信来说的.串口是一个事实存在的 ...

  2. 【相机标定与三维重建原理及实现】学习笔记1——相机模型数学推导详解

    目录 前言 一.小孔成像模型 二.坐标系的变换 1.世界坐标系到相机坐标系的变换(刚体变换)[xw^→xc^\boldsymbol {\hat{x_{w}}}\rightarrow \boldsymb ...

  3. 康耐视InSight相机的TCP\IP通讯设置以及字符命令触发

    1. TCP\IP通讯 智能相机既可以作为TCP\IP服务器存在,又可以作为TCP\IP客户端,这里分别介绍如何在电子表格模式下,设置InSight相机的客户端和服务器下的收发数据. 2. 客户端 创 ...

  4. 康耐视InSight相机实现视觉引导机械手视觉校准九点标定

    1. 校准 1. 非线性校准的作用:主要是为了消除镜头的径向畸变.以及相机非垂直安装引起的透视变形: 2. 校准工具:校正板&标定板(这里只介绍前2种,因为InSight相机不支持DataMa ...

  5. STM32—串口通讯详解

    串口通讯目录 物理层 协议层 USART简介 开发板与上位机的连接 代码讲解: 一.初始化结构体 二.NVIC配置中断优先级 三.USART配置函数讲解 四.传输数据的函数: 1.发送一个字节 2.发 ...

  6. 康耐视InSight相机的连接与仿真的使用

    1. 连接相机至InSight网络: 相机供电/连接PC 智能相机的供电分两种:不同系列的视觉系统供电方式有差异,具体请查阅手册 ① POE电源供电 ② 开关电源供电 在InSight中配置相机IP地 ...

  7. STM32_USART 串口通讯详解

    对51单片机有了解的都知道51单片机的串口通讯工作原理,我们单片机使用的电平TTL电平,为了使我们的的单片机与PC进行通信,就需要一个电平转换芯片,把TTL电平转换为USB电平(使用的USB接口,如果 ...

  8. OpenCV学习笔记与代码示例(三):张氏标定法标定相机原理及函数详解

    目录 1.张氏标定法基本原理 1.1相机针孔模型 1.2单应矩阵H 1.3求相机内参 1.4求相机外参 1.5优化参数 1.6总结 2.OpenCV实现 2.1特征点检测与靶标坐标初始化 2.2相机标 ...

  9. basler相机的触发线是那两脚_机器视觉相机类型以及接口标准详解

    随着成像技术的进步,相机及其接口的类型不断演变,以满足大量应用的需求.对于检测和分析至关重要的半导体,电子,生物技术,装配和制造行业中的机器视觉应用而言,使用最好的相机系统来完成手头的任务对于获得最佳 ...

最新文章

  1. sim中do文件/memory(readmemb命令符)/移位编写
  2. 一些常见去除恶意软件的东东
  3. toString()与new String ()用法区别
  4. linux blender 中文乱码,Blender2.7.8中文显示框框乱码该怎么办?
  5. Sql server 数据库备份、恢复等
  6. [Eclipse]GEF入门系列(序)
  7. OxyPlot.SkiaSharp中文显示乱码的问题
  8. NoHttp使用简析——Android网络请求框架(二)
  9. java webdriver page object_Selenium2(java)页面对象模型(Page Object) 八
  10. php simplexml 删除,请问一下PHP SimpleXML怎么-删除xpath节点
  11. 链表:链表中倒数第k个结点(2)
  12. python 录制网易云登陆_小白都能看懂:Python爬取网易云音乐下载教程
  13. Web前端开发神器-WebStorm
  14. 一款超漂亮的简历生成器,金三银四的你一定用得上
  15. linux source命令路径,source(.)命令
  16. 苹果数据线不能充电_去掉耳机和充电器,以后数据线苹果也不会送了
  17. dubbo线程池exhausted
  18. Codevs2491玉蟾宫
  19. Hadoop垃圾回收站与YARN日志聚合
  20. JDK JRE JVM的区别

热门文章

  1. Runtime.availableProcessors()
  2. 远程视频监控该如何组网
  3. 嵌入式系统工程师知识面的宽度、深度、高度
  4. windows10局域网内打印机共享
  5. 香港科大与哈佛大学医学院、史丹福大学医学院和伦敦大学学院成立 「神经退行性疾病研究中心」...
  6. Cisco Packet Tracer 思科中交换机端口安全配置与风暴控制
  7. s:hidden name=id value=id/s:hidden
  8. nodejs+vue+mysql的高校二手跳蚤市场交易网站express
  9. 31套VTK3D图像体绘制/VTK光线投射法/VTK三维重建程序源码
  10. 【深度之眼cs231n第七期】笔记(四)