At a Glance
The UNI-TE protocol is used to:
identify and diagnose all the devices that have a UNI-TE server
provide a set of services giving read/write access to type data
download data from device to device
protect a server against concurrent connections during a critical period
These different services can be obtained using the SEND_REQ
function, with coding of the UNI-TE request to
be sent.
The following tables provide a non-exhaustive list of the requests recognized by Premium devices.
General Usage Requests
These requests are used to identify and diagnose all the types of devices that have a UNI-TE server.
Request Name |
Request Code |
Report Code |
Comment |
---|---|---|---|
|
16#0F |
16#3F |
Provides the following information:
|
|
16#4F |
16#7F |
Performs system diagnostics on any device. |
|
16#30 |
16#60 |
Used to adapt the version of the protocol between two communicating entities. |
|
16#FA |
16#FB |
Tests the correct routing of data between two communicating devices. |
Dynamic Modification of IP Parameters
Change IP Parameters
Request Name |
Request Code |
Comment |
---|---|---|
|
16#37 |
request code function |
|
16#13 |
changes IP parameter subfunction |
To ensure that the ETY module is ready for operation, allow
the PLC to run (in run mode) for 15 seconds after the last stop mode
before issuing the SEND_REQ function. After
the user issues the CHANGE IP PARAMETERS
command
and the ETY module accepts the new parameters, the ETY module resets
and begins operations with the new parameters.
Parameter Usage for IP Address Change
This table is based on a sample IP address of 139.158.10.7, subnet mask 255.255.248.0, and gateway address of 139.158.8.1.
Parameter |
Type |
Value |
Comment |
---|---|---|---|
|
array [0...5] of INT |
ADDR (‘rack.slot.channel.SYS’) |
Example: ADDR (0.x.0.SYS’) x = slot in which ETY module is installed |
|
INT |
16#37 |
|
|
array [0...8] of INT |
byte 1: subfunction (13h) |
high byte |
byte 2: subfunction (96h) |
low byte |
||
byte 3: 0 |
Value is ignored. |
||
byte 4: 0 |
Value is ignored. |
||
byte 5: IP address 2 (158) |
1-239 (high byte) |
||
byte 6: IP address 1 (139) |
0-255 (low byte) |
||
byte 7: IP address 4 (7) |
0-255 (high byte) |
||
byte 8: IP address 3 (10) |
0-255 (low byte) |
||
byte 9: subnet mask 2 (255) |
255 |
||
byte 10: subnet mask 1 (255) |
0-255 |
||
byte 11: subnet mask 4 (0) |
0-255 |
||
byte 12: subnet mask 3 (248) |
0-255 |
||
byte 13: gateway 2 (158) |
1-239 (Gateway address must be on the same subnet as the IP address.) |
||
byte 14:gateway 1 (139) |
0-255 |
||
byte 15:gateway 4 (1) |
0-255 |
||
byte 16:gateway 3 (8) |
0-255 |
||
|
word number |
high byte |
low byte |
1 |
activity report |
00 |
|
2 |
operation report (see note) |
communication report (see note) |
|
3 |
timeout (ms) |
||
4 |
length: 18 (INT) |
||
NOTE: The following
table gives details for IP address codes (successful and error).
|
Refer to the example for Changing IP Parameters with SEND_REQ.
Change IP Address Codes
Operation Report |
Communication Report |
Meaning |
---|---|---|
successful code |
||
FE (hex) |
00 (hex) |
(SEND_REQ) successfully changed IP address |
error codes |
||
01 (hex) |
FF (hex) |
invalid request code value (e.g., not 16#37) |
00 (hex) |
03 (hex) |
SEND_REQ to ETY IP address instead of across backplane |
00 (hex) |
07 (hex) |
bad address mapping to the ETY |
16 (hex) |
FF (hex) |
invalid IP address |
17 (hex) |
FF (hex) |
invalid subnet |
18 (hex) |
FF (hex) |
invalid gateway address |
19 (hex) |
FF (hex) |
invalid network address |
1A (hex) |
FF (hex) |
ETY’s IP address was already set to SEND_REQ) |
FD (hex) |
00 (hex) |
(SEND_REQ) did not successfully changed IP address |
Parameter Usage for Reset Module Command
A Reset Module operation causes Premium ETY and ETY PORT communication modules to enter a cycle to reset its working environment. To program a SEND_REQ function block to perform a Reset Module command, use function code 37, subfunction code 10.
Parameter |
Type |
Value |
Comment |
---|---|---|---|
|
array [0...5] of INT |
ADDR (‘rack.slot.channel.SYS’) |
Example: ADDR (0.x.0.SYS’) x = slot in which ETY module is installed |
|
INT |
16#37 |
|
|
array [0...1] of INT |
byte 1: subfunction (10h) |
high byte |
byte 2: subfunction (96h) |
low byte |
||
bytes 3, 4: 0 |
reserved |
||
|
word number |
high byte |
low byte |
1 |
activity report |
00 |
|
2 |
operation report (see note) |
communication report (see note) |
|
3 |
timeout (ms) |
||
4 |
length: 4 (INT) (in this example) |
||
NOTE: The following
table gives details for Reset Module codes (successful and error).
|
Reset Module Command Codes
Operation Report |
Communication Report |
Meaning |
---|---|---|
successful code |
||
FE (hex) |
00 (hex) |
SEND_REQ successfully reset module |
error codes |
||
01 (hex) |
FF (hex) |
invalid request code value (e.g., not 16#37) |
00 (hex) |
07 (hex) |
bad address mapping to the ETY |
FD (hex) |
00 (hex) |
SEND_REQ did not reset module |
Accessing Objects
These requests provide a set of services that give read/write access to internal bit and word-type data, system bit and word-type data, floating point data, constant data and SFC data.
Request Name |
Request Code |
Report Code |
Comment |
---|---|---|---|
|
16#36 |
16#66 |
Used to read one or more consecutive objects of the same type. |
|
16#37 |
16#FE |
Used to write one or more consecutive objects of the same type. |
|
16#00 |
16#30 |
Used to read the value of an internal bit. |
|
16#10 |
16#FE |
Used to write the value of an internal bit. |
|
16#04 |
16#34 |
Used to read the value of an internal word. |
|
16#14 |
16#FE |
Used to write the value of an internal word. |
Management of Operating Modes
These requests provide a set of services that can be used to manage a processor's operating modes.
Request Name |
Request Code |
Report Code |
Comment |
---|---|---|---|
RUN |
16#24 |
16#FE |
Used to launch the execution of a processor's tasks. |
STOP |
16#25 |
16#FE |
Used to stop the execution of a processor's tasks. |
INIT |
16#33 |
16#63 |
Used to trigger a hot or cold re-start. |
Reservation Management
These requests provide a reservation mechanism that is used to protect a server against concurrent connections during a critical period.
Request Name |
Request Code |
Report Code |
Comment |
---|---|---|---|
RESERVE |
16#1D |
16#FE |
Enables a client to generally or partially reserve a server's functions. |
RELEASE |
16#1E |
16#FE |
Enables a client to free up the reserved server. |
I_AM_ALIVE |
16#2D |
16#FE |
Used to maintain the reservation. |
SEND_REQ
function with Request
Code 16#1D.If NOT Management_Table[0].0
then (*reservation 1D*)
Management_Table[2]:=4;
(* time out *)
SEND_REQ (ADR
:=ADDR('sys'),
CODE :=
16#001D,
EMIS := Emis_table,
GEST := Management_Table,
RECP => Receive_buffer);
END_IF;
With variables created in de the Data Editor as:
Management_Table: ARRAY [0..3] OF INT
Emis_table: ARRAY [0..0] OF INT
Receive_buffer: ARRAY [0..0] OF INT
Management_Table[2]
.