TIA WinCC: Bitmeldungen mit Array of Bool

Automatinator

Level-1
Beiträge
115
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Kann man die Bitmeldungen im TIA WinCC auch direkt (oder ohne umstänständliches Umwandeln/Aufbereiten) mit dem Array-Index eines bool'schen Array's verknüpfen?

Danke und Gruss
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wozu?
Es gibt doch bei Siemens eine Excel-Tabelle. Mit der kannst du dir alle Bits schön ausrechnen.

Wie meinst du das? ausrechnen? Ich muss ja nichts ausrechen... Ich möchte nur ein einem wenn die Stelle im Array x (also index = x) dann soll die x'te Meldung in dieser Tabelle angezeigt werden (ID-Nr.).
 
Wie meinst du das? ausrechnen? Ich muss ja nichts ausrechen... Ich möchte nur ein einem wenn die Stelle im Array x (also index = x) dann soll die x'te Meldung in dieser Tabelle angezeigt werden (ID-Nr.).

Das wird nicht funktionieren. WinCC organisiert die Bitmeldungen Wortweise. Ich habe eben versucht ein array of bool zu verwenden. Keine Chance.
Ich habe mir mal eine Excel-Tabelle von Siemens runtergeladen. Da gibst du die Bausteinnummer, die Anfangsadresse deiner Meldungen und die Anzahl der Wörter an.
Per Button wird die Struktur der Bitmeldungen und Quitvariablen berechnet und tabellarisch dargestellt. Mehr ist glaub ich nicht möglich.
 
sps-forum hat leider recht, das Array of Bool bringt leider nicht viel.
WinCC akzeptiert es nicht, man kann sich die Variablen dann manuell als INT/WORD anlegen (DB nicht optimiert)
Als zweiten Nachteil hat man dann dass man im Programm nur mit kryptischen Symbolen ala Alarm[328] arbeiten muss.

Eigentlich akzeptiert WinCC sowieso nur INT/WORD-Werte aus denen man dann beim Erstellen der Meldung eine Bitadresse angeben muss.

Welche Möglichkeiten gibts...
a)Optimierter Baustein mit INT/WORD
Vorteil: Kann direkt in WinCC als Triggervariable verwendet werden.
Nachteil: Zugriff auf Bits muss auf Wegen wie Slice, AT, etc. genommen werden.
DbStoerungen.Becken1.Stoe_331N1_NH4.X1/X2/X3 etc... ist aber auf kein tolles Symbol.​

b) Freie Struktur der Meldungen in einem nicht optimierten DB.
Vorteil: Man kann alle möglichen Bitstrukturen verwenden.
Nachteil: Mann muss die Variablen händisch in WinCC als INTs/WORDs an den entsprechenden Adressen anlegen.​

Ich persönlich tendiere zur Variante B.
Im DB kann die die Bits vollsymbolisch mit Strukturen anlegen (Stoe.Becken1.331N1_NH4.MAX; Stoe.Becken1.331N1_NH4.StoeSensor; etc...)
Die Worte-Variablen muss man halt dann in WinCC anlegen.

Wenns bessere Lösungen gibt (für das Bitmeldeverfahren) dann bin ich ganz Ohr. ;)

Zu Wissen ist nur dass die Byte-Order in WinCC gedreht ist.
Z.B. du hast eine Word-Variable, dann ist Bit 0 gleich Bit 8 in der Triggervariable der Meldung. Bit1 ^= Bit9, Bit8 ^= Bit0, etc....

Siemens-Logik halt.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Wieso das?Du hast doch einen Kommentar im DB?
Im DB musst du halt einzelne Variablen anlegen die in der Reihenfolge einzutragen sind das die verdrehten Byts wieder kompensiert werden.
Auf der Visu-Seite hast du dann nur die Array Bitnummer die stimmt überein mit der Nummer der SPS-Variable.Die Bedeutung steht im Kommentar.
Ich finde das gar nicht so schlecht.Die Arbeit machst du einmal und den Kommentar musst du eh hinzufügen.

Bsp:

alarm328 Kommentar:...............
 
Entschuldigung ich habe einen Fehler gemacht.Die SPS-Seite stimmt.
Auf der Visu-Seite ist es ein Array aus Word Variablen.Die Arraygröße kannst du beliebig bestimmen.
Die Notation im Flexible ist Variablenname/Typ Word/Arraygröße.Das ist die Variable.

Im Meldungsfenster taucht dann die Variable auf mit einer Nummer.Da hat Ronin recht.Pardon.
 
@freaky: Wie machst du denn das? Eine Array oder Bool-Variable kann man in WinCC ja nicht als Trigger nehmen..

Ah, du erstellst ein absolut adressiertes Array of WORD in WinCC, oder? Ja das ist gar keine schlechte Idee.
Danke für den Tipp.

Wieso das?Du hast doch einen Kommentar im DB?
Die Bedeutung steht im Kommentar.
Ich finde das gar nicht so schlecht.Die Arbeit machst du einmal und den Kommentar musst du eh hinzufügen.

Bsp:
alarm328 Kommentar:...............
OK, das ich je nach Stil.
Ich trage auch den kompletten Alarmtext im DB-Kommentar ein und übernehme dann den Text via Export/Import über Quellen/Excel in die Störmeldungen.

Die Kommentare selbst habe ich aber in der Programmieransicht ausgeschaltet, die sind bei mir zu lang und kosten für mich zu viel Bildschirmplatz. Daher muss meine normale Symbolik aussagekräftig genug sein. Wenn ich mal in den Eigenschaften einer Var nachschauen muss wie der Kommentar lautet damit ich weiß was es ist, dann hab ich was falsch gemacht...:rolleyes:

Ich mach die Meldungen sowieso in Excel, da is mir der TIA-Meldungseditor zur lahm und fiddelig.
 
Hallo,
Möchte diesen Thread mal hervorholen.

Habe im Moment das gleiche Problem wie der TO. SIOS verweigert im Moment komplett den Dienst.

Gibt es in der Zwischenzeit eine sinnvolle Lösung für das Problem?
Anforderungen:
- Einzelne Bits für Lesbarkeit im Programm (Kein Slice wie Wort[25].X3)
- Am besten Array für Schleifenbearbeitung (Neuwertmeldung rausfinden)
- DB Optimiert (Man wird ja immer mehr dazu genötigt siehe Software-Units...)

Umkopieren in ein zweiten DB mit Worten ist auch Käse.

Grüße

Edit: TIA V15.1.0.4
 
Zurück
Oben