ADSWRTCTL
This function block permits the execution of an ADS control command to affect the state of an ADS device, e.g. to start, stop or reset a device.
Inputs
VAR_INPUT
NETID : T_AmsNetId;
PORT : T_AmsPort;
ADSSTATE : UINT;
DEVSTATE : UINT;
LEN : UDINT;
SRCADDR : PVOID;
WRITE : 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). |
ADSSTATE | UINT | State identification code of the ADS target device. |
DEVSTATE | UINT | Contains the specific state identification code of the ADS target device. The codes given here are supplementary information which is specific to the ADS device. |
LEN | UDINT | Number of data to be written in bytes. |
SRCADDR | PVOID | 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 | BOOL | The ADS command is triggered by a rising edge at this input. |
TMOUT | TIME | Indicates the time before the function is canceled. |
State identification code of the ADS target device
The codes shown here are specified for all ADS servers:
- ADSSTATE_IDLE = 1;
- ADSSTATE_RESET = 2;
- ADSSTATE_INIT = 3;
- ADSSTATE_START = 4;
- ADSSTATE_RUN= 5;
- ADSSTATE_STOP = 6;
- ADSSTATE_SAVECFG = 7;
- ADSSTATE_LOADCFG = 8;
Outputs
VAR_OUTPUT
BUSY : BOOL;
ERR : BOOL;
ERRID : 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. No new commands are accepted at the inputs as long as BUSY = TRUE. 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. |
Example of calling the block in FBD:
In the example a reset command (ADSSTATE=2) is sent to the I/O server (Port300), along with supplementary data hex.AFFE. As a result the I/O server executes a bus reset.
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) |