AdsSyncRead[Datatype]Req

AdsSyncReadBoolReq

AdsSyncReadIntegerReq

AdsSyncReadLongReq

AdsSyncReadSingleReq

AdsSyncReadDoubleReq

AdsSyncReadStringReq

Liest synchron Daten von einem ADS-Gerät an und schreibt diese in eine Visual Basic-Variable vom Typ Boolean, Integer, Long, Single, Double oder String.

object.AdsSyncRead[Datatype]Req(
  nIndexGroup As Long,
  nIndexOffset As Long,
  cbLength As Long,
  pData As [Datatype]
) As Long

Parameter

nIndexGroup

[in] Index-Gruppe der ADS-Variable

nIndexOffset

[in] Index-Offset der ADS-Variable

cbLength

[in] Länge der Daten in Byte (siehe VB-Variablenlängen)

pData

[in] Visual Basic-Variable, in der die Daten der ADS-Variable geschrieben werden

Rückgabewert

Siehe ADS-Fehlercodes

Achtung: Im Falle eines Fehlers wird die VB-Variable (pData), deren Wert beschrieben werden sollte, auf "0" gesetzt.

Bemerkungen

Die Ausführung des Visual Basic-Programms wird so lange angehalten, bis die Daten vom ADS-Gerät vorliegen oder bis die Zeit in der Eigenschaft AdsAmsCommTimeout überschritten ist.
Anmerkung zum Datentyp String: Bei der Länge der Daten ist zu beachten, dass sich diese auf die Länge der Variable im Visual Basic Programm bezieht. Da Visual Basic ein Zeichen mit 2 Byte darstellt, muss die Länge der Variable mit LenB() ermittelt werden, nicht mit Len().

VB Beispiel

Dim VBVar As Long
'Wert auslesen
Call AdsOcx1.AdsSyncReadLongReq(&H4020&, 0&, 8&, VBVar)
'Variablen anzeigen
Label1.Caption = VBVar
Dim VBVar As String
'Visual Basic Variable initialisieren
VBVar = Space(10)
"Wert aus Variable auslesen
Call AdsOcx1.AdsSyncReadStringReq(&H4020&, 0&, LenB(VBVar), VBVar)
'Variablen in Form anzeigen
Label1.Caption = VBVar

Delphi Beispiel

procedure TForm1.Button2Click(Sender: TObject);
var     res :integer;
    //read buffer
    vWordBool : WordBool;
    vSmallint : Smallint;
    vLongint : Longint;
    vSingle : Single;
    vDouble : Double;
    vString : WideString;
begin
    res :=  AdsOcx1.AdsSyncReadBoolReq( $4020, 0, sizeof(vWordBool), vWordBool );
    Label1.Caption := Format('res: %d,  Value: %s', [res, BoolToStr(vWordBool, TRUE)]);

    res :=  AdsOcx1.AdsSyncReadIntegerReq( $4020, 2, sizeof(vSmallint), vSmallint );
    Label2.Caption := Format('res: %d,  Value: %d', [res, vSmallint]);

    res :=  AdsOcx1.AdsSyncReadLongReq( $4020, 4, sizeof(vLongint), vLongint );
    Label3.Caption := Format('res: %d,  Value: %d', [res, vLongint]);

    res :=  AdsOcx1.AdsSyncReadSingleReq( $4020, 16, sizeof(vSingle), vSingle );
    Label4.Caption := Format('res: %d,  Value: %f', [res, vSingle]);

    res :=  AdsOcx1.AdsSyncReadDoubleReq( $4020, 32, sizeof(vDouble), vDouble );
    Label5.Caption := Format('res: %d,  Value: %f', [res, vDouble]);

    SetLength(vString,80{standard length of the PLC string variable});
    res :=  AdsOcx1.AdsSyncReadStringReq( $4020, 64, Length(vString)*2{byte length!}, vString );
    Label6.Caption := Format('res: %d,  Length: %d, Value: %s', [res, Length(vString), vString]);
end;