1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu thiết kế và thi công cánh tay robot 6 bậc tự do ứng dụng cho mô hình phân loại, sắp xếp sản phẩm theo màu sắc và mã qr truyền thông qua modbus tcpip

71 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 71
Dung lượng 9,12 MB

Cấu trúc

  • Chương 1: TỔNG QUAN ĐỀ TÀI (10)
    • 1.1. Đặt vấn đề (10)
    • 1.2. Mục tiêu đề tài (10)
    • 1.3. Giới hạn đề tài (11)
    • 1.4. Phương pháp nghiên cứu (11)
  • Chương 2: CƠ SỞ LÝ THUYẾT (12)
    • 2.1. Các loại mã QR thông dụng (12)
    • 2.2. Sơ lược về dòng EZI – SERVO (12)
    • 2.3. Sơ lược về PLC S7-1200 (14)
    • 2.4. Sơ lược về dòng Vi điều khiển ESP32 (15)
    • 2.5. Các chẩn giao tiếp, chuẩn truyền thông dự kiến sử dụng (16)
      • 2.5.1. Giao tiếp Modbus TCP – IP (16)
      • 2.5.2. Giao tiếp Modbus RTU – RS485 (17)
      • 2.5.3. Giao tiếp SPI (18)
      • 2.5.4. Giao tiếp UART (19)
  • Chương 3: THIẾT KẾ HỆ THỐNG (20)
    • 3.1. Thiết kế cánh tay Robot 6 bậc tự do (20)
      • 3.1.1. Thiết kế phần cơ khí Robot (20)
      • 3.1.2. Thiết kế phần điện Robot (26)
    • 3.2. Tính toán động học Robot (29)
      • 3.2.1. Tính toán động học thuận (29)
      • 3.2.2. Động học nghịch (33)
    • 3.3. Lập trình Robot (38)
      • 3.3.1. Lưu đồ giải thuật Robot (38)
      • 3.3.2. Lập trình giao diện (39)
      • 3.3.3. Lập trình điều khiển (44)
    • 3.4. Thiết kế mô hình phân loại và sắp xếp sản phẩm (50)
      • 3.4.1. Thiết kết phần cơ khí mô hình (50)
      • 3.4.2. Thiết kế phần điện mô hình (53)
    • 3.5. Lập trình điều khiển mô hình (56)
      • 3.5.1. Lưu đồ giải thuật mô hình (56)
      • 3.5.2. Cấu hình các Data Block (57)
      • 3.5.3. Cấu hình các khối Modbus (59)
      • 3.5.4. Thiết kế giao diện HMI (60)
      • 3.5.5. Lập trình điều khiển (62)
  • Chương 4: KẾT QUẢ (64)
    • 4.1. Về thi công phần cứng (64)
    • 4.2. Về chương trình điều khiển (65)
  • Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (70)
    • 5.1. Kết luận (70)
    • 5.2. Hướng phát triển (70)
  • TÀI LIỆU THAM KHẢO (71)

Nội dung

Nghiên cứu thiết kế và thi công cánh tay robot 6 bậc tự do ứng dụng cho mô hình phân loại, sắp xếp sản phẩm theo màu sắc và mã qr truyền thông qua modbus tcpip Nghiên cứu thiết kế và thi công cánh tay robot 6 bậc tự do ứng dụng cho mô hình phân loại, sắp xếp sản phẩm theo màu sắc và mã qr truyền thông qua modbus tcpip Nghiên cứu thiết kế và thi công cánh tay robot 6 bậc tự do ứng dụng cho mô hình phân loại, sắp xếp sản phẩm theo màu sắc và mã qr truyền thông qua modbus tcpip Nghiên cứu thiết kế và thi công cánh tay robot 6 bậc tự do ứng dụng cho mô hình phân loại, sắp xếp sản phẩm theo màu sắc và mã qr truyền thông qua modbus tcpip Nghiên cứu thiết kế và thi công cánh tay robot 6 bậc tự do ứng dụng cho mô hình phân loại, sắp xếp sản phẩm theo màu sắc và mã qr truyền thông qua modbus tcpip Nghiên cứu thiết kế và thi công cánh tay robot 6 bậc tự do ứng dụng cho mô hình phân loại, sắp xếp sản phẩm theo màu sắc và mã qr truyền thông qua modbus tcpip Nghiên cứu thiết kế và thi công cánh tay robot 6 bậc tự do ứng dụng cho mô hình phân loại, sắp xếp sản phẩm theo màu sắc và mã qr truyền thông qua modbus tcpip Nghiên cứu thiết kế và thi công cánh tay robot 6 bậc tự do ứng dụng cho mô hình phân loại, sắp xếp sản phẩm theo màu sắc và mã qr truyền thông qua modbus tcpip Nghiên cứu thiết kế và thi công cánh tay robot 6 bậc tự do ứng dụng cho mô hình phân loại, sắp xếp sản phẩm theo màu sắc và mã qr truyền thông qua modbus tcpip

CƠ SỞ LÝ THUYẾT

Các loại mã QR thông dụng

- SQRC (Secure Quick Response Code): SQRC là một dạng mã QR được phát triển để đáp ứng nhu cầu bảo mật cao hơn Nó kết hợp các tính năng như mã hóa và chữ ký số để đảm bảo tính toàn vẹn và bảo mật của dữ liệu được chứa trong mã

- rMQR (Reversible Data Matrix QR): rMQR là một dạng mã QR cho phép giải mã ngược để truy xuất thông tin ban đầu mà không cần kết nối mạng Điều này làm cho nó trở nên hữu ích trong các tình huống mà kết nối internet không khả dụng

- iQR (Intelligent QR Code): iQR là một dạng mã QR có khả năng chứa lượng lớn dữ liệu với kích thước nhỏ gọn hơn so với các mã QR thông thường Điều này được đạt được bằng cách sử dụng thuật toán nén thông minh

- FrameQR: FrameQR chia một mã QR thành nhiều phần (frame), mỗi phần có thể chứa thông tin riêng biệt Khi ghép lại, nó tạo thành một hình ảnh tổng thể chứa nhiều thông tin khác nhau

- Tron (Round QR Code): Tron là một dạng mã QR có hình tròn thay vì hình vuông truyền thống Nó mang lại sự sáng tạo trong thiết kế và có thể thu hút sự chú ý của người sử dụng

- HCCB (High Capacity Color Barcode): HCCB không chỉ là mã QR thông thường mà còn kết hợp màu sắc để tăng dung lượng thông tin và tạo ra hình ảnh độc đáo

- DPM (Direct Part Marking) QR Code: DPM QR Code được thiết kế để chịu được điều kiện khắc nghiệt, thích hợp cho việc đánh dấu trực tiếp trên sản phẩm (direct part marking) trong môi trường công nghiệp

- Micro QR Code: Micro QR Code là một phiên bản nhỏ gọn của mã QR, thường được sử dụng trong các ứng dụng có giới hạn không gian và yêu cầu kích thước nhỏ.

Sơ lược về dòng EZI – SERVO

Dòng EZI-SERVO của FASTECH là một hệ thống servo đa chức năng và tiên tiến, được thiết kế để đáp ứng đầy đủ nhu cầu kiểm soát chuyển động trong các ứng dụng công nghiệp đòi hỏi sự chính xác và độ tin cậy cao Dưới đây là một sơ lược về dòng EZI-SERVO của FASTECH:

- Đa dạng công suất và kích thước: Dòng EZI-SERVO cung cấp một loạt các mô-đun servo với công suất và kích thước đa dạng, từ các mô-đun nhỏ cho các ứng dụng nhỏ gọn đến các mô-đun mạnh mẽ phù hợp với các hệ thống công suất lớn

- Hiệu suất cao và độ chính xác: Với các thuật toán kiểm soát tiên tiến và động cơ servo chất lượng cao, dòng EZI-SERVO đảm bảo hiệu suất vượt trội và độ chính xác trong quá trình vận hành Điều này làm cho chúng trở thành lựa chọn lý tưởng cho các ứng dụng yêu cầu chuyển động mềm mại và chính xác

- Dễ lập trình và cấu hình: Hệ thống điều khiển của dòng EZI-SERVO được thiết kế để dễ sử dụng và lập trình FASTECH cung cấp phần mềm điều khiển đồ họa (GUI) và các công cụ cấu hình giúp người dùng dễ dàng tích hợp và điều khiển hệ thống

- Tương thích mạnh mẽ: Dòng EZI-SERVO tương thích với nhiều loại truyền thông công nghiệp như Modbus RTU, CANopen, và RS-485, giúp kết nối và tích hợp với các hệ thống tự động hóa hiện tại một cách thuận tiện a) Dòng truyền thông EtherCAT b) Dòng truyền thông RS485

Hình 2.1: Một số dòng Servo của Fastech

- Bảo dưỡng dễ dàng: Thiết kế của EZI-SERVO cũng nhấn mạnh vào việc dễ dàng bảo dưỡng và khắc phục sự cố Điều này giảm thiểu thời gian chết máy và tăng khả năng hoạt động liên tục của hệ thống

- Ứng dụng đa dạng: Dòng EZI-SERVO của FASTECH được sử dụng rộng rãi trong nhiều lĩnh vực như máy móc tự động, robot công nghiệp, dây chuyền sản xuất, và các hệ thống tự động hóa khác

Với những tính năng nổi bật này, dòng EZI-SERVO của FASTECH không chỉ đáp ứng được yêu cầu của các ứng dụng công nghiệp phức tạp mà còn đem lại sự linh hoạt và tiện ích trong việc tích hợp vào các hệ thống hiện tại

Sơ lược về PLC S7-1200

Bộ điều khiển logic khả trình (PLC) S7-1200 mang lại tính linh hoạt và sức mạnh để điều khiển nhiều thiết bị đa dạng hỗ trợ các yêu cầu về điều khiển tự động Sự kết hợp giữa thiết kế thu gọn, cấu hình linh hoạt và tập lệnh mạnh mẽ đã khiến cho S7-1200 trở thành một giải pháp hoàn hảo dành cho việc điều khiển nhiều ứng dụng đa dạng khác nhau

Bảng 2.1: 3 dòng CPU của PLC S7 – 1200

Kết hợp một bộ vi xử lý, một bộ nguồn tích hợp, các mạch ngõ vào và mạch ngõ ra trong một kết cấu thu gọn, CPU trong S7-1200 đã tạo ra một PLC mạnh mẽ Sau khi người dùng tải xuống một chương trình, CPU sẽ chứa mạch logic được yêu cầu để giám sát và điều khiển các thiết bị nằm trong ứng dụng CPU giám sát các ngõ vào và làm thay đổi ngõ ra theo logic của chương trình người dùng, có thể bao gồm các hoạt động như logic Boolean, việc đếm, định thì, các phép toán phức hợp và việc truyền thông với các thiết bị thông minh khác

Chức năng CPU 1211C CPU 1212C CPU 1214C

Kích thước vật lý (mm) 90 x 100 x 75 110 x 100 x 75

Bộ nhớ làm việc 25 kB 50 kB

Bộ nhớ nạp 1 MB 2 MB

Bộ nhớ giữ lại 2 kB 2 kB

Kiểu số 6 ngõ vào / 4 ngõ ra 8 ngõ vào / 6 ngõ ra 14 ngõ vào / 10 ngõ ra

Kiểu tương tự 2 ngõ ra 2 ngõ ra 2 ngõ ra

Kích thước ảnh tiến trình 1024 byte ngõ vào (I) và 1024 byte ngõ ra (Q)

Bộ nhớ bit (M) 4096 byte 8192 byte Độ mở rộng các module tín hiệu Không 2 8

Các module truyền thông 3 (mở rộng về bên trái)

Các bộ đếm tốc độ cao 3 4 6 Đơn pha 3 tại 100 kHz 3 tại 100 kHz 3 tại 100 kHz

Vuông pha 3 tại 80 kHz 3 tại 80 kHz 3 tại 80 kHz

Thẻ nhớ Thẻ nhớ SIMATIC (tùy chọn)

Thời gian lưu giữ đồng hồ thời gian thực Thông thường 10 ngày / ít nhất 6 ngày tại 400C

PROFINET 1 cổng truyền thông Ethernet

Tốc độ thực thi tính toán thực 18 μs/lệnh

Tốc độ thực thi Boolean 0,1 μs/lệnh

Hình 2.2: PLC S7 – 1200 và một số module mở rộng

Sơ lược về dòng Vi điều khiển ESP32

ESP32 là một series các vi điều khiển trên một vi mạch giá rẻ, năng lượng thấp có tích hợp WiFi và dual-mode Bluetooth Dòng ESP32 sử dụng bộ vi xử lý Tensilica Xtensa LX6 có hai biến thể lõi kép và lõi đơn, và bao gồm các công tắc antenna tích hợp, RF balun, bộ khuếch đại công suất, bộ khuếch đại thu nhiễu thấp, bộ lọc và module quản lý năng lượng

ESP32 được chế tạo và phát triển bởi Espressif Systems, một công ty Trung Quốc có trụ sở tại Thượng Hải, và được sản xuất bởi TSMC bằng cách sử dụng công nghệ 40 nm ESP32 là sản phẩm kế thừa từ vi điều khiển ESP8266

Hình 2.4 Sơ đồ chân ESP32

Các chẩn giao tiếp, chuẩn truyền thông dự kiến sử dụng

2.5.1 Giao tiếp Modbus TCP – IP

- Modbus-TCP/IP là giao thức Modbus được sử dụng trên đường truyền Ethernet, sử dụng mô hình TCP/IP để truyền thông Modbus-TCP là 1 mạng Ethernet công nghiệp mở được nhận diện bởi Modbus-IDA User Organization

- Phương thức truyền thông Modbus TCP/IP: Cũng như các loại modbus khác, Modbus TCP/IP cũng sử dụng mô hình Master-Slave để truyền thông Tuy nhiên, được triển khai trên nền Ethernet, sử dụng bộ giao thức TCP trên nền IP

- Modbus TCP làm cho định nghĩa Master-Slave truyền thống thay đổi Vì Ethernet cho phép giao tiếp ngang hàng Trong mạng TCP, các Slave có thể chủ động truyền thông tin về các thiết bị quản lý trung tâm – Master Sử dụng địa chỉ IP trên các Master để quản lý tập trung từ phần mềm

- Modbus TCP/IP được sử dụng trên các mạng TCP/ IP hiện đại, có 2 loại triển khai Modbus TCP:

• Modbus RTU qua TCP, đơn giản chỉ là sử dụng TCP làm lớp vận chuyển cho các thông điệp RTU

• Modbus TCP bình thường và có một số thay đổi trong định dạng tin nhắn

- Vì được truyền trên nền TCP/IP nên tốc độ truyền của Modbus TCP/IP cao, đáp ứng realtime Cao hơn hẳn Modbus RTU

- Có thể kết hợp modbus TCP/IP với modbus RTU Được gọi là Hybird Modbus Như hình dưới

Hình 2.5: Kết hợp Modbus TCP và Modbus RTU

2.5.2 Giao tiếp Modbus RTU – RS485

RS485 là một phương thức giao tiếp được ứng dụng phổ biến nhất trong ngành công nghiệp, viễn thông, POS,… Đặc biệt, RS485 được sử dụng nhiều trong các môi trường nhiễu do phạm vi đường truyền rộng lớn, đường cáp truyền đi quá lại quá dài trong môi trường nhiễu Không chỉ dừng lại ở đó, RS485 cũng được ứng dụng nhiều trong hệ thống máy tính, điều khiển, PLC hay cảm biến thông minh,…

Chuẩn giao tiếp RS485 có thể kết nối max lên đến 32 thiết bị trên một cặp dây đơn và một hệ thống dây nối đất ở khoảng cách lên đến 1200m

Hình 2.6: Modbus RTU trong công nghiệp

Dữ liệu khi truyền qua 2 dây trong trạng thái xoắn lại Khi dây xoắn lại thì khả năng chống nhiễu cao và tín hiệu đường truyền tốt hơn Trong mạng RS485 được phân thành

2 cấu hình: Cấu hình 2 dây (hệ thống bán song công) và cấu hình 4 dây (hệ thống song công toàn phần)

Hình 2.7: Sơ đồ 2 cấu hình dây của chuẩn RS-485

SPI là một giao thức giao tiếp phổ biến được sử dụng bởi nhiều thiết bị khác nhau Ví dụ, module thẻ SD, module đầu đọc thẻ RFID và bộ phát / thu không dây 2,4 GHz đều sử dụng SPI để giao tiếp với vi điều khiển

Lợi ích duy nhất của SPI là dữ liệu có thể được truyền mà không bị gián đoạn Bất kỳ số lượng bit nào cũng có thể được gửi hoặc nhận trong một luồng liên tục Với I2C và UART, dữ liệu được gửi dưới dạng gói, giới hạn ở một số bit cụ thể Điều kiện bắt đầu và dừng xác định điểm bắt đầu và kết thúc của mỗi gói, do đó dữ liệu bị gián đoạn trong quá trình truyền

Các thiết bị giao tiếp qua SPI có quan hệ master - slave Master là thiết bị điều khiển (thường là vi điều khiển), còn slave (thường là cảm biến, màn hình hoặc chip nhớ) nhận lệnh từ master Cấu hình đơn giản nhất của SPI là hệ thống một slave, một master duy nhất, nhưng một master có thể điều khiển nhiều hơn một slave

Hình 2.8: Chuẩn giao tiếp SPI

MOSI (đầu ra master / đầu vào slave) - đường truyền cho master gửi dữ liệu đến slave MISO (đầu vào master / đầu ra slave) - đường cho slave gửi dữ liệu đến master

SCLK (clock) - đường cho tín hiệu xung nhịp

SS / CS (Slave Select / Chip Select) - đường cho master chọn slave nào để gởi tín hiệu

UART hay bộ thu-phát không đồng bộ đa năng là một trong những hình thức giao tiếp kỹ thuật số giữa thiết bị với thiết bị đơn giản và lâu đời nhất Bạn có thể tìm thấy các thiết bị UART trong một phần của mạch tích hợp (IC) hoặc dưới dạng các thành phần riêng lẻ Các UART giao tiếp giữa hai nút riêng biệt bằng cách sử dụng một cặp dẫn và một nối đất chung

Hình 2.9: Chuẩn giao tiếp UART

Vì nó là thiết lập phổ quát nên có thể định cấu hình UART để hoạt động với nhiều loại giao thức nối tiếp khác nhau UART đã được điều chỉnh thành các đơn vị chip đơn vào đầu những năm 1970, bắt đầu với Western Digital’s WD1402A

Trong một sơ đồ giao tiếp UART:

- Chân Tx (truyền) của một chip kết nối trực tiếp với chân Rx (nhận) của chip kia và ngược lại Thông thường, quá trình truyền sẽ diễn ra ở 3.3V hoặc 5V UART là một giao thức một master, một slave, trong đó một thiết bị được thiết lập để giao tiếp với duy nhất một thiết bị khác

- Dữ liệu truyền đến và đi từ UART song song với thiết bị điều khiển (ví dụ: CPU)

- Khi gửi trên chân Tx, UART đầu tiên sẽ dịch thông tin song song này thành nối tiếp và truyền đến thiết bị nhận

- UART thứ hai nhận dữ liệu này trên chân Rx của nó và biến đổi nó trở lại thành song song để giao tiếp với thiết bị điều khiển của nó

UART truyền dữ liệu nối tiếp, theo một trong ba chế độ:

- Full duplex: Giao tiếp đồng thời đến và đi từ mỗi master và slave

- Half duplex: Dữ liệu đi theo một hướng tại một thời điểm

- Simplex: Chỉ giao tiếp một chiều

THIẾT KẾ HỆ THỐNG

Thiết kế cánh tay Robot 6 bậc tự do

3.1.1 Thiết kế phần cơ khí Robot

3.1.1.1 Servo Đối với EZI – Servo đã cơ bản đáp ứng được độ chính xác hơn khi so với các dòng step hoặc step hydrid truyền thống Một lợi thế của EZI – Servo nữa là EZI có series dùng truyền thông qua RS485 – điều này giúp việc điều khiển Servo dễ dàng, tiết kiệm chân điều khiển hơn so với phương án điều khiển qua 2 chân xung và chiều như truyền thống Hơn nữa, tác giả lựa chọn dòng EZI – Servo nhằm giải quyết một phần vấn đề chi phí cho mô hình Đồng thời, EZI – Servo sử dụng nguồn điện 24V, điều này có thể giúp phát triển thêm các tác vụ cần tính di động khác như tích hợp vào AGV, AMR,… do không phải dùng nguồn điện lưới

EZI – Servo có các kích thước động cơ gồm: EzM – 20, EzM – 28, EzM – 35, EzM –

42, EzM – 56, EzM – 60, EzM – 86 Với EzM – xx: là kích thước mặt bích của động cơ Ở mỗi loại kích thước mặt bích sẽ có các size quy ước chiều dài của động cơ bao gồm: Size S, Size M và Size L và Size XL

Vì size 86mm khá to không phù hợp với kích cỡ Robot sẽ thiết kế nên tác giả chọn dùng size 60L và size 60M Các khâu từ khâu 1 đến khâu 4 thì dùng size 60L và 2 khâu cuối dùng size 60M

Hình 3.1: Các kích thước Servo của dòng Ezi – Servo Plus – R

Khâu 1 FASTECH EZI-Servo Plus-R 60L

Khâu 2 FASTECH EZI-Servo Plus-R 60L

Khâu 3 FASTECH EZI-Servo Plus-R 60L

Khâu 4 FASTECH EZI-Servo Plus-R 60L

Khâu 5 FASTECH EZI-Servo Plus-R 60M

Khâu 6 FASTECH EZI-Servo Plus-R 60M

Bảng 3.1: Các loại kích thước servo sử dụng trong Robot

Hình 3.2: FASTECH EZI-Servo Plus-R 60L và 60M

3.1.1.2 Phanh từ Ở khâu 2 và 3 phải chịu trọng lực tương đối lớn so với các khâu khác, dễ xảy ra hiện tượng trôi khi tắt servo và khi bật servo cũng phải chịu một lực lớn để giữ khâu đó lại lâu dài làm gây hại cho servo, nên tác giả có dùng thêm 2 phanh từ ở 2 khâu trên

Khâu 2 Phanh từ MIKI PULLEY USED BXW-02-10-52 0.70NM

Khâu 3 Phanh từ MIKI PULLEY USED BXW-02-10-52 0.70NM

Bảng 3.2: Loại phanh từ được sử dụng

Hình 3.3: Phanh từ và động cơ khi được lắp phanh từ

Do kích thước và trọng lượng Robot khá nặng, mỗi khớp đòi hỏi phải chịu được lực khá lớn và phải truyền tải đủ momen từ động cơ đến khâu, nên không thể chỉ dùng cơ cấu pulley – dây đai để truyền động Mà mỗi động cơ đều phải qua từng hộp số tương ứng và phối hợp thêm cơ cấu pulley – dây đai để tăng tỉ số truyền nhằm đáp ứng đủ momen để quay được các khâu và kéo được tải Sau khi tìm hiểu và lựa chọn tác giả chọn 6 hộp số gồm các hãng khác nhau để sử dụng, một phần nữa những hộp số này có tỉ số truyền phù hợp với nhu cầu và dễ tìm mua hơn

Vị trí Tên Tỉ số truyền

Khâu 4 HD HarmonicDrive CSF-14-100-GH-F0BCD 100

Bảng 3.3: Các loại hộp số được sử dụng Ở khâu 2 và khâu 5, tác giả có dùng thêm cơ cấu pulley – dây đai tỉ số 2.4:1 và 2:1

Hình 3.4: Các hộp số Robot a) Khâu 1 b) Khâu 2 c) Khâu 3 d) Khâu 4 e) Khâu 5 f) Khâu 6

Sử dụng phần mềm Solidworks để thiết kế các chi tiết của Robot, bao gồm 22 chi tiết chất liệu nhôm, sử dụng các phương pháp gia công như CNC, tiện,… và 3 chi tiết bằng mica tấm 5mm

Hình 3.5: Các chi tiết thiết kế trên SolidWorks

Bảng 3.4: Các chi tiết và file các step để gia công

Thư mục Loại nhôm PP STT File

Nhôm tấm CNC 1 De - Tam de.STEP

Nhôm tấm CNC 2 De - Tam tren.STEP Nhôm tấm CNC 3 De - Tam truoc.STEP Nhôm tấm CNC 4 De - Tam phai.STEP Nhôm tấm CNC 5 De - Tam trai.STEP

Nhôm tấm CNC 6 De - Tam sau.STEP

Nhôm tấm CNC 7 Khau 1 - Pad gan Servo va Gearbox.STEP Nhôm tấm CNC 8 Khau 1 - Pad Gearbox.STEP

Trụ nhôm 14mm Tiện 9 Khau 1 - Truc noi Gearbox.STEP Nhôm tấm CNC 10 Khau 1 - Tam duoi.STEP

Khâu 2 Nhôm tấm CNC 11 Khau 2.STEP

Nhôm tấm CNC 12 Khau 3 - Pad gan Gearbox_1.STEP Nhôm tấm CNC 13 Khau 3 - Pad gan Gearbox_2.STEP Nhôm tấm CNC 14 Khau 3 - Pad gia co phan 1 va 2.STEP Nhôm tấm CNC 15 Khau 4 - Pad 1.STEP

Nhôm tấm CNC 16 Khau 4 - Pad 2.STEP Nhôm tấm CNC 17 Khau 4 - Pad.STEP Trụ nhôm 14mm Tiện 18 Khau 4 - Truc noi Gearbox.STEP Trụ nhôm 70mm Tiện 19 Khau 4 - Tru tron.STEP

Nhôm tấm CNC 20 Khau 5 - Pad 1.STEP Nhôm tấm CNC 21 Khau 5 - Pad 2.STEP Khâu 6 Nhôm tấm CNC 22 Khau 6 - Pad co cau chap hanh.STEP Đế

Hình 3.6: Vị trí các file trên bản thiết kế

Hình 3.7: Bản thiết kế Robot trên SolidWorks

Hình 3.8: Các chi tiết được gia công

Hình 3.9: Quá trình lắp ráp Robot

3.1.2 Thiết kế phần điện Robot

Các thành phần chính trong hệ thống được trình bày ở sơ đồ phía dưới, trong đó ESP32 đóng vai trò làm vi điều khiển chính để điều khiển Robot thông qua các Driver và giao tiếp với các thiết bị ngoại vi khác như SD Card Module, Ethernet Module để giao tiếp Modbus TCP với PLC

Hình 3.10: Sơ đồ phần điện Robot

Sử dụng Driver dòng Plus-R của FASTECH với độ phân giải tối đa 10000ppr Bao gồm 4 Driver mã EzS – NDR – 60L – A – D cho motor size 60L và 2 Driver mã EzS – NDR – 60M –

