APP下载

大型多板造波系统的多控制器同步技术研究

2020-04-29李木国

计算机测量与控制 2020年4期
关键词:主站寄存器驱动器

李木国,刘 壮,2,杜 海

(1.大连理工大学 海岸与近海工程国家重点实验室,辽宁 大连 116024; 2.大连理工大学 控制科学与工程学院,辽宁 大连 116024)

0 引言

造波机是海洋工程实验室必备的大型设备之一,其用途在于通过海洋波浪场的人工模拟,辅助海洋工程实验室阶段的模型验证。从设计原理角度来看,造波机是一种运动控制设备。大型水池造波机往往需要数百根伺服轴协同运动。以当前的控制器技术水平,单台控制器完全可以承担控制上百块造波板运动的任务。然而,由于人工造波模拟时二次反射波的主动吸收方法需要高性能的计算来配合,致使设计吸收式造波机时需要多台高性能控制器协同完成造波控制任务。与此同时,采用软PLC技术的控制器因具有较高的程序设计灵活性,因而受到了广大控制系统开发人员的喜爱,但软PLC区别于传统PLC的硬件同步的基于PC的软同步控制,同时吸收式算法每个周期修正伺服轴的运动轨迹,所以系统的同步性成为影响造波机造波精度的关键因素[1]。目前,单台运动控制器采用EtherCAT现场总线技术控制多根伺服轴的同步性已经得到了很好的研究。而多台运动控制器之间的同步性却研究较少。

本文采用德国倍福(BECKHOFF)公司的CX2000系列控制器进行多板造波控制,并基于EtherCAT总线进行系统通信架构设计,通过EtherCAT的分布式时钟同步特性与多控制器时钟补偿相融合的方法探讨大型造波系统中的同步控制方法:首先进行造波机原理概述,然后对EtherCAT网络及其同步控制功能进行阐述,其次根据多控制器的设计需求提出了造波控制的任务周期时延的补偿方法,最后通过系统的造波运动控制实验对本文所提的同步控制方法进行验证。

1 造波系统简介

1.1 造波机工作原理

如图1所示,摇板式造波系统和推板式造波系统原理都是电机的圆周运动通过滚珠丝杠转换成直线运动来推动造波板运动[2]。

图1 推板式和摇板式示意图

水池水深为h,造波板入水深度为d,水池无反射,且水是理想不可压缩、无旋运动液体,波高与造波板冲程的比值关系可由微幅波理论计算得到式(1)[3],推导过程详见文献[3]。

(1)

式(1)中,H为造波板板前波高,A为造波板的摆幅或冲程,k为波数,α=0表示推板式造波机,α=1表示摇板式造波机,且波浪的角频率和波数满足色散方程。

1.2 系统结构图

本文构建的多控制器运动同步测试系统主要由倍福CX2030控制器、EL6695网桥、AX5112驱动器、AM8000电机等构成,如图2所示。CX2030控制器采用双核i7 处理器(主频1.5 GHz)和2 GB的内存,软件环境为TwinCAT (The Windows control and automation technology) 3,TwinCAT是一种基于软件的PLC运行环境,基于Windows操作系统实现了实时运行核,保证PLC任务周期的实时性。TwinCAT 3支持多核技术,允许不同的PLC任务运行于不同的CPU核上。为实现主动吸收式的造波系统提供了良好的硬件支持。

图2 系统整体结构图

1.3 EtherCAT网络简介

EtherCAT具有高带宽利用率、高实时性和拓扑结构灵活的工业以太网技术。它在数据链路层是专用的ESC(EtherCAT slave controller)控制器,而在物理层与标准以太网设备兼容。区别于标准以太网链路层存储转发机制,EtherCAT数据帧经过ESC控制器时是动态插入和读取数据,数据不做缓存,明显的缩短数据传输处理延迟时间[4],数据处理时间延迟仅为几纳秒[5]。

图3 EtherCAT报文

2 单控制器同步原理

如图2,通过EtherCAT网络造波系统中每个控制器对电机驱动器进行控制运动,EtherCAT网络自身的分布时钟特性是同步性能将依据(参考IEEE1588标准采用分布式时钟来同步整个EtherCAT网络的精确时钟同步机制,各从站的动作同时执行,同步误差小于1 μs[6])。控制系统中所存在的时钟不同步原因及其导致的偏差:

1)每个从站在上电运行时的启动时间不同;造成了从站时钟的固定偏差

2)每个从站晶振频率由物理原因导致微小差别;导致从站时钟产生漂移,随着系统运行时间的增加,漂移会越大

EtherCAT同步机制有效的的消除了上述两种因素的影响。

具有EtherCAT接口的电机驱动器作为网络从设备管理着系统时间、本地时间和参考时间3个变量[7]。本地时间是与系统时间独立的,它记录从站系统自上电运行起的时间。每个EtherCAT网络中都有一个参考时间,系统会选定网络拓扑结构中第一个具有DC能力的从设备的系统时间作为参考时间。分布式时钟同步机制会使整个EtherCAT系统同步于参考时间。整个同步过程可以分为3个阶段:传输延迟补偿、时钟初始偏移补偿和动态漂移补偿[8]。时钟初始偏移补偿消除了由原因1引起的误差,动态漂移补偿消除了由原因2引起的误差。传输延迟补偿则是为了消除拓扑结构和数据处理引起的传输时延。

2.1 传输延迟补偿

首先,主站确定网络的拓扑结构是通过读取所有从站的DL Status寄存器实现的,然后,发送一个广播写数据帧,从站在数据帧首位到达从站的Port 0-3端口时根据拓扑结构将本地时间锁存至Receive Time Port 0-3寄存器。最后,主站写入从站的System Time Delay寄存器值是根据各从站Receive Time Port 0-3寄存器的值计算各从站与参考时间之间的传输延迟。选取3个从站网络拓扑结构为例,计算原理如下。

首先,主站会读取所有从站的DL Status寄存器来确定网络的拓扑结构,紧接着会发送一个广播写数据帧,当这个数据帧的首位到达从站的Port 0-3端口时,从站会根据拓扑结构将本地时间锁存至Receive Time Port 0-3寄存器。然后主站会读取所有从站的Receive Time Port 0-3寄存器的值。主站根据这些值计算各从站与参考时间之间的传输延迟,并将这些值写入相应从站的System Time Delay寄存器。以3个从站为例,网络拓扑如图2所示,计算原理简述如下。

图4 传输延迟计算网络拓扑图

图4中,tX0表示从站Port 0接收到数据帧的时间;tX1表示从站Port 1接收到数据帧的时间;tPX表示处理传输延迟;tFX表示前向传输延迟;tXY表示数据帧从从站X到从站Y之间的延迟。则有:

tAB=tPA+tWAB

(2)

tBA=tFB+tWBA

(3)

tBC=tPB+tWBC

(4)

tCB=tPD+tWCB

(5)

假设物理层的传输延迟都相同;每个从站的处理传输时间延迟都相同,则有tP=tPA=tPB=tPC;每个从站的前向传输时间延迟都相同,则有tF=tFA=tFB;处理传输延迟与前向传输延迟的差记为tDiff=tP-tF。基于以上假设,可得,

tAB=((tA1-tA0)-(tB1-tB0)+tDiff)/2

(6)

tBA=((tA1-tA0)-(tB1-tB0)-tDiff)/2

(7)

tBC=tCB=(tB1-tB0)/2

(8)

由于数据处理延迟只有几个纳秒,则有tDiff近似为0。那么,可得式(9):

tAB=tBA=((tA1-tA0)-(tB1-tB0))/2

(9)

根据式(8)、(9)可以计算出每个从站到参考时间从站的传输延迟tprop_delay。

2.2 时钟初始偏移补偿

主站计算每个从站的本地时间与参考时间的差值,并将这个差值写入System Time Offset寄存器中,这个过程仅在EtherCAT初始化的时候执行一次。每个非参考时间设备可以通过式(10)计算一个复制的系统时间。

tcopy_sys_time=tloc_time+toffset

(10)

主站将按照式(10)来设置参考时间设备的System Time Offset寄存器的值。

toffset=tmaster_time-tloc_time

(11)

依据式(10)和式(11),参考时间设备计算的系统时间就是主站时间;这样,整个EtherCAT网络的系统时间都同步于主站时间[9]。此时并没有将传输延迟计算在内,动态漂移补偿会将传输延迟计算在内。

2.3 动态漂移补偿

引起从站设备时钟发生漂移的因素可能会随着时间的改变而改变比如,温度、供电电压和设备老化等因素。因此主站会周期性的发送ARMW数据帧,将参考时间设备的系统时间分发至所有其他从设备。从站设备会根据式(12)进行漂移补偿:

Δt=(tloc_time+toffset-tprop_delay)-

trecv_sys_time

(12)

实际的漂移补偿过程非常复杂,这里简述如下,若从站计算的偏差大于0,说明本地时间比系统时间快,则本地时间需要减慢;若从站计算的偏差小于0,说明本地时间比系统时间慢,则本地时间需要加速。为了缩短同步过程的时间,在EtherCAT系统计算出传输延迟和时钟初始偏移后,主站会发送大约15 000个ARMW数据帧,使从站时钟趋于稳定;这之后,主站才会周期性的发送ARMW数据帧来动态调节从站时钟。

3 多控制器时钟补偿方法

受造波计算的需求影响,大型吸收式造波系统中往往存在多个控制器进行人工波浪的模拟,因此控制器之间控制数据时间戳的对齐成为系统正常运行的一个关键性问题。

3.1 多控制器时钟同步

本文所采用系统结构如图2所示,简化的3个主站,主站之间采用EL6695网桥来进行时钟同步与数据的实时传输。每个EL6695都包含两个独立的从站设备,分别称为一次侧和二次侧[10],整个系统的同步结构原理可简化为图5。

图5 系统同步结构原理图

主站1设置为独立时钟模式,主站2、3设置为外部时钟同步模式,则整个系统的DC时钟将同步于主站1的参考时钟。系统中由主站1、EK1122网络耦合器、两个EL6695的一次侧和驱动器构成了上层EtherCAT同步网络。此时EtherCAT网络的时钟同步于这个网络拓扑结构中第一个支持分布式时钟功能的从站[11],这里为EL6695的一次侧。主站2、3分别与EL6695的二次侧和它们下面挂载的驱动器构成了下层EtherCAT同步网络,每个下层同步网络都同步于各自的参考时钟。主站2、3会根据外部参考时钟(EL6695的一次侧)周期性的调节各自的时钟,使得时间差值无限接近于tDcToExtTimeOffset(系统补偿常量值)补偿值,在实验测试中取差值小于10 ns。两个EtherCAT主站之间时钟同步到ns级别[12],主站2、3根据式(13)计算同步的DC时间。

tSyncDcTime=tLocDcTime+tDcToExtOffset

(13)

同步后,整个系统的DC时间将保持一致,SYNC中断也会被同步。

3.2 多主站的任务同步

由于本系统采用的控制器基于Windows软PLC设计,它并没有很好的硬件触发机制来保证多个控制器任务的同时执行。经过测试发现,当PLC周期与CPU时间基一致时,任务周期是同步执行的。然而,当任务周期大于这个时间基时,则不同控制器的PLC任务周期的起始时刻会存在不同;例如任务周期设置大于1 ms时,控制器间任务的起始时刻将产生的同步误差。设置PLC的任务周期(CycTimeNs)设为4 ms,进行实验测试。

3.3 延迟补偿算法

如前所述,大型造波机系统通常由数个控制器构成,为了简化工程实施,不采用硬件信号触发形式。上位机软件通过TCP/IP连接发送开始命令给逻辑主控制器,逻辑主控制器通过EL6695发送开始命令给两个逻辑从控制器,由于EL6695的实现机制数据传输会有大约两个周期的延时,不同逻辑从控制器接收到开始指令的时间会有偏移误差,而这种差异将保持不变。因而可以通过延迟补偿方法的设计来消除这种差异,在本文中将采用如下的步骤进行计算:

1)逻辑主控制器通过F_GetCurDcTaskTime64()函数获得当前任务周期的起始时刻tLocalDcTime;然后在此循环周期发送同步测试指令给两个逻辑从控制器,逻辑从控制器在接收到同步测试指令后,分别记录当前任务周期的起始时刻t2SlaveDcTime和t3SlaveDcTime;主站2、3根据式(14)计算同步的DC时间。

tSlaveDcTime=tLocDcTime+tDcToExtTimeOffset

(14)

2)将这个起始时刻再传回逻辑主控制器,逻辑主控制器将计算从发送同步测试指令起,到两个逻辑从控制器接收到这个指令的时间差,并计算差值的最大值tmaxDelayTime。根据式(15)计算最大延迟周期(取整),从而得到主控制器的延迟周期数和延迟时间,

nmaxDelayCyele=tmaxDelayTime/CycTimeNs

(15)

tmasterDelayTime=nmaxDelayCyele*CycTimeNs

(16)

3)主控制器延迟后,计算从控制器延迟时间,根据延时周期后的主控制器和从控制器延迟时间比较找到最小延迟时间tminDelaytime,让3个控制器均以此延迟时间EtherCAT主站位对齐,算出每个控制器的补偿时间通过ADS写入驱动器寄存器Sync offset中:

tmaterShiftTime=tmaxDelayTime-tminDelayTime

(17)

tSlaveShiftTime=tSlaveDelayTime-tminDelayTime

(18)

4)主控制器在延迟nmaxDelayCyele个周期后向从控制器发送开始运动控制命令。

4 实验与讨论

为了验证所提的多控制器时间补偿方法的有效性,在大连理工大学海岸和近海工程国家重点实验室水槽中采用多控制器多板造波形式进行实验设计。实验水池为长10 m,宽1 m,高2.4 m,试验水深为1.9 m,摇板实验样机为两块0.5 m宽造波板组成,两个伺服电机由两个从控制器控制。实验样机如图6所示。实验中,将每个控制器的PLC周期都设置为4 ms,逻辑主控制器配置为独立时钟模式,两个逻辑从控制器配置为外部同步模式[13]。下面将采用驱动器探针法与示波器直接观测法对时间补偿前后的同步性能进行测试。

图6 摇板造波实验现场

4.1 示波器直接观测

将驱动器的模拟输出口(最大5 μs漂移)配置为输出模式。MFC编写的上位机软件通过ADS通信向逻辑主控制器发送开始指令,采用本文所提的延迟补偿算法来控制驱动器的模拟输出同步输出。使用示波器的触发功能来观察电平的变化,如图7~8所示。

图7 不补偿2 ms同步误差

如图7所示,不补偿时两个从EtherCAT网络存在2 ms同步误差。与之对应,图7是补偿后的结果输出显示。从图8中可以清楚观察到通过补偿后同步误差小于10 μs,这种误差下造波机的推波板位移误差不会超过30 μm[14],完全满足造波的精度需求。

表1 实验数据

图8 补偿后同步误差

4.2 驱动器探针测量

伺服驱动器探针功能能够得到某一时刻电机编码器数值,伺服电机设定速度为1000 mm/s,实际转速为166 rpm,通过同一时刻的编码器差值来比较电机的位置偏差。实验数据如表1所示,编码为16位单圈编码器,即一圈为65535,实验数据为10次平均值。

通过表1中编码器差值可容易得到两台电机的实际位置偏差。结果数据表明,补偿前电机位置偏差计算出的时间和示波器观测值相近为ms级偏差,而补偿后偏差明显变小为μs级别(结果中所出现的60 μs偏差在左右是因为电机抖动和现场电磁干扰造成的)。结果明显表明了经过本文的时间补偿同步性能有了较大层次的提高。

4.3 摇板样机实验

图9是采用本文所提的多控制器同步控制方法进行人工造波的一个场景,实验中按照波浪生成规律测试了不同周期和波高的规则波和不规则波。从现场实验所产生的波浪品质也可以看出,本文所提出的同步控制方法所产生的波浪无偏移现象,具有较强的实用性。

图9 波浪模拟场景图

5 结论

本文基于工业以太网EtherCAT技术探索了多控制器波浪模拟技术,并深入研究了造波控制中各个部分的时钟同步问题及解决方法。与此同时,针对当今先进的软PLC技术在造波系统应用时存在的数据对齐问题,提出了多控制器时间延迟补偿方法,该方法有效地消除了多控制器之间接收开始命令的不确定性。最后采用了3台运动控制器,使用多个网络耦合器和EL6695网桥搭建了多控制器造波实验平台,并通过实验证实了本文所提方法可以将造波系统的同步误差控制在10 μs以内,完全满足了今后大型多板吸收式造波系统的需求。

猜你喜欢

主站寄存器驱动器
V型电热驱动器理论模型及动态特性
气动网络多腔室弯曲软体驱动器结构优化
藏起驱动器号确保数据安全
常用电子测速法在某数字信号处理器中的应用*
飞思卡尔单片机脉宽调制模块用法研究
移位寄存器及算术运算应用
县级配电自动化主站系统的设计
PLC控制技术在皮带上料中的应用
产品