基于虚拟PLC的生产线仿真系统的设计与实现

2023-02-03 08:50袁亚峰
制造业自动化 2023年1期
关键词:邻接矩阵梯形图控件

袁亚峰,杨 涛

(1.西南科技大学 信息工程学院,绵阳 621010;2.特殊环境机器人技术四川重点实验室,绵阳 621010)

0 引言

随着工业4.0战略和“中国制造2025”的深入推进,由各类机器人与工业设备组成的自动化生产线成为我国制造业变革的重要目标,也对生产线人员的操作技术提出了更高的要求,因此需采用高效、高质量的培训方式来提高操作人员的熟练度[1]。然而传统的生产线培训主要采用视频教学与现场操作的方式,该方法学习效率低下,而且存在诸多安全隐患、影响正常的生产作业等问题[2]。

目前,虚拟仿真技术为生产线培训系统提供了重要的技术支撑[3,4]。虚拟PLC技术是以传统操作系统和计算机为软件平台,实现PLC程序调试与仿真功能的PLC编辑器,具有编程语言标准化、丰富的I/O开放接口及可仿真运行的特点[5]。但各PLC生产厂商的产品存在软件互不兼容、体系结构封闭等缺陷,导致学员只能进行简单的调试实验,没有控制对象与连接平台,不利于对PLC编程的学习[6]。虚拟仿真技术充分利用三维动画引擎以及Maya等建模、渲染软件,逼真的还原生产线场景,加强学员对生产线控制系统的研究和生产线运行流程的理解,降低培训系统的硬件投资,又显著提高培训过程的安全性[7,8]。但传统的虚拟仿真系统忽略了许多实际因素,没有建立完善的工艺流程,降低了仿真逼真度;并且控制系统功能单一,不能实现全系统仿真,无法达到良好的培训效果[9]。

针对上述虚拟仿真系统中存在的问题,本文提出一种基于虚拟PLC的生产线仿真系统。针对可编程控制器技术进行了虚拟PLC结构分析与逻辑处理算法设计;采用模块化设计方法,建立了一套将机械结构、电气控制技术、PLC控制技术充分融合的生产线仿真平台;利用Socket网络通信协议实现虚拟PLC和生产线仿真平台的数据通信。

1 仿真系统设计方案

如图1所示,本文将生产线仿真系统分为虚拟PLC开发系统和生产线仿真平台。两部分通过交换梯形图信息和虚拟设备状态形成闭环通信。

图1 生产线仿真系统结构

虚拟PLC是仿真系统的控制器,主要包括PLC编辑模块和仿真模块,控制物流生产线的工作流程。在虚拟PLC中编写物流生产线的控制程序,经过程序解析完成对PLC梯形图程序的仿真运算。将仿真结果提供给通信接口进行传输,生产线仿真平台接收程序的可执行代码后控制虚拟设备运行。

生产线仿真平台包括了现代工业系统中所涉及的PLC控制系统、电机驱动、工业机器人等多种技术,由各自独立而又交互相连的不同工作站组成,每个工作站均由单独的PLC程序控制,能够对学员进行设计、编程和调试等一系列的训练。Unity3D作为生产线仿真平台的开发引擎,提供了高效的实时三维构建技术与成熟的DirectX引擎,可以模拟真实设备行为[10],用Unity3D建立上述生产线仿真平台,配以动画的方式呈现出生产线设备的工作流程,完成生产线运行仿真。编写通信接口将虚拟PLC与生产线控制对象连接,实现数据交换。

图2 生产线结构示意图

2 虚拟PLC开发系统

2.1 虚拟PLC功能框架

开发系统由编辑模块和仿真模块组成。编辑模块主要功能包括梯形图编辑、梯形图注释、保存与读取。仿真模块进行梯形图的语法逻辑检查、串并联逻辑处理和状态监控。虚拟PLC结构如图3所示。

图3 虚拟PLC结构

