中文脚本运动控制平台;中文、低代码、流程复用
本编主要讲述的特点是:流程复用
中文和低代码,详情见:中文脚本运动控制平台
三个关键点:
一、提取出不一样的对象
二、规划好流程的状态
三、状态控制
硬件就拿以下流水线做示例:
有3条流水线,每一条流水线都有一个工位,工位上都有:减速,到位,阻挡,顶升。
IO有:
输出信号:(注:是否减速>>>是否电机减速,是否启动>>>是否启动电机)
是否减速1 是否减速2 是否减速3
是否启动1 是否启动2 是否启动3
阻挡气缸1 阻挡气缸2 阻挡气缸3
顶升气缸1 顶升气缸2 顶升气缸3
输入信号:
减速信号1 减速信号2 减速信号3
到位信号1 到位信号2 到位信号3
顶升上位1 顶升上位2 顶升上位3
顶升下位1 顶升下位2 顶升下位3
阻挡上位1 阻挡上位2 阻挡上位3
阻挡下位1 阻挡下位2 阻挡下位3
一、提取出不一样的对象
对应于示例的流水线来说,不一样的对象就是IO信号,每一段都有它自己的信号。即:
是否减速
是否启动
阻挡气缸
顶升气缸
减速信号
到位信号
另:气缸的上下限位也是不一样的,但上下限位一般都会和对应的气缸绑定一起,故有了“顶升气缸”就有了“顶升上位”和“顶升下位”,也就是:
![](https://img-blog.csdnimg.cn/28a81d2d134e4e0e8ada7797223ed26d.png)
二、规划好流程的状态
这3个流水线来说,状态有
等待进料
正在进料
等待出料
正在出料
一般都还会给一个默认状态:任务初始化
这里的状态,还可参考:
探讨:别人的代码&自己N天前写的代码(多线程)本文章的目的是:状态规划合理,就能够通过状态来知道,这个任务(线程)大概是做什么的。方便别人梳理逻辑,也方便自己回顾代码。
三、状态控制
单独一个线程来控制状态的切换。主要有:
流水线1进料
流水线1出料2进料
流水线2出料3进料
流水线3出料
汇总起来就是:
以下的表格内容在“中文脚本运动控制平台1.001”上运行。
一、提取出不一样的对象
数据初始化 | 任务准备 | |
流水线1数据初始化 | 流水线1任务.字符是否减速 = 是否减速1 流水线1任务.字符是否启动 = 是否启动1 流水线1任务.字符阻挡气缸 = DIY阻挡气缸1 流水线1任务.字符顶升气缸 = DIY顶升气缸1 流水线1任务.字符减速信号 = 减速信号1 流水线1任务.字符到位信号 = 到位信号1 | |
流水线2数据初始化 | 流水线2任务.字符是否减速 = 是否减速2 流水线2任务.字符是否启动 = 是否启动2 流水线2任务.字符阻挡气缸 = DIY阻挡气缸2 流水线2任务.字符顶升气缸 = DIY顶升气缸2 流水线2任务.字符减速信号 = 减速信号2 流水线2任务.字符到位信号 = 到位信号2 | |
流水线3数据初始化 | 流水线3任务.字符是否减速 = 是否减速3 流水线3任务.字符是否启动 = 是否启动3 流水线3任务.字符阻挡气缸 = DIY阻挡气缸3 流水线3任务.字符顶升气缸 = DIY顶升气缸3 流水线3任务.字符减速信号 = 减速信号3 流水线3任务.字符到位信号 = 到位信号3 | |
任务完成 |
二、规划好流程的状态
流水线1任务 状态: 状态任务初始化 状态等待进料 状态正在进料 状态等待出料 状态正在出料 | 任务准备 | 设置状态等待进料 |
等待进料 | 如果(状态正在进料) { 运行到下一步 } 重新运行本步骤 | |
进料动作 | 设置输出置位(字符是否减速) 设置输出置位(字符是否启动) | |
等待减速 | 如果(读取输入置位(字符减速信号)) { 运行到下一步 } 重新运行本步骤 | |
减速动作 | 设置输出复位(字符是否减速) | |
等待到位 | 如果(读取输入置位(字符到位信号)) { 运行到下一步 } 重新运行本步骤 | |
到位动作 | 设置输出复位(字符是否启动) 设置DIYIO置位(字符顶升气缸) 设置状态等待出料 | |
等待出料 | 如果(状态正在出料) { 运行到下一步 } 重新运行本步骤 | |
出料动作 | 设置DIYIO复位(字符顶升气缸) 设置输出置位(字符是否启动) | |
出料完成 | 如果(读取输入复位(字符到位信号)) { 延迟(300) 运行到下一步 } 重新运行本步骤 | |
任务完成 | 从头再来 | |
流水线2任务 状态: 状态任务初始化 状态等待进料 状态正在进料 状态等待出料 状态正在出料 | 任务准备 | 设置状态等待进料 |
等待进料 | 如果(状态正在进料) { 运行到下一步 } 重新运行本步骤 | |
进料动作 | 设置输出置位(字符是否减速) 设置输出置位(字符是否启动) | |
等待减速 | 如果(读取输入置位(字符减速信号)) { 运行到下一步 } 重新运行本步骤 | |
减速动作 | 设置输出复位(字符是否减速) | |
等待到位 | 如果(读取输入置位(字符到位信号)) { 运行到下一步 } 重新运行本步骤 | |
到位动作 | 设置输出复位(字符是否启动) 设置DIYIO置位(字符顶升气缸) 设置状态等待出料 | |
等待出料 | 如果(状态正在出料) { 运行到下一步 } 重新运行本步骤 | |
出料动作 | 设置DIYIO复位(字符顶升气缸) 设置输出置位(字符是否启动) | |
出料完成 | 如果(读取输入复位(字符到位信号)) { 延迟(300) 运行到下一步 } 重新运行本步骤 | |
任务完成 | 从头再来 | |
流水线3任务 状态: 状态任务初始化 状态等待进料 状态正在进料 状态等待出料 状态正在出料 | 任务准备 | 设置状态等待进料 |
等待进料 | 如果(状态正在进料) { 运行到下一步 } 重新运行本步骤 | |
进料动作 | 设置输出置位(字符是否减速) 设置输出置位(字符是否启动) | |
等待减速 | 如果(读取输入置位(字符减速信号)) { 运行到下一步 } 重新运行本步骤 | |
减速动作 | 设置输出复位(字符是否减速) | |
等待到位 | 如果(读取输入置位(字符到位信号)) { 运行到下一步 } 重新运行本步骤 | |
到位动作 | 设置输出复位(字符是否启动) 设置DIYIO置位(字符顶升气缸) 设置状态等待出料 | |
等待出料 | 如果(状态正在出料) { 运行到下一步 } 重新运行本步骤 | |
出料动作 | 设置DIYIO复位(字符顶升气缸) 设置输出置位(字符是否启动) | |
出料完成 | 如果(读取输入复位(字符到位信号)) { 延迟(300) 运行到下一步 } 重新运行本步骤 | |
任务完成 | 从头再来 |
三、状态控制
流水线控制任务 | 任务准备 | |
流水线1进料 | 如果(流水线1任务.状态等待进料) { 流水线1任务.设置状态正在进料 } | |
流水线1出料2进料 | 如果(流水线1任务.状态等待出料[并且]流水线2任务.状态等待进料) { 流水线1任务.设置状态正在出料 流水线2任务.设置状态正在进料 } | |
流水线2出料3进料 | 如果(流水线2任务.状态等待出料[并且]流水线3任务.状态等待进料) { 流水线2任务.设置状态正在出料 流水线3任务.设置状态正在进料 } | |
流水线3出料 | 如果(流水线3任务.状态等待出料) { 流水线3任务.设置状态正在出料 } | |
任务完成 | 延迟(10) 从头再来 |
中文脚本运动控制平台:中文、低代码、流程复用
中文、低代码,参考:中文脚本运动控制平台1.001
流程复用,参考:本编文章
在此给自己鼓励:
中文脚本运动控制平台,已经完成实际项目。接下来还要继续加油!!!