Funksteckdosen per 433MHz Sendemodul steuern

Aufgabenstellung

Mittels der 433MHz Senderoption des Hubo lassen sich diverse Geräte per Funk steuern.

Lösung

Im folgenden Beispiel wurde auf das in der Hubo C++-Library enthaltene Demoprogramm „RCSwitch“ einer Funksteckdosensteuerung zurückgegriffen, um den Sender zu steuern. Das Programm muß sich demnach im Usermode ausführbar, und im Standardsuchpfad des Betriebssystems (z.B. unter „/usr/bin/“) befinden. Zudem bedarf es einer Anpassung der CODESYS Runtime Konfiguration (siehe “/etc/CODESYSControl_User.cfg”) um die Einträge:

[SysProcess]
Command.0=RCSocket

Das Vorgehen ist ebenfalls in der Onlinehilfe der Bibliothek beschrieben.

Deklarationsteil

PROGRAM PLC_Switch
VAR
    bSocketOn      :   BOOL            := FALSE;
    bSocketState   :   BOOL            := FALSE;
    mySocket       :   Hubo.RCSocket   := (familyCode := 31, SocketNo := 1);
END_VAR

Der FB RCSocket wird entsprechend der Konfiguration der Steckdose mit Familycode und Steckdosennummer konfiguriert.

Funktionsrumpf

// Einmalige Initialisierung des Objektes. Folgeaufrufe sind unschädlich und werden ignoriert. 
IF mySocket.Initialize() <> Hubo.ERROR.NO_ERROR THEN
    return;
END_IF

// Schalter zyklisch anhand der Variable "bSocketOn" aktualisieren.
IF bSocketState <> bSocketOn THEN
    mySocket.Switch(bSocketOn);
    bSocketState := bSocketOn;
END_IF

Ein puffern der Werte entfällt hier. Stattdessen wird eine Variable bSocketOn von der Webvisualisierung geändert und der jeweils geänderte Wert gesendet.

Kommentare sind geschlossen.