Thông số Ngõ vào/ra Kiểu dữ liệu Vùng nhớ Chức năng
EN Input BOOL I, Q, M, D, L Cho phép ngõ
vào
ENO Output BOOL Cho phép ngõ
ra
MIN Input Integer,
floating - point numbers
I, Q, M, D, L, constant
Giới han MIN
VALUE Input Integer,
floating - point numbers I, Q, M, D, L, constant Giới hạn đầu vào
MAX Input Integer,
floating - point numbers
I, Q, M, D, L, constant
Giới hạn MAX
OUT Output floating - point
numbers
I, Q, M, D, L Kết quả
4.3.6 Thiết lập giao diện giám sát trên Node red
Việc thiết kế Web Server giám sát trên Node Red bắt buộc phải khai báo địa chỉ IP của PLC sử dụng giao tiếp với Web (xem Hình 4.18).
Giám sát điện năng tiêu thụ tồ nhà sử dụng truyền thơng Modbus TCP/IP
Chính vì kết nối thơng qua giao thức S7 Protocol nên quá trình phản hồi tương đối nhanh.
Hình 4.18 Thiết lập địa chỉ IP cho truyền thông S7- Protocol
Sử dụng trực tiếp qua PLC bắt buộc phải khai báo các vùng nhớ để sử dụng các chứ năng có sẵn trên Node -Red, các địa chỉ vùng nhớ phải khai báo theo bảng trong Excel rồi Import lên Node – Red hoặc Import trực tiếp như hình (xem Hình 4.19).
Hình 4.19 Khai báo địa chỉ các vùng phục vụ cho thiết kế Web
4.3.7 Thiết kế giao diện giám sát SCADA
Màn hình giám sát SCADA của đề tài gồm 4 trang chính. Đó là giám sát điều khiển trung tâm, tầng 1, tầng 2 và trang cảnh báo lỗi.
Giám sát điện năng tiêu thụ tồ nhà sử dụng truyền thơng Modbus TCP/IP
Hình 4.20 Giao diện giám sát điều khiển trung tâm
Tại trang này ta có thể giám sát tổng quan các thơng số điện năng của các tầng, để so sánh lưu số liệu của các khu vực. Đồng thời có thể điều khiển từ các thiết bị ở các khu vực cũng như là xử lí nhanh khi gặp sự cố. (xem Hình 4.20)
Hình 4.21 Giao diện giám sát và điều khiển tầng 1
Ở cả 2 tầng là 2 trạm client ta có thể giám sát cụ thể hơn từng thơng số điện năng, có thể xem được biểu đồ hoạt của từng thơng số. Đồng thời có thể điều khiển các thiết bị từ xa theo phương pháp tuần tự để tránh trường hợp các thiết bị khơi động cùng một lúc, có thể gay ra sự cố quá tải cho khu vực. (xem Hình 4.21)
Giám sát điện năng tiêu thụ tồ nhà sử dụng truyền thơng Modbus TCP/IP
Hình 4.22 Giao diện giám sát cảnh báo lỗi
Tại giao diện này sẽ hiện thị và cảnh báo các lỗi trong hệ thống. Có thể biết được trạng thái hoạt động, thời gian bắt đầu, thời gian kết thúc của các lỗi, in và thống kê dữ liệu. Đồng thời có thể điều khiển bật tắt nguồn khẩn cấp cho các khu vực có lỗi để đảm bảo an tồn cho hệ thống. (xem Hình 4.22).
Giám sát điện năng tiêu thụ tồ nhà sử dụng truyền thơng Modbus TCP/IP
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
I. Kết quả đạt được
Trong q trình nghiên cứu, nhóm cũng gặp nhiều khó khăn trong việc vận dụng kiến thức đã học trên trường để áp dụng vào thực tế và cách giải quyết vấn đề sao cho hợp lý. Tuy thời gian có hạn nhưng nhóm cũng đã thiết kế thành cơng mơ hình giám sát điện năng tiêu thụ tịa nhà sử dụng chuẩn truyền thơng Modbus TCP/IP (xem Hình I) đáp ứng được các yêu cầu đưa ra.
Hình I. Mơ hình hồn thiện
Bên cạnh mơ hình, nhóm cịn xây dựng thành cơng màn hình giám sát SCADA tại máy tính trung tâm. Trong màn hình giám sát SCADA gồm các tab tương ứng với từng vị trí giám sát nhất định chính vì vậy người dùng có thể dễ dàng kiểm tra giám sát các thông số liên quan đến điện năng cũng như trực tiếp điều khiển từ xa ngay chính trên màn hình giám sát. Đề tài này nhóm thiết kế thành 4 màn hình giám sát gồm: màn hình giám sát trung tâm (Center) (xem Hình II); màn hình giám sát tầng 1 (xem Hình III); màn hình giám sát tầng 2 (xem Hình IV); màn hình cảnh báo sự cố (Alarm) (xem Hình V).
Giám sát điện năng tiêu thụ toà nhà sử dụng truyền thơng Modbus TCP/IP
Hình II. Màn hình giám sát trung tâm
Hình III. Màn hình giám sát tầng 1
Giám sát điện năng tiêu thụ toà nhà sử dụng truyền thơng Modbus TCP/IP
Hình V. Màn hình giám sát cảnh báo sự cố
Ngồi giám sát trên màn hình SCADA, nhóm cịn hồn thành một Web Server chạy trên nền tảng của Node Red. Web Server giúp người dùng dễ dàng kiểm soát được các thông số từ xa mà khơng cần tới trực tiếp. Web Server được nhóm thiết kế dễ dàng sử dụng với giao diện trực quan, dễ quan sát, đặc biệt có các biểu đồ theo dõi các thơng số điện năng được cập nhật liên tục.
Trên Web Server cũng được nhóm thiết kế thành nhiều tab, mỗi tab tương ứng với mỗi khu vực giám sát khác nhau, bao gồm: Giám sát trung tâm (Home) (xem Hình VI); Giám sát tầng 1 (Floor 1) (xem Hình VII); Giám sát tầng 2 (Floor 2) (xem Hình VIII).
Giám sát điện năng tiêu thụ toà nhà sử dụng truyền thơng Modbus TCP/IP
Hình VII. Tab giám sát thông số điện năng tại tầng 1 trên Web Server
Giám sát điện năng tiêu thụ toà nhà sử dụng truyền thông Modbus TCP/IP
II. Kết luận
Sau một thời gian tìm hiểu, nghiên cứu các tài liệu chuyên ngành liên quan đến các vấn đề truyền thông trong công nghiệp, và kiến thức đã học được qua 4 năm đại học và đặc biệt là sự hỗ trợ kiến thức tận tình của TS. Phạm Duy Dưởng và sự giúp đỡ của các Thầy Cơ trong khoa Điện – Điện Tử. Nhóm chúng tơi đã hồn thành đề tài tốt nghiệp: “Giám sát điện năng tiêu thụ tịa nhà sử dụng truyền thơng Modbus TCP/IP”.
Trong q trình nghiên cứu, nhóm cũng nhận thấy được đề tài có tính thực tiễn và khả năng áp dụng cao vào thực tế. Đề tài còn đáp ứng được nhu cầu của xã hội hiện nay, đi đúng thời đại, xu hướng cơng nghiệp hóa hiện đại hóa đất nước. Đồng thời đề tài này cũng là nguồn tài liệu có giá trị cho các bạn sinh viên khóa sau trong việc tận dụng các kết quả nghiên cứu để cải thiện, phát triển, hay áp dụng các công nghệ vào quá trình nghiên cứu khoa học hay phát triển đề tài tốt nghiệp của mình.
1. Tính mới của đề tài
Hệ thống giám sát điện năng tịa nhà tuy khơng phải là mới ở trên thế giới nhưng ở Việt Nam chưa được áp dụng phổ biến, sau đây là tính mới của đề tài qua trình nghiên cứu nhóm nhận thấy:
- Sử dụng thiết bị PLC S7-1200 kết hợp với vi điều khiển Arduino để có thể đọc được giá trị liên quan đến điện năng tiêu mà chất lượng giám sát không thay đổi;
- Hệ thống cịn có khả năng cảnh báo lỗi liên quan đến điện áp; - Sử dụng Web Server để giám sát điện năng từ xa;
- Khả năng mở rộng hoặc kết hợp vận hành với hệ thống BMS trong tòa nhà; - Sử dụng mạng truyền thông công nghiệp Modbus TCP/IP để giao tiếp với các thiết bị trường.
2. Tính an tồn và liên quan đến vấn đề mơi trường tồn cầu
Hệ thống giám sát điện năng tòa nhà giúp chủ các tịa nhà cao tầng có thể giám sát được chất lượng điện của tịa nhà có ổn định hay khơng từ đó đưa ra hướng giải quyết như nâng cấp, sửa chữa, cải tiến thiết bị trong từng khu vực tòa nhà. Đặc biệt, hệ thống có cảnh báo sự cố từ đó giúp phát hiện được các sự cố phát sinh như: sụt áp, q cơng suất… từ đó giúp tìm ra được các hướng giải quyết sớm nhất vì vậy có thể đảm bảo an tồn cho con người cũng như tài sản xung quanh.
Hơn nữa, đối với hệ thống giám sát điện năng mà nhóm xây dựng, cịn có chức năng giúp tiết kiệm điện bằng cách giám sát sản lượng điện năng tiêu thụ theo giờ, theo ngày, theo tháng. Từ đó giúp tính tốn được sản lượng điện năng tiêu thụ để đưa ra giải pháp tiết kiệm năng lượng. Đặc biệt trong tình hình khủng hoảng năng lượng hiện nay.
Giám sát điện năng tiêu thụ tồ nhà sử dụng truyền thơng Modbus TCP/IP
3. Tính kế thừa
Hiện nay, đa số các tịa nhà cao tầng đều hệ thống mạng Wifi kết nối Ethernet. Trong khi đó, truyền thơng modbus TCP/IP lại là chuẩn truyền thơng Ethernet hoạt động trên nền sử dụng IP cho các thiết bị. Đặc biệt, Modbus TCP/IP còn sử dụng cổng giao tiếp LAN phù hợp với chuẩn dây RJ45. Do đó, việc giao tiếp các trạm giám sát trong hệ thống PMS rất đơn giản chỉ cần sử dụng dây dẫn chuẩn RJ45 kết nối với router mạng Wifi là có thể truyền thơng được với Server mà khơng phải bỏ chi phí đầu tư thiết bị kết nối, tận dụng cơ sở thiết bị có sẵn.
III. Hướng phát triển
Đối mặt với sự phát triển rất mạnh của khoa học cơng nghệ, chính vì vậy, hệ thống giám sát điện năng cũng phải được cập nhật liện tục theo thời gian để tránh bị lạc hậu.
Sau đây là các định hướng tương lại đối với đề tài “Hệ thống giám sát điên năng tiêu thụ tịa nhà sử dụng chuẩn truyền thơng Modbus TCP/IP”:
- Sử dụng các thiết bị trường khác chất lượng, tối ưu hơn PLC như RTU, DCS…; - Nghiên cứu áp dụng chuẩn truyền thông không dây mới giúp tối ưu hơn trong việc kết nối, giảm bớt dây dẫn, mà hiệu suất trao đỗi dữ liệu không thay đổi, độ trễ tiếp nhận dữ liệu thấp như Lora, Zigbee…;
- Ngoài giám sát điện năng từ lưới điện cung cấp, tương lai hệ thống sẽ được cải tiến để có thể giám sát điện năng cung cấp từ hệ thống điện mặt trời, thực hiện điều khiển chuyển mạch khi nguồn điện lưới bị mất sang nguồn điện dự phịng…;
- Tích hợp hệ thống PMS vào hệ thống BMS tòa nhà giúp làm giám sát tồn bộ khía cạnh từ đó giúp đảm bảo an tồn, nâng cao chất lượng điều khiển giám sát tòa nhà. Trên đây là những ý kiến mà nhóm đưa ra để hồn thiện hơn về ý tưởng cũng như hệ thống giám sát điện năng tiêu thụ tòa nhà. Hi vọng sẽ nhận được sự gióp ý, bổ sung của hội đồng bảo vệ để đề tài của nhóm hồn thiện hơn.
Giám sát điện năng tiêu thụ tồ nhà sử dụng truyền thơng Modbus TCP/IP
TÀI LIỆU THAM KHẢO
[1] Hồng Minh Sơn (2001). Mạng truyền thơng công nghiệp. NXB khoa học kỹ thuật, Hà Nội;
[2] Giao thức Modbus và vấn đề bảo mật, GTSC - Cung cấp các dịch vụ bảo mật toàn diện, https://www.gteltsc.vn/blog/giao-thuc-modbus-va-van-de-bao-mat-7672;
[3] Hệ thống giám sát điện năng TTPSCADA,https://bangledhienthi.com/San- pham/He-thong-giam-sat-dien-nang-quan-ly-dien-nang-toan-dien-ad201640.html; [4] Eduardo Naranjo Piñar (2016). Communications between PLC and microcontroller using Modbus Protocol, Trabajo Fin de Grado Grado en Ingeniería de Tecnologías Industriales, Universidad de Sevilla;
[5] S7-1200 Programmable controller System Manual (2012).
[6] https://dientu360.com/module-do-thong-so-dien-xoay-chieu-pzem-004; [7] https://hshop.vn/products/mach-chuyen-giao-tiep-ethernet-enc28j60; [8] https://iotmaker.vn/module-ethernet-enc28j60.html; [9] https://tapit.vn/truyen-thong-giao-tiep-giua-plc-va-arduino-qua-rs485-modbus/; [10]https://instrumentationtools.com/steps-to-configure-tcp-ip-communication-in- siemens-s7-1200-plc/.
Giám sát điện năng tiêu thụ tồ nhà sử dụng truyền thơng Modbus TCP/IP
PHỤ LỤC
Chương trình điều khiển trên Arduino: #include <EtherCard.h> #include <Modbus.h> #include <ModbusIP_ENC28J60.h> #include <PZEM004Tv30.h> #include <Wire.h> #include <LiquidCrystal_I2C.h>
#define runEvery(t) for (static long _lasttime;(uint16_t)((uint16_t)millis() - _lasttime) >= (t);_lasttime += (t))
//Init Value Of LCD
LiquidCrystal_I2C lcd(0x27,16,2); //Init Value Of Pzem
float Vol, Cur, Pow, Ener, PowF, Fre; long ts;
//Modbus Registers (0-9999) const int reg1_HREG = 0; const int reg2_HREG = 1; const int reg3_HREG = 2; const int reg4_HREG = 3; const int reg5_HREG = 4; const int reg6_HREG = 5; const int reg7_HREG = 6; const int reg8_HREG = 7; const int reg9_HREG = 8; const int reg10_HREG = 9; const int reg11_HREG = 10; const int reg12_HREG = 11; const int reg13_HREG = 12; const int reg14_HREG = 13; const int reg15_HREG = 14;
Giám sát điện năng tiêu thụ tồ nhà sử dụng truyền thơng Modbus TCP/IP
//ModbusIP Object ModbusIP mb;
//Pzem Pin Set Up On Arduino (Tx.Rx) PZEM004Tv30 pzem(5, 6);
void setup() { Serial.begin(9600);
// The ethernet hardware address
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //The IP address for ethernet shield
byte ip[] = { 192, 168, 0, 20 };// TANG 1 //Config Modbus Ip mb.config(mac, ip); lcd.init();lcd.backlight();lcd.begin(16,2) ts = millis(); PZEM_Read_Data(); MOV_DATA_TO_REG() } void PZEM_Read_Data() { Vol = pzem.voltage(); if (Vol < 0.0) Vol = 0.0;
Serial.print("Voltage: "); Serial.print(Vol); Serial.println("V; "); Cur = pzem.current();
if (Cur < 0.0) Cur = 0.0;
Serial.print("I: "); Serial.print(Cur); Serial.println("A; "); Pow = pzem.power();
if (Pow < 0.0) Pow = 0.0;
Serial.print("Power: "); Serial.print(Pow); Serial.println("W; "); Ener = pzem.energy();
Serial.print("Energy: "); Serial.print(Ener); Serial.println("KwH; "); PowF = pzem.pf();
Serial.print("Power Factor: "); Serial.print(PowF); Serial.println("PF; "); Fre = pzem.frequency();
Giám sát điện năng tiêu thụ toà nhà sử dụng truyền thông Modbus TCP/IP
Serial.print("Frequency: "); Serial.print(Fre); Serial.println("Hz; "); }
void MOV_DATA_TO_REG() {
/*Move the data which you have just got on PZem to Holding register prepare to send data to PLCs */ mb.addHreg(reg1_HREG, Vol * 1000); Serial.println (reg1_HREG); mb.addHreg(reg2_HREG, Cur * 1000); mb.addHreg(reg3_HREG, Pow * 1000); mb.addHreg(reg4_HREG, Ener * 1000); mb.addHreg(reg5_HREG, PowF * 1000); mb.addHreg(reg6_HREG, Fre * 1000); mb.addHreg(reg7_HREG, 30); mb.addHreg(reg8_HREG, 20.0); mb.addHreg(reg9_HREG, 99.9); mb.addHreg(reg10_HREG, 12.5); } void RECEIVE_DATA_FROM_PLC() { Serial.print("Holding Register 11: "); mb.Hreg(reg11_HREG); Serial.print(mb.Hreg(reg11_HREG)); //------------ Serial.print("Holding Register 12: "); mb.Hreg(reg12_HREG); Serial.print(mb.Hreg(reg12_HREG)); //------------- Serial.print("Holding Register 13: "); mb.Hreg(reg13_HREG); Serial.print(mb.Hreg(reg13_HREG)); //------------- Serial.print("Holding Register 14: "); mb.Hreg(reg14_HREG);
Giám sát điện năng tiêu thụ tồ nhà sử dụng truyền thơng Modbus TCP/IP Serial.print(mb.Hreg(reg14_HREG)); //------------- Serial.print("Holding Register 15: "); mb.Hreg(reg15_HREG); Serial.print(mb.Hreg(reg15_HREG)); } void PREDATA_RECEIVE_FROM_PLC() { mb.addHreg(reg11_HREG, 1); Serial.print(mb.Hreg(reg15_HREG)); mb.addHreg(reg12_HREG, 1); Serial.print(mb.Hreg(reg15_HREG)); mb.addHreg(reg13_HREG, 1); Serial.print(mb.Hreg(reg15_HREG)); mb.addHreg(reg14_HREG, 1); Serial.println(mb.Hreg(reg15_HREG)); mb.addHreg(reg15_HREG, 1); } void loop() { //delay (2000); //MOV_DATA_TO_REG(); mb.task(); if (millis()> ts + 10000){ //delay (100); PZEM_Read_Data(); // delay (10); mb.Hreg(reg1_HREG,Vol*10); Serial.println (Vol); mb.Hreg(reg2_HREG,Cur*100); mb.Hreg(reg3_HREG, Pow * 10); mb.Hreg(reg4_HREG, Ener * 100); mb.Hreg(reg5_HREG, PowF * 1000); mb.Hreg(reg6_HREG, Fre * 100);
Giám sát điện năng tiêu thụ tồ nhà sử dụng truyền thơng Modbus TCP/IP Serial.println (Fre*100); //mb.Hreg(reg7_HREG, Pow*1000); mb.Hreg(reg8_HREG); mb.Hreg(reg9_HREG); mb.Hreg(reg10_HREG); mb.Hreg(reg11_HREG); value_print1(); value_print2(); value_print3(); } }
void hienthi (unsigned char a, unsigned char b, unsigned char c) {
lcd.setCursor(0,0); switch (a)
{
case 1: lcd.print("VOLT:"); break; lcd.clear(); case 2: lcd.print("POW :");break;lcd.clear(); case 3: lcd.print("POWF:");break; lcd.clear(); } lcd.setCursor(6,0) switch (b) { case 1: lcd.print(Vol);break;lcd.clear(); case 2: lcd.print(Pow);break; case 3: lcd.print(PowF);break;lcd.clear(); } lcd.setCursor(15,0); switch (c) { case 1: lcd.print("V");break; case 2: lcd.print("W");break;
Giám sát điện năng tiêu thụ tồ nhà sử dụng truyền thơng Modbus TCP/IP
case 3: lcd.print(" ");break; }
};
void hienthi1(unsigned char d, unsigned char e, unsigned char f) { lcd.setCursor(0,1); switch (d) { case 1: lcd.print("CURR:");break; case 2: lcd.print("ENER:");break; case 3: lcd.print("FREQ:");break; } lcd.setCursor(6,1); switch (e) { case 1: lcd.print(Cur);break; case 2: lcd.print(Ener);break; case 3: lcd.print(Fre);break; } lcd.setCursor(13,1); switch (f) {
case 1: lcd.print("A ");break; case 2: lcd.print("KwH");break; case 3: lcd.print(" Hz");break; } }; void value_print1(){ runEvery(500){ hienthi(1,1,1); hienthi1(1,1,1);}; };
Giám sát điện năng tiêu thụ tồ nhà sử dụng truyền thơng Modbus TCP/IP void value_print2(){ runEvery(1000){ //lcd.clear(); hienthi(2,2,2); hienthi1(2,2,2); }; }; void value_print3(){ runEvery(1500){ //lcd.clear(); hienthi(3,3,3); hienthi1(3,3,3); }; };
Giám sát điện năng tiêu thụ tồ nhà sử dụng truyền thơng Modbus TCP/IP
Chương trình trên PLC 1 . PLC Server
Giám sát điện năng tiêu thụ tồ nhà sử dụng truyền thơng Modbus TCP/IP
Giám sát điện năng tiêu thụ toà nhà sử dụng truyền thông Modbus TCP/IP
Giám sát điện năng tiêu thụ tồ nhà sử dụng truyền thơng Modbus TCP/IP