ST_BA_SeqLink / ST_BA_SeqLinkData
Struktur des Daten- und Befehlsaustausches zwischen dem Steuerbaustein FB_BA_SeqLink und den Sequenzreglern FB_BA_SeqCtrl.
Diese Struktur ist pro Sequenzregelung einmal anzulegen:
stSeqLink : ST_BA_SeqLink;
Innerhalb dieser Struktur ist automatisch eine weitere Feldstruktur deklariert, über die der Sequenz-Link-Baustein auf der einen Seite und die einzelnen Sequenzregler auf der anderen alle relevanten Daten miteinander austauschen. Jeder Sequenzregler schreibt dabei seine Daten in das seiner Ordnungszahl (Eintrag am Eingang usiMyNum am Sequenzreglerbaustein) entsprechende Feldelement. An den Bausteinen angelegt wird immer die komplette Struktur mit allen Feldelementen.
Die Strukturen haben den folgenden Aufbau:
TYPE ST_BA_SeqLink :
STRUCT
arrSeqLinkData : ARRAY[1..cMaxSeqCtrl] OF ST_BA_SeqLinkData;
bSeqActv : BOOL;
usiCurSeq : USINT;
byDummy : ARRAY[1..2] OF BYTE;
END_STRUCT
END_TYPE
bSeqActv: Die Sequenzregelung ist freigegeben und aktiv.
usiCurSeq: Vom FB_BA_SeqLink: Vorgabe aktueller Sequenzregler
byDummy: Unbenutzte Füllvariablen zur Herstellung einer 4-Byte-Anordnung. Diese Anordnung ist dann wichtig, wenn diese Struktur Teil eines Datenaustauschs zwischen Controllern unterschiedlicher Architektur (ARM/I486) ist.
TYPE ST_BA_SeqLinkData:
STRUCT
lrY : LREAL;
lrYMin : LREAL;
lrYMax : LREAL;
lrW : LREAL;
bActn : BOOL;
bOp : BOOL;
bPresence : BOOL;
bErrDouble : BOOL;
usiCurSeq : USINT;
byDummy : ARRAY[1..3] OF BYTE;
END_STRUCT
END_TYPE
lrY: Vom FB_BA_SeqCtrl: Übermittlung aktueller Stellwert
lrYMin: Vom FB_BA_SeqCtrl: Übermittlung minimaler Stellwert
lrYMax: Vom FB_BA_SeqCtrl: Übermittlung maximaler Stellwert
lrW: Vom FB_BA_SeqCtrl: Übermittlung aktueller Sollwert
bActn: Vom FB_BA_SeqCtrl: Übermittlung Wirksinn invers (bActn = FALSE: Heizbetrieb - bActn = TRUE: Kühlbetrieb).
bOp: Vom FB_BA_SeqCtrl:Sequenzregler ist freigegeben, d.h. sein Eingang bEn ist auf TRUE gesetzt.
bPresence: Vom FB_BA_SeqCtrl: Prüfbit, s.u.
bErrDouble: Vom FB_BA_SeqCtrl: Fehler beim Prüfen der Nummern: es existieren mindestens 2 Sequenzregler gleicher Ordnungszahl usiMyNum.
usiCurSeq: Vom FB_BA_SeqLink: Vorgabe aktueller Sequenzregler
byDummy: Unbenutzte Füllvariablen zur Herstellung einer 4-Byte-Anordnung. Diese Anordnung ist dann wichtig, wenn diese Struktur Teil eines Datenaustauschs zwischen Controllern unterschiedlicher Architektur (ARM/I486) ist.
Bemerkung zum Prüfbit:
Jeder Sequenzcontroller setzt in der für ihn gültigen seiner Struktur das bPresence-Flag. Ist dieses jedoch schon gesetzt, so muss usiMyNum zwangsläufig doppelt vergeben worden sein, greifen doch zwei Sequenzregler auf dieselbe Struktur zu. Der Sequenz-Link-Baustein setzt alle Prüfbits nach Auswertung wieder zurück, so dass dieser Test zyklisch erfolgt. Dadurch kann ein Fehler automatisch per online-change behoben, bzw. auch neue Sequenzregler hinzugefügt werden
Voraussetzungen
Entwicklungsumgebung | Zielsystem | erforderliche Bibliothek | erforderliches Supplement |
---|---|---|---|
TwinCAT 2.11 R3/x64 | PC/CX | TcBA-Bibliothek ab V1.0.0 | TS8040 | TwinCAT Building Automation ab V1.0.0 |