不同執行程式,整合在同一介面

請教:

  1. 如果我有兩個控制程序,想要把他整合在一起用一個介面來開啟,要怎麼建立比較恰當?
  2. 程式2中讀取外部serial port(rs-485,該埠有12個相同設備不同位址),若要對該序列埠執行控制命令,且不等到讀取命令結束就強制執行的話有什麼好方法(之前台北網聚有提到用Queue)?

控制程序各自獨立,但是想要放在同一隻程式內,最簡單的想法就是透過sub panel
你可以透過一個sub panel去放不同的VI,也可以透過在tab control內部署不同的sub panel去放不同的VI
如果你需要相關的範例,可以在find example去找Multiple VI in a Subpanel.vi

至於你的第二點,如果是指在讀取過程中想要下其他控制命令,在同一個port是不被允許的,因為485是半雙工的系統,在還沒有讀取完成就發送命令,可能會導致命令碰撞,會收不到訊號也發不出訊號。

1個讚

若是每次都重新關閉再開啟visa source是否可行?
附檔為我的程式,請參考。Onile_Load_Shedding_190326.vi (233.8 KB)

不可行。
關閉只是軟體行為,不影響硬體的通訊。
在Slave要回傳時軟體發出訊號,依舊會有碰撞的問題。
此外你的VISA config放在timeout裡面,他會在每一次的timeout時,重新config Comport。
如果沒有特殊需求的話,建議最開始config一次就好。

感謝前輩指教,我會再做修正。