Erfahrungsbericht: PoKeys56E Inbetriebnahme

Hallo Leute,

nachdem Helmut jetzt schon so lange vom Pokeys geschwärmt hat, stand er nun auf meiner Wunschliste und der Weihnachtsmann war gnädig. Naja also eigentlich war das weibliche Familienoberhaupt gnädig und ich dann die Exekutive des Christkindes :wink:

Naja. Das gute Stück liegt nun vor mir auf dem Tisch. Da ich nun schon einige Tage damit rumwerkel und den ein oder anderen Stolperstein erwischt habe, möchte ich hier mal einen Erfahrungsbericht niederschreiben.

Wenn ich nur auf Helmut gehört hätte - ich habe das Exemplar mit Schraubklemmen bestellt. Die Dinger sind aber soo klein, dass ich keinen passenden Schraubendreher finden konnte und so behelfe ich mir mit einem Teppichmesser als Schraubendreher. Also für alle zukünftigen Bestellungen: Auf Helmut hören!!!

Nach dem Auspacken und anschließen ging das Gerät direkt in’s LAN. DHCP und zack. Addresse gezogen. Anpingbar ist es und das Webfront ließ sich mit dem User „Admin“ und dem Passwort „root0“ direkt erreichen. Spitze. So muss das sein.

Nun geht es an’s Einrichten. Also die Windows Software von der Hersteller-Webseite (www.poscope.com) heruntergeladen. Es gibt zwei Versionen. Einmal „normal“ und einmal „Developer“. Da ich mich erst einmal nicht als Entwickler gesehen habe, lud ich also die „normale“ Version herunter.

Die Software begrüßte mich mit einem wunderbaren Tool das wohl per Broadcast nach den Pokeys sucht und mir diesen dann direkt anzeigte. Bei Bedarf kann man die Geräte über die IP auch manuell hinzufügen (z.B. wenn der Windows Rechner woanders steht).

Dann auf „Connect“ klicken und zack. Da sind wir nun. Nette, kompakte und überschaubare Oberfläche. Wie man einzelne Ports als Counter, Digital IO oder Analog Inputs konfiguriert war mir schnell klar. Nach ein paar Minuten und einem kurzen Blick in das Handbuch waren dann auch 1Wire Sensoren angebunden.

Nun kommt der spannende Teil: Die Potlog Firmware. Laut Helmut und der Anleitung kann man damit an Port 1 - 27 nette 27 1Wire DS18B20 anbinden und diese einzeln über Modbus TCP Addressen abfragen. Genau was ich suche. Dazu noch die ganzen Digitalen IOs und die 6 Analog-Ports - perfekt!!

Also in der Pokeys Software im Menü auf „Device“ und dann „Potlog dings installieren“. klick

Der Potkeys56E wird nun in den Firmware-Upgrade Modus geschubbst und dann die Potlog Firmware aufgespielt. Anschließend wird das gute Stück nochmal rebootet.

Nun bin ich wieder im Fenster mit den Potkeys die mir über Ethernet angeboten werden. Der Potkey56E wird mir nun als Potlog 0 angeboten. Schick. Also einen Klick auf den Device-Namen und dann auf „Connect“. Er versucht nun die Werte aus dem Device auszulesen und dann … mööööp. Blöd. Ich bin zurück im Fenster mit den Potkeys zur Auswahl und dem Connect Button.

Also den Potkey nochmal vom Strom getrennt. Etwas gewartet und wieder ran. Nochmal auf „Connect“ und … wieder rausgeflogen.

Das Gerät also in den Recovery Modus (eine Brücke von Port 54 nach GND und dann nochmal powercyclen). Die Original-Firmware wieder aufgespielt. Nochmal Potlog drauf. Gleiches Problem. Auch nach 10 Versuchen keine Besserung. Oberdoppel-Mist!

Aber da war doch noch diese Developer Version auf der Webseite des Herstellers, die eine neuere Versionsnummer trägt. Also runterladen, installieren und nochmal probieren. Diesmal wurde Potlog offenbar korrekt installiert und ich kann mit der Software auf die Einstellungen zugreifen.

DS18B20 werden nach einem Neustart an Port 1 - 27 erkannt. Wichtig ist hierbei zu wissen, dass neue Sensoren nur nach einem Neustart erkannt werden!!!

Aber an Port 21-26 wird mit -0.01°C angezeigt. Die anderen Sensoren schwören aber auf nette 24°C Raumtemperatur.

Also die Sensoren mal durchgetauscht und neu gestartet. Die Sensoren sind okay - Port 21 - 26 aber immernoch -0.01°. Software Bug. Erneuter-Oberdoppel-Mist. Naja. Immerhin 21 Sensoren werden direkt erkannt.

Also Modbus mit IPS ausprobiert. Angeblich (gemäß Handbuch) soll man ab Addresse 400 mit einem 32Bit DWord die Werte auslesen können. Kommt aber kein Wert. Also auf Addresse 401 geändert und zack - ein Wert. Sieht gut aus. Aber interessanterweise ändert sich der Wert nur, wenn ich den 2. DS18B20 mit meinen Fingern erwärme. Die Addresse 401 ist also die Addresse vom Sensor an Port 2. Die Nummerierung setzt sich bis Port 27 durch der dann der Addresse 453 entspricht. Ich kann also Port 1 nicht über Modbus auslesen! Also bleiben von den 27 Sensoren nur noch 20 die funktionieren. grummel

Okay. Nächster Punkt: Digitale IOs. Funktioniert problemlos mit allen Ports. Super.

Und zum Schluss noch die analogen Inputs. Die soll man angeblich mit Addresse 10 für Port 41 bis Addresse 16 für Port 47 auslesen können. 16Bit unsigned word. Geht aber leider nicht. Da kommt immer nur 0 zurück.

Ich bin nun etwas ernüchtert. Schade. Es können also nur 20 Temperatur-Sensoren und Digitale IOs betrieben werden.

Ich habe nun die Entwickler angeschrieben und hoffe, dass es nur ein Software Bug ist und die mir ggf. eine neue Firmware schicken oder sowas.

Kennt jemand diese Probleme und kann mir ggf. eine andere Software Version geben, mit der die 27 1Wire Sensoren und die Analogen Ports funktionieren? Ich setze derzeit die PoKeys software v3.0.41 (Developer) ein. Ggf. hat jemand eine ältere Version die funktioniert?

Ich halte Euch hier mal auf dem Laufenden, wenn es ein Update gibt.

Soo,

wieder was gelernt.

Also der Haken bei der Modbus Splitter Instanz „LSW/MSW für 32Bit Werte vertauschen“ muss gesetzt sein, damit es funktioniert.

Weiterhin haben die Pokey Entwickler bestätigt, dass es einen Bug mit der „stable“ Version von potlog gibt und man daher die developer Version nutzen muss.

Grüße

Florian

Nun ja,
die Modbusfunktion 3 oder 4 liefert Werte, getestet mit der ThingetSPS und einem Modbus-Testprogram.

Auch gehen alle 27 1Wire-Fühler bei mir.

Mit DWord unsign in IPS bekommt man 2 analoge Werte auf einmal, jedenfalls ich… ;-(

In dem XML-File ist leider auch kein analoger Wert vorhanden mit der Potlog-Soft, muß man direkt machen.

Auf der Pokey Webseite ist 3.045b die letzte Version.

Gruß Helmut

Soo. In Bezug auf die Analogen Ports bin ich auch etwas weiter gekommen:

Port 47 (der letzte Analog-Port) hat Modbus Addresse 16 mit einem 32Bit DWord.
Port 45 hat Modbus Addresse 14 mit einem 32Bit DWORD.

Also entweder man kann nur die Hälfte der Ports nutzen, oder da ist nen Programmierfehler. Merkwürdig.

Ich bin dabei das mit dem Entwickler zu klären :wink: Der Antwortet sogar Sonntags (gerade vor einigen Minuten).

Ich kann nun mit IPS alle 27 Werte auslesen und Analog tut sich auch einiges. Spannend!

Auf dem Pokey56E eingebauten Webserver ist, mit der PotLog Firmware überhaupt keine analoge Anzeige möglich.

Man müßte den Support bitten, dass er die analogen UND die 18B20 in das XML-File bringt, wenn man PotLog56E laufen hat.

Wie schon geschrieben, mit Modbusfunktion 3 und 4 bekomme ich Daten, mit der Modbusfunktion 6 (DWord unsign) 2 Adressen also unbrauchbar.

Gruß Helmut

Hallo,
da ich (inzwischen) auch PoKeys-begeistert bin will ich hier mal meine Erfahrung zum besten geben.
Helmut hatte mich damals überzeugt, dass alle meine Probleme lösbar sind (Danke nochmals dafür!!:D)

Bei mir läuft (erfolgreich) folgende Konfiguration:

[ul]
[li]PoKeys56E (3.041) mit PotLog27 Firmware; Feste IP; Device-Nr = 20, da die IP 192.XXX.XXX.20 ist[/li][li]DS18B20 Sensoren (PullUp 4,7kOhm direkt am Sensor)[/li][li]Sensoren mit 3,3V versorgt;Kabel 3 x 0,08mm² (unterschiedlich langen Kabeln, fest angeklemmt)[/li][li]Sensor 1-27 als jeweils eigenes ModBus-Gerät mit Adresse 400 - 452 in IPS konfiguriert.[/li][li]Daten als „DW unsigned“, Timer sind in der Praxis zwischen 60000 und 300000 eingestellt.[/li][li]Skalierung und Ausgabe an eine separate Variable über ein Skript „Scaling“ von Martin Heinzel (ausgeführt alle 60 Sekunden)[/li][/ul]

Einziger Wermutstropfen:
Von Zeit zu Zeit werden alle Messwerte für einen kurzen Zeitraum (ca 0,5 Sekunden) auf 655°C gesetzt…wenn der Timer genau dann „zuschlägt“ gibt es eine Fehlmessung.

Ferner habe ich 12 Digitaleingänge (Eingang 28 -39 z.T angesteuert über Koppelrelais) und 8 DA (über eine PoExtBusRe) parallel (nicht über den PoExtBus) angeschlossen.

Bisher habe ich noch keine Analogeingänge aktiv…aber das kommt vielleicht noch:)

In der Anschlussbox herrscht zwar ziemlich ein Kabelgewirr, aber es klappt…

JoeB

Potlog_27_0.jpg

Potlog_27_1.jpg

Potlog_27_Modbus.jpg

Potlog_27_Socket.jpg

Potlog_27_3.jpg

Na, das freut mich.

Das mit den Peaks ist so bei 1Wire-Systemen die auch noch was anderes machen.

Im Mikroe-Forum ist gerade eine 1Wire - Multisensor Geschichte über WLAN vorgestellt worden, werde ich mal nachbauen :wink:

Ich hatte mal selber so ein 1Wire-Multifühler-Geschichte, lesbar über meinen CAN-Hausbus, RS232 und HID-USB gebastelt.

Nur die RS232 ging fast Peakfrei, USB und CAN, da kommen auch Peaks vor, wobei ich schon erwähnt hatte:

Ich zähle 10 Messungen eines Fühlers zusammen, teile dann durch 10 und verwende dann die Messung, ist zwar immernoch ein Peak aber gedämpft.

@all Pokey56E-User
Habt ihr denn Erfolg bei der Modbus TCP Funktion „Word unsign lesen“ in IPSymcon ?? Geht bei mir nicht…

Gruß Helmut

Hallo Hemut,
Bei mir klappt unter PotLog27 nur DW unsigned.

Hallo Helmut,
ich habe heute ein seltsames Verhalten des PoKeys56E festgestellt.
Ab heute ca 1:00Uhr wurde ein Teil der Sensoren nicht mehr aktualisiert.
Die 7 Tage zuvor lief das Gerät ohne Beanstandungen.

Die Messlinie war „gerade“ (eigentlich haben die Werte immer eine kleine Dynamik)
Das Problem lag definitiv im Pokey, nicht in IPS.
Die PoKeys-Konsole konnte gestartet werden; die Kanäle 1-10 und mein Gerätesensor am Kanal 22 sowie die DI/DA arbeiteten normal.
Die Auslastung war bei 24% und die „Ticks“ zählten ganz normal hoch.

Erst nachdem ich die Spannung kurz unterbrochen hatte funktionierten alle Sensoren wieder.
Die Initialisierung (655° Anzeige) kommt regelmäßig bei allen Sensoren!

Nach 8h Betrieb macht es den Anschein dass einige Sensoren (Kanal 13-17) mit geringerer Frequenz abgefragt werden als andere.
Ich beobachte, ob dieser „Virus“ im laufe der Zeit auf andere Kanäle übergreift.:confused:

Hast Du auch schon teilweise Ausfälle gehabt?
Hast Du eine Idee wie man ein „PoKeys“ überwachen könnte?

Danke

Hi,
was soll ich sagen… meine Pokeys hängen an der ThinggetSPS und laufen nicht durch.

Wenn das nochmal auftritt, dann würde ich den Support von Polabs um Hilfe bitten.

Ich habe nur gute Erfahrungen dort machen können.

Gruß Helmut

Hallo,
ich habe heute den gesamten Tag mit der PotLog27 Firmware verbracht und bin jetzt ziemlich frustriert.

Bei der in neusten Setup enthaltenen Version 5.0.6 sind irgendwie die Pins vertauscht. Schliesse ich z.B. am Pin 22 einen Sensor an, so wird dieser in der Software als Pin 17 angezeigt. An Pin 1 wird an keinem der Pins in der Software „Sensor“ angezeigt. Leider wird keine Temperatur eingelesen.

Aus diesem Grund habe ich die Firmware 5.0.5 ausprobiert. In dieser Firmware sind die Pins richtig sortiert. Leider wird jedoch nur bei Pin 1 und 2 eine Temperatur eingelesen.

Auf meiner Platine steht im übrigen PoKeys57E. Ich wusste nicht, dass es bereits die Version 57 gibt. Bestellt hatte ich die 56er.

Kann mir jemand von Euch die SW Version geben, mit der es bei Euch klappt?

Danke
Stefan

Auf meiner WWW Seite steht meine Mailadr. ganz unten.

Hier kann ich nichts anhängen, dann schnacken wir da auch weiter.

Meine Erkenntnisse:

Die Potlog-Soft 2 mal draufbügeln, ev. Settings löschen.

Bei der Businstallation:
In der Fühlerinstallation die Abtastzeit auf > 0,1 Sekunden eistellen, wird oft vergessen, steht dann auf 0 !!

Jeden Fühler einzeln einlesen und speichern, ID mehrfach lesen lassen, stimmt der Buswiderstand nicht, liest er die ID mit Errors.

Erst wenn alle gespeichert sind und auch nach Spannungsausfall da sind, den Bus an Pin55 nutzen.

Buswiderstand so um 3,3 kiloOhm.

Bei der PotLog-Soft:
Auch die EinzelPin brauchen einen Buswiderstand. Muss man testen, so um 3,3k auch hier.

Gruß Helmut

Nachdem ich mehrere PoKeys56E anbinden möchte und es mir zu viel Arbeit ist / war die Pins per Hand einzutippen, habe ich hierfür ein kleines Script geschrieben. Anbei die erste Version, die alle 27 1-Wire Temperaturfühler anlegt. Ich werde das Script im Laufe der Woche noch verbessern.

Anleitung:

  1. Script in die Kategorie einfügen in der die PotLog-Instanz erstellt werden soll
  2. Die Parameter im Script anpassen.
  3. Script ausführen

Das Script legt auch den Client Socket und die Modbus RTU TCP Instanz an.

Achtung: Das Script nicht mehrfach ausführen, den es erstellt die Instanzen im Moment auch mehrfach. Ich werde dies noch korriegieren.

<?
$poKeys56E_Name = "PoKeys56E";
$poKeys56E_TemperaturPin_Prefix = "Pin ";
$poKeys56E_DeviceId = 0;
$poKeys56E_Host = "192.168.123.120";
$poKeys56E_Port = 502;

//Ab hier nichts mehr ändern
$object = IPS_GetObject($IPS_SELF);
$parentId = $object['ParentID'];

createPotLog27($poKeys56E_Name, $poKeys56E_TemperaturPin_Prefix,
		$poKeys56E_DeviceId, $poKeys56E_Host, $poKeys56E_Port, $parentId);

function createPotLog27($name, $temperaturPinPrefix, $deviceId, $host, $port, $parent) {


	// Client Socket erstellen
	$socket = cretateClientSocket($name." ".$deviceId." Client Socket", $host, $port);
	
	// Modbus RTU TCP erstellen
	$splitter = createModbusRTUTCP($name." ".$deviceId." RTU TCP", 0, $deviceId, true, $socket);
	
	$parent = createKategorie($name." ".$deviceId, $parent);
	
	//Temperatur Pins erstellen (27 Stück)
	for($i = 0; $i < 27; $i++) {
		$pinName = $temperaturPinPrefix.str_pad($i+1, 3 ,'0', STR_PAD_LEFT);
		$pinAddress = 400 + ($i*2);
		createModbusDevice(3, $pinName, $pinAddress, 1000, true, $parent, $splitter);
	}
	
	//Client Socket aktivieren!
	aktiviereClientSocket($socket);
}

function createKategorie($name, $parent) {
	$catId = IPS_CreateCategory();
	IPS_SetName($catId, $name);

   IPS_SetParent($catId, $parent);

	return $catId;
}
	

function aktiviereClientSocket($clientSocketId) {
	IPS_SetProperty($clientSocketId, "Open", true);
	IPS_ApplyChanges($clientSocketId);
}

function cretateClientSocket($modulName, $host, $port) {
	$moduleId = "{3CFF0FD9-E306-41DB-9B5A-9D06D38576C3}";

	$clientSocketId = IPS_CreateInstance($moduleId);
   IPS_SetName($clientSocketId, $modulName);
	IPS_SetProperty($clientSocketId, "Host", $host);
	IPS_SetProperty($clientSocketId, "Port", $port);
	IPS_SetProperty($clientSocketId, "Open", false);
   IPS_SetParent($clientSocketId, 0);
	IPS_ApplyChanges($clientSocketId);

	return $clientSocketId;
}

function createModbusRTUTCP($modulName, $gatewaymode, $deviceId, $swapWords, $socketId) {
	$moduleId = "{A5F663AB-C400-4FE5-B207-4D67CC030564}";

   $modbusRTUTCP = IPS_CreateInstance($moduleId);
   IPS_SetName($modbusRTUTCP, $modulName);
	IPS_SetProperty($modbusRTUTCP, "GatewayMode", $gatewaymode);
	IPS_SetProperty($modbusRTUTCP, "DeviceID", $deviceId);
	IPS_SetProperty($modbusRTUTCP, "SwapWords", $swapWords);
	IPS_ConnectInstance($modbusRTUTCP, $socketId);
   IPS_SetParent($modbusRTUTCP, 0);
   IPS_ApplyChanges($modbusRTUTCP);

	return $modbusRTUTCP;
}

function createModbusDevice($datenTyp, $modulName, $adresse, $time, $nurLesen, $parent, $modbusRTUTCP) {
	$moduleId = "{CB197E50-273D-4535-8C91-BB35273E3CA5}";

   $modbusDevice = IPS_CreateInstance($moduleId);
   IPS_SetName($modbusDevice, $modulName);
   ModBus_SetType($modbusDevice, $datenTyp);
   ModBus_SetWriteAddress($modbusDevice, $adresse);
   ModBus_SetReadAddress($modbusDevice, $adresse);
   ModBus_SetPoller($modbusDevice, $time);
   ModBus_SetReadOnly($modbusDevice, $nurLesen);
	IPS_ConnectInstance($modbusDevice,$modbusRTUTCP);
   IPS_SetParent($modbusDevice, $parent);
   IPS_ApplyChanges($modbusDevice);
   
   return $modbusDevice;
}
?>

@Helmut
weiter vorn erwähntest Du ein ModBus Testprogramm,
um welches Tool handelt es sich dabei?
Gruß Jens

Hallo Jens,
habe ich Dir gemailt.

Gruß Helmut

Guten morgen mitenand. Ich habe ein Haufen Temperatursensoren, und ein Paar kombinierte Feuchtigkeits-/Temperatursensoren. Es sind beide angeblich 1-wire devices, wobei die DH1010 eine Spannung von 1.5V brauchen. Ich bin elektronisch ziemlich unbedarft, hole aber derzeit einiges nach. Kann mir jemand eine kleine Skizze machen, wie ich diese Sensoren an PoKeys57E zu hängen habe (inklusive pullup-Widerstand)? Vielen Dank im Voraus!

Update: so stelle ich mir das vor - ist das richtig?

Ja, der gesammte Pullup vom 1Wire Bus so ca 3,3kOhm

Jeden EINZELNEN anlernen und saven !!. Erst dann können alle 1Wire-Fühler an einen PIN.

Dein Feuchte/Temperaturfühler ist aber kein 1Wire Baustein im Sinne des Protokolles von MAXIM.

In sofern ist Dein Fahrradlicht auch ein 1Wire-Bus;)

Der wird nicht funzen, nimm I2C-Bausteine, welche? Die erscheinen in der Auswahlliste in Pokey beim I2C Dialog.

Oder nimm die SY-HS 230, das sind analoge Bausteine.

Gruß Helmut

Danke Helmut. Du hast natürlich recht, die Feuchte-Sensoren sind analog. Was würdest Du empfehlen als 1wire Feuchtesensor?

Die Feuchtesensoren SY-HS 230, das sind analoge Bausteine.

Dann gibt es noch SHT21, das ist ein I2C-Baustein, der Feuchte messen kann.

Steht in der in der Pokey Soft unter Peripherie/Sensors/Sensorlist dann Type mal aufklappen.

1Wire-Feuchtemessung geht immer irgendwie auf 1Wire-Analoge-IC’s zurück.

Gruß Helmut

Oh, super, danke. Sag mal, kann man so ein SY-HS 230 auch auf dem Boden kleben und als Ueberschwemmungssensor verwenden? Diese Frage ist nur als halber Scherz gemeint: ich würde gerne so etwas in der Waschküche haben…