技术干货

PLC扫描周期到底是咋回事?新人问个老问题别笑话

杰姐
杰姐
2026/04/01 10:21

说真的干了这些年机器人调试,PLC也摸过几个牌子,西门子三菱欧姆龙汇川都用过,但你要让我把PLC工作原理从头到尾讲透,我还真讲不清楚。

我理解的就是输入采样、程序执行、输出刷新这么三步走,一个周期完了再来一遍。但到底这个扫描周期里CPU具体在干啥?是逐条扫梯形图吗?遇到跳转指令呢?中断来了插队吗?

有没有老师傅能用大白话把这套讲明白的,最好带点实际程序例子那种,别上来就贴SFC状态图,看了头大。

12 3

全部回复 (3)

小宋
小宋#1

我就这么跟新人讲,PLC的CPU你别想太玄乎,它就一根筋从头跑到尾。梯形图从上到下、从左到右一条一条执行,碰到常开触点就去查对应输入点当前是0还是1,碰到线圈就去改输出点的状态寄存器,整个跑完一遍再把输出寄存器的值统一刷到物理端口上,这叫输出刷新。我用三菱FX5U实测过,单纯跑个空程序,扫描周期大概在0.5ms左右,加点通讯和模拟量采集能拉到3-5ms。

中断这事你得这么想,中断源到了CPU先把当前PC指针压栈存起来,跳去执行中断服务程序,跑完再弹回去继续扫。所以严格说扫描周期不是死的,中断一来时间就拉长,特别是那种周期1ms的高速计数器中断,没完没了地插队,主程序反而跑得慢了。

你做机器人调试的话,最该注意的是I/O响应延迟。比如输入点X0在周期开头20ms处来了信号,要等下一个扫描周期才能被读到,再加上输出刷新,最坏情况延迟差不多两个周期。所以有些对响应速度要求高的场合,比如急停信号,咱们都是走硬件直连,不靠PLC扫描。

2026/04/02 03:26
宋建国
宋建国#2

西门子S7-1200和1500那套跟三菱不太一样,它有OB1主循环,还有OB35之类的时间中断组织块,优先级分得很清楚。你要调试建议直接在TIA里插个RUNTIME监控,能看到当前OB的运行时间和整个循环的负载率,比自己猜准多了。

2026/04/03 03:59
潘广志
潘广志#3

你们讲的这些都对,但忽略了一个东西——程序长度。扫描周期长短最直接的因素就是程序步数,我之前接过一个坑爹项目,前一任工程师写了两万多步梯形图,里面还套了一堆FB互相调用,结果扫描周期干到28ms,机器人都跟着抖。后来我把没用的FB调用全砍了,结构改了之后压到6ms。你做的项目大不大?程序量多少步?

2026/04/05 18:15