Exemple #1
0
<?php

require_once dirname(__FILE__) . '/../../Phpmodbus/ModbusMasterTcp.php';
require_once dirname(__FILE__) . '/../config.php';
// Create Modbus object
$modbus = new ModbusMasterTcp($test_host_ip);
// Data to be writen - BYTE
$data = array(0, 1, 1, pow(2, 8) - 1, pow(2, 8) - 1);
$dataTypes = array("BYTE", "BYTE", "BYTE", "BYTE", "BYTE");
// Write data - FC 16
$modbus->writeMultipleRegister(0, 12288, $data, $dataTypes);
// Read data - FC3
$recData = $modbus->readMultipleRegisters(0, 12288, 5);
print_r($recData);
// Data to be writen - INT
$data = array(0, 1, -1, pow(2, 15) - 1, -pow(2, 15));
$dataTypes = array("INT", "INT", "INT", "INT", "INT");
// Write data - FC 16
$modbus->writeMultipleRegister(0, 12288, $data, $dataTypes);
// Read data - FC3
$recData = $modbus->readMultipleRegisters(0, 12288, 5);
print_r($recData);
// Data to be writen - DINT
$data = array(0, 1, -1, pow(2, 31) - 1, -pow(2, 31));
$dataTypes = array("DINT", "DINT", "DINT", "DINT", "DINT");
// Write data - FC 16
$modbus->writeMultipleRegister(0, 12288, $data, $dataTypes);
// Read data - FC3
$recData = $modbus->readMultipleRegisters(0, 12288, 10);
print_r($recData);
// Data to be writen - REAL
 $result1 = mysql_query($query);
 $num1 = mysql_numrows($result1);
 $art = mysql_result($result, $w, "art");
 $start = mysql_result($result, $w, "start");
 $anzahl = mysql_result($result, $w, "anzahl");
 $anzahl2 = $anzahl - 1;
 $basis = mysql_result($result1, 0, "start");
 $filename = "https/rrd/" . $art . "_" . $start . "_" . $anzahl2 . ".rrd";
 //Filename aus den Angaben bilden
 if (file_exists($filename)) {
     // Wenn der Filename vorhanden ist rrd File updaten
     // FC 3
     if ($art == "MD") {
         try {
             $start2 = $start * 2 + $basis;
             $recData1 = $modbus->readMultipleRegisters(0, $start2, $anzahl * 2);
             // Modbus lesen
         } catch (Exception $e) {
             System_Daemon::info('{appName} Modbusfehler %s %s', $modbus, $e);
         }
         $values = array();
         $values = array_chunk($recData1, 4);
         $recData = array();
         foreach ($values as $bytes) {
             array_push($recData, PhpType::bytes2signedInt($bytes));
         }
     } else {
         try {
             $start2 = $start + $basis;
             $recData1 = $modbus->readMultipleRegisters(0, $start2, $anzahl);
             // Modbus lesen