ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

基于PLC的花式喷水池控制:步序表与时序复用设计

基于PLC的花式喷水池控制:步序表与时序复用设计

简介:围绕基于PLC的花式喷水池控制课程设计整理的文档,面向自动化、电气控制及相关专业学生与PLC初学者,可作为课程设计选题、程序编写和报告撰写的参考。压缩包内仅1个doc文件,大小约956KB,以完整课设报告的形式组织内容,便于直接查阅与借鉴。文档从设计目的、问题描述与控制任务入手,给出4组喷头、4种喷水模式的具体时序要求,并梳理启动/停止、单步/连续、方式选择等开关的控制逻辑;随后展开硬件配置、I/O地址分配、PLC外部接线与主电路设计,配合系统流程图和梯形图程序说明实现思路。仿真调试部分记录花样1至花样4的运行结果,可帮助读者对照验证定时器、计数器及联锁逻辑的正确性。目前已有1755人学习,适合需要完成PLC课设、理解西门子Step7编程流程或补充电气控制报告素材的读者参考。

1. 四组喷头、二十个喷嘴:基于PLC的花式喷水池控制的真正难点

四组喷头、每组五个喷嘴,二十个出水口最后只落到四个输出点上——这是基于PLC的花式喷水池控制最容易被低估的地方。不少人第一次做 PLC 课设,拿到题目觉得无非是让水柱按顺序起来再灭下去,串几个定时器就完事;真到仿真里跑连续模式,第二轮开始顺序就错位,改一次时序要重连半张梯形图。这套方案要解决的不是"水怎么喷得好看",而是同一套硬件怎么在四种完全不同的时序下反复复用、随时能停、停完能干净重来。适合正在交 PLC 课设的学生,也适合手上有个多段顺序控制小项目、需要一套改得动的程序结构的从业者。

2. 时序建模:四种花样拆成一张步序表

拿到题目先别开软件画梯形图。这个项目的输入输出关系不复杂,复杂的是时间轴,先把四段文字描述翻译成"哪几步、每步哪些喷头出水、各持续多久",后面写程序才有依据。这一步做扎实,程序量能少一半。

2.1 把文字描述翻译成时间轴

原文对四种花样的描述是自然语言,落到 PLC 里必须变成离散的步。翻译的规则只有一条:输出组合发生变化的那一刻,就是一个新步的开始。按这条规则拆下来,花样 1 是 5 步,花样 2 是 5 步,花样 3 是 3 步加一个循环,花样 4 最长,15 步左右。

花样步号喷头组合持续备注
114 号2 s逆序起喷
124、3 号2 s叠加
134、3、2 号2 s叠加
141、2、3、4 号15 s全开
15全停—结束步
211 号2 s顺序起喷
221、2 号2 s叠加
231、2、3 号2 s叠加
241、2、3、4 号30 s全开
25全停—结束步
311、3 号3 s交替组 A
322、4 号3 s交替组 B,计一次
331、2、3、4 号30 s交替满 5 次后进入
34全停—结束步
411 号2 s正向起喷
421、2 号2 s叠加
431、2、3 号2 s叠加
441、2、3、4 号32 s4 号补上后再全开 30 s
452、3、4 号2 s1 号先停
463、4 号2 s2 号停
474 号2 s3 号停
48全停1 s停水间隔
494 号2 s反向起喷
4104、3 号2 s叠加
4114、3、2 号2 s叠加
4121、2、3、4 号32 s1 号补上后再全开 30 s
413全停—结束步

花样 4 原文里"1—2—3—4 顺序延时 2 s 喷水,然后一起喷水 30 s"这句,第 4 号补上时其实已经全部打开了,所以步 4 我按 32 s 处理,前 2 s 算 4 号的补上时间,后 30 s 才是真正的全开段,两段合成一步不影响结果。反向段同理。这种合并能不能做,取决于验收时你按什么口径看时序——如果报告里要一步一对时间,就拆成两步;如果只看总时长和顺序,合并更省事。

花样 4 的反向段还有一个歧义要提前定死:原文"由 4—3—2—1 反向顺序按 2 s 顺序喷水",可以理解成叠加(4 先开,3 开时 4 不关,最后全开),也可以理解成交替(4 开则 3 关)。我按叠加做,因为后面紧接"一起喷水 30 s",叠加才能自然接上全开。如果答辩时被问到这个,能说清两种理解各自的掩码差别,比含糊过去强得多——表驱动的好处就在这里,换一个字节就能切。

2.2 为什么用步序表而不是定时器级联

最直觉的写法是定时器级联:T1 到点启动 T2,T2 到点启动 T3,一路串下去。花样 1 串 4 个,花样 2 串 4 个,花样 4 得串十几个,四个花样加起来二十多个定时器。S7-300 的定时器数量完全够,问题不在资源,在可维护性。

级联写法有三个绕不过去的毛病。第一,改时序要动程序结构,本来 2 s 改成 3 s,可能牵动后面所有定时器的预设值;第二,停止按钮按下时,定时器不会自动归零,正在走的那一级还带着剩余时间,下次启动第一循环就是残的;第三,连续模式要从最后一个定时器回到第一个,得额外写一堆复位逻辑,漏一个就出现"某一组喷头一直喷"。

步序表的思路是把"什么时候喷什么"从程序里抽出来,变成数据。程序只做三件事:维持一个 100 ms 的节拍、每拍给当前步的计时加一、计时到点就把步号加一。至于第几步开哪些喷头、走多久,全部查表。改时序只改表,程序一个字不用动——这是我做第二个时序类课设才想明白的事,第一版级联程序改到第三遍就想重写。

表里放什么?我一般给每个步分配 4 个字节:2 字节时间(100 ms 为单位)、1 字节输出掩码、1 字节目标步号。输出掩码的 bit0~bit3 分别对应 1~4 号喷头组,这样一个字节就把四组喷头的通断全表达了;目标步号填 0 表示顺延到下一步,填 255 表示本轮结束,填具体步号则是跳转——花样 3 的循环就靠这个字段实现。

2.3 单步与连续:差别只在循环边界

单步和连续听起来是两个模式,落到程序里其实只差一句判断:走到结束步之后,是停在原地,还是回到第 1 步。单步模式停在结束步并清空所有输出;连续模式回到第 1 步重新开始。

这里有个很细但很容易翻车的点:从结束步跳回第 1 步,不能直接跳。结束步的输出掩码是 0,但如果你在跳转的同一个扫描周期里就把步号改成 1,第 1 步的掩码会立刻覆盖输出,喷头根本没有熄火的时间,看起来就像水柱"闪"了一下直接接上下一轮。稳妥的做法是在结束步和起始步之间插一个过渡步,时间给 0.2~0.5 s,掩码为 0,让输出有一个明确的断开状态。这个过渡步在仿真里不一定看得出来,接上实物、电磁阀有机械动作时间的时候就很明显。

单步模式还有个隐蔽的坑:跑完一轮停下后,再按启动按钮应该是重新跑一轮,而不是从上次停的地方接着跑。所以单步结束后必须把步号强制清到初始步、计时清零、计数器清零,不能只把运行标志位复位。

2.4 停止、方式切换、步序推进的优先级

这三个信号的优先级要一开始定清楚:停止最高,方式切换次之,步序推进最低。

停止按钮按下,不管当前在哪一步、哪个花样,立刻做五件事:运行标志复位、步号清初始步、步内计时清零、输出掩码清 0、计数器清零。顺序不能反,尤其是输出掩码必须在同一次扫描里清掉,不能等下一个周期。我见过把停止只做成"复位运行标志"的写法,结果步序停了,但输出映像区里 Q4.x 还是上一拍的值,喷头就一直在喷——这就是典型的不该省的步骤省了。

方式选择开关在运行中被拨动怎么办,有两种处理,课程设计里我推荐简单的那种:检测到方式变化就强制回初始步,本轮作废,重新按启动。理由是行为可解释,答辩时一句话能说清。工业现场通常反过来,正在表演的花样不打断,等本轮结束再切到新花样,因为观众看到一半突然停水体验很差。这两种没有对错,关键是你得知道自己在选哪一种,以及为什么。

选择开关的采样位置也要定:方式号只在初始步采样,运行中不再刷新,这样即使开关有抖动或者被人误碰,也不会半路换花样。方式号锁存到一个中间字节 MB11 里,整个循环都用这个锁存值。

3. 硬件与I/O分配:从八个按钮点到四路接触器

软件想得再清楚,地址对不上全是白搭。这一章把输入输出点清一遍,顺便把几个电气上的坑填掉——课程设计里因为接线问题导致程序"看起来有 bug"的情况,比程序本身写错多得多。

3.1 输入输出清点与I/O地址表

输入一共 8 个点:启动、停止、单步、连续各一个,方式选择 4 个。输出 4 个点,对应四组喷头的电磁阀。地址分配直接沿用课程设计里最常见的那套:

类型设备地址说明
输入启动按钮 SB1I0.0常开,点动
输入停止按钮 SB2I0.1建议常闭
输入单步/连续开关 SA1I0.2单步位置接通
输入方式选择 1I0.4旋钮位置 1
输入方式选择 2I0.5旋钮位置 2
输入方式选择 3I0.6旋钮位置 3
输入方式选择 4I0.7旋钮位置 4
输出1 号喷头组电磁阀Q4.0外环
输出2 号喷头组电磁阀Q4.1一次外环
输出3 号喷头组电磁阀Q4.2内环
输出4 号喷头组电磁阀Q4.3中心

I0.3 在原文的表里给了"连续开关",和 I0.2 的单步开关配合用。这里有个选型上的分岔:单步/连续可以做成一个两位旋钮占一个点(单步位置接通,连续位置断开),也可以做成两个独立按钮各占一个点。前一种省点但逻辑要靠"断开即连续"来推,后一种直观但要多写一行互锁。课程设计建议按一个两位旋钮一个点来做,然后在程序里把 I0.2 取反当连续标志用——省一个点,也少一处可能接错的线。

方式选择开关同理。四个独立触点占 4 个点,一共 8 入,最小配置的 CPU 就够。如果换成 2 位 BCD 编码的旋钮,只要 2 个输入点,但程序里要多写一段译码,调试时也没法用强制单个位的方式快速切花样。做课设优先选好调试的方案,不是最省点的方案,这一点在最后验收演示的时候差别很大。

还有一个隐藏输入值得加:方式选择开关如果在运行中被拨到两个位置之间的空档,四个输入全为 0,程序要有默认处理,不能因为方式号无效就卡死。通常的做法是方式号无效时按花样 1 处理,或者直接不响应启动。

3.2 外部接线:输出隔离与接触器驱动

PLC 的输出点直接带电磁阀是不行的。四组喷头的电磁阀如果是 AC220V 的,一方面电压不匹配(多数小型 PLC 的输出是 24V 直流或继电器干接点),另一方面电磁阀是感性负载,断电瞬间的反电动势能把输出点打穿。标准做法是两级:PLC 输出点先驱动中间继电器 KA,KA 的触点再驱动电磁阀或者接触器。

接线要注意三点。第一,确认输出模块是继电器输出型还是晶体管型,晶体管型只能带直流负载且必须加续流二极管,继电器型可以直接切 220V 但触点寿命有限,动作频繁时还是加中间继电器。第二,注意输出公共端的分组,多数模块 8 个点分两组,每组一个公共端(1L、2L),接线时别把两组的地混在一起。第三,输入侧的公共端接法要和按钮类型匹配,源型漏型搞反了,按钮按下去全部输入点一起亮,这种"玄学"现象八成是公共端接错。

输入按钮的可靠性也要顺手处理。停止按钮用常闭触点,好处是断线时等同于按下停止,属于故障安全;如果用常开,线断了你永远停不下来。启动和方式选择用常开就行。按钮抖动在 PLC 里通常靠程序里的 10~20 ms 延时过滤,或者干脆依赖扫描周期,课程设计规模下不处理也问题不大,但报告里提一句说明你想过这件事。

3.3 主电路与水泵联锁

主电路比控制电路简单:三相电源经断路器 QF、接触器 KM 主触点、热继电器 FR 接到水泵电机。KM 的线圈由 PLC 输出经中间继电器驱动,FR 的常闭辅助触点串在 KM 线圈回路里做 overload 保护。

原文没有提水泵,但四组喷头要出水,后面必然有一台(或几台)水泵在供压。这里有个负责的做法值得加进去:任一组喷头有输出时才允许水泵运行,最后一组喷头停水后延时 2 s 再停泵。不加这个联锁,喷头全关而水泵还在转,管路压力憋着,轻则噪音大,重则把软管或接头憋漏;反过来,如果水泵随喷头同步启停,每次花样切换都启停一次,接触器动作太频繁,触点烧得很快。

联锁逻辑就两行:把所有输出掩码按位或,结果作为水泵接触器的启动条件;掩码全 0 后启动一个 2 s 断电延时定时器,延时到再停泵。这两行代码在报告里是加分项,因为它说明你想过喷头和泵的关系,而不是只盯着题目给的四行文字做。

主电路的图在报告里要画全:电源、断路器、接触器、热继电器、电机、接地。控制电路图则从 24V 电源画起,经过按钮到 PLC 输入,从 PLC 输出经 KA 到电磁阀线圈,一路画到底不漏线。审图的老师最先看的就是这两张图的完整性。

4. 梯形图与语句表落地:节拍定时器加步序表的完整程序

程序结构定了,剩下的就是把这套东西写进 STEP 7 V5.5。我按"一个主循环 + 三个功能 + 一张数据表"来组织,好处是仿真出问题时能一段一段断开定位,而不是对着两百行梯形图干瞪眼。

4.1 程序结构分层

OB1 只做调度,不写逻辑,依次调用三个功能块和一段输出映射:

块职责关键内容
FC1输入处理按钮沿检测、方式号锁存、单步/连续标志
FC2步序推进节拍定时器、步内计时、查表、步号加减
FC3输出映射掩码位到 Q4.x、水泵联锁
DB1步序表四个花样的全部步参数
OB1调度调用 FC1~FC3,处理停止复位

这样分层以后,调试花样 3 的循环次数不对,只需要盯 FC2 里那一小段计数判断,不用把整个程序重读一遍。课程设计的程序规模不大,但养成这个习惯,以后做真正带十几个工位的项目会轻松很多。

4.2 节拍定时器与步内计时

所有步的时间都用同一个 100 ms 节拍来数,不依赖各步单独的定时器。原因很简单:二十几个定时器各走各的,停止时要一个个复位,漏一个就是隐患;一个节拍源加一个整数计数器,清零只需要一条指令。

// 100 ms 节拍发生器:T1 自复位,每个周期产生一个扫描宽的脉冲 AN T 1 L S5T#100MS SD T 1 A T 1 FP M 2.0 // 上升沿检测,M2.0 为边沿存储位 = M 2.1 // M2.1 = 节拍脉冲,宽度一个扫描周期 // 步内计时:运行中每个节拍给 MW12 加 1 A M 2.1 A M 1.0 // M1.0 = 步序运行标志 JNB _001 L MW 12 L 1 +I T MW 12 _001: NOP 0 // 到点判断:MW12 达到本步设定值 MW14 时置位本步结束标志 L MW 12 L MW 14 >=I = M 1.1 // M1.1 = 本步结束

几个参数要交代清楚。S5T#100MS是定时器预设值,时基 100 ms,最大可到 9990 s,这个项目最长的一步 32 s,绰绰有余。M2.0 是FP指令必须的边沿存储位,每次执行后自动更新,不要和别的地方复用。MW12 是步内计时,单位 100 ms,所以表里 2 s 写成 20、15 s 写成 150。MW14 是本步目标时间,从表里查出来填进去。M1.0 是运行标志,只有它为 1 时计时才累加,这样暂停和停止状态下计时不会偷偷往前走。

节拍定时器的自复位写法(AN T1加SD T1)是关键。SD是接通延时,条件满足后开始计时,计时到 T1 位变 1;下一个扫描周期AN T1断开,定时器复位,再下一个周期又重新开始计。这样 T1 的常开触点每个 100 ms 只有一个扫描周期为 1,配合FP就能得到干净的脉冲。不熟悉这段的话,很容易写成定时器常开点一直为 1,结果计时飞跑。

4.3 步表结构与查表代码

DB1 里按花样分段存步参数,每步 4 字节。用一个字 MW10 存步号,换算出位偏移后间接寻址。

// 取当前步参数:步号 × 4 字节,再左移 3 位换算成位偏移 L MB 10 // MB10 = 当前步号 L 4 *I SLW 3 // 字节偏移转位偏移,等价于乘以 8 T MD 20 // MD20 = 本步参数的位偏移 OPN DB 1 L DBW [MD 20] // 偏移 +0:本步时间,单位 100 ms T MW 14 L MD 20 L 16 // 偏移 +2 字节 = +16 位 +D T MD 24 L DBB [MD 24] // 偏移 +2:输出掩码 T MB 20 L MD 20 L 24 // 偏移 +3 字节 = +24 位 +D T MD 28 L DBB [MD 28] // 偏移 +3:目标步号 T MB 21

这里用的是存储器间接寻址[MD20]。S7 的间接寻址地址是"位地址"格式,所以字节偏移要左移 3 位,SLW 3就是乘 8。第一次写这段很容易漏掉左移,结果查出来的参数永远落在第 0 步附近,现象是"不管第几步,动作都一样"。

目标步号有三个约定:0 表示顺延(下一步 = 当前步 + 1),255 表示本轮结束,其他值直接跳转。花样 3 的循环就用跳转实现:步 1、步 2 互相跳,每跳一次给计数器加一,计到 5 就把目标步号改成 3。

// 步号推进:本步结束时按目标步号决定下一步去哪 A M 1.1 // 本步结束 JNB _002 L MB 21 L 0 ==I JC _next // 目标步号为 0,顺延 L MB 21 L 255 ==I JC _end // 目标步号为 255,本轮结束 L MB 21 // 其他值:直接跳到目标步 T MB 10 L 0 T MW 12 // 计时清零 JU _002 _next: L MB 10 L 1 +I T MB 10 L 0 T MW 12 JU _002 _end: S M 1.2 // 置位本轮结束标志,交给模式处理 _002: NOP 0

注意跳转分支里每一处都要清 MW12。漏清一次,新的一步会带着上一步的剩余时间起跑,表现出来就是"某一步特别短"。这类 bug 在仿真里跑单轮不容易发现,连续模式跑三五轮才原形毕露。

步表在 DB1 里的实际内容,花样 1 大致是这样(时间单位为 100 ms):步 1 时间 20、掩码 08H(bit3 = 4 号,注意 bit0 对应 1 号,所以 4 号是 08H)、目标步 0;步 2 时间 20、掩码 0CH(4+3 号)、目标步 0;步 3 时间 20、掩码 0EH;步 4 时间 150、掩码 0FH;步 5 时间 0、掩码 00H、目标步 255。四个花样加起来 27 步左右,占用不到 120 字节,DB1 开 200 字节就够。

4.4 输出映射与停止复位

掩码到输出点是一对一映射,写法很朴素,但必须集中在一个网络里写,不能散落在程序各处——这是双线圈问题的根源。

// 输出映射:掩码 MB20 的 bit0~bit3 → Q4.0~Q4.3 A M 20.0 = Q 4.0 A M 20.1 = Q 4.1 A M 20.2 = Q 4.2 A M 20.3 = Q 4.3 // 水泵联锁:任一组喷头出水则开泵,全停后延时 2 s 停泵 L MB 20 L 0 <>I = M 3.0 // M3.0 = 有喷头在工作 A M 3.0 = Q 4.4 // 水泵接触器 AN M 3.0 L S5T#2S SD T 2 A T 2 = Q 4.5 // 可选:停泵确认信号

<>I是比较指令,判断掩码是否非零。这里顺便加了 Q4.4 作为水泵输出,虽然题目没要求,但接实物时必须有,报告里作为联锁设计单列一段。

停止复位的逻辑放在 OB1 的最后,保证每次扫描都把停止条件检查一遍:

// 停止处理:最高优先级,同一次扫描内清干净 A I 0.1 // 停止按钮,常闭接法时为 AN JNB _run R M 1.0 // 运行标志 L 0 T MB 10 // 步号回初始步 T MW 12 // 步内计时清零 T MB 20 // 输出掩码清零 T MB 21 R M 1.2 _run: NOP 0

如果停止按钮接的是常开触点,这里要改成A I 0.1前先取反,或者直接把指令换成AN I 0.1并把按钮接常闭。这个细节要和接线图严格对应,程序里写反了、图上画对了,上机就是"一上电就停"或者"按停止没反应",排查起来非常费时间。

4.5 花样 3 的循环与花样 4 的反向段

花样 3 的交替 5 次,用计数器 C1 实现,计数条件放在步 2 结束的那一拍:

// 花样 3 交替计数:仅在方式 3、步 2 结束时加一 A M 1.1 A M 11.2 // M11.2 = 当前方式为 3 L MB 10 L 2 ==I JNB _c1 L C 1 L 5 >=I JC _c1 CU C 1 // 计数加一 _c1: NOP 0

计数器计到 5 之后,把步 2 的目标步号从 1 改成 3,就自然过渡到全开 30 s 那一步。计数器要加一个复位条件:方式切换或者停止时清 C1,否则第二次跑花样 3 会一次交替都不做,直接进全开段。这个现象我第一次遇到时调了半小时,最后发现是计数器没复位,属于典型的"血泪经验"。

花样 4 的反向段在步表里就是普通的叠加步,只是掩码的位序反过来:步 9 是 08H、步 10 是 0CH、步 11 是 0EH、步 12 是 0FH。如果按交替理解,就把掩码改成 08H、04H、02H、01H 依次单独打开,程序一个字不动。这正是把时序抽成数据换来的灵活性,也是我在报告里最愿意强调的一处设计取舍。

5. 常见问题与排查:仿真能跑、上机就乱的五个坑

S7-PLCSIM 里跑得顺,不等于程序对。仿真器是理想环境,扫描周期恒定、输入输出无延迟、断电无残留,很多在实物上必然出问题的写法,在仿真里能一直不露馅。下面五条是这个项目里最容易翻车的地方,每条都按"看到什么、为什么、怎么改"说清楚。

5.1 第一轮正常,连续模式第二轮开始顺序错乱

现象:单步跑一轮,四种花样的动作都和题目一致;切到连续模式,第二轮开始喷头顺序偏移,或者某一步直接跳过。

原因:步号回初始步时没有把步内计时 MW12 清零,新的一轮第 1 步带着上一轮的残余时间起跑;或者计数器、边沿存储位没有一起复位。仿真里因为扫描周期稳定,残余时间恰好不影响结果,实物上负载变化导致扫描周期波动,问题就暴露了。

解决:所有状态量列一张复位清单——步号、步内计时、输出掩码、目标步号、交替计数器、结束标志、边沿存储位,一处不漏地在初始化时清零。清单写在纸上对照代码逐个打钩,别凭记忆。

5.2 按停止按钮后某一组喷头一直喷

现象:停止后其他三组都停了,剩一组持续出水,必须断电才停。

原因:这组喷头对应的 Q 点在程序里被赋值了两次。比如输出映射网络里写了一次,某个花样处理段里又直接= Q4.2写了一次。PLC 的扫描机制是后写的覆盖先写的,停止逻辑清的是映射位,但后面那处直接写 Q 的指令又把它置回去了。这类问题在梯形图里表现为"双线圈",软件编译不报错,是典型的黑匣子。

解决:全程序只允许一个网络写 Q 输出,其他所有地方只操作中间标志或掩码位。编译前用交叉引用表查一遍每个 Q 点出现的位置,出现两次以上就要么合并要么删掉。

5.3 运行中拨动方式开关,喷水动作乱套

现象:花样 1 正在跑,拨到花样 3,结果两组喷头同时按不同节奏动作,像是两个花样叠在一起。

原因:方式号每个扫描周期实时采样,步序表按新方式号去查,但步号还停在上一个花样的中间位置,查出来的是花样 3 表里对应步号的参数,两边对不上。本质是状态和参数不同步。

解决:方式号只在初始步采样并锁存到 MB11,运行中不再刷新;同时加一个方式变化检测,一旦发现输入的方式号和锁存值不同,强制回初始步、清空所有状态,等下一次按启动。行为上就是"切换花样会让当前表演作废",虽然不够平滑,但可解释、不会出错。

5.4 单步模式下按启动没反应,或者连跑不停

现象:开关拨到单步位置,按启动按钮喷水池跑一轮就停,再按启动没反应;或者拨到连续位置,跑完一轮却停下来。

原因:单步/连续开关的接线和程序里的取反关系搞反了,或者启动按钮没有做自锁,松开就断。另一个常见原因是启动按钮的上升沿用 M 位做边沿存储,而这个 M 位在别处也被FP/FN指令复用了,边沿检测失效。

解决:边沿存储位单独划一段地址区,专用不复用,比如 M2.0~M2.7 只给边沿指令用;启动逻辑用S/R指令做自锁,而不是靠按钮保持;单步/连续的关系在报告里画一张真值表,接线和程序照表对。

5.5 花样 3 交替次数不对,多一次或少一次

现象:交替 5

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进