Programmieren mit FLanken?!

tuneit

Level-1
Beiträge
54
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen,

habe folgendes Problem->

Ich setzte von der Visu ein bit in einem Db. In diesem Bsp ist es die Quittierung -> und sobald einmal quittiert gedückt wurde setze ich im selben Zyklus dieses Bit wieder zurück.

Jetzt passiert es manchmal das die positive Flanke hängen bleibt,d.h. sie ist immer eins?!Kann mir das wer erklären wie das passieren kann?

Sie wird nirgends mehr verwendet und es funktioniert auch mal 2 wochen und dann hängt sie wieder einmal.




Hardwarequitt........... M0.0 ..................M0.1
E0.0 ................................................ Quitt
-------I I--------------(P)---------------( )
.......................I.......................I
...................... I.......................I
.......................I.......................I....DB100.dbx0.0
.......................I.......................I--------(R)
.......................I
db100.dbx0.0 ....I
-------I I-------I


Mfg TuneIt
 
Zuletzt bearbeitet:
hmm, liegt auf MB0 vielleicht aus Versehen aus gerchnet der Taktmerker der CPU?
Poste das Netzwerk vielleicht mal als Grafik oder awl Code- ist nen bisschen schwer zu lesen.
 
Jau, ich würde das auch verriegeln.

Code:
U E 0.0
UN DB100.DBX0.0
O
UN E 0.0
U DB100.DBX0.0
 
Zuviel Werbung?
-> Hier kostenlos registrieren
und warum?

e0.0 ist in diesem fall ein taster bzw ist es überhaupt möglich ?für diesen zyklus wurde dann ja schon db100.dbx0.0 auf null gesetzt und somit kann es meiner meinung nicht sein das beide gleichzeitig 1 werden.

Ja ist mir schon klar. Habs auch nachträglich geändert aber ich versuch es zu verstehen. Komisch find ich das es lange zeit funktioniert und dann auf einmal wieder nicht.
 
Zuletzt bearbeitet:
naja, wenn du E0.0 drückst und hälst und während dessen noch dein DB100.dbx0.0 dazu kommt, kann ja die Flanke nicht mehr durchkommen - dadurch wird DB100.dbx0.0 auch nicht mehr zurückgesetzt.
Warum nicht einfach am Ende OB1:
U DB100.dbx0.0
R DB100.dbx0.0
?!?
 
Zuletzt bearbeitet:
naja, wenn du E0.0 drückst und hälst und während dessen noch dein DB100.dbx0.0 dazu kommt, kann ja die Flanke nicht mehr durchkommen - dadurch wird DB100.dbx0.0 auch nicht mehr zurückgesetzt.
Warum nicht einfach am Ende OB1:
U DB100.dbx0.0
R DB100.dbx0.0
?!?


ok alles klar....jetzt habs sogar ich verstanden danke
 
Zuviel Werbung?
-> Hier kostenlos registrieren
naja, wenn du E0.0 drückst und hälst und während dessen noch dein DB100.dbx0.0 dazu kommt, kann ja die Flanke nicht mehr durchkommen - dadurch wird DB100.dbx0.0 auch nicht mehr zurückgesetzt.
Warum nicht einfach am Ende OB1:
U DB100.dbx0.0
R DB100.dbx0.0
?!?

ich will jetzt niemanden angreifen oder besserwisserisch rüber kommen, ABER:

ich finde es ein bisschen "unprofessionel/unsuaber" wenn man bei einem FC oder FB das letzte NW dazu benötigt, um irgendwelche bits zurücksetzen oder sonstiges "auszubessern".
Wenn man es sauber machen will, dann sucht man das Netzwerk wo der "fehler" liegt - in diesem Fall würd ich die Variante mit dem Verriegeln wählen. - Weils meiner meinung nach nur so "sauber" ist (meiner Meinung!)
 
ich will jetzt niemanden angreifen oder besserwisserisch rüber kommen, ABER:

ich finde es ein bisschen "unprofessionel/unsuaber" wenn man bei einem FC oder FB das letzte NW dazu benötigt, um irgendwelche bits zurücksetzen oder sonstiges "auszubessern".
Wenn man es sauber machen will, dann sucht man das Netzwerk wo der "fehler" liegt - in diesem Fall würd ich die Variante mit dem Verriegeln wählen. - Weils meiner meinung nach nur so "sauber" ist (meiner Meinung!)


