Uebung_003a0: DigitalInput_I1/_I2 auf DigitalOutput_Q1/_I2 - mit untyped Subapp
Dieser Artikel beschreibt die logiBUS®-Übung Uebung_003a0. Im Gegensatz zur Verwendung von Typen (wie in Uebung_003a) wird hier gezeigt, wie man Logik visuell gruppieren kann, ohne separate Typ-Definitionen in der Bibliothek anzulegen. Dies geschieht durch sogenannte „Untyped SubApps“.

Ziel der Übung
Das Hauptziel dieser Übung ist es, Möglichkeiten zur rein visuellen Strukturierung von Anwendungen aufzuzeigen. Untypisierte Sub-Applikationen dienen als „Container“ oder Ordner innerhalb eines Netzwerks, um zusammengehörige Funktionen zu kapseln. Sie helfen, komplexe Diagramme aufzuräumen („Aufräumen durch Einklappen“), ohne dass man sich Gedanken über Wiederverwendbarkeit oder Schnittstellen-Definitionen machen muss.
Beschreibung und Komponenten
[cite_start]Die Subapplikation Uebung_003a0.SUB enthält zwei eingebettete Sub-Applikationen (SubApp und SubApp_1), die jeweils einen eigenen Signalpfad beinhalten[cite: 1].
Untypisierte Sub-Applikationen
Anders als bei typisierten SubApps, die auf einer externen Definition basieren, existiert die Logik dieser Container nur innerhalb dieser spezifischen Instanz. Sie haben keine externen Ein- oder Ausgänge im Interface (in diesem Beispiel), sondern greifen direkt auf die Hardware zu.
Container
SubApp:Beinhaltet die Logik für Kanal 2.
Intern: [cite_start]
DigitalInput_I2verbunden mitDigitalOutput_Q2[cite: 1].
Container
SubApp_1:Beinhaltet die Logik für Kanal 1.
Intern: [cite_start]
DigitalInput_I1verbunden mitDigitalOutput_Q1[cite: 1].
Funktionsbausteine (FBs)
Innerhalb der Container werden die bekannten Standard-Bausteine verwendet:
logiBUS_IX: Zum ereignisbasierten Einlesen der Signale.logiBUS_QX: Zum ereignisbasierten Ausgeben der Signale.
Funktionsweise
Die Logik ist identisch zur parallelen Steuerung, jedoch ist die Ansicht hierarchisch gegliedert. Der Aufbau in Uebung_003a0.SUB zeigt die Verschachtelung:
<SubAppNetwork>
<SubApp Name="SubApp">
<SubAppNetwork>
<FB Name="DigitalInput_I2" ... />
<FB Name="DigitalOutput_Q2" ... />
<EventConnections> ... </EventConnections>
<DataConnections> ... </DataConnections>
</SubAppNetwork>
</SubApp>
<SubApp Name="SubApp_1">
<SubAppNetwork>
<FB Name="DigitalInput_I1" ... />
<FB Name="DigitalOutput_Q1" ... />
<EventConnections> ... </EventConnections>
<DataConnections> ... </DataConnections>
</SubAppNetwork>
</SubApp>
</SubAppNetwork>
[cite_start][cite: 1]
Der funktionale Ablauf: Die Kapselung hat keinen Einfluss auf die Laufzeit-Ausführung. Die Bausteine verhalten sich exakt so, als wären sie alle auf der obersten Ebene platziert.
SubApp_1verarbeitet das Signal vonI1zuQ1.SubAppverarbeitet das Signal vonI2zuQ2.
Anwendungsbeispiel
Visuelle Gruppierung von Funktionsbereichen: In einer großen Anlage könnte man untypisierte SubApps nutzen, um die Logik thematisch zu sortieren, z.B. einen Container „Temperaturregelung“, einen „Antriebssteuerung“ und einen „Sicherheitsüberwachung“. Wenn man die Hauptansicht öffnet, sieht man nur diese drei Blöcke und nicht hunderte von einzelnen Gattern und Verbindungen. Dies erleichtert die Navigation („Zoom-In“-Effekt), ist aber nicht für die Wiederverwendung über mehrere Projekte hinweg gedacht (dafür nutzt man typisierte SubApps).
