资讯动态

IN-Sight智能相机双向TCP/IP通讯配置指南:从原理到实战排坑

发布时间:2026/9/18 18:06:45 来源:尧图企业网站定制
做机器视觉集成的人大概率都被同一个需求折磨过IN-Sight智能相机跑完检测结果要传给PLC或者上位机同时现场又希望能在远端切换型号、下发检测阈值、触发拍照。早期我习惯用IO加串口可项目一多就发现要么线缆一大堆要么通讯速度跟不上来回改参数更是折磨。后来大部分项目我都统一走TCP/IP通讯尤其是用IN-Sight智能相机的时候一根网线全搞定双向通讯比想象中稳得多。这篇就把我这几年的实际配置经验整理出来手把手带你把IN-Sight的双向TCP/IP通讯跑通顺便分享几个我用得顺手的网络调试助手。需要说明的是不同固件版本的In-Sight Explorer界面细节会有些差异但通讯逻辑是通用的。我会把思路拆开讲再给具体的配置步骤、协议格式和排坑方法不管你手头是做视觉集成的工程师、设备维护人员还是刚入门想搞懂TCP/IP通讯的初学者都能跟着做下来。1. IN-Sight智能相机双向TCP/IP通讯到底解决什么问题1.1 为什么我放弃了IO和串口早期做视觉检测最常见的做法是相机输出一个信号给PLCPLC再根据信号决定放行还是剔除。IO方式确实简单但能传的信息太少了。比如一个定位项目相机算了半天得到X坐标、Y坐标、角度、得分IO口只能告诉你“OK还是NG”坐标怎么办要么走串口要么再增加IO口做二进制编码工程量一下就上去了。串口倒是能传坐标可RS232距离短、抗干扰差RS485虽然距离远一点但速度上不去而且一对多通信时的轮询逻辑写起来也麻烦。更重要的是IO和串口本质上都是“单向喊话”上位机能收到结果却很难方便地远程改参数。你想象一下产线换一个产品型号检测阈值、ROI区域、曝光时间全要变如果这些参数只能到现场用电脑连相机改整个换线时间就会拖得很长。TCP/IP通讯就不一样。它把视觉系统接入了一个双向对话通道上位机可以随时发命令给相机比如触发采集、切换程序、修改阈值、请求当前状态相机检测完之后也可以按照设定好的格式把坐标、角度、判定结果、条码、图片路径全部主动推给上位机。这种一来一回的交互方式才是工业现场真正需要的。1.2 什么时候优先选TCP/IP场景对比与选型建议我整理过一个简单的对比表基本能覆盖大部分选型场景通讯方式传输内容距离速度灵活性主要问题IO开关量、单字节短高差信息量少接线多RS232/RS485字符串、小数据包中低中抗干扰一般组网麻烦Modbus TCP寄存器、位状态远较高中交互逻辑固定适合PLC原生TCP/IP任意数据包、字符串远高高需要自己定义协议联调费力这里多说一句有些人会觉得“Modbus TCP也是TCP/IP为什么还要单独讲原生TCP/IP”确实IN-Sight相机支持Modbus TCP而且如果你只是传几个bool、几个数字Modbus TCP甚至更方便很多PLC直接读写寄存器就行。但Modbus的缺点是数据组织方式偏“寄存器化”想传一串带格式的字符串、或者做多个命令的应答就会很别扭。所以我的建议是和PLC做简单状态交互用Modbus TCP和上位机做复杂数据交互、参数下发、远程控制用原生TCP/IP。双向TCP/IP通讯是能覆盖Modbus场景的反过来做却很难受。这篇教程讲的是更通用的原生TCP/IP方案你用这个思路也可以推广到其他品牌相机。2. 动手前先别急着连硬件、软件与网络规划2.1 需要准备的软硬件清单做TCP/IP通讯联调没必要一上来搞一堆高精尖设备我列一个基础清单你照着备齐就行IN-Sight系列智能相机一台确认相机固件版本支持TCP/IP通信大部分千兆网口型号都支持老型号也能通过固件升级支持一台电脑装好和相机固件匹配的In-Sight Explorer软件网线一根最好用带屏蔽层的工业以太网线现场干扰重的话普通网线容易丢包工业以太网交换机一台如果只是相机和电脑点对点调试可以不用交换机网线直连网络调试助手软件用于模拟上位机或PLC发送命令、查看返回数据推荐工具我会在2.3节详细讲如果要对通讯数据进行抓包分析再准备一个Wireshark。注意一个细节电脑的IP地址和相机IP地址必须处于同一个网段否则网络调试助手连不上相机。这个看似基础的问题我见过不少同事栽过跟头后面故障排查里会重点讲。2.2 IP地址规划先把网络分好区工业现场的IP规划非常重要。我见过有人图省事把相机IP设成和办公网一样的地址段结果跟打印机、门禁控制器全冲突了最后排查到崩溃。做视觉项目时我一般习惯把整套视觉系统单独划分一个网段比如设备IP地址说明IN-Sight相机192.168.1.100固定IP不要用DHCP上位机电脑192.168.1.50固定IP方便联调PLC以太网口192.168.1.10如果PLC也接入同一交换机网关192.168.1.1留给路由器或网关联用子网掩码统一用255.255.255.0。如果现场有多个相机就按顺序往下编比如192.168.1.100、192.168.1.101、192.168.1.102并在命名里写清楚哪个IP对应哪个工位避免后期维护时一头雾水。相机IP的设置方法不算复杂打开In-Sight Explorer连接相机后进入“设置”或“网络”标签页找到网络配置选项将IP分配方式改成“静态IP”填入规划好的IP、子网掩码和网关。改完以后一般需要重启相机才能生效老版本软件还会提示你是否将设置写入相机。注意有些型号的In-Sight相机在首次开机时默认使用DHCP如果现场没有DHCP服务器相机连不上网必须先在本地直连状态下把IP改成静态再接入工业网络。2.3 网络调试助手选型这三款我常年备用很多人一搜“网络调试助手”出来的第一个结果往往是某个网站挂出来的“网络调试助手v5.0.3”然后下载完发现满屏弹窗甚至夹带了不少流氓软件。实际上“网络调试助手”是一大类工具的统称有版本代号的只是其中某个版本比较流行并不代表它是标准答案。我这几年用下来觉得顺手、也比较靠谱的有三款工具名称适用场景我的使用感受NetAssistTCPUDP调试工具日常TCP/UDP收发测试界面直接支持客户端和服务端常用功能都有适合快速验证SocketTool复杂协议模拟、多连接并发测试可以同时维护多个连接适合模拟多台客户端同时连接相机的场景Wireshark抓包分析、协议排查联调出问题时的“终极武器”能看清楚每一帧数据到底发没发、内容是什么从官网或可信的软件分发平台下载这是我一直坚持的原则。另外建议先在电脑上用网络调试助手自测开一个TCP Server再用另一个客户端去连它互发几条消息没问题说明本机网络软件环境是正常的这样再去找相机联调心里就有底。3. IN-Sight端双向TCP/IP通讯配置全流程3.1 配置相机IP和通信模式假设你已经把相机用网线连到交换机电脑也接在同一台交换机上。打开In-Sight Explorer软件会自动发现网段内的相机。如果发现不了多半是相机IP和电脑IP不在同一网段或者电脑的防火墙把相机发现协议拦掉了。这时可以先临时把电脑IP改成自动获取或者用相机厂商提供的IP搜索工具去扫描。成功连接相机后先进入网络配置界面把IP固定下来。固定IP后就不要再频繁改动了因为上位机、PLC、MES系统都可能写死了这个地址。接下来找到通讯设置。不同固件版本里面这个入口的名字略有不同常见的有“通信”、“通讯”、“数据输出”、“I/O和通讯”等但核心就两件事确认以太网通讯协议里启用了TCP/IP相关选项决定相机的角色作为“TCP服务器”等待别人连接还是作为“TCP客户端”主动连出去。这个决定要根据项目场景来定。一般建议如果现场有一个固定的上位机PC或触摸屏集中监控就让IN-Sight做TCP服务器上位机主动连相机如果是多台相机将结果汇总到一个采集站可以让相机做TCP客户端主动把结果推过去。两种模式我都做过下面把配置步骤分别展开。3.2 相机做TCP服务器接收命令并返回结果相机做TCP服务器的好处是连接关系简单上位机随时可以断开、重连不影响相机自身运行。配置思路是先给相机开一个监听端口然后在上位机或网络调试助手里作为TCP Client去连接这个IP和端口。具体步骤大致如下在In-Sight Explorer的通讯设置里选择“原生TCP/IP”或“TCP服务器”模式设置一个监听端口我习惯用5000或8000避开常见端口减少冲突概率设定接收区把从TCP连接收到的数据映射到相机内部的一个字符变量或内存区域用于接收外部命令设定发送区用检测结果、状态信息填充发送缓冲区外部客户端一读就能拿到在电子表格或作业逻辑里把收发逻辑和检测流程串起来。注意In-Sight的电子表格功能和Excel很像你可以在单元格里调用通信函数不同固件版本里函数名有差异常见的是以TCP开头的发送/接收函数比如老版本里的TCPOpen、TCPReceive、TCPSend新版本可能带前缀或换了封装但逻辑都是“打开连接、收发数据、关闭连接”。如果记不清直接在固件内置帮助里搜“TCP”比在网上搜教程靠谱得多。协议格式我一般这样定所有命令都用ASCII字符串以\r\n作为结束符。比如上位机发TRIG,INSPECT\r\n相机收到后执行一次检测检测完成后返回RES,PASS,1,X123.45,Y67.89\r\n这里RES是结果关键字PASS是判定结果1是工位号或程序号X和Y后面是坐标值。命令和参数之间用逗号分隔结束符统一用回车换行。ASCII字符串的好处是肉眼能读、上位机好解析、PLC那边拼字符串也方便。再把“修改阈值”这种下行命令加进来比如PARAM,THRESHOLD85\r\n相机收到后解析PARAM命令把当前程序的相似度阈值改成85改完返回ACK,PARAM,OK\r\n这样整个“接收命令—执行—返回结果”的双向链路就通了。3.3 相机做TCP客户端主动上报检测数据有些项目里上位机不固定或者有多台相机需要主动往同一个服务器上报结果这时候让IN-Sight做TCP客户端更合适。配置方法也不复杂在通讯设置里切换到“TCP客户端”模式填上目标服务器的IP地址和端口选择连接策略是“每次检测后临时连接发完就断”还是“保持长连接持续发送”定义发送缓冲区把检测数据写入缓冲区相机连接成功后自动发送。两种策略各有好处。每次检测后临时连接适合数据量不大、实时性要求不高的场景逻辑简单也不容易出现“连接一直挂着没人管”的情况长连接适合频繁交互、或者需要服务器随时反向发命令的场景但要求上位机服务器程序写得健壮一些能处理多路客户端接入。我做多相机工位的时候比较喜欢让相机做客户端每台相机在检测完成后主动连接总控电脑的某个端口把结果推过去然后关闭连接。总控电脑只需要开一个TCP Server监听端口就能收到所有工位的消息程序结构很清晰。3.4 用网络调试助手做联调实测到这里真正有价值的环节来了。我建议先在电脑上用网络调试助手把整个通讯流程模拟一遍再写正式的上位机程序或PLC程序这样能省掉很多调试时间。假设相机做了TCP服务器监听端口是5000。操作方法电脑上启动网络调试助手协议类型选择“TCP Client”填入相机的IP地址比如192.168.1.100端口填5000点“连接”连接成功后在发送区输入TRIG,INSPECT\r\n注意如果软件不自动加回车要手动勾选“发送新行”或者直接输入转义字符点击发送然后看接收区正常情况下应该马上收到类似RES,PASS,1,X123.45,Y67.89\r\n的结果。如果是相机做TCP客户端测试方法反过来电脑上把网络调试助手设成“TCP Server”监听端口比如9000让相机去连接电脑然后手动触发一次相机检测观察网络调试助手是否收到相机主动推上来的数据。我第一次做这个测试时相机侧怎么都不发数据后来发现是电子表格里的发送逻辑写在了拍照函数后面但作业模式没有触发那次拍照所以结果缓冲区一直是空的。这个问题后来成了我检查通讯逻辑的必查项先确认相机确实完成了检测流程再排查发送逻辑。4. 联调中绕不开的坑与排查技巧4.1 常见连接故障速查表TCP/IP联调最大的特点就是“现象看着一样原因五花八门”。我把自己踩过和帮别人排查过的坑整理成一张速查表方便你对照现象可能原因排查思路网络调试助手连不上相机IP不在同一网段检查电脑IP和相机IP的前三段是否一致子网掩码是否正确连不上相机相机服务未启动在In-Sight Explorer里确认监听的TCP端口已启用并重启相机连不上相机电脑防火墙拦截临时关闭电脑防火墙或把相机IP加入白名单连上就掉线网线质量差、受干扰换成工业屏蔽网线避免与动力线长距离平行走线连上就掉线双工模式不匹配把相机和交换机的网口速度/双工都固定为自适应或强制百兆/千兆不要一端自适应一端强制收到乱码十六进制和ASCII显示切换错误网络调试助手的“HEX显示”和“ASCII显示”别搞混发送时也要统一收到数据不完整粘包、半包用\r\n等结束符接收端做缓冲队列按结束符拆包相机做客户端连不上服务器服务器没启动或端口写错先在本机用两个网络调试助手自测再检查相机侧填写的IP和端口PLC连接不稳定PLC的TCP/IP栈实现差异尝试Modbus TCP方式或简化PLC侧收发逻辑4.2 和西门子、三菱PLC联调的适配思路很多项目里IN-Sight相机不但要和上位机通讯还要和PLC直接通讯。如果你手头是西门子PLC标准做法是用TCON、TSEND、TRCV这些TCP/IP功能块三菱PLC则常用Socket编程指令。但PLC侧拼字符串、解析字符串都比较痛苦所以我不建议让PLC直接去解析复杂的ASCII命令。我的经验是PLC和相机之间尽量不要做复杂协议交互只保留必要的“触发”和“结果”。比如PLC给相机发一个固定字节0x01表示触发拍照相机检测完成后回一个字节0x01表示OK、0x02表示NG最多再加两个字节传坐标整数。这样PLC侧程序写起来非常轻松也不容易出bug。如果PLC还是想用Modbus TCPIN-Sight也支持你可以把检测结果映射到Modbus寄存器里PLC直接读保持寄存器就行。这个方案的缺点是参数配置相对繁琐但稳定性很好适合那种“不需要解释字符串、只要数值”的现场。4.3 三个让我少加班的小经验最后分享几个我这些年从项目里磨出来的实际经验算不上什么高深技术但关键时刻真能救命。第一协议一定要先写在纸上再动手。很多联调问题最后都出在“双方对协议理解不一致”上。比如上位机以为结束符是\n相机侧发的却是\r\n上位机用ASCII发送相机却按HEX解析。这些低级问题只要前期花十分钟把协议文档写好双方签字确认基本能避免一半以上的联调扯皮。第二一定要学会用抓包工具。网络调试助手只能看到本机收发的内容如果出现“上位机没收到数据但相机确实发送了”这种灵异现象Wireshark抓包一开真相立刻浮现。我曾经排查过一个问题相机明明配置了TCP客户端但就是不主动连接服务器抓包后才发现是目标IP写错了填成了电脑的网关地址。这类问题单靠肉眼盯配置运气好能发现运气不好就是一下午。第三双向通讯一定要有“心跳”和“断线重连”机制。工业现场环境复杂交换机重启、网线松动、上位机程序崩溃都很难避免。如果你的相机做TCP客户端最好在程序里定期发送心跳包比如PING\r\n服务器收到后回复PONG\r\n这样哪一端掉线了至少能及时发现。客户端模式的相机还要设计自动重连机制避免相机重启后永远连不回服务器最后产线停在那里等你去手动干预。我在实际调试中还养成了一个习惯每做一步配置就立即用网络调试助手测一步而不是等所有配置都做完再统一测。因为通讯配置牵扯到相机、电脑、交换机、PLC好几个环节越早发现问题定位越容易。等整个链路都搭起来再调试ISSUES堆在一起你就只能对着各种可能性猜了。学会这套双向TCP/IP的配置和排查方法之后你会发现它不仅能用在IN-Sight上其他智能相机、扫码枪、视觉控制器基本都是同一个套路。希望这篇实操经验能让你少走点弯路更希望你在项目里一次就能通讯成功真遇到问题的时候也能拿着这篇文章里的表格快速定位方向。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价