5.1. MẠNG TRUYỀN THÔNG MODBUS
5.1.1. Tổng quan về mạng truyền thông Modbus
Modbus là một giao thức truyền thông nối tiếp được phát triển bởi Modicon (nay là
Schneider Electric) vào năm 1979 để dử dụng với các bộ điều khiển PLC. Modbus đã trở
thành một giao th ức truy ền thông chu ẩn và bây giờ là m ột trong những giao th ức ph ổ
biến để kết nối các thiết bị điện tử công nghiệp.
Một số lý do chính để sử dụng Modbus trong môi trường công nghiệp là:
-
Giao thức truyền thông mở và miễn phí bản quyền
- Dễ dàng phát triển và bảo trì hệ thống
-
Đơn giản trong lắp đặt, cấu hình và cho phép trao đổi dữ liệu cả tín hiệu rời rạc và
tương tự
Modbus cho phép truy ền thông nhiều thiết bị khác nhau cùng k ết nối trên cùng một
hệ thống mạng, ví dụ như hệ thống đo lường nhiệt độ, độ ẩm và gửi về máy tính chủ. Các
kiểu tín hiệu được sử dụng trong truyền thông modbus như:
- Tín hiệu ngõ ra vật lý với trạng thái 1 bit đơn gọi là Coil. Hỗ trợ trạng thái đọc/ghi
- Tín hiệu ngõ vào v ật lý v ới trạng thái 1 bit đơn gọi là Discrete input. Ch ỉ hỗ trợ
trạng thái đọc
-
Thanh ghi Input register với độ dài dữ liệu là 16 bit. Chỉ hỗ trợ trạng thái đọc
- Thanh ghi Holding resgiter với độ dài dữ liệu là 16 bit. Hỗ trợ trạng thái đọc/ghi
Modbus được thiết kế theo giao thức Master – Slave (với Modbus RTU) và Client –
Server (với Modbus TCP/IP). Điều này s ẽ có ngh ĩa là Master s ẽ khởi tạo kết n ối và ra
lệnh cho các Slave th ực hiện theo yêu c ầu của master. Slave s ẽ không gửi bất kỳ dữ liệu
nào trên liên k ết truyền thông tr ừ khi được master ra l ệnh yêu c ầu dữ liệu cụ thể. M ỗi
thiết bị tham gia vào m ạng giao tiếp Modbus được cấp một địa chỉ và địa chỉ này không
được lặp lại trong hệ thống mạng.
Các dạng Modbus thông dụng hiện nay:
- Modbus RTU (Serial): RS-232, RS-485, …
- Modbus TCP/IP
- Modbus ASCII
Mỗi dạng Modbus đều có các đặc điểm khác nhau. Tùy theo thi ết bị và yêu cầu của
người sử dụng, các loại Modbus sẽ được lựa chọn.
Modbus RTU
THI T K M NG TRUY N THÔNGẾ Ế Ạ Ề
Dữ liệu được mã hóa theo h ệ nhị phân, và ch ỉ cần một byte để biểu diễn cho m ột
byte dữ liệu gốc. Đây là chu ẩn giao ti ếp lý t ưởng đối với RS-232 hay m ạng RS- 485 đa
điểm, tốc độ từ 1200 đến 115200 Baud/s. T
ốc độ phổ biến nhất là 9600, 38400 hay
115200 Baud/s. Đây là chu ẩn Modbus thông d ụng nhất. Do Tin nh ắn được mã hóa nh ị
phân nên không thể đọc được trong quá trình giám sát.
Modbus TCP/IP
Modbus TCP/IP đơn giản là giao thức Modbus sử dụng mô hình TCP/IP. Trong đó,
giao thức Modbus thu
ộc lớp ứng dụng, xác định dữ liệu cần truyền, TCP là l
ớp vận
chuyển đảm bảo việc truyền nhận dữ liệu chính xác đến đúng địa điểm thông qua địa chỉ
IP c
ủa thi
ết b
ị. V
ới Modbus TCP/IP, d
ữ li
ệu được đóng gói trong m
ột gói tin TCP/IP
(gồm dữ liệu và các header) và được truyền qua Ethernet.
Modbus ASCII
Mọi thông tin d ữ liệu được chuyển đổi sang d ạng Hexadecimal (hệ thập lục phân),
và sử dụng bảng mã ASCII. Vi ệc chuyển đổi này khiến cho một byte dữ liệu gốc thực tế
cần hai byte để biểu diễn, gấp đôi so với Modbus RTU hay Modbus TCP/IP.
Trái ngược với Modbus RTU, người dùng khi sử dụng Modbus ASCIIthì có thể đọc
được nội dung tin nhắn trong quá trình giám sát.
Tuy nhiên, do Modbus ASCII mang nhiều thông tin mã hóa lệnh hơn nên
ModbusASCIIcó tốc độ chậm hơn Modbus RTUvà Modbus TCP/IP, vì vậy thường
không được sử dụng nhiều trong thực tế.
Modbus Gateway
Ngoài ra, khi s ử dụng các thi ết bị với giao th ức Modbus, đặc biệt là Modbus RTU
và Modbus TCP, người dùng sẽ được hỏi về Modbus Gateway.
Vậy Modbus Gateway là gì?
Modbus Gateway hay còn được gọi là Cổng giao tiếp Ethernet (Ethernet
communication gateway). Đây là b
ộ chuyển đổi gi
ữa Modbus RTU/ASCII và Modbus
TCP/IP. Thông thường Modbus Gateway s ẽ có 1 cổng RS-232/RS- 485 dùng cho
Modbus RTU/ASCII và 1 cổng Ethernet dùng cho Modbus TCP/IP.
Modbus TCP/IP có các ưu điểm vượt trội hơn so với Modbus RTU, ví d ụ như việc
sử dụng cáp Ethernet ti ết kiệm chi phí h ơn so với sử dụng cáp cho RS- 232 hay RS-485,
truyền được xa hơn và kết nối được nhiều Client hơn. Trong thực tế, nhiều thiết bị được
điều khiển chỉ được hỗ trợ 1 loại Modbus RTU ho ặc Modbus TCP/IP khi ến cho việc kết
hợp các thiết bị với nhau trở nên khó kh ăn. Modbus Gateway th ường được sử dụng như
một bộ phiên dịch kết nối các thiết bị vào hệ thống Modbus chung.
5.1.2. Cấu trúc giao thức của Modbus
Modbus Master gửi gói tin để đọc hoặc ghi dữ liệu tới slave và ngược lại. Giao thức
Modbus cũng mở rộng phần tùy chỉnh cho gói tin thay đổi theo yêu cầu người sử dụng.
Định dạng chung các gói tin c ủa Modbus được g ọi là ADU bao g ồm địa ch ỉ c ủa
Slave, mã chức năng thực hiện, kích thước dữ liệu và kiểm tra lỗi truyền thông
Hình 5.2. Định dạng chung các gói tin của Modbus
Trong đó:
- AD là một đơn vị dữ liệu ứng dụng tương ứng với một gói tin của Modbus Master
- PDU là một đơn vị giao thức với dữ liệu được Master yêu cầu tới Slave
Định dạng gói tin của RTU và TCP/IP minh họa như hình 5.3.
Hình 5.3. Định dạng gói tin của RTU và TCP/IP
Hình 5.4. Kích thước dữ liệu của gói tin
5.1.3. Mã chức năng – Function Code
Có nhiều mã ch ức năng cơ bản để thực hiện những ứng dụng cơ bản như đọc, ghi
dữ liệu mô tả như bảng 5.4.
Bảng 5.4. Các mã chức năng để truy xuất dữ liệu của moddus
Kiểu chức năng Tên chức năng Mã chức năng Địa chỉ tuyệt đối
Bit Ngõ vào dạng Bit Đọc bit ngõ vào 02 10001 đến 19999
Ngõ ra dạng Bit
Đọc bit ngõ ra 01 00001 đến 09999
Ghi vào 1 bit đơn của
ngõ ra
05 00001 đến 09999
Ghi vào nhi ều bit ngõ
ra
15 00001 đến 09999
Word
Ngõ vào dạng
Word
Đọc Word ngõ vào 04 30001 đến 39999
Thanh ghi Holding
Đọc giá tr
ị các thanh
ghi Holding
03 40001 đến 49999
Ghi vào 1 Word c
ủa
thanh ghi Holding
06 40001 đến 49999
Ghi nhiều Word của
thanh ghi Holding
16 40001 đến 49999
Đọc/ghi nhiều Word
của thanh ghi Holding
23
Xóa/ghi các bit đơn
của một thanh ghi
22
Đọc tuần tự trạng thái
FIFO
24
Một số manual h ướng dẫn về thanh ghi Modbus (holding register) c ủa một số nhà
sản xuất thiết b
ị không cung c
ấp địa chỉ tuyệt đối mà ch
ỉ cung c
ấp địa chỉ tương đối
(relative addresses) hay còn g ọi là thanh ghi c ơ bản, thì ng ười lập trình có th ể sử dụng
công thức sau để tìm địa chỉ tuyệt đối của Modbus:
-
Địa chỉ Modbus = Req.adr. + offset
- Req.adr là 40001 hoặc 400001
5.2. THIẾT KẾ MẠNG TRUYỀN THÔNG VỚI MODBUS RTU VỚI PLC S7-
1200/1500
Tập lệnh truyền thông Modbus RTU
Các tập lệnh để thực hiện cấu hình truyền thông Modbus RTU c ũng như thực hiện
các chức năng của Modbus Master và Slave được thực hiện qua các lệnh dưới đây.
- Modbus_Comm_Load (MB_COMM_LOAD)
-
Modbus_Master (MB_MASTER)
- Modbus_Slave (MB_SLAVE)
Các tập lệnh truyền thông Modbus RTU n ằm trong các t ập lệnh truyền thông trong
phần của phần mềm TIA Portal: Instruction Communication Communication
Processor MODBUS (RTU) hay MODBUS
Lệnh cấu hình truyền thông Modbus
Lệnh Modbus_Comm_Load cấu hình m ột modul truy ền thông để cho phép PLC
có thể thiết lập giao thức Modbus RTU. Khi gọi lệnh thì phần mềm tự động tạo thêm một
khối dữ liệu Instance DB vào trong ch
ương trình ng
ười dùng. Thay đổi cấu hình c
ủa
Modbus_Comm_Load được lưu trên CM chứ không phải trong CPU.
Modbus_Comm_Load được sử d ụng để thực hi ện c ấu hình c ổng ứng d ụng (Port)
cho giao thức RTU. Một khi đã thực hiện cấu hình Port này cho giao th ức Modbus RTU
thì nó chỉ có thể được sử dụng bởi các lệnh Modbus_Master hoặc Modbus_Slave.
Lệnh Modbus_Comm_Load ch
ỉ thực hiện một lần duy nh
ất trong quá trình kh
ởi
động truyền thông để nó thực hiện bắt tay giữa các thiết bị modbus với nhau