Download as pdf or txt
Download as pdf or txt
You are on page 1of 17

BÁO CÁO THÍ NGHIỆM THIẾT BỊ ĐO VÀ TRUYỀN THÔNG CÔNG NGHIỆP

BÀI THỰC HÀNH SỐ 1 & 2


Họ và tên: Phan Văn Đẹp
MSSV: 20192195
Lớp: CTTT TĐH-HT Điện 01 – K64
Mã lớp thí nghiệm: 719084

I. Nhận dạng các thiết bị

1. Trạm trộn
- Cảm biến:
o Gồm cảm biến nhiệt độ bình và cảm biến nhiệt độ đường ống
o Cảm biến lưu lượng
o Cảm biến siêu âm đo mức nước và cảm biến mức chất lỏng vật lí
- Van:
o Van điện từ
o Van tuyến tính
o Van tay
- Động cơ: 3 động cơ khuấy
o M1 bơm từ bình 1 sang bình 3.
o M2 bơm từ bình 2 sang bình 3.
o M3 bơm từ bình 3 sang bình 4
2. Trạm gia nhiệt
- Cảm biến:
o Đồng hồ đo áp suất
o Cảm biến siêu âm đo mức nước
o Cảm biến nhiệt độ
- Van:
o Van tuyến tính khí nén
o Van tuyến tính
o Van điện từ
o Van tay
- Bơm: M5 bơm từ bình chứa cấp liệu cho bình 1 và bình 2 của trạm trộn.
II. Phân tích tín hiệu vào ra sensor, actuator của trạm trộn
Trạm trộn:
STT Sensor/ Actuator Tín hiệu Chân kết nối PLC
1 Nhiệt độ bình 1 Analog Input AI2
2 Nhiệt độ ống 1 Analog Input AI6
3 Nhiệt độ ống 2 Analog Input AI10
4 Nhiệt độ bình 3 Analog Input AI14
5 Mức bình 3 Analog Input AI22
6 Cảm biến lưu lượng 1 Analog Input AI26
7 Cảm biến lưu lượng 2 Analog Input AI30
8 Van tuyến tính 1 Analog Output AO1
9 Van tuyến tính 2 Analog Output AO5
10 Biến tần bơm 1 Analog Output AO9
11 Biến tần bơm 1 Digital Input DO14
12 Biến tần bơm 1 Digital Input DO13
13 Biến tần bơm 1 Digital Output DI15
14 Biến tần bơm 2 Analog Output AO3
15 Biến tần bơm 2 Digital Input DO16
16 Biến tần bơm 2 Digital Input DO15
17 Biến tần bơm 2 Digital Output DI16

III. Cấu hình phần cứng trên thiết bị TIA


PTN TIN HỌC Họ và tên: Phan Văn Đẹp
CÔNG NGHIỆP MSSV: 20192195
BM Kỹ thuật đo Lớp: CTTT TĐH-HT Điện 01-
& THCN K64
Viện Điện Mã lớp thí nghiệm: 719084

Bài 3.2: ModBus


I. Mục đích bài thí nghiệm:
- Tìm hiểu về giao thức modbus.
- Biết về các khung bản tin và quá trình trao đổi dữ liệu trong modbus.
- Kiểm nghiệm thực tế cấu trúc khung bản tin modbus.
II. Kiến thức cơ bản của Modbus:
Modbus Protocol sử dụng chế độ Master/Slave (hoặc Client/Server trong
Ethernet) theo phương thức truyền nối tiếp RS-232 hoặc RS-485.
Chế độ giao tiếp là yêu cầu/trả lời, chỉ có Master mới được quyền gửi yêu
cầu, slave nào nhận được yêu cầu dành cho mình sẽ thực hiện.
Trong khung bản tin của mạng Modbus chuẩn sẽ gồm 4 trường chính theo
thứ tự: trường địa chỉ, trường mã hàm, trường dữ liệu, trường kiểm tra lỗi. Master
gửi bản tin có trường địa chỉ nằm đầu tiên, địa chỉ này chỉ tới thiết bị cần ra yêu
cầu. Slave sẽ kiểm tra bus liên tục đến khi nhận được địa của mình. Lúc này slave
sẽ kiểm tra mã hàm để xem yêu cầu cần thực hiện, ngoài ra còn có thông tin bổ trợ
để thực hiện yêu cầu đó trong trường dữ liệu. Cuối cùng là thông tin về lỗi trong
trường kiểm tra lỗi để xem bản tin nhận được có chính xác không.
• Hai thành phần chính của Modbus Protocol là trường dữ liệu và trường
mã hàm, hai thành phần còn lại sẽ bỏ đi khi truyền trong mạng cấp cao
hơn:
ADU: Applicantion Data Unit
PDU: Protocol Data Unit
• Kích thước lớn nhất có thể có khi truyền bằng đường truyền RS-485 là
256 byte tương ứng với lớp ADU. Do đó lớp PDU có tối đa:
256 – 1 byte địa chỉ – 2 byte check lỗi =253 byte
Nếu phát hiện lỗi truyền trong bản tin, bên nhận sẽ dừng truyền. Quá một
thời gian trễ nào đó (timeout) đã được quy định, Master sẽ coi là có lỗi và quyết
định hành động phù hợp. Trong trường hợp đặc biệt, slave nhận được thông báo
không có lỗi nhưng vì một lí do khác, nó không thể thực hiện được yêu cầu, một
thông báo theo kiểu “exception response” sẽ được tạo ra và gửi cho Master để
Master định đoạt hành động tiếp theo.
Master có thể gửi bản tin yêu cầu tới riêng một Slave nào đó bằng cách đưa
địa chỉ Slave đó vào trường địa chỉ hoặc gửi bản tin quảng bá tới tất cả các Slave
(đưa giá trị 0 vào trường địa chỉ), lúc này Slave sẽ không gửi bản tin trả lời.
Ngoài mạng chuẩn một Master và nhiều slave, hai controller có thể nối point-
to-point sử dụng Modbus Protocol để truyền giao tiếp theo chế độ Token-passing,
trong đó thiết bị nào truyền thì đóng vai trò Master còn thiết bị nhận sẽ đóng vai trò
slave. Do vậy có thể liên kết bất kì hai controller với nhau.
Trong mạng cấp cao hơn, Modbus Protocol sẽ được đính kèm vào khung bản
tin mạng cấp cao hơn, do đó sẽ bỏ đi trường địa chỉ và trường kiểm tra lỗi.
Có hai kiểu định dạng khung bản tin khác nhau: ASCII và RTU, mỗi kiểu có
ưu điểm riêng. Hai kiểu này chỉ dùng với mạng Modbus chuẩn, còn ví dụ một mạng
cấp cao khác truyền song song, không phải phương thức truyền nối tiếp của
Modbus thì Modbus Protocol sẽ đính vào khung bản tin đó theo phương thức khác
ta sẽ xét sau.
ASCII:
• Sử dụng mã ASCII (7 bít mỗi kí tự), thông tin được chuyển thành các
số hexa rồi chuyền đi các chuỗi nhị phân ứng với mã ASCII của từng
kí tự hexa đó. Nói cách khác mỗi byte 8 bit của thông tin cần truyền sẽ
tách ra chuyển thành hai số hexa, mỗi số hexa sau đó tuỳ theo mã
ASCII mà chuyển thành một chuỗi 7 bit, cuối cùng chuỗi bit này sẽ
được chuyển đi. Ví dụ địa chỉ thanh ghi là 0001 0100 (20 thập phân) sẽ
chuyển thành 1E hexa rồi truyền đi, tức là truyền đi chuỗi nhị phân là
mã ASCII của 1&E (49&69): 0110001 1000101
• Ngoài các trường chính, bản tin được khởi đầu bằng kí tự “:”, kết thúc
bằng kí tự 2 “CR+LF”. Các thiết bị kiểm tra bus liên tục đến khi nhận
được kí tự “:” thì sẽ bắt đầu sử lí cho đến khi nhận được 2 kí tự kết
thúc “CRLF”.
• Kiểm tra lỗi bản tin bằng phương pháp LRC
• Số lượng bit/byte phân bố như sau
➢ 1 start bit
➢ 7 data bit biểu diễn mã ASCII của một kí tự 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ẻ).
• Khung bản tin sử dụng ASCII như sau:

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ữ

✓ FC 06: (0x06) Write Single Register


III. Thiết bị và phần mềm thí nghiệm:
1. Máy tính có cổng USB - Bộ chuyển đổi USB – RS485
2. Thiết bị thí nghiệm: Đồng hồ DPM380

Để 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ồ

3. Phần mềm kiểm tra MULTIWAY:


+ Worksheet 1 hiển thị thông tin gửi đi. Worksheet 1: phần mền tự tính toán CRC
+ Worksheet 4 hiển thị thông tin nhận được.
+ Trên thanh 2: công cụ và các menu.
IV. Các bước thí nghiệm:
1. Xác định cổng COM được sử dụng trên máy tính thí nghiệm của mình:
Control panel->System Properties->Hardwave-> Device Manager.
Cổng COM dùng trên máy tính thí nghiệm của em là COM3.
2. Giáo viên hướng dẫn đọc cho sinh viện cấu hình cài đặt của thiết bị
Địa chỉ thiết bị: 60 (3CH)
Tốc độc truyền: 9600
Parity: ODD
3. Vào phần mềm và cài đặt cổng COM phù hợp với cổng em đã kiểm tra.
4. Kiểm tra lại ID, Parity, Baudrate của thiết bị

4.1: Địa chỉ thiết bị


Chuẩn bị: Bản tin hỏi
Start Address Function Data Error check End
3C 03 03E8 0001
Kết quả thí nghiệm
Bản tin nhận:
Start Address Function Data Error check End
3C 03 003C D590
Địa chỉ thiết bị là: 100
4.2: Parity
Chuẩn bị: Bản tin hỏi
Start Address Function Data Error check End
3C 03 03E9 0001
Kết quả thí nghiệm
Bản tin nhận:
Start Address Function Data Error check End
3C 03 0003 9580
Parity là: Odd
4.3 Tốc độ truyền
Chuẩn bị: Bản tin hỏi
Start Address Function Data Error check End
3C 03 03EA 0001
Kết quả thí nghiệm
Bản tin nhận:
Start Address Function Data Error check End
3C 03 0003 9580
Tốc độ truyền là: 9600
4.4 Lấy thông tin của địa chỉ thiết bị, tốc độ truyền và parity
Chuẩn bị: Bản tin hỏi
Start Address Function Data Error check End
3C 03 03E8 0003 8C4E
Kết quả thí nghiệm
Bản tin nhận:
Start Address Function Data Error check End
3C 03 06 0064 0003 0003 77EE
Nhận xét kết quả thu được: Kết quả thu được phù hợp.
5. Chức năng 03/04: Xác định I, P:
Thay đổi tải các pha bằng cách bật tắt công tắc bóng đèn
a. Bản tin gửi: đo dòng pha 1, một bóng sáng
Start Address Function Data Error check End
3C 03 0FB5 0001
Bản tin nhận:
Start Address Function Data Error check End
3C 03 0231 1535

Kết quả dòng điện đọc trên đồng hồ: 0.561A

b. Bản tin gửi: đo công suất pha 1, một bóng sáng


Start Address Function Data Error check End
3C 03 0FC9 0001
Bản tin nhận:
Start Address Function Data Error check End
3C 03 0231 15E1

Kết quả công suất đọc trên đồng hồ: 129W


c. Bản tin gửi: đo dòng pha 2, hai bóng sáng
Start Address Function Data Error check End
3C 03 0FB7 0001
Bản tin nhận:
Start Address Function Data Error check End
3C 03 0481 1721

Kết quả dòng điện đọc trên đồng hồ: 1.153A


d. Bản tin gửi: đo công suất pha 2, hai bóng sáng
Start Address Function Data Error check End
3C 03 OFCC 0001
Bản tin nhận:
Start Address Function Data Error check End
3C 03 0104 D5D2

Kết quả công suất đọc trên đồng hồ: 260W


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ồ.
Các giá trị nhận được trên máy tính và đọc đồng hồ là hoàn toàn giống nhau.
5. Chức năng 06:
Ghi giữ liệu lên thanh ghi

a. Bản tin gửi: ghi giờ


Start Address Function Data Error check End
3C 06 0070 0001 4024
Bản tin nhận:
Start Address Function Data Error check End
3C 06 00 01 3ED5

a. Bản tin gửi: ghi phút


Start Address Function Data Error check End
3C 06 006F 0001 71E2
Bản tin nhận:
Start Address Function Data Error check End
3C 06 00 01 3ED5

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ồ.
Các giá trị nhận được trên máy tính và đọc đồng hồ là hoàn toàn giống nhau.

Kết luận tự rút ra về bài TN:


Bài thí nghiệm đã giúp sinh viên hiểu rõ các lệnh trong giao thức Modbus RS232 và được kiểm
chứng những lệnh đó bằng thực hành trên hệ thống.

You might also like