This port serves the purpose of broadcasting ASCII data to all connected devices with a single command. It enables tasks such as identification, buffer arming/triggering, and synchronization over this data link.
Ethernet is non-deterministic, and TCP/UDP lacks the ability to synchronize reactions across all devices simultaneously. The time behavior is unpredictable, influenced by factors such as wiring topology, high-priority communications, load on connected slaves, buffer handling, and more. Thorough testing is crucial, especially for synchronization purposes.
Configuration
Fixed Configuration:
-
Port = 5565 (fixed)
-
IPAddress = broadcast IP address of used network or known devices IP address
e.g. existing network:
IPAddress = 192.168.1.18
SubnetMask = 255.255.255.0
⇒ Broadcast IP address = 192.168.1.255
Protocol Description
The broadcast port employs ASCII commands for both requests and responses. The ASCII data frame consists of a command string, with [tab] serving as a separator between the command string and additional identifiers. [CR] is used as the end delimiter for requests, while [CRLF] is used for responses.
Command Descriptions
Identification Command – Ident Device
This command is used to perform a network scan for connected devices. Additionally, it is employed in conjunction with the "TCP/IP Device Identification" application, providing all the necessary information for device identification. Once this request is sent to the network broadcast address, each slave in the subnet will respond with the specified response. It's important to note that the order of responses is not fixed, and the response data from different controllers will appear randomly in the UDP stack.
Request |
DEVICEIDENT?[CR] |
|
---|---|---|
Substring |
Data Type |
Description |
DEVICEIDENT? |
Text string |
Command = Ident device |
[CR] |
Text string |
End delimiter ( \r, 0x0d ) |
Response: |
SID:xxx[TAB]OAN:xxx[TAB]OVN:xxx[TAB]SAN:xxx[TAB]SVN:xxx[TAB]LOC:xxx[TAB]MKC:xxx[TAB]SNR:xxx[TAB]ASK:xxx[TAB]IPA:xxx[TAB]SNM:xxx[TAB]GWA:xxx[TAB]MAA:xxx[CR][LF] |
|
Substring |
Data Type |
Description |
SID:xxx |
Text string |
Structure ID – to identify data structure |
SID = 1 |
||
[TAB] |
Text string |
Separator ( \t, 0x09 ) |
OAN:xxx |
Text string |
Original Application Name |
[TAB] |
Text string |
Separator |
OVN:xxx |
Text string |
Original Vendor name |
[TAB] |
Text string |
Separator |
SAN:xxx |
Text string |
Set Application Name – which is actual in use |
[TAB] |
Text string |
Separator |
SVN:xxx |
Text string |
Set Vendor Name – which is actual in use |
[TAB] |
Text string |
Separator |
LOC:xxx |
Text string |
Location |
[TAB] |
Text string |
Separator |
MKC:xxx |
Text string |
Module Kind Code |
[TAB] |
Text string |
Separator |
SNR:xxx |
Text string |
Serial Number |
[TAB] |
Text string |
Separator |
ASK:xxx |
Text string |
Assignment Kind – use of DHCP (DYNAMIC/STATIC) |
[TAB] |
Text string |
Separator |
IPA:xxx |
Text string |
IP Address – which is actual in use |
[TAB] |
Text string |
Separator |
SNM:xxx |
Text string |
Sub Net Mask – which is actual in use |
[TAB] |
Text string |
Separator |
GWA:xxx |
Text string |
Gateway Address – which is actual in use |
[TAB] |
Text string |
Separator |
MAA:xxx |
Text string |
MAC Address – which is actual in use |
[CR][LF] |
End Delimiter ( \r\n,0x0d 0a ) |
|
SID = 2 |
||
[TAB] |
Text string |
Separator ( \t, 0x09 ) |
OAN:xxx |
Text string |
Original Application Name |
[TAB] |
Text string |
Separator |
OVN:xxx |
Text string |
Original Vendor name |
[TAB] |
Text string |
Separator |
SAN:xxx |
Text string |
Set Application Name – which is actual in use |
[TAB] |
Text string |
Separator |
SVN:xxx |
Text string |
Set Vendor Name – which is actual in use |
[TAB] |
Text string |
Separator |
LOC:xxx |
Text string |
Location |
[TAB] |
Text string |
Separator |
MKC:xxx |
Text string |
Module Kind Code |
[TAB] |
Text string |
Separator |
MID:xxx |
Text string |
Module ID Number |
[TAB] |
Text string |
Separator |
SNR:xxx |
Text string |
Serial Number |
[TAB] |
Text string |
Separator |
ASK:xxx |
Text string |
Assignment Kind – use of DHCP (DYNAMIC/STATIC) |
[TAB] |
Text string |
Separator |
IPA:xxx |
Text string |
IP Address – which is actual in use |
[TAB] |
Text string |
Separator |
SNM:xxx |
Text string |
Sub Net Mask – which is actual in use |
[TAB] |
Text string |
Separator |
GWA:xxx |
Text string |
Gateway Address – which is actual in use |
[TAB] |
Text string |
Separator |
MAA:xxx |
Text string |
MAC Address – which is actual in use |
[CR][LF] |
End Delimiter ( \r\n,0x0d 0a ) |
Identification Command – Ident Device Extended
This command closely resembles the "Ident Device" command but includes additional information about network settings and controller firmware.
Request |
DEVICEIDENTEXT?[CR] |
|
---|---|---|
Substring |
Data Type |
Description |
DEVICEIDENTEXT? |
Text string |
Command = Ident device extended |
[CR] |
ASCII sign |
End delimiter ( \r, 0x0d ) |
Response: |
SID:xxx[TAB]OAN:xxx[TAB]OVN:xxx[TAB]SAN:xxx[TAB]SVN:xxx[TAB]LOC:xxx[TAB]MKC:xxx[TAB]SNR:xxx[TAB]ASK:xxx[TAB]IPA:xxx[TAB]SNM:xxx[TAB]GWA:xxx[TAB]MAA:xxx[TAB]EXTSID:xxx[TAB]EXTAPPVER:xxx[TAB]EXTETHSTATIPA:xxx[TAB]EXTRS232PPPSTATIPA:xxx[TAB] EXTRS485PPPSTATIPA:xxx[CR][LF] |
|
Substring |
Data Type |
Description |
SID:xxx |
Text string |
Structure ID – to identify data structure |
SID = 1 |
||
[TAB] |
ASCII sign |
Separator ( \t, 0x09 ) |
OAN:xxx |
Text string |
Original Application Name |
[TAB] |
ASCII sign |
Separator |
OVN:xxx |
Text string |
Original Vendor name |
[TAB] |
ASCII sign |
Separator |
SAN:xxx |
Text string |
Set Application Name – which is actual in use |
[TAB] |
Text string |
Separator |
SVN:xxx |
Text string |
Set Vendor Name – which is actual in use |
[TAB] |
Text string |
Separator |
LOC:xxx |
Text string |
Location |
[TAB] |
Text string |
Separator |
MKC:xxx |
Text string |
Module Kind Code |
[TAB] |
Text string |
Separator |
SNR:xxx |
Text string |
Serial Number |
[TAB] |
Text string |
Separator |
ASK:xxx |
Text string |
Assignment Kind – use of DHCP (DYNAMIC/STATIC) |
[TAB] |
Text string |
Separator |
IPA:xxx |
Text string |
IP Address – which is actual in use |
[TAB] |
Text string |
Separator |
SNM:xxx |
Text string |
Sub Net Mask – which is actual in use |
[TAB] |
Text string |
Separator |
GWA:xxx |
Text string |
Gateway Address – which is actual in use |
[TAB] |
Text string |
Separator |
MAA:xxx |
Text string |
MAC Address – which is actual in use |
[TAB] |
Text string |
Separator |
EXTSID:xxx |
Text string |
Extended Structure ID - to identify extended data structure (actual EXTSID=0) |
[TAB] |
Text string |
Separator |
EXTAPPVER:xxx |
Text string |
Application version and release date |
[TAB] |
Text string |
Separator |
EXTETHSTATIPA:xxx |
Text string |
Static IP Address – if DHCP is nor bound |
[TAB] |
Text string |
Separator |
EXTRS232PPPSTATIPA:xxx |
Text string |
Static RS232 PPP IP Address |
[TAB] |
Text string |
Separator |
EXTRS485PPPSTATIPA:xxx |
Text string |
Static RS485 PPP IP Address |
[CR][LF] |
Text string |
End Delimiter ( \r\n,0x0d 0a ) |
SID = 2 |
||
[TAB] |
ASCII sign |
Separator ( \t, 0x09 ) |
OAN:xxx |
Text string |
Original Application Name |
[TAB] |
ASCII sign |
Separator |
OVN:xxx |
Text string |
Original Vendor name |
[TAB] |
ASCII sign |
Separator |
SAN:xxx |
Text string |
Set Application Name – which is actual in use |
[TAB] |
Text string |
Separator |
SVN:xxx |
Text string |
Set Vendor Name – which is actual in use |
[TAB] |
Text string |
Separator |
LOC:xxx |
Text string |
Location |
[TAB] |
Text string |
Separator |
MKC:xxx |
Text string |
Module Kind Code |
[TAB] |
Text string |
Separator |
MID:xxx |
Text string |
Module ID Number |
[TAB] |
Text string |
Separator |
SNR:xxx |
Text string |
Serial Number |
[TAB] |
Text string |
Separator |
ASK:xxx |
Text string |
Assignment Kind – use of DHCP (DYNAMIC/STATIC) |
[TAB] |
Text string |
Separator |
IPA:xxx |
Text string |
IP Address – which is actual in use |
[TAB] |
Text string |
Separator |
SNM:xxx |
Text string |
Sub Net Mask – which is actual in use |
[TAB] |
Text string |
Separator |
GWA:xxx |
Text string |
Gateway Address – which is actual in use |
[TAB] |
Text string |
Separator |
MAA:xxx |
Text string |
MAC Address – which is actual in use |
[TAB] |
Text string |
Separator |
EXTSID:xxx |
Text string |
Extended Structure ID - to identify extended data structure (actual EXTSID=0) |
[TAB] |
Text string |
Separator |
EXTAPPVER:xxx |
Text string |
Application version and release date |
[TAB] |
Text string |
Separator |
EXTETHSTATIPA:xxx |
Text string |
Static IP Address – if DHCP is nor bound |
[TAB] |
Text string |
Separator |
EXTRS232PPPSTATIPA:xxx |
Text string |
Static RS232 PPP IP Address |
[TAB] |
Text string |
Separator |
EXTRS485PPPSTATIPA:xxx |
Text string |
Static RS485 PPP IP Address |
[CR][LF] |
Text string |
End Delimiter ( \r\n,0x0d 0a ) |
Identification Command – Get live signal
This command serves the purpose of visually identifying a device. Upon sending the request to a controller, its RUN and ERR LEDs will alternately flash for approximately two seconds. Subsequently, a positive acknowledgment response will be received. This feature proves especially beneficial in networks with multiple controllers, aiding in associating the scanned IP address with the correct controller.
Request: |
GETLIFESIGNAL[TAB]xx:xx:xx:xx:xx:xx?[CR] |
|
---|---|---|
Substring |
Data Type |
Description |
GETLIFESIGNAL |
Text string |
Command = Get Life Signal |
[TAB] |
Text string |
Separator ( \t, 0x09 ) |
xx:xx:xx:xx:xx:xx |
Text string |
MAC Address of the remote device |
? |
Text string |
Request Info |
[CR] |
Text string |
End delimiter ( \r, 0x0d ) |
Response: |
MAA:xxx[TAB]ACK[CR][LF] |
|
Substring |
Data Type |
Description |
MAA:xxx |
Text string |
MAC Address of responding device |
[TAB] |
Text string |
Separator ( \t, 0x09 ) |
ACK |
Text string |
Positive acknowledgement |
[CR][LF] |
Text string |
End Delimiter ( \r\n,0x0d 0a ) |
Synchronization Command – Device Sync
This command is employed to reset the timestamp of one or multiple devices. By ensuring synchronized timestamps, data can be effectively synchronized even when data acquisition is not simultaneous.
Request: |
DEVICESYNC([TAB]xx:xx:xx:xx:xx:xx)[CR] |
||
---|---|---|---|
Substring |
Data Type |
Description |
|
DEVICESYNC |
Text string |
Command = Device Synchronisation |
|
[TAB] |
Text string |
Separator ( \t, 0x09 ) |
Optional: only this device is accessed |
xx:xx:xx:xx:xx:xx |
Text string |
MAC Address of the remote device |
|
[CR] |
Text string |
End delimiter ( \r, 0x0d ) |
|
Response: |
MAA:xxx[TAB]ACK[CR][LF] |
||
Substring |
Data Type |
Description |
|
MAA:xxx |
Text string |
MAC Address of responding device |
|
[TAB] |
Text string |
Separator ( \t, 0x09 ) |
|
ACK |
Text string |
Positive acknowledgement |
|
[CR][LF] |
Text string |
End Delimiter ( \r\n,0x0d 0a ) |
Buffer Command – Arm Buffer
This command is utilized to activate the initial circular buffer of the controller. Upon activation, the controller commences the process of populating data into buffer 0. Please note that this command is only accessible when at least one buffer mode of a device is configured as other than TriggerModeOff.
Request: |
ARMBUFFER([TAB]xx:xx:xx:xx:xx:xx)[CR] |
||
---|---|---|---|
Substring |
Data Type |
Description |
|
ARMBUFFER |
Text string |
Command = Buffer arming |
|
[TAB] |
Text string |
Separator ( \t, 0x09 ) |
Optional: only this device is accessed |
xx:xx:xx:xx:xx:xx |
Text string |
MAC Address of the remote device |
|
[CR] |
Text string |
End delimiter ( \r, 0x0d ) |
|
Response: |
MAA:xxx[TAB]ACK[CR][LF] |
||
Substring |
Data Type |
Description |
|
MAA:xxx |
Text string |
MAC Address of responding device |
|
[TAB] |
Text string |
Separator ( \t, 0x09 ) |
|
ACK |
Text string |
Positive acknowledgement |
|
[CR][LF] |
Text string |
End Delimiter ( \r\n,0x0d 0a ) |
Buffer Command – Trigger Buffer
This command is used to trigger the first circle buffer of the controller. After triggering, the controller keeps the saved data in the buffer and will not overrun.
It is only available, when at least one buffer mode of a device is set to <> TriggerModeOff.
Request: | TRIGGERBUFFER([TAB]xx:xx:xx:xx:xx:xx)[CR] | ||
---|---|---|---|
Substring | Data Type | Description | |
TRIGGERBUFFER | Text string | Command = Buffer triggering | |
[TAB] | Text string | Separator ( \t, 0x09 ) | Optional: only this device is accessed |
xx:xx:xx:xx:xx:xx | Text string | MAC Address of the remote device | |
[CR] | Text string | End delimiter ( \r, 0x0d ) | |
Response: | MAA:xxx[TAB]ACK[CR][LF] | ||
Substring | Data Type | Description | |
MAA:xxx | Text string | MAC Address of responding device | |
[TAB] | Text string | Separator ( \t, 0x09 ) | |
ACK | Text string | Positive acknowledgement | |
[CR][LF] | Text string | End Delimiter ( \r\n,0x0d 0a ) |
Distributor Port Configuration Command - SetDistributorPortProperties
This command is used to configure the distributor port which enables unlinked UDP data transmissions. Thus Distributor Port cannot be configured via .config files; this command has to be used to set communication parameters. For details according Distributor Port look to chapter "Distributor Port UDP".
Configuring distributor port properties is permissible only when TransferON/RetriggerON="0". The sole option for retriggering communication (TransferON/RetriggerON=1) or terminating communication (TransferON/RetriggerON=0) is TransferON/RetriggerON.
Request: |
SETDISTRIBUTORPORTPROPERTIES[TAB]xx:xx:xx:xx:xx:xx [TAB]Identifier[TAB]Data[CR] |
||
---|---|---|---|
Substring |
Data Type |
Description |
|
SETDISTRIBUTOR PORTPROPERTIES |
Text string |
Command = Set Distributor port properties |
|
[TAB] |
Text string |
Separator ( \t, 0x09 ) |
|
xx:xx:xx:xx:xx:xx |
Text string |
MAC Address of the remote device |
|
[TAB] |
Text string |
Separator |
|
Identifier |
Text string |
Configuration identifier: This identifier selects the property kind to be set. |
|
Identifier |
Description |
||
0 |
TransferDataTheme Sets the type of data to be transferred |
||
1 |
OffsetRecvFrom Sets the byte offset for data to be received |
||
2 |
LengthRecvFrom Sets the number of bytes to be received |
||
3 |
OffsetSendTo Sets the byte offset for data to be sent |
||
4 |
LengthSendTo Sets the number of bytes to be sent. |
||
5 |
FrequencySendToHz Sets the cycle frequency for sending data |
||
6 |
RetriggerTimeS Defines the time until the port is closed when no Retrigger is being received. |
||
7 |
IPAddressSendTo Sets the IP Address where data should be sent to |
||
8 |
IPPortSendTo Sets the UDP Port on which data should be sent |
||
9 |
IPPortRecvFrom Sets the UDP Port from which data should be sent |
||
10 |
UseTransferCounters Defines if TransferCounters should be used |
||
11 |
SetAllUsedOutputVariablesToDefault Sets used output values to default |
||
12 |
SetAllPropertiesToDefault Sets distributorport properties to default |
||
13 |
SendCollectorCount |
||
1000 |
TransferON/RetriggerON Start, stop or retrigger Distributor Port data transmission |
||
x |
RequestSettings (x=identifier) Setting “Data” to -1 requests the Property Settings of any identifier |
||
[TAB] |
Text string |
Separator |
|
Data |
Text string |
If configuration identifier is: |
Data according configuration theme: |
0 |
0 for Variables (Receive/Send) 1 for States (Send) 2 for RTC (Receive/Send) 3 not used 4 for Diagnostics (Send) Default = 0 (Q.station only supports 0) |
||
1 |
byte start offset for data to be received Default byte start offset = 0 This is the binary offset of output data, where the received data have to be written to. |
||
2 |
Number of received bytes to be read Default = max. possible This is the number of bytes to be read. This bytes will be written to the output bytes starting at byte start offset. |
||
3 |
byte start offset for data to be sent Default = 0 This is the offset of the first byte of data to be sent. |
||
4 |
number of bytes to be sent Default = 0 |
||
5 |
frequency for data to be sent in Hz Default = 100 The Range is from 1000 Hz to 1 Hz If “0”: = 250 Hz |
||
6 |
Time within connection has to be retriggered in seconds Default = 100 If Data < = 0.0: retriggering is shut off Range: 50e-3 s up to 1e9 s ATTENTION: Needs to be at least 5/“FrequencySendToHz”! |
||
7 |
IP address to send to Default: Network address |
||
8 |
IP port to send to Default: 5567 Not allowed: < 1024 > 65535 5565 8000 8001 “IP port receive from” |
||
9 |
IP port receive from Default: 5566 Not allowed: < 1024 > 65535 5565 8000 8001 “IP port send to” |
||
10 |
Default: 1 1 for active TransferCounters at the beginning of the data frame. 0 for inactive TransferCounter → only Channel values will be transmitted. |
||
11 |
0 → OFF > 0 → ON |
||
12 |
0 → OFF > 0 → ON |
||
1000 |
Default: 0 0 for TransferOFF 1 for TransferON or RetriggerON |
||
x |
-1 for responding set data of each identifier (identifier)x = any |
||
[CR] |
Text string |
End delimiter ( \r, 0x0d ) |
|
Response: |
MAA:xxx[TAB]ACK[CR][LF] |
||
Substring |
Data Type |
Description |
|
INFO:ddd |
Text String |
Requested data according identifier |
Only if identifier setting is requested by setting “Data” to ”-1” |
[TAB] |
Text string |
Separator ( \t, 0x09 ) |
|
MAA:xxx |
Text string |
MAC Address of responding device |
|
[TAB] |
Text string |
Separator |
|
ACK |
Text string |
Positive acknowledgement |
|
[CR][LF] |
Text string |
End Delimiter ( \r\n,0x0d 0a ) |
Distributor Port Configuration Command - SetDistributorPortPropertiesAll
This command is employed to configure DistributorPortProperties for multiple controllers simultaneously. Both the request and response closely resemble those of "SetDistributorPortProperties," with the only distinction being the unique request command that excludes the MAC address.
Request: |
SETDISTRIBUTORPORTPROPERTIESALL[TAB]Identifier[TAB]Data[CR] |
---|