• 设备流程复用


    中文脚本运动控制平台;中文、低代码、流程复用
    本编主要讲述的特点是:流程复用
    中文和低代码,详情见:中文脚本运动控制平台

    三个关键点:

    一、提取出不一样的对象
    二、规划好流程的状态
    三、状态控制

    硬件就拿以下流水线做示例:

    有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信号,每一段都有它自己的信号。即:
    是否减速
    是否启动
    阻挡气缸
    顶升气缸
    减速信号
    到位信号                                 
    另:气缸的上下限位也是不一样的,但上下限位一般都会和对应的气缸绑定一起,故有了“顶升气缸”就有了“顶升上位”和“顶升下位”,也就是:


    二、规划好流程的状态

    这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

    流程复用,参考:本编文章

    在此给自己鼓励:

    中文脚本运动控制平台,已经完成实际项目。接下来还要继续加油!!!

  • 相关阅读:
    大赛报名 | AI+科学计算重点赛事之一——中国开源科学软件创意大赛,角逐十万奖金!
    Docker下部署安装Mysql
    rabbitmq 交换机相关实例代码
    VALENS VS2310 HDBaseT2.0接收/发送器
    阿里巴巴对裁员谣言报警
    客户突然不回复总是有原因的!
    pbootcms中使用composer
    程序员高考卷曝光,你能得多少分?
    Day58 Linux shell编程 shell语法 脚本语言
    泛型(工作能用到的)
  • 原文地址:https://blog.csdn.net/u014608071/article/details/127131277