2、PLC基础与通信协议:PLC工作原理、常见品牌及通信接口

PLC(可编程逻辑控制器)是工业自动化现场最核心的控制设备,也是AI边缘网关在工业场景中最主要的“对话对象”。要理解边缘网关如何与PLC进行协议转换、数据采集和本地决策,首先必须扎实掌握PLC的工作原理、主流品牌差异以及通信接口的物理与协议特性。本章将从这三个维度展开,帮助您建立从硬件底层到协议应用的完整认知框架。

PLC 核心工作原理 主流品牌与定位 通信接口与协议 ① 输入采样 读取物理输入端子状态 ② 程序执行 逐条执行用户梯形图/ST程序 ③ 输出刷新 集中更新输出锁存器 ④ 通信服务 处理编程/网关/触摸屏请求 扫描周期 = ①②③④ 总耗时 西门子 S7系列 中大型:S7-300/400/1500 三菱 FX/Q系列 小型:FX系列;中大型:Q系列 欧姆龙 CP/CJ系列 CP小型 / CJ模块化 / NJ运动控制 罗克韦尔 ControlLogix 北美市场主流,EtherNet/IP 网关需兼容多品牌协议栈 S7comm / MC协议 / FINS / CIP RS-232 / RS-485 串口,距离15m/1200m,速率低 以太网 (Ethernet) RJ45,100M/1G,TCP/IP承载 PROFINET / EtherNet/IP 工业以太网实时协议 Modbus RTU / TCP 事实标准,跨品牌通用 网关选型关键 物理接口 + 协议栈双重匹配

2.1 PLC核心工作原理:扫描周期与I/O映射

PLC本质上是一台面向工业环境的专用实时计算机。其最核心的工作机制是循环扫描,即CPU按照固定顺序周而复始地执行四个阶段:输入采样、程序执行、输出刷新、通信服务。理解这个扫描周期是后续配置网关采集频率、判断数据实时性的基础。

2.1.1 扫描周期的四个阶段

  • 输入采样阶段:CPU读取所有数字量输入端子(如24V DC传感器信号)和模拟量输入通道(如4-20mA电流信号)的状态,并将这些值存入输入映像寄存器(I区)。此阶段的特点是集中读取,即在一个扫描周期内所有输入点只被读取一次。
  • 程序执行阶段:CPU从第一条指令开始,逐条执行用户程序(梯形图、语句表或结构化文本)。程序中的运算基于输入映像寄存器和内部存储器(M区、DB块)的当前值,运算结果写入输出映像寄存器(Q区),但此时并不直接驱动物理输出。
  • 输出刷新阶段:CPU将输出映像寄存器中的值一次性传送到输出锁存器,通过输出模块驱动外部执行器(如接触器、电磁阀)。这也是集中输出的过程,保证同一周期内所有输出动作的同步性。
  • 通信服务阶段:CPU处理来自编程器、HMI触摸屏、上位机或边缘网关的通信请求。例如,网关发送的Modbus TCP读请求就在此阶段被响应。通信服务时间不固定,取决于请求数量和网络负载。

关键参数:扫描周期 = 输入采样时间 + 程序执行时间 + 输出刷新时间 + 通信服务时间。典型小型PLC(如西门子S7-1200)扫描周期在1ms~10ms之间,大型PLC(如S7-1500)可做到0.1ms级。网关采集数据时,应设置合理的轮询间隔(通常为100ms~1000ms),避免因过于频繁的请求导致PLC通信服务超时。

2.1.2 I/O映射与数据存储区

PLC通过I/O映射将物理信号与内部存储地址关联。以西门子S7系列为例,数字量输入地址为I0.0~Ix.x,输出为Q0.0~Qx.x;模拟量输入映射为IW地址(如IW64),输出为QW地址。三菱FX系列则使用X(输入)和Y(输出)编号,如X0、Y0。边缘网关在采集数据时,必须明确目标寄存器的地址类型和编号规则,否则会出现数据错位。

