Integracja CANoe i LabVIEW

Cześć!

Mam na imię Wojtek i jestem inżynierem od testowania Systemów Wbudowanych.

Właśnie trwa przedsprzeaż mojego kursu Wszystko o magistrali CAN – polecam!

Wstęp

Komunikacja środowisk CANoe i LabVIEW to popularne wyzwanie, przed którym stają testerzy automatyzujący w branży automotive.

Jest co najmniej kilka sposów na integrację tych środowisk: Zmienne sieciowe, API .NET-owe, lub poprzez dll.

Zaczynamy

Dziś zajmiemy się najprostszym sposobem, czyli przez Zmienne Sieciowe.

Przygotowanie po stronie LabVIEW

Utworzenie zmiennych sieciowych

Zaczniemy od stworzenia projektu w LabVIEW, a następnie dodanie w nim zmiennych sieciowych

Zmienne sieciowe Labview / Labview network variables

ustawiamy odpowiedni typ zmiennych:

Zmienne sieciowe Labview / Labview network variables

Ja stworzyłem cztery zmienne:

StartTest oraz oraz TestFinished typu całkowitego (int)

LabviewParameter oraz TestResult typu float

Zmienne sieciowe Labview / Labview network variables

Następnie deploy:

Deploy zmiennych sieciowych Labview / Labview network variables deploy

Stworzenie VI-ów

Następnie stworzę VI-je do zmiany wartości tych zmiennych. Nazwę je StartTest oraz WaitForTestResult:

StartTest.vi:

Służy do rozpoczynania testu.

Ustawiam zmienną StartTest kolejno na 0 a potem na 1 (aby widoczna była zmiana wartości na 1)

Zeruję również flagę TestFinished, którą będę obserwował w innym miejscu, czekając na zakończenie testu.

Vi do zmiany wartości zmiennych sieciowych /vi for changing values of network variables

WaitForTestResult.vi

Służy do czekania aż test w CANoe się zakończy, a następnie odczytania wyniku.

W pętli while sprawdzam cyklicznie co 100ms stan zmiennej TestFinished. Jeżeli zmienna będzie miała wartość 1, odczytana zostanie wartość TestResult a VI zakończy swoje działanie.

Czekanie na wartość zmiannej sieciowej

Przygotowania po stronie CANoe

Odblokowanie integracji

W CANoe musimy najpierw w głównych ustawieniach programu zaznaczyć opcję integracji ze środowiskiem LabVIEW:

Odblokowanie opcji integracji LabVIEW w ustawieniach CANoe

Po zaznaczeniu tej opcji pojawi się dodatkowy przycisk na wstążce Environment:

LabVIEW configuration

Zassanie zmiennych z LabVIEW

Po kliknięciu na wskazany przycisk widać poniższe okno:

Scanning for Labview network variables in CANoe

Odnajdujemy z-deployowane wcześniej zmienne sieciowe i zaznaczamy checkboxy “Use in CANoe“.

Przechodząc teraz do Environment->System variables:

Okno system variables

Widaż, że CANoe utworzyło zmienne systemowe powiązane ze zmiennymi załadowanymi z CANoe:

Zmienne systemowe CANoe powiązane ze zmiennymi sieciowymi LabVIEW / System Variables in CANoe coupled with LabVIEW Network Variables

Wspaniale!

Teraz czas, dopisać jakąś prostą funkcjonalność..

Obsługa zmiennych z poziomu kodu CAPL

Napiszę prosty kod, który będzie działał następująco:

  • Czekam na zdarzenie zmiany wartości zmiennej StartTest
  • Pobieram wartość zmiennej LabviewParameter i przechowuję ją lokalnie w zmiennej parametr
  • Jeżeli zmiana nastąpiła na wartość 1:
  • Wyświetlam komunikat o rozpoczęciu testu
  • Wpisuję wymyśloną wartość do zmiennej TestResult (to będzie przekazane z CANoe do LabVIEW)
  • Wpisuję wartośc 1 do zmiennej TestFinished – będzie to znak, że test został zakończony
  • Na koniec wypisuję komunikat o zakończeniu testu
kod CAPL pobierający dane z LabVIEW do CANoe, oraz ustawiający dane w CANoe i przesyłający je do LabVIEW.

Podsumowanie

Integracja LabVIEW z CANoe jest prostsze niż mogłoby się wydawać.

Nagranie Video

Poniżej przykład video, jak robię powyższy przykład:


Opublikowano

w

przez

Tagi:

Komentarze

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *