APP下载

小型PLC脉冲运动控制技术研究

2022-07-06王明昕许志明苗文雪张博黄赛伟

现代信息科技 2022年6期
关键词:运动控制脉冲

王明昕?许志明?苗文雪?张博?黄赛伟

摘  要:脉冲接口的运动控制PLC相比较总线型在配置使用上更为简单,降低了对现场人员的要求。总线型运动控制PLC需要协议栈支持,如CANopen主站,并且需要开发总线组态配置软件界面。相比较而言,脉冲型运动控制PLC开发难度和工作量都相对较小。因此,在传统小型PLC软硬件架构基础上提出了一种实现脉冲运动控制的设计方案。该小型运动控制PLC具有四轴脉冲运动控制,并支持直线、圆弧插补功能。经过验证,达到了预期的效果。

关键词:PLC;运动控制;脉冲;插补

中图分类号:TP273          文献标识码:A文章编号:2096-4706(2022)06-0046-05

Research on Pulse Motion Control Technology on Small PLC

WANG Mingxin1, XU Zhiming2, MIAO Wenxue3, ZHANG Bo3, HUANG Saiwei3

(1.Nanjing Atekon Atuomation Technology Co., Ltd., Nanjing  210012, China; 2.Nanjing Atekon Intelligent Control Technology Co., Ltd., Nanjing  210012, China; 3.Atekon Technology Co., Ltd., Nanjing  210012, China)

Abstract: Motion control PLC with pulse interface is more convenient in configuration and using than the bus-type, that reduces the requirement for operator on the scene. Bus-Type motion control PLC needs protocol stack support such as CANopen master stack, and it needs develop bus configuration software interface. As a comparison, the difficulty and workload of pulse-type motion control PLC development are relatively small. Therefore, a kind of design scheme to realize pulse motion control based on hardware and software architecture basis of traditional small PLC is proposed. The small motion conntrol PLC has four axises pulse motion conntrol, and it supports straight line and circle interpolation functions. Through verification, it achieves the expected result.

Keywords: PLC; motion control; pulse; interpolation

0  引  言

運动控制器性能的好坏直接对自动化系统整体性能发挥起决定作用[1,2],但是对于一些要求不高的应用场合,价格较高的运动控制器反而不是最优方案。小型PLC由于其可靠的性能以及相对较低的价格,在自动化市场上的使用量巨大。但是传统PLC主要应用于逻辑控制和过程控制,而在小型自动化设备行业,如产线自动化、搬运上下料、印刷包装机械等应用场合,控制伺服轴数不多、一般做定位使用,对轨迹精度要求不高,经济实用的小型运动控制PLC相比较运动控制器有较大的优势。

基于成本考虑,有些技术实力较强的用户选用市场常见的小型PLC,如三菱F3X、西门子S7-200等,使用PLC编程语言自己编写项目上要用的运动控制功能[3,4],既增加了开发的复杂性,也难以达到较好的运动控制效果,只能在一些相对简单运动控制的场合使用。

部分小型PLC具有高速脉冲输出功能,可以根据用户设定的频率和脉宽输出指定数量的脉冲,常用于简单的步进电机控制[5,6]。但是对于运动控制来说,需要PLC周期性的进行多个轴的运动控制计算,并把解算出的脉冲给定在每周期及时准确的输出,同时软件需要对轴的运行状态和指令进行管理,这要求PLC的软硬件具备更高的性能。

传统的小型PLC用户程序的运行一般是循环扫描,分为输入采样、程序执行和输出刷新三个阶段,程序的扫描周期会随着程序量的增大而变化。尽管较多PLC编程时可以选择建立周期任务,但是在底层其一般是通过软定时器来实现,实时性不高。因此传统的PLC在底层软件上无法满足运动控制的实时性要求。

