Vị trí 1 – Chuyển đổi Analog Input AD1 sang dạng %
Dưới đây là tất cả các đoạn code xử lý S_IO_AD1, có trích dẫn đầy đủ từng vị trí từ file của bạn.
✅ 1. Vị trí 1 – Chuyển đổi Analog Input AD1 sang dạng %
Đây là nơi S_IO_AD1 được xử lý trực tiếp:
➡ Đây là bước scale giá trị RAW 0…32767 → 0…10000 (% x 100).
Ý nghĩa:
| Raw | W_in_AD1_int | % |
|---|---|---|
| 0 | 0 | 0% |
| 16384 | ≈5000 | 50% |
| 32767 | ≈10000 | 100% |
✅ 2. Vị trí 2 – AD1 dùng để phát hiện lỗi tín hiệu (đứt dây / mất nguồn)
Raw min cho AD1 được định nghĩa:
Logic kiểm tra lỗi tín hiệu AD1:
➡ Nếu tín hiệu nhỏ hơn 200 → coi như lỗi tín hiệu Feedback 1 (đứt dây, mất nguồn 4–20mA).
✅ 3. Vị trí 3 – AD1 là Feedback của van
Xác nhận trong code:
➡ AD1 chính là feedback của van điều khiển số 1.
✅ 4. Vị trí 4 – Kiểm tra ngưỡng min/max của van
Trong quá trình điều khiển:
➡ AD1 được dùng để xác định van đã đóng hết hoặc mở hết.
✅ 5. Vị trí 5 – Dùng trong thuật toán điều khiển xung (INC/DEC)
Sai số điều khiển:
Trong thuật toán xung:
➡ AD1 là feedback chính dùng để điều khiển van theo xung.
✅ 6. Vị trí 6 – Cảnh báo tổng hợp
AD1 tham gia vào báo lỗi tổng hợp:
➡ Nếu AD1 lỗi hoặc van kẹt → báo lỗi.
🎯 TỔNG KẾT – Toàn bộ chức năng của S_IO_AD1
| Chức năng | Mô tả |
|---|---|
| ➤ Scale Analog | Chuyển raw → % |
| ➤ Kiểm tra tín hiệu lỗi | Nếu <200 → lỗi ADC1 |
| ➤ Feedback van | Dùng làm tín hiệu phản hồi chính |
| ➤ Kiểm soát đóng/mở van | So sánh với min/max |
| ➤ Điều khiển xung INC/DEC | Tạo sai số cho PID dạng xung |
| ➤ Tham gia báo lỗi | ADC1 lỗi / van kẹt |
📌 Nếu bạn muốn, tôi có thể phân tích tiếp:
-
Code xử lý S_IO_AD2 / AD3 / AD4
-
Toàn bộ thuật toán điều khiển xung
-
Tìm sai trong thuật toán feedback
-
Vẽ sơ đồ luồng của đoạn điều khiển
Chỉ cần bạn nói tiếp.

