Textübernahme

rene

Level-1
Beiträge
66
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo, ich möchte gerne das meine Ventileingänge abgefragt werden, und ich mir auf dem Panel in einem EA- Feld anschauen kann, ob das Ventil Auf oder Zu ist.

habe dazu folgendes hier gefunden

U "CZ1-V008 Zu" //Rückmeldung
SPBN ende
L 3 //Maximale Länge String
T DB2.DBB 2
L 2 //Aktuelle Länge des String
T DB2.DBB 3
L 'Zu'
T DB2.DBW 4
ende: NOP 0


was ich allerdings nicht ganz verstehe, ich erstelle mir eine variable string im db 2, und dann schreib ich das Ergebnis "Zu" ins DBW 4???
 
Weil im String, die ersten 2 Byte mit dem Stringkopf belegt sind, das hast du doch richtig gemacht.
Du kannst übrigens auch ein symbolisches EA-Feld nutzen, dann kannst z.Bsp. feste Texte aus einer Symbolliste mit Integerwerten anzeigen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hmm, ralle ich habs noch nicht ganz verstanden, wenn ich meinen wert in DB2.DBW 4 geschrieben habe, wie lese ich ihn dann aus, in WinCC kann ich nicht direkt den Wert einlesen, dort kommt die fehler meldung ungültige adresse
ich hab mal bilder beigefügt, vll, ist es dann einfacher zu verstehen
 

Anhänge

  • wincc.jpg
    wincc.jpg
    54,5 KB · Aufrufe: 21
  • db2.jpg
    db2.jpg
    24 KB · Aufrufe: 14
  • fc.jpg
    fc.jpg
    19,8 KB · Aufrufe: 15
Also wenn deine Variablenzuweisung stimmt sollte das so gehen. Bei mit gehts so. Leg den String im DB an (String [4] z.Bsp.) und such in WinCCFlex die Variable über ihren Sybolnamen raus, beim anlegen. Im Simulator geht es bei mir.
 
ne ralle tut mir leid aber das klappt einfach nicht,kannst du mir vll. mal erklären wie das mit dem DB funktioniert?
oder könntest du mal dein programm als foto reinstellen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
So sieht mein DB2 als Quelle aus:

Code:
DATA_BLOCK DB 2
TITLE =
VERSION : 0.1


  STRUCT     
   TestString : STRING  [4 ];    
  END_STRUCT ;    
BEGIN
   TestString := ''; 
END_DATA_BLOCK

Einfach mal in eine leere Qulle reinkopieren und übersetzen. Dann hab ich WinCCFlex geöffnet und eine Variable angelegt. Dabei über Symbol den String "Teststring" aus dem DB2 zugewiesen, anschleißend das Ausgabefeld in ein Bild eingeügt und dann wurde erstmal nix angezeigt :ROFLMAO:! Mit der Variablentabelle in Step7 hab ich dann den String beschrieben. Byteweise in die Var-Tabelle, Byte 1 und 2 las Hex, Byte 3,4,5, als Zeichen. Länge und Zeichen 'Z' + 'u' + ' ' eintragen, dann wurde es auch angezeigt.
 
So sieht mein DB2 als Quelle aus:

Code:
DATA_BLOCK DB 2
TITLE =
VERSION : 0.1
 
 
  STRUCT     
   TestString : STRING  [4 ];    
  END_STRUCT ;    
BEGIN
   TestString := ''; 
END_DATA_BLOCK

Byteweise in die Var-Tabelle, Byte 1 und 2 las Hex, Byte 3,4,5, als Zeichen. Länge und Zeichen 'Z' + 'u' + ' ' eintragen, dann wurde es auch angezeigt.

Vaiablen oder Symboltabelle?

also denn schluss verstehe ich nicht ganz, "Byteweise...."-->wie soll man da eine hex zahl eingeben?
Bei mir ist es so das er im runtime , eben gar nix anzeigt, auch die "000" im EA Feld nicht mehr. ich hab nur keine ahnung wieso, den rest hab ich denke ich auch so gemacht wie du


Ich hoffe ich geh dir nicht zu sehr auf die nerven;-)...........jeder anfang ist schwer........
 
Zuletzt bearbeitet:
hallo, ich möchte gerne das meine Ventileingänge abgefragt werden, und ich mir auf dem Panel in einem EA- Feld anschauen kann, ob das Ventil Auf oder Zu ist.

habe dazu folgendes hier gefunden

U "CZ1-V008 Zu" //Rückmeldung
SPBN ende
L 3 //Maximale Länge String
T DB2.DBB 2
L 2 //Aktuelle Länge des String
T DB2.DBB 3
L 'Zu'
T DB2.DBW 4
ende: NOP 0

Der Programmcode ist so richtig, gib in mal genauso ein.

Es gilt dabei:

DB2.DBB2 = Maximale Länge String
DB2.DBB3 = Aktuelle Länge String
DB2.DBB4 = Störmeldung.Ventiltext[1] = 'A' oder 'Z'
DB2.DBB5 = Störmeldung.Ventiltext[2] = 'u' oder 'u'
DB2.DBB6 = Störmeldung.Ventiltext[3] = 'f' oder ''


In Deinem Programmcode hast Du etwas anderes stehen:

http://www.sps-forum.de/showpost.php?p=89360&postcount=3

Gruß Kai
 
So Ralle vielen Dank, hab es verstanden:D
Das nennt man Lernerfolg von 100%

Also jeder Buchstabe ist ein Byte:rolleyes: ...

Danke für deine Geduld:D

und dir Kai auch "Danke"
 
Zurück
Oben