Liebe Community,
anbei findet ihr eine beispielhafte Lösung, um die Schaltausgänge eines Rutenbeck TCR IP4 zu schalten und den optionalen Temperatursensor auslesen zu können.
Viel Erfolg - bei Fragen gerne melden.
VG Olaf
Infos zum Gerät:
Produkte - Rutenbeck
Anleitung zum Gerät:
https://www.rutenbeck.de/fileadmin/user_upload/pdfs_downloadbereich/Produktdatenblaetter/700802610de.pdf
-
UDP Socket in IPS einrichten
-
TCR IP4 konfigurieren
-
Ausgänge schalten
Für den 1. Ausgang tragt ihr „OUT1 1"h0 ein. Zwischen OUT1 und
der 1 ist ein Leerzeichen. Mit h0 (Hex Null) wird der Befehl abgeschossen. Entsprechendes gilt dann für den 2. Ausgang mit „OUT2“ und fortfolgende.
<?
if ( $_IPS['SENDER'] == 'WebFront')
{
SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
if ( $_IPS['VALUE'] == TRUE)
{
USCK_SendText(17754, "OUT1 1");
USCK_SendText(17754, "0");
}
else
{
USCK_SendText(17754, "OUT1 0");
USCK_SendText(17754, "0");
}
}
?>
- Registervariable in IPS erstellen
- Temperatur auslesen
Dazu muss dem TCR IP4 eine Abfrage per UDP gesendet werden, worauf das Gerät dann antwortet.
Abfrage:
<?
USCK_SendText(17754, "T ?");
?>
Empfang:
<?
if ($_IPS['SENDER'] == "RegisterVariable")
{
$data = RegVar_GetBuffer($_IPS['INSTANCE']);
// neu empfangene Daten an $data anhängen
$data .= $_IPS['VALUE'];
//wenn das Trennzeichen ; in $data gefunden worden ist
if (strpos($data, '='))
{
// $data in durch = separierte Datensätze zerlegen
$datasets = explode('=', $data);
// $data auf den Inhalt des letzten (unvollständigen) Datensatzes setzen
$data = $datasets[count($datasets) - 1];
}
// Inhalt von $data im Puffer der RegisterVariable-Instanz speichern
RegVar_SetBuffer($_IPS['INSTANCE'], $data);
SetValueFloat(53436, floatval($data));
}
?>