Giới thiệu đề tài
Với sự phát triển mạnh mẽ của công nghệ số, việc kiểm tra dữ liệu và thông tin sản phẩm trở nên quan trọng hơn bao giờ hết Mã QR ra đời để đáp ứng nhu cầu này, được ưa chuộng trong marketing và quảng cáo, từ tạp chí đến băng ghế công viên và bao bì sản phẩm Các doanh nghiệp và trường học cũng áp dụng mã QR để quản lý thông tin nhân viên và học sinh, giúp điểm danh và theo dõi chuyên cần một cách nhanh chóng Do đó, tôi đã chọn nghiên cứu “Hệ thống quét mã QR” nhằm xây dựng một hệ thống hiệu quả để sắp xếp và lưu trữ thông tin.
Hệ thống cho phép người dùng dễ dàng nhập thông tin về người mua và sản phẩm đã bán, đồng thời lưu trữ để quản lý hiệu quả Việc lấy hàng bằng băng truyền giúp tiết kiệm thời gian và công sức, từng bước tích hợp máy móc vào mọi lĩnh vực của cuộc sống.
Khi khởi động hệ thống, người dùng cần nhập tên khách hàng và quét mã QR của sản phẩm đã mua Mỗi mã sản phẩm sẽ tự động lấy thông tin và tính toán các thuộc tính, sau đó lưu trữ lên Google Sheet và hiển thị trên màn hình Để lấy sản phẩm qua băng truyền, người dùng chỉ cần nhấn nút tương ứng.
Hệ thống hướng đến nhiệm vụ thanh toán và lưu trữ dữ liệu ở các cửa hàng Ngoài ra có thể sử dụng trong việc kiểm soát các kho hàng.
Mục đích nghiên cứu
Sử dụng kiến thức lập trình PLC đã học, bạn có thể tìm hiểu cách sử dụng và kết nối hệ thống băng chuyền để vận chuyển sản phẩm hiệu quả Việc này không chỉ giúp tối ưu hóa quy trình sản xuất mà còn nâng cao hiệu suất làm việc trong ngành công nghiệp.
- Tìm hiểu về lập trình Node – RED Xây dựng một giao diện dashboard thân thiện với người dùng.
- Tìm hiểu về lưu trữ dữ liệu với Google Sheet Truyền và nhận dữ liệu giữa Google Sheet và Node-RED, giữa Node-RED và PLC.
Dự kiến kết quả
Nhập tên khách hàng và quét mã QR, hệ thống sẽ tự động lấy các thuộc tính sản phẩm, tính toán và hiển thị kết quả trên màn hình, đồng thời lưu trữ dữ liệu lên Google Sheet Người dùng có thể yêu cầu băng truyền lấy hàng chỉ bằng một nút nhấn trên bảng điều khiển.
Mã QR
Mã QR (Quick Response code) là một dạng mã vạch ma trận, hay còn gọi là mã vạch hai chiều, được phát minh vào năm 1994 bởi công ty Denso Wave của Nhật Bản.
QR là một mã vạch quang học có thể được quét bởi máy đọc mã vạch hoặc smartphone có camera và ứng dụng chuyên dụng.
Mã QR có khả năng lưu trữ nhiều loại thông tin như địa chỉ web, thời gian sự kiện, thông tin liên hệ, địa chỉ email, tin nhắn SMS, nội dung văn bản, và thông tin định vị Khi quét mã QR bằng thiết bị phù hợp, người dùng có thể được dẫn đến trang web, gọi số điện thoại, hoặc xem tin nhắn một cách nhanh chóng và tiện lợi.
- Mã QR sử dụng bốn chế độ mã hóa chuẩn hóa (số, chữ và số, byte / nhị phân và kanji) để lưu trữ dữ liệu một cách hiệu quả.
Hình 2.1-2 Cấu trúc mã QR
- Các điểm đánh dấu phát hiện vị trí
Nằm ở ba góc của mỗi mã, tính năng này giúp máy quét nhận diện và đọc mã một cách chính xác với tốc độ cao, đồng thời chỉ rõ hướng in của mã.
Nhỏ hơn các điểm đánh dấu phát hiện vị trí, chúng giúp làm thẳng Mã QR được vẽ trên bề mặt cong.
Với ý tưởng giúp xác định cấu hình chính xác lưới dữ liệu Sử dụng các dòng này, máy quét xác định độ lớn của ma trận dữ liệu.
Hiện nay, có 40 phiên bản Mã QR khác nhau, trong đó các điểm đánh dấu chỉ định phiên bản đang được sử dụng Phiên bản phổ biến nhất là từ 1 đến 7.
- Định dạng thông tin : Các mẫu định dạng chứa thông tin về khả năng chịu lỗi và mẫu mặt nạ dữ liệu
Lượng dữ liệu mà mã QR có thể lưu trữ phụ thuộc vào loại dữ liệu, phiên bản từ 1 đến 40, và mức độ sửa lỗi Phiên bản 40 với mức sửa lỗi L (thấp) cho phép dung lượng lưu trữ tối đa, ký hiệu là 40-L.
Input mode Max. characters Bits/char Possible characters, default encoding
Bảng 2.1-1 Dữ liệu mã QR lưu trữ
Node-RED
Node-RED là một công cụ phát triển dựa trên luồng do IBM phát triển, cho phép lập trình trực quan để kết nối các thiết bị phần cứng, API và dịch vụ trực tuyến, phục vụ cho mục đích của Internet of Things.
Node-RED là một công cụ mạnh mẽ với trình chỉnh sửa luồng dựa trên trình duyệt, cho phép người dùng tạo hàm JavaScript dễ dàng Các thành phần của ứng dụng có thể được lưu trữ hoặc chia sẻ để tái sử dụng, giúp tối ưu hóa quy trình phát triển Node-RED hoạt động trên nền tảng Node.js và các luồng được lưu trữ dưới dạng JSON Từ phiên bản 0.14, nó hỗ trợ các nút MQTT với khả năng tạo kết nối TLS được cấu hình chính xác.
- Vào năm 2016, IBM đã đóng góp Node-RED như một dự án JS Foundation mã nguồn mở.
2.2.1 Chỉnh sửa luồng dựa trên trình duyệt
Node-RED là một công cụ mạnh mẽ cung cấp trình chỉnh sửa luồng trực tuyến, cho phép người dùng dễ dàng kết nối các luồng thông qua nhiều nút trong bảng màu Với Node-RED, việc triển khai các luồng trở nên nhanh chóng và đơn giản, chỉ cần một cú nhấp chuột trong thời gian chạy.
- Các hàm JavaScript có thể được tạo trong trình soạn thảo bằng cách sử dụng trình soạn thảo văn bản đa dạng thức.
- Thư viện tích hợp sẵn cho phép bạn lưu các chức năng, mẫu hoặc luồng hữu ích để sử dụng lại.
2.2.2 Xây dựng trên Node.js
Thời gian chạy nhẹ được phát triển trên nền tảng Node.js, tận dụng mô hình hướng sự kiện và mã nguồn mở, phù hợp để triển khai trên rìa mạng với phần cứng giá rẻ như Raspberry Pi, cũng như trên môi trường đám mây.
- Với hơn 225.000 mô-đun trong kho gói của Node, có thể dễ dàng mở rộng phạm vi các nút bảng màu để thêm các chức năng mới.
- Các luồng được tạo trong Node-RED được lưu trữ bằng JSON có thể dễ dàng nhập và xuất để chia sẻ với những người khác.
- Thư viện luồng trực tuyến cho phép bạn chia sẻ những luồng tốt nhất của mình với thế giới.
Bảng điều khiển Node-RED là một tập hợp các nút giúp tạo ra bảng điều khiển web tương tác với các luồng dữ liệu Người dùng có thể sử dụng các nút khác nhau để thay thế các nút chèn, cho phép gửi dữ liệu trực tiếp đến các thành phần web như biểu đồ hoặc bảng, thay vì chỉ in ra trình gỡ lỗi.
- Cài đặt thư viện: settings → Palette → Install → “node-red-dashboard”.
Trang tổng quan được thiết kế theo bố cục lưới, nơi các tiện ích con như nút và hộp văn bản được nhóm lại và sắp xếp trên các tab.
- Địa chỉ truy cập bảng điều khiển “localhost:1880/ui”.
- Một số khối cơ bản:
Khối Text cung cấp khả năng hiển thị một giá trị duy nhất trên trang điều khiển:
Khối Buttons sử dụng một nút để kích hoạt một luồng:
Khối webcam để chụp ảnh từ webcam của trình duyệt.
Khối function là một hàm JavaScript được thiết kế để xử lý các thông báo mà nút nhận được Các thông báo này được truyền vào dưới dạng một đối tượng JavaScript, gọi là msg, trong đó thuộc tính msg.payload chứa nội dung chính của thông báo Hàm này có khả năng trả về một hoặc nhiều đối tượng thông báo, nhưng cũng có thể không trả về gì để dừng luồng xử lý.
Khối change cho phép người dùng đặt, thay đổi, xóa hoặc di chuyển các thuộc tính của thông báo, ngữ cảnh luồng hoặc ngữ cảnh chung Nút này có khả năng chỉ định nhiều quy tắc, và các quy tắc này sẽ được áp dụng theo thứ tự mà chúng được xác định.
- Khối GSheet: Đọc và Ghi dữ liệu Google Trang tính.
- Khối join: Nối các chuỗi tin nhắn thành một tin nhắn.
- Khối barcode decoder: Nút bộ giải mã mã vạch.
- Khối Barcode Generator: nút tạo mã vạch
- Khối S7 in: đọc dữ liệu từ PLC S7
- Khối S7 out: Ghi vào vùng nhớ trong PLC S7.
Google Sheets
Google Sheets là ứng dụng trực tuyến cho phép người dùng tạo, cập nhật và chỉnh sửa bảng tính, đồng thời chia sẻ dữ liệu theo thời gian thực.
Google Sheets là một phần của bộ ứng dụng web miễn phí do Google cung cấp, bao gồm cả Google Docs.
Google Slides, Google Drawings, Google Forms, Google Sites và Google Keep.
- Các chức năng cơ bản:
Chỉnh sửa và định dạng bảng tính
Trực quan hóa dữ liệu cho phép người dùng tạo bảng tính cho các đồ thị, biểu đồ và nhiều loại biểu đồ khác, đồng thời dễ dàng nhúng chúng vào các trang web.
Các tính năng dựa trên máy học cho phép xây dựng biểu đồ, tạo bảng tổng hợp và trả lời các câu hỏi liên quan đến dữ liệu Hệ thống có khả năng tự động cập nhật thông tin dựa trên dữ liệu đã được lựa chọn.
Chỉnh sửa ngoại tuyến cho phép người dùng thay đổi trang tính ngay cả khi không có kết nối internet Những thay đổi này sẽ tự động được cập nhật khi kết nối internet được khôi phục.
Khả năng tương thích : Tài liệu trang tính tương thích với nhiều định dạng, bao gồm
Excel (XLS), Apache OpenOffice, PDF, Văn bản, HTML và các giá trị được phân tách bằng dấu phẩy (CSV).
Google Sheets có khả năng tích hợp với nhiều dịch vụ khác của Google như Drawing, Finance, Form và Translate, mang lại sự tiện lợi cho người dùng Bên cạnh đó, nó cũng tương thích với các tệp của Microsoft và chia sẻ nhiều phím tắt tương tự, giúp tối ưu hóa quy trình làm việc.
Tính năng cộng tác cho phép người dùng nhận thông báo qua email khi có các cộng tác viên đưa ra nhận xét hoặc thực hiện thay đổi trên bảng tính được chia sẻ, đồng thời cung cấp khả năng xem lịch sử phiên bản để theo dõi các chỉnh sửa.
Người dùng có khả năng quản lý quyền chỉnh sửa, tải xuống, sao chép và in ấn cho các cộng tác viên cụ thể thông qua việc thiết lập quyền truy cập ở cấp độ cá nhân, nhóm hoặc miền.
Giới thiệu PLC S7 1200
Hình 2.4-13 Khác biệt giữa S7-200 và S7-1200
- S7-1200 ra đời năm 2009 dùng để thay thế dần cho S7-200 So với S7-200 thì S7-1200 có những tính năng nổi trội hơn.
- S7-1200 được thiết kế nhỏ gọn, chi phí thấp, và một tập lệnh mạnh giúp những giải pháp hoàn hảo hơn cho ứng dụng sử dụng với S7-1200
- S7-1200 cung cấp một cổng PROFINET, hỗ trợ chuẩn Ethernet và TCP/IP.
- Các thành phần của PLC S7-1200 bao gồm:
bộ điều khiển nhỏ gọn với sự phân loại trong các phiên bản khác nhau giống như điều khiển AC, RELAY hoặc DC phạm vi rộng
mạch tương tự và số mở rộng ngõ vào/ra trực tiếp trên CPU làm giảm chi phí sản phẩm
13 module tín hiệu số và tương tự khác nhau bao gồm (module SM và SB)
module giao tiếp RS232/RS485 để giao tiếp thông qua kết nối PTP
Module nguồn PS 1207 ổn định, dòng điện áp 115/230 VAC và điện áp 24 VDC
- Các module CPU khác nhau có hình dạng, chức năng, tốc độ xử lý lệnh, bộ nhớ chương trình khác nhau
2.4.2 Các dòng chính của PLC S7-1200
Hình 2.4-14 Đặc tính kỹ thuật của CPU S7-1200 siemens
- PLC S7-1200 CPU 1211C có bộ nhớ làm việc 50KB work memory.
- PLC S7-1200 CPU 1212C có bộ nhớ làm việc 75KB work memory.
- PLC S7-1200 CPU 1214C có bộ nhớ làm việc 100KB work memory.
- PLC S7-1200 CPU 1215C có bộ nhớ làm việc 125KB work memory.
- PLC S7-1200 CPU 1217C có bộ nhớ làm việc 150KB work memory.
PLC S7-1200 cho phép mở rộng chức năng của CPU thông qua việc thêm các module tín hiệu và module gắn ngoài Bên cạnh đó, người dùng cũng có thể cài đặt các module truyền thông để hỗ trợ nhiều giao thức truyền thông khác nhau.
- Khả năng mở rộng của từng loại CPU tùy thuộc vào các đặc tính, thông số và quy định của nhà sản xuất.
- S7-1200 có các loại module mở rộng sau: o Communication module (CP). o Signal board (SB) o Signal Module (SM)
Cổng truyền thông Profinet (Ethernet) tích hợp sẵn cho phép kết nối máy tính, màn hình HMI và truyền thông PLC-PLC với tốc độ truyền đạt 10/100 Mbits/s Thiết bị hỗ trợ lên đến 16 kết nối Ethernet và tương thích với các giao thức TCP/IP, ISO on TCP và S7.
Bài viết giới thiệu các tính năng về đo lường và điều khiển vị trí, bao gồm 6 bộ đếm tốc độ cao, trong đó có 3 bộ đếm 100kHz và 3 bộ đếm 30kHz, phục vụ cho các ứng dụng đếm và đo lường Ngoài ra, có 2 ngõ ra PTO 100kHz giúp điều khiển tốc độ và vị trí của động cơ bước hoặc bộ lái servo Bài viết cũng đề cập đến ngõ ra điều rộng xung PWM, được sử dụng để điều khiển tốc độ động cơ, vị trí van và nhiệt độ Cuối cùng, 16 bộ điều khiển PID với tính năng tự động xác định thông số điều khiển (auto-tune functionality) cũng được giới thiệu, mang lại hiệu quả cao trong quá trình điều khiển.
Thiết kế linh hoạt của hệ thống cho phép mở rộng tín hiệu vào/ra thông qua board tín hiệu mở rộng gắn trực tiếp phía trước CPU, mà không làm thay đổi kích thước của hệ điều khiển Mỗi CPU có khả năng kết nối tối đa 8 module mở rộng tín hiệu vào/ra, đồng thời ngõ vào analog 0-10V được tích hợp sẵn trên CPU.
Hình 2.4-15 Phần mềm TIA portal
Phần mềm Step7 Basic là công cụ lập trình cho S7-1200, hỗ trợ ba ngôn ngữ lập trình chính là FBD, LAD và SCL Step7 Basic được tích hợp trong TIA Portal của Siemens, giúp tối ưu hóa quá trình lập trình và quản lý hệ thống tự động hóa.
Bộ đếm CTU được biểu diễn ở LAD như sau:
Khi tín hiệu tại CU chuyển từ “0” lên “1”, bộ đếm sẽ tăng giá trị hiện tại lên 1 Nếu giá trị hiện tại của bộ đếm (Cxxx) đạt hoặc vượt qua giá trị preset tại ngõ vào PV, ngõ ra bit của bộ đếm sẽ chuyển sang mức “1” Giá trị đếm tối đa có thể đạt là 32.767, với phạm vi từ C0 đến C255.
Bộ đếm sẽ bị xóa về 0 khi ngõ vào Reset (R) lên mức “1”, hoặc khi sử dụng lệnh Reset để xóa bộ đếm.
Hình 2.4-17 Giản đồ thời gian Counter
Hình 2.4-18 Cấu hình giao tiếp của PLC S7-1200
- S7-1200 hỗ trợ kết nối Profibus và kết nối PTP (point to point).
- Giao tiếp PROFINET với: o Các thiết bị lập trình o Thiết bị HMI o Các bộ điều khiển SIMATIC khác
- Hỗ trợ các giao thức kết nối: o TCP/IP o SIO-on-TCP o Giao tiếp với S7
Factory IO
Factory IO là phần mềm mô phỏng 3D hiện đại, trực quan, hỗ trợ mô phỏng quy trình chuyên nghiệp với nhiều hãng PLC khác nhau Phần mềm này cung cấp thư viện đa dạng, giúp người dùng dễ dàng tạo ra các mô hình sát thực tế.
Nhiều ứng dụng đã mô phỏng chính xác phần mềm này trước khi triển khai thực tế, mang lại hiệu quả cao và đáp ứng tốt trải nghiệm của khách hàng.
2.5.1 Các hệ thống, đối tượng
Factory IO cung cấp 20 mô hình thiết kế sẵn dựa trên các ứng dụng công nghiệp, giúp người dùng dễ dàng tạo ra dây chuyền và hệ thống theo nhu cầu riêng Các hệ thống và đối tượng trong Factory IO được lưu trữ trong thư viện phong phú, có thể truy cập ở góc bên phải của phần mềm, bao gồm các loại băng tải nặng, băng tải nhẹ, cảm biến, và nhiều thiết bị khác Người dùng chỉ cần chọn nhóm thiết bị và kéo thả để lắp ghép mô hình một cách nhanh chóng và dễ dàng.
2.5.2 Các phím tắt chức năng
Di chuyển tới W Mở/ tắt thẻ cảm biến I
Di chuyển lùi S Mở/ tắt thẻ cơ cấu chấp hành O
Di chuyển sang trái A Reset góc nhìn backspac e
Di chuyển sang phải D Reset hệ thống F6
Chạy hệ thống F5 Quay theo trục x R
Quay theo trục z Y Phóng to mô hình Q
Quay theo trục y T Mở thư viện P
2.5.3 Các kết nối Factory IO với bộ điều khiển
Hình 2.5-21 Kết nối bộ điều khiển
Advantech USB 4750 & USB 4704 Kết nối với PLC thông qua board
Advantech USB 4750 và 4704. Allen-Bradley Logix5000 Kết nối PLC Allen-Bradley
ControlLogix, CompactLogix hoặc SoftLogix PAC thông qua
Allen-Bradley Micro800 Kết nối PLC Allen-Bradley
Micro800 PLC thông qua Ethernet. Allen-Bradley MicroLogix Kết nối PLC Allen-Bradley
Allen-Bradley SLC 5/05 Kết nối PLC Allen-Bradley SLC-
Automgen Server Kết nối PLC Automgen thông qua
Control I/O Kết nối bộ SoftPLC.
MHJ Kết nối PLC WinPLC-Engine và
Modbus TCP/IP Client Kết nối theo chuẩn Modbus
Modbus TCP/IP Server Kết nối theo chuẩn Modbus
OPC Client DA/UA Kết nối theo chuẩn OPC DA/UA client.
Siemens LOGO! Kết nối bộ điều khiển Siemens
Siemens S7-200/300/400 Kết nối PLC Siemens dòng S7-
Siemens S7-1200/1500 Kết nối PLC Siemens dòng S7-
Siemens S7-PLCSIM Kết nối PLC mô phỏng S7-
Hình 2.5-22 Các loại bộ điều khiển
Appsheet
AppSheet là nền tảng cho phép bạn tạo ứng dụng mà không cần kiến thức về lập trình Thay vì phải học mã hoặc thuê người phát triển ứng dụng, bạn có thể dễ dàng sử dụng AppSheet để tạo ra ứng dụng theo nhu cầu của mình.
AppSheet cho phép người dùng tự tạo ứng dụng một cách dễ dàng thông qua tính năng kéo thả Với AppSheet, bạn có thể tập trung vào việc sử dụng ứng dụng mà không cần phải lo lắng về việc phát triển hay sửa chữa nó.
- AppSheet là một phần của Google Cloud – Nền tảng tạo ứng dụng no-code cho mọi đối tượng.
2.6.2 AppSheet có thể làm gì?
- Xây dựng trang tổng quan
- Cài đặt trên các thiết bị
- Tích hợp các nền tảng
3 THIẾT KẾ VÀ THI CÔNG
Lập trình Node-RED
3.1.1 Khối đọc và giải mã QR code
- Sử dụng “webcam node” chụp lại hình ảnh từ webcam sau mỗi 1 giây
- Ảnh đi qua “image node: flip” để lật ngược QR code và đi qua “Barcode Decoder node” để giải mã
- “text node” hiển thị kí tự vừa giải mã ra màn hình
- “function node” đưa kí tự vừa nhận được vào “Barcode Generator node” để mã hóa thành QR code và in ra màn hình bằng “template node”.
3.1.2 Khối tính toán và lưu trữ dữ liệu
Hình 3.1-26 Khối tính toán và lưu trữ
- Nhập vào số lượng “text input node”
- Dựa vào chuỗi QR code để lấy đơn giá, thuộc tính của mỗi sản phẩm dùng “switch node”
- Dùng “join node” ghép nhiều tin nhắn lại thành một.
- Dùng “GSheet node” cập nhật lên Google Sheets để lưu trữ.
- Dùng “template node” để hiển thị bảng tính ra màn hình.
Hình 3.1-27 Khối tạo đơn hàng
- Sử dụng “GSheet node: Get” lấy các thuộc tính của sản phẩm.
- Hiển thị các thuộc tính ra màn hình khi quét được QR code dùng “text node”.
- “button node” tạo nút nhấn khi hoàn tất đơn hàng và lưu lên Google Sheets.
Hình 3.1-28 Khối giao tiếp PLC
- Dùng “S7 out node” cập nhật số lượng từng loại sản phẩm lên vùng nhớ PLC.
- Nút nhấn “button node” tạo một xung cạnh lên đến PLC đển khởi động băng truyền sản phẩm.
- Dùng “S7 in node” nhận tín hiệu trạng thái ON/OFF của băng truyền thông báo lên màn hình.
Hình 3.1-29 khối vẽ biểu đồ
- “GSheet node” lấy tổng số lượng của từng loại sản phẩm đã bán ra, mỗi 5 giây lấy một lần.
- Đi qua “change node” để thêm tiêu đề cho biểu đồ.
- Sử dụng “chart node” để vẽ biểu đồ đường thẳng cho số lượng của mỗi sản phẩm.
Hình 3.1-30 Giao diện bảng điều khiển
Hình 3.1-31 Giao diện biểu đồ
Tạo Google Sheets
Hình 3.2-32 Bảng tính toán và hiển thị
- Bảng tính cập nhật số lượng và tính toán thành tiền của từng loại sản phẩm đang được nhập vào.
- Bảng tính này sẽ được hiển thị trực tiếp trên màn hình.
3.2.2 Trang tính chứa thông tin sản phẩm
Hình 3.2-33 Bảng lưu trữ dữ liệu sản phẩm
- Bảng tính chứa tất cả các thuộc tính của từng loại sản phẩm
- Dựa vào bảng tính này để truy xuất các thuộc tính cả từng loại sản phẩm được quét mã QR.
3.2.3 Trang tính lưu trữ tất cả dữ liệu
Hình 3.2-34 Bảng dữ liệu lưu trữ tất cả sản phẩm đã bán
- Bảng tính lưu tất cả dữ liệu của các sản phẩm đã bán ra được Node-RED tự động cập nhật.
3.2.4 Trang tính lưu trữ thông tin theo đơn hàng
Hình 3.2-35 Bảng dữ liệu lưu trữ đơn hàng
- Một bảng tính lưu trữ thông tin của một đơn hàng hoàn chỉnh, mỗi đơn hàng có thể có nhiều sản phẩm
- Một bảng tính để lưu trữ tên khách hàng hiện tại và ID của đơn hàng đó.
- Tạo Service Account: o Truy cập console.cloud.google.com o Tạo project o Thêm thư viện API Sheets và Drive o Tạo key json
- Cho phép quyền truy cập Google Sheets
Hình 3.2-37 Cấp quyền truy cập Google Sheets
Viết chương trình PLC
- %I0.0 - %I0.3 là ngõ vào nhận tín hiệu từ cảm biến digital
- %MW1 - %MW8 là vùng nhớ lưu trữ số lượng sản phẩm đang đếm
- %Q0.0 - %Q0.3 là ngõ ra điều khiển động cơ băng truyền
- Vùng nhớ dem[] để lưu trữ số lượng sản phẩm được truyền thông từ Node-RED
- Vùng nhớ motor[] để điều khiển băng truyền từ Node-RED
- Vùng nhớ dongco[] để truyền tín hiệu ON/OFF của băng truyền lên Node-RED
- Cảm biến “sensor1” sẽ kích COUNTER đếm lên một đơn vị khi có sản phẩm đi qua
- Vùng nhớ “soluong1” để lưu giá trị COUNTER đang đếm.
- Vùng nhớ “data_block_1.dem[0]” được kết nối với Node-RED để nhập vào số lượng sản phẩm cần lấy.
- Vùng nhớ “data_block_1.motor[0]” được kết nối với Node-RED dạng nút nhấn để reset COUNTER bắt đầu một chu kỳ mới.
- Dùng ngõ ra thường đóng QU để COUNTER đang đếm thì băng truyền “dongco1” sẽ hoạt động, đến khi đếm xong thì băng truyền “dongco1” dừng.
- Vùng nhớ “data_block_1.dongco[0]” được kết nối với Node-RED để thông báo trạng thái hoạt động của băng truyền.
Mô phỏng Factory IO
3.4.1 Tạo mô hình băng truyền
Hình 3.4-42 mô phỏng băng truyền
- 4 băng truyền tải 4 loại sản phẩm khác nhau
Hình 3.4-43 Mô phỏng cảm biến
- Ở mỗi băng truyền có một cảm biến để đếm số lượng sản phẩm
- Ngõ vào gồm 4 cảm biến
- Ngõ ra gồm 4 động cơ của băng truyền
Xây dựng Appsheet
Hình 3.5-45 Trang đơn hàng appsheet
- Là trang chính của ứng dụng, thao tác nhập dữ liệu hoàn toàn ở trang đơn hàng.
- Gồm các thông tin cơ bản của đơn hàng.
- Được liên kết đến trang “chi tiết đơn hàng” để lưu trữ và sắp xếp thông tin dễ dàng.
3.5.2 Trang chi tiết đơn hàng
Hình 3.5-46 Trang chi tiết đơn hàng appsheet
- Trang lưu toàn bộ dữ liệu sản phẩm
- Liên kết đến trang “đơn hàng” để tự động cập nhật dữ liệu khi người dùng nhập vào
- Đặt các hàm thời gian TIMENOW(), TODAY() để tự động xuất ngày và giờ mỗi đơn hàng
- Đặt hàm UNIQUEID() để gán ID ngẫu nhiên cho đơn hàng.
3.5.3 Trang dữ liệu sản phẩm
Hình 3.5-47 Trang dữ liệu của sản phẩm
- Chứa dữ liệu các thuộc tính của từng loại sản phẩm.
- Liên kết đến các trang khác để tự động cập nhật các thuộc tính cảu sản phẩm được nhập vào.
- Người dùng có thể thêm hoặc xóa một loại sản phẩm (bao gồm tất cả các thuộc tính của sản phẩm đó) khỏi bảng.
4 GIẢI THUẬT VÀ ĐIỀU KHIỂN
Nguyên lý làm việc của hệ thống
- khi khởi động hệ thống, người dùng sẽ nhập tên khách hàng để thiết lập một đơn hàng mới.
- Quét QR code của từng sản phẩm trong đơn hàng và nhập số lượng.
- Hệ thống tính toán thành tiền của mỗi sản phẩm và hiển thị ra bảng điều khiển, đồng thời lưu trữ lên Google Sheets ở trang “chi tiết đơn hàng”.
Để lấy hàng, người dùng chỉ cần nhấn nút trên bảng điều khiển Khi nút được nhấn, Node-RED sẽ gửi một xung lên PLC qua liên kết vùng nhớ để kích hoạt băng truyền Khi băng truyền hoạt động, Node-RED sẽ nhận tín hiệu ON/OFF để thông báo trạng thái của nó.
- Lặp lại với mỗi sản phẩm, cuối cùng nhấn nút trên bảng điều khiển để hoàn tất đơn hàng tự động lưu trữ lên Google Sheets ở trang “đơn hàng”.
- Dữ liệu được lưu trữ sẽ sắp xếp theo đơn hàng, thời gian, và các thuộc tính của sản phẩm.
- Sử dụng dữ liệu được lưu trữ vẽ biểu đồ thể hiện số lượng của mỗi sản phẩm được bán ra theo thời gian.
Lưu đồ giải thuật
Hình 4.2-48 Lưu đồ giải thuật
Các bước tiến hành thực nghiệm
5.1.1 Trên hệ thống Node-RED
- Bước 1: khởi động hệ thống.
- Bước 2: Nhập tên khách hàng.
- Bước 3: Quét mã QR và nhập số lượng.
- Bước 4: Hệ thống tính toán và hiển thị giá tiền, nhấn nút lấy hàng.
- Bước 5: Quan sát đèn báo trạng thái của bange truyền.
- Bước 6: Quét đủ sản phẩm thì nhấn nút hoàn tất đơn hàng.
- Bước 7: Quan sát dữ liệu được lưu trữ lên Google Sheets.
- Bước 8: Quan sát biểu đồ tự động cập nhật dựa theo dữ liệu được lưu trữ.
- Bước 1: khởi động ứng dụng.
- Bước 2: Nhấn biểu tượng thêm đơn hàng, nhập tên khách hàng.
- Bước 3: Nhấn vào biểu tượng thêm sản phẩm, nhập mã sản phẩm sẽ tự động hiển thị các thuộc tính của sản phẩm.
- Bước 4: Nhập số lượng sẽ tự động tính số tiền thanh toán.
- Bước 5: Khi nhập đủ sản phẩm, nhấn hoàn tất để hoàn tất đơn hàng và lưu vào Google Sheets.
- Bước 6: Quan sát dữ liệu được lưu trữ theo từng đơn hàng, theo thời gian và thuộc tính.
Kết quả thực nghiệm
5.1.3 Trên hệ thống Node-RED
- Bước 1: Khởi động hệ thống
Hình 5.2-49 Khởi động hệ thống
- Bước 2: Nhập tên khách hàng
Hình 5.2-50 Nhập tên khách hàng
Hiển thị tên và gán ID
- Bước 4: Nhập số lượng và nhấn nút lấy hàng
Hiển thị các thuộc tính và hình ảnh của sản phẩm
Tính và hiển thị thành tiền ra màn hình, nhấn nút lấy hàng đèn báo sáng khi bằng truyền đang chạy
Hình 5.2-53 Băng truyền lấy hàng
- Bước 5: Hoàn tất đơn hàng và quan sát dữ liệu lưu trữ
Hình 5.2-54 Dữ liệu chi tiết dơn hàng
Hình 5.2-55 Dữ liệu đơn hàng
- Bước 6: Quan sát biểu đồ mô tả số lượng sản phẩm
Hình 5.2-56 Biểu đồ số lượng sản phẩm
- Bước 1: khởi động ứng dụng.
Hình 5.2-57 Khởi động úng dụng
- Bước 2: Nhấn biểu tượng thêm đơn hàng, nhập tên khách hàng.
- Bước 3: Nhấn vào biểu tượng thêm sản phẩm, nhập mã sản phẩm và số lượng sẽ tự động hiển thị các thuộc tính của sản phẩm
- Bước 5: Khi nhập đủ sản phẩm, nhấn hoàn tất để hoàn tất đơn hàng và lưu vào Google Sheets.
Hình 5.2-60 Hoàn tất đơn hàng
- Bước 6: Quan sát dữ liệu được lưu trữ theo từng đơn hàng, theo thời gian và thuộc tính.
Hình 5.2-61 Dữ liệu chi tiết đơn hàng
Hình 5.2-62 Dữ liệu đơn hàng
- Giao diện của hệ thống thân thiện với ngừơi dùng.
- Triển khai trên appsheet giúp chỉnh sửa dữ liệu mọi lúc mọi nơi.
- Theo dõi được mức tiêu thụ của mỗi sản phẩm.
- Linh hoạt thay đổi và nâng cấp theo nhu cầu cá nhân.
- Dữ liệu được lưu trữ lên Google Sheets dược tự động sắp xếp theo từng thuộc tính và thời gian.
- Dễ dàng tiếp cận cho người chưa cóa kinh nghiệm.
Nhược điểm
- Đôi khi không ổn định do liên tục gửi và nhận request/response
- Chỉ thiết kể để chạy trên một máy tính cục bộ.
- Chưa thi công hệ thống băng truyền và PLC thật.
- Appsheet chỉ chỉnh sửa dữ liệu, không thể khởi động băng truyền.
Hướng phát triển
- Tích hợp nhiều tính năng kiểm soát sản phẩm hơn.
- Xây dựng giao diện thân thiện hơn với người dùng
- Hướng đến một hệ thống tự động cao quan lí bằng mã QR