10.POWERLINK网络数据通讯

<< 点击显示目录 >>

主页  轴控开发使用手册 > 轴控应用 >

10.POWERLINK网络数据通讯

 

1.基本信息

版本信息

修改内容

修改人

V1.00

创建

林繁伟、王鹏飞、刘柏严

 

2.应用简介

本文档介绍了在Acopos中如何通过EtherPowerLink实现采集BC0083站点中的数据。

AS版本AS2.7 SP03        

ACOPOS  操作系统:Acp10sys   V2.282

硬件是伺服Demo箱 + BC0083,如下图:

clip0047        

 

clip0048

 

更多信息,请参照贝加莱AS3.090.18帮助中Location ID :5.4.3.6.2.2的文档。

IF789.9中IF2的EPL接口属性设置如下图:循环时间为400us。

clip0049

 

EPL站点号为04的BC0083的X2X总线设置如下图:循环时间为400us,根据模块数量来设置总线循环时间。

clip0050

 

 

3.程序编写案例

需要powerlink库函数,通过plAction函数获取所需要的数据在powerlink通讯中的偏移量。

需要定义

DeviceName            例如'IF3.ST15.IF1.ST3'

ChannelName        例如'DigitalInput01'

(1)变量定义

_LOCAL        STRING                                        DeviceName[50];

_LOCAL        STRING                                        ChannelName[50];

_LOCAL        PLACTION_GET_CROSSLINK_INFO_typ   GetPLOffset;

 

_LOCAL        UINT                 plstatus;

 

_LOCAL           UINT                offset,bits_to_shift;

 

(2)循环任务

 GetPLOffset.DeviceName = &DeviceName[0];

 GetPLOffset.ChannelName = &ChannelName[0];        

 

 plstatus = plAction(0,plACTION_GET_CROSSLINK_INFO,&GetPLOffset,sizeof(GetPLOffset));

 if(plstatus == 0)

 {

         offset = (GetPLOffset.Offset/32)*32;

         bits_to_shift = GetPLOffset.Offset %32;

 }

clip0051

 

Offset 表示偏移量 添到ID922中。

bits_to_shift 表示在读到数据中的偏移量,此数据可以通过bit功能块,经过偏移得到1位数据。

需要注意如果bits_to_shift=10,那么实际数据在第11位,因为内部是从0开始的,所以bit功能块也许要偏移10位才能得到需要的数据。(不是9位)

 

4. 参数表配置

驱动器的参数表设置参照帮助中的设置。

clip0052

clip0053

 

其中ID922 表示偏移量,使用AC114的时候需要是16的整数倍。

ID923表示数据类型,通常设置为7,即按照uint32数据读取。(4表示INT32,64表示REAL)

这两个参数定义说明不可以在任意位置读取数据,每次读取数据都是32位。例如通过程序得到偏移量50,那么你可以设定ID922=32,从32位数据到64位数据都会被读取,偏移量50在这里变成50-32=18位数据,通过其他功能块可以将偏移量18的数据提取出来。你也可以设定ID922=48,那么从48到80位数据会被读取。

ID595用来设置循环读取通道3读取哪一个节点数据,如果BC0083波码为4,这里就设定4,922。

读取到的参数放在ID548中。

ACP10PAR_CONFIG_MA3_CYCLIC_POS      595

ACP10PAR_MA3_CYCLIC_POS                    548

ID595与ID 548对应。

 

ACP10PAR_CONFIG_MA2_CYCLIC_POS      594

ACP10PAR_MA2_CYCLIC_POS                    543

ID594与ID 543对应。

 

ACP10PAR_CONFIG_MA1_CYCLIC_POS      593

ACP10PAR_MA1_CYCLIC_POS                    542

ID593与ID 542对应。

 

对应关系和设置同步是一样的。

通过BIT功能块来使用4个字节中的某些位

模式10 :yi = (xi >> bi) & ai          移位后再与

 

例1:

clip0054

 

上图标示,将id548(接收到的数据)移位24位后于1与,结果放在id13016 BITVALUE1+0中。将id548(接收到的数据)移位25位后于1与,结果放在id13024 BITVALUE2+0中。限位id修改为13016 BITVALUE1+0,13024 BITVALUE2+0.

 

例2:

clip0055

 

上图标示,将id543(接收到的数据)移位24位后于1与,结果放在id13016中。将id543(接收到的数据)移位25位后于1与,结果放在id13024中。将id543(接收到的数据)移位26位后于1与,结果放在id13032中。然后将寻参id,限位id修改为13016,13024,13032。

 

例3:

clip0056

 

 

5. 应用测试案例

5.1 输入输出的设定

DO9322的2个输出程序设置如下:主要是为了产生2路的脉冲,高电平0.4ms,低电平0.4ms。分别接到DI9371的第2个输入点和第10个输入点。便于观察和分析。

clip0057

5.2 EPL总线的数据包分析

下载程序后,使用wireshark抓包软件就能够抓取EPL总线的数据包。

5.2.1 选择个人电脑的以太网接口

clip0058

 

5.2.2 选择接到EPL总线的以太网接口,打钩后,即可按Start进行数据采集。

clip0059

5.2.3 抓包就开始工作,直到点击Stop。

clip0060

 

5.2.4 抓包就开始工作,直到点击Stop。

可以看到主站每0.4ms都会发送SoC数据,

clip0061

clip0062

5.2.5 从数据包里面有变化值的位就对应ID9371对应的第2个和第10个点。

00/02:        0000     00X0

00/02:        0000     00X0

 

5.3 驱动器参数表的设置

5.3.1 驱动器的参数表设置参照帮助中的设置。

clip0063

 

clip0064

 

数据帧位的偏置ID922设置是16的倍数(驱动器Acopos是使用AC114),当使用AC112时候,应该是8的倍数。要留意高低位的排布。

ID922设置为 0时候:16#00F5  00F5

ID922设置为16时候:16#F500  00F5

clip0065

 

读回来是32位的UINT32的,因为Acopos驱动器处理芯片是32位机器字长。

5.3.2 Trace到ID548

MA3_CYCLIC_POS如下图:从图中可以分析到,数据是0.4ms跳变的。

clip0066

5.3 驱动器参数表的设置

5.3.1 通过BIT功能块来使用4个字节中的某些位

模式10 :yi = (xi >> bi) & ai          移位后再与

clip0067

5.3.2 数据中某位的使用:

例如映射为正限位或负限位。

clip0068

 

6.结论

ACOPOS可以按设置的POWERLINK循环时间获取到POWERLINK网络上的数据(可以是其它站点的IO数据或其它ACOPOS上的数据)。

展望:

另外还可以和EPL站点中模拟量输入和编码器输入进行耦合。

EPL站点是把自己的数据广播出去的,而EPL的其他站点可以直接采集EPL总线上的数据,这样能够得到高速数据同步,可应用于某些方案和应用上。

另外是可用于缺少输入端子的ACOPOSmicro和ACOPOSmulti。