Archiv des ehemaligen Wiki

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

Hardwarenews-Liste

Hardwarenews-Liste

Pokeys56E

Was ist PoKeys56E/57E (57E = mehr Speicher):

Eine Beschreibung zum o.g. Modul, gibt es beim Vertrieb www.poscope.com, und hier in Kurzform:
PoKeys56E ist ein einfach zu bedienendes Modul, das 55 (5V tolerante) Ein-und Ausgänge, Zähler, analoge Ein- und Ausgänge ohne komplexe Programmierkenntnisse übers Ethernet zur Verfügung stellt.
Die Pin's sind u.a. kombinierbar als analoge Eingänge (12-Bit), bis zu 6 High Speed PWM (bis zu 25 MHz), IC2-Bus, 1Wire-Bus, Encoder, Tastaturmakros, LCD-Display, Matrix - Tastaturen, LED - Matrix, als Zähler (bis zu 24, Flanken einstellbar und noch nicht Batterie gepuffert).
Dieses Modul ist in IPSymcon als ModBus Gerät bedien- und lesbar. Die Platine ist mit einem Halter für eine Pufferbatterie zur Pufferung der Echtzeituhr und der 24 möglichen Zähler bestückt. Laut Support werden diese Zähler aber erst demnächst unterstützt. Als Batterie ist eine Lithiumzelle CR1220 mit 3Volt vorgesehen.
Den Modulen kann eine Unit-Nummer vergeben werden, so dass sehr viele Module kombiniert werden können. Laut Hersteller ist PoKeys56 als Industrie-oder CNC-Steuerung oder Messkarte einsetzbar.
PoLabs stellt die Software und Beschreibungen unentgeltlich zur Verfügung. Sie ist mit einem Demomodul auch ohne echtes Modul "ausprobierbar"

Nun zur Praxis

Mit PoKeys fängt man an:

PoKeys benötigt eine 5V Versorgung (5V Netzteil mit 400 mA für das Modul ohne externe Verbraucher) und einen LAN-Anschluss und schon kann es los gehen. 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.)
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.
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.

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.

Tipp von Helmut: Das mach mal 2mal 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.

In der 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.

Nun kommt IPS ins Spiel

  • als erstes würde ich eine eigene Kategorie mit dem Namen z.B. "PoKeys56E" erstellen
  • Rechtsklick im Objektbaum der Verwaltungskonsole "Objekt hinzufügen" - "Kategorie hinzufügen"
  • dann einen Client mit dem Namen z.B. "Client Socket Pokey" anlegen.
  • Instanz hinzufügen, Alle Module anzeigen anhaken, unter I/O Client Socket auswählen.[/i]

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.
- 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 !!

Werte:
- 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 1-wire Sensoren
- zum Zugriff auf den einzelnen Sensor wird je eine ModBus Instanz mit dem Namen z.B. "Sensor n" angelegt.
- 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 !!)
- 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. Analoge Sensoren

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

Display

Hier noch ein absolutes Highlight: PoBlocks

Neben der Konfigurationssoftware liefert der Hersteller noch eine Anwendung, die es in sich hat. Mit der Software PoBlocks (aktuell noch beta) kann man per Drag & Drop eine komplette Logikschaltung zusammenstellen, austesten und an PoKeys übertragen. Der Funktionsumfang ist einfach der Wahnsinn.

Hier mal ein Beispiel von Helmut. Eine komplette Außentemperaturgesteuerte Heizungssteuerung und ein Beispiel von Holger (Forumsbeitrag) Beispiel von Helmut

Aussentemp. geführte Vorlauf Temperatur Regelung, Nachtabsenkung mit LCD u Modbus TCP

Neues ab Version 1.2.0.0beta

  • Firmware 3.1.1 und PoBlocksBeta 1.2.0. sind aktuell
  • resetbare Digital counter (Reseteingang muss mit Show Reset Input aktiviert werden)
  • Bytes to Bits Baustein. Ein Wert bis 255 wird in seine 8 Bits zerlegt
    Bytes to Bits
  • new sample&hold block. Ein Integerwert zB. analogIN oder 18B20 wird bei Pegelwechsel vom Enable abgespeichert
  • einzel resetbare Zähler mit allen Pin's die Counterfunktion haben, also bis zu 25 !! Z.B als So-Zähler (nicht geuffert)
  • neben PWM gibt es Custom PWM block, hat per Program ladbarer Parameter (bis 6 auf einmal ladbar)
  • adjustable clock source period, man kann die Zeit per Integerwert zur Laufzeit verändern
  • PoIL task manager feature via PoBlocks (Tool menu)
  • ....

Neues ab Version 1.1.0.11beta

  • Firmware 3.1.0 und PoBlocksBeta 1.1.0.11 sind aktuell
  • In der PoBlocksauswahl erscheint ein neuer Eintrag: PoPCL58, das Modul, welches in 1/2014 kommt

Neues ab Version 1.1.0.10beta

  • Ab der Firmware 3.0.57 und der PoBlocksBeta 1.1.0.10 ist wieder einiges mehr möglich mit dem Pokey56/7 Modul
  • Es gibt z.B einen Interpreter. Man definiert Variablen, Bits oder Integer auf der linken Seite und auf der rechten Seite schreibt man ein Program.
  • AND- Oder-, Multiply- und Div-Bausteine können nun bis zu 4 Eingänge haben und per Klick läßt sich ein negierter Ausgang zuschalten.
  • Ein simpler 2-Punkt-Regler mit einstellbarer Hysteres und Verstärkung wurde integriert (PID-Regler gibt's schon länger ;-) ) .
  • Share Data gibt es in verschiedenen Grössen (Byte, 16-Bit und 32-Bit Integer).
  • Neu auch verschiedene RAM-Bausteine mit Lade- und Entlade- Clock-Eingängen.

Tipps zu PoBlocks

  • Unter Menü Tools, Device selection muss PoIL core enabled sein, damit sich PoBlocks mit den PoKeys-Modulen verbinden kann.
  • Feste Werte am Eingang (Ziffern/Zahlen) setzt man, indem man mit der rechten Maustaste auf den Eingang klickt und dann den Wert einsetzt.
  • Die 1-Wire Sensoren spricht man mit ID 11 - 20 (siehe Konfigurationssoftware) an. Empfehlung für den Busabschlußwiderstand: so um 3,3 kOhm.
  • Wenn man den Mauszeiger auf den Logikbausteinen im Menü verweilen läßt, so wird ein Hilfstext eingeblendet
  • Mit dem Baustein Schedule kann eine Schaltuhr erzeugt werden. Ein Doppelklick öffnet die Einstellung
  • Mittels Shared Data können Daten zwischen PoKeys und IPS ausgetauscht werden. Mit Doppelklick wird der jeweilige Datenpunkt unter Shared Data aktiviert und kann mittels Drag & Drop mit dem vorgesehenen Pin des Bausteins (nur auf Ausgänge) verbunden werden. Gelöscht werden die Datenpunkte mit der "Entf"-Taste.
  • Shared Data, die Bit/Coil-Informationen haben, sollen ab Adr 200 genutzt werden.
  • Shared Data, die 32Bit Daten, 2 zu 16Bit, sollten ab Adr 1000 genutzt werden, wobei sich Adr 200 und 1000 spiegeln sollen (ungetestet)
  • Ansprechen von POExtBus aus PoBlocks: Die POExtBus Module werden in PoBlocks anders indiziert. 1->10; 2->9 usw. Weiterhin sind auch die Ports "andersherum". Port 1->8, Port 2->7 usw. Dank an Georg .
  • Der Simulationsmodus von PoBlocks funktioniert nur mit angeschlossenem Pokeys.
  • Den neuen RAM-Bereich in verschiedenen Grössen kann man so nutzen:
  • An Data kommt ein numerischer Wert oder eine Integervariable, zB ein Fühlerwert an (Größenbeschränkung des RAM 8-Bit/16-Bit/32Bit-Werte beachten)
  • Mit Low-Flanke an CLK store wird der an Data anliegende Wert an der mit Address store vorgegebenen Adresse gespeichert.
  • Umgekehrt kann der abgespeicherte Wert mit CLK load und der passenden Adresse an Address load an Data out wieder ausgelesen werden.

Abschluss

Ich hoffe, ich habe hier alles Wichtige beschrieben.

Gruß Helmut
http://www.poscope.com (Die Seite wurde etwas erweitert und aufgepeppt. Boui)

Die folgende Textpassage muss noch umgesetzt werden

Eine analoge Spannungen liegen ab Adresse 10 bis 16, Datentyp ist word Unsign, nur lesen. Timeraktualisierung anklicken. Die übergeordnete Instanz ist unten auf die Splitterinstanz von Pokey eingestellt. Eine ModBus Geräte-Instanz wird so erstellen: zB um die PWM Register zu beschreiben oder zu lesen: Der PWM Zeit-Wert, steht in ADR 200, wird auch mit Datentyp word Unsign parametriert. Die einzelnen PWM-Werte sind ab ADR 202 für Pin21, ARD 204 für Pin20... bis ARD 212 für Pin 17 in IPSymcon auch jeweils mit Dword Unsign parametriert. Einige Pins, die als Zähleingänge dienen, lassen Ihre Zählerstände ab Adresse 100 – 154 lesen. Nicht jede Adresse hat einen Zählerstand. Ein- und Ausgänge werden als Bitadresse von Adresse 0 bis 54 in der Modbus Instance parametriert. Die 1Wire Adressen sind ab 400 bis 420 bei der normalen Firmware und ACHTUNG als DWORD auslesen. Wobei der erste Sensor auf Adr 420 zu lesen ist, der an Pin55 -Bus liegt. Mit der anderen Firmware (PotLog27) gehen 27 1Wire Fühler, also bis Adr 454.

Aber auch das Auslesen des 1Wire-Bussystem ( 10 x 18B20), oder anderer analogen Eingangsbeschaltung, kann durch das Aufrufen des zuvor mit der Darstellung der Fühler per analog Setting konfigurierten Pokeys Web Dashboard in IPS gebracht werden.

Heimgeist hat ähnliche Verfahren vorgestellt und dazu hier http://www.symcon.de/forum/f41/pokey55e-ipsymcon-17234/#post153521 was geschrieben.

Zum Warenkorb
Haben Sie noch Fragen?