F168_PulseOutput_Trapezoidal

AUTO-TRAPEZ-Funktion

Anhand der Parameter im angegebenen strukturierten Datentyp wird eine AUTO-TRAPEZ-Steuerung durchgefü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_dutDataTable (F168_PulseOutput_Trapezoidal_DUT)

Anfangsadresse des Bereiches, der die Datentabelle enthält

n_iPulseOutputChannel (Dezimalkonstante)

Pulsausgang: 0 oder 1

Anmerkungen

Verwenden Sie folgende, vordefinierte strukturierte Datentypen: F168_PulseOutput_Trapezoidal_DUT

  • Steuercode

  • Anfangs- und Restgeschwindigkeit

  • Sollgeschwindigkeit

  • Beschleunigungs-/Bremszeit

  • Sollwert

  • Ende der Pulsausgabe (fest)

  1.  (1) Anfangs- und Restgeschwindigkeit
  2.  (2) Sollgeschwindigkeit
  3.  (3) Beschleunigungs-/Bremszeit
  4.  (4) Sollwert
  5.  (5) Kontrollmerker für Pulsausgabe
  6.  (6) Ausführungsbedingung

Die Pulsausgabefrequenz ändert sich entsprechend der festgelegten Beschleunigungs- und Bremszeit. Der Unterschied zwischen der Soll- und Anfangsgeschwindigkeit bestimmt die Steigung der Rampen..

Allgemeine Programmierhinweise

  • Setzen Sie einen schnellen Zähler, der einem Pulsausgabekanal zugeordnet ist, in den Systemregistern auf "Unbenutzt".

  • Wenn Sie Programme im RUN-Modus bearbeiten, wird die Pulsausgabe gestoppt und erst nach der Übertragung der Programmänderungen fortgesetzt.

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

  • Der Kontrollmerker "Schneller Zähler" (z.B. sys_bIsHscChannel0ControlActive) und der Kontrollmerker "Pulsausgabe" (z.B. sys_bIsPulseChannel0Active) sind derselben Sondermerker-Nummer zugeordnet (z.B. R903A). Daher ist sowohl der Kontrollmerker für den schnellen Zähler (z.B. sys_bIsHscChannel0ControlActive) als auch der Kontrollmerker für die Pulsausgabe (z.B. sys_bIsPulseChannel0Active) für den betreffenden Kanal TRUE, wenn ein schneller Zählerbefehl oder ein Pulsausgabebefehl ausgeführt wird. Solange dieser Merker auf TRUE steht, kann kein anderer schneller Zählerbefehl oder Pulsausgabebefehl ausgeführt werden.

  • Bleibt die Drehrichtung immer gleich, kann es passieren, dass die Zählerobergrenze erreicht wird. Die Pulsausgabe wird dann gestoppt. Als Gegenmaßnahme setzen Sie den Istwert auf 0 zurück, ehe Sie diesen Befehl ausführen. Die Pulsausgabe stoppt nicht, wenn die FP0R im FP0-Kompatibilitätsmodus verwendet wird, da der Datenbereich für den Istwert ein vorzeichenbehafteter 32-Bit-Wert ist.

  • 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.

FP0R im FP0-Kompatibilitätsmodus ausführen

Um die FP0R im FP0-Kompatibilitätsmodus auszuführen, können Sie ein FP0-Programm auf die FP0R übertragen Bitte beachten Sie folgende Beschränkungen:

  • Die FP0R unterstützt vorzeichenbehaftete 32-Bit-Daten für Ist- und Sollwerte; die FP0 unterstützt vorzeichenbehaftete 24-Bit-Daten. Auf der FP0 zählen Zähler und Pulsausgabe auch über den FP0-Bereich hinaus weiter.

  • Das Puls-Pausenverhältnis beträgt immer 25%, unabhängig von den Befehlseinstellungen. Bei der Verwendung der Methode Pulsausgabe/Richtungsanzeige werden die Pulse ca. 300ms nach der Ausgabe des Richtungsanzeigesignals ausgegeben; das Verhalten des Motorantriebs wird gleichzeitig berücksichtigt.

  • Die Einstellung "Nicht zählen" wird von der FP0R nicht unterstützt. Wenn bei FP0-Pulsausgabefehlen die Einstellung "Nicht zählen" gewählt wurde, interpretiert die FP0R dies als "Vorwärtszählen".

  • Die maximale Pulsausgangsfrequenz beträgt 10000Hz.

  • Stellen Sie sicher, dass der Pulsausgabebefehl keinen Ausgang verwendet, der als normaler Ausgang genutzt wird.

  • Um ein FP0-Programm im FP0-Kompatibilitätsmodus auszuführen, müssen die SPS-Typen (C10, C14, C16, C32 und T32) exakt übereinstimmen. Der Typ F32 der FP0R bietet keinen FP0-Kompatibilitätsmodus.

Ausgänge und Systemvariablen für FP0, FP-e

Kanäle und Pulsausgänge

Kanal-Nr. Pulsausgang Pulsausgangsart

0

Y0

Puls

Y2

Richtung

1

Y1

Puls

Y3

Richtung

Systemvariablen für vorgesehene Speicherbereiche. Die Werte in Klammern gelten für die FP0 T32.

Beschreibung

Systemvariable

Pulsausgabe: Kontrollmerker für Kanal

0

sys_bIsPulseChannel0Active

1

sys_bIsPulseChannel1Active

Pulsausgabe: Istwert für Kanal

0

sys_diPulseChannel0ElapsedValue

1

sys_diPulseChannel1ElapsedValue

Pulsausgabe: Sollwert für Kanal

0

sys_diPulseChannel0TargetValue

1

sys_diPulseChannel1TargetValue

Steuercode schneller Zähler und Pulsausgabe

sys_wHscOrPulseControlCode

Fehleralarmmerker

sys_bIsOperationErrorHold (wird auf TRUE gesetzt und bleibt TRUE)
  • wenn die Kanalnummer oder Werte der Datentabelle außerhalb des zulässigen Bereichs liegen
  • wenn die Anfangsgeschwindigkeit < 40 ist

  • wenn die Anfangsgeschwindigkeit > Maximalgeschwindigkeit ist

sys_bIsOperationErrorNonHold (wird für einen Zyklus auf TRUE gesetzt)
  • wenn die Kanalnummer oder Werte der Datentabelle außerhalb des zulässigen Bereichs liegen
  • wenn die Anfangsgeschwindigkeit < 40 ist

  • wenn die Anfangsgeschwindigkeit > Maximalgeschwindigkeit ist

Beispiel

Globale Variablen

In der globalen Variablenliste können Sie Variablen festlegen, die von allen POEs des Projekts verwendet werden können.

SDT

Der SDT F168_PulseOutput_Trapezoidal_DUT ist in der FP Library enthalten.

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
		dutTrapez: F168_PulseOutput_Trapezoidal_DUT:=wControlCode := 16#102,
iInitialAndFinalSpeed := 1000,
iTargetSpeed := 7000,
iAccelerationAndDecelerationTime := 300,
diTargetValue := 10000;
	END_VAR
	VAR_EXTERNAL
		X0_bMotorSwitch: BOOL:=FALSE;
			(*at X0*)
	END_VAR
	VAR 
		@'': @'';
		@'': @'';
	END_VAR

POE-Rumpf

Wenn X0_bMotorSwitch auf TRUE gesetzt wird, wird die Funktion ausgeführt.

KOP-Rumpf

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_CONTACT,,X0_bMotorSwitch,4,2,6,4,R);
B(B_VARIN,,dutTrapez,11,3,13,5,);
B(B_VARIN,,0,11,4,13,6,);
B(B_F,F168_PulseOutput_Trapezoidal!,Instance,13,1,28,6,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
L(6,3,13,3);
L(1,3,4,3);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

IF DF(X0_bMotorSwitch) then
    F168_PulseOutput_Trapezoidal(s_dutDataTable := dutTrapez,
    n_iPulseOutputChannel :=0);
END_IF;

Letzte Änderung am: 2022-06-28Feedback zu dieser SeitePanasonic Hotline