4模式小车系统设计 200smart
A1 HMI系统设立
1. S7-200 SMART PLC 工程准备
打开 STEP 7-MicroWIN SMART 编程软件,新建空白工程
删除程序块中默认的无用程序段,将主程序 OB1 重命名便于识别
点击「通信」→「查找 PLC」,确认 PLC 默认 IP 为
192.168.0.1,通信正常后保存工程
2. MCGS 触摸屏工程与通讯设置
打开 MCGS 组态软件,新建触摸屏工程,确认屏型号后进入组态界面
打开「设备窗口」,添加TCP/IP 父设备,再添加西门子 S7-200 SMART 子设备
触摸屏本地 IP 设置为
192.168.0.190(需与 PLC 同网段)PLC 设备地址填写
192.168.0.1,与实际 PLC 一致
点击「文件」→「工程另存为」,保存到桌面,完成基础工程搭建
二、用户窗口框架搭建
在「用户窗口」中新建 3 个基础窗口,作为整个项目的页面框架:
封面窗口:开机锁屏页,作为初始启动画面
欢迎画面窗口:功能导航过渡页
监控画面窗口:核心动画与控制页
三、封面与欢迎画面细节制作
1. 封面页面制作
右键画面空白处→「装载位图」,导入背景底图,调整大小铺满画面
添加「按钮」构件:取消背景图,设置填充色,按钮文本改为「欢迎进入」
按钮操作属性设置为「打开用户窗口」,目标选择「欢迎画面」
可选优化:文本可设置跑马灯滚动效果,调整字号与颜色提升视觉效果
2. 欢迎页面制作
(1)标题与装饰
装载西门子 LOGO 位图,调整大小后放置在画面合适位置
添加「标签」构件,输入文本:
基于西门子S7-200 SMART的四模式小车系统扩展属性勾选「跑马灯」,方向设为向左,步进值自定义,解决长文本显示不全的问题
设置无填充、无边线,调整字号至合适大小
(2)日期与时间显示
添加标签构件,选择「显示输出」→「字符串输出」,关联系统变量
$Date,用于显示日期复制该标签,修改关联变量为
$Time,用于显示时间,两个标签并排摆放
(3)导航按钮组
添加 1 个按钮,文本设为「进入监控」,操作属性选择「打开用户窗口」,目标为「监控画面」
复制该按钮,文本改为「返回锁屏」,操作属性选择「打开用户窗口」,目标为「封面」,填充色改为红色做区分
选中两个按钮,通过「对齐」工具设置左对齐、上下等间距,保证排版整齐
(4)背景优化
调整画面背景色为浅色系,提升内容辨识度;也可导入坦克素材作为装饰背景
四、监控画面:坦克运动动画组态
这是核心功能部分,通过 PLC 变量控制坦克的移动方向和位置。
1. 素材与轨道准备
准备正反两个方向的坦克侧位图(纯色背景最佳),通过 PPT 处理后导出为位图,保存到桌面
在监控画面中添加矩形构件模拟导轨,设置填充色,调整长度与位置
用取色器提取坦克图底色,将画面背景色设为同色,实现无缝融合
2. 实时数据库变量定义
新增 3 个关联 PLC 的变量:
表格
变量名 | 类型 | PLC 地址 | 功能说明 |
|---|---|---|---|
向左显示 | 布尔型 | M0.0 | 控制左向坦克图的可见性 |
向右显示 | 布尔型 | M0.1 | 控制右向坦克图的可见性 |
坦克位置 | 数值型 | VD0 | 控制坦克水平位移,范围 0~100 |
3. 坦克构件与可见度设置
导入左向坦克位图,属性→「可见度」,表达式填写
M0.0=1,即 M0.0 接通时显示左向坦克复制坦克构件,替换位图为右向坦克,可见度表达式填写
M0.1=1选中两个坦克图,执行「中心对齐」,保证正反切换时位置不偏移
4. 水平移动动画配置
通过 VD0 的数值变化,控制坦克在导轨上的位置:
分解坦克组合单元,单独选中左向坦克图,属性→「动画连接」→「水平移动」
最大偏移量填写导轨的实际像素行程(终点坐标 - 起点坐标,示例中为 560 像素)
表达式对应值填写
100,关联变量选择VD0,即 VD0=0 时在最左端,VD0=100 时在最右端右向坦克图执行完全相同的水平移动配置,保证正反移动行程一致
选中导轨构件,设置「排列→置于最上层」,遮挡坦克超出轨道的部分
五、PLC 程序编写
1. 脉冲生成子程序(控制移动速度)
新建子程序,重命名为「脉冲生成」,作用是产生固定周期的脉冲,降低坦克移动速度。
网络逻辑:SM0.0(运行时常开)串联 T37 的常闭触点,驱动 T37 定时器线圈,PT 值设为 1
原理:T37 为 100ms 时基定时器,自复位后产生周期 100ms 的脉冲,用这个脉冲触发位置加减,避免移动过快
2. 运动控制子程序
新建子程序,重命名为「运动控制」,包含方向控制和位置计算两部分。
(1)上电初始化
网络 1:SM0.1(首次扫描导通一个周期)触发
置位 M0.1(向右显示)
复位 M0.0(向左显示)
功能:PLC 上电时默认显示右向坦克
(2)方向切换控制
网络 2:Q0.0(左行输出)常开触点触发
置位 M0.0(向左显示)
复位 M0.1(向右显示)
网络 3:Q0.1(右行输出)常开触点触发
置位 M0.1(向右显示)
复位 M0.0(向左显示)
功能:小车行驶方向切换时,同步切换触摸屏显示的坦克方向
(3)位置计算(带行程限位)
网络 4(左行减计数):条件为 SM0.0 且 T37 常开 且 Q0.0 常开 且 VD0>0,执行减法指令
VD0 - 1 → VD0网络 5(右行加计数):条件为 SM0.0 且 T37 常开 且 Q0.1 常开 且 VD0<100,执行加法指令
VD0 + 1 → VD0功能:每 100ms 更新一次位置,同时限制 VD0 在 0~100 之间,防止坦克超出导轨行程
3. 主程序调用
在主程序 OB1 中:
网络 1:SM0.0 常开触点,调用「脉冲生成」子程序
网络 2:SM0.0 常开触点,调用「运动控制」子程序
六、下载调试
将 PLC 程序下载到 S7-200 SMART 中,切换到 RUN 模式
MCGS 点击「工程下载」→「启动运行」,进入模拟运行或下载到触摸屏
测试验证:
强制 Q0.1 导通,坦克应匀速向右移动,到最右端自动停止
强制 Q0.0 导通,坦克应切换方向并匀速向左移动,到最左端自动停止
切换画面、锁屏功能均正常生效
A2 模式选择
承接前面坦克运动工程,新增 4 种运行模式切换,包含 PLC 变量规划、符号表、模式子程序、触摸屏箭头切换动画、模式选择按钮全套操作。
一、PLC 变量规划(规避原有地址冲突)
之前坦克动画占用了 M0.0、M0.1、VD0,模式功能地址全部错开,防止地址覆盖冲突。
1. 新建符号表 1:smi 交互(模式选择中间继电器 M 区)
右键程序块 → 插入符号表,命名smi交互起始地址M5.0(避开前面 M0.x)
表格
地址 | 名称 | 说明 |
|---|---|---|
M5.0 | 模式一 | 手动模式触发 |
M5.1 | 模式二 | 模式二触发 |
M5.2 | 模式三 | 模式三触发 |
M5.3 | 模式四 | 模式四触发 |
2. 新建符号表 2:数字量数据(模式存储 VD 寄存器)
右键插入符号表,命名数字量数据起始地址VD100(远离 VD0 坦克位置变量,无冲突)
表格
地址 | 名称 | 说明 |
|---|---|---|
VD100 | 模式数值 | 32 位整数,存储当前模式 1/2/3/4 |
二、PLC 子程序:模式选择(核心逻辑)
右键子程序 → 插入子程序,重命名:模式选择
主程序 OB1 中用 SM0.0 常开调用该子程序,全程循环执行
子程序内梯形图逻辑(分两段)
网络 1:上电初始化,默认模式 1
SM0.1(PLC 首次扫描脉冲) → MOVE 双字传送指令 IN=1,OUT=VD100 作用:上电直接赋值模式 1,避免 VD100=0 导致触摸屏箭头全部隐藏。
网络 2:按钮触发切换对应模式数值
四条并联传送支路:
M5.0 常开接通 → MOVE DW 1 → VD100(选模式一)
M5.1 常开接通 → MOVE DW 2 → VD100(选模式二)
M5.2 常开接通 → MOVE DW 3 → VD100(选模式三)
M5.3 常开接通 → MOVE DW 4 → VD100(选模式四)
三、触摸屏素材制作(四方向箭头,WPS PPT)
打开 PPT,新建空白页面,删除默认元素
插入圆形:尺寸 10×10,白色填充;再插入箭头形状
向上箭头:组合圆形 + 箭头 → 右键另存为图片 2(桌面)
图形旋转 90°(右箭头)→ 另存图片 3
旋转 180°(下箭头)→ 另存图片 4
旋转 270°(左箭头)→ 另存图片 5 最终得到 4 张独立箭头位图:上、右、下、左。
四、监控画面组态:模式箭头动态切换
打开监控画面,添加位图构件,装载【向上箭头图片 2】,固定尺寸 100×100
复制 3 份位图,分别装载右、下、左箭头
分别设置可见度动画(VD100 为判断条件):
向上箭头:可见表达式
VD100 = 1向右箭头:可见表达式
VD100 = 2向下箭头:可见表达式
VD100 = 3向左箭头:可见表达式
VD100 = 4
框选四个箭头 → 排列 - 同心对齐 → 合成单元,叠放在同一位置 效果:当前模式数值是几,就只显示对应方向箭头,其余自动隐藏。
五、触摸屏模式切换按钮制作
添加标准按钮构件,取消背景、自定义填充色,文字:进入模式一
按钮【操作属性】:按下置 1、松开清 0(按 1 送 0),关联 PLC 变量 M5.0
复制三个按钮,批量修改:
按钮 2:文字 = 模式二,关联 M5.1
按钮 3:文字 = 模式三,关联 M5.2
按钮 4:文字 = 模式四,关联 M5.3
框选全部按钮,使用对齐工具均匀排布,美化界面。
六、下载与调试步骤
先将完整 PLC 程序(运动控制 + 脉冲生成 + 模式选择)下载至 200SMART
MCGS 工程保存后点击【工程下载】,启动模拟运行
功能测试:
PLC 上电,箭头默认显示向上(模式 1,VD100 初始值 = 1)
点击「模式二」按钮,M5.1 导通,VD100 赋值 2,画面切换向右箭头
点击模式三 / 四,箭头同步切换下、左方向
无冲突说明:
M5.x 独立分区,不会覆盖之前坦克 M0.0/M0.1;
VD100 和坦克位置 VD0 地址隔离,互不干扰。
A3手动模式
A4 随动模式
承接前文四模式切换工程,新增滑块滑轨随动定位功能,拖拽滑块小车自动追踪目标位置,同时解决手动 / 随动模式输出干涉、互锁限位、实时位置显示全套流程。
一、PLC 变量新增(数字量数据符号表扩展)
原有:VD0(坦克当前位置 0~100)、VD100(模式数值 1/2/3/4) 新增地址VD104,无地址冲突:
表格
地址 | 名称 | 数据类型 | 作用 |
|---|---|---|---|
VD104 | 目标数值 | 32 位有符号双字 | 触摸屏滑块拖拽设定目标位置 |
二、MCGS 触摸屏:滑轨滑块构件制作
监控画面拖入滑块构件,滑块宽度、滑轨宽度统一设 50 像素,界面规整美观
滑块动画关联变量:
VD104,数值上下限设置0~100滑块读写属性:读写模式,拖拽时实时修改 PLC 内 VD104 目标位置
界面排版:滑块居中摆放,预留下方数据显示区域
三、实时位置监视文本组态(直观显示当前 / 目标位)
网络 2:位置对比 + 左行输出(当前位置 > 目标位置)
网络 3:到位停机(当前位置 = 目标位置)
比较指令VD0 = VD104复位指令R Q0.0, 1、R Q0.1, 1,左右电机全部停止
关键要点:软硬互锁
五、主程序条件调用(解决模式干涉核心)
六、下载调试现象说明
七、当前工程现存缺陷与优化思路
1. 模式切换干涉问题
问题:模式一手动、模式二随动切换瞬间,电机输出状态不会自动复位,切换后小车会短暂窜动。 优化方案: 在「模式选择」子程序增加逻辑:VD100 数值变化时,复位 Q0.0、Q0.1 左右行输出,切换模式前小车强制停机。
2. 界面构件排版杂乱
问题:模式按钮、滑块、数值文本上下左右不对齐。 优化方案: MCGS 框选全部构件,使用工具栏对齐工具:左对齐、上对齐、横向等间距、纵向等间距,标准化 UI 布局。
3. 无模式切换停机缓冲
进阶优化:模式切换时增加 T37 延时 0.1 秒停机缓冲,等小车完全停稳再切换控制逻辑,动作更平稳。
八、整套功能运行流程总结
拖入矩形框,文字标注实时位置监视作为分区标题
添加标签,勾选【显示输出】→【数值量输出】
表达式:
VD0(小车实时位置)单位填写:米(模拟单位,仅界面展示)
复制标签,关联变量
VD104,用于显示滑块设定的目标位置框选两个数值标签,使用上对齐、等间距排版,解决按钮错位不美观问题
四、PLC 子程序:随动程序(模式二专用逻辑)
新建子程序,命名「随动程序」,仅 VD100=2(模式二)时主程序调用
核心梯形图逻辑(SM0.0 全程循环)
网络 1:位置对比 + 右行输出(当前位置 < 目标位置)
比较指令:
VD0 < VD104互锁逻辑:AN Q0.0(断开左行)
置位
S Q0.1, 1右行输出,小车向右靠近目标比较指令:
VD0 > VD104互锁逻辑:AN Q0.1(断开右行)
置位
S Q0.0, 1左行输出,小车向左靠近目标软件互锁:启动右行时切断左行输出,启动左行切断右行,杜绝两路输出同时导通短路风险
行程限位:依托 VD0 0~100 数值范围,不会出现小车超轨
主程序内通过比较触点判断当前模式 VD100,选择性调用子程序:
VD100=1:调用运动控制(手动模式)VD100=2:调用随动程序(滑块追踪模式)VD100=3/4:预留后续两种模式子程序调用位
故障根源:未做条件调用时,手动、随动程序同时运行,Q0.0/Q0.1 被两套逻辑反复置复位,输出冲突、小车动作紊乱。
优化方案:单一模式同一时间仅执行一套控制子程序,模式切换时自动切断另一套逻辑。
上电默认模式 1(手动),点击模式二按钮后 VD100=2,随动程序启动
拖拽触摸屏滑块到 60 → VD104=60,小车自动走到 58 左右停止
微小差值为 PLC 扫描周期、通讯延迟硬件误差,无持续抖动
滑块拖至 100,小车运行至轨道最右端停机;拖至 0,自动回到最左端
切回模式一,滑块随动逻辑立即失效,恢复手动按钮控制小车
PLC 上电 → SM0.1 初始化 VD100=1,默认手动模式
触摸屏点击模式二按钮 → M5.1 导通,MOVE 2→VD100
主程序检测 VD100=2,调用随动子程序
拖拽滑块修改 VD104 目标数值,PLC 实时对比 VD0 与 VD104
根据大小关系自动输出左 / 右行,到位双输出复位停机
画面实时显示当前位置 VD0、目标位置 VD104,直观观察追踪效果
切回模式一,随动程序停止,恢复手动点动控制小车
A5 自动模式
基于前面手动模式 1、滑块随动模式 2,新增模式三自动三工位循环,包含限位仿真、自动启停逻辑、多步流程、运行状态文字提示、模式切换冲突问题说明。
一、PLC 地址扩容(不与原有地址冲突)
原有占用: M0.0/M0.1 坦克方向;M0.2/M0.3/M0.4 工位限位; M5.0~M5.3 模式选择;VD0 坦克位置;VD100 模式数值;VD104 随动目标值
1. 新增 M 区中间继电器
M5.6:自动启动按钮(触摸屏按钮按 1 松 0 触发)
M5.7:自动停止按钮
2. 数字量数据符号表新增寄存器
表格
地址 | 名称 | 类型 | 功能 |
|---|---|---|---|
VD108 | 自动状态 | 32 位有符号 | 自动流程步序:0 = 停止,1 = 复位回 A,2 = 前往 B,3=B 点延时,4 = 返回 A,5 = 前往 C,6 = 回到 A 完成一轮循环 |
二、触摸屏工位限位指示灯制作(A/B/C 三点仿真限位)
监控画面插入 3 个矩形方框,灰色底色,得电变为红色;
分别绑定可见度:
一号灯(A 工位):M0.2=1
二号灯(B 工位):M0.3=1
三号灯(C 工位):M0.4=1
框选三个灯,使用「上对齐、横向等间距」规整排版;
原理:依靠 VD0 坦克位置模拟物理限位,无需外接真实传感器。
三、子程序 1:限位模拟(全程循环执行)
子程序命名:限位模拟,SM0.0 常开持续扫描 梯形图三段比较赋值:
VD0 = 0→ 输出 M0.2=1(到达 A 工位限位)VD0 = 50→ 输出 M0.3=1(到达中间 B 工位限位)VD0 = 100→ 输出 M0.4=1(到达 C 工位限位) 坦克走到对应坐标,对应限位指示灯自动变红,模拟传感器信号。
四、子程序 2:自动程序(仅 VD100=3 模式三才调用)
基础规则
启动联锁:只有 VD108=0(自动停止状态)时,M5.6 启动信号才生效;运行中按启动无响应,防止流程错乱。
停止逻辑:M5.7 按下,复位 VD108=0,同时复位 Q0.0 左行、Q0.1 右行,电机立即停机。
流程总逻辑(六步循环)
步 1 VD108=1:自动复位回 A 工位
置位 Q0.0 左行; 触发 M0.2(A 限位到位)后,复位左行输出,MOVE 2→VD108 进入第二步。
步 2 VD108=2:A→B 右行
置位 Q0.1 右行; 触发 M0.3(B 限位到位),断开右行,MOVE 3→VD108。
步 3 VD108=3:B 工位延时停留
使用 T38 定时器(避开已占用的 T37 脉冲定时器),延时 2s; 定时到后 MOVE 4→VD108。
步 4 VD108=4:B 返回 A 左行
置位 Q0.0 左行;到达 A 限位 M0.2,复位左行,MOVE 5→VD108。
步 5 VD108=5:A→C 右行
置位 Q0.1 右行;到达 C 限位 M0.4,断开右行,MOVE 6→VD108。
步 6 VD108=6:C 返回 A 左行
置位 Q0.0 左行;回到 A 限位 M0.2,复位左行输出; MOVE 0→VD108,一轮循环结束,回到停止等待状态。
如需无限循环:在 VD108=6 完成后,直接 MOVE 1 而不是 0,自动重复往返。
五、触摸屏自动启停按钮制作
自动启动按钮
填充绿色、黑色边框、黑色文字 START;
操作属性:按 1 送 0,绑定 M5.6。
自动停止按钮
填充红色、黑色边框、白色文字 STOP;
操作属性:按 1 送 0,绑定 M5.7。
六、自动运行状态文字监视(多状态切换显示)
新建 3 个文本标签,叠放同一位置,依靠 VD108 步序控制可见度:
文本 1:系统停止中,等待启动 可见条件:
VD108 = 0文本 2:系统复位中 可见条件:
VD108 = 1文本 3:系统运行中 可见条件:
VD108 > 1三者合并单元,画面根据自动流程自动切换提示文字。
七、主程序调用逻辑
VD100=1(模式一手动):调用运动控制子程序
VD100=2(模式二随动):调用随动程序
VD100=3(模式三自动):调用自动程序
限位模拟子程序全程 SM0.0 调用,所有模式共用工位限位信号
八、整机运行测试效果
切模式三,按下 START: 第一步自动左行回到 A 原点复位; 再右行到 B,停留 2 秒;返回 A,再跑到 C,最后回 A 停机;
运行中按下 STOP,电机立刻停机,状态显示「系统停止中」;
停机后才可再次启动,运行状态按启动无任何反应。
九、现存核心缺陷:多模式运行干涉
问题现象
自动模式正在运行时,直接切换到随动 / 手动模式,Q0.0、Q0.1 输出未复位,电机继续运转,但画面提示文字错乱;
模式切换瞬间两套控制逻辑同时作用于左右行输出,程序冲突、坦克动作失控、甚至扫描卡死。
冲突根源
仅靠 VD100 条件选择性调用子程序,但模式切换瞬间没有强制停机、清除步序标记:
自动模式运行时 VD108≠0,切去其他模式后自动步序未清零;
左右行输出 Q0.0/Q0.1 保持原有导通状态,其他模式程序继续驱动电机。
解决方案(下一课时优化重点)
在「模式选择子程序」增加模式切换判断:只要 VD100 数值发生变化,立即复位 Q0.0、Q0.1,切断电机输出;
模式切换时复位 VD108 自动步序、VD104 随动目标值,清空所有模式运行标记;
增加互锁:任意模式运行期间,屏蔽另外两种模式的控制逻辑输出;
模式切换增加短延时缓冲,待电机完全停机后再启用新模式控制。
A6 模式协调
协调子程序:彻底解决四大模式切换冲突完整教程
一、模式冲突根源回顾
之前三套子程序(手动、随动、自动)采用条件调用,但切换模式时存在 3 类遗留问题:
电机输出锁存:Q0.0 左行、Q0.1 右行置位后不会自动断开,切模式后电机持续运转;
自动步序残留:VD108 存储自动流程步数,中途切模式不清零,再次切回自动会错乱运行;
随动无扰切换失效:VD104 滑块目标值与小车当前位置 VD0 不一致,切进随动瞬间小车自动窜动。
解决方案:新增协调子程序,全程循环扫描,任意模式切换瞬间统一清理所有运行标记、输出、寄存器,实现无扰动、无冲突切换。
二、新建协调子程序基础配置
右键程序块 → 插入子程序,重命名:协调程序
主程序 OB1 使用 SM0.0 常开,全程调用协调程序(所有模式共用,永久执行)
核心触发条件:捕捉模式切换动作(M5.0/M5.1/M5.2/M5.3 任意模式按钮按下,上升沿触发复位逻辑)
三、协调子程序完整梯形图逻辑(分 4 大网络)
网络 1:捕捉模式切换信号,触发全局复位
并联四条支路:M5.0、M5.1、M5.2、M5.3(四个模式选择按钮)
整条支路添加上升沿 EU 指令作用:只有点击切换模式的一瞬间执行下方清理逻辑,不会持续重复复位。
网络 2:强制切断电机左右行输出(干掉底层执行机构)
上升沿触发后执行复位指令:R Q0.0, 1复位左行输出R Q0.1, 1复位右行输出 效果:切换模式瞬间电机立刻停机,杜绝两套程序同时驱动输出冲突、短路风险。
网络 3:清空自动模式步序标记(清除自动程序残留状态)
使用 MOV 双字传送指令:IN=0 → OUT=VD108原理:自动模式依靠 VD108 判断流程步数,切换模式直接清零步序,下次进入自动强制从头复位,不会延续上次未走完的工位流程。
网络 4:随动模式无扰同步(解决切随动小车窜动问题)
MOV 双字传送指令:IN=VD0(小车实时位置) → OUT=VD104(滑块目标位置)核心作用: 切换到随动模式瞬间,直接把小车当前坐标赋值给滑块设定值,滑块目标 = 小车实际位置,进入随动模式小车原地不动;只有手动拖动滑块才会跟随移动,完美消除切换窜动。
四、整套程序运行逻辑对应实操现象
自动模式运行中,直接切手动 / 随动
协调程序捕捉模式切换上升沿;
Q0.0/Q0.1 立刻复位,小车停机;
VD108 清零,自动流程作废;
VD104 同步当前小车坐标,后续切随动不会窜动。
随动模式拖动滑块至 60,切换自动模式
电机立刻停止;
自动步序归零,重新点启动优先回 A 工位复位,流程不受之前滑块数值干扰。
手动点动小车到 100,切换随动模式
VD104 直接等于 100,滑块自动对齐当前位置,画面、小车都静止,拖动滑块才会运动。
五、设计思路总结(程序逻辑类比人生)
能直接清除的全部清零电机输出 Q、自动流程步序 VD108 属于 “正在执行的动作”,切换新模式必须全部终止,不保留旧状态,相当于开启新状态前清空旧事务。
无法直接消除的做同步补偿随动模式目标值与实际位置存在差值会引发动作,不能简单清零,采用同步赋值欺骗逻辑,让目标与现状统一,实现平稳过渡。
统一管理所有模式状态 协调程序作为整套小车系统的 “总管家”,所有模式切换动作统一在此处理,每个独立控制子程序只负责对应模式运行,互不干涉,模块化结构清晰,后期新增模式仅需在此新增对应复位逻辑即可。
六、整机完整程序结构梳理
永久循环调用(SM0.0):限位模拟子程序、协调子程序
条件选择性调用(依靠 VD100 模式数值)
VD100=1:运动控制(手动模式)
VD100=2:随动程序(滑块追踪)
VD100=3:自动程序(A-B-C 三工位循环)
模式选择子程序:触摸屏按钮赋值 VD100 切换模式
协调程序:模式切换瞬间统一停机、清状态、同步随动坐标,彻底解决多模式干涉 bug。
