Komunikacja CANbus dla PLC od Unitronics

Wiktor Susfał Akademia Unitronics Tagi: , , , , ,

Dowiedz się, jakie możliwości daje komunikacja z wykorzystaniem CANbus w aplikacjach budowanych na PLC Unitronics.

Czego dowiesz się z tej lekcji?

Komunikacja z wykorzystaniem CANbus to szerokie zagadnienie. Dlatego też, lekcja ta jest raczej wprowadzeniem w tą tematykę. Zawarte tu informacje pomogą w rozeznaniu się, na czym polega idea komunikacji CANbus. Co więcej, ułatwi to późniejsze rozszerzanie wiedzy na własną rękę.

W tym wpisie skupiono się głównie na implementacji tego sposobu wymiany danych dla produktów od Unitronics. Powiedziano o możliwościach, wariantach oraz korzyściach, które niesie omawiana tu komunikacja. Dodatkowo, znajduje się tu praktyczny przykład pokazujący, jak skonfigurować taką komunikację dla dwóch PLC serii Vision.

Używane komponenty

Komunikacja z wykorzystaniem sieci CANbus jest dostępna dla wszystkich PLC serii Vision i Samba oraz dla sterowników M90/91. Oczywiście, liczba poszczególnych opcji konfiguracyjnych może się różnić w zależności od modelu PLC. Tak samo, niektóre sterowniki posiadają wbudowane porty CAN, a dla innych należy dołączyć specjalny zewnętrzny port.

W tym przypadku używane są dwa sterowniki od Unitronics:

Port CANbus dla PLC od Unitronics v100-17-can
Port CANbus dla PLC od Unitronics v100-17-can

Jak przebiega komunikacja CANbus dla PLC od Unitronics?

Po pierwsze, CANbus to definicja samej magistrali szeregowej używanej do przesyłania informacji. Ustala ona pewne podstawowe parametry, takie jak poziomy napięć w sieci, rezystancje na linii komunikacyjnej czy sposób dostępu do magistrali.

Wykorzystując magistralę CAN można implementować wiele protokołów komunikacyjnych. Dla PLC od Unitronics istnieje kilka możliwości, co do sposobu wymiany informacji z wykorzystaniem połączenia CANbus.

Rodzaje protokołów wykorzystujących magistralę CAN

Dla połączeń pomiędzy produktami od Unitronics:

  • CANbus ISC (Inter-Slave Connection) – protokół zaprojektowany dla PLC serii M90/91; pozwala na połączenie w jedną sieć do 64 sterowników, a następnie na wymianę dany za pomocą zmiennych systemowym (system operands); jego wadą jest to, że każdy sterownik w sieci może wymieniać informacje z co najwyżej 8 innymi urządzeniami;
  • UniCAN DataCOM – protokół dla sterowników serii Vision i Samba, pozwalający na połączenie w sieć i wymianę danych z 60 innymi PLC; na każdy skan programu istnieje pula 32 wiadomości które mogą być dostarczone w obrębie sieci, a każda wiadomość może zawierać do 16 wartości całkowitych (integer).

To co łączy dwa powyższe protokoły, to fakt, że są one typu „Multi-Master”. Każde urządzenie może wysłać i odebrać dane od każdego innego sterownika. Nie występują tu zapytania o dane, informację są po prostu wysyłane do określonego urządzenia.

Dla połączeń z urządzeniami firm trzecich:

  • wykorzystanie standardu CANopen;
  • CANbus Layer 2 – pozwala natomiast wymieniać informacje według standardu CANbus V2.0 (zarówno w wersji z 11-, jak i 29-bitowym identyfikatorem);
  • J1939 – standard wykorzystywany w magistralach używanych szeroko w przemyśle motoryzacyjnym.

Dalej, skupiono się na wykorzystaniu protokołu UniCAN DataCOM, w celu skomunikowania dwóch PLC serii Vision.

Zalety komunikacji po magistrali CAN

Przede wszystkim komunikacja CANbus jest niezawodna, a wynika to ze sposobu nadawania danych oraz z implementacji sprzętowej kontroli błędów.

Co więcej, z wykorzystaniem protokołu UniCAN można programować sterowniki PLC od Unitronics. Wystarczy, że jeden sterownik w sieci CANbus będzie połączony do komputera PC – szeregowo, po TCP/IP lub za pośrednictwem modemu GSM. Taki sterownik pełni rolę „bramy”, natomiast do wybranego PLC w sieci uzyskuje się dostęp podając jego ID w oknie „Communication & OS” programu VisiLogic.

Połączenie przewodów

Porty CANbus stosowane w PLC od Unitronics wykorzystują 5 pinów. Trzy z nich służą do doprowadzenia zewnętrznego zasilania ze źródła 24V DC (-V, +V, PE), a pozostałe dwa to wewnętrzne przewody łączące PLC w sieci, służące do przesyłu danych (L, H). Zalecanym przewodem do łączenia urządzeń w sieć CANbus jest DeviceNet.

Odpowiednie schematy podłączeń oraz specyfikacje dotyczące np. zależności maksymalnej prędkości transmisji od długości przewodu można znaleźć w plikach pomocy.

Komunikacja CANbus - podłączenie PLC do magistrali
Komunikacja CANbus – podłączenie PLC do magistrali
Komunikacja CANbus - specyfikacja standardu
Komunikacja CANbus – specyfikacja standardu

Prosty program dla komunikacji UniCAN

W tej sekcji przedstawiono jeden z prostszych wariantów wymiany informacji pomiędzy PLC od Unitronics przy użyciu protokołu UniCAN. Zawiera on jedynie niezbędne inicjalizacje portów sterowników oraz zalecaną procedurę wysyłania wiadomości po sieci CANbus.

Programy dla PLC V430 oraz V1210 są analogiczne. Dzieje się tak dlatego, że podczas komunikacji CANbus każdy sterownik jest sobie równy – komunikacja Multi-Master.

Z poziomu ekranu HMI sterownika V430 jest możliwe wprowadzenie wartości zmiennych MI 1 oraz MI 2. Następnie, dane te są wysyłane do modelu V1210, pod jego lokalne adresy: MI 3 i MI 4. Również z poziomu HMI sterownika V1210 możliwe jest nadpisanie wartości zmiennych MI 3 i MI 4, a następnie wysłanie ich „z powrotem” do PLC V430.

Inicjalizacja portu do komunikacji CANbus

Pierwsza linia programów dla obydwu sterowników przedstawia się jak niżej. Przykłady omawiane są na podstawie screen’ów dla PLC V430.

Komunikacja CANbus dla PLC od Unitronics - inicjalizacja portu
Komunikacja CANbus dla PLC od Unitronics – inicjalizacja portu

Linia ta składa się z następujących elementów (od lewej).

  • „Direct Contact” z przypisanym bitem systemowym SB2 – gwarantuje, że linia wykona się dokładnie raz, na początku startu programu.
  • Bloczek „Init” z zakładki „Com->Com Port”. Jest to zwyczajna inicjalizacja portu. Z ustawień konfiguracyjnych należy natomiast wybrać wymagany numer/typ portu (tutaj: UniCAN) oraz prędkość przesyłu danych „Baud Rate”. Dopuszczalna wartość zależy od długości przewodu.
  • Bloczek „Set PLC Network ID” z zakładki „Com”, który odpowiada za przypisanie unikalnego ID w sieci CANbus. W tym przypadku dokonano tego statycznie. Dla PLC V430 ID to 1, natomiast sterownikowi V1210 przypisano ID równe 2.
  • Ostatni bloczek to „Set PLC Name” z zakładki „Com”, który przypisuje sterownikowi unikalną nazwę. Przydaje się to potem np. przy łączeniu się zdalnie ze sterownikiem za pomocą Remote Operator.

Zalecana procedura nadawania komunikatów CANbus

Procedura ta jest taka sama, jak w przypadku wysyłania wiadomości np. po protokole MODBUS. Podczas jej wykonywania sprawdza się takie informacje, jak to, czy bufor wiadomości jest już pełny oraz, czy poprzednia wiadomość została już dostarczona.

Odpowiednie linie dla programu PLC V430 przedstawiono niżej.

Wysyłanie wiadomości poprzez sieć CANbus - zalecana procedura
Wysyłanie wiadomości poprzez sieć CANbus – zalecana procedura
Niektóre zmienne systemowe dotyczące parametrów komunikacji po UniCAN
Niektóre zmienne systemowe dotyczące parametrów komunikacji po UniCAN

Na ekranie HMI obydwu sterowników, oprócz pól zawierających wartości odpowiednich zmiennych MI, jest przycisk powodujący wysłanie wiadomości. Przyporządkowano do niego bit MB0. Dalej, procedura zapisu wygląda jak na zdjęciu wyżej, po lewej.

Istnieje kilka zmiennych systemowych informujących o stanie komunikacji UniCAN. W szczególności są to SB201 i SB202, które informują o przepełnieniu się bufora dla wiadomości o odpowiednio: wysokim i niskim priorytecie (dopuszczalna ich ilość w jednym obiegu pętli sterowania to w sumie 32 – po 16 z każdego rodzaju). Więcej informacji znajduje się w plikach pomocy – patrz zdjęcie wyżej, po prawej.

Parametry konfiguracji wysyłania wiadomości

Za samo wysłanie komunikatu odpowiada bloczek „Send UniCAN” z zakładki „Com->UniCAN DataCom”. Podczas jego konfiguracji podaje się szereg parametrów.

  • „Destination CANbus ID” – podawany na sztywno, lub za pomocą zmiennej, numer ID docelowego urządzenia. Dla PLC V430 podano ID PLC V1210, natomiast w drugim programie postąpiono na odwrót.
  • „Destination Group ID” – parametr nieużywany w tym przypadku, można wpisać „na sztywno” ID = 0.
  • „Source Start Address” – początkowy adres zmiennej/grupy zmiennych, które są wysyłane. Dla PLC V430 jest to MI1, natomiast dla V1210 – MI3.
  • „Source Vector: Offset” – podawane na sztywno, lub za pomocą zmiennej MI, przesunięcie względem adresu początkowego. Pozwala dynamicznie adresować wysyłane zmienne względem tej początkowej. U nas jest to zawsze 0.
  • „Destination Start Address” – początkowy adres zmiennej/grupy zmiennych, do których ma nastąpić zapis w sterowniku docelowym.
  • „Destination Vector: Offset” – analogicznie jak dla „Source Vector…”.
  • „UniCAN Send Block Length (ints)” – pozwala na sztywno, lub za pomocą zmiennej określić, ile zmiennych MI ma zostać wysłanych w jednym komunikacie, począwszy od adresu startowego. W tym przypadku, wpisując 2, zapewniamy, że w jednej wiadomości zostaną wysłane wartość MI1 oraz MI2 z PLC V430 oraz MI3 i MI4 z PLC V1210.
  • „Priority” – wiadomości CANbus mogą mieć priorytet wysoki lub niski. Te z wysokim priorytetem są wysyłane najpierw.
  • „Status” – pozwala na przypisanie zmiennej MI, do której zapisuje się następnie liczbę całkowitą, która informuje o poprawności (lub nie) poprzedniej akcji zapisu. Odpowiednie kody błędów można znaleźć w plikach pomocy VisiLogic. W tym przypadku przypisano tutaj zmienna MI0. Można zauważyć, że w programie PLC jest ona przyrównywana do zera przed wywołaniem bloczka „Send UniCAN”. Wartość zero oznacza, że poprzednia akcja zapisu zakończyła się powodzeniem.

Prezentacja rezultatów i pliki do pobrania

Poniżej znajduje się krótki film pokazujący jak może przebiegać dwukierunkowy zapis do zmiennych z wykorzystaniem protokołu UniCAN. Do sterowników połączono się za pomocą programu Remote Operator.

Prezentacja dwukierunkowego zapisu do zmiennej z wykorzystaniem CANbus

Wypełniając poniższy krótki formularz możesz pobrać pliki omawianych tu prostych programów oraz konfigurację Remote Operator.

Podsumowanie – dowiedz się więcej

Jak wspomniano na początku, wpis ten jest jedynie wstępem do komunikacji wykorzystującej CANbus oraz produkty od Unitronics. Sam protokół UniCAN oferuje dodatkowe funkcjonalności, jak np.

  • sprawdzanie czy dane urządzenie docelowe jest dostępne w sieci,
  • wykrywanie nadchodzących wiadomości.

Aby nie komplikować zamieszczonego tu opisu, pominięto te dodatkowe możliwości. Można jednak podejrzeć ich zastosowanie na filmach od Producenta. Linki do nich znajdują się poniżej.

Po więcej lekcji udaj się do strony startowej tego kursu.

Jeśli masz pytania, skontaktuj się z nami pod adresem e-mail: sterowniki@elmark.com.pl . Chętnie wysłuchamy również każdą konstruktywną krytykę na temat jakości tego kursu.