Herunterladen Diese Seite drucken

Danfoss MCO 305 Befehlsreferenz Seite 52

Vorschau ausblenden Andere Handbücher für MCO 305:

Werbung

MCO 305 Befehlsreferenz
Beispiel
IPOSDIFF
Kurzinfo
Syntax
Parameter
Rückgabewert
Beschreibung
Portabilität
Befehlsgruppe
Querverweise
Syntax-Beispiel
52
__ Befehlsreferenz __
ON INT 6 GOSUB slave_int // Definition Interrupt-Handler
SET SYNCMTYPS 2
// Definition von IPOS-Latching auf positive Flanke an
Eingang 6
CVEL 10
// Bewegung starten
CSTART x(1)
// Endlos-Schleife
mainloop:
GOTO mainloop
SUBMAINPROG
SUBPROG slave_int
int_pos = APOS
// APOS zwischenspeichern um zu testen, wie genau dies wäre ...
DELAY 2
// 2 ms warten, damit IPOS sicher aktualisiert ist
triggered_pos = IPOS
// ...
// ...
PRINT "Interrupt Position: ",int_pos
PRINT "Triggered Position: ",triggered_pos
RETURN
ENDPROG
Overflow-Handling von Inkrementalgebern in Anwendungen.
erg = IPOSDIFF oldpos
oldpos = IPOS zu einem früheren Zeitpunkt
Liefert die Differenz zwischen IPOS und oldpos (erg = IPOS – oldpos) in BE.
Dieser Befehl vereinfacht die Behandlung des Überlaufs von Inkrementalgebern in
Anwendungen. Wenn zum Beispiel der Anwender eine aktuelle Position in seinem
Programm speichert und später die Differenz berechnen will, muss er normalerweise
den Überlauf der Position berücksichtigen. Stattdessen kann dieser Befehl benutzt
werden; siehe unten.
Intern prüft diese Routine, ob die Differenz größer als POS_LIMIT (0x3FFFFFFF) ist.
Falls dies der Fall ist, wird angenommen, dass ein Überlauf stattfand und korrekt
behandelt.
ACHTUNG!
Dies löst aber nicht das Problem des Überlaufs, wenn in der Anwendung Benutzer-
einheiten [BE] verwendet werden.
Der Befehl ist ab MCO 5.00 verfügbar.
SYS
IPOS
oldpos = IPOS
..
diff = IPOSDIFF oldpos
// liefert die Differenz zwischen IPOS und oldpos in BE
// Behandlung eines Overflows falls notwendig (diff = IPOS – oldpos)
®
MG.34.R1.03 – VLT
ist ein eingetragenes Warenzeichen von Danfoss.
// ...
// IPOS für spätere Bearbeitung etc. zwischenspeichern

Werbung

loading