Lỗi thường gặp khi cấu hình USS trên S7-1200 và cách khắc phục
PLC20 tháng 7, 2026· 12 phút đọc · 19 lượt xem

Lỗi thường gặp khi cấu hình USS trên S7-1200 và cách khắc phục

Tra cứu mã lỗi USS trên S7-1200 (818A, 818B, 818C...): nguyên nhân, cách khắc phục và checklist debug nhanh

Nếu bạn đã triển khai giao tiếp USS theo hướng dẫn nhưng vẫn gặp lỗi truyền thông với biến tần, bài viết này sẽ giúp bạn tra cứu nhanh các mã lỗi STATUS phổ biến, hiểu nguyên nhân, và biết cách khắc phục — dựa trên bảng mã lỗi chính thức trong tài liệu kỹ thuật của Siemens.

1. Cách đọc mã lỗi STATUS

Tất cả các lệnh USS (USS_PORT, USS_DRV, USS_RPM, USS_WPM) trả về mã lỗi qua tham số STATUS dạng Word, hiển thị theo định dạng hex W#16#..... Khi ERROR = TRUE, giá trị STATUS mới có hiệu lực.

Lưu ý quan trọng về nơi lỗi hiển thị: lỗi giao tiếp (communication error) chỉ được báo qua USS_PORT, không hiển thị trên USS_DRV. Vì vậy, nếu mạng RS485 đấu sai điện trở đầu cuối, có thể xảy ra tình huống biến tần đã chuyển sang trạng thái RUN nhưng USS_DRV lại trả về toàn giá trị 0 ở các ngõ ra — trong trường hợp này, bạn chỉ phát hiện được lỗi qua USS_PORT, chứ không thấy trên USS_DRV.

2. Bảng mã lỗi STATUS đầy đủ

