紧急求助

PLC到底是怎么跑起来的?求个通俗点的讲法

520
520
2026/04/14 08:32

最近带个新人,问我PLC的工作原理和工作方式,我发现自己只能讲个大概——扫描周期、输入采样、执行程序、输出刷新这套。但新人追问每个阶段具体干啥、为啥要循环扫描而不是事件触发,我就讲得有点卡壳了。

我平时主要搞机器人那套,PLC主要就是拿来当IO扩展和简单逻辑用,AB、西门子、三菱几个牌子都摸过,但说实话真没系统研究过底层。哪位能给个稍微完整点的说法?最好能结合实际程序说一下每个阶段发生了什么,别太教科书那种。

10 3

全部回复 (3)

小磊
小磊#1

其实没那么复杂,你就跟你新人这么说:PLC一上电就开始死循环,每一圈大概干三件事——先把所有输入模块的当前状态拍一张照片存起来(输入采样),这个阶段就算外部信号抖了一下也不会再采;然后从第一条指令开始一条条往下执行程序(程序执行),碰到线圈输出就先记在内存里,不会真往输出模块写;最后等所有指令跑完了,把内存里攒好的输出结果一次性刷到输出模块上(输出刷新),这时候继电器或者灯才会真动。

这个一圈的时间就是扫描周期,小程序一般几毫秒,大程序带通讯的话能到几十毫秒。西门子S7-1200默认大概10ms左右,具体可以在OB1里加个时间戳看看。你之前说的IO扩展用PLC没问题,但要知道这个扫描周期是硬性存在的,所以高速脉冲或者精确定时还是要用PLC的高速计数器或者运动控制模块,别指望主循环能干这事。

2026/04/14 11:57
马建华
马建华#2

你这个讲法漏了一个东西——中断。三菱和西门子都有中断OB或者中断指针,普通扫描周期是处理常规逻辑的,但高速计数器、通讯、故障这些是打断当前循环直接跳进去执行的。你跟新人讲的时候不说中断,他会以为PLC所有东西都是按固定节奏跑的,实际上遇到急事PLC是会插队的。

2026/04/14 16:32
吴元明
吴元明#3

AB的ControlLogix跟西门子那套不太一样,它是基于任务的,多个Task可以设不同的优先级和周期。比如连续任务、高速任务、周期任务分开跑,不是所有逻辑都堆在一个OB里。你要是带新人碰到AB的PLC,按西门子那套讲他会懵。

2026/04/15 16:04