Danke an alle für die Hilfe
Ankündigung
Einklappen
Keine Ankündigung bisher.
Hexstring aus interner Website an Edomi übergeben
Einklappen
X
-
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:
-
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:
Hier ist der LBS: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]
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:
-
In einem LBS geht das sicher eleganter:
Annahme dein String ist
str_split zerlegt deinen String in 4er Zeichenketten, und schreibt sie in ein ArrayPHP-Code:$str = '0x010x020x03';
Den ersten Wert bekommst Du dann mittelsPHP-Code:$arr = str_split($str, 4);
an Ausgang 1PHP-Code:logic_setOutput($id,1,hexdec($arr[0]));
Ohne jetzt spezielle Werte zusammenzusetzen, ist das ein 10 Zeiler.
Zuletzt geändert von vento66; 04.11.2020, 07:03.
Einen Kommentar schreiben:
-
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:
-
Danke
ja da muss ich mich erst einlesen.
Programierkentnisse sind fast 0.
Aber ich werds mal probieren.
Einen Kommentar schreiben:
-
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:
-
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:
-
Wie kann ich eine .js Datei im Beitrag anhängen?
Dann könnte ich die Abfrage .js posten.
Einen Kommentar schreiben:
-
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:
-
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:
-
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 PATHAngehängte DateienZuletzt geändert von Blaky1612; 12.10.2020, 17:38.
Einen Kommentar schreiben:
-
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:
-
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:


Einen Kommentar schreiben: