L_IPAP_ParameterRead
Mit dem Funktionsbaustein L_IPAP_ParameterRead können die Geräte- und PLC-Parameter des Lenze Controllers von der PLC-Applikation gelesen werden.
|
L_IPAP_ParameterRead |
|||||||
|---|---|---|---|---|---|---|---|
|
BOOL |
- |
xExecute |
xDone |
- |
BOOL |
||
|
BOOL |
- |
xAbort |
xBusy |
- |
BOOL |
||
|
WORD |
- |
wIndex |
xAborted |
- |
BOOL |
||
|
BYTE |
- |
bySubIndex |
xError |
- |
BOOL |
||
|
UDINT |
- |
udiTimeOut |
eErrorId |
- |
L_IPAP_ERRORID |
||
|
POINTER TO BYTE |
- |
pDataBuffer |
udiDataRead |
- |
UDINT |
||
|
UDINT |
- |
udiBufferSize |
eDataType |
- |
L_IPAP_DATATYPE |
||
Eingänge
|
Name Datentyp |
Info/Einstellmöglichkeiten |
|
|---|---|---|
|
xExecute BOOL |
FALSE ‰ TRUE |
Mit steigender Flanke wird die Leseanforderung eines Parameters gestartet. |
|
xAbort BOOL |
FALSE ‰ TRUE |
Abarbeitung des FBs abbrechen |
|
wIndex WORD |
Index des zu lesenden Parameters |
|
|
bySubIndex BYTE |
Subindex im Objektverzeichnis des Masters oder des Slaves |
|
|
udiTimeOut UDINT |
Timeout in Millisekunden [ms]
|
|
|
pDataBuffer POINTER TO BYTE |
Referenz zum Speicher-Buffer, in den die zu lesenden Werte kopiert werden sollen. |
|
|
udiBufferSize UDINT |
Gröfle des unter pDataBuffer übergebenen Speicher-Buffers.
|
|
Ausgänge
|
Name Datentyp |
Wert/Bedeutung |
|
|---|---|---|
|
xDone BOOL |
TRUE |
Bearbeitung ist abgeschlossen |
|
xBusy BOOL |
TRUE |
Abarbeitung läuft |
|
xAborted BOOL |
TRUE |
Die Abarbeitung des FBs wurde abgebrochen. |
|
xError BOOL |
TRUE |
Es ist ein Fehler aufgetreten. Details siehe eErrorID . |
|
eErrorId |
Wenn xError = TRUE: Fehlernummer zum aufgetretenen Fehler. |
|
|
udiDataRead UDINT |
Bei der Leseanforderung tatsächlich gelesene Anzahl von Bytes |
|
|
eDataType |
Angabe des Datentyps vom gelesenen Parameter |
|
Anwendungsbeispiel
Read parameter 0x2001:000 “Device name” (data type: STRING)
PROGRAM PLC_PRG
VAR
-
fbParameterRead : L_IPAP_ParameterRead;
-
read : BOOL;
-
index : WORD;
-
subindex : BYTE;
-
abyDeviceName : ARRAY [0..127] OF BYTE;
END_VAR
(* read device name *)
// index can be set as hexadecimal- or as decimal value
index := 16#2001; //or: index := 8193
subindex := 0;
fbParameterRead(
-
xExecute := read,
-
wIndex := index,
-
bySubIndex := subindex,
-
pDataBuffer := ADR(abyDeviceName),
-
udiBufferSize := SIZEOF(abyDeviceName)
);
Read parameter 0x2452:001 “Active eng. port settings: IP address” (data type: UDINT)
PROGRAM PLC_PRG
VAR
-
fbParameterRead : L_IPAP_ParameterRead;
-
read : BOOL;
-
udiIPaddr : UDINT;
-
abyIPaddr : ARRAY [0..3] OF BYTE;
END_VAR
(* read IP address to UDINT value*)
fbParameterRead(
-
xExecute := read,
-
wIndex := 16#2452,
-
bySubIndex := 1,
-
pDataBuffer := ADR(udiIPaddr),
-
udiBufferSize := SIZEOF(udiIPaddr));
);
(* or read IP address to array of 4 BYTES*)
fbParameterRead( xExecute := read,
-
wIndex := 16#2452,
-
bySubIndex := 1,
-
pDataBuffer := ADR(abyIPaddr),
-
udiBufferSize := SIZEOF(abyIPaddr)
);