Texte aus WinCC 7.0 in einen Datenbaustein schreiben

thomas1285

Level-1
Beiträge
16
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe ein Problem. Und zwar sollen in einem WinCC-Projekt Texte eingegeben werden, die dann fest hinterlegt sind.
Mit einem Button soll der angewählte Text in einen Datenbaustein in einer S7-Steuerung geschrieben werden.

Am Besten wäre es, wenn die Texte über ein Drop-Down Menü ausgewählt werden könnten
und dann mit dem Button "Senden" in eine Variable (Datenbaustein...) geschrieben werden.

Gibt es eine Möglichkeit, die Texte in Zeichen zu zerlegen und diese dann Byte-weise in den DB zu schreiben?

Vielen Dank schonmal.

Mfg
Thomas
 
Dropdown menü wäre eine Textliste mit FESTEN Texten, die zur Laufzeit nicht verändert werden können.
Eine Indexvariable gibt den aktuellen Eintrag zur SPS weiter. ( Indexvariable 3 = Text 3)

Willst du die Texte in der SPS verändern?

Wird ein Text in der Visu von Hand eingegeben, so wäre das z.B.: eine zeichenkette mit Länge 20
Diese Variable könnte ein Aray of Char im DB sein. Oder ein String[20] im DB. Zugriff Symbolisch von der Visu aus.

Ein Zeichen (Char) belegt ein byte. "Mein Text" wären dann 9 Chars.

Beachte auch die 2 Headerbytes bei einem String
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Sinn dahinter ist, dass man im WinCC einen von vielen vorgegebenen Texten auswählen kann und dann auf einen Button "senden" drückt.
Dann muss ich irgendwie den Text in Zeichen zerlegen und in einen Datenbaustein ablegen.

Mit diesen Zeichen bastel ich mir dann eine Laufschrift, die auf eine große Anzeige übertragen wird.

Die Texte werden also nur vom WinCC über die SPS an die Anzeige weitergeleitet.
 
ist zwar nur flexible, aber so ähnlich könntest das anlegen.

Eingabe der Texte in "TexteVomDisplay".

Jetzt musst du entscheiden (Indexvariable 0..9), wohin der Text in der SPS kopiert wird. (nicht im bild)

Index 3: Kopiere "TexteVomDisplay" --> "Text4"

Laden: Kopiere "Text4" --> "TexteVomDisplay"

das Ganze mit sende button und verriegelungen ausschmücken.

Mit Char verhält es sich ähnlich

Text1.JPG
 
Von WinCCflexible kannst du in WinCC nicht viel übernehmen.

Hat es einen Grund warum du die Bytes einzeln schreiben willst?
Wenn du die Texte in der SPS als Variablen vom Datentyp String angelegt hast, geht das recht einfach.

Du legst in WinCC die Variable mit Datentyp "Textvariable 8-Bit Zeichensatz" und der entsprechenden Länge an, z.B. "Lauftext1".
Für die Auswahl der Texte würde ich ein Listenfeld nehmen (z.B. mit Objektname "Listenfeld1"). In das Listenfeld fügst du deine Texte ein.
Daneben packst du einen Button, bei dem du unter Ereignis bei Mausklick eine C-Aktion einfügst.
Dort gibst du folgendes ein:
Code:
// WINCC:TAGNAME_SECTION_START
#define TEXTTAGNAME "Lauftext1"
// WINCC:TAGNAME_SECTION_END

char *SelText;

/* Angewählten Text des Listenfeldes auslesen */
SelText = GetPropChar(lpszPictureName, "Listenfeld1", "SelText");
/* String auf Variable schreiben */
SetTagChar(TEXTTAGNAME, SelText);

WinCC setzt die Kopfinformationen des Strings passend zur aktuellen Länge.
 
Zurück
Oben