在硬件上,随着运动控制技术的发展,FPGA、ARM、DSP、专用芯片等逐渐成为运动控制器的核心部件,并日益朝着开放式方向发展[7,8]。在一些传统小型PLC上,其CPU模块一般不采用FPGA/CPLD来处理高速脉冲的输入输出,或者是有的集成了FPGA/CPLD,但是在程序设计上只是为了满足脉冲的输入输出,无法满足插补运动控制的要求。

传统的小型PLC大多数都不支持运动控制功能,尤其是直线、圆弧插补等高级功能。在一些对轨迹精度要求不高、轴数不多的运动控制应用场合,出于成本的考虑一般不会选用较贵的运动控制器,而支持运动控制、经济可靠的小型PLC是最佳选择。因此,在现有传统小型PLC软硬件架构基础上,提出一种运动控制改造方案,对软件架构进行调整,并设计实时任务以满足运动控制程序的执行;增加CPLD,并在功能和与处理器接口机制上针对脉冲运动控制插补运动进行设计。该小型运动控制PLC支持四个脉冲轴,具备直线、圆弧插补功能。802F7ABF-8692-4F7E-97A3-D0100F551BBA

1  运动控控制PLC硬件设计

传统小型PLC的CPU模块本身大多不具备高速IO,一般通过扩展模块来实现。这种方式虽然可以很灵活,可以根据实际需要来选择是否采用高速脉冲输出扩展模块,但是其缺点也很明显,那就是CPU模块访问扩展模块需要通过PLC的内部扩展总线通信来实现,速度和效率远低于CPU模块本身的IO,尤其当扩展模块较多时更为明显,这种方式难以满足实时性要求较高的运动控制需求。也有厂家,如台达的DVP10MC,其扩展模块本身就是一个独立的运动控制器,拥有独立的编程软件,运动控制程序也运行在此扩展模块上,这种方式相当于又开发了一套编程软件和独立的运动控制器,虽然满足了运动控制性能,但是整个系统设计较为复杂,并且对于使用者来说需要学习两套编程软件,而且这种架构的PLC价格也不经济。因此,在CPU模块硬件上实现的本地高速IO,无论在硬件还是在软件上,都是最有利于实现运动控制功能。

为了实现对运动控制的支持,在保持PLC扩展形式和其他接口都不变的情况下,在硬件设计上,在CPU模块内部采用一块CPLD芯片用来实现脉冲运动控制所需要的高速IO。CPLD的加入既扩展了外部接口资源,同时也减轻了MCU的处理负担。为了缩短MCU与CPLD的交互时间,利用MCU本身自带的外设并行总线与CPLD通信,其速度可以保证MCU在一个指令周期完成对CPLD的访问。

CPU模块内部硬件系统框架及对外扩展如图1所示。

利用CPLD可以灵活的实现高速脉冲输出,也能对高速脉冲输入进行计数、测频等处理。在本方案中,MCU负责处理运动指令,实现速度规划和粗插补运算。CPLD接收MCU发过来的粗插补段,并对粗插补段进行精插补后将脉冲均匀的通过高速输出口输出高速脉冲串。

方案中,CPLD扩展8路晶体管漏型高速脉冲输出口(HSDO),最大输出频率200 KHz,在用于运动控制时,可以支持四路脉冲运动控制,高速输出口的分配如表1所示。

2  运动控控制PLC软件设计

2.1  软件架构设计

运动控制功能是通过运动指令的形式封装起来以功能块的形式提供给用户编程使用,因此运动控制功能的应用是与指令执行形式密切相关的。在方案中,运动控制PLC基于原有PLC的runtime内核开发,编程方式保持不变,可以使用梯形图或者ST结构化文本语言编写用户程序。

在实际应用中,一些诸如平面切割设备等类似的场合,需要较多的加工线段,为了提高效率,往往需要对运动指令进行前瞻和过渡处理,而这些功能往往只有运动控制器才具备。为了能满足这些应用场合的需求,在运动控制软件架构设计中,运动控制指令可以被放入一个最多一个存放100条指令的BUFF中,运动指令按照在程序中被触发的先后顺序被压入BUFF。有了指令BUFF,就能方便地对指令进行前瞻和过渡处理。指令BUFF采用环形缓存机制设计,如图2所示。

