基于最新WEB技术的Web SCADA构建“智慧煤矿”平台

9 篇文章 2 订阅
6 篇文章 2 订阅

        近几年国家多多部委多次出台相关政策及文件,对矿山自动化、信息化、数字化、智能化提出了指导要求,为矿山数字化转型指明了发展思路。国家着力推动产业升级,各省助力项目落地。因煤矿属于传统行业,煤炭行业面临的监管痛点多、监管不到位导致安全事故多发等原因,通过互联网、物联网、人工智能等新兴技术高速发展,为传统行业带来颠覆性变革,将高新技术与传统技术装备、管理相融合,实现产业转型升级已经成为煤矿行业发展趋势。

       将物联网、移动互联网、云计算、大数据、人工智能、GIS等技术与煤炭安全生产的各个环节深度融合,构建企业安全生产、管理的可视化、智能化综合性管控平台,实现对煤炭生产过程中的数据实时精准采集、高可靠传输、资源集成融合、智能化分析与处理等,满足多维感知、实时互联、协同控制、智能预警等需求,覆盖煤矿安全生产的全流程,提升管控能力,助力煤炭企业实现精细化开采、安全化生产、智慧化管理。

      现通过一个案例说明矿山物联网的应用场景:

1、主通风机在线监测系统

下图将整个煤矿的主通风系统、局部通风系统、风门、风窗联系起来进行整体监测,同时将瓦斯、温度、粉尘等多种因素进行全局考虑,以达到按需送风,节能环保。

二、中央水泵房控制:

 下图,通过对各个水泵的进行监控及控制,监测电机运行状态、闸阀状态、水泵流量、累计流量、前后轴温度,远程控制水泵的启停,前期收集水泵的数据后可通过大数据运算在不同环境下水泵的启停,对电流、电压及温度等的监控进而逐步实现对电机的预防性维护保养。

单水泵实时监控:

3、传输皮带实时监测与控制:

可通过下方控制按钮对各部皮带进行停止控制,实时监控各段的运行状态等相关数据;

四、空压机、压风控制系统:

 

五、运行水泵实时曲线监控:

针对采集的各水泵的实时数据可通过报表选择性的进行监控。

、传输皮带运行曲线监控:

 

七、实时监控报表

实时报表属于IGX WEB SCADA平台中的一部分,已将底层协议采集的数据通过封装成JS文件进行了发布,所以只需要新建一个HTML页面,将如下的两个文件引入后即可自由发挥:

<link rel="stylesheet" type="text/css" href="system/styles/igrX.css" />

<script type='text/javascript'src='system/scripts/igrX2.js'></script>

<script type="text/javascript">
  var rpt = igrx.report();   
</script>

上述报表,通过标准的WEB技术,HTML5、JS等技术实现对报表的个性化定制,代码如下:

<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Statement Report</title>
        <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
        <link rel="stylesheet" type="text/css" href="system/styles/igrX.css" />
