www-thermferm/units.php

changeset 362
c92651a54969
parent 349
1f89da6511a9
child 364
2f9bbbcd2407
--- a/www-thermferm/units.php	Thu May 14 22:03:35 2015 +0200
+++ b/www-thermferm/units.php	Sat May 16 17:39:30 2015 +0200
@@ -106,11 +106,16 @@
 	$cmd[] = "PSU_ADDRESS,".$_POST['PSUAddress'];
 	$cmd[] = "TEMP_SET_MIN,".$_POST['TempSetMin'];
 	$cmd[] = "TEMP_SET_MAX,".$_POST['TempSetMax'];
-	$cmd[] = "IDLE_RANGE_L,".$_POST['IdleRangeL'];
-	$cmd[] = "IDLE_RANGE_H,".$_POST['IdleRangeH'];
-	$cmd[] = "PID_KP,".$_POST['PID_Kp'];
-	$cmd[] = "PID_KD,".$_POST['PID_Kd'];
-	$cmd[] = "PID_KI,".$_POST['PID_Ki'];
+	$cmd[] = "PIDC_IMAX,".$_POST['PIDC_iMax'];
+	$cmd[] = "PIDC_PGAIN,".$_POST['PIDC_pGain'];
+	$cmd[] = "PIDC_DGAIN,".$_POST['PIDC_dGain'];
+	$cmd[] = "PIDC_IGAIN,".$_POST['PIDC_iGain'];
+	$cmd[] = "PIDC_IDLERANGE,".$_POST['PIDC_idleRange'];
+	$cmd[] = "PIDH_IMAX,".$_POST['PIDC_iMax'];
+	$cmd[] = "PIDH_PGAIN,".$_POST['PIDH_pGain'];
+	$cmd[] = "PIDH_DGAIN,".$_POST['PIDH_dGain'];
+	$cmd[] = "PIDH_IGAIN,".$_POST['PIDH_iGain'];
+	$cmd[] = "PIDH_IDLERANGE,".$_POST['PIDH_idleRange'];
 	$cmd[] = ".";
 	send_array($cmd);
     }
@@ -134,11 +139,16 @@
     unset($_POST['PSUAddress']);
     unset($_POST['TempSetMin']);
     unset($_POST['TempSetMax']);
-    unset($_POST['IdleRangeL']);
-    unset($_POST['IdleRangeH']);
-    unset($_POST['PID_Kp']);
-    unset($_POST['PID_Kd']);
-    unset($_POST['PID_Ki']);
+    unset($_POST['PIDC_iMax']);
+    unset($_POST['PIDC_pGain']);
+    unset($_POST['PIDC_dGain']);
+    unset($_POST['PIDC_iGain']);
+    unset($_POST['PIDC_idleRange']);
+    unset($_POST['PIDH_iMax']);
+    unset($_POST['PIDH_pGain']);
+    unset($_POST['PIDH_dGain']);
+    unset($_POST['PIDH_iGain']);
+    unset($_POST['PIDH_idleRange']);
     load('units.php');
 }
 
@@ -161,8 +171,8 @@
  *         6 = TempSetMin < -5 or > 15
  *         7 = HeaterDelay out of range
  *         8 = CoolerDelay out of range
- *         9 = IdleRangeL out of range
- *        10 = IdleRangeH out of range
+ *         9 = PIDC idleRange out of range
+ *        10 = PIDH idleRange out of range
  *        11 = LightDelay out of range
  *	  12 = FanDelay out of range
  *        99 = Cancel key
@@ -175,8 +185,10 @@
 	isset($_POST['BeerAddress']) && isset($_POST['HeaterAddress']) && isset($_POST['CoolerAddress']) && isset($_POST['LightAddress']) &&
 	isset($_POST['HeaterDelay']) && isset($_POST['CoolerDelay']) && isset($_POST['LightDelay']) && isset($_POST['PSUAddress']) &&
 	isset($_POST['FanAddress']) && isset($_POST['DoorAddress']) && isset($_POST['TempSetMin']) && isset($_POST['TempSetMax']) &&