品牌 输入映像区 输出映像区 数据寄存器 通信协议
西门子 S7-1200/1500 I0.0~Ix.x Q0.0~Qx.x DB块(DB1.DBX0.0) S7comm / PROFINET
三菱 FX5U X0~X377 Y0~Y377 D0~D7999 MC协议(3E帧)
欧姆龙 CP1H CIO 0.00~ CIO 100.00~ D0~D32767 FINS / HostLink
罗克韦尔 Micro850 I:0.0/0 O:0.0/0 N7:0 / Float文件 CIP / EtherNet/IP

2.2 主流PLC品牌与选型考量

不同品牌的PLC在指令系统、通信协议、编程软件和扩展能力上差异显著。边缘网关项目中最常遇到的品牌是西门子、三菱和欧姆龙,此外罗克韦尔在北美市场占据主导。了解各品牌的特点有助于网关选型和协议适配。

2.2.1 西门子(Siemens)

西门子S7系列在中国及欧洲市场占有率极高。S7-1200和S7-1500是当前主流,支持PROFINET工业以太网和S7comm协议。S7comm是西门子私有协议,网关需通过抓包逆向或使用官方库(如Snap7)进行通信。S7-1500还支持OPC UA,这为边缘网关提供了更标准化的数据访问方式。

2.2.2 三菱(Mitsubishi)

三菱FX系列(如FX3U、FX5U)在小型设备中应用广泛,Q系列和L系列面向中大型项目。三菱使用MC协议(Melsec Communication Protocol),基于TCP/IP的3E帧格式是网关采集的主要对象。FX5U原生支持以太网,而老款FX3U需加装以太网模块(如FX3U-ENET)才能实现网络通信。

2.2.3 欧姆龙(Omron)

欧姆龙CP系列(CP1H/CP1L)和CJ系列在包装机械、电子制造行业常见。其FINS协议(Factory Interface Network Service)支持UDP和TCP两种传输方式。NJ/NX系列则基于EtherCAT和EtherNet/IP,更适合运动控制场景。欧姆龙PLC的地址命名规则(CIO区、W区、D区)与西门子、三菱差异较大,网关配置时需特别注意。

选型建议:当现场存在多品牌PLC时,优先选择支持Modbus TCP或OPC UA的网关方案,这两种协议是跨品牌兼容性最好的。若必须使用私有协议(如S7comm、MC协议),务必确认网关厂商已提供经过验证的驱动,并测试通信稳定性。

2.3 通信接口:从串口到工业以太网

PLC的通信接口决定了边缘网关的物理接入方式。根据现场部署年代和工艺要求,常见接口分为串口(RS-232/RS-485)和以太网(RJ45)两大类。接口选择直接影响传输速率、布线距离和抗干扰能力。

2.3.1 串口通信:RS-232与RS-485

RS-232是最早的串口标准,采用单端信号传输,最大通信距离约15米,速率通常不超过115.2kbps,仅支持点对点连接。RS-485采用差分信号,最大距离可达1200米,支持最多32个节点(通过中继器可扩展),速率最高10Mbps(短距离时)。在工业现场,RS-485是连接PLC与变频器、仪表的最常见方式。

// RS-485 典型接线(半双工两线制)
PLC A+  —— 网关 RS485 A+
PLC B-  —— 网关 RS485 B-
PLC GND —— 网关 GND(可选,用于共地)
终端电阻:120Ω 并联在总线两端

串口通信的协议层通常使用Modbus RTU。Modbus RTU以CRC16校验保证数据完整性,功能码03(读保持寄存器)和06(写单个寄存器)是最常用的操作。网关作为Modbus主站,PLC作为从站,从站地址需在PLC中设置(如1~247)。

2.3.2 以太网通信:工业以太网与标准TCP/IP

现代PLC几乎都标配以太网接口。标准以太网(IEEE 802.3)使用RJ45连接器,支持10/100/1000Mbps速率。工业以太网协议(如PROFINET、EtherNet/IP、EtherCAT)在标准TCP/IP之上增加了实时性保障机制,但边缘网关通常只需使用标准TCP/IP即可完成数据采集,无需实现实时同步功能。

接口类型 传输介质 最大距离 典型速率 适用协议 网关接入方式
RS-232 屏蔽双绞线 15m 9.6~115.2kbps Modbus RTU / 自由口 串口服务器或USB转串口
RS-485 屏蔽双绞线 1200m 9.6kbps~10Mbps Modbus RTU / Profibus DP 串口服务器或网关RS485口
以太网 Cat5e/6 网线 100m(铜缆) 10/100/1000Mbps Modbus TCP / S7comm / MC / FINS 网关RJ45直连或交换机
光纤 单模/多模光纤 2km~40km 100Mbps~10Gbps PROFINET / EtherNet/IP 需光纤收发器转换

2.3.3 网关接入的工程实践

边缘网关接入PLC时,需遵循以下操作流程:

  1. 确认PLC型号和固件版本:通过PLC编程软件(如TIA Portal、GX Works3)查看CPU版本,确认支持的协议类型。
  2. 配置PLC通信参数:设置IP地址(如192.168.1.10)、子网掩码、网关地址(如有)。对于串口,需设置波特率、数据位(8)、停止位(1)、校验位(无)。
  3. 测试物理连通性:使用Ping命令测试以太网连通性;串口则使用串口调试助手发送Modbus RTU请求帧,观察PLC响应。
  4. 配置网关采集点表:在网关管理界面中,添加PLC设备,选择协议类型,填写IP/端口(如S7comm默认102端口,Modbus TCP默认502端口),然后逐条添加需要采集的寄存器地址。
  5. 验证数据准确性:对比网关读取值与PLC编程软件中的在线监控值,确认字节序(大端/小端)、数据类型(16位/32位整数、浮点)映射正确。

常见误区:① 忽视PLC通信服务时间,网关轮询频率过高导致PLC程序执行周期被拉长,影响工艺控制精度;② 未正确设置PLC的允许远程访问权限(如S7-1200需在“防护与安全”中勾选“允许来自远程对象的通信”);③ 串口接线时未共地,导致RS-485通信间歇性失败;④ 使用Modbus TCP时,未注意PLC的端口号可能被修改(非默认502)。

2.4 案例拆解:某汽车零部件产线的PLC数据采集与网关接入

背景与约束:某汽车零部件工厂有一条装配线,包含3台西门子S7-1200 PLC(控制拧紧机)、2台三菱FX5U PLC(控制输送线)和1台欧姆龙CP1H PLC(控制压装设备)。工厂要求边缘网关统一采集所有PLC的产量、设备状态、报警信息和关键工艺参数(如拧紧扭矩、压装力),并上传至MES系统。现场网络为车间级工业以太网,PLC与网关位于同一VLAN,IP段为192.168.20.x。

初始现象与目标:此前使用人工巡检记录数据,效率低且易出错。目标是通过网关实现每500ms采集一次关键数据,并支持本地边缘计算(如统计当日产量、判断设备OEE)。

关键输入数据与参数:

  • 西门子S7-1200:DB1.DBD0(拧紧扭矩,Real型),DB1.DBD4(拧紧角度,Real型),I0.0(设备运行信号),Q0.0(报警输出)。
  • 三菱FX5U:D100(当前产量,32位整数),D200(设备状态字,16位),M100(运行中位)。
  • 欧姆龙CP1H:D1000(压装力,整数),CIO 0.00(启动按钮),CIO 100.00(运行指示灯)。

分析判断过程:由于三种PLC使用不同协议(S7comm、MC协议、FINS),网关需分别配置三个设备节点。考虑到S7-1200的S7comm协议需要访问DB块,网关需支持西门子的“DB块寻址”功能。三菱FX5U使用MC协议3E帧,需注意其网络帧格式中的“网络号”和“PC号”通常为0。欧姆龙FINS协议需指定“FINS节点地址”,该地址由PLC的IP地址最后一位决定(如IP为192.168.20.30,则节点地址为30)。

