核心内容摘要
【实践】香橙派AI Pro|PWM信号驱动SG90舵机,从参数解析到精准角度控制
在工业自动化控制中多电机顺序启停控制是极为常见的应用场景比如生产线输送系统、多台水泵联动、风机群组控制等。
核心需求是实现电机按预设顺序启动、逆序停止既能保护设备免受启动电流冲击也能保障生产流程的连贯性和安全性。
本文将基于CoDeSys平台详细拆解三台电机顺起逆停程序的设计思路、变量定义、梯形图逻辑带逐网络注释、安全特性及调试方法全程附带详细注释新手可直接参考学习、复用快速掌握多电机顺序控制和定时器、标志位的综合应用。
程序概述本程序核心功能是控制三台电机M
M
M3按照「M1→M2→M3」的顺序延时启动停止时按照「M3→M2→M1」的顺序延时停止同时集成急停保护、故障检测、状态指示等功能完全适配工业现场实际应用需求。
1 控制时序图启动流程按下启动按钮 → M1启动 → 延时5秒 → M2启动 → 延时5秒 → M3启动 → 三台电机全部运行停止流程按下停止按钮 → M3立即停止 → 延时5秒 → M2停止 → 延时5秒 → M1停止 → 所有电机停止注启动、停止的延时时间可在线修改默认设置为5秒适配大多数中小型电机启动需求。
详细变量定义变量定义遵循「分类清晰、注释完整、可扩展性强」的原则明确区分输入、输出、内部变量每个变量标注用途、地址默认及逻辑说明避免新手混淆。
以下是完整的IEC_ST标准变量声明可直接复制到CoDeSys变量声明区使用。
变量关键说明输入变量中EmergencyStop采用常闭触点符合工业安全规范正常时为TRUE急停按下时为FALSE时间参数StartInterval和StopInterval支持在线修改无需修改程序即可适配不同电机内部标志位bStartCmd、bStopCmd采用上升沿触发避免按钮长按导致程序重复触发FaultMotor用于记忆故障电机编号方便现场人员快速定位故障点。
梯形图程序梯形图LD是工业控制中最常用的编程方式直观易懂贴合电气控制回路逻辑。
以下逐网络拆解程序每个网络附带「梯形图文字模拟功能说明逻辑解析」新手可对照注释一步步理解每段逻辑的作用。
网络1急停信号处理组件解析EmergencyStop常闭触点程序中用「|/|」表示对应现场急停按钮的常闭接线bEmergency输出线圈急停激活标志位核心逻辑正常情况下EmergencyStopTRUE常闭触点闭合bEmergencyFALSE急停未激活当急停按钮按下时EmergencyStopFALSE常闭触点断开bEmergencyTRUE触发急停。
功能说明急停是最高优先级保护bEmergencyTRUE时会立即停止所有电机、复位系统运行标志无论系统处于启动、运行还是停止过程中均优先执行急停逻辑。
网络2启动/停止命令的上升沿检测防长按组件解析[P]上升沿检测指令Positive Edge核心作用是「仅在输入信号从FALSE变为TRUE时输出一个扫描周期的TRUE」Start、Stop常开触点程序中用「| |」表示对应启动、停止按钮bStartCmd、bStopCmd启动、停止命令标志位仅在按钮按下瞬间有效。
实际应用说明当操作人员按下启动按钮StartTRUE[P]指令触发bStartCmdTRUE仅保持一个扫描周期避免按钮长按导致系统重复启动按钮保持按下状态时bStartCmdFALSE按钮释放后再次按下才会再次触发上升沿生成启动命令停止按钮的上升沿检测逻辑与启动按钮一致防止长按导致停止命令重复触发。
网络3系统运行总控制核心逻辑锁存组件解析[SET]置位指令指令触发后输出变量变为TRUE并保持直到被复位指令触发[RST]复位指令指令触发后输出变量变为FALSE并保持优先级高于SET指令bSystemRunning系统总运行标志位是整个程序的「总开关」。
逻辑解析重点启动条件所有条件同时满足AND关系有启动命令bStartCmdTRUE启动按钮按下瞬间触发系统当前未运行bSystemRunningFALSE防止重复启动无急停信号bEmergencyFALSE急停未激活电机1正常Motor1_OKTRUEM1无过热故障M1是启动基础M1故障则系统无法启动。
停止条件任一条件满足OR关系有停止命令bStopCmdTRUE停止按钮按下瞬间触发急停激活bEmergencyTRUE急停按钮按下电机1故障Motor1_OKFALSEM1热继电器动作触发故障停止。
注复位指令RST优先级高于置位指令SET即使启动条件和停止条件同时满足也优先执行停止逻辑保障安全。
网络4顺序启动逻辑核心时序控制顺序启动逻辑分为3部分分别控制M
M
M3的启动通过定时器实现延时联动确保「M1启动→延时→M2启动→延时→M3启动」的时序。
1 电机1启动启动流程第一步逻辑解析电机1启动当系统运行标志bSystemRunningTRUE满足启动条件Motor1_RunTRUEM1接触器吸合电机启动定时器触发Motor1_RunTRUE且Motor1_OKTRUEM1正常运行时启动定时器StartTimer1开始计时计时时间StartInterval默认5秒。
TON定时器工作时序Plain Text时间线0秒Motor1_RunTRUE → StartTimer
INTRUE开始计时StartTimer
QFALSE计时中1秒StartTimer
ET1SStartTimer
QFALSE计时未完成4秒StartTimer
ET4SStartTimer
QFALSE计时未完成5秒StartTimer
ET5S达到PT设定值StartTimer
QTRUE计时完成保持TRUE
2 电机2启动延时5秒后启动流程第二步逻辑解析启动条件AND关系StartTimer
QTRUEM1启动延时完成、Motor2_OKTRUEM2无故障、Motor1_RunTRUEM1仍在正常运行电机2启动满足上述条件后Motor2_RunTRUEM2接触器吸合电机启动定时器触发Motor2_RunTRUE且Motor2_OKTRUE时启动定时器StartTimer2开始计时延时5秒为M3启动做准备。
关键互锁说明串联Motor1_Run常开触点确保只有M1正常运行时M2才能启动若M1故障停止Motor1_RunFALSEM2会立即停止避免设备损坏。
3 电机3启动再延时5秒后启动流程第三步逻辑解析启动条件AND关系StartTimer
QTRUEM2启动延时完成、Motor3_OKTRUEM3无故障、Motor2_RunTRUEM2仍在正常运行电机3启动满足上述条件后Motor3_RunTRUEM3接触器吸合电机启动此时三台电机全部启动系统进入稳定运行状态。
网络5逆序停止逻辑核心时序控制逆序停止逻辑分为4部分实现「M3立即停止→延时→M2停止→延时→M1停止」的时序停止命令触发后优先停止最后启动的电机避免设备冲击。
1 停止命令触发启动停止时序逻辑解析当有停止命令bStopCmdTRUE且系统正在运行bSystemRunningTRUE时触发停止定时器StopTimer1的输入StopTimer
INTRUE开始停止时序。
2 立即停止电机3停止流程第一步逻辑解析停止命令bStopCmdTRUE触发后立即执行复位指令RSTMotor3_RunFALSEM3接触器断开电机立即停止。
为什么立即停止M3逆序停止的核心是「先停最后启动的电机」M3是最后启动的优先停止M3可避免其负载对前两台电机造成冲击保障设备安全。
3 延时5秒停止电机2停止流程第二步逻辑解析定时器启动停止命令bStopCmdTRUE触发后StopTimer1开始计时计时时间StopInterval默认5秒电机2停止当StopTimer
QTRUE计时完成执行复位指令Motor2_RunFALSEM2接触器断开电机停止。
4 再延时5秒停止电机1停止流程第三步逻辑解析定时器启动StopTimer
QTRUEM2已停止后StopTimer2开始计时延时5秒电机1停止当StopTimer
QTRUE计时完成执行复位指令Motor1_RunFALSEM1接触器断开电机停止此时所有电机全部停止。
停止时序
总结清晰版Plain TextT0秒按下停止按钮 → bStopCmdTRUE → M3立即停止Motor3_RunFALSEStopTimer1开始计时T5秒StopTimer1计时完成StopTimer
QTRUE → M2停止Motor2_RunFALSEStopTimer2开始计时T10秒StopTimer2计时完成StopTimer
QTRUE → M1停止Motor1_RunFALSE所有电机停止网络6故障保护逻辑电机过热保护连锁停止故障保护逻辑针对每台电机的热继电器反馈信号Motor1_OK、Motor2_OK、Motor3_OK实现「故障电机停止连锁保护」避免故障扩大。
1 电机1故障处理最严格连锁停止所有电机逻辑解析故障检测当Motor1_OKFALSEM1热继电器动作电机过热故障执行置位指令FaultMotor1记录故障电机为M1连锁停止FaultMotor1检测到M1故障时同时复位Motor1_Run、Motor2_Run、Motor3_Run停止所有电机。
为什么停止所有电机M1是整个启动流程的基础M1故障后M