3. PLC硬件与编程基础

在SICK产线检测与PLC协同控制的系统中,PLC是整个控制逻辑的“大脑”。SICK传感器负责采集位置、颜色、轮廓、条码等检测信号,PLC则根据这些信号完成判断、联锁、计数、分拣和与上位系统的数据交互。要真正读懂并编写这类协同程序,必须先理解PLC的硬件组成、I/O模块、通信接口,以及梯形图和结构化文本这两种最常用的编程语言。

一、主流PLC的硬件组成

无论是西门子、三菱还是欧姆龙,PLC的硬件结构都可以归纳为几个核心部分:电源模块、CPU模块、输入模块、输出模块、通信模块和背板/机架。电源模块负责将现场交流电转换为CPU和I/O所需的直流电源;CPU模块执行用户程序、管理内存和通信;输入模块接收来自按钮、限位开关、SICK传感器的信号;输出模块驱动继电器、电磁阀、指示灯和分拣机构;通信模块则负责与触摸屏、变频器、上位机或其它PLC交换数据。

以西门子S7-1200为例,常见配置为CPU 1214C DC/DC/DC,集成14点数字量输入、10点数字量输出、2点模拟量输入,并自带PROFINET接口。三菱FX5U则常见24点输入、16点输出,内置以太网和RS-485。欧姆龙CP1H系列则通过扩展机架增加I/O点数。不同品牌的模块名称不同,但“CPU+电源+I/O+通信”的基本框架是一致的。

二、I/O模块与信号类型

I/O模块分为数字量模块和模拟量模块两大类。数字量输入(DI)处理开关信号,例如SICK光电开关输出PNP高电平表示“有物料”,PLC的DI点读到24V即认为输入为ON。数字量输出(DO)用于驱动电磁阀、气缸和报警灯,常见为晶体管输出或继电器输出。模拟量输入(AI)用于接收SICK激光测距传感器输出的4~20mA或0~10V信号,PLC内部再通过量程转换得到实际距离值。

接线时要注意源型/漏型匹配。以PNP传感器为例,信号线输出高电平,PLC输入公共端应接0V;若使用NPN传感器,公共端则接24V。实际项目中,SICK传感器多为PNP输出,因此西门子PLC的1M公共端通常接0V。模拟量信号则要使用屏蔽双绞线,屏蔽层单端接地,避免变频器干扰造成读数跳动。

教学示例:某SICK激光测距传感器量程为200~1000mm,输出4~20mA,接入西门子S7-1200模拟量输入通道。若PLC读到的原始值为13824(0~27648对应0~20mA),则电流约为10mA,对应距离约为200+(10-4)/(20-4)×800=500mm。该数值为示例计算,实际应以传感器标定和模块精度为准。

三、通信接口与协同方式

PLC与SICK传感器、上位机、变频器之间的通信方式,直接决定了产线检测与控制的响应速度和布线复杂度。常见接口包括:PROFINET、EtherNet/IP、EtherCAT、RS-485、RS-232和IO-Link。西门子PLC多使用PROFINET,三菱和欧姆龙则常见以太网、CC-Link IE或EtherNet/IP。SICK部分智能传感器支持IO-Link,可通过IO-Link主站将参数和诊断信息传入PLC,而不仅仅是开关量。

在协同控制中,PLC通常作为主站,SICK传感器作为从站或远程I/O。例如,SICK安全激光扫描仪通过PROFINET向PLC发送区域状态字,PLC解析后决定是否允许机器人进入该区域。通信配置的关键是地址分配、数据长度和刷新周期。若刷新周期设为4ms,而产线节拍为200ms,则通信延迟通常不会成为瓶颈;但若用于高速分拣,则需选择EtherCAT或IO-Link等低延迟方案。

PLC硬件组成与SICK传感器协同信号链 电源模块 AC220V→DC24V CPU模块 程序执行/逻辑运算 通信模块 PROFINET/IO-Link 背板/内部总线 数字量输入 DI PNP/NPN 24V SICK光电/接近开关 模拟量输入 AI 4~20mA / 0~10V SICK激光测距 数字量输出 DO 电磁阀/气缸/指示灯 分拣执行机构 SICK数字传感器 光电/接近/安全开关 SICK模拟传感器 激光测距/压力 SICK智能传感器 IO-Link/条码/视觉 上位机/HMI 监控与配方 图例 传感器信号 数据/通信

四、梯形图与结构化文本入门

PLC编程语言主要有梯形图(LAD)、功能块图(FBD)、结构化文本(ST)和指令表(IL)。在产线检测与PLC协同控制中,梯形图最直观,适合表达继电器逻辑和联锁;结构化文本则适合处理数据计算、循环和复杂判断。

梯形图的基本元素是触点、线圈和功能块。常开触点对应“条件成立则导通”,常闭触点对应“条件不成立则导通”。例如,当SICK光电传感器检测到物料且安全门关闭时,输出气缸动作,可写成:常开触点“物料检测”与常闭触点“安全门未关”串联,再驱动线圈“气缸动作”。这种“串联为与、并联为或”的读图方式,是梯形图入门的关键。

结构化文本更接近高级语言。例如,将模拟量原始值转换为实际距离,可以用ST写成:

// 示例:S7-1200模拟量量程转换
// 原始值 0~27648 对应 4~20mA,距离 200~1000mm
IF RawValue >= 0 AND RawValue <= 27648 THEN
    Current_mA := 4.0 + (INT_TO_REAL(RawValue) / 27648.0) * 16.0;
    Distance_mm := 200.0 + (Current_mA - 4.0) / 16.0 * 800.0;
ELSE
    Distance_mm := -1.0;  // 故障标记
END_IF;

这段代码体现了ST的优势:可以直接进行浮点运算和条件判断,适合处理SICK传感器上传的连续量。实际编程时,还需加入滤波、限幅和故障判断,避免干扰导致误动作。

五、从硬件到程序的协同要点

在SICK产线检测与PLC协同控制中,硬件选型和程序结构必须匹配。第一,确认传感器输出类型与PLC输入模块兼容,PNP传感器配漏型输入,NPN传感器配源型输入。第二,模拟量信号要统一量程和参考电位,避免共模干扰。第三,通信地址和刷新周期要与产线节拍匹配,安全信号必须走安全PLC或安全模块,不能与普通逻辑混用。第四,程序结构上建议将传感器信号处理、逻辑判断、输出驱动和通信交互分成独立块,便于调试和维护。

实践建议:初次调试时,先用手动模式逐个验证SICK传感器信号是否到达PLC输入点,再验证输出动作是否正确,最后再联调通信和自动流程。这样可以把硬件接线、I/O地址和程序逻辑的问题分层定位,减少排查时间。

掌握以上硬件组成、I/O模块、通信接口和编程语言基础后,后续学习SICK传感器与PLC的具体协同编程时,就能更快理解信号从哪里来、经过哪些处理、最终驱动什么动作,也能更准确地判断故障发生在传感器、接线、模块还是程序逻辑中。