F171_PulseOutput_Jog_Positioning

Tipp-Betrieb und Positionierung

Wenn der Positionierungstrigger-Eingang auf TRUE gesetzt wird, wird die zuvor festgelegte Zahl von Pulsen ausgegeben. Ehe der Sollwert erreicht ist und die Pulsausgabe endet, wird eine Abbremsung ausgeführt. Die Pulse werden vom angegebenen Kanal ausgegeben, wenn der Kontrollmerker für diesen Kanal FALSE und die Ausführungsbedingung TRUE ist.

Parameter

Eingang

s_DUT_DataTable (SDT)

Anfangsadresse des Bereiches, der die Datentabelle enthält

F171_PulseOutput_Jog_Positioning_Type0_DUT oder F171_PulseOutput_Jog_Positioning_Type1_DUT
n_iPulseOutputChannel (Dezimalkonstante)

Pulsausgabekanal:0–3

Anmerkungen

Es gibt zwei verschiedene Betriebsarten:

  • Typ 0: Die Geschwindigkeit lässt sich nur innerhalb des für die Sollgeschwindigkeit festgelegten Bereichs ändern.

  • Typ 1: Die Sollgeschwindigkeit lässt sich einmal ändern, wenn der Positionierungstrigger-Eingang auf TRUE gesetzt wird.

Merkmale der Pulsausgabe

  1.  (1) Anfangs- und Restgeschwindigkeit
  2.  (2) Sollgeschwindigkeit
  3.  (3) Sollwert
  4.  (4) Beschleunigungszeit
  5.  (5) Bremszeit
  6.  (6) Ausführungsbedingung
  7.  (7) Positionierungstrigger-Eingang
  8.  (8) Kontrollmerker für Pulsausgabe
  • Die Pulsausgabefrequenz ändert sich mit der angegebenen Beschleunigungs- und Bremszeit.

  • Der Unterschied zwischen der Soll- und Anfangsgeschwindigkeit bestimmt die Steigung der Beschleunigungsrampe.

  • Der Unterschied zwischen der Soll- und Endgeschwindigkeit bestimmt die Steigung der Bremsrampe.

  • Nachdem der Positionierungstrigger-Eingang auf TRUE geschaltet hat, wird die Pulsausgabe fortgesetzt; dann setzt der Bremsvorgang ein und es erfolgt der Stopp, wenn der Sollwert erreicht ist.

Pulsausgabe beenden

Die Pulsausgabe wird durch einen der folgenden Vorgänge beendet:

  • Positionierungstrigger-Eingang auf TRUE setzen (die Pulsausgabe wird solange fortgesetzt, bis der Sollwert erreicht und der Bremsvorgang abgeschlossen ist): Der Positionierungstrigger lässt sich starten, indem Sie den Positionierungstrigger-Eingang auf TRUE setzen oder Bit 6 des Datenregisters, in dem der Steuercode für die Pulsausgabe gespeichert wird, von FALSE auf TRUE setzen (z.B. MOVE(16#140, sys_wHscOrPulseControlCode);).

  • Signal für gebremsten Halt: Um einen gebremsten Halt auszuführen, setzen Sie Bit 5 des Datenregisters, in dem der Steuercode für die Pulsausgabe gespeichert wird von FALSE auf TRUE (z.B. MOVE(16#120, sys_wHscOrPulseControlCode);). Wenn während der Beschleunigung das Signal für einen gebremsten Halt ausgelöst wird, wird der Bremsvorgang mit derselben Geschwindigkeit ausgeführt wie der normale Bremsvorgang, der von der Sollgeschwindigkeit ausgeht.

  • Not-Aus-Stopp ausführen: Um einen Not-Halt auszuführen, setzen Sie Bit 3 des Datenregisters, in dem der Steuercode für die Pulsausgabe gespeichert wird von FALSE auf TRUE (z.B. MOVE(16#108, sys_wHscOrPulseControlCode);).

Anmerkung

Während des Not-Aus-Stopps müssen sämtliche Pulsausgabefunktionen des verwendeten Kanals deaktiviert werden.

Tipp-Betrieb Typ 0

Verwenden Sie folgende, vordefinierte strukturierte Datentypen: F171_PulseOutput_Jog_Positioning_Type0_DUT

Im SDT lassen sich folgende Parameter festlegen:

  • Steuercode

  • Anfangs- und Restgeschwindigkeit

  • Sollgeschwindigkeit

  • Beschleunigungszeit

  • Bremszeit

  • Sollwert

Die Sollgeschwindigkeit lässt sich während der Pulsausgabe ändern.Sollgeschwindigkeit während der Pulsausgabe ändern

Sollgeschwindigkeit wird nicht geändert:

Sollgeschwindigkeit wird geändert:

  1. Anfangs- und Restgeschwindigkeit

  2. Sollgeschwindigkeit

  3. Sollwert

  4. Beschleunigungszeit

  5. Bremszeit

  6. Ausführungsbedingung

  7. Positionierungstrigger-Eingang

  8. Kontrollmerker für Pulsausgabe

  • Die Geschwindigkeit kann nur geändert werden, wenn die Ausführungsbedingung kontinuierlich TRUE ist.

  • Wenn für die Sollgeschwindigkeit ein höherer Wert als 50kHz festgelegt wurde, erfolgt eine Korrektur auf 50kHz.

  • Wenn der Istwert während der Beschleunigung den Beschleunigungswert überschreitet (z.B. sys_diPulseChannel0AccelerationForbiddenAreaStartingPosition), wird die Beschleunigung gestoppt.

  • Die Bremsgeschwindigkeit kann nicht unter der korrigierten Restgeschwindigkeit liegen.

  • Eine Änderung der Sollgeschwindigkeit ist nicht möglich, wenn der Befehl innerhalb eines Interrupt-Programms ausgeführt wird.

Tipp-Betrieb Typ 1

Verwenden Sie folgende, vordefinierte strukturierte Datentypen: F171_PulseOutput_Jog_Positioning_Type1_DUT

Im SDT lassen sich folgende Parameter festlegen:

  • Steuercode

  • Anfangs- und Restgeschwindigkeit

  • Sollgeschwindigkeit1

  • Beschleunigungszeit

  • Sollgeschwindigkeit2

  • Wechselzeit

  • Bremszeit

  • Sollwert

Sollgeschwindigkeit 1 < Sollgeschwindigkeit 2:

Sollgeschwindigkeit 1 > Sollgeschwindigkeit 2:

  1. Anfangs- und Restgeschwindigkeit

  2. Sollgeschwindigkeit

  3. Sollgeschwindigkeit

  4. Sollwert

  5. Beschleunigungszeit

  6. Wechselzeit

  7. Bremszeit

  8. Ausführungsbedingung

  9. Positionierungstrigger-Eingang

Nachdem der Positionierungstrigger-Eingang auf TRUE schaltet, steigt oder sinkt die Pulsausgabefrequenz innerhalb der festgelegten Wechselzeit auf den Sollwert 2. Weitere Sollwertänderungen sind nicht möglich. Der Positionierungstrigger-Eingang wird nicht berücksichtigt, wenn er während der Beschleunigung eingeschaltet wird.

Allgemeine Programmierhinweise

  • Wenn Sie Programme, die diesen Befehl verwenden, im RUN-Modus bearbeiten (Online-Editieren), wird die Pulsausgabe beendet.

  • Wenn sowohl das Hauptprogramm als auch das Interrupt-Programm Code für denselben Kanal enthalten, dürfen die Programme nicht gleichzeitig ausgeführt werden.

  • Während der Ausführung eines Pulsausgabefehls und der Ausgabe von Pulsen steht der Kontrollmerker "Pulsausgabe" des entsprechenden Kanals (z.B. sys_bIsPulseChannel0Active) auf TRUE. Solange der Merker auf TRUE steht, kann kein anderer Pulsausgabebefehl ausgeführt werden.

  • Positionierungstrigger-Eingang (X0, X1, X2, X3) im Systemregister setzen 402.

  • Der Positionierungstrigger-Eingang wird nur erkannt, wenn eine steigende Flanke (TRUE) anliegt.

  • Der Befehl kann nicht initiiert werden, wenn das Signal für einen gebremsten Halt ausgelöst wurde.

  • Um nach dem Stopp des Betriebs einen Neustart auszuführen, muss die Ausführungsbedingung zunächst auf FALSE und dann wieder auf TRUE gesetzt werden.

  • Es ist unbedingt empfehlenswert, die Möglichkeit eines erzwungenen Stopps in Ihrem Positionierprogramm vorzusehen.

  • Der Status des Kontrollmerkers für den schnellen Zähler oder den Pulsausgang kann sich innerhalb eines Zyklus ändern.

Beispiel

POE-Kopf

Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden.Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.

	VAR
		Start: BOOL:=FALSE;
		dutJog: F171_PulseOutput_Jog_Positioning_Type0_DUT:=dwControlCode := 16#010,
diInitialAndFinalSpeed := 1000,
diTargetSpeed := 7000,
diAccelerationTime := 300,
diDecelerationTime := 450,
diTargetValue := 10000;
			(*Digit3: 0=Pulse output
Digit2: 1=Fixed
Digit0: 0=CW/CCW2*)
		diInitialAndFinalSpeed: DINT:=1000;
		@'': @'';
	END_VAR

KOP-Rumpf

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_F,E_MOVE!,Instance,13,0,19,4,,?DEN?D?AENO?C);
B(B_VARIN,,diInitialAndFinalSpeed,11,2,13,4,);
B(B_VAROUT,,dutJog.diInitialAndFinalSpeed,19,2,21,4,);
B(B_CONTACT,,Start,6,1,8,3,);
L(1,2,6,2);
L(8,2,13,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_F,F171_PulseOutput_Jog_Positioning!,Instance,8,0,24,5,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
B(B_VARIN,,dutJog,6,2,8,4,);
B(B_VARIN,,0,6,3,8,5,);
B(B_CONTACT,,Start,2,1,4,3,);
L(1,2,2,2);
L(4,2,8,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

IF (Start) then
    dutJog.diInitialAndFinalSpeed:=diInitialAndFinalSpeed;
END_IF;
IF (Start) then
  F171_PulseOutput_Jog_Positioning(s_dutDataTable := dutJog, 0);
END_IF;

Letzte Änderung am: 2023-03-16Feedback zu dieser SeitePanasonic Hotline