Łatwe rozszerzenie wyjść cyfrowych sterownika JAZZ i Vision firmy UNITRONICS za pomocą modułu WIRE-CHIP i modułów ADAM firmy Advantech

11.04.2010 Studia przypadków / Sterowanie i akwizycja danych
Łatwe rozszerzenie wyjść cyfrowych sterownika JAZZ i Vision firmy UNITRONICS za pomocą modułu WIRE-CHIP i modułów ADAM firmy Advantech
Wizerunek autora
Jarosław Molenda
Producent: Advantech
  • Zakłady przemysłowe
  • Gaz i Paliwa

 Sterownik JAZZ posiada maksymalnie 16 wejść cyfrowych DC i 20 wyjść cyfrowych. Jedyną możliwością rozszerzenia ilość wejść/wyjść jest podłączenie do tego sterownika modułów z komunikacją szeregową RS-232 lub RS-485. Można również wybrać sterownik z innej serii (np. Vision) i użyć moduły rozszerzające dedykowane oferowane przez firmę UNITRONICS. Druga możliwość zmienia znacznie koszty przedsięwzięcia.

      Pozostańmy przy rozszerzeniu ilości wejść/wyjść prostego sterownika JAZZ. Napisanie oprogramowania skutecznie obsługującego wiele modułów w języku drabinkowym jest pewnym wyzwaniem programistycznym, które dodatkowo zajmuje sporą część pamięci programu i innych zasobów JAZZa. W takiej sytuacji warto sięgnąć po moduł WIRE-CHIP H3.1, którego naturalne możliwości (pierwotnie - wielopunktowy pomiar temperatury) zostały "w wyniku ewolucji" (od roku 2005) rozszerzone o obsługę protokołu MODBUS RTU w trybie MASTER. Obsługa wspomnianego protokołu w połączeniu z bogatym zestawem makroinstrukcji daje programiście ogromne możliwości budowania komunikacji MODBUS RTU między wieloma urządzeniami przemysłowymi obsługującymi ten standard. Mimo rozbudowanych możliwości, tworzenie komunikacji za pomocą makroinstrukcji jest proste - chcemy to pokazać w niniejszym artykule. Ponadto rozbudowa wejść/wyjść sterowników Vision w oparciu o moduł WIRE-CHIP i moduły ADAM jest znacznie tańsza niż z wykorzystaniem dedykowanych modułów rozszerzających firmy UNITRONICS. Jeśli dodamy do tego fakt, że stosując moduł WIRE-CHIP zyskujemy jednocześnie wielopunktowy pomiar temperatury (max 64 czujniki) - jest to warte uwagi rozwiązanie.



Opis połączeń elektrycznych

      Sterowniki JAZZ nie posiadają wbudowanych portów szeregowych, jednak istnieje możliwość zainstalowania zewnętrznych modułów portu szeregowego w wersji JZ-RS4 lub JZ-PRG. Moduł JZ-RS4 umożliwia komunikację w standardzie RS-485 lub RS-232, jednak jest znacznie droższy niż moduł JZ-PRG. Z tego powodu do zestawu wybraliśmy moduł JZ-PRG. Aby moduł ten działał wymaga zewnętrznego źródła zasilania. Jeśli jest używany jako programator sterownika JAZZ, zasilanie pobiera z linii DTR portu RS-232 komputera PC. W naszym przypadku musimy go zasilić z zasilacza 24V, przez rezystor 1kΩ. Moduł JZ-PRG łączy się z modułem WIRE-CHIP poprzez port RS-232. Natomiast WIRE-CHIP łączy się z modułami ADAM poprzez port RS-485. Jeśli magistrala RS-485 jest dłuższa niż kilka.. kilkadziesiąt metrów, wówczas na jej końcach należy zainstalować rezystory terminujące 120Ω. Teoretyczny zasięg magistrali RS-485 to 1200m. W naszym zestawie testowym zastosowaliśmy przewód 100m. Jeśli system rozszerzeń wejść/wyjść jest rozległy i znajduje się w nim wiele modułów i innych elementów zasilanych napięciem 24V, wówczas trzeba w każdej skrzynce z modułami zainstalować lokalny zasilacz 24V. Zapobiegnie to nadmiernym spadkom napięć powodującym błędne działanie systemu.

Schemat poglądowy zestawu testowego:



