AI-POWERED DOCS
What do you want to know?
Chi Tiết Giao Tiếp PLC (EtherNet/IP)
Hệ thống vision OV80i 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 cyclic I/O, á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 độ toàn cục và cấp độ ROI.
Xem chủ đề này trong thực tế: Auto-Integration Builder
Để biết hướng dẫn kết nối cơ bản, hãy xem Kết Nối với PLC (EtherNet/IP, PROFINET).
Tổng Quan
OV80i hoạt động như một EtherNet/IP adapter, trong khi PLC của bạn hoạt động như một scanner (hoặc master). Sau khi cấu hình, các thiết bị sẽ trao đổi dữ liệu có cấu trúc trong mỗi chu kỳ bằng một định dạng nhỏ gọn và có thể dự đoán được.
Các Tính Năng Được Hỗ Trợ
- Giao tiếp Cyclic I/O - Hỗ trợ thời gian chu kỳ 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 (OV80i → PLC)
Input assembly chứa dữ liệu được gửi từ OV80i đế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 chi tiết ROI tùy chọn.

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

Hành Vi Timing và Handshake

Hỗ Trợ Dữ Liệu Tùy Chỉnh
OV80i có thể chấp 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.
PLC → OV80i
- Ghi các cờ, ngưỡng hoặc bộ đếm bên ngoài để tác động đến logic trong Node-RED
OV80i → PLC
- Trả về các giá trị đã tính toán, phép đo, dấu thời gian hoặc đầu ra có điều kiện
Dữ liệu tùy chỉnh nằm 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ỉ Dành Cho Classification Recipes)
Đối với classification recipes, 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

-
Tự động điền vào vùng ROI có cấu trúc bắt đầu tại byte 16 trong input assembly
-
Hỗ trợ tối đa 4 ROI cho 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ữ cho mục đích sử dụng sau này
Node Format Data for PLC chỉ hoạt động với Classification Recipes.