<style>
    table tr td,table th{text-align:center} /*居中*/
    table tr td,table th{border: 1px solid  #696969}   /*线框色*/
    table tr:nth-child(odd){background: #E6E6FA}
    table tr:nth-child(even){background: #FFFAF0}
 </style>
    </head>
    <body style="background:#778899">
        <div id="idButtons" class="paragraph"></div>
        <h1  style="color:#FFFAFA" >中央水泵房参数报表</h1>
        <div id="idTimestamp" class="paragraph"></div>
        <table  width="100%" style="color:#00008B" ; text-align:center>
            <tr>
                <th>泵号</th>
                <th colspan="5">1#泵</th>
                <th colspan="5">2#泵</th>
                <th colspan="5">3#泵</th>
                <th colspan="5">4#泵</th>
                <th colspan="5">5#泵</th>
                <th colspan="5">6#泵</th>               
            </tr>
            <tr>
            	<th>项目</th>
                <td rowspan="2">电流A</td>
                <td rowspan="2">电压V</td>
                <td rowspan="2">压力Mpa</td>
                <td colspan="2">电机温度</td>
                <td rowspan="2">电流A</td>
                <td rowspan="2">电压V</td>
                <td rowspan="2">压力Mpa</td>
                <td colspan="2">电机温度</td>
                <td rowspan="2">电流A</td>
                <td rowspan="2">电压V</td>
                <td rowspan="2">压力Mpa</td>
                <td colspan="2">电机温度</td>
                <td rowspan="2">电流A</td>
                <td rowspan="2">电压V</td>
                <td rowspan="2">压力Mpa</td>
                <td colspan="2">电机温度</td>
                <td rowspan="2">电流A</td>
                <td rowspan="2">电压V</td>
                <td rowspan="2">压力Mpa</td>
                <td colspan="2">电机温度</td>
                <td rowspan="2">电流A</td>
                <td rowspan="2">电压V</td>
                <td rowspan="2">压力Mpa</td>
                <td colspan="2">电机温度</td>
                
            </tr>
            <tr>
            	<th data-igrx='{"attr":"get","tag":"Report_time1"}'>Time</th>
                <td>前</td>
                <td>后</td>
                <td>前</td>
                <td>后</td>
                <td>前</td>
                <td>后</td>
                <td>前</td>
                <td>后</td>
                <td>前</td>
                <td>后</td>
                <td>前</td>
                <td>后</td>
            </tr>
           <tr>
            <td data-igrx='{"attr":"log","tag":"Report_time"}'>Time</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B1_Current"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B1_Voltage"}'>###0</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B1_PosPressure"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B1_MotorFrontTemp"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B1_MotorBackTemp"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B2_Current"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B2_Voltage"}'>###0</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B2_PosPressure"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B2_MotorFrontTemp"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B2_MotorBackTemp"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B3_Current"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B3_Voltage"}'>###0.</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B3_PosPressure"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B3_MotorFrontTemp"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B3_MotorBackTemp"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B4_Current"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B4_Voltage"}'>###0</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B4_PosPressure"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B4_MotorFrontTemp"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B4_MotorBackTemp"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B5_Current"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B5_Voltage"}'>###0</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B5_PosPressure"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B5_MotorFrontTemp"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B5_MotorBackTemp"}'>#0.#</td> 
            <td data-igrx='{"attr":"log","tag":"ZY_B6_Current"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B6_Voltage"}'>###0</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B6_PosPressure"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B6_MotorFrontTemp"}'>#0.#</td>
            <td data-igrx='{"attr":"log","tag":"ZY_B6_MotorBackTemp"}'>#0.#</td> 
           </tr>
           <tr>
                <th>累计运行时间(h)</th>
                <td colspan="5" data-igrx='{"attr":"get","tag":"HR511"}'>###.##</td>
                <td colspan="5" data-igrx='{"attr":"get","tag":"HR512"}'>###.##</td>
                <td colspan="5" data-igrx='{"attr":"get","tag":"HR513"}'>###.##</td>
                <td colspan="5" data-igrx='{"attr":"get","tag":"HR514"}'>###.##</td>
                <td colspan="5" data-igrx='{"attr":"get","tag":"HR515"}'>###.##</td>
                <td colspan="5" data-igrx='{"attr":"get","tag":"HR516"}'>###.##</td>
            </tr>
            <tr>
                <th>总累计运行时间(h)</th>
                <th colspan="35" data-igrx='{"attr":"get","tag":"HR517"}'>###.##</th>
            </tr>
        </table>
    </body>
    <script type='text/javascript'src='system/scripts/igrX2.js'></script>
    <script type="text/javascript">

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

 代码解析:

通过引入CSS及JS文件后,可通过数据标签:"data-igrx"='{"attr":"get","tag":"HR517"}'"  获取到 HR517(中央泵房总运行时间),泵1至泵6的合计时间的实时数据,HR517来源于,如下图: 

 如上图,HR517的汇总值可在IGX WEB SCADA的设计时环境中进行配置,如下代码:

//中央泵房1号泵运行时间_M
//中央泵房2号泵运行时间_M
//中央泵房3号泵运行时间_M
//中央泵房4号泵运行时间_M
//中央泵房5号泵运行时间_M
//中央泵房6号泵运行时间_M

$HR511+$HR512+$HR513+$HR514+$HR515+$HR516

上述是通过报表获取到实时数据的一种方式,integraXor 附带了一些额外的专有功能或方法来简化编程工作,主要用于与服务器通信的脚本。getTag('TagName')用于设获取Tag 值,其中TagName 是字符串中的标签。使用 getTag('same_tag')从同一个标签获取数据可能会导致不必要的 CPU 使用开销,可能会影响性能,特别是在大项目或慢 CPU,一个更好的方法是创建一个内部变量来缓存该值,然后重复使用该变量。如下:

var max = getTag( 'Tag001');

for (var i=0; i<max; i++) {
   //do something
}

以上是在IGX WEB SCADA平台上,通过基本的"拖拉拽"实现大部分功能,同时对于复杂功能可通过脚本开发的方式进行更加灵活的逻辑处理,基于IGX WEB SCADA 甚至可以开发MES系统,因为IGX已将与设备底层交互的能力进行了实现,在此基础上进行业务逻辑、流程等的开发,对于需要一款定制化MES的企业来说将是一种很好的选择。

以上为个人的案例分享,后续将不断的持续提供,欢迎对物联网平台及技术感兴趣的伙伴相互交流,共同进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

WebScada

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

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

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

打赏作者

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

抵扣说明:

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

余额充值