Modbus Embedded Controller: Ndustrial Omputer Roducts Ata Cquisition Ystem
Modbus Embedded Controller: Ndustrial Omputer Roducts Ata Cquisition Ystem
Kevin Ho
May,27,2004
SCADA HMI
RS-232/485 Internet
Internet
Query
Station Number
Function Code
Data Bytes Station Number
(Flexible) Function Code
Data Bytes
(Flexible)
Error Check
Error Check
Response
Begining of Address
From 0: VLC
From 1: InduSoft, iFix
RTU Mode
Data system
8-bit Binary, 00~FF
Bits per data unit
1 Start Bit 8 Data Bits 1 Parity Bit (Even/Odd) 1 Stop Bit
1 Start Bit 8 Data Bits 2 Stop Bit
Error Check Field
Cyclical Redundancy Check (CRC)
ASCII Mode
Start Station Number Function Code Data Error Check End
1 Char 2 Chars 2 Chars n Chars 2 Chars 2 Chars
: LRC CR,LF
RTU Mode
Start Station Number Function Code Data Error Check End
3.5 Char 1 Char 1 Char n Chars 2 Chars 3.5 Chars
Silence CRC Silence
command protocol
depend on serial Internet
Internet
Modbus/TCP comm
and protocol
devices
VxComm Technique
Modbus/TCP Slave
RS-485
RS-232
Modbus/TCP
Internet
Internet
Modbus/RTU Modbus/RTU
RS-485
Update I/O
RS-232
PLC
2 communication protocols
User-defined: port 10000
Modbus/TCP: port 502
4 Internal register tables (MTDemo50)
Modbus/TCP
Write
Modbus Kernel
Read
Slot
iMemory_DI iMemory_DO
RS-232
User Process
iMemory_AI iMemory_AO
RS-485
.. .
I-7000 I-7000 I-87K
iMemory_DI iMemory_DO
Modbus/RTU
User Process
iMemory_AI iMemory_AO
Modbus/RTU
void UserLoopFun(void)
{
UpdateIOModule();
CheckModbusRequest(iModbusUpLinkPort); //Is any Modbus/RTU request from COM port ?
CheckLEDMenu();
}
if(Cmd[0]=='!')
iRet=Configuration(Cmd,Response);
return 1;
}
MBTCP_8E.h
//Memory base address of every slot
extern unsigned int iMemoryAddr_DI[8];
extern unsigned int iMemoryAddr_DO[8];
extern unsigned int iMemoryAddr_AI[8];
extern unsigned int iMemoryAddr_AO[8];
Modbus/TCP comm
command protocol and protocol Single Modbus/RTU Masters (Clients)
depend on serial Internet
Internet
devices
Modbus/RTU comman
d protocol
VxComm Technique RS-232/485
RS-485 Modbus/RTU
RS-232
Expansion Bus
X board
Read/Write I/O
RS-232 Modbus/RTU
iMemory_DO User-defined
User-defined
iMemory_AI
User-defined
iMemory_AO
Modbus/TCP
Write
Modbus Kernel
Read
Expansion Bus
X board
iMemory_DI iMemory_DO
RS-232
User Process
iMemory_AI iMemory_AO
RS-485
.. .
I-7000 I-7000 I-87K
iMemory_DI iMemory_DO
Modbus/RTU
User Process
iMemory_AI iMemory_AO
Modbus/RTU
HoneyWell
iFix Modbus/RTU device
(A) RS-232 @ 38400 bps
iFix
(B)
iFix
(C)
iFix
(A)
2
iFix Response
(B) 2
Request
1
iFix
(C)
2
iFix
(A) Ethernet/RS-232
4 converter
Hub COM1 @ 38400 bps
1 Modbus/RTU HoneyWell
Response Modbus/RTU device
11 7
iFix Modbus/RTU 3
(A) 8 Response 2
6
10
Modbus/RTU 5 Modbus/RTU
Request Request
iFix
(A) 12
9
iFix (A)
4 7188E-MTCP
Hub COM1 @ 38400 bps
1 Modbus/RTU HoneyWell
Response Modbus/RTU device
11
7 3
iFix (B) Modbus/TCP
8 Response 2
6
10
Modbus/TCP 5 Modbus/RTU
Request Request
iFix (C)
12
iFix
(A)
2 7188E-MTCP
Hub
1 Modbus/RTU HoneyWell
COM1 @ 38400 bps Modbus/RTU device
Share Response
Memory
iFix Modbus/TCP B
(B) 4 Response A
Modbus/TCP 3 Modbus/RTU
Request Request
iFix
(C) 6
5
AB PLC #1
RS-232 @ 9600 bps
AB PLC #2
AB PLC #3
7188XB
ABB DCS AB PLC #1
AB PLC #2
Analog Input
DI DO AI AO
AB PLC #3
Analog Input
2 7188E-MTCP
Hub
1 Modbus/RTU
RS-485 Response
Share
Memory
Modbus/TCP B
4 Response A
Modbus/RTU
Modbus/TCP 3 Request
Request
PLC#1 PLC#2 PLC#3
6
5