概述

autoframe / 2023-07-24 / 原文

关于 自动化设备开发

上位机软件包含各种模块/对接,视觉/数据/控制

        不单纯是软件,还有硬件, IO,运动控制,相机光源,还包含各种专业设备或者传感器

        bug因素多,排查困难:在开始调试过程中,除了软件bug外,硬件带来的bug往往是多个方面的原因

         修改频繁,需要上机大量测试

         随着开发,往往会增加很多外置流程和判断,对接. 使得原本简单的流程变的复杂,代码量和复杂度急剧增加

        标定准确性问题,针对产品的工艺问题 都和设备控制密切相关. 为了达到某种要求 往往需要各种修改和测试

        自动化设备运动控制,大扭矩电机,  涉及人身的安全事故

 

实际开发

        >IOM硬件配置

                在一些设备中,IO和电机多,单配置都要花费很多时间, 而且要在软件中添加大量的枚举类型来引用

                如果事物无法得以良好的分类, 那么逻辑的清晰就无从谈起

                "设备还在组装 我怎么开发?" => ""你可以通过想象力啊"

                如果不能很快的将设备的IO电机/机构等硬件形成直观的印象, 怎么能在细微的代码的实现上很快的进展呢!

        >多流程的线程同步协作问题

                基于特定设备的机械流程或业务流程 需要开很多线程 穿插调用/同步, 导致代码复杂度非常高, 耦合性强, 导致 难以开发和维护

                        多线程不好调试

                        要配置很多同步锁, 线程锁之间又有影响, 思维层面很难做出准确的业务逻辑判断

 

        >软件和控制 开发的人员的协作成本较高, 开发对接 效率低下.

        > 设备硬件组装出来前, 软件无法进行准确的预先开发

        那么基于离线的图形模拟开发 就可以实现准确的预先开发

        > 软件调试开发 都要放在设备上进行验证,编译,初始化.

        需要强大的离线开发调试模拟机制, 快速验证和处理问题

       

自动化控制开发最重要的事情是[安全]

        随便一个小电机都可以轻松夹掉手指

        随便一个代码的失误,或者没有考虑到位 都有可能带来风险

        误操作带来的风险

        安全防护模块进行开发

 

自动化开发软件工程师的职业感受

        开发调试周期长,细节问题多

                稍复杂的设备流程, 代码开发/调试/维护困难 , 工作压力大

        出差时间长

        

    AUTOFRAME开发历程

       2018年版本: 基于代码层面的框架设计 , 在参数模块, IOM硬件配置可查询, 多线程过程 应用 异常来大大减少判断代码量, 二层封装层 等 模块设计中 进行了创新

      2019年板: 图形编程: 采用 QT C++图形框架 进行设计, 实现图形编程的方式来加速  控制框架的开发, 并提供更好的配置和调试, 开发模拟 等用来解决 控制开发的 繁琐的问题.

        实现了 所有的图形编程模式, 用堆栈模拟了递归过程的 图形开发

     2020年版: 加入脚本开发, 并构建了基于后台服务的 脚本平台, 将图形开发和逻辑部分分离的模式.

     2021年版: 应用qml/quick图形框架进行重构 + 异步编程来实现设备流程. 使得框架的代码量和复杂度大大降低

....