Seite 2 von 4

Re: Zerlegung String

Verfasst: Donnerstag 14. Dezember 2017, 12:18
von Mike D
Nein, COM ist so eingestellt, das es durch das CR LF erkennt, dass eine Zeile zu Ende ist und gibt sie dann als String am Ausgang aus, ohne CR LF.
Am Ausgang erscheneinen also beide Strings abwechselnd.
Mit 2 $Hold könnte man diese beiden Strings jetzt einzeln speichern, als Trigger könnte man das "T" und "a" am Anfang der Strings benutzen. Hinter den $Holds kann dann jeweils $Part die einzelnen Werte rausfriemeln.

Re: Zerlegung String

Verfasst: Donnerstag 14. Dezember 2017, 13:51
von tmm
Hallo,

so wie MikeD das beschrieben hat würde ich es (jetzt, nachdem ich auch gemerkt habe, dass ASCII 10 & 13 in dem String gar nicht mehr drin sind :roll: ) auch machen.
Nach den $Hold-Bausteinen könnte man die Teilstrings zu einem String addieren und danach wie schon vorher beschrieben zerlegen.

Gruß MM

Re: Zerlegung String

Verfasst: Donnerstag 14. Dezember 2017, 14:49
von Mike D
warum erst zusammenführen um sie dann wieder zu trennen?

Re: Zerlegung String

Verfasst: Donnerstag 14. Dezember 2017, 15:00
von IKT
Mike D hat geschrieben:warum erst zusammenführen um sie dann wieder zu trennen?
Naja, vielleicht, um eine konstante Ausgangsbasis zu schaffen, damit ein und dieselbe Zerlege-Routine eingesetzt werden kann?

Re: Zerlegung String

Verfasst: Donnerstag 14. Dezember 2017, 15:22
von Mike D
so?

Re: Zerlegung String

Verfasst: Donnerstag 14. Dezember 2017, 15:34
von tmm
Hi,

ja, ich habe es lieber einheitlich, deshalb würde ich aus den "Teilstrings" zuerst einen einzigen String machen.
Jetzt muss nur noch der Inhalt vom $Hold geleert werden, bevor neu eingelesen wird - nicht, dass da "alte" und "neue" Teilstrings gemischt werden.

Gruß MM

Re: Zerlegung String

Verfasst: Donnerstag 14. Dezember 2017, 16:11
von IKT
Mike D hat geschrieben:so?
Nee, da fehlt noch der $Add (hinter den beiden Hold's), dann die 'einfache', kaskadierte String-Zerlegung ...
So wie tmm's Vorschlag.

Mögliche Alternative, für diese Ausgangslage, kann auch $Buffer sein? (da lesen/schreiben, unabhängig initiiert sind)

Re: Zerlegung String

Verfasst: Donnerstag 14. Dezember 2017, 16:21
von Mike D
wenn man sie erst mit add zusammen hängt, und der Speicherfühlerwert ist nicht da, sind alle folgenden Werte um einen verschoben.
Spart man sich das add bleiben die Werte vom CAN Modul an den richtigen Plätzen.

Re: Zerlegung String

Verfasst: Donnerstag 14. Dezember 2017, 16:56
von tmm
Hallo,

wenn die die Möglichkeit besteht, dass "mittendrin" Werte fehlen könnten, dann würde ich die zerlegten Strings anhand der vorangestellten Buchstaben zuordnen und nicht anhand der gesendeten Position.

So wie ich die Ausgangsfrage verstehe gibt es "nur grün" , "grün und blau" oder "grün, blau und rot" aber nicht "grün und rot" oder "blau und rot" oder so :roll:

Gruß MM

Re: Zerlegung String

Verfasst: Donnerstag 14. Dezember 2017, 16:58
von Marmelot
Danke für die Vorgaben. Ich werde mich heute Abend mal drüber her machen und testen.

Gruß Thomas

Re: Zerlegung String

Verfasst: Donnerstag 14. Dezember 2017, 17:06
von Marmelot
Die erste Zeile wird richtig zerlegt. Egal ob grün oder grün und blau. Danach kommt immer der Wagenrücklauf. Erst mit rot klemmt die Säge. Ich teste dann

Re: Zerlegung String

Verfasst: Donnerstag 14. Dezember 2017, 21:16
von Marmelot
So, ich habe das ganze etwas umgestrickt, aber irgendwo scheint noch ein Fehler zu sein :?:
Die Anwendung spinnt nach wie vor.

Re: Zerlegung String

Verfasst: Freitag 15. Dezember 2017, 05:14
von tmm
Hi,
der $Multiplexer muss weg, dann sollte es funktionieren.

Gruß MM

Re: Zerlegung String

Verfasst: Freitag 15. Dezember 2017, 08:49
von Marmelot
Guten Morgen,

ich habe den Multiplexer umgangen, doch es geht trotzdem nicht. Langsam bin ich am verzweifeln. $CONST5 habe ich auf T und $CONST6 auf a eingestellt. Kommt der String einzeilig geht es, wird er zweizeilig spinnt die Anwendung.

Gruß Thomas

Re: Zerlegung String

Verfasst: Freitag 15. Dezember 2017, 09:14
von Marmelot
Jetzt habe ich den String erstmal simuliert, wie Mike in seinem Pjojekt. Was bei Ihm läuft, läuft bei nicht. :?: Es leitet die erste Zeile auf §Part1 und $Part2, und dann die zweite Zeile auf beide

Re: Zerlegung String

Verfasst: Freitag 15. Dezember 2017, 10:26
von Mike D
zeig mal bitte was links von $mux2 ist, ich verstehe nicht wofür der da ist.
Und der erste String hat doch nur 14 Werte, dann kann aus Ausgang 15 nix mehr kommen und $Part3 ist da falsch.

Re: Zerlegung String

Verfasst: Freitag 15. Dezember 2017, 11:40
von Marmelot
Der $MUX war nicht angschlossen.

Re: Zerlegung String

Verfasst: Freitag 15. Dezember 2017, 12:44
von Mike D
das ist ein Timingproblem das in manchen PL Projekten vorkommt.
Da hilft z.B. die $Delay-dll von IKT.
http://forum.abacom-online.de/viewtopic.php?f=42&t=4069

vor den $Hold muss die dll eingefügt werden.

Re: Zerlegung String

Verfasst: Freitag 15. Dezember 2017, 12:50
von Mike D
UPS, das nächste Problem.
Die dll ist auf 40 Zeichen beschränkt, das dürfte zu kurz sein.

Re: Zerlegung String

Verfasst: Freitag 15. Dezember 2017, 13:10
von Marmelot
Ein Timing Problem? Aber was ist denn bei test string.prj anders als bei zerlegung_strings.prj.?
Der String kommt aller 5 sekunden über den COM Port neu rein. Vieleicht hilft das.

Gruß Thomas