-> Hier kostenlos registrieren
Hallo Forenmitglieder
Mit dem folgenden Befehl schreibe ich aus einem PC-Programm (XBASE++) , mittels ADS Kommunikation, einen Wert in eine Stringvariable (Steuerung).
Variable:String(30);
// IDENT
// Handl über Variablenname holen
sVar := ".V_C_IDENT"
nErr := DllCall( "TCADSDLL.DLL" , DLL_STDCALL,"_AdsSyncReadWriteReq@28",@Addr, 0xF003, 0, 4, @nHandl, len(sVar), @sVar)
nHandlWert := bin2u(nHandl) // Empfang in Wert Wandeln
// Wert schreiben
sVar := V_C_IDENT // String 30
nErr := DllCall( "TCADSDLL.DLL" , DLL_STDCALL,"_AdsSyncWriteReq@20",@Addr, 0xF005,nHandlWert,len(sVar), @sVar)
Wenn ich jetzt '123456" in die Variable der Beckhoff-Steuerung schreibe steht auch '123456' drinnen.
Schreibe ich aber dann einen kurzen String z.B. 'abc' steht 'abc456' in der String Variable obwohl ich die Länge mittels len(sVar) richtig setze.
Was muss ich beachten ?
mfg.
mkersch
Mit dem folgenden Befehl schreibe ich aus einem PC-Programm (XBASE++) , mittels ADS Kommunikation, einen Wert in eine Stringvariable (Steuerung).
Variable:String(30);
// IDENT
// Handl über Variablenname holen
sVar := ".V_C_IDENT"
nErr := DllCall( "TCADSDLL.DLL" , DLL_STDCALL,"_AdsSyncReadWriteReq@28",@Addr, 0xF003, 0, 4, @nHandl, len(sVar), @sVar)
nHandlWert := bin2u(nHandl) // Empfang in Wert Wandeln
// Wert schreiben
sVar := V_C_IDENT // String 30
nErr := DllCall( "TCADSDLL.DLL" , DLL_STDCALL,"_AdsSyncWriteReq@20",@Addr, 0xF005,nHandlWert,len(sVar), @sVar)
Wenn ich jetzt '123456" in die Variable der Beckhoff-Steuerung schreibe steht auch '123456' drinnen.
Schreibe ich aber dann einen kurzen String z.B. 'abc' steht 'abc456' in der String Variable obwohl ich die Länge mittels len(sVar) richtig setze.
Was muss ich beachten ?
mfg.
mkersch