Komunikacja w sieci CsCAN
Kurs programowania PLC od podstaw
Odc. 17
Kontakt w sprawie artykułu: Kamil Zajdel - 2020-03-17
Z tego artykułu dowiesz się:
- Co to jest protokół CsCAN i jak wygląda komunikacja w tym protokole?
- Jak wygląda architektura w sieci CsCAN?
- Jak połączyć układ SmartStix ze sterownikiem Horner XL7e?
- Jak skonfigurować odczyt zmiennych z modułu SmartStix w sterowniku XL7e?
W tym artykule poznasz podstawowe informacje dotyczące komunikacji oraz architektury sieci CsCAN. Nauczysz się także konfigurować układy wejść-wyjść oddalonych SmartStix oparte na sieci CsCAN.
Kurs programowania PLC od podstaw dla automatyków i elektryków
Podstawy programowania sterowników PLC
Programowanie sterownika PLC w języku drabinkowym
Programowanie zintegrowanego panelu HMI
Komunikacja sterowników PLC w sieci szeregowej i Ethernet
Zaawansowane funkcje sterownika PLC
CAN to szeregowa magistrala komunikacyjna, która została stworzona w latach 80-tych XX wieku przez pracowników firmy Bosch. Pierwotnym założeniem wykorzystania sieci CAN były aplikacje i systemy dla przemysłu samochodowego (np. system ABS, czy sterowanie silnikiem). Obecnie ta sieć znajduje zastosowanie również w przemysłowych magistralach polowych, a najpopularniejsze standardy bazujące na CAN to: CANopen, DeviceNet oraz CsCAN.
CAN jest siecią peer-to-peer. Oznacza to, że nie ma wyodrębnionej nadrzędnej jednostki zarządzającej komunikacją. Są to tzw. magistrale typu multi-master. Komunikacja ma charakter rozgłoszeniowy, ponieważ komunikaty nadawane na magistralę są odbierane przez wszystkie urządzenia pracujące w sieci.
Najważniejsze cechy CAN to:
- do 8 bajtów danych w komunikacie,
- rozpoznawanie komunikatów przez identyfikatory,
- automatyczna obsługa dostępu do magistrali,
- sprzętowa obsługa błędów.
Magistrala CAN wykorzystuje dwuprzewodową skrętkę, pracując na dystansie do 40 m z maksymalną prędkością transmisji 1 Mbps. Wraz ze zwiększaniem dystansu spada maksymalna prędkość transmisji. Maksymalna długość magistrali, po wykorzystaniu zewnętrznych repeaterów, może wynieść do 2000 metrów, a w jednej sieci może pracować do 255 urządzeń.
CAN charakteryzuje się dużą niezawodnością i odpornością na zakłócenia. CAN jest niezawodny dzięki temu, że nadaje dane w postaci napięciowego sygnału różnicowego oraz dzięki sprzętowej obsłudze protokołu i kontroli błędów.
W urządzeniach Horner, port CAN należy do wyposażenia standardowego. W zależności od firmware’u wgranego do sterownika, port CAN może pracować w trybie CsCAN, CANopen, j1939 lub DeviceNet.
Najczęściej wykorzystywany jest CsCAN, który pozwala na:
- szybką komunikację kilku sterowników między sobą, w celu wymiany danych procesowych,
- lokalną lub oddaloną rozbudowę sterowników, o obsługę dodatkowych układów wejść-wyjść SmartStix,
- zdalne programowanie sterowników pracujących w sieci CsCAN; wystarczy, że jeden sterownik będzie miał dostęp do komputera z oprogramowaniem narzędziowym, aby programista miał możliwość programowania dowolnego urządzenia pracującego w sieci CsCAN.
Zasada działania sieci
Identyfikator komunikatu określa priorytet dostępu do magistrali, zgodnie z zasadą „im mniejsza wartość liczbowa, tym większy priorytet”. Identyfikator nie jest przypisany do urządzenia lecz do konkretnego komunikatu.
Dostęp do magistrali jest przyznawany metodą dominacji bitowej, która polega na tym, że sterowniki badają stan magistrali, czekając na możliwość wysłania własnego komunikatu. Jeśli magistrala nie jest zajęta, sterowniki zaczynają nadawać.
W przypadku podjęcia próby równoczesnego nadawania przez kilka sterowników, dostęp do łącza otrzyma ten o niższym numerze identyfikacyjnym. Komunikat trafia do wszystkich urządzeń pracujących w sieci CAN, a o sposobie wykorzystania danych decyduje urządzenie docelowe. Otrzymane dane może odebrać i zapisać we własnej pamięci lub nie robić z nimi nic.
SmartStix – Moduł I/O na sieć CsCAN
Moduły rozszerzeń SmartStix pozwalają na lokalną lub oddaloną rozbudowę sterowników o obsługę kilkudziesięciu dodatkowych sygnałów dyskretnych i analogowych.
Podstawowe cechy urządzeń:
- komunikacja ze sterownikiem przy pomocy sieci CsCAN z prędkością do 125 kB/s,
- do 253 urządzeń w jednej sieci CsCAN,
- komunikacja na odległość maksymalnie 2000 metrów przy zastosowaniu zewnętrznych repeaterów sygnału.
Prawidłowa komunikacja w oparciu o CAN wymaga zasilenia portu. W zależności od sterownika, który posiadasz, port może być zasilony wewnętrznie napięciem 24 VDC pochodzącym ze sterownika lub wymagać podania zewnętrznego napięcia na magistralę.
W tym kursie korzystasz ze sterownika XL7e, którego porty CAN są już wewnętrznie zasilone. Sterownik wyposażony jest w dwie niezależne magistrale, z czego jedna obsługuje standard CANopen a druga – CsCAN. W tej aplikacji komunikacja z układem SmartStix realizowana będzie na porcie CAN1.
Moduł I/O SmartStix wymaga zasilenia elektroniki samego modułu oraz zasilenia magistrali, dlatego do jego zacisków trzeba podłączyć wewnętrzne napięcie 24 VDC.
Kabel komunikacyjny Horner XL7e <–> moduł SmartStix, należy wykonać w następujący sposób:
- sygnał CAN Low po stronie sterownika podłącz do CAN Low po stronie modułu SmartStix,
- sygnał CAN Hi po stronie sterownika podłącz do CAN Hi po stronie modułu SmartStix,
- do zacisku V- po stronie modułu SmartStix podłącz sygnał 0V z zewnętrznego zasilacza,
- do zacisku V+ po stronie modułu SmartStix podłącz sygnał 24VDC z zewnętrznego zasilacza,
- na obu końcach magistrali CAN konieczne jest wpięcie rezystora 120 omów pomiędzy zaciski CAN Low i CAN Hi,
- ekran kabla komunikacyjnego podłącz do zacisku SHLD po stronie sterownika oraz modułu SmartStix.
Prawidłowa konfiguracja komunikacji pomiędzy układem SmartStix a sterownikiem Horner wymaga ustawienia takiej samej prędkości na magistrali. SmartStix domyślnie działa z prędkością 125 kB/s. Ustaw taką prędkość w menu systemowym sterownika, w zakładce Set Networks.
Programowanie w akcji!
Konfiguracja modułu w oprogramowaniu Cscape
Na początku dodaj obsługę modułów SmartStix przez sterownik. Obsługę modułów skonfiguruj z poziomu Hardware Configuration. W tym celu, z menu Controller wybierz Hardware configuration.
Przejdź na zakładkę CAN1 (CsCAN) I/O. W celu dodania nowego modułu wybierz Add, a w oknie Add CsCAN I/O wskaż moduł, który chcesz podłączyć do sterownika.
W tym przykładzie będzie to moduł SmartStix, który posiada 32 wejścia dyskretne. Jego numer katalogowy to HE559DIM710.
Po wybraniu modułu, zobaczysz okno Configure Digital Network I/O. Na początku ustaw adres ID dla modułu w sieci. W sekcji I/O Mapping ustaw adresy referencyjne, pod którymi dane odczytywane z urządzenia SmartStix będą dostępne w sterowniku. W tym przypadku 32 wejścia dyskretne z modułu będą odczytywane w sterowniku na kolejnych bitach, zaczynając od adresu %M65.
Dodatkowo ustaw adres statusowy, w którym będzie przechowywana informacja dotycząca komunikacji pomiędzy modułem a sterownikiem – %R505. Zmienną nazwij Status_SmartStix.
W sekcji Input Update Method wybierany jest sposób wysyłania danych przez moduł do sterownika. Opcja Update on Change of State powoduje wysłanie ramki z danymi na sieć CsCAN zawsze, gdy zmieni się stan któregoś z wejść modułu. Opcja Update Periodically powoduje wysyłanie ramki z danymi regularnie, według interwału zdefiniowanego w polu Time.
Po zakończeniu konfiguracji modułu w Cscape, trzeba jeszcze ustawić odpowiedni adres ID na module. Zrealizuj to przy pomocy przełączników obrotowych umieszczonych na froncie modułu SmartStix.
Rozbudowa aplikacji
W tym ćwiczeniu aplikację rozbudujesz o ekran operatorski, na którym będą wizualizowane stany sygnałów wejściowych i wyjściowych, pochodzących z modułu SmartStix.
W tym celu utwórz kolejny ekran operatorski, na którym umieszczone będą 4 lampki, zgodnie ze sposobem pokazanym we wcześniejszym artykule.
Utwórz pierwszą zmienną o nazwie SmartStix_IN0 i adresie %M65. Opisz ją jako Wejście IN0 SmartStix IO.
Analogicznie postępuj, tworząc kolejne trzy zmienne o adresach %M66, %M67 i %M68.
Umieść na ekranie pole tekstowe o nazwie SmarStix I/O oraz przycisk Screen Jump. Skonfiguruj go jako Simulate Escape.
Ten ekran operatorski będzie wywoływany z poziomu pierwszego ekranu. W tym celu, na pierwszym ekranie dodaj obiekt Screen Jump i skonfiguruj ekran nr 12 jako docelowy. Zaznacz opcję Allow ESC to Return.
Tak przygotowany program wgraj do sterownika.
Podłącz kabel komunikacyjny do sterownika i do modułu. Na ekranie nr 10 możesz obserwować, jak zmieniają się stany sygnałów pochodzących z modułu SmartStix.
W następnym artykule poznasz konfigurację Modbus TCP.
W kolejnym artykule z cyklu Kurs programowania PLC od podstaw: Komunikacja w sieci Modbus TCP
- Co to jest protokół Modbus TCP?
- Jak wygląda komunikacja po protokole Modbus TCP?
- Jak wykorzystać protokół Modbus TCP do komunikacji sterownika PLC z układami I/O?
- Jak skonfigurować układ I/O Modbus TCP?