9 require_once
'BayEOSGatewayClient.php';
11 $config=parse_ini_file(
'/etc/eurotherm2704.ini');
17 for($i=0;$i<count(
$config[
'host']);$i++){
18 $names[$i]=
'IP.'.$config[
'host'][$i];
27 for($i=0;$i<count(
$config[
'host']);$i++){
28 if(! preg_match(
'/^[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+$/',
$config[
'host'][$i]))
29 die(
$config[
'host'][$i].
" is not a valid IP address\n");
38 $addr=array(1,5,1025,1029,2049,2053,
39 12197,12198,12199,12200,12201,12202,
41 $namen=array(
'Istwert Temperatur Prüfraum',
'Sollwert Temperatur Prüfraum',
42 'Istwert Feuchte Prüfraum',
'Sollwert Feuchte Prüfraum',
43 'Istwert Temperatur Lampenraum',
'Sollwert Temperatur Lampenraum',
44 'Lampengruppe 1',
'Lampengruppe 2',
'Lampengruppe 3',
'Lampengruppe 4',
'Lampengruppe 5',
'Lampengruppe 6',
45 'Störung',
'Störung Kaltsolesatz');
47 $fp=fsockopen($host,502, $errno, $errstr, 10);
49 fwrite(STDERR, date(
'Y-m-d H:i:s').
" $name: No Socket to $host: $errstr ($errno)\n");
54 for($i=0;$i<count($addr);$i++){
55 $req=$this->readMultipleRegistersPacketBuilder(255, $addr[$i], 1);
58 $packet=fread(
$fp,11);
60 if((ord($packet[7]) & 0x80) > 0) $modbus_error=1;
62 fwrite(STDERR, date(
'Y-m-d H:i:s').
" $name: Modbus Error $host\n");
75 private function readMultipleRegistersPacketBuilder($unitId, $reference, $quantity){
93 return $buffer3. $buffer2. $buffer1;
static UINT16($value, $endianness=0)
static unpackINT16($value, $endianness=0)
if(!isset($config['names'])) else $names
getOption($key, $default='')