如何使用EtherCAT的9144扩展机箱



主要软件: Driver Software>>NI-Industrial Communications for EtherCAT
主要软件版本: 1.0
主要软件修正版本: N/A
次要软件: Driver Software>>NI-RIO
硬件: CompactRIO

问题:

EtherCAT是什么,怎样来使用NI基于EtherCAT的9144扩展机箱呢?



解答:

1. EtherCAT
1) 什么是EtherCAT
EtherCAT是一个开放的实时以太网络通讯协议,它的出现使得基于以太网的各类协议的实时性和拓扑灵活性有了一个新的提高。EtherCAT协议针对数据做了优化,它直接传送到以太网帧之中,而且它的传送模式也发生了变化。一改之前需要为每个从站单独发送命令并获取数据的方式,EtherCAT采用了Data Stream的方式,即总站将所用数据压缩在一帧之内,一次性发送,而对于从站来说,在获取属于自己的数据的同时也可以将数据添加入报文中继续发送,正是由于这种方式使得数据传送的时间大大降低,并且也能够对所有的EtherCAT设备实现同步。

2) NI的EtherCAT
NI目前只有一个设备使用EtherCAT通讯,就是NI-9144的扩展机箱。因此最常见的架构为Windows上位机--RT下位机--9144扩展机箱,那么也就要求下位的RT目标需要有两个以太网口来支持EtherCAT。9144机箱上有一个In的网口和一个Out的网口,从而进行菊花链方式的进一步扩展。

要正常使用9144除了按上图连接好拓扑结构之外,需要在软件上安装EtherCAT的驱动,即NI-Industrial Communication for EtherCAT,与一般驱动不同的是安装完EtherCAT驱动之后并不是提供了一组编程的API vi,而是使得LabVIEW能通过配置的方式来控制和使用NI-9144。

2. 使用9144扩展机箱
1) 在连接NI-9144的实时目标上添加目标和设备,找到并添加NI-9144至项目中

      NI-9144同样有Scan Mode和FPGA Mode两种方式,只要拖放对应的模块放在机箱层次或者FPGA层次下即可。比如Mod1就是使用FPGA Mode,而Mod2则是使用Scan Mode。

      2)      9144的配置

因为要使用到9144实时性网络,因此LabVIEW也配合EtherCAT本身的几个状态而将Scan Engine分为Active ModeConfiguration Mode,因此进行对机箱的相应设置或者FPGA程序编译前要设置为Configuration Mode,而部署和运行程序需要使用Active Mode

3. 9144的编程
1) 9144的FPGA编程和同步
EtherCAT的扩展机箱的FPGA编程和一般的FPGA编程没有特别大的差别,而为了能实现EtherCAT同步的优异特性就需要在FPGA编程时稍做注意。

我们注意到,在Scan Engine的每个扫描周期内都会产生一个VPO和VPI的信号,而在FPGA上也有这个IO资源,即Input / Output Virtual Point,也就可以实现同步了。另外,就是可以利用Scan Clock的每个上升沿来做为同步脉冲,同理,对应的IO资源为Scan Clock。

2) 9144的FPGA与cRIO Controller RT的数据传递
9144只支持以用户自定义变量(User-defined variable)的方式来和RT传递数据,而且不支持数组,也不支持FIFO,因此这里着重说明的进行高采样率时,就必须先了解到每周期的采样点数,并手动添加好相应的变量数,比如为了能做到每周期20个点就必须新建20个变量

 
而在RT端,则是对这20个变量的重新组合来合成波形,具体可以参考范例或者附件,这个目前9144FPGA进行数据传递的唯一方法。

 

 



相关链接:
1.       http://digital.ni.com/public.nsf/allkb/57FF524C1FC183AD8625763A00650C1F
Setting up a NI 9144 EtherCAT Project with CompactRIO
2.       http://www.ni.com/white-paper/10555/en
Getting Started with EtherCAT on NI Programmable Automation Controllers


附件:





报告日期: 01/05/2013
最近更新: 01/06/2013
文档编号: 654JFDUY