ADSRDWRTEX
This block allows execution of a combined ADS write/read instruction. Data is transmitted to an ADS device (write) and its response data read with one call. Contrary to the ADSRDWRT function block ADSRDWRTEX supplies the number of actually read data bytes as parameter.
Inputs
VAR_INPUT
NETID : T_AmsNetId;
PORT : T_AmsPort;
IDXGRP : UDINT;
IDXOFFS : UDINT;
WRITELEN : UDINT;
READLEN : UDINT;
SRCADDR : PVOID;
DESTADDR : PVOID;
WRTRD : BOOL;
TMOUT : TIME := DEFAULT_ADS_TIMEOUT;
END_VAR
Name | Type | Description |
---|---|---|
NETID | T_AmsNetId | String containing the AMS network ID of the target device to which the ADS command is addressed (type: T_AmsNetId). |
PORT | T_AmsPort | Port number of the ADS device (type: T_AmsPort) |
IDXGRP | UDINT | Index group number (32-bit, unsigned) of the requested ADS service. This value is to be found in the ADS table of the addressed device. |
IDXOFFS | UDINT | Index offset number (32-bit, unsigned) of the requested ADS service. This value is to be found in the ADS table of the addressed device. |
WRITELEN | UDINT | Number of data to be written in bytes |
READLEN | UDINT | Number of data to be read in bytes |
SRCADDR | PVOID | Address of the buffer from which the data to be written is to be fetched. The programmer is responsible for dimensioning the buffer such that WRITELEN bytes can be taken from it. The buffer can be a single variable, an array or a structure, whose address can be found with the ADR operator. |
DESTADDR | PVOID | Address of the buffer that is to receive the read data. The programmer is responsible for dimensioning the buffer such that it can accommodate READLEN bytes. The buffer can be a single variable, an array or a structure, whose address can be found with the ADR operator. |
WRTRD | BOOL | The ADS command is triggered by a rising edge at this input. |
TMOUT | TIME | Indicates the time before the function is canceled. |
Outputs
VAR_OUTPUT
BUSY : BOOL;
ERR : BOOL;
ERRID : UDINT;
COUNT_R : UDINT;
END_VAR
Name | Type | Description |
---|---|---|
BUSY | BOOL | This output remains TRUE until the function block has executed a command, but at the longest for the duration supplied to the Timeout input. While BUSY = TRUE, no new command will be accepted at the inputs. Note that it is not the execution of the service but its acceptance whose time is monitored. |
ERR | BOOL | This output is switched to TRUE as soon as an error occurs during the execution of a command. The command-specific error code is contained in ERRID. If the function block has a timeout error, ERR is TRUE and ERRID is 1861 (hexadecimal 0x745). Is reset to FALSE by the execution of a command at the inputs. |
ERRID | UDINT | ADS error code or command-specific error code of the last executed command. Is reset to 0 by the execution of a command at the inputs. |
COUNT_R | UDINT | Number of successfully read data bytes |
Requirements
Development environment |
Target system type |
PLC libraries to include (Category group) |
---|---|---|
TwinCAT v3.1.0 |
PC or CX (x86, x64, ARM) |
Tc2_System (System) |