Skip to main content

AI-POWERED DOCS

What do you want to know?

Thiết Lập Giao Tiếp TCP

Hướng dẫn này chỉ cho bạn cách cấu hình giao tiếp TCP giữa camera OV80i và các thiết bị bên ngoài bằng Node-RED. Sử dụng giao tiếp TCP để trao đổi dữ liệu thời gian thực, điều khiển từ xa hoặc tích hợp với các ứng dụng và hệ thống tùy chỉnh.

Video Hướng Dẫn

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

Khi Nào Nên Sử Dụng Giao Tiếp TCP: Truyền dữ liệu thời gian thực, tích hợp ứng dụng tùy chỉnh, giao tiếp hai chiều với hệ thống bên ngoài, trao đổi dữ liệu tần suất cao hoặc khi HTTP/REST API không phù hợp.

Điều Kiện Tiên Quyết

  • Hệ thống camera OV80i đã được thiết lập và kết nối
  • Thiết bị/hệ thống đích có khả năng giao tiếp TCP
  • Kết nối mạng giữa camera và thiết bị đích
  • Hiểu biết cơ bản về địa chỉ IP và số cổng
  • Recipe đang hoạt động đã được cấu hình (hoàn tất thiết lập imaging và inspection)

Bước 1: Xác Minh Cấu Hình Mạng

1.1 Kiểm Tra Địa Chỉ IP Của Camera

  1. Điều hướng đến System Settings
  2. Ghi chú địa chỉ IP của camera (ví dụ: 10.250.0.100)
  3. Xác minh subnet mask và cấu hình mạng

1.2 Xác Nhận Mạng Của Thiết Bị Đích

Đảm bảo tương thích mạng:

  • Cùng subnet: Camera và thiết bị đích phải ở trong cùng dải mạng
  • Các cổng có thể truy cập: Các cổng của thiết bị đích không được bị chặn bởi tường lửa
  • Kết nối mạng: Kiểm tra bằng lệnh ping nếu có thể

1.3 Yêu Cầu Mạng

Yêu CầuCameraThiết Bị ĐíchGhi Chú
Dải IP10.250.0.10010.250.0.xxxPhải cùng subnet
Subnet Mask255.255.255.0255.255.255.0Cấu hình tiêu chuẩn
Truy Cập Cổng49155 (ví dụ)49155 (ví dụ)Tránh các cổng dành riêng
Tường LửaCho phép lưu lượng TCPCho phép lưu lượng TCPCả hai chiều

Bước 2: Truy Cập Trình Chỉnh Sửa Node-RED

2.1 Điều Hướng Đến IO Block

  1. Nhấp vào "IO Block" trong menu breadcrumb của recipe, HOẶC
  2. Chọn "Configure I/O" từ Recipe Editor

2.2 Mở Trình Chỉnh Sửa Node-RED

  1. Nhấp vào Configure IO để vào trình chỉnh sửa flow Node-RED
  2. Xác minh giao diện Node-RED được tải đúng cách

Điểm Kiểm Tra: Bạn sẽ thấy trình chỉnh sửa flow Node-RED với bảng node ở bên trái.

Bước 3: Cấu Hình TCP Input (Nhận Dữ Liệu)

3.1 Thêm Node TCP Input

  1. Tìm node "tcp in" ở bảng bên trái (mục Network)
  2. Kéo node "tcp in" vào canvas flow
  3. Nhấp đúp vào node để cấu hình

3.2 Cấu Hình Cài Đặt TCP Input

Cấu Hình Node:

Cài ĐặtGiá TrịMô Tả
TypeListen onCamera hoạt động như server
Port49155Cổng mà camera lắng nghe
Data modeStreamLuồng dữ liệu liên tục
Data typeUTF8Giao tiếp dựa trên văn bản
Topic(tùy chọn)Phân loại tin nhắn

3.3 Các Bước Cấu Hình TCP Input

  1. Cấu Hình Server:
    • Chọn "Listen on port" (chế độ server)
    • Nhập số cổng (ví dụ: 49155)
  2. Xử Lý Dữ Liệu:
    • Data mode: Chọn "Stream" để nhận dữ liệu liên tục
    • Data type: Chọn "UTF8" cho văn bản hoặc "Buffer" cho dữ liệu nhị phân
  3. Cài Đặt Nâng Cao:
    • New line character: Để trống trừ khi cần dấu phân cách cụ thể
    • Topic: Định danh định tuyến tin nhắn tùy chọn
  4. Nhấp Done để lưu cấu hình

3.4 Hướng Dẫn Chọn Port

Dải PortSử DụngKhuyến Nghị
1-1023Dành riêng cho hệ thốngTránh sử dụng
1024-49151Các port đã đăng kýKiểm tra tình trạng sẵn có
49152-65535Động/riêng tưKhuyến nghị

Bước 4: Cấu Hình TCP Output (Gửi Dữ Liệu)

4.1 Thêm Node TCP Output

  1. Tìm node "tcp out" trong bảng bên trái (phần Network)
  2. Kéo node "tcp out" vào canvas flow
  3. Nhấp đúp vào node để cấu hình

image.png

4.2 Cấu Hình Cài Đặt TCP Output

Cấu hình Node:

Cài ĐặtGiá TrịMô Tả
TypeConnect toCamera hoạt động như client
Host192.168.0.200Địa chỉ IP của thiết bị đích
Port49155Port của thiết bị đích
ModeClientKết nối đi ra

4.3 Các Bước Cấu Hình TCP Output

  1. Cài Đặt Kết Nối:
    • Type: Chọn "Connect to" (chế độ client)
    • Host: Nhập địa chỉ IP của thiết bị đích
    • Port: Nhập số port của thiết bị đích
  2. Tùy Chọn Kết Nối:
    • Mode: Giữ nguyên "Client"
    • End connection: Cấu hình tùy theo trường hợp sử dụng
  3. Định Dạng Dữ Liệu:
    • Base64: Thường vô hiệu hóa đối với dữ liệu văn bản
    • TLS: Chỉ bật khi yêu cầu kết nối bảo mật
  4. Nhấp Done để lưu cấu hình

Bước 5: Tạo Flow Truyền Thông

5.1 Xây Dựng Flow Hoàn Chỉnh

Tạo một flow có thể vừa gửi vừa nhận dữ liệu TCP:

  1. Thêm các node sau vào canvas:
    • Node Inject (để kích hoạt thông điệp)
    • Node Function (để xử lý thông điệp)
    • Node TCP Out (để gửi dữ liệu)
    • Node TCP In (để nhận dữ liệu)
    • Node Debug (để giám sát)

5.2 Cấu Hình Node Inject

  1. Nhấp đúp vào node inject
  2. Cấu hình cài đặt:
    • Name: "Send Message"
    • Payload: Timestamp
    • Topic: (để trống)
  3. Nhấp Done

5.3 Cấu Hình Node Function

Node function sẽ định dạng thông điệp gửi đi:

msg.payload = "Hello from OV80i camera";
return msg;

  1. Nhấp đúp vào node function
  2. Sao chép đoạn code trên vào tab "On Message"
  3. Name: "Format Message"
  4. Nhấp Done

5.4 Kết Nối Các Node

Kết nối các node theo thứ tự sau:

Flow gửi đi:

  • Inject → Function → TCP Out
  • Function → Debug (để xem thông điệp gửi đi)

Flow nhận vào:

  • TCP In → Debug (để xem thông điệp nhận vào)

5.5 Cấu Trúc Flow Hoàn Chỉnh

Flow cuối cùng của bạn nên có:

  • Inject kết nối đến Function
  • Function kết nối đến cả TCP OutDebug
  • TCP In kết nối đến một node Debug riêng biệt

Kết Quả: Bạn có thể gửi thông điệp bằng cách nhấp vào nút inject và xem cả thông điệp gửi đi và nhận vào trong bảng debug.

Bước 6: Cấu Hình Định Dạng Thông Điệp

6.1 Định Nghĩa Định Dạng Thông Điệp

Giữ cấu trúc thông điệp đơn giản:

Loại Thông ĐiệpĐịnh DạngVí Dụ
Văn bản đơn giảnChuỗi văn bản thuần"Hello from camera"
Cập nhật trạng tháiVăn bản kèm thông tin"STATUS: READY"
Giá trị dữ liệuĐịnh dạng key-value"TEMPERATURE: 25.5"

6.2 Ví Dụ Tin Nhắn Tùy Chỉnh

Bạn có thể sửa đổi function node cho các loại tin nhắn khác nhau:

Tin nhắn trạng thái đơn giản:

msg.payload = "Camera Ready";
return msg;

Tin nhắn timestamp:

msg.payload = "Time: " + new Date().toLocaleString();
return msg;

Dữ liệu với giá trị:

msg.payload = "INSPECTION_COUNT: 42";
return msg;

Bước 7: Triển Khai và Kiểm Tra Cấu Hình

7.1 Triển Khai Node-RED Flow

  1. Nhấp vào nút Deploy (góc trên bên phải)
  2. Xác nhận thông báo triển khai thành công
  3. Kiểm tra các chỉ báo trạng thái node:
    • Chấm xanh lá: Kết nối thành công
    • Chấm đỏ: Lỗi kết nối
    • Chấm vàng: Đang thử kết nối

7.2 Kiểm Tra Giao Tiếp TCP

7.2.1 Kiểm Tra Kết Nối Cơ Bản

Sử dụng công cụ dòng lệnh:

# Test TCP connection (Linux/Mac)
telnet [camera-ip] [port]
# Example: telnet 10.250.0.100 49155

# Test with netcat
nc [camera-ip] [port]
# Example: nc 10.250.0.100 49155

Windows PowerShell:

Test-NetConnection -ComputerName 10.250.0.100 -Port 49155

7.2.2 Gửi Tin Nhắn Kiểm Tra

  1. Kết nối đến cổng TCP của camera
  2. Gửi các lệnh kiểm tra:
    • "STATUS" → Sẽ nhận được phản hồi trạng thái
    • "TRIGGER" → Sẽ kích hoạt kiểm tra
    • "INVALID" → Sẽ xử lý lệnh không xác định

7.2.3 Giám Sát Đầu Ra Debug

  1. Mở bảng debug Node-RED (thanh bên phải)
  2. Gửi tin nhắn kiểm tra qua TCP
  3. Xác nhận đầu ra debug hiển thị:
    • Tin nhắn đến
    • Kết quả xử lý
    • Phản hồi đi

7.3 Danh Sách Kiểm Tra Xác Thực

Kiểm TraKết Quả Mong ĐợiTrạng Thái
Kết nối TCPKết nối thành công đến cổng camera
Nhận tin nhắnDebug hiển thị tin nhắn đến
Xử lý tin nhắnFunction node xử lý chính xác
Gửi phản hồiThiết bị đích nhận được phản hồi
Xử lý lỗiTin nhắn không hợp lệ được xử lý một cách phù hợp

Bước 8: Tích Hợp với Hệ Thống Kiểm Tra

8.1 Kết Nối với Trigger Kiểm Tra

Liên kết giao tiếp TCP với quy trình kiểm tra:

  1. Thêm node "All Block Outputs" (nếu chưa có)
  2. Kết nối kết quả kiểm tra với đầu ra TCP
  3. Định dạng dữ liệu kiểm tra để truyền qua TCP

8.2 Tích Hợp Dữ Liệu Kiểm Tra

Function node để xử lý kết quả kiểm tra:

// Get inspection results from All Block Outputs
const results = msg.payload;

// Extract key information
const inspectionSummary = {
result: results.pass ? "PASS" : "FAIL",
timestamp: new Date().toISOString(),
processing_time: results.processing_time,
roi_count: results.roi_results ? results.roi_results.length : 0
};

// Format for TCP transmission
msg.payload = JSON.stringify(inspectionSummary);
return msg;

8.3 Điều Khiển Hai Chiều

Cho phép điều khiển từ xa qua TCP:

// Handle remote commands
const command = msg.payload.toString().toUpperCase();

switch(command) {
case "START_INSPECTION":
// Trigger inspection sequence
global.set("trigger_inspection", true);
msg.payload = "INSPECTION_STARTED";
break;

case "STOP_INSPECTION":
// Stop inspection sequence
global.set("trigger_inspection", false);
msg.payload = "INSPECTION_STOPPED";
break;

case "CHANGE_RECIPE":
// Recipe change logic
msg.payload = "RECIPE_CHANGED";
break;
}

return msg;

Bước 9: Khắc Phục Các Sự Cố Thường Gặp

9.1 Vấn Đề Kết Nối

Vấn ĐềTriệu ChứngGiải Pháp
Không thể kết nốiChỉ báo trạng thái màu đỏKiểm tra địa chỉ IP và port
Kết nối bị ngắtTrạng thái màu vàng không liên tụcXác minh độ ổn định của mạng
Lỗi timeoutPhản hồi bị chậmĐiều chỉnh cài đặt timeout
Xung đột portKết nối bị từ chốiSử dụng số port khác

9.2 Vấn Đề Truyền Dữ Liệu

Vấn ĐềTriệu ChứngGiải Pháp
Không nhận được dữ liệuDebug hiển thị thông báo rỗngKiểm tra cài đặt định dạng dữ liệu
Dữ liệu bị hỏngVăn bản bị lỗi trong debugXác minh mã hóa (UTF8/Buffer)
Mất tin nhắnThiếu tin nhắnKiểm tra độ ổn định của mạng
Vấn đề với tin nhắn lớnDữ liệu bị cắt ngắnSử dụng tin nhắn ngắn hơn

9.3 Kỹ Thuật Debug

Khắc phục sự cố có hệ thống:

  1. Kích hoạt debug node tại mỗi bước
  2. Giám sát log Node-RED để phát hiện lỗi
  3. Kiểm tra với TCP client đơn giản trước
  4. Xác minh kết nối mạng bằng ping

Thành Công! Hệ Thống TCP Communication Của Bạn Đã Sẵn Sàng

Hệ thống TCP communication của bạn hiện có thể:

  • Gửi và nhận dữ liệu giữa camera và các thiết bị bên ngoài
  • Xử lý tin nhắn đơn giản cho giao tiếp cơ bản
  • Giám sát luồng dữ liệu bằng debug node
  • Xử lý giao tiếp mạng cơ bản cho các ứng dụng của bạn

Bảo Trì Thường Xuyên

Kiểm Tra Hệ Thống Định Kỳ

  • Giám sát độ ổn định kết nối theo thời gian
  • Xác minh việc truyền dữ liệu hoạt động ổn định
  • Kiểm tra log debug để phát hiện các mẫu lỗi
  • Kiểm tra giao tiếp sau khi có thay đổi về mạng

Các Bước Tiếp Theo

Sau khi thiết lập TCP communication cơ bản:

  1. Kiểm tra với các hệ thống bên ngoài bằng kết nối đã thiết lập
  2. Tùy chỉnh định dạng tin nhắn theo nhu cầu cụ thể của bạn
  3. Thêm logic phức tạp hơn khi yêu cầu của bạn tăng lên
  4. Xem xét các phương thức giao tiếp khác nếu TCP không đáp ứng đủ nhu cầu

🔗 Xem Thêm

Đối với ứng dụng có thông lượng cao:

  1. Giảm tần suất tin nhắn
  2. Gộp nhiều tin nhắn
  3. Sử dụng định dạng binary cho dữ liệu lớn
  4. Triển khai nén dữ liệu

Kỹ Thuật Debug

Khắc phục sự cố có hệ thống:

  1. Kích hoạt debug node tại mỗi bước
  2. Giám sát log Node-RED để phát hiện lỗi
  3. Sử dụng công cụ giám sát mạng (Wireshark)
  4. Kiểm tra với TCP client đơn giản trước

Thành Công! Hệ Thống TCP Communication Của Bạn Đã Sẵn Sàng

Hệ thống TCP communication của bạn hiện có thể:

  • Gửi và nhận dữ liệu giữa camera và các thiết bị bên ngoài
  • Xử lý lệnh để điều khiển từ xa
  • Truyền kết quả kiểm tra trong thời gian thực
  • Xử lý lỗi một cách linh hoạt với cơ chế xử lý lỗi phù hợp
  • Tích hợp với các hệ thống sản xuất cho các quy trình tự động

Bảo Trì Liên Tục

Kiểm Tra Hệ Thống Định Kỳ

  • Giám sát tính ổn định của kết nối theo thời gian
  • Xác minh tính toàn vẹn dữ liệu trong quá trình sản xuất
  • Cập nhật cấu hình bảo mật khi cần thiết
  • Tối ưu hóa hiệu suất dựa trên các mẫu sử dụng

Giám Sát Hiệu Suất

  • Theo dõi thông lượng tin nhắn và độ trễ
  • Giám sát tỷ lệ lỗi và các lỗi kết nối
  • Phân tích các mẫu dữ liệu để tìm cơ hội tối ưu hóa

Các Bước Tiếp Theo

Sau khi thiết lập giao tiếp TCP:

  1. Tích hợp với các hệ thống bên ngoài bằng giao thức đã thiết lập
  2. Triển khai xử lý lỗi toàn diện cho môi trường sản xuất
  3. Thiết lập ghi log và giám sát tình trạng hệ thống
  4. Cân nhắc tăng cường bảo mật khi triển khai sản xuất

🔗 Xem Thêm