TIA Anzeigen einer Variable im Format String auf einem KTP400 Basic

Zuviel Werbung?
-> Hier kostenlos registrieren
Hmmmm…

Also ich habe ja einmal das Leseergebnis (Variable neue Lesung da). Diese Variable führ ich ja auf den P_Trig. Und P-Trig kopier ich auf jeden EN von den Move befehlen.
Ist das jetzt falsch oder richtig. Ich stehe gerade voll auf dem Schlauch:confused:
 
Also so wie du das angedeutet hast, liegt mein Fehler an der Flankenauswertung.
Also zum Verständnis...

P_Trig: Bei einem Wechsel am Eingang von "0" auf "1" wird der Ausgang 1

Bei N_Trig umgekehrt.

Ich habe noch andere Funktionen gefunden. Einmal "Operand bei positiver Flanke setzten /abfragen" Kannst du mir das erklären. Vielleicht finde ich ja dann meine Fehler
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank.:D :D:D
Es funktioniert endlich.
Ein Problem hätte ich da noch....
Kann mir jemand erklären warum es auf die Art wie ich es gemacht habe nicht funktioniert hat?
 
Kann mir jemand erklären warum es auf die Art wie ich es gemacht habe nicht funktioniert hat?
Deswegen:
Ich weiss, dass ich mich hier im Forum schon zum x-ten Male wiederhole, aber ich tue es immer wieder gerne ;):
Die speziellen Funktionen für eine FlankenErkennung wären besser nie erfunden worden, weil sie von "Frischlingen" regelmässig nicht bzw. falsch verstanden werden.
Nur wer erfolgreich eine FlankenErkennung selbst zu Fuss programmiert und das Prinzip verstanden hat, darf davon erfahren, dass es dafür spezielle Funktionen gibt! :ROFLMAO:
Flanken funktionieren folgendermaßen:

Jetzt WAHR UND im Zylus vorher FALSCH = positive Flanke
Jetzt FALSCH UND im Zyklus vorher WAHR = negative Flanke.

Im Merker unter P_Trig wird direkt nach der Abarbeitung von P_Trig der Zustand jetzt des Eingangs für den nächsten Zyklus gespeichert = Zyklus vorher.
Temp kann nicht zum nächsten Zyklus speichern und startet daher mit jedem Aufruf des Bausteins mit FALSCH (bzw. der getätigten Default-Einstellung).

PS:
Daher ist übrigens #Flanke für den Merker unter P_Trig auch eine etwas unglückliche Bezeichnungswahl, denn die Flanke wird nur am Ausgang Q angezeigt!
Der Merker unter P_Trig sollte besser #Old, #vorher oder was Ähnliches heißen.
 
Zuletzt bearbeitet:
Kann mir jemand erklären warum es auf die Art wie ich es gemacht habe nicht funktioniert hat?
b) Du gibst die FlankenAuswertung nur auf den EN-Eingang Deines ersten MOVE, während alle folgenden MOVEs mit der Kopie von 'Leseergebnis' versorgt werden.
Code:
// Das tut P_TRIG:
                                +------+
                                | UND  |
                  Leseergebnis--|      |
                                |      |
"Daten".Flanke_Neues_Ergebnis--o|     Q|--ImpulsEinenZyklusLangBeiPositiverFlankeVonCLK (dies ist das Ergebnis von P-TRIG!!!)
                                +------+
                                +------+
                                |      |
                  Leseergebnis--|      |--"Daten".Flanke_Neues_Ergebnis (diese Variable rührst Du nicht an. Du reservierst
                                +------+                                 sie nur für diesen P-TRIG und achtest peinlich darauf, 
                                                                         dass sie für keinen weiteren Zweck verwendet wird!
                                                                         Ihr Inhalt muss im nächsten Zyklus bei der obigen
                                                                         UND-Verknüpfung unverändert zur Verfügung stehen!)
Zeitlicher Verlauf der Signale:

 ____|==========|_____ dies ist der auf eine pos. Flanke zu prüfende Eingang von P_TRIG  

 ______|==========|___ dies ist die Kopie des zu prüfenden Eingangs, die P_TRIG sich im vorherigen Zyklus gemerkt hat

 ____|=|______________ dies ist der Impuls, der gebildet wird, wenn der aktuelle Zustand True ist und der vorherige Zustand false war
Wie bereits gesagt: statt des Impulses hattest Du die Kopie des Eingangs, also den Zustand des Eingangs benutzt, um die KopierAktionen auszuführen, mit Ausnahme der ersten KopierAktion.
Folglich wurden alle KopierAktionen ausser der ersten in mehreren aufeinander folgende Zyklen - also zu oft - ausgeführt.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Warum eigentlich führst Du nicht direkt den Ausgang des P_Trig als Linie an die EN der nachfolgenden MOVE-Boxen?
Da hätte man viel weniger Chancen sich zu vertippen und man würde auf einen Blick erkennen, daß alle MOVE immer gleichzeitig ausgeführt werden.
Zu übersichtlich? Zu einfach? ;)

Findest Du nicht wie man die VKE-Linie nach unten verzweigt?

Harald
 
Zurück
Oben