当前位置:首页 > 嵌入式 > 嵌入式分享

一套2D定位引导系统要真正在产线里跑起来,除了相机、镜头、光源和视觉算法这些看得见的部件,还有一个往往被忽略却非常关键的环节——视觉控制器和PLC等上层控制设备之间的接线与通讯。很多项目在实验室里把视觉定位调得很好,一到现场接入产线PLC,就出现定位数据传不过去、通讯偶尔中断、或者数据格式对不上导致机器人动作错误的问题。这类问题追根溯源,往往是接线和通讯协议层面的细节没有做好。这篇文章就从实际接线和通讯的角度,拆解视觉控制器与PLC之间的连接方式和通讯逻辑,帮做集成的人把这条数据链路搭稳。

先理清系统里的数据流向和角色

要搭好视觉控制器和PLC的通讯,先要明白整个系统里各个设备扮演的角色,以及数据是怎么流动的。

在一套典型的2D定位引导系统里,角色分工大致是这样的:相机负责拍摄图像,视觉控制器(可能是独立工控机,也可能是嵌入式的视觉控制器)负责跑图像处理算法,算出工件的平移、旋转偏差;PLC负责整条产线的逻辑控制,协调传送带、机器人、气缸这些执行机构按顺序动作;机器人则负责按接收到的位置坐标执行抓取、锁付等操作。

数据流向是一个典型的握手闭环:PLC先判断工件到达指定位置,给视觉控制器发一个“触发拍照”的信号;视觉控制器收到触发后拍照、算坐标,把定位结果(通常是X方向偏移、Y方向偏移、旋转角度这几个数值)传回给PLC;PLC再把这个定位数据转发给机器人,机器人按照坐标完成动作。这条链路里,视觉控制器和PLC之间的通讯是承上启下的关键一环,通讯不稳,整个闭环就断掉。

明确了数据流向,接下来要解决的就是“怎么把数据从视觉控制器安全准确地送到PLC手里”这个问题。

接线方式:硬件层面的连接基础

视觉控制器和PLC之间的物理接线,主要分为开关量信号接线和通讯总线接线两类,实际项目中经常两者配合使用。

开关量信号接线,处理的是“触发拍照”这类离散的控制信号。PLC通过输出端子给视觉控制器发一个高电平或低电平的触发信号,告诉它“工件到了,开始拍照”。这类信号一般通过PLC的输出模块和视觉控制器的IO输入口相连,需要确认电平标准一致(比如都是24V),并做好信号线和电源线的隔离,避免强电干扰把信号带坏。触发信号的可靠性直接影响拍照时机,如果信号抖动、误触发,相机就会在错误时机拍照,拍到工件的模糊或偏移状态,定位结果跟着出错。

通讯总线接线,处理的是定位数据这类多字节的数值传输。视觉控制器和PLC之间通过通讯总线交换数据,常见的方式有两种。一种是走PLC的通讯端口,比如以太网接口或者串口,视觉控制器作为通讯节点接入PLC的网络,通过约定的通讯协议把定位数值写入PLC的寄存器或数据区,PLC再从这些寄存器读取数据。另一种是走现场总线的IO从站,把视觉控制器挂到PLC的现场总线网络里,定位数据通过总线映射到PLC的地址空间,PLC直接读对应地址即可。接线时要根据PLC支持的通讯接口、以及现场的网络结构,选择合适的连接方式,并确保通讯线缆屏蔽、接地可靠,减少电磁干扰对通讯的影响。

通讯协议与数据格式:让两边“说同一种语言”

物理接线连好之后,更大的工作量在通讯协议和数据格式的约定上。视觉控制器和PLC往往来自不同厂商,两边要能正常交换数据,必须约定好“怎么说、说什么、说成什么样”。

先说协议层面。工业现场常见的做法是让视觉控制器主动对接PLC支持的通讯协议,比如西门子PLC的S7协议、三菱PLC的通讯协议、Modbus TCP、或者基于TCP/IP的自定义协议。视觉控制器作为通讯的发起方或者从站,按照协议格式把数据包发给PLC,PLC按协议解析出定位数据。这里的关键是两边都要严格按同一套协议格式收发,数据包的起始位、长度、校验方式、字节序(高字节在前还是低字节在前)都要完全一致,任何一项不一致,PLC就会解析出乱码或干脆收不到数据。

再说数据格式层面。定位结果通常包含多个数值:X方向偏移、Y方向偏移、旋转角度。为了让数值能准确无误地传输,需要约定好每个数据的类型和精度。比如X偏移用32位有符号整数、单位是0.001毫米,那PLC端也要按同样的类型和单位去解读。常见的一个坑是单位不一致:视觉端算出来的是毫米,PLC端按脉冲数去解读,两者差了成百上千倍,机器人动作直接错乱。所以在对接时,要明确约定数据的单位、正负号含义、数值缩放比例,最好做成文档写清楚,避免两边理解不一致。

另外还要考虑通讯的时序和超时处理。视觉控制器算坐标需要一点时间,PLC发完触发信号后,要等视觉控制器返回结果,这中间有等待时间。PLC要设定合理的通讯超时和重试逻辑,如果视觉端超时没返回,PLC要能识别并做出相应的处理(比如报警、重试),而不是一直干等导致产线卡死。

接线与通讯的可靠性措施

工业现场电磁干扰强、设备震动大,视觉控制器和PLC的通讯要稳定运行,还需要一些针对性的可靠性措施。

信号线和通讯线的布线,要和动力线(电机、电源的强电线缆)分开走线,保持一定距离,避免强电的电磁干扰串进通讯信号里。通讯线缆要选屏蔽双绞线,屏蔽层做好单端接地,抑制干扰。如果现场电磁干扰特别严重,可以加装隔离器或者光电转换器,把通讯信号和现场干扰隔离开。

通讯握手和状态反馈要做好。视觉控制器在完成定位后,除了传数据,还应该回传一个“定位成功/失败”的状态位,PLC根据这个状态位决定是继续执行动作,还是停下来报警。如果视觉端定位失败但PLC没收到状态反馈,机器人就会按上次的旧数据或者乱码去动作,造成安全事故。这个状态反馈是整个闭环里很重要的安全环节。

整体来看,工业2D定位引导系统里视觉控制器与PLC的接线通讯,核心是把“触发拍照-算坐标-传数据-执行动作”这条闭环的数据链路搭稳。硬件层面要做好开关量信号和通讯总线的接线,协议层面要约定一致的通讯协议、数据格式和单位,工程层面要做好屏蔽接地、时序超时和状态反馈。这几个层面都做到位,视觉定位结果才能稳定准确地送到PLC手里,整个定位引导闭环才能在产线里长期可靠运行。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