帖子目的
软件开发并没有一致的标准,需要一定的编程框架更好地规范与约束,本贴抛转引玉,简单交流下我对PackML的理解,希望对大家有帮助。
下面引用John Blanchard先生的一段话:
“Packaging machinery is increasing in complexity.
(包装机械的复杂性正在增加)
More machines are including many axes of servo drives, integrated robotics and vision systems, machine fault and performance analysis,and communications for integration with line and production management systems.
(更多的机器包括多轴伺服驱动,集成机器人和视觉系统,机器故障和性能分析,以及与生产线和生产管理系统集成的通信)
However,there are no consistent standards for software development -- even between like machines from the same OEM.
(然而,软件开发并没有一致的标准,甚至在同一个原始设备制造商的同类机器之间也是如此。)
As a result, operator and technician training and support are becomingincreasingly challenging;
(因此,操作员和技术人员的培训和支持变得越来越具有挑战性。)
And horizontal and vertical integration remains difficult and time consuming.”
(横向和纵向集成仍然困难且耗时。)
(John Blanchard, 2008, ARC Insight # 2008-49MPH, page 1)
专业词汇
OMAC: The Organization for Machine Automation and Control
PackML : packaging machinery language
变量标签:Command(控制标签)、Status(状态标签)和Administration(管理标签)
控制标签:机器输入的信息,例如控制命令、速度指令、参数等;
状态标签:机器输出的信息,例如机器当前速度、当前操作模式、当前状态等;
管理标签:机器向上层系统输出的信息,例如报警信息、状态运行时间信息等;
运行状态:Acting state(正在执行状态),Wait state(等待状态)
状态模型
在状态模型中,分为三种不同类型的状态:
状态转换命令
状态列表
暂停和待料的区别:
$\color{red}{暂停:由内部条件触发;}$
$\color{orange}{待料:由外部条件触发;}$
Suspending待料原因:
上游缺料、下游满料等,因外部条件由操作员停止设备
说明:
设备依然可以以一定的速度运行,但不会向下游单元或设备传递产品。
可以有传感器或者监管系统的外部命令来触发。
Completing完成原因:
完成定量产品的生产数量,或操作员按压停止按钮。
说明:
是否进料停止,是否清线应该和最终用户商讨。
Stopping停止原因:
由监管系统触发,或客户需要停止。
说明
执行此操作是否需要特殊处理,清线,立即紧急停止等,需要和用户商讨。
Aborting故障原因:
可在任何时刻由Abort命令触发,此命令引起设备安全快速停机。
操作模式:
Setup(维修运行模式)
SemiAuto(手动运行模式)
Producing(自动运行模式)
模块划分
物理模型划分,参考 S88:Make2Pack 分六层
1.企业:拥有设施的公司。
2.现场:单个设施的位置。
(区域)
3.生产线(或过程单元):连接在一起的一个或多个单元的集合,它们必须按照定义的顺序,生产一个或多个产品,执行单一的或多个过程任务。
4.单元(UN):相关控制模块与设备模块的集合,能够执行一个或多个过程动作。
5.设备模块(EM):执行有限动作的功能组。
6.控制模块(CM):最低层,执行单个功能
程序模型划分, 分四层
1.车间程序:具体哪个车间,可能含有不同设备或线体;
2.设备程序:可能含有操作员,工程师和厂家等不同操作;
3.操作程序:为不同身份人员,设定特定操作流程;
4.状态程序:不同操作流程,底层实现需要做状态管理;
PackML 实施过程
方法一:仅使用标签
不使用 PackML 模式、状态管理器,不将代码结构更改为符合模块化编程,只使用标签。使用该方法,只要将标签数据映射到现有的控制程序上。当对现有控制程序改动不大或者模块化和 PackML 模式、状态管理器难以实现时使用该方法。
优缺点如下所示:
方法二:完全使用 PackML
使用 PackML 模式、状态管理器,使用模块化编程,使用标签。当使用 PackML 模式和状态管理器时,最好使用编程模版来做(可以自己做或者由自动化厂商提供)。使用该方法,可以获得 PackML 和模块化编程的所有优点。
优缺点如下所示:
开发步骤
1.按照物理层次结构分解机器(设备模块、控制模块);
2.定义 PackML 模式和状态;
3.定义在每个PackML 模式和状态下的回原,手动,自动的动作;
4.定义用于外围设备(视觉,机器人,传感器)交互和制造执行系统(MES)功能的标签(PackTags);
5.定义报警信息(触发 Stop 和 Abort 命令的条件);
6.使用上述信息进行控制系统编程,可参考附件例程;
总结
1.PackML专业词汇包含:操作模式、变量标签、运行状态;
2.状态模型注意,暂停和待料的区别,故障可在任何时刻由Abort命令触发;
3.物理模块和程序模型,都应该提前分层规划;
4.PackML实施过程可以采用:【仅使用标签】或者【完全使用 PackML】两种模式;