Oprogramowanie sterownika PLC

      Aby skonfigurować sterownik do pracy w trybie MODBUS RTU - SLAVE, w przypadku sterownika JAZZ (także M90 i M91), należy wpisać do jego rejestrów systemowych niezbędne wartości konfiguracyjne. W przypadku sterowników Vision należy umieścić w programie bloki konfiguracji portu szeregowego i konfiguracji protokołu MODBUS, a także cyklicznie uruchamiać blok "SCAN_EX". Tyle wystarczy, aby nawiązać komunikację. Można się jeszcze pokusić o sprawdzanie stanu modułów wejść/wyjść. W tym celu należy sprawdzać wartości bitów (MB - Memory Bit) pod adresami do których moduł WIRE-CHIP będzie podawał stany wykonania makroinstrukcji. Aby sprawdzić wartość wejścia cyfrowego należy odczytać (np. za pomocą "direct contact") stan bitu (MB) pod który moduł WIRE-CHIP przekazuje wartość z wejścia cyfrowego. Aby ustawić w określony sposób wyjście cyfrowe, należy ustawić (użyć np. direct coil, set coil lub reset coil) wartość bitu (MB), który zostanie pobrany przez WIRE-CHIP i następnie przekazany do modułu wyjść cyfrowych. Aby móc przetwarzać wartość temperatury otrzymaną z modułu WIRE-CHIP, należy odczytać ją z 16-bitowego rejestru MI (Memory Integer) do którego zostanie ona wpisana przez WIRE-CHIP.

Przykład kodu konfigurującego sterownik JAZZ:



Powyższe 3 "szczeble" drabiny wystarczą, aby sterownik JAZZ (M90 / M91) był poprawnie skonfigurowany do pracy z modułem WIRE-CHIP i maksymalnie ponad 200 wejściami / wyjściami. Analogiczny kod dla sterownika z grupy Vision przedstawiony jest na rysunku poniżej.

Przykład kodu konfigurującego sterownik Vision:



Oprogramowanie modułu WIRE-CHIP - makroinstrukcje

      Aby przekazać do sterownika wartości wejść cyfrowych, moduł WIRE-CHIP musi odczytać dane z modułu i przechować je we własnej pamięci RAM. Następnie dane muszą zostać przekazane z własnej pamięci RAM do sterownika PLC. Do pobrania danych z modułu wejść cyfrowych trzeba użyć funkcji Read Coils (MODB_RC). Funkcja RC musi znać ID modułu, z którego ma pobrać dane, ilość danych do pobrania, adres wewnątrz WIRE-CHIP pod którym przechować dane, adres wewnątrz modułu wejść cyfrowych, z którego pobrać dane. Analogiczne parametry są potrzebne funkcji Force Coils (MODB_FC) używanej w tym przypadku do przesyłania otrzymanych poprzednio wartości do sterownika PLC. Potrzebne są ID sterownika PLC (W naszym przypadku ID=11), ilość danych, adres wewnątrz WIRE-CHIP - skąd pobrać dane (ADR_MA), adres wewnątrz sterownika PLC - gdzie przekazać dane (ADR_SL). Podobnie sytuacja ma się w przypadku przekazywania wartości bitów (MB) do modułów rozszerzających wyjść cyfrowych. Wartości są pobierane ze sterownika za pomocą funkcji Read Coils, do modułu są wpisywane za pomocą funkcji Force Coils. Aby przekazać do sterownika informacje o poprawności wykonania makroinstrukcji, należy wykonać funkcję Force Coils z parametrem ADR_MA = 0. Statusy wykonania makroinstrukcji (sukces=1 / porażka=0) wpisywane są wewnętrznie przez moduł WIRE-CHIP dla kolejnych makroinstrukcji pod adresy kolejnych bitów poczynając od adresu 0. Przykład: Jeśli w module zdefiniowanych jest 8 makroinstrukcji, to pierwszych 8 bitów (numery 0..7) będą zawierać status wykonania wszystkich makroinstrukcji. Jeśli makroinstrukcja dotycząca portu szeregowego (MODB_PHR, MODB_RHR, MODB_FC, MODB_RC) zostanie wykonana poprawnie (WIRE-CHIP otrzyma potwierdzenie od modułów SLAVE - ADAM...) odpowiedni bit jest ustawiany. Jeśli funkcja nie otrzyma potwierdzenie od modułów SLAVE lub z powodu błędnej definicji moduł nie podejmie się jej wykonania, odpowiedni bit statusu zostanie wyzerowany.

Wykaz funkcji i ich parametrów potrzebnych do obsługi modułów z naszego zestawu testowego:

