TIA Problem mit HTA und Hex to String umwandeln und in HMI anzeigen

DennisBerger

Level-2
Beiträge
436
Reaktionspunkte
61
Zuviel Werbung?
-> Hier kostenlos registrieren
Problem mit HTA und Hex to String umwandeln und in HMI anzeigen (Euchner EKS)

Hallo
ich habe ein bestehendes Programm einer Step7 in TIA migriert und die Hardware neu aufgebaut (S7-1500 , TP 1200 , Euchner EKS System)

in Step 7 hat das Auslesen eines bis max 10 stelligen Keys (EKS Euchner) (41 36 31 37 33 37 38 Hex) wie hier im u.s. Bild zu sehen einwandfrei geklappt.
Der String wird im Ausgabefeld des HMI
mit Variable DB651.db4.0 Datentyp String[10] auch direkt als Ascii in "A617378" dargestellt.

da muss komischerweise nichts von Hex auf Ascii umgewandelt werden, es wird direkt DB651.dx4.0 als String ins Ausgabefenster geladen und korrekt angezeigt.



eks-300.JPG


In Tia sieht diese Funktion folgendermaßen aus,
leider funktioniert das umwandeln des eingelesen Werts (ab DB650.dbx4.0 ) nicht...

In der VAT sehe ich online die Zahlen als Hex also zb
DB650.dbd4 - 41 36 31 37
(das auslesen des Keys funktioniert also)

