-> Hier kostenlos registrieren
Hallo,
ich stehe vor einem Problem... ich hoffe ich kann es zumindest verständlich erklären
Ich möchte SDO Parameter von einem Can Node auslesen und schreiben. Das klappt soweit ganz gut mit dem ADSRead und ADSWrite. Diese Werte möchte ich auf der VISU anzeigen lassen.
Mein problem ist das die verschiedenen SDOs unterschiedliche Datentypen haben (z.B. USINT, UINT, UDINT, usw.)
Da ich auf der VISU für das Anzeigen ein Feld vorgesehen habe, müssen alle DatenTypen so konvertiert werden in eine Variabele die ich mit dem Anzeigefeld verknüpfe.
Fürs Lesen kann ich einfach den Grösten Typ nehmen (z.B. UDINT) und die Daten werden irgendwie angezeigt.
Mein problem ist das Schreiben. Wenn ich einen Wert in Feld "Write Value" eingebe, muss die Variabele "Write_Data" von UDINT auf UINT geschrumpft werden wenn SDO nur UINT ist. Mit LEN rufe ich passendes FB auf wo die richtige Länge und das DatenTyp voreingestellt sind.
Jetz muss aich aber das Write_data (UDINT) aus dem MAIN (was ich in der VISU eingebe) in das Write_Data (UINT) vom FB reinschrumpfen
Heisst ich muss von den 4 Bytes nur die ersten 2 nehmen. Ich habe mit "UDINT to UINT" probiert was aber kein gültiges Kommando ist...
Ich hoffe meine Frage wurde überhaupt richtig verstanden
und jemand hat ne Idee wie ich das realisieren kann.
Danke für Vorschläge
ich stehe vor einem Problem... ich hoffe ich kann es zumindest verständlich erklären

Ich möchte SDO Parameter von einem Can Node auslesen und schreiben. Das klappt soweit ganz gut mit dem ADSRead und ADSWrite. Diese Werte möchte ich auf der VISU anzeigen lassen.
Mein problem ist das die verschiedenen SDOs unterschiedliche Datentypen haben (z.B. USINT, UINT, UDINT, usw.)
Da ich auf der VISU für das Anzeigen ein Feld vorgesehen habe, müssen alle DatenTypen so konvertiert werden in eine Variabele die ich mit dem Anzeigefeld verknüpfe.
Fürs Lesen kann ich einfach den Grösten Typ nehmen (z.B. UDINT) und die Daten werden irgendwie angezeigt.
Mein problem ist das Schreiben. Wenn ich einen Wert in Feld "Write Value" eingebe, muss die Variabele "Write_Data" von UDINT auf UINT geschrumpft werden wenn SDO nur UINT ist. Mit LEN rufe ich passendes FB auf wo die richtige Länge und das DatenTyp voreingestellt sind.
Jetz muss aich aber das Write_data (UDINT) aus dem MAIN (was ich in der VISU eingebe) in das Write_Data (UINT) vom FB reinschrumpfen

Ich hoffe meine Frage wurde überhaupt richtig verstanden

Danke für Vorschläge