From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

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

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

多通道电源系统的控制问题

请教:

1.  我需要同时控制同一型号的48台电源,涉及到电源的一些参数和功能控制,每台电源的控制界面大概涉及10多个参数和功能按键。如果用事件结构的话,貌似要500多个事件分支,这太不科学了,请教正确的解决办法。

2.  在上面的问题中,每台电源的控制界面上有好几个功能按键是需要按下后就循环做某个工作的,是否需要用---多生产者消多费者结构,单一生产者消费者结构应该不行。请问多生产者多消费者结构是怎么样的。谢谢。请高人解答。如果发邮件lgphoton@163.com。

0 项奖励
1 条消息(共 4 条)
5,506 次查看

1. 如果这48台电脑的电源控制的功能室一样的,可以考虑前面板上复用这些按键和参数,也就是提供一个枚举输入控件作为选择电脑的编号,当按下按键后去判断电脑的编号来控制指定的电脑,这样事件就没那么多了。只是在事件里的函数中增加条件结构来判断控制哪一台电脑。

2. 您的意思是不是每个电脑的功能按键都占用一个队列,如果按照1进行编程,那么可能需要一个队列记录当前按下按键对应的电脑编号,这样两个队列就可以完成您的需要了。  如果还是按照您之前的程序结构,那么您可以试试开辟多个队列来做多个生产者和消费者结构

0 项奖励
2 条消息(共 4 条)
5,444 次查看

AllenXu 

              你好!感谢你的建议,但是可能和我的需求不太一样。客户的要求:每个电源有单独的控制界面,这样就是48个电源控制界面(准备用选项卡解决),每个界面上有两个需要用循环处理的功能按键(循环读取数据并显示,循环存储某些数据)这两个需要用循环处理的按键是独立的事件。我现在的构想是用生产者消费者事件结构,就需要开辟96个队列来相应总共96个需要循环数量的按键事件,感觉非常不科学,也担心开辟这么多线程,行的通不?

             补充:这48路电源的界面风格完全一样,功能完全一样,只是上面的参数可能不一样,比如各自有各自的电流电压设置值 ,各自有各自的电流电压显示值等参数。

0 项奖励
3 条消息(共 4 条)
5,402 次查看

您好,我了解您的程序需求了。 这里有两点建议您看合适不,还是采用一个生产者一个消费者的结构,生产者队列保存您不同界面下按下的两个功能键信息。您提到这两个功能按键都需要“循环”处理某些读取和显示操作,但是,当多个按键按下时,不可能等待这个循环处理完再进行下一个循环,这增加了不必要的等待,况且读取和显示的处理时间很快,所以在消费者处理中,是将多个按键要循环的操作一起操作。也就是消费者中只有一个循环,但里面的操作是可增可减的,增减的指示在您生产者队列中。 例如,您按下主机1的功能按键1,那么消费者中循环读取数据,当您再按下主机2的功能键1,消费者中循环读取主机1和主机2的数据,当再按下主机1的功能按键1,那么消费者的循环中去掉读取主机1的数据,只读取主机2的数据。 这样比较节省您程序的资源,架构会简单些。

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