分享

【雷赛智能 | 头条】Beckhoff PLC 在ABB伺服上实现探针功能

 阿明哥哥资料区 2021-02-11

以上为广告

概  述
探针功能又称位置锁存功能。用于通过外部DI信号实时锁存伺服轴或编码器的值。探针功能在模切、印刷等需要位置同步的场合应用广泛。

ABB Microflex e190是智能伺服驱动器,自身可编程,在驱动器上可通过LATCH指令集实现位置锁存功能(Direct控制模式)。E190DI1DI2是两个快速输入通道,可用于LATCHTouchProbe功能。

Microflex e190伺服驱动器支持基于EtherCAT通讯RT-EtherNet(CiA-402)控制,比如Beckhoff PLC。在PLC侧可通过MC-TouchProbe功能块实现探针或位置锁存功能。本文介绍如何通过Beckhoff PLC,实现e190的位置锁存功能。
1:系统配置图

实验介绍
PLCBeckhoffCX5130-0125  
编程软件:TwinCAT 3.1(Build 4024)
运动控制库:TC2_MC2
Drive: Microflexe190 (Firmware: 5902.6)

需要把开关或传感器连接到伺服驱动器的快速输入开关DI1DI2上,作为探针的输入。BeckhoffPLC也支持把传感器接到PLCIO上,但直接连接的伺服驱动器上,锁存的实时性更高。

除了连接DI信号以外,需要在Mint Workbench软件中,把Microflexe190伺服驱动器的控制源设置为RT-EtherNet(CiA-402)

EtherCAT的PDO设置
使用探针功能,除了默认配置的几个PDO以外,在PLC中还需额外配置几个PDO,如下表所示:

表1:PDO配置
 
如表1所示,0x60B80x60B9需分别配置为输出和输入。
0x60BA~0x60BD根据探针的配置选配。如仅需要在DI2的下降沿进行位置锁存,则仅配置0x60BD为输入即可。

Beckhoff PLC支持两个锁存通道。

PDO的配置可知,探针输入信号,以及数据锁存,都是在伺服驱动器侧执行的。锁存的位置信息通过PDO传给PLC。因此,建议把探针信号直接集成在驱动器侧。

PDOTwinCAT 3物理轴Drive下的ProcessData标签页进行配置。

图2:TwinCAT3中的PDO配置
 
MC_TouchProbe功能块
PLC中通过调用MC_TouchProbe功能块实现探针功能,功能块如图3所示:
图3:MC_TouchProbe功能块

TriggerInput(TRIGGER_REF): 结构体类型的变量。在此结构体中配置探针、上升沿/下降沿触发、锁存的源信号,以及是否连续锁存等。此结构体的配置是实现TouchProbe功能的关键,下节详述。
WindowOnly(BOOL): WindowOnly需与FirstPositionLREAL)和LastPositionLREAL)合并起来理解。
FirstPositionLastPosition组合成一个位置窗口,如果WindowOnly设置为TRUE,则仅在位置窗口内可以实现位置锁存。
窗口触发常用在将伺服轴配置为模态轴的场合,如把伺服轴的modulofactor设置为360°
图4:锁存Window示意图
 
RecordedPosition(LREAL):锁存到的数值会写入RecordedPosition中。但如果TriggerInput中设置为连续触发时,RecordedPosition是监控不到锁存数据的,需要到RecordedData结构体中读取。

RecordedData(MC_TouchProbeRecordedData):结构体类型的数据
图5:RecordedData结构体
 
RecordedData中有AbsolutePosition, ModuloPosition,RecordedPosition。当伺服轴为非模态轴时,这几个数据是相同的。
上图为把轴设为模态轴,且Modulo factor=50时的读数。117=2*50+17…。 
AbsolutePosition32位数据寄存器,不受模态轴设定的影响,其计数视回转方向单边递增或递减。
图6:模态轴及锁存窗口
 
其它参数为常规参数,不详述!
 
TriggerInput说明
MC_TouchProbe功能块的TriggerInput输入,是TRIGGER_REF类型的结构体,其定义如下:

图7:TRIGGER_REF结构体
 
当定义一个实例(试验中为tpTriggerInput)后,各元素都有默认值,可根据需要,仅对需要更改的值进行编程。图8tpTriggerInput的在线监测值:

图8:trigger_ref实例监控值
 
EncoderID: 设置锁存的数据源,在TwinCAT System Manager中,与伺服轴对应的EncoderID1
 
图9:EncoderID
 
TouchProbe: 枚举类型,如图10所示:

图10:TouchProbe枚举类型
 
其中TouchProbe1对应伺服轴的DI1TouchProbe2对应伺服轴的DI2。好像可以通过PlcEvent对应PLC的输入点,未测试!

SignalSource: 保留其默认设置SignalSource_Default即可!

EDGE: 枚举类型,设定TouchProbe中选定的触发信号,上升沿还是下降沿触发。定义如图11:

图11:信号沿枚举类型
 
MODE: 设定单次触发还是循环触发。触发同时会受到MC_TouchProbe功能块中Window定义的影响。


图12:触发模式Mode枚举变量
 
PlcEvent: TouchProbe设定为PlcEvent时,即当触发信号使用PLCio信号时,需设定。使用PLCIO信号锁存数据时,其精度受EtherCAT总线周期的影响。

ModuloPositions(BOOL):设置是否把轴位置进行模态化解读。当其值设置为True,ModuloFactor设置为50时,会把轴的ActualPosition 117解读为:17
因此,MC_TouchProbe功能实现的关键,是要对TriggerInput结构体有深入的了解,并进行正确的设置。
测  试
实验例程中有关TriggerInput的编程如图13所示:
图13:对TRIGGER_REF的编程
 
其中几个IF语句,是为了对触发沿、输入信号以及是否循环触发等,通过按钮进行选择。编写的VISU画面如图14所示:
 

图14:测试的VISU画面
 
程序使能后,可以通过MoveVelocity使轴转起来。
TP1:选择伺服驱动器的DI1DI2作为输入信号。
RiseEdge:选择上升沿或下降沿触发
WindowLatch:是否激活窗口触发,窗口由LowPosHighPos设定。
CyclicLatch: 是否循环触发
其他为一些显示信息。
画面有点粗糙,但基本测试功能都能满足!

注意事项:测试前,需确保伺服驱动器中没有Mint程序,且与LATCH相关的参数均为默认值。比如若伺服驱动器内的LATCHINHIBITVALUE或LATCHINHIBITTIME被更改,其会对TOUCHPROBE功能产生影响。(别问我怎么知道的!)
 
总  结
主要讲解如何在Beckhoff PLC中,通过MC_TouchProbe功能块,实现CoE伺服驱动器(对,我说的是Microflex e190, ABB的!)的位置锁存功能。本文未按照操作流程配截图,分步骤详述配置及实现过程,只是侧重于讲解功能,避免文章过于冗长。

是为总结,望对大家有价值!毕竟,看英文文档挺费劲的,且文档中有的姿势点写得还很Implicit!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多