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协议在旧线改造中仍大量存在。

通信选型经验:新建产线优先选PROFINET或EtherNet/IP循环IO,实时性最好;旧线改造或混合品牌场景,优先选Modbus TCP或原生TCP字符串,兼容性最强。

二、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信号(实线)与消息通信数据(虚线),并标注了关键信号的方向与含义。

光电传感器 工件到位检测 PLC 控制器 S7-1200 / FX5U / NJ 循环IO + 消息通信 扫描周期 1~10ms DataMan 读码器 PROFINET / EIP TCP / Modbus TCP 读码时间 20~80ms 执行机构 分拣气缸 / 剔除挡板 / 报警灯 DI 到位信号 触发位 / 参数切换 OK/NG 状态位 条码字符串 (TCP) DO 分拣指令 产线信号时序(单工件周期) t0 t1 t2 t3 t4 工件到位 PLC发触发 读码完成 执行分拣 周期结束 循环IO信号 消息通信数据 执行输出 t1-t0 ≈ 5ms | t2-t1 ≈ 30~80ms | t3-t2 ≈ 10ms

从图中可以看出,一个完整的读码联动周期包含四个关键时间节点:工件到位(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的强制输出功能手动置位触发位,观察DataMan的IO状态指示灯和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模块故障或数据错位。