Serial port 在Labview中模拟输入

Serial port 在Labview中模拟输入,serial-port,simulation,labview,Serial Port,Simulation,Labview,我正试图编写一个Labview程序,从串行端口RS-232上的热传感器获取输入,对其应用一些基本转换,并将其显示在屏幕上 我想知道是否有可能以某种方式在labview中模拟传感器,或者使用一些外部模拟器应用程序,以便在访问实际硬件之前测试我的程序 这可能吗 我有Labview 2011。测试VI逻辑的最快方法是制作一个示例数据的CSV文件,并临时将从传感器读取的部分替换为以相同速率从CSV文件读取数据值的部分 可能不值得尝试在较低级别上模拟串行端口输入,因为Labview在将数据从硬件获取到VI

我正试图编写一个Labview程序,从串行端口RS-232上的热传感器获取输入,对其应用一些基本转换,并将其显示在屏幕上

我想知道是否有可能以某种方式在labview中模拟传感器,或者使用一些外部模拟器应用程序,以便在访问实际硬件之前测试我的程序

这可能吗


我有Labview 2011。

测试VI逻辑的最快方法是制作一个示例数据的CSV文件,并临时将从传感器读取的部分替换为以相同速率从CSV文件读取数据值的部分


可能不值得尝试在较低级别上模拟串行端口输入,因为Labview在将数据从硬件获取到VI中时通常非常可靠-这取决于您如何使用它

您可以让另一个程序模拟传感器并写入不同的COM端口。然后,您可以使用空调制解调器电缆连接这些COM端口


为了做到这一点,你必须弄清楚你的传感器是如何工作的,并将数据以适当的格式输入第二个COM端口。这些数据最终将由第一个COM端口接收,并最终由待开发的应用程序接收。

如果您将所有通信代码封装在一个或一组subVI中,与执行转换和显示部分的代码分开,您可以轻松地用测试代码和测试数据替换真实的传感器数据。您可以编写一个生成测试数据的subVI,并在以后用真实传感器comms subVI替换它,或者您可以使用subVI中的case结构在与真实传感器通信和仅输出测试数据之间进行选择(正如Moray所建议的,您可以从文件中读取数据,以便轻松更改它)

我建议您编写单独的SUBVI,用于打开与传感器的通信,从传感器获取数据点,并在完成后关闭comms端口(尽管您可能只需使用串行或VISA close功能即可)。使用comms端口(又名VISA会话)和错误线路将这些VIs链接在一起。“开放”VI可以获取一个输入,指定是否使用真实/模拟数据,并将该选择存储在全局变量(或函数全局VI)中,“获取数据”VI每次调用时都会检查该变量


GLGL从另一个串口发送模拟数据的建议也很好;这里您需要做的就是在某种循环中使用串行发送和接收功能来完成与实际传感器相同的事情,即接收命令并返回输出。这样做的好处是,您不需要对主程序进行任何更改,无论主程序连接到真实传感器还是模拟程序,其工作原理都应该完全相同。然而,在现实世界中,串行通信的问题往往是由于仪器或设备不能完全按照其规格要求执行,因此,仅仅因为你的程序能与模拟完美配合,并不保证它能与真实传感器完美配合,如果真实传感器做了你意想不到的事情:-)

尽管其他答案提供了一些非常好的想法,但我发现了一种更简单的模拟传感器输入的方法,这对初学者来说很方便

  • 使用虚拟端口模拟器在计算机上创建虚拟串行端口
  • 得到一个Modbus模拟器
  • 下载Labview Modbus库 打开Labview Modbus库并运行“MB串行主示例.vi”

    现在应该可以使用示例程序将值读/写到模拟器中


    可以分析示例程序的框图,以了解数据在Modbus协议的后台传输方式。

    让另一个程序模拟传感器是个好主意。我想知道的是如何做的细节。我不知道你的传感器-这是你必须要知道的。但我添加了一个基本的想法,如何使用这种方法。我还经常使用com0com模拟零调制解调器电缆(当您没有任何或足够的端口时很方便),用于测试RS-232应用程序: