--- 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].'"> °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].'"> °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].'"> °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].'"> °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].'"> °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">';