我正在尝试编写一个Labview程序,该程序从串行端口RS-232上的热传感器获取输入,对其应用一些基本转换,并将其显示在屏幕上。
我想知道是否有可能以某种方式在labview中模拟传感器,或者使用一些外部模拟器应用程序,这样我就可以在访问实际硬件之前测试我的程序。
这可能吗?
我有2011年的Labview。
答案 0 :(得分:3)
测试VI逻辑的最快方法是制作一个包含示例数据的CSV文件,并暂时将从传感器读取的部分替换为以相同速率从CSV文件读取数据值的部分。
可能不值得尝试在较低级别模拟串行端口输入,因为Labview通常非常可靠地将数据从硬件传输到VI中 - 这取决于您使用它做什么!
答案 1 :(得分:1)
您可以让另一个程序模拟传感器并写入另一个COM端口。然后,您可以使用零调制解调器电缆连接这些COM端口。
为此,您必须弄清楚传感器的工作原理,并以适当的格式将数据提供到第二个COM端口。这些数据最终将由第一个COM端口接收,最终由您的应用程序开发。
答案 2 :(得分:1)
如果将所有通信代码封装在子VI或子VI集中,与执行转换和显示部分的代码分开,则可以轻松地将测试代码和测试数据替换为真实的传感器数据。您可以编写一个生成测试数据的子VI,然后将其替换为真实的传感器通信子VI,或者您可以使用子VI中的案例结构来选择与真实传感器通信并仅输出测试数据(正如Moray建议的那样) ,您可以从文件中读入,以便您可以轻松更改它。)
我建议您编写单独的子VI以打开与传感器的通信,从中获取数据点,并在完成时关闭通信端口(尽管您可能只是使用串行或VISA关闭功能) 。使用通信端口(也称为VISA会话)和错误线将这些VI链接在一起。 'open'VI可以输入一个输入,指定是否使用真实/模拟数据,并将该选择存储在全局变量(或功能全局VI)中,每次调用时,'获取数据'VI都会检查。< / p>
glglgl建议从另一个串口发送模拟数据也很好;你需要做的就是在某种循环中使用串行发送和接收功能来做与真实传感器相同的事情,就接收命令和发送输出而言。这样做的好处是,无论是连接到真实传感器还是模拟程序,您都不需要对主程序进行任何更改,这些更改应该完全相同。然而,现实世界中串行通信的问题通常是由于仪器或设备不能完全按照其规范声称的那样完成,所以仅仅因为您的程序与您的模拟完美配合并不能保证它能够完美地与真正的传感器,如果真正的传感器做了你没想到的事情: - )
答案 3 :(得分:0)
虽然其他答案提供了一些非常好的想法,但我发现了一种更简单的方法来模拟传感器输入,这对初学者来说非常方便。
打开Labview Modbus库并运行“MB Serial Master Example.vi”
现在应该可以使用示例程序将值读/写到模拟器中。
可以分析示例程序的框图,以了解如何在Modbus协议的幕后传输数据。