COM Protocol Manual: For MDC and ADC
COM Protocol Manual: For MDC and ADC
1.1 Overview
If the PC does not have Serial COM port, use good quality of USB to RS422 Serial
MDC, ADC is capable of connecting to the host controller (Handy Loader, HMI, PLC, PC,
converter.
etc.) through RS232, RS422 serial communication or Ethernet, allowing the user to use such
functions as parameter change and data monitoring.
RS422
RS232, Ethernet
IN IN IN
OUT OUT OUT
The pins of IN & OUT port are connected by parallel together (1:1), allowing for convenient
multi-drop wiring.
If the PC does not have Serial COM port, use good quality of USB to RS422 Serial
converter.
◆ Communication Specifications
Item Specifications
Communication Standard ANSI/TIA/EIA-422 Standard
Communication Protocol MODBUS-RTU (Remote Terminal Unit)
Data bit 8 bit
Data Type Stop bit 1 bit
Parity None
Synchronous Asynchronous method
9600/19200/38400/57600/115200(MDC)[bps]
Transmission Speed Speed can be selected at communication speed setting
[0x3002]
◆ Modbus-RTU Mode
RTU (Remote Terminal Unit) mode, each 8–bit byte in a message contains two 4–bit
hexadecimal characters. The main advantage of this mode is that its greater character
density allows better data throughput than ASCII for the same baud rate. Each message
must be transmitted in a continuous stream.
Coding System: 8–bit binary, hexadecimal 0–9, A–F Two hexadecimal characters
contained in each 8–bit field of the message
Bits per Byte: 1 start bit 8 data bits, least significant bit sent first 1 bit for even/odd parity;
no bit for no parity 1 stop bit if parity is used; 2 bits if no parity
Note 1 : Never use these two pins to others. There is 5V power output for other purpose.
ADC complies with the MODBUS-RTU Protocol for communication. For issues not specified
in this manual, please see the related standards (Related Standard: Modbus Application
Protocol Specification 1.1b, 2006.12.28)
In addition, the transmission (Tx) and reception (Rx) concepts are defined in reference to the
host.
◈ Slave address
◈ Function Code
◈ data
◈ CRC
This means the sequence number of queries and responses. While TCP operates as a
master, it is incremented by one in every query (It doesn’t matter if this field is set to 0x0000).
◈ byte 2 ~ 3: protocol ID (Protocol Identification)
This means the protocol identification and the value is fixed as 0x0000 for Modbus/TCP
◈ byte 4 ~ 5: length
The value of this means the number of bytes from next byte of length field to the end of the
frame.
Function code 03 & 04 is used to read the register as like parameters and alarm in the
slave device. The only integer number is allowed.
[Query ( Request) ]
Function code consist of one byte. But start address and number of address are consisted
by 2 bytes with 4 digits of hexadecimal, starting with first 2 digits for high number, second 2
digits for low number.
The number of data is consisted by 2 bytes with 4 digits of hexadecimal. So the total number
of data is equal to 1/2 of the number of byte.
[Abnormal Respons]
By adding 0x080 to the function code, it response any abnormal or wrong message
To read the data of parameter 1 and 2, which is torque & speed value of Preset #1
( 03 : Query)
Read ( Function code 03 ) data of two addresses ( number of address 0002 ) from the
address starting from address #2 (0002)
( 03 : Response )
Slave address Function No of byte Data #1 Data #1 ... x n data CRC CRC
(00 for TCP) Code High Low Low High
Data value of 1st address : 010F (hex) = 271 (dec) torque value of Preset #1
Date value of 2nd address : 03E8(hex) = 1000 (dec) Torque limit value 10.00%
3200 – 3299 : Data updated by event ( Start, F/L, Preset change, Torque up )
Function code 06 is used to WRITE the parameter value in each register. The only integer
number is allowed.
( Query )
( OK Response )
It provides the echo response on the query (request) after writing data in register.
- For frequent torque parameter changing, there are register addresses from 261 to 267 for
torque of preset #1 7. These data are saved in RAM of the controller for quick and
temporary use. It can save the life time of EEPROM from frequent erase and writing.
These memory are disappeared when the power is off.
Function code 16 is used to WRITE the multiple parameters in multiple registers. The only
integer number is allowed.
It is recommended not over 20 parameters for writing at once. Max data is limited within
200 bytes.
( Query )
Slave address Function Start Start Number Number Byte Date Date CRC CRC
(00 for TCP) code address address of of count High Low (RTU) (RTU)
High Low address address (address Low High
High Low no x 2)
( OK Response )
To write the data of parameter 2 and 3, which is torque & torque limit value of Preset #1
as below
Query
01 10 00 02 00 03 04 05 DC 03 E8 B2 EF
Response
01 10 00 02 00 02 E0 08
Function code 17 is used to read the slave device information about ID no, controller
model, screwdriver model, serial no and firmware version.
( Query )
( Response )
Slave Function No. ID ID Controller Controller Screw Screw Ver. Ver. S/N S/N S/N S/N CRC CRC
address Code of High Low model model driver driver High Low 4 3 2 1 (RTU) (RTU)
(00 for byte High Low model model Low High
TCP) High Low
If there are wrong function code or communication failure by protocol ( parity, LRC, CRC..etc.),
there will be no response. The master will show “ TIME OUT ” error.
If the query contains wrong function code or address, the function code + 0x80 will be
responsed together with the following error code in data registry.
( 01 : Query)
( 01 + 80 : Response )
0 : Disable, 1 : Enable
4100 Monitoring curve data output To keep monitoring ON, repeat request with
1(Enable) in every 10 seconds.
Request the desired data on the above parameters in the address 4101, 4102, 4103 and
4104. And repeat the request data “1” (Enable) on the parameter address 4100 in every
10 seconds to keep data output ON. Otherwise the data output will be OFF
For example, to monitor the curve data of torque at channel 1, speed at channel 2,
( Query )
( Response )
Slave address Function No of byte No of byte Data #1 Data #1 ... x n data CRC CRC
(00 for TCP) Code 100 High Low High Low Low High
1 : Channel 1
2 : Channel 2
3 : Sampling time
4 : Option 1
5 : Number of data
6 : Fastening time
7 : Target torque
8 : Converted torque
9 : Speed
10 : A1 angle
11 : A2 angle
12 : Sung Angle
13 : Error code
16 – 415 (max) : monitoring data ( not fixed number ) / maximum 400 data for two channels.
If the monitoring data is for only channel 1, all from 16th data are included in Channel 1.
If two channels are selected, the data for channel 2 comes later the data of channel 1.
For example, total number of data are 400, the first 200 data are for channel 1. The rest
200 data are for channel 2
If Auto data output is enabled. The controller will send sets of 33 bytes, as shown in following
figure. Each byte is represented by 2 hexadecimal characters.
The following figure represents the main structure of the message received.
• The third data byte (green), indicates number of data bytes ahead on this particular message,
before the CRC values.
• The data values come in byte pairs, the first byte will be the high value for the first piece of
data, and the second byte will be the low value. The first pair (blue), represents the sequential
count for the messages sent. The following pairs will be 0CCB, 0001…..etc., as shown in the
table below.
• The last pair of bytes (purple) are the cyclic redundancy check (CRC) from the protocol, which
are utilized to verify that the message is complete. Please refer to the Com Protocol manual
for CRC Calculation.
Error 0x0000
6) Count complete
7) Alarm code 1
Output #8 8) Alarm code 2 241 8 1241 2241 Read : 0x03 Write : 0x06
Sensor signal type 0 - 3 242 0 1242 2242 Read : 0x03 Write : 0x06
Time limit (if P122-->2) 243 0 1243 2243 Read : 0x03 Write : 0x06
Screw Screw Count complete OUT manage 244 0 1244 2244 Read : 0x03 Write : 0x06
count count Middle count no. 0 - 99 245 0 1245 2245 Read : 0x03 Write : 0x06
Sensor signal delay time (x10ms) 246 0 1246 2246 Read : 0x03 Write : 0x06
Total count (screw no.) 247 5 1247 2247 Read : 0x03 Write : 0x06
Enable(1) / Disable(0) 250 0 1250 2250 Read : 0x03 Write : 0x06
Free Speed (rpm) 251 0 1251 2251 Read : 0x03 Write : 0x06
Reverse Angle (turn) 0 - 20 252 0 1252 2252 Read : 0x03 Write : 0x06
Applicable Preset # 1-15 253 0 1253 2253 Read : 0x03 Write : 0x06
Enable(1) / Disable(0) 254 0 1254 2254 Read : 0x03 Write : 0x06
Speed (rpm) 255 0 1255 2255 Read : 0x03 Write : 0x06
Engaging Torque(%) 256 0 1256 2256 Read : 0x03 Write : 0x06
Advanced torque Angle limit (turn) 0 - 20 257 0 1257 2257 Read : 0x03 Write : 0x06
Function detection Time limit (sec) 258 0 1258 2258 Read : 0x03 Write : 0x06
Applicable Preset # 1-15 259 0 1259 2259 Read : 0x03 Write : 0x06
Angle start from engaging 260 0 1260 2260 Read : 0x03 Write : 0x06
Enable(1) / Disable(0) 261 0 1261 2261 Read : 0x03 Write : 0x06
Extra angle Speed (rpm) 262 0 1262 2262 Read : 0x03 Write : 0x06
after torque Angle (degree) 0-3600 263 0 1263 2263 Read : 0x03 Write : 0x06
up Direction 264 0 1264 2264 Read : 0x03 Write : 0x06
Applicable Preset # 1-15 265 0 1265 2265 Read : 0x03 Write : 0x06
Run time limit / Forward (sec) 270 10 1270 2270 Read : 0x03 Write : 0x06
Run time limit / Reverse (sec) 271 10 1271 2271 Read : 0x03 Write : 0x06
Motor stall time limit (sec) 272 0.2 1272 2272 Read : 0x03 Write : 0x06
Loosening speed (rpm) 273 Auto 1273 2273 Read : 0x03 Write : 0x06
Motor acceleration (ms) 274 100 1274 2274 Read : 0x03 Write : 0x06
Fastening complete signal OUT time 275 0 1275 2275 Read : 0x03 Write : 0x06
Driver ID no. 276 1 1276 2276 Read : 0x03 Write : 0x06
Error display reset time 277 1 1277 2277 Read : 0x03 Write : 0x06
Setting 1
Torque compensation master (%) 90-110 278 100 1278 2278 Read : 0x03 Write : 0x06
LCD brightness 10-64 279 45 1279 2279 Read : 0x03 Write : 0x06
Initial preset # when power ON 280 1 1280 2280 Read : 0x03 Write : 0x06
Driver model no. 1-99 281 Auto 1281 2281 Read : 0x03 Write : 0x06
Password 0-9999 282 0 1282 2282 Read : 0x03 Write : 0x06
Parameter initialize to factory setting 283 0 1283 2283 Read : 0x03 Write : 0x06
Driver auto lock (for Model) 284 0 1284 2284 Read : 0x03 Write : 0x06
Torque holding time(ms) 1-20 285 2 1285 2285 Read : 0x03 Write : 0x06
Controller
Auto speed on torque setting 290 1 1290 2290 Read : 0x03 Write : 0x06
Judge fastening min turns 291 0 1291 2291 Read : 0x03 Write : 0x06
Model select 292 0 1292 2292 Read : 0x03 Write : 0x06
Fastening stop error 293 0 1293 2293 Read : 0x03 Write : 0x06
Reverse Lock 294 0 1294 2294 Read : 0x03 Write : 0x06
Trigger start (Handheld only) 295 0 1295 2295 Read : 0x03 Write : 0x06
Reverse start (Handheld only) 296 0 1296 2296 Read : 0x03 Write : 0x06
Auto data output 297 0 1297 2297 Read : 0x03 Write : 0x06
Setting 2
Beep sound 298 1 1298 2298 Read : 0x03 Write : 0x06
Preset change by Touch pannel 299 1 1299 2299 Read : 0x03 Write : 0x06
COM port Baud rate 300 4 1300 2300 Read : 0x03 Write : 0x06
Torque unit 301 0 1301 2301 Read : 0x03 Write : 0x06
Screw type 302 0 1302 2302 Read : 0x03 Write : 0x06
Auto update port 303 0 1303 2303 Read : 0x03 Write : 0x06
Lamp on time 304 0 1304 2304 Read : 0x03 Write : 0x06
Option card 305 0 1305 2305 Read : 0x03 Write : 0x06
IP Address1 310 192 1310 2310 Read : 0x03 Write : 0x06
IP Address2 311 168 1311 2311 Read : 0x03 Write : 0x06
IP Address3 312 1 1312 2312 Read : 0x03 Write : 0x06
IP Address4 313 100 1313 2313 Read : 0x03 Write : 0x06
IP Address Gateway 1 314 192 1314 2314 Read : 0x03 Write : 0x06
Gateway 2 315 168 1315 2315 Read : 0x03 Write : 0x06
Gateway 3 316 1 1316 2316 Read : 0x03 Write : 0x06
Gateway 4 317 1 1317 2317 Read : 0x03 Write : 0x06
Port 318 5000 1318 2318 Read : 0x03 Write : 0x06
MS PG 1 321 0 1321 2321 Read : 0x03 Write : 0x06
MS PG 2 322 0 1322 2322 Read : 0x03 Write : 0x06
MS PG 3 323 0 1323 2323 Read : 0x03 Write : 0x06
MS PG 4 324 0 1324 2324 Read : 0x03 Write : 0x06
MS PG 5 325 0 1325 2325 Read : 0x03 Write : 0x06
PG1
MS PG 6 326 0 1326 2326 Read : 0x03 Write : 0x06
MS PG 7 327 0 1327 2327 Read : 0x03 Write : 0x06
MS PG 8 328 0 1328 2328 Read : 0x03 Write : 0x06
MS PG 9 329 0 1329 2329 Read : 0x03 Write : 0x06
MS PG 10 330 0 1330 2330 Read : 0x03 Write : 0x06
Multi SQ
MS PG 11 331 0 1331 2331 Read : 0x03 Write : 0x06
MS PG 12 332 0 1332 2332 Read : 0x03 Write : 0x06
MS PG 13 333 0 1333 2333 Read : 0x03 Write : 0x06
MS PG 14 334 0 1334 2334 Read : 0x03 Write : 0x06
MS PG 15 335 0 1335 2335 Read : 0x03 Write : 0x06
PG2
MS PG 16 336 0 1336 2336 Read : 0x03 Write : 0x06
MS PG 17 337 0 1337 2337 Read : 0x03 Write : 0x06
MS PG 18 338 0 1338 2338 Read : 0x03 Write : 0x06
MS PG 19 339 0 1339 2339 Read : 0x03 Write : 0x06
Model Model data( 150 ) 350 ~ 499 0 1349 ~ 1449 2349 ~ 2449 Read : 0x03 Write : 0x06
Firmware
500 Auto Read : 0x03 Write : 0x06
Version
Alarm no. 3100 Read : 0x04
Alarm data
Waring no. 3101 Read : 0x04
Event count no. ( 1- 65,536 ) 3200 Read : 0x04
Fastening time (ms) 3201 Read : 0x04
Preset no. 3202 Read : 0x04
Target torque ( * x 100 ) 3203 Read : 0x04
Converted torque ( * x 100 ) 3204 Read : 0x04
Data Target speed (rpm) 3205 Read : 0x04
updated on A1 ( * 100 ) 3206 Read : 0x04
events A2 ( * 100 ) 3207 Read : 0x04
(Start, F/L, A3 ( * 100 ) 3208 Read : 0x04
Preset, Screw count value 3209 Read : 0x04
Torque up) Error 3210 Read : 0x04
Forward / Loosening ( F=01, L=1 ) 3211 Read : 0x04
Monitoring Status (Fastening OK=1, Fastening NG=2, F/R
data change=3, Preset# change=4, Alarm reset=5, Errors = 3212 Read : 0x04
6, other=0)
Snug torque angle (degree) 3213 Read : 0x04
Converted torque ( * x 100 ) 3300 Read : 0x04
Speed (rpm) 3301 Read : 0x04
Motor current (mA) 3302 Read : 0x04
Current Preset # 3303 Read : 0x04
Torque up 3304 Read : 0x04
Fastening OK 3305 Read : 0x04
Realtime
Ready 3306 Read : 0x04
Data
Motor RUN 3307 Read : 0x04
Alarm no. 3308 Read : 0x04
Forward / Loosening ( F=01, L=1 ) 3309 Read : 0x04
Screw count value 3310 Read : 0x04
Input status ( MSB=IN 8, LSB=IN 1) 3311 Read : 0x04
Output status ( MSB=OUT 8, LSB=OUT 1) 3312 Read : 0x04
TC/AM_AC/TM 511 Write : 0x06
Torque 512 Write : 0x06
Torque min/max (%) 513 Write : 0x06
Target angle(degree) 514 Write : 0x06
Min angle(degree) 515 Write : 0x06
Max angle(degree) 516 Write : 0x06
Temporary Snug torque(%) 517 Write : 0x06
Virtual
parameter Speed (rpm) 518 Write : 0x06
Preset #1
in RAM Free fastenig angle(degree) 519 Write : 0x06
Free fastenig speed(rpm) 520 Write : 0x06
Soft start(1-300ms) 521 Write : 0x06
Seating point (%) 10-90 522 Write : 0x06
Torque rising rate(ms) 50-200 523 Write : 0x06
Torque holding time(ms) 1-20 524 Write : 0x06
Torque compensation (%) 90-110 525 Write : 0x06
Alarm reset 4000 Write : 0x06
Driver Lock
0 : Unlock 1: Lock all dirction 4001 Write : 0x06
2 : Lock Loosening 3: Lock Fastening
No use ( Factory only ) 4002 Write : 0x06
Remote start ( 0 : Stop, 1 : Start ) 4003 Write : 0x06
Preset # change (Not available on RUN)
Remote Data : 1 - 15 for preset #1 - 15
Operation 4004 Write : 0x06
control 16 for Multi sequence A
17 for Multi sequence B
Forward / Loosening ( F=01, L=1 ) 4005 Write : 0x06
Output test only ( 0 : off, 1 : on)
( MSB=OUT 8, LSB=OUT 1)
4006 Write : 0x06
ex) 0xff : output 1 - 8 port all on
ex) 0x0f : output 1 - 4 port on
Output test enable (0 : disable, 1: enable) 4007 Write : 0x06