Cấu trúc khung truyền

Một phần của tài liệu Nghiên cứu, thiết kế, chế tạo hệ thống điều khiển thiết bị điện từ xa bằng tin nhắn SMS và ứng dụng trong lĩnh vực cơ điện tử (Trang 39)

Trong mạng Modbus chuẩn, khi một trong hai chế độ ASCII hoặc RTU đƣợc chọn thì một thông báo sẽ đƣợc đóng khung. Mỗi khung bao gồm nhiều ký tự và mỗi ký tự đƣợc tổ chức nhƣ trên. Các ký tự này sẽ đƣợc truyền đi liên tục trong chế độ RTU và gián đoạn trong chế độ ASCII.

Khung ASCII

Trong chế độ ASCII, một thông báo bắt đầu với dấu hai chấm (:), tức là ký tự 3A trong bảng mã ASCII và kết thúc bằng hai ký tự trở về đầu dòng/xuống dòng (CRLF), tức hai ký tự 0D và 0A trong bảng mã ASCII. Mỗi byte trong thông báo đƣợc truyền đi bằng hai 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.

Khởi đầu Địa chỉ Mã hàm Dữ liệu Mã LRC Kết thúc

1 ký tự 2 ký tự 2 ký tự N ký tự 2 ký tự 2 ký tự Mỗi thiết bị tham gia trong mạng có trách nhiệm liên tục theo dõi đƣờng truyền và phát hiện sự xuất hiện của dấu hai chấm. Khi dấu hai chấm nhận đƣợc thì 2 ký tự tiếp thao 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 thời gian tối đa cho phép giữa 2 ký tự trong một thông báo là 1s. Nếu vƣợt quá trị này, bên nhận sẽ coi là lỗi.

29

Khung RTU

Trong chế độ RTU, một thông báo bắt đầu với một khoảng trống yên lặng tối thiểu bằng 3.5 lần thời gian của một ký tự. Ô đầu tiên đƣợc truyền sẽ là 8 bit địa chỉ, sau đó đến 8 bit mã hàm, các byte dữ liệu và cuối cùng là thông tin kiểm tra lỗi CRC. Sau khi truyền ký tự cuối cùng, khung thông báo cũng phải đƣợc kết thúc bằng một khoảng yên lặng tối thiểu bằng 3.5 thời gian một ký tự trƣớc khi bắt đầu một thông báo mới.

Khởi đầu Địa chỉ Mã hàm Dữ liệu Mã CRC Kết thúc

(----) 8 bit 8 bit N x 8 bit 16 bit (----)

Khác với chế độ ASCII, toàn bộ khung thông báo RTU phải đƣợc truyền thành một dòng liên tục. Nếu một khoảng trống yên lặng lớn hơn 1.5 thời gian ký tự xuất hiện trƣớc khi truyền xong toàn bộ khung thì thiết bị nhận 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ỉ trong một khung thông báo là 8 bit. Các giá trị địa chỉ hợp lệ nằm trong khoảng 0 – 247, trong đó địa chỉ 0 dành cho các thông báo gửi đồng loạt tới tất cả các trạm tớ. Nếu Modbus đƣợc sử dụng trên một mạng khác thì phƣơng thức gửi hàng loạt có thể không đƣợc hỗ trợ, hoặc đƣợc thay thế bằng một phƣơng pháp khác.

Một thiết bị chủ sử dụng ô địa chỉ để chỉ định thiết bị tớ nhận thông báo 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 mà thiết bị chủ có thể xác định thiết bị tớ nào đã trả lời. Trong một mạng Modbus chuẩn chỉ có một trạm chủ duy nhất, vì thế ô địa chỉ không cần thiết phải chứa cả địa chỉ trạm gửi và trạm nhận.

Giống nhƣ địa chỉ, phần mã hàm trong một khung thông báo cũng là 8 bit. Các giá trị hợp lệ nằm trong khoảng từ 1 – 255, trong đó các mã hàm trong thông báo yêu cầu chỉ đƣợc phép từ 1 – 127. Tuy nhiên, hầu hết các thiết bị chỉ hỗ trợ một phần nhỏ số hàm nói trên và một số mã hàm đƣợc dự trữ.

Khi một thông báo gửi từ thiết bị chủ tới một thiết bị tớ, mã hàm có chức năng chỉ định hành động mà thiết bị tớ cần thực hiện. Khi thiết bị tớ trả lời, nó cũng dùng chính mã hàm đó trong thông báo đáp ứng bình thƣờng. Trong trƣờng hợp xảy ra lỗi, mã hàm trả lại sẽ là 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. 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 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 (ví dụ nội dung các thanh ghi đã đọc). Nếu xảy ra lỗi,

30

phần dữ liệu chứa mã ngoại lệ, nhờ đó mà thiết bị chủ xác định hành động tiếp theo cần 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. Khởi đầu 3.5 ký tự Kết thúc 3.5 ký tự Địa chỉ 8 bits Mã hàm 8 bits Dữ liệu N x 8 bits Kiểm tra CRC 16 bits Bản tin MODBUS 3.5 ký tự 3.5 ký tự 3.5 ký tự 4.5 ký tự

Khung 1 Khung 2 Khung 3

t0

Hình 1.22: Cấu trúc khung truyền của Modbus RTU

Một phần của tài liệu Nghiên cứu, thiết kế, chế tạo hệ thống điều khiển thiết bị điện từ xa bằng tin nhắn SMS và ứng dụng trong lĩnh vực cơ điện tử (Trang 39)