Archiv des ehemaligen Wiki

Die Inhalte sind seit Januar 2016 archivert und somit nicht mehr auf dem aktuellsten Stand

PoKeys in IPS

PoKeys in IPS

Einbinden der PoKeys in IPS

Mit PoKeys fängt man an

Von der Herstellerseite lädt man die Konfigurationssoftware herunter. (Hinweis: Die Software installiert NET framework 3.5.)
Mit dieser Konfigurationssoftware kann das Modul vollständig über eine grafischen Benutzeroberfläche programmiert werden (Es existiert aber auch eine Konsolenschnittstelle.)

PoKonfSoftS1

Wichtig hierbei:  
Nach erfolgter Programmierung muss diese dem Modul per "Send to device"-Button übermittelt werden 

Zur Ansprechbarkeit über IPS muss in der Konfigurationssoftware Modbus lesen erst erlaubt werden. Die Überwachungszeiten (Erfahrungswert) auf > 5 Sek einstellen. Hinweis: Bei Sensors die "Read-Checkbox" aktivieren, wenn DS18B20 ausgelesen werden sollen.

PoKonfSoftModBus

Nun kann man z.B. testweise einen 1-wire Bus mit bis zu 10 1-wire Sensoren an PIN 55 (dieser ist für den 1-wire Bus vorbereitet) anschließen.
Ab Januar 2015 sind mehr als 99 Fühler (1Wire, DHTx1-Feuchtefühler und andere) nicht nur an Pin55, fast an jedem Pin möglich.
Damit sind max. 99 Sensorwerte per Modbus möglich, 1Wire Temperaturfühler und DHTx1-Fühler sind an fast jeden Pin möglich.
Auch mehrere 1Wire-Fühler an einen Pin, also mehrere Busse sind möglich.

Hinweis:  
Braucht man mehr als 10 1Wire Sensoren, dann sollte man eine speziell angebotene PotLog Firmware  
über die Software von Pokey56E einspielen, die 27 Sensoren unterstützt.

Ab Januar 2015 gibt es eine spezielle Firmware für 57E Module. 
Diese Firmware erlaubt es, über eine überarbeitete Auswahl, über 99 Sensoren, 1Wire Temperaturfühler, 
I2C Geräte oder analoge Eingänge zu nutzen. 99 Modbusadressen sind in IP-Symcon für diese Fühler nutzbar. 
Das Einspielen erfolgt über Device-> Upgrade Firmware-> Pokeys57E Serie. 
Nun bekommt man noch den Hinweis, dass man die 56er Firmware nicht mehr nutzen kann. 
Wer ein laufendes System so updatet, muß die Fühler bzw. die Fühleradressen neu anlernen und anpassen!!

Tipp von Helmut zur 27er PotlogFühler Version: Das mach mal 2 mal hintereinander, sowie 2mal Clean Setting. 
Nachteil der Aktion : Jeder der 27 Sensoren benötigt einen einzelnen I/O Pin, 
was zwar das Bus-Konzept ad absurdum führt aber auch neue Perspektiven eröffnet. 
Mit dieser speziellen Version geht aber ein eingeschränkter Funktionsumfang ggü. der 
normalen Firmware einher. 
Ist mit der 57E-Firmware überholt und damit wesentlich komfortabler geworden.

In der 56er Konfigurationssoftware findet man unter dem Menü Peripherals den Menüpunkt Sensors.

Hier kann man unter dem Tab 1-wire sensors von jedem der bis zu 10 Sensoren die jeweilige 64bit-ID einlesen (jeder Sensor muss hierzu einzeln an PIN 55 angeschlossen werden) und einem der 10 Speicherplätze zuweisen.

PoKonfSoftSensors

Sie einzelnen 1-wire sensoren können auch getestet werden.

PoKonfSof1wireTest

Beispielsweise kann man sich auch die Auslastung des PoKeys grapisch anzeigen lassen.

PoKonfSoftLoadStatus

... und vieles mehr.

Mit der 57E Software ab Januar 2015 gibt es den EasySensor-Dialog.

Pokey Sensor Auswahl EasySensor

Mit der Unterauswahl 1Wire, DHTx1 Fühler, I2C und analoge Eingänge.
1Wire und die Feuchte/Temperaturfühler der DHTx1 Familie können an fast jeden Pokey57-Pin angeschlossen werden.
Auch mehrere Fühler an einem Pin sind möglich!!

Pokey Sensor Auswahl-1Wire

Bei den I2C-Sensoren gibt es einige einprogrammierte Geräte.

Pokey Sensor Auswahl I2C

Bei den analogen Eingängen kann die Verstärkung und ein Offset destgelegt werden. Damit kann der gemessene Wert den Bedürfnissen einer Anzeige, zB Feuchtewert in % oä. angepasst werden.

Pokey Sensor Auswahl analog

