# Kết nối Datasource đầu vào

> Truyền dữ liệu cảm biến và quy trình vào runtime Xisom — thêm một nguồn OPC-UA, MQTT hoặc CSV, ánh xạ tag, ghép cặp mô hình, bật và bắt đầu suy luận.

Một **datasource đầu vào** là một nguồn dữ liệu cảm biến logic — 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 bật nó để bắt đầu suy luận.

## 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).
- **PLC** — Modbus TCP và các giao thức công nghiệp khác.

**Một đầu vào được bật tại một thời điểm**

Tối đa **một** datasource đầu vào có thể được bật tại bất kỳ thời điểm nào. Bật một nguồn mới
sẽ tự động tắt nguồn trước đó. Điều này giữ runtime gắn với một luồng duy nhất,
có thể dự đoán được.

## Đi qua: thêm một nguồn và bắt đầu suy luận

1. ### Mở trang Datasources

   Trong bảng điều khiển, vào **Datasources → Input**, rồi bấm **+ Create**.

2. ### 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.

   
     
**OPC-UA**

     | Trường | Ví dụ |
     |-------|---------|
     | Endpoint | `opc.tcp://your-opcua-host:4840/factory/line1` |
     | Security policy | `None` (hoặc một profile `Basic256Sha256` với chứng chỉ) |
     | Authentication | `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ặc
     `ns=2;s=Temperature` (dạng chuỗi).

     
     
**MQTT**

     | Trường | Ví dụ |
     |-------|---------|
     | Broker URL | `mqtt://your-broker-host:1883` (hoặc `mqtts://` cho TLS) |
     | Topic | `factory/line1/temp` |
     | JSON path | `value` (trích số đọc dạng số từ tin nhắn) |
     | Username / password | tùy chọn (bị che khi lưu) |

     
     
**CSV**

     | Trường | Ví dụ |
     |-------|---------|
     | File | một tập dữ liệu đã ghi để phát lại |
     | Columns | 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.

     
   

3. ### Á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.

   
**Ánh xạ kênh phải đầy đủ**

   Cung cấp đúng một tag cho mỗi kênh, không để trống chỗ nào. Việc xác thực sẽ từ chối bật nếu
   bất kỳ kênh nào chưa được ánh xạ hoặc bị điền quá. 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ỏ qua chúng khi định nghĩa kênh.
   

4. ### 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 count` phải khớp ở
   cả hai phía — và từ chối ghép cặp nếu chúng khác nhau.

5. ### Bậ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 / Modbus)
   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.

   Bật **không** tự khởi động truyền — bấm **Start** để bắt đầu suy luận.

## Kiểm tra kết nối trước

Trước khi bậ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.

## 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

| Triệu chứng | Nguyên nhân khả dĩ |
|---------|--------------|
| Bậ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. |
| Bậ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. |

Xem runbook [Khắc phục sự cố](/vi/troubleshooting/) để biết thêm.

## Bước tiếp theo

  - [Gửi kết quả ra ngoài](/vi/configure/output-datasources/) — Ghi dự đoán ngược về một PLC, broker hoặc tệp.
  - [Triển khai một mô hình](/configure/models/) — Tải lên, ghép cặp và kích hoạt mô hình.