Ich habs normalerweise imemr so gelöst das ich alle commands von der visu in einem db gesammelt habe und diesen am ende des prg mit null fülle.
dieses Bsp ist ein zugekauftes prg...

danke für die antworten
 
ja, vollkommen legal&OK was ihr da schreibt.
Mir gefaellt das schon nicht, wenn die VISU nicht in der Lage ist, BITs die sie selber setzt, auch selbständig wieder zurücksetzt. Oder keine Flanken auswerten kann, sowas solls geben.
Viele Wege führen nach Rom.
Und jetzt Kauf-software, Geld zurück? ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ja, vollkommen legal&OK was ihr da schreibt.
Mir gefaellt das schon nicht, wenn die VISU nicht in der Lage ist, BITs die sie selber setzt, auch selbständig wieder zurücksetzt. Oder keine Flanken auswerten kann, sowas solls geben.
Viele Wege führen nach Rom.
Und jetzt Kauf-software, Geld zurück? ;)


kann sie doch , aber somit geht man halt auf nummer sicher. bei kommunikationsproblemen in etwa ..
 
Ich habs normalerweise imemr so gelöst das ich alle commands von der visu in einem db gesammelt habe und diesen am ende des prg mit null fülle.

Ich mache dies normalerweise am Anfang vom OB1

Code:
OB1
NW1 (Anfang OB 1)

U DB100.DBX0.0    // Quitt von Visu
= M0.1            // Quittier-Merker
R DB100.DBX0.0    // Quitt von Visu
So ist gewährleistet, dass der Quittier-Merker (M0.1) sicher einen ganzen Zyklus auf 1 ist.
Es ist doch möglich, dass die Visu das Bit (DB100.dbx0.0) nicht am Anfang des SPS-Zyklus auf 1 setzt, sondern irgendwo mitten im SPS-Zyklus.
Oder sehe ich das falsch?

Gruss Hoyt
 
Ich mache dies normalerweise am Anfang vom OB1

Code:
OB1
NW1 (Anfang OB 1)
 
U DB100.DBX0.0    // Quitt von Visu
= M0.1            // Quittier-Merker
R DB100.DBX0.0    // Quitt von Visu
So ist gewährleistet, dass der Quittier-Merker (M0.1) sicher einen ganzen Zyklus auf 1 ist.
Es ist doch möglich, dass die Visu das Bit (DB100.dbx0.0) nicht am Anfang des SPS-Zyklus auf 1 setzt, sondern irgendwo mitten im SPS-Zyklus.
Oder sehe ich das falsch?

Gruss Hoyt

Naja die Kommunikation findet schon vor/nach dem (wenn nicht im Programm angestoßen) Programmdurchlauf statt!

Ich würd mir dann aber ne extra Flanke für das DB100.DBX0.0 basteln, wenn es gesetzt bleibt dann wirds schon jemand merken.:ROFLMAO:

Den DB für die Commands der Visu nach jedem Zyklus mit Nullen füllen ist aber auch eine sehr fragwürdige Methode!:confused:
Aber man muß sich schon was einfallen lassen wenn man "minderwertige" HW einsetzt (einsetzen muss)!
Hab solche Erfahrungen noch nicht machen müssen!


Grüße...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Naja die Kommunikation findet schon vor/nach dem (wenn nicht im Programm angestoßen) Programmdurchlauf statt!

Ich würd mir dann aber ne extra Flanke für das DB100.DBX0.0 basteln, wenn es gesetzt bleibt dann wirds schon jemand merken.:ROFLMAO:

Den DB für die Commands der Visu nach jedem Zyklus mit Nullen füllen ist aber auch eine sehr fragwürdige Methode!:confused:
Aber man muß sich schon was einfallen lassen wenn man "minderwertige" HW einsetzt (einsetzen muss)!
Hab solche Erfahrungen noch nicht machen müssen!


Grüße...


In wie fern fragwürdig?
Ich mach das auch so mit der Alarm QUittierung etc.
FIndes selbst es so relativ sauber und mir ist immer garantiert das ich eine Flanke als Command habe und mein Bit kann nicht gesetzt bleiben wie es zB andersfalls passieren kann wenn zum IO Server Verbindungproleme bestehen durch zuhohe Abtatsraten zB.
 
Zurück
Oben