Giới thiệu
Trong công nghiệp, hầu hết các thiết bị đo đếm điện năng đều hỗ trợ giao thức Modbus RTU, Modbus TCP/IP. Giao thức Modbus thì không xa lạ gì đối với các kỹ sư trong các ngành năng lượng, tự động hóa sản xuất. Tuy nhiên trải qua mấy chục năm nay hệ thu thập dữ liệu và điều khiển với thiết bị thông qua giao thức Modbus RTU và thậm chí với Modbus TCP đều bộc lộ những vấn đề sau đây:
• Hệ thống chạy một thời gian bị treo. Bộ điều khiển hay gateway (sau đây gọi là master) phải khởi động lại (tắt nguồn/ bật nguồn) hệ mới làm việc bình thường trở lại.
• Trong một chuỗi, khi một thiết bị (sau đây gọi là slave) không trao đổi dữ liệu được với master cũng dẫn đến đình trệ luôn việc trao đổi dữ liệu của master với nguyên chuỗi slave.
• Trao đổi dữ liệu với tốc độ chậm hoặc rất chậm, với chu kỳ khoảng 1 đến 2 giây, có khi lên đến 10 giây mặc dù số thiết bị slave trong chuỗi không nhiều.
• Khi thiết kế, kỹ sư hệ thống thường không dám chọn số thiết bị slave nhiều do lo ngại về tốc độ trao đổi dữ liệu, hoặc không trao đổi được khi số slave tăng. Các kỹ sư thiết kế còn ngần ngại không biết nên lựa chọn số lượng thiết bị slave sao cho phù hợp. Đa số trường hợp lựa chọn 5-6 slave cho một master để chắc chắn.
Các vấn đề nêu trên trên, ít ai nghĩ rằng: Hệ thống hoạt động có tin cậy và bền vững hay không là do cách lập trình chương trình trên PLC / Gatway, chứ không phải do yếu tố vật lý hoàn toàn. Bài viết này đưa ra thuật toán, kỹ thuật lập trình cho master (gọi là client trong trường hợp Modbus TCP) sử dụng PLC để thu thập dữ liệu từ mạng các thiết bị sử dụng giao thức Modbus TCP (gọi là server, trong trường hợp Modbus RTU gọi là slave) và ánh xạ (mapping) dữ liệu vào các khối dữ liệu (datablock) để từ đó các PLC cấp cao, hoặc SCADA có thể trao đổi dữ liệu với PLC thông qua giao thức phổ biến hơn.
Trong bài viết, tác giả cũng chia sẻ phần mềm (tự phát triển) - là công cụ cho phép mô phỏng một số lượng rất lớn các điện kế năng lượng phục vụ cho việc kiểm chứng thiết bị hoặc phát triển các dự án xây dựng hệ thống quản lý điện năng, ví dụ như hệ thống thu thập và điều khiển điện (EMCS) trong siêu dự án sân bay Quốc tế Long Thành.
Giải pháp cũng đưa ra cách bố trí thí nghiệm kiểm chứng mà trong điều kiện hạn chế, kỹ sư có thể tổ chức được mạng Modbus TCP với số lượng rất lớn điện kế. Đi kèm với bài viết mã nguồn dự án viết trên công cụ TIA Portal của hãng Siemens. Kỹ sư lập trình có thể sử dụng nội dung của project mẫu này, có thể thay đổi để thích ứng với dự án thực tế mà mình đang thực hiện.
Cấu trúc của hệ thống thu thập dữ liệu từ mạng điện kế
Các đồng hồ đo đếm năng lượng (điện kế) trên thị trường công nghiệp hiện nay thường tồn tại dưới 2 dạng (theo khía cạnh chuẩn truyền thông) vật lý: RS-485 và ethernet. Tương ứng cho 2 chuẩn vật lý này là giao thức Modbus RTU (gọi là Modbus) và Modbus TCP.
Trong trường hợp điện kế hỗ trợ Modbus RTU, hệ bao gồm một PLC và module RS-485 (tổng lại có thể gọi là gateway). Module RS-485 được nối với mạng điện kế sử dụng cab tín hiệu 2 sợi RS-485. Phía kia của gateway là cổng ethernet của PLC, mà các PLC cấp cao hơn hoặc SCADA có thể thông qua đó để trao đổi dữ liệu sử dụng các giao thức như: S7 (trường hợp PLC S7-1200 của hãng Siemens), Modbus TCP/IP hoặc OPC UA (hình 1). Hình 1a là trường hợp các điện kế nối với nhau bằng topology kiểu daisy chain. Hình 1b - các điện kế nối với nhau thông qua bộ chia (thụ động - passive) RS-485.
Hình 1. Mạng các đồng hồ năng lượng kết nối sử dụng Modbus RTU |
Trường hợp các điện kế hỗ trợ giao thức Modbus TCP, thiết bị như PLC/Gateway có thể trao đổi dữ liệu trực tiếp với mạng điện kế thông qua ethernet. Các điện kế nối với nhau bằng topology kiểu daisy chain (hình 2a, trong trường hợp điện kế hỗ trợ 2 cổng ethernet) hoặc thông qua switch mạng (hình 2b). Phía kia của PLC/gateway là cổng ethernet, mà các PLC hoặc SCADA cấp cao hơn có thể thông qua đó để trao đổi dữ liệu sử dụng các giao thức như: S7 (trường hợp PLC S7-1200/S7-1500 của hãng Siemens), Modbus TCP/IP hoặc OPC UA (hình 2).
Hình 2. Mạng các đồng hồ năng lượng kết nối sử dụng Modbus TCP |
Cấu hình hệ thống sử dụng để phát triển và kiểm chứng dự án
Để phát triển dự án với số lượng điện kế lớn và kiểm chứng thuật toán trao đổi dữ liệu giữa PLC (Modbus TCP client) với các điện kế (Modbus TCP server), có thể tổ chức một hệ thống có các thành phần như trong hình 3.
Hình 3. Cấu trúc hệ thống dùng để kiểm chứng thuật toán và phát triển dự án |
Trong điều kiện giới hạn, không đầy đủ các thiết bị điện kế, đặc biệt là với số lượng rất lớn, kỹ sư lập trình có thể bố trí hệ thống thiết bị và phần mềm và có cấu trúc như hình 3 để kiểm chứng chương trình hoạt động của PLC / Gateway.
Bảng 1 ghi rõ các thiết bị và phần mềm cần thiết để tổ chức kiểm chứng thuật toán và phát triển dữ án. PLCSim Advanced là PLC ảo có thể dễ dàng tải phần mềm tại trang hỗ trợ kỹ thuật của hãng Siemens.
Phần mềm Energy meter realtime data simulator cho phép mô phỏng số lượng rất lớn các thiết bị điện kế do chính tác giả phát triển (hình 4). Các điện kế sử dụng một địa chỉ IP nhưng port khác nhau. Mỗi điện kế dùng 24 thanh ghi dạng 3x (input register) để chứa giá trị float (kiểu swap) từ 12 thông số của điện kế (hình 5). Riêng thanh ghi 25 và 26 dùng để chứa số thứ tự (ID) của điện kế. Sau khi lựa chọn card mạng và bấm “Start” trên máy tính sẽ tạo ra n Modbus TCP server tương ứng với port chạy từ 502 đến 502+n.
Hình 4. Phần mềm Energy Meter Realtime Data Simulaton. |
Hình 5. 12 thông số điện năng của điện kế và ánh xạ kiểu dữ liệu trong TIA Portal |
Thuật toán và lập trình thu thập dữ liệu
Dưới đây là thuật toán và chương trình thu thập dữ liệu từ 200 điện kế hỗ trợ Modbus TCP. Chương trình được xây dựng sử dụng công cụ TIA Portal.
1. Chương trình được chia thành 20 nhóm, mỗi nhóm sẽ đảm nhận việc thu thập dữ liệu từ 10 điện kế. Như vậy mỗi nhóm sẽ có 10 Modbus TCP client (CLIENT_i, i = 1..200 trong hình 6). Trong mỗi nhóm có 1 nhiệm vụ (Task) đảm nhận việc thu thập dữ liệu từ 10 điện kế khác nhau.
Hình 6. 20 nhóm trong chương trình |
2. Trước hết cần phải tạo một kiểu dữ liệu Energy như trong hình 5.
3. Từ kiểu dữ liệu ở trên, có thể tạo ra 20 nhóm dữ liệu, mỗi nhóm là một mảng (array) gồm 10 phần tử Energy (hình 7).
Hình 7. 20 nhóm khối dữ liệu |
4. Tạo 20 nhóm cấu hình kết nối với điện kế, mỗi nhóm là một array gồm 10 phần tử (hình 8).
Hình 8. 20 nhóm cấu hình kết nối |
5. Bài toán khởi tạo giá trị (startup, có tên là Init trong dự án TIA Portal) cho 20 kết nối, chạy duy nhất một lần khi khởi động chương trình PLC, có code như trong hình 9.
Hình 9. Khởi tạo giá trị cho 20 kết nối |
Init có nhiệm vụ gán địa chỉ IP, định danh kết nối (connection ID) và TCP port. Port này đi từ 502. Địa chỉ IP của máy tính chạy phần mềm mô phỏng điện kế là 192.168.1.100.
6. Trên mỗi nhiệm vụ Task_i (i = 1..200) sẽ có 1 bộ chia thời gian (hình 10). Bộ chia thời gian (time slot divider) sẽ chia thành những khoảng thời gian bằng nhau (200ms). Các client sẽ thực hiện việc thu thập dữ liệu từ điện kế tương ứng khi đến phiên mình.
Hình 10. Cơ chế chia thời gian để thu thập dữ liệu |
Thuật toán chia thời gian này được cụ thể hóa trên TIA Portal bằng bộ đếm (counter) kích hoạt bằng đồng hồ 5Hz. Chương trình của 20 nhiệm vụ (Task_i, i = 1..20) thu thập dữ liêu được thể hiện rõ qua hình 11.
Hình 11. 20 nhiệm vụ thu thập dữ liệu từ điện kế tương ứng |
Kết luận
Cấu hình kiểm chứng ở trên với 200 điện kế, trong đó mỗi điện kế có 26 thanh ghi. Kết quả chạy chương trình trên PLCSim Advanced cũng như trên PLC vật lý đều cho kết quả như hình 12. Kết quả trên hình 12 chỉ thể hiện giá trị đọc được từ 13 thông số của điện kế đầu tiên (ID = 1) và điện kế cuối cùng (ID = 200).
Hình 12. Kết quả kiểm chứng trên TIA Portal |
Tác giả đã sử dụng thuật toán và chương trình mô phỏng Energy Meter Realtime Data Simulation để vận dụng vào trong nhiều dự án trước đây, giúp giảm thiểu được chi phí về phần cứng phải đầu tư khi phát triển dự án và rút ngắn thời gian hoàn thành dự án.
Độc giả có thể tải phần mềm Energy Meter Realtime Data Simulation theo đường dẫn bên dưới hoặc QR code như trong, để có thể thay đổi một dễ dàng về số lượng điện kế cần thu thập dữ liệu, sử dụng cho trong việc phát triển dự án quản lý điện năng.
Mã nguồn dự án viết trên công cụ TIA Portal của hãng Siemens. Kỹ sư lập trình có thể sử dụng nội dung của dự án mẫu này, có thể thay đổi để thích ứng với dự án thực tế mà mình đang thực hiện.
Đường dẫn để tải tài liệu:
https://drive.google.com/drive/folders/1w4fZaCzBunXvXxfrkV-qfiNVhRhUu04t?usp=sharing
Trương Đình Châu
Trường Đại học Bách khoa TP.HCM
TS. Trương Đình Châu |
Tiến Sỹ Trương Đình Châu hiện đang công tác tại trường Đại học Bách khoa TP.HCM, với hơn 25 năm kinh nghiệm trong lĩnh vực hệ thống điều khiển công nghiệp và SCADA. Ông là chuyên gia hàng đầu về tự động hóa và điều khiển tại Việt Nam, tham gia tích cực vào nghiên cứu, phát triển các giải pháp tiên tiến. Ngoài ra, ông còn tư vấn, thiết kế và lập trình cho nhiều dự án trọng điểm trong nước, góp phần quan trọng vào sự phát triển của ngành công nghiệp tự động hóa. |