Professional Documents
Culture Documents
NGHIỆP
BM Kỹ thuật đo & THCN
Viện Điện
RTU:
Truyền từng 8 bít nhị phân, cũng chuyển thông tin thành các số hexa (mỗi 8 bít
chứa 2 kí tự ASCII). Ví dụ địa chỉ thanh ghi 0001 0100 (20) chuyển thành 1E rồi
truyền, tức là truyền đi chuỗi 8 bit 0001-1110 (1-E).
Cấu trúc bit truyền 1 byte như sau:
1 start bit
8 data bit biểu diễn 2 hexa cần truyền.
có hoặc không 1 bit kiểm tra chẵn lẻ
1 stop bit (nếu có bit kt chẵn lẻ) hoặc 2 (không có kiểm tra chẵn lẻ).
Kiểm tra lỗi bằng phương pháp CRC.
RTU khởi đầu và kết thúc bằng một khoảng thời gian trễ qui uớc theo từng mạng,
ít nhất là 3.5 lần thời gian truyền một kí tự.
Khung bản tin có dạng:
Thiết bị kiểm tra thời gian tĩnh trên bus đến khi >3.5 lần thời gian qui định truyền
1 kí tự thì thông tin nhận được đầu tiên sẽ là trường địa chỉ. Sau đó khi thời gian
trễ quá 3.5 lần thời gian truyền 1 kí tự thì sẽ coi là kết thúc bản tin.
Ta có thể thấy nếu truyền bằng định dạng RTU sẽ tiết kiệm số bít hơn vì 8 bit nhị phân
truyền được 2 kí tự, còn ASCII truyền 2 kí tự mất 7x2=14 bít. Tuy nhiên ASCII có thời gian trễ
giữa 2 bít liền nhau lên tới 1 giây cho nên sẽ ổn định hơn còn RTU phải truyền thông tin thành
một dòng liên tục.
Trường địa chỉ (address field):
Gồm 2 kí tự hexa, trường địa chỉ kéo dài từ 0 đến 247.
Master muốn gửi thông tin yêu cầu đến thiết bị nào sẽ đặt địa chỉ của thiết bị đó
vào trường địa chỉ, Slave sau khi thực hiện yêu cầu sẽ gửi bản tin trả lời cho
Master (kể cả trường hợp Slave kiểm tra thấy bản tinyêu cầu có lỗi và gửi phản hồi
báo lỗi) cũng sẽ đặt địa chỉ của mình vào trường địa chỉ.
Trong trường hợp Master muốn gửi bản tin quảng bá tới tất cả các bản tin, nó sẽ
đặt địa chỉ 0 (00) vào trường địa chỉ.
Ví dụ thiết bị số 7 sẽ có địa chỉ dạng hexa là 07; thiết bị số 17 sẽ có địa chỉ 12.
Trường mã hàm (function codes field):
Gồm hai kí tự hexa, khoảng địa chỉ kéo dài từ 0 đến 255
Tuỳ theo giá trị giá trị mã hàm, Slave sẽ xác định công việc được yêu cầu. Sau đó
nó gửi bản tin trả lời với trường này được giữ nguyên. Nếu phát hiện thấy lỗi trong
bản tin yêu cầu từ Master, Slave gửi bản tin báo lỗi với một thay đổi trong trường
mã hàm: bít cao nhất (most significant bit) chuyển thành 1 hay cộng thêm 80 vào
địa chỉ cũ ở dạng hexa.
Ví dụ mã 03 (0000 0011) là đọc thanh ghi giữ (holding register), nếu có lỗi bản tin
phản hồi sẽ có trường mã hàm là 83 (1000 0011).
Trường dữ liệu (data field):
Trường dữ liệu chứa 2 kí tự hexa từ 00 đến FF
Trường dữ liệu bổ xung những thông tin cần để thiết bị thực hiện những yêu cầu
nêu ra trong trường mã hàm, như khi yêu cầu đọc giá trị một nhóm coil liên tiếp
trong một thiết bị nào đó thì cần cho biết địa chỉ coil đầu tiên và số lượng coil cần
đọc. Chú ý địa chỉ coil khác với địa chỉ thiết bị đã được ghi trong trường địa chỉ.
Đối với những hàm chức năng mà thiết bị có thể thực hiện ngay mà không cần
thông tin bổ xung thì trường dữ liệu sẽ bỏ trống.
Nếu yêu cầu không có lỗi, slave sẽ thực hiện và gửi trả lời trong đó trường dữ liệu
chứa kết quả thực hiện, còn nếu phát hiện có lỗi trong bản tin yêu cầu thì sẽ ngừng
truyền trường và Master sẽ biết được lỗi xảy ra khi quá thời gian timeout. Còn nếu
yêu cầu không thực hiện được mặc dù không phát hiên lỗi truyền, slave sẽ gửi
thông báo dạng “exception response” và dữ liệu trong trường này gọi là “exception
code” ta sẽ sét kĩ trong phần sau.
Kết lại là có 3 dạng:
Dữ liệu yêu cầu:n byte (Master =>Slave)
Dữ liệu trả lời:n byte (Slave=>Master)
Dữ liệu đặc biệt: 1byte (exception code, khi có không thể thực hiện được
yêu cầu)
Trường kiểm tra lỗi (data checking field):
Chứa thông tin đi kèm để xác định tính đúng đắn của bản tin nhận được. Bên nhận
sẽ so sánh bản tin nhận được với thông tin này theo một phương pháp qui định
trước.
Kiểm tra đối với từng byte sẽ dùng phương pháp kiểm tra chẵn lẻ
Kiểm tra đối với toàn bộ khung bản tin sẽ tuỳ theo phương thức truyền: ASCII sẽ
dùng phương pháp LRC, còn RTU dùng phương pháp CRC.
LRC: Mã LRC gồm 8 bit tạo ra bằng cách cộng đại số tất cả các byte của
bản tin (không tính kí tự mở đầu và kết thúc “:” “CRLF”) không để ý tới
tràn rồi lấy phần ù hai kết quả.
CRC:Mã CRC 16 bít tạo ra bằng cách sử dụng đa thức chia G=1010 0000
0000 0001
Các kiểu dữ liệu của Modbus
Một thiết bị có 4 thành phần chính:
Coil-1bit: Tạo ra đầu ra (gián đoạn) đưa ra bus hoặc network, có thể đọc hoặc ghi.
Địa chỉ coil từ 00001-09999
Input Status-1bit (trạng thái đầu vào gián đoạn): Lấy từ bus vào thiết bị, chỉ có thể
đọc. Địa chỉ Input Status từ 10001-19999
Input register-16bit (trạng thái đầu vào liên tục): Lấy từ bus vào thiết bị, chỉ có thể
đọc. Địa chỉ Input register từ 30001-49999
Hold register-16bit: Tạo ra đầu ra (liên tục) đưa ra bus hoặc network, có thể đọc
hoặc ghi. Địa chỉ Hold register từ 40001-49999
Các hàm chức năng trong Modbus
Ví dụ mã hàm 03: đọc trạng thái thanh ghi giữ
Để thay đổi màn hình hiển thị các thông số ta thực hiện theo sơ đồ
Giao tiếp đồng hồ
Nhận xét về các giá trị nhận được trên máy tính và giá trị hiển thị trên đồng hồ.
............................................................................................................................................
............................................................................................................................................
............................................................................................................................................
............................................................................................................................................
............................................................................................................................................
............................................................................................................................................
............................................................................................................................................
............................................................................................................................................