基于HTML5+CSS3的Web Scada的应用场景

        Web SCADA系统主要通过组合各种物联网硬件,可对设备开关、模拟量及其他设备数据进行采集,通过配置传感器,还可以实现对设备温度、震动及环境湿度等多种数据进行采集;通过简单配置,用户既可以在工控机上实现数据监测和设备控制,也可通过手机、平板等联网终端进行远程监控;

        对于复杂逻辑则通过二次开发实现,通过最新的Web技术(JavaScript、HTML5、JQuery、CSS3、Ajax及最新的JS框架库等)等进行复杂逻辑的处理,通过引入ThreeJS库,可完美的支持3D漫游等效果,让工程师通过简单的托拉拽实现对设备的数据采集、监视及控制;

       对于有二次开发能力的企业或个人则让其更关注业务逻辑,无需关注底层的数据采集过程,将采集到的数据封装成JS包,通过引用JS包可通过简单的几个命令获取到数据进而进行其他逻辑处理,如GetTag(“TagName”)、SetTag(“TagName”)等进行逻辑处理,WEB SCADA可应用于智能制造、数字工厂、设备智能化、环境与能源、智慧楼宇、智慧热网、智慧水务、智慧管廊、智慧管网,行业涉及热力、自来水、污水处理、化工、中石油、电力、楼宇、消防、矿厂、制冷、路灯远控、数字工厂、汽车、电信、高铁楼宇、钢厂等行业;

Web SCADA逻辑架构图:

 