实际操作步骤:

  1. 在网关管理界面中,创建3个设备:S7-1200(协议S7comm,IP 192.168.20.10,端口102)、FX5U(协议MC 3E,IP 192.168.20.20,端口6000)、CP1H(协议FINS TCP,IP 192.168.20.30,端口9600)。
  2. 为S7-1200添加采集点:DB1.DBD0(Float,字节序AB CD),DB1.DBD4(Float),I0.0(Bit),Q0.0(Bit)。
  3. 为FX5U添加采集点:D100(UInt32,字节序ABCD),D200(UInt16),M100(Bit)。
  4. 为CP1H添加采集点:D1000(UInt16),CIO 0.00(Bit),CIO 100.00(Bit)。
  5. 设置轮询周期为500ms,启用“数据变化上报”功能,仅当数值变化超过阈值(如扭矩变化超过0.1Nm)时上报MES,减少网络负载。
  6. 在网关边缘计算模块中,编写简单规则:统计每台PLC的“运行时间”和“报警次数”,每10分钟计算一次OEE。

结果对比:网关上线后,数据采集成功率从人工记录的95%提升至99.98%,采集延迟从分钟级降至500ms内。MES系统能够实时显示产线状态,OEE计算从每日人工统计变为每10分钟自动刷新。同时,网关的本地缓存功能在MES系统维护期间(约30分钟)缓存了约3600条数据,恢复后自动补传,未丢失任何记录。

风险与代价:项目初期曾因S7-1200的“连接资源”限制(默认最大支持16个并发连接),导致网关频繁断开。解决方案是在PLC属性中增加“连接资源”数量,并调整网关的“保持连接”参数(心跳间隔30秒)。此外,三菱FX5U的MC协议在读取D100(32位)时,需注意PLC侧的数据存储格式为“低字在前”,网关需配置字节序为“CD AB”才能正确解析。

复盘经验:① 多品牌PLC接入时,务必先查阅各品牌协议手册,确认地址映射和字节序规则;② 网关的轮询周期应大于PLC扫描周期的3~5倍,避免通信拥塞;③ 启用边缘缓存功能是保障MES系统稳定性的关键;④ 建议在网关侧配置“数据质量戳”,当通信中断时标记数据为“无效”,避免MES误用错误数据。

2.5 常见误区与总结复盘

在PLC通信与网关接入的工程实践中,以下误区值得特别注意:

  • 误区一:认为所有PLC都支持Modbus TCP。实际上,西门子S7-1200/1500原生不支持Modbus TCP,需通过“Modbus TCP”指令库(如MB_SERVER)实现,且需要额外编程。三菱FX5U支持MC协议,但Modbus TCP需加装模块或使用内置功能(FX5U支持)。
  • 误区二:忽略PLC的通信负载能力。PLC的通信服务是在扫描周期的“通信服务阶段”处理的,如果网关请求过于频繁(如每10ms一次),会显著延长扫描周期,影响PLC的实时控制性能。建议轮询周期不低于100ms。
  • 误区三:字节序处理错误。不同PLC对多字节数据的存储顺序不同。西门子S7-1200默认大端(高字节在前),三菱FX5U默认小端(低字节在前),欧姆龙FINS协议也采用大端。网关配置时需根据PLC型号选择正确的字节序,否则读取的32位整数或浮点数将出现数值错误。
  • 误区四:忽视PLC的IP地址冲突和防火墙设置。车间网络可能存在多个网段,网关与PLC必须处于同一广播域或通过路由可达。同时,Windows防火墙或工业防火墙可能阻断PLC的私有协议端口(如S7comm的102端口),需提前放行。

总结复盘:PLC是工业现场的数据之源,边缘网关的价值在于将异构的PLC数据转化为统一、可用的信息。掌握PLC的扫描周期原理,有助于合理设置采集频率;熟悉主流品牌的协议差异,能够减少调试时间;理解串口与以太网的物理特性,则能确保网关接入的可靠性。在实际项目中,建议先进行小范围POC验证(如单台PLC接入),确认数据准确性和通信稳定性后,再推广至全产线。