ADSWRITE
This block permits execution of an ADS write command, for the transfer of data to an ADS device.
VAR_INPUT
VAR_INPUT
NETID : T_AmsNetId;
PORT : T_AmsPort;
IDXGRP : UDINT;
IDXOFFS : UDINT;
LEN : UDINT;
SRCADDR : DWORD;
WRITE : BOOL;
TMOUT : TIME;
END_VAR
NETID : Is a string containing the AMS network identifier of the target device to which the ADS command is directed.
PORT : Contains the port number of the ADS device.
IDXGRP : Contains the 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 : Contains the 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.
LEN : Contains the number, in bytes, of the data to be read.
SRCADDR : Contains the address of the buffer from which the data to be written is to be fetched. The programmer is himself responsible for dimensioning the buffer to such a size that ‘LEN’ 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.
WRITE : The ADS command is triggered by a rising edge at this input.
TMOUT : States the time before the function is cancelled.
VAR_OUTPUT
VAR_OUTPUT
BUSY : BOOL;
ERR : BOOL;
ERRID : UDINT;
END_VAR
BUSY : This output remains TRUE until the 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. Please note that it is not the execution of the service but its acceptance whose time is monitored.
ERR : This output is switched to TRUE if an error occurs during the execution of a command. The command-specific error code is contained in ‘ErrorId’. If the block has a timeout error, ‘Error’ is TRUE and ‘ErrorId’ is 1861 (hexadecimal 0x745). Is reset to FALSE by the execution of a command at the inputs.
ERRID : Contains the command-specific error code of the most recently executed command. Is reset to 0 by the execution of a command at the inputs.
Example of calling the block in FBD:
NC axis no. 1 is here deactivated through a write instruction with IDXGRP 00004201 (hex) and the IDXOFFS 00000050 (hex). To activate the axis another write instruction with the IDXOFFS 00000051 (hex) must be given. Since this write instruction does not require any parameters, the inputs LEN and SRCADDR have no significance, but must nevertheless be set to zero.
Requirements
Development environment | Target system type | PLC libraries to include |
---|---|---|
TwinCAT v2.7.0 | PC or CX (x86) | PLCSystem.Lib |
TwinCAT v2.8.0 | PC or CX (x86) | TcSystem.Lib |
TwinCAT v2.10.0 Build >= 1301 | CX (ARM) | TcSystem.Lib |