IR-Transmitter

Fernsteuerung von Leinwand, AV Receiver und Beamer mittels SPS:


Problem:

 

 

Leider besitzt weder der Beamer noch die maskierbare Motorleinwand einen separaten Steuereingang zur Bedienung. Alle Bedienhandlungen werden mittels eigenen Fernbedienungen durchgeführt. Nun soll aber die SPS über einen Einbefehl Licht und Beamer einschalten sowie die Leinwand absenken. Da mein Wunsch war, auch den AV-Receiver aus der Nebenzone bedienen zu können, musste eine bessere und flexiblere Lösung her, als dies mit der lernbaren Fernbedienung möglich gewesen wäre.


Lösung:

 

 

Die Firma IR-Trans bietet für die Steuerung von IR-Komponenten mittlerweile eine gute Auswahl für die verschiedensten Anwendungen. Da es den IR-Trans LAN I/O mit RS232 Schnittstelle gibt, ist er das ideale Gerät für die Kommunikation mit der SPS Steuerung, da es bei dieser ebenfalls eine RS232 Schnittstelle gibt. Der Datenaustausch ist über RS232 relativ leicht. Benötigt wird lediglich ein Cross-Over RS232 Datenkabel.

Das Grundgerät bietet neben der RS232 Schnittstelle zwei weitere Ausgänge, um externe Infrarotsender anzuschliessen. Diese beiden Sendedioden sitzen direkt am Beamer und an der Leinwand. Ebenfalls hat das Gerät auch eingebaute Sendedioden, so dass der AV Receiver direkt ohne externe IR Sendedioden gesteuert werden kann, da ja der IR-Trans LAN I/O direkt am Receiver montiert ist.

Daneben gibt es noch eine eingebaute Infrarot Empfangsdiode, damit die benötigten Befehle angelernt werden können. Eine Integrierte IR-Datenbank und dessen Firmware kann dann die Infrarotbefehle über die RS232 Schnittstelle an die SPS weitergeben oder von dieser empfangen

Das Gerät besitzt zusätzlich noch eine Ethernet Schnittstelle, mit dieser sich das Gerät bequem über eine PC parametrieren lässt.

ir-Trans Serial

Mittels der IR-Trans GUIClient.exe lässt sich der Transmitter programmieren.

Als erstes werden die einzelnen Befehle der verschiedenen Komponenten angelernt. Über Modus -> Befehle lernen können die einzelnen Geräte und dessen Befehle gelernt werden. Einfach die original FB auf den IR-Trans richten und dort alle Befehl der Reihe nach anlernen.

 

IR Trans GUI Client Befehle lernen

Sind alle derzeit benötigten Infrarotbefehle angelernt, kann in die Device Datenbank gewechselt werden. Dort sind nun alle verfügbaren ‘Fernbedienungen’ aufgeführt. Alle benötigten FBs werden dort selektiert und dann in das IR-Device über Flashen abgespeichert. Somit sind alle Befehle unabhängig im IR-Trans hinterlegt und können damit über die SPS angesprochen werden.

Zum ansprechen eines einzelnen IR-Befehls, wird über die RS232 Schnittstelle der Befehl snd gefolgt vom Device und dessen Befehl gesendet. Will ich also z.B. die Lautstärke des Receivers erhöhen, dann wird folgender Befehl über RS232 ausgegeben:

snd receiver,volumen +

Device und Befehl werden durch ein Komma getrennt, mehrere Befehle lassen sich durch einen Strichpunkt trennen, so sind auch Makros möglich:

snd receiver,ein;dvd

Ebenfalls lassen sich Pausen in ein Makro einbauen, wenn z.B. 1000ms zwischen zwei Befehlen gewartet werden soll:

snd mitsubishi beamer,aus;@p1000;aus

 

IR Trans GUI Client Device Datenbank

Gleiches lässt sich übrigens auch über einen Webbrowser ausführen, wenn der IR-Trans im Netzwerk hängt. Dazu wird dann die IP Adresse des IR-Trans angegeben:

href="http://10.32.16.110/send.htm?remote=receiver&command=volumen +”
href="http://10.32.16.110/send.htm?remote=receiver&command=ein;dvd”
href="http://10.32.16.110/send.htm?remote=mitsubishi beamer&command=aus;@p1000;aus”

Nun ist der IR-Trans weitestgehend konfiguriert. Überprüft werden sollten noch die Schnittstelleneinstellungen der RS232 Schnittstelle. Diese müssen mit den Einstellungen der SPS überein stimmen.


Programmaufbau SPS:

Siemens TIA Portal V11 DB anlegen

Als erstes wird ein Datenbaustein (DB) in der CPU angelegt. Im neu angelegten DB (Comm_Buffer) dann eine Variable des Typs String eintragen. Diese Variable dient zukünftig zur Aufnahme des Sendestrings.

In einem Organisationsbaustein (OB) in der CPU werden nun über den Befehl S_MOVE die entsprechenden Befehle in den Sendepuffer geschrieben, wenn das entsprechende Bit eine positive Flanke liefert.

Wird z.B. auf dem Touchpanel 1 (Hauptzone) die Taste Volumen lauter gedrückt, dann soll der Receiver entsprechend reagieren. Im Beispiel wird bei einer positiven Flanke der Variablen TP1_HZ_Vol_Plus (Merker 12.0) der String ‘snd receiver,volume +' in den Sendepuffer Send_String geschrieben.

Diese Vorgehensweise wird nun mit allen benötigten IR-Befehlen gemacht.

Hinweis:
Alle hier angegebenen Strings (IR-Befehle) müssen in dieser Schreibweise natürlich auch in der IR-Trans Datenbank vorliegen. Andernfalls wird der Befehl später nicht ausgeführt.

Siemens TIA Portal V11 Befehle aufbereiten

Mittels des Baustein SEND_PTP wird dann der eigentliche Sendevorgang ausgeführt. In diesem Beispiel wird zuerst überprüft, ob sich im Sendepuffer Send_String ein String befindet. Ist dies der Fall (Baustein Ungleich <>), so steuert eine Positive Flanke am Freigabeeingang REQ des Sendebausteins das absenden des Befehls. Der Anschluss PORT gibt die Hardwarekennung der RS232 Schnittstelle an. Diese ist in der Geräteansicht eingetragen. Unter BUFFER ist unser schon bekannter Sendepuffer des DB angegeben. Nebenbei gibt der Sendebaustein noch Statusmeldungen wie DONE, ERROR und STATUS aus. Diese können entsprechend im Programm ausgewertet werden.

In einem weiteren Netzwerk wird nach 0,5 sec der Sendepuffer wieder gelöscht. Damit kann dieser neue Befehle aufnehmen und Senden.

 

Siemens TIA Portal V11 Befehl senden


Anmerkung:

 

 

Dieses Programmgerüst ist als Beispiel bewusst einfach gehalten. So sollte der Sendepuffer erst gelöscht werden, wenn der Sendebaustein Fertig meldet. Ebenfalls könnte die SPS bei Fehlern des Sendebausteins diese auswerten und z.B. das Telegramm wiederholen. Das ist relativ einfach umzusetzen. Natürlich ist auch der umgekehrte Weg möglich, also der Empfang von Daten über die RS232-Schnittstelle und die entsprechende Reaktion in der SPS. Bei weiteren Fragen einfach eine Mail an mich senden.