Mã lỗi (W#16#)

Nguyên nhân

Cách khắc phục

8180

Độ dài bản tin phản hồi từ biến tần không khớp với số ký tự thực nhận

Kiểm tra tham số PZD_LEN đã cấu hình đúng khớp với cấu hình PZD trên biến tần chưa

8181

Tham số VALUE không phải kiểu Word, Real hoặc DWord

Kiểm tra lại kiểu dữ liệu gán cho VALUE trong lệnh USS_RPM/USS_WPM

8182

Chương trình gửi kiểu Word cho tham số, nhưng biến tần phản hồi kiểu DWord/Real

Đối chiếu lại kiểu dữ liệu của thông số đang đọc/ghi trong tài liệu biến tần

8183

Ngược lại với 8182 — chương trình gửi DWord/Real, biến tần phản hồi Word

Đối chiếu lại kiểu dữ liệu của thông số đang đọc/ghi trong tài liệu biến tần

8184

Bản tin phản hồi từ biến tần có checksum sai

Kiểm tra chất lượng đường truyền RS485, nhiễu điện, hoặc cáp lỏng

8185

Địa chỉ biến tần không hợp lệ (địa chỉ hợp lệ: 1-16)

Kiểm tra lại tham số DRIVE trên lệnh USS_DRV và địa chỉ đã cài trên biến tần

8186

Giá trị đặt tốc độ (SPEED_SP) ngoài phạm vi cho phép (-200% đến 200%)

Kiểm tra lại giá trị đưa vào SPEED_SP trong chương trình

8187

Biến tần phản hồi sai địa chỉ so với yêu cầu đã gửi

Kiểm tra xung đột địa chỉ giữa các biến tần trên cùng mạng USS

8188

Số từ PZD cấu hình không hợp lệ (chỉ chấp nhận 2, 4, 6 hoặc 8)

Sửa lại tham số PZD_LEN cho đúng giá trị hợp lệ

8189

Tốc độ baud (BAUD) cấu hình không hợp lệ

Kiểm tra lại giá trị BAUD trên lệnh USS_PORT

818A

Kênh yêu cầu tham số đang bận xử lý một yêu cầu khác của cùng biến tần

Không gọi liên tiếp USS_RPM/USS_WPM ngay sau khi DONE vừa lên — cần chờ đủ chu kỳ xử lý

818B

Biến tần không phản hồi dù đã thử lại nhiều lần

Kiểm tra đấu nối RS485, điện trở đầu cuối, địa chỉ và tốc độ baud trên biến tần

818C

Biến tần trả về lỗi mở rộng khi thao tác đọc/ghi thông số

Xem thêm giá trị USS_Extended_Error và tra cứu tài liệu của chính biến tần

818D

Biến tần từ chối truy cập (illegal access) khi đọc/ghi thông số

Kiểm tra quyền truy cập thông số đó trên biến tần — có thể bị khóa hoặc giới hạn

818E

Biến tần chưa được khởi tạo (USS_DRV chưa từng được gọi cho biến tần này)

Đảm bảo gọi USS_DRV ít nhất một lần cho địa chỉ biến tần đó trước khi gọi USS_RPM/USS_WPM

80Ax - 80Fx

Lỗi trả về từ các lệnh PtP nền tảng mà thư viện USS sử dụng

Tra cứu thêm mã lỗi trong tài liệu về lệnh Point-to-Point (PtP)

3. Lỗi 818A: bẫy phổ biến khi đọc thông số liên tiếp

Đây là lỗi rất hay gặp với người mới dùng USS_RPM. Nguyên nhân sâu xa: sau khi DONE của USS_RPM lên TRUE (đọc xong một thông số), kênh đọc dữ liệu chưa sẵn sàng ngay lập tức cho yêu cầu tiếp theo — biến tần cần một "bản tin PKW rỗng" được gửi và xác nhận trước khi kênh tham số mới thực sự khả dụng trở lại. Nếu chương trình gọi USS_RPM hoặc USS_WPM ngay lập tức cho cùng biến tần đó, kết quả sẽ là lỗi 818A .

Cách khắc phục: thêm một khoảng chờ hợp lý (dựa theo vài lần gọi USS_DRV) giữa các lần đọc/ghi thông số liên tiếp trên cùng một biến tần, thay vì gọi dồn dập ngay sau khi DONE báo hoàn tất.

4. Cách bắt và lưu lại mã lỗi từ USS_PORT (vì chỉ hợp lệ 1 vòng quét)

Giá trị STATUS và USS_Extended_Error của USS_PORT chỉ hợp lệ trong đúng một vòng quét tại thời điểm ERROR = TRUE. Nếu không xử lý kịp, bạn sẽ bỏ lỡ thông tin lỗi ngay khi nó xảy ra. Tài liệu khuyến nghị cách xử lý sau:

  1. Dùng tiếp điểm của bit ERROR trên USS_PORT làm điều kiện kích hoạt.

  2. Khi ERROR chuyển lên TRUE, sao chép ngay giá trị STATUS và USS_Extended_Error vào các vùng nhớ M riêng (ví dụ "LastPortStatus", "LastExtError") để xử lý ở các vòng quét tiếp theo.

Với các mã lỗi 8180, 8184, 8187, 818B, biến USS_Extended_Error sẽ chứa số hiệu của biến tần (drive number) đang gặp lỗi — rất hữu ích để xác định nhanh đúng biến tần nào đang có vấn đề trên mạng nhiều thiết bị.

5. Kiểm tra lại cấu hình chung nếu gặp lỗi kết nối liên tục

Nếu bạn gặp lỗi 818B (không phản hồi) hoặc các lỗi liên quan đến checksum/độ dài bản tin, hãy rà soát lại toàn bộ các yêu cầu cấu hình cơ bản theo danh sách sau — đây là nguồn gốc phổ biến nhất của lỗi giao tiếp USS trong thực tế:

  • Biến tần đã được cấu hình dùng 4 từ PKW chưa?

  • Số từ PZD (2/4/6/8) trên biến tần có khớp với tham số PZD_LEN trên USS_DRV không?

  • Tốc độ baud trên tất cả biến tần có khớp với tham số BAUD trên USS_PORT không?

  • Biến tần đã được đặt ở chế độ điều khiển từ xa (remote control) chưa?

  • Tần số đặt (frequency set-point) trên biến tần đã được cấu hình lấy từ USS trên COM Link chưa?

  • Địa chỉ biến tần (1-16) có khớp với tham số DRIVE trên USS_DRV tương ứng không?

  • Chiều điều khiển động cơ (direction control) đã cấu hình đúng cực tính theo giá trị đặt chưa?

  • Mạng RS485 đã được đấu điện trở đầu cuối (termination) đúng cách chưa?

Chỉ cần một trong các mục trên bị bỏ sót, hệ thống thường sẽ báo lỗi giao tiếp dù phần đấu dây vật lý hoàn toàn đúng.

6. Điều khiển chiều quay: lỗi logic dễ nhầm giữa DIR và SPEED_SP

Một lỗi không hiển thị qua mã STATUS nhưng khiến động cơ chạy sai chiều là do hiểu nhầm cách hai tham số DIR và SPEED_SP phối hợp với nhau. Với giả định động cơ đã đấu đúng chiều thuận:

SPEED_SP

DIR

Chiều quay thực tế

> 0

0

Ngược (Reverse)

> 0

1

Thuận (Forward)

< 0

0

Thuận (Forward)

< 0

1

Ngược (Reverse)

Nói cách khác: dấu của SPEED_SP và giá trị DIR cùng quyết định chiều quay cuối cùng, không phải chỉ riêng DIR. Đây là điểm cần lưu ý khi debug hiện tượng "động cơ quay ngược chiều mong muốn" dù chương trình có vẻ đúng logic.

7. Checklist debug nhanh khi gặp lỗi USS

  1. Xác định lỗi hiển thị ở đâu — USS_PORT (lỗi giao tiếp vật lý) hay USS_DRV/USS_RPM/USS_WPM (lỗi logic yêu cầu)?

  2. Tra bảng mã STATUS để xác định nhóm nguyên nhân (cấu hình sai tham số, phần cứng không phản hồi, hay lỗi từ chính biến tần).

  3. Kiểm tra USS_Extended_Error nếu mã lỗi thuộc nhóm 8180/8184/8187/818B/818C để xác định đúng biến tần hoặc nguyên nhân cụ thể từ nhà sản xuất biến tần.

  4. Rà soát checklist cấu hình chung ở mục 5 nếu lỗi xảy ra liên tục thay vì ngẫu nhiên.

  5. Kiểm tra logic gọi lệnh trong OB — USS_PORT ở cyclic interrupt OB, USS_DRV/USS_RPM/USS_WPM ở main OB, đúng như quy tắc đã trình bày ở bài viết trước.

Kết luận

Phần lớn lỗi USS trên S7-1200 xuất phát từ sai lệch cấu hình giữa PLC và biến tần (địa chỉ, baud rate, số từ PZD) hoặc từ vấn đề vật lý trên mạng RS485 (điện trở đầu cuối, nhiễu). Việc nắm rõ bảng mã STATUS và biết chính xác lỗi hiển thị ở lệnh nào sẽ giúp bạn rút ngắn đáng kể thời gian debug khi hệ thống không hoạt động như mong đợi.

⚡
Chưa biết chọn UPS công suất bao nhiêu?
Nhập danh sách thiết bị, công cụ sẽ tính tự động và gợi ý model phù hợp.
Tính công suất miễn phí

Cần tư vấn giải pháp UPS?

UPSsmart hỗ trợ tư vấn miễn phí, không ràng buộc.