derHans
14. Februar 2011 um 10:21
1
Hallo, zusammen, Anfängerfrage…
ich habe eine Zählerkomponente die am seriellen Port hängt.
Hab einige Zeit im Forum gesucht, aber nicht das richtige gefunden.
Den serial port habe angelegt, (Serial port(Com2(9600,8,1,N))
eine Cutter instance auch.
wenn ich mir in beiden, über debug, den Datenstrom ansehe kommen dort Daten an.
Die serielle Komponente sendet:
z.B. 00000123
00 3B 00 3B 00 3B 00 3B 00 3B 01 3B 02 3B 03 0D 0A
am Serial port kommt an:
00 00 00 3B 00 00 00 3B 00 00 00 3B 00 00 00 3B 00 00 00 3B 01 00 00 3B 02 00 00 3B 03 00 00 0D 0A
und leider auch nicht als kompletten Datenstrom sondern so:
14.02.2011 09:49:27.00 | Received Data | 00 00 00 00 3B 00 00 00
14.02.2011 09:49:27.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00
14.02.2011 09:49:27.00 | SENDCHUNK | 00 00 00 00 3B 00 00 00
14.02.2011 09:49:27.00 | Received Data | 00 3B 00 00 00 00 3B 00
14.02.2011 09:49:27.00 | CURRENTBUFFER | 00 3B 00 00 00 00 3B 00
14.02.2011 09:49:27.00 | SENDCHUNK | 00 3B 00 00 00 00 3B 00
14.02.2011 09:49:27.00 | Received Data | 00 00 00 3B 03 00 00 00
14.02.2011 09:49:27.00 | CURRENTBUFFER | 00 00 00 3B 03 00 00 00
14.02.2011 09:49:27.00 | SENDCHUNK | 00 00 00 3B 03 00 00 00
14.02.2011 09:49:27.00 | Received Data | 3B 04 00 00 00 3B 03 00
14.02.2011 09:49:27.00 | CURRENTBUFFER | 3B 04 00 00 00 3B 03 00
14.02.2011 09:49:27.00 | SENDCHUNK | 3B 04 00 00 00 3B 03 00
14.02.2011 09:49:27.00 | Received Data | 00 00 3B 04 00 00 00 0D 0A
14.02.2011 09:49:27.00 | CURRENTBUFFER | 00 00 3B 04 00 00 00 0D 0A
14.02.2011 09:49:27.00 | SENDCHUNK | 00 00 3B 04 00 00 00 0D 0A
14.02.2011 09:49:29.00 | Received Data | 00 00 00 00 3B 00 00 00
14.02.2011 09:49:29.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00
14.02.2011 09:49:29.00 | SENDCHUNK | 00 00 00 00 3B 00 00 00
14.02.2011 09:49:29.00 | Received Data | 00 3B 00 00 00 00 3B 00
14.02.2011 09:49:29.00 | CURRENTBUFFER | 00 3B 00 00 00 00 3B 00
14.02.2011 09:49:29.00 | SENDCHUNK | 00 3B 00 00 00 00 3B 00
14.02.2011 09:49:29.00 | Received Data | 00 00 00 3B 03 00 00 00
14.02.2011 09:49:29.00 | CURRENTBUFFER | 00 00 00 3B 03 00 00 00
14.02.2011 09:49:29.00 | SENDCHUNK | 00 00 00 3B 03 00 00 00
14.02.2011 09:49:29.00 | Received Data | 3B 04 00 00 00 3B 03 00 00 00 3B 05 00 00 00 0D 0A
14.02.2011 09:49:29.00 | CURRENTBUFFER | 3B 04 00 00 00 3B 03 00 00 00 3B 05 00 00 00 0D 0A
14.02.2011 09:49:29.00 | SENDCHUNK | 3B 04 00 00 00 3B 03 00 00 00 3B 05 00 00 00 0D 0A
14.02.2011 09:49:31.00 | Received Data | 00 00 00 00 3B 00 00 00
wie kann ich den Datenstrom im IP-Symcon weiter verarbeiten, so das ich am Ende auf die 00000123 als Zahlenwert komme?
Vielen Dank für jede Hilfe
paresy
14. Februar 2011 um 11:36
2
Ich würde den Cutter auf Right = 0D0A setzen und den Rest per RegisterVariable in einem Skript verarbeiten.
paresy
derHans
14. Februar 2011 um 11:56
3
Hallo Paresy,
vielen Dank für die schnelle Antwort.
Wenn ich das im cutter so setze bekomme ich die Daten so wie weiter unten einkopiert.
irgendwie werden die Daten nicht so getrennt, wie ich das gerne hätte.
was mache ich falsch?
14.02.2011 11:50:49.00 | Received Data | 00 00 00 00 3B 00 00 00
14.02.2011 11:50:49.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00
14.02.2011 11:50:49.00 | Received Data | 00 3B 00 00 00 00 3B 00
14.02.2011 11:50:49.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 00
14.02.2011 11:50:49.00 | Received Data | 00 00 00 3B 06 00 00 00
14.02.2011 11:50:49.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 06 00 00 00
14.02.2011 11:50:49.00 | Received Data | 3B 09 00 00 00 3B 05 00
14.02.2011 11:50:49.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 06 00 00 00 3B 09 00 00 00 3B 05 00
14.02.2011 11:50:49.00 | Received Data | 00 00 3B 01 00 00 00 0D
14.02.2011 11:50:49.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 06 00 00 00 3B 09 00 00 00 3B 05 00 00 00 3B 01 00 00 00 0D
14.02.2011 11:50:49.00 | Received Data | 0A
14.02.2011 11:50:49.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 06 00 00 00 3B 09 00 00 00 3B 05 00 00 00 3B 01 00 00 00 0D 0A
14.02.2011 11:50:49.00 | SENDCHUNK | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 06 00 00 00 3B 09 00 00 00 3B 05 00 00 00 3B 01 00 00 00
14.02.2011 11:50:51.00 | Received Data | 00 00 00 00 3B 00 00 00
14.02.2011 11:50:51.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00
14.02.2011 11:50:51.00 | Received Data | 00 3B 00 00 00 00 3B 00
14.02.2011 11:50:51.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 00
14.02.2011 11:50:51.00 | Received Data | 00 00 00 3B 06 00 00 00
14.02.2011 11:50:51.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 06 00 00 00
14.02.2011 11:50:51.00 | Received Data | 3B 09 00 00 00 3B 05 00
14.02.2011 11:50:51.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 06 00 00 00 3B 09 00 00 00 3B 05 00
14.02.2011 11:50:51.00 | Received Data | 00 00 3B 02 00 00 00 0D
14.02.2011 11:50:51.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 06 00 00 00 3B 09 00 00 00 3B 05 00 00 00 3B 02 00 00 00 0D
14.02.2011 11:50:51.00 | Received Data | 0A
14.02.2011 11:50:51.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 06 00 00 00 3B 09 00 00 00 3B 05 00 00 00 3B 02 00 00 00 0D 0A
14.02.2011 11:50:51.00 | SENDCHUNK | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 06 00 00 00 3B 09 00 00 00 3B 05 00 00 00 3B 02 00 00 00
14.02.2011 11:50:53.00 | Received Data | 00 00 00 00 3B 00 00 00
14.02.2011 11:50:53.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00
14.02.2011 11:50:53.00 | Received Data | 00 3B 00 00 00 00 3B 00
14.02.2011 11:50:53.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 00
14.02.2011 11:50:53.00 | Received Data | 00 00 00 3B 06 00 00 00
14.02.2011 11:50:53.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 06 00 00 00
14.02.2011 11:50:53.00 | Received Data | 3B 09 00 00 00 3B 05 00
14.02.2011 11:50:53.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 06 00 00 00 3B 09 00 00 00 3B 05 00
14.02.2011 11:50:53.00 | Received Data | 00 00 3B 03 00 00 00 0D 0A
14.02.2011 11:50:53.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 06 00 00 00 3B 09 00 00 00 3B 05 00 00 00 3B 03 00 00 00 0D 0A
14.02.2011 11:50:53.00 | SENDCHUNK | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 06 00 00 00 3B 09 00 00 00 3B 05 00 00 00 3B 03 00 00 00
14.02.2011 11:50:55.00 | Received Data | 00 00 00 00 3B 00 00 00
RWN
14. Februar 2011 um 12:18
4
Du mussst im Cutter auf setzen klicken. Bei dir hat er es nicht uebernommen.
derHans
14. Februar 2011 um 12:39
5
Hallo RWN,
hab ich gemacht, auch auf übernehmen, auf ok und neu geöffnet…
Der Eintrag 0A 0D steht auch beim erneuten öffnen im Fenster
Leider ändert sich nichts, die Daten kommen etwa im Abstand von 2 Sekunden an.
paresy
14. Februar 2011 um 13:07
6
Du solltest auch mal bei der RegisterVariable gucken was kommt. Im Cutter siehst du doch, dass SENDCHUNK immer korrekt ist.
paresy
derHans
14. Februar 2011 um 14:35
7
Hallo Paresy, vielen Dank! (bin halt Anfänger ;))
nun kommen die Daten schön sauber in Blöcken an.
Nun habe ich ein script an die RegisterVariable gehangen, komme aber mit der Beschreibung nicht weiter.
Habe im Forum einige Beiträge über Register Variablen gelesen habe und glaube, dabei festgestellt zu haben, dass es für Newbies (inclusive mir) nicht einfach ist, mit diesem Objekttyp klar zu kommen. Deshalb habe ich mal eine kleine Zusammenfassung...
Das Beispiel funktioniert bei mir nicht
wo werden die Daten gespeichert, bzw. wie kann ich die Daten abrufen?
<?
$RegVarID = 34515 /[Cutter\Register Variable] /; // Achung: Das ist die ID der Registervariablen und NICHT der Instanz, von der die Daten eigentlich stammen
$newdata = 38822 /[Cutter\Register Variable\value\IPS_VALUE] /; // Die gerade empfangenen Daten (Vorsicht, die können Sonder- und Steuerzeichen haben)
$olddata = RegVar_GetBuffer ( 34515 /[Cutter\Register Variable] / ); // Auslesen, was schon bzw. noch im Puffer steht
RegVar_SetBuffer(34515 /[Cutter\Register Variable] /, $olddata . $newdata); // Alles in die Variable schreiben, damit der Datenstrom komplett gespeichert wird
?>
Datesätze in RV
00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 01 00 00 00 3B 00 00 00 00 3B 07 00 00 00 3B 01 00 00 00 3B 01 00 00 00
00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 01 00 00 00 3B 00 00 00 00 3B 07 00 00 00 3B 01 00 00 00 3B 02 00 00 00
00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 01 00 00 00 3B 00 00 00 00 3B 07 00 00 00 3B 01 00 00 00 3B 03 00 00 00
00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 01 00 00 00 3B 00 00 00 00 3B 07 00 00 00 3B 01 00 00 00 3B 04 00 00 00
00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 01 00 00 00 3B 00 00 00 00 3B 07 00 00 00 3B 01 00 00 00 3B 05 00 00 00
00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 01 00 00 00 3B 00 00 00 00 3B 07 00 00 00 3B 01 00 00 00 3B 06 00 00 00
00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 01 00 00 00 3B 00 00 00 00 3B 07 00 00 00 3B 01 00 00 00 3B 07 00 00 00
00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 01 00 00 00 3B 00 00 00 00 3B 07 00 00 00 3B 01 00 00 00 3B 08 00 00 00
00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 01 00 00 00 3B 00 00 00 00 3B 07 00 00 00 3B 01 00 00 00 3B 09 00 00 00
paresy
14. Februar 2011 um 14:41
8
Da deine Daten ja schon synchron sind, und du nicht mehr Puffern musst, ist die Sache ganz easy :D. IP-Symcon ist hat toll
echo $IPS_VALUE;
Beachte, dass die Werte im Meldungsfenster landen werden und du das Skript nicht per Execute starten kannst.
paresy
PS: Ich sehe nur gerade wirklich nicht, wie du von dem HEX Wert auf deine Zahlen kommst - Gibt es da ne richtige Protokollbeschreibung wie das jetzt umzuwandeln ist? Ich würde ja jetzt bei 3B nen explode machen und dann die jeweils die 4Bytes … das ergibt grad keinen Sinn
derHans
15. Februar 2011 um 08:08
9
Hallp Paresy,
vielen Dank für Deine Hilfe.
Der Datensatz beinhaltet die Zahl
00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 01 00 00 00 3B 00 00 00 00 3B 07 00 00 00 3B 01 00 00 00 3B 01 00 00 00
00010711
Ich hab es mit dem Beispielscript in der Anleitung RegisterVariable versucht, komme da aber nicht weiter
derHans
15. Februar 2011 um 12:01
10
ich hab noch einen 2. Cutter angelegt mit SyncZeichen 3B und Eingabelänge 5
dann bekomme ich die Daten so aufbereitet.
so, dass 0048329 so dargestellt werden…
bin ich auf dem richtigen Weg?
5.02.2011 11:38:53.00 | SENDCHUNK | 3B 00 00 00 00
15.02.2011 11:38:53.00 | SENDCHUNK | 3B 00 00 00 00
15.02.2011 11:38:53.00 | SENDCHUNK | 3B 04 00 00 00
15.02.2011 11:38:53.00 | SENDCHUNK | 3B 08 00 00 00
15.02.2011 11:38:53.00 | SENDCHUNK | 3B 03 00 00 00
15.02.2011 11:38:53.00 | SENDCHUNK | 3B 02 00 00 00
15.02.2011 11:38:53.00 | SENDCHUNK | 3B 09 00 00 00
hier die Daten komplett:
15.02.2011 11:38:53.00 | Received Data | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 04 00 00 00 3B 08 00 00 00 3B 03 00 00 00 3B 02 00 00 00 3B 09 00 00 00
15.02.2011 11:38:53.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 04 00 00 00 3B 08 00 00 00 3B 03 00 00 00 3B 02 00 00 00 3B 09 00 00 00
15.02.2011 11:38:53.00 | SENDCHUNK | 3B 00 00 00 00
15.02.2011 11:38:53.00 | SENDCHUNK | 3B 00 00 00 00
15.02.2011 11:38:53.00 | SENDCHUNK | 3B 04 00 00 00
15.02.2011 11:38:53.00 | SENDCHUNK | 3B 08 00 00 00
15.02.2011 11:38:53.00 | SENDCHUNK | 3B 03 00 00 00
15.02.2011 11:38:53.00 | SENDCHUNK | 3B 02 00 00 00
15.02.2011 11:38:53.00 | SENDCHUNK | 3B 09 00 00 00
15.02.2011 11:38:55.00 | Received Data | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 04 00 00 00 3B 08 00 00 00 3B 03 00 00 00 3B 03 00 00 00 3B 00 00 00 00
15.02.2011 11:38:55.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 04 00 00 00 3B 08 00 00 00 3B 03 00 00 00 3B 03 00 00 00 3B 00 00 00 00
15.02.2011 11:38:55.00 | SENDCHUNK | 3B 00 00 00 00
15.02.2011 11:38:55.00 | SENDCHUNK | 3B 00 00 00 00
15.02.2011 11:38:55.00 | SENDCHUNK | 3B 04 00 00 00
15.02.2011 11:38:55.00 | SENDCHUNK | 3B 08 00 00 00
15.02.2011 11:38:55.00 | SENDCHUNK | 3B 03 00 00 00
15.02.2011 11:38:55.00 | SENDCHUNK | 3B 03 00 00 00
15.02.2011 11:38:55.00 | SENDCHUNK | 3B 00 00 00 00
15.02.2011 11:38:57.00 | Received Data | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 04 00 00 00 3B 08 00 00 00 3B 03 00 00 00 3B 03 00 00 00 3B 01 00 00 00
15.02.2011 11:38:57.00 | CURRENTBUFFER | 00 00 00 00 3B 00 00 00 00 3B 00 00 00 00 3B 04 00 00 00 3B 08 00 00 00 3B 03 00 00 00 3B 03 00 00 00 3B 01 00 00 00
15.02.2011 11:38:57.00 | SENDCHUNK | 3B 00 00 00 00
15.02.2011 11:38:57.00 | SENDCHUNK | 3B 00 00 00 00
15.02.2011 11:38:57.00 | SENDCHUNK | 3B 04 00 00 00
15.02.2011 11:38:57.00 | SENDCHUNK | 3B 08 00 00 00
15.02.2011 11:38:57.00 | SENDCHUNK | 3B 03 00 00 00
15.02.2011 11:38:57.00 | SENDCHUNK | 3B 03 00 00 00
15.02.2011 11:38:57.00 | SENDCHUNK | 3B 01 00 00 00
paresy
15. Februar 2011 um 12:06
11
Nein. Das obere war schon korrekt. Du musst jetzt halt PHP lernen und ein paar Zeilen Code programmieren. Mit zusammenklicken bist du jetzt fertig.
paresy
derHans
15. Februar 2011 um 13:24
12
ok, vielen Dank, php… ja, kann mir vielleich doch einer der „alten“ Hasen einen Wink mit dem Zaunpfahl geben, wie isch das anstelle?
paresy
15. Februar 2011 um 13:38
13
Das ist, wonach du suchst. Einfach in das Skript kopieren und die 12345 gegen deine ID tauschen.
$n = "";
$x = explode(chr(0x3B), $IPS_VALUE);
foreach($x as $z) { $n .= ord($z{0}); }
SetValue(12345, (int)$n);
paresy
derHans
17. Februar 2011 um 07:21
14
Guten Morgen Paresy,
vielen Dank, jetzt bekomme ich die Impuls sauber in einer Variablen angezeigt, toll was IPS alles kann, und mit so einem kurzen Script!
Hier habe ich das gesamte Script. Die Impulse werden in die Variable (Ausgabe Impulse) geschrieben aber ich habe im Script 2 Fehlermeldungen:
Notice: Undefined variable: IPS_VALUE in C:\IP-Symcon\scripts\45181.ips.php on line 6
Notice: Uninitialized string offset: 0 in C:\IP-Symcon\scripts\45181.ips.php on line 7
was hat es damit auf sich?
<?
$RegVarID = 34515 /*[Cutter\Register Variable]*/ ;
$newdata = 34515 /*[Cutter\Register Variable]*/ ; // Die gerade empfangenen Daten
$olddata = RegVar_GetBuffer ( 34515 /*[Cutter\Register Variable]*/ ); // Auslesen, was im Puffer steht
$n = "";
$x = explode(chr(0x3B), $IPS_VALUE);
foreach($x as $z) { $n .= ord($z{0}); }
SetValue(28385 /*[Cutter\Register Variable\Ausgabe Impulse]*/ , (int)$n);
?>
UVoigi
17. Februar 2011 um 10:24
15
Ich denke mal das dein Skript durch die RegVar getriggert wird. Du darfst das Skript nicht per Execute ausführen da dann nichts in der IPS_Value drinn steht. Somit kann er dann auch nichts im Array haben… ($x as $z).
paresy
17. Februar 2011 um 12:01
16
Füge dies in die 2 Zeile ein:
if($IPS_SENDER == "Execute")
die("Nein... Dieses Skript darf nicht per Execute gestartet werden");
paresy
derHans
17. Februar 2011 um 13:08
17
:):)
Danke für eure Anmerkungen…
habs kapiert.
$RegVarID = 34515 /*[Cutter\Register Variable]*/ ;
$newdata = 34515 /*[Cutter\Register Variable]*/ ; // Die gerade empfangenen Daten
$olddata = RegVar_GetBuffer ( 34515 /*[Cutter\Register Variable]*/ ); // Auslesen, was im Puffer steht
Das kannst Du dir sparen.
derHans
18. Februar 2011 um 08:25
19
ok, vielen Dank… bin halt noch Anfänger.
nächster Schritt ist die Umrechnung der Impulse in Kwh…
derHans
23. Februar 2011 um 14:27
20
Die umrechnung der Impulse in KWh habe ich geschafft, Danke noch mal für die Hilfe.
Ergänzend zu meiner Frage am Anfang, habe ich nun Datensätze von 8 zählern welche an einem Stück hintereinander gesendet werden. Also in der RegVar kommen 128 Zeichen lange Datensätze an.
(habe ich hier zur besseren Übersicht mal im Editor getrennt)
(am Ende hab ich den Zahlenwert angehangen)
00 3B 00 3B 00 3B 00 3B 00 3B 00 3B 00 3B 02 3B entspr. 2
00 3B 00 3B 00 3B 00 3B 00 3B 00 3B 00 3B 04 3B entspr. 4
00 3B 00 3B 00 3B 00 3B 00 3B 00 3B 00 3B 08 3B entspr. 8
00 3B 00 3B 00 3B 00 3B 00 3B 00 3B 0A 3B 06 3B entspr. 16
00 3B 00 3B 00 3B 00 3B 00 3B 00 3B 1E 3B 02 3B entspr. 32
00 3B 00 3B 00 3B 00 3B 00 3B 00 3B 3C 3B 04 3B entspr. 64
00 3B 00 3B 00 3B 00 3B 00 3B 64 3B 14 3B 08 3B entspr. 128
00 3B 00 3B 00 3B 00 3B 00 3B C8 3B 32 3B 06 3B entspr. 256
Frage ist, wie bekomme ich die Daten in Blöcke zu 8 Datensätzen getrennt und in unterschiedliche Variablen abgelegt?
was ich bisher versucht habe ist:
<?
$n = "";
$x = explode(chr(0x3B), $IPS_VALUE);
foreach($x as $z) { $n .= ord($z{0}); }
$data .= $IPS_VALUE;
//wenn $data mindestens 128 Zeichen lang ist
if (strlen($data) >= 128)
{
// $data in Blöcke von bis zu 8 Zeichen zerlegen
$datasets = str_split($data, 8);
}
// alle Datensätze durcharbeiten
for ($i = 0; $i < count($datasets); $i++)
{
// vollständige Datensätze (genau 8 Zeichen lang) ausgeben
if (strlen($datasets[$i]) == 8)
SetValue(28385 /*[Cutter\Register Variable\Zaehler 1\1Ausgabe Impulse]*/ , (int)$n);
}
?>
funktioniert leider nicht, was mache ich falsch?