trong thời gian dừng, camera xác định mà sắc của sản phẩm, băng tải tiếp tục chạy, tín hiệu màu sắc đã được nhận dạng sẽ từlabview chuyển xuống plc, khi vật đến vị trí yêu cầu sẽ được pi
Trang 1XỬ LÝ ẢNH KẾT HỢP PLC S7-1200
Trang 2CHƯƠNG 1 GIỚI THIỆU VỀ ĐỀ TÀI
1.1Mục đích nghiên cứu
Trong cuộc sống, cùng với tiến bộ của khoa học kĩ thuật thì yêu cầu trong sản xuấtngày càng cao Trong đó việc phân loại sản phẩm cũng là một vấn đề cần giải quyếtsao cho việc phân loại ngày càng nhanh chóng và chuẩn xác Để đạt được điều đó, thìviệc phân loại sản phẩm dùng xử lý ảnh là một phương pháp ngày càng phổ biến và
đề tài của đồ án này là phân loại dựa trên nhận biết màu sắc sản phầm với camera
1.2Đối tượng nghiên cứu
bộ PLC S7-1200, Labview vision, OpenCV, OPC server UA
sẽ dừng lại để kiểm tra màu sắc của sản phẩm trong thời gian dừng, camera xác định
mà sắc của sản phẩm, băng tải tiếp tục chạy, tín hiệu màu sắc đã được nhận dạng sẽ từlabview chuyển xuống plc, khi vật đến vị trí yêu cầu sẽ được piston một hoặc hai đẩy
ra, hoặc chạy hết băng tải Nếu sản phẩm không đúng màu, băng tải sẽ dừng lại và báođèn
Trang 3CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1Sơ lược về OPC
- OPC là viết tắt của OLE for Process Control, với OLE là Object Linking andEmbedding OLE dựa trên tiêu chuẩn Windows COM (Component ObjectModel) của Microsoft OPC là một chuẩn giao diện phần mềm cho phép giaotiếp dữ liệu có tính tin cậy cao giữa các chương trình Windows và các thiết bịcông nghiệp
- OPC được thực thi trong các cặp client/server Máy chủ OPC (server) là mộtchương trình chuyển đổi giao thức truyền thông phần cứng được PLC sử dụngvào giao thức OPC
- Phần mềm máy khách OPC là một chương trình kết nối với phần cứng, chẳnghạn như màn hình HMI Máy khách OPC giao tiếp với máy chủ OPC để nhận
dữ liệu hoặc gửi lệnh đến phần cứng
- OPC hiện có hai kiểu chủ đạo đó là: OPC classic và OPC UA ( UnifiedArchitecture) Trong đề tài này, chỉ sử dụng OPC UA, do đó sẽ không đề cậpđên OPC classic
Trang 42.2Giao thức OPC UA
OPC UA (Unified Architecture) là một chuẩn công nghệ truyền thông được phát hànhbởi OPC Foundation từ năm 2006, được nâng cấp và cải tiến từ chuẩn OPC Classic đãđược phát triển trước đó Nó bao gồm tất cả các tính năng của OPC Classic
OPC UA là một cơ chế mở, đáng tin cậy và rất an toàn để truyền thông tin giữa server( máy chủ) và client (máy khách)
Hình 2.2 hình ảnh mô tả OPC server UA
Trang 52.3Sơ lược về hai không gian màu RGB và HSL
2.3.1 Không gian màu RGB
Không gian màu RGB là hệ không gian màu được dùng rất nhiều trong biểu diễn đồhọa trên máy tính hoặc rất nhiều các thiệt bị điện tử và kỹ thuật số khác nhau
Một không gian màu RGB đặc thù được biểu diễn bởi ba mà sắc cơ bản đó là đỏ(RED), xanh lá cây (Green) và xanh lơ (Blue), từ việc kết hợp ba màu sắc có bản trên
có thể tạo ra rất nhiều các màu sắc khác nhau
Giả dụ một bức ảnh được mã hóa bằng 24 bit, thì mỗi kênh R,G,B sẽ là 8 bit Mỗikênh này nhận giá trị từ 0 đến 255, với mỗi giá trị từ 0-255 của từng kênh kết hợp vớinhau sẽ thu được một màu khác nhau, sẽ có tổng cộng 255×255×255 = 1.66 triệu màu
Hình 2.3 hình ảnh mô tả không gian màu
RGB
Trang 62.3.2 Không gian màu HSV
Không gian màu HSV ( Hue, Saturation, Value) là một mô hình để biểu diễn khônggian màu tương tự với không gian màu RGB Thực chất là sự biến đổi của không gianRGB Trong đó:
- Kênh H (Hue) là kênh để chỉ thuộc tính màu sắc có giá trị từ 0ᵒ đến 360ᵒ Rấthữu dụng trong nhiều tác vụ xử lý ảnh cần đến việc phân biệt các vật thể dựatrên màu sắc của chúng
- Kênh S (Saturation) là kênh thể hiện cho sự bảo hòa của vật thể, đi từ khôngbảo hòa, thể hiện các sắc thái của màu xám cho đến bảo hòa hoàn toàn ( không
Trang 72.3.3 Công thức chuyển hệ màu RGB sang HSV
Giả sử, ta chọn một điểm ảnh trong hệ không gian màu RGB có giá trị là (R,G,B)
Để chuyển điểm ảnh này sang không gian màu HSV, tiến hành như sau:
Trang 8Hình 2.5 ví dụ về mối quan hệ giữa hai không gian màu RGB và HSV
2.4Giới thiệu về OpenCV
- OpenCV là thư viện mã nguồn mở về thị giác máy tính, xử lý ảnh, được pháttriển đầu triền bởi tập đoàn Intel, có thể viết trên các ngôn ngữ C++, Python,java và hỗ trợ các hệ điều hành Windows, Linux, MacOS, IOS, Android.OpenCV được thiết kế để tính toán hiệu quả và hướng nhiều vào những ứngdụng thời gian thực
- OpenCV được ứng dụng trong nhiều lĩnh vực như: kiểm soát giao thông, giámsát, kiểm tra, xe tự hành, y tế, nghệ thuật sắp đặt tương tác…
Trang 9
CHƯƠNG 3 THIẾT KẾ VÀ THI CÔNG
3.1Linh kiện sử dụng
3.1.1 Bộ điều khiển khả trình PLC s7-1200 1214 DC/DC/DC
Hình 3.6 hình ảnh thực tế của PLC s7-1200 1214 DC/DC/DC
Trang 103.1.1.1 Thông tin cơ bản
Có cổng kết nối encoder (loại 2 dây)
Có 3 đèn báo: đèn báo Run/stop, đèn báo lỗi, đèn báo duy trì( bảo dưỡng)
3.1.1.3 Các công cụ điều khiển tích hợp
Để đơn giản hóa việc lập trình, điều khiển các chương trình theo yêu cầu thực tế, nhàsản xuất đã tích hợp các công cụ điều khiển các công cụ đó bao gồm:
- Bộ điều khiển PID (PID controller):
Là bộ điều khiển vòng kín, điều khiển ba thông số P,I,D để đưa ra tín hiệu điều khiểnchuẩn sát nhất có thể Bộ điều khiển này được tích hợp dưới dạng module trong bộCPU S7-1200 1214 DC/DC/DC
- Bộ điều khiển vị trí (controlled positoning)
Trang 11Là một tính năng đã khá phổ biến trong nền công nghiệp hiện nay, cho phép ngườidùng giám sát và điều khiển hoạt động của PLC thông qua một trong web Ngườidùng có thể truy cập đến trang web này thông qua bất kỳ thiết bị nào có thể kết nốiinternet và có một trình duyệt nào đó, ví dụ như: máy tính, điện thoại thông minh,máy tính bảng v.v…
3.1.1.4 Phần mềm TIA portal lập trình cho PLC S7-1200
TIA portal là một phần mềm được phát triển bởi Siemens, dùng để viết chương trìnhđiều khiển cho các dòng PLC S7-1200, S7-1500, S7-300, S7-400…
Ngoài ra nó còn được dùng để viết giao diện cho màn hình HMI và WinCC của hãngSiemens
Hình 3.7 giao diện khởi động của phần mềm TIA Portal v14
Trang 123.1.2 Cảm biến vật cản hồng ngoại OMDHON DS30C4
- Ngõ ra: cực thu hở, kết nối 3 dây
- Chuẩn bảo vệ: IP65
- Vật liệu chế tạo: nhựa
3.1.3
Hình 3.8 hình ảnh thực tế cảm biến vật cản OMDHON DS30C4
Trang 13Động cơ DC RS775 DC 12-24v
thông số kỹ thuật:
điện áp: 12 -24 VDC
dòng tiêu thụ tối đa: 2.2 A
nhiệt độ hoạt động từ -40 đến hơn 100℃ ℃
Hình 3.9 hình ảnh thực tế động cơ DC RS775
Trang 143.2Giới thiệu về phần mềm LabVIEW
3.2.1 Đôi nét về LabVIEW
LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench) là một phầnmềm trên nền tảng Windows được thiết kế và phát triển bởi công ty NationalInstruments Labview là một phần mềm cực kỳ mạnh mẽ, được sử dụng trong hầu hếtcác trung tâm thí nghiệm, lĩnh vực khoa học kỹ thuật, tự động hóa, điện tử y sinh, y tế,
cơ điện tử, điện tử, hàng không, hóa sinh đặc biệt là ở các nước Nhật Bản, Hoa Kỳ,Hàn Quốc
3.2.2 Các điểm mạnh của LabVIEW
LabVIEW là một phần mềm thực chất là môi trường để lập trình cho ngôn ngữ lậptrình đồ họa cực kỳ mạnh mẽ Được sử dụng rất rộng rãi trong việc tạo ra các ứngdụng giao tiếp với máy tính, xử lý ảnh, mô phỏng, đo lường, kết nối các thiết bị ngoại
vi với máy tính theo thời gian thực Dưới đây là một số đặc điểm mạnh mẽ củaLabVIEW:
Có giao diện cực kỳ dễ sử dụng, đơn giản và thân thiện với người dùng, được
hỗ trợ đầy các ví dụ cơ bản do National Instruments cung cấp
Là phần mềm số một trong việc giao tiếp với máy tính và thu thập các thông tin
Trang 15 LabView là phần mềm hỗ trờ cực kỳ đắc lực và mạnh mẽ kỹ sư ngành Cơ khí,
Cơ điện tử, Robotics, Ôtô, Viễn Thông và Điện tử trong việc: Tính toán vàthiết kế sản phẩm, sản xuất mẫu (prototyping), mô phỏng và đánh giá chấtlượng sản phẩm, vv
Với hơn 20 năm phát triển, NI LabVIEW đã phát triển để trở thành một trong nhữngcông cụ hỗ trợ đắc lực cho các kỹ sư, các nhà nghiên cứu trong quá trình kiểm tra, đolường, điều khiển Với các tính năng đặc biệt như giảm giá thành, rút ngắn thời giansản xuất, phân tích dữ liệu thu thập từ thí nghiệm hiệu quả, điều khiển thiết bị trongcông nghiệp tối ưu, NI LabVIEW đã luôn trở thành lựa chọn hàng đầu trong kỹ thuật
và khoa học ở hầu hết các châu lục
3.3
Hình 3.10 một chương trình được viêt bằng LabVIEW
Trang 16Thiết kế mô hình
Hình 3.11 hình ảnh mô hình thực tế
Hình 3.12 mô hình thực tế
Trang 17Hình 3.13 mô hình thực tế
Hình 3.14 mô hình thực tế
Trang 183.4Thiết kế giao diện.
3.4.1 Giao diện điều khiển của chương trình.
- Giao diện điều khiển trên WinCC professional v14:
Hình 3.15 giao diện điều khiển chính
Trang 19- Giao diện giám sát hình ảnh của labview:
Hình 3.16 giao diện điều khiển và giám sát trên LabView
3.4.2 Thiết kế giao diện với WinCC professional v14
3.4.2.1 Giới thiệu về tổng quan về WinCC của siemens
WinCC siemens là một phần mềm chuyên dụng để thiết kế và xây dựng giao diệngiám sát và điều khiển tương tác giữa người và máy, hay còn gọi là HMI (humanmachine interface) Ngoài ra, Wincc còn được dùng để phục vụ việc lưu trữ và xử lý
dữ liệu của một hệ thống SCADA (supervisory control and data acquisition) thuộcchuyên ngành tự động hóa
WinCC là trung tâm điều khiển chạy trên nền của hệ điều hành Windows là tên viết tắt
Trang 20Tùy vào chức năng mà người dùng muốn sử dụng, người dùng có thể lựa chọn các góisản phẩm khác nhau của WinCC WinCC được chia ra làm hai loại gói cơ bản sau đây:
- WinCC Runtime Package (được viết tắt là RT): gói sản phầm WinCC này chứađựng các chức năng được đưa vào ứng dụng của WinCC trong việc thông báo,điều khiển và hiển thị các trạng thái và các giá trị điều khiển và để thực hiện cácbáo cáo
- WinCC Complete Package (được viết tắt là RC): gói sản phẩm WinCC này baogồm chứng nhận về bản quyền để xây dựng và cấu hình hệ thống và được cấpbản quyền để khởi chạy ứng dụng
Các gói sản phẩm này có nhiều phiên bản sử dụng khác nhau, tùy theo số lượng cáctham số làm việc (powertags) Powertags là những tham số làm việc được bộ điềukhiển theo dõi giá trị Sau mua một gói sản phẩm, việc người dùng muốn mở rộngnâng cấp từ một phiên bản thấp cấp có số lượng powertags bé lên cấp cao hơn, ngườidùng chỉ cần đặt mua nhưng phiên bản chỉ chuyên để nâng cấp được gọi là WinCCPowerpacks
Ngoài những gói sản phẩm cơ bản trên thì WinCC còn có những mô-đun nâng caohơn, hướng đến những ứng dụng lớn vào quy mô hơn (WinCC options) và các mô-đun
mở rộng đặc biệt (WinCC add-on) Các mô-đun WinCC option là các sản phẩm thuộc
sở hữu của Siemens Automation and Drive (A&D) Các mô-đun
Một số tính năng phổ biến, được sử dụng trong việc thiết kế giao diện với WinCC:
- Thiết kế đồ họa với Graphics design: dùng để thiết kế mô phỏng các hoạt độngcủa các thành phần ra lệnh, chấp hành như nút nhấn, bóng đèn v.v và các
Trang 21các dữ liệu quá trình, hồi đáp hiển thị và lưu trữ lại để giúp người dùng nhanhchóng phát hiện ra các lỗi và tìm nguyên nhân.
- Tính năng tag logging: thu nhận, lưu lại và xuất ra nhiều kiểu khác nhau từnhững quá trình đang được tiến hành
- Thực hiện báo cáo với Report: đưa ra những thông báo, nội dung và kết quảdưới sạng các nhật ký sự kiện
Hình 3.17 hình ảnh giao diện được thiết kế trên trên WinCC
Trang 223.4.3 Thiết kế giao diện cho chương trình.
Trang 23Bước 3: tiến hành gắn các tag cho các đối tượng đã vẽ:
- Đối với đối tượng là đèn báo trạng thái:
Bấm chuột phải vào đối tượng, chọn properties:
Hình 3.20 đối tượng đèn báo trạng thái
Hình 3.21 chọn đối tượng đèn báo trạng thái
Trang 24Tiến hành gắn tag cho đối tượng theo hình sau:
Hình 3.22 gắn tag cho đối tượng đèn báo
Trang 25- Đối tượng là vật thể chuyển động:
Chọn tag và điểu chỉnh vị trí phù với yêu cầu mong muốn:
sau khi hoàn thành việc thiết kế giao diện, tiến hành chạy thử giao diện và điều chỉnhlại cho phù hợp với yêu cầu ban đầu đặt ra
Hình 3.24 gắng tag cho đối tượng chuyển động
Trang 26CHƯƠNG 4 GIẢI THUẬT VÀ ĐIỀU KHIỂN
4.1Hoạt động của hệ thống
Khi hệ thống hoạt động, PLC sẽ đợi đến khi cảm biến một phát hiện có sản phẩm đivào để chạy băng tải Sau đó, khi sản phẩm chạy đến vị trí cảm biến thứ hai (cảm biếndừng vật kiểm tra màu), sẽ dừng lại trong một giây để camera và labview xác địnhmàu sắc của sản phầm Tiếp đến, khi đã xác định màu của sản phẩm, băng tải sẽ đượcchạy lại Tùy vào màu sắc của sản phẩm, mà PLC sẽ cho xuất ra ở vị trí piston một nếusản phẩm là màu thứ nhất, piston hai nếu sản phẩm là màu thứ hai hoặc cho đến khichạy hết chiều dài băng tải nếu sản phầm là màu thứ ba Trong trường hợp sản phẩmchạy trên băng tải không đúng với màu quy định, thì sản phẩm sẽ dừng lại ở vị trí cảmbiến thứ hai (cảm biến dừng kiểm tra màu), sau đó PLC sẽ xuất tín để báo đèn hiệu cónhấp nháy
4.2Sơ đồ khối của hệ thống
Khối điềukhiển chính
Cơ cấu chấphành
Trang 274.3Quy ước ngõ vào ra
I0.6 Nút nhấn đẩy bít-tông 1I0.7 Nút nhấn đẩy bít-tông 2
I1.2 Cảm biến vật tại bít-tông 1
Trang 284.4Lưu đồ giải thuật
Lưu đồ giải thuật của chương trình điều khiển
Hình 4.25 lưu đồ giải thuật
Trang 29CHƯƠNG 5 THỰC NGHIỆM
5.1Tiến trình thí nghiệm
Bước 1: kết nối PLC và camera với máy tính
Bước 2: cấp nguồn cho PLC và tải
Bước 3: bấm start để tiến khởi động hệ hệ thống
Bước 4: chọn chế độ điều khiển bằng tay để kiểm tra các cơ cấu chấp hành
Bước 5: chọn chế độ tự động và tiến hành cấp sản phẩm để chạy hệ thống
Bước 6: dừng PLC, tắt các thiết bị và ngừng cấp nguồn cho hệ thống
5.2Kết quả
Sau khi chạy hệ thống, sản phầm gặp cảm biến một sẽ chạy băng tải, sau đó dừng lại ởcảm biến hai để camera xác định màu Sau đó, vật là màu thứ nhất sẽ chạy đến cảmbiến 3 và được bít-tông 1 đẩy, vật có màu thứ 2 sẽ chạy đến cảm biến 4 và được bít-tông 2 đẩy, vật có màu thứ 3 sẽ chạy đến cuối băng tải Nếu vật không đúng màu, sẽdừng lại và báo đèn ở vị trí cảm biến thứ 2
5.3Kết luận thực nghiệm
Kết quả đạt được thông qua quá trình thực nghiệm đã đúng với những gì đã dự kiếnban đầu
Trang 306.3Hướng phát triển
- Tìm hiểu về các thuật toán phát hiện hình dạng (shape detection) để có thể phânbiệt đa dạng sản phẩm hơn
- Giảm thời gian nhận biết sản phẩm để giảm thời gian phân loại
- Phát triển hệ thống cánh tay robot để gắp sản phẩm tự động ở đầu vào và đầura
Trang 32Mat anh_goc; // tao ma tran anh goc
bool bSuccess = cap.read(anh_goc); // doc khung hinh moi tu video
if (!bSuccess) //if not success, break loop
Trang 33//tao nguong cho anh
inRange(anh_HSV, Scalar(aLowH, aLowS, aLowV), Scalar(aHighH, aHighS, aHighV), anh_Thresholded);
erode(anh_Thresholded, anh_Thresholded, getStructuringElement(MORPH_ELLIPSE, Size(5, 5)));
dilate(anh_Thresholded, anh_Thresholded, getStructuringElement(MORPH_ELLIPSE, Size(5, 5)));
dilate(anh_Thresholded, anh_Thresholded, getStructuringElement(MORPH_ELLIPSE, Size(5, 5)));
erode(anh_Thresholded,anh_Thresholded, getStructuringElement(MORPH_ELLIPSE, Size(5, 5)));
vector<vector<Point> > vien_anh;
vector<Vec4i> phan_tang;
/// tim vien cua anh
findContours(anh_Thresholded, vien_anh, phan_tang, RETR_TREE, CHAIN_APPROX_SIMPLE, Point(0, 0));
for (int i = 0; i < vien_anh.size(); i++)
inRange(anh_HSV, Scalar(oLowH, oLowS, oLowV), Scalar(oHighH, oHighS, oHighV), anh_Thresholded);
//morphological opening (remove small objects from the foreground)
erode(anh_Thresholded, anh_Thresholded, getStructuringElement(MORPH_ELLIPSE, Size(5, 5)));
dilate(anh_Thresholded, anh_Thresholded, getStructuringElement(MORPH_ELLIPSE, Size(5, 5)));
//morphological closing (fill small holes in the foreground)
dilate(anh_Thresholded, anh_Thresholded, getStructuringElement(MORPH_ELLIPSE, Size(5, 5)));
Trang 34findContours(anh_Thresholded, vien_anh, phan_tang, RETR_TREE, CHAIN_APPROX_SIMPLE, Point(0, 0));
for (int i = 0; i < vien_anh.size(); i++)
inRange(anh_HSV, Scalar(eLowH, eLowS, oLowV), Scalar(eHighH, eHighS, eHighV), anh_Thresholded);
erode(anh_Thresholded, anh_Thresholded, getStructuringElement(MORPH_ELLIPSE, Size(5, 5)));
dilate(anh_Thresholded, anh_Thresholded, getStructuringElement(MORPH_ELLIPSE, Size(5, 5)));
dilate(anh_Thresholded, anh_Thresholded, getStructuringElement(MORPH_ELLIPSE, Size(5, 5)));
erode(anh_Thresholded, anh_Thresholded, getStructuringElement(MORPH_ELLIPSE, Size(5, 5)));
findContours(anh_Thresholded, vien_anh, phan_tang, RETR_TREE, CHAIN_APPROX_SIMPLE, Point(0, 0));
for (int i = 0; i < vien_anh.size(); i++)