Elmark Automatyka Sp. z o.o.
Menu
Strona główna
O nas: Elmark Automatyka Sp. z o.o.
Nasze forum
Inne/ciekawe strony www
Artykuły
WISE-4000 - moduły IoT
ADAM-6266 - kontrola wentylacji
ADAM-6200 - inteligentne moduły I/O
WIRE-CHIP, JAZZ i moduły ADAM
EKI-122X - konwertery Modbus
ADAM-6000 - funkcje P2P i GCL
O czym warto wiedzieć
Protokół ADAM-ASCII
Protokół Modbus
Implementacja Modbus/RTU
Implementacja Modbus/TCP
Wyjścia przekaźnikowe
Seria ADAM-6000 i język PHP
Najpopularniejsze modele
ADAM-4520 Optoizolowany
konwerter RS-232/422/485
ADAM-4017+
Wejścia analogowe (RS-485)
ADAM-4055
We/wy cyfrowe (RS-485)
ADAM-5000/TCP
Kaseta Modbus/TCP
ADAM-6017
Wejścia analogowe
ADAM-6060
We/wy cyfrowe (przekaźnikowe)
USB-4711A Uniwersalny
moduł pomiarowy AI/AO/DI/DO
WIRE-CHIP, JAZZ i moduły ADAM
Czyli łatwa realizacja rozszerzenia wyjść cyfrowych sterownika JAZZ i Vision firmy UNITRONICS
za pomocą modułu WIRE-CHIP i modułów ADAM firmy Advantech

      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
0MODB_RC11281000pobiera dane z PLC (od adresu MB0) dla wszystkich modułów wyjść cyfrowych
1MODB_FC61210016podaje wartości do wyjść cyfrowych modułu ADAM-4056
2MODB_FC5811216podaje wartości do ADAM-4069
3MODB_FC4812016podaje wartości do ADAM-4055
4MODB_RC481400pobiera wartości wejść cyfrowych z modułu ADAM-4055
5MODB_RC3161480pobiera wartości z ADAM-4051
6MODB_RC3161640pobiera wartości z ADAM-4051
7MODB_FC114014040przekazuje wartości odczytane z modułów do sterownika PLC (od adresu MB40)
8MODB_PHR11500przekazuje do sterownika (pod MI0) wartości zmierzonych temperatur z 5-czujników
9MODB_FC119080przekazuje 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-T40770,00 zł20 wyjść / 18 wejść
1 x JZ-PRG211,00 złport RS-232
1 x WIRE-CHIP h3.1545,00 złwielopunktowy pomiar temperatury (max 64 czujniki DS18B20)
7 x ADAM-4056SO7 x 409 zł = 2863 zł7 x 12 wyjść = 84 wyjścia
6 x ADAM-40516 x 393 zł = 2358 zł6 x 16 wejść = 96 wejść
RAZEM6747 zł netto104 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-T1 013,00 zł6 wyjść / 8 wejść
1 x EX-D16A3-TO161 401,00 złAdapter rozszerzający + 16 wyjść / 16 wejść
5 x IO-D16A3-TO165 x 1175 zł = 5875 zł5 x (16 wyjść i 16 wejść)
RAZEM8289 zł netto102 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-T21 701,00 zł12 wyjść / 12 wejść
1 x V100-17-CAN429,00 złport CAN
2 x EX-RC12 x 1 013,00 zł = 2026 zładapter rozszerzający CAN
6 x IO-D16A3-TO166 x 1175 zł = 7050 zł6 x (16 wyjść i 16 wejść)
RAZEM11206 zł netto108 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-T21 701,00 zł12 wyjść / 12 wejść
1 x WIRE-CHIP h3.1545,00 złwielopunktowy pomiar temperatury (max 64 czujniki DS18B20)
8 x ADAM-4056SO8 x 409 zł = 3272 zł8 x 12 wyjść = 96 wyjść
6 x ADAM-40516 x 393 zł = 2358 zł6 x 16 wejść = 96 wejść
RAZEM7876 zł netto108 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





Więcej informacji:

     - Moduły serii ADAM-4000
     - Sterowniki UNITRONICS
     - WIRE-CHIP h3.1
     - Pobierz cały niniejszy artykuł w formacie pdf