Ankündigung

Einklappen
Keine Ankündigung bisher.

Hexstring aus interner Website an Edomi übergeben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Blaky1612
    antwortet
    Funktioniert
    Danke an alle für die Hilfe

    Einen Kommentar schreiben:


  • vento66
    antwortet
    Dann versuchs mal hiermit:

    PHP-Code:
    ###[DEF]###
    [name = Atlas]

    [e#1 = Trigger != 0]
    [e#2 = IP]
    [e#3 = TraceLog #init=0 ]

    [a#1 = Kompressorauslass]
    [a#2 = relative Feuchtigkeit]
    [a#3 = Vessel Pressure]
    [a#4 = Elementauslass]
    [a#5 = Drucktaupunkt]
    [a#6 = Umgebungsluft]
    [a#7 = Wassereinlass]
    [a#8 = Wasserauslass]
    [a#9 = Notaus]
    [a#10 = Ventilatorüberlast]
    [a#11 = Fernstart]
    [a#12 = Kondensatablass]
    [a#13 = Active Power Supply]
    [a#14 = Phasenfolge]
    [a#15 = Luftfilter]
    [a#16 = Druckbandauswahl]
    [a#17 = Betriebsstunden]
    [a#18 = Laststunden]
    [a#19 = Motorstarts]
    [a#20 = Lastspiele]
    [a#21 = Drehzahlanteil 0-20%]
    [a#22 = Drehzahlanteil 20-40%]
    [a#23 = Drehzahlanteil 40-60%]
    [a#24 = Drehzahlanteil 60-80%]
    [a#25 = Drehzahlanteil 80-100%]
    [a#26 = Trocknerstarts]
    [a#27 = Lüfterstarts]
    [a#28 = Erzeugte Druckluftmenge]
    [a#29 = Reglerstunden]
    [a#30 = Abschaltungen Notaus]
    [a#31 = Direkte Stops]
    [a#32 = Starts Luftrückführung]
    [a#33 = Fehler Luftrückführung]
    [a#34 = Geringe Laststunden]
    [a#35 = Available Hours]
    [a#36 = Unavailable Hours]
    [a#37 = Emergency Stop Hours]
    [a#38 = Derating Weak Grid Hours]
    [a#39 = Derating Starts Weak Grid]
    [a#40 = Additional Derating Starts Weak Grid]
    [a#41 = Umrichter rpm]
    [a#42 = Umrichter %]
    [a#43 = Umrichter Ampere]
    [a#44 = Maschinenstatus]
    [a#45 = DA1]
    [a#46 = DA2]
    [a#47 = DA3]
    [a#48 = DA4]
    [a#49 = DA5]
    [a#50 = DA6]
    [a#51 = DA7]
    [a#52 = DA8]
    [a#53 = String]
    [a#54 = Abfragefehler]

    [v#1 = 0] 1 wenn EXEC-Script läuft
    [v#2 = -1] letzteStatusId
    [v#3 = 0]

    ###[/DEF]###
    ###[HELP]###
    ###[/HELP]###

    ###[LBS]###
    <?
    function LB_LBSID( $id ) {
    if ( $E = logic_getInputs( $id ) ) {
    if ( $E[ 1 ][ 'value' ] != 0 && $E[ 1 ][ 'refresh' ] == 1 ) {
    if ( logic_getVar( $id, 1 ) == 0 ) {
    logic_setVar( $id, 1, 1 ); // EXEC-Skript blockieren
    logic_callExec( LBSID, $id );
    }
    }
    }
    }
    ?>
    ###[/LBS]###

    ###[EXEC]###
    <?
    // ===== Vorbereitung
    require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php");
    set_time_limit(30); // in Sekunden
    sql_connect();

    if ($E=logic_getInputs($id)) {
    $fehler = false;
    $ip = $E[2]['value'];
    $trace = $E[3]['value'];

    $vars = logic_getVars($id);
    $letzteStatusId = $vars[1];

    $url = "http://" . $ip . "/cgi-bin/mkv.cgi";
    $data ='QUESTION=30020830020930020b30020d30020e30020f300 21030021130030130030230030330030430030530030630030 730030a3007013007023007033007043007053007063007073 0070830070930070a30070b30070c30070d30070e30070f300 71430071530071830072230072330072430072530072630072 730210130210530210a3005013005023005033005043005053 00506300507300508300509300e02300e03300e04300e18300 e2a31130131130331130431130531130731130831130931130 a31130b31130c31130d31130e31130f3113103113113113123 1131331131431131531131631131731131831131931131a311 31b31131c31131d31131e31131f31132031132131132231132 331132431132531132631132731132831132931132a31132b3 1132c31132d31132e31132f311330311331311332311333311 33431133531133631133731133831133931133a31133b31133 c31133d31133e31133f3113403113413113423113433113443 1134531134631134731134831134931134a31134b31134c311 34d31134e31134f31135031135131135231135331135431135 531135631135731135831135931135a31135b31135c31135d3 1135e31135f311360311361311362311363311364311365311 36631136731140131140231140331140431140531140631140 731140831140931140a31140b31140c31140d31140e31140f3 11410311411311412300901300906300911300907300912300 90930010830140830140930141a30141b';

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER , 1);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    $content = curl_exec($ch);

    if ( $content === false ) {
    if ( $trace != 0 )
    writeToCustomLog( "Atlas$id", 'debug', "Abfrage der Daten, content === false. Fehler: " . curl_error( $ch ) );
    $fehler = true;
    curl_close( $ch );
    } else {
    $arr  = null;
    curl_close( $ch );
    $arr = str_split($content, 4);

    if(is_array($arr)){

    logic_setOutput($id,1,((hexdec($arr[0]))/1000)); //Kompressorauslass

    logic_setOutput($id,2,hexdec($arr[2])); //relative Feuchtigkeit

    logic_setOutput($id,3,((hexdec($arr[4]))/1000)); //Vessel Pressure

    logic_setOutput($id,4,((hexdec($arr[6]))/10)); //Elementauslass

    logic_setOutput($id,5,((hexdec($arr[8]))/10)); //Drucktaupunkt

    logic_setOutput($id,6,((hexdec($arr[10]))/10)); //Umgebungsluft

    logic_setOutput($id,7,((hexdec($arr[12]))/10)); //Wassereinlass

    logic_setOutput($id,8,((hexdec($arr[14]))/10)); //Wasserauslass

    logic_setOutput($id,9,hexdec($arr[16])); //Notaus

    logic_setOutput($id,10,hexdec($arr[18])); //Ventilatorüberlast

    logic_setOutput($id,11,hexdec($arr[20])); //Fernstart

    logic_setOutput($id,12,hexdec($arr[22])); //Kondensatablass

    logic_setOutput($id,13,hexdec($arr[24])); //Active Power Supply

    logic_setOutput($id,14,hexdec($arr[26])); //Phasenfolge

    logic_setOutput($id,15,hexdec($arr[28])); //Luftfilter

    logic_setOutput($id,16,hexdec($arr[30])); //Druckbandauswahl

    logic_setOutput($id,17,((hexdec($arr[32].$arr[33]))/3600)); //Betriebsstunden

    logic_setOutput($id,18,((hexdec($arr[34].$arr[35]))/3600)); //Laststunden

    logic_setOutput($id,19,hexdec($arr[36].$arr[37])); //Motorstarts

    logic_setOutput($id,20,hexdec($arr[38].$arr[39])); //Lastspiele

    logic_setVar($id,3,((hexdec($arr[40].$arr[41]))+(hexdec($arr[42].$arr[43]))+(hexdec($arr[44].$arr[45]))+(hexdec($arr[46].$arr[47]))+(hexdec($arr[48].$arr[49])))); //Variable Drehzahlanteil gesamt

    logic_setOutput($id,21,(((hexdec($arr[40].$arr[41])*100)/$vars[3]))); //Drehzahlanteil 1-20%

    logic_setOutput($id,22,(((hexdec($arr[42].$arr[43])*100)/$vars[3]))); //Drehzahlanteil 20-40%

    logic_setOutput($id,23,(((hexdec($arr[44].$arr[45])*100)/$vars[3]))); //Drehzahlanteil 40-60%

    logic_setOutput($id,24,(((hexdec($arr[46].$arr[47])*100)/$vars[3]))); //Drehzahlanteil 60-80%

    logic_setOutput($id,25,(((hexdec($arr[48].$arr[49])*100)/$vars[3]))); //Drehzahlanteil 80-100%

    logic_setOutput($id,26,hexdec($arr[50].$arr[51])); //Trocknerstarts

    logic_setOutput($id,27,hexdec($arr[52].$arr[53])); //Lüfterstarts

    logic_setOutput($id,28,((hexdec($arr[54].$arr[55])*1000))); //erzeugte Luftmenge

    logic_setOutput($id,29,((hexdec($arr[56].$arr[57]))/3600)); //Reglerstunden

    logic_setOutput($id,30,hexdec($arr[58].$arr[59])); //abschaltungen Notaus

    logic_setOutput($id,31,hexdec($arr[60].$arr[61])); //direkte Stopps

    logic_setOutput($id,32,hexdec($arr[62].$arr[63])); //Starts Luftrückführung

    logic_setOutput($id,33,hexdec($arr[64].$arr[65])); //Fehler Luftrückführung

    logic_setOutput($id,34,((hexdec($arr[66].$arr[67]))/3600)); //Geringe Last Stunden

    logic_setOutput($id,35,((hexdec($arr[68].$arr[69]))/3600)); //Available Hours

    logic_setOutput($id,36,((hexdec($arr[70].$arr[71]))/3600)); //Unavailable Hours

    logic_setOutput($id,37,((hexdec($arr[72].$arr[73]))/3600)); //Emergency Stop Hours

    logic_setOutput($id,38,((hexdec($arr[74].$arr[75]))/3600)); //Derating Weak Grid Hours

    logic_setOutput($id,39,hexdec($arr[76].$arr[77])); //Derating Starts Weak Grid

    logic_setOutput($id,40,hexdec($arr[78].$arr[79])); //Additional Derating Starts Weak Grid

    logic_setOutput($id,41,hexdec($arr[81])); //Umrichter rpm

    logic_setOutput($id,42,hexdec($arr[83])); //Umrichter %

    logic_setOutput($id,43,hexdec($arr[84])); //Umrichter Ampere

    logic_setOutput($id,44,hexdec($arr[290])); //Maschinenstatus

    logic_setOutput($id,45,hexdec($arr[88])); //

    logic_setOutput($id,46,hexdec($arr[90])); //

    logic_setOutput($id,47,hexdec($arr[92])); //

    logic_setOutput($id,48,hexdec($arr[94])); //

    logic_setOutput($id,49,hexdec($arr[96])); //

    logic_setOutput($id,50,hexdec($arr[98])); //

    logic_setOutput($id,51,hexdec($arr[100])); //

    logic_setOutput($id,52,hexdec($arr[102])); //

    logic_setOutput($id,53,$content); // String
    }
    }

    if ( $fehler == false ) {
    logic_setOutput( $id, 54, 0 );
    } else {
    logic_setOutput( $id, 54, 1 );
    }

    }

    logic_setVar($id, 1, 0); // EXEC-Skript freigeben
    sql_disconnect();



    ?>
    ###[/EXEC]###

    Einen Kommentar schreiben:


  • Blaky1612
    antwortet
    Hallo,

    mein Logikbaustein ist fertig und funktioniert einwandfrei.

    Das einzige was noch nicht ganz passt ist, das bei Projektaktivierung ins Fehlerlog geschrieben wird.
    Ich denke das kommt weil beim Start das Array noch nicht befüllt ist.
    Wie kann ich das noch ändern?

    Hier die letzten Fehlereinträge:

    Code:
     [TABLE="class: log, border: 0, cellpadding: 0, cellspacing: 0, width: 0, height: 12"]
     	 		[TR="class: sErr"]
     			[TD]2020-11-07 18:23:38[/TD]
     			[TD]946300[/TD]
     			[TD]?[/TD]
     			[TD]15693[/TD]
     			[TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000002.php | Fehlercode: 8 | Zeile: 101 | Undefined offset: 84[/TD]
     			[TD]ERROR[/TD]
     		[/TR]
     		[TR="class: sErr"]
     			[TD]2020-11-07 18:23:38[/TD]
     			[TD]950809[/TD]
     			[TD]?[/TD]
     			[TD]15693[/TD]
     			[TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000002.php | Fehlercode: 8 | Zeile: 103 | Undefined offset: 290[/TD]
     			[TD]ERROR[/TD]
     		[/TR]
     		[TR="class: sErr"]
     			[TD]2020-11-07 18:23:38[/TD]
     			[TD]951586[/TD]
     			[TD]?[/TD]
     			[TD]15693[/TD]
     			[TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000002.php | Fehlercode: 8 | Zeile: 105 | Undefined offset: 88[/TD]
     			[TD]ERROR[/TD]
     		[/TR]
     		[TR="class: sErr"]
     			[TD]2020-11-07 18:23:38[/TD]
     			[TD]952224[/TD]
     			[TD]?[/TD]
     			[TD]15693[/TD]
     			[TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000002.php | Fehlercode: 8 | Zeile: 107 | Undefined offset: 90[/TD]
     			[TD]ERROR[/TD]
     		[/TR]
     		[TR="class: sErr"]
     			[TD]2020-11-07 18:23:38[/TD]
     			[TD]952888[/TD]
     			[TD]?[/TD]
     			[TD]15693[/TD]
     			[TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000002.php | Fehlercode: 8 | Zeile: 109 | Undefined offset: 92[/TD]
     			[TD]ERROR[/TD]
     		[/TR]
     		[TR="class: sErr"]
     			[TD]2020-11-07 18:23:38[/TD]
     			[TD]965915[/TD]
     			[TD]?[/TD]
     			[TD]15693[/TD]
     			[TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000002.php | Fehlercode: 8 | Zeile: 111 | Undefined offset: 94[/TD]
     			[TD]ERROR[/TD]
     		[/TR]
     		[TR="class: sErr"]
     			[TD]2020-11-07 18:23:38[/TD]
     			[TD]966726[/TD]
     			[TD]?[/TD]
     			[TD]15693[/TD]
     			[TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000002.php | Fehlercode: 8 | Zeile: 113 | Undefined offset: 96[/TD]
     			[TD]ERROR[/TD]
     		[/TR]
     		[TR="class: sErr"]
     			[TD]2020-11-07 18:23:38[/TD]
     			[TD]968888[/TD]
     			[TD]?[/TD]
     			[TD]15693[/TD]
     			[TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000002.php | Fehlercode: 8 | Zeile: 115 | Undefined offset: 98[/TD]
     			[TD]ERROR[/TD]
     		[/TR]
     		[TR="class: sErr"]
     			[TD]2020-11-07 18:23:38[/TD]
     			[TD]969571[/TD]
     			[TD]?[/TD]
     			[TD]15693[/TD]
     			[TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000002.php | Fehlercode: 8 | Zeile: 117 | Undefined offset: 100[/TD]
     			[TD]ERROR[/TD]
     		[/TR]
     		[TR="class: sErr"]
     			[TD]2020-11-07 18:23:38[/TD]
     			[TD]981825[/TD]
     			[TD]?[/TD]
     			[TD]15693[/TD]
     			[TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000002.php | Fehlercode: 8 | Zeile: 119 | Undefined offset: 102[/TD]
     			[TD]ERROR[/TD]
     		[/TR]
     		[TR="class: sErr"]
     			[TD]2020-11-07 18:23:41[/TD]
     			[TD]874485[/TD]
     			[TD]?[/TD]
     			[TD]15739[/TD]
     			[TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000001.php | Fehlercode: 2 | Zeile: 80 | Division by zero[/TD]
     			[TD]ERROR[/TD]
     		[/TR]
     		[TR="class: sErr"]
     			[TD]2020-11-07 18:23:41[/TD]
     			[TD]879014[/TD]
     			[TD]?[/TD]
     			[TD]15739[/TD]
     			[TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000001.php | Fehlercode: 2 | Zeile: 82 | Division by zero[/TD]
     			[TD]ERROR[/TD]
     		[/TR]
     		[TR="class: sErr"]
     			[TD]2020-11-07 18:23:41[/TD]
     			[TD]879905[/TD]
     			[TD]?[/TD]
     			[TD]15739[/TD]
     			[TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000001.php | Fehlercode: 2 | Zeile: 84 | Division by zero[/TD]
     			[TD]ERROR[/TD]
     		[/TR]
     		[TR="class: sErr"]
     			[TD]2020-11-07 18:23:41[/TD]
     			[TD]880702[/TD]
     			[TD]?[/TD]
     			[TD]15739[/TD]
     			[TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000001.php | Fehlercode: 2 | Zeile: 86 | Division by zero[/TD]
     			[TD]ERROR[/TD]
     		[/TR]
     		[TR="class: sErr"]
     			[TD]2020-11-07 18:23:41[/TD]
     			[TD]881475[/TD]
     			[TD]?[/TD]
     			[TD]15739[/TD]
     			[TD]Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000001.php | Fehlercode: 2 | Zeile: 88 | Division by zero[/TD]
     			[TD]ERROR[/TD]
     		[/TR]
     	 [/TABLE]
    Hier ist der LBS:

    PHP-Code:
    ###[DEF]###
    [name = Atlas]

    [e#1 = Trigger != 0]
    [e#2 = IP]
    [e#3 = TraceLog #init=0 ]

    [a#1 = Kompressorauslass]
    [a#2 = relative Feuchtigkeit]
    [a#3 = Vessel Pressure]
    [a#4 = Elementauslass]
    [a#5 = Drucktaupunkt]
    [a#6 = Umgebungsluft]
    [a#7 = Wassereinlass]
    [a#8 = Wasserauslass]
    [a#9 = Notaus]
    [a#10 = Ventilatorüberlast]
    [a#11 = Fernstart]
    [a#12 = Kondensatablass]
    [a#13 = Active Power Supply]
    [a#14 = Phasenfolge]
    [a#15 = Luftfilter]
    [a#16 = Druckbandauswahl]
    [a#17 = Betriebsstunden]
    [a#18 = Laststunden]
    [a#19 = Motorstarts]
    [a#20 = Lastspiele]
    [a#21 = Drehzahlanteil 0-20%]
    [a#22 = Drehzahlanteil 20-40%]
    [a#23 = Drehzahlanteil 40-60%]
    [a#24 = Drehzahlanteil 60-80%]
    [a#25 = Drehzahlanteil 80-100%]
    [a#26 = Trocknerstarts]
    [a#27 = Lüfterstarts]
    [a#28 = Erzeugte Druckluftmenge]
    [a#29 = Reglerstunden]
    [a#30 = Abschaltungen Notaus]
    [a#31 = Direkte Stops]
    [a#32 = Starts Luftrückführung]
    [a#33 = Fehler Luftrückführung]
    [a#34 = Geringe Laststunden]
    [a#35 = Available Hours]
    [a#36 = Unavailable Hours]
    [a#37 = Emergency Stop Hours]
    [a#38 = Derating Weak Grid Hours]
    [a#39 = Derating Starts Weak Grid]
    [a#40 = Additional Derating Starts Weak Grid]
    [a#41 = Umrichter rpm]
    [a#42 = Umrichter %]
    [a#43 = Umrichter Ampere]
    [a#44 = Maschinenstatus]
    [a#45 = DA1]
    [a#46 = DA2]
    [a#47 = DA3]
    [a#48 = DA4]
    [a#49 = DA5]
    [a#50 = DA6]
    [a#51 = DA7]
    [a#52 = DA8]
    [a#53 = String]
    [a#54 = Abfragefehler]

    [v#1 = 0] 1 wenn EXEC-Script läuft
    [v#2 = -1] letzteStatusId
    [v#3 = 0]

    ###[/DEF]###
    ###[HELP]###
    ###[/HELP]###

    ###[LBS]###
    <?
    function LB_LBSID($id) {
    if ($E=logic_getInputs($id)) {
    if ($E[1]['value']!=0 && $E[1]['refresh']==1) {
    if (logic_getVar($id, 1)==0) {
    logic_setVar($id, 1, 1); // EXEC-Skript blockieren
    logic_callExec(LBSID,$id);
    }
    }
    }
    }
    ?>
    ###[/LBS]###

    ###[EXEC]###
    <?
    // ===== Vorbereitung
    require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php");
    set_time_limit(30); // in Sekunden
    sql_connect();

    if ($E=logic_getInputs($id)) {
    $fehler = false;
    $ip = $E[2]['value'];
    $trace = $E[3]['value'];

    $vars = logic_getVars($id);
    $letzteStatusId = $vars[1];

    $url = "http://" . $ip . "/cgi-bin/mkv.cgi";
    $data ='QUESTION=30020830020930020b30020d30020e30020f300 21030021130030130030230030330030430030530030630030 730030a3007013007023007033007043007053007063007073 0070830070930070a30070b30070c30070d30070e30070f300 71430071530071830072230072330072430072530072630072 730210130210530210a3005013005023005033005043005053 00506300507300508300509300e02300e03300e04300e18300 e2a31130131130331130431130531130731130831130931130 a31130b31130c31130d31130e31130f3113103113113113123 1131331131431131531131631131731131831131931131a311 31b31131c31131d31131e31131f31132031132131132231132 331132431132531132631132731132831132931132a31132b3 1132c31132d31132e31132f311330311331311332311333311 33431133531133631133731133831133931133a31133b31133 c31133d31133e31133f3113403113413113423113433113443 1134531134631134731134831134931134a31134b31134c311 34d31134e31134f31135031135131135231135331135431135 531135631135731135831135931135a31135b31135c31135d3 1135e31135f311360311361311362311363311364311365311 36631136731140131140231140331140431140531140631140 731140831140931140a31140b31140c31140d31140e31140f3 11410311411311412300901300906300911300907300912300 90930010830140830140930141a30141b';

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER , 1);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    $content = curl_exec($ch);

    if ($content === false)
    {
    if ($trace != 0)
    writeToCustomLog("Atlas$id", 'debug' , "Abfrage der Daten, content === false. Fehler: " . curl_error($ch));
    $fehler = true;
    curl_close($ch);
    }
    else
    {
    curl_close($ch);

    $arr = str_split($content, 4);

    logic_setOutput($id,1,((hexdec($arr[0]))/1000)); //Kompressorauslass

    logic_setOutput($id,2,hexdec($arr[2])); //relative Feuchtigkeit

    logic_setOutput($id,3,((hexdec($arr[4]))/1000)); //Vessel Pressure

    logic_setOutput($id,4,((hexdec($arr[6]))/10)); //Elementauslass

    logic_setOutput($id,5,((hexdec($arr[8]))/10)); //Drucktaupunkt

    logic_setOutput($id,6,((hexdec($arr[10]))/10)); //Umgebungsluft

    logic_setOutput($id,7,((hexdec($arr[12]))/10)); //Wassereinlass

    logic_setOutput($id,8,((hexdec($arr[14]))/10)); //Wasserauslass

    logic_setOutput($id,9,hexdec($arr[16])); //Notaus

    logic_setOutput($id,10,hexdec($arr[18])); //Ventilatorüberlast

    logic_setOutput($id,11,hexdec($arr[20])); //Fernstart

    logic_setOutput($id,12,hexdec($arr[22])); //Kondensatablass

    logic_setOutput($id,13,hexdec($arr[24])); //Active Power Supply

    logic_setOutput($id,14,hexdec($arr[26])); //Phasenfolge

    logic_setOutput($id,15,hexdec($arr[28])); //Luftfilter

    logic_setOutput($id,16,hexdec($arr[30])); //Druckbandauswahl

    logic_setOutput($id,17,((hexdec($arr[32].$arr[33]))/3600)); //Betriebsstunden

    logic_setOutput($id,18,((hexdec($arr[34].$arr[35]))/3600)); //Laststunden

    logic_setOutput($id,19,hexdec($arr[36].$arr[37])); //Motorstarts

    logic_setOutput($id,20,hexdec($arr[38].$arr[39])); //Lastspiele

    logic_setVar($id,3,((hexdec($arr[40].$arr[41]))+(hexdec($arr[42].$arr[43]))+(hexdec($arr[44].$arr[45]))+(hexdec($arr[46].$arr[47]))+(hexdec($arr[48].$arr[49])))); //Variable Drehzahlanteil gesamt

    logic_setOutput($id,21,(((hexdec($arr[40].$arr[41])*100)/$vars[3]))); //Drehzahlanteil 1-20%

    logic_setOutput($id,22,(((hexdec($arr[42].$arr[43])*100)/$vars[3]))); //Drehzahlanteil 20-40%

    logic_setOutput($id,23,(((hexdec($arr[44].$arr[45])*100)/$vars[3]))); //Drehzahlanteil 40-60%

    logic_setOutput($id,24,(((hexdec($arr[46].$arr[47])*100)/$vars[3]))); //Drehzahlanteil 60-80%

    logic_setOutput($id,25,(((hexdec($arr[48].$arr[49])*100)/$vars[3]))); //Drehzahlanteil 80-100%

    logic_setOutput($id,26,hexdec($arr[50].$arr[51])); //Trocknerstarts

    logic_setOutput($id,27,hexdec($arr[52].$arr[53])); //Lüfterstarts

    logic_setOutput($id,28,((hexdec($arr[54].$arr[55])*1000))); //erzeugte Luftmenge

    logic_setOutput($id,29,((hexdec($arr[56].$arr[57]))/3600)); //Reglerstunden

    logic_setOutput($id,30,hexdec($arr[58].$arr[59])); //abschaltungen Notaus

    logic_setOutput($id,31,hexdec($arr[60].$arr[61])); //direkte Stopps

    logic_setOutput($id,32,hexdec($arr[62].$arr[63])); //Starts Luftrückführung

    logic_setOutput($id,33,hexdec($arr[64].$arr[65])); //Fehler Luftrückführung

    logic_setOutput($id,34,((hexdec($arr[66].$arr[67]))/3600)); //Geringe Last Stunden

    logic_setOutput($id,35,((hexdec($arr[68].$arr[69]))/3600)); //Available Hours

    logic_setOutput($id,36,((hexdec($arr[70].$arr[71]))/3600)); //Unavailable Hours

    logic_setOutput($id,37,((hexdec($arr[72].$arr[73]))/3600)); //Emergency Stop Hours

    logic_setOutput($id,38,((hexdec($arr[74].$arr[75]))/3600)); //Derating Weak Grid Hours

    logic_setOutput($id,39,hexdec($arr[76].$arr[77])); //Derating Starts Weak Grid

    logic_setOutput($id,40,hexdec($arr[78].$arr[79])); //Additional Derating Starts Weak Grid

    logic_setOutput($id,41,hexdec($arr[81])); //Umrichter rpm

    logic_setOutput($id,42,hexdec($arr[83])); //Umrichter %

    logic_setOutput($id,43,hexdec($arr[84])); //Umrichter Ampere

    logic_setOutput($id,44,hexdec($arr[290])); //Maschinenstatus

    logic_setOutput($id,45,hexdec($arr[88])); //

    logic_setOutput($id,46,hexdec($arr[90])); //

    logic_setOutput($id,47,hexdec($arr[92])); //

    logic_setOutput($id,48,hexdec($arr[94])); //

    logic_setOutput($id,49,hexdec($arr[96])); //

    logic_setOutput($id,50,hexdec($arr[98])); //

    logic_setOutput($id,51,hexdec($arr[100])); //

    logic_setOutput($id,52,hexdec($arr[102])); //

    logic_setOutput($id,53,$content); // String

    }
    if($fehler == false)
    {
    logic_setOutput($id, 54, 0);
    }
    else
    {
    logic_setOutput($id, 54, 1);
    }

    }

    logic_setVar($id, 1, 0); // EXEC-Skript freigeben
    sql_disconnect();



    ?>
    ###[/EXEC]###

    Einen Kommentar schreiben:


  • vento66
    antwortet
    In einem LBS geht das sicher eleganter:
    Annahme dein String ist


    PHP-Code:
    $str '0x010x020x03'
    str_split zerlegt deinen String in 4er Zeichenketten, und schreibt sie in ein Array

    PHP-Code:
    $arr str_split($str4); 
    Den ersten Wert bekommst Du dann mittels
    PHP-Code:
    logic_setOutput($id,1,hexdec($arr[0])); 
    an Ausgang 1

    Ohne jetzt spezielle Werte zusammenzusetzen, ist das ein 10 Zeiler.
    Zuletzt geändert von vento66; 04.11.2020, 07:03.

    Einen Kommentar schreiben:


  • Blaky1612
    antwortet
    Hallo,

    so hab es jetzt hinbekommen mit der Abfrage, lasse alle 3 Sekunden abfragen und läuft seit 2 Wochen problemlos.
    in der Zeit hab ich mich dem Hexstring zum zerlegen und berechnen gespielt und alle Werte gefunden.

    Aktuell lasse ich nach dem LBS den String alle 4 Zeichen ein "-" setzen und zerteile ihn mit unzähligen String zerteilen LBS.
    Danach werden die einzelnen Werte alle jeweils mit dem Hex zu Dec LBS umgewandelt, manche vorher wieder zu 8 Zeichen zusammengeführt.
    Danach werden vereinzelte Werte noch mit mathematischen LBS berechtet und alle Werte in Ausgangsboxen geschrieben.

    Das Problem ist das meine Logikseite extrem langsam ist beim bearbeiten.

    Kann man das besser lösen, evtl. sogar direkt in den LBS einbauen kann, mit dem zerlegen und umrechnen des Strings.

    Kann mir da jemand etwas Hilfestellung oder sogar Lösungsvorschläge geben?

    Gruß DanielScreenshot (2).png

    Einen Kommentar schreiben:


  • Blaky1612
    antwortet
    Danke

    ja da muss ich mich erst einlesen.
    Programierkentnisse sind fast 0.
    Aber ich werds mal probieren.

    Einen Kommentar schreiben:


  • ChrisAllgaeu
    antwortet
    vielleicht hilfts.... der LBS 19000082 (SENEC Inverter Abfrage) verwendet genau solch eine POST Abfrage für eine cgi... Vielleicht kannst Du dich dort etwas inspirieren lassen

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Für einen HTTP Post musst du einen LBS schreiben. Das geht mit den Bordmitteln nicht und ich glaube es gibt auch keinen User LBS dafür.

    Einen Kommentar schreiben:


  • Blaky1612
    antwortet
    Wie kann ich eine .js Datei im Beitrag anhängen?
    Dann könnte ich die Abfrage .js posten.

    Einen Kommentar schreiben:


  • Blaky1612
    antwortet
    Nein leider nicht, das habe ich mit anderen Websites schon gemacht und funktioniert.
    Nur hier ist im Quellcode nichts drin.
    Hab mir gedacht das ich über Edomi einen Post senden kann und den Response weiterverarbeiten kann, aber das übersteigt meine Fähigkeiten.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Okay, ich dachte der Wert wäre im HTML Quellcode drin. Wenn das nicht so ist, dann geht das nicht über diesen Ansatz.

    Einen Kommentar schreiben:


  • Blaky1612
    antwortet
    Ich bräuchte den HEX String der auf die Post Anfrage der Website zurück kommt in der mkv.cgi
    Hab jetzt alle .js Dateien durchgeschaut aber ich finde weder Werte noch den Hexstring.

    wenn ich im Browser http://192.168.178.90/cgi-bin/mkv.cgi eingebe kommt nur INCORRECT PATH
    Angehängte Dateien
    Zuletzt geändert von Blaky1612; 12.10.2020, 17:38.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Welchen Wert aus dem Inhalt brauchst du denn?

    Einen Kommentar schreiben:


  • Blaky1612
    antwortet
    hier wär der Inhalt des KO

    Code:
    <html>
    <head>
    <title></title>
    
    <script src="js/LIBRARY.js" type="text/javascript"></script>
    <script src="js/init.js" type="text/javascript" ></script>
    <script src="js/config.js" type="text/javascript" ></script>
    </head>
    <body id="BODY">
    <table id="INIT" cellspacing="0" cellpadding="0" border="0" style="width:100%;height:100%;color:White;visibili ty:visible">
    <tr>
    <td align="center" valign="middle">
    <table style="font-size:32px;font-family:Freestyle Script;font-weight:bold;" cellspacing="5" cellpadding="5" width="500px">
    <tr>
    <td align="center" colspan="2" style="font-size:72px;font-weight:bold;color:White;background-color:#B0B0B0; border:solid 3 #5A5A5A">INITIALISATION</td>
    </tr>
    <tr>
    <td align="center" colspan="2" style="font-size:16px"></td>
    </tr>
    <tr>
    <td align="center" style="color:#5A5A5A">DOWNLOADING FILES</td><td align="center"><img id="step1" src="images index/WAITING.png" alt="" /></td>
    </tr>
    <tr>
    <td align="center" colspan="2" id="step1comment" style="font-size:18px;font-family:Times New Roman;font-weight:bold;border:solid 3 Red;color:White; background:#FF8A8A;visibility:hidden;"></td>
    </tr>
    <tr>
    <td align="center" style="color:#5A5A5A">QUERY STATIC DATA</td><td align="center"><img id="step2" src="images index/WAITING.png" alt="" /></td>
    </tr>
    <tr>
    <td align="center" colspan="2" id="step2comment" style="font-size:18px;font-family:Times New Roman;font-weight:bold;border:solid 3 Red;color:White; background:#FF8A8A;visibility:hidden;"></td>
    </tr>
    <tr>
    <td align="center" style="color:#5A5A5A">QUERY DYNAMIC DATA</td><td align="center"><img id="step3" src="images index/WAITING.png" alt="" /></td>
    </tr>
    <tr>
    <td align="center" colspan="2" id="step3comment" style="font-size:18px;font-family:Times New Roman;font-weight:bold;border:solid 3 Red;color:White; background:#FF8A8A;visibility:hidden;"></td>
    </tr>
    <tr>
    <td align="center" style="color:#5A5A5A">LOADING TEXTS</td><td align="center"><img id="step4" src="images index/WAITING.png" alt="" /></td>
    </tr>
    <tr>
    <td align="center" colspan="2" id="step4comment" style="font-size:18px;font-family:Times New Roman;font-weight:bold;border:solid 3 Red;color:White; background:#FF8A8A;visibility:hidden;"></td>
    </tr>
    <tr>
    <td colspan="2" align="center" id="continueanyway" style="visibility:hidden"><button style="color:#5A5A5A;font-size:24px;font-family:Times New Roman;font-weight:bold;" onclick="ShowWebsite();">Go to website anyway</button></td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    <div id="WEBSITE" style="width:100%;height:100%;visibility:hidden">
    <div id="main">
    <div id="main_content">
    <div id="header">
    <div id="left">
    <p id="serial">Serial Number:</p>
    <p id="page">Compressor_Y</p>
    </div>
    <div id="right">
    <p id="elektronikon">Elektronikon</p>
    <p id="langs">
    <span id="langs_description">Languages111</span>
    <select id="language_select" onchange="load_language();">
    <option>downloading...</option>
    </select>
    </p>
    </div>
    <div class="clearfix"></div>
    </div>
    <div id="error"></div>
    <div id="checks">
    <div id="checkbox_container"></div>
    <div class="clearfix"></div>
    </div>
    <div id="tables">
    <div id="TABLELEFT_L1">
    <table cellspacing="0" cellpadding="0" id="ANALOGINPUTSbody"></table>
    <table cellspacing="0" cellpadding="0" id="ANALOGOUTPUTSbody"></table>
    <table cellspacing="0" cellpadding="0" id="COUNTERSbody"></table>
    <table cellspacing="0" cellpadding="0" id="CALCULATEDANALOGINPUTSbody"></table>
    <table cellspacing="0" cellpadding="0" id="CONVERTERSbody"></table>
    <table cellspacing="0" cellpadding="0" id="SPMbody"></table>
    </div>
    <div id="TABLERIGHT_L1">
    <table cellspacing="0" cellpadding="0" id="MACHINESTATEbody"></table>
    <table cellspacing="0" cellpadding="0" id="DIGITALINPUTSbody"></table>
    <table cellspacing="0" cellpadding="0" id="DIGITALOUTPUTSbody"></table>
    <table cellspacing="0" cellpadding="0" id="SPECIALPROTECTIONSbody"></table>
    <table cellspacing="0" cellpadding="0" id="SERVICEPLANbody"></table>
    <table cellspacing="0" cellpadding="0" id="IDATAbody"></table>
    </div>
    <div id="TABLELEFT_L12">
    <table id="CONVERTORFLOWbody"></table>
    </div>
    <table id="units" align="center">
    <tr>
    <td id="PRESSUREUNITstr" align="right">Pressure Unit:111</td>
    <td align="left">
    <select id="P" onchange="setProperties();">
    <option value="Bar">Bar</option>
    <option value="dBar">dBar</option>
    <option value="mBar">mBar</option>
    <option value="psi">psi</option>
    <option value="kPa">kPa</option>
    <option value="MPa">MPa</option>
    <option value="kg/cm?">kg/cm?</option>
    <option value="mmHg">mmHg</option>
    <option value="inHg">inHg</option>
    <option value="Torr">Torr</option>
    </select>
    </td>
    </tr>
    <tr>
    <td id="TEMPERATUREUNITstr" align="right">Temperature Unit:111</td>
    <td align="left">
    <select id="T" onchange="setProperties();">
    <option value="?C">?C</option>
    <option value="?F">?F</option>
    <option value="K">K</option>
    </select>
    </td>
    </tr>
    <tr>
    <td id="ENERGYUNITstr" align="right">ENERGY Unit:111</td>
    <td align="left">
    <select id="E" onchange="setProperties();">
    <option value="kWh">kWh</option>
    <option value="MWh">MWh</option>
    <option value="kBTu">kBTu</option>
    <option value="MBTu">MBTu</option>
    </select>
    </td>
    </tr>
    <tr>
    <td id="FLOWUNITstr" align="right">Flow Unit:111</td>
    <td align="left">
    <select id="F" onchange="setProperties();">
    <option value="l/s">l/s</option>
    <option value="cfm">cfm</option>
    <option value="l/min">l/min</option>
    <option value="m?/h">m?/h</option>
    </select>
    </td>
    </tr>
    </table>
    <table id="tablees_l3">
    <tr><td>
    <table id="tableCompressors1" cellspacing="0" cellpadding="3" style="border-width:1px;border-color:Black;border-style:solid"></table>
    </td></tr>
    <tr><td>
    <table id="tableDryers" cellspacing="0" cellpadding="3" style="border-width:1px;border-color:Black;border-style:solid;margin:50px 0px 0px 0px"></table>
    </td></tr>
    </table>
    <div class="clearfix"></div>
    </div>
    <div id="footer">
    <span id="load_time">loading...</span><br />
    v3.3.0.0
    </div>
    </div>
    </div>
    <div id="left_side">
    <a id="logo_link" href=""><img src="images/Brandlogo.gif" alt="brand logo" /></a>
    <div id="menu">
    <ul>
    <li id="link1str" onclick="load_compressor();" onmouseover="this.style.cursor='hand'">Compressor1 11</li><!---->
    <li id="link2str" onclick="load_es();" onmouseover="this.style.cursor='hand'">ES</li>
    <li id="link3str" onclick="load_preferences();" onmouseover="this.style.cursor='hand'">Preferences 111</li>
    </ul>
    </div>
    </div>
    </div>
    </body>
    </html>

    Einen Kommentar schreiben:


  • Blaky1612
    antwortet
    Ich hoffe ich nerve nicht.

    hab es mit Preg_match probiert aber bekomm den String nicht angezeigt.
    Weis auch nicht nach welchen Ausdruck ich genau suchen muss.

    Einen Kommentar schreiben:

Lädt...
X