依据IEC61131-3国际标准制定虚拟PLC梯形图的编程规则与要求,利用Visual Studio 2017中Winform窗体应用程序设计编辑界面,实现梯形图的编辑、注释等功能。梯形图编辑区中左右两端的粗线代表母线,编辑区被分割成多行多列的矩阵网络,行列数可由用户设置。每个网络表示一个PLC梯形图单元,采用C#控件实现,该控件包含有图符、坐标、大小等属性,是输入开关、输出负载等器件的抽象表示。随着PLC控制对象的多元化及控制功能的具体化,梯形图的控件类型越加丰富。因此,提取所有控件的相同特性,根据C#语言的多态性、继承性和封装性,设计一个控件的基类Control,包含控件所有的属性与接口,通过类的扩展创建具有不同特性的控件。

2.2 虚拟PLC仿真模块设计

2.2.1 基于邻接矩阵的逻辑处理算法

本文提出一种基于邻接矩阵的转换方法,利用矩阵化思想建立一个完整的有向图,将梯形图控件间串并联逻辑关系转化为数值关系,分析梯形图的层次,从而精确地计算出各个控件间串并联关系。

梯形图逻辑关系的处理过程大体分为以下两步:

1)梯形图映射为邻接矩阵表。梯形图由多个梯级构成,通过梯形图存储数据结构,标明了各个控件所在的行与列,因此梯形图本质上是一个矩阵表。在梯形图的转换过程中,遵循自上而下、从左往右的原则,逐个梯级进行扫描,得到梯形图控件数量N,建立一个N*N的二维矩阵表,从左母线第一个控件开始,依次找出并记录当前控件到后继控件所有连接路径,沿着指定路径往右母线方向读取,从中所经过的控件与当前控件的关系在邻接矩阵中表示为1,未经过的控件在邻接矩阵中表示为0。

例如扫描图4(a)中的梯形图,从左母线第一个控件I0.0开始,I0.0与I0.1相连,则矩阵表中I0.0与I0.1的连接关系为1。I0.3与I0.1相连,则连接关系为1。I0.1与I0.2和I0.4直接相连,则与之连接关系为1。则根据规则,梯形图至邻接矩阵的转换如图4(b)所示。

图4 梯形图至邻接矩阵表的转换

2)矩阵表转换为有向图。逐行扫描矩阵表,构建一个以控件为顶点、连接关系为边的有向图。以图5中邻接矩阵表为例,I0.0和I0.3的右路径都直接连接I0.1,因此是并联关系,可以用并1表示;并1与I0.1是串联关系,可以用串1表示;I0.2和I0.4的右路径都连接Q0.0,因此是并联关系,用并2表示。如此不断扫描更新,最终建立一个有向图如图5所示。

图5 串并联扫描生成的有向图

2.2.2 语法逻辑检查

梯形图的程序需要符合IEC61131-3国际标准规定,当发现梯形图存在错误时,软件将弹出错误提示窗口,向用户指出错误的位置和类型。针对梯形图常见错误进行如下的分类:梯形图中控件短接,被短接的控件无法正常工作;出现断路的情况,控件之间没有连接完整;控件的参数未进行设置。图6为语法检查流程。

图6 语法检查流程图

3 生产线仿真平台构建

3.1 设备三维模型的建立

三维模型的建立是生产线仿真平台的基础,按照实际现场设备,采用三维建模软件Maya绘制出各个设备的模型,如环形输送带、机器人、直流电机、推料气缸等,设备模型的尺寸需要按照比例与真实设备一致,建立的模型需要移除重复点和重复面,减少模型贴图量,以降低硬件负担,提高系统运行速度。

3.2 工艺流程设计

生产线仿真平台模拟实际设备工作时的真实场景,通过现场调研对实际物流生产线的性能要求和工艺流程进行分析,结合生产线培训的具体情况,平台需要完成对物料的运输、检测、移除、存放等复杂过程,因此对其进行简化处理保留主干。工艺流程如下:环形输送线运行,井式供料装置推动物料至环形输送线上,物料在输送线上依次进行扫码检测、颜色检测和外形检测,不合格的物料由剔除装置移除,合格的物料被推送至设备暂存台,机器人抓取物料将其放入链式输送机的托盘中。当托盘中的物料达到预定重量时,搬运机械手抓取托盘放入立体库中。物流生产线工艺流程如图7所示。

图7 物流生产线工艺流程

3.3 系统I/O分配

本系统采用的数据类型主要是数字量。PLC数字量输入有系统的启动按钮、停止按钮、设备的工作状态等,数字量输出有电机、指示灯、机器人部件电磁阀的开关等。部分I/O端口分配如表1所示。

