NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

第三方软件如何通过EtherCAT来接收9144 FPGA bitfile处理之后的数据?

您好,我现在是想使用的9144的EtherCAT以及其上面的板卡9215和9402来采集信息,现在我是编写了9402和9215的FPGA程序到9144中,设置的模式是上电运行模式。然后是把9144 连接到beckhoff的EtherCAT的中,按照官网上的说法是将9144上面的板卡9215以及9402的xml文件通过NI官网上提供的XML文件生成器来生成的。然后我是将他们的xml文件放在beckhoff的官方软件Twincat3的安装目录下的。这个时候是可以在twincat3软件中找到9144以及9215,9402等等。但是现在我是想使用9144的FPGA模式来对数据进行处理之后通过EtherCAT送到Twincat3中的,请问这个过程是怎么样操作,怎么样使用9144FPGA模式下的bitfile文件??

0 项奖励
1 条消息(共 28 条)
5,740 次查看

您好,

 

既然您已经成功将FPGA程序下载到9144中了,默认您已经将自己想要的数据处理方法及逻辑下载进去了。所以您只需要使用TwinCAT读写9144就可以了吧。不知道我有没有正确理解您的问题。请让我知道。

谢谢!

 

Wendy

0 项奖励
2 条消息(共 28 条)
5,720 次查看
恩,是的,谢谢您。我现在在控制器9024下面新建了一个上位机,然后里面可以正常接收到来自9144里面FPGA处理之后的数据。我使用的是UDV变量传输的数据。然后现在该如何将9144的FPGA处理的数据通过ethercat连接到beckhoff的设备,以及让其官方软件twincat3读写9144板卡上面的9215等采集模块!http://digital.ni.com/public.nsf/allkb/D03B0518A979623486257D7E0048C1C9这是我从ni官网上查找的资料,但是还是没有解决。谢谢您!
0 项奖励
3 条消息(共 28 条)
5,715 次查看

您好,

 

请问现在您在TwinCAT中可以识别出9144上您建立的UDV变量吗?因为如果您按照那个官网文档操作成功,您是可以用TwinCAT第三方软件discover到NI 9144, all modules和FPGA UDVs listed under the NI 9144 slave,所有这些都会被显示为 'User Defined Variables Module'.

如果您可以在TwinCAT中看到这些 'User Defined Variables Module', 请参照9144用户手册,Section "Using the NI 9144 with an EtherCAT Third-Party Master". 该部分分别介绍了两种方式读取NI module,两种方式分别依赖于您的master software是否支持AoE。您先看看了解一下,进一步问题请一定联系我。

谢谢!

 

Wendy

0 项奖励
4 条消息(共 28 条)
5,697 次查看

谢谢您。现在问题是已经基本上解决了。我直接是使用udv来传输信号源的方波到tc3,但是最后 收到的信号的幅值是不对的,只是显示的是幅值是1V的方波。还有个就是您这边有关于9144的FPGA模式使用EtherCAT来传输到第三方的Labview的例程吗?我想就是作为参考下。

0 项奖励
5 条消息(共 28 条)
5,635 次查看

您好,根据描述我觉得是您没有对数据进行calibrate,其实在我之前给你的9144用户手册的”Appendix“部分的“Supported C Series Modules”里,记录了所有支持的modules的使用信息;比如Table 37就是NI 9215 Calibration的系数。

不过sadly现在暂时没有相关的LabVIEW例程。您可以把你的LabVIEW project file给我,我帮你具体查看一下。

 

Wendy

0 项奖励
6 条消息(共 28 条)
5,627 次查看

谢谢您。下面是我的Labview小程序,请您进行指导?这个小程序的主要功能是实现的通过9144的FPGA接收或者是处理9215等采集之后的数据,然后是通过变量UDV借助EtherCAT传输到twincat3上面去,我这边主要是借助的是scopeview来观察。然后我这边先是通过Labview的上位机对定义的UDV变量进行观察。我给定的信号源是正弦波幅值为4v,频率是1khz。但是最后我将这个信号送到TWINCAT3中的时候出现了错误,主要是信号失真(见图二)中间给您带来不便请见谅!!!请您指教!

图一:信号源连接的是9215的通道一和通道三。(主要是看下面两个示波器)

111.png

 

图二:scopeview中的观测波形:

 

222.png

0 项奖励
7 条消息(共 28 条)
5,612 次查看

您好,我现在在使用的是NI的etherCAT设备9144,现在已经成功的的实现了NI设备与第三方设备之间的数据交换。中间主要是通过XML文件来实现的,现在想具体的弄明白NI设备(9215)采集的数据是怎么样通过EtherCAT来传输到第三方的设备中的。这中间,NI生成的XML文件应该是相当重要的。现在我想学习下这个XML文件,请问该如何下手??这个xml文件是怎么样具体实现这个功能的!谢谢您!

 

0 项奖励
8 条消息(共 28 条)
5,583 次查看

对不起,中间隔了周末这么晚才回复您,请原谅。

 

我查看了您提供的进一步信息,我仍然认为最可能的原因还是9144只上报了raw data(例如您使用的9215,TwinCAT最后收到就是16-bit的raw数据,而没有calibrate映射成为量程+/-10v的信号值)到第三方的master,这里即为TwinCAT。我不太了解scopeview的读值,纵坐标显示出的数量级貌似很小!我认为符合我的猜想。

这个calibrate的过程既可以由NI来做,也可以由TwinCAT来做,建议您也咨询下Beckhoff看看有什么更好的方法。

以下即为NI calibrate的方法您可以一试:

1. 读取calibrate module所需的calibrate data,首先需要先向OD 0x5FFF写入想要读取的module的slot override,见下图(摘自9144用户手册)

 slot address OD.png

Note:最后不要忘了cancel slot address override by writing a 0.

2. 其次从0x 2100 读取你module的calibration data,见下图(摘自9144用户手册)

calibration data OD.png

 

9215 calibration data OD.png

 3. 读出calibration data之后就可对raw数据进行calibrate了:

calibrate raw data.png

如果您需要的话我可以整理一个例程给你参考。请让我知道,谢谢!

 

我不敢认同是这是因为生成的XML的影响,因为XML只是EtherCAT slave的描述文件,用以告诉master slave的相关基本信息,在这里,比如module的IO有几个,IO的数据类型是多少bit等等。您可以下载ETG的slave相关的spec来了解,比如这个链接

 

Wendy

0 项奖励
9 条消息(共 28 条)
5,569 次查看

嗯,好的。谢谢您的指导,现在我再仔细琢磨琢磨。然后昨天我是在TC3上面的Scopeview上面可以实时的监测到9144上面的信号。中间还是有点数据的丢失的。原因正在查找中。有一个问题就是,在Labview中对FPGA编程的话,该如何建立数组类型的变量来传输数据呢?

现在才给您回复,请您见谅。后期有什么疑问还得请教您。谢谢。

0 项奖励
10 条消息(共 28 条)
5,537 次查看