High Speed Ethernet Server (HSES) Protocol Packet Header for Robot Control Operations.
The sending/receiving flow of HSES works in a basic request/response format. The request packet is sent to the robot and the robot responds with a response packet.
Request packet header
+----------------------+---------+-------------------------------------------------------------------------------+-----------------------------------------------+
| Field | Size | Description | Hardcoded value (if applicable) |
+----------------------+---------+-------------------------------------------------------------------------------+-----------------------------------------------+
| Identifier | 4 Bytes | The identifier is always ASCII "YERC." | 0x59 0x45 0x52 0x43 |
| Header Length | 2 Bytes | The length of the header. | 0x0020 |
| Data Length | 2 Bytes | The length of the data payload. | N/A |
| Reserve 1 | 1 Byte | Fixed to “3.” | 0x03 |
| Processing division | 1 Byte | Specifies if this packet is a Robot control command or a file command. | 0x01 for robot control, 0x02 for file control |
| ACK | 1 Byte | Specifies if this is an initial request or a reply. | 0x0 for initial request, 0x011 for reply |
| Request ID | 1 Byte | Sequential identifying id of the packet.* | N/A |
| Block Number | 4 Bytes | Specifies the number of the packet in a block of communication. | 0x0 |
| Reserve 2 | 8 Bytes | Fixed to “99999999.” | 0x39 0x39 0x39 0x39 0x39 0x39 0x39 0x39 |
+----------------------+---------+-------------------------------------------------------------------------------+-----------------------------------------------+
* Increment this ID every time the client side outputs a new command. In reply to this, server side answers the received
value. Max value is 0xFF. If the value exceeds 0xFF, reset the value to 0x00.
Request packet subheader
The subheader is used to specify the command to be executed. It also includes additional specifiers that are contextual for the command. These are called instances, attributes, and services. The subheader is formatted as follows:
+-----------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Size | Description |
+-----------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Command Number | 2 Byte | This cooresponds to the requested command. See table Command Numbers |
| Instance | 2 Byte | Different for each command. Usually refers to an object such as a control group, variable number, IO address etc. |
| Attribute | 1 Byte | Different for each command. Refers to a attribute of the instance that is specified. For example, if a position variable is requested, this would be where you would specify which axis data would be retrieved. |
| Service | 1 Byte | This specifies a get/set operation. Also allows the specification of single attribute get/set or all attribute get/set. |
+-----------------+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Response packet subheader
The packet subheader received from the controller.
+--------------------+----------+-------------------------------------------------------------------------------------------------------+
| Field | Size | Description |
+--------------------+----------+-------------------------------------------------------------------------------------------------------+
| Service (answer) | 1 Byte | Add 0x80 to service (request). |
| Status | 1 Byte | 0x00: normal reply, 0x1f: abnormal reply with added status else abnormal reply with no added status. |
| Added status size | 1 Byte | Size of added status. 0: none, 1: 1 word, 2: 2 words. |
| Padding | 1 Byte | N/A |
| Added status | 1 Byte | Error code specified by added status size |
| Padding | 1 Byte | N/A |
+--------------------+----------+-------------------------------------------------------------------------------------------------------+
Command Numbers
+----------------+-------------------------------------------------------------------------------+
| Command Number | Name |
+----------------+-------------------------------------------------------------------------------+
| 0x70 | Alarm data reading command. |
| 0x71 | Alarm history reading command. |
| 0x72 | Status information reading command. |
| 0x73 | Executing job information reading command. |
| 0x74 | Axis configuration information reading command. |
| 0x75 | Robot position data reading command. |
| 0x76 | Position error reading command. |
| 0x77 | Torque data reading command. |
| 0x78 | I/O data reading / writing command. |
| 0x79 | Register data reading / writing command . |
| 0x7A | Byte type variable (B) reading / writing command . |
| 0x7B | Integer type variable (I) reading / writing command . |
| 0x7C | Double precision integer type variable (D) reading / writing command . |
| 0x7D | Real type variable (R) reading / writing command . |
| 0x7E | 16-byte character type variable (S) reading / writing command. |
| 0x7F | Robot position type variable (P) reading / writing command. |
| 0x80 | Base position type variable (BP) reading / writing command. |
| 0x81 | Station type variable (EX) reading / writing command. |
| 0x82 | Alarm reset / error cancel command. |
| 0x83 | HOLD / servo ON/OFF command. |
| 0x84 | Step / cycle / Auto switching command. |
| 0x85 | Character string display command. |
| 0x86 | Start-up (job START) command. |
| 0x87 | Job select command. |
| 0x88 | Management time acquiring command. |
| 0x89 | System information acquiring command. |
| 0x300 | Plural I/O data reading / writing command. |
| 0x301 | Plural register data reading / writing command. |
| 0x302 | Plural byte type variable (B) reading / writing command. |
| 0x303 | Plural integer type variable (I) reading / writing command. |
| 0x304 | Plural double precision integer type variable (D) reading / writing command. |
| 0x305 | Plural real type variable (R) reading / writing command. |
| 0x306 | Plural 16byte character type variable (S) reading / writing command. |
| 0x307 | Plural robot position type variable (P) reading / writing command. |
| 0x308 | Plural base position type variable (BP) reading / writing command. |
| 0x309 | Plural station type variable (EX) reading / writing command. |
| 0x30A | Alarm data reading command (for applying the sub code character strings.) |
| 0x30B | Alarm history reading command (for applying the sub character strings.) |
| 0x8A | Move instruction command (Type Cartesian coordinates.) |
| 0x8B | Move instruction command (Type Pulse.) |
| 0x8C | 32-byte character type variable (S) reading / writing command. |
| 0x30C | Plural 32-byte character type variable (S) reading / writing command. |
+----------------+-------------------------------------------------------------------------------+
Comments
0 comments
Please sign in to leave a comment.