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

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

CompactRIO的模拟输出

已解决!
转到解答
我想用CompactRIO实现信号发生器的功能。具体的硬件是:cRIO为9104,机箱为9004,模拟输出模块为NI 9263。我需要在上位机,也就是电脑上用LabVIEW产生各种各样的波形,波形可以通过LabVIEW编程得到,然后在NI 9263上同时输出四路信号。四路信号分别为上位机利用LabVIEW产生的波形。请问应该怎样去实现?谢谢。
0 项奖励
1 条消息(共 4 条)
5,024 次查看

CRIO编程包括三部分:上位机、RT控制器和FPGA三部分,对于简单波形,比如正弦、方波等可以在FPGA程序中直接实现,对于复杂的波形,一个完整的波形周期可能需要很多点来描述,所以波形数据的产生只能在RT或者上位机产生,RT通过DMA传送数据到FPGA。

 

如果是上位机产生波形数据,则必须通过共享变量、TCP/IP或者其它通讯方法把波形数据先传送的RT,由RT再传送到FPGA。

陈树学
QQ:276509891 .
EMAIL:CSXCS_366@126.COM
qq群:78561268 80754347 37591940
http://labview.weebly.com/
新书《LabVIEW实用工具详解》已经发售,敬请关注。
0 项奖励
2 条消息(共 4 条)
5,017 次查看
解答
已被主题作者 青云 接受

CSXCS_366给出了很好的回答,但是有两个地方需要澄清:

1. CSXCS_366建议: 对于复杂的波形,一个完整的波形周期可能需要很多点来描述,所以波形数据的产生只能在RT或者上位机产生,RT通过DMA传送数据到FPGA。

这个方案用9004的控制器是不可实现的。9004只支持从FPGA到控制器的DMA,不支持控制器到FPGA的DMA,也就是DMA是单向的。9012或者9014支持双向DMA。如果

 2. CSXCS_366建议:如果是上位机产生波形数据,则必须通过共享变量、TCP/IP或者其它通讯方法把波形数据先传送的RT,由RT再传送到FPGA。

这个方案实际也很难实现。RT只能支持最多1KHz的loop rate,而9104FPGA上的loop rate最多可以达到40MHz。 绝大多数情况下,信号发生器的频率要远高于1K,在这个条件下该方案也是不可实现的。

 

所以最后可行的方案是直接在FPGA上编程产生信号(除非你换成9014或者9012控制器,这样你就可以使用方案1)。

 

3 条消息(共 4 条)
4,995 次查看

谢谢了。原来我的设计方向有问题,应该是实现不了。那我再想其他的办法做一个信号发生器。

0 项奖励
4 条消息(共 4 条)
4,981 次查看