Tham khảo tài liệu liên quan tại: />
́
BỘ GIAO DỤC & ĐÀ O TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KĨ THUẬT
KHOA ĐIỆN – ĐIỆN TỬ
*************************************************
MẠNG PLC
ĐỀ TÀI
MẠNG TRUYỀN THÔNG CÔNG NGHIỆP MODBUS RTU
GVHD :
SV
:
TẠ VĂN PHƯƠNG
NGƠ MINH TỒN
NGUYỄN ĐỨC BẮC
07118044
071180
Tham khảo tài liệu liên quan tại: />
Chương 1:
1. TẦM QUAN TRỌNG CỦA MẠNG MODBUS:
Modbus là chuẩn truyền thông trong cơng nghiệp, rất hiệu quả và phổ biến, vì chúng đơn giản trong truyền nhận. Tốt của
chuẩn Modbus là sự linh hoạt, và dễ thực hiện. Không những các thiết bị thơng minh như các microcontroller, PLC ... có
thể truyền thơng với Modbus, mà cịn các cảm biến thơng minh trang bị Modbus interface gửi dữ liệu của chúng đến các
host system. Modbus, cũng có các mở rộng cho các chuẩn truyền thông không dây và các mạng TCP/IP.
Với đậc điểm trên, nên ngày nay các nhà máy xí nghiệp rất chuộn mạng modbus này.
2.LỊCH SỬ PHÁT TRIỂN MODBUS:
Modbus bắt nguồn trong cuối những năm 70 thế kỷ trước. Năm 1979 khi nhà sản xuất PLC Modicon giờ là tập đồn
Schneider Electric's Telemecanique phát hành giao diện truyền thơng Modbus cho mạng multidrop dựa trên kiến trúc
master/client. Truyền thông giữa các Modbus node có được bằng các thơng điệp. Nó là một chuẩn mở mà được mô tả
bằng cấu trúc thông điệp. Modbus interface ban đầu chạy trên RS-232, nhưng các thực hiện Modbus sau nhất dùng RS485 vì nó cho phép khoảng cách lớn, tốc độ cao và khả năng của một mạng multi-drop thực sự. Trong thời gian ngắn
hàng trăm nhà sản xuất thực hiện hệ thống thông điệp Modbus trong thiết bị của họ và Modbus trở thành chuẩn cho các
mạng truyền thông công nghiệp.
Tham khảo tài liệu liên quan tại: />
3.Cấu trúc thông điệp Modbus
Hình 1: cấu trúc kết nối mạng modbus
Trên RS232 gởi các thông điệp tương tự như được dùng trên Modbus/TCP qua ethernet. Gọi là Modbus interface.
Protocol có thể dùng khơng quan tâm kiểu kết nối. Vì điều này, Modbus cho khả năng dễ dàng nâng cấp cấu trúc phần
cứng của mạng công nghiệp, không cần thay đổi lớn trong phần mềm. Một thiết bị cũng có thể truyền thơng với vài
Modbus node một lúc, dù chúng được nối với các kiểu giao diện khác nhau, không cần dùng protocol khác cho mỗi kết
nối.
Trên các giao diện đơn giảng giống RS485 hay RS232, các thông điệp Modbus được gửi theo dạng đơn giản trên mạng.
Các hệ thống mạng linh hoạt hơn như TCP/IP qua ethernet, các thông điệp Modbus như nhúng trong các gói với định
dạng cần thiết cho giao diện vật lý. Trong trường hợp đó Modbus và các kiểu kết nối khác có thể cùng tồn tại ở cùng giao
Tham khảo tài liệu liên quan tại: />
diện vật lý ở cùng lúc. Mặc dù cấu trúc thông điệp Modbus chính là peer-to-peer(ngang hàng), Modbus có thể kết nối
thành cả mạng point-to-point và multidrop. Gởi đi bằng các thông điệp.
Bốn thành phần cơ bản có mặt trong mỗi thơng điệp. Cuối các thành phần này là giống nhau cho tất cả thông điệp, để dễ
dàng xác định nội dung của Modbus message. Một hộp thoại luôn được bắt đầu bởi một master trong mạng Modbus.
Modbus master gửi một message phụ thuộc vào nội dung của message—slave tác động và đáp ứng với nó. Có thể có
nhiều master trong một Modbus network. Địa chỉ trong message header được dùng để định nghĩa device mà sẽ đáp ứng
với message. Tất cả các node trong Modbus network bỏ qua message nếu address field không thỏa mẵn address riêng
của chúng.
4. Các dạng modbus phổ biến nhất đƣợc dử dụng ngày nay là:
-modbus/ASCII
-modbus/RTU
-modbus/TCP
Tham khảo tài liệu liên quan tại: />
Chƣơng 2: Tìm hiểu về mạng modbus/RTU
Hình 2: Một số kết nối khác
1.So sánh MODBUS (RTU/ASCII/TCP)
Tham khảo tài liệu liên quan tại: />
Tất cả thông điệp được gửi dưới cùng một format. Sự khác nhau duy nhất giữa 3 loại MODBUS là cách thức thông điệp
được mã hóa.
Với MODBUS ASCII, mọi thơng điệp được mã hóa bằng hexadeci-mal, sử dụng đặc tính ASCII 4 bit. Đối với mỗi một
byte thơng tin, cần có 2 byte truyền thông, gấp đôi so với MODBUS RTU hay MODBUS/TCP.
Tuy nhiên, MODBUS ASC II chậm nhất trong số 3 loại protocol, nhưng lại thích hợp khi modem điện thoại hay kết nối sử
dụng sóng radio do ASC II sử dụng các tính năng phân định thơng điệp. Do tính năng phân định này, mọi rắc rối trong
phương tiện truyền dẫn sẽ không làm thiết bị nhận dịch sai thông tin. Điều này quan trọng khi đề cập đến các modem
chậm, điện thoại di động, kết nối ồn hay các phương tiện truyền thơng khó tính khác.
Đối với MODBUS RTU, dữ liệu được mã hóa theo hệ nhị phân, và chỉ cần một byte truyền thông cho một byte dữ liệu.
Đây là thiết bị lí tưởng đối với RS 232 hay mạng RS485 đa điểm. Tốc độ phổ biến nhất là 9600 đến 19200 baud.
MODBUS RTU là protocol công nghiệp được sử dụng rộng rãi nhất, do đó hầu như trong bài viết này chỉ tập trung đề cập
đến cơ sở và ứng dụng của nó.
MODBUS/TCP đơn giản là MODBUS qua Ethernet. Thay vì sử dụng thiết bị này cho việc kết nối với các thiết bị tớ, do đó
các địa chỉ IP được sử dụng. Với MODBUS/TCP, dữ liệu MODBUS được tóm lược đơn giản trong một gói TCP/IP. Do
đó, bất cứ mạng Ethernet hỗ trợ MODBUS/ IP sẽ ngay lập tức hỗ trợ MODBUS/TCP. Phiên bản MODBUS này sẽ được
đề cập chi tiết trong bài viết lần sau với tiêu đề ―MODBUS qua Ethernet‖.
Tham khảo tài liệu liên quan tại: />
MODBUS/RTU
Địa chỉ Modbus
Thông tin đầu tiên trong mỗi Modbus message là địa chỉ của receiver. Thông số này chứa một byte thông tin. Trong
Modbus/RTU một byte được dùng. Các địa chỉ hợp lệ trong dải 0..247. Các giá trị 1..247 được gán cho các thiết bị
Modbus slave cụ thể và 0 được dùng như địa chỉ broadcast. Các Message được gửi sau sẽ được nhận bởi tất cả slave.
Tham khảo tài liệu liên quan tại: />
Một slave luôn đáp ứng với một Modbus message. Khi đáp ứng nó dùng cùng địa chỉ như master trong request đó. Theo
cách này master có thể thấy device thực sự đáp ứng với yêu cầu.
Modbus master address(S7-200)
00001-09999 là các ngõ ra riêng biệt
10001-19999 là các ngõ vào riệng biệt
30001-39999 là các thanh ghi ngõ vào
40001-49999 là các thanh ghi holding
Địa chỉ modbus slave
00001-00128 ngõ ra riêng biệt tương ứng từ Q0.0-Q15.7
10001-10128 ngõ ra riêng biệt tương ứng từ I0.0-I15.7
30001-30032 thanh ghi ngõ vào tương tự tương ứng từ AIW0-AIW62
40001-04XXXX thanh ghi holding tương ứng vùng nhớ V
Tham khảo tài liệu liên quan tại: />
Tham khảo tài liệu liên quan tại: />
Việc sử dụng cấu trúc modbus master
MBUS_CTRL thực hiện sau mỗi vòng quét, sử dụng MBUS_CTRL để bắt đầu hay thay đỗi thơng số truyền nhận
Modbus master intruction chỉ những dịng để đọc hay viết vào địa chỉ đặt biệt của modbus. Modbus slave cần được
hỗ trợ yêu cầu chức năng để đọc hay viết địa chỉ đặc trưng modbus
Sử dụng MODBUS slave instruction
Chọn khối MBUS-INIT. thực hiện sau mỗi vòng quét, sử dụng MBUS_INIT để bắt đầu hay thay đỗi thông số truyền
nhận.
Tham khảo tài liệu liên quan tại: />
Cấu trúc MODBUS SLAVE hỗ trợ giao thức modbus RTU
Mode =1 đăng kí port 0 để giao thức modbus và giao thức cho phép,
Mode =0 đăng kí port 0 với PPI và giao thức modbus không sẵng sàn
Delay điều kiện kết thúc message
Tham khảo tài liệu liên quan tại: />
Thông số bound đưa lên 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
Bảng thông số của MBUS_INIT
0-không kiểm tra parity
1-kiểm tra bit lẻ
2 kiểm tra bit chẵn
Các mã chức năng Modbus
Tham khảo tài liệu liên quan tại: />
Tuy nhiên, khi một error được dò, bit cao nhất của mã chức năng được bật lên. Theo cách đó master có thể thấy khác
biệt giữa đáp ứng thành công và thất bại.
Trong ngôn ngữ Modbus, một coil là một giá trị output rời rạc. Chức năng Modbus 01 có thể được dùng để đọc trạng thái
của một output. Chỉ có thể truy vấn một device ở một thời điểm. Địa chỉ Broadcast được hỗ trợ chức năng Modbus này.
Chức năng này có thể được dùng để yêu cầu trạng thái của các coil khác nhau một lúc. Điều này được định nghĩa một
dải output trong trường dữ liệu của message.
Khi nhận một Modbus query message có chức năng 01, slave thu thập các giá trị output cần thiết và dựng một answer
message. Chiều dài của message này phụ thuộc vào số các value mà phải được trả về. Nhìn chung, khi giá trị N được
yêu cầu, một số ((N+7) mod 8) byte là cần thiết để lưu các giá trị này. Số thực sự các databyte trong datablock được đặt
trong byte đầu tiên của data field.
Function 02: Đọc trạng thái input
Đọc các giá trị input với Modbus được làm theo cùng cách như đọc trạng thái các coil. Khác biệt duy nhất là cho các input
Modbus function 02 được dùng. Broadcast addressing mode khơng được hỗ trợ. Bạn có thể chỉ giá trị các input chỉ trên
một device ở một lúc. Giống với các coil, địa chỉ của input đầu tiên, và số các input để đọc phải được đặt trong data field
của query message. Các Input trên các device bắt đầu đánh số từ 10001. Giá trị địa chỉ này tương đương địa chỉ 0 trong
Modbus message.
Function 03: Đọc các holding register
Các giá trị bên trong một Modbus device được lưu trong các holding register. Các register này có chiều rộng hai byte và
có thể được dùng cho các mục đích khác nhau. Vài thanh ghi chứa các tham số cấu hình trong khi những cái khác được
dùng cho các giá trị đo lường được trả về (nhiệt độ ...) cho host. Các thanh ghi trong thiết bị tương thích Modbus bắt đầu
Tham khảo tài liệu liên quan tại: />
ở 40001. Chúng được định địa chỉ trong cấu trúc thông điệp Modbus với địa chỉ bắt đầu ở 0. Modbus function 03 được
dùng để yêu cầu một hay nhiều giá trị thanh ghi holding từ một device. Chỉ một slave device có thể được định địa chỉ
trong một query đơn. Các query Broadcast với function 03 không được hỗ trợ.
Sau khi xử lý query, Modbus slave trả về các giá trị 16 bit của các holding register được u cầu. Vì kích thước các
holding registers, mọi register được mã với hai byte trong message trả lời. Data byte đầu tiên chứa byte cao, byte thấp
của register. Thông điệp trả lời Modbus bắt đầu với địa chỉ thiết bị slave và function code 03. Byte tiếp là số các data byte
theo sau. Giá trị này là gấp đôi số register được trả về. Một kiểm tra lỗi được mở rộng cho host để kiểm tra có lỗi truyền
thơng xuất hiện hay khơng.
Tham khảo tài liệu liên quan tại: />
CHƢƠNG 3. VÍ DỤ SỬ DỤNG MODBUS ĐIỀU KHIỂN VÀ GIÁM SÁT
1.Các bƣớc thực hiện điều khiển truyền thông modbus
Bƣớc 1: Kết nối
Hinh3: Sơ đồ kết nối master_slave
Tham khảo tài liệu liên quan tại: />
Nếu khơng có 2 cổng COM. Thì hãy đổ chương trình cho từng cổng sau đó nối cáp Modbus. Khi điều khiển 1 Master 1
Slave chỉ cần 3 dây điện nối như hình vẽ. Nếu điều khiển nhiều Slave…phải dùng cáp PROFIBUS và bộ chia….
Bƣớc 2: Cách khai báo
CHÚ Ý: Modbus master chỉ có thể giao tiếp 247 slave, với địa chỉ từ 1-247, 0 là địa chỉ BROADCAST( địa chỉ phát)
Tham khảo tài liệu liên quan tại: />
Hình 4: Cơ chế giữa Master và Slave. Master và Slave có hiểu nhau
Bƣớc 3: Phương thức truyền dữ liệu. Cùng địa chỉ trên 2 CPU nhận được
Tham khảo tài liệu liên quan tại: />
Hình 5
Bƣớc 4. Khai báo vùng nhớ trong thƣ viện.
Tham khảo tài liệu liên quan tại: />
Để khi biên dịch không lỗi chúng ta cần khai báo vùng nhớ.
Tham khảo tài liệu liên quan tại: />
Chú ý Phải cài thƣ viện modbus cho step7_microwin.
.
2.Ví dụ.
a.Chƣơng trình cho master.
Tham khảo tài liệu liên quan tại: />
Tham khảo tài liệu liên quan tại: />
Tham khảo tài liệu liên quan tại: />
Tham khảo tài liệu liên quan tại: />
Tham khảo tài liệu liên quan tại: />
b.Chƣơng trình cho slave.