Praktiker2007
Level-1
- Beiträge
- 6
- Reaktionspunkte
- 1
-> Hier kostenlos registrieren
Hallo Forum,
ich bin gerade dabei in SCL ein paar Funktionen für Modbus TCP zu schreiben.
Dabei bin ich auf ein kleines Problem gestossen. Ich habe einen UDT der wir folgt aussieht:
Eigentlich möchte ich die Datenxxx als Word haben dann bekomme ich aber eine Lücke von einem Byte in dem Instanz DB.
Ebenso wenn ich die Bytes als Array deklariere.
Ich habe schon probiert mit AT eine Wortweise Schablone über die Bytes zu legen aber ohne Erfolg.
Diesen Block sende ich über AG_Send an einen anderen Client. Normalerweise arbeite ich mit BEckhoff da hätte ich einfach ein Word Array mit Memcpy auf die Adresse des Ersten Bytes kopiert.
Nun nochmal die Frage:
Ich habe im Instanz db ab Byte 25 248 Byte die ich mit 124 Worten füllen mochte wie mach ich das?
Dank im Vorraus.
ich bin gerade dabei in SCL ein paar Funktionen für Modbus TCP zu schreiben.
Dabei bin ich auf ein kleines Problem gestossen. Ich habe einen UDT der wir folgt aussieht:
Code:
TIH : BYTE ; //Transaction identifier (High-BYTE)
TIL : BYTE ; //Transaction identifier (Low-BYTE)
PIH : BYTE ; //Protocol identifier (High-Byte)
PIL : BYTE ; //Protocol identifier (Low-Byte)
LFH : BYTE ; //Length field (High-BYTE) immer 0 da Nachrichten kleiner 256BYTE
LFL : BYTE ; //Length field (Low-Byte) Anzahl der nachfolgenden Bytes
SLAVE : BYTE ; //Slave Adresse
FUNCCODE : BYTE ;// Funktionscode
// 01h Read n Bits n Bit lesen von Master-Ausgabe-Bereich 0x
// 02h Read n Bits n Bit lesen von Master-Eingabe-Bereich 1x
// 03h Read n Words n Worte lesen von Master-Ausgabe-Bereich 4x
// 04h Read n Words n Worte lesen von Master-Eingabe-Bereich 3x
// 05h Write one Bit 1 Bit schreiben in Master-Ausgabe-Bereich 0x
// 06h Write one Word 1 Wort schreiben in Master-Ausgabe-Bereich 4x
// 0Fh Write n Bits n Bit schreiben in Master-Ausgabe-Bereich 0x
// 10h Write n Words n Worte schreiben in Master-Ausgabe-Bereich 4x
// 17h Write n Word and Read m Words
ADRESS : WORD ;
ANZAHL : WORD ;
ANZAHL_BYTES : BYTE ;
DATEN001 : BYTE ;
DATEN002 : BYTE ;
.... Bis 248
Ebenso wenn ich die Bytes als Array deklariere.
Ich habe schon probiert mit AT eine Wortweise Schablone über die Bytes zu legen aber ohne Erfolg.
Diesen Block sende ich über AG_Send an einen anderen Client. Normalerweise arbeite ich mit BEckhoff da hätte ich einfach ein Word Array mit Memcpy auf die Adresse des Ersten Bytes kopiert.
Nun nochmal die Frage:
Ich habe im Instanz db ab Byte 25 248 Byte die ich mit 124 Worten füllen mochte wie mach ich das?
Dank im Vorraus.