


| Name | Value | Description |
| DAdr | 100h | General address |
| DAdr | 101h .. 164h | Destination node address |
| uL_Beg | 175h | Begin of unaddressed frame |
| uL_END | 17Ch | End of frame |
| uL_ARQ | 17Ah | End with acknowledge request |
| uL_PRQ | 179h | End with proceed request |
| uL_AAP | 176h | End with acknowledge and proceed request |
| uL_ERR | 17Fh | Error without release of bus |
| LAdr | 181h .. 1E4 | Release of bus by node |
| uL_ERR | 1FFh | Error, abort and release bus |
| Name | Value | Description |
| uL_ACK | 019h | Acknowledge of frame |
| uL_NACK | 07Fh | Negative acknowledge |
| uL_WAK | 025h | Receiver can probably receive message later, but cannot now |
| Command Range | Type of Message Processing |
| 00h .. 3Fh | Store to buffer |
| 40h .. 7Fh | Store to buffer without uL_ACK |
| 80h .. 9Fh | Immediate process |
| A0h .. BFh | Process with additional receive |
| C0h .. FFh | Process with additional send |
| Name | Value | Description |
| UL_CMD_RES | 80h | Reinitialize RS485 |
| UL_CMD_SFT | 81h | Test free space in input buffer |
| UL_CMD_SID | F0h | Send identification |
| UL_CMD_SFI | F1h | Send amount of free space in input queue |
| UL_CMD_TF0 | 98h | End of stepping |
| UL_CMD_TF1 | 99h | Begin of stepping |
| UL_CMD_STP | 9Ah | Do step |
| UL_CMD_DEB | 9Bh | Additional debug commands |
| UL_CMD_SPC | DAh | Send state |
| UL_CMD_RDM | F8h | Memory read |
| UL_CMD_WRM | B8h | Memory write |
| UL_CMD_OI | 10h | Standard value for uLan OI |
| UL_CMD_OIr | 11h | Standard type for uLan OI reply |
| UL_CMD_NCS | 7Fh | Network control service |
| UL_CMD_SNST | C1h | Fast status and connection check |











| Name of equipment | Platform | |
| .UL_DRV(x) | Windows | |
| /dev/ulan(x) | Linux | |
| NULL | system-less or default driver instance |
| Name | Description |
| UL_BFL_LOCK | locked message is pointed only once |
| UL_BFL_MSST | Message must be received by some proces |
| UL_BFL_M2IN | After successful processing inform sending client |
| UL_BFL_LNMM | Length of received frame must match expected len |
| UL_BFL_FAIL | Message cannot be processed - error status |
| UL_BFL_TAIL | Multiframe message continues by next bll block |
| UL_BFL_SND | Send this frame |
| UL_BFL_REC | Receive answer frame into this bll block |
| UL_BFL_VERL | Verify free space in buffer of destination station |
| UL_BFL_NORE | Do not try to repeat if error occurs |
| UL_BFL_REWA | If error occurs do wait with retry |
| UL_BFL_PRQ | Request immediate processing of frame by receiving station |
| UL_BFL_ARQ | Request immediate acknowledge by receiving station |
| Name | Argument | Ptr data dir | Description |
| UL_DRV_VER | Returns driver version | ||
| UL_NEWMSG | ul_msginfo *ptr | W | Prepare new outgoing message |
| UL_TAILMSG | ul_msginfo *ptr | W | Add next frame to message |
| UL_FREEMSG | Free (send) prepared or received message | ||
| UL_ACCEPTMSG | ul_msginfo *ptr | R | Accept message from receive queue |
| UL_ACTAILMSG | ul_msginfo *ptr | R | Accept next frame of multiframe message |
| UL_ADDFILT | ul_msginfo *ptr | W | Add specification for receiving of messages |
| UL_ABORTMSG | Abort preparation of message | ||
| UL_REWMSG | Return to beginning of first frame of message | ||
| UL_STROKE | Restart processing loop of driver | ||
| UL_DEBFLG | debug mask | Set kernel driver debug level | |
| UL_HWTEST | subcommand | RS-485 buffer hardware checking |
| Subcommand | Format after first byte | Description |
| ULNCS_RQ_ADDR | SN0 SN1 SN2 SN3 | Request for new address |
| ULNCS_SET_ADDR | SN0 .. SN3 NEW_ADR | Set new module address |
| ULNCS_SID_RQ | Request identification reply | |
| ULNCS_SID_RPLY | SN0 .. SN3 SID_string | Reply with SN and identification |
| ULNCS_ADDR_NVSV | SN0 SN1 SN2 SN3 | Permanent address change |
| bcmd | sn | bsn |
| 1 byte | 1 byte | 1 byte |
| where | value is request | value in reply |
| frame Cmd | cmd | bcmd |
| data[0] | bcmd | bcmd |
| data[1] | sn | bsn |
| data[2] | bsn | sn |
| OID number | OI_data |
| 2 bytes LE | data bytes or meta specification (0...n) |
| Name | OID | hex | Parameters | Description |
| ULOI_AOID | 10 | 0x0A | <string> | substitutes numeric OID by ASCII name for I_DOII and I_DOIO |
| ULOI_DOII | 12 | 0x0C | <oid> | query description for writable/in <oid> returned ULOI_DOIIr |
| ULOI_DOIIr | 13 | 0x0D | <oid> <oiddesc> | description of writable/in <oid> |
| ULOI_DOIO | 14 | 0x0E | <oid> | query description for readable/out <oid> returned ULOI_DOIOr |
| ULOI_DOIOr | 15 | 0x0F | <oid> <oiddesc> | description of readable/out object <oid> |
| ULOI_QOII | 16 | 0x10 | <oidfrom> <maxret> | query up-to <maxret> writable/input OIDs list starting from <oidfrom> or 0 for first |
| ULOI_QOIIr | 17 | 0x11 | <oid0>... <oidn><0> | list of writable/in OIDs ended by 0 |
| ULOI_QOIO | 18 | 0x12 | <oidfrom> <maxret> | query up-to <maxret> readable/out OIDs list starting from <oidfrom> or 0 for first |
| ULOI_QOIOr | 19 | 0x13 | <oid0>... <oidn><0> | list of readable/out OIDs ended by 0 |
| ULOI_RDRQ | 20 | 0x14 | <oid0>... <oidn><0> | object values read request, sequence of (OID[,meta]) groups, activates reply ULOI_RDRQr |
| ULOI_RDRQr | 21 | 0x15 | <oid0><...> ... <oidn><...><0> | reply sequence of (OID,[meta,]value) groups |
| ULOI_SNCHK | 29 | 0x1D | <SN0 .. SN3> | check module serial number |
| I_STATUS | 30 | 0x1E | standard OID for 16 bit status read (0 not active, positive busy, negative error) | |
| I_ERRCLR | 31 | 0x1F | standard OID for clear error status | |
| ULOI_AOID | OID by name |
| 0x0A 0x00 | vs (visible string) |
| OID_number |
| 0xdc 00 |
| ULOI_AOID | name size | name |
| 0x0A 0x00 | 0x04 | 0x54 0x45 0x4D 0x50 |
| ULOI_DOII/ULOI_DOIO | OID_number |
| 0xC/0xE 0x0 | 2 bytes LE |
| ULOI_DOIIr/ULOI_DOIOr | OID number | text descriptors (name, type) |
| 0xD/0xF 0x0 | 2 bytes LE | 2 level nested length byte, data block structure |
| total descriptors len | ND_size | ND_text | TD_size | TD_text |
| 1byte | 1byte | ND_size bytes | 1byte | TD_size bytes |
| ULOI_DOII | OID_number |
| 0xC 0x0 | 0x1F 0x00 |
| ULOI_DOIIr | OID_number | tot. len | ND_size | ND_text | TD_size | TD_text |
| 0xD 0x0 | 0x1F 0x00 | 0x9 | 0x6 | 0x45 0x52 0x52 0x43 0x4C 0x52 | 0x1 | 0x65 |
| ULOI_QOII/ULOI_QOIO | start OID_number or 0 | max reply count |
| 0x10/0x12 0x0 | 2 bytes LE | 2 bytes LE |
| ULOI_QOIIr/ULOI_QOIOr | n x OID_number | termination |
| 0x11/0x13 0x0 | n x 2 bytes LE | 0x00 0x00 |
| ULOI_QOII | start OID_number or 0 | max reply count |
| 0x10 0x0 | 0x00 0x00 | 0x40 0x00 |
| ULOI_QOIIr | OID | OID | OID | OID | OID | OID | termination |
| 0x11 0x0 | 0xC 0x0 | 0xE 0x0 | 0x10 0x0 | 0x12 0x0 | 0x14 0x0 | 0x1F 0x0 | 0x00 0x00 |
| ULOI_RDRQ | OID_number |
| 0x14 0x00 | 0xE6 0x00 |
| ULOI_RDRQr | OID_number | u2 data read from object |
| 0x15 0x00 | 0xE6 0x00 | 0x63 0x00 |
| OID_number | u2 data to write into object |
| 0xE6 0x00 | 0x64 0x00 |
| OID_number | u1 data to write | ULOI_RDRQ | OID_number |
| 0xE7 0x00 | 0x10 | 0x14 0x00 | 0xE7 0x00 |
| ULOI_RDRQr | OID_number | u1 data read from object |
| 0x15 0x00 | 0xE7 0x00 | 0x10 |
| code | description | encoded |
| s1, s2, s4 | signed integer | little-endian bytes sequence of corresponding length |
| u1, u2, u4 | unsigned integer | little-endian bytes sequence of corresponding length |
| f4, f8 | floating point number | according to IEEE-754, little-endian, 4-bytes/8-bytes |
| f2 | half float (float16) | |
| vs, vsXX | visible string in utf-8 | the first byte specifies length of the string in bytes (0-127) encoded in following bytes |
| length | text |
| 1 byte (0..127) | length byte(s) |
| 0x04 | 0x41 | 0x42 | 0x43 | 0x44 |
| bit 7 | bit 6 | description |
| 0 | 0 | indexed single data item |
| 1 | 0 | indexed range of items |
| 1 | 1 | array command |
| index |
| 2 bytes LE (0...16363) |
| index 1 |
| 0x01 0x00 |
| index 1 | u4 data for index 1 |
| 0x01 0x00 | 0x11 0x00 0x00 0x00 |
| count | index |
| 2 bytes LE (0...16363) - 0x8000 | 2 bytes LE |
| count | index |
| 0x02 0x80 | 0x01 0x00 |
| count | index | u1 data for index 1 | u1 data for index 2 |
| 0x02 0x80 | 0x01 0x00 | 0x12 | 0x06 |
| Res Lo | Res Hi | Ext len (el) | Ext | CID | data len (dl) | data | CID ... |
| 1 byte | 1 byte | 1 byte | 0..el bytes | 2 bytes LE | 1 (2) byte | dl bytes |
| Name | OID | hex | Parameters | Description |
| ULOI_PICO | 40 | 0x28 | array "[]{u2,u2,u2,u2}" | PDO input CID/OID mapping |
| ULOI_POCO | 41 | 0x29 | array "[]{u2,u2,u2,u2}" | PDO output CID/OID mapping |
| ULOI_PIOM | 42 | 0x2A | byte array "[]u1" | PDO input/output mapping meta data |
| ULOI_PEV2C | 43 | 0x2B | array "[]{u2,u2,u2,u2}" | PDO event to CID mapping |
| ULOI_PDC2EV | 44 | 0x2C | array not specified yet | PDO data change event mapping |
| ULOI_PMAP _CLEAR | 45 | 0x2D | command "e" | PDO input/output/meta/event mapping clear |
| ULOI_PMAP _SAVE | 46 | 0x2E | command "e" | PDO input/output/meta/event mapping save |
| Field | Type | Description |
| CID | u2 | connection identification |
| Flg | u2 | flags specifying mapping type |
| Meta/OID | u2 | byte offset into ULOI_PIOM data or direct OID specification |
| Meta len | u2 | length of meta data or 2 for direct OID specification |
| Symbol | Mask | POCO | PICO | Description |
| ULOI_CIDFLG_META_LOC | 0x0F | y | y | Interpretation of Meta/OID field |
| ULOI_CIDFLG_META_OID | 0x00 | y | y | OID specified directly |
| ULOI_CIDFLG_META_OFFS | 0x01 | y | y | ULOI_PIOM offset specified |
| ULOI_CIDFLG_META_EM3B | 0x03 | y | y | Embedded 3 bytes in Meta and Meta len |
| ULOI_CIDFLG_META_EM4B | 0x04 | y | y | Embedded 4 bytes in Meta and Meta len |
| ULOI_CIDFLG_FIXED | 0x10 | y | Supply received data by meta | |
| ULOI_CIDFLG_IMMED | 0x20 | y | Send directly meta-data, no processing | |
| ULOI_CIDFLG_SKIP_LOCAL | 0x40 | y | Do not process locally | |
| ULOI_CIDFLG_SKIP_SEND | 0x80 | y | Do not send data |
| Field | Type | Description |
| Evnum | u2 | event number triggering transmission |
| CID | u2 | CID to be send |
| DAdr | u2 | destination uLan address, 0 broadcast |
| Flg | u2 | flags influencing processing |
| Flag | Mask | Description |
| ULOI_PEV2CFLG_ARQ | 0x01 | request acknowledge by recipient |
| ULOI_PEV2CFLG_LOCAL | 0x02 | use queue for local only processing |