APP下载

PLC控制技术支持下的工业机器人组装系统设计

2022-06-24王浩

电子制作 2022年10期
关键词:寄存器调用指令

王浩

(中交紫光科技有限公司,北京,100088)

1 PLC控制的工业机器人系统发展趋势概述

■ 1.1 PLC控制的工业机器人系统的发展趋势

随着时代不断发展,科学技术不断进步,促使我国的工业机器人开始突显出智能化特征,需要注意的是,这是基于PLC控制技术而产生的。本文认为基于PLC控制技术下的工业机器人控制系统在未来社会中的发展过程中需要重视以下几方面内容:

(1)在实际操作过程中,提高PLC控制技术的仿真模拟、设计分析,提高仿真模拟的精准度,对工业机器人控制系统进行优化,提高控制系统的整体性能,提高机器人的产能。

(2)随着PLC控制技术不断发展,其自身的应用范围也在不断扩宽,同时,PLC控制技术自身的控制性能不断提升,促使工业机器人系统趋向于复杂化。

(3)借助PLC控制技术进一步完善网络通信功能,促使工业机器人能够与其他机器人之间实现远程通信,循序渐进,将PLC控制技术发展成为全球工业机器人统一标准。

■ 1.2 设计需求

工业机器人系统的运行质量主要由系统结构、应用技术所决定,在规划设计过程中,需结合工业机器人控制系统的运行模式和实际作业的需求,确定控制系统的属性,并将其作为规划设计的依据。

(1)以实际运行环境而言。工业机器人的运行模式是根据系统所发出的指令进行确定,终端接收单元在获取指令信号以后完成相应的操作。鉴于此,工业机器人内部需预留一定的内部空间,合理分布内部空间结构,降低内部空间的占有率,从而达到降低制造成本的目的。

(2)以运行负载层面而言。工业机器人加工制造以PLC控制技术作为核心研发出来,可以有效降低操作人员的工作压力,进行批量化的生产活动,提高企业的整体运行效能。运行负载是指工业机器人结构在运行时,受到外部压力而形成的一种荷载能力。因此,设计过程中需要明确划分不同运行状况的具体边界,确定工作极限值,提高组装系统的运行效率。

(3)在工作精度方面。组装系统可以根据发出的指令信号完成相应的操作,同时对运行过程中的精准度造成一定的影响。机器人在完成某个指令的过程中,需结合终端单元对空间位置进行定位,待定位信息发送至控制系统后,方可调整操作参数,设置下一步工序,提高系统运行过程中的精准度。设计运行精度时根据终端设置的空间定位进行确定,在最大程度上消除空间位置的偏差,促使指令发出后可以与终端单元实现连接。

2 工业机器人系统框架研究

■ 2.1 机器人控制系统框架分析

工业机器人的结构组成比较简单,主要由电缆、PC机(Personal Computer,个人计算机)、控制器、设备、I/O模块(I/O module)、伺服电机等硬件装置构成[1]。设计人员通过结构划分,将工业机器人控制系统细分为三个关键性构成部位,具体情况可以参照下图1。

图1 工业机器人系统框架图

终端用户层是指机器人装置PC设备、示教器,二者之间使用TCP/IP协议实现通信。操作人员可以利用示教器控制工业机器人完成相应的动作,上位机PC部位是设计人员根据实际作业的需求对功能模块进行开发设计。

控制器层是工业机器人控制系统内的关键构成部分,主要用来控制系统的运行状态,系统运行过程中控制器层与软件、示教器之间相互交互。此外,该层负责解释系统运行过程中的程序文件、机器人运行、过程控制等内容。

硬件设备层主要负责硬件设备的控制,确保机器人接收到特定指令以后控制相应的硬件完成指令任务。

■ 2.2 机器人控制系统软件框架分析

结合图2来看,控制系统中软件系统的设计大致可以细分为三个结构层。总计需要负责四个控制系统的进程:管理进程、RC(Remote Control,遥控、远程控制)子系统进程、设备接口进程、PLC子系统进程。不同的进程所负责的任务不同,结合实际情况将运行任务细分为实时性任务、非实时性任务。