aber das umwandeln in Ascii und darstellen in der HMI (Ausgabefenster DB650.dbx130 Datentyp String [10] funktioniert leider nicht..
In HMI wird nichts angezeigt und in der VAT sehe ich bei DB650.dbd130 auch keine ascii zeichen..

hab ich einen Fehler im Datentyp oben oder woanders?
Tia:
eks-1500.JPG

danke für Eure Hilfe....

p.s. DB651 war Step7 und in TIA ist es DB650 (nur als info, kein Tippfehler)
 
Zuletzt bearbeitet:
1. Das ist doch schon ASCII, warum von HEX nach ASCII ?
2. Ich kann auf Anhieb nicht nachvollziehen wo in deiner S7 Vorlage DB650.dx4.0 herkommt. Ist das dein Instanz DB?
Da muss irgendwo
DB650.dx4.0 oder der String EKS Nummer beschrieben werden. Wie sieht denn die Wandlung aus?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hier der Instanz DB 651 von der Step7:
db651.JPG



ja der DB650 und db651 sind die Instanz DB


hier der DB650 von TIA, ist eigentlich alles gleich wie bei Step 7
db650.JPG






Über Netzwerk 1 werden darin 128 bytes geladen,
der key ist ab db650.db4

und wenn ich in VAT den DB650dbd4 aufmache und beobachte sehe ich 4 Bytes als Hex...

Lade ich den DB650.dbx4.0 als String[10] ins Ausgabefenster der HMI , zeigt mir diese auch nur die Hex Zahlen an und nicht acsii zeichen also leider nicht "A617"

deshalb wollte ich umwandeln..

hab ich einen denkfehler und mich verrannt?
 
Zuletzt bearbeitet:
Wenn das erste Zeichen 16#41 = 'A' bereits in DBB4 steht, dann ist die Deklaration "String[xx]" falsch. Es ist nur ein Array of CHAR oder Array of BYTE.
Das HTA wirst Du nicht brauchen. Die Zeichen sind bereits ASCII-Code.

Harald
 
Also wenn du 41 36 31 37 33 37 38 Hex siehst sind das ja ASCII Codes.
Dann ist einfach deiner Darstellungsart auf der HMI falsch. Was ist denn wenn du den IDB aufmachst und im Status guckst ?
 
danke euch..ich geh mal an die Anlage und mache screenshot vom Status..

Vorher:
step7 v5.6 S7-300
HMI TP1200 comfort
Tia V15 WinCC Advanced

neu:
S7-1500 (1513)
TP1200 Comfort
TIA V16 WinCC Advanced



Projektierung HMI hab ich bei beiden gleich:
e-nummer-hmi.JPG
 
Zuletzt bearbeitet:
Die Frage ist, ob auch richtig/gleich auf den RFID-Chip geschrieben wurde...
Wenn auch wirklich als String geschrieben wurde (DBB 4 + 5 sind max. Stringlänge und aktuelle IST-Stringlänge) , dann sollte das passen.
Wenn aber schon ab DBB 4 direkt CHAR geschrieben werden, dann musst du aus einem CHAR-Array zu einem String wandeln...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
der chip funkioniert, bei der alten Anlage wird die E Nummer korrekt angezeigt.
Nur bei der neuen nicht.. da wurde sie einmal in der HMI im Ausgabefenster als HEX dargestellt.. muss aber schauen wie ich das hinbekommen hatte..
deshalb bin ich ja drauf gekommen es umwandeln zu müssen..


hier die Beschriftung des Keys:

e-ks.JPG
 
Zuletzt bearbeitet:
Zeige uns nochmal eindeutig den Inhalt der Bytes DB650.DBB4 .. DB650.DBB7 in HEX
Wenn in DB650.DBB4 oder DB650.DBB5 was größeres als 16#0A drinsteht, dann ist die Deklaration als String[10] eindeutig falsch. (Oft hat der Programmierer "keine Zeit" gehabt, das korrekt zu deklarieren...)
Was steht in der Dokumentation des Lesegerätes über den Aufbau der 128 Byte?
Irgendwie sieht Dein letztes Bild mit E_Nummer = String, StartByte = 5, Length = 11 für mich komisch aus.


Schreibt/schmiert noch weiterer Code in den IDB auf den Speicherbereich DBB4..DBB15?

War in der S7-300 vorher "priorisierte BuB-Kommunikation" aktiviert? Wenn nicht: bei S7-300 liest und schreibt die HMI-Kommunikation dann nur im Zykluskontrollpunkt. Bei der S7-1500 unterbricht die HMI-Kommunikation irgendwo/irgendwann den OB1 und liest dadurch auch nicht fürs HMI gedachte "Zwischenstände" von Variablenwerten oder schreibt zu unpassender Zeit in PLC-Variablen. Dieses Verhalten wird vermutlich auch noch an weiteren Stellen dieser Projektmigration Probleme machen, so wie der bereits gezeigte Programmcode aussieht...

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hier die VAT, der Key hat die E Nummer E17380
A5 ist ein Leerbyte von Euchner


geee.JPG

45 31 37 33 38 30 = E17380

sollte passen dann oder?


was mir eben aufgefallen ist am Display
beim Start der Runtime der HMI kommt "Variable 1 E_Nummer - Konvertierungsfehler"
und im ausgabefeld der E Nummer steht ########

hier de deklaration der Variable in HMI
eks-hmi.JPG
 
Zuletzt bearbeitet:
DB650.DBD4 = 16#00A5_4531 bedeutet:
DB650.DBB4 = 0 : String Max Länge = 0
DB650.DBB5 = A5 : String Akt. Länge = 165
Das ist natürlich absurd --> ergo: es ist kein S7-String

Da fragt man sich, wie die Anzeige vorher korrekt funktioniert haben soll. Da offensichtlich die Bytefolge nicht in einen String umkopiert wird (das HMI schaut auf die selben Adressen DB650.DBB4...!), müsste irgendwo im Code der S7-300 nach dem DPRD_DAT noch etwa sowas kommen (Pseudocode):
Code:
MOVE B#16#0A ---> DB650.DBB4  //String Max Länge := 10 (oder irgendein Wert 6..10 geht auch)
MOVE B#16#06 ---> DB650.DBB5  //String Akt. Länge := 6

//oder kürzer

MOVE W#16#0A06 ---> DB650.DBW4
Wenn Du das in Dein S7-1500-Programm einbaust, dann würde die Anzeige am Panel manchmal funktionieren und manchmal flackern. Schön ist was anderes. Die richtige Lösung wäre: die 6 Zeichen DB650.DBB6..11 in einen String für das HMI umkopieren.

Harald
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
also in s7-300 (siehe seite 1 screenshot) funktioniert das an vielen Anlagen einwandfrei.
nur bei der 1500er und Tia habe ich jetzt das Problem.


hab den code von dir in ein awl netzwerk einfügen wollen, aber er Tia meckert?

fehler.JPG

Geht das irgendwie auch ohne AWL und nur mit fertigen Anweisungen?

danke.... diese dumme schlüsselabfrage hält mich richtig auf bei dem Projekt... hätten einfach ne 300er Steuerung und Step7 nehmen sollen.. und gut..
 
sorry falsch ausgedrückt
zitat: "Die wiederholten Daten „A5 und 5A“ im obigen Bereich stehen in den ungenutzten Schlüsselstellen. EUCHNER liefert die Schlüssel mitdiesem Füllmuster aus."

war ein Platzhalter/Leerstelle kein Leerbyte
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Und das überschreibt ihr nicht?
Vielleicht einmal bei der IBN ?
Sind das wirklich die selben Keys, die an der S7 laufen?
Also wenn Du ein Key von der S7 Anlage nimmst und dann an der TIA Anlage liest (und andersrum) dann hast du dieses Problem?
 
es sind service, bediener oder Einrichter schlüssel, mit verschiedenen Berechtigungstufen.
davon sind ca 30stk im Betrieb unterwegs.

Bei uns sind ca 10 Anlagen mit der EKS Schlüsselaufnahme,
der baustein ist wie auf seite 1 und S7-300... es funktioniert einwandfrei...

auch dort wird db650.dx4.0 direkt als string in die HMI geladen , das ausgabefeld hat diese Variable zugewiesen.,,
es wird die dem Transponder zugewiesene Nummer angezeigt.


nur bei dem TIA Projekt und HMI funktioniert es nicht...
 
Zuletzt bearbeitet:
Beantwortet nicht ganz genau meine Frage...
Wirklich mal quer getauscht?
Die Schlüssel werden ja sicherlich irgendwo mal initialisiert/beschrieben.
Wenn das an deiner neuen TIA-Anlage falsch läuft, könnte das genau dieses Problem sein.
Wenn Du aber mit einem an S7-funktionierenden Key an der TIA Anlage ein Problem hasst, sind da noch irgendwelche Unterschiede S7<>TIA.
Hardware-Einstellungen? Beim schreiben gibt es da noch mal ein Längeneinstellungen gut versteckt unter einem der Submodule beim EKS. Wäre fürs Lesen egal, aber vielleicht gibt es da noch irgendwas....
 
Zurück
Oben