Applikationsframework für CODESYS SPS

Das Applikationsframework demonstriert die Leistungsfähigkeit der Kopplernetz Erweiterung gegenüber klassischer Modbus-Anbindung und gibt Anregungen zur Programmierung. 

Ziel ist, den Anwender/Programmierer von zeitraubenden und fehlerträchtigen Wiederholungen zu entlasten und die Steuerung auch dafür zu nutzen, die Programmierung und Installation weitestgehend automatisch zu prüfen.

Mehr dazu ...

 

CODESYS Steuerungen (Auszug)

  • Wago CODESYS / e!Cockpit
  • Beckhoff TwinCAT
  • Schneider Modicon Machine Expert 
  • ABB
  • SAIA Qronox
  • Industrie PC 


Klassische IO FB

Diese Funktionsbausteine bilden komplette Peripheriemodule ab. Schaltereignisse von Tastern werden als binäre Signale entsprechender Dauer ausgegeben. Diese Art der Signalisierung wird von Bausteinen erwartet, welche üblicherweise direkt über digitale Eingänge angeschlossene Taster überwachen. 

Diese FB sind aufwändiger in der Anwendung und prinzipbedingt immer etwas langsamer.

Dieser Funktionsbaustein repräsentiert einen 4-fach Taster mit konfigurierbaren RGB LEDs, Feuchte- Temperatur- und Luftqualitätsfühler sowie Sollwertsteller. Der Baustein überprüft selbständig ob das adressierte Modul vom korrekten Typ ist und über alle benötigten Features/Sensoren verfügt.

 

Ein Parallelbetrieb mehrerer Module erfordert zusätzliche Behandlung. Taster und Sensorwerte sind einzeln und unterschiedlich zu verknüpfen. Dabei ist zudem noch zu beachten, dass keine Werte verknüpft werden, welche von inaktiven Modulen stammen.



FB pro Funktion

Bei dieser Modellierung werden einzelne funktionale Elemente eines Moduls abgebildet. Zwei Tasten können wahlweise als zwei unabhängige Taster FB oder als eine Wippe abgebildet werden. Die FB prüfen selbständig auf mögliche Konflikte. Anstatt einer Vielzahl von Einzelwerten definiert eine einzelne Datenstruktur die Beziehung von Ein- und Ausgängen und ihrem Steuerbaustein. 

Anstatt die ganze Hardware eines Moduls bilden diese FB nur einzelne Funktionen ab.

Die WippeLicht im Beispiel fasst zwei Tastpunkte des Tasters zusammen. Anstatt vieler Einzelwerte hat WippeLicht eine Struktur als Ein/Ausgangswert. Darin enthalten sind alle erforderlichen Informationen über die LED Farbe und Zustand sowie über die betätigte Taste und den Zustand.


Durch einfaches Verketten von Aus- auf Eingang werden die Wippen funktional 'parallelgeschaltet'. Sie wenden für jeden Wert die richtige Verschaltung an.

1 bis n Bedienwippen werden mit dem Funktionsbaustein für die Storensteuerung verbunden. Dieser FB definiert und priorisiert das Verhalten der Jalousien. Alle Automatikfunktionen, die Position, den Lamellenwinkel, das Verhalten je nach Wetterkondition und Zentralbefehle.

So sieht eine Storensteuerung mit 2 Bedienstellen aus.


Adressierung

Die Adressierung erfordert keine Tools. Die Adresse des Kopplers wird am DIP-Schalter eingestellt und ist gleichzeitig die sichtbare Identifikation. Zusammen mit der Busnummer (für Anwendungen mit mehr als 1 Linie) und dem E/A-Kanal bildet sie die 24bit-Adresse, welche am Funktionsbaustein einzustellen ist.


Egal wie komplex oder gross. Irgendwann ist jede Funktion programmiert, getestet und dokumentiert. Deren mehrfache Anwendung kostet dann nichts mehr.

Massgebend in Automationsprojekten ist daher vielmehr der Umgang mit individuellen Datenpunkten. Das fängt damit an ob einzelne Geräte zu installieren sind oder ein einzelnes Modul Licht, Storen und Raumklima steuert. Es setzt sich damit fort, über wie viele Listen händisch Adressen, Stückzahlen und Bezeichner geführt werden. Wie viele Referenzen entstehen dann im SPS Programm? Jede einzelne Referenz kann richtig oder falsch sein. Muss also individuell getestet werden.

Die Anzahl der Referenzen innerhalb eines Projekts korreliert stark mit dem Gesamtaufwand, während die Funktionsprogrammierung nur einmalig anfällt und oft in mehreren Projekten angewendet werden kann.

 

Vor diesem Hintergrund haben wir ein Anwendungsframework geschaffen das diese Aufgabenstellung ins Zentrum stellt. Anstelle von vielleicht 10 Einzelwerten die von und zum Kombifühler verbunden werden definieren wir nur die Beziehung. Technisch ist die 'Beziehung' eine Datenstruktur welche alle beteiligten Werte enthält. Sie gewährleistet dass jeder darin enthaltene Wert denselben Pfad nimmt.

 

Der Messwert selbst ist jeweils nur die halbe Information. Das Register 'Temperatur' kann vielleicht fehlerfrei gelesen werden, aber vielleicht ist an der Adresse gar nicht das erwartete Modul. Oder es verfügt nach einem Austausch nicht über den erwartete Sensor. Vielleicht wäre der Nullwert noch als Fehler erkennbar. Bei der Mittelwertbildung eines gültigen mit einem Nullwert kommen Werte Zustande welche durchaus plausibel aussehen...

 

Das konsequente Zusammenfassen zusammengehöriger Werte schafft die Voraussetzung dafür, dass bei der Anwendung der Werte immer auch deren Gültigkeit geprüft werden kann.