Labview - komunikacja PC <> PLC przy wykorzystaniu Ethernet IP

Wszelkie sprawy związane z LabVIEW i komunikacją ze sprzętem. Problemy i ciekawe rozwiązania.
Berto
Posty: 3
Rejestracja: 18 kwie 2018 22:26
Wersja środowiska: LabVIEW 2015

Labview - komunikacja PC <> PLC przy wykorzystaniu Ethernet IP

Post autor: Berto » 18 kwie 2018 22:57

Witam,

Mam pewien problem przy skomunikowaniu ze sobą aplikacji w LV oraz sterownika PLC firmy Omron, serii NJ (konkretnie NJ1300).

Ogólnie jest to projekt sterowania regulatorem PID zapiętym na sterowniku, a aplikacja w LabView służy do definiowania kilkunastu parametrów i wizualizacji pomiarów z czujnika analogowego wpiętego na PLC.

Na sterowniku otwieram port, do którego łączy się aplikacja w LV i następuje wymiana danych.
Z samym wysyłaniem/odbieraniem danych nie mam problemu - komunikacja pomiędzy urządzeniami działa.
Komunikacja PLC_PC.PNG
W załączonym screenie widoczna jest struktura programu w LV (delikatnie przerobiony przykład z LV), w razie potrzeby mogę wrzucić źródła PC i PLC.
Największym problemem stał się tutaj czas cyklu komunikacji. Mam tutaj na myśli czas pomiędzy wysłaniem danych przez PC, odebraniem ich przez PLC, wysłaniem danych przez PLC i odebraniem ich przez PC.
Tak zdefiniowany :) czas cyklu wynosi u mnie ponad 500ms i co ciekawe nie jest on przy każdym cyklu jednakowy, co też jest dla mnie niezrozumiałe.
Ramka danych przesyłanych w każdą stronę ma ok 150 bajtów.

Przy wcześniejszym przesyłaniu kilkunastu bajtów czas cyklu był mniejszy i wynosił ok 100ms co i tak wydaje mi się zbyt sporą wartością...

PC nie posiada dedykowanej karty Ethernetowej do komunikacji ze standardem przemysłowym, jest to zwykła karta sieciowa, może tutaj jest problem ?? :-\

Myślałem nad przetestowaniem połączenia PC<>PC aby wyeliminować PLC jako źródła tak długich czasów komunikacji ale nie wiem czy ma to sens

Na forum jest sporo tematów o serwerze OPC jednak chciałbym uniknąć tego rozwiązania.

Nie mam już pomysłów na zmniejszenie tego nieszczęsnego czasu komunikacji.
Może ktoś z forumowiczów miał podobny problem, lub ma pomysł na źródło i ewentualne rozwiązanie tego problemu??

Byłbym bardzo wdzięczny za każdy pomysł :)

SNT
Posty: 55
Rejestracja: 18 lip 2013 13:23
Wersja środowiska: LabVIEW 2013

Re: Labview - komunikacja PC <> PLC przy wykorzystaniu Ethernet IP

Post autor: SNT » 19 kwie 2018 20:59

z tego co widze to masz tam wysylanie i odbieranie.
moze sprawdz osobno czas na wysylnanie a poniej monitoruj port i gdy pojawi sie cos, zczytaj wszystko i sprawdz czasy wyslania i odebrania.

Awatar użytkownika
micard
Posty: 158
Rejestracja: 30 wrz 2011 11:28
Wersja środowiska: LabVIEW 2016
Has thanked: 6 times
Been thanked: 3 times
Kontakt:

Re: Labview - komunikacja PC <> PLC przy wykorzystaniu Ethernet IP

Post autor: micard » 23 kwie 2018 09:19

1. Do debuggowania czasów świetne są "time probes" które zapięte na error cluster pozwolą Ci dokładnie zmierzyć czas wykonywania poszczególnych bloczków:
https://forums.ni.com/t5/LabVIEW/Simple ... -p/3484648
http://decibel.ni.com/content/groups/sa ... tom-probes

2. Czy Eth_Comm_Data_PLC_out nie zżera tu trochę czasu? Co więcej, jeśli wyjście tego bloczka jest zawsze takie samo - warto wyciągnąć go poza pętlę while - kompilator nie zawsze sam daje radę zoptymalizować takie odwołania w pętli.

3. Jeśli komputer na którym działa ten program, oraz PLC są w tej samej sieci co inne komputery (biurowe itd...) to pakiety wysyłane na port 8000 mogą mieć niższy priorytet niż te hulające po np. 80. Przy większym obciążeniu sieci może być to zauważalne, choć 500ms to bardzo dużo ;/

Berto
Posty: 3
Rejestracja: 18 kwie 2018 22:26
Wersja środowiska: LabVIEW 2015

Re: Labview - komunikacja PC <> PLC przy wykorzystaniu Ethernet IP

Post autor: Berto » 23 kwie 2018 13:02

Dzięki za odpowiedzi i przesłane linki, "time probes" na pewno pomogą w przyszłości przy analizowaniu aplikacji.

Sprawa wygląda co najmniej dziwnie.
Przed weekendem wyciągnąłem PLC z maszyny. Uruchomiłem wszystko jeszcze raz u siebie na stole i o dziwo wszystko działa jak powinno.
Od tej pory nie ma żadnych opisanych wcześniej problemów.
Dzisiaj wpiąłem PLC z powrotem na maszynę i komunikacja działa bez zarzutu.

Trochę mnie martwi, że problem sam się pojawił i sam zniknął.

Blok Eth_Comm_Data_PLC_out to odwołanie się do zmiennych globalnych i konwersja ich wartości na stringa. Ten bloczek z pewnością nie "blokował" komunikacji.

Rzeczywiście urządzenia wpięte były w sieć firmową, docelowo komputer nie będzie miał dostępu do sieci więc uważam, że uniknę problemu z blokowaniem portu.

Awatar użytkownika
micard
Posty: 158
Rejestracja: 30 wrz 2011 11:28
Wersja środowiska: LabVIEW 2016
Has thanked: 6 times
Been thanked: 3 times
Kontakt:

Re: Labview - komunikacja PC <> PLC przy wykorzystaniu Ethernet IP

Post autor: micard » 23 kwie 2018 19:14

karty sieciowe są śmiesznie tanie - to wcale niegłupi pomy(s)ł, żeby mieć komuniację PC-PLC na osobnej sieci, która nie powinna mieć nic wspólnego z wewnętrzną siecią firmy. Jeśli nie masz wymogu odczytywania danych z PLC w innym miejscu (a skoro nie chcesz rozwiązań OPC, to chyba tak właśnie jest) to masz dodatkowe zabezpiecznie przed ewentualny "hekierem".

ODPOWIEDZ