Partnerzy

Od 1954 Finder pracował wyłącznie w zakresie przekaźników i timerów. Nasz wysoki stopień specjalizacji zaowocował ponad 10.000 różnych produktów w jednej z najszerszych dostępnych ofert. Firma szeroko się rozwija i inwestuje w przyszłość uzupełniając gamę swojego asortymentu. Prócz przekaźników oferuje rozwiązania przemysłu elektrycznego do zastosowań domowych jak i komercyjnych poprzez przekaźniki, urządzenia przeciwprzepięciowe, termostaty panelowe, zasilacze i liczniki energii. Gama asortymentu obejmuje ponad 12 tysięcy produktów.

KursyAutomatyki.pl - portal z kursami online z automatyki przemysłowej. Znajdziesz tam zarówno darmowe kursy, jak i płatne, pełne z wiedzy i doświadczenia od ekspertów. Po zapisie na kurs otrzymujesz dostęp do logicznego ciągu nagrań i ćwiczeń, do których możesz wracać wielokrotnie. Na zakończenie kursu czeka Cię test sprawdzający, po którym otrzymasz dwa certyfikaty w języku polskim i angielskim. Dołącz już teraz!

Automatyzacja to nasz świat. Perfekcyjne rozwiązania - nasz cel. Obecnie firma Pepperl+Fuchs jest znana klientom na całym świecie jako przedsiębiorstwo pionierskie i innowacyjne w dziedzinach takich, jak ochrona przeciwwybuchowa instalacji elektrycznych czy technologie czujników. Zawsze koncentrujemy się na wymaganiach klientów. Pasja, z jaką poświęcamy się automatyce, oraz przełomowe technologie, jakimi dysponujemy, pozwalają nam owocnie współpracować z klientami — tak dziś, jak i w przyszłości.

Rozwiązania dostarczane przez WAGO. już od wielu lat wspierają naszych klientów w dążeniu do sukcesu. Poczynając od prostych instalacji elektrycznych, a kończąc na skomplikowanej infrastrukturze zarządzającej procesami przemysłowymi czy automatyką budynkową. Sprawdźcie jak rozwiązania WAGO, mogą wesprzeć Was w drodze do Waszego sukcesu.

Dostarczamy produkty i rozwiązania z zakresu Przemysłowej Techniki Łączeniowej. Już od ponad 160 lat Weidmüller jest synonimem kompetencji i niezawodność. Oferujemy rozwiązania dla takich branż jak przemysł maszynowy, technika procesowa, produkcja urządzeń, energetyka i transport. Wspieramy naszych Klientów i Partnerów w ponad 80 krajach, produktami, rozwiązaniami i usługami w zakresie połączeń elektrycznych oraz układów zasilania, przetwarzania sygnałów oraz transmisji danych w środowisku przemysłowym.

Oni już dołączyli do Projektu iAutomatyka

Komunikacja PLC – mikrokontroler via MODBUS RTU

Jakiś czas temu musiałem skomunikować S7-1200 z małym sterownikiem na Atmega644. Udało się to zrobić przy pomocy MODBUS RTU. Dzisiaj przedstawię Wam ten projekt.

Program na Atmegę napisany w C (nie ufam Arduino).

Na potrzeby ćwiczeń powstał prosty termostat składający się z trzech sterowników:

  • S7-1200 + CB1241 jako master. Do niego podłączony jest wentylator.
  • Sterownik mojej konstrukcji jako slave. Zbiera dane z cyfrowego czujnika temperatury DS18b20, gadającego po 1Wire oraz dwóch potencjometrów (jeden do nastawiania setpoint, drugi do histerezy).
  • Sterownik mojej konstrukcji jako drugi slave. Wyświetla dane zebrane przez poprzedni sterownik.

Efekty testów można zobaczyć na filmie:

Kilka słów o użytym sprzęcie…

Na początek PLC. Zastosowałem popularny S7-1200 1211C + CB1241 do komunikacji RS485. Na temat tego sterownika nie ma co za wiele pisać – prawie każdy go zna.

Jest skonfigurowany jako master w sieci modbus.

Dalej co 500 ms pobiera do tablicy dane o nastawach i temperaturze z jednego sterownika i przesyła je do drugiego, który ma to wyświetlić.

W międzyczasie przeliczana jest różnica między aktualną temperaturą, setpointem i histerezą oraz załączanie/wyłączanie wentylatora podłączonego do Q0.3.

Pozostałe sterowniki są zaprojektowane przeze mnie. Jeden z nich może być zasilany napięciem 230VAC lub 24VDC, drugi tylko 24VDC.  Obydwa oparte są o mikrokontrolery z rodziny AVR – Atmega328 oraz Atmega644. Ich ogólna budowa dotycząca wejść/wyjść jest podobna. Mają po trzy wyjścia przekaźnikowe (5A-30VDC/250VAC). Wejścia izolowane transoptorami, dopuszczalne napięcie wejściowe 30VDC. Ponadto  można je konfigurować jako PNP lub NPN (należy wlutować odpowiednie rezystory). Wszystkie wejścia mają możliwość wywoływania przerwania zewnętrznego. Znajduje się tam też wyprowadzona magistrala 1-Wire – w tym przypadku do podłączenia cyfrowych czujników temperatury DS18b20. W sterowniku z wyświetlaczem wejście to jest wyprowadzone na gniazdo obok wejść. Na potrzeby komunikacji Modbus konieczne było dorobienie interfejsu UART <->RS485, ponieważ sterowniki mają tylko UART. Tyle jeżeli chodzi o podobieństwa. Sterownik bez wyświetlacza posiada dodatkowo slot karty mikroSD, która w większości przypadków jest wykorzystywana do zapisywania logów, ale może być użyta do wprowadzania parametrów. Znajduje się tam też moduł RF – umożliwiający komunikację radiową 433MHz do komunikacji z innymi układami zasilanymi z baterii, w innej konfiguracji sterownik ten robi jako brama RF – WIFI, zbiera dane z czujników radiowo, obrabia i przesyła po WIFI na serwer SQL lub thingspeak. Widać tam też dwa małe potencjometry, które służą jedynie do nastawiania parametrów.

Komunikacja

Jeżeli chodzi o implementację modbus RTU na tych sterownikach, to wszystko jest opisane na stronie projektu https://www.embedded-solutions.at/en/freemodbus/ .

Generalnie po pobraniu biblioteki należy tylko skonfigurować ją pod wybrany mikrokontroler i po zapoznaniu się z dokumentacją wszystko działa. Niestety w wersji darmowej możliwa jest tylko konfiguracja jako SLAVE.

W moim przypadku drzewo projektu wygląda tak:

Wszystkie pliki/foldery z wyjątkiem 1_WIRE i main.c należą do biblioteki freeModbus.

W main.c należy podłączyć pliki biblioteki:

Zdefiniować rejestry modbusa:

Cała funkcja main wygląda jak niżej. Przed pętlą główną należy skonfigurować parametry komunikacji. W pętli głównej wywoływana jest funkcja eMBPoll() która obsługuje komunikację modbus.

W dalszej części pobierane są nastawy potencjometrów i po obrobieniu umieszczane w rejestrach które z kolei są pobierane przez S7-1200.

Pętla sterownika wyświetlającego dane jest jeszcze mniej rozbudowana. Tutaj dane wysłane z S7-1200 są odpowiednio formatowane i wysyłane do wyświetlacza. Poza tym kod dla obydwu sterowników jest praktycznie identyczny.

Artykuł został nagrodzony w Konkursie iAutomatyka w edycji Wrzesień 2018
Nagrodę Zasilacz EPSITRON® ECO Power dostarcza firma WAGOWięcej o konkursie: https://iautomatyka.pl/konkurs-iautomatyka/