Bỏ qua để đến nội dung

Kết nối nguồn dữ liệu đầu vào

Một nguồn dữ liệu đầu vào là một nguồn dữ liệu cảm biến logic duy nhất — một endpoint OPC-UA, một nhóm topic MQTT, một tệp phát lại CSV, v.v. Mỗi nguồn là một adapter có kiểu với thiết lập kết nối và danh sách tag riêng. Bạn ánh xạ các tag của nó tới các kênh đầu vào của mô hình, rồi chạy nó qua một luồng.

Màn hình Data Sources liệt kê các adapter đầu vào OPC-UA, MQTT và CSV cùng trạng thái kết nối Màn hình Data Sources liệt kê các adapter đầu vào OPC-UA, MQTT và CSV cùng trạng thái kết nối
Màn hình Data Sources — thêm nguồn và ánh xạ tag.
  • OPC-UA — đăng ký các tag từ bất kỳ máy chủ tuân thủ nào.
  • MQTT — tự mang broker của bạn, hỗ trợ TLS.
  • CSV — phát lại dữ liệu đã ghi từ một tệp (rất phù hợp để thử nghiệm).

Hướng dẫn từng bước: thêm một nguồn và bắt đầu suy luận

Phần tiêu đề “Hướng dẫn từng bước: thêm một nguồn và bắt đầu suy luận”
  1. Trong bảng điều khiển, vào Datasources → Input, rồi bấm + Create.

  2. Chọn loại nguồn. Biểu mẫu thích ứng theo giao thức bạn chọn — điền vào endpoint, thông tin xác thực, và bất kỳ trường đặc thù giao thức nào. Các trường bí mật (mật khẩu, token) bị che thành *** sau khi lưu.

    TrườngVí dụ
    Endpointopc.tcp://your-opcua-host:4840/factory/line1
    Chính sách bảo mậtNone (hoặc một profile Basic256Sha256 với chứng chỉ)
    Xác thựcAnonymous (hoặc tên người dùng/mật khẩu)

    Các tag được tham chiếu bằng NodeId, ví dụ ns=2;i=2 (dạng số) hoặc ns=2;s=Temperature (dạng chuỗi).

  3. Lưu biểu mẫu, rồi bấm Map tag trên hàng của datasource. Ngăn kéo hiển thị một hàng cố định cho mỗi channel, từ Ch 0 đến Ch N-1, trong đó N là Tag count của datasource. Mỗi channel đưa vào một đầu vào của mô hình. Đặt Tag count và Window size (bao nhiêu mẫu liên tiếp mô hình tiêu thụ mỗi lần dự đoán) trong biểu mẫu datasource cho khớp với mô hình bạn sẽ chạy.

    • Mở một hàng và nhập hoặc chọn tag. Xoá tag để bỏ map channel đó.
    • Bấm Duyệt tag để tìm tag từ nguồn, rồi bấm Điền các channel trống để đặt chúng vào. Nó chỉ điền các hàng trống, từ channel thấp nhất, theo thứ tự nguồn trả về. Nó bỏ qua tag đã map và không bao giờ ghi đè một hàng. Các hàng đã điền được đánh dấu tự điền cho đến khi bạn lưu. Hủy sẽ bỏ chúng.
    • Bấm Lưu. Bạn có thể lưu một mapping chưa đầy đủ và hoàn thành sau; một thông báo cho biết còn bao nhiêu channel chưa map.

    Chỉ bật được luồng khi mọi channel đã được map và không tag nào dùng hai lần. Tag đã lưu trên một channel mà datasource không còn nữa sẽ được đánh dấu trong ngăn kéo và bị xoá khi bạn lưu. Các tag dạng chuỗi (ví dụ trạng thái RUN/STOP) không thể dùng làm đặc trưng dạng số — hãy bỏ chúng ra.

  4. Để chạy datasource này, tạo một luồng gắn đầu vào này với một mô hình và các đầu ra, rồi bật luồng và bấm Start.

Biểu mẫu cấu hình chỉ hiển thị các trường liên quan đến lựa chọn bạn đã thực hiện. Trên tab MQTT, các trường TLS (chứng chỉ CA, chứng chỉ/khóa client, cho phép không tin cậy) chỉ xuất hiện khi TLS được bật. Trên tab OPC UA, các trường chứng chỉ/khóa client chỉ xuất hiện với xác thực Certificate, còn tên người dùng/mật khẩu chỉ xuất hiện với xác thực Username/Password. Mỗi công tắc bật/tắt trong biểu mẫu hiển thị trạng thái bằng dấu tích hoặc dấu x bên trong track, chứ không chỉ dựa vào màu sắc.

Mọi giao thức mạng đều có thể chạy ở ba tư thế bảo mật. Hãy chọn tư thế cao nhất mà endpoint của bạn hỗ trợ — Insecure chỉ dành cho công việc trên bàn thử và trong phòng lab, không bao giờ dùng cho mạng nhà máy.

