1 引言
随着自动化设备对控制的高精度、高响应性需求的不断增加,自动化控制技术不断提高,精确的高速定位控制得到广泛应用,PLC这一工业控制产品也从早期的逻辑控制领域不断扩展到运动控制领域,实现了以往PLC无法完成的运动控制功能。
在运动控制中大多数采用我们熟悉的数控系 统或者是计算机运动板卡来完成,虽然作为专门的产品能够实现复杂的运动轨迹控制,但同时要完成一些逻辑动作的控制就不如PLC灵活方便。台达 DVP20PM系列PLC高速定位、双轴线性及圆弧插补多功能可编程控制器,结合了PLC逻辑动作控制和数控系统运动控制的各自优点,在功能上满足双轴插补的高速定位需求。
2 台达运动控制型PLC硬件结构
DVP20PM是台达运动控制型PLC。DVP20PM通过前后两个扩展口既可作为PLC主机执行也可作为EH2型主机的扩展模块使用,具有X0- X7、Y0-Y7数字量输入输出各八点,并配置了手摇轮、零点信号、原点信号、极限信号、启动、停止等各种信号接口满足应用需求。
DVP20PM主机包含64K超大程序容量内存(Flash),可支持100段运动程序,脉冲输出最高可达500KHz,并具备电子原点返回模式,支持PLC顺序语言及定位语言(G 码与M码),下面先由硬件部分简单介绍20PM 组成。
2.1 电源
DVP20PM电源规格参见表1。
表1 电源规格
2.2 I/O点规格
参见图1,DVP20PM提供的数字量输入输出点规格与台达通用PLC规格基本相同,输入点支持SINK(漏极)和SOURCE(源极)两种方式,输出点也有继电器输出和晶体管输出可选。
图1
需要提到的是其在运动控制中的特殊输入输出点,简述如下:
START0、START1:启动输入
STOP0、STOP1:停止输入
LSP0/LSN0、LSP1/LSN1:右极限输入/左极限输入
A0+、A0-、A1+、A1-:手摇轮A相脉波输入+,-(差动信号输入)
B0+、B0-、B1+、B1-:手摇轮B相脉波输入+,-(差动信号输入)
PG0+、PG0-、PG1+、PG1-:零点讯号输入+,- (差动信号输入)
DOG0、DOG1:原点回归的近点信号输入或多段运动的启动信号
CLR0+、CLR0-、CLR1+、CLR1-:清除信号(Servo驱动器内部偏差计数器清除信号)
FP0+、FP0-、FP1+、FP1-:脉冲输出端口
RP0+、RP0-、RP1+、RP1-:脉冲输出端口
(注:0表示第一轴,1表示第二轴,如START0表示启动第一轴,START1表示启动第二轴,其他信号依次类推)
从端子分布可以看到,除了常用的极限和启动停止信号外,配置了过零脉冲PG和手摇轮功能输入端,手摇轮是机床应用中常用而必备功能,而利用过零信号在精确控制场合往往会用到,当然更不用说定位控制中都会用到的DOG原点信号。
2.3 配线规格
一般I/O点配线就不再赘言了,可以关注一下PLC比较少用到的差分输入输出方式,在信号中有一部分是这样的,一定要注意否则将不能正确完成,参见图2、图3。
图2差分输入配线示意图
图3差分输出配线示意图
3 台达运动控制型PLC软件结构
3.1 DVP20PM程序结构
由于20PM主机结合了PLC顺序逻辑控制及双轴插补定位控制的功能,因此在程序架构上主要分为O100主程序、Ox运动子程序及 Pn子程序等三大类,结合了基本指令、应用指令、运动指令及G Code指令,使程序设计更多元化,结构更清晰;程序采用PMSOFT软件进行编辑,参见图4。
图4 程序设计界面
(1)主程序。主程序以O100作为起始标记,M102作为结束标记,是PLC顺序控制程序,主要为控制主机动作执行,在O100主程序区域中,可以使用基本指令及应用指令,或在程序中启动Ox0~Ox99运动子程序及调用Pn子程序。主要提供主控制程序的建立,以及运动子程序的设定及启动控制。
(3)运动子程序。Ox0~Ox99运动子程序为运动控制程序,主要为控制20PM系列主机进行X-Y轴双轴运动之子程序,于Ox0~Ox99运动子程序区段中,有支持基本指令、应用指令、运动指令及G码指令,并在程序中可规划呼叫Pn指针子程序,通过PLC提供的内部特D特M进行子程序的控制。主要提供运动子程序的建立,以及运动子程序的运动控制,在架构上可算是20PM的运动指令及G码指令规划区域。
(4) 子程序。这里所说的子程序是指以Pn开头的一般用子程序,主要是被O100主程序及Ox运动子程序调用的子程序。如在O100主程序调用Pn指针,则Pn 指针子程序支持基本指令及应用指令;若在Ox0 ~ Ox99运动子程序中调用Pn指针时,则Pn指针子程序区段可支持基本指令、应用指令、运动指令及G码指令。
3.2 PMSOFT软件介绍
与台达PLC的WPLSoft软件相似,DVP20PM的编程软件PMSOFT按照IEC61131标准设计,具有梯形图和语句表两种编程方式,且具有G码汇入、错误提示、区段注释、装置注释、标尺、完善的监控窗口、运动指令追踪等便利工具提供给用户,特别值得一提的是该软件具有运动轨迹仿真功能,当您编辑好程序后可利用此功能对加工轨迹进行模拟演示,参见图5。
为方便切换阶梯窗口,只要点选系统信息列中的树枝状对应的程序编号,自动切换对应的程序编辑窗口,在PMSoft编辑环境中同时只能有一个阶梯图窗口,这是为了在庞大复杂程序中找寻程序方便,同时将主程序、运动子程序、一般子程序这三种程序模块化处理,O100主程序只有一个编辑窗口,Oxn运动程序有100个编辑窗口,Pm子程序有256个编辑窗口,总共有357个窗口,每个窗口未编辑都有10 network。程序编辑由网络区段组成,每个网络区段是由输入与输出编辑区域所组成,在编辑过程中,自动产生逻辑结构正确的阶梯图,使用者无须再做额外补线的动作,网络区段编辑并具有错误提示功能。
图5 梯形图编程界面
4 运动控制编程
4.1 相关概念
在谈到DVP20PM产品的应用之前,我们对以下概念进行一个简要介绍。
(1)插补。插补是在组成轨迹的直线段或曲线段的起点和终点之间,按一定的算法进行数据点的密化工作,以确定一些中间点。从而为轨迹控制的每一步提供逼近目标。
逐点比较法是以四个象限区域判别为特征,每走一步都要将加工点的瞬时坐标与相应给定的图形上的点相比较,判别一下偏差,然后决定下一步的走向。如果加工点走到图形外面去了,那么下一步就要向图形里面走;如果加工点已在图形里面,则下一步就要向图形外面走,以缩小偏差,这样就能得到一个接近给定图形的轨迹,其最大偏差不超过一个脉冲当量(一个进给脉冲驱动下工作台所走过的距离)。
(2)直线插补。这个概念一般是用在计算机图形显示,或者数控加工的近似走刀等情况下,以数控加工为例子:
一个零件的轮廓往往是多种多样的,有直线,有圆弧,也有可能是任意曲线,样条线等。数控机床的刀具往往是不能以曲线的实际轮廓去走刀的,而是近似地以若干条很小的直线去走刀,走刀的方向一般是x和y方向。
插补方式有:直线插补,圆弧插补,抛物线插补,样条线插补等等。
所谓直线插补就是只能用于实际轮廓是直线的插补方式(如果不是直线,也可以用逼近的方式把曲线用一段段线段去逼近,从而每一段线段就可以用直线插补了).首先假设在实际轮廓起始点处沿x方向走一小段(一个脉冲当量),发现终点在实际轮廓的下方,则下一条线段沿y方向走一小段,此时如果线段终点还在实际轮廓下方,则继续沿y方向走一小段,直到在实际轮廓上方以后,再向x方向走一小段,依次循环类推.直到到达轮廓终点为止.这样,实际轮廓就由一段段的折线拼接而成,虽然是折线,但是如果我们每一段走刀线段都非常小(在精度允许范围内),那么此段折线和实际轮廓还是可以近似地看成相同的曲线的--这即是直线插补。
(3)联动与插补。一个点的空间位置需要三个坐标,决定空间位置需要六个坐标。
一个运动控制系统可以控制的坐标的个数称做该运动控制系统的轴数。而可以同时控制运动的坐标的个数称做该运动控制系统可联动的轴数。联动各轴的运动轨迹具有一定的函数关系,例如直线,园弧,抛物线,正弦曲线。直接计算得出运动轨迹的坐标值往往要用到乘除法,高次方