UMAS (Schneider Electric PLCs)
This protocol is used by Schneider Electric PLCs such as the M340, M580 and the Quantum PLCs with the Unity firmware.
This driver supports reading, writing and browsing of PLC tags.
The Data Dictionary needs to be enabled on the PLC.
| The driver is available in Java and in Plc4Py. The tag address syntax differs slightly between the two; where that is the case it is called out below. |
Connection String Options
|
Array selection uses the shared notation - a single index, an inclusive range, and optionally the array’s declared lower bound, placed before the type. See Addressing arrays. |
Name |
Type |
Default Value |
Required |
Description |
Name |
UMAS (Schneider Electric) |
|||
Code |
|
|||
Maven Dependency |
<dependency> <groupId>org.apache.plc4x</groupId> <artifactId>plc4j-driver-umas</artifactId> <version>1.0.0</version> </dependency> |
|||
Default Transport |
|
|||
Supported Transports |
|
|||
Config options: |
||||
|
INT |
0 |
Modbus unit identifier (slave address). UMAS typically uses 0. |
|
|
INT |
4000 |
Timeout in milliseconds for UMAS requests. |
|
|
INT |
65535 |
Maximum UMAS frame size. The PLC reports its actual limit during InitComms. |
|
|
BOOLEAN |
true |
Tells the browser to generate artificial child nodes representing individual array elements. |
|
Transport config options: |
||||
tcp |
||||
|
INT |
5000 |
||
|
INT |
0 |
||
|
INT |
0 |
||
|
BOOLEAN |
true |
||
|
BOOLEAN |
false |
||
|
INT |
81920 |
||
|
INT |
81920 |
||
|
STRING |
|||
|
INT |
0 |
||
Individual Resource Address Format
Connection String
UMAS has the following connection string format:-
umas:{transport}://{ip-address}:{port}?{options}
An example connection string would look like:-
umas:tcp://127.0.0.1:502
Note the transport, port and option fields are optional.
General Format
UMAS addresses are the symbolic names declared in the PLC program, following the usual IEC 61131-3 conventions:
{tag-name}
{tag-name}[{index}]
{tag-name}.{child-name}
{tag-name}.{child-name}[{index}].{child-name}
Depending on the type of tag the child-name parameters are optional.
e.g. A tag with a BOOL data type could be TESTING_BOOL_1, whereas if it is a UDT the tag name is
followed by the child TESTING_UDT_1.START, which in itself could be a BOOL.
An index in square brackets selects a single element and may appear at any position of the path.
| Address | Meaning |
|---|---|
|
a simple global variable |
|
a nested struct member |
|
the fourth element of an array |
|
mixed struct and array access |
The Java driver takes the data type from the PLC’s data dictionary, so an address carries
no :{data-type} suffix - appending one makes the address invalid.
|
Memory Areas
Apart from tags defined in the PLC, Plc4Py is also able to access the %S and %SW system memory areas.
The specific address details of the data in these areas are outlined in the devices manual.
An example of the address format of these areas is %SW1 or %S20.
These system memory addresses are supported by Plc4Py only. The Java driver’s address parser
accepts symbolic names only and rejects addresses starting with %.
|