4.8.3 Giao diện hệ thống trên các thiết bị kết nối
TỔNG KẾT VÀ ĐỊNH HƯỚNG PHÁT TRIỂN Những vấn đề đạt được
Nghiên cứu và “thiết kế mô hình giám sát và điều khiển hệ thống sản xuất nông nghiệp qua web server” và ý nghĩa thực tiễn của công nghệ này.
Tìm hiểu sơ lược về PLC S7 1200. Cụ thể phần cứng CPU 1214 DC/DC/DC. Phần mềm lập trình Tia Portal V16 để lập trình điều khiển hệ thống.
Tìm hiểu chung về hệ thống Web server và thiết kế giao diện điều khển của hệ thống. Áp dụng nó để thiết kế hình ảnh để điều khiển và giám sát hệ thống. Cụ thể cài đặt và giám sát thông số độ ẩm, nhiệt độ không khí,đất trong nhà kính.
Nắm vững và vận dụng được những kiến thức đã học về lập trình PLC, vi điều khiển, hệ thống cung cấp điện để áp dụng vào đề tài tốt nghiệp.
Ứng dụng thực tế: Đã thiết kế được mô hình nhà kính kiểm soát và điều khiển được các thông số qua PLC một cách khá hoàn chỉnh và sát với thực tế nhằm đáp ứng yêu cầu của đề tài đưa ra.
Ngoài ra chúng em cũng tập được cho bản thân tinh thần làm việc nhóm rất tốt. Chúng em đã giúp đỡ hỗ trợ nhau thực hiện tốt nhiệm vụ đươc giao nhằm đạt được kết quả nghiên cứu tốt nhất.
Những vấn đề chưa đạt được
Do điều kiện thực hiện đồ án còn hạn chế kinh nghiệm thực tiễn còn thiếu và yếu nên đề tài này còn rất nhiều thiếu sót. Rất kính mong các Thầy Cô trong bộ môn đóng góp ý kiến để mô hình này hoàn thiện hơn.
Để có thể đưa mô hình ra thực tiễn thì giá thành của công nghệ PLC còn tương khá cao.
Chưa áp dụng được công nghệ biến tần trong việc điều khiển tốc độ động cơ. Vì mô hình thực hiện đề tài còn hạn chế về kích thước và kinh phí nên chưa thể áp dụng được các công nghệ tiên tiến hơn như hệ thống kiểm soát độ ẩm không khí, hệ thống chăm sóc đặc biệt bằng thuốc bảo vệ thực vật.
Hệ thống web server chưa điều khiển mượt mà, do nhiều yếu tố khách quan như Laptop không đủ chất lượng, song wifi quá yếu…
Định hướng phát triển
Có thể dùng công nghệ biến tần để điều khiển tốc độ động cơ bơm sao cho phù hợp với điều kiện sản xuất nhất định. Nhằm tiết kiệm tối đa năng lượng và đạt hiệu quả tưới tiêu cao nhất.
Có thể phát triển hệ thống chiếu sáng nhằm tiết kiệm năng lượng và cường độ chiếu sáng phù hợp với loại cây trồng . Nên có thể dùng chiếu sáng bằng đèn LED, phát triển xây dựng hệ thống chiếu sáng nhà kính tận dụng năng lượng mặt trời.
Có thể áp dụng nhiều phương pháp tưới sao cho phù hợp với mọi loại cây trồng. Phát triển hệ thống điều hòa làm thay đổi hệ thống thông gió, cấp khí vào nhà kính, xây dựng nhà kính như một trạm khí tượng mini phục vụ việc trồng cây nông nghiệp nhằm đem lại giá trị kinh tế cao.
Ngoài các yếu tố tự động hóa như trong đồ án đã nêu ra thì còn nhiều yếu tố khác ảnh hưởng tới sự phát triển và năng suất của cây trồng cần xem xét thêm như vấn đề độ dinh dưỡng, độ pH trong đất. Việc bón phân theo phương pháp truyền thống hiện nay vẫn còn nhiều hạn chế, đặc biệt là việc sử dụng phân hóa học trong canh tác. Việc phân tích nhu cầu dinh dưỡng của cây trồng cần nghiên cứu thêm. Việc tưới tiêu trong nông nghiệp hiện nay vẫn còn chưa thực sự tối ưu. Trong tương lai có thể nghiên cứu kỹ về việc kết hợp tưới tiêu tự động không chỉ giải quyết vấn đề về độ ẩm, nhiệt độ, ánh sáng mà còn cần xem xét vấn đề dinh dưỡng song song với việc tối ưu hóa trong tưới tiêu. Về vấn đề cỏ dại và sâu bệnh hại cũng cần được nghiên cứu căn cứ theo khu vực, thời tiết, các loại sâu bệnh hại theo mùa để từ đó người dùng có thể chủ động phòng ngừa.
Và hiện nay với nhu cầu sử dụng năng lượng ngày càng tăng cao nên hướng phát triển nông nghiệp bền vững được nhà nước khuyến khích áp dụng và xem đó là hướng đi lâu dài cho ngành nông nghiệp nước nhà. Vì vậy một hướng phát triển rất quan trọng nữa của mô hình là sử dụng tấm pin năng lượng mặt trời hoặc tua bin gió để cung cấp điện cho hệ thống bơm quạt và hệ thống điều khiển nhà kính.
Tác động đến môi trường
Ngày nay việc sử dụng các vật liệu bao quanh nhà kính không đảm bảo chất lượng và gây ô nhiễm lớn đến môi trường. Các bao ni lông, vật liệu nhựa,... làm ảnh hưởng lớn đến môi trường xung quanh và lâu dài là chính sức khỏe của con người. Hiện nay các nhà khoa học cũng đã nghiên cứu để ứng dụng vào nhà kính các vật liệu thân thiện với môi trường và hạn chế ảnh hưởng đến con người. Trong tương lai sẽ có những vật liệu thay thế được vật liệu nhựa và an toàn với môi trường.
Tài liệu tham khảo
[1] Trần Văn Hiếu (2018). Tự động hoá PLC S7-1200 với Tia portal. NXB
khoa học và kỹ thuật.
[2] Ngọc Automation (2018). Wedserver scada system internet PLC control.
Lưu hành nội bộ.
[3] Trần Văn Hiếu (2018). Thiết kế hệ thống mạng truyền thông công nghiệp với Tia Portal. NXB khoa học và kỹ thuật.
[4] Ts Lê Ngọc Bích. Vi Xử Lý Và Vi Điều Khiển. NXB thanh niên
[5] Hoàng Minh Sơn. Mạng truyền thông công nghiệp. NXB khoa học và công nghiệp
[6] Bộ xây dựng (2008). Giáo trình điện công nghiệp. NXB xây dựng [7] TS Trần Quang Khánh. Bảo vệ role và tự động hóa hệ thống điện. NXB
giáo dục
[8] TS Ngô Hồng Quang (2004). Giáo trình cung cấp điện. NXB giáo dục Việt Nam
[9] Bộ giáo dục và đào tạo. Trường đại học sư phạm kỹ thuật thành phố Hồ Chí Minh. Giáo trình khí cụ điện. NXB đại học quốc gia TP Hồ Chí Minh.
[10] Nguyễn Thị Phương Hà-Huỳnh Thái Hoàng. Lý thuyết điều khiển tự động. NXB đại học quốc gia TP Hồ Chí Minh.
PHỤ LỤC
PHỤ LỤC 1: Chương trình điều khiển hệ thống trên TIA PORTAL 1 Lập trình chọn chế độ cho hệ thống và các chương trình con
PHỤ LỤC 2: Chương trình visual studio code điều khiển web server 1 Index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src="FB/jquery-3.2.1.min.js"></script>
<script src="FB/raphael.2.1.0.min.js"></script> <script src="FB/justgage.1.0.1.min.js"></script> <!-- ////////////// GỌI CÁC CSS ////////////// --> <link rel="stylesheet" href= "CSS/button.css">
<link rel="stylesheet" href= "CSS/main_Screen.css"> <link rel="stylesheet" href= "CSS/slidebar.css"> <link rel="stylesheet" href= "CSS/screen1.css"> <link rel="stylesheet" href= "CSS/screen2.css"> <title>Scada Webserver</title>
<!-- ////////////// CHƯƠNG TRÌNH CON ////////////// --> <script src="FC/FC1_Common.js"></script>
</head>
<!-- Phần thân của website --> <body>
<!-- ////////////// Code cho slidebar////////////// --> <div id = "slidebar">
<!--Nút chọn màn hình chính-->
<button class="button" id="btt_Screen_Main" onclick=" fn_ScreenChange('Screen_Main','Screen_1','Screen_2'); btt_Auto();
<!--Nút chọn màn hình 1-->
<button class="button" id="btt_Screen_1" onclick=" fn_ScreenChange('Screen_1','Screen_Main','Screen_2'); ">MÀN HÌNH AUTO</button>
<!--Nút chọn màn hình 2-->
<button class="button" id="btt_Screen_2" onclick=" fn_ScreenChange('Screen_2','Screen_Main','Screen_1'); ">MÀN HÌNH MANUAL</button> </div> <!-- //////////////Code cho màn hình chính////////////// --> <div id = "Screen_Main"> <img src = "https://i.imgur.com/8Vnrecg.png"> </div> <!-- //////////////Code cho màn hình 1////////////// --> <div id = "Screen_1"> <img src = "https://i.imgur.com/7kGRrfV.png"> <!-- //////////////Hiển thị IO Fied////////////// -->
<input id="Sensor1" disabled="disabled" type="text" /> <!-- //////////////Hiển thị IO Fied////////////// -->
<input id="Sensor2" disabled="disabled" type="text" /> <!-- //////////////Hiển thị IO Fied////////////// -->
<input id="Sensor3" disabled="disabled" type="text" /> <!-- //////////////Hiển thị IO Fied////////////// -->
<input id="Sensor4" disabled="disabled" type="text" /> <!-- //////////////tạo bơm 1////////////// --> <img id = "Pump_1"> <!-- //////////////tạo bơm 1////////////// --> <img id = "Pump_2"> <!-- //////////////tạo bơm 1////////////// --> <img id = "Fan_1"> <!-- //////////////tạo bơm 1////////////// --> <img id = "Fan_2">
<!-- //////////////tạo bơm 1////////////// --> <img id = "Light_1"> <!-- //////////////tạo bơm 1////////////// --> <img id = "Motor_1"> <!-- Nút nhấn mở bơm 1--> <button id="btt_AutoWed" onmousedown="setTag('btt_AutoW',1)">Auto</button> <!-- Nút nhấn mở bơm 1--> <button id="btt_ManualWed" onmousedown="setTag('btt_ManualW',1)">Manual</button> </div> <!-- //////////////Code cho màn hình 2////////////// --> <div id = "Screen_2"> <img src = "https://i.imgur.com/6wpVWYm.png"> <!-- //////////////tạo bơm 1////////////// --> <img id = "Pump_1M"> <!-- //////////////tạo bơm 1////////////// --> <img id = "Pump_2M"> <!-- //////////////tạo bơm 1////////////// --> <img id = "Fan_1M"> <!-- //////////////tạo bơm 1////////////// --> <img id = "Fan_2M"> <!-- //////////////tạo bơm 1////////////// --> <img id = "Light_1M"> <!-- //////////////tạo bơm 1////////////// --> <img id = "Motor_1M"> <!-- Nút nhấn mở bơm 1--> <button id="btt_Open_Pump1M" onmousedown="setTag('btt_Open_Pump1',1)">Open</button> <!-- Nút nhấn mở bơm 1--> <button id="btt_Close_Pump1M" onmousedown="setTag('btt_Close_Pump1',1)">Close</button> <!-- Nút nhấn mở bơm 1-->
<button id="btt_Open_Pump2M" onmousedown="setTag('btt_Open_Pump2',1)">Open</button> <!-- Nút nhấn mở bơm 1--> <button id="btt_Close_Pump2M" onmousedown="setTag('btt_Close_Pump2',1)">Close</button> <!-- Nút nhấn mở bơm 1--> <button id="btt_Open_Fan1M" onmousedown="setTag('btt_Open_Fan1',1)">Open</button> <!-- Nút nhấn mở bơm 1--> <button id="btt_Close_Fan1M" onmousedown="setTag('btt_Close_Fan1',1)">Close</button> <!-- Nút nhấn mở bơm 1--> <button id="btt_Open_Fan2M" onmousedown="setTag('btt_Open_Fan2',1)">Open</button> <!-- Nút nhấn mở bơm 1--> <button id="btt_Close_Fan2M" onmousedown="setTag('btt_Close_Fan2',1)">Close</button> <!-- Nút nhấn mở bơm 1--> <button id="btt_Open_Light1M" onmousedown="setTag('btt_Open_Light1',1)">Open</button> <!-- Nút nhấn mở bơm 1--> <button id="btt_Close_Light1M" onmousedown="setTag('btt_Close_Light1',1)">Close</button> <!-- Nút nhấn mở bơm 1--> <button id="btt_Open_Motor1M" onmousedown="setTag('btt_Open_Motor1',1)">Open</button> <!-- Nút nhấn mở bơm 1--> <button id="btt_Close_Motor1M" onmousedown="setTag('btt_Close_Motor1',1)">Close</button> </div> </body> </html>
2 FC1_Common.js
// Chương trình con chuyển trang
function fn_ScreenChange(scr_1, scr_2, scr_3) {
document.getElementById(scr_1).style.visibility = 'visible'; // Hiển thị trang được chọn
document.getElementById(scr_2).style.visibility = 'hidden'; // Ẩn trang 1 document.getElementById(scr_3).style.visibility = 'hidden'; // Ẩn trang 2 }
// Hàm chức năng ghi giá trị tag function setTag(tag,val) {
var tag_Link = '"Web_Comm".' + tag; var url = "IO.html";
sdata = tag_Link + '=' + val;
$.post(url, sdata, function (result2) { }); }
// Hàm chức năng đọc giá trị tag function IOField(ObjectID, tag) { url = "IO.html";
$.getJSON(url, function (result) {
document.getElementById(ObjectID).value = result[tag]; });
}
// HIỂN THỊ DỮ LIỆU LÊN IO FIELD setInterval(function () {
// IO Field - Màn hình chính (Actual value) if(tag_Edit_Enable == false){ IOField("Sensor1", "Value_Sensor1"); IOField("Sensor2", "Value_Sensor2"); IOField("Sensor3", "Value_Sensor1"); IOField("Sensor4", "Value_Sensor2");
}
//hiển thị symbol
fn_SymbolStatus('Pump_1', 'Pump1', 'Status_Pump1') fn_SymbolStatus('Pump_2', 'Pump1', 'Status_Pump2') fn_SymbolStatus('Fan_1', 'Fan1', 'Status_Fan1')
fn_SymbolStatus('Fan_2', 'Fan1', 'Status_Fan2') fn_SymbolStatus('Light_1', 'Light1', 'Status_Light1') fn_SymbolStatus('Motor_1', 'Motor1', 'Status_Motor1') fn_SymbolStatus('Pump_1M', 'Pump1', 'Status_Pump1') fn_SymbolStatus('Pump_2M', 'Pump1', 'Status_Pump2') fn_SymbolStatus('Fan_1M', 'Fan1', 'Status_Fan1')
fn_SymbolStatus('Fan_2M', 'Fan1', 'Status_Fan2') fn_SymbolStatus('Light_1M', 'Light1', 'Status_Light1') fn_SymbolStatus('Motor_1M', 'Motor1', 'Status_Motor1')
}, 1000);
// Hàm chức năng nút sửa/lưu dữ liệu function fn_DataEdit(button1, button2) {
document.getElementById(button1).style.zIndex='1'; // Hiển nút 1 document.getElementById(button2).style.zIndex='0'; // Ẩn nút 2 }
// Tag Edit
var tag_Edit_Enable = false; // Hàm báo đang sửa dữ liệu function fn_Edditing(){
fn_DataEdit("btt_Save", "btt_Edit") tag_Edit_Enable = true;
// Enable chức năng IO Field
document.getElementById("tbx_tag_Bool").disabled = false; document.getElementById("tbx_tag_Byte").disabled = false; document.getElementById("tbx_tag_Integer").disabled = false; document.getElementById("tbx_tag_Real").disabled = false;
document.getElementById("tbx_tag_String").disabled = false; }
// Hàm báo đã sửa dữ liệu function fn_Saving(){
fn_DataEdit("btt_Edit", "btt_Save") tag_Edit_Enable = false;
// Set giá trị tag
var tag_Bool_data = document.getElementById("tbx_tag_Bool").value; // Lấy giá trị từ textbox
var tag_Byte_data = document.getElementById("tbx_tag_Byte").value; var tag_Integer_data = document.getElementById("tbx_tag_Integer").value; var tag_Real_data = document.getElementById("tbx_tag_Real").value; var tag_String_data = document.getElementById("tbx_tag_String").value;
setTag('tag_Bool',tag_Bool_data); // Ghi dữ liệu xuống plc setTag('tag_Byte',tag_Byte_data);
setTag('tag_Integer',tag_Integer_data); setTag('tag_Real',tag_Real_data); setTag('tag_String',tag_String_data);
// Disable chức năng IO field
document.getElementById("tbx_tag_Bool").disabled = true; document.getElementById("tbx_tag_Byte").disabled = true; document.getElementById("tbx_tag_Integer").disabled = true; document.getElementById("tbx_tag_Real").disabled = true; document.getElementById("tbx_tag_String").disabled = true; alert('Dữ liệu đã được lưu!');
}
// Chương trình con đổi màu Symbol
function fn_SymbolStatus(ObjectID, SymName, Tag) {
var imglink_0 = "images/Symbol/" + SymName + "_0.png"; // Trạng thái tag = 0
var imglink_1 = "images/Symbol/" + SymName + "_1.png"; // Trạng thái tag = 1
var imglink_2 = "images/Symbol/" + SymName + "_2.png"; // Trạng thái tag = 2
var imglink_3 = "images/Symbol/" + SymName + "_3.png"; // Trạng thái tag = 3
var imglink_4 = "images/Symbol/" + SymName + "_4.png"; // Trạng thái tag = 4
var imglink_5 = "images/Symbol/" + SymName + "_5.png"; // Trạng thái tag = 5
url = "IO.html";
$.getJSON(url, function (result) { if(result[Tag] == 0){ document.getElementById(ObjectID).src = imglink_0; } else if(result[Tag] == 1){ document.getElementById(ObjectID).src = imglink_1; } else if(result[Tag] == 2){ document.getElementById(ObjectID).src = imglink_2; } else if(result[Tag] == 3){ document.getElementById(ObjectID).src = imglink_3; } else if(result[Tag] == 4){ document.getElementById(ObjectID).src = imglink_4; } else{ document.getElementById(ObjectID).src = imglink_0; } }); } 3 IO.html
{ "Status_Pump1":":="Web_Comm".Status_Pump1:", "Status_Pump2":":="Web_Comm".Status_Pump2:", "Status_Fan1":":="Web_Comm".Status_Fan1:", "Status_Fan2":":="Web_Comm".Status_Fan2:", "Status_Light1":":="Web_Comm".Status_Light1:", "Status_Motor1":":="Web_Comm".Status_Motor1:", "Value_Sensor1":":="Web_Comm".Value_Sensor1:", "Value_Sensor2":":="Web_Comm".Value_Sensor2:" } <!-- AWP_In_Variable Name='"Web_Comm".btt_AutoW' -->