Các chứng chỉ được tham chiếu bên dưới nằm trong /opt/aiboard/certs/ trên box, được gắn chỉ-đọc vào backend tại /certs (bật bằng AIBOARD_CERTS_ENABLED=1 trong tệp /opt/aiboard/.env). Các trường cấu hình chỉ chấp nhận các đường dẫn nằm dưới /certs — bất kỳ thứ gì ngoài vùng cách ly (jail) đều bị từ chối. Chỉ sao chép chứng chỉ CA và cặp chứng chỉ/khóa client sang box; khóa riêng của CA và các khóa của broker/máy chủ không bao giờ được rời khỏi máy chủ PKI của bạn.

TrườngGiá trị
Security policyNone
Message security modeNone
AuthenticationAnonymous

Không mã hóa, không danh tính — bất kỳ ai trên mạng đều có thể đọc giá trị tag và giả mạo máy chủ. Chỉ chấp nhận được đối với phòng lab demo cục bộ hoặc một bàn thử cách ly mạng (air-gapped).

TrườngGiá trị
Broker URLmqtt://broker-host:1883
TLStắt
Tên người dùng / mật khẩuđể trống (ẩn danh)

Văn bản thuần và ẩn danh — bất kỳ ai trên phân đoạn mạng đều có thể đọc và giả mạo. Chỉ dùng trong phòng lab.

CSV dựa trên tệp — không có kênh mạng nào để bảo vệ. Các biện pháp bảo vệ nằm ở mức hệ thống tệp và đã được thực thi sẵn:

  • Các đường dẫn tệp bị cách ly dưới thư mục gốc CSV (/data/csv trong container, AIBOARD_CSV_ROOT); các nỗ lực đi vượt thư mục (path-traversal) bị từ chối.
  • Hãy gắn các tập dữ liệu phát lại ở chế độ chỉ-đọc, và giữ volume CSV trên box — việc xuất nó ra khỏi box là một quyết định quản trị dữ liệu, không phải một thiết lập của datasource.

Trước khi bật một luồng, dùng Test Connection trên nguồn. Nó xác minh các giá trị biểu mẫu trực tiếp chạm tới được endpoint, để bạn phát hiện sai host hay thông tin xác thực trước khi đấu nối tag.

MQTT: cửa sổ hết hạn, kết nối lại và từ chối giá trị không hữu hạn

Phần tiêu đề “MQTT: cửa sổ hết hạn, kết nối lại và từ chối giá trị không hữu hạn”

MQTT đẩy dữ liệu đọc; suy luận lấy một mẫu mỗi tick. Một giá trị tag được cache sẽ hết hạn sau clamp(50 × Chu kỳ lấy mẫu, 5s, 60s), và không bao giờ sớm hơn một chu kỳ lấy mẫu — ở mức mặc định 100 ms là 5 giây. Qua khỏi khoảng thời gian đó, một tag cũ sẽ gây ra lỗi đọc và dừng suy luận, giống như khi cảm biến ngừng phát tín hiệu.

Khi mất kết nối broker, adapter kết nối lại theo cơ chế backoff theo cấp số nhân và đăng ký lại các topic đã ánh xạ ở mỗi lần thử, cho đến khi luồng bị tắt.

Payload NaN và Infinity (kể cả tràn số, ví dụ 1e400) bị từ chối ngay tại bộ phân tích và không bao giờ đến được mô hình. Một topic publish NaN như một giá trị báo hiệu “không có phép đo” sẽ làm dừng suy luận theo thiết kế — cùng một quy tắc như khi cảm biến ngừng phát tín hiệu.

Mỗi datasource có giới hạn tốc độ độc lập và một bộ đệm có giới hạn. Khi một nguồn sản sinh nhanh hơn mức runtime tiêu thụ, backpressure được báo cáo lên bảng điều khiển để bạn phát hiện tình trạng quá tải.

Triệu chứngNguyên nhân khả dĩ
Bật luồng bị quay lại với “Could not connect to the datasource”Endpoint không truy cập được, sai thông tin xác thực, hoặc tường lửa — xác minh bằng Test Connection.
Bật luồng thất bại với exactly_N_tags_requiredMột số channel chưa được map. Mở Map tag và điền mọi hàng.
Mô hình không có trong danh sách mô hình của luồngInput shape của nó không khớp window size × tag count của datasource này.
Luồng báo đang bật nhưng không có dự đoánTheo thiết kế — bấm Start trong cột Suy luận của luồng.
Ánh xạ tag thất bại với thông báo tag_outside_subscription_*Topic của tag nằm ngoài Base Topic của datasource — mở rộng Base Topic hoặc sửa đường dẫn tag. Lỗi ánh xạ tag hiển thị dưới dạng câu văn, không phải mã thô.
Suy luận dừng sau khi chạy tốt một thời gianMột topic MQTT đã ánh xạ vượt quá cửa sổ hết hạn (publisher chậm) — xem phần hết hạn ở trên.

Xem runbook Khắc phục sự cố để biết thêm.