Magnetically Encoded SMSMB Servo - Memory Table¶
For SMSMB series servos, which use the standard MODBUS-RTU protocol. MODBUS holding registers are 16-bit and two-byte fields are transmitted with the high byte first; "Address (PLC)" is the corresponding MODBUS holding-register address (4xxxx).
1 Servo Communication Protocol¶
Servos use the standard MODBUS-RTU protocol. Factory serial defaults: baud rate 115200, 8 data bits, no parity, 1 stop bit; configurable baud rate range 9600~256 Kbps, default communication address (station number) 1.
For the full frame format and instruction set, see Bus Protocol.
2 Servo Memory Table Definition¶
2.1 Version Information¶
| Address (DEC) | Address (HEX) | Address (PLC) | Function | Bytes | Initial value | Access | Range | Unit | Description |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 0x0 | 40001 | Firmware version | 2 | – | R | |||
| 1 | 0x1 | 40002 | Servo version | 2 | – | R | |||
| 2 | 0x2 | 40003 | Firmware release date (year) | 2 | – | R | |||
| 3 | 0x3 | 40004 | Firmware release date (month) | 2 | – | R |
2.2 EPROM Configuration¶
| Address (DEC) | Address (HEX) | Address (PLC) | Function | Bytes | Initial value | Access | Range | Unit | Description |
|---|---|---|---|---|---|---|---|---|---|
| 10 | 0x0A | 40011 | ID | 2 | 1 | R/W | 1~247 | ID | Unique identifier on the bus; no duplicate ID may appear on the same bus; ID 0 (0x00) is the broadcast ID |
| 11 | 0x0B | 40012 | Baud rate | 2 | 2 | R/W | 0~9 | None | 0-9 correspond to baud rates: 256000(0), 128000(1), 115200(2), 57600(3), 56000(4), 38400(5), 19200(6), 14400(7), 9600(8), 4800(9) |
| 12 | 0x0C | 40013 | Return delay | 2 | 500 | R/W | 0~500 | 1us | 0 means the minimum return delay; the maximum settable return delay is 500us |
| 13 | 0x0D | 40014 | Minimum angle limit | 2 | 0 | R/W | 0~4095 | 0.0879° | Sets the lower limit of the travel range; the value must be smaller than the maximum angle limit; 0 in multi-turn absolute position control |
| 14 | 0x0E | 40015 | Maximum angle limit | 2 | 4095 | R/W | 0~4095 | 0.0879° | Sets the upper limit of the travel range; the value must be greater than the minimum angle limit; 0 in multi-turn absolute position control |
| 15 | 0x0F | 40016 | Position calibration | 2 | 0 | R/W | -2047~2047 | 0.0879° | Calibration expressed range: -2047~2047; write 4 to fault reset (134) to auto-compute the centre position (2048); the calibration value is then stored to this address |
| 16 | 0x10 | 40017 | Operating mode | 2 | 0 | R/W | 0~4 | None | 0: servo mode 1: constant-speed mode 2: reserved 3: special mode (torque is switched off automatically when the goal position is reached) 4: stepper mode |
| 17 | 0x11 | 40018 | Position closed-loop P coefficient | 2 | – | R/W | 0~254 | None | Controls the proportional coefficient of the motor |
| 18 | 0x12 | 40019 | Position closed-loop D coefficient | 2 | – | R/W | 0~254 | None | Controls the derivative coefficient of the motor |
| 19 | 0x13 | 40020 | Position closed-loop I coefficient | 2 | 0 | R/W | 0~254 | None | Controls the integral coefficient of the motor |
| 20 | 0x14 | 40021 | Velocity loop P coefficient | 2 | – | R/W | 0~254 | None | Speed-loop proportional coefficient in constant-speed motor mode (mode 1) |
| 21 | 0x15 | 40022 | Velocity loop I coefficient | 2 | – | R/W | 0~254 | None | Speed-loop integral coefficient in constant-speed motor mode (mode 1) |
2.3 SRAM Control¶
| Address (DEC) | Address (HEX) | Address (PLC) | Function | Bytes | Initial value | Access | Range | Unit | Description |
|---|---|---|---|---|---|---|---|---|---|
| 128 | 0x80 | 40129 | Goal position | 2 | 0 | R/W | -32768~32767 | 0.0879° | Absolute position control; the maximum corresponds to the maximum effective angle |
| 129 | 0x81 | 40130 | Torque switch | 2 | 0 | R/W | 0~1 | None | Write 0: torque output off; write 1: torque output on |
| 130 | 0x82 | 40131 | Acceleration | 2 | Acceleration default value | R/W | 0~65535 | 8.79°/s² | If set to 0 the servo accelerates at its maximum acceleration; assigned at power-on from the "acceleration default value (405)" |
| 131 | 0x83 | 40132 | Running speed | 2 | Speed default value | R/W | 0~65535 | 0.732RPM | Assigned at power-on from the "speed default value (406)" |
| 132 | 0x84 | 40133 | Torque limit | 2 | Torque limit default value | R/W | 0~1000 | 0.1% | The initial value is assigned at power-on from the torque limit default value (0x194); you can modify it to control the maximum torque output. Note that changing this torque limit also affects the rotation speed, reducing the maximum no-load speed proportionally |
| 133 | 0x85 | 40134 | Lock flag | 2 | 1 | R/W | 0~1/128 | None | Write 0 to close the EPROM write lock: values written to EPROM addresses persist after power-off; write 1 to open the write lock: values written to EPROM addresses do not persist; write 128 to close the factory-parameter write lock |
| 134 | 0x86 | 40135 | Fault reset | 2 | 0 | R/W | 0~65535 | None | Setting the corresponding bit to 1 resets that fault; on success the corresponding bit is cleared; see Special Byte Explanation for details |
2.4 SRAM Feedback¶
| Address (DEC) | Address (HEX) | Address (PLC) | Function | Bytes | Initial value | Access | Range | Unit | Description |
|---|---|---|---|---|---|---|---|---|---|
| 256 | 0x100 | 40257 | Servo status | 2 | 0 | R | – | None | A bit set to 1 indicates the corresponding error; see Special Byte Explanation for details |
| 257 | 0x101 | 40258 | Present position | 2 | 0 | R | – | 0.0879° | Feedback of the present position; in absolute position control the maximum corresponds to the maximum effective angle |
| 258 | 0x102 | 40259 | Present speed | 2 | 0 | R | – | 0.732RPM | Rotational speed feedback of the motor |
| 259 | 0x103 | 40260 | Output PWM | 2 | 0 | R | – | 0.1% | Duty cycle of the output driving the motor |
| 260 | 0x104 | 40261 | Present voltage | 2 | 0 | R | – | 0.1V | Current working voltage of the servo |
| 261 | 0x105 | 40262 | Present temperature | 2 | 0 | R | – | °C | Current internal working temperature of the servo |
| 262 | 0x106 | 40263 | Moving flag | 2 | 0 | R | – | None | 1 while the servo is moving, 0 when the goal is reached and the servo stops |
| 263 | 0x107 | 40264 | Present current | 2 | 0 | R | – | 6.5mA | Maximum measurable current is 500 * 6.5mA = 3250mA |
2.5 Factory Parameters¶
| Address (DEC) | Address (HEX) | Address (PLC) | Function | Bytes | Initial value | Access | Range | Unit | Description |
|---|---|---|---|---|---|---|---|---|---|
| 384 | 0x180 | 40385 | Moving detection threshold | 2 | – | Default | – | None | Servo factory default parameter |
| 385 | 0x181 | 40386 | D control time | 2 | – | Default | – | None | Servo factory default parameter |
| 386 | 0x182 | 40387 | Maximum speed limit | 2 | – | Default | 0~32767 | 0.732RPM | Servo factory default parameter |
| 387 | 0x183 | 40388 | H-bridge dead time | 2 | – | Default | Servo factory default parameter | ||
| 388 | 0x184 | 40389 | Acceleration limit | 2 | – | Default | 0~65535 | 8.79°/s² | Servo factory default parameter |
| 389 | 0x185 | 40390 | Startup torque | 2 | – | Default | 0~1000 | 0.1% | Sets the minimum output startup torque of the servo; 1000 = 100% * stall torque |
| 390 | 0x186 | 40391 | Clockwise deadband | 2 | – | Default | 0~32 | 0.0879° | |
| 391 | 0x187 | 40392 | Counter-clockwise deadband | 2 | – | Default | 0~32 | 0.0879° | |
| 392 | 0x188 | 40393 | Phase | 2 | – | Default | 0~255 | None | Special function byte; do not modify unless specifically required, see Special Byte Explanation for details |
| 393 | 0x189 | 40394 | Protection switch | 2 | – | Default | 0~255 | None | Set a bit to 1 to enable the corresponding protection, set it to 0 to disable it; see Special Byte Explanation for details |
| 394 | 0x18A | 40395 | LED alarm condition | 2 | – | Default | 0~255 | None | Set a bit to 1 to enable the flashing alarm, set it to 0 to disable it; see Special Byte Explanation for details |
| 395 | 0x18B | 40396 | Maximum temperature limit | 2 | – | Default | 0~100 | °C | Maximum working temperature limit; if set to 70 the maximum temperature is 70 °C; the setting resolution is 1 °C |
| 396 | 0x18C | 40397 | Maximum input voltage | 2 | – | Default | Minimum input voltage~360 | 0.1V | If set to 80 the maximum working voltage limit is 8.0V; the setting resolution is 0.1V |
| 397 | 0x18D | 40398 | Minimum input voltage | 2 | – | Default | 0~Maximum input voltage | 0.1V | If set to 40 the minimum working voltage limit is 4.0V; the setting resolution is 0.1V |
| 398 | 0x18E | 40400 | Overload current | 2 | – | Default | 0~511 | 6.5mA | Overload protection current of the servo |
| 399 | 0x18F | 40401 | Overcurrent protection time | 2 | – | Default | 0~5000 | 1ms | Longest working time with the current above the overload current |
| 400 | 0x190 | 40402 | Protection torque | 2 | – | Default | 0~1000 | 0.1% | Output torque after entering overload protection; e.g. 200 means 20% of the maximum torque |
| 401 | 0x191 | 40403 | Overload torque | 2 | – | Default | 0~1000 | 0.1% | Maximum torque threshold for triggering overload protection; e.g. 800 means 80% of the maximum torque |
| 402 | 0x192 | 40404 | Overload protection time | 2 | – | Default | 0~5000 | 1ms | Longest working time with the torque above the overload torque |
| 403 | 0x193 | 40405 | Angle resolution | 2 | 1 | Default | 1~128 | None | Magnification factor of the sensor's minimum resolution angle; changing it extends the control range |
| 404 | 0x194 | 40406 | Torque limit default value | 2 | 1000 | Default | 0~1000 | 0.1% | Power-on default for the torque limit |
| 405 | 0x195 | 40407 | Acceleration default value | 2 | – | Default | 0~65535 | 8.79°/s² | Power-on default for acceleration |
| 406 | 0x196 | 40408 | Speed default value | 2 | – | Default | 0~32767 | 0.732RPM | Power-on default for speed |
3 Special Byte Explanation¶
3.1 Servo Phase¶
Bit (weight): Description
- BIT0 (1): Drive direction phase; (0) forward, (1) reverse
- BIT1 (2): Driver bridge mode; (0) brushless, (1) brushed, takes effect after reboot
- BIT2 (4): Torque auto switch; (0) auto-on, (1) command-on, firmware >= 20.9
- BIT3 (8): Automatic status reset; (0) auto reset, (1) command reset, firmware >= 20.9
- BIT4 (16): Angle feedback mode; (0) single-turn angle feedback, (1) full-angle feedback
- BIT5 (32): ----
- BIT6 (64): PWM frequency, (0) 24kHz, (1) 16kHz
- BIT7 (128): Position feedback direction phase, (0) forward, (1) reverse
Note
If multiple bits are set at the same time, the phase value is the sum of the bit values. Example: with an original phase value of 0, if the servo runs in reverse, the phase value is 128+1=129;
3.2 Servo Status¶
Servo status: 0 means normal, 1 means abnormal
Bit (weight): Description
- BIT0 (1): Voltage status
- BIT1 (2): Magnetic encoder status
- BIT2 (4): Temperature status
- BIT3 (8): Current status
- BIT4 (16): Torque status: 0 means torque off, 1 means torque on
- BIT5 (32): Load status
Note
If multiple statuses occur at the same time, the status value is the sum of the bit values. Example: over-voltage/under-voltage together with servo overheating gives a status value of 4+1=5;
3.3 Protection Switch¶
Unload condition: 0 means off, 1 means on
Bit (weight): Description
- BIT0 (1): Voltage protection
- BIT1 (2): Magnetic encoder protection
- BIT2 (4): Overheat protection
- BIT3 (8): Overcurrent protection
- BIT4 (16): ----
- BIT5 (32): Load overload
Note
If multiple bits are set at the same time, the unload condition value is the sum of the bit values. Example: with voltage protection and overheat protection enabled together, the unload condition value is 4+1=5;
3.4 LED Alarm Condition¶
LED alarm condition: 0 means off, 1 means on
Bit (weight): Description
- BIT0 (1): Voltage alarm
- BIT1 (2): Magnetic encoder alarm
- BIT2 (4): Overheat alarm
- BIT3 (8): Overcurrent alarm
- BIT4 (16): ----
- BIT5 (32): Load overload alarm
Note
If multiple bits are set at the same time, the LED alarm condition value is the sum of the bit values. Example: with the voltage alarm and the overheat alarm enabled together, the alarm condition value is 4+1=5;
3.5 Fault Reset¶
Fault reset: 0 means invalid, 1 means reset
Bit (weight): Description
- BIT0 (1): Reset overload fault; with auto-reset enabled, reversing the goal and closing the torque switch can reset the fault
- BIT1 (2): Reset overcurrent fault; with auto-reset enabled, reversing the goal and closing the torque switch can reset the fault
- BIT2 (4): Centre setting, the current position is set to the 2048 centre
- BIT3 (8): ----
- BIT4 (16): ----
- BIT5 (32): Reset over-voltage/under-voltage; once the voltage returns to normal, write 32 to reset the over-voltage/under-voltage status; with auto-reset enabled, the fault resets automatically once the voltage returns to normal
- BIT6 (64): Reset overheat status; once the temperature returns to normal, write 64 to reset the overheat status; with auto-reset enabled, the fault resets automatically once the temperature returns to normal
- BIT7 (128): Reset magnetic encoder status; once the magnetic encoder is connected normally, write 128 to reset the magnetic encoder status; with auto-reset enabled, the fault resets automatically once the magnetic encoder is connected normally
Note
If multiple bits are set at the same time, the values of reset-overload-fault and reset-overcurrent-fault are summed. Example: resetting the overload fault together with the overcurrent fault gives a reset value of 1+2=3;
Do not reuse addresses across families
Other series may use the same address with a different meaning (for example, HLS addresses 44–45 are goal current, while SMSMB addresses 132–133 are torque limit). Return to Bus Protocol and select the matching memory table.