Tham Chiếu PLC Tag Mặc Định
Phần này cung cấp tham chiếu đầy đủ về 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 như 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
- Mở giao diện web OV80i (ví dụ:
http://10.250.0.100). - Điều hướng đến Industrial Ethernet trong thanh bên trái.
- Chọn giao thức đang hoạt động (EtherNet/IP hoặc PROFINET).
- 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.
- 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 (OV80i → PLC)
Các tag này được PLC đọc. Camera ghi chúng vào mỗi chu kỳ I/O.
Byte 0 -- Status Flags
| Bit | PLC Tag Address | Tên Tag | Kiểu Dữ Liệu | Mô Tả | Giá Trị Mặc Định |
|---|---|---|---|---|---|
| 0 | I.Data[0].0 | Trigger Ready | BOOL | Camera 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 lên HIGH sau khi khởi động) |
| 1 | I.Data[0].1 | Trigger Acknowledge | BOOL | Camera đã nhận và chấp nhận yêu cầu trigger. | 0 |
| 2 | I.Data[0].2 | Recipe Switch Acknowledge | BOOL | Camera đã nhận và hoàn tất yêu cầu chuyển recipe. | 0 |
| 7 | I.Data[0].7 | Online / Startup Complete | BOOL | Camera đã khởi động xong và đang online. | 0 (chuyển lên HIGH sau khi khởi động) |
Byte 1 -- Error and Status Flags
| Bit | PLC Tag Address | Tên Tag | Kiểu Dữ Liệu | Mô Tả | Giá Trị Mặc Định |
|---|---|---|---|---|---|
| 0 | I.Data[1].0 | Trigger Error | BOOL | Đã xảy ra lỗi trong chu kỳ trigger. Được latch cho đến khi được xóa. | 0 |
| 1 | I.Data[1].1 | Recipe Switch Error | BOOL | Đã xảy ra lỗi trong quá trình chuyển recipe. Được latch cho đến khi được xóa. | 0 |
| 6 | I.Data[1].6 | Busy | BOOL | Camera đang xử lý (đang chạy inspection hoặc chuyển recipe). Không gửi lệnh mới khi đang ở HIGH. | 0 |
Byte 2 -- Inspection Result Flags
| Bit | PLC Tag Address | Tên Tag | Kiểu Dữ Liệu | Mô Tả | Giá Trị Mặc Định |
|---|---|---|---|---|---|
| 0 | I.Data[2].0 | Exposure Complete | BOOL | Quá trình phơi sáng ảnh đã hoàn tất. | 0 |
| 1 | I.Data[2].1 | Inspection Completed / Result Available | BOOL | Quá trình xử lý inspection đã hoàn tất và kết quả hợp lệ. | 0 |
| 2 | I.Data[2].2 | Inspection Pass | BOOL | Kết quả pass/fail cuối cùng. HIGH = Pass, LOW = Fail. Chỉ hợp lệ khi Result Available ở HIGH. | 0 |
Bytes 3--7 -- Reserved
| Byte(s) | PLC Tag Address | Tên Tag | Kiểu Dữ Liệu | Mô Tả | Giá Trị Mặc Định |
|---|---|---|---|---|---|
| 3 | I.Data[3] | Reserved | BYTE | Dự phòng cho sử dụng trong tương lai. | 0x00 |
| 4 | I.Data[4] | Reserved | BYTE | Dự phòng cho sử dụng trong tương lai. | 0x00 |
| 5 | I.Data[5] | Reserved | BYTE | Dự phòng cho sử dụng trong tương lai. | 0x00 |
| 6--7 | I.Data[6]--I.Data[7] | Reserved | BYTE | Dự phòng cho sử dụng trong tương lai. | 0x00 |
Bytes 8--9 -- Current Recipe ID
| Byte(s) | PLC Tag Address | Tag Name | Data Type | Description | Default Value |
|---|---|---|---|---|---|
| 8--9 | I.Data[8]--I.Data[9] | Current Recipe ID | UINT (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 Address | Tag Name | Data Type | Description | Default Value |
|---|---|---|---|---|---|
| 10--11 | I.Data[10]--I.Data[11] | Reserved | BYTE | Dự trữ cho sử dụng trong tương lai. | 0x00 |
Bytes 12--13 -- Inspection ID
| Byte(s) | PLC Tag Address | Tag Name | Data Type | Description | Default Value |
|---|---|---|---|---|---|
| 12--13 | I.Data[12]--I.Data[13] | Inspection ID | UINT (16-bit) | Bộ đếm 16-bit luân phiên, tăng dần sau 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 Address | Tag Name | Data Type | Description | Default Value |
|---|---|---|---|---|---|
| 14--15 | I.Data[14]--I.Data[15] | Reserved | BYTE | Dự trữ cho sử dụng trong tương lai. | 0x00 |
Bytes 16--256 -- ROI Results Assembly / Custom Data from Node-RED
| Byte(s) | PLC Tag Address | Tag Name | Data Type | Description | Default Value |
|---|---|---|---|---|---|
| 16--256 | I.Data[16]--I.Data[256] | ROI Results / Custom Data | BYTE[] | Khi sử dụng khối Node-RED "Format Data for PLC", vùng này sẽ được điền với các kết quả ROI có cấu trúc. Nếu không, có thể sử dụng cho dữ liệu tùy chỉnh từ các flow Node-RED. | 0x00 |
Output Assembly Tags (PLC → OV80i)
Các tag này được PLC ghi vào. Camera đọc chúng mỗi chu kỳ I/O.
Byte 0 -- Control Flags
| Bit | PLC Tag Address | Tag Name | Data Type | Description | Default Value |
|---|---|---|---|---|---|
| 0 | O.Data[0].0 | Trigger Request | BOOL | Đặt HIGH để kích hoạt một lần kiểm tra. Giữ (latch) cho đến khi Trigger Acknowledge (I.Data[0].1) chuyển sang HIGH, sau đó bỏ giữ (unlatch). | 0 |
| 1 | O.Data[0].1 | Recipe Switch Request | BOOL | Đặt HIGH để yêu cầu chuyển recipe sang ID trong O.Data[4]. Giữ (latch) cho đến khi Recipe Switch Ack (I.Data[0].2) chuyển sang HIGH, sau đó bỏ giữ (unlatch). | 0 |
Bytes 1--3 -- Reserved
| Byte(s) | PLC Tag Address | Tag Name | Data Type | Description | Default Value |
|---|---|---|---|---|---|
| 1 | O.Data[1] | Reserved | BYTE | Dự trữ cho sử dụng trong tương lai. | 0x00 |
| 2 | O.Data[2] | Reserved | BYTE | Dự trữ cho sử dụng trong tương lai. | 0x00 |
| 3 | O.Data[3] | Reserved | BYTE | Dự trữ cho sử dụng trong tương lai. | 0x00 |
Bytes 4--5 -- Recipe ID
| Byte(s) | PLC Tag Address | Tag Name | Data Type | Description | Default Value |
|---|---|---|---|---|---|
| 4--5 | O.Data[4]--O.Data[5] | Recipe ID | UINT (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 cho Node-RED
| Byte(s) | PLC Tag Address | Tag Name | Data Type | Mô Tả | Giá Trị Mặc Định |
|---|---|---|---|---|---|
| 6--256 | O.Data[6]--O.Data[256] | Custom Data for Node-RED | BYTE[] | 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 serial number, ngưỡng, part ID, hoặc bất kỳ tham số nào khác đến camera. | 0x00 |
Sơ Đồ Ánh Xạ Bit
Các sơ đồ dạng văn bản sau đây thể hiện bố cục byte/bit đầy đủ cho cả hai assembly. Mỗi dòng đại diện cho một byte (hoặc một 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 của Input Assembly (OV80i → 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 │ │
Output Assembly Bit Map (PLC → OV80i)
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 ROI Results Assembly (Bytes 16--55)
Khi khối Node-RED Format Data for PLC được sử dụng với các recipe phân loại (classification), các byte 16+ của Input Assembly sẽ được điền với dữ liệu aligner có cấu trúc và dữ liệu theo từng ROI như sau:
Phần Aligner (Bytes 16--23)
| Byte(s) | Địa Chỉ Tag PLC | Tên Tag | Kiểu Dữ Liệu | Mô Tả |
|---|---|---|---|---|
| 16, bit 0 | I.Data[16].0 | Aligner Success | BOOL | HIGH nếu aligner đã định vị thành công chi tiết. |
| 17--18 | I.Data[17]--I.Data[18] | Aligner Confidence | UINT (16-bit) | Điểm tin cậy của quá trình căn chỉnh (0--65535). |
| 19--20 | I.Data[19]--I.Data[20] | Aligner Angle | INT (16-bit, signed) | Góc khớp so với template. |
| 21--23 | I.Data[21]--I.Data[23] | Reserved (Aligner) | BYTE | Dự phòng cho dữ liệu aligner trong tương lai. |
Các 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ối | Tên Tag | Kiểu Dữ Liệu | Mô Tả |
|---|---|---|---|
| +0 | ROI ID | UINT8 (8-bit) | Mã định danh số duy nhất của ROI. |
| +1, bit 0 | ROI Pass | BOOL | HIGH = ROI này đạt, LOW = ROI này không đạt. |
| +2 to +3 | ROI Confidence | UINT (16-bit) | Điểm tin cậy cho phân loại của ROI này (0--65535). |
| +4 to +7 | Reserved | BYTE | Dự phòng cho dữ liệu theo từng ROI trong tương lai. |
Địa chỉ bắt đầu của các ROI:
| ROI | Byte Bắt Đầu | Dải Địa Chỉ PLC | Địa Chỉ ID | Địa Chỉ Pass | Địa Chỉ Confidence |
|---|---|---|---|---|---|
| ROI 0 | 24 | I.Data[24]--I.Data[31] | I.Data[24] | I.Data[25].0 | I.Data[26]--I.Data[27] |
| ROI 1 | 32 | I.Data[32]--I.Data[39] | I.Data[32] | I.Data[33].0 | I.Data[34]--I.Data[35] |
| ROI 2 | 40 | I.Data[40]--I.Data[47] | I.Data[40] | I.Data[41].0 | I.Data[42]--I.Data[43] |
| ROI 3 | 48 | I.Data[48]--I.Data[55] | I.Data[48] | I.Data[49].0 | I.Data[50]--I.Data[51] |
Cấu Hình Buffer
Xem Các Tag Mặc Định Trong Giao Diện Camera
Bố cục tag mặc định được xác định bởi firmware của camera và tương ứng với các bảng ở trên. Để xem cấu hình hiện tại:
- Mở giao diện web OV80i.
- Chuyển đến Industrial Ethernet trong menu bên trái.
- Chọn giao thức của bạn (EtherNet/IP hoặc PROFINET).
- Trang này 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 byte cho mỗi hướng)
- Liên kết tải xuống file EDS hoặc GSDML (cũng mã hóa cấu trúc assembly mặc định)
File EDS (cho EtherNet/IP) và file GSDML (cho PROFINET) đều xác định 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 sẽ xác định số byte được trao đổi trong mỗi chu kỳ.
Tạo Data Buffer Tùy Chỉnh
Để gửi dữ liệu tùy chỉnh (ngoài các tag trạng thái/kết quả mặc định) giữa camera và PLC, sử dụng khối Node-RED "Format Data for PLC":
- Mở Node-RED từ giao diện web của camera (chuyển đến trình chỉnh sửa Node-RED).
- Trong luồng recipe của bạn, đặt node "Format Data for PLC" giữa node "All Blocks Output Data" và node "Send Data to PLC".
- Cấu hình thứ tự byte:
- Little-endian cho PLC Allen-Bradley / Rockwell
- Big-endian cho PLC Siemens
- Khối này tự động định dạng kết quả ROI phân loại thành 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 các data buffer hoàn toàn tùy chỉnh (không sử dụng định dạng ROI mặc định):
- Trong luồng Node-RED của bạn, sử dụng node Function để xây dựng buffer
msg.payloadvới bố cục byte mong muốn. - Kết nối nó với node "Send Data to PLC".
- Các byte tùy chỉnh của bạn sẽ điền vào Input Assembly bắt đầu từ byte 16.
- Về phía PLC, đọc các địa chỉ tương ứng từ
I.Data[16]đếnI.Data[256].
Thay Đổi Gán Tag
Các tag cốt lõi (byte 0--15 của Input Assembly và byte 0--5 của Output Assembly) được cố định bởi firmware của 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 đổi recipe, trạng thái, lỗi, ID recipe, và ID kiểm tra).
Vùng có thể cấu hình là:
- Byte 16--256 của Input Assembly: Được điền bởi Node-RED. Bạn kiểm soát dữ liệu nào sẽ được đưa vào đây bằng cách cấu hình luồng Node-RED của mình. Khối "Format Data for PLC" mặc định điền vùng nà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.
- Byte 6--256 của Output Assembly: Đượ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 luồng Node-RED của bạn bằng các input node phù hợp. Điều này hữu ích để gửi số serial, ID lô, 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:
- Trong chương trình PLC của bạn, ghi các giá trị vào
O.Data[6]đếnO.Data[256]. - Trong Node-RED trên camera, sử dụng các node dữ liệu đầu vào PLC để đọc các byte đó.
- Sử dụng các giá trị trong logic luồng của bạn (ví dụ: ngưỡng, số serial, tham số điều kiện).
Tham Khảo Nhanh: Bảng Tra Cứu Địa Chỉ Tag
Bảng dưới đây tóm tắt 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ỉ PLC | Hướng | Tên Tín Hiệu | Cách Sử Dụng |
|---|---|---|---|
I.Data[0].0 | Camera → PLC | Trigger Ready | Kiểm tra trước khi trigger |
I.Data[0].1 | Camera → PLC | Trigger Acknowledge | Hủy latch trigger sau khi tín hiệu này lên HIGH |
I.Data[0].2 | Camera → PLC | Recipe Switch Ack | Hủy latch yêu cầu recipe sau khi tín hiệu này lên HIGH |
I.Data[0].7 | Camera → PLC | Online / Startup Complete | Xác nhận camera đã khởi động xong |
I.Data[1].0 | Camera → PLC | Trigger Error | Giám sát lỗi trigger |
I.Data[1].1 | Camera → PLC | Recipe Switch Error | Giám sát lỗi chuyển recipe |
I.Data[1].6 | Camera → PLC | Busy | Không gửi lệnh khi tín hiệu ở HIGH |
I.Data[2].0 | Camera → PLC | Exposure Complete | Ảnh đã được chụp |
I.Data[2].1 | Camera → PLC | Result Available | An toàn để đọc pass/fail |
I.Data[2].2 | Camera → PLC | Inspection Pass | HIGH = Pass, LOW = Fail |
I.Data[8]--I.Data[9] | Camera → PLC | Current Recipe ID | Xác minh recipe sau khi chuyển |
I.Data[12]--I.Data[13] | Camera → PLC | Inspection ID | Liên kết kết quả với trigger |
O.Data[0].0 | PLC → Camera | Trigger Request | Latch HIGH để trigger |
O.Data[0].1 | PLC → Camera | Recipe Switch Request | Latch HIGH để chuyển recipe |
O.Data[4]--O.Data[5] | PLC → Camera | Recipe ID | Đặt số recipe mong muốn |
O.Data[6]+ | PLC → Camera | Custom Data | Dữ liệu do người dùng định nghĩa cho Node-RED |
I.Data[16]+ | Camera → PLC | ROI Results / Custom Data | Kết quả ROI hoặc đầu ra Node-RED tùy chỉnh |