In dem DHTx1 Sensordialog kann nach DHTx1 Fühlern auch, wie bei 18x20-Teperaturfühlern gesucht werden. Diese Fühler sind sehr preiswerte Bausteine. Jeder DHTx1 Baustein liefert 2 Werte: Temperatur und Feuchte.

Pokey Sensor Auswahl-DHT Fuehler

Leider muß man einen falsch parametrierten analogSensor wieder löschen und mit anderen Werten für Gain oder Offset neu anlegen.

Nun kommt IPS ins Spiel

  • hier ist ein Script, welches aus der aktuellen Konfiguration (die man mit der Pokeys-Software erstellt hat) - in IPSymcon alle Modbus Instanzen incl. Splitter erstellt. - All Info's :
  • http://www.symcon.de/forum/threads/25001-PoK_Install-Skript-zum-Erstellen-von-IPS-Objekten-für-den-Betrieb-von-Pokeys?p=228863#post228863
  • Wenn man es selber machen will:
  • als erstes würde ich eine eigene Kategorie mit dem Namen z.B. "PoKeys56E" erstellen

    Hinweis:
    Rechtsklick im Objektbaum der Verwaltungskonsole "Objekt hinzufügen" - "Kategorie hinzufügen",

  • dann einen Client mit dem Namen z.B. "Client Socket Pokey" anlegen.

    Hinweis: Instanz hinzufügen, Alle Module anzeigen anhaken, unter I/O Client Socket auswählen.

    Werte: IP Adresse des Pokeys (individuell in der PoKeys Konfigurationssoftware konfigurierbar) und den Port 502 eintragen.

  • nun einen Splitter Modbus mit dem Namen z.B. "ModBus TCP Pokey" erstellen,

    Hinweis:
    Instanz hinzufügen, alle Module anzeigen anhaken, unter Splitter dann ModBus TCP Pokey auswählen.

    Wenn jetzt ständig Client Socket rausfliegt, das ist so, wenn keine Abfrage darauf stattfinden. Sobald die erste Temperatur, der erste IO-Pin abgefragt wird, ist die Fehlermeldung weg!!

  • ModBus TCP anwählen und die richtige Geräte-ID eintragen.

    (= in der PoKeys Konfigurationssoftware konfigurierbare User-ID) Haken bei LSW/MSW für 32Bit Werte tauschen. Als Übergeordnete Instanz wird der gerade erstelle Client "Client Socket Pokey" angewählt.

Hier folgen nun verschiedene Beispiele, die mit PoKeys umsetzbar und mit IPS nutzbar sind

Wenn man mal die verwendeten Adressen als Überblick sehen will hier ein Modbus TCP Test-Tool (Master) https://modbustool.codeplex.com/releases/view/101146

1-wire Sensoren

  • zum Zugriff auf den einzelnen Sensor wird je eine ModBus Instanz mit dem Namen z.B. "Sensor n" angelegt,

    Hinweis:
    Instanz hinzufügen, ModBus und rechts ModBus Gerät auswählen.

    Werte: Einheit: DWord (32Bit - Unsigned) Schreibadresse: 0 (wir können ja den Sensor nur auslesen) Leseadresse: 420 (in 2er Gruppen weiter machen ist DWord !!) in neuer 57E-Firmware anders !! Nur-Lesen anhaken Status emulieren nicht anhaken Intervall auswählen (beliebig einstellbar je nach Bedarf - bei mir 30000) Als Übergeordnete Instanz wird der gerade erstelle Splitter Modbus "ModBus TCP Pokey" angewählt.

Mit Anlegen der Instanz steht und nun eine Integervariable "value" mit dem Temperaturwert des 1-wire Snsors zur weiteren Verwendung zur Verfügung.

Hier ein Umrechnungsbeispiel:
$TemP1= GetValueInteger(12345 /*[PoKeys56E\Sensor 1\Value]*/); // umrechnen, also mit Komma
SetValueString(12345 /*[PoKeys56E\Sensor 1\Heizungsvorlauf]*/,floatval($TemP1/100)." °C");


Das Script wird als Ereignis, ausgelöst durch die Variablenänderung der IntegerVariable, getriggert.
Hinweis:  
Ereignis hinzufügen, ausgelöstes Ereignis wählen. 

Werte
Durch die obige Instanz erstellte Intergervariable "value" auswählen 
Bei Variablenaktualisierung anwählen
Weiter
Auf obiges Script verweisen, Aktion: Script starten

Die 1Wire Sensoren liegen ja als Integer vor. Zum Weiterverarbeiten ist das auch in Ordnung, für die Anzeige ist eine Textausgabe aber besser.

Andreas alias Boui hat herausgefunden, dass die Sensoren, die an den analogen Eingängen sind, und dessen GAIN und Offset in Pokey eingestellt werden, auf der Adresse 440 aus zulesen sind. Und zwar so wie sie umgerechnet wurden. Also ab ADR 10 = analoge Rohwerte und ab Adresse 440 die in Pokey56E umgerechneten Werte.

I2C Bausteine

Anhand des Lichtsensors BH1750 soll der Anschluß von I2C-Bausteinen nachfolgend erläutert werden:

Die I2C-Bausteine werden an die 5-polige Anschlußklemme des externen Pokey-Bus angeklemmt.
Der Pin 1 ist der 5Volt Anschluß, das ist der Stift, der zur 20er-Pinreihe zeigt.
Der Pin 2 ist GND
Der Pin 3 ist Seriell Data SDA
Der Pin 4 ist hier unbenutzt
Der Pin 5 ist Seriell Clock SCL
Die Eintragung erfolgt in der Pokeysoft unter Peripherals/Sensors bei I2C-Sensors.
Hat man einen I2C-Baustein aus der Typenauswahl, wie der Lichtsensor BH1750, so wählt man ihn an und sucht per Klick auf den Scan for Device die I2C-Adresse.
In meinem Fall ergab die Suche 0x23. Diese Adresse wählt man im Feld ADRESS aus und speichert es per SAVE ab.
Vorher kann man noch das Abfrageintervall festlegen.
Ich klicke sicherheitshalber nochmal auf Send to device.
Mit anderen Sensoren aus der Typenauswahl sollte es ähnlich funktionieren.

PWM

Hier habe ich ein Script gepostet, dass ein RGB-LED-Band über die PWM-Pin's auf dem Pokeys56E-Modul ansprechen kann.
Die Modbusadressen Word = Adr213, -211, -209, -207, -205, -203 für die PWM-Werte.

RGB-PWM über Modbus TCP

Ein- Ausgang

Hinweis

Die PINS 1 und 2 haben nur schwache Ausgangstreiber. Zur Ansteuerung von z.B. Relais sind diese überfordert!"

Wie frage ich einen Eingang ab bzw wie nutze ich in IPS einen Ausgang

In der Pokey Software den gewünschten Aus- bzw. Eingang als Aus- oder Eingang parametrieren, mit send to Device dem Modul übergeben.
Bei Device im Modbus configurations - dialog die entsprechende Haken setzen. Send to device kann nicht schaden.
Ist das Pokey-Modul in IPS eingerichtet, kann man zB mit Instance hinzufügen zB Pin 16 als Modbus-Ausgang nutzen.
Die Modbusadresse ist die Pin-Nummer minus 1. Die Einheit ist Bit.
Ein Eingang wird durch wird durch "NurLesen" anhaken erstellt.
Die übergeordnete Splitter Instanz muß mit "Modbus RTU TCP" anfangen und auf die Pokey-Clientadresse führen, wobei RTU etwas irreführend ist, weil es nur TCP ist.

PoSwi

Hier die Beispiele, wie so etwas dann in IPS ausschauen kann.

PoKey Digital Input Pin 23 PoKey Digital Output Pin 13 PoKey Digital IO in IPS

Die Ein-/Ausgänge können in der PoKeysSoftware invertiert werden, wenn z.B. die Eingänge offen als AUS und geschlossen als AN übermittelt werden.

PoExtBus

Der externe Bus PoExtBus kann bis zu 10 externe Relaismodule steuern. Die einzelnen Kanäle können über IPS ausgewertet und/oder gesteuert werden. Die Konfiguration erfolgt wie oben, allerdings mit folgenden Parametern:

Modul 1 Relais A : 2079 1bit r/w
Modul 1 Relais B : 2078
Modul 1 Relais H : 2072
Modul 2 Relais A : 2071
..usw bis 2000

Die Zählweise ist also je Modul absteigend (vgl. PoKeys Handbuch S. 75)

Display

LCD mit bis zu 4 x 20 Zeichen

Das PoKeys-Modul unterstützt Displays bis 4 Zeilen mit je 20 Zeichen, die den HD44780-Standard unterstützen.
Hier ein Testaufbau:

LCD Testaufbau

Das Display belegt die PINs 23 bis 30 und wenn man ein zweites Display anschließen möchte, benötigt man noch zusätzlich die PINs 31 - 34. (Vorsicht in der Handbuch Version vor 14.01.2014) ist noch ein Fehler auf Seite 14, da dort die Beschreibung von PIN 29 und PIN 30 vertauscht wurden)

Für das obige Standarddisplay werden nur 10 Drähte benötigt.

Anschluss Display

  • VSS = Ground
  • VDD = 5V
  • V0 = Kontrast. Hier einfach einen Poti 10k zwischen Grund und +5V legen und den PIN V0 am Schleifer abgreifen.
  • RS = PIN 29 PoKeys
  • R/W = PIN 28 PoKeys
  • E = PIN 30 PoKeys
  • D0-3= werden nicht benötigt
  • D4-7= PIN 26 - 23 PoKeys
  • A = Hintergrundbeleuchtung +5V (die könnte man auch über den PoKey dimmbar machen)
  • K = Hintergrundbeleuchtung Ground

Die Displayausgabe mit Hilfe von PoBlocks folgt...

Zum Warenkorb
Haben Sie noch Fragen?