Meldungen in WinCC flexible 2008

spirit

Level-1
Beiträge
961
Reaktionspunkte
23
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo ihr Lieben!

Hänge grad wieder etwas an einem Problemchen; es geht um Meldungen.

Habe dafür ein MW vorgesehen und kann so problemlos 16 Meldungen generieren; soweit ok.

Nun wollte ich das etwas eleganter lösen und für die Meldungen einen eigenen DB verwenden. Hier weiß ich aber nun nicht, wie man die Meldungen anlegen muss?

Macht man da ein Array 1..xy (WORD) oder wie schaut so ein Melde-DB am Sinnvollsten aus?

Vielen Dank!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für den Link rostiger Nagel...

Aber ich denke mal das sprengt im Moment doch meine Vorstellungskraft. Eigentlich wollte ich "nur" wissen, wie die Meldungen in einen DB gelegt werden können; bzw. wie dieser DB auszusehen hat?

Kann man das mit einem Array machen, oder Struct... ?
 
Du könntest entweder ein oder mehrere Arrays of Word in dem DB anlegen oder einfach mehrere Word. Arrays haben den Vorteil das du weniger Powertags in WinCC flexible brauchst, aber an deiner Stelle würde ich erst mal mit Word arbeiten um dich mit dem Thema einzufuchsen!
 
Danke fuss,

mit dem Anlegen von mehreren Word im DB hat geklappt!

Noch eine Frage:

Gehört eigentlich nicht hierher; aber sonst muss ich extra einen neuen Thread aufmachen...

Ich arbeite in einem FB mit einer Variablen X und diese soll auch außerhalb des Bausteins ausgelesen werden können.
Dann muss ich diese doch als OUT-Variable deklarieren, richtig?

Was wäre, wenn ich sie aber als IN-OUT-Variable deklariere; das würde vermutlich ebenso funktionieren, oder?

Lieben Dank!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was wäre, wenn ich sie aber als IN-OUT-Variable deklariere; das würde vermutlich ebenso funktionieren, oder?
Jep, das geht natürlich auch.
Wenn die Variable X in deinem FB nicht nur geschrieben sondern auch gelesen wird ist es sogar notwendig (für eine saubere Programmierung) daraus eine InOut zu machen.
 
Hallo Paule,

da hab ich ne andere Meinung zu. Warum soll ich eine INOUT Deklaration für einen Ausgang machen, wenn ich den Ausgang auch lesen will? Einen normalen Hardwareausgang kann ich ja auch jederzeit lesend abfragen. Mir ist bewusst das Siemens hier mit TIA eine Restriktion eingeführt hat, empfinde ich persöhnlich aber als nicht richtig bzw. sinnig. Villeicht kannst Du mir ja den tieferen Sinn dahinter näher bringen?
Für mich ist eine INOUT Variable dafür da wenn ich von verschiedenen Stellen (HMI, andere Bausteine) auf dieselbe Variable schreiben will, und das Ergebnis sozusagen durchreichen will. Im Falle eines FC's nutze ich die INOUT Variable manchmal auch nur als Speicher.
 
Wenn die Variable X in deinem FB nicht nur geschrieben sondern auch gelesen wird ist es sogar notwendig (für eine saubere Programmierung) daraus eine InOut zu machen.

Ist aber eigentlich kein Muss - denn es funktioniert auch, wenn die Variable "nur" als OUT deklariert ist...

#Motor --> OUT-Variable und wird in NW2 gelesen!

OUT-Variable.jpg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist aber eigentlich kein Muss - denn es funktioniert auch, wenn die Variable "nur" als OUT deklariert ist...
DU hast doch gefragt ob es auch als InOut geht! :confused:

da hab ich ne andere Meinung zu. ...
Mir ist bewusst das Siemens hier mit TIA eine Restriktion eingeführt hat, empfinde ich persöhnlich aber als nicht richtig bzw. sinnig.
Nichts gegen deine persönliche Meinung, aber...
Warum soll ich eine INOUT Deklaration für einen Ausgang machen, wenn ich den Ausgang auch lesen will?
1. Weil eine InOut Deklaration an dieser Stelle richtig und logisch ist.
2. Weil TIA diese Vorgehensweise jetzt als Warnung meldet und kein Programmierer ein Programm voller Fehler und Warnungen haben will.
3. Weil es nicht der Norm IEC 61131-3 entspricht.

Aber wie überall gibt es unbelehrbare oder solche die sich nicht weiterentwickeln wollen.
Ich ändere auf jeden Fall meine Bausteine die ich in der Vergangenheit falsch deklariert habe im TIA so das sie fehlerfrei sind.
 
Hallo Paule,

Zitat von Paule:
Wenn die Variable X in deinem FB nicht nur geschrieben sondern auch gelesen wird ist es sogar notwendig (für eine saubere Programmierung) daraus eine InOut zu machen.
So wie es gerade bei TIA gehandhabt wird, geb ich Dir da in folgendem Punkt recht:
Zitat von Paule:
2. Weil TIA diese Vorgehensweise jetzt als Warnung meldet und kein Programmierer ein Programm voller Fehler und Warnungen haben will.


Zitat von Paule:
3. Weil es nicht der Norm IEC 61131-3 entspricht.
Einen Ausgang in einer POE zu lesen entspricht sehr wohl der IEC61131-3, die Warnung an sich ist halt totaler Quark weil die aber mal gar nix mit IEC61131-3 zu tun hat. Keine Ahnung wer da bei Siemens die IEC61131-3 interpretiert haben will. Wenn ich mir vorstelle ich soll keine z.B Verriegelungensabfragen mehr mit einem Ausgang programmieren dürfen, das wär ja grausig. :confused:

Nachlesen kann man das ganze hier. Ab Seite 30 wirds denke ich bezogen auf dieses Thema interessant:
"SPS Programmierung in IEC61131-3"

So ist das in der IEC61131-3 definiert:
Seite_37.jpg Seite 37
Seite_39.jpg Seite 39

Zitat von Paule:
1. Weil eine InOut Deklaration an dieser Stelle richtig und logisch ist.
Das kommt wohl wie immer auf die jeweilige Sichtweise an, bzw. welche Definition zugrunde liegt. Ich habe das halt eher so gelernt wie das in diesem Buch beschrieben wird. Von anderen codesys basierenden Steuerungsherstellern die wesentlich normkonformer sind als Siemens kenn ich dieses Verhalten auch nicht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
DU hast doch gefragt ob es auch als InOut geht! :confused:

Ja stimmt schon, Paule.

Aber da dachte ich noch, dass es eigentlich der richtige Weg ist die Variable nur als OUT_Variable zu deklarieren.

Jetzt kommt aber raus, dass eine Variable, die im gleichen Baustein erzeugt und auch gelesen wird, doch eher als IN_OUT_Variable deklariert werden sollte... zumindest was Siemens betrifft.
 
Zurück
Oben