Powrót do strony głównej

Sterowanie Raspberry Pi Pico za pomocą OpenPLC i Modbus RTU

Artykuł opisuje integrację Raspberry Pi Pico W w rozproszony system sterowania z wykorzystaniem OpenPLC i Modbus RTU. Omówiono konfigurację sprzętową, adresowanie rejestrów, programowanie logiki i ograniczenia podejścia DIY w środowisku przemysłowym.

Raspberry Pi Pico jako węzeł I/O w OpenPLC: praktyczny przewodnik
Advertisement 728x90

# Integracja Raspberry Pi Pico W z przemysłowym systemem sterowania za pomocą OpenPLC i Modbus RTU

W projekcie opartym na STM32-IHM03 do sterowania silnikiem PMSM dodano zdalny węzeł I/O na Raspberry Pi Pico W z logiką zaimplementowaną w OpenPLC. Komunikacja między węzłami jest zorganizowana za pomocą Modbus RTU przez RS485, a koordynacja systemu odbywa się na Orange Pi 4 Pro z wykorzystaniem Node-RED. Taka architektura pokazuje zastosowanie otwartych narzędzi do tworzenia rozproszonego systemu automatyki zgodnego ze standardem IEC 61131-3.

Konfiguracja sprzętowa i podłączenie

Podstawę systemu stanowią trzy kluczowe komponenty: STM32-IHM03 do sterowania silnikiem, Raspberry Pi Pico W jako zdalny moduł I/O oraz Orange Pi 4 Pro w roli centralnego kontrolera. Między STM32 a Orange Pi zorganizowano magistralę CAN (z wykorzystaniem transceiwera SN65HVD230), a między Orange Pi a Pico — dwuprzewodową magistralę Modbus RTU opartą na układzie MAX485.

Do podłączenia Modbus i CAN do Orange Pi użyto shilda RS485 CAN HAT, pierwotnie przeznaczonego dla Raspberry Pi. Jego adaptacja do Orange Pi wymagała:

Google AdInline article slot
  • zmiany częstotliwości taktowania MCP2515 z 8 MHz na 12 MHz w Device Tree Overlay;
  • aktywacji UART7 za pomocą orangepi-config do komunikacji z transceiwrem SP3485;
  • fizycznego montażu shilda na stojakach ze względu na położenie procesora pod płytką.

Zasilanie wszystkich komponentów zapewnia zewnętrzne źródło, co nie wpływa na logikę pracy, ale jest ważne dla stabilności prototypu.

Adresowanie pinów i rejestrów w OpenPLC

Podczas programowania Raspberry Pi Pico W w środowisku OpenPLC Editor należy uwzględnić zgodność fizycznych pinów RP2040 z adresami Modbus. W poniższej tabeli podano kluczowe powiązania:

| Typ danych w PLC | Oznaczenie | Zakres adresów Modbus | Rozmiar | Dostęp |

Google AdInline article slot

|------------------|----------------|-----------------------|---------|--------|

| Dyskretne wyjścia | %QX0.0 – %QX6.7 | 0–55 | 1 bit | RW |

| Dyskretne wejścia | %IX0.0 – %IX6.7 | 0–55 | 1 bit | R |

Google AdInline article slot

| Analogowe wejścia | %IW0 – %IW31 | 0–31 | 16 bit | R |

| Rejestry przechowywania | %QW0 – %QW31 | 0–31 | 16 bit | RW |

| Pamięć (16/32/64 bit) | %MW / %MD / %ML | 32–171 | do 64 bit | RW |

Te adresy są używane podczas tworzenia logiki w języku schematów przekaźnikowych (LD) lub bloków funkcyjnych (FBD). Na przykład sterowanie przekaźnikiem podłączonym do GPIO2 odpowiada %QX0.2 i adresowi Modbus 2.

Realizacja logiki w OpenPLC v4

OpenPLC v4 umożliwia rozwijanie programów zgodnie ze standardem IEC 61131-3. Dla Raspberry Pi Pico W dostępne są następujące języki programowania:

  • LD (Ladder Diagram) — schematy stykowo-przekaźnikowe, intuicyjne dla inżynierów elektryków.
  • FBD (Function Block Diagram) — graficzne przedstawienie funkcji i ich powiązań.
  • ST (Structured Text) — język tekstowy wysokiego poziomu.

Program jest wgrywany do runtime OpenPLC, który działa bezpośrednio na mikrokontrolerze. W tym projekcie Pico działa jako Modbus RTU Slave z ustalonym adresem, np. 10. Wszystkie operacje odczytu/zapisu inicjuje urządzenie Master — Orange Pi za pośrednictwem Node-RED.

Przykład prostej logiki: po otrzymaniu sygnału „start” przez Modbus cewka %QX0.0 jest aktywowana, co zamyka przekaźnik SRD-05VDC-SL-C. Stan dyskretnego wejścia %IX1.0 może służyć jako sygnał awaryjnego zatrzymania.

Ograniczenia podejścia DIY w automatyce przemysłowej

Mimo elastyczności i niskiego kosztu rozwiązanie oparte na Raspberry Pi Pico i OpenPLC ma istotne ograniczenia w zastosowaniach przemysłowych:

  • Brak galwanicznej izolacji na wejściach/wyjściach czyni system wrażliwym na zakłócenia od sprzętu siłowego.
  • Niestandardowe złącza (np. Micro-USB i goldpiny 2.54 mm) nie wytrzymują wibracji w środowisku przemysłowym.
  • Brak sprzętowego watchdoga, co zwiększa ryzyko zawieszenia bez restartu.
  • Ograniczona obsługa Modbus w OpenPLC v4: zapis do Holding Registers i Coils może wymagać modyfikacji kodu źródłowego runtime.

Takie systemy nadają się do nauki, prototypowania lub małych lokalnych zadań, ale nie do krytycznych linii produkcyjnych.

Co ważne

  • Raspberry Pi Pico W może działać jako zdalny węzeł I/O w systemie automatyki przy użyciu OpenPLC.
  • Komunikacja Modbus RTU wymaga poprawnego ustawienia adresowania pinów i rejestrów zgodnie z dokumentacją OpenPLC.
  • Adaptacja shilda RS485 CAN HAT do Orange Pi jest możliwa, ale wymaga edycji Device Tree i aktywacji odpowiedniego UART.
  • OpenPLC v4 obsługuje standard IEC 61131-3, ale funkcjonalnie ustępuje przemysłowym środowiskom takim jak CODESYS.
  • Rozwiązania DIY nie nadają się do eksploatacji przemysłowej bez dodatkowej ochrony i standaryzacji interfejsów.

— Editorial Team

Advertisement 728x90

Czytaj dalej