BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH
ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HOÁ
MÁY PHUN KEO ĐẾ GIÀY ĐIỀU KHIỂN BẰNG PLC
GVHD: TS. TẠ VĂN PHƯƠNG
SVTH: LÊ THÀNH ĐẠT
NGUYỄN MINH HIẾU
SKL013261
Tp. Hồ Chí Minh, tháng 6 năm 2024
BỘ GIÁO DỤC &amp ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ
-⸙∆⸙-
ĐỒ ÁN TỐT NGHIỆP
MÁY PHUN KEO ĐẾ GIÀY ĐIỀU KHIỂN
BẰNG PLC
GVHD:
TS. Tạ Văn Phương
SVTH1: Lê Thành Đạt
MSSV:
20151067
SVTH2: Nguyễn Minh Hiếu
MSSV:
20151101
TP. Hồ Chí Minh, tháng 6, năm 2024
TRƯỜNG ĐH SPKT TP. HỒ CHÍ MINH
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT
NAM
ĐỘC LẬP - TỰ DO - HẠNH PHÚC
o0o-Tp. HCM, ngày tháng 06 năm 2024
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên 1: Lê Thành Đạt
MSSV: 20151067
Họ và tên sinh viên 2: Nguyễn Minh Hiếu
MSSV: 20151101
Chuyên ngành:
Công nghệ Kỹ thuật Điều khiển và Tự động hóa
Hệ đào tạo:
Đại học chính quy
Khóa:
2020
Lớp:
20151CL
I. TÊN ĐỀ TÀI: MÁY PHUN KEO ĐẾ GIÀY ĐIỀU KHIỂN BẰNG PLC
II. NHIỆM VỤ
1. Các số liệu ban đầu:
• Tham khảo các hệ thống phun keo đế giày.
• Thông số các thiết bị vận hành trong hệ thống.
• Thông số kỹ thuật của động cơ bước và step driver.
• Tài liệu về bộ điều khiển lập trình logic.
• Tài liệu về xử lý ảnh
2. Nội dung thực hiện:
• Tính toán và thiết kế mô hình.
• Lập trình điều khiển mô hình.
• Lập trình xử lý ảnh nhận diện đường viền đế giày.
• Thiết kế giao diện điều khiển.
• Thu thập kết quả và đánh giá chất lượng.
III. NGÀY GIAO NHIỆM VỤ:
02/2024
IV. NGÀY HOÀN THÀNH NHIỆM VỤ: 06/2024
V. HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN:
TS. Tạ Văn Phương
CÁN BỘ HƯỚNG DẪN
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN
i
TRƯỜNG ĐH SPKT TP. HỒ CHÍ MINH
KHOA ĐIỆN-ĐIỆN TỬ
BỘ MÔN TỰ ĐỘNG ĐIỀU KHIỂN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT
NAM
ĐỘC LẬP - TỰ DO - HẠNH PHÚC
o0o-Tp. HCM, ngày tháng 06 năm 2024
LỜI CAM ĐOAN
Tôi xin cam kết đề tài này là do tôi tự thực hiện dựa vào một số tài liệu trước đó và
không sao chép từ tài liệu hay công trình đã có trước đó.
Người thực hiện đề tài
Lê Thành Đạt
Nguyễn Minh Hiếu
ii
LỜI CẢM ƠN
Đầu tiên em xin trân trọng gửi lời cảm ơn chân thành tới Thầy cô giảng viên
đã tận tình hướng dẫn, chỉ bảo chúng em trong suốt quá trình học tập bốn năm đại
học tại trường Đại học Sư phạm kỹ thuật TP. Hồ Chí Minh. Trong quá trình học tập
tại trường, chúng em không chỉ được thầy cô chỉ dạy kiến thức, kinh nghiệm chuyên
...
...
toa_do_thuc(self, toa_do_x, toa_do_y):
global rvec
toa_do_x = float(toa_do_x)
toa_do_y = float(toa_do_y)
tvec = np.array([[toa_do_x], [toa_do_y], [0], [1]])
toa_do = np.matmul(rvec, tvec)
toa_do_rut_gon = np.array([[toa_do[0][0] / mot_o], [toa_do[1][0] / mot_o],
[0]])
toa_do_ben_ngoai = np.array([[x_ben_ngoai], [y_ben_ngoai], [0]])
toa_do_thuc = np.add(toa_do_rut_gon, toa_do_ben_ngoai)
93
PHỤ LỤC
Code tính tỷ lệ giữa điểm ảnh với milimet và tính thông số cho ánh xạ tổng quát.
def tinh_ma_tran_chuyen_doi(self):
global rvec, mot_o
a = math.dist(corners[0][0][0], corners[0][0][1])
b = math.dist(corners[0][0][1], corners[0][0][2])
c = math.dist(corners[0][0][2], corners[0][0][3])
d = math.dist(corners[0][0][3], corners[0][0][0])
canh = (a + b + c + d) / 4
mot_o = canh / 50
XbXa = self.findAngle(corners[0][0][3], corners[0][0][3] + ngang,
corners[0][0][2])
XbYa = self.findAngle(corners[0][0][3], corners[0][0][3] + ngang,
corners[0][0][0])
YbXa = self.findAngle(corners[0][0][3], corners[0][0][3] + thang_dung,
corners[0][0][2])
YbYa = self.findAngle(corners[0][0][3], corners[0][0][3] + thang_dung,
corners[0][0][0])
da, db, dc = self.lineFromPoints(corners[0][0][3], corners[0][0][0])
td_x = self.shortest_distance(0, 0, da, db, dc)
da, db, dc = self.lineFromPoints(corners[0][0][3], corners[0][0][2])
td_y = self.shortest_distance(0, 0, da, db, dc)
rvec = np.array([[math.cos(XbXa), math.cos(YbXa), 0, 99],
[math.cos(XbYa), math.cos(YbYa), 0, 99],
[0, 0, -1, 0],
[0, 0, 0, 1]])
rvec[0][0] = math.cos(math.radians(XbXa))
rvec[1][0] = math.cos(math.radians(XbYa))
rvec[0][1] = math.cos(math.radians(YbXa))
rvec[1][1] = math.cos(math.radians(YbYa))
rvec[0][3] = td_x
rvec[1][3] = -td_y
return None
94
PHỤ LỤC
Code điều khiển động cơ Step
95
PHỤ LỤC
96
PHỤ LỤC
97
PHỤ LỤC
98
PHỤ LỤC
99
PHỤ LỤC
100
PHỤ LỤC
101
PHỤ LỤC
102
PHỤ LỤC
Code nhập giá trị vị trí:
IF GIATRIX.VTX[#K] = DBSTEPX.X_PHUN THEN
// Statement section IF
#K := #K + 1
DBSTEPX.X_PHUN := GIATRIX.VTX[#K]
DBSTEPY.YKC_PHUN := GIATRIY.VTY[#K]
END_IF
IF GIATRIX.VTX[#K+2] = 0 THEN
IF GIATRIY.VTY[#K+2] = 0 THEN
// Statement section IF
PHUN := FALSE
END_IF
END_IF
IF GIATRIX.VTX[#K] = 0 THEN
IF GIATRIY.VTY[#K] = 0 THEN
// Statement section IF
#K := 0
GIATRIX.RESTART := TRUE
PHUN := FALSE
XL_PHUN := FALSE
GIATRIX.PHUNKEO := FALSE
M_RESETGIATRI := TRUE
M_21 := TRUE
M_16 := TRUE
END_IF
103
S
K
L
0
0
2
1
5
4