表1 I/O端口分配表

4 生产线仿真系统三维动画驱动

4.1 仿真平台三维动画实现

动画是仿真系统的主要内容之一,它直观地展现了设备的驱动原理与生产线的工作流程。生产线仿真平台涉及的运动有物料在生产线上的移动、环形输送带的环绕运动,机器人的抓取释放,推料气缸的推进动作等;不仅模型复杂,而且各设备的运动相互耦合,导致脚本驱动的实现方法较为困难。此时,可以采用Animation关键帧动画技术来实现,采用模块化的思想将系统进行划分,最终将各模块的动画相组合完成整个生产线仿真平台的动画制作

关键帧动画设计的核心方法是对设备的工作流程进行逐帧分解,每一帧记录设备模型的代表性位置,在每两个关键帧之间自动生成设备的运动路径,关键帧设置完成后,将每帧按先后顺序与频率进行播放,其连续播放所形成的序列帧动画就能完整的演示生产线设备的工作流程,完成生产线运行仿真。

4.2 仿真平台与虚拟PLC通信接口

Unity3D和虚拟PLC作为两个独立运行的进程,都有独立的代码和数据空间,因此它们的资源分配和调度也相互独立,同时运行多个进程,能够最大化利用CPU的资源,提高系统的运行速度。

Socket网络协议提供了丰富的接口,不同的进程按照制定好的规则进行数据的双向传输。在生产线仿真系统中,采用Socket网络协议搭建了连接虚拟PLC与Unity3D的通信接口,通过将PLC梯形图信息和虚拟设备状态互相传输给彼此,实现PLC仿真状态与生产线设备运动状态的一致性。

I/O分配确定了生产线上每个虚拟设备所对应的PLC控制端口。通讯协议将PLC的输出端与Unity3D的I/O端口对接,PLC的输出信号会改变I/O端口的状态,Unity3D循环检测设备端口的数字量信息(用0或1表示),实现对虚拟设备状态的控制。Unity3D将虚拟设备的端口状态发送给PLC的输入端,改变PLC中对应控件的开闭状态,实现软件在环调试。虚拟PLC与Unity3D通过交换输入输出信号形成闭合回路。

5 实例测试

在虚拟PLC中新建梯形图,根据物流生产线工作流程编辑如图8所示PLC控制程序,按照对应的I/O端口号将PLC与生产线平台的设备端口配对,点击“开始仿真”,此时虚拟PLC与生产线仿真平台连接成功。

图8 PLC控制程序

进入生产线仿真平台,点击“运行”按钮启动仿真程序,然后点击“启动”按钮,物流生产线控制系统开始运行。虚拟设备将按照PLC控制程序依次完成物料输送、物料检测、机器人码垛、托盘输送、托盘出入库等操作。运行效果如图9所示。

图9 运行效果

测试结果表明,本文开发的基于虚拟PLC的生产线仿真系统按照PLC程序设定正常运行。可以实现运输、码垛、搬运和PLC综合实训等功能要求,

6 结语

本文分析了物流生产线的组成和工艺流程,结合工业培训的实际需求,采用模块化的设计思想开发了适用于技能培训的生产线仿真系统,该系统层次分明、灵活度高,具备完善的工艺流程。虚拟PLC作为仿真系统的控制器,能准确地完成梯形图程序的编辑,采用邻接矩阵算法实现梯形图仿真功能,建立Socket通讯协议完成与生产线仿真平台的数据交互,实现生产线智能控制。

虚拟调试与实验结果显示,其仿真结果与模型运行结果能实现PLC编程训练、生产线运行演示和对生产线控制仿真的研究,为生产线操作人员的培训工作提供了有效方案。

猜你喜欢
邻接矩阵梯形图控件
轮图的平衡性
基于.net的用户定义验证控件的应用分析
关于.net控件数组的探讨
PLC编译功能的实现
数控机床梯形图故障设置方法研究
基于邻接矩阵变型的K分网络社团算法
基于改进的多特征哈希的近重复视频检索
PLC编程中SFC图转换到梯形图的方法探讨
PLC梯形图程序设计技巧及应用
基于嵌入式MINIGUI控件子类化技术的深入研究与应用