Array? FehlerDB? Große Datenmenge, wie Programmiert man am elegantesten?

chg1988

Level-1
Beiträge
19
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen...

Ich programmiere zur zeit eine Steuerung in S7 die 50 Aktoren ansteuert. Diese 50 Aktoren können jeweils 4 Fehlersignale (BOOL) an die SPS senden.

Wie realisiere ich es am elegantesten, dass ich soviele BOOL Variablen auf einmal speichere und mit ihnen umgehe? Kann man irgendwie Arrays programmieren? Oder gibts andere möglichkeiten?!

Ich bin dabei für jeden Fehler einen einzelnen Merker anzulegen. Es gibt sicher elegantere Lösungen...

MFG
 
Nimm einen DB und darin ein Array of udt. in die udt legst du jeweils die Struktur für einen Autor hinein. (S7)
Oder für Codesys eine Struktur anlegen, als Array einer weiteren Struktur mit den Aktorsignalen, das dann auf eine Variable.
 
200 BOOLs bzw Bits sind an sich noch keine große Datenmenge. Aber je nachdem, was die Fehlersignale alles auslösen sollen, kommt ja noch einiges an Daten hinzu. Eine richtige Störungs- und Alarmbehandlung mit Signallampen, Quittierung, Logdateien, SMS-Alarme usw wird da schon ziemlich komplex, da kommst du mit Merkern nicht sehr weit.

In meinen Programmen gibt es dafür einen FBControl, der als Instanz in alle Geräte-FBs eingebunden wird oder andere Signale überwacht. Als Variablen hat er 16 BOOLs (Ein und Ausgänge) sowie eine Nummer, die spezifisch ist für jede Überwachung. Diese Nummer ist der Index für einen Status-DB , einen DB für Alarmeinstellungen oder bei Aktoren auch die Betriebszähler. Bei einem neuen Alarm wird diese Nummer an einen PC geschickt, der daraus einen Eintrag in die Logdatei macht, eine Meldung auf dem Bildschirm anzeigt und bei Bedarf SMS-Meldungen verschickt.
 
Such mal im Simatic-Bereich mit Begriffen wie "Bitmeldungen" oder "Störmeldungen", da findest du teilweise sehr detaillierte Threads zu dem Thema, hat mir sehr geholfen.
 
Zurück
Oben