Rutenbeck TCR IP4

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

  1. UDP Socket in IPS einrichten
    UDP_Socket_IPS.png

  2. TCR IP4 konfigurieren

  3. 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");        
			}    
	
	}  


?>
  1. Registervariable in IPS erstellen

  1. 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));				
}

?>