图2 工业机器人控制器软件系统架构图

(1)运行管理层。该层主要负责控制系统的监控与任务管理活动,具体涉及:机器人初始化配置、控制系统初始化、系统运行过程中的控制、任务管理、设备运行状态监管、机器人结构组件故障报警等。

(2)设备接口层。该层主要负责控制系统的外部接口进程,使用总线通讯的方式完成I/O模块、伺服模块之间的信息交互。本文采用EtherCat总线接口,利用EtherCat协议实现不同构件之间的数据交互。设备接口层其实是一个外部驱动接口,这种接口的兼容性较强大,可以适用于多种不同类型的接口,高效满足控制系统通用性要求。

(3)核心业务层。该层主要负责两个系统进程:RC及PLC。其中,RC进程主要用来控制机器人运行,PLC进程则负责管理系统的逻辑功能,二者之间存在紧密的关联。进一步而言,PLC系统是整个业务层中的核心部分,通过PLC系统与RC系统进行交互,促使数据信息在控制系统不同子系统中相互传递,实现实时信息数据共享。

(4)本文着重对软PLC系统展开调研,控制系统会将开发人员所设计的PLC程序传输至编辑器内,编辑器接收到程序后开始编译,并对程序信息进行处理,然后将处理后的信息加载至控制系统内,再破解分析目标对象并执行相应的操作。整个过程中,需要完成软PLC系统初始化任务与虚拟机的两个子任务。软PLC系统进程的主线程其实是为了完成系统的初始化任务,完整读取计算机自带Windows系统中的目标文件,该文件存储在PLC程序中,在这个过程中还会对PLC程序进行内存映像,启动PLC虚拟机,从而保证系统的线程进入堵塞状态,当程序的主线程任务完成后自动退出程序。不难发现,PLC控制系统的关键性任务其实是软PLC虚拟机的任务,在程序内的主线程内开启一个或多个虚拟机子任务,读取、解析、执行目标对象的程序文件,从而实现逻辑、过程控制。

3 系统设计

在对PLC控制技术进行研究分析、设计的过程中,设计人员需加大对机器人控制系统的功能需求关注度,明确指出PLC控制技术的实际需求。PLC控制器作为一种先进且性能强大的控制器,其具备诸多种辅助功能,控制器的核心构件是微处理器。PLC结合机器人运行的实际数据对其进行监控,并结合监控数据发出合理的指令,可以有效避免机器人发生故障。结合实际情况来看,工业机器人在实践过程中,PLC控制技术发挥出巨大的效能。首先,该技术具备极强的控制能力,可以保证指令信息的时效性;其次,PLC控制技术具备一定的可靠性,其能够对复杂的编码进行加密处理,强化控制器的抗干扰能力,保证机器人运行过程中的稳定性;最后,PLC控制技术具备适用性特点,可以被广泛运用在诸多生产活动中。

■ 3.1 PLC控制的工业机器人控制系统硬件设计分析

设计人员在设计工业机器人的过程中,需要着重分析机器人抓取目标、搬运目标、装配作业等相关功能,基于PLC控制技术,利用气缸的驱动作用实现以上功能。依靠电磁阀构件来控制气缸以实现各种不同功能,利用电磁阀构件驱动机器人执行相应的动作,由此可以论证出工业机器人控制系统中运用PLC控制技术,系统必须内置电磁阀与控制开关,并保证二者相互协调,不会产生冲突,其属于一种比较特殊的控制方法。一个完整的工业机器人需要配置两个作业台,在工业机器人进行控制的过程中,利用特定的构件将机器人移动至1#作业台,然后将工件从2#作业台移动至1#作业台,再开始对下一个工件进行操作。工业机器人的作业流程可以参照图3。