L.P. Funkcja ID Ilość ADR_MA ADR_SL Komentarz
0 MODB_RC 11 28 100 0 pobiera dane z PLC (od adresu MB0) dla wszystkich modułów wyjść cyfrowych
1 MODB_FC 6 12 100 16 podaje wartości do wyjść cyfrowych modułu ADAM-4056
2 MODB_FC 5 8 112 16 podaje wartości do ADAM-4069
3 MODB_FC 4 8 120 16 podaje wartości do ADAM-4055
4 MODB_RC 4 8 140 0 pobiera wartości wejść cyfrowych z modułu ADAM-4055
5 MODB_RC 3 16 148 0 pobiera wartości z ADAM-4051
6 MODB_RC 3 16 164 0 pobiera wartości z ADAM-4051
7 MODB_FC 11 40 140 40 przekazuje wartości odczytane z modułów do sterownika PLC (od adresu MB40)
8 MODB_PHR 11 5 0 0 przekazuje do sterownika (pod MI0) wartości zmierzonych temperatur z 5-czujników
9 MODB_FC 11 9 0 80 przekazuje do PLC (pod MB80) bity statusu wykonania makroinstrukcji



Nasz zestaw (oprócz zasobów sterownika) zawiera 28 wyjść cyfrowych, 40 wejść cyfrowych i 5 czujników temperatury. Moduł WIRE-CHIP posiada 508 B pamięci kodu przeznaczonej na makroinstrukcje. Każda makroinstrukcja obsługująca MODBUS RTU zajmuje 7 B. W związku z tym możliwe jest skonfigurowanie do 72 takich makroinstrukcji. Oznacza to, że stosując moduły z 16-wejściami (ADAM-4051) i 12-wyjściami (ADAM-4056SO), grupując ilości bitów (coils) transferowanych między sterownikiem, a WIRE-CHIP w paczki po 64 bity, system może obsłużyć maksymalnie 896 wejść {=64 bity * 70 makroinstrukcji / 5 makroinstrukcji(dla 4 modułów)} lub 672 wyjścia {=48 bitów * 70 makroinstrukcji / 5 makroinstrukcji(dla 4 modułów)}. W takim przypadku trzeba zastosować repeater RS-485 (np. ADAM-4510).

Widok okna programu konfiguracyjnego wire-konfigurator:



Moduły analogowe, komunikacja między sterownikami

 

      Obsługa funkcji Read Holding Registers (MODB_RHR kod=0x03) pozwalają modułowi odczytać zawartość rejestrów 16-bitowych innych modułów. Obsługa funkcji Write Multiple Registers (MODB_PHR, kod=0x10) pozwala przekazać wcześniej pobrane dane do sterownika PLC. W podobny sposób moduł WIRE-CHIP może realizować funkcje komunikacji między odrębnymi sterownikami PLC, panelami HMI i innym sprzętem automatyki przemysłowej obsługującymi protokół MODBUS RTU.

Analiza kosztów rozszerzenia wejść/wyjść sterowników firmy UNITRONICS (kwiecień 2010)

      Analiza została przeprowadzona na dzień 2010-04-27, ceny "end user". Ilości i rodzaje modułów ADAM podaję zakładając wymaganą ilość 100 wejść i 100 wyjść tranzystorowych w całym systemie. Dla sterowników JAZZ:

Elementy Cena Komentarz
1 x JZ10-11-T40 770,00 zł 20 wyjść / 18 wejść
1 x JZ-PRG 211,00 zł port RS-232
1 x WIRE-CHIP h3.1 545,00 zł wielopunktowy pomiar temperatury (max 64 czujniki DS18B20)
7 x ADAM-4056SO 7 x 409 zł = 2863 zł 7 x 12 wyjść = 84 wyjścia
6 x ADAM-4051 6 x 393 zł = 2358 zł 6 x 16 wejść = 96 wejść
RAZEM 6747 zł netto 104 wyjścia, 114 wejść, pomiar temperatury 64pkt


Moduły rozszerzające mogą być znacznie oddalone (max 1200m) od sterownika PLC. Do rozproszonych skrzynek musi być doprowadzone zasilanie, jak również magistrala RS-485, a także sygnały bezpieczeństwa (STOP awaryjny). Do tego celu można użyć niedrogi przewód STP - skrętka ethernetowa. Podobne zestawienie, jednak z modułami dedykowanymi przez UNITRONICS zrealizujemy na bazie sterownika M90, gdyż JAZZ nie ma możliwości podłączenia rozszerzeń. Dla sterowników M90 (oprogramowanie narzędziowe jak dla JAZZ - U90Ladder):

