3. PLC产线控制基础
在DataMan读码器与产线PLC联动的工程中,PLC既是产线的“动作指挥”,也是读码结果的“接收方与判定方”。理解主流PLC的通信能力、IO控制方式以及产线信号流,是后续配置DataMan触发、结果输出和异常处理的前提。本节以西门子、三菱、欧姆龙三家主流PLC为对象,梳理它们在读码联动场景中的实际能力边界与信号组织方式。
一、三类主流PLC的通信能力对比
DataMan与PLC的联动,本质上是在两者之间建立一条“触发下行、结果上行”的数据通道。不同PLC支持的通道类型差异较大,直接决定了工程实现方式。
西门子S7-1200/1500:原生支持PROFINET,可作为IO控制器连接DataMan的PROFINET接口,实现循环IO数据交换;同时支持开放式用户通信(OUC),通过TCP、ISO-on-TCP与DataMan的Telnet/原生TCP端口通信。S7-1200还支持Modbus TCP客户端/服务器指令,可读写DataMan的Modbus寄存器。对于读码应用,PROFINET循环IO适合传递触发位和结果状态位,TCP适合传递完整字符串。
三菱FX5U/iQ-R系列:FX5U内置以太网口,支持SLMP(无缝通信协议,兼容MC协议3E帧)、Modbus TCP以及Socket通信。iQ-R系列可通过RJ71EIP91模块支持EtherNet/IP,与DataMan的EtherNet/IP接口对接。三菱的MC协议在日系产线中普及度高,DataMan可通过原生TCP发送MC协议报文,直接读写PLC的D/M/X/Y软元件。
欧姆龙NJ/NX系列:NJ/NX基于EtherCAT和EtherNet/IP双网架构,EtherNet/IP标签数据链接可直接与DataMan交换标签数据;CS/CJ系列则通过ETN21模块支持FINS/TCP和FINS/UDP,DataMan可用FINS命令读写DM区。欧姆龙的FINS协议在旧线改造中仍大量存在。
二、IO控制方式:循环IO与消息通信的分工
PLC与DataMan之间的IO控制方式可分为两类,二者在工程中通常配合使用。
循环IO(隐式通信):以PROFINET、EtherNet/IP为代表,PLC与DataMan之间建立固定长度的IO数据区,每个扫描周期自动交换。典型配置为:PLC输出2字节给DataMan(触发位、参数切换位),DataMan输出4~8字节给PLC(结果状态、评分、匹配码)。这种方式延迟低(通常1~10ms),适合高速产线的触发与结果判定,但传输数据量有限,不适合传完整字符串。
消息通信(显式通信):以TCP、Modbus TCP、FINS为代表,按需发送报文,可传输任意长度字符串。DataMan读码成功后,通过TCP把完整条码字符串发给PLC,PLC用字符串比较指令判断是否与工单匹配。这种方式灵活但延迟较高(通常10~50ms),适合结果追溯、MES上传等场景。
实际工程中常见的分工是:循环IO负责“触发读码”和“OK/NG状态位”,消息通信负责“条码字符串内容”。两者通过同一个DataMan设备并行工作,互不干扰。
三、产线信号流:从触发到判定的完整链路
下面这张图展示了一条典型产线上,PLC、DataMan、传感器与执行机构之间的信号流关系。图中区分了循环IO信号(实线)与消息通信数据(虚线),并标注了关键信号的方向与含义。
从图中可以看出,一个完整的读码联动周期包含四个关键时间节点:工件到位(t0)、PLC发出触发(t1)、DataMan完成读码并回传结果(t2)、PLC执行分拣动作(t3)。其中t2-t1的读码时间受条码质量、曝光参数和通信方式影响,是工程调试中最需要关注的环节。若使用循环IO传递结果,t2-t1可控制在30ms以内;若使用TCP字符串回传,则需额外增加10~20ms的报文处理时间。
四、工程实现中的关键参数与判断依据
在PLC侧编写联动逻辑时,以下几个参数和判断条件需要明确设定:
- 触发脉冲宽度:PLC输出给DataMan的触发位应保持至少2个扫描周期的高电平,确保DataMan能稳定捕获。对于S7-1200,典型值为20~50ms;对于FX5U,建议不低于30ms。
- 读码超时时间:PLC等待DataMan结果的时间应大于最坏情况下的读码时间。若实测读码时间为80ms,超时设定建议为200~300ms,避免误判为NG。
- 结果保持与清除:DataMan的结果状态位通常保持到下一次触发。PLC应在读取结果后、下一次触发前,通过输出位清除DataMan的结果寄存器,防止旧数据被重复读取。
- 字符串结束符:TCP通信时,DataMan发送的条码字符串通常以CR(0x0D)或CR+LF结尾。PLC接收缓冲区需按此结束符截断,否则会混入后续报文。
五、不同品牌PLC的IO地址映射差异
同一套DataMan IO配置,在不同PLC上的地址映射方式不同,这是工程移植时最容易出错的环节。以DataMan输出4字节结果为例:
| PLC品牌 | 循环IO地址示例 | 触发位地址 | 结果状态位地址 |
|---|---|---|---|
| 西门子 S7-1200 | Q0.0~Q1.7 / I0.0~I3.7 | Q0.0 | I0.0 (OK) / I0.1 (NG) |
| 三菱 FX5U | Y0~Y1F / X0~X3F | Y0 | X0 (OK) / X1 (NG) |
| 欧姆龙 NJ | %Q0~%Q1 / %I0~%I3 | %Q0.0 | %I0.0 (OK) / %I0.1 (NG) |
表中地址仅为示例,实际地址取决于PLC的IO模块组态和DataMan的IO数据长度设置。工程中应先在PLC硬件组态中确认DataMan占用的IO起始地址和长度,再在DataMan的PROFINET/EtherNet/IP配置中核对输入输出字节数是否一致。若字节数不匹配,PLC会报IO模块故障或数据错位。