如下是通过简单的JS代码实现底层数据的获取与逻辑处理:

 <body style="background:#778899">
        <div id="idButtons" class="paragraph"></div>
        <h1  style="color:#FFFAFA" >配电室1参数报表</h1>
        <div id="idTimestamp" class="paragraph"></div>
        <table  width="100%" style="color:#00008B" ; text-align:center>
         <tr>
            <th>电表</th>
            <th colspan="8">PWM001
            <th colspan="8">PWM002
            <th colspan="8">PWM003
            <th colspan="8">PWM004
            <th colspan="8">PWM005
         </tr>
            <tr>
                <th>参数</th>
                <th>A向电流</th>
                <th>B向电流</th>
                <th>C向电流</th>
                <th>A向电压</th>
                <th>B向电压(V)</th>
                <th>C向电压(V)</th>
                <th>功率因数</th>
                <th>总电度</th>
                
                
                <th>A向电流</th>
                <th>B向电流</th>
                <th>C向电流</th>
                <th>A向电压</th>
                <th>B向电压(V)</th>
                <th>C向电压(V)</th>
                <th>功率因数</th>
                <th>总电度</th>
                
                
                <th>A向电流</th>
                <th>B向电流</th>
                <th>C向电流</th>
                <th>A向电压</th>
                <th>B向电压(V)</th>
                <th>C向电压(V)</th>
                <th>功率因数</th>
                <th>总电度</th>
                
                
                <th>A向电流</th>
                <th>B向电流</th>
                <th>C向电流</th>
                <th>A向电压</th>
                <th>B向电压(V)</th>
                <th>C向电压(V)</th>
                <th>功率因数</th>
                <th>总电度</th>
                
               
                <th>A向电流</th>
                <th>B向电流</th>
                <th>C向电流</th>
                <th>A向电压</th>
                <th>B向电压(V)</th>
                <th>C向电压(V)</th>
                <th>功率因数</th>
                <th>总电度</th>
                
         </tr>
            <tr>
                <th>时间/单位</th>
                <th>(A)</th>
                <th>(A)</th>
                <th>(A)</th>
                <th>(V)</th>
                <th>(V)</th>
                <th>(V)</th>
                <th>(PF)</th>
                <th>(Kwh)</th>
                                
                <th>(A)</th>
                <th>(A)</th>
                <th>(A)</th>
                <th>(V)</th>
                <th>(V)</th>
                <th>(V)</th>
                <th>(PF)</th>
                <th>(Kwh)</th>
                
                <th>(A)</th>
                <th>(A)</th>
                <th>(A)</th>
                <th>(V)</th>
                <th>(V)</th>
                <th>(V)</th>
                <th>(PF)</th>
                <th>(Kwh)</th>
               
                <th>(A)</th>
                <th>(A)</th>
                <th>(A)</th>
                <th>(V)</th>
                <th>(V)</th>
                <th>(V)</th>
                <th>(PF)</th>
                <th>(Kwh)</th>
                
                <th>(A)</th>
                <th>(A)</th>
                <th>(A)</th>
                <th>(V)</th>
                <th>(V)</th>
                <th>(V)</th>
                <th>(PF)</th>
                <th>(Kwh)</th>
           
            <tr>
                <td data-igrx='{"attr":"log","tag":"app.currentTime"}'>Time</td>
                
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM001.I_PhA"}'>###.#</td>  
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM001.I_PhB"}'>###.#</td>   
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM001.I_PhC"}'>####</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM001.U_PhA"}'>####</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM001.U_PhB"}'>###.#</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM001.U_PhC"}'>###.#</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM001.PF_Total"}'>###.#</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM001.WH_Total"}'>###.#</td>
               
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM002.I_PhA"}'>###.#</td>  
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM002.I_PhB"}'>###.#</td>   
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM002.I_PhC"}'>####</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM002.U_PhA"}'>####</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM002.U_PhB"}'>###.#</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM002.U_PhC"}'>###.#</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM002.PF_Total"}'>###.#</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM002.WH_Total"}'>###.#</td>
               
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM003.I_PhA"}'>###.#</td>  
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM003.I_PhB"}'>###.#</td>   
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM003.I_PhC"}'>####</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM003.U_PhA"}'>####</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM003.U_PhB"}'>###.#</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM003.U_PhC"}'>###.#</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM003.PF_Total"}'>###.#</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM003.WH_Total"}'>###.#</td>
                
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM004.I_PhA"}'>###.#</td>  
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM004.I_PhB"}'>###.#</td>   
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM004.I_PhC"}'>####</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM004.U_PhA"}'>####</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM004.U_PhB"}'>###.#</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM004.U_PhC"}'>###.#</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM004.PF_Total"}'>###.#</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM004.WH_Total"}'>###.#</td>
                
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM005.I_PhA"}'>###.#</td>  
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM005.I_PhB"}'>###.#</td>   
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM005.I_PhC"}'>####</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM005.U_PhA"}'>####</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM005.U_PhB"}'>###.#</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM005.U_PhC"}'>###.#</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM005.PF_Total"}'>###.#</td>
                <td data-igrx='{"attr":"log","tag":"opc.kepi.PWM005.WH_Total"}'>###.#</td>
                
                </tr>
            
        </table>
    </body>
    <script type='text/javascript'src='system/scripts/igrX.js'></script>
    var getTotal = getTag("WH_Total")
    <script type="text/javascript">

    var rpt = igrx.report();
    
    
    getTotal
    
    </script>

通过引入igrX.js库,通过JS则可实时获取对应的TAG值,如{“attr”:"log","tag":"opc.kepi.PWM005.WH_Total"} 则代表当前属性进行LOG数据存储,且获取方式是通过OPC采集,采集的点为WH_Total;

实时图表分析:

       通过IDE环境将指定的采集点设置为曲线数据监控,如下图:

最终的展现效果为如下:

 单图表实现代码解析:

通过简单的配置系统生成对应的JS代码,技术人员可对JS代码进行相应的调整及逻辑处理;

<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Plot</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <link rel="stylesheet" type="text/css" href="system/styles/igrX.css" />
    <!--[if lte IE 7]>
    <link rel="stylesheet" media="screen, print" href="system/styles/plot.compat.css" />
    <![endif]-->
