Moduły

Koncepcja modułów TwinCAT to podstawowy element modularyzacji nowoczesnych aplikacji.

## TwinCAT Component Object Model TcCOM

Model obiektów komponentu TwinCAT definiuje cechy i zachowanie modułów. Model wyprowadzony z modelu COM Component Object z Microsoft Windows opisuje sposób, w jaki różne niezależnie opracowane i skompilowane komponenty oprogramowania mogą współpracować ze sobą. Aby było to możliwe, należy zdefiniować precyzyjnie określony tryb zachowania i obserwację interfejsów modułu, aby mogły one oddziaływać. Taki interfejs jest również idealny do ułatwiania interakcji między modułami różnych producentów.

Do pewnego stopnia TcCOM jest oparty na COM (Component Object Model od Microsoft Windows), chociaż używany jest tylko podzbiór COM. Jednak w porównaniu z COM, TcCOM zawiera dodatkowe definicje, które wykraczają poza COM, na przykład moduł automatu stanów.

### Przegląd i zastosowanie modułów TcCOM

Jeden lub kilka modułów TcCOM jest skonsolidowanych w sterowniku. Ten sterownik jest tworzony przez TwinCAT Engineering przy użyciu kompilatora MSVC. Moduły i interfejsy są opisane w pliku TMC (klasa TwinCAT). Sterowniki i ich plik TMC można teraz wymieniać i łączyć między systemami inżynieryjnymi.

Instancje tych modułów są teraz tworzone przy użyciu narzędzia inżynierskiego. Są one powiązane z plikiem TMI. Instancje mogą być sparametryzowane i połączone ze sobą oraz z innymi modułami, aby utworzyć IO. Odpowiednia konfiguracja jest przenoszona do systemu docelowego, gdzie jest wykonywana.

Odpowiednie moduły są uruchamiane, które rejestrują się w TwinCAT ObjectServer. TwinCAT XAR zapewnia również obrazy procesu. Moduły mogą wysyłać zapytania do serwera TwinCAT ObjectServer w celu odniesienia się do innego obiektu w odniesieniu do konkretnego interfejsu. Jeśli takie odniesienie jest dostępne, metody interfejsu można wywołać w instancji modułu.

### Zarządzanie ID

TcCOM używa GUID (128 bitów) i 32-bitowych liczb całkowitych.

TcCOM używa

• Identyfikatory GUID dla: ModulIDs, ClassIDs i InterfaceIDs.

• 32-bitowe liczby całkowite są używane dla: ParameterIDs, ObjectIDs, ContextIDs, CategoryID.

### Interfejsy

Interfejsy definiują zestaw metod, które są łączone w celu wykonania określonego zadania. Odwołanie do interfejsu odbywa się za pomocą unikalnego identyfikatora (InterfaceID), który nigdy nie może być modyfikowany, o ile interfejs się nie zmienia. Ten identyfikator umożliwia modułom określenie, czy mogą współpracować z innymi modułami. Jednocześnie proces rozwoju może odbywać się niezależnie, jeśli interfejsy są jasno zdefiniowane. Modyfikacje interfejsów prowadzą zatem do różnych identyfikatorów. Koncepcja TcCOM jest zaprojektowana w taki sposób, że identyfikatory interfejsów mogą nakładać inne (starsze) identyfikatory interfejsów („Ukrywa” w opisie TMC / edytorze TMC). W ten sposób dostępne są obie wersje interfejsu, az drugiej strony zawsze jest jasne, który jest najnowszy InterfaceID. Ta sama koncepcja istnieje również dla typów danych.

Sam TcCOM już definiuje całą serię interfejsów, które są zalecane w niektórych przypadkach (np. ITComObject), ale w większości są opcjonalne. Wiele interfejsów ma sens tylko w niektórych obszarach zastosowań. Inne interfejsy są tak ogólne, że często można je ponownie wykorzystać. Zapewnia się interfejsy zdefiniowane przez klienta, dzięki czemu na przykład dwa moduły innych firm mogą ze sobą współpracować.