logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

przekazywanie typów w LabVIEW - jak to należy robić?

_jta_ 18 Lut 2020 09:13 453 2
REKLAMA
  • #1 18477935
    _jta_
    Specjalista elektronik
    Posty: 49140
    Pomógł: 3212
    Ocena: 4258
    Mamy program w LabVIEW (jakiś MainVI), który wywołuje podprogram (SubVI); mają one działać współbieżnie, przekazując między sobą dane (np. przez Queue, Notifier-a, czy Event), i te dane mają jakiś typ/strukturę, której używa się przy tworzeniu obiektu do przesyłania danych.

    No i mam wrażenie, że z tego robi się problem jajka i kury (nie mogło być jajka, dopóki kura go nie zniosła, nie mogło być kury, jeśli się nie wylęgła z jajka).

    Jeśli typ danych nie zostanie określony w SubVI, to na etapie tworzenia SubVI nie jest on dostępny - więc nie ma jak go użyć. Ale jeśli jest określony w SubVI, to MainVI dostanie go dopiero wtedy, gdy SubVI zakończy działanie - więc nie użyje go współbieżnie z SubVI.

    Podwójne definiowanie typu to więcej roboty, i przede wszystkim możliwość zrobienia dodatkowych błędów. Chyba jakiś typedefVI - wadą jest i to, że VI-e zaczynają się mnożyć jak króliki w Australii, i że często nie tylko typ trzeba przekazywać, ale np. i kanał przesyłowy.

    Jakie rozwiązania tego problemu są stosowane, jakie które rozwiązanie ma wady i zalety?
  • REKLAMA
  • #2 18767083
    _jta_
    Specjalista elektronik
    Posty: 49140
    Pomógł: 3212
    Ocena: 4258
    Jakimś rozwiązaniem jest użycie Feedback Node na wyjściu Sub-VI - wartość jest opóźniona (do następnego wykonania programu), ale typ jest dostępny, i można go użyć np. do utworzenia Notifier-a.
  • #3 18834898
    marmon
    Poziom 17  
    Posty: 317
    Pomógł: 13
    Ocena: 30
    możesz wrzucić jakis przykład?
REKLAMA