
Giao tiếp USS trên S7-1200: Cách kết nối và điều khiển biến tần qua RS485
Trong các ứng dụng điều khiển động cơ, nhu cầu giao tiếp giữa PLC và biến tần để đọc/ghi tốc độ, giám sát trạng thái vận hành là rất phổ biến. Với dòng PLC S7-1200 của Siemens, giao thức USS (Universal Serial Interface) là giải pháp phổ biến để thực hiện việc này qua cổng RS485. Bài viết này sẽ hướng dẫn bạn hiểu và triển khai giao tiếp USS từ A đến Z.
1. USS là gì và hoạt động như thế nào?
USS là giao thức giao tiếp nối tiếp dùng để điều khiển các loại biến tần (motor drive) hỗ trợ chuẩn này. S7-1200 sử dụng cổng RS485 (thông qua module CM 1241 RS422/RS485 hoặc board CB 1241 RS485) để giao tiếp với tối đa 16 biến tần trên mỗi cổng.
Nguyên lý hoạt động của USS là mô hình master-slave: PLC đóng vai trò master, gửi yêu cầu đến từng biến tần (slave) dựa trên địa chỉ. Bản thân biến tần không bao giờ tự gửi dữ liệu nếu chưa nhận được yêu cầu từ master, và các slave không thể giao tiếp trực tiếp với nhau. Giao tiếp diễn ra ở chế độ half-duplex (bán song công) — tại một thời điểm chỉ có một bên được truyền dữ liệu.
Một CPU S7-1200 có thể gắn tối đa 3 module CM 1241 RS422/RS485 và 1 board CB 1241 RS485, nghĩa là về lý thuyết có thể quản lý nhiều mạng USS độc lập trên cùng một CPU.
2. Các khối lệnh (instruction) dùng cho USS
S7-1200 cung cấp 4 lệnh chính để làm việc với giao thức USS:
Lệnh | Loại | Vai trò |
|---|---|---|
USS_PORT | FC | Xử lý giao tiếp vật lý giữa CPU và các biến tần qua cổng RS485 |
USS_DRV | FB | Truy cập, điều khiển một biến tần cụ thể trên mạng (tốc độ, chiều quay, trạng thái...) |
USS_RPM | FC | Đọc thông số nội bộ của biến tần (Read Parameter) |
USS_WPM | FC | Ghi thông số nội bộ của biến tần (Write Parameter) |
Mỗi mạng USS (mỗi cổng RS485) sử dụng chung một Data Block (DB) dạng USS_PORT instance để lưu bộ đệm và dữ liệu tạm cho tất cả các biến tần trên mạng đó. Tất cả các lệnh USS_DRV, USS_PORT, USS_RPM, USS_WPM cùng điều khiển một mạng USS đều phải dùng chung DB này.
Lưu ý khi lập trình: USS_DRV là một Function Block (FB) — khi đặt lệnh này lần đầu vào chương trình, TIA Portal sẽ yêu cầu bạn gán một DB mới. Nếu đây không phải lệnh USS_DRV đầu tiên của mạng USS đó, bạn phải chọn đúng DB đã được tạo trước đó từ danh sách sổ xuống, thay vì tạo DB mới.
3. Quy tắc gọi lệnh trong các khối tổ chức (OB)
Đây là phần rất quan trọng và dễ gây lỗi nếu bỏ qua:
USS_PORT nên được gọi từ một cyclic interrupt OB (ngắt theo chu kỳ), với chu kỳ ngắt bằng khoảng một nửa thời gian gọi tối thiểu yêu cầu. Ví dụ, với tốc độ baud 1200, chu kỳ ngắt nên đặt khoảng 350 ms hoặc nhanh hơn.
USS_DRV, USS_RPM, USS_WPM chỉ được phép gọi từ main program cycle OB (OB chương trình chính), không được gọi từ OB có mức ưu tiên cao hơn OB đang chứa USS_PORT.
Cảnh báo: Nếu đặt sai vị trí — ví dụ đặt USS_PORT trong main OB còn USS_RPM lại đặt trong cyclic interrupt OB — việc gọi lệnh USS_PORT có thể bị ngắt giữa chừng, gây ra lỗi giao tiếp không lường trước được.
4. Thời gian giao tiếp cần tính toán
Vì giao tiếp với biến tần diễn ra bất đồng bộ so với chu kỳ quét (scan cycle) của CPU, thời gian gọi USS_PORT tối thiểu phụ thuộc vào tốc độ baud đã cấu hình. Một số mốc tham khảo từ tài liệu:
Baud rate | Chu kỳ gọi USS_PORT tối thiểu (ms) | Thời gian timeout mỗi biến tần (ms) |
|---|---|---|
1200 | 790 | 2370 |
9600 | 116.3 | 349 |
19200 | 68.2 | 205 |
115200 | 28.1 | 85 |
Gọi USS_PORT nhanh hơn khoảng thời gian tối thiểu này sẽ không giúp tăng số lượng giao dịch được xử lý — vì vậy không cần thiết phải ép chu kỳ ngắt quá nhanh.
5. Yêu cầu cấu hình chung trên biến tần
Trước khi kết nối, biến tần cần được thiết lập đúng để tương thích với USS:
Biến tần phải được cấu hình dùng 4 từ PKW.
Số từ PZD có thể là 2, 4, 6 hoặc 8 — và phải khớp với thông số PZD_LEN trên lệnh USS_DRV tương ứng.
Tốc độ baud trên tất cả các biến tần phải khớp với thông số BAUD trên lệnh USS_PORT.
Biến tần phải được đặt ở chế độ điều khiển từ xa (remote control), và tần số đặt (frequency set-point) phải được cấu hình lấy từ USS trên COM Link.
Địa chỉ biến tần (drive address) phải nằm trong khoảng 1-16 và khớp với thông số DRIVE trên khối USS_DRV tương ứng.
Mạng RS485 phải được đấu điện trở đầu cuối (termination) đúng cách.
6. Ví dụ kết nối với biến tần MicroMaster (MM4)
Tài liệu hướng dẫn chi tiết cách đấu nối với dòng biến tần SIEMENS MicroMaster Series 4 (MM420/MM440) như một ví dụ tham khảo:
Đấu hai đầu cáp RS485 vào các cực đấu nối kiểu caged-clamp không cần vít, dành riêng cho hoạt động USS.
Với MM420: nối cực A vào chân số 15, cực B vào chân số 14.
Với MM440: nối cực A vào chân số 30, cực B vào chân số 29.
Nếu S7-1200 là node kết thúc trên mạng (terminating node) hoặc kết nối kiểu điểm-điểm, cần dùng các cực A1/B1 (không dùng A2/B2) để có thể thiết lập điện trở đầu cuối.
Lưu ý an toàn: Việc đấu nối các thiết bị có mức điện thế tham chiếu khác nhau có thể sinh ra dòng điện không mong muốn chạy qua cáp kết nối, gây lỗi giao tiếp hoặc hư hỏng thiết bị. Cần đảm bảo các thiết bị đấu nối chung một tham chiếu điện hoặc được cách ly đúng cách, đồng thời nối vỏ bọc cáp (shield) vào tiếp địa khung máy.
Sau khi đấu dây, cần thiết lập một số thông số quan trọng trên bàn phím của biến tần MM4, ví dụ:
P2010: tốc độ baud của cổng RS485
P2011: địa chỉ slave (0-31)
P0700 = 5: chọn chế độ điều khiển từ xa
P1000 = 5: chọn tần số đặt lấy từ USS trên COM Link
P2014: thời gian timeout của liên kết nối tiếp — nếu không nhận được bản tin hợp lệ trong khoảng thời gian này, biến tần sẽ báo lỗi F0070.
7. Xử lý lỗi khi giao tiếp USS
Khi thao tác đọc/ghi thông số thất bại (ví dụ giá trị ngoài phạm vi cho phép), biến tần sẽ trả về mã lỗi trong biến USS_Extended_Error. Giá trị này chỉ có hiệu lực cho lần thực thi gần nhất của USS_RPM hoặc USS_WPM, và ý nghĩa mã lỗi cụ thể phụ thuộc vào từng model biến tần — cần tra cứu thêm tài liệu của chính biến tần đó.
Kết luận
Giao tiếp USS là giải pháp gọn nhẹ, phù hợp với các ứng dụng cần điều khiển một số lượng biến tần vừa phải (tối đa 16 biến tần/cổng) mà không cần đến hạ tầng mạng phức tạp như PROFINET hay PROFIBUS. Điểm mấu chốt khi triển khai là: cấu hình đúng tốc độ baud và địa chỉ trên cả PLC lẫn biến tần, gọi đúng lệnh trong đúng loại OB, và đấu dây RS485 đúng cực tính kèm điện trở đầu cuối.
Ở bài viết tiếp theo, chúng ta sẽ tìm hiểu về cấu hình giao tiếp Point-to-Point (PtP) trên S7-1200 — một hình thức giao tiếp nối tiếp khác thường dùng khi kết nối với các thiết bị không hỗ trợ USS.






