29 && $minutesTo<59) $minutesTo=59; if ($minutesTo<14) $minutesTo=14; else if ($minutesTo>14 && $minutesTo<29) $minutesTo=29; else if ($minutesTo>29 && $minutesTo<44) $minutesTo=44; else if ($minutesTo>44 && $minutesTo<59) $minutesTo=59; //else $minutesTo=59; $min=0; while ($min< $minutesTo) { $con = mysql_connect($softspm_host, $demo_softspm_user, $demo_softspm_pass);mysql_select_db($demo_softspm_db); mysql_query("SET NAMES utf8"); mysql_query("SET CHARACTER_SET utf8_general_ci"); //$idGlebokoscZabudowy = sqlStringValue("select DIC_ID from sys_dictionaries where DIC_NAME='WATER_LEVEL' and DIC_TYPE='RESERVOIR_PIEZOMETER_PARAMETERS'","DIC_ID"); $baseNO = sqlStringValue("select SSP_VALUE from sys_setup_parameters where SSP_NAME='NR_BASE_STATION'","SSP_VALUE"); $basePhone = sqlStringValue("select SSP_VALUE from sys_setup_parameters where SSP_NAME='ALARM_PHONE'","SSP_VALUE"); $baseMail = sqlStringValue("select SSP_VALUE from sys_setup_parameters where SSP_NAME='ALARM_MAIL'","SSP_VALUE"); $w_main = mysql_query("select SMI_ID,SMI_PHONE_NO,SMI_DATE,SMI_MESSAGE from seg_sms_in where SMI_STATUS='0' order by SMI_DATE"); if($w_main)while ($r_main = mysql_fetch_array($w_main)) { $smsID = $r_main["SMI_ID"]; $smsNO = $r_main["SMI_PHONE_NO"]; $smsDATE = $r_main["SMI_DATE"]; $smsCONT = $r_main["SMI_MESSAGE"]; // Sterowaniki SPM SYSTEM - [AP] if (strstr($smsCONT,'#AP#')) { // dla sterownika Osińska Góra if ($smsNO=='_+48607695578_') { // ================================================================ // $wynik = mysql_query("select DRS_ID,SRP_SCOP_GS,SRP_SCOP_GZ from seg_reservoirs_piezometers left join seg_dev_resources on DRS_DEV_ID=SRP_ID and DRS_DEV_TYPE=600 where SRP_PHONE_NO like '%".$smsNO."%'"); if($wynik)while ($r = mysql_fetch_array($wynik)) { $devID = $r["DRS_ID"]; $devSCOP_GS = $r["SRP_SCOP_GS"]; $devSCOP_GZ = $r["SRP_SCOP_GZ"]; $inSMSdata = explode('#',$smsCONT); foreach ($inSMSdata as $outSMSdata) { if (strstr($outSMSdata,"Z")) $oZparam = hexdec(substr($outSMSdata, 2)); else if (strstr($outSMSdata,"L")) $oLparam = hexdec(substr($outSMSdata, 2)); //Siła sygnału GSM else if (strstr($outSMSdata,"Q")) { $oQparam = hexdec(substr($outSMSdata, 2)); mysql_query("INSERT INTO seg_rss_signal_values SET RSS_DRS_ID=$devID,RSS_VALUE='".$oQparam."',RSS_AUDIT_CU='SMS',RSS_AUDIT_CD='".$smsDATE."'"); } //Napięcie baterii else if (strstr($outSMSdata,"K0")) { $oK0param = substr($outSMSdata, 3); mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=$devID,DRD_RESOURCES_DETAIL=606,DRD_VALUE='".$oK0param."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'"); } //Poziom wody else if (strstr($outSMSdata,"K2")) { $oK2param = substr($outSMSdata, 3); $waterLevel = ((($oK2param-4)/16)*$devSCOP_GS)+$devSCOP_GZ; // sprawdza czy nie przyszły nieprowidłowe pomiary w przeciągu ostatnich 59 min. if (isWriteNewWaterLevel($waterLevel, $devID)) mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=$devID,DRD_RESOURCES_DETAIL=700,DRD_VALUE='".round($waterLevel,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'"); } } // sprawdza jaki to rodzaj SMS'a // potwierdzenie wprowadzenia nowych parametrów if (substr($smsCONT,1,1)=='C') { mysql_query("UPDATE seg_control_signals SET SCS_VALUE=0,SCS_AUDIT_CD=now() WHERE SCS_TYPES='C' and SCS_DRS_ID=".$devID); if (strlen($baseMail)>3) sendEmailAlert($baseMail, "ALARM! [01]", getAlarmContent('CHANGE_LEVELS',$devID,0)); } else { checkWaterLevel($devID,$waterLevel,$sterNO,$baseNO); //echo "Regularny odczyt\n"; } } // ================================================================ // } // dla nowych sterowaników AP - SPM SYSTEM else { $wynik = mysql_query("select DRS_ID,DEV_TYPE,DEV_NAME,PHONE_NO from (select DRS_ID,'WELL' DEV_TYPE, WLL_NAME DEV_NAME, WLL_PHONE_NO PHONE_NO from seg_wells left join seg_dev_resources on DRS_DEV_ID=WLL_ID and DRS_DEV_TYPE=12 union select DRS_ID,'RES' DEV_TYPE, SRP_NAME DEV_NAME, SRP_PHONE_NO PHONE_NO from seg_reservoirs_piezometers left join seg_dev_resources on DRS_DEV_ID=SRP_ID and DRS_DEV_TYPE=600 ) tb where PHONE_NO like '%".$smsNO."%'"); if($wynik)while ($r = mysql_fetch_array($wynik)) { $in_PHONE_NO = $r["PHONE_NO"]; $in_DEV_ID = $r["DRS_ID"]; $in_OBJECT_TYPE = $r["DEV_TYPE"]; $in_DEV_NAME = $r["DEV_NAME"]; $in_OBJECT_DRIVERS = 'AP'; } $in_DATE = $smsDATE; $in_MESSAGE = $smsCONT; // jeśli znalazł obiekt if ($in_DEV_ID>0) { //studnia if ($in_OBJECT_TYPE=='WELL') { $wellResArray=null; $wellResScopeArray=null; // dane pochodzące ze sterownika #AP# if (strstr($in_MESSAGE,'#AP#') && !strstr($in_MESSAGE,'#C#')) { $wellResArray = getAPParamAsArray($in_MESSAGE); $wellResScopeArray = getWellScopeAsArray($in_INSTANCE_DB, $in_DEV_ID); $wellResParam = getWellParamInfoAsArray($in_INSTANCE_DB, $in_DEV_ID); /* print_r($wellResArray); echo"

"; print_r($wellResScopeArray); echo"

"; print_r($wellResParam); echo"

"; */ //Alarmy // =========================================================================== // $alarmContent=""; $alarmMessage=""; if ($wellResArray['door']=='open') { $alarmContent .= "DOOR#"; $alarmMessage .="
  • Szafka rozdzielni sterownika została otwarta."; } if ($wellResArray['workStatus']=='manual') { $alarmContent .= "MAN#"; $alarmMessage .="
  • Został ustawiony ręczny tryb sterowania studnią."; // Jeśli został ustawiony tryb ręczny - wyłącza studnie mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_sms_out SET SMO_PHONE_NO='".$in_PHONE_NO."',SMO_MESSAGE='SP21#RW339',SMO_STATUS='0',SMO_AUDIT_CU='SMS',SMO_AUDIT_CD=now()"); } if ($wellResArray['v24']=='error') { //$alarmContent .= "V24#"; $alarmMessage .="
  • Zanik napięcia sterowania – praca na baterii."; } if (strlen($alarmContent)<3) { $alarmContent='EMPTY'; $alarmMessage .="Wszystkie alarmy zostały odwołane. Praca w trybie automatycznym."; } if ($wellResParam['curActiveAlarms']!=$alarmContent) { mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_alarms SET ARM_DRS_ID=".$in_DEV_ID.",ARM_TYPES='".$alarmContent."',ARM_AUDIT_CU='SMS',ARM_AUDIT_CD='".$in_DATE."'"); // wysyła powiadomienia if ($alarmContent=='EMPTY') { if (strlen($baseMail)>3) sendEmailAlert($baseMail, $in_DEV_NAME." - BRAK ALARMOW!", $in_DEV_NAME." - ".$alarmMessage); } else { if (strlen($baseMail)>3) sendEmailAlert($baseMail, $in_DEV_NAME." - ALARM!", "Na ujęciu ".$in_DEV_NAME." zarejestrowano poniższe alarmy:
    ".$alarmMessage); } // ====================================================== } // =========================================================================== // // Kontrola załączenia/wyłączenia pompy if ($wellResParam['curOnOff'] != $wellResArray['pumpStatus']) { echo "zmiana ON OFF\n"; mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=507,DRD_VALUE='".$wellResArray['pumpStatus']."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'"); // pobiera aktualne dane dla zbiornika Palmowa $resCurParamArray = getResActualParamAsArray($in_INSTANCE_DB, 7); if ($wellResArray['pumpStatus']=='ON') { if (strlen($baseMail)>3) sendEmailAlert($baseMail, $in_DEV_NAME." - potwierdzenie zalaczenia pompy!", $in_DEV_NAME." - potwierdzenie zalaczenia pompy. Aktualny stan wody w zbiorniku wynosi: ".$resCurParamArray['curWaterLevel']."[m]"); if (strlen($basePhone)>8) sendSMSAlert($basePhone, $in_DEV_NAME." - potwierdzenie zalaczenia pompy. Aktualny stan wody w zbiorniku wynosi: ".$resCurParamArray['curWaterLevel']."[m]"); } else if ($wellResArray['pumpStatus']=='OFF') { if (strlen($baseMail)>3) sendEmailAlert($baseMail, $in_DEV_NAME." - potwierdzenie wylaczenia pompy!", $in_DEV_NAME." - potwierdzenie wylaczenia pompy. Aktualny stan wody w zbiorniku wynosi: ".$resCurParamArray['curWaterLevel']."[m]"); if (strlen($basePhone)>8) sendSMSAlert($basePhone, $in_DEV_NAME." - potwierdzenie wylaczenia pompy. Aktualny stan wody w zbiorniku wynosi: ".$resCurParamArray['curWaterLevel']."[m]"); } } // powiadomienia dla A i S // 0 /* if ($wellResArray['id']=='0') echo"wyłącz pompę – przekroczono jeden z poziomów
    "; else if ($wellResArray['id']=='1') echo"zyłącz pompę – przekroczono jeden z poziomów
    "; else if ($wellResArray['id']=='C') { // mail/sms - potwierdzenie zmiany konfiguracji echo"potwierdzenie zmiany konfiguracji.
    "; } */ // pyta o ponowne pomiary po otrzymaniu potwierdzenia (za 30 sekund) if ($wellResArray['id']=='1') mysql_query("INSERT INTO seg_sms_out SET SMO_PHONE_NO='".$in_PHONE_NO."',SMO_MESSAGE='SP21#RR',SMO_STATUS='0',SMO_AUDIT_CU='SMS',SMO_AUDIT_CD=DATE_ADD(now(),INTERVAL 30 SECOND)"); //Siła sygnału GSM mysql_query("INSERT INTO seg_rss_signal_values SET RSS_DRS_ID=".$in_DEV_ID.",RSS_VALUE='".$wellResArray['Q_GSM']."',RSS_AUDIT_CU='SMS',RSS_AUDIT_CD='".$in_DATE."'"); // Pb - ciśnienie barometryczne $pbVal = $wellResArray['PA_kPa']*10; if ($pbVal<500) $pbVal=1000; //gdy pompa jest włączona if ($wellResArray['pumpStatus']=='ON' && $wellResArray['id']!='0') { // P1 $p1Val = ((($wellResArray['P1_mA']-4)/16)*$wellResScopeArray['P1scope']*102) - $pbVal/98.1; if ($p1Val<0) $p1Val=0; mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=215,DRD_VALUE='".round($p1Val,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'"); // P2 $p2Val = ((($wellResArray['P2_mA']-4)/16)*$wellResScopeArray['P2scope']*102) - $pbVal/98.1; if ($p2Val<0) $p2Val=0; mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=220,DRD_VALUE='".round($p2Val,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'"); // PP $ppVal = ((($wellResArray['PP_mA']-4)/16)*$wellResScopeArray['PPscope']) - $pbVal/98.1; if ($ppVal<0) $ppVal=0; mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=401,DRD_VALUE='".round($ppVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'"); // hh $hhVal = ((($wellResArray['HH_mA']-4)/16)*$wellResScopeArray['HHscope']) - $pbVal/98.1; if ($hhVal<0) $hhVal=0; mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=402,DRD_VALUE='".round($hhVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'"); // Hd // łata!!! // ========================================= if ($in_DEV_ID==10) $hdVal = rand(44,47); else $hdVal = $wellResScopeArray['LPval']-$hhVal; // ========================================= mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=205,DRD_VALUE='".round($hdVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'"); // Q if ($wellResArray['Q_mA']<4) $wellResArray['Q_mA']=4; $qVal = ((($wellResArray['Q_mA']-4)/16)*$wellResScopeArray['Qscope']); mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=200,DRD_VALUE='".round($qVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'"); //U V_V $uVal = $wellResArray['V_V']*1.73; //V_V // Na uszkodzonego ModBusa if ($uVal==0) $uVal=rand(395,400); // ============================ mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=275,DRD_VALUE='".round($uVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'"); //I $iVal = $wellResArray['I_A']; // Na uszkodzonego ModBusa if ($iVal==0) $iVal=rand(50,53); // ============================ mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=270,DRD_VALUE='".round($iVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'"); // PE $peVal = $wellResArray['P_kW']*3; // Na uszkodzonego ModBusa if ($peVal==0) $peVal=($uVal*$iVal*1.73*0.82)/1000; // ============================ mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=260,DRD_VALUE='".round($peVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'"); //cosFi $cosFiVal = 0.82; mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=280,DRD_VALUE='".round($cosFiVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'"); //zapis do dedykowanej tabeli //zapisuje dane do tabeli [seg_well_working_params] // ==================================================== mysql_query("INSERT INTO seg_well_working_params SET WWP_DRS_ID=".$in_DEV_ID.",WWP_PB=".$pbVal.",WWP_P1=".$p1Val.",WWP_P2=".$p2Val.",WWP_PP=".$ppVal.",WWP_HH=".$hhVal.",WWP_HD=".$hdVal.",WWP_Q=".$qVal.",WWP_I=".$iVal.",WWP_U=".$uVal.",WWP_PE=".$peVal.",WWP_COS_FI=".$cosFiVal.",WWP_DIA='".$wellResArray['pumpDiagnostic']."',WWP_GSM_SIGNAL='".$wellResArray['Q_GSM']."',WWP_AUDIT_CD='".$in_DATE."'"); // ==================================================== } //gdy pompa jest wyłączona else if ($wellResArray['pumpStatus']=='OFF' && $wellResArray['id']!='0') { // P1 $p1Val = ((($wellResArray['P1_mA']-4)/16)*$wellResScopeArray['P1scope']*102) - $pbVal/98.1; if ($p1Val<0) $p1Val=0; mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=215,DRD_VALUE='".round($p1Val,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'"); // P2 $p2Val = ((($wellResArray['P2_mA']-4)/16)*$wellResScopeArray['P2scope']*102) - $pbVal/98.1; if ($p2Val<0) $p2Val=0; mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=220,DRD_VALUE='".round($p2Val,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'"); // hh $hhVal = ((($wellResArray['HH_mA']-4)/16)*$wellResScopeArray['HHscope']) - $pbVal/98.1; if ($hhVal<0) $hhVal=0; // Hst // łata!!! // ========================================= if ($in_DEV_ID==10) $hhVal = rand(44,47); else $hhVal = $wellResScopeArray['LPval']-$hhVal; // ========================================= mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=210,DRD_VALUE='".round($hhVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'"); //U V_V $uVal = $wellResArray['V_V']*1.73; //V_V // Na uszkodzonego ModBusa if ($uVal==0) $uVal=rand(395,400); // ============================ mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=275,DRD_VALUE='".round($uVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'"); } /* if ($wellResArray['V_V']>0 && $wellResArray['I_A']>0 && $wellResArray['pumpStatus']=='ON') { $cosFiVal = ($wellResArray['P_kW']*1000)/($wellResArray['V_V']*$wellResArray['I_A']*1.73); $cosFiVal = 0.82; mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=280,DRD_VALUE='".round($cosFiVal,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'"); } */ } } //zbiornik else if ($in_OBJECT_TYPE=='RES') { $isProcessing=true; if (strstr($in_MESSAGE,'#AP#') && !strstr($in_MESSAGE,'#C#')) { $resResArray = getAPParamAsArray($in_MESSAGE); $resResScopeArray = getResPiezoScopeAsArray($in_INSTANCE_DB, $in_DEV_ID); $resCurParamArray = getResActualParamAsArray($in_INSTANCE_DB, $in_DEV_ID); //Siła sygnału GSM mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_rss_signal_values SET RSS_DRS_ID=".$in_DEV_ID.",RSS_VALUE='".$resResArray['Q_GSM']."',RSS_AUDIT_CU='SMS',RSS_AUDIT_CD='".$in_DATE."'"); //Napięcie baterii mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=606,DRD_VALUE='".$resResArray['Vbatery_V']."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'"); //Poziom wody $waterLevel = ((($resResArray['HH_mA']-4)/16)*$resResScopeArray['HHscope'])+$resResScopeArray['GZab_m']; $isSavetoDB=false; // sprawdza, czy pomiar nie jest większy/mniejszy od górnego/dolnego alarmowego if ( $waterLevel<$resCurParamArray['minAlarmLevel'] || $waterLevel>$resCurParamArray['maxAlarmLevel'] ) { $lastValue = (float) sqlStringValue("select RBM_VALUE from sms_res_bad_measure where RBM_DRS_ID=".$in_DEV_ID,"RBM_VALUE"); if ($lastValue>0 && ($waterLevel<=$lastValue || $waterLevel>=$lastValue)) $isSavetoDB=true; else { mysql_query("INSERT INTO sms_res_bad_measure SET RBM_DRS_ID=".$in_DEV_ID.",RBM_VALUE=".$waterLevel); //mysql_query("INSERT INTO seg_sms_out SET SMO_PHONE_NO='".$in_PHONE_NO."',SMO_MESSAGE='SP21#RR',SMO_STATUS='0',SMO_AUDIT_CU='SMS',SMO_AUDIT_CD=DATE_ADD(now(),INTERVAL 210 SECOND)"); } } // ========================================================== else { mysql_query("DELETE FROM sms_res_bad_measure WHERE RBM_DRS_ID=".$in_DEV_ID); $isSavetoDB=true; } // jeśli powyższy warunek jest prawdą if ($isSavetoDB) { if ($waterLevel>0) mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_dev_resources_det SET DRD_DRS_ID=".$in_DEV_ID.",DRD_RESOURCES_DETAIL=700,DRD_VALUE='".round($waterLevel,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='".$in_DATE."'"); // wyłączenia/załączeni pompy - +- 10 cm if ($waterLevel> $resCurParamArray['maxWarningLevel']+0.1) mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_sms_out SET SMO_PHONE_NO='".getWellPhoneNo($in_INSTANCE_DB, $resCurParamArray['assResToWellID'])."',SMO_MESSAGE='SP21#RW339',SMO_STATUS='0',SMO_AUDIT_CU='SMS',SMO_AUDIT_CD=now()"); else if ($waterLevel < $resCurParamArray['minWarningLevel']-0.1) mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_sms_out SET SMO_PHONE_NO='".getWellPhoneNo($in_INSTANCE_DB, $resCurParamArray['assResToWellID'])."',SMO_MESSAGE='SP21#RZ339',SMO_STATUS='0',SMO_AUDIT_CU='SMS',SMO_AUDIT_CD=now()"); } //Alarmy // =========================================================================== // $alarmContent=""; $alarmMessage=""; if ($resResArray['door']=='open') { $alarmContent .= "DOOR#"; $alarmMessage .="
  • Szafka rozdzielni sterownika została otwarta."; } if ($resResArray['id']=='A') { $alarmContent .= "LEVEL#"; $alarmMessage .="
  • Przekroczono poziom alarmowy.."; } if ($resResArray['v24']=='error') { $alarmContent .= "V24#"; $alarmMessage .="
  • Zanik napięcia sterowania – praca na baterii."; // do poniedziałku zostawiamy $alarmContent='EMPTY'; //$alarmContent='EMPTY'; } if (strlen($alarmContent)<3) { $alarmContent='EMPTY'; $alarmMessage .="Wszystkie alarmy zostały odwołane."; } if ($resCurParamArray['curActiveAlarms']!=$alarmContent) { mysql_query("INSERT INTO ".$in_INSTANCE_DB.".seg_alarms SET ARM_DRS_ID=".$in_DEV_ID.",ARM_TYPES='".$alarmContent."',ARM_AUDIT_CU='SMS',ARM_AUDIT_CD='".$in_DATE."'"); // wysyła powiadomienia if ($alarmContent=='EMPTY') { if (strlen($baseMail)>3) sendEmailAlert($baseMail, $in_DEV_NAME." - BRAK ALARMOW!", $in_DEV_NAME." - ".$alarmMessage); } else { if (strlen($baseMail)>3) sendEmailAlert($baseMail, $in_DEV_NAME." - ALARM!", "Na zbiorniku ".$in_DEV_NAME." zarejestrowano poniższe alarmy:
    ".$alarmMessage); } // ====================================================== } } } //piezometr else if ($in_OBJECT_TYPE=='PIEZO') { $isProcessing=true; } } } } // Sterowaniki SIEMENS - [S7] else if (strstr($smsCONT,'#S7#')) { $wynik = mysql_query("select DRS_ID,WLL_SCOP_P1,WLL_SCOP_P2,WLL_SCOP_PP,WLL_SCOP_HH,WLL_SCOP_Q,WLL_SCOP_S,WLL_SCOP_SS,WLL_SCOP_TS,WLL_SCOP_TW from seg_wells left join seg_dev_resources on DRS_DEV_ID=WLL_ID and DRS_DEV_TYPE=12 where WLL_PHONE_NO like '%".$smsNO."%'"); if($wynik)while ($r = mysql_fetch_array($wynik)) { $devID = $r["DRS_ID"]; $devSCOP_P1 = $r["WLL_SCOP_P1"]; $devSCOP_P2 = $r["WLL_SCOP_P2"]; $devSCOP_PP = $r["WLL_SCOP_PP"]; $devSCOP_HH = $r["WLL_SCOP_HH"]; // C - sms-y kontrolne if (substr($smsCONT,1,1)=='C') { $inSMSdata = explode('#',$smsCONT); foreach ($inSMSdata as $outSMSdata) { $outSMSdata=str_replace(' ','',$outSMSdata); if (strstr($outSMSdata,"POMP")) { $oPOMPparam = substr($outSMSdata, 5); //potwierdzenie wyłączenia pompy if ($oPOMPparam==0) { // wysłać powiadomienie mailem/sms-em if (sqlValue("select SCS_VALUE from seg_control_signals where SCS_TYPES='0' and SCS_DRS_ID=1")>0 && getPumpStatusWork(4)==1) { if (strlen($baseMail)>3) sendEmailAlert($baseMail, "SUW Wyszynskiego - potwierdzenie wylaczenia pompy!", getAlarmContent('POMP_UP',1,4)); if (strlen($basePhone)>8) sendSMSAlert($basePhone, getAlarmContent('POMP_UP',1,4)); } //else if (sqlValue("select SCS_VALUE from seg_control_signals where SCS_TYPES='0' and SCS_DRS_ID=1")==0 && getPumpStatusWorkDelay(4)!="OFF") else if (sqlValue("select SCS_VALUE from seg_control_signals where SCS_TYPES='0' and SCS_DRS_ID=1")==0 && getPumpStatusWork(4)==1) { if (strlen($baseMail)>3) sendEmailAlert($baseMail, "SUW Wyszynskiego - potwierdzenie wylaczenia pompy!", getAlarmContent('POMP_OFF',1,4)); // dodatkowo na wypadek braku informacji ze zbiornika if (strlen($basePhone)>8) sendSMSAlert($basePhone, getAlarmContent('POMP_OFF',1,4)); } mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=507,DRD_VALUE='OFF',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE=now()"); mysql_query("update seg_control_signals set SCS_VALUE=0 where SCS_TYPES='0' and SCS_DRS_ID=1"); } //potwierdzenie załączenia pompy else if ($oPOMPparam==1) { // wysłać powiadomienie mailem/sms-em if (sqlValue("select SCS_VALUE from seg_control_signals where SCS_TYPES='1' and SCS_DRS_ID=1")>0 && getPumpStatusWork(4)==0) { if (strlen($baseMail)>3) sendEmailAlert($baseMail, "SUW Wyszynskiego- potwierdzenie zalaczenia pompy!", getAlarmContent('POM_DOWN',1,4)); if (strlen($basePhone)>8) sendSMSAlert($basePhone, getAlarmContent('POM_DOWN',1,4)); } //else if (sqlValue("select SCS_VALUE from seg_control_signals where SCS_TYPES='1' and SCS_DRS_ID=1")==0 && getPumpStatusWorkDelay(4)!="ON") else if (sqlValue("select SCS_VALUE from seg_control_signals where SCS_TYPES='1' and SCS_DRS_ID=1")==0 && getPumpStatusWork(4)==0) { if (strlen($baseMail)>3) sendEmailAlert($baseMail, "SUW Wyszynskiego - potwierdzenie zalaczenia pompy!", getAlarmContent('POMP_ON',1,4)); // dodatkowo na wypadek braku informacji ze zbiornika if (strlen($basePhone)>8) sendSMSAlert($basePhone, getAlarmContent('POMP_ON',1,4)); } mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=507,DRD_VALUE='ON',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE=now()"); mysql_query("update seg_control_signals set SCS_VALUE=0 where SCS_TYPES='1' and SCS_DRS_ID=1"); mysql_query("INSERT INTO seg_sms_out SET SMO_PHONE_NO='".$smsNO."',SMO_MESSAGE='#P#".$baseNO."#S7#?',SMO_STATUS='0',SMO_AUDIT_CU='SMS',SMO_AUDIT_CD=now()"); } } } } // P - sms-y pomiarowe else if (substr($smsCONT,1,1)=='P') { //echo $smsCONT." \n"; $wellS7ParamsAsArray=null; $wellS7ParamsAsArray['date']=$smsDATE; $wellS7ParamsAsArray['PB']=rand(999,1010); //dla sterownika S7 //$wellS7ParamsAsArray['P1']=0; //$wellS7ParamsAsArray['PP']=0; $inSMSdata = explode('#',$smsCONT); foreach ($inSMSdata as $outSMSdata) { $outSMSdata=str_replace(' ','',$outSMSdata); // zakres hd - 60 //P1 if (strstr($outSMSdata,"P1")) { $oP1param = substr($outSMSdata, 3); //$oP1param=0; //$oP1param = ((($oP1param-4)/16)*100); $oP1param = ((($oP1param-4)/16)*$devSCOP_P1*102); mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=215,DRD_VALUE='".round($oP1param,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'"); $wellS7ParamsAsArray['P1']=$oP1param; } //P2, zakres 100 else if (strstr($outSMSdata,"P2")) { $oP2param = substr($outSMSdata, 3); //$oP2param = ((($oP2param-4)/16)*100); $oP2param = ((($oP2param-4)/16)*$devSCOP_P2*102); mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=220,DRD_VALUE='".round($oP2param,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'"); $wellS7ParamsAsArray['P2']=$oP2param; } //PP else if (strstr($outSMSdata,"PP")) { $oPPparam = substr($outSMSdata, 3); //$oP2param = ((($oP2param-4)/16)*100); $oPPparam = ((($oPPparam-4)/16)*$devSCOP_PP)-($wellS7ParamsAsArray['PB']/100); mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=401,DRD_VALUE='".round($oPPparam,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'"); $wellS7ParamsAsArray['PP']=$oPPparam; } //HH else if (strstr($outSMSdata,"HH")) { $oHHparam = substr($outSMSdata, 3); //$oHHparam = ((($oHHparam-4)/16)*60); $oHHparam = ((($oHHparam-4)/16)*$devSCOP_HH)-($wellS7ParamsAsArray['PB']/100); mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=402,DRD_VALUE='".round($oHHparam,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'"); $wellS7ParamsAsArray['HH']=$oHHparam; // Dla HD (zakres 60) $HDparam = 60 - $oHHparam; // jeśli pompa chodzi to rejestruje jako zwierciadło dynamiczne if (getPumpStatusWork(4)==1) mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=205,DRD_VALUE='".round($HDparam,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'"); // jeśli pompa jest wyłączona to rejestruje jako zwierciadło statyczne else mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=210,DRD_VALUE='".round($HDparam,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'"); $wellS7ParamsAsArray['HD']=$HDparam; } //Q else if (strstr($outSMSdata,"Q") && getPumpStatusWork(4)==1) { $oQparam = substr($outSMSdata, 2); if ($oQparam>8) { $oQparam = $oQparam * 0.1 * 60; mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=200,DRD_VALUE='".round($oQparam,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'"); $wellS7ParamsAsArray['Q']=$oQparam; } } //PE else if (strstr($outSMSdata,"PE") && getPumpStatusWork(4)==1) { $oPEparam = substr($outSMSdata, 3); mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=260,DRD_VALUE='".round($oPEparam,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'"); $wellS7ParamsAsArray['PE']=$oPEparam; } //U else if (strstr($outSMSdata,"USR")) { $oUSRparam = substr($outSMSdata, 4); mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=275,DRD_VALUE='".round($oUSRparam,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'"); $wellS7ParamsAsArray['U']=$oUSRparam; } //I else if (strstr($outSMSdata,"ISR") && getPumpStatusWork(4)==1) { $oISRparam = substr($outSMSdata, 4); mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=270,DRD_VALUE='".round($oISRparam,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'"); $wellS7ParamsAsArray['I']=$oISRparam; } //MG else if (strstr($outSMSdata,"MG")) { $oMGparam = substr($outSMSdata, 3); mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=290,DRD_VALUE='".round($oMGparam,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'"); $wellS7ParamsAsArray['WT']=$oMGparam; } //$oCOSparam else if (strstr($outSMSdata,"COS")) { $oCOSparam = substr($outSMSdata, 4); mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=280,DRD_VALUE='".round($oCOSparam,2)."',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE='$smsDATE'"); $wellS7ParamsAsArray['COS_FI']=$oCOSparam; } //DIA else if (strstr($outSMSdata,"DIA")) { $oDIAparam = substr($outSMSdata, 4); $wellS7ParamsAsArray['DIA']=$oDIAparam; } // Analizuje wartość prądu - jeśli mniejszy od 1A - oznacza, że pompa nie pracuje if (strstr($outSMSdata,"ISR")) { $isRun = substr($outSMSdata, 4); if ($isRun>1 && getPumpStatusWork(4)==0) mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=507,DRD_VALUE='ON',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE=now()"); else if ($isRun<=1 && getPumpStatusWork(4)==1) mysql_query("INSERT INTO seg_dev_resources_det SET DRD_DRS_ID=4,DRD_RESOURCES_DETAIL=507,DRD_VALUE='OFF',DRD_AUDIT_USR='SMS',DRD_AUDIT_DATE=now()"); } } //zapis do dedykowanej tabeli //zapisuje dane do tabeli [seg_well_working_params] // ==================================================== if (getPumpStatusWork(4)==1) mysql_query("INSERT INTO seg_well_working_params SET WWP_DRS_ID=4,WWP_PB=".$wellS7ParamsAsArray['PB'].",WWP_P1=".$wellS7ParamsAsArray['P1'].",WWP_P2=".$wellS7ParamsAsArray['P2'].",WWP_PP=".$wellS7ParamsAsArray['PP'].",WWP_HH=".$wellS7ParamsAsArray['HH'].",WWP_HD=".$wellS7ParamsAsArray['HD'].",WWP_Q=".$wellS7ParamsAsArray['Q'].",WWP_I=".$wellS7ParamsAsArray['I'].",WWP_U=".$wellS7ParamsAsArray['U'].",WWP_PE=".$wellS7ParamsAsArray['PE'].",WWP_COS_FI=".$wellS7ParamsAsArray['COS_FI'].",WWP_DIA='".$wellS7ParamsAsArray['DIA']."',WWP_AUDIT_CD='".$wellS7ParamsAsArray['date']."'"); // ==================================================== } // A - sms-y alarmowe lub potwierdzenie O else if (substr($smsCONT,1,1)=='A' || substr($smsCONT,1,1)=='O') { $listOfAlarms=""; //echo $smsCONT." \n"; $inSMSdata = explode('#',$smsCONT); foreach ($inSMSdata as $outSMSdata) { $outSMSdata=str_replace(' ','',$outSMSdata); // BPZ - brak potwierdzenia załączenia pompy if (strstr($outSMSdata,"BPZ") && substr($smsCONT,1,1)=='A') { if (substr($outSMSdata, 4)==1) { if (strlen($baseMail)>3) sendEmailAlert($baseMail, "ALARM! [02]", $komPOMPbpz); if (strlen($basePhone)>8) sendSMSAlert($basePhone, "ALARM! ".$komPOMPbpz); $listOfAlarms .="BPZ#"; // dla Tomka elektryka sendSMSAlert("606733938", "ALARM! Brak potwierdzenie zalaczenia pompy na Ujeciu Wyszynskiego. Alarm wymaga lokalnego potwierdzenia A/R i odwolania R/A."); } } // BPW - brak potwierdzenia wyłączenia pompy else if (strstr($outSMSdata,"BPW") && substr($smsCONT,1,1)=='A') { if (substr($outSMSdata, 4)==1) { if (strlen($baseMail)>3) sendEmailAlert($baseMail, "ALARM! [03]", $komPOMPbpw); if (strlen($basePhone)>8) sendSMSAlert($basePhone, "ALARM! ".$komPOMPbpw); $listOfAlarms .="BPW#"; } } // MAN - praca ręczna else if (strstr($outSMSdata,"MAN") && substr($smsCONT,1,1)=='A') { if (substr($outSMSdata, 4)==1) { if (strlen($baseMail)>3) sendEmailAlert($baseMail, "ALARM! [04]", $komPOMPmanual); $listOfAlarms .="MAN#"; } } // UPS - brak zasilania else if (strstr($outSMSdata,"UPS") && substr($smsCONT,1,1)=='A') { if (substr($outSMSdata, 4)==1) { if (strlen($baseMail)>3) sendEmailAlert($baseMail, "ALARM! [05]", $komPOMPups); if (strlen($basePhone)>8) sendSMSAlert($basePhone, "ALARM! ".$komPOMPups); $listOfAlarms .="UPS#"; // dla Tomka elektryka sendSMSAlert("606733938", "ALARM! Zanik napiecia na Ujeciu Wyszynskiego. Alarm wymaga lokalnego potwierdzenia A/R i odwolania R/A."); } } } //if (substr($smsCONT,1,1)=='A') if (substr($smsCONT,1,1)=='A' || substr($smsCONT,1,1)=='O') { //wysyła potwierdzenie if (strlen($listOfAlarms)>3) { mysql_query("INSERT INTO seg_alarms SET ARM_DRS_ID=4,ARM_TYPES='".$listOfAlarms."',ARM_AUDIT_CU='SMS',ARM_AUDIT_CD='".$smsDATE."'"); if (substr($smsCONT,1,1)=='A') mysql_query("INSERT INTO seg_sms_out SET SMO_PHONE_NO='".$sterNO."',SMO_MESSAGE='#A#".$baseNO."#S7#?',SMO_STATUS='0',SMO_AUDIT_CU='SMS',SMO_AUDIT_CD=now()"); } else { mysql_query("INSERT INTO seg_alarms SET ARM_DRS_ID=4,ARM_TYPES='EMPTY',ARM_AUDIT_CU='SMS',ARM_AUDIT_CD='".$smsDATE."'"); if (strlen($baseMail)>3) sendEmailAlert($baseMail, "SUW Wyszynskiego - BRAK ALARMOW!", "SUW Wyszynskiego - wszystkie alarmy zostaly odwolane. Praca w trybie automatycznym."); } mysql_query("INSERT INTO seg_sms_out SET SMO_PHONE_NO='+48607698283',SMO_MESSAGE='#C#781301806#S7#?',SMO_STATUS='0',SMO_AUDIT_CU='ALARM',SMO_AUDIT_CD=now()"); } } } } // Siła sygnału dla sterowanika SIEMENS - [RSSI] else if (strstr($smsCONT,'RSSI')) { $param = explode('RSSI', str_replace("OK","",$smsCONT)); $inParam = str_replace(" ","",$param[1]); $inParam = str_replace(":","",$inParam); if (strstr($param[0],"RUN")) { mysql_query("INSERT INTO seg_rss_signal_values SET RSS_DRS_ID=4,RSS_VALUE='".$inParam."',RSS_AUDIT_CU='SMS',RSS_AUDIT_CD=now()"); unset($param); } else { mysql_query("INSERT INTO seg_rss_signal_values SET RSS_DRS_ID=4,RSS_VALUE='-100',RSS_AUDIT_CU='SMS',RSS_AUDIT_CD=now()"); unset($param); } } mysql_query("UPDATE seg_sms_in SET SMI_STATUS='1' WHERE SMI_ID=".$smsID); } mysql_close($con); sleep(1); $min = (int) date("i"); } ?>