Broadcast Port ASCII/UDP

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]

Every controller will respond as described in chapter “SetDirstributorPortProperties”.