Elementy Cena Komentarz
1 x M90-T 1 013,00 zł 6 wyjść / 8 wejść
1 x EX-D16A3-TO16 1 401,00 zł Adapter rozszerzający + 16 wyjść / 16 wejść
5 x IO-D16A3-TO16 5 x 1175 zł = 5875 zł 5 x (16 wyjść i 16 wejść)
RAZEM 8289 zł netto 102 wyjścia, 104 wejścia


Powyższe zestawienie nie pozwala oddalić modułów rozszerzających na odległość większą niż kilka metrów od sterownika. Jeśli trzeba zbierać informacje z czujników bardziej oddalonych lub sterować elementami wykonawczymi oddalonymi od sterownika, wówczas trzeba użyć kosztownych, wielożyłowych przewodów sterowniczych. Używając magistrali CAN i sterowników Vision również można wykonać rozproszone rozszerzenie wejść/wyjść:

Elementy Cena Komentarz
1 x V130-33-T2 1 701,00 zł 12 wyjść / 12 wejść
1 x V100-17-CAN 429,00 zł port CAN
2 x EX-RC1 2 x 1 013,00 zł = 2026 zł adapter rozszerzający CAN
6 x IO-D16A3-TO16 6 x 1175 zł = 7050 zł 6 x (16 wyjść i 16 wejść)
RAZEM 11206 zł netto 108 wyjść, 108 wejść


Układ rozproszony w 3-miejscach (3 miejsca podłączenia wejść/wyjść). Każde dodatkowe miejsce rozproszenia generuje dodatkowy koszt "adaptera rozszerzającego CAN - EX-RC1" - 1013 zł. Przy obecnej ilości 6 modułów rozszerzających, maksymalnie układ można rozproszyć do 7 punktów (6 modułów + sterownik). Koszt rozszerzenia wejść/wyjść używając modułu WIRE-CHIP h3.1 dla sterowników VISION:

Elementy Cena Komentarz
1 x V130-33-T2 1 701,00 zł 12 wyjść / 12 wejść
1 x WIRE-CHIP h3.1 545,00 zł wielopunktowy pomiar temperatury (max 64 czujniki DS18B20)
8 x ADAM-4056SO 8 x 409 zł = 3272 zł 8 x 12 wyjść = 96 wyjść
6 x ADAM-4051 6 x 393 zł = 2358 zł 6 x 16 wejść = 96 wejść
RAZEM 7876 zł netto 108 wyjść, 108 wejść, pomiar temperatury 64pkt


Rozproszenie 6 punktów, jeśli wejścia nie mogą być oddzielnie od wyjść. Aby bardziej rozproszyć wejścia / wyjścia można użyć moduł 12 x ADAM-4055, jednak odbywa się to kosztem wolniejszej pracy systemu (większa ilość transakcji MODBUS RTU).

Ograniczenia

      Protokół MODBUS RTU i urządzenia na nim bazujące komunikują się dosyć powoli. W ciągu jednej sekundy możliwa jest wymiana kilku (max ~10) transakcji (jeśli wszystkie urządzenia działają poprawnie). Jeśli zatem w systemie jest 10 urządzeń i czas odpowiedzi każdego z nich jest szybki, to w ciągu jednej sekundy urządzenie MASTER (w tym przypadku WIRE-CHIP) dokona transakcji (wymiany informacji) z każdym z nich. Jeśli natomiast z 10 zainstalowanych urządzeń tylko 3 działają poprawnie (sterownik PLC, moduł ADAM i WIRE-CHIP), czas przekazania informacji może wynieść do ~2,5s. Z tego powodu, do takich elementów jak przyciski, enkodery, fotokomórki, nie można stosować modułów bezpośrednich wejść cyfrowych, ale trzeba zastosować moduły licznikowe (wychwycenie każdego impulsu). Z tego samego powodu omawiany system nie może zostać zastosowany w miejscach, gdzie wyjścia cyfrowe muszą reagować natychmiast (w czasie mniejszym niż 1 sekunda).


Tomasz Kozłowski @ IV 2010
SolidChip
ul. Olszowa 4, Niedziałka Druga
05-306 Jakubów / obok Mińska Mazowieckiego
http://www.solidchip.eu
biuro@solidchip.eu
tel./ faks 025-759-28-80
GSM 693-367-323