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 kích hoạt nó để bắt đầu suy luận.
Các nguồn đầu vào được hỗ trợ
Phần tiêu đề “Các nguồn đầu vào được hỗ trợ”- 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”-
Mở trang Datasources
Phần tiêu đề “Mở trang Datasources”Trong bảng điều khiển, vào Datasources → Input, rồi bấm + Create.
-
Chọn loại adapter và điền kết nối
Phần tiêu đề “Chọn loại adapter và điền kết nối”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ường Ví dụ Endpoint opc.tcp://your-opcua-host:4840/factory/line1Chính sách bảo mật None(hoặc một profileBasic256Sha256với chứng chỉ)Xác thực Anonymous(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ặcns=2;s=Temperature(dạng chuỗi).Trường Ví dụ Broker URL mqtt://your-broker-host:1883(hoặcmqtts://cho TLS)Base Topic factory/line1/#— dùng để khám phá qua Browse/Test Connection; để trống sẽ dùng#(toàn bộ broker)Client ID tùy chọn (để trống sẽ tự sinh một id duy nhất) Tên người dùng / mật khẩu tùy chọn (bị che khi lưu) Tên tag là đường dẫn topic đầy đủ (ví dụ
factory/line1/temp). Khi datasource đã được kích hoạt và đang chạy, adapter chỉ đăng ký các tag đã ánh xạ của nó — không phải wildcard của Base Topic — nên broker chỉ chuyển tiếp những gì bạn đã ánh xạ. Dùng Browse để khám phá tag từ lưu lượng quan sát được trên Base Topic (MQTT không có API liệt kê topic, nên adapter chờ một lúc ngắn để nhận tin nhắn); một topic không bao giờ publish trong khoảng thời gian đó cần một tag nhập tay. Payload dạng chuỗi (ví dụ topic trạng tháiRUN/STOP) không bao giờ trở thành tag.Trường Ví dụ Tệp một tập dữ liệu đã ghi để phát lại Cột các cột cảm biến để đưa vào làm kênh CSV chỉ dùng để phát lại — hữu ích để thử một mô hình mà không cần kết nối nhà máy trực tiếp.
-
Ánh xạ tag tới kênh của mô hình
Phần tiêu đề “Ánh xạ tag tới kênh của mô hình”Liệt kê các tag bạn muốn truyền và gán mỗi tag tới một kênh đầu vào được đánh số (
0,1,2, …). Mỗi kênh đưa vào một đầu vào của mô hình. Đặt window size — bao nhiêu mẫu liên tiếp mô hình tiêu thụ mỗi lần dự đoán — để khớp với mô hình bạn sẽ ghép cặp. -
Lưu và ghép cặp một mô hình
Phần tiêu đề “Lưu và ghép cặp một mô hình”Lưu datasource. Sau đó ghép cặp nó với một mô hình bạn đã tải lên dưới Models. Nền tảng chạy một kiểm tra tương thích —
window size × feature countphải khớp ở cả hai phía — và từ chối ghép cặp nếu chúng khác nhau. -
Kích hoạt, rồi bắt đầu
Phần tiêu đề “Kích hoạt, rồi bắt đầu”Bật Enable trên hàng. Việc này xác thực cấu hình, nạp mô hình đã ghép cặp, và kết nối adapter. Cái bắt tay kết nối (OPC-UA / MQTT) xảy ra ở đây, nên một sự cố mạng hoặc thông tin xác thực sẽ lộ ra ngay và quay hàng về lại Disabled kèm một thông báo lỗi.
Kích hoạt không tự khởi động truyền — bấm Start để bắt đầu suy luận.
Trường điều kiện và công tắc
Phần tiêu đề “Trường điều kiện và công tắc”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.
Chế độ bảo mật: Insecure, TLS và Secure
Phần tiêu đề “Chế độ bảo mật: Insecure, TLS và Secure”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 thư mục certs/ của gói cài đặt, được
gắn chỉ-đọc vào backend tại /certs (bật bằng AIBOARD_CERTS_ENABLED=1 trong tệp .env
của gói). 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.
OPC-UA
Phần tiêu đề “OPC-UA”| Trường | Giá trị |
|---|---|
| Security policy | None |
| Message security mode | None |
| Authentication | Anonymous |
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ường | Giá trị |
|---|---|
| Security policy | Basic256Sha256 |
| Message security mode | Sign hoặc SignAndEncrypt |
| Authentication | Username/Password |
| Server CA certificate | /certs/ca/ca.crt |
Kênh được ký/mã hóa và máy chủ chứng minh danh tính của nó dựa trên CA bạn cung cấp. Hãy để Accept untrusted certificates ở trạng thái tắt — bật nó lên sẽ âm thầm vô hiệu hóa việc kiểm tra danh tính máy chủ.
| Trường | Giá trị |
|---|---|
| Security policy | Basic256Sha256 (hoặc Aes256_Sha256_RsaPss nếu máy chủ hỗ trợ) |
| Message security mode | SignAndEncrypt |
| Authentication | Certificate |
| Server CA certificate | /certs/ca/ca.crt |
| Client certificate / key | /certs/clients/opcua-user.crt · /certs/clients/opcua-user.key |
Xác thực lẫn nhau: box chứng minh danh tính của nó bằng một chứng chỉ client và máy chủ được xác minh dựa trên CA của bạn. Hãy đăng ký/tin cậy chứng chỉ client trên máy chủ OPC-UA trước, nếu không cái bắt tay sẽ bị từ chối ở đó.
| Trường | Giá trị |
|---|---|
| Broker URL | mqtt://broker-host:1883 |
| TLS | tắ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.
| Trường | Giá trị |
|---|---|
| Broker URL | mqtts://broker-host:8884 |
| TLS | bật |
| CA certificate | /certs/ca/ca.crt |
| Tên người dùng / mật khẩu | tài khoản broker (bị che sau khi lưu) |
Broker chứng minh danh tính của nó qua TLS; box xác thực bằng thông tin đăng nhập. Hãy để Allow untrusted certificates ở trạng thái tắt trong sản xuất — nó chỉ tồn tại để gỡ vướng cho các thiết lập trên bàn thử với broker tự ký.
| Trường | Giá trị |
|---|---|
| Broker URL | mqtts://broker-host:8883 |
| TLS | bật |
| CA certificate | /certs/ca/ca.crt |
| Client certificate / key | /certs/clients/mqtt-client.crt · /certs/clients/mqtt-client.key |
TLS lẫn nhau: cả hai bên đều xuất trình chứng chỉ. Hãy kết hợp với một ACL broker giới hạn client này đúng vào các topic nó cần — box chỉ đăng ký các tag đã ánh xạ, nên một ACL chặt chẽ không tốn thêm chi phí nào.
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/csvtrong 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.
Kiểm tra kết nối trước
Phần tiêu đề “Kiểm tra kết nối trước”Trước khi kích hoạt, 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 / SamplingHz, 5s, 60s) — ở mức mặc định 10 Hz 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 datasource bị vô hiệu hóa.
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.
Giới hạn tốc độ và đệm
Phần tiêu đề “Giới hạn tốc độ và đệm”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.
Nếu có gì đó sai
Phần tiêu đề “Nếu có gì đó sai”| Triệu chứng | Nguyên nhân khả dĩ |
|---|---|
Kích hoạt thất bại với model_not_paired | Hãy ghép cặp một mô hình với datasource trước. |
| Kích hoạt bị quay lại khi kết nối | 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. |
| Hàng báo Enabled nhưng không có dự đoán | Theo thiết kế — bấm Start để bắt đầu truyền. |
| Ghép cặp bị từ chối | window size × feature count không khớp giữa mô hình và datasource. |
Á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 gian | Mộ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.