</head>
<body>
    <div class='trend' 
        data-trend='{"pen":
        [{"enabled":false,
          "max":100.000000,
          "min":0.000000,
          "name":"Temperature",
          "pens":[
                {"format":"#.##","name":"Temp Cook","tag":"temperature_cook"},
                {"format":"#.##","name":"Effluent Temp","tag":"effTemp"}
          ],"unit":"&deg;C"},
          {"enabled":false,"max":100.000000,"min":0.000000,"name":"Flowrate",
          "pens":[{"format":"#.###","name":"Effluent Flow","tag":"effFlow"},
                {"format":"#.###","name":"Influent Flow 1","tag":"infFlow1"},
                {"format":"#.###","name":"Influent Flow 2","tag":"infFlow2"}],"unit":"m3/hr"},
                {"enabled":false,"max":14.000000,"min":0.000000,"name":"Acidity",
          "pens":[{"format":"##.#","name":"Effluent pH","tag":"effPH"}],"unit":"pH"},
                {"enabled":false,"max":120.000000,"min":0.000000,"name":"Pressure",
          "pens":[{"format":"##.##","name":"Cooking Pressure","tag":"pressure_cook"}],"unit":"kPa"},
                {"enabled":false,"max":30000.000000,"min":0.000000,"name":"ModSim",
          "pens":[{"format":"#","name":"HR40001","tag":"HR40001"},
                {"format":"#","name":"HR40002","tag":"HR40002"},
                {"format":"#","name":"HR40003","tag":"HR40003"}],"unit":"unit"},
                {"enabled":false,"max":70.000000,"min":-10.000000,"name":"Miscellaneous",
          "pens":[{"format":"0","name":"Time in Second","tag":"timeSecond"},
                {"format":"0","name":"Time in Minute","tag":"timeMinute"},
                {"format":"0","name":"Time in Hour","tag":"timeHour"},
                {"format":"0","name":"Time in Day","tag":"timeDay"}],"unit":"-"}],
          "opt":{"axisColor":"#555555","backgroundColor":"white",
          "borderColor":"#333333","borderWidth":0,"disableNavigation":0,
          "hideParameter":0,"legendPosition":"nw","length":600,"limit":0,
          "lineWidth":2,"lograte":5000,"maxPen":100,"min-zoom":20000,"refLineColor":"black",
          "showLegend":0,"showMarker":0,"title":"Temperature","x-tickColor":"#dddddd","y-tickColor":"#dddddd"}}'></div>
</body>
<script type="text/javascript" src="system/scripts/igrX.js"></script>

</html>

对物联网技术感兴趣的伙伴们,欢迎留言讨论、共同交流学习,进步!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
HV-SCADA-WEB版电力监控系统软件,为用户提供一个灵活部署,实时在线,24小时随时随地访问管理的可靠,灵活且高性能的电力监控方案,帮助用户实现在线监测,自动预警告警,提前做出预防式维护,减少断电时间,提高用电效率。该软件在保证实用性高实时性和可靠性的同时,通过功能模块化设计供用户选择,从而可以帮用户实现处理简单直至复杂的电力监控应用需求。 HV-SCADA-WEB版内嵌易用的网页显示组态工具和强大的功能友好的交互界面。前端显示和后台管理基于标准浏览器展示和管理。标准化的全鼠标点击操滚轮拖动操作,自导航操作无学习成本。关键的涉及安全的命令操作采用主流的安全短信验证码方式,确保应用多重安全。HV-SCADA-WEB前端和后台均采用基于最先进的谷歌流览器,系统架构充分考虑操作的安全性、可靠性和高效性以及数据的完整性。基于WEB云架构设计,业务扩展高度自主灵活:特别方便实现比如热/备冗余的I/O配置,主/备通讯,主/备服务器配置,安全防火墙等。根据帐号分配不同级别权限, 保证系统运行管理控制的安全可靠。 HV-SCADA-WEB完全功能模块化设计,可根据实际选择需要的功能模块,也可全选作为完整的解决方案,具备高稳定性,通用性,即用性,易用性和安全性。支持常用通讯协议如MODBUS-RTU,MODBUS-TCP,DL/T645-2007、CJ/T188等已集成到系统平台,并支持新设备协议开发接入系统。 运行可靠、性能稳定、功能可模块组合、部署云平台的电力监控系统,可帮助单位供配电运行管理部门随时随地在线掌握电力设备运行状态,计划性预防性安排维护更换,减少意外停电,保障可靠供电,提高供配电可靠性,降低意外损失,提高运行效率。 HV-SCADA-WEB版,广泛运用于工商业和智能建筑,包括: *厂矿供配电 *智能建筑 *商业广场 **政府机关 *医院学校 *石油化工 *冶金钢铁

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WebScada

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值