Wenn man den Befehl groupwrite des eibd verwenden möchte, um z.B. 2-Byte-Datentelegramme auf den Bus zu schicken, steht man zuerst vor der Herausforderung, dass der Wert meist von einer Integer-Zahl auf 2-Byte Hex umgewandelt werden muss.

Dies funktioniert folgendermaßen:

 

function Value2Eis5($value)
{
    $value *= 100;
    
  $eis5 = 0;
  $exponent = 0;
  
  if ($value < 0)
  {
    $eis5 = 0x08000;
    $value = -$value;
  }  
  while ($value > 0x07ff)
  {
    $value >>= 1;
    $exponent++;
  }
  if ($eis5 != 0)
    $value = - $value;
  
  $eis5 |= $value & 0x7ff;
  $eis5 |= ($exponent << 11) & 0x07800;
  $tmp = $eis5 & 0x0ffff;
  
  return dechex($tmp);
}

      
echo Value2Eis5($value)."<br>";
  honeypot@dxsdata.com