结合图3可以了解到,工业机器人会根据事先编制好的作业流程执行特定的动作。机器人在初始化部位开始向下移动,操作手指将1#作业台上放置的工件夹住,移动至指定部位。在一定距离以后,机器人的机械臂会沿着既定方向进行移动,直至机器人将工件传输至2#作业台部位。然后按照以上流程依次将所有工件全部放置在2#作业台上,由此完成整个工作周期。工业机器人自动化控制系统能够同时以连续性、手动型操作方式进行操控。设计过程中的关键点是保证PLC控制技术可以实现,工件到达输入点或输出点完成分配任务。对工业机器人动作的变化进行了解,借助限位器来控制系统的位置检测信号,促使机器人的机械臂动作变化的精准性。机器人的启动与关闭可以通过控制按钮来掌控。

图3 机器人装置工作流程示意图

■ 3.2 PLC控制系统的机器人软件设计

在设计工业机器人软件的过程中,以机器人的操作流程作为依据。机器人是基于PLC控制技术开发出来的,控制系统提供有两种控制模式:手动操控模式与自动操作模式。在对软件部分进行设计时,需全面了解机器人控制系统的具体作业流程,确保流程的全面性,并对每一步作业流程进行检验。结合实际情况而言,在设计机器人控制系统的软件部位时,应该严格按照以下流程进行:

(1)对机器人软件程序进行初始化管理。初始化管理保证机器人处于充电状态下,这样规定是为了确保机器人可以有效展开后续的动作,保证控制系统不会因直接输入信号而导致机器人表现出错误的动作。在编制控制程序时,应合理选择PLC初始化状态指令,从而达到简化编程的目的。

(2)对机器人控制系统的手动模式进行优化设计。在实际设计过程中,设置手动控制按钮,确保控制系统设计的合理性,手动操控模式主要是为了应对机器人后期的检修。先设计手动控制按钮,将其与机器人的机械臂进行连接,适当降低机械臂,然后按照标准程序完成机器人手臂、手指、手腕的动作。为了进一步提高系统的安全性,可以设置保护程序进行保护。

(3)在全面掌握机器人常规性作业流程的前提下,对机器人自动化控制系统进行优化设计,保证机器人每一个动作相互之间不会产生冲突。一般情况下,当机器人处于初始化状态时,其应该对自身的结构组件进行自检。

3.2.1 软PLC虚拟机内部数据表示

IEC61131-3标准仅定义了软PLC编程语言层面的数据类型规范,未定义软PLC运行时的数据表示方法。因此设计软PLC虚拟机内部数据表示时,一方面要能够正确表达IEC6I I31-3标准数据类型,另一方面设计要尽量简洁,以降低软PLC虚拟机实现复杂度。因此本文采用带类型标签的数据共用体来表示虚拟机内部数据。这种结构可表示整型、无符整型、浮点型和字符串型4种不同类型的数据,每个数据均由类型标签和值两部分组成。

3.2.2 用户级POU调用指令

IEC61131-3标准定义了3种形式的程序组织单元POU:函数 FUN、功能块FB和程序PROG。一个软PLC任务由一个或多个POU组成,至少包含一个顶层POU,作为软PLC任务的入口程序。每个POU都是一个独立的软件模块,通过相互调用来实现完整的软PLC功能。

这3种形式的POU有各自的异同点。为简化虚拟机设计,本文采用统一的POU调用过程设计。为实现POU的调用过程,必须通过调用栈来维护调用状态,这样才能在调用结束后保证正常返回。本文设计的调用栈结构包含栈容量、栈顶索引和栈空间基址。栈容量固定不变,是由软PLC编译器通过计算当前软PLC任务的最大POU调用深度而给定的,并保存在软PLC目标文件任务描述符中;栈顶索引始终指向下一个可用的空闲栈帧;调用栈空间是一个栈帧数组,在目标文件加载过程中根据栈容量动态分配而来。

PLC任务中每次调用一个POU时,虚拟机会创建这个POU(即当前活动的POU)栈帧结构,并压入调用栈中;每次从一个POU中返回时,虚拟机便会从调用栈中弹出并销毁这个POU栈帧结构。因此每个栈帧对应一个POU,栈底存放的栈帧便是顶层POU,即最外层或入口POU,栈顶存放的栈帧则是当前活动中的POU。

当前活动POU栈帧维护着该POU相关的接口信息以及返回地址信息,以保证调用时传参过程和返回过程的正确性。本文设计的栈帧结构包含当前活动POU描述符索引、返回地址、寄存器组基址。当前活动POU描述符索引用于索引到当前活动POU描述符;返回地址实为软PLC任务模型代码段中虚拟机指令索引,指向调用当前活动POU指令的下一条虚拟机指令。

本文设计的虚拟机在运行时,不能直接对软PLC任务模型中的各类数据段(即常量段、全局变量段、保持数据段)中的数据进行计算或操作,必须先从这些数据段中加载数据到寄存器中,然后对寄存器数据进行计算或操作。每个“寄存器”结构实际为一个内部数据结构IValue,这种设计牺牲了一定的运行效率,换取了软PLC编译器和虚拟机实现复杂度的降低。寄存器组是在创建栈帧过程中动态分配而来的,其数目从当前活动POU描述符信息中获取,即输入变量个数p、输入-输出变量个数q、输出变量个数r和局部变量个数s之和。在所有虚拟机指令中,均使用8bit的操作数来索引寄存器,因此寄存器组最多可包含256个寄存器。

具体执行步骤如下所述:

(1)解码ucall指令。ucall指令的编码类型为ABx。其中A用于索引调用者寄存器组中传入参数的起始位置,Bx用于索引被调用POU描述符。

(2)创建被调用者栈帧。将Bx保存在被调用者栈帧pou字段中,以便在被调用POU返回时使用;从软PLC任务模型中取得当前程序计数器PC的值,并将PC+1保存到返回地址ret字段中,以便能正确返回到ucall指令的下一条指令;根据被调用POU描述符信息,动态分配n(n=p+q+r+s)个寄存器空间。

(3)传入参数。从调用者寄存器组复制入参到被调用者寄存器组,传入参数的个数为P+q,包括被调用you输入变量和输入-输出变量。入参在调用者寄存器组中起始位置由A索引,在被调用者寄存器组中起始位置为O。

(4)栈帧入栈。压入被调用者栈帧到调用栈中,调用栈会自动维护栈顶索引,使其指向下一个空闲栈帧的位置。

(5)入口跳转。从被调用POU描述符中取得入口地址i赋给程序计数器PC,至此ucall指令执行完毕,虚拟机在下一个“取指-译码-执行”周期,便进入被调用POU代码内执行。

3.2.3 软PLC系统运行库

系统级POU调用过程具体步骤如下所述:

(1)解码scull指令。scull指令的编码类型为ABx,其中A用于索引寄存器组中参数列表的起始位置,Bx用于索引系统级POU描述符。

(2)执行系统级POU本体。根据描述符的入口地址字段得到该系统级POU程序本体,将A索引的寄存器地址传入后执行。此时系统级POU内部将直接对寄存器组的数据进行操作。

(3)程序计数器PC自增1,以便执行下一条虚拟机指令,至此scan执行完毕。

4 结束语

综上所述,随着工业生产活动规模不断扩大,传统的工业机器人控制系统无法有效满足实际作业的需求,需要对工业机器人的自动化控制系统进行优化升级。本文以PLC控制技术作为前提基础,对自动化控制系统进行优化设计,提高工业机器人自动化控制的整体性能,进而带动整个工业产业进一步发展。

猜你喜欢

寄存器调用指令
一样,不一样
《单一形状固定循环指令G90车外圆仿真》教案设计
新机研制中总装装配指令策划研究
飞思卡尔单片机脉宽调制模块用法研究
移位寄存器及算术运算应用
基于Android Broadcast的短信安全监听系统的设计和实现
数字电路环境下汽车控制电路信号设计
利用RFC技术实现SAP系统接口通信
太空第一人
C++语言中函数参数传递方式剖析