-	isset($_POST['PID_Kp']) && isset($_POST['PID_Kd']) && isset($_POST['PID_Ki']) && isset($_POST['FanDelay']) &&
-	isset($_POST['IdleRangeL']) && isset($_POST['IdleRangeH']) && isset($_POST['key']) && isset($_POST['command'])) {
+	isset($_POST['PIDC_pGain']) && isset($_POST['PIDC_iGain']) && isset($_POST['PIDC_dGain']) && isset($_POST['PIDC_idleRange']) &&
+	isset($_POST['PIDH_pGain']) && isset($_POST['PIDH_iGain']) && isset($_POST['PIDH_dGain']) && isset($_POST['PIDH_idleRange']) &&
+	isset($_POST['PIDC_iMax']) && isset($_POST['PIDH_iMax']) &&
+	isset($_POST['FanDelay']) && isset($_POST['key']) && isset($_POST['command'])) {
 
 	if ($_POST['key'] == 'Cancel')
 	    return 99;
@@ -212,10 +224,10 @@
 	if (($_POST['CoolerDelay'] < 0) || ($_POST['CoolerDelay'] > 720))
 	    return 8;
 
-	if (($_POST['IdleRangeL'] > 0) || ($_POST['IdleRangeL'] < -5))
+	if (($_POST['PIDC_idleRange'] < 0) || ($_POST['PIDC_idleRange'] > 5))
 	    return 9;
 
-	if (($_POST['IdleRangeH'] < 0) || ($_POST['IdleRangeH'] > 5))
+	if (($_POST['PIDH_idleRange'] < 0) || ($_POST['PIDH_idleRange'] > 5))
 	    return 10;
 
 	if (($_POST['LightDelay'] < 0) || ($_POST['LightDelay'] > 720))
@@ -266,9 +278,9 @@
 		break;
 	case 8:	$error = 'Cooler Delay must be bewteen 0 and 720 seconds';
 		break;
-	case 9: $error = 'Idle Range Low must be between -5 en 0';
+	case 9: $error = 'PID cool Idle Range must be between 0 en 5';
 		break;
-	case 10: $error = 'Idle Range High must be between 0 and 5';
+	case 10: $error = 'PID heat Idle Range must be between 0 and 5';
 		break;
 	case 11: $error = 'Light Delay must be bewteen 0 and 720 seconds';
 		break;
@@ -408,6 +420,36 @@
 		$outstr .= '        <td class="editfield"><input type="text" name="HeaterDelay" size="5" value="'.$f[1].'"> seconds (0..720)</td>'.PHP_EOL;
 		$outstr .= '       </tr>'.PHP_EOL;
 	    }
+	    if ($f[0] == "PIDH_IMAX") {
+		$outstr .= '       <tr class="editor">'.PHP_EOL;
+		$outstr .= '        <td class="editname">PID Heat Maximum</td>'.PHP_EOL;
+		$outstr .= '        <td class="editfield"><input type="text" name="PIDH_iMax" size="6" value="'.$f[1].'"> % (1..100)</td>'.PHP_EOL;
+		$outstr .= '       </tr>'.PHP_EOL;
+	    }
+	    if ($f[0] == "PIDH_PGAIN") {
+		$outstr .= '       <tr class="editor">'.PHP_EOL;
+		$outstr .= '        <td class="editname">PID Heat pGain</td>'.PHP_EOL;
+		$outstr .= '        <td class="editfield"><input type="text" name="PIDH_pGain" size="6" value="'.$f[1].'"> Proportional</td>'.PHP_EOL;
+		$outstr .= '       </tr>'.PHP_EOL;
+	    }
+	    if ($f[0] == "PIDH_IGAIN") {
+		$outstr .= '       <tr class="editor">'.PHP_EOL;
+		$outstr .= '        <td class="editname">PID Heat iGain</td>'.PHP_EOL;
+		$outstr .= '        <td class="editfield"><input type="text" name="PIDH_iGain" size="6" value="'.$f[1].'"> Intergral</td>'.PHP_EOL;
+		$outstr .= '       </tr>'.PHP_EOL;
+	    }
+	    if ($f[0] == "PIDH_DGAIN") {
+		$outstr .= '       <tr class="editor">'.PHP_EOL;
+		$outstr .= '        <td class="editname">PID Heat dGain</td>'.PHP_EOL;
+		$outstr .= '        <td class="editfield"><input type="text" name="PIDH_dGain" size="6" value="'.$f[1].'"> Derivative</td>'.PHP_EOL;
+		$outstr .= '       </tr>'.PHP_EOL;
+	    }
+	    if ($f[0] == "PIDH_IDLERANGE") {
+		$outstr .= '       <tr class="editor">'.PHP_EOL;
+		$outstr .= '        <td class="editname">PID Heat Idle Range</td>'.PHP_EOL;
+		$outstr .= '        <td class="editfield"><input type="text" name="PIDH_idleRange" size="6" value="'.$f[1].'"> &deg;C (Heater margin)</td>'.PHP_EOL;
+		$outstr .= '       </tr>'.PHP_EOL;
+	    }
 	    if ($f[0] == "COOLER_ADDRESS") {
 		$outstr .= '       <tr class="editor">'.PHP_EOL;
 		$outstr .= '        <td class="editname">Cooler Switch Address</td>'.PHP_EOL;
@@ -435,6 +477,36 @@
 		$outstr .= '        <td class="editfield"><input type="text" name="CoolerDelay" size="5" value="'.$f[1].'"> seconds (0..720)</td>'.PHP_EOL;
 		$outstr .= '       </tr>'.PHP_EOL;
 	    }
