暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

解忧系列 3:EL1259多时间戳XFC探针和凸轮输出的FB封装

Lizzy的倍福园地 2021-07-13
1883

在工作中实践总结,在朋友圈分享讨论,做最接地气的公众号 —— Lizzy


背景介绍

在伺服轴高速运动的过程中,要捕捉某个信号上升沿的位置值,比如色标检测装置,就需要用到探针功能(TouchProbe)。通常,探针功能要求反馈系统具有位置锁存功能,比如编码器模块EL5xxxLatch输入点或者伺服驱动器的Probe端子。但是随着EtherCATXFC技术的广泛应用,越来越多的客户更倾向于使用带时间戮的XFC端子作为Latch捕捉点,这样TouchProbe功能就不受伺服驱动器的影响,步进电机、模拟量或者脉冲控制的伺服轴、总线控制的伺服轴都可以使用探针功能了。


与探针功能相反,如果要在伺服轴高速运动的过程中,在指定位置打开或者关断一个设备,这就叫凸轮输出(CamSwitch)。比如一圈360,要在每次正向经过180度的时候打开一个DO点,而在到达185度的时候关闭。很多伺服驱动器都有自带的DO点,可以用作凸轮输出。但是使用XFC时间戳端子,可以用任何一个NC轴的位置来触发任何一个XFC的DO通道,从而具有更高的灵活性。


最新的XFC_TouchProbe和XFC_CamSwitch功能已经具有连续快速输出和输入的能力。对于输入来说,即使一个PLC周期内收到多个外部探针信号也可以一一记录下它们对应的NC轴位置。对输出来说,一个PLC周期内也可以在NC轴的多个位置点切换输出状态。


新的XFC硬件模块需要配合新的库文件,使用里面新FB和结构体才能方便地控制新XFC模块的过程数据。为此作者封装了两个以IO通道为接口的FB,帮助用户快速使用多时间戳的XFC_TouchProbe和XFC_CamSwitch功能。


本文就是这些封装功能块的配套说明文档。

1      模块介绍

EL1258/EL1259/EL2258,是8通道数字量多时间戳模块。

EL12582通道时间戳输入模块EL1252的升级版,除了通道数增加到8个之外,还具有多时间戳功能——在一个PLC周期内最多可以记录10次信号变化的准确时间(官网上写是32次,软件里看到是10次)。

EL22582通道时间戳输出模块EL2252的升级版。与EL1258类似,通道数增加到8个并增加了多时间戳功能——在一个PLC周期内最多可以输出10次信号变化的准确时间。

EL1259 的功能等于 EL1258 EL2258,包括8路输入和8路输出。

 

EL1258/ EL2258不仅通道数量是EL1252EL22524倍,可以完全覆盖后者的功能,甚至更加完善和强大,而价格几乎完全相同。所以新项目上都推荐使用8通道的多时间戳模块EL1258/ EL2258。如果项目中既有输入又有输出,则推荐使用EL1259,其价格是EL1258或者EL22581.5倍。

2      使用说明

EL1258/EL1259/EL2258的过程数据,可以包含每个通道的若干个时间戳、信号值、状态字、控制字等。用户可以阅读模块手册,了解这些过程数据分别对应的功能,编写PLC程序来控制。但更多的时候是使用倍福提供的TwinCAT PLC Library中的功能块来控制这些IO数据,最典型的就是输入通道用作探针(XFC_TrouchProbe),输出通道用作凸轮输出(XFC_CamSwitch)。


由于EL1258/EL1259/EL2258的推出时间比EL1252EL2252要晚两年,所以在TwinCAT 2中控制这些模块要引用新版的TcMC2_XFC.lib,时间2017.01.19/V2.9。该库作为本文档附件



TwinCAT 3中,因为软件升级快,并且库文件是自动更新的,所以不存在这个问题。

3      测试条件

硬件:CX1020-0112EL1259AX5000

软件:Runtime TwinCAT 2 Build 2281;开发环境,TwinCAT 2300_64Bit EngineeringWin10

4      测试归档文件

       归档文件应包含PLC程序、配置、相关的LibXML文件等。以压缩文件形式保存,以便复制共享和重现。

       20180704EL1259 V5.zip,除了PLC程序和配置文件TSM之外,还包括Lib和示例说明PDF


5       EL1259的配置

5.1.     PDO List(适用于EL1258EL1259EL1258

EL1258/EL1259/EL2258提供兼容EL1252/2252单时间戳模式的输入和输出(TSITSO),给已经完成程序开发的老客户使用。新客户推荐直接使用多时间戳模式的输入和输出(MTIMTO),才能使用多时间戳功能。通过选择Process Data中包含的PDO,可以单独设置每个通道工作在单时间戳模式还是多时间戳模式。

输入通道

输出通道

MTI

TSI

兼容

EL1252

MTO

TSO

兼容

EL2252

0x16200x1627:

MTI Outputs Chn 18


0x1A000x1A07

MTO Inputs Chn 18


0x1A080x1A0B:

MTI Inputs Chn 1

10x5x2x1x 

Channel 2

0x1A0C0x1A0F:

……

Channel 8

0x1A240x1A27:


0x16000x1603:

MTO Outputs Chn 1

10x5x2x1x 

Channel 2

0x16040x1607:

……

Channel 8

0x161C0x161F

0x16280x162F

TSO Outputs Chn 18

5.2.     选择PDO

因为默认配置是上传8个通道的所有数据,并且每个通道都选择MTI 10x,以至于变量链接的时候选择困难。建议实际用几个通道就选择几个通道,而每个通道都用10x的数据,以保证最大程度的锁存数据。

 

方法1Predefined PDO Assignment

模块厂家可以提供若干预定义的PDO配置,如图所示:

EL1259提供的预定义PDO配置包括Multi-TimestampingCompatible两种,如果前述,新项目建议都用多时间戳模式Multi-Timestamping。根据实际情况选择适合的通道数量。

 

但是预定义的PDO配置总是输入输出同样通道数量,如果实际上你只用了输入或者只用了输出,又不想浪费过程数据或者强迫症发作不想看到多余的过程数据,参考下一步人工选择PDO”

      

       不管用哪种方法配置,确认上图中“PDO Assignment”是勾选中的状态。虽然默认也是选中的,有时会不小心被客户改掉。

 

提示:PDO Configuration,如果你没有修改过PDO里面的内容,就不用勾选了。大多数EtherCAT从站不允许用户修改PDO的内容,倍福有个别智能EL模块允许。

      

方法2:人工选择PDO

EL1259Process Data页面,Sync Manager中,双击3Inputs),并在下方的PDO Assignment0x1C13)中勾选需要的PDO。每个PDO的内容在右侧的PDO List中可以看到。如图所示:

上图选中的是2x,表示一个PLC周期只以缓存两个事件,比如一个上升沿和一个下降沿。

5.3.     输入通道的过程变量(适用于EL1259EL1258

输入变量

a. Event指信号跳变事件,可能是上升沿或者下降沿

b. Input Event StateTrue,表示上升沿,反之下降沿

c. Input Event time依次与State对应,表示跳变时间

d. No of input events:本周期发生的信号跳变次数

比如配置了MTI Inputs 10x Channel1,最多可以记录10次信号跳变信息,但有可能本周期只发生了5次甚至1次都没有发生。这个变量链接到PLC之后,可以判断锁存的数据是新的还是旧的。

e. Input State,表示本通道最后一次刷新信号状态

如果作为普通DI来用,使用这个变量即可。

f. OverflowEvents in  buffter正常都应该为

说明:在TcMC2_XFC.lib中已经对以上过程变量进行处理,包括手动输出。


输出变量

a. 通常情况下不需要干预

b. 如果发生了溢出或者其它错误,才需要通过变量Input Buffer Reset来复位。

(实测中没有发生错误,所以没有测试复位功能) 

5.4.     输出通道的过程变量(适用于EL1259EL1258

输入变量

a. 通常情况下不需要干预

b. 链接到PLC可以知道通道的工作状态有无溢出等。 

说明:在TcMC2_XFC.lib中也没有处理这些状态字。


输出变量

a. Event指信号跳变事件,可能是上升沿或者下降沿

b. Output Event StateTrue,表示上升沿,反之下降沿

c. Output Event time依次与State对应,表示跳变时间

d. No of output events:本周期发生的信号跳变次数

比如配置了MTO Outputs 10x Channel1,最多可以控制发生10次信号跳变,但有可能本周期只需要发生5次甚至1次都不用发生。

e.如果要手动控制控制通道输出,相当于用作普通的DO通道。需要组合变量:

Enable manual operation:允许手动

Manual output state:手动状态

另外,Force order则用于强制输出。

f.Output Buffer Reset 用于故障后复位

(这个功能我还没来得及测试) 

说明:在TcMC2_XFC.lib中已经对以上过程变量进行处理,包括手动输出。

6       示例程序

6.1.     演示的功能

  • 本例程同时演示了EL1259的输入和输出功能,即TouchProbeCam Swich

  • 使用时需要将EL1259Output1Input1用导线连接,

以便Cam Switch输出的信号能够被Touch Probe探测到。

  • 本例程的展示结果就是:

预设在指定角度输出的信号,用探针检测到的实际信号对应的角度与预设输出信号的角度的差异,就是整个响应的误差。

6.2.     示例程序介绍

  • 概览结构

POU:

HMI:


  • 例程的设计原则:

FB和引用实例分开。FB供客户直接引用,例程供客户参考。

常规功能和引用实例分开。常规功能控制轴的动作,引用实例演示主题功能。

如果有生成测试信号的代码,比如信号仿真,也应独立程序单独调用。

为了引用方便,少用全局变量和结构体。

 

  • 程序的调用树:

       黄色模块是TcMC2_XFC.lib提供的功能块

       绿色模块是本例程封装的功能块

       蓝色模块是本例程为了测试黄色和绿色模块编写的测试代码。

6.3.     试运行示例程序

通常在用户现场,PRO程序可以直接使用,但IO数量各不相同。要在用户的硬件上运行这套程序:

  • 打开本例的TSM文件,禁用或者删除EtherCATIO

  • 重新扫描IO,禁用或者删除扫描到的EL1259

  • 在相应位置导入附件中的Term 1 (EL1259)_10x_Channel1.tce

提示是否恢复链接,回答Yes

  • 在控制器上运行PRO程序


6.3.     试运行示例程序


  • 引用TcMC2_XFC.lib

版本V2.9以上,时间2017.01.19/V2.9。该库作为本文档附件

 

  • 从本例程中合并部分程序

从PLC Control的主菜单Project下选择“Merge”,然后选择以下对象:


  • 修改程序Cam_Switch_XFC或者Touch_Probe_XFC中的Axis,并编译。

替换程序中的aAxis[1]为项目中实际的NC轴。

如果有多个轴要位置锁存或者凸轮输出,相应修改代码。

 

  • 链接IO变量。

如果使用TouchProbe,有6个变量要链接


所有变量都在TP_D下面:

1,   aIE_Time  下的10个元素分别链接到MTI  Inputs 10xInput event time 1-10

2,   aIE_State下的10个元素分别链接到MTI Inputs 10xInput event state 1-10

3,   nEventsInInputBuffer:链接到MTI Inputs 10x

StatusEvents in input buffer  

4,   bInputStateMTI Inputs 10xStatusInput state

5,   nNoOfInputEventsMTI Inputs. StatusNo of  input events

6,   bInputBufferResetMTI Outputs Ctrl.Input  buffer reset

 

如果使用CamSwitch,有4个变量要链接


所有变量都在EL1259下面:

1,   Status  :链接到MTO InputsStatus

2,   Ctrl:链接到MTO OutputsCtrl

3,   Outputs:链接到MTO OutputsOutputs

4,   OutputEventTime下的10个元素分别链接到:链接到MTO OutputsOutput  event time 1-10

注意,

例程Cam_Switch_XFCEL1259,仅指EL1259的一个输出通道,也适用于EL2258

例程Touch_Probe_XFCTP_D,仅指EL1259的一个输入通道,也适用于EL1258

 

  • NC轴的时间补偿需要打开

如图所示,EncDriveTime Compensation都要打开:

如果补偿设置为ON以后,还是有相对稳定的往一个方向偏移的误差,就可以通过Delay CyclesAdditional Delay进行补偿。

 

7       其它说明

由于本例程特为用户赶制,EL1259的状态字控制字并没有充分利用,未能检验到所有功能。所以本文档后续会再补充完善。

本例只是提供一种思路,一种最典型的用法。目前开放出来的FB接口变量和内部逻辑未必适合所有的工程项目。用户可以根据实际情况修改相应的FB,有新的发现也欢迎留言。


示例程序和配套文档放在本公众号的云服务器,按日期查找即可:

FTP下载工具访问:ftp://baclizzy.com.cn:21

IE浏览器访问:http://www.baclizzy.com.cn


本文PDF版本及配套程序的路径为:

Lizzy的倍福园地 / 20180704 EL1259用于TouchProbe和CamSwitch

文章转载自Lizzy的倍福园地,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论