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.
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 một luồng dùng datasource này được bật, 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”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đếnCh 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. -
Tiếp theo: tạo một luồng
Phần tiêu đề “Tiếp theo: tạo một luồng”Để 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.
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 /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.
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 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.
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ĩ |
|---|---|
| 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_required | Mộ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ồng | Input 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án | Theo 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 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.