+	    if ($f[0] == "PIDC_IMAX") {
+		$outstr .= '       <tr class="editor">'.PHP_EOL;
+		$outstr .= '        <td class="editname">PID Cool Maximum</td>'.PHP_EOL;
+		$outstr .= '        <td class="editfield"><input type="text" name="PIDC_iMax" size="6" value="'.$f[1].'"> % (1..100)</td>'.PHP_EOL;
+		$outstr .= '       </tr>'.PHP_EOL;
+	    }
+	    if ($f[0] == "PIDC_PGAIN") {
+		$outstr .= '       <tr class="editor">'.PHP_EOL;
+		$outstr .= '        <td class="editname">PID Cool pGain</td>'.PHP_EOL;
+		$outstr .= '        <td class="editfield"><input type="text" name="PIDC_pGain" size="6" value="'.$f[1].'"> Proportional</td>'.PHP_EOL;
+		$outstr .= '       </tr>'.PHP_EOL;
+	    }
+	    if ($f[0] == "PIDC_IGAIN") {
+		$outstr .= '       <tr class="editor">'.PHP_EOL;
+		$outstr .= '        <td class="editname">PID Cool iGain</td>'.PHP_EOL;
+		$outstr .= '        <td class="editfield"><input type="text" name="PIDC_iGain" size="6" value="'.$f[1].'"> Intergral</td>'.PHP_EOL;
+		$outstr .= '       </tr>'.PHP_EOL;
+	    }
+	    if ($f[0] == "PIDC_DGAIN") {
+		$outstr .= '       <tr class="editor">'.PHP_EOL;
+		$outstr .= '        <td class="editname">PID Cool dGain</td>'.PHP_EOL;
+		$outstr .= '        <td class="editfield"><input type="text" name="PIDC_dGain" size="6" value="'.$f[1].'"> Derivative</td>'.PHP_EOL;
+		$outstr .= '       </tr>'.PHP_EOL;
+	    }
+	    if ($f[0] == "PIDC_IDLERANGE") {
+		$outstr .= '       <tr class="editor">'.PHP_EOL;
+		$outstr .= '        <td class="editname">PID Cool Idle Range</td>'.PHP_EOL;
+		$outstr .= '        <td class="editfield"><input type="text" name="PIDC_idleRange" size="6" value="'.$f[1].'"> &deg;C (Cooler margin)</td>'.PHP_EOL;
+		$outstr .= '       </tr>'.PHP_EOL;
+	    }
 	    if ($f[0] == "FAN_ADDRESS") {
 		$outstr .= '       <tr class="editor">'.PHP_EOL;
 		$outstr .= '        <td class="editname">Fan Switch Address</td>'.PHP_EOL;
@@ -543,36 +615,6 @@
 		$outstr .= '        <td class="editfield"><input type="text" name="TempSetMax" size="5" value="'.$f[1].'"> &deg;C</td>'.PHP_EOL;
 		$outstr .= '       </tr>'.PHP_EOL;
 	    }
