<?
error_reporting (E_ALL);
extract($_REQUEST);
ob_start(); // Bufferisation de tous les 'echo, print....'
echo "<HTML><HEAD>";
echo "<TITLE>LECTURE MODBUS/TCP</TITLE></HEAD>";
echo "<BODY bgcolor='#7189AB'>";
$RegistreMax = 125;
!isset($regDebut) ? $regDebut = 0 : true;
!isset($nbreRegistre) ? $nbreRegistre = 125 : true;
!isset($typeRegistre) ? $typeRegistre = "400001" : true;
if ( $regDebut < 1 ) $regDebut = 0;
if ( $nbreRegistre < 1 ) $nbreRegistre = 125;
if ( isset ($ChangePage) ) {
if ( $nbreRegistre > $RegistreMax ) $nbreRegistre = $RegistreMax;
if ( $ChangePage == ">>" ) $regDebut += $nbreRegistre;
if ( $ChangePage == "<<" ) $regDebut -= $nbreRegistre;
}
// -----------------------------------------------------------------------------------
// PROGRAMME PRINCIPAL
// -----------------------------------------------------------------------------------
$tabTypeReg = array ( "400001", "300001", "100001", "000001" );
echo "<p align='center'><font color='#FFFFFF' size='5' face='Verdana'><b>LECTURE MODBUS/TCP</font>";
echo "<p align='center'><font color='#FFFFFF' size='5' face='Verdana'><a href='http://195.6.140.177' target='_blank'><b>dans PLC SCHNEIDER a l'adresse 195.6.140.177</a></font>";
echo "<form action='".$_SERVER['PHP_SELF']."' method='POST'>";
echo "<p align='center'><font color='#FFFFFF' size='2' face='Verdana'>";
echo "TYPE : <select name='typeRegistre' size='1'>\n";
foreach( $tabTypeReg as $value ) {
if ( $typeRegistre == $value ) {
echo "<option selected>$value</option>\n";
} else {
echo "<option>$value</option>\n";
}
}
echo "</select>\n<br><br>";
echo "DEBUT : <input type='text' name='regDebut' value = '" .$regDebut. "' size='5'><br>\n";
echo "NBRE : <input type='text' name='nbreRegistre' value = '" .$nbreRegistre. "' size='5'><br><br>\n";
echo "<input type='submit' value='<<' name='ChangePage'><input type='submit' value='SUBMIT'><input type='submit' value='>>' name='ChangePage'>\n";
echo "</FORM>";
echo "<hr>";
echo "<p align='left'><b>Le " . date( "d/m/Y H:i:s") ."</b></br>";
echo "<p align='center'>\n";
echo "<table border='0' cellpadding='1' cellspacing='0' bgcolor='#CCCC99'>\n";
//********* EN-TETE du TABLEAU ************
echo "<tr>\n";
echo "<td align='center' bgcolor='#CC6633'><font color='#FFFFFF' size='1' face='Verdana'>ADRESSE</font></td>\n";
echo "<td></td>\n";
echo "<td align='center' bgcolor='#CC6633'><font color='#FFFFFF' size='1' face='Verdana'>DECI.</font></td>\n";
if ( $typeRegistre == "400001" or $typeRegistre == "300001" ) {
echo "<td></td>\n";
echo "<td align='center' bgcolor='#CC6633'><font color='#FFFFFF' size='1' face='Verdana'>BINAIRE</font></td>\n";
echo "<td></td>\n";
echo "<td align='center' bgcolor='#CC6633'><font color='#FFFFFF' size='1' face='Verdana'>HEXA</font></td>\n";
echo "<td></td>\n";
echo "<td align='center' bgcolor='#CC6633'><font color='#FFFFFF' size='1' face='Verdana'>ASCII</font></td>\n";
}
echo "</tr>\n";
$cell_color="#FFFFFF";
$item_txt_color="#000000";
require_once "class_ModbusTcp.php";
$Plc = new ModbusArray;
$Plc->SetAdIpPLC ("195.6.140.177");
//$Plc->SetDebug();
//$Plc->SetSimulation();
if ( !isset($toggle) ) $toggle = 0;
if ( $toggle == 1 ){
if ( $ToggleValue == "0" ) {
$Plc->WriteCoil( $Adresse, true );
} else {
$Plc->WriteCoil( $Adresse, false );
}
}
switch ( $typeRegistre ) {
case "400001":
$temp = $Plc->ReadModbus( (string)("400001" + $regDebut), $nbreRegistre );
break;
case "300001":
$temp = $Plc->ReadModbus( (string)("300001" + $regDebut), $nbreRegistre );
break;
case "100001":
$temp = $Plc->ReadModbus( (string)("100001" + $regDebut), $nbreRegistre );
break;
case "000001":
$temp = $Plc->ReadModbus( (string)("000001" + $regDebut), $nbreRegistre );
break;
default:
$temp = $Plc->ReadModbus( (string)("400001" + $regDebut), $nbreRegistre );
break;
}
$bgcolor = '#FFFFFF' ;
$cptrRegistre = 0;
foreach( $temp as $key => $value) {
list( $value_1, $value_2 ) = $Plc->WordToBytes( (int)$value ); //Pour l'affichage en ASCII
$cptrRegistre++;
$cell_color == '#FFFFFF' ? $cell_color = '#ECECEC' : $cell_color = '#FFFFFF';
if ( $typeRegistre == "000001" or $typeRegistre == "100001" ) {
if ( $value ) {
$cell_color = '#66FF00' ;
}
}
echo "<tr>\n";
echo "<td align='left' bgcolor='".$cell_color."' nowrap><font color='#000000' size='2' face='Verdana'>[".$key."] </font></td>\n";
echo "<td></td>\n";
if ( $typeRegistre == "000001" ) {
echo "<td align='right' bgcolor='".$cell_color."' nowrap><font color='#0000FF' size='2' face='Verdana'><a title='Toggle bit' href=".basename( $_SERVER['PHP_SELF'] )."?toggle=1&Adresse=".$key."&ToggleValue=".$value."&typeRegistre=".$typeRegistre."®Debut=".($regDebut)."&nbreRegistre=".$nbreRegistre."><b>".$value."</b></a></font></td>\n";
} else {
echo "<td align='right' bgcolor='".$cell_color."' nowrap><font color='#0000FF' size='2' face='Verdana'><b>".$value."</b></font></td>\n";
}
if ( $typeRegistre == "400001" or $typeRegistre == "300001" ) {
echo "<td></td>\n";
echo "<td align='right' bgcolor='".$cell_color."' nowrap><font color='#0000FF' size='2' face='Verdana'><b>".decbin($value)."</b></font></td>\n";
echo "<td></td>\n";
echo "<td align='right' bgcolor='".$cell_color."' nowrap><font color='#0000FF' size='2' face='Verdana'><b>".strtoupper(dechex($value))."</b></font></td>\n";
echo "<td></td>\n";
echo "<td align='right' bgcolor='".$cell_color."' nowrap><font color='#0000FF' size='2' face='Verdana'><b> ".$value_1.$value_2."</b></font></td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
$Plc->ModClose();
unset ($Plc);
echo "<div bgcolor='#FFFFFF'><pre>";
echo "<br><a href=".basename($_SERVER['PHP_SELF'])."?show=1>Show Source</a><br>";
if ( !isset($show) ) $show = 0;
if ( $show == 1 ){
echo "<pre align='left' bgcolor='#FFFFFF'>";
show_source( basename( $_SERVER['PHP_SELF'] ) );
}
echo "\n</BODY></HTML>";
?>
|