Skip to main content

AI-POWERED DOCS

What do you want to know?

Chi Tiết Giao Tiếp PLC (EtherNet/IP)

Hệ thống vision OV10i hỗ trợ giao tiếp thời gian thực với các PLC dựa trên EtherNet/IP. Hướng dẫn này giải thích cách cấu hình kết nối I/O theo chu kỳ, ánh xạ cấu trúc dữ liệu và sử dụng các công cụ Node-RED của Overview để truy cập kết quả kiểm tra ở cả cấp độ tổng thể và cấp độ ROI.

Video Hướng Dẫn

Xem chủ đề này trong thực tế: Auto-Integration Builder

ghi chú

Để biết hướng dẫn kết nối cơ bản, xem Connect to PLC (EtherNet/IP, PROFINET).


Tổng Quan

OV10i hoạt động như một adapter EtherNet/IP, trong khi PLC của bạn hoạt động như một scanner (hoặc master). Sau khi được cấu hình, các thiết bị trao đổi dữ liệu có cấu trúc mỗi chu kỳ bằng cách sử dụng định dạng nhỏ gọn và dễ dự đoán.

Tính Năng Được Hỗ Trợ

  • Giao tiếp I/O theo chu kỳ - Hỗ trợ thời gian chu kỳ từ 20–10.000 ms
  • Thông lượng dữ liệu - Lên đến 256 byte theo mỗi hướng
  • Xử lý dữ liệu tùy chỉnh - Đọc/ghi dữ liệu Node-RED như một phần của recipe đang hoạt động

Input Assembly (OV10i → PLC)

Input assembly chứa dữ liệu được gửi từ OV10i đến PLC trong mỗi chu kỳ. Bao gồm trạng thái hệ thống, kết quả kiểm tra, thông tin recipe và phân tích ROI tùy chọn.

Bố cục byte và bit của input assembly OV10i

Output Assembly (PLC → OV10i)

Output assembly chứa dữ liệu điều khiển được gửi từ PLC đến OV10i. Bạn có thể sử dụng nó để kích hoạt kiểm tra, thay đổi recipe hoặc truyền các tham số tùy chỉnh.

Bố cục byte và bit của output assembly OV10i

Hành Vi Định Thời và Handshake

Sơ Đồ Định Thời Kích Hoạt EtherNet/IP

Hỗ Trợ Dữ Liệu Tùy Chỉnh

OV10i có thể nhận hoặc trả về dữ liệu tùy chỉnh bổ sung như một phần của luồng Node-RED của bạn.

PLC → OV10i

  • Ghi các cờ ngoại, ngưỡng hoặc bộ đếm để tác động đến logic trong Node-RED

OV10i → PLC

  • Trả về các giá trị được tính toán, các phép đo, timestamp hoặc các đầu ra có điều kiện

Dữ liệu tùy chỉnh được đặt vừa trong phần mở rộng của các assembly, bắt đầu sau các tín hiệu cốt lõi và thông tin recipe.

Phân Tích Kết Quả ROI (Chỉ Áp Dụng Cho Recipe Phân Loại)

Đối với recipe phân loại, bạn có thể hiển thị kết quả theo từng ROI cho PLC bằng cách sử dụng node Node-RED tùy chỉnh của Overview: Format data for PLC.

Cách hoạt động:

  • Được đặt giữa All Blocks Output Data và Send Data to PLC trong luồng Node-RED

Ví Dụ Luồng Node-RED Format Data for PLC

  • Tự động điền vào vùng ROI có cấu trúc bắt đầu từ byte 16 trong input assembly

  • Hỗ trợ tối đa 4 ROI mỗi lần kiểm tra

  • Mỗi ROI bao gồm:

    • ROI ID
    • Bit pass/fail
    • Điểm tin cậy (confidence score)
    • Các byte dự trữ để sử dụng trong tương lai
cảnh báo

Node Format Data for PLC chỉ hoạt động với Classification Recipes.

Bố cục byte và bit của output assembly OV10i


Tham Chiếu Tag PLC Mặc Định

Phần này cung cấp tham chiếu đầy đủ cho mọi tag trong Input và Output assembly, bao gồm byte offset, vị trí bit, kiểu dữ liệu và giá trị mặc định. Sử dụng phần này làm bản đồ bit chính thức khi cấu hình chương trình PLC của bạn.

Nơi Xem Các Tag Mặc Định Trong Giao Diện Camera

  1. Mở giao diện web của camera (ví dụ: http://192.168.1.100).
  2. Điều hướng đến Industrial Ethernet ở thanh bên trái.
  3. Chọn giao thức đang hoạt động của bạn (EtherNet/IP hoặc PROFINET).
  4. Trang sẽ hiển thị cấu hình assembly hiện tại, bao gồm kích thước dữ liệu input/output và trạng thái kết nối.
  5. Bố cục tag mặc định hiển thị trên trang này tương ứng với các bảng bên dưới.

Input Assembly Tags (Camera → PLC)

Các tag này được đọc bởi PLC. Camera ghi chúng vào mỗi chu kỳ I/O.

Byte 0 -- Status Flags

BitPLC Tag AddressTag NameData TypeMô TảGiá Trị Mặc Định
0I.Data[0].0Trigger ReadyBOOLCamera sẵn sàng nhận trigger. Phải ở mức HIGH trước khi gửi yêu cầu trigger.0 (chuyển sang HIGH sau khi khởi động)
1I.Data[0].1Trigger AcknowledgeBOOLCamera đã nhận và chấp nhận yêu cầu trigger.0
2I.Data[0].2Recipe Switch AcknowledgeBOOLCamera đã nhận và hoàn tất yêu cầu chuyển recipe.0
7I.Data[0].7Online / Startup CompleteBOOLCamera đã hoàn tất quá trình khởi động và đang online.0 (chuyển sang HIGH sau khi khởi động)

Byte 1 -- Cờ Lỗi và Trạng Thái

BitPLC Tag AddressTag NameData TypeMô TảGiá Trị Mặc Định
0I.Data[1].0Trigger ErrorBOOLĐã xảy ra lỗi trong chu kỳ trigger. Được chốt (latched) cho đến khi được xóa.0
1I.Data[1].1Recipe Switch ErrorBOOLĐã xảy ra lỗi trong quá trình chuyển recipe. Được chốt (latched) cho đến khi được xóa.0
6I.Data[1].6BusyBOOLCamera đang xử lý (đang chạy inspection hoặc chuyển recipe). Không gửi lệnh mới khi đang ở mức HIGH.0

Byte 2 -- Cờ Kết Quả Kiểm Tra

BitPLC Tag AddressTag NameData TypeMô TảGiá Trị Mặc Định
0I.Data[2].0Exposure CompleteBOOLQuá trình phơi sáng (exposure) hình ảnh đã hoàn tất.0
1I.Data[2].1Inspection Completed / Result AvailableBOOLQuá trình xử lý inspection đã hoàn tất và kết quả hợp lệ.0
2I.Data[2].2Inspection PassBOOLKết quả pass/fail cuối cùng. HIGH = Pass, LOW = Fail. Chỉ hợp lệ khi Result Available ở mức HIGH.0

Bytes 3--7 -- Reserved

Byte(s)PLC Tag AddressTag NameData TypeMô TảGiá Trị Mặc Định
3I.Data[3]ReservedBYTEDự trữ cho sử dụng trong tương lai.0x00
4I.Data[4]ReservedBYTEDự trữ cho sử dụng trong tương lai.0x00
5I.Data[5]ReservedBYTEDự trữ cho sử dụng trong tương lai.0x00
6--7I.Data[6]--I.Data[7]ReservedBYTEDự trữ cho sử dụng trong tương lai.0x00

Bytes 8--9 -- Current Recipe ID

Byte(s)PLC Tag AddressTag NameData TypeMô TảGiá Trị Mặc Định
8--9I.Data[8]--I.Data[9]Current Recipe IDUINT (16-bit)ID của recipe hiện đang hoạt động. So sánh với O.Data[4] để xác minh việc chuyển recipe đã hoàn tất.0

Bytes 10--11 -- Reserved

Byte(s)PLC Tag AddressTag NameData TypeDescriptionDefault Value
10--11I.Data[10]--I.Data[11]ReservedBYTEDự trữ cho mục đích sử dụng trong tương lai.0x00

Byte 12--13 -- ID Kiểm Tra

Byte(s)PLC Tag AddressTag NameData TypeDescriptionDefault Value
12--13I.Data[12]--I.Data[13]Inspection IDUINT (16-bit)Bộ đếm cuộn 16-bit tăng dần theo mỗi lần kiểm tra. Sử dụng để đối chiếu kết quả với các trigger cụ thể.0

Bytes 14--15 -- Reserved

Byte(s)PLC Tag AddressTag NameData TypeDescriptionDefault Value
14--15I.Data[14]--I.Data[15]ReservedBYTEDự trữ cho mục đích sử dụng trong tương lai.0x00

Bytes 16--256 -- ROI Results Assembly / Custom Data from Node-RED

Byte(s)PLC Tag AddressTag NameData TypeDescriptionDefault Value
16--256I.Data[16]--I.Data[256]ROI Results / Custom DataBYTE[]Khi sử dụng khối Node-RED "Format Data for PLC", vùng này được điền với kết quả ROI có cấu trúc. Nếu không, vùng này sẵn sàng cho dữ liệu tùy chỉnh từ các flow Node-RED.0x00

Output Assembly Tags (PLC → Camera)

Các tag này được PLC ghi vào. Camera đọc chúng trong mỗi chu kỳ I/O.

Byte 0 -- Control Flags

BitPLC Tag AddressTag NameData TypeDescriptionDefault Value
0O.Data[0].0Trigger RequestBOOLĐặt HIGH để kích hoạt một lần kiểm tra. Giữ trạng thái latch cho đến khi Trigger Acknowledge (I.Data[0].1) lên HIGH, sau đó hủy latch.0
1O.Data[0].1Recipe Switch RequestBOOLĐặt HIGH để yêu cầu chuyển recipe sang ID trong O.Data[4]. Giữ trạng thái latch cho đến khi Recipe Switch Ack (I.Data[0].2) lên HIGH, sau đó hủy latch.0

Bytes 1--3 -- Reserved

Byte(s)PLC Tag AddressTag NameData TypeDescriptionDefault Value
1O.Data[1]ReservedBYTEDự trữ cho mục đích sử dụng trong tương lai.0x00
2O.Data[2]ReservedBYTEDự trữ cho mục đích sử dụng trong tương lai.0x00
3O.Data[3]ReservedBYTEDự trữ cho mục đích sử dụng trong tương lai.0x00

Bytes 4--5 -- Recipe ID

Byte(s)PLC Tag AddressTag NameData TypeDescriptionDefault Value
4--5O.Data[4]--O.Data[5]Recipe IDUINT (16-bit)ID của recipe cần chuyển sang. Ghi số recipe mong muốn vào đây trước khi đặt bit Recipe Switch Request.0

Bytes 6--256 -- Custom Data for Node-RED

Byte(s)PLC Tag AddressTag NameData TypeDescriptionDefault Value
6--256O.Data[6]--O.Data[256]Custom Data for Node-REDBYTE[]Dữ liệu do người dùng định nghĩa mà các flow Node-RED có thể đọc. Sử dụng vùng này để truyền số serial, ngưỡng giá trị, ID linh kiện hoặc bất kỳ tham số nào khác đến camera.0x00

Sơ Đồ Bit Mapping

Các sơ đồ dạng văn bản sau đây hiển thị bố cục byte/bit đầy đủ cho cả hai assembly. Mỗi hàng đại diện cho một byte (hoặc dải byte), và mỗi cột đại diện cho một vị trí bit (bit 7 ở bên trái, bit 0 ở bên phải).

Sơ Đồ Bit Map của Input Assembly (Camera → PLC)

Byte │ Bit 7          │ Bit 6  │ Bit 5 │ Bit 4 │ Bit 3 │ Bit 2              │ Bit 1                      │ Bit 0
─────┼────────────────┼────────┼───────┼───────┼───────┼────────────────────┼────────────────────────────┼──────────────────
0 │ Online/Startup │ --- │ --- │ --- │ --- │ Recipe Switch Ack │ Trigger Ack │ Trigger Ready
│ Complete │ │ │ │ │ │ │
─────┼────────────────┼────────┼───────┼───────┼───────┼────────────────────┼────────────────────────────┼──────────────────
1 │ --- │ Busy │ --- │ --- │ --- │ --- │ Recipe Switch Error │ Trigger Error
─────┼────────────────┼────────┼───────┼───────┼───────┼────────────────────┼────────────────────────────┼──────────────────
2 │ --- │ --- │ --- │ --- │ --- │ Inspection Pass │ Inspection Completed / │ Exposure
│ │ │ │ │ │ │ Result Available │ Complete
─────┼────────────────┼────────┼───────┼───────┼───────┼────────────────────┼────────────────────────────┼──────────────────
3-5 │ --- │ --- │ --- │ --- │ --- │ --- │ --- │ ---
─────┼────────────────┼────────┼───────┼───────┼───────┼────────────────────┼────────────────────────────┼──────────────────
6-7 │ Reserved │
─────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
8-9 │ Current Recipe ID (16-bit unsigned integer) │
─────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
10-11│ Reserved │
─────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
12-13│ Inspection ID (16-bit unsigned integer) │
─────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
14-15│ Reserved │
─────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
16- │ ROI Results Assembly or Custom Data from Node-RED │
256 │ │

Bản Đồ Bit Output Assembly (PLC → Camera)

Byte │ Bit 7 │ Bit 6 │ Bit 5 │ Bit 4 │ Bit 3 │ Bit 2 │ Bit 1                 │ Bit 0
─────┼───────┼───────┼───────┼───────┼───────┼───────┼───────────────────────┼────────────────
0 │ --- │ --- │ --- │ --- │ --- │ --- │ Recipe Switch Request │ Trigger Request
─────┼───────┼───────┼───────┼───────┼───────┼───────┼───────────────────────┼────────────────
1-3 │ Reserved │
─────┼──────────────────────────────────────────────────────────────────────────────────────────
4-5 │ Recipe ID (16-bit unsigned integer) │
─────┼──────────────────────────────────────────────────────────────────────────────────────────
6- │ Custom Data for Node-RED │
256 │ │

Chi Tiết Assembly Kết Quả ROI (Bytes 16--55)

Khi khối Format Data for PLC Node-RED được sử dụng với các recipe phân loại, các byte từ 16 trở đi của Input Assembly được điền dữ liệu aligner có cấu trúc và dữ liệu cho từng ROI như sau:

Phần Aligner (Bytes 16--23)

Byte(s)Địa Chỉ Tag PLCTên TagKiểu Dữ LiệuMô Tả
16, bit 0I.Data[16].0Aligner SuccessBOOLHIGH nếu aligner định vị thành công bộ phận.
17--18I.Data[17]--I.Data[18]Aligner ConfidenceUINT (16-bit)Điểm tin cậy của việc căn chỉnh (0--65535).
19--20I.Data[19]--I.Data[20]Aligner AngleINT (16-bit, có dấu)Góc khớp so với template.
21--23I.Data[21]--I.Data[23]Reserved (Aligner)BYTEDự phòng cho dữ liệu aligner trong tương lai.

Khối Kết Quả ROI (Bytes 24--55)

Mỗi ROI chiếm 8 byte. Hỗ trợ tối đa 4 ROI (ROI 0 đến ROI 3).

Cấu trúc khối ROI (lặp lại mỗi 8 byte):

Offset trong khốiTên TagKiểu Dữ LiệuMô Tả
+0ROI IDUINT8 (8-bit)Định danh số duy nhất của ROI.
+1, bit 0ROI PassBOOLHIGH = ROI này pass, LOW = ROI này fail.
+2 đến +3ROI ConfidenceUINT (16-bit)Điểm tin cậy cho việc phân loại của ROI này (0--65535).
+4 đến +7ReservedBYTEDự phòng cho dữ liệu cho từng ROI trong tương lai.

Địa chỉ bắt đầu của ROI:

ROIByte Bắt ĐầuKhoảng Địa Chỉ PLCĐịa Chỉ IDĐịa Chỉ PassĐịa Chỉ Confidence
ROI 024I.Data[24]--I.Data[31]I.Data[24]I.Data[25].0I.Data[26]--I.Data[27]
ROI 132I.Data[32]--I.Data[39]I.Data[32]I.Data[33].0I.Data[34]--I.Data[35]
ROI 240I.Data[40]--I.Data[47]I.Data[40]I.Data[41].0I.Data[42]--I.Data[43]
ROI 348I.Data[48]--I.Data[55]I.Data[48]I.Data[49].0I.Data[50]--I.Data[51]

Cấu Hình Buffer

Xem Default Tags trong Giao Diện Camera

Bố cục tag mặc định được định nghĩa bởi firmware camera và tương ứng với các bảng ở trên. Để xem cấu hình hiện tại:

  1. Mở giao diện web của camera.
  2. Đi đến Industrial Ethernet trong menu bên trái.
  3. Chọn giao thức của bạn (EtherNet/IP hoặc PROFINET).
  4. Trang hiển thị:
    • Trạng thái kết nối và thông tin thiết bị
    • Kích thước Input và Output assembly (tối đa 256 bytes mỗi chiều)
    • Liên kết tải xuống file EDS hoặc GSDML (file này cũng mã hóa cấu trúc assembly mặc định)

File EDS (cho EtherNet/IP) và file GSDML (cho PROFINET) đều định nghĩa kích thước dữ liệu mặc định. Khi bạn thêm module camera trong Studio 5000 hoặc TIA Portal, kích thước assembly từ các file mô tả này xác định số byte được trao đổi mỗi chu kỳ.

Tạo Custom Data Buffer

Để gửi dữ liệu tùy chỉnh (ngoài các tag status/result mặc định) giữa camera và PLC, sử dụng block Node-RED "Format Data for PLC":

  1. Mở Node-RED từ giao diện web của camera (điều hướng đến trình chỉnh sửa Node-RED).
  2. Trong flow recipe của bạn, đặt node "Format Data for PLC" giữa node "All Blocks Output Data" và node "Send Data to PLC".
  3. Cấu hình thứ tự byte:
    • Little-endian cho PLC Allen-Bradley / Rockwell
    • Big-endian cho PLC Siemens
  4. Block này tự động định dạng kết quả classification ROI vào bố cục có cấu trúc bắt đầu từ byte 16 của Input Assembly (xem phần ROI Results Assembly Detail ở trên).

Đối với data buffer hoàn toàn tùy chỉnh (không sử dụng định dạng ROI mặc định):

  1. Trong flow Node-RED của bạn, sử dụng node Function để xây dựng buffer msg.payload với bố cục byte mong muốn.
  2. Kết nối nó với node "Send Data to PLC".
  3. Các byte tùy chỉnh của bạn sẽ điền vào Input Assembly bắt đầu từ byte 16.
  4. Ở phía PLC, đọc các địa chỉ tương ứng từ I.Data[16] đến I.Data[256].

Thay Đổi Gán Tag

Các tag cốt lõi (bytes 0--15 của Input Assembly và bytes 0--5 của Output Assembly) được cố định bởi firmware camera và không thể gán lại. Đây là các tín hiệu cấp hệ thống (trigger, chuyển recipe, status, errors, recipe ID, và inspection ID).

Vùng có thể cấu hình là:

  • Input Assembly bytes 16--256: Được điền bởi Node-RED. Bạn kiểm soát dữ liệu nào đi vào đây bằng cách cấu hình Node-RED flow. Block "Format Data for PLC" mặc định điền vào đây bằng kết quả ROI, hoặc bạn có thể ghi dữ liệu tùy ý bằng các node Function.
  • Output Assembly bytes 6--256: Được đọc bởi Node-RED. Bạn có thể ghi bất kỳ dữ liệu nào từ PLC vào các byte này, sau đó đọc chúng trong Node-RED flow bằng các node input phù hợp. Điều này hữu ích để gửi số serial, lot ID, ngưỡng, hoặc các tham số khác từ PLC đến camera.

Gửi Dữ Liệu Tùy Chỉnh từ PLC đến Camera (Output Assembly)

Để truyền dữ liệu tùy chỉnh từ PLC vào Node-RED:

  1. Trong chương trình PLC của bạn, ghi giá trị vào O.Data[6] đến O.Data[256].
  2. Trong Node-RED trên camera, sử dụng các node PLC input data để đọc các byte đó.
  3. Sử dụng các giá trị trong logic flow của bạn (ví dụ: ngưỡng, số serial, tham số điều kiện).
tip

Để xem hướng dẫn từng bước về việc gửi dữ liệu chuỗi từ PLC đến camera, xem Send Custom Data from PLC to Camera.

Tham Khảo Nhanh: Bảng Tra Cứu Địa Chỉ Tag

Bảng dưới đây tổng hợp các tag được sử dụng phổ biến nhất tại một nơi để tra cứu nhanh trong quá trình lập trình PLC:

Địa Chỉ PLCHướngTên Tín HiệuCách Sử Dụng
I.Data[0].0Camera → PLCTrigger ReadyKiểm tra trước khi trigger
I.Data[0].1Camera → PLCTrigger AcknowledgeBỏ latch trigger sau khi tín hiệu này lên HIGH
I.Data[0].2Camera → PLCRecipe Switch AckBỏ latch yêu cầu chuyển recipe sau khi tín hiệu này lên HIGH
I.Data[0].7Camera → PLCOnline / Startup CompleteXác nhận camera đã khởi động xong
I.Data[1].0Camera → PLCTrigger ErrorGiám sát lỗi trigger
I.Data[1].1Camera → PLCRecipe Switch ErrorGiám sát lỗi chuyển recipe
I.Data[1].6Camera → PLCBusyKhông gửi lệnh khi đang HIGH
I.Data[2].0Camera → PLCExposure CompleteHình ảnh đã được chụp
I.Data[2].1Camera → PLCResult AvailableAn toàn để đọc kết quả pass/fail
I.Data[2].2Camera → PLCInspection PassHIGH = Pass, LOW = Fail
I.Data[8]--I.Data[9]Camera → PLCCurrent Recipe IDXác minh recipe sau khi chuyển
I.Data[12]--I.Data[13]Camera → PLCInspection IDTương quan kết quả với trigger
O.Data[0].0PLC → CameraTrigger RequestLatch HIGH để trigger
O.Data[0].1PLC → CameraRecipe Switch RequestLatch HIGH để chuyển recipe
O.Data[4]--O.Data[5]PLC → CameraRecipe IDĐặt số recipe mong muốn
O.Data[6]+PLC → CameraCustom DataDữ liệu do người dùng định nghĩa cho Node-RED
I.Data[16]+Camera → PLCROI Results / Custom DataKết quả ROI hoặc đầu ra Node-RED tùy chỉnh