运动指令的管理、解析、预处理、执行、状态机管理等为应用层,均基于PLC核心的runtime运行时。运动控制程序在运行的时候,既需要与PLC runtime运行时也需要和CPLD进行及时的交互。

基于PLC runtime的系统软件架构设计如图3所示。

2.2  系统任务设计

MCU中运行了一个精简的轻量级实时操作系统,支持32个抢占优先级(0-31,31的优先级最低)。传统PLC的主任务扫描周期与程序量、MCU时钟频率、系统配置等因素有关,其无法满足实时较高的运动控制要求[9]。因此,为了满足运动控制需求,设计两个高优先级任务,系统任务设计如表2所示。

运动控制任务是核心任务,其承担着执行运动控制的核心插补运算的重要任务,因此这里赋予其最高的优先级。运动预处理任务将buff中的指令进行预处理以方便之后的运动控制任务执行,减轻了运动控制核心任务的负担。

2.3  运动控制预处理任务设计

运动控制预处理任务主要与PLC runtime对接,读取PLC程序中激活的运动指令。预处理任务中设计了两级指令BUFF,也采用环形缓存方式设计。从PLC程序中获取的运动指令首先放入BUFF1,如果BUFF1放满,则停止从PLC runtime中获取新的运动指令。

预处理任务读取BUFF1,对运动指令进一步解析并根据需要进行前瞻及运动轨迹过渡处理。处理完的指令放入BUFF2供运动控制任务执行。

2.4  运动控制任务设计

运动控制任务读取BUFF2中运动指令,进行速度规划,并执行插补运算。

本运动控制PLC采用MCU+CPLD的两级插补方案,MCU中运动控制任务负责粗插补,CPLD承担的精插补的工作。从CPU耗费时间来看,粗插补的运算量较大,而精插补运算量相对较小。但是精插补对时间的准确性要求非常高,如果用CPU实现,需要一个周期很小的定时器,而且周期也会不断变化,这样会消耗大量CPU的计算时间,造成CPU没有时间运行其他任务或者是无法执行更复杂的运动控制计算。对CPLD来说,实现精插补只需要较少的逻辑资源、并且可以实现较高的脉冲输出频率[10]。

CPLD精插补的工作就是将每周期运动控制任务发来的脉冲给定通过高速脉冲输出口均匀且精确的输出,CPLD如何获取粗插补段影响着实际的加工效果,尤其对于精度要求较高的加工应用。李宏胜、胡呈祖等将CPLD/FPGA的一个输出口接到处理器的外部中断脚,在数据处理完成后,CPLD/FPGA通过输出口触发处理器产生外部中断使得处理器进入中断服务程序,在中断程序中将下一个插补段發给CPLD/FPGA[11]。但是考虑到操作系统的中断进入、执行、退出等均要消耗的CPU时间,尤其是对于主频不是很高的MCU来说,消耗的时间会更长,这种方式使得CPLD在这段时间处于空闲,不利于电机平稳运动。因此为保证运动控制的轨迹精度及更好的运行平稳性,CPLD中设计了具备两个32位寄存器的BUFF,这两个寄存器能存放两个粗插补段。其中一个用于存放正在加工中的插补段,另一个存放下一个待执行的粗插补段。这种设计使得CPLD可以连续执行插补给定,不再受到MCU中断处理时间的影响。802F7ABF-8692-4F7E-97A3-D0100F551BBA

为了协调运动指令对轴的占用和运行,需要对轴的运行状态进行管理,运动控制PLC内部运行的状态机所涉及的几种状态如表3所示。

运动控制任务执行流程如图4所示。

3  运动控制验证

运动控制PLC在三轴运动控制平台上进行验证,平台的X-Y轴采用松下A6交流伺服,Z轴使用台达A2交流伺服,并在Z轴末端上夹持一签字笔用于描绘实际运行轨迹。

运动控制插补周期设置为4ms,脉冲当量设置为0.001 mm/pls,采用脉冲单位及T型加减速曲线,加减速时间设置为100 ms。运动控制程序使用采用直线、圆弧指令,运动控制指令编程如图5所示。

实验所用三轴运动平台及实际加工测试结果如图6、7、8所示。

从实际加工效果来看,运动指令执行过程中运行平稳,圆弧指令走出的整圆运动轨迹光滑,取得了比较理想的效果。

4  结  论

本文介绍了在传统小型PLC软硬件基础上进行运动控制开发的一种实现方法,并基于现有的小型PLC基础上进行实现。本运动控制PLC在硬件上设计一块CPLD用于精插补及高速脉冲输出,并在CPLD获取MCU插补数据时提出一种有别于传统中断方法的两级粗插补BUFF实现方式,提高了电机运行的平稳性。在软件架构上基于PLC runtime,通过增加独立的实时任务来运行运动控制程序,并在PLC中实现了专业数控系统和运动控制器中具有的指令BUFF的执行方式,使得小型PLC具备了实现更高级的前瞻和轨迹过渡功能的技术基础。

基于上述软硬件设计方法实现了运动控制PLC,可以方便复用PLC的所有资源,并能使用梯形图和ST等常用PLC编程语言来编写运动控制程序,方便了自动化工程师的使用。运动控制PLC支持四轴脉冲运动控制,并支持任意两轴的直线、圆弧插补,经过多个客户现场的试用验证,其使用方便,运行稳定可靠,能满足客户的空间定位、二维平面加工等应用场合。

参考文献:

[1] 王成琼,麦麦提明·阿不都克力木,尹福成,等.基于ARM+DSP的三轴工业机器人运动控制器设计[J].仪表技术与传感器,2019(6):33-36+41.

[2] 陈亚军,张洁,胡明达.三轴机械手控制器设计[J].科技创新与应用,2019(32):28-30.

[3] 陆幸骏,孔田巍.基于PLC的运动控制系统设计[J].电气自动化,2017,39(6):88-90.

[4] 宫哲,雷志伟,张新.经济型可编程控制器插补算法的研究与应用[J].机械工程与自动化,2019(3):191-192.

[5] 谢述双.PLC脉冲控制的步进电机运动控制技术[J].轻工科技,2018,34(2):52-53.

[6] 黎璧义.PLC脉冲控制的步进电机运动控制技术研究[J].南方农机,2018,49(9):188.

[7] CHENG G Y,YU W T.A universal digital motion controller design for servo positioning mechanisms in industrial manufacturing [J].Robot Comput Integr Manuf,2020,64(C):101943-101943.

[8] 陈小飞,谢政华,汪昌来.ARM主控芯片的通用型运动控制器硬件设计 [J].单片机与嵌入式系统应用,2019,19(12):69-71.

[9] 卢冠军.一种多核嵌入式PLC运动控制系统的研究 [D].杭州:杭州电子科技大学,2011.

[10] 张金霞,赵东标.数控系统中精插补芯片FPGA的配置 [J].机械与电子,2007(3):30-32.

[11] 李宏勝,李少卿.采用CPLD技术实现数控系统精插补算法的研究 [J].组合机床与自动化加工技术,2003(12).

作者简介:王明昕(1977.11—),男,汉族,安徽淮南人,中级工程师,硕士,研究方向:工业机器人控制、PLC的运动控制。

收稿日期:2022-02-12802F7ABF-8692-4F7E-97A3-D0100F551BBA

猜你喜欢

运动控制脉冲
超快脉冲激光器提高数据传输速度
大射电
具有自主感知行为的虚拟人运动控制技术研究综述
三维平动并联机床控制系统设计
基于脉冲反射法电缆故障定位脉冲源的设计
基于TMS320F2812的调光器系统的设计