我正在尝试编写一个Labview程序,该程序从串行端口RS - 232上的热传感器获取输入,对其进行一些基本转换,并将其显示在屏幕上。
我想知道是否有可能以某种方式在labview中模拟传感器,或者使用一些外部模拟器应用程序,以便我可以在获得访问实际硬件的权限之前测试我的程序。
这个是可能的吗?
我有Labview 2011。
发布于 2012-05-21 16:26:45
测试VI逻辑的最快方法是制作一个包含示例数据的CSV文件,并将从传感器读取数据的部分临时替换为以相同速率从CSV文件读取数据值的部分。
在较低的层次上模拟串口输入可能是不值得的,因为Labview通常非常可靠地将数据从硬件获取到VI中-这取决于您如何处理它!
发布于 2012-05-21 16:29:28
您可以让另一个程序模拟传感器,并将其写入不同的COM端口。然后,您可以使用零调制解调器电缆连接这些COM端口。
为了做到这一点,你必须弄清楚你的传感器是如何工作的,并将na适当格式的数据输入到第二个COM端口。这些数据最终将被第一个COM端口接收,并最终被您要开发的应用程序接收。
发布于 2012-05-22 17:19:29
如果您将所有通信代码封装在一个或一组子in中,与执行转换和显示部分的代码分开,则可以轻松地用测试代码和测试数据替换实际的传感器数据。您可以编写生成测试数据的subVI,并在以后将其替换为真实的传感器通信subVI,或者您可以使用subVI中的case结构,在与真实传感器通信和仅输出测试数据之间进行选择(正如Moray建议的那样,您可以从文件中读取测试数据,以便轻松地进行更改)。
我建议您编写单独的子VISA,用于打开与传感器的通信,从传感器获取数据点,并在完成后关闭通信端口(尽管您可能只需使用串行或VISA关闭函数)。使用通信端口(又称VISA会话)和错误线将这些VIs链接在一起。开放的VI可以接受指定是否要使用真实/模拟数据的输入,并将该选择存储在全局变量(或函数全局VI)中,每次调用该全局变量(或函数全局VI )时,获取数据VI都会对其进行检查。
glglgl提出的从另一个串行端口发送模拟数据的建议也很好;在这里,您需要做的就是在某种循环中使用串行发送和接收函数,在接收命令和发回输出方面,执行与实际传感器相同的操作。这样做的好处是,您不需要对主程序进行任何更改,无论是连接到真实的传感器还是模拟程序,主程序的工作方式都应该完全相同。然而,现实世界中串行通信的问题通常是由于仪器或设备没有完全按照其规范所声称的那样工作,因此,仅仅因为您的程序与您的模拟完美地工作并不能保证它将与真实的传感器完美地工作,如果真实的传感器做了您没有预料到的事情:-)
https://stackoverflow.com/questions/10680730
复制相似问题