Bài viết này trình bày một thiết kế hệ thống cân băng định lượng có khả năng điều khiển độc lập từng thành phần và giao tiếp truyền thông theo các chuẩn công nghiệp phổ biến. Do vậy, hệ thống thiết kế sẽ có khả năng tích hợp vào các hệ thống khác nhau và giao tiếp với các màn hình giao diện người – máy (Human Machine Interface – HMI) của các hãng nổi tiếng trên thế giới để nhận các chỉ thị, hiển thị và lưu trữ các thông tin vận hành một cách rất thuận tiện mà không cần sử dụng máy tính.
Trang 1THIẾT KẾ VÀ CHẾ TẠO HỆ THỐNG CÂN BĂNG ĐỊNH LƯỢNG ĐIỀU KHIỂN ĐỘC LẬP TỪNG THÀNH PHẦN VÀ GIAO TIẾP MODBUS
Nguyễn Tiến Hưng * , Vũ Quốc Đông
Trường Đại học Kỹ thuật Công nghiệp - ĐH Thái Nguyên
TÓM TẮT
Các hệ thống cân băng định lượng được sử dụng rộng rãi trong các nhà máy sản xuất xi măng, khai khoáng, chế biến thực phẩm, thức ăn gia súc, phân bón Trước đây, các hệ thống cân băng định lượng thường sử dụng một máy tính điều khiển tất cả các cân nên khó có thể được tích hợp trong một hệ thống sản xuất lớn và hiện đại vốn gần như được điều khiển tự động hoàn toàn từ khâu nguyên liệu đầu vào đến sản phẩm đầu ra Các hệ thống cân băng định lượng tự động có khả năng điều khiển độc lập từng thành phần và giao tiếp với tầng điều khiển cấp trên thông qua một giao thức truyền thông sẽ khắc phục được các khó khăn nói trên Tuy nhiên, do các hãng sản xuất thường cung cấp các giải pháp tổng thể cho từng nhà máy nên việc tích hợp các thiết bị của các hãng khác nhau vào trong hệ thống sẽ gặp khó khăn do không tương thích về phần cứng và phần mềm Bài báo này trình bày một thiết kế hệ thống cân băng định lượng có khả năng điều khiển độc lập từng thành phần và giao tiếp truyền thông theo các chuẩn công nghiệp phổ biến Do vậy, hệ thống thiết kế sẽ có khả năng tích hợp vào các hệ thống khác nhau và giao tiếp với các màn hình giao diện người – máy (Human Machine Interface – HMI) của các hãng nổi tiếng trên thế giới để nhận các chỉ thị, hiển thị và lưu trữ các thông tin vận hành một cách rất thuận tiện mà không cần sử dụng máy tính Điều này đảm bảo sự hoạt động tin cậy, ổn định và liên tục của toàn bộ hệ thống
Key words: Cân băng định lượng, bộ điều khiển, truyền thông công nghiệp, vi xử lý, Modbus
Các hệ thống cân băng định lượng được sử
dụng rộng rãi trong các dây chuyền sản xuất
công nghiệp để vận chuyển các nguyên liệu
với lưu lượng đặt trước (tính bằng Kg/phút
hoặc Tấn/giờ) Một hệ thống cân băng định
lượng gồm nhiều băng tải có dạng như hình 1
Các thành phần chính của một băng tải bao
gồm: một khung cân, một bộ cảm biến trọng
lượng (loadcell), một bộ điều khiển tốc độ với
một động cơ điện và một bộ đo tốc độ băng
tải [1]
Trục quay
sau
Các con
lăn đỡ liệu
Cơ cấu căng băng
Cảm biến trọng lượng
Cảm biến tốc độ
Trục quay trước Phễu liệu Động cơ
điện
Hình 1 Cấu trúc của một cân băng định lượng
Trong quá trình làm việc bình thường, mỗi
băng tải có một lưu lượng đặt trước và không
có sự liên quan với các băng tải khác Tuy
nhiên, nếu vì một lý do nào đó tốc độ của một
*
Tel: 0913 286461, Email: h.nguyentien@tnut.edu.vn
trong các băng tải không đạt được giá trị mong muốn trong khi các băng tải khác vẫn đang hoạt động đúng sẽ làm cho lưu lượng của băng tải đó không giữ được giá trị đặt trước Sự làm việc không hoàn hảo của một cân băng trong một thời gian đủ lớn sẽ dẫn đến sai lệch tỷ lệ phối liệu và tạo ra các phế phẩm Vì vậy, để đảm bảo tỷ lệ phối liệu thì khi lưu lượng thực tế của một băng tải vượt quá một giới hạn cho trước thì điểm đặt của các lưu lượng của các băng tải còn lại sẽ được điều chỉnh sao cho tất cả lưu lượng của các băng tải sẽ được tăng hay giảm với cùng một
tỷ lệ phần trăm [1] Mô hình động học đầy đủ
và đơn giản hóa của cân băng được trình bày trong các tài liệu [2, 3, 4, 5] Với việc mô tả toán học của các cân băng giúp cho việc áp dụng các bộ điều khiển tốc độ có khả năng giảm được năng lượng tiêu thụ của băng tải [3]
MÔ HÌNH ĐỘNG HỌC CỦA BĂNG TẢI
Mô hình của một hệ thống cân băng đơn giản hóa được mô tả trên hình 2 Việc xây dựng
mô hình toán cho băng tải được thực hiện dựa trên một số giả thiết sau đây [2]:
Trang 2- Động cơ truyền động có mômen động học
nhanh và thời gian trễ nhỏ
- Kết nối giữa trục động cơ và các con lăn là
kết nối cứng
- Băng chuyền có thể được mô tả bởi lò xo
không có khối lượng
- Ma sát tập trung ở các con lăn và tải trọng
Ma sát này được xem như là các nhiễu ngoài
Hình 2 Mô hình băng tải đơn giản hóa
Mô hình toán của hệ thống truyền động
cân băng trên hình 2 được biểu diễn như sau:
r K x Rq x K Rq Rq G
(1)
1( )(x Rq1 x) K x Rq2( 2) 3
G G J G J M q&f ,
2 2 2q&f2
G J , G3M c x f& 1; J J là 1, 2
mômen quán tính của các con lăn dẫn động và
động cơ và hộp giảm tốc; M c là khối lượng
của tải trọng; Rlà bán kính của các con lăn;
1, 2, 3
K K K là các hệ số giãn nở của băng tải
bị thay đổi tùy theo vị trí của tải trọng; x là
1, 2,
q q là vị trí góc của con lăn dẫn động,
con lăn truyền động và động cơ; G là tỷ lệ
giảm tốc; l l l là độ dài hành trình; 1 2, , f1, f2
là các mômen ma sát của các con lăn; f f là
lực ma sát tác động đến tải trọng;
2
tính đối với con lăn truyền động; G là
mômen truyền động
Mô hình động học (1) có tính phi tuyến cao
với các tương tác chéo và các nhiễu ngoài tác
động Với mục tiêu phân tích hệ thống thì có
thể không cần đến mô hình chính xác của hệ
thống Vì vậy, nếu giả thiết rằng các mômen
quán tính của các con lăn, các khớp nối và các
cơ cấu mã hóa là rất nhỏ so với quán tính của động cơ thì mô hình băng tải có thể được đơn giản hóa với các tham số hằng như sau [2]:
&
&
c x f f K e
w L x
động của băng tải
Với các tham số cho trong phụ lục A, ta có thể xây dựng được mô hình không gian trạng thái của (2) như sau:
&
x Ax Bu
y Cx
Trong đó:
0 7.699 10 7.185 10 13.64
7
0 0 0
2.56 10
1 2 3 4
x
x x x x
.
Để khảo sát việc điều khiển hệ thống băng tải này bằng một bộ điều khiển PID kinh điển ta
có thể xây dựng một mô hình Simulink đơn giản như hình 3
Hình 3 Mô phỏng hệ thống điều khiển băng tải
Kết quả mô phỏng đáp ứng dịch chuyển của tải trọng trên băng tải được cho trên hình 4 CẤU TRÚC PHẦN CỨNG
Cấu trúc phần cứng của toàn bộ hệ thống cân băng định lượng được mô tả trên hình 5 Hệ thống gồm có N băng tải, được điều khiển bởi các bộ điều khiển băng tải độc lập cho từng cân
Trang 3Hình 4 Đáp ứng dịch chuyển của tải trọng trên
băng tải
Hình 5 Cấu trúc của toàn bộ hệ thống cân băng
Các bộ điều khiển cân có khả năng đọc tín
hiệu trọng lượng từ các Loadcell, sau đó tính
toán tốc độ cho các băng tải dựa trên lưu
lượng yêu cầu cho trước và đưa ra tín hiệu
điều khiển các biến tần sao cho đạt được sai
số lưu lượng thực tế trong giới hạn cho phép
Bộ điều khiển cân cũng có khả năng đọc tín
hiệu phản hồi tốc độ từ các bộ Encoder hoặc
các loại cảm biến tốc độ khác Các bộ điều
khiển cân được kết nối chung với một màn hình giao diện người – máy (Human Machine Interface – HMI) của các hãng nổi tiếng trên thế giới thông qua giao tiếp chuẩn công nghiệp Modbus để nhận các chỉ thị, hiển thị
và lưu trữ các thông tin vận hành một cách rất thuận tiện mà không cần sử dụng máy tính Điều này đảm bảo sự hoạt động tin cậy, ổn định và liên tục của toàn bộ hệ thống Việc truyền thông qua Modbus cho phép toàn bộ
hệ thống có khả năng kết nối dễ dàng hoặc tích hợp với các hệ thống khác trong các nhà máy vì nó tuân theo chuẩn giao tiếp công nghiệp phổ biến
Cấu trúc phần cứng của bộ điều khiển băng tải được mô tả trên hình 6 Bộ điều khiển bao gồm khối vi xử lý trung tâm sử dụng vi điều khiển STM32F407VGTX Các tín hiệu từ loadcell được đưa đến đầu vào là một bộ khuếch đại loadcell giao tiếp SPI chuyên dụng HX711 Trong trường hợp sử dụng bộ khuếch đại loadcell ngoài thì tín hiệu tương tự
từ bộ khuếch đại loadcell ngoài được đưa đến chân S+, sau đó thông qua mạch khuếch đại đệm và lọc được đưa đến một đầu vào chuyển đổi tương tự - số (ADC) của vi điều khiển Các thuật toán điều khiển được thực hiện bằng chương trình phần mềm cho vi xử lý Tín hiệu điều khiển ra được đưa đến biến tần thông qua các giao tiếp tương tự hoặc số (dưới dạng xung điều chế PWM được lựa chọn thông qua chuyển mạch JP1) hay giao tiếp Modbus Trong trường hợp điều khiển tương tự thì tín hiệu ra điều khiển biến tần được đưa qua một bộ chuyển đổi số - tương
tự sử dụng vi mạch MCP4901 và thông qua một mạch khuếch đại để tạo điện áp điều khiển chuẩn công nghiệp 0 - +10VDC cho biến tần Tín hiệu phản hồi tốc độ từ biến tần cũng được lọc sơ bộ và phản hồi về hệ thống bằng tín hiệu tương tự hoặc xung điều chế (lựa chọn bằng chuyển mạch JP2) Nếu tín hiệu phản hồi là tương tự sẽ được đưa qua một mạch đệm để đưa đến đầu vào ADC của
vi điều khiển Trong trường hợp phản hồi là
Trang 4xung PWM thì sẽ được đưa đến đầu vào
Capture của vi điều khiển Phần giao tiếp với
HMI được thực hiện thông qua giao thức
Modbus với chuẩn RS485 Ngoài ra, bộ điều
khiển cẩn băng định lượng còn có mạch hiển
thị LCD với độ phân giải 192x64 điểm, 07
phím cài đặt, bộ lưu trữ EEPROM, mạch
đồng hồ thời gian thực, mạch giao tiếp
encoder
STM32
J
AO1
PWM IVC
SW2
+24V
GND
S+
S-GND
EXP
GND
IVC
A D
+5V LM2575 +24V
Loadcell
FBK
485A1
+3V 3 LM1117 +5V
External interrupt
DA
Key pad
LCD 198x64
EEPROM
EA IDX
DB9 Back side
DA
485A2
PWM
REF +5V
Buzze
+5V
Buzze
Battery for real
D A
MCP4821 A+
CAP FBK
SW3
+
-+12V
-12V
ADC1
AO1
+10V
Ax0 +
-+12V
-12V
ADC2
+3V3
CAP
RS485 485A1
RS485
+5V
+12V
-12V
A0512S-1W
HX711
MISO 12
11 SCK
MISO SCK
485A2
GND
U3
+
-+12V
ADC1
+3V3
-12V
S+
S-GND
EXC
Ax0
Sử dụng loại có EEPROM
REF
EXC
EXP
LM1117 5V
Dx0 Dx2
GND
Điện áp chuẩn cho Loadcell A+
SW1
J2
U4
U2
U5
ADC2
S+
Ax1 S+
Ax2 S+
Hình 6 Cấu trúc phần cứng của bộ điều khiển
băng tải
LẬP TRÌNH CÁC HÀM TRUYỀN THÔNG
MODBUS
Truyền thông Modbus có 08 hàm, bao gồm
hàm số 01, 02, 03, 04, 05, 06, 15 và 16 Tuy
nhiên, trong nghiên cứu này chỉ cần sử sụng
04 hàm (01, 03, 05 và 16) là đủ các chắc năng
cần thiết cho bộ điều khiển băng tải Vì vậy,
các hàm này sẽ được trình bày trong phần tiếp
theo của bài báo này
Hàm Modbus số 01
họa việc đọc trạng thái của 15 cuộn dây
(N 15) bắt đầu từ cuộn thứ i 13
nằm ở bít thứ bao nhiêu của ô nhớ nào bằng
lệnh sau:
CoilMem = addr_begin/8;
CoilBit = addr_begin%8;
cuộn dây, CoilMem là địa chỉ của ô nhớ và
CoilBit là số thứ tự của bit trong ô nhớ đó
CoilBit = 13%8 = 5 Như vậy, để tạo byte thứ nhất truyền đi trạng thái của 8 cuộn dây bắt đầu từ cuộn dây thứ 13 cần phải dịch
cùng lấy tổng của các byte vừa dịch (hình 7)
Từ Byte thứ hai trở đi cũng làm tương tự Lưu ý là mỗi 8 cuộn dây tạo thành một Page (8 bits) Chẳng hạn nếu đọc trạng thái của 15 cuộn dây như ví dụ trên thì cần phải đọc
(15/8) + 1 = 2 Pages Tuy nhiên, nếu đặt
CoilPage = num_data/8 + 1;
với num_data là số cuộn dây cần đọc thì sẽ gặp trường hợp số cuộn dây là bội số của 8 và dẫn đến số Page bị tăng lên 1 Ví dụ, nếu
num_data = 7, thì số Page là
(num_data/8)+1 = 1 Tuy nhiên, nếu
num_data = 8 thì (num_data/8)+1 = 2, mặc dù 8 cuộn dây vẫn chỉ nằm trong 1 Page Chính vì vậy, số Page cần được tính như sau:
CoilPage = (num_data-1)/8 + 1;
num_data = 16 thì (num_data-1)/8 +
1 = 2…
23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
27 26 25 24
15 14 13
20 19 18 17 16 15 14 13
20 19 18 17 16
23 22 21
28 27 26 25 24
28 27 26 25 24 23 22 21
Dịch phải 5 bits Dịch trái 3 bits
Cuộn thứ i = 13
Số lượng các cuộn dây cần đọc N = 15
Byte 0 Byte 1
Byte 2
Byte 1
Byte 2
Byte 2
Byte 3
Dịch phải 5 bits
Dịch trải 3 bits
Dịch phải 5 bits
Dịch trái 3 bits
Byte 1 + 2 là byte đầu tiên cần truyền
Byte 2 +
3 là byte thứ hai cần truyền
Byte 3
28
Hình 7 Minh họa đọc trạng thái của 15 cuộn dây
Hàm Modbus số 03
Hàm Modbus số 03 đọc nội dung của các thanh ghi trong Slave
Do các biến trong các bộ điều khiển băng tải được lưu dưới dạng số thực nên hàm 03 cũng phải được tùy biến để có thể đọc được các số
dạng hexa như sau
Trang 5C D
M4x[0] = 0x4328E666 = 168.9
A B
Hình 8 Thứ tự các byte của số thực
Số này được lưu trong mảng M4x với thứ tự
các byte 0, 1, 2, 3 như sau (byte 0 là 0x66,
byte 1 là 0xE6, byte 2 là 0x28 và byte 3 là
0x43)
E6 28 43 M4x[0] = 66
MSB
A B C D
LSB
= 168.9
Hình 9 Thứ tự các byte của số thực được lưu
trong bộ nhớ
Tuy nhiên, với các HMI, số này được truyền
đi với thứ tự các byte như hình 10
B A
D C
Hình 10 Thứ tự các byte được truyền trong giao
thức Modbus
Nghĩa là cứ trong một Word thì byte cao được
truyền trước, byte thấp truyền sau Ví dụ, đáp
ứng đối với việc truyền số thực nói trên lên
HMI sẽ có dạng như hình 11
03 03 04 E6 66 43 28
Byte transfer
direction
Hình 11 Đáp ứng truyền một số thực trong giao
tiếp Modbus
Như vậy, để truyền một số thực lên HMI cần
phải biết địa chỉ của ô nhớ đầu tiên lưu số
thực đó Tiếp theo, các byte cao trong cùng
một Word được truyền trước
Hàm Modbus số 05
Hàm 05 có chức năng bật hoặc tắt một cuộn dây
Số lượng các cuộn dây và mảng lưu dữ liệu
các cuộn dây được định nghĩa như sau:
uint8_t M0x[NUM_COILS/8];
Có thể coi trạng thái của các cuộn dây được
lưu trong các thanh ghi 8 bits, mỗi bit ứng với
một Coil Biến CoilReg lưu giá trị số của
thanh ghi (thanh ghi nào sẽ được ghi), biến
CoilBit lưu giá trị của bit sẽ được bật hoặc
tắt Các giá trị này được tính từ địa chỉ của thanh ghi như sau:
CoilReg = addr/8;
CoilBit = addr%8;
Để tắt một Coil thì cần phải truyền giá trị 0x0000 Lúc này bit tương ứng của thanh ghi
sẽ được xóa bằng các lệnh sau:
if(wr_data == 0){
M0x[CoilReg] &=
~(1<<CoilBit);
}
Để bật một cuộn dây thì cần phải truyền giá trị 0xFF00 Lúc này bit tương ứng của thanh ghi sẽ được set bằng lệnh sau:
if(wr_data == 0xFF00){
M0x[CoilReg] |= 1<<CoilBit; }
Hàm Modbus số 16
Hàm 16 có chức năng ghi các giá trị vào một chuỗi các thanh ghi lưu trữ
Dữ liệu nhận được thông qua giao tiếp
buf_rece[7+ii];
Tuy nhiên, biến M_4x chỉ là các biến trung gian để nhận dữ liệu qua giao tiếp Modbus và chỉ là các dữ liệu byte Sau khi nhận được, các byte dữ liệu cần thiết được biến đổi thành các số thực cần thiết và lưu vào các biến thông số M4x (mảng các số thực) thông qua các lệnh sau:
jj=(wr_addr+ii)%4;
kk=(wr_addr+ii)/4;
if (jj<4) {
buf_rece[7+ii];
}
if (jj==3) {
FloatGetFromBuff();
}
Cứ sau mỗi 4 byte nhận được thì dữ liệu sẽ được chuyển thành một số thực lưu vào mảng
số thực nên các địa chỉ bắt đầu của mỗi dữ liệu cần chuyền sẽ là 0, 4, 8, 12, … Hiện tại,
Trang 604 byte đầu tiên của mảng dữ liệu M_4x (byte
0, 1, 2, 3) được dùng để lưu các trạng thái của
hệ thống Dữ liệu truyền cho các tham số điều
khiển sẽ bắt đầu từ byte thứ 4 Chẳng hạn,
muốn thay đổi giá trị của tham số P000 (tham
số đầu tiên) thì địa chỉ bắt đầu sẽ phải là
wr_addr = 04
các byte tiếp theo sẽ có địa chỉ là 05, 06 và
trung gian jj sẽ nhận các giá trị là 0, 1, 2 và
trị 1, 1, 1 và 1 (4/4=1, 5/4=1 6/4=1 và
7/4=1) Ở đây biến kk có vai trò xác định
xem các cụm 04 byte dữ liệu nhận được thuộc
về tham số thực nào (tham số thứ 2 sẽ có địa
chỉ bắt đầu từ 8 vì vậy kk sẽ nhận các giá trị
là 8/4=2, 9/4=2, 10/4=2 và 11/4=2)
Khi jj<4 (jj=0, 1, 2, 3) thì các biến mảng
trung gian sẽ lưu các giá trị dữ liệu nhận được
if (jj<4) {
buf_float[jj] =
buf_rece[7+ii];
}
Mỗi khi jj=3 thì có nghĩa là một cụm 04
byte dữ liệu đã được nhận và sẽ được chuyển
thành một số thực và lưu vào biến tham số
tương ứng (bắt đầu từ index 0)
if ((jj==3) && (kk>0)) {
M4x[kk-1] =
FloatGetFromBuff();
}
KẾT LUẬN
Hệ thống cân băng định lượng điều khiển độc
lập từng thành phần và giao tiếp Modbus có
khả năng thay thế cho các sản phẩm nhập
khẩu tương đương có giá thành cao, chủ động
hoàn toàn trong việc thiết kế, chế tạo, viết
phần mềm (firmware), bảo hành, bảo trì và
nâng cấp sản phẩm Mỗi băng tải thành phần
được điều khiển bởi một bộ điều khiển riêng,
có đầy đủ các chức năng và các đầu vào/ra
cần thiết Các bộ điều khiển này có khả năng
làm việc độc lập mà không cần điều khiển từ
máy tính Tất cả các bộ điều khiển băng tải riêng rẽ có thể được dễ dàng kế nối với một
hệ thống điều khiển cấp trên thông qua chuẩn giao tiếp công nghiệp Modbus nên có thể được tích hợp vào trong các hệ thống hiện có của các nhà máy một cách dễ dàng
LỜI CẢM ƠN Các tác giả trân trọng cảm ơn Trường Đại học
Kỹ thuật Công nghiệp - Đại học Thái Nguyên
đã tài trợ cho việc nghiên cứu các vấn đề được đề cập trong bài báo này
PHỤ LỤC A Các thông số băng tải [2]
0.00267 1
2
3
REFERENCES
1 N.T Hưng, N.T.M Hương (2017), “Ứng dụng điều khiển giới hạn chéo trong các hệ thống cân
băng điều tốc” Tạp chí Khoa học và Công nghệ Đại học Thái Nguyên, tập 173, số 13, 2017 Trang
219-224
2 A Selezneva (2007), Modeling and synthesis of tracking control for the belt drive Msc thesis
Lappeenranta University of Technology
3 D He (2007), Energy Saving for Belt Conveyors by Speed Control Delft University of
Technology
4 D He, Y Pang, and G Lodewijks (2016),
“Determination of acceleration for belt conveyor speed control in transient operation,” IACSIT International Journal of Engineering and Technology, vol 8, no 3
5 ConveyorBeltGuide (2016) Conveyor components [Online] Available:
http://www.conveyorbeltguide.com/Engineering.h tml
Trang 7ABSTRACT
DESIGN AND MANUFACTURING A BELT SCALE REGULATOR ALONG
WITH MODBUS COMMUNICATION
Nguyen Tien Hung * , Vu Quoc Dong
University of Technology - TNU
Belt scale systems are widely used in many industrial areas such as cement producing, foodstuff, chemical fertilizer Previously, since a belt scale system can be regulated by a computer for all conveyor belts, it is difficult to integrate it into a big and modern industrial line where the input materials are processed automatically until the final products are produced The belt scale regulators with an included industrial communication standard are employed in the belt conveyor systems in order to overcome above limitation However, since international companies usually provide a total solution for a manufacturing process, using different devices of different brand names in an industrial line exhibits some disadvantages of hardware and software incompatibilities This paper presents a design of a belt scale system using regulators with an industrial communication standard Therefore, the regulator can be integrated into different manufacturing systems and communicated with Human Machine Interface devices provided by many famous companies in order to display and store operation data without any computer This guarantees reliability, stability, and continuousness of the overall system
Keywords: Belt scale system, regulator, industrial communication, microcomputer, Modbus
Ngày nhận bài: 13/11/2018; Ngày hoàn thiện: 27/11/2018; Ngày duyệt đăng: 30/11/2018
* Tel: 0913 286461, Email: h.nguyentien@tnut.edu.vn