Blocks IPWatchdog
Description:
The IPWatchdog blocks are used to verify the availability of a remote IP address based on an ARP or ICMP query.
IPWDG_ARP
Returns ARP ping status of a give IP ip address
Asynchronous interface | ||||
in | IP_ADDR | string | IP address | |
in | TMO_S | int | timeout in seconds | |
out | Q | bool | status |
IPWDG_ICMP
Returns ICMP ping status of a give ip address
Asynchronous interface | ||||
in | IP_ADDR | string | IP address | |
in | TMO_S | int | timeout in seconds | |
out | Q | bool | status |
Block behavior:
The pulse on EXEC triggers the IPWDG block. In the beginning a ICMP/ARP request is sent to the IP address. At the same time the BUSY output is changing the status of the log. 0 to 1, TMO_S running and the block is waiting for a response.
1. If a response is received during TMO_S, TMO_S it is reset. BUSY is set to log. 0, VALID is set to 1 (operation successful, output set) and Q is set to log. 1 (IP is available).
2. If a response is not received, BUSY remains in the log. 1 until TMO_S expires. After TMO_S expires BUSY goes to log.0, VALID goes to log.1 (operation successful, output set). Q remains in log. 0 (IP is not available).
Note:
EXEC should be set to a value greater than TMO_S to avoid unnecessary restarting when the block cycle is not completed and is waiting for TMO_S.
Examples
GEN_PULSE generates a pulse every T#2s (2 seconds) to trigger the IPWDG block. During one cycle block it is waiting for an answer from the remote device (IP_ADDR) for TMO_S timer. If the remote device does not respond by this time, the output is set to log. 0. Otherwise, the output is set to log. 1.
IPWDG_ICMP
IPWDG_ARP