论文部分内容阅读
摘 要:在我国自动化、机械化程度不断提高之下,在机械制造领域当中已经开始广泛使用工业机器人,而工业机器人控制器也越來越标准化,其开放度也逐渐提升。在工业机器人当中,软PLC系统是其中至关重要的一项组成部分,符合逻辑控制以及总线通信等工作。本文将在此背景之下,着重围绕基于面向工业机器人控制器的软PLC系统软件开发进行简要分析研究。
关键词:工业机器人;控制器;软PLC系统;软件开发
在工业机器人的使用之下,机械制造逐渐形成了一条流畅的、自动化的流水线,即使在恶劣环境下也可以长时间地保持高精度的工作状态。作为工业机器人当中和核心部件,研究软PLC系统是完善工业机器人控制器,实现有效控制工业机器人的关键所在。因此本文将在阐述软PLC系统软件开发整体思路之下,从通信接口、任务管理等方面探究面向工业机器人控制器的软PLC系统软件开发。
一、软PLC系统软件开发的整体思路及模块划分
(一)开发思路
本文设计的软PLC运行系统软件主要负责翻译其编程系统给出的相关程序,并由此生成软PLC目标文件,用以完成对相对应的逻辑进行有效控制,以此实现控制机器人的运动轨迹[1]。本身设计开发的软PLC运行系统软件,将直接通过工业机器人控制器对软PLC目标文件进行解释,经由通信接口分别进入到运行管理以及人机交互模块当中,操作人员借助使用HMI触控面板控制机器人运动系统,从而有效实现对工业机器人的运动及逻辑控制,确保工业机器人可以按要求进行正常操作运行。
(二)模块划分
按照实时性与否,软PLC运行系统当中的任务可以被分为实时与非实时任务。在前者的任务模块当中主要包括虚拟机、机器人控制以及I/O和伺服接口驱动任务;而在后者的任务模块当中则主要包括运行管理、通信接口以及人机交互任务。简单来说,在非实时任务模块中,需要完成包括文件管理与下载、软件运行状态显示、目标文件的解析等各项任务。而在实时任务模块中则需要完成包括控制工业机器人的运动轨迹,刷新伺服数据、控制I/O设备等一系列操作。
二、面向工业机器人控制器的软PLC系统软件开发
(一)通信接口
面向工业机器人控制器的软PLC运行系统对实时性要求非常高,因此本文在尝试设计开发软PLC运行系统时,选择使用HSHARED共享内存的方式,以实现任意任务之间可以自由交互数据信息。在共享I/O数据映像区当中,将接口驱动任务以及软PLC虚拟机的执行任务周期,分别设置为4ms和8ms,从而使得虚拟机可以对I/O数据进行准确读写[2]。而在共享伺服数据服务区当中,其接口驱动任务同样为4ms的执行周期,用以方便虚拟机对伺服数据进行准确读写。在设计软PLC虚拟机和机器人控制任务的通信当中,选择将数据交互接口和通信接口设置为共享内存和Xenomai事件,PLCRC共享内存将帮助软PLC虚拟机将工业机器人各个关节轴的具体位置信息传输至机器人控制任务模块以及I/O输入单元当中,从而计算出需要控制机器人的位置插补值。而此后共享内存直接将计算得到的插补值传输至软PLC虚拟机任务处即可。
(二)任务管理
在软PLC运行系统软件当中,任务管理功能主要负责完成新建任务、删除任务或是任务启动等工作。在本文设计开发的软PLC运行系统当中,在完成对任务管理模块的初始化之后,操作人员需要对控制信号服务函数进行设置,并在此基础之上创建和启动人机交互任务,此后需要进入到软PLC目标文件的读取当中。如果文件名为空则重新进行读取,反之则需要对目标文件进行验证,判断其是否正常。如果软PLC目标文件正常则需要进行目标文件的加载,以及I/O、伺服配置的生成,由此构建出软PLC任务模型。依照生成的I/O和伺服配置将进行共享数据映像区的创建,并动态插入与之相对应的模块,由此创建出软PLC虚拟机任务,将其设置成挂起状态之后再重新进入到下一轮循环当中。
软PLC任务当中的启停、终止等信号将通过设置在任务管理模块当中的控制信号服务函数进行响应。当接收到暂停信号的情况下,任务管理模块将会使用控制信号服务函数将任务管理模块当中的软PLC虚拟机任务设置挂起;而如果接收到终止信号,则将直接利用利用函数终止任务。此时需要将软软PLC虚拟机任务以及I/O、伺服驱动模块一并删除用以释放内存资源,
(三)虚拟机任务
为实现软PLC运行系统软件可以周期性地解释执行目标任务,在开发系统软件时本文尝试使用了Xenomai Native API,利用其给出的函数进行周期性扫描。在对虚拟机进行初始化之后,将虚拟机任务执行周期设置为8ms,并运用函数进行周期扫描,此后执行单次扫描,而后通过重新调用相关函数完成启动插补事件的发送,再次进行函数调用,等待此次扫描周期的结束,准备迎接第二次扫描执行[3]。但在单次扫描执行当中,需要在I/O临时内存区当中复制I/O映像数据,并在PLCRC共享内存当中复制伺服映像区的各轴实际位置值。如果此时PC超出了代码段则需要立刻对软PLC目标文件保持变量段进行修改,再在I/O映像区中复制I/O临时内存区数据,并在伺服映像区当中复制原本位于PLCRC共享内存的位置插补值。但如果PC代码在码段之内,则需要进行指令解码和指令执行,并修改程序计数器PC,而后重新对PC是否超出码段进行判断。如此时PC已经超出代码段则可以直接进入到下一环节。
三、结语
总而言之,本文通过重点对软PLC系统的运行系统软件开发进行分析研究,通过将软PLC系统依次划分为虚拟机任务、控制任务、接口驱动任务等在内的众多任务模块,并对软PLC系统的通信接口和任务管理以及虚拟机任务进行开发设计,设计了一套软PLC运行系统软件开发方案,希望能够为相关研究人员和开发人员提供必要参考帮助。
参考文献:
[1]王侦.面向工业机器人控制器的运动控制与仿真软件设计与实现[D].东南大学,2015.
[2]王志学.开放式数控系统软PLC的搭建及开发[D].哈尔滨理工大学,2017.
[3]贾茜茜.基于软PLC技术的仿真系统设计与应用[J].自动化与仪器仪表,2016,33(02):211213.
作者简介:徐蓬(1969),男,湖南宁乡人,本科,电子电工教学。
关键词:工业机器人;控制器;软PLC系统;软件开发
在工业机器人的使用之下,机械制造逐渐形成了一条流畅的、自动化的流水线,即使在恶劣环境下也可以长时间地保持高精度的工作状态。作为工业机器人当中和核心部件,研究软PLC系统是完善工业机器人控制器,实现有效控制工业机器人的关键所在。因此本文将在阐述软PLC系统软件开发整体思路之下,从通信接口、任务管理等方面探究面向工业机器人控制器的软PLC系统软件开发。
一、软PLC系统软件开发的整体思路及模块划分
(一)开发思路
本文设计的软PLC运行系统软件主要负责翻译其编程系统给出的相关程序,并由此生成软PLC目标文件,用以完成对相对应的逻辑进行有效控制,以此实现控制机器人的运动轨迹[1]。本身设计开发的软PLC运行系统软件,将直接通过工业机器人控制器对软PLC目标文件进行解释,经由通信接口分别进入到运行管理以及人机交互模块当中,操作人员借助使用HMI触控面板控制机器人运动系统,从而有效实现对工业机器人的运动及逻辑控制,确保工业机器人可以按要求进行正常操作运行。
(二)模块划分
按照实时性与否,软PLC运行系统当中的任务可以被分为实时与非实时任务。在前者的任务模块当中主要包括虚拟机、机器人控制以及I/O和伺服接口驱动任务;而在后者的任务模块当中则主要包括运行管理、通信接口以及人机交互任务。简单来说,在非实时任务模块中,需要完成包括文件管理与下载、软件运行状态显示、目标文件的解析等各项任务。而在实时任务模块中则需要完成包括控制工业机器人的运动轨迹,刷新伺服数据、控制I/O设备等一系列操作。
二、面向工业机器人控制器的软PLC系统软件开发
(一)通信接口
面向工业机器人控制器的软PLC运行系统对实时性要求非常高,因此本文在尝试设计开发软PLC运行系统时,选择使用HSHARED共享内存的方式,以实现任意任务之间可以自由交互数据信息。在共享I/O数据映像区当中,将接口驱动任务以及软PLC虚拟机的执行任务周期,分别设置为4ms和8ms,从而使得虚拟机可以对I/O数据进行准确读写[2]。而在共享伺服数据服务区当中,其接口驱动任务同样为4ms的执行周期,用以方便虚拟机对伺服数据进行准确读写。在设计软PLC虚拟机和机器人控制任务的通信当中,选择将数据交互接口和通信接口设置为共享内存和Xenomai事件,PLCRC共享内存将帮助软PLC虚拟机将工业机器人各个关节轴的具体位置信息传输至机器人控制任务模块以及I/O输入单元当中,从而计算出需要控制机器人的位置插补值。而此后共享内存直接将计算得到的插补值传输至软PLC虚拟机任务处即可。
(二)任务管理
在软PLC运行系统软件当中,任务管理功能主要负责完成新建任务、删除任务或是任务启动等工作。在本文设计开发的软PLC运行系统当中,在完成对任务管理模块的初始化之后,操作人员需要对控制信号服务函数进行设置,并在此基础之上创建和启动人机交互任务,此后需要进入到软PLC目标文件的读取当中。如果文件名为空则重新进行读取,反之则需要对目标文件进行验证,判断其是否正常。如果软PLC目标文件正常则需要进行目标文件的加载,以及I/O、伺服配置的生成,由此构建出软PLC任务模型。依照生成的I/O和伺服配置将进行共享数据映像区的创建,并动态插入与之相对应的模块,由此创建出软PLC虚拟机任务,将其设置成挂起状态之后再重新进入到下一轮循环当中。
软PLC任务当中的启停、终止等信号将通过设置在任务管理模块当中的控制信号服务函数进行响应。当接收到暂停信号的情况下,任务管理模块将会使用控制信号服务函数将任务管理模块当中的软PLC虚拟机任务设置挂起;而如果接收到终止信号,则将直接利用利用函数终止任务。此时需要将软软PLC虚拟机任务以及I/O、伺服驱动模块一并删除用以释放内存资源,
(三)虚拟机任务
为实现软PLC运行系统软件可以周期性地解释执行目标任务,在开发系统软件时本文尝试使用了Xenomai Native API,利用其给出的函数进行周期性扫描。在对虚拟机进行初始化之后,将虚拟机任务执行周期设置为8ms,并运用函数进行周期扫描,此后执行单次扫描,而后通过重新调用相关函数完成启动插补事件的发送,再次进行函数调用,等待此次扫描周期的结束,准备迎接第二次扫描执行[3]。但在单次扫描执行当中,需要在I/O临时内存区当中复制I/O映像数据,并在PLCRC共享内存当中复制伺服映像区的各轴实际位置值。如果此时PC超出了代码段则需要立刻对软PLC目标文件保持变量段进行修改,再在I/O映像区中复制I/O临时内存区数据,并在伺服映像区当中复制原本位于PLCRC共享内存的位置插补值。但如果PC代码在码段之内,则需要进行指令解码和指令执行,并修改程序计数器PC,而后重新对PC是否超出码段进行判断。如此时PC已经超出代码段则可以直接进入到下一环节。
三、结语
总而言之,本文通过重点对软PLC系统的运行系统软件开发进行分析研究,通过将软PLC系统依次划分为虚拟机任务、控制任务、接口驱动任务等在内的众多任务模块,并对软PLC系统的通信接口和任务管理以及虚拟机任务进行开发设计,设计了一套软PLC运行系统软件开发方案,希望能够为相关研究人员和开发人员提供必要参考帮助。
参考文献:
[1]王侦.面向工业机器人控制器的运动控制与仿真软件设计与实现[D].东南大学,2015.
[2]王志学.开放式数控系统软PLC的搭建及开发[D].哈尔滨理工大学,2017.
[3]贾茜茜.基于软PLC技术的仿真系统设计与应用[J].自动化与仪器仪表,2016,33(02):211213.
作者简介:徐蓬(1969),男,湖南宁乡人,本科,电子电工教学。