TIA Artikelcode Konvertieren

Christmaspoo

Level-1
Beiträge
250
Reaktionspunkte
33
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

ich habe Kundenseitig eine Anlage, welche mit einen Artikelcode in Char via PN übergibt. Mit diesem Artikelcode, muss ich einen Datensatz prüfen und Daten daraus auswerten.

Soweit, so einfach.

Beim Konvertieren der Zeichen und Zusammensetzen zu einer Dint Variable hate ich leichte Probleme mit der Konvertierung von Real to Dint. ab einer länge von 8 Stellen gab es Übersetzungsfehler. So wurde aus 900000000 => 900000124. Das habe ich bisher mit folgendem code umgangen:
Code:
#Key := 0;
FOR #Zähler := 0 TO 8 DO
    #Zwischenergebnis := (CHAR_TO_DINT(#Produktkey[#Zähler]) - 48);
    FOR #Zähler2 := 0 TO 7 - #Zähler DO
        #Zwischenergebnis := #Zwischenergebnis * 10;
    END_FOR;
    #Key := #Key + #Zwischenergebnis;
END_FOR;
Ich habe also aus der Potenz eine Schleife gebildet. Die Lösung finde ich persönlich allerdings etwas unglücklich. Gäbe es noch einen anderen Weg den Umwandlungsfehler zu umgehen oder gar zu eliminieren?

Frage 2: Ich bekome die Daten vom Profinet, Zusammen mit diversen anderen Daten. Bisher habe ich einfach die Adressen als PLC Variablen verwendet und direkt beschrieben. Allerdings kann ich die EA-Adressen nicht mit Array of Char belegen, sondern nur mit Char. Wie kann ich das am elegantesten lösen?
 
Ich habe das auf der 400er Familie genauso gemacht wie du.
Bei der 1500 gibts Strg_Val der ist wohl etwas komplexer. Hast du den mal versucht?

Edit: Du kannst dein Array auch in einen Anwenderdatentyp packen und so über den Eingangsbereich legen.

mfG René
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hätte evtl dazu schreiben sollen, dass ich auf einer 300er arbeite. :)

Hab das mit dem Anwenderdatentyp gerade versucht, allerdings scheint die 315 das nicht zu unterstützen.
 
Zuletzt bearbeitet:
Bei der 300er würde ich das ebenfalls mit UDTs lösen. Nur Halt so das du den Eingangsbereich in einen DB movest Dann kannt du wieder indiziert symbolisch drauf zugreifen.

mfG René
 
Zurück
Oben