Bereichszeiger für Sprachumschaltung?

Bär1971

Level-1
Beiträge
220
Reaktionspunkte
18
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo an alle,

ich suche eine Möglichkeit in WinnCC-flex bei einem OP77B mit Step7 genau festzustellen, welche Sprache gerade aktiv ist.

Hm, blöd formuliert.... ok, ich probiers nochmal *grins*

Ich hab ein OP77B, Sprachumschaltung deutsch-tchechisch getoggelt mit einer Taste auf dem Panel. Nun ist es aber so, das ich auch die Gebietsschemas eines Druckers über RS232 entsprechend mit umschalten muss.
Ein einfaches Merken des Zustandes wenn ich weiß welche Sprache beim Hochlaufen aktiv ist und Auswerten eines "setze Bit während Taste gedrückt" genügt mir nicht. Eine reine Vermutungslogig ist mir zu unsicher.

Also benötige ich jederzeit ein gesichertes Signal welche Sprache gerade aktiv ist. Kann man da einen Bereichszeiger setzen oder sowas? Gibt es eine andere Lösung um "auszulesen" welche Sprache gerade aktiv ist?

Danke mal im Vorraus
 
Hm...

keiner eine Idee?
Weil mit Scripte etc in WinCC hab ich gar keine Erfahrung....

Muss doch irgendwie möglich sein?
 
Also, hier mal ne kurze Zusammenfassung der Antwort vom Support:

Skripte kann das OP77 nicht und die Funktion welche ich möchte ist von Siemens nicht vorgesehen. MfG

Als ich auf telefonische Beratung bestanden habe und der gute Mann dann auch anrief wurde folgendes erörtert:

Sprachumschaltung ist auf einfachste Weise nur durch das Belegen einer Taste/Schaltfläche mit der Funktion "Setze Sprache" möglich. Hier wird die Sprache einfach nur getoggelt. Rückmeldung an die SPS ist nicht vorgesehen und dadurch auch nicht machbar.
Zweite Möglichkeit ist das Anlegen einer Variablen (INT). Diese muss nun in den Eigenschaften auf zyklische Bearbeitung umgestellt werden. Ebenfalls wird in den Eigenschaften der Variablen unter "Aktion/Wertänderung" eine Funktion "Setzte Sprache" eingestellt. Wenn man mit dem Mauszeiger über das T von Toggle fährt erscheint links neben dem T das Symbol einer Kugel. (Muss man natürlich auch erst wissen) Klickt man drauf kann man auf Variable umstellen. Dann muss man hier anstelle Toggle die angelegte Variable selbst aufrufen. Was bewirkt das nun?
Aus der SPS heraus kann man nun die Variable mit einer Zahl beschreiben (0 bis xx)
Bei jeder Wertänderung (leider nur bei flankengetriggerter Änderung) wird nun in die Sprache umgeschaltet die dem Variablenwert entspricht. Welche Nummer für welche Sprache zugehörig ist bestimmt man unter den Projekteinstellungen Sprache. Dort kann man die Sprachen in entsprechende Reihenfolge setzten und dadurch die "Nummer" zuordnen. (Achtung! Nur wenn man dem Panel über eine echte RS232-Schnittstelle das Betriebssystem mit der Werkskonfiguration überträgt startet es auch zuverlässig in der Sprache 0)

Soweit so gut. Man schaltet also nun von der SPS aus die Sprache und sollte dadurch immer wissen welche gerade aktiv ist.
Aber: wie entgeht man durch die Geschichte mit der aufgezwungenen Erfassung der Wertänderung nur flankengetriggert also der Gefahr, das das Panel z.Bsp in der Sprache 0 hochläuft und die Variable in der SPS aber mit 1 beschrieben ist? Das Panel würde nun auf die anliegende 1 in der Variable nicht reagieren da diese ja keine Signalflanke aufweist.
Um auch Diese Situation zu beherrschen, muss man nach dem Hochlaufen des Panels selbst kurz aus der SPS heraus toggeln. Hierzu die Variable einmal mit der Nummer irgendeiner angelegten Sprache beschreiben und ca. 6sec. danach die Variable mit der Nummer der gewünschten Startsprache beschreiben. Wichtig: das funktioniert natürlich erst nach dem Hochlaufen des Panels. Hierzu kann man unter Bereichszeiger das sogenannte Lebensbit abfragen (aber das ist eine andere Geschichte) oder auch mit einer Verzögerungszeit arbeiten.

Fazit: so viel Arbeit und Hickhack nur weil es von Siemens nicht vorgesehen ist, das das Panel zurückmelden kann welche Sprache es gerade anzeigt. Ist eine schwache Leistung für einen Konzern der seine Produkte zur Steuerung von Anlagen nicht nur regional sehen möchte. Ich denke nicht, das es für die hochbezahlten Entwickler von WinCCflex so schwer wäre auch hierfür einen einfachen Bereichszeiger anzulegen.
 
Zweite Möglichkeit ist das Anlegen einer Variablen (INT). Diese muss nun in den Eigenschaften auf zyklische Bearbeitung umgestellt werden. Ebenfalls wird in den Eigenschaften der Variablen unter "Aktion/Wertänderung" eine Funktion "Setzte Sprache" eingestellt. [...]
Dann muss man hier anstelle Toggle die angelegte Variable selbst aufrufen.[...]
Aus der SPS heraus kann man nun die Variable mit einer Zahl beschreiben (0 bis xx)
Bei jeder Wertänderung [...] wird nun in die Sprache umgeschaltet die dem Variablenwert entspricht.
[...]
Aber: wie entgeht man durch die Geschichte mit der aufgezwungenen Erfassung der Wertänderung nur flankengetriggert also der Gefahr, das das Panel z.Bsp in der Sprache 0 hochläuft und die Variable in der SPS aber mit 1 beschrieben ist? Das Panel würde nun auf die anliegende 1 in der Variable nicht reagieren da diese ja keine Signalflanke aufweist.
Gib der Variable, die bei Wertänderung die Sprachumschaltung auslöst, in den Eigenschaften den Startwert: -1
und bei der Systemmeldung "140001 Verbindung abgebaut ..." setzt Du beim Ereignis "Kommen" die Variable auf -1.
So schaltet sich das Panel bei jedem Verbindungsaufbau auf die Sprachnummer, die in der SPS-Variable steht.
Die SPS-Variable muß in jedem OB1-Zyklus beschrieben werden, damit das Panel die Variable nicht ändern kann.

Der Ausdruck "flankengetriggerte Wertänderung" ist nicht korrekt und irreführend.
Es kommt nur darauf an, das die SPS-Variable und die Panel-interne Kopie der Variable unterschiedliche Werte
haben, dann wird beim nächsten lesen der SPS-Variable das Ereignis "Wertänderung" ausgelöst.

Harald
 
Zurück
Oben