Chris_the_new
Level-1
- Beiträge
- 20
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hi,
ich bin gerade dabei eine Linearspindel in SCL zu Programmieren welche 4 Positionen Anfährt.
dabei kann man die Reihenfolge frei Wählen (außgenommen 2x die Gleiche position hintereinander) sobald eine Position erreicht wurde soll 3sec gewartet werden und dann die nächste angefahren werden.
Problem: wenn ich von der Position starten will welche meine momentane Position ist zählt der Zähler nicht hoch obwohl er eine positive Flanke von "POS1_ERREICHT" bekommt und sonst keiner der Eingänge ein Signal aufweißt!
(Der Zähler zählt dabei brav seine 3sec runter danach wird erst der Zähler aktiv)
IF NOT "TIMER1" THEN BCD_WERT := S_CU (C_NO := ZAEHLER1, // Zähler in welcher runde man ist
CU := ("POS_A" AND UNTER_4) OR ("POS_B" AND UNTER_4)OR ("POS_C" AND UNTER_4) OR
("POS_D" AND UNTER_4) OR POS1_ERREICHT OR POS2_ERREICHT OR POS3_ERREICHT OR POS4_ERREICHT,
R := RUECKSETZTEN) ;
END_IF;
alle anderen positionen bzw wenn momentanposition nicht POS1 ist funktionieren deswegen kann es das: IF NOT "TIMER1" THEN BCD_WERT := S_CU nicht sein sonst hätte ich das problem auch bei POS 2/3/4
bitte um nen ratschlag da ich nicht alles umschreiben will und den Zähler in einem normalen FC schreiben muss
mfg
ich bin gerade dabei eine Linearspindel in SCL zu Programmieren welche 4 Positionen Anfährt.
dabei kann man die Reihenfolge frei Wählen (außgenommen 2x die Gleiche position hintereinander) sobald eine Position erreicht wurde soll 3sec gewartet werden und dann die nächste angefahren werden.
Problem: wenn ich von der Position starten will welche meine momentane Position ist zählt der Zähler nicht hoch obwohl er eine positive Flanke von "POS1_ERREICHT" bekommt und sonst keiner der Eingänge ein Signal aufweißt!
(Der Zähler zählt dabei brav seine 3sec runter danach wird erst der Zähler aktiv)
IF NOT "TIMER1" THEN BCD_WERT := S_CU (C_NO := ZAEHLER1, // Zähler in welcher runde man ist
CU := ("POS_A" AND UNTER_4) OR ("POS_B" AND UNTER_4)OR ("POS_C" AND UNTER_4) OR
("POS_D" AND UNTER_4) OR POS1_ERREICHT OR POS2_ERREICHT OR POS3_ERREICHT OR POS4_ERREICHT,
R := RUECKSETZTEN) ;
END_IF;
alle anderen positionen bzw wenn momentanposition nicht POS1 ist funktionieren deswegen kann es das: IF NOT "TIMER1" THEN BCD_WERT := S_CU nicht sein sonst hätte ich das problem auch bei POS 2/3/4
bitte um nen ratschlag da ich nicht alles umschreiben will und den Zähler in einem normalen FC schreiben muss
mfg