-	    if ($f[0] == "IDLE_RANGE_L") {
-		$outstr .= '       <tr class="editor">'.PHP_EOL;
-		$outstr .= '        <td class="editname">Idle Range Low</td>'.PHP_EOL;
-		$outstr .= '        <td class="editfield"><input type="text" name="IdleRangeL" size="6" value="'.$f[1].'"> &deg;C (Cooler margin)</td>'.PHP_EOL;
-		$outstr .= '       </tr>'.PHP_EOL;
-	    }
-	    if ($f[0] == "IDLE_RANGE_H") {
-		$outstr .= '       <tr class="editor">'.PHP_EOL;
-		$outstr .= '        <td class="editname">Idle Range High</td>'.PHP_EOL;
-		$outstr .= '        <td class="editfield"><input type="text" name="IdleRangeH" size="6" value="'.$f[1].'"> &deg;C (Heater margin)</td>'.PHP_EOL;
-		$outstr .= '       </tr>'.PHP_EOL;
-	    }
-	    if ($f[0] == "PID_KP") {
-		$outstr .= '       <tr class="editor">'.PHP_EOL;
-		$outstr .= '        <td class="editname">PID Kp</td>'.PHP_EOL;
-		$outstr .= '        <td class="editfield"><input type="text" name="PID_Kp" size="6" value="'.$f[1].'"> Proportional</td>'.PHP_EOL;
-		$outstr .= '       </tr>'.PHP_EOL;
-	    }
-	    if ($f[0] == "PID_KI") {
-		$outstr .= '       <tr class="editor">'.PHP_EOL;
-		$outstr .= '        <td class="editname">PID Ki</td>'.PHP_EOL;
-		$outstr .= '        <td class="editfield"><input type="text" name="PID_Ki" size="6" value="'.$f[1].'"> Intergral</td>'.PHP_EOL;
-		$outstr .= '       </tr>'.PHP_EOL;
-	    }
-	    if ($f[0] == "PID_KD") {
-		$outstr .= '       <tr class="editor">'.PHP_EOL;
-		$outstr .= '        <td class="editname">PID Kd</td>'.PHP_EOL;
-		$outstr .= '        <td class="editfield"><input type="text" name="PID_Kd" size="6" value="'.$f[1].'"> Derivative</td>'.PHP_EOL;
-		$outstr .= '       </tr>'.PHP_EOL;
-	    }
 	    $i++;
 	}
     }
@@ -675,11 +717,16 @@
     $outstr .= '<input type="hidden" value="" name="PSUAdress">';
     $outstr .= '<input type="hidden" value="1.0" name="TempSetMin">';
     $outstr .= '<input type="hidden" value="30.0" name="TempSetMax">';
-    $outstr .= '<input type="hidden" value="-1.0" name="IdleRangeL">';
-    $outstr .= '<input type="hidden" value="1.0" name="IdleRangeH">';
-    $outstr .= '<input type="hidden" value="4.0" name="PID_Kp">';
-    $outstr .= '<input type="hidden" value="0.2" name="PID_Kd">';
-    $outstr .= '<input type="hidden" value="1.0" name="PID_Ki">';
+    $outstr .= '<input type="hidden" value="100" name="PIDC_iMax">';
+    $outstr .= '<input type="hidden" value="4.0" name="PIDC_pGain">';
+    $outstr .= '<input type="hidden" value="0.2" name="PIDC_dGain">';
+    $outstr .= '<input type="hidden" value="1.0" name="PIDC_iGain">';
+    $outstr .= '<input type="hidden" value="1.0" name="PIDC_idleRange">';
+    $outstr .= '<input type="hidden" value="100" name="PIDH_iMax">';
+    $outstr .= '<input type="hidden" value="4.0" name="PIDH_pGain">';
+    $outstr .= '<input type="hidden" value="0.2" name="PIDH_dGain">';
+    $outstr .= '<input type="hidden" value="1.0" name="PIDH_iGain">';
+    $outstr .= '<input type="hidden" value="1.0" name="PIDH_idleRange">';
     $outstr .= '<input type="hidden" value="testdata" name="action">';
     $outstr .= '<input type="hidden" value="add" name="command">';
     $outstr .= '<input type="hidden" value="00000000-0000-0000-0000-000000000000" name="UUID">';

mercurial