PLC是可编程逻辑控制器(Programmable Logic Controller),是一类用于工业设备和生产过程控制的装置。它接收传感器、按钮或其他设备的信息,依据用户程序进行条件判断、计时、计数和运算,再发出控制指令。例如,让输送带在接到物料后运行、到指定位置后停止,并等待下一工步,就可以由PLC组织执行。

在工业自动化系统中,PLC承担的是控制逻辑:现在处于哪个状态、哪些条件已经满足、接下来允许哪个动作。欧姆龙的PLC技术介绍也以输入设备、用户程序和输出设备之间的关系解释这一机制。显示数据可以是它参与的工作,但不是其核心作用。
PLC由哪些部分组成?
紧凑型PLC可以把多个功能集成在一个机壳内,模块化PLC则可以由CPU和扩展模块组成。外形不同,主要功能仍可按下表理解。
| 组成部分 | 主要作用 | 在输送设备中的例子 |
|---|---|---|
| CPU与运行系统 | 执行程序,安排控制任务,并处理诊断和通信。 | 判断本件物料是否已经到达、输送是否完成,以及何时启动分流动作。 |
| 存储器 | 保存程序、参数和运行中的数据。 | 保存累计件数、上次检测状态和当前工步,供后续程序执行使用。 |
| 输入接口 | 接收现场信号,形成程序可使用的状态或数值。 | 接收光电传感器、到位开关以及速度或压力测量值。 |
| 输出接口 | 把程序的控制结果传给外部设备。 | 发出电机运行指令,或控制电磁阀使推料机构动作。 |
| 通信接口 | 与远程I/O、驱动器、操作界面及其他控制系统交换数据。 | 接收检测设备给出的分流结果,向界面发送计数与故障信息。 |
| 电源及配套模块 | 为控制系统供电,并扩展相应功能。 | 为CPU和模块提供工作电源,按系统配置接入专用计数等功能。 |
I/O是输入(Input)与输出(Output)的合称。数字量表示有或无、开或关等离散状态;模拟量对应温度、压力等连续变化的量,经过采集和换算后供程序处理。还有脉冲及通信数据等输入输出形式,不应把PLC理解成只能控制开关的装置。
输出接口提供的通常是控制信号。例如PLC向变频器发出运行命令和速度给定,变频器再向电机提供相应电能;气缸推料则由电磁阀切换气路。PLC输出已改变,只能说明控制链路发出了相应指令,不能直接证明电机已经转动或气缸已经到位。
数字量、模拟量与脉冲信号怎样处理?
数字量输入(DI)把接通、断开等信号转换为逻辑状态,数字量输出(DO)用于发出相应开关指令。程序里的0和1并不是接线电压:实际输入类型、电平、输出驱动能力及外部负载必须与模块匹配。通信方式接入的驱动器,则可以通过数据字交换命令、设定值和故障状态。
模拟量输入(AI)需要把采样数值换算成工程量。例如,假设压力变送器把0~10 bar线性映射到4~20 mA,读到12 mA时,对应压力为(12-4)÷(20-4)×10=5 bar。实际程序还要按照模块的数值表示进行换算,并分别处理信号无效、超量程与断线诊断,不能把所有异常数值都当成正常压力。模拟量输出(AO)可用于给出连续调节目标。
脉冲输入常用来表达计数或位置增量。普通数字量输入在频率和采样条件允许时也能处理脉冲;较快的编码器信号需要专用高速输入或计数功能。脉冲频率、输入滤波与任务更新时间共同决定是否能可靠捕获,只有程序中的计数变量并不够。

PLC怎样完成输送计数与分流?
设想一段一次只允许一件物料进入的输送单元:入口光电检测物料并计数,检测设备给出该件应直行还是侧推的结果;物料到分流位置后,PLC组织相应动作,确认交接结束后才接收下一件。下面用这个简化工况说明数据与动作的关系,不涉及具体接线或完整设备程序。
现场信号通过输入接口成为程序数据
物料遮挡入口光电时,传感器改变输出状态,PLC输入接口接收这一电信号。在常见的过程映像访问方式下,输入状态按规定时机刷新到内存,程序再读取其中的“有料”状态。这里至少有三层对象:现场是否真的有物料、输入接口取得什么信号、程序当前读到什么数据。
I/O映像就是保存输入或输出数据的内存区域。西门子的S7-1200过程映像说明指出,这种访问方式让程序在一个执行周期内使用一致的输入信息。若传感器在本次输入刷新后才变化,普通映像读取可能要等到下一次刷新才看到变化;直接外设访问等机制则另有更新规则。
上升沿检测如何避免重复计数
同一件物料遮住光电传感器期间,“有料”可能连续多次被程序读为1。如果程序写成“只要有料就加1”,这一件就会被重复计数。正常循环检测中,可以保存上次读取值,只把“上次为0、本次为1”的变化识别为一次新到达,这就是上升沿检测。
假定初始记录为0,随后五次程序读取到的状态依次为0、1、1、1、0,对应新增计数应为0、1、0、0、0。持续的1表示同一次遮挡尚未结束,不代表新的物料。CODESYS标准库中的R_TRIG功能块就是用于检测布尔信号上升沿的功能。

这依赖采集和程序执行能够识别物料之间的间隔。若两件紧贴着经过,或短暂的0、1变化没有被所用采集机制捕获,边沿逻辑无法凭空恢复遗漏的事件。因而上升沿解决的是“持续信号被重复处理”,不是所有漏计问题。
程序保存当前工步,直到本件处理结束
入口检测到新物料后,程序进入“本件输送中”状态,并在检测结果有效时记录该件的分流方向。物料离开入口后,入口信号恢复为0,但这件物料仍在输送段上,不能因此把本次任务清空。PLC需要继续保留当前工步与分流结果,直到物料到达分流位置。
这说明现场输入和程序状态不是同一回事:输入描述最近采集到的现场条件,程序状态记录“这件事已经进行到哪里”。本例依靠单件进入条件维持物料与结果的对应关系;多件同时在输送线上运动时,还需要相应的位置跟踪和数据关联,不能直接沿用一个“当前工件”变量。
跨扫描保存工步,也不等于数据掉电后一定保留。正常运行时,状态数据可供下一轮程序继续使用;停电、重启或重新下载程序后如何恢复,要由存储属性和初始化逻辑决定。
输出推动设备动作,反馈决定下一工步
物料到达分流位置后,若本件应直行且下游允许接收,程序继续组织输送;若应侧推,则先使物料处于适合推料的位置,满足动作条件后发出推料指令。推料机构到位、物料离开以及机构返回等反馈,决定后续步骤是否可以进行。
例如“推料指令已发出”和“推料完成”之间,还隔着电磁阀切换、气缸运动和到位检测。程序应依据所需反馈结束工步,清除本件分流状态,再允许下一件进入。若到位反馈未在规定时间内出现,则进入对应的等待或故障处理,而不是仅因输出曾经接通就认定任务完成。
扫描周期如何组织输入、程序和输出?
PLC通常会反复完成输入数据更新、程序执行和输出更新,同时处理通信、诊断等工作。程序执行时,逻辑判断可以使用本轮读到的输入、之前保存的工步、计数值和定时器状态,计算新的控制结果。程序里写入输出数据与输出接口实际改变状态之间,也有相应的刷新环节。
“读取输入→执行程序→更新输出”适合描述信息流向,但不是所有PLC、所有任务都固定采用的时间顺序。例如S7-1200 V20手册对默认自动I/O更新的说明是:扫描开始先将输出映像写到物理输出,再读取输入并更新输入映像,随后执行循环程序。新的输出结果会按后续刷新机制传给现场。这是该型号、版本与配置的说明,不能推广为所有PLC的唯一扫描顺序。
循环程序之外,PLC还可能运行按时间触发或由外部事件触发的任务。任务如何安排、是否抢占其他程序以及使用哪份I/O数据,取决于具体控制器与配置。入门理解的重点是:PLC持续处理控制任务,而程序数据、现场信号和设备动作并不在同一瞬间一起变化。
为什么扫描时间不等于设备响应时间?
扫描时间描述PLC完成相应循环处理需要多久,并非只执行某一条指令的时间。欧姆龙的周期时间与I/O刷新说明将程序执行、I/O刷新、系统处理和外围服务计入其控制器的周期。因此,程序路径、通信及其他任务可能影响实际循环时间。
在前面的输送例子中,从物料触发分流位置的传感器,到推料机构实际动作,除了工艺规定的等待,还要经过传感器响应、输入滤波或采样、I/O刷新、程序调度与计算、输出传输,以及电磁阀和气缸动作。使用远程I/O时还会经过网络通信。扫描只是整条响应链的一部分。
假如一个短脉冲在两次普通输入采集之间出现又消失,程序可能两次都读到0;把计数逻辑改成上升沿也无法看到它。高速计数或事件捕获需要相应的硬件、模块或任务机制支持。更快的扫描或合适的中断可以改善相关处理环节,但不会消除传感器、网络和机械机构各自的时间。

PLC编程语言有哪些,分别怎样表达控制逻辑?
IEC 61131-3:2025的公开说明列出结构化文本(ST)、梯形图(LD)和功能块图(FBD),并规定顺序功能图(SFC)元素,用于组织程序和功能块。老设备或旧教材中仍会遇到指令表(IL),不能把旧版本的语言清单直接当成现行标准和所有控制器的共同能力。
| 表达方式 | 适合解释的逻辑 | 输送分流例中的用途 |
|---|---|---|
| 梯形图 LD | 以触点、线圈等图形表达条件组合,便于阅读开关条件。 | 将工件到位、下游允许、当前工步等条件组合成动作许可。 |
| 结构化文本 ST | 用文本语句表达判断、计算、循环和数据处理。 | 完成测量值换算,或处理多工件队列中的数据关联。 |
| 功能块图 FBD | 用功能块与连线表达信号及功能关系。 | 把边沿检测、计数、定时等功能按数据关系连接。 |
| 顺序功能图 SFC | 用步、转换条件和动作组织顺序过程。 | 表达等待来料、输送、分流、确认返回等工步。 |
这些方式可以在支持它们的开发环境中配合使用。同一计数逻辑无论写成梯形图还是文本,都必须明确“什么事件算一件”、状态何时复位、漏信号时怎样处理。语言形式不会自动解决工艺条件不清、变量关联错误或反馈缺失的问题;具体支持范围和执行语义应查所用控制器与软件文档。
一个PLC控制程序如何从工艺要求变成可运行逻辑?
以本篇的单件分流为例,先把工艺要求写成状态与条件:只有单元空闲且下游可接收时才能进料;入口上升沿新增一个工件;分流结果必须属于当前工件;推料到位并返回后才能释放下一件。随后列出I/O点、通信数据、工步变量、复位条件和异常状态,再把这些关系写入程序。这样才能区分“输入信号缺失”与“流程仍在等待正常条件”。
验证不能只看正常物料是否通过。还应检查传感器持续为1时是否重复计数、检测结果未到时是否误分流、下游停止后是否继续放料,以及机构未返回或重启后是否跳过必要确认。模拟测试可以核对逻辑路径,现场验证还要核对信号含义、实际动作和反馈时间。普通PLC中的工艺联锁不等于经过验证的安全功能,后者需要相应安全系统与验证。
PLC相较传统继电器控制的主要变化,是把大量控制关系交给可修改的程序和运行数据组织,同时增加计时、计数、运算与通信能力。硬件输入输出和执行机构仍然存在。理解PLC,应同时看清程序表达、采集机制和真实工艺三个层面,而不是只记住一种编程符号。
PLC主要应用在哪些场景?
包装、装配与输送:组织顺序动作和设备交接
包装设备需要依次完成供料、定位、封装和出料;装配工位需要在工件到位、夹具夹紧后,才启动压装或拧紧。PLC根据检测结果切换工步,用定时、计数和设备反馈组织这些动作。输送计数与分流,就是这类顺序控制的一个缩小示例。
泵组与过程设备:根据测量值启停或调节
水箱补水可以按液位决定泵的启停,并用不同的启动、停止液位避免泵在同一点附近频繁切换。多泵系统还可以记录运行状态、累计运行时间,按规则进行轮换。对于温度、压力等连续调节,具备相应功能的PLC可比较设定值与测量值,计算调节输出,交给阀门或驱动装置执行。
生产单元集成:协调专业设备的工作时机
视觉系统可以提供检测结果,机器人控制器负责机械臂运动,机床控制系统负责加工。PLC接收这些设备的就绪、完成和故障状态,组织启动请求与工件交接。例如工业机器人的机床上下料需要装夹、退出和加工条件相互配合,整线PLC可以承担其中的单元协调,而机械臂各关节的运动控制仍由机器人控制系统完成。
PLC与HMI、驱动器和工业计算机怎样分工?
HMI负责显示与操作入口。人员在界面上查看计数、修改允许调整的参数或发出启动请求,PLC仍需按程序判断执行条件。界面显示“运行命令”,与现场设备反馈“正在运行”也应区分。
驱动器负责相应的动力控制。PLC可发送启停、速度或位置目标,变频器或伺服驱动器完成自身电机控制环节,并返回运行与故障状态。PLC、驱动器和电机共同形成动作链,而不是PLC单独完成全部电机控制。
工业计算机常承担较复杂的数据处理或应用软件任务。例如图像分析、报表和上层计算,结果再交给控制系统使用。这些职责在具体产品中也可能集成。辨认PLC的作用,关键在于看它接收什么信息、保存什么状态、依据什么条件改变输出,以及怎样确认工序已经完成。
继续理解系统层面的关系,可阅读SCADA如何汇集控制器数据;理解生产任务与现场控制的交接,可阅读MES的生产执行流程。这些系统提供不同层次的信息与任务,现场动作仍须通过明确的控制条件和反馈来完成。
参考资料
- 欧姆龙:Programmable Controllers — Introduction;Explanation of Terms。
- 西门子:S7-1200 V20,Basic principles of process images;Processing the scan cycle in RUN mode。
- CODESYS:Standard Library 3.5.18.0,R_TRIG功能块说明。
- IEC:IEC 61131-3:2025,Programmable controllers — Part 3: Programming languages,公开摘要。
评论留言
暂时没有留言!