Các trạm Modbus giao tiếp với nhau qua cơ chế Master/Slaver, trong đó chỉ có 1 thiết bị chủ có thể chủ động gởi yêu cầu, các thiết bị tớ sẽ đáp ứng bằng dữ liệu trả lại hoặc thực hiện mộ
Trang 1Contents 1
A.GIỚI THIỆU CHUNG 2
B.Phân tích các giải pháp công nghệ để thực hiện các yêu cầu kỹ thuật của mạng công nghiệp trong hệ thống Modbus 2
1.Giao thức modbus: 3
2 Cơ chế giao tiếp 5
3 Chế độ truyền tải: 7
a.Chế độ ASCII: 7
b Chế độ RTU 7
4.Tổ chức vùng nhớ: 8
5.Cấu trúc bức điện 9
a Khung ASCII: 9
b Khung RTU 11
6 Bảo toàn dữ liệu: 11
a.Kiểm soát LRC: 12
b.Kiểm soát CRC: 12
C Phiên bản của modbus: 16
Trang 2A GIỚI THIỆU CHUNG
Tôi cũng chỉ biết qua qua do không chuyên về thứ này lắm, nhưng có va chạm
khi làm về các thiết bị tự động trên tàu (loading computer, tank level gauging,
engine alarm & monitoring systems, etc)
Cơ bản thì MODBUS là một protocol phổ biến bậc nhất được sử dụng hiện nay cho
nhiều mục đích MODBUS đơn giản, rẻ, phổ biến và dễ sử dụng Được phát minh từ
thế kỉ trước (gần 30 năm trước), các nhà cung cấp thiết bị đo và thiết bị tự động hóa
trong công nghiệp tiếp tục hỗ trợ MODBUS trong các sản phẩm thế hệ mới Mặc dù
các bộ phân tích, lưu lượng kế, hay PLC đời mới có giao diện kết nối không dây,
Ethernet hay fieldbus, MODBUS vẫn là protocol mà các nhà cung cấp lựa chọn cho
các thiết bị thế hệ cũ và mới
Một ưu điểm khác của MODBUS là nó có thể chạy hầu như trên tất cả các
phương tiện truyền thông, trong đó có cổng kết nối dây xoắn, không dây, sợi quang,
Ethernet, modem điện thoại, điện thoại di động và vi sóng Có nghĩa là, kết nối
MODBUS có thể được thiết lập trong nhà máy thế hệ mới hay hiện tại khá dễ dàng
Thực ra, nâng cao ứng dụng cho MODBUS là cung cấp truyền thông số trong nhà
máy đời cũ, sử dụng kết nối dây xoắn hiện nay
MODBUS do Modicon (hiện nay thuộc Schneider Electric) phát triển năm
1979, là một phương tiện truyền thông với nhiều thiết bị thông qua một cặp dây
xoắn đơn Ban đầu, nó hoạt động trên RS232, nhưng sau đó nó sử dụng cho cả
RS485 để đạt tốc độ cao hơn, khoảng cách dài hơn, và mạng đa điểm (multi-drop)
MODBUS đã nhanh chóng trở thành tiêu chuẩn thông dụng trong ngành tự động
hóa, và Modicon đã cho ra mắt công chúng như một protocol miễn phí
Ngày nay, MODBUS-IDA, tổ chức sử dụng và cung cấp MODBUS lớn nhất
tiếp tục hỗ trợ protocol MODBUS trên toàn cầu
MODBUS là một hệ thống “chủ - tớ”, “chủ” được kết nối với một hay nhiều
“tớ” “Chủ” thường là một PLC, PC, DCS, hay RTU “Tớ” MODBUS RTU thường
là các thiết bị hiện trường, tất cả được kết nối với mạng trong cấu hình multi-drop
(hình1) Khi một chủ MODBUS RTU muốn có thông ty từ thiết bị, chủ sẽ gửi một
thông điệp về dữ liệu cần, tóm tắt dò lỗi tới địa chỉ thiết bị Mọi thiết bị khác trên
mạng sẽ nhận thông điệp này nhưng chỉ có thiết bị nào được chỉ định mới có phản
ứng
B Phân tích các giải pháp công nghệ để thực hiện các yêu cầu kỹ thuật của mạng công nghiệp trong hệ thống Modbus
Trang 3.Giao thức modbus :
Modbus là giao thức do hãng Modicon phát triển Theo mô hình OSI/ISO thì Modbus thực chất là một chuẩn giao thức và dịch vụ thuộc lớp ứng dụng, vì
vậy có thể được thực hiện trên các cơ chế vận chuyển cấp thấp như TCP/IP, MAP
(Manufactoring Message Protocol), và ngay cả qua đường truyền nối tiếp
RS-232
Trang 52 Cơ chế giao tiếp
Mạng Modbus chuẩn sử dụng giao diện nối tiếp RS-232C Các trạm Modbus giao tiếp với nhau qua cơ chế Master/Slaver, trong đó chỉ có 1 thiết
bị chủ có thể chủ động gởi yêu cầu, các thiết bị tớ sẽ đáp ứng bằng dữ liệu trả lại hoặc thực hiện một hành động nhất định theo như yêu cầu
Các thiết bị chủ thông thường là máy tính điều khiển trung tâm và các thiết bị lập
trình
Các thiết bị tớ có thể la PLC hoặc các bộ điều khiển số chuyên dụng khác
Một trạm chủ có thể gởi thông báo yêu cầu tói riêng một trạm tớ nhất định,
hoặc gởi
thông báo đồng loạt (broadcast) tới tất cả các trạm tớ.Chỉ trong trường hợp nhận
được
yêu cầu riêng, các trạm tớ mới gởi thông báo trả lại trạm chủ Nếu thông báo yêu
cầu
có chứa địa chỉ trạm nhận, mã hàm dịch vụ bên nhận cần thực hiện, dữ liệu đi
kèm và
thông tin kiểm lỗi
*Chu trình yêu cầu đáp ứng :
Khuôn dạng của thông báo yêu cầu cũng như của thông báo đáp ứng như sau :
Trang 6Một thông báo yêu cầu bao gồm các phần sau :
• Địa chỉ trạm nhận yêu cầu (0-247), trong đó 0 là địa chỉ gởi đồng loạt
• Mã hàm gọi chỉ thị hành động trạm tớ cần yêu cầu
• Dữ liệu chứa các thông tin bổ sung mà trạm tớ cần cho việc thực hiện hàm được
gọi Khi đọc thanh ghi, dữ liệu này chỉ rõ thanh ghi đầu tiên và số lượng các thanh ghi
được đọc
• Thông tin kiểm lỗi giúp trạm tớ kiểm tra độ vẹn toàn của nội dung thông báo
nhận được
Thông báo đáp ứng cũng bao gồm các thành phần giống như thông báo yêu
cầu Địa
chỉ ở đây là của chính trạm tớ đã thực hiện yêu cầu và gởi lại đáp ứng Trong
trường
hợp bình thường, mã hàm được giữ nguyên như trong thông báo yêu cầu và dữ
liệu
Trang 7chứa kết quả thực hiện hành động, ví dụ nội dung và trạng thái hoạt động thanh
ghi
Nếu xảy ra lỗi, mã hàm quay lại được sửa để chỉ thị dấp ứng là một thông báo
lỗi, còn
dữ liệu mô tả chi tiết lỗi xảy ra Phần kiểm lỗi giúp trạm chủ xác định độ chính
xác
của nội dung thông báo nhận được
3 Chế độ truyền tải:
Đối với các thiết bị ghép nối qua mạng Modbus chuẩn, có thể sử dụng một trong 2 chế
độ truyền tải là ASCII hoặc RTU Người sử dụng lựa chọn chế độ theo ý muốn,
cùng với
các tham số truyền thông qua cổng nối tiếp như tốc độ truyền, parity chẵn/lẻ,…
Chế độ truyền cũng như các tham số phải giống nhau đối với tất cả các thành viên
của một mạng Modbus
a Chế độ ASCII:
American Standard Code for Information Interchange
Mỗi byte thông báo được gởi thành hai ký tự ASCII 7bit, trong đó mỗi ký tự
biểu diễn một chữ số hex
Cấu trúc một ký tự khung gởi đi được thể hiện như sau :
Mỗi ký tự khung bao gồm :
• 1 bit khởi đầu (startbit)
• 7 bit biễu diễn 1 chữ số hex của byte cần gởi dưới dạng ký tự ASCII (0-9
và A-F), trong đó bit thấp nhất được gởi đi trước
• 1 bit parity chẵn/lẽ, nếu sử dụng parity
• 1 bit kết thúc (stopbit) nếu sử dụng parity hoặc 2 bit kết thúc nếu không sử dụng
parity
b Chế độ RTU
Remote Terminal Unit
Mỗi byte thông báo được gởi thành một ký tự 8 bit
Trang 8Cấu trúc của một ký tự khung được gởi đi được thể hiện như sau :
Mỗi ký tự khung bao gồm :
• 1 bit khởi đầu (startbit)
• 8 bit của byte thông báo được gởi, trong đó bit thấp nhất được gởi đi trước
• 1 bit parity chẵn/lẽ, nếu sử dụng parity
• 1 bit kết thúc (stopbit) nếu sử dụng parity hoặc 2 bit kết thúc nếu không sử dụng
parity
*** So sánh 2 chế độ truyền :
Hiệu suất : RTU cao hơn ASCII
Thời gian chờ : ASCII cho phép một khoảng thời gian trống tối đa một giây giữa 2 ký tự mà không gây ra lỗi Còn RTU thì mỗi thông báo phải
được truyền thành dòng liên tục
4.Tổ chức vùng nhớ:
Mỗi thiết bị MODBUS có bộ nhớ chứa dữ liệu quá trình Thông số kỹ thuật của
MODBUS chỉ ra cách dữ liệu được gọi ra như thế nào, loại dữ liệu nào có thể được gọi
ra Tuy nhiên, không đặt ra giới hạn về cách thức và vị trí mà nhà cung cấp đặt dữ liệu
trong bộ nhớ Dưới đây là ví dụ về cách thức mà nhà cung cấp đặt các loại dữ liệu biến
thiên quá trình hợp lí
Các đầu vào và cuộn cảm rời rạc có giá trị 1 bit, mỗi một thiết bị lại có một địa chỉ cụ
thể Các đầu vào analog (bộ ghi đầu vào) được lưu trong bộ ghi 16 bit Bằng cách sử
dụng 2 bộ ghi này, MODBUS có thể hỗ trợ format điểm floating (nổi) IEEE 32 bit Bộ
ghi Holding cũng sử dụng các bộ ghi bên trong 16 bit hỗ trợ điểm floating
40001 – 49999 Đọc hoặc viết Bộ ghi Holding
Hình 1: Hướng dẫn xử dụng của hầu hết các thiết bị tương thích MODBUS như
bộ truyền nhiệt TMZ của Moore Industries, công bố địa chỉ của các chỉ số biến thiên
quan trọng trong bộ nhớ MODBUS Địa chỉ TMZ tuân theo các thông số kỹ thuật của
MODBUS
Trang 9- Dữ liệu trong bộ nhớ được xác định trong thông số kỹ thuật MODBUS Giả sử rằng nhà
cung cấp tuân theo tiêu chuẩn kỹ thuật MODBUS (không phải tất cả), mọi dữ liệu có thể
được truy cập dễ dàng bởi chủ, thiết bị tuân theo các thông số kỹ thuật trong nhiều
trường hợp, nhà cung cấp thiết bị công bố vị trí của bộ nhớ, tao điều kiện cho nhân viên
lập trình dễ dàng để kết nối với thiết bị tớ
5.
Cấu trúc bức điện
Một thông báo Modbus bao gồm nhiều thành phần và có chiều dài khác nhau
Nếu 1 trong 2 chế độ truyền được chọn, một thông báo sẽ được đóng khung
Mỗi khung bao gồm nhiều ký tự khung có cấu trúc như được mô tả ở mục trên hai chế độ truyền ASCII và RTU không những chỉ khác nhau ở cách mã hóa
thông
tin gởi đi và cấu trúc ký tự khung, mà còn khác nhau ở cấu trúc một bức điện gởi
đi – hay nói cách khác là cấu trúc khung thông báo, cũng như biện pháp kiểm lỗi
a Khung ASCII:
Khở
i
đầu
Khở
i đầu
Mã hà m
Dữ liệ u
Mã LC R
Kết thúc
1 ký
tự
:
2 ký
tự
n
ký tự
2 ký
tự 2 ký tựCR+L
F
Một thông báo bắt đầu với dấu ‘:’, tức là ký tự 3A, và kết thúc bằng hai dấu qua
lại – xuống dòng ‘CRLF’, tức là 2 ký tự ASCII 0D và 0A Mỗi byte trong thông
báo được truyền đi bằng 2 ký tự ASCII, vì vậy các ký tự được phép xuất hiện
trong các phần còn lại của khung là 0-9 và A-F
Mỗi thiết bị tham gia mạng có trách nhiệm liên tục theo dõi đường truyền
và sự xuất hiện của dấu ‘:’.Khi dấu ‘:’ xuất hiện thì 2 ký tự tiếp theo sẽ mang địa
chỉ của thiết bị được yêu cầu nhận thông báo hoặc thiết bị đã gởi thông báo đáp
ứng Khoảng cách tối đa cho phép giữa 2 ký tự trong một thông báo là 1 giây
Vượt quá giá trị này xem như bị lỗi
Trang 10Địa chỉ gồm 2 ký tự ASCII Các giá trị hợp lệ nằm trong khoảng 0-247, trong
đó địa chỉ 0 dành riêng cho các thông báo gửi đồng loạt tới các trạm tớ
Một thiết bị chủ sử dụng ô địa chỉ để chỉ định thiết bị tớ nhận yêu cầu Sau khi thực hiện yêu cầu, thiết bị tớ đưa địa chỉ của mình vào khung thông báo đáp
ứng, nhờ vậy
thiết bị chủ có thể biết thiết bị tớ nào đã trả lời
Trong một mạng Modbus chuẩn chỉ có 1 trạm chủ duy nhất, vì thế ô địa
chỉ không
cần thiết chứa cả địa chỉ trạm gởi và trạm nhận
Phần mã hàm trong một khung thông báo gồm 2 ký tự ASCII, các giá trị
hợp lệ trong khoảng 1-255, trong đó mã hàm yêu cầu chỉ được phép từ 1-127
Khi một thông báo gởi từ thiết bị chủ đến thiết bị tớ, mã hàm chỉ định
hành động mà thiết bị tớ cần thực hiện
Khi thiết bị tớ thực hiện nó cũng dùng chính mã hàm đó trong thông báo
đáp
ứng bình thường Nếu xảy ra lỗi mã hàm sẽ mã hàm trong yêu cầu với bit cao
nhất được đặt bằng 1 và phần dữ liệu sẽ chứa thông tin chi tiết về lỗi đã xảy ra
Trong một thông báo yêu cầu, nội dung phần dữ liệu nói lên chi tiết hành động
mà
bên nhận cần thực hiện Trong trường hợp bình thường, phần dữ liệu trong thông
báo
đáp ứng sẽ chứa kết quả của hành động thực hiện Nếu xảy ra lỗi, phần dữ liệu
chứa
mã ngoại lệ, nhờ đó mà thiết bị chủ xác định hành động đã thực hiện Lưu ý rằng
một số hàm không đòi
hỏi tham số, vì vậy phần dữ liệu có thể trống
Ví dụ : Trong một yêu cầu đọc các thanh ghi thì phần dữ liệu chứa thông tin về
địa
chỉ thanh ghi đầu tiên, số lượng các thanh ghi cần đọc và chiều dài thực tế của
chính
phần dữ liệu Trong thông báo đáp ứng chứa nội dung các thanh ghi đã đọc
Khung ASCII sử dụng phương pháo kiểm lỗi LRC gồm 2 ký tự
Trang 11b Khung RTU
Khở
i
đầu
Khở
i đầu
Mã hà m
Dữ liệ u
Mã LC R
Kết thú c
( )
8 bit
n*8 bit
8 bit
16 bit
( )
Một thông báo bắt đầu với 1 khoảng trống yên lặng tối thiểu là 3.5 thời gian ký
tự,
thường biểu thị bằng dãy ( ) Ô đầu tiên sẽ truyền 8 bit địa chỉ, sau đó dén 8 bit
mã
hàm, một số byte tùy ý dữ liệu và cuối cùng là thông tin kiểm lỗi CRC Thông
báo kết
thúc cũng bằng 1 khoảng trống yên lặng tối thiểu là 3.5 thời gian ký tự Thực tế
khoảng
trống kết thúc 1 thông báo cũng chính la khoảng trống bắt đầu bắt buộc của 1
thông
báo tiếp theo
Toàn bộ khung thông báo RTU phải được truyền thành dòng liên tục Nếu 1
khoảng
trống yên lặng >1.5 thời gian ký tự xuất hiện trước khi truyền xong toàn bộ
khung,
thiết bị nhận được sẽ hủy bỏ thông báo chưa đầy đủ đó và cho rằng byte tiếp theo
sẽ là
địa chỉ của một thông báo mới
Phần địa chỉ giống như trong chế độ ASCII, nhưng bao gồm 8 bit
Phần mã hàm giống như chế độ ASCII, nhưng bao gồm 8 bit
Phần dữ liệu giống như chế độ ASCII, nhưng bao gồm n*8 bit
Khung RTU sử dụng phương pháp kiểm lỗi CRC gồm 16 bit
6
Bảo toàn dữ liệu:
Mạng Modbus chuẩn sử dụng 2 biện pháp bảo toàn dữ liệu ở 2 mức:
Trang 12• Kiểm soát khung thông báo
• Kiểm soát ký tự khung
Có thể lựa chọn kiểm tra bit chẵn/lẻ cho từng ký tự khung
Cả khung thông báo lại được kiểm soát 1 lân nữa bằng mã LRC với chế đọ
truyền
ASCII hoặc mã CRC với chế độ RTU
a.Kiểm soát LRC:
LRC : Longitudinal Redundancy Check
Dùng trong chế độ truyền ASCII
Dãy nguồn bit được áp dụng để tính mã LRC bao gồm phần địa chỉ, mã hàm và
phần
dữ liệu Các ô khởi đầu, kết thúc khung không tham gia vào tính toán
Dài 8 bit (truyền 2 ký tự ASCII), được tính bằng cách cộng đại số toàn cục các
byte
của dãy nguồn bit nguồn (không tính tới tràn), sau đó lấy phần bù 2 của kết quả
Khi đặt cấu hình cho một thiết bị chủ, có thể chọn một khoảng thời gian timeout
mà
nó có thể chờ đợi đáp ứng từ trạm tớ Timeout phải đủ lớn để bất cứ thiết bị tớ
nào
cũng có thể trả lời trong điều kiện bình thường Nếu thiết bị tớ phát hiện lỗi ở
thông
báo yêu cầu, nó sẽ không trả lời Vì vậy thiết bị chủ sẽ tự nhận biết lỗi và sẽ thực
hiện
các hành động cần thiết Một thông báo gởi tới địa chỉ một trạm không tồn tại
cũng gây
ra timeout
b.Kiểm soát CRC:
CRC :
Dùng trong chế độ truyền RTU
Dài 16 bit
Đa thức phát được sử dụng G=1001 0000 0000 0001
Khi đưa vào khung thông báo, byte thấp của mã CRC gởi trước, tiếp theo là các
byte
Trang 13II Modbus trên các mạng khác:
Với một số mạng khác như Modbus Plus, TCP/IP và MAP ( Manufacturing
Message
Protocol),… sử dụng Modbus là giao thức cho lớp ứng dụng
Ở đây ta xét mạng Modbus Plus
Modbus Plus là một hệ thống bus dựa trên giao thức Modbus, phục vụ nối mạng
ở
cấp trường cũng như ở cấp điều khiển
Ưu điểm của Modbus Plus
• Giá rẻ
• Dễ lắp đặt
• Dễ vận hành
Một số đặt tính kỹ thuật của Modbus plus :
• Modbus Plus sử dụng đôi dây xoắn là môi trường truyền
• Chiều dài cáp dẫn tối đala 500m không cần bộ lặp
• Kỹ thuật truyền dẫn RS-485
• Tốc đọ truyền có thể lên đến 1Mbit/s
• Kỹ thuật truy nhập môi trường là Token-Pasing
1.Cơ chế giao tiếp :
Sử dụng Modbus là giao thức cho lớp ứng dụng, các thiết bị có thể giao tiếp
theo cơ
chế riêng của mạng đó
Ví dụ trong giao tiếp tay đôi (Pear-to-Pear), mỗi bộ điều khiển có thể đóng vai
trò là
chủ hoặc tớ trong các lần giao dịch (một chu kỳ yêu cầu-đáp ứng) khác nhau Một
trạm
có thể cùng một lúc có quan hệ logic với nhiều đối tác, vì vậy nó có thể đồng thời
đóng
vai trò là chủ hoặc tớ trong các lần giao dịch khác nhau
2.Khung Modbus trên mạng Modbus Plus:
Khi thực hiện Modbus trên các mạng khác như Modbus Plus các thông báo
Modbus
được đưa vào khung theo giao thức vận chuyền/liên kết dữ liệu cụ thể
Trang 14Ví dụ : Một lệnh yêu cầu đọc nội dung các thanh ghi có thể được thực hiện giữa
2 bộ
điều khiển ghép nối qua Modbus Plus
Khác với mạng Modbus chuẩn, các thông báo Modbus được gởi trên mạng
Modbus
Plus được đóng thành các khung LLC (Logical Link Control) Mỗi khung LLC
lại được
lớp MAC (Medium Access Control) bổ sung các thông tin như các địa chỉ trạm
gởi và
trạm nhận cũng như số lượng byte được truyền Trước khi mã hóa bit, một khung
MAC
lại được đóng gói thành một bức điện HDLC (High-level Data Link Control)
Output Patch (1 byte) : đường dẫn đầu ra, chỉ thị 1 kênh logic cảu trạm chủ, có vai trò trong việc dồn kênh/phân kênh.