PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Texte mehrerer Kommunikationsobjekte zusammenfügen



snoboy
15.01.06, 12:22
Hallo zusammen

Gibt es eine Möglichkeit (Logikbaustein) im HS, wo man verschiedene Texte aus verschiedenen KO's in einem KO zusammenfügen kann (z.Bsp. Anrufnummer & Name & Vorname & Adresse & Ort)?

Danke für Eure Hilfe:)
Snoboy

blue_eib
15.01.06, 12:34
das kannst du ganz einfach mit dem Textbaustein "Bedingungs-Text" von Tilo Kühn machen. Guckst du hier: http://http://www.eib4fun.de/homeserver/hs_logik.html#Telefonbuch (http://www.eib4fun.de/homeserver/hs_logik.html)

Schönen Sonntag noch...

Michel
15.01.06, 12:36
Guckst du bei Tilo: www.eib4fun.de (http://www.eib4fun.de)

snoboy
29.01.06, 11:23
Mit dem Baustein von Tilo funktioniert es, besten Dank für den Tip. Nun bin ich aber auf ein anderes Problem gestossen:confused: .

Vielleicht schildere ich vorher kurz was ich vorhabe.

Ich möchte eine Anrufliste der letzten 10 Telefonanrufe auf der Visu darstellen. Dazu ist der Ringspeicher von Dacom ideal. Name und Adresse hole ich aus einer Webseite. Um nun nicht für Datum/Zeit, Telefonnummer, Name, Adresse, Ort je 10 KOs anzulegen (Total 50 KO), wollte ich nur 10 Objekte anlegen und die einzelnen Werte vorher mit Tilos Baustein zusammenfügen.

Nun passiert aber folgendes:
Bei einem Anruf werden die einzelnen Werte nacheinander ermittelt und es wird jedesmal einen Eintrag im Ringspeicher gemacht. Das sieht dann so aus:

1. Eintrag im Ringspeicher: Datum/Zeit
2. Eintrag im Ringspeicher: Datum/Zeit Telefonnummer
3. Eintrag im Ringspeicher: Datum/Zeit Telefonnummer Name
4. Eintrag im Ringspeicher: Datum/Zeit Telefonnummer Name Adresse
5. Eintrag im Ringspeicher: Datum/Zeit Telefonnummer Name Adresse Ort

Habe auch schon versucht das Schreiben auf den Ringspeicher bis am Schluss zu unterdrücken, das hat aber irgendwie nicht hingehauen.

Hat mir ev. jemand einen Tip?

Michel
29.01.06, 11:52
Poste doch mal den Screenshot von der entsprechenden GLE-Seite. So fällt es mir schwer das Verhalten nachzuvollziehen.;)

snoboy
29.01.06, 12:52
Sorry, wenn ich mich zu wenig verständlich ausgedrückt habe.:rolleyes:

Pro Anruf entstehen 4 Einträge im Ringspeicher.

Anbei ein Screenshot des Logikeditors und Ausgabe auf der Visu.

Michel
29.01.06, 13:32
Jetzt wird´s klar und das Verhalten ist auch korrekt und logisch, denn die HS-Logik ist ja ereignisgesteuert!

Den Baustein Bedingungstexte wird aufgerufen sobald irgendein Wert auf den Eingängen ankommt. Also insgesamt 5-mal.

Was du brauchst, ist ein Zwischenspeicher bzw. eine UND-Verknüpfung vor dem Baustein Bedingungstext, sprich erst wenn alle 5 Informationen vorliegen werden die Daten an den Baustein übergeben.

Am Ende des Schreibvorgangs in den Ringspeicher musst du die UND-Verknüpfung wieder auf FALSCH setzen.
Ich hoffe, ich habe mich verständlich ausgedrückt.:)

Michel
29.01.06, 13:40
Bessere Idee:

Kaskadiere die Bausteine Bedingungstext analog dem Beispiel auf Tilo´s Seite: 4 Informationen -> 4 Bausteine und dann das Ergebnis des letzten Bausteins in den Ringspeicher füttern.

snoboy
31.01.06, 21:04
@Michel

Habe es mit dem Kaskadieren der Bausteine versucht. Leider ist der Effekt der gleiche (der Ringspeicher hat wieder 4 Einträge, der letzte Eintrag ist vollständig). Ich habe einen Screenshot des Logikeditors nochmals angehängt. :o

Im Beispiel von Tilo wird noch ein Eingang pro Baustein verwendet, wobei das Verhalten das Selbe ist.

Möchte noch die Variante mit dem Zwischenspeicher bzw. UND-Verknüpfung versuchen, wäre da aber noch um etwas Input dankbar.

Danke und Gruss
Snoboy

Michel
31.01.06, 22:12
Im Grundsatz hast du dasselbe Problem wie Twix in diesem ( http://www.eib-userclub.de/forum/showthread.php?t=4702) Thema. Offensichtlich sammelst auch du nicht erst alle notwendigen Informationen und fütterst damit die Bausteine Bedingungstext und Ringspeicher.
Erst hast du die Rufnummer -> 1. Aufruf
Dann ändern sich nacheinander die Inhalte der KO´s für Name, Adresse und Ort -> 2.,3.,und 4. Aufruf!

Ich habe mir jetzt mal Tilo´s Baustein genauer angesehen. Versuch´s mal so: Lege ein internes 1-bit KO an. Dieses setzt du erst auf 1, wenn alle Daten (Rufnummer,Name,Adresse,Ort) vorliegen bzw. sämtliche Schritte zur Ermittlung einer Rufnummer durchgelaufen sind.
Die 1. Bedingung (vorher auf Standardwert setzen!) des 1. Bedingungstextbausteins verknüpfst du mit diesem KO. Nach Befüllen der Ringspeicher setzt du dieses interne KO wieder auf 0, mit einem entsprechenden Befehl bei irgendeinem Ausgang.
Effekt: die Bedingstextbausteine werden erst mit Daten befüllt, wenn das KO auf 1 steht, sprich alle notwendigen Informationen liegen vor.
Dann sollte es klappen.