Sieci przemysłowe: otwarty kod

Aplikacje przemysłowych sieci o otwartym kodzie mogą być bardziej opłacalne niż rozwiązania komercyjne i pozwalają uniknąć problemów ze stosami protokołów komunikacyjnych.
Istnieje wiele różnych przemysłowych sieci komunikacyjnych. Dodatkowo, jeśli potrzebujemy rozwiązania wymagającego modyfikacji wykraczających poza komercyjnie osiągalne propozycje, to dostawcy są gotowi dostarczyć produkty wspierające dany protokół. W niektórych przypadkach jednak opłaca się sięgnąć po rozwiązania open source.
Prawdopodobnie głównie z powodu kosztów produktów komercyjnych wiele przedsiębiorstw decyduje się na rozwijanie własnych stosów protokołów. Często okazuje się to złą decyzją, ponieważ wymagany nakład pracy na przygotowanie protokołu jest zawsze dużo większy niż wynika to z założeń początkowych.
Dlaczego więc nie sięgnąć po implementacje open source i zmodyfikować je do swoich potrzeb? Poniżej przedstawiono przegląd wybranych rozwiązań protokołów komunikacyjnych, dla których dostępne są implementacje z otwartym kodem.

CAN jest protokołem, którego liczba instalacji przewyższa znacznie wszystkie pozostałe. Jednakże wadą CAN jest to, że istnieje duża liczba wersji protokołu, które nie są ze sobą kompatybilne. Dlatego istotnym jest, aby zweryfikować, czy dana implementacja protokołu CAN spełnia nasze wymagania.
Oprogramowanie CANFestival dostarcza framework CAN/Open możliwy do wykorzystania w ramach systemu operacyjnego Linux, Windows i dwóch mikrokontrolerów. Może działać na wielu kartach CAN dostarczanych przez dobrzeznanych producentów. Framework dostarcza programowalny w ANSI-C stos protokołu, możliwy do użycia jako węzeł mastera lub slave’a.
EtherCAT jest najszybszym obecnie osiągalnym protokołem przemysłowym. Ponieważ wymaga dedykowanych urządzeń po stronie slave, to niedostępna jest żadna implementacja o otwartym kodzie. Moduł mastera może współpracować ze standardowym kontrolerem Ethernet.
Etherlab: Etherlab jest nazwą produktu sprzedawanego przez niemiecką firmę IgH, który jest połączeniem sprzętu i oprogramowania możliwego do wykorzystania w testach i automatyzacji procesów. Jednym z komponentów Etherlab jest master EtherCAT wspierający cztery (Realtek, Intel) kontrolery ethernetowe uruchamiane pod Linuksem (nawet poza reżimem czasu rzeczywistego). Strona internetowa firmy (www.etherlab.org) zawiera listę obsługiwanych przez ten protokół funkcji EtherCAT.
EtherNet/IP: Implementacja protokołu EtherNet/IP (Industrial Protocol) udostępniana jest przez użytkowników grupy ODVA (Open DeviceNet Vendors Association). Dostarcza kompletny zestaw funkcji części protokołu EtherNet/IP zwanej CIP (Common Industrial Protocol), pozostałości będącej standardową funkcjonalnością Ethernetu. Implementacja V7 przeznaczona jest dla systemu Windows, ale zależne od systemu sekcje kodu zostały wyróżnione. Dostarczany kod przeszedł testy zgodności ODVA, co oznacza, że implementacja jest zgodna ze specyfikacją.
Ethernet Powerlink: Grupa użytkowników Powerlinka jest pierwszą z grup, która oficjalnie opublikowała kod ich własnego protokołu, zwany „openPowerLink”, z zamiarem rozpropagowania protokołu. Oprogramowanie to zostało opracowane przez niemiecką firmę SysTec, która w dalszym ciągu aktywnie je usprawnia i dystrybuuje. OpenPowerlink dla systemu Linux zawiera stos protokołu dla Powerlink „węzła zarządzającego” (mastera) oraz dla „węzła zarządzanego” (slave’a). Implementacja przeszła testy zgodności ze specyfikacją protokołu Powerlink V1.1.0.
HurriCAN jest implementacją VHDL podstawowego protokołu CAN (warstwy 2 modelu OSI). Niestety posiadacz licencji (Europejska Agencja Kosmiczna), z wyjątkiem projektów związanych z agencją, nie pozwala na dalsze użytkowanie HurriCAN w wersji 5.2.4. Niemniej jednak dokumentacja i model symulacyjny ModelSIM jest ciągle udostępniony. Osiągalność otwartego sprzętu dla protokołu CAN wykracza poza zakres tego artykułu; więcej informacji na ten temat znaleźć można na .
MicroCANOpen jest efektem ubocznym komercyjnego produktu stworzonego przez amerykańsko-niemiecką firmę Embedded Systems Academy. Jest „minimalną” implementacją CAN/Open, która może funkcjonować nawet w ramach ograniczonych zasobów mikrokontrolerów 8-bitowych. Pomimo tego ciągle dysponuje imponującym, wystarczającym do realizacji wielu aplikacji, zestawem funkcji. MicroCANOpen może zostać wykorzystany w komercyjnym produkcie pod warunkiem uiszczenia niewielkiej opłaty licencyjnej.
Modbus/RTU i Modbus/TCP. Modbus jest jednym z najbardziej popularnych protokołów przemysłowych. Nie jest więc zaskoczeniem, że dostępnych jest wiele opensource’owych implementacji gotowych do wykorzystania w różnych językach programowania czy systemach operacyjnych. Nawet jeśli nie istnieje implementacja odpowiadająca naszym specyficznym wymaganiom, to modyfikacja istniejących rozwiązań nie jest specjalnie trudna.
Profinet: Grupa użytkowników Profibus jest jedną z nielicznych niewspierających aktywnie opensource’owych implementacji jej własnych protokołów (Profibus i Profinet). Dla starego protokołu Profinet/CBA (Component Based Automation) dostępny jest jedynie, przygotowany przez firmę Siemens, „przykład implementacji” dla systemu Linux. Protokół ten chroni ponadto wiele zastrzeżeń licencyjnych.
RTNet: „Real-time Net” jest opracowanym przez Uniwersytet w Hanowerze protokołem komunikacyjnym czasu rzeczywistego przeznaczonym do pracy w ramach twardych systemów czasu rzeczywistego opartych na Linuksie: Xenomai i RTAI. Wykorzystuje standardowe kontrolery Ethernetu (100 Mbit/s i Gbit) i FireWire. Choć RTNet nie wydaje się być powszechnie wykorzystywany w aplikacjach przemysłowych, to jego możliwości działania w reżimie twardego systemu czasu rzeczywistego bez specjalnego sprzętu mogą czynić go bardzo przydatnym.
SERCOS III jest ethernetowym następcą protokołu SERCOS II; oba przeznaczone są do użycia w aplikacjach sterowania napędami. Choć stos protokołu SERCOS III nie jest jeszcze dostępny, to sytuacja ta ma w niedługim czasie ulec zmianie. Grupa użytkowników „SERCOS International” poinformowała podczas targów w Hanowerze w 2009 r., że stos mastera protokołu SERCOS III zostanie udostępniony dla sytemu operacyjnego Linux.
Stos protokołu zostanie przygotowany we współpracy z OSADL (Open Source Automation Development Lab), którego celem jest zachęta do wykorzystywania oprogramowania open-source w maszynach i systemach sterowania.
Simple Open EtherCAT Master (SOEM): SOEM został napisany przez duńskiego guru Ethercata Artura Keetelsa, który wykorzystuje EtherCAT w swoich maszynach i rozpoczął popularyzację tego protokołu poprzez wspieranie społeczności open-source. Nazwa protokołu sugeruje podstawową funkcjonalność EtherCAT, ale było to prawdą 5 lat temu i obecnie, pomimo nazwy, zestaw dostępnych funkcji uległ znacznej rozbudowie.
SOEM został oryginalnie napisany w Delphi i pracował na standardowych komputerach PC pod systemem Windows; obecnie osiągalna jest również wersja napisana w języku C dla użytkowników Linuksa.

Rob Hulsebos jest programistą z dwudziestoletnim doświadczeniem w oprogramowaniu maszyn, systemów zagnieżdżonych i sieci przemysłowych. Pracuje w Delem (www.delem.com), dostawcy systemów sterowania komputerowego dla maszyn blacharskich oraz jest instruktorem i autorem z zakresu technologii fieldbus.
Artykuł pod redakcją dr. inż. Pawła Dworaka