控制算法要求如下:
控制一组 8 个彩色广告灯,如图 31-1 所示。启动时,要求 8 个彩色广告灯从右到左逐个点亮,全部灯点亮 10s 时,再从左到右逐个熄灭;全部灯熄灭2s 后,再从左到右逐个点亮;全部灯点亮 10s 时,再从右到左逐个熄灭;全部灯熄灭 2s 时,从左到右逐个点亮;全部灯点亮 10s 时,再从右到左依次熄灭;全部灯熄灭 2s 时,再从右到左逐个点亮。
时间轴标注:
17s 9s 17s 9s 17s 9s 17s 9s
左移1 右移0 右移1 右移0 右移1 右移0 右移1 左移0
输入/输出元件及控制功能表:
动作时序图如下:
物理排列(从左到右对应PLC地址从高到低):
完整周期时序(共6个阶段,总周期约82秒):
═══════════════════════════════════════════════════════════════
阶段①:右→左逐个点亮(每步0.5秒 × 8步 = 4秒)
══════════════════
阶段②:全亮保持 10 秒
───────────────────────────────────────────
阶段③:左→右逐个熄灭(每步0.5秒 × 8步 = 4秒)
───────────────────────────────────────────
阶段④:全灭保持 2 秒
───────────────────────────────────────────
阶段⑤:左→右逐个点亮(每步0.5秒 × 8步 = 4秒)
───────────────────────────────────────────
阶段⑥:全亮保持 10 秒
───────────────────────────────────────────
阶段⑦:右→左逐个熄灭(每步0.5秒 × 8步 = 4秒)
───────────────────────────────────────────
阶段⑧:全灭保持 2 秒
───────────────────────────────────────────
阶段⑨:左→右逐个点亮(每步0.5秒 × 8步 = 4秒)
───────────────────────────────────────────
阶段⑩:全亮保持 10 秒
───────────────────────────────────────────
阶段⑪:右→左逐个熄灭(每步0.5秒 × 8步 = 4秒)
───────────────────────────────────────────
阶段⑫:全灭保持 2 秒
───────────────────────────────────────────
阶段⑬:右→左逐个点亮(每步0.5秒 × 8步 = 4秒)
──────────────────────────────────────────
时间解读如下:
- "17s" = 4秒(点亮过程) + 10秒(全亮保持) + 3秒(前3步熄灭) = 17秒处触发某动作。
- "9s" = 4秒(熄灭过程) + 2秒(全灭保持) + 3秒(前3步点亮) = 9秒处触发某动作。
- "左移1" = 从左向右移动,状态变1(点亮)。
- "右移0" = 从右向左移动,状态变0(熄灭)。
核心编程思路(状态机 + 定时器).
这是一个六状态顺序控制,每个状态分为动态移位和静态保持两部分。
这是一个带全亮保持延时和全灭保持延时的复杂流水灯控制案例。我们来完整实现这个程序。
PLC 程序(带详细注释):
主程序如下:
网络 1:初始化与停止处理
网络 2:启动进入初始状态
网络 3:0.5秒步进脉冲生成
网络 4:全亮保持定时器(10秒)
网络 5:全灭保持定时器(2秒)
网络 6:状态机主控逻辑
子程序详细实现如下:
子程序 SBR_1:从右到左逐个点亮(Q0.0 → Q0.7)
子程序 SBR_3:从左到右逐个熄灭(Q0.7 → Q0.0)
子程序 SBR_5:从左到右逐个点亮(Q0.7 → Q0.0)
子程序 SBR_7:从右到左逐个熄灭(Q0.0 → Q0.7)
变量表汇总:
状态流转图(简化版):
调试步骤:
下载程序后,将PLC切换到RUN模式。
闭合I0.0,观察灯的动作顺序:
右→左逐个点亮(约4秒)
全亮保持10秒
左→右逐个熄灭(约4秒)
全灭保持2秒
左→右逐个点亮(约4秒)
全亮保持10秒
右→左逐个熄灭(约4秒)
全灭保持2秒
...周而复始
断开I0.0:所有灯立即全灭,状态复位。
时间对照说明:
本例 个人观点 ,内容仅供参考,请仔细甄别。
END
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!