ĐỒ ÁN TỐT NGHIỆP
ĐẠI HỌC
NGÀNH: CÔNG NGHỆ KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HOÁ
ĐỀ TÀI:
ỨNG DỤNG XỬ LÝ ẢNH ĐỂ PHÂN LOẠI SẢN PHẨM THEO HÌNH DẠNG, ĐIỀU KHIỂN VÀ GIÁM SÁT QUA WINCC
TÓM TẮT ĐỒ ÁN
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Tên đề tài:
“Ứng dụng xử lý ảnh để phân loại sản phẩm theo hình dạng, điều khiển và giám sát trên WinCC”.
2. Các số liệu, tài liệu ban đầu:
- PLC S7-1200, Raspberry Pi 4B, camera, động cơ, cảm biến, xi lanh…
- Trần Văn Hiếu, “Tự Động Hóa PLC S7 – 1200 Với TIA Portal”, năm 2019, nhà xuất bản khoa học - kỹ thuật.
3. Nội dung chính của đồ án:
Chương 1: Tổng quan về hệ thống phân loại sản phẩm theo hình dạng.
Chương 2: Giới thiệu về Rapberry và ngôn ngữ lập trình Python.
Chương 3: Giới thiệu về PLC S7-1200 và phần mềm TIA Portal.
Chương 4: Thiết kế và thi công mô hình “Ứng dụng xử lý ảnh để phân loại sản phẩm theo hình dạng, điều khiển và giám sát trên WinCC”.
Chương 5: Chương trình điều khiển và giám sát hệ thống.
ĐÁNH GIÁ KẾT QUẢ THỰC HIỆN CỦA ĐỀ TÀI
HƯỚNG PHÁT TRIỂN ĐỀ TÀI
4. Các sản phẩm dự kiến
- Mô hình “Ứng dụng xử lý ảnh để phân loại sản phẩm theo hình dạng, điều khiển và giám sát trên WinCC”.
- Báo cáo thuyết minh đề tài.
- Chương trình xử lý ảnh trên Python.
- Chương trình điều khiển hệ thống trên TIA Portal.
Tên đề tài: “ Ứng dụng xử lý ảnh để phân loại sản phẩm theo hình dạng, điều khiển và giám sát qua WinCC”.
Nội dung:
Mô hình xử lý ảnh để phân loại sản phẩm theo hình dạng, điều khiển và giám sát qua WinCC sử dụng Kit Raspberry Pi 4B và PLC S7 – 1200. Ở đây nhóm đã sử dụng CPU 1214C DC/DC/DC, dòng CPU đời mới, hiện đã và đang được ứng dụng trong các nhà máy lớn với chức năng điều khiển quy trình hoạt động lớn của một hệ thống sản xuất của một nhà máy.
Đề tài nghiên cứu tập trung vào sử dụng ngôn ngữ lập trình Python để xử lý ảnh, tín hiệu được gửi tới PLC S7 – 1200 thông qua cổng Ethernet, quy trình điều khiển tuần tự mà từ đó viết chương trình phân loại sản phẩm dựa theo hình dạng.
Báo cáo về đề tài gồm có 5 phần chính:
Chương 1: Tổng quan về hệ thống phân loại sản phẩm theo hình dạng.
Chương 2: Giới thiệu về Rapberry và ngôn ngữ lập trình Python.
Chương 3: Giới thiệu về PLC S7-1200 và phần mềm TIA Portal.
Chương 4: Thiết kế và thi công mô hình “Ứng dụng xử lý ảnh để phân loại sản phẩm theo hình dạng, điều khiển và giám sát trên WinCC”.
Chương 5: Chương trình điều khiển và giám sát hệ thống.
MỤC LỤC
Nhận xét của giáo viên hướng dẫn.
Nhận xét của người phản biện.
Tóm tắt đồ án.
Nhiệm vụ đồ án tốt nghiệp.
Lời nói đầu. i
Lời cam đoan. ii
Mục lục. iii
Danh sách bảng, hình ảnh. vii
Trang
MỞ ĐẦU.. 1
CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG PHÂN LOẠI SẢN PHẨM THEO HÌNH DẠNG.. 2
1.1Tổng quan về hệ thống. 2
1.2Nguyên lý hoạt động của hệ thống. 2
1.3Các công nghệ sử dụng trong hệ thống. 2
1.4Phương pháp phân loại sản phẩm theo hình dạng. 3
1.4.1 Các hình dạng cơ bản của sản phẩm.. 3
1.4.2 Phương pháp nhận dạng hình dạng. 4
1.4.3 Phương pháp tìm đặc điểm hình dạng để phân loại sản phẩm.. 6
1.4.3.1 Phương pháp tìm đỉnh. 7
1.4.3.2 Phương pháp tìm độ dài cạnh. 8
1.4.3.3 Phương pháp tìm tâm và bán kính. 8
1.5Phương án thiết kế. 9
1.5.1 Yêu cầu thiết kế. 9
1.5.2 Lựa chọn phương án thiết kế. 9
CHƯƠNG 2: GIỚI THIỆU VỀ RASPPBERRY VÀ NGÔN NGỮ LẬP TRÌNH PYTHON.. 11
2.1Tổng quan về Raspberry. 11
2.2Giới thiệu ngôn ngữ lập trình Python. 12
2.2.1 Giới thiệu ngôn ngữ Python. 12
2.2.2 Đặc điểm nổi bật của Python. 12
2.3Giới thiệu thư viện OpenCV.. 13
2.3.1 Giới thiệu OpenCV.. 13
2.3.2 Đặc điểm OpenCV.. 13
2.4Tổng quan về xử lý ảnh. 14
2.4.1 Giới thiệu xử lí ảnh. 14
2.4.2 Những vấn đề trong xử lý ảnh. 14
2.4.2.1 Điểm ảnh. 14
2.4.2.2 Biến đổi ảnh. 15
2.4.2.3 Lọc màu ảnh. 15
2.4.2.4 Lọc nhiễu. 16
2.4.2.5 Phương pháp phát hiệnbiên. 17
2.4.2.6 Phân đoạn ảnh. 17
2.4.2.7 Các phép giãn nở của ảnh. 18
2.4.2.8 Những định dạng của ảnh. 19
2.4.2.9 Các phần mềm hỗ trợ xử lýảnh. 19
2.5Xử lýảnh. 19
2.5.1 Tiền xử lý ảnh. 19
2.5.1.1 Đọc ảnh và cắt ảnh. 19
2.5.1.2 Lọc màu. 20
2.5.1.3 Biến đổi ảnh. 21
2.5.1.4 Tìmđiểm.. 22
2.5.1.5 Vẽ viền quanh ảnh. 22
2.5.1.6 Kết luận. 22
2.5.2 Xác định cạnh và tính toán ảnh để nhận dạng hình dạng. 22
2.5.2.1 Xác định cạnh. 23
2.5.2.2 Tính toán ảnh. 23
CHƯƠNG 3: TỔNG QUAN VỀ PLC VÀ PHẦN MỀM TIA PORTAL.. 24
3.1Giới thiệu về PLC.. 24
3.2Giới thiệu về PLC S7 – 1200. 27
3.2.1 Cấu trúc phần cứng của PLC S7 – 1200:28
3.2.2 Cấu trúc phần mềm của PLC S7 – 1200. 30
3.2.3 Module mở rộng của PLC S7 – 1200:31
3.2.4 Ngôn ngữ lập trình cho PLC S7 – 1200:32
3.2.5 Phương pháp lập trình PLC S7 – 1200. 33
3.2.6 Các tập lệnh cơ bản của PLC S7 – 1200. 33
3.2.6.1 Bit Logic. 33
3.2.6.2 BộđảologicNOT. 34
3.2.6.3 Cuộn dây ngõ ra (LAD)34
3.2.6.4 Các lệnh Set và Reset34
3.2.6.5 Lệnh dò ngưỡng dương và âm.34
3.2.6.6 Lệnh Timer35
3.2.6.7 Bộ đếm Counter36
3.2.6.8 Lệnh so sánh. 37
3.2.6.9 Các lệnh tính toán. 38
3.2.6.10Lệnh giá trị nhỏ nhất và lớn nhất38
3.3Phần mềm lập trình cho PLC S7 – 1200. 39
3.3.1 Tổng quan về phần mềm TIA Portal V16. 39
3.3.2 Giao diện phần mềm TIA Portal39
3.3.3 Sử dụng bảng Tag trong PLC.. 41
3.3.4 Tải chương trình xuống CPU:43
3.4Giới thiệu về WinCC.44
3.4.1 Tổng quan về WinCC.. 44
3.4.2 Các ứng dụng của WinCC.. 45
CHƯƠNG 4: THIẾT KẾ VÀ THI CÔNG MÔ HÌNH “ỨNG DỤNG XỬ LÝ ẢNH ĐỂ PHÂN LOẠI SẢN PHẨM THEO HÌNH DẠNG”. 46
4.1Yêu cầu công nghệ của hệ thống. 46
4.2Thiết kế phần cứng. 47
4.2.1 Sơ đồ khối47
4.2.2 Lựa chọn thiết bị48
4.2.2.1 Khối xử lý trung tâm.. 48
4.2.2.2 Khối nút nhấn và đèn báo. 50
4.2.2.3 Thiết kế băng tải51
4.2.2.4 Khối cảm biến. 52
4.2.2.5 Khối động lực. 53
4.2.2.6 Khối cách ly bảo vệ. 54
4.2.2.7 Động cơ DC kéo băng tải56
4.2.2.8 Khối nguồn. 57
4.2.2.9 Camera. 58
4.2.3 Sơ đồ đấu nối59
4.2.3.1 Sơ đồ đấu nối59
4.2.3.2 Sơ đồ đấu nối tủ điện. 59
4.3Thi công mô hình hệ thống. 63
CHƯƠNG 5: CHƯƠNG TRÌNH ĐIỀU KHIỂN VÀ GIÁM SÁT HỆ THỐNG.. 64
5.1Bảng phân công đầu vào, đầu ra. 64
5.2Giản đồ thời gian. 64
5.3Lưu đồ thuật toán. 66
5.4Giới thiệu về giao diện hệ thống điều khiển và giám sát70
5.5Thành phần chính của hệ thống SCADA.. 70
5.6Thiết kế giao diện:71
5.6.1 Tạo giao diện cho hệ thống:71
5.6.2 Gắn HMI Tags cho hệ thống:73
5.6.3 Hiệu chỉnh giao diện:74
5.7Giao tiếp và truyền thông Raspberry với PLC S7 1200. 75
5.7.1 Mở quyền truy cập truyền nhận dữ liệu trên PLC S7 1200. 76
5.7.2 Cài đặt địa chỉ và truyền thông. 77
5.7.3 Đọc và ghi dữ liệu. 77
KẾT LUẬN.. 79
TÀI LIỆU THAM KHẢO.. 80
PHỤ LỤC..
DANH SÁCH BẢNG, HÌNH ẢNH
BẢNG 1. 1 Đặc điểm hình dạng sản phẩm.. 6
BẢNG 3. 1: Bảng phân loại CPU.. 29
BẢNG 3. 2: Module mở rộng của PLC S7 – 1200. 31
BẢNG 5. 1: Bảng phân công địa chỉ đầu vào ra của hệ thống. 64
HÌNH 1. 1: Đặc điểm hình chữ nhật5
HÌNH 1. 2: Đặc điểm hình vuông. 5
HÌNH 1. 3: Đặc điểm hình tròn. 5
HÌNH 1. 4: Đặc điểm hình tam giác. 6
HÌNH 1. 5: Đỉnh của hình. 7
HÌNH 1. 6: Đoạn Ramer – Douglas – Peucker7
HÌNH 1. 7: Đường xấp xỉ8
HÌNH 1. 8: Độ dài cạnh. 8
HÌNH 1. 9: Bán kính bằng nhau. 8
HÌNH 2. 1: Raspberry Pi12
HÌNH 2. 2: Dãy màu HSV.. 15
HÌNH 2. 3: Dãy màu RGB.. 16
HÌNH 2. 4: Hình ảnh tách biên. 17
HÌNH 2. 5: Phép giãn. 18
HÌNH 2. 6: Phép co. 19
HÌNH 2. 7: Ảnh chưa cắt trên Raspberry. 20
HÌNH 2. 8: Ảnh đã cắt trên Raspberry. 20
HÌNH 2. 9: Lọc màu ảnh trên Raspberry. 21
HÌNH 2. 10: Ảnh nhị phân trên Raspberry. 22
HÌNH 2. 11: Giảm điểm và tạo đoạn thẳng của lệnh ApproxPolyDP trong OpenCV.. 23
HÌNH 3. 1: Ứng dụng của PLC.. 24
HÌNH 3. 2: Bộ PLC đầu tiên của Mỹ. 25
HÌNH 3. 3: Bộ PLC năm 1969. 26
HÌNH 3. 4: Bộ Module PLC năm 1970. 26
HÌNH 3. 5: Các loại PLC phổ biến hiện nay. 27
HÌNH 3. 6: PLC S7 – 1200. 27
HÌNH 3. 7: Cấu trúc PLC S7 – 1200. 28
HÌNH 3. 8: Cấu trúc phần mềm cơ bản PLC.. 31
HÌNH 3. 9: Ngôn ngữ lập trình LAD.. 32
HÌNH 3. 10: Phương pháp lập trình PLC.. 33
HÌNH 3. 11: Phần mềm TIA PORTAL V16. 39
HÌNH 3. 12: Sử dụng Tag trong TIA Portal42
HÌNH 3. 13: Giao diện chương trình chính TIA Portal42
HÌNH 3. 14: Đổ chương trình vào PLC.. 43
HÌNH 3. 15: Thiết lập liên kết giữa máy tính và PLC.. 43
HÌNH 3. 16: : Khởi động Module PLC.. 44
HÌNH 4. 1: Sơ đồ bố trí thiết bị47
HÌNH 4. 2: Sơ đồ khối của hệ thống. 47
HÌNH 4. 3: PLC S7 – 1200 CPU DC/DC/DC.. 48
HÌNH 4. 4: Raspberry Pi 4B.. 50
HÌNH 4. 5: Nút nhấn LA38. 51
HÌNH 4. 6: Nút nhấn E – Stop. 51
HÌNH 4. 7 Băng tải52
HÌNH 4. 8: Cảm biến hồng ngoại E3F – DS30P1 PNP. 53
HÌNH 4. 9 Van điện từ 5/2. 53
HÌNH 4. 10: Xilanh khí nén. 54
HÌNH 4. 11: MCB LS BKN 1P 25A.. 55
HÌNH 4. 12: Relay trung gian 24V/14 chân. 56
HÌNH 4. 13: Động cơ kéo băng tải 24VDC.. 57
HÌNH 4. 14: Nguồn tổ ong. 57
HÌNH 4. 15: Sơ đồ đấu nối59
HÌNH 4. 16: Mặt ngoài tủ điện. 60
HÌNH 4. 17: Bên trong tủ điện. 62
HÌNH 4. 18: Hình ảnh sau khi đấu xong tủ điện. 63
HÌNH 4. 19: Mô hình phân loại sản phẩm theo hình dạng. 63
Hình 5. 1: Giản đồ thời gian chương trình chính. 64
Hình 5. 2: Giản đồ thời gian chế độ Manual65
Hình 5. 3: Giản đồ thời gian chế độ Auto. 65
Hình 5. 4: Chương trình chính của hệ thống. 66
Hình 5. 5: Chế độ Manual67
Hình 5. 6: Xử lý ảnh. 69
Hình 5. 7: Chế độ Auto. 68
Hình 5. 8: Kết nối PLC với WinCC RT Advanced. 71
Hình 5. 9: Chọn Screen để tạo HMI71
Hình 5. 10: Add new screen để tạo giao diện. 71
Hình 5. 11: Giao diện thiết lập WinCC.. 72
Hình 5. 12: Khối Basic objects. 72
Hình 5. 13: Khối Elements. 72
Hình 5. 14: Khối Controls. 73
Hình 5. 15: Gắn Tags HMI cho hệ thống. 74
Hình 5. 16: Thanh hiệu chỉnh Properties. 74
Hình 5. 17: Thanh hiệu chỉnh Animations. 74
Hình 5. 18: Thanh hiệu chỉnh Events. 75
Hình 5. 19: Giao diện giám sát WinCC của hệ thống. 75
Hình 5. 20: Các bước mở quyền truy cập trên PLC S7 – 1200. 76
Hình 5. 21: Cho phép truy cập dữ liệu PUT/GET. 76
Hình 5. 22: Địa chỉ Ethernet trên Raspberry. 77
Hình 5. 23: Địa chỉ cài đặt trên PLC S7 – 1200. 77
Hình 5. 24: Địa chỉ kết nối Raspberry bằng thư viện Snap7. 77
Hình 5. 25: Hàm đọc dữ liệu trên PLC bằng thư viện Snap 7. 78
Hình 5. 26: Hàm ghi dữ liệu trên PLC bằng thư viện Snap 7. 78
DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT
Đ Đúng
S Sai
PLC Programmable Logic Control
I/O Input/Output
LAD Ladder Diagram
FBD Function Block Diagram
STL Instruction List
HMI Human Machine Interface
Scada Supervisory Control And Data Acquisition
AI Analog Input
DI Digital Input
ĐC Động cơ
WinCC Windows Control Center
CPU Central Procecssing Unit
Power Supply Nguồn cấp
Input voltage DI Điện áp đầu vào
Output Voltage DO Điện áp đầu ra
Working Memory Bộ nhớ làm việc
Protocols Các giao thức
Programming LanguageNgôn ngữ lập trình
Class of Protection Lớp bảo vệ
MỞ ĐẦU
Trong thời đại mà các dây chuyền sản xuất, đóng gói và phân loại sản phẩm của các nhà máy không chỉ ở nước ta mà trên toàn thế giới đang dần dần chuyển hoàn toàn thành dây chuyền tự động hóa. Mục đích nhằm tăng năng suất sản phẩm, rút ngắn thời gian thành phẩm, có thể làm việc liên tục, giảm sức người và nhân công nhằm đem lại lợi nhuận lớn hơn cho doanh nghiệp và nhà đầu tư.
Đồ án “Ứng dụng xử lý ảnh để phân loại sản phẩm theo hình dạng, điều khiển và giám sát qua WinCC” thông qua việc sử dụng Kit Raspbbery Pi 4B, PLC Siemens S7 – 1200 và WinCC giám sát công đoạn phân loại sản phẩm theo hình dạng của từng sản phẩm, giúp kiểm soát được những sản phẩm bị lỗi, phân loại sản phẩm theo hình dạng mong muốn.
Đồ án gồm 5 chương chính:
Chương 1: Tổng quan về hệ thống phân loại sản phẩm theo hình dạng.
Chương 2: Giới thiệu về Rapberry và ngôn ngữ lập trình Python.
Chương 3: Giới thiệu về PLC S7-1200 và phần mềm TIA Portal.
Chương 4: Thiết kế và thi công mô hình “Ứng dụng xử lý ảnh để phân loại sản phẩm theo hình dạng, điều khiển và giám sát trên WinCC”.
Chương 5: Chương trình điều khiển và giám sát hệ thống.
ĐÁNH GIÁ KẾT QUẢ THỰC HIỆN CỦA ĐỀ TÀI
HƯỚNG PHÁT TRIỂN ĐỀ TÀI
CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG PHÂN LOẠI SẢN PHẨM THEO HÌNH DẠNG
1.1 Tổng quan về hệ thống
Ngày nay, nước ta đang thực chính sách “Công nghiệp hoá – hiện đại hoá đất nước”. Nền Công nghiệp đang hướng tới Công nghiệp 4.0, là sự kết hợp các công nghệ lại với nhau, làm mờ ranh giới giữa vật lý, kỹ thuật số và sinh học. Với sự phát triển của công nghệ kỹ thuật, các bộ điều khiển đang có ứng dụng rộng rãi trong các lĩnh vực khoa học kỹ thuật và đời sống xã hội, đặc biệt là trong tự động hoá và điều khiển. Từ đó mà việc đưa tự động hóa vào sản xuất như diễn ra một điều tất yếu.
Việc tạo ra các sản phẩm tự động hoá không những trong công nghiệp mà ngay cả trong đời sống con người ngày càng được phổ biến. Phân loại sản phẩm là một bài toán đã và đang được ứng dụng rất nhiều trong thực tế hiện nay. Công việc này đòi hỏi sự tập trung ....trong công việc. Chưa kể đến có những phân loại dựa trên các chi tiết kĩ thuật rất nhỏ mà mắt thường khó có thể nhận ra. Điều đó sẽ ảnh hưởng trực tiếp tới chất lượng sản phẩm và uy tín của nhà sản xuất. Vì vậy, hệ thống tự động nhận dạng và phân loại sản phẩm ra đời là một sự phát triển tất yếu nhằm đáp ứng nhu cầu cấp báchnày.
1.2 Nguyên lý hoạt động của hệ thống
Đề tài “Ứng dụng xử lý ảnh để phân loại sản phẩm theo hình dạng, điều khiển và giám sát qua WinCC” là mô hình phân loại sản phẩm theo hình dạng (hình tròn, hình vuông, hình tam giác và hình chữ nhật). Dựa trên ngôn ngữ Python với thư viện chính là OpenCV và được thực hiện trên Kit Raspberry Pi 4B và PLC S7 - 1200. Tại đây sử dụng các đặc điểm riêng biệt của từng hình dạng để đi nhận dạng rồi sau đó phân loại từng sản phẩm. Hệ thống gồm camera, Raspberry, PLC. Camera sẽ chụp ảnh sản phẩm cần phân loại rồi sau đó gửi đến Rasppberry để xử lí, sau khi xử lí được ảnh thì Rasppberry sẽ gửi đến PLC để điều khiển và phân loại sản phẩm. Kết quả thực hiện của đề tài là nhận dạng được những sản phẩm có hình dạng (hình tròn, hình vuông, hình tam giác và hình chữ nhật) cùng với việc đếm được sản phẩm theo hình dạng của từng sản phẩm, hiển thị trên màn hình.
1.3 Các công nghệ sử dụng trong hệ thống
vPhương pháp xử lý ảnh dùng phần mềm Matlab
Matlab là ngôn ngữ lập trình bậc cao dùng cho kỹ thuật. Đồng thời nó là môi trường tương tác có thể thực hiện nhiều nhiệm vụ, phát triển giải thiết, phân tích dữ liệu, tính toán các phép tính số học và hình ảnh hoá số liệu. So với các ngôn ngữ lập trình truyền thống như C, C++ hay Fortran thì Matlab có nhiều ưu điểm hơn do được tích hợp các hỗ trợ rất mạnh.
- Ưu điểm : Phần mềm dễ sử dụng
- Nhược điểm :
+ Độ chính xác không cao
+ Việc truyền thông, giao tiếp với các phần mềm rất khó
vPhương pháp xử lý ảnh dùng phần mềm Labview
Labview là một phần mềm lập trình mô phỏng robot được sáng chế ra với mục đích hỗ trợ người dùng tạo ra các thiết bị ảo dựa trên nhu cầu cá nhân.
- Ưu điểm :
+ Phần mềm dễ sử dụng nên được nhiều người sử dụng
+ Khả năng phát hiện hình dạng của chương trình LabView là cực kì nhanh chóng. Có thể sử dụng các chứng năng mở rộng có sẵn trong Labview đê tăng khả năng phân biệt nhiều sản phẩm
+ Kết quả xử lý ảnh với tỷ lệ sai lệch nhỏ và có độ chính xác cao
- Nhược điểm : Khó khăn về kết hợp giữa phần mềm Labview với các phần mềm khác
Trên đây là 2 phương pháp được sử dụng rất nhiều hiện nay. Tuy nhiên, trong một hệ thống đòi hỏi độ chính xác cao, việc giao tiếp và truyền thống với các thiết bị khác phải đảm bảo tính ổn định và nhanh chóng. Trong các nhà máy, xí nghiệp hiện nay thì việc sử dụng phương pháp xử lý ảnh thông qua Raspberry kết hợp với PLC đang dần thay thế các phương pháp khác. Do vậy, trong đề tài này sử dụng các công nghệ như sau:
- Sử dụng Kit Raspberry Pi 4B thông qua thư viện OpenCV để xử lý ảnh
- Sử dụng PLC S7 – 1200 để phân loại sản phẩm
- Sử dụng WinCC để giám sát quá trình hoạt động và hiện thị số lượng lên màn hình
1.4 Phương pháp phân loại sản phẩm theo hình dạng
Với đề tài “Ứng dụng xử lý ảnh để phân loại sản phẩm theo hình dạng, điều khiển và giám sát qua WinCC”. Ởphầnnàysẽđitìmhiểuchitiếtphươngphápnhậndạngcủatừngsảnphẩmvàphânloạisảnphẩmtheotừnghìnhdạngđãđượcnhậndạng.
1.4.1 Các hình dạng cơ bản của sản phẩm
Trong cuộc sống hiện nay, nhu cầu về kiểu dáng sản phẩm ngày càng được chứ trọng, để đáp ứng nhu cầu thiết yếu đó nên trên thị trường ra nhiều sản phẩm có hình dạng và kiểu dáng đa dạng. Ở đề tài này, để gần với thực tế, nhóm chọn sản phẩm có hình dạng phổbiến. Chủ yếu là các hình dạng ở ngoài cuộc sống (hình tròn, hình vuông, hình tam giác và hình chữ nhật).
Đặc điểm cơ bản của sản phẩm có hình dạng phổ biến:
- Đặc điểm nhận dạng hình chữ nhật: Có 4 đỉnh, 4 cạnh, 4 góc vuông, 2 cạnh đối diện đều bằng nhau khác với so với hình vuông là 2 cạnh kề không bằngnhau,…
- Đặcđiểmnhậndạnghìnhvuông:Có4đỉnh,4cạnh,4gócvuông,2cạnhđốidiện đều bằng nhau, 2 cạnh kề bằngnhau,…
- Đặc điểm nhận dạng hình tròn: Một hình tròn là một vùng trên mặt phẳng nằm "....Đặcđiểmnhậndạng:Bán kính đều bằngnhau,…
- Đặc điểm nhận dạng hình tam giác: có 3 đỉnh và 3 cạnh là hình tamgiác,…
1.4.2 Phương pháp nhận dạng hình dạng
Phương pháp nhận dạng hình ảnh là giai đoạn quan trọng của hệ thống xử lý ảnh.Nhậndạnglà quá trình phân loại các đối tượng được biểu diễn theo một mô hình nào đó. Ảnh được chụpsẽđượcphântíchthànhcácđặctrưngriêngbiệt,vớinhữngđặctrưngđótađemđi nhậndạng.
Như đã đề cập ở trên thì các hình dạng của sản phẩm sẽ có các đặc điểm riêng biệt. Tuy nhiên, thì vẫn có một số đặc điểm giống nhau, đặc điểm khác nhau, cùng với đó có thêm một số đặc điểm bị dư thừa trong việc so sánh với các sản phẩm khác. Chính vì vậy, ở đề tàinày,tacầnchọnlọcratừngđặcđiểmriêngbiệtcủatừnghìnhmàcáchìnhkháckhông có và loại bỏ các đặc điểm không cần thiết. Như vậy, để nhận dạng được hình dạng của sản phẩm cần xác định các đặc điểm đặc trưng riêng biệt của từng hình dạng. Ở đây chỉ có 4 hình dạng sản phẩm (hình chữ nhật, hình vuông, hình tròn, hình tam giác) cần phân loại, chính vì vậy sẽ có một số đặc điểm hình dạng không cần xéttới.
Sản phẩm hình chữ nhật
...,... Từ đặc điểm đó ta đi so sánh với 3 hình còn lại và phân tích thấy: Đặc điểm thứ nhất có 4đỉnh,nhưngsảnphẩmhìnhvuôngcũngcó4đỉnh....đểso sánh sự khác biệt với hình vuông, đó là 2 cạnh kề không bằng nhau với hình chữ nhật, với hình vuông thì chúng bằng nhau. Như vậy, đặc điểm nhận dạng sản phẩm hình chữ nhật, gồm 4 đỉnh và 2 cạnh kề không bằngnhau.
Hình 1. 1: Đặc điểm hình chữ nhật
Sản phẩm hình vuông
Đặc điểm nhận dạng: Có 4 đỉnh, 4 cạnh, 4 góc vuông, 2 cạnh đối diện đều bằng nhau, 2 cạnh kề bằng nhau,… Từ đặc điểm đó ta đi so sánh với 3 hình còn lại và phân tích thấy: Đặc điểm thứ nhất có 4 đỉnh, nhưng sản phẩm hình chữ nhật cũng có 4 đỉnh như đã đề cập ở trên. Chính vì vậy ta có đặc điểm thứ hai để so sánh sự khác biệt với hình chữ nhật, đó là 2 cạnh bằng nhau. Như vậy, đặc điểm nhận dạng sản phẩm hình vuông, gồm 4 đỉnh và 2 cạnh kề bằng nhau.
Hình 1. 2: Đặc điểm hình vuông
Sản phẩm hình tròn
Đặc điểm nhận dạng: Bán kính đều bằng nhau,… Từ đặc điểm đó ta đi so sánh với 3 hình còn lại và phân tích thấy: bán kính tính từ tâm đến đường tròn bên ngoài tất cả chúng đều bằn nhau chính vì vậy đó là đặc điểm riêng biệt của hình tròn.
Hình 1. 3: Đặc điểm hình tròn
Sản phẩm hình tam giác
Đặc điểm nhận dạng: có 3 đỉnh và 3 cạnh là hình tam giác,… Từ đặc điểm đó ta đi so sánh với 3 hình còn lại và phân tích thấy: Chỉ có hình tam giác có 3 đỉnh, và đó chính là đặc điểm đặc trưng riêng biệt của tam giác.
Hình 1. 4: Đặc điểm hình tam giác
Bảng 1. 1 Đặc điểm hình dạng sản phẩm
Đặc điểm |
Hình vuông |
Hình chữ nhật |
Hình tròn |
Hình tam giác |
đỉnh |
4 đỉnh |
4 đỉnh |
không |
3 đỉnh |
cạnh |
2 cạnh kề bằng nhau |
2 cạnh kề không bằng nhau |
không |
3 cạnh |
bán kính |
không |
không |
bằng nhau |
không |
Nhưvậytacóthểthấy,tachỉcầntìmbađặcđiểmchính:Đỉnh,cạnhvàbánkính. Trong đó đỉnh liên quan đến hình tam giác, hình chữ nhật và hình vuông. Cạnh chỉ có hai hình là hình vuông và hình chữ nhật. Bán kính chỉ liên quan tới hìnhtròn.
1.4.3 Phương pháp tìm đặc điểm hình dạng để phân loại sản phẩm
Để phân loại sản phẩm ta cần có đặc điểm của hình dạng, từ đó ta đi so sánh để phân loại sản phẩm theo hình dạng.
Đỉnh của hình dạng
Đầu tiên ta tìm số đỉnh của các hình. Có 3 hình dạng có đặc điểm liên quan tới đỉnh là hình chữ nhật, hình vuông và hình tam giác. Đặc điểm gồm:
- Có 4 đỉnh là hình vuông và hìnhtròn
- Có 3 đỉnh là hình tamgiác
Cạnh của hình dạng
Vấn đề về cạnh chỉ có 2 hình là liên quan tới chúng là: hình chữ nhật và hình vuông. Đặc điểm gồm:
- Hai cạnh kề bằng nhau là hìnhvuông
- Hai cạnh kề không bằng nhau là hình chữnhật
Bán kính của hình dạng
Bán kính là độ dài tính từ tâm tới điểm ngoài đường tròn, ở đây thì liên quan có duy nhất một hình là hình tròn.
Có đặc điểm: bán kính bằng nhau.
1.4.3.1 Phương pháp tìm đỉnh
Hình 1. 5: Đỉnh của hình
Sử dụng thuật toán Ramer-Douglas-Peucker để tìm đường bao xấp xỉ, từ đường bao ta suy ra được đỉnh.
Hình 1. 6: Đoạn Ramer – Douglas – Peucker
Ý tưởng cơ bản của thuật toán Ramer-Douglas-Peucker là xét xem khoảng cách lớn nhất từ đường cong tới đoạn thẳng nối hai điểm đầu và điểm cuối đường cong, có lớn hơn ngưỡng θ không. Đầu tiên ta có điểm đầu và điểm cuối (tạm gọi là A, E) của sẽ được giữ lại, sau đó tìm điểm có khoảng cách lớn nhất đến đường thẳng AB (tạm gọi là điểmCvàđộdàitạmgọilàh).Nếukhoảngh<θthìđiểmCsẽbịloạibỏ,ngượclạinếu h ≥ θ thì điểm C sẽ được giữ lại và sẽ được chia thành 2 đoạn thẳng là AC và CB. Với từng đoạn AC và CB, thuật toán sẽ được lặp lại tương tự như với AB banđầu.
Ở đây hình dạng sản phẩm là đa giác tức là đường viền couar nó chính là đường khép kín từ đó có thể thấy điểm đầu và điểm cuối trùng nhau.
Hình 1. 7: Đường xấp xỉ
Giả xử điểm đầu và điểm cuối là A, tiếp tục so sánh đoạn AC với θ nếu > θ thìC là đỉnh ngược lại thì không phải. Tương tự ta sử dụng thuật toán đó để tìm ra đỉnh B và đỉnhD.
1.4.3.2 Phương pháp tìm độ dài cạnh
Hình 1. 8: Độ dài cạnh
Giả sử ta có tọa độ của 2 đỉnh tìm được ở bước tìm đỉnh là A() và B(), ta tìm cạnh với công thức:
Với AB là độ dài cạnh. Tương tự cho các cạnh còn lại
1.4.3.3 Phương pháp tìm tâm và bán kính
Bán kính là khoảnh cách từ tâm tới các điểm trên đường tròn.
Hình 1. 9: Bán kính bằng nhau
... tam giác ABC nội tiếp đường tròn tâm O. Tâm đường tròn ngoại tiếp tam giác là giao điểm của 3 đường trung trực, tam giác ở đây ta chọn bất kì 3 điểm trên dườn tròn giảsử chọn 3 đỉnh A(), B(), C(). Gọi tâm O(x,y), tìm tâm theo công thức sau:
Với AO, BO, CO chính là bán kính đường tròn, từ đó ta có:
ó tâm O(x,y)
1.5 Phương án thiết kế
1.5.1 Yêu cầu thiết kế
Với mục tiêu là mô hình phục vụ cho đồ án tốt nghiệp nên không thể đáp ứng được đầy đủ các yêu cầu trong thực tế cũng như các điều kiện phân loại phức tạp. Tuy nhiên, mô hình thiết kế phải đảm bảo một số yêu cầu kỹ thuật chung như sau:
- Mô hình cơ bản phải phù hợp với nguyên lý phân loại trong thực tế;
- Lắp ráp, đấu nối và vận hành điều khiển dễ dàng;
- Sử dụng các vật tư, thiết bị, linh kiện thông dụng để dễ dàng thay thế sữa chữa;
- Đảm bảo tính thẩm mỹ và gọn gàng. Các cơ cấu truyền động, kết nối phải đảm bảo cứng vững và tuổi thọ cao
1.5.2 Lựa chọn phương án thiết kế
Với những yêu cầu kỹ thuật đã phân tích ở trên, kết hợp với một số tài liệu tham khảo, nhóm quyết định sẽ sử dụng công nghệ phân loại sản phẩm bằng phương pháp xử lý ảnh thông qua Raspberry kết hợp với PLC S7 – 1200 cho đề tài “Ứng dụng xử lý ảnh để phân loại sản phẩm theo hình dạng, điều khiển và giám sát qua WinCC”.
Nhóm chọn phương án thiết kế này vì nó dễ lắp đặt và thi công mô hình chi phí không cao, còn những phương án thiết kế khác thì chi phí lắp đặt cao, nhiều thiết bị vật liệu khó tìm kiếm.
Mô hình của nhóm mô phỏng lại một hệ thống như trong thực tế.
Phương án thiết kế mô hình gồm các phần chính như sau:
vPhần cơ khí:
- Sử dụng băng tải để vận chuyển sản phẩm
- Kích thước ước tính của mô hình : D/R/C: 120/60/40cm
- Sử dụng xilanh để đẩy sản phẩm vào ô chứa
- Sử dụng cảm biến để đếm sản phẩm
vPhần điện:
- Sử dụng nguồn điện 220, nguồn tổ ong 24V
- Sử dụng Raspberry để xử lý ảnh thông qua thư viện OpenCV
- Sử dụng PLC S7 1200 CPU 1214C DC/DC/DC để lập trình điều khiển quá trình hoạt động của mô hình
Mô hình ở đề tài được hướng thiết kế theo mô hình phân loại sản phẩm thực tế với các chức năng được mô phỏng tương tự gồm có:
- Bảng điều khiển trên tủ điện
+ Nút nhấn Start
+ Nút nhấn Stop
+ Nút nhấn E – Stop
+ 4 nút điều khiển bằng tay ( Băng tải, Xilanh 1, Xilanh 2, Xilanh 3)
CHƯƠNG 2: GIỚI THIỆU VỀ RASPPBERRY VÀ NGÔN NGỮ LẬP TRÌNH PYTHON
2.1 Tổng quan về Raspberry
Raspberry Pi là cái máy tính giá 35USD kích cỡ như iPhone và chạy HĐH Linux. Với mục tiêu chính của chương trình là giảng dạy máy tính cho trẻ em. Được phát triển bởi Raspberry Pi Foundation – là tổ chức phi lợi nhuận với tiêu chí xây dựng hệ thống mà nhiều người có thể sử dụng được trong những công việc tùy biến khác nhau.
Nhiệm vụ ban đầu của dự án Raspberry Pi là tạo ra máy tính rẻ tiền có khả năng lập trình cho những sinh viên , nhưng Pi đã được sự quan tầm từ nhiều đối tượng khác nhau. Đặc tính của Raspberry Pi xây dựng xoay quanh bộ xử lí SoC Broadcom BCM2835 ( là chip xử lí mobile mạnh mẽ có kích thước nhỏ hay được dùng trong điện thoại di động ) bao gồm CPU , GPU , bộ xử lí âm thanh /video , và các tính năng khác … tất cả được tích hợp bên trong chip có điện năng thấp này .
Raspberry Pi không thay thế hoàn toàn hệ thống để bàn hoặc máy xách tay . Bạn không thể chạy Windows trên đó vì BCM2835 dựa trên cấu trúc ARM nên không hỗ trợ mã x86/x64 , nhưng vẫn có thể chạy bằng Linux với các tiện ích như lướt web , môi trường Desktop và các nhiệm vụ khác . Tuy nhiên Raspberry Pi là một thiết bị đa năng đáng ngạc nhiên với nhiều phần cứng có giá thành rẻ nhưng rất hoàn hảo cho những hệ thống điện tử , những dự án DIY , thiết lập hệ thống tính toán rẻ tiền cho những bài học trải nghiệm lập trình …
Model B bao gồm những phần cứng và những cổng giao diện:
- SoC 700MHz với 512MB RAM.
- 1 cổng HDMI cho đầu ra âm thanh / video số.
- 1 cổng video RCA cho đầu ra video Analog.
- Jack Headphone Stereo 3.5mm cho đầu ra âm thanh Analog.
- 2 cổng USB.
- 1 đầu đọc thẻ nhớ SD để tải hệ điều hành.
- 1 cổng Ethernet LAN.
- 1 giao diện GPIO (General Purpose Input/Output) .
Về cơ bản Raspberry Pi có khá nhiều OS linux chạy được nhưng vẫn có sự thiếu vắng của Ubuntu (do CPU ARMv6).
Điểm danh một số Distributions Linux (nhúng) chạy trên Raspberry Pi như Raspbian, Pidora, openSUSE, OpenWRT, OpenELEC,….
Hình 2. 1: Raspberry Pi
2.2 Giới thiệu ngôn ngữ lập trình Python
2.2.1 Giới thiệu ngôn ngữ Python
Python là một ngôn ngữ lập trình được sử dụng phổ biến ngày nay từ trong môi trường học đường cho tới các dự án lớn. Ngôn ngữ phát triển nhiều loại ứng dụng,phần mềm khác nhau như các chương trình chạy trên desktop, server, lập trình các ứng dụng web... Ngoài ra Python cũng là ngôn ngữ ưa thích trong xây dựng các chương trình trí tuệ nhân tạo trong đó bao gồm machine learning. Ban đầu, Python được phát triển để chạy trên nền Unix, nhưng sau này, nó đã chạy trên mọi hệ điều hành từ MS-DOS đến Mac OS, OS/2, Windows, Linux và các hệ điều hành khác thuộc họUnix.
PythondoGuidovanRossumtạoranăm1990.Pythonđượcpháttriểntrongmột dựánmãmở,dotổchứcphilợinhuậnPythonSoftwareFoundationquảnlý.Mặcdùsự phát triển của Python có sự đóng góp của rất nhiều cá nhân, nhưng Guido van Rossum hiện nay vẫn là tác giả chủ yếu của Python. Ông giữ vai trò chủ chốt trong việc quyết định hướng phát triển củaPython.
2.2.2 Đặc điểm nổi bật của Python
Python là ngôn ngữ có hình thức đơn giản, cú pháp ngắn gọn, sử dụng một số lượng ít các từ khoá, do đó Python là một ngôn ngữ dễ học đối với người mới bắt đầu tìmhiểu.Pythonlàngônngữcómãlệnh(sourcecodehayđơngiảnlàcode)khôngmấy phức tạp. Cả trường hợp bạn chưa biết gì về Python bạn cũng có thể suy đoán được ý nghĩa của từng dòng lệnh trong sourcecode.
.....
2.3 Giới thiệu thư viện OpenCV
2.3.1 Giới thiệu OpenCV
OpenCV là tên viết tắt của open source computer vision library – có thể được hiểu là một thư viện nguồn mở cho máy tính. Cụ thể hơn OpenCV là kho lưu trữ các mã nguồn mở được dùng để xử lý hình ảnh, phát triển các ứng dụng đồ họa trong thời gian thực.
OpenCV cho phép cải thiện tốc độ của CPU khi thực hiện các hoạt động real time. Nó còn cung cấp một số lượng lớn các mã xử lý phục vụ cho quy trình của thị giác máy tính hay các learning machine khác.
Thư viện OpenCV được phát hành với giấy phép BDS. Do đó các dịch vụ nó cung cấp là hoàn toàn miễn phí và được hạn chế tối đa các rào cản thông thường. Cụ thể, bạn được phép sử dụng phần mềm này cho cả hoạt động thương mại lẫn phi thương mại. OpenCV sở hữu giao diện thiên thiện với mọi loại ngôn ngữ lập trình, ví dụ như C++, C, Python hay Java… Ngoài ra, nó cũng dễ dàng tương thích với các hệ điều hành khác nhau, bao gồm từ Windows, Linux, Mac OS, iOS cho đến cả Android.
Kể từ lần đầu xuất hiện từ năm 1999, giờ đây OpenCV đã sở hữu đội ngũ người dùng hùng hậu, con số ước tính có thể lên tới 47.000 người. Tất cả là nhờ những ưu điểm vượt trội của OpenCV.
Thư viện Ooencv được ứng dụng vào rất nhiều trường hợp khác nhau. Như các phần mềm định vị, bản đồ nói chung, nhà cung cấp dữ liệu hình ảnh cho các app về Map, khởi tạo ra những hình ảnh 3 chiều phức tạp, tất cả những ứng dụng công nghệ như robot, xe tự lái, bảng cảm ứng thông minh…
Thư viện sử dụng nhiều ngôn ngữ lập trình phổ biến như: ngôn ngữ lập trình C++/C# ngôn ngữ lập trình Java và Python.
Và ở đây, ta sử dụng ngôn ngữ lập trình Python cho đề tài. Với phần mềm không quá phức tạp mà thiên hướng gọn nhẹ thì ngôn ngữ Python sẽ là sự lựa chọn chính xác nhất. Nhờ các câu lệnh ngắn gọn cùng thuộc tính đơn giản, Python giúp cho quá trình phát triển phần mềm OpenCV diễn ra dễ dàng hơn. Sử dụng ngôn ngữ Python sẽ là biện pháp tốt nhất cho những người không mạnh mảng lập trình. Điểm trừ của Python là vì có cấu tạo quá đơn giản nên một số tính năng cần sự phức tạp sẽ bị hạn chế.
2.3.2 Đặc điểm OpenCV
OpenCVLàmộtthưviệnmởnênsửdụngcácthuậttoánmộtcáchmiễnphí,cùng với việc chúng ta cũng có thể đóng góp thêm các thuật toán giúp Thư viện thêm ngày càng pháttriển.
Các tính năng của thư viện OpenCV:
- Đối với hình ảnh, chúng ta có thể đọc và lưu hay ghichúng.
- Về Video cũng tương tự như hình ảnh cũng có đọc vàghi.
- Xử lý hình ảnh có thể lọc nhiễu cho ảnh, hay chuyển đổiảnh.
- Thực hiện nhận dạng đặc điểm của hình dạng trongảnh.
- Phát hiện các đối tượng xác định được xác định trước như khuôn mặt, mắt, xe trong video hoặc hìnhảnh.
- Phân tích video,... ước lượng chuyển động của nó, trừ nền ra và theo dõi các đối tượng trongvideo.
2.4 Tổng quan về xử lý ảnh
2.4.1 Giới thiệu xử lí ảnh
Xử lý ảnh không còn là đề tài quá mới, nó được áp dụng từ trong các hoạt động thườngngàychođếnviệcnângcaosảnxuất. Nókhôngnhữnggiúpíchchocánhânhay gia đình, mà còn ứng dụng cả trong Chính trị, Y tế, Giáo dục,… Xử lý tín hiệu là một mônhọctrongkỹthuậtđiệntử,viễnthôngvàtrongtoánhọc.Liênquanđếnnghiêncứu và xử lý tín hiệu kỹ thuật số và analog, giải quyết các vấn đề về lưu trữ, các thành phần bộ lọc, các hoạt động khác trên tín hiệu. Các tín hiệu này bao gồm truyền dẫn tín hiệu, âm thanh hoặc giọng nói, hình ảnh, và các tín hiệukhác,…
Trong số các phương pháp xử lý tín hiệu kể trên, lĩnh vực giải quyết với các loại tín hiệu mà đầu vào là một hình ảnh và đầu ra cũng là một hình ảnh, sản phẩm đầu ra đượcthựchiệntrongmộtquátrìnhxửlý,đóchínhlàquátrìnhxửlýảnh.Nócóthểđược chia thành xử lý hình ảnh tương tự và xử lý hình ảnh kỹ thuật số. Để có 1 bức ảnh số ta có qúa trình thực hiện như sau: Chụp ảnh từ một máy ảnh là một quá trình vật lý. Ánh sáng mặt trời sử dụng như một nguồn năng lượng. Một dãy cảm biến được sử dụng cho việc thu lại của hình ảnh. Vì vậy, khi ánh sáng mặt trời rơi trên người đối tượng, sau đó số lượng ánh sáng phản xạ của đối tượng được cảm nhận từ các cảm biến, và một tín hiệu điện áp liên tục được tạo ra bởi số lượng dữ liệu cảm biến đó. Để tạo ra một hình ảnh kỹ thuật số, chúng ta cần phải chuyển đổi dữ liệu này thành một dạng kỹ thuật số. Điềunàyliênquanđếnviệclấymẫuvàlượngtửhóa.Kếtquảcủaviệclấymẫuvàlượng tử hóa sau một quá trình xử lý là một hình ảnh kỹ thuậtsố.
2.4.2 Những vấn đề trong xử lý ảnh
Có những vấn đề cơ bản như sau :
2.4.2.1 Điểm ảnh
Làđơnvịcơbảnnhấtđểtạonênmộtbướcảnhkỹthuậtsố.Địachỉcủađiểmảnh được xem như là một tọa độ (x,y) nào đó. Một bức ảnh kỹ thuật số, có thể được tạo ra bằngcáchchụphoặcbằngmộtphươngphápđồhọanàokhác,đượctạonêntừhàngngàn hoặchàngtriệupixelriênglẻ.Bứcảnhcàngchứanhiềupixelthìcàngchitiết.Mộttriệu pixel thì tương đương với 1megapixel.
2.4.2.2 Biến đổi ảnh
Nói một cách đơn giản thì biến đổi ảnh thành dạng ảnh khác: ảnh màu sang ảnh xám, ảnh xám sang nhị phân, RGB -> HSV,…
2.4.2.3 Lọc màu ảnh
Có 2 cách để lọc màu ảnh theo dãy màu HSV và dãy màu BGR.
- Dãy màu HSV :
Thông thường ảnh được biểu diễn trong không gian màu BGR, nhưng không gian màu HSV lại dễ dàng xử lý hơn. Dãy màu của kênh Hue là “bảy sắc cầu vồng” từ đỏ đến tím rồi lại về đỏ, nên có thể xác định được ngay nó là màu gì. Do đó trong hầuhết bài toán đều phải tiến hành chuyển ảnh ban đầu sang không gian màu HSV trước khi xử lý những bước tiếptheo.
Hình 2. 2: Dãy màu HSV
- Dãy màu RGB :
RGB là không gian màu phổ biến dùng trong máy tính, máy ảnh, điện thoại và nhiều thiết bị kĩ thuật số khác nhau. Không gian màu này khá gần với cách mắt người tổng hợp màu sắc. Nguyên lý cơ bản là sử dụng 3 màu sắc cơ bản R (red - đỏ), G(green - xanh lục) và B (blue - xanh lam) để biểu diễn tất cả các màu sắc.
Thông thường, trong mô hình 24 bit mỗi kênh màu sẽ sử dụng 8bit để biểu diễn, tức là giá trị R, G, B nằm trong khoảng 0 - 255. Bộ 3 số này biểu diễn cho từng điểm ảnh, mỗi số biểu diễn cho cường độ của một màu. Với mô hình màu 24bit thì số màu tối đa có thể tạo ra là 255 x 255 x 255 = 16581375màu.
Bên cạnh hệ màu RGB thì ta sẽ nghe đến RGBA, thực ra đây là một hệ màu được lấy căn bản từ hệ màu RGB tuy nhiên có thêm một kênh alpha (α). Kênh α được sử dụng như là kênh mờ, nếu một pixel có giá trị 0% trong kênh α của nó thì nó hoàn toàn trong suốt, trong khi giá trị 100% sẽ khiến cho điểm đó bị mờ đục. Điều này được ứng dung rất nhiều trong việc ghép các ảnh lại và mang một độ chân thực nhấtđịnh.
Hình 2. 3: Dãy màu RGB
2.4.2.4 Lọc nhiễu
Làm trơn nhiễu bằng lọc tuyến tính: Khi chụp ảnh có thể xuất hiện nhiều loại nhiễu vào qúa trình xử lý ảnh, nên ta cần phải lọc nhiễu. Gồm các phương pháp cơ bảnlọctrungbình,lọcthôngthấp,…Vídụlọctrungbình:Vớilọctrungbình,mỗiđiểm ảnh được thay thế bằng trung bình trọng số của các điểm lâncận.
Làm trơn nhiễu bằng lọc phi tuyến: Các bộ lọc phi tuyến cũng hay được dùngtrongkỹthuậttăngcườngảnh.Mộtsốphươngpháplọccơbảnbộlọctrungvị,lọc ngoài,… Với lọc trung vị, điểm ảnh đầu vào sẽ được thay thế bởi trung vị các điểm ảnh còn lọc giả trung vị sẽ dùng trung bình cộng của hai giá trị “trung vị” (trung bình cộng của max vàmin).
Lọctrungvị:Kỹthuậtnàyđòihỏigiátrịcácđiểmảnhtrongcửasổphảixếptheo thứ tự tăng hay giảm dần so với giá trị trung vị. Kích thước cửa số thường được chọn sao cho số điểm ảnh trong cửa sổ làlẻ.
Lọc ngoài: Giả thiết có ngưỡng nào đó cho các mức nhiễu (có thể dựa vào lược đồxám).Tiếnhànhsosánhgiátrịđộxámcủamộtđiểmảnhvớitrungbìnhsốhọc8lân cận của nó. Nếu sai lệch lớn hơn ngưỡng, điểm ảnh này được coi như nhiễu. Trong trường hợp đó, thay thế giá trị của điểm ảnh bằng giá trị trung bình 8 lân cận vừa tính được.
2.4.2.5 Phương pháp phát hiệnbiên
Biên là một trong những vấn đền ta cần quan tâm trong xử lý ảnh. Vì ở giaiđoạn phân đoạn ảnh chủ yếu dựa vàobiên.
Hình 2. 4: Hình ảnh tách biên
Điểm biên: Một điểm ảnh được coi là điểm biên nếu có sự thay đổi nhanh hoặc đột ngột về mức xám (hoặc màu). Ví dụ trong ảnh nhị phân, điểm đen gọi là điểm biên nếu lân cận nó có ít nhất một điểm trắng. Đường biên (đường bao: boundary): tập hợp các điểm biên liên tiếp tạo thành một đường biên hay đường bao.
Ý nghĩa của đường biên trong xử lý: ý nghĩa đầu tiên của đường biên là một loại đặc trưng cục bộ tiêu biểu trong phân tích, nhận dạng ảnh. Thứ hai, người ta sử dụng biênlàmphâncáchcácvùngxám(màu)cáchbiệt.Ngượclại,ngườitacũngsửdụngcác vùng ảnh để tìm đường phân cách. Tầm quan trọng của biên: để thấy rõ tầm quan trọng của biên, xét ví dụ sau: khi người họa sỹ muốn vẽ một danh nhân, họa sỹ chỉ cần vẽ vài đường nứt tốc họa mà không cần vẽ một cách đầyđủ.
Như vậy, phát hiện biên một cách lý tưởng là phát hiện được tất cả các đường biên trong các đối tượng. Định nghĩa toán học của biên ở trên là cơ sở cho các kỹ thuật pháthiệnbiên.Điềuquantrọnglàsựbiếnthiêngiữacácđiểmảnhthườngnhỏ,trongkhi đóbiếnthiênđộsángcủađiểmbiênthườnglàkhálớnkhiquabiên.Xuấtphátcơsởnày người ta thường sử dụng hai phương pháp phát hiện biên như sau: Tách biên theo đạo hàmbậcmột:Có2 phươngphápcơbảnlà:mộtlàtạogradientcủahaihướngvàtrực giao trong ảnh, hai là dùng tập đạo hàm có hướng. Tách biên theo đạo hàm bậc hai: đượcthựchiệntrênmộtsốdạngviphânbậc2đểlàmxuấthiệnbiên.
2.4.2.6 Phân đoạn ảnh
Phân đoạn ảnh là bước then chốt trong xử lý ảnh. Giai đoạn này nhằm phân tích ảnhthànhcácvùngcócùngtínhchấtnàođódựatheobiênhaycácvùngliênthông.Tiêu chuẩn để xác định các vùng liên thông có thể là cùng mức xám, cùng màu hay cùng độ nhóm.
Quátrìnhphânđoạnảnhnhằmtáchđốitượngcầnkhảosátrakhỏiphầnnộidung cònlạicủaảnh,hayphânchiacácđốitượngtrongảnhthànhnhữngđốitượngriêngbiệt. Như vậy quá trình phân đoạn ảnh là quá trình giảm bớt số lượng thông tin trong ảnh và chỉ giữ lại những thông tin cần thiết cho ứng dụng. Do đó phân đoạn ảnh là quá trình loại bỏ các đối tượng không quan tâm trong ảnh. Có nhiều phương pháp phân đoạn ảnh khác nhau. Trong đó quá trình phân đoạn ảnh sử dụng một ngưỡng giá trị xám để phân đoạnảnhrathànhcácđốitượngvànềnlàphươngphápđơngiảnnhất.Lúcnàycácđiểm ở bên dưới ngưỡng giá trị xám thuộc về nền còn những điểm ảnh ở bên trên ngưỡnggiá trị xám thuộc về đối tượng. Phương pháp phân đoạn ảnh này hiệu quả lớn đối với ảnh nhị phân, văn bản in hay đồ họa... Dựa vào đặc tính vật lý của vùng ảnh, các kỹ thuật phân đoạn vùng có thể được chia làm 3loại:
- Các kỹ thuật cục bộ: dựa trên các đặc tính cục bộ của các điểm ảnh và các lân cận củanó.
- Cáckỹthuậttổngthể:phânđoạnmộtảnhdựatrêncơsởcủathôngtinlấytừtổng thể như sử dụng biểu đồ mức xámhistogram.
- Các kỹ thuật chia, nối và phát triển: dựa trên các khái niệm tương đồng về hình dạng và tính đồng nhất. Hai vùng có thể được nối lại với nhau và liền kề bên nhau. Các vùngkhôngđồngnhất cóthểđượcchiathànhcácvùngnhỏ.Mộtvùngcóthểđượcphát triển bằng các nối các điểm ảnh sao cho nó đồng nhất vớinhau.
2.4.2.7 Các phép giãn nở của ảnh
Phép giãn là thao tác giãn nở/phình to các đối tượng ảnh đơn sắc.
Hình 2. 5: Phép giãn
Phépcolàthaotácxóimòn/cohẹpcácđốitượng ảnh đơn sắc. Nếu như phép dãn có thể nói là thêm điểm ảnh vào trong đối tượng ảnh, làmchođốitượngảnhtrởnênlớnhơnthìphépcosẽlàmchođốitượngảnhtrởnênnhỏ hơn, ít điểmảnh.
Hình 2. 6: Phép co
2.4.2.8 Những định dạng của ảnh
Ảnhthunhậnđượcsauquátrìnhsốhóathườngđượclưulạichocácquátrìnhxử lý tiếp theo hay truyền đi. Trong quá trình truyền của kỹ thuật xử lý ảnh, tồn tại nhiều định dạng khác nhau từ ảnh đen trắng như định dạng IMG, ảnh đa cấp xám cho đếnảnh màu(BMP,JPEG,GIF)
2.4.2.9 Các phần mềm hỗ trợ xử lýảnh
Hiện nay xử lý ảnh được giảng dạy trường đại học và ứng dụng vào thực tế rất nhiều như các phần mềm chỉnh sửa hình ảnh hay nhận biết khuôn mặt. Chính vì thế có rất nhiều công cụ để chúng ta lập trình ứng dụng vào thực tế, như phải kể đến Matlap, Labview, hay ngôn ngữ Python,…
2.5 Xử lýảnh
Từ những vấn đề ở trên. Ở đề tài này, chúng ta sẽ xử lý ảnh qua các bước sau :
- Tiền xử lý ảnh.
- Xác định cạnh và tính toán ảnh để nhận dạng hình dạng
2.5.1 Tiền xử lý ảnh
Ở bước tiền xử lý ảnh này được thực hiện qua trình tự các bước: Đọc ảnh và cắt ảnh => lọc màu => biến đổi ảnh => tìm tập hợp điểm => vẽ viền quanh ảnh.
2.5.1.1 Đọc ảnh và cắt ảnh
Là quá trình đọc ảnh thôngqua camera ( camera màu) và chất lượng một ảnh đọc được phụ thuộc vào thiết bị thu, độ phân giải và môi trường (ánh sáng, phong cảnh). Đồng thời ta cắt ảnh để camera có thể lấy ảnh chính xác.
Hình 2. 7:Ảnh chưa cắt trên Raspberry
Hình 2. 8:Ảnh đã cắt trên Raspberry
2.5.1.2 Lọc màu
Như đã nói ở phần trước, thì có 2 cách lọc màu đó là lọc màu theo dãy màu HSV và dãy màu RGB. Tuy nhiên, với đề tài phân loại sản phẩm theo hình dạng này thì việc phân biệt màu không quá chú trọng.Vì vậy chúng ta chỉ cần đưa ảnh về màu xám theo dãy màu RGB là đơn giản nhất. Và việc lọc màu ảnh về màu xám này là quá trình giúp ta biến đổi ảnh dễ dàng hơn với tùng pixel màu.
Hình 2. 9: Lọc màu ảnh trên Raspberry
2.5.1.3 Biến đổi ảnh
Ở bước này ta biến đổi ảnh về ảnh nhị phân (với mỗi điểm ảnh chỉ có 2 màu trắng và đen) với giá trị 0 là đen (tối nhất) và 255 là trắng ( sáng nhất). Tuy nhiên, việc biến đổi này vẫn còn độ nhiễu của các điểm ảnh. Do vậy, chúng ta phải chỉnh lại ngưỡng của ảnh nhị phân, để loại bỏ bớt những điểm ảnh không cần thiết trong khoảng giá trị là 0 đến 255 pixel và từ đó ta có thể dễ dàng tìm được tập hợp các điểm ảnh mà ta cần
Hình 2. 10: Ảnh nhị phân trên Raspberry
2.5.1.4 Tìmđiểm
Ở đề tài này thì việc tìm điểm trên ảnh nhị phân mà ta đã biến đổi ảnh trước đó, giúp chúng ta xác định các điểm mà ta cần. Từ việc tìm điểm này, ta đã tách ra được 2 vùng điểm ảnh là vùng điểm không cần và vùng điểm cần nhận dạng ảnh trên bức ảnh nhị phân. Với vùng không cần là vùng điểm ảnh với giá trị là 0 và vùng cần tìm là 255. Vậy là ta đã nhận dạng được tập hợp điểm cần tính toán để phát hiện hình dạng sản phẩm.
2.5.1.5 Vẽ viền quanh ảnh
Giúp ta vẽ lên viền bao quanh ảnh, từ đó dễ dàng quan sát ảnh qua Camera.
2.5.1.6 Kết luận
Như vậy bước tiền xử lý ảnh này, nói một cách đơn giản là thì lọc nhiễu để camera nhận dạng ảnh một cách chính xác nhất.
2.5.2 Xác định cạnh và tính toán ảnh để nhận dạng hình dạng
Từ bước tiền xử lý ảnh ở trên, đó là cơ sở giúp ta phân biệt được 4 hình dạng đó là hình chữ nhật, hình tam giác, hình vuông và hình tròn. Để có thể phân biệt được 4 hình dạng này, thì ta dùng phương pháp đó là xác định cạnh của ảnh. Với tam giác là có 3 cạnh, hình vuông và hình chữ nhật có 4 cạnh, còn nhiều cạnh hơn đó sẽ là hình tròn, từ đó ta sẽ phân biệt các hình thông qua tìm cạnh của ảnh. Vấn đề là làm sao ta có thể xác định số cạnh của ảnh, với hình tam giác thì có 3 cạnh và hình tròn có nhiều số cạnh nhất là đơn giản. Vậy làm như thế nào mới phân được đâu là hình vuông và hình chữ nhật trong khi nó có số cạnh đều là 4. Để nhận dạnh được hai hình đó là hình vuông và hình chữ nhật thì ta buộc phải tính toán vùng điểm ảnh của hai hình đó với vùng điểm ảnh hình chữ nhật là lớn nhất rồi đến hình vuông cuối cùng tam giác.
2.5.2.1 Xác định cạnh
Để có thể xác định cạnh trên ảnh thì ta sẽ dùng phương pháp giảm điểm để tìm được khoảng cách xa nhất của hai điểm, là hai điểm đầu và điểm cuối trong tập hợp điểm ảnh, từ đó để tạo ra một đoạn thẳng trên ảnh như thế thì ta đã tìm ra một cạnh trên ảnh.
Hình 2. 11: Giảm điểm và tạo đoạn thẳng của lệnh ApproxPolyDP trong OpenCV
2.5.2.2 Tính toán ảnh
Việc tính toán này giúp ta phân biệt được là hình vuông và hình chữ nhật. Tuy nhiên, với sản phẩm sẽ phân loại là loại khối dạng 3D, nên đôi khi ảnh sẽ nhận dạng số cạnh bị sai, phát sinh ra thêm cạnh như hình tam giác có 3 cạnh nhưng khi nhận dạng cạnh sẽ thêm 1 đến 2 cạnh, như thế thì tam giác sẽ có đến 4 đến 5 cạnh và hình chữ nhật với hình vuông cũng tương tự thế, thì việc nhận dạng và phân loại hình dạng sẽ bị phân loại nhầm. Vì thế, việc tính toán ảnh này ngoài việc phân biệt được 2 hình là hình vuông và hình chữ nhât, còn giúp ta giúp ta nâng cao độ chính xác khi xử lý ảnh để phân loại sản phẩm chính xác nhất.
Ở đề tài này, việc tính toán khá là đơn giản cho việc phân biệt hình vuông và hình chữ nhật. Lấy hiệu của hai cạnh trên ảnh, với hình chữ nhật là lớn nhất đến hình vuông. Với tam giác là nhỏ nhất nên ta sẽ tính vùng điểm trên ảnh để nhận dạng tam giác với vùng điểm trên ảnh bé hơn kết quả khi được tính toán ra sẽ là tam giác. Hình tròn thì đơn giản nhất với số cạnh lớn hơn 8 cạnh sẽ là hình tròn.
CHƯƠNG 3: TỔNG QUAN VỀ PLC VÀ PHẦN MỀM TIA PORTAL
3.1 Giới thiệu về PLC
PLC (Programmable Logic Controller) là thiết bị điều khiển lập trình từ đó thực hiện được các thuật toán điều khiển logic thông qua ngôn ngữ lập trình của PLC. PLC được lên ý tưởng ban đầu của một nhóm kỹ sư thuộc hãng General Motor vào năm 1968. Từ những năm đầu của thế kỉ 20, PLC được sử dụng ngày càng rộng rãi và phổ biến trong công nghiệp của nước ta như là 1 giải pháp lý tưởng cho việc tự động hóa các quá trình sản xuất, nhằm tăng năng suất của một hệ thống, nhà máy. Đi đôi với sự phát triển công nghệ máy tính vượt bậc theo từng ngày như hiện nay, bộ điều khiển lập trình đạt được những ưu thế cơ bản trong ứng dụng điều khiển côngnghiệp.
Hiện nay có nhiều hãng sản xuất ra PLC như PLC Mitsubishi, Siemens, Panasonic…
Ngôn ngữ lập trình của PLC được sử dụng phổ biến như: LAD (Ladder logic – thang logic), FBD (Function Block Diagram – Khối chức năng), STL (Statement List – Liệt kê lệnh) trong đó Ladder logic là ngôn ngữ lập trình PLC được nhiều kỹ thuật, lập trình viên dùng và ưu chuộng nhất.
PLC được ứng dụng trong công nghiệp nhưng những dây chuyền hệ thống đóng gói sản phẩm, băng chuyền sản phẩm với quy mô nhỏ thì có thể sử dụng những PLC có ít in/out với chi phí kinh tế thấp nhưng vẫn được sử dụng cho những ứng dụng cơ bản. Đối với những tác vụ, yêu cầu kĩ thuật phức tạp thì có thể sử dụng module khác nhau với lượng I/O, thêm module truyền thông, analog để phù hợp với yêu cầu đặt ra.
Hình 3. 1: Ứng dụng của PLC
Như vậy, PLC là 1 máy tính thu nhỏ nhưng với các tiêu chuẩn công nghiệp cao và khả năng lập trình logic mạnh. PLC là đầu não quan trọng và linh hoạt trong điều khiển tự động hóa.
vLịch sử phát triển của PLC
Trước khi có PLC thì việc điều khiển các cơ cấu máy móc thực hiện theo logic thì chỉ có thể sử dụng các Role trung gian, Timer, Counter…và cùng với đó, hệ thống càng phức tạp, càng nhiều quy trình thì có càng nhiều khí cụ điện như trên được dùng. Việc đó gây ra nhiều vấn đề trong quá trình lắp đặt, sử dụng và bảo trì, vì thế PLC được phát minh và là bước tiến lớn trong hoạt động sản xuất thời bấy giờ
Năm 1968, Bộ điều khiển lập trình đầu tiên (Programmable Logic Controller) hay còn có tên gọi là Modicon đã được Dick Morley và những kỹ sư của Công ty General Motor – Hoa Kỳ sáng chế.
Các chỉ tiêu kỹ thuật được đưa ra nhằm đáp ứng các yêu cầu điều khiển như:
- Dễ lập trình và thay đổi chương trình theo hệ thống.
- Cấu trúc dạng Module mở rộng, dễ bảo trì và sữa chữa.
- Đảm bảo độ tin cậy trong môi trường sản xuất.
Hình 3. 2: Bộ PLC đầu tiên của Mỹ
Tuy nhiên vì là bộ vi điều khiển với thế hệ đầu tiên cùng với những hạn chế về công nghệ những năm 70, bộ điều khiển lập trình còn khá đơn điệu và đặc biệt cồng kềnh, do đó khiến người vận hành và các kỹ sư gặp khó khăn trong việc vận chuyển, lắp đặt, vận hành và lập trình trên bộ điều khiển lập trình. Vì vậy các nhà thiết kế - chế tạo từng bước một cải tiến hệ thống trở gọn nhẹ, dễ vận hành cũng như ưu việt hơn về nhiều mặt.
Tiếp theo đó, hệ thống điều khiển lập trình cầm tay (Programmable Controller Handle) đầu tiên được ra đời vào năm 1969 nhằm đơn giản hóa việc lập trình. Sự phát triển này này đã tạo ra sự thuận lợi và phát triển thật sự cho kỹ thuật lập trình điều khiển thời bấy giờ.
Hình 3. 3: Bộ PLC năm 1969
Trong giai đoạn này, các hệ thống điều khiển lập trình (PLC) chỉ nhằm thay thế hệ thống Relay và dây nối trong hệ thống điều khiển ở những thời kỳ đầu. Qua quá trình vận hành, các nhà thiết kế và sáng chế đã ghi nhận và rút ra được những ưu điểm, những thiếu xót và từng bước tạo ra được một tiêu chuẩn mới cho hệ thống, và đó là tiêu chuẩn: Dạng lập trình dùng giản đồ hình thang.
Từ đầu năm 1970, sự phát triển của hệ thống phần cứng đã làm cho hệ thống PLC phát triển mạnh mẽ hơn với nhiều các chức năng mở rộng:
- Số lượng Input và Output nhiều hơn và có khả năng điều khiển các đầu vào, đầu ratừ xa bằng kỹ thuật truyền thông.
- Bộ lưu trữ dữ liệu không còn hạn chế và được nhiều hơn.
- Nhiều loại Module chuyên dùng hơn với từng yêu cầu kĩ thuật khác nhau.
Cùng với sự phát triển của phần cứng, sự phát triển của công nghệ phần mềm cũng được đẩy lên một bậc mới, bộ lập trình điều khiển PLC không chỉ thực hiện các lệnh Logic đơn giản mà còn có thêm các lệnh đếm sự kiện xảy ra, xử lý toán học, xử lý xung, thời gian thực…và dần trở thành một thiết bị không thể thiếu trong công nghiệp tự động.
Hình 3. 4: Bộ Module PLC năm 1970
Ngày nay ,khi mà khoa học công nghệ của loài người đã phát triển,vi mạch điện tử và công nghệ thông tin phát triển vượt bậc , PLC không chỉ được thiết ngày càng nhỏ gọn từ những cỗ máy cồng kềnh và khó vận hành, cùng với đó chức năng cũng được bổ xung khá nhiều. So sánh với những PLC đời đầu được sáng chế và phát minh những năm 1970, PLC thời nay đã có thêm các chức năng nâng cao hơn như truyền thông, PID, kết nối Internet, điều khiển Servo, động cơ Step, và đặc biệt có thể điều khiển và giám sát thông qua Webserver, cùng nhiều chức năng khác. Cấu hình được nâng cao và phát triển như có mở rộng nhiều module hơn, tốc độ xử lý tăng lên phù hợp với những yêu cầu lập trình khác nhau.
Hình 3. 5: Các loại PLC phổ biến hiện nay
3.2 Giới thiệu về PLC S7 – 1200
Hình 3. 6: PLC S7 – 1200
PLC S7 – 1200 với nhiều CPU khác nhau được ra mắt vào năm 2009, mục đích nhằm thay thế dần cho PLC S7–200 với nhiều tính năng nổi trổi hơn.
S7 – 1200 có thể kiểm soát nhiều ứng dụng, thiết kế gọn, chi phí thấp, có tập lệnh mạnh, giúp người lập trình có giải pháp hoàn thiện với nhiều ứng dụng tùy thuộc vào môi trường làm việc.
CPU của PLC S7 - 1200 được kết hợp với một Microprocessor, một nguồn cung cấp được tích hợp sẵn, các đầu vào/ra (DI/DO), được thiết kế theo nền tảng Profinet, điều khiển vị trí (motion control), các bộ đến xung tốc độ cao, các ngõ Analog Input/Output.
Một số tính năng bảo mật giúp bảo vệ quyền truy cập vào cả CPU và chương trình điều khiển:
- Tất cả các CPU đều cung cấp bảo vệ bằng password chống truy cập vào PLC.
- Tính năng “Know-How Protection” để bảo vệ các block đặc biệt .
- S7-1200 cung cấp một cổng truyền thông mạng Profinet, hỗ trợ chuẩn Ethernet vàTCP/IP. Ngoài ra, PLC S7 - 1200 có thể truyền thông Profibus, GPRS, RS485, RS232 thông qua các module mở rộng ngoài.
- Dòng sản phẩm PLC S7-1200 có nhiều CPU khác nhau như: CPU 1211, CPU 1212, CPU 1214, CPU 1215, CPU 1217…trong mỗi dòng CPU đều được phân biệt bởi ký hiệu như AC/DC/RLY, DC/DC/DC, AC/DC/DC…tương ứng với nguồn nuôi cho CPU, dạng cổng Input, dạng Ouput. Mỗi CPU có bộ nhớ làm việc, chu kỳ lệnh, cổng truyền thông giao tiếp, khối tổ chức chương trình OB, chức năng khác nhau…Tùy vào ứng dụng và hệ thống mà ta sẽ lựa chọn dòng CPU phù hợp để đáp ứng về tốc độ xử lý, cũng như về giá thành của CPU.
3.2.1 Cấu trúc phần cứng của PLC S7 – 1200:
1 - Chế độ hoạt động của các ngõ I/O.
2 - Chế độ hoạt động của PLC.
3 - Cổng kết nối.
4 - Khe cắm thẻ nhớ.
5 - Nơi gắn dây nối.
Hình 3. 7: Cấu trúc PLC S7 – 1200
Các đèn báo trên CPU:
- STOP / RUN (cam / xanh): CPU ngừng / đang thực hiện chương trình đã nạp vào bộ nhớ.
- ERROR (màu đỏ) : màu đỏ ERROR báo hiệu việc thực hiện chương trình đã xảy ra lỗi.
- MAINT (Maintenance): led cháy báo hiệu việc có thẻ nhớ được gắn vào hay không.
- LINK: Màu xanh báo hiệu việc kết nối với tính thành công.
- Rx / Tx: Đèn vàng nhấp nháy báo hiệu tín hiệu được truyền.
Đèn cổng vào ra:
- Ix.x (đèn xanh): Đèn xanh ở cổng vào báo hiệu trạng thái tức thời của cổng Ix.x. đèn nào báo hiệu trạng thái của tín hiệu theo giá trị của công tắc.
- Qx.x (đèn xanh): Đèn xanh ở cổng ra báo hiệu trạng thái tức thời của cổng Qx.x. Đèn nào báo hiệu trạng thái của tín hiệu theo giá trị logic của cổng.
Phân loại CPU S7 – 1200:
Bảng 3. 1: Bảng phân loại CPU
Chức năng |
CPU 1211C |
CPU 1212C |
CPU 1214C |
Kích thước (mm): |
90 x 100 x 75 |
90 x 100 x 75 |
110 x 100 x 75 |
Bộ nhớ làm việc Bộ nhớ nạp Bộ nhớ giữ lại |
25 KB |
25 KB |
50 KB |
1 MB |
1 MB |
2 MB |
|
2 KB |
2 KB |
2 KB |
|
Cổng I/O Kiểu digital Kiểu analog |
|
||
6 DI / 4 DO |
6 DI / 4 DO |
14 DI / 10 DO |
|
2 DO |
2 DO |
2 DO |
|
Bộ nhớ bit (M) |
4096 Byte |
4096 Byte |
8192 Byte |
Board module mở rộng |
None |
2 |
8 |
Board module truyền thông mở rộng |
3 |
3 |
3 |
Bộ đếm tốc độ cao Đơn pha
Vuông pha |
3 |
4 |
6 |
3 ở 100 kHz |
3 ở 100 kHz, 1 ở 30 kHz |
3 ở 100 kHz, 3 tại 20 kHz |
|
3 ở 80 kHz |
3 ở 80 kHz, 1 ở 20 kHz |
3 ở 80 kHz, 3 ở 20 kHz |
|
Ngõ ra xung |
2 |
2 |
2 |
Thẻ nhớ |
SIMATIC |
SIMATIC |
SIMATIC |
Thời gian lưu trữ thời gian thực |
20 ngày và ít nhất là 12 ngày ở 40oC |
||
Cổng truyền thông PROFINET Ethernet |
1 |
||
Tốc độ tính toán thực |
18 μs/ lệnh |
Chức năng |
CPU 1215C |
CPU 1217 |
Kích thước (mm): |
130 x 100 x 75 |
150 x 100 x 75 |
Bộ nhớ làm việc Bộ nhớ nạp Bộ nhớ giữ lại |
125 KB |
150 KB |
4 MB |
4MB |
|
10 KB |
10 KB |
|
Cổng I/O Kiểu digital Kiểu analog |
|
|
14 DI / 10 DO |
14 DI / 10 DO |
|
2 AI / 2 AO |
2 AI / 2 AO |
|
Bộ nhớ bit (M) |
8192 Bytes |
|
Board module mở rộng |
8
|
|
Board module truyền thông mở rộng |
3
|
|
Bộ đếm xung tốc độ cao |
3 bộ đếm tối đa 100 kHz; 3 bộ đếm tối đa 30 kHz |
|
Thẻ nhớ |
SIMATIC |
SIMATIC |
Thời gian lưu trữ thời gian thực |
20 ngày và ít nhất là 12 ngày ở 40oC |
|
Cổng truyền thông PROFINET Ethernet |
2 |
2 |
Tốc độ tính toán thực |
18 μs/ lệnh |
3.2.2 Cấu trúc phần mềm của PLC S7 – 1200
PLC S7 – 1200 gồm có 4 bộ phận cơ bản: bộ xử lý, bộ nhớ, bộ nguồn, INPUT/OUTPUT:
Hình 3. 8: Cấu trúc phần mềm cơ bản PLC
- Bộ xử lý : là bộ xử lý trung tâm (CPU), chứa bộ vi xử lý, biên dịch các tín hiệu nhập và thực hiện các hoạt động điều khiển theo chương trình được lưu trong bộ nhớ của PLC. Truyền các quyết định dưới dạng tín hiệu hoạt động đến các thiết bị xuất.
- Bộ nguồn : chuyển đổi điện áp AC thành điện áp DC (24V) cần thiết cho bộ xử lý và các mạch điện trong các module giao tiếp nhập và xuất hoạt động.
- Bộ nhớ : là nơi lưu trữ chương trình được sử dụng cho các hoạt động điều khiển dưới sự kiểm soát của bộ vi xử lý.
- Các thành phần nhập và xuất (INPUT/OUTPUT) : là nơi bộ nhớ nhận thông tin từ các thiết bị ngoại vi và truyền thông tin đến các thiết bị điều khiển. Tín hiệu nhập có thể từ các công tắc, các bộ cảm biến,… Các thiết bị xuất có thể là các cuộn dây của bộ khởi động động cơ, các van solenoid…
3.2.3 Module mở rộng của PLC S7 – 1200:
Bảng 3. 2: Module mở rộng của PLC S7 – 1200
Module |
|
Input |
Output |
Cả Input / Output |
Module tín hiệu (SM – Signal Module) |
Kiểu Digital |
8 x DC In |
8 x DC out 8 x Rly out |
8 x DC In / 8 x DC out 8 x DC In / 8 x Rly out
|
|
|
16 x DC In |
16 x DC out 16 x Rly out |
16 x DC In / 16 x DC out 16 x DC In / 16 x Rly out
|
|
Kiểu Analog |
4 x AI 8 x AI |
2 x AI 4 x AI |
4 x AI / 2 x AO |
Bảng tín hiệu (SB – Signal Board) |
Kiểu Digital |
None |
None |
2 x DC In / 2 x Dc out |
|
Kiểu Analog |
None |
1 x AI |
None |
Module truyền thông (CM)
|
3.2.4 Ngôn ngữ lập trình cho PLC S7 – 1200:
Ở PLC S7 – 1200, Siemens đã phát triển ngôn ngữ lập trình và ưu tiên 3 ngôn ngữ là: FBD, SCL và được ưu tiên và ưu chuộng nhiều hơn là LAD.
FBD (Function Block Diagram): là ngôn ngữ lập trình dựa theo đại số Bool.
SCL (Structure Language Control): là ngôn ngữ lập trình dựa theo dạng text và là ngôn ngữ dựa trên nền Pascal.
LAD (Ladder): là một ngôn ngữ lập trình dựa theo sơ đồ mạch điện, cực kì đơn giản, dễ hiểu và dễ chỉnh sửa
Hình 3. 9: Ngôn ngữ lập trình LAD
LAD là ngôn ngữ phổ biến được các kỹ sư sử dụng, mà ở đó các phần tử của một sơ đồ mạch điện gồm các cuộn dây, các tiếp điểm thường đóng hay thường mở, được nối với nhau tạo thành bậc thang.
Trong một network, có thể chèn vào các nhánh để tạo ra các mạch logic song song. Các nhánh song song được mở ra theo hướng xuống hay được kết nối trực tiếp đến thanh dẫn tín hiệu. Mỗi nhanh sẽ được nối lên trục chính để kết thúc.
Những chú ý khi sử dụng ngôn ngữ LAD trong lập trình:
- Mỗi network được viết bằng LAD phải kết thúc bằng lệnh hộp hay cuộn dây. Không được kết thúc network với cả như lệnh so sánh (Compare) hay lệnh phát hiện ngưỡng, sẽ tạo ra lỗi.
- Không thể tạo ra một nhánh mà có thể đưa lại kết quả là một dòng tín hiệu theo chiều ngược lại.
- Không thể tạo ra một nhánh mà có thể gây nên ngắn mạch.
3.2.5 Phương pháp lập trình PLC S7 – 1200
Ưu điểm của lập trình bằng PLC là linh động, không liên quan đến hệ thống đấu dây phần cứng. Từ đó, khi muốn thay đổi hay nâng cấp hệ thống, ta chỉ việc thay đổi chương trình chứ không cần phải thay đổi hệ thống đấu dây.
Phương pháp điều khiển lập trình gồm các bước:
Hình 3. 10: Phương pháp lập trình PLC
3.2.6 Các tập lệnh cơ bản của PLC S7 – 1200
3.2.6.1 Bit Logic
Tiếp điểm thường hở NO (Normally Open) được đóng lại (ON) khi giá trị bit được gán bằng 1 và tiếp điểm thường đóng NC (Normally Closed) được đóng lại (ON) khi giá trị bit được gán bằng 0.
Các tiếp điểm được nối nối tiếp sẽ tạo ra mạch logic AND.
Các tiếp điểm được nối song song sẽ tạo ra mạch logic OR.
3.2.6.2 BộđảologicNOT
Tiếp điểm NOT (LAD) chuyển đổi trạng thái logic của đầu vào tín hiệu.
Nếu không có dòng tín hiệu vào trong tiếp điểm NOT, sẽ có tín hiệu ra.
Nếu có dòng tín hiệu vào trong tiếp điểm NOT, sẽ không có tín hiệu ra.
3.2.6.3 Cuộn dây ngõ ra (LAD)
Nếucóluồngtínhiệuchạyquamộtcuộndâyngõra,bitngõrađượcđặtlên mức1.
Nếu khôngcóluồngtínhiệuchạyquamộtcuộndâyngõ ra,bitngõrađượcđặt về mức 0.
Nếucóluồngtínhiệuchạyquamộtcuộndâyngõra đảo,bitngõ ra đượcđặt về mức 0.
Nếukhôngcóluồngtínhiệuchạyquamộtcuộndâyngõra đảo,bitngõra được đặtlên mức 1.
3.2.6.4 Các lệnh Set và Reset
Lệnh S và R: Set và Reset 1 bit.
Khi lệnh S (Set) được kích hoạt, giá trị dữ liệu ở địa chỉ OUT được đặt lên mức 1.
Khi lệnh S không được kích hoạt, ngõ ra OUT không bị thay đổi.
Khi lệnh R (Reset) được kích hoạt, giá trị dữ liệu ở địa chỉ OUT được đặt về mức 0.
Khi lệnh R không được kích hoạt, ngõ ra OUT không bị thay đổi.
Những lệnh này có thể được đặt tại bất cứ vị trí nào trong mạch.
3.2.6.5 Lệnh dò ngưỡng dương và âm.
...
KẾT LUẬN
- Kết luận đề tài:
Sau khi hoàn thành đồ án tốt nghiệp với đề tài “Ứng dụng xử lý ảnh để phân loại sản phẩm theo hình dạng, điều khiển và giám sát qua WinCC”, nhóm em đã có thêm nhiều kiến thức chuyên ngành, tìm hiểu các dây chuyền sản xuất tự động hiện nay, các thiết bị điện được sử dụng phổ biến trong công nghiệp, thi công mô hình và tủ điện công nghiệp phù hợp với yêu cầu đã đặt ra.
Tìm hiểu và sử dụng ngôn ngữ lập trình Python, cách xử lý ảnh, phần mềm TIA Portal V16 trong việc lập trình hệ thống, cũng như WinCC trong việc điều khiển và giám sát, tạo giao diện giao tiếp HMI, đáp ứng đúng yêu cầu công nghệ cũng như có khả năng ứng dụng vào thực tế. Phân tích, giải quyết và xử lý những vấn đề phát sinh trong quá trình nghiên cứu, tìm hiểu, thi công đồ án. Tổ chức làm việc nhóm 2 người một cách hiệu quả, giải quyết công việc như đã thảo luận.
- Ưu điểm của đề tài:
+ Mô hình là một khâu của một dây chuyền sản xuất hiện đại. Bám sát thực tế
+ Mô hình hoạt động ổn định
+ Xử lý ảnh đúng, phân loại sản phẩm chính xác
+ Có thể giám sát và điều khiển qua WinCC.
- Hướng phát triển đề tài :
+ Đề tài chỉ là một khâu nhỏ nên có thể đầu tư thêm để phát triển thêm nhiều khâu khác như phân loại sản phẩm theo màu sắc, đóng gói sản phẩm,… để tạo ra một dây chuyền sản xuất hoàn chỉnh với độ chính xác cao hơn.
+ Tăng chất lượng của Camera để việc xử lý ảnh tốt hơn nữa.
+ Thiết kế và lắp đặt các phần cứng ổn định và đẹp hơn.
+ Nghiên cứu và thiết kế giao diện vận hành & giám sát từ xa qua Web server.