LabVIEW论坛
直播中

jf_68597926

未满1年用户 7经验值
擅长:可编程逻辑 测量仪表 制造/封装 接口/总线/驱动
私信 关注
[问答]

在项目封装完后,子VI如何从主程序读取数据?

image.png
在封装之前,子VI通过对主VI的引用实现了从主VI那里读取数据,封装之后 貌似由于主VI由 Interface.vi 变为了 Interface.exe而无法读取数据。这种问题应该如何解决呢?

如果采用主VI给子VI赋值的形式的话,貌似不是那么理想,大家有好的解决办法吗?

已退回1积分

回帖(2)

小黑羊

2024-1-29 17:36:05
在项目封装完后,子VI可以通过以下几种方式从主程序读取数据:

1. 使用共享变量:在主VI中创建共享变量,然后将共享变量的引用传递给子VI。子VI可以通过读取共享变量来获取主VI中的数据。

2. 使用全局变量:在主VI中创建全局变量,在子VI中直接读取全局变量的值。需要注意的是,在多线程或者多进程的情况下,全局变量可能会引发竞争条件,所以需要对访问全局变量的部分进行加锁操作。

3. 使用网络通信:主VI和子VI之间通过网络进行通信,可以使用TCP/IP或者UDP等通信协议。主VI作为服务器,子VI作为客户端,通过网络发送和接收数据。

4. 使用队列或者消息传递:在主VI中创建队列或者消息传递的机制,并将队列或者消息的引用传递给子VI。子VI可以通过读取队列或者接收消息来获取主VI中的数据。

封装之后,主VI变为了Interface.exe,并不影响主VI和子VI之间的数据传输。只需要选择适合项目需求的数据传输方式,即可解决无法读取数据的问题。
举报

乒乒乓乓

2024-1-30 10:11:32
本帖最后由 Lucas121 于 2024-2-3 16:04 编辑

本帖最后由 Lucas121 于 2024-1-30 11:12 编辑

举报

更多回帖

发帖
×
20
完善资料,
赚取积分