F165_HighSpeedCounter_Cam

Nockensteuerung für FP0H

Dieser Befehl führt eine Nockensteuerung anhand der Parameter im angegebenen SDT und mit maximal 32 Sollwerten entsprechend dem Istwert des schnellen Zählers durch. Für jeden einzelnen Nockenausgang wird der Sollwert als Paar mit einem EIN- und einem AUS-Einstellwert festgelegt.

Immer, wenn ein Istwert einem Sollwert entspricht, kann ein Interrupt-Programm ausgeführt werden.

Parameter

Eingang

iHscChannel* (INT)

Kanal des schnellen Zählers: 0–3

s_dutDataTable (ANY_DUT)

Anfangsadresse des Bereiches, der die Datentabelle enthält

Ausgang

dutBitOutputs (ANY_DUT)

Anfangsadresse (WR, WL oder WY) des Bereiches, der die Wortadresse für Ausgänge enthält, z.B.. BOOL32_OVERLAPPING_DUT. Wählen Sie die Größe (16 oder 32 Bits) entsprechend der mit diNumberOfTargetValuesAndOutputRelays festgelegten Anzahl aus.

Anmerkungen

  • Eingang

    Erstellen Sie auf der Basis des folgenden Musters ihren eigenen SDT: F165_HighSpeedCounter_Cam_8_Values_OnOff_DUT

    Im SDT lassen sich folgende Parameter festlegen:

  • Ausgang

    • Wenn die Anzahl der Sollwerte im Bereich zwischen 1–16 liegt, wird ein Wort verwendet. Wenn die Anzahl der Sollwerte im Bereich zwischen 17–32 liegt, werden zwei Worte verwendet.

    • Beispiel Wenn die Ausgangsadresse auf "Interner Merker", die Anfangswortadresse der Ausgangsadresse auf "0" und die Anzahl der Sollwerte auf "32" gesetzt ist, werden R0 bis R1F als Adresse für den Nockenausgang zugewiesen.

    1.  (1) Wenn der Istwert den Sollwert 1 erreicht, wird R0 auf TRUE oder FALSE gesetzt.
    2.  (2) Wenn der Istwert den Sollwert 16 erreicht, wird RF auf TRUE oder FALSE gesetzt.
    3.  (3) Wenn der Istwert den Sollwert 18 erreicht, wird R11 auf TRUE oder FALSE gesetzt.
    Anmerkung

    Wenn Sie den Ausgangsmerker (Y) festgelegt haben, werden Werte sowohl an den CPU-Ausgang als auch die Arbeitsspeicher ausgegeben.

  • Beispiel

    1.  (1) Istwert
    2.  (2) Sollwert 1; EIN-Einstellwert: 1000

      1000–4999 R100: TRUE

    3.  (3) Sollwert; AUS-Einstellwert: 5000
    4.  (4) Sollwert 2; EIN-Einstellwert: 7000

      7000–8999 R101: TRUE

    5.  (5) Sollwert; AUS-Einstellwert: 9000

Maximalwertsteuerung

  • Mit F165_HighSpeedCounter_Cam kann die Steuerung mit einem angegebenen maximalen Sollwert durchgeführt werden. Die Einstellungen zum Aktivieren/Deaktivieren der Maximalwertsteuerung und der maximale Sollwert werden in der Datentabelle festgelegt.

  • Abhängig von der Anzahl der Sollwerte und dem festgelegten maximalen Sollwert kann die Datentabelle zwischen 12 und 138 Worte enthalten.

Anmerkung

Der maximale Sollwert am Ende der Datentabelle gilt nur, wenn die Sollwertsteuerung in dwCamControlCode auf 16#0010 (mit Maximalwert) festgelegt wird. Diese Einstellung kann undefiniert bleiben, wenn die Sollwertsteuerung auf 16#0000 (ohne Maximalwert) festgelegt ist.

Aktiviert

Deaktiviert

Zählbereich

0 bis Sollwert

Negativer Minimalwert bis positiver Maximalwert

Vorgang bei Überschreiten des Zählbereichs

Vorwärtszählen:

Wenn der Istwert den Sollwert überschreitet, wird der Zähler auf 0 gesetzt.

Wenn der Istwert den positiven Maximalwert überschreitet, beginnt der Zähler wieder mit dem negativen Minimalwert.

Rückwärtszählen:

Der Zeiger der Datentabelle bewegt sich vom letzten Sollwert zu Sollwert 1.

Wenn der Istwert unter 0 fällt, wird der Zähler auf den Sollwert gesetzt.

Wenn der Istwert unter den negativen Minimalwert fällt, beginnt der Zähler wieder mit dem positiven Maximalwert.

Festlegen von Sollwerten

Der Ausgang ist abhängig vom EIN- und AUS-Einstellwert.

  • AUS-Einstellwert > EIN-Einstellwert

    Wenn der Istwert größer oder gleich dem EIN-Einstellwert und kleiner als der AUS-Einstellwert ist, wird das entsprechende Ausgangsbit auf EIN gesetzt. Liegt der Istwert außerhalb des zulässigen Bereichs, wird das entsprechende Bit auf AUS gesetzt.

    Vorwärtszählen:

    Rückwärtszählen:

    AUS-Einstellwert (1) > EIN-Einstellwert (2)

  • EIN-Einstellwert > AUS-Einstellwert

    Wenn der Istwert kleiner als der EIN-Einstellwert und größer oder gleich dem AUS-Einstellwert ist, wird das entsprechende Ausgangsbit auf AUS gesetzt. Liegt der Istwert außerhalb des zulässigen Bereichs, wird das entsprechende Bit auf EIN gesetzt.

    Vorwärtszählen:

    Rückwärtszählen:

    EIN-Einstellwert (1) > AUS-Einstellwert (2)

  • EIN-Einstellwert = AUS-Einstellwert

    Liegt der Istwert außerhalb des zulässigen Bereichs, wird das entsprechende Bit auf AUS gesetzt.

    Vorwärtszählen:

    Rückwärtszählen:

    EIN-Einstellwert (1) = AUS-Einstellwert (2)

Allgemeine Programmierhinweise

  • Wählen Sie den Eingang des schnellen Zählers für den gewünschten Kanal in den Systemregistern aus.

  • Wenn ein schneller Zählerbefehl ausgeführt wird, wird der Kontrollmerker für den benutzten Kanal (z.B. sys_bIsHscChannel0ControlActive) auf TRUE. Andere Schnelle-Zählerbefehle, die denselben Kanal nutzen, können nicht ausgeführt werden, solange der Kontrollmerker auf TRUE steht.

  • Dieser Befehl kann auf maximal zwei Kanälen gleichzeitig ausgeführt werden.

  • Um die Ausführung eines Befehls abzubrechen, setzen Sie Bit 3 des Datenregisters, in dem der Steuercode für den schnellen Zähler (sys_wHscOrPulseControlCode) gespeichert wird, auf TRUE. Der Kontrollmerker "Schneller Zähler" wechselt dann zu FALSE. Um die Ausführung des schnellen Zählerbefehls wieder zu aktivieren, setzen Sie Bit 3 auf FALSE zurück. Wenn Sie Bit 3 von sys_wHscOrPulseControlCode auf TRUE setzen, wird dadurch auch die Maximalwertsteuerung deaktiviert. Wird die Maximalwertsteuerung gestoppt, wird die Nockenausgabe gehalten und der schnelle Zähler zählt weiter.

  • Den Istwert des schnellen Zählers zurücksetzen oder einstellen, bevor der Befehl aktiviert wird.

  • Wenn der Istwert des Kanals während der Befehlsausführung überschrieben wird, kann es zu unerwartetem Verhalten kommen.

  • Wenn der Befehl im Hauptprogramm ausgeführt wird, muss die minimale Zeitspanne zwischen benachbarten Sollwerten größer sein als die SPS-Zykluszeit.

  • Wenn der Befehl in einem Interrupt-Programm ausgeführt wird, muss die minimale Zeitspanne zwischen benachbarten Sollwerten größer sein als die maximale Ausführungszeit des Interrupt-Programms.

  • Wenn ein Rücksetzeingang oder Software-Reset verwendet wird, muss Sollwert 1 eine Ganzzahl und ³ 1 sein.

  • Wenn die Maximalwertsteuerung zusammen mit einem Rücksetzeingang oder Software-Reset verwendet wird, verwenden sie diese nicht gleichzeitig.

  • Wird der Hardware-Reset oder Software-Reset während der Steuerung mit schnellem Zähler ausgeführt, wird der Istwert des schnellen Zählers auf 0 zurückgesetzt. Der als Nockenausgang verwendete Ausgang ist der Ausgang, der dem Istwert 0 entspricht.

  • Das Interrupt-Programm INTn kann auch immer dann gestartet werden, wenn der Istwert den Sollwert erreicht. Für diesen Vorgang sollte die Aktivierung des Interrupt-Programms vom Interrupt-Steuerungsbefehl ICTL zugelassen werden.

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 Pulsausgabe nicht in den Systemregistern gesetzt wurde
  • wenn der Sollwert > maximaler Sollwert ist.

  • wenn der Sollwert = 0 ist.

  • wenn die Sollwerte nicht in aufsteigender Folge sortiert werden

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 Pulsausgabe nicht in den Systemregistern gesetzt wurde
  • wenn der Sollwert > maximaler Sollwert ist.

  • wenn der Sollwert = 0 ist.

  • wenn die Sollwerte nicht in aufsteigender Folge sortiert werden

Beispiel mit Kanal 0 der FP0H

SDT

Der SDT F165_HighSpeedCounter_Cam_8_Values_OnOff_DUT ist in der FP Library enthalten und lässt sich als Beispiel nutzen.

Globale Variablen

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

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
		bEnable: BOOL:=FALSE;
		dutF165FP0H_CH0: F165_HighSpeedCounter_Cam_8_Values_OnOff_DUT;
	END_VAR
	VAR_EXTERNAL
		g_dutCamControl_WY0: BOOL32_OVERLAPPING_DUT;
	END_VAR

POE-Rumpf

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

KOP-Rumpf

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_CONTACT,,bEnable,5,1,7,3,);
B(B_F,F165_HighSpeedCounter_Cam!,,14,0,28,5,,?DEN?HiHscChannel?Ds_dutDataTable?AENO?CdutBitOutputs);
B(B_VARIN,,0,12,2,14,4,);
B(B_VAROUT,,g_dutCamControl_WY0,28,2,30,4,);
B(B_VARIN,,dutF165FP0H_CH0,12,3,14,5,);
L(1,0,1,6);
L(1,2,5,2);
L(7,2,14,2);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

if (bEnable) then
    F165_HighSpeedCounter_Cam(iHscChannel := 0, s_dutDataTable := dutF165FP0H_CH0,
                              dutBitOutputs => g_dutCamControl_WY0);
end_if;

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