Hình 3.11: Dòng Ezi – Servo Plus – R và hướng dẫn đấu dây

Sơ đồ nguyên lý Schematic và PCB Layout cho Controller Board dùng ESP32-WROOM-32U

Hình 3.12: Sơ đồ nguyên lý mạch điều khiển

Hình 3.13: PCB Layout mạch điều khiển

19 b) Phía sau a) Quá trình đi dây c) Phía trên d) Tủ điện hoàn thiện

Hình 3.14: Quá trình đi dây tủ điện

Tính toán động học Robot

3.2.1 Tính toán động học thuận

Các thông số cơ khí Robot bao gồm: (đơn vị: mm)

Bảng 3.5: Các thông số cơ khí Robot

Các ma trận đồng nhất

0 cos 0 sin cos sin 0 cos sin

1 2 cos sin 0 cos sin cos 0 sin

2 3 cos 0 sin cos sin 0 cos sin

Phương trình động học thuận tổng quát:

Các phương trình động học thuận

Từ phương trình (3.7) ta có ma trận động học thuận tổng quát có dạng

Có thể chia ma trận trên thành 2 ma trận, 1 ma trận 3x3 mô tả phép xoay từ hệ 0 đến hệ 6 và 1 ma trận 3x1 mô tả phép tịnh tiến từ hệ 0 đến hệ 6:

Trong đó, các phần tử trong ma trận trên là các phương trình mô tả động học thuận cho cánh tay Robot 6 bậc tự do

Hình 3.16: Sơ đồ hình học Robot Đối với bài toán động học nghịch của Robot 6 bậc tự do có thể chia làm 2 phần để tìm đủ 6 giá trị góc quay của Robot:

- Phần 1: Động học nghịch – Vị trí: Từ tọa độ điểm làm việc EE và hướng của khâu cuối R0_6, ta có thể tìm được tọa độ của điểm W (Spherical Wrist – hay còn gọi là điểm cổ tay)

Lúc này trở thành bài toán động học nghịch cánh tay robot 3 bậc tự do (do đã lược bớt 3 góc cuối tính từ điểm cổ tay) Từ đó, tính toán ta tìm được giá trị θ1, θ2, θ3

- Phần 2: Động học nghịch – Hướng: Từ ma trận hướng khâu cuối R0_6 và các giá trị θ1, θ2, θ3 tìm được ở Phần 1 ta có thể tìm được ma trận R0_3 Ta lại có ma trận tổng quát R3_6 Từ 2 ma trận R0_6, R0_3 và ma trận tổng quát R3_6 Từ đó, tính toán ta có thể tìm được giá trị θ4, θ5, θ6

3.2.2.1 Động học nghịch – Vị trí

Hình 3.17: Sơ đồ hình học giải động học nghịch – vị trí

Xét tam giác vuông OWxW’, ta có:

 = = (3.23) Áp dụng định lý Cosin vào tam giác BCW, ta có:

BC + CW − BW = BC CW BCW (3.24)

Khi đó, phương tr(3.24) trở thành:

( ) ( 2 ) atan2 sin , cos atan2 1 cos , cos

Xét tam giác vuông CDW, ta lại có:

 = + =    −   + (3.32) Áp dụng định lý Cosin vào tam giác WBC, ta có:

WB + BC − CW = WB BC WBC (3.33)

( ) ( 2 ) atan2 sin , cos atan2 1 cos , cos

Xét tam giác vuông WBA’, ta có:

Hình 3.18: Cơ cấu Spherical Wrist

Trong đó: Yaw (θ4), Pitch (θ5) và Roll (θ6)

(3.43) Đồng nhất 2 vế phương trình () và () ta được:

Vậy, qua 2 phần giải động học nghịch gồm Động học nghịch – Vị trí và Động học nghịch – Hướng thì 6 giá trị góc quay của Robot được tổng quát như sau:

Hoặc  2 =atan2 ( W Z − D 0 , W X 2 + W Y 2 − L 1 ) − atan2 ( − − 1 cos 2  , cos  )

Hoặc  3 = atan2 ( − − 1 cos 2  , cos  ) + atan2 ( D L 1 , 3 )

Với các tham số đã được tổng quát trong các phương trình ở trên

Lập trình Robot

3.3.1 Lưu đồ giải thuật Robot

Hình 3.19: Lưu đồ giải thuật Robot

Sử dụng nền tảng phần cứng và phần mềm thiết kế HMI của Nextion

- Loại màn hình HMI: Dòng Nextion Enhanced Mã: NX8048K070_011 Với kích thước màn hình 7inches, Flash: 32MB, RAM: 8192B, Frequency: 108M

- Phần mềm thiết kế: Nextion Editor Ver.1.65.1

- Gồm 33 trang giao diện như bên dưới

Hình 3.20: Các trang giao diện

Trang Home: Trang hiển thị các thông số Robot như góc quay, tốc độ từng khớp, hướng khâu cuối, vị trí khâu chấp hành, thời gian tăng, giảm tốc và các nút nhấn để chọn các tư thế Robot hay dùng như: Chế độ SLEEP, WAKEUP, HOME, chế độ hiệu chỉnh Robot (CALIB), nút RESET ALARM, nút OUT1 và OUT2 để bật tắt ngõ ra của Robot, nút

ON và OFF để bật hoặc tắt các servo Khi vận hành, các giá trị góc quay, tốc độ, hướng và vị trí Robot sẽ liên tục được cập nhật trên màn hình

Hình 3.21: Trang giao diện Home

Trang KI_Encoder: Trang để vận hành Robot ở chế độ dùng bánh xe Encoder tay quay trên Teach Pendant và vận hành Robot ở chế độ động học nghịch bằng cách nhập các thông số vị trí khâu chấp hành, hướng khâu chấp hành, thời gian đáp ứng, nút IK SOLVE để giải động học nghịch và nút RUN, STOP Robot Ngoài ra, còn có các đèn báo trạng thái cảm biến Home của từng khớp Khi vận hành, các giá trị góc quay và vị trí Robot sẽ liên tục được cập nhật trên màn hình

Hình 3.22: Trang giao diện Kinematic Encoder Mode

Trang KI_Slider: Tương tự như Trang KI_Encoder, Trang KI_Slider để vận hành

Robot ở chế độ dùng các thanh Slider Chế độ này ít dùng hơn Trang KI_Encoder vì khi dùng Slider sẽ dễ bị trượt tay hoặc kéo Slider quá nhanh sẽ khó kiểm soát Robot hơn khi dùng Encoder tay quay trên tay Teach Pendant

Hình 3.23: Trang giao diện Kinematic Slider Mode

Trang EEOrientation: Trang này là trang con khi nhấn nào nút chọn EE trên trang

KI_Slider hoặc trang KI_Encoder Trang này có nhiệm vụ giúp người dùng dễ hình dung khi chọn hướng khâu cuối khi vận hành động học nghịch

Hình 3.24: Trang giao diện chọn hướng khâu chấp hành

Trang BaseMode: Trang này sẽ lấy tâm của mặt đế Robot làm gốc tọa độ khi vận hành

(Chế độ Base) Mục đích của trang này để người vận hành Robot di chuyển đến điểm mong muốn một cách chính xác nhất khi cho phép Robot tịnh tiến theo 3 trục X hoặc Y hoặc Z Đồng thời, trang này giúp lấy vị trí phục vụ cho việc học lệnh Robot Trên trang có các nút để chọn hướng khâu cuối, nút chọn trục cần tịnh tiến, tốc độ tịnh tiến,…

Hình 3.25: Trang giao diện chế độ Base

Trang PositionTable: Trang này hiển thị các bảng vị trí đã được lưu Robot có thể lưu

10 bảng vị trí, mỗi bảng tối đa 100 điểm Tổng cộng Robot có thể lưu tối đa 1000 điểm làm việc

Một dòng dữ liệu Robot có thể lưu có cấu trúc:

Số thứ tự | Tên vị trí | Tọa độ X | Tọa độ Y | Tọa độ Z | Hướng khâu cuối | Thời gian đáp ứng | Thời gian chờ khi đã hoàn thành | Trạng thái ngõ ra Out1 | Trạng thái ngõ ra Out2 Ngoài ra, còn có các nút Clear Table để xóa bảng làm việc (Có xác nhận bằng cách nhập mật khẩu), nút RUN/STOP để vận hành Robot, nút ADD ROW để thêm một dòng mới cho bảng, ở từng dòng còn có các nút chỉnh sửa để người vận hành chỉnh sửa 1 dòng bất kỳ trên bảng

Hình 3.26: Trang giao diện Position Table

Trang TCPIPPage: Trang này được gọi khi nhấn nút Modbus TCP/IP trên Trang PositionTable Trang này vận hành Robot ở chế độ giao tiếp thông qua truyền thông Modbus TCP với thiết bị khác (như PLC,.…) Ở trang này có các thành phần chính để thiết lập Ethernet như địa chỉ IP, địa chỉ Gateway, địa chỉ MAC, Subnet Mask,… Nút Connect/Disconnect để kết nối/ngắt kết nối, đèn Link và đèn TCP để báo trạng thái kết nối Ngoài ra, khi nhận lệnh vận hành từ đường truyền Ethernet thì Robot cũng sẽ liên tục cập nhật các giá trị góc quay, tốc độ, hướng và vị trí khâu chấp hành,…

Hình 3.27: Trang giao diện TCP/IP

Trên là những giao diện chính trên HMI để vận hành Robot Ngoài ra, HMI còn có 26 giao diện khác để phục vụ cho việc nhập thông số, giao điện đăng nhập, giao diện Debug và các giao diện thông báo khác,…

Chương trình được viết bằng nền tảng PlatformIO trên Visual Studio Code

Code được nhúng trên vi điều khiển ESP32-WROOM-32U

// PROJECT: 6-DOF ARM ROBOT USE RS-485 & TCP/IP PROTOCOL

// - Use Ezi-Servo Plus-R Series of FASTECH

// - Use 6 Driver (4 Driver EzS-NDR-60L and 2 Drivers EzS-NDR-60M)

// - Use 6 Servo (4 Servo EzM-60L-A-D and 2 Servo EzM-60M-A-D)

// - Use 2 Brake 24V for Servo Joint 2 and Joint 3

// - Communicate with 6-Drivers via RS-485 Protocol

// - Communicate with PLC and etc via TCP/IP Protocol

// -+ - // | | Build files, libdeps and settings env

// | FS @ 2.0.0 | [HIDE] Libraies for framework-arduinoespressif32

// | SD @ 2.0.0 | [HIDE] Libraies for framework-arduinoespressif32

// | SPI @ 2.0.0 | [HIDE] Libraies for framework-arduinoespressif32

// | ENCODER | Header and lib source files for Read Encoder and Interrupts

// | FORWARD_KINEMATIC | Header and lib source files for Kinematics of Robot

// | MATH | Header and lib source files for Matrix Calculate

// | MULTIPLE_SPI | Lib source files for SPI Communication with SD and Ethernet module

// | SERVO | Header and lib source files for communicate with Servo via RS-485 Protocol // | MODBUS_TCP | Header and lib source files for ModbusTCP Protocol

Khai báo thư viện và các header file:

#include < /MULTIPLE_SPI/Multiple_SPI.cpp>

#include < /FORWARD_KINEMATIC/Convert_Function.h> Định nghĩa các chân giao tiếp

// VSPI FOR ETHERNET MODULE AND SD CARD

#define REASSIGN_PINS int sck = 18; int miso = 19; int mosi = 23; int cs = 14; // Chip Select Pin for SD CARD int cs_ethernet = 13; // Chip Select Pin for ETHERNET W5500

- Nhóm các hàm xử lý chuỗi:

String splitString(String str, String delim, uint16_t pos);

String roundFloatToString(float value, unsigned int decimalPlaces); String convertBytesToHexString(byte bytes[]);

- Nhóm các hàm giao tiếp với HMI: void Read_HMI(); void Write_End_Byte_HMI(); void Write_HMI(String object, String para, String content); void Write_HMI(String object, String para, unsigned int value); void Write_HMI_Val(String object, String para, float value); void Alarm_HMI(String alarm_Content); void Update_Row_Data_HMI(unsigned int row_update); void Update_Row_Null_HMI(unsigned int row_update); void Clear_Data_Table(); void Update_Data_HMI(); void clearBufferData(); void TCP_Led(); void LINK_Led(); void Update_Data_Table(unsigned int row_begin, unsigned int row_end); void Mark_Row(unsigned int row_update, bool runState);

- Nhóm các hàm đọc ghi dữ liệu các servo:

38 void ENABLE_ALL_SERVO(); void DISABLE_ALL_SERVO(); void CLEAR_ALL_POSITION(); float GET_THETA_1(); float GET_THETA_2(); float GET_THETA_3(); float GET_THETA_4(); float GET_THETA_5(); float GET_THETA_6(); float GET_SPEED_1(); float GET_SPEED_2(); float GET_SPEED_3(); float GET_SPEED_4(); float GET_SPEED_5(); float GET_SPEED_6(); void SET_ALL_ACCELERATION_TIME(unsigned int accel_time); void SET_ALL_DECELERATION_TIME(unsigned int decel_time); void RESET_ALL_ALARM(); void SAVE_ALL_PARAMETER();

- Nhóm các hàm tính toán động học thuận và động học nghịch: template void printMatrix(const MatrixSize &matrix);

MatrixSize T_0_1(float a1,float alpha1,float d1,float theta1); MatrixSize T_1_2(float a2,float alpha2,float d2,float theta2); MatrixSize T_2_3(float a3,float alpha3,float d3,float theta3); MatrixSize T_3_4(float a4,float alpha4,float d4,float theta4); MatrixSize T_4_5(float a5,float alpha5,float d5,float theta5); MatrixSize T_5_6(float a6,float alpha6,float d6,float theta6); MatrixSize Forward_Kinematics(float theta1_FK, float theta2_FK, float theta3_FK, float theta4_FK, float theta5_FK, float theta6_FK); bool Check_T_0_3(float theta1, float theta2, float theta3, float Wx, float Wy, float Wz); bool Check_T_0_6(float theta1, float theta2, float theta3, float theta4, float theta5, float theta6, float EEx, float EEy, float

MatrixSize R_0_3_Inverse(float theta1, float theta2, float theta3);

String Inverse_Kinematics(const MatrixSize &EE_Pos_Matrix, const MatrixSize &R_0_6_Matrix);

String Inverse_Kinematics_No_Debug(const MatrixSize

&EE_Pos_Matrix, const MatrixSize &R_0_6_Matrix);

- Nhóm các hàm hiệu chỉnh Robot: void MOVE_ORIGIN_SERVO_1(); void MOVE_ORIGIN_SERVO_2(); void MOVE_ORIGIN_SERVO_3(); void MOVE_ORIGIN_SERVO_4(); void MOVE_ORIGIN_SERVO_5(); void MOVE_ORIGIN_SERVO_6(); void Joint_1_Calibration(); void Joint_2_Calibration(); void Joint_3_Calibration(); void Joint_4_Calibration(); void Joint_5_Calibration(); void Joint_6_Calibration(); void Robot_Calibration();

- Nhóm các hàm cập nhật sự kiện: void Update_Home_Sensor_State(); void Update_Encoder_State(); void Update_Speed_Selection(); void Update_Slider_State(); void Update_Current_Page_Fcns(); void Update_System_Status(); void Update_Out_Relay_Status();

- Nhóm các hàm xử lý dữ liệu, chuẩn bị dữ liệu và chuyển đổi dữ liệu: void Add_Row_Data_To_File(unsigned int rowNo); void Add_HMI_Data_To_Struct(); void Add_SD_Data_To_Struct(String rowData); void Edit_Data_To_Struct(); long DEG_TO_POS_1_CONV(float degree_target); long DEG_TO_POS_2_CONV(float degree_target); long DEG_TO_POS_3_CONV(float degree_target); long DEG_TO_POS_4_CONV(float degree_target); long DEG_TO_POS_5_CONV(float degree_target); long DEG_TO_POS_6_CONV(float degree_target); float roundToNearestHalfDeg(float degree_target); unsigned int SPEED_SERVO_1(float degree_target, float degree_target_old, unsigned int time_target); unsigned int SPEED_SERVO_2(float degree_target, float degree_target_old, unsigned int time_target); unsigned int SPEED_SERVO_3(float degree_target, float degree_target_old, unsigned int time_target);

40 unsigned int SPEED_SERVO_4(float degree_target, float degree_target_old, unsigned int time_target); unsigned int SPEED_SERVO_5(float degree_target, float degree_target_old, unsigned int time_target); unsigned int SPEED_SERVO_6(float degree_target, float degree_target_old, unsigned int time_target);

Thiết kế mô hình phân loại và sắp xếp sản phẩm

3.4.1 Thiết kết phần cơ khí mô hình

Về phần cơ khí mô hình được chia làm 2 băng tải riêng biệt:

- Băng tải 1: có nhiệm vụ vận chuyển sản phẩm đến vị trí quét mã QR, trên băng tải được lắp 3 cảm biến gồm: 1 cảm biến màu Keyence CZ-V20 và 2 cảm biến quang Omron E3Z-LS61 Về cơ cấu chấp hành trên băng tải này có 2 xi lanh gồm

1 xi lanh có nhiệm vụ chặn sản phẩm trên băng tải (khi đúng màu sản phẩm) và xi lanh còn lại có nhiệm vụ giữ cố định sản phẩm tại 1 vị trí để Robot đưa đầu đọc mã đến để quét QR trên sản phẩm

- Băng tải 2: có nhiệm vụ vận chuyển kệ hàng để sản phẩm, kệ hàng bao gồm 2 tầng, tầng 1 để sản phẩm có mã QR loại 1, tầng 2 để sản phẩm có mã QR loại 2 Trên băng tải được trang bị 2 cảm biến quang Omron E3Z-LS61 gồm: 1 cảm biến nhận biết kệ hàng có ở đúng vị trí, 1 cảm biến để phát hiện kệ hàng khi đã hoàn thành 1 chu trình phân loại và sắp xếp Trên băng tải còn có 1 xi lanh xoay để chặn kệ hàng lại ở đúng vị trí

Về xi lanh tác giả chọn 2 xi lanh xoay SMC MRHQ10D-90S để chặn sản phẩm và chặn kệ hành và 1 xi lanh tịnh tiến 2 ty SMC MXS6-30 để giữ cố định sản phẩm Ngoài ra, trên Robot còn có gắn 1 xi lanh kẹp SMC MHZJ2-20D để kẹp sản phẩm

Hình 3.29: Xi lanh xoay SMC MRHQ10D-90S

Hình 3.30: Xi lanh SMC MXS6-30

Hình 3.31: Xi lanh SMC MHZJ2-20D Để có thể điều khiển được các xi lanh vận hành, tác giả chọn cụm van khí nén TPC DV1120 với cụm 4 van 5/2 tích hợp

Hình 3.32: Cụm van khí nén TPC DV1120

Hình 3.33: Băng tải mô hình

Hình 3.34: Quá trình lắp ráp phần cứng mô hình

3.4.2 Thiết kế phần điện mô hình

Dựa trên các linh kiện phần cứng được trình bày ở phần 3.4.1, phần điện được thiết kế thành sơ đồ nguyên lý trên phần mềm EPLAN Electric P8

Hình 3.35: Sơ đồ phần điện mô hình

Hình 3.36: Cảm biến OMRON E3Z-LS61

• Khoảng cách phát hiện tối đa: 1m

• Ngõ ra: NPN, 100mA max

• Chế độ hoạt động: Light-ON / Dark-ON

• Nguồn sáng: LED hồng ngoại (860nm)

• Mạch bảo vệ: Ngược cực nguồn cấp, ngõ ra; ngắn mạch ngõ ra

• Thời gian đáp ứng: 1ms max

45 Để có thể nhận biết màu sản phẩm, tác giả sử dụng loại cảm biến màu Keyence CZ- V21 nhằm đảm bảo tính ổn định và tối ưu chi phí

Hình 3.37: Cảm biến màu Keyence CZ – V21

• Ngõ ra điều khiển: PNP cực thu hở (x4)

• Thời gian đáp ứng: HIGHSPEED 200 às, FINE 1 ms, TURBO 4 ms, SUPER 8 ms

• Mạch bảo vệ: Chống phân cực ngược, Bảo vệ quá dòng

• Chức năng Timer: Timer OFF/OFF- delay/ON-delay/One-shot

• Điện áp cung cấp: 24 VDC

• Nhiệt độ môi trường khi hoạt động: -10 to +55°C

+ Ở chế độ bình thường: 1.5 W (62.5 mA max)

+ Ở chế độ tiết kiệm: 1 W (42.0 mA max)

Hình 3.38: Quá trình đấu nối bảng điện

Lập trình điều khiển mô hình

3.5.1 Lưu đồ giải thuật mô hình

Hình 3.39: Lưu đồ giải thuật mô hình

3.5.2 Cấu hình các Data Block Để thuận tiện cho việc cấu hình, quản lý dữ liệu cũng như dễ dàng cho việc nâng cấp và chỉnh sửa, tác giả chia ra làm các Data Block để quản lý, bao gồm:

- Data Block ModbusTCPIP_ADDR: dùng để chứa địa chỉ các thanh ghi

Modbus, bao gồm địa chỉ thanh ghi đọc dữ liệu gửi về từ Robot, địa chỉ thanh ghi ghi dữ liệu đến Robot, địa chỉ thanh ghi đọc dữ liệu từ đầu đọc mã QR

Hình 3.41: Data Block ModbusTCPIP_ADDR

- Data Block ModbusTCPIP_QR_DATA: dùng để chứa dữ liệu thanh ghi đọc dữ liệu từ đầu đọc mã QR

Hình 3.42: Data Block ModbusTCPIP_QR_DATA

- Data Block ModbusTCPIP_ROBOT_DATA: dùng để chứa dữ liệu thanh ghi đọc dữ liệu từ Robot phản hồi về và dữ liệu thanh ghi để gửi lệnh cho Robot

Hình 3.43: Data Block ModbusTCPIP_ROBOT_DATA

- Data Block ModbusTCPIP_ROBOT_CMD: dùng để chứa bộ các câu lệnh để gửi xuống Robot được quy ước trước Bao gồm 15 lệnh

Hình 3.44: Data Block ModbusTCPIP_ROBOT_CMD:

- Data Block ModbusTCPIP_CONFIG: block này dùng để chứa các cấu hình Modbus bao gồm các cấu hình cho Modbus TCPIP – Robot để giao tiếp với Robot và các cấu hình cho Modbus TCPIP – QR để giao tiếp với đầu đọc mã QR

Hình 3.45: Data Block ModbusTCPIP_CONFIG

3.5.3 Cấu hình các khối Modbus

- Cấu hình khối Modbus_Client cho việc đọc dữ liệu phản hồi về từ Robot:

Các tham số của khối MB_CLIENT_DB READ ROBOT đã được định nghĩa trong các Data Block: ModbusTCPIP_CONFIG, ModbusTCPIP_ADDR,

Hình 3.46: Khối MB_CLIENT_DB READ ROBOT

- Cấu hình khối Modbus_Client cho việc gửi lệnh điều khiển đến Robot: Các tham số của khối MB_CLIENT_DB WRITE ROBOT đã được định nghĩa trong các Data Block: ModbusTCPIP_CONFIG, ModbusTCPIP_ADDR và

Hình 3.47: Khối MB_CLIENT_DB WRITE ROBOT

- Cấu hình khối Modbus_Client cho đọc dữ liệu từ module quét mã QR: Các tham số của khối MB_CLIENT_DB READ QR CODE đã được định nghĩa trong các Data Block: ModbusTCPIP_CONFIG, ModbusTCPIP_ADDR và ModbusTCPIP_QR_DATA

Hình 3.48: Khối MB_CLIENT_DB READ QR CODE

3.5.4 Thiết kế giao diện HMI Để thuận tiện cho việc giám sát hoạt động của hệ thống cũng như theo dõi một số thông tin về network của hệ thống, tác giả có thiết kế 2 giao diện SCADA:

- Giao diện System View: để giám sát sự hoạt động của hệ thống bao gồm trạng thái các đèn báo, trạng thái các xi lanh, động cơ, cảm biến Ngoài ra, trên giao diện có các label hiển thị số lượng sản phẩm đã sắp xếp, phân loại, số sản phẩm theo từng loại màu và từng loại mã,…

- Giao diện Network View: giúp người dùng dễ dàng theo dõi các địa chỉ IP và trạng thái kết nối của các thiết bị có trong mạng, bao gồm địa chỉ IP của PLC, địa chỉ IP của Robot, địa chỉ IP của đầu đọc mã QR,…

Hình 3.49: Giao diện thiết kế trang System View

Hình 3.50: Giao diện thiết kế trang Network View

Khai báo các tag cho PLC, bao gồm:

Bảng Input Tags gồm 11 tags: trong đó có 3 tags cho nút nhấn và 8 tags cho cảm biến

Bảng Output Tags gồm 10 tags: trong đó có 2 tags cho động cơ băng tải, 4 tags cho các xi lanh, 3 tags cho đèn báo và 1 tag cho còi báo

Hình 3.52: Output Tags Để dễ dàng trong việc nâng cấp và chỉnh sửa chương trình, tác giả chia chương trình làm 7 chương trình bao gồm: 1 chương trình chính và 6 chương trình con cho việc điều khiển Robot đến từng vị trí lấy sản phẩm và sắp xếp sản phẩm lên kệ tương ứng

Hình 3.53: Các chương trình con, data block và chương trình chính

Gán biến trung gian chu trình của màu tương ứng:

Gán lệnh điều khiển Robot cho thanh ghi ROBOT DATA WRITE trong Data Block ModbusTCPIP_ROBOT_DATA khi phát hiện đúng 1 trong 3 màu đã cài đặt trước

Chạy chu trình tương ứng với màu sắc đã cài đặt

Gọi hàm để điều khiển Robot đến quét mã, lấy sản phẩm, di chuyển sản phẩm đến kệ hàng và sắp xếp đúng vị trí trên kệ hàng

Ngoài ra, trong OB1 còn có một số network để cảnh báo khi gặp các lỗi như rơi phôi khi đang kẹp,… và một số network chức năng khác,…

KẾT QUẢ

Về thi công phần cứng

Hình 4.1: Tủ điện sau khi hoàn thành

Hình 4.2: Phần cứng sau khi hoàn thành

Hình 4.3: Tổng thể mô hình sau khi hoàn thành

Về chương trình điều khiển

Hình 4.4: Trang giao diện System View

Hình 4.5: Trang giao diện Network View

Các giao diện điều khiển Robot:

Hình 4.8: Trang Kinematic Encoder Mode

Hình 4.9: Trang Kinematic Slider Mode

Hình 4.10: Trang chọn hướng khâu chấp hành

Hình 4.13: Trang chế độ giao tiếp qua Modbus TCP/IP

Ngày đăng: 04/04/2024, 09:39

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w