F166_PulseOutput_Set

Zählervergleichsausgang setzen (Pulsausgabe)

Wenn der Istwert des gewählten Kanals den Sollwert erreicht, wird ein vorher bestimmter Ausgang sofort auf TRUE gesetzt.

Parameter

Eingang

n_diPulseOutputChannel (DINT)

Pulsausgabekanal:0–3

s_diTargetValue (DINT)

Geben Sie für den Sollwert einen 32-Bit-Datenwert innerhalb des folgenden Bereichs ein: -2147483467 bis +2147483648

Ausgang

d_Y (BOOL)

Ausgang, der auf TRUE schaltet, wenn der Istwert dem Sollwert entspricht:Y0–Y1F

Anmerkungen

  • Merkmale der Pulsausgabe

    Sollwert: 10000

    (1)

    Istwert der Pulsausgabe

    (2)

    Ausführungsbedingung

    (3)

    Merker "Auswertung aktiv"

    (4)

    SPS-Ausgang

    Der SPS-Ausgang wird auf TRUE gesetzt, wenn der Istwert dem Sollwert entspricht. Außerdem wird der Merker "Auswertung aktiv" auf FALSE gesetzt und der Befehl deaktiviert.Wenn ein Ausgang angegeben ist, der nicht implementiert wurde, wird nur die WY-Adresse im Speicher gesetzt oder zurückgesetzt.

  • Interrupt-Betrieb

    Das Interrupt-Programm wird ausgeführt, wenn der Istwert dem Sollwert entspricht. Jedes Interrupt-Programm, das in die Taskliste eingegeben wird, ist automatisch aktiviert. Jeder Kanalnummer wird ein spezielles Interrupt-Programm zugewiesen.

  • Kanäle, die von Interrupt-Programmen verwendet werden:

    Interrupt8

    Kanal0

    Interrupt9

    Kanal1

    Interrupt10

    Kanal2

    Interrupt11

    Kanal3

Allgemeine Programmierhinweise

  • Setzen Sie den gewünschten Kanal im Systemregister auf "Pulsausgabe".

  • Wenn dieser Befehl ausgeführt wird, schaltet der Merker "Auswertung aktiv" (z.B. sys_bIsPulseChannel0ControlActive) für den benutzten Kanal auf TRUE. Andere schnelle Zählerbefehle mit Ausgangssteuerung (F166_PulseOutput_Set oder F167_PulseOutput_Reset), die denselben Kanal nutzen, können nicht ausgeführt werden, solange dieser Merker auf TRUE steht.

  • Dieser Befehl kann vor oder nach einem beliebigen Pulsausgabebefehl, ausgenommen F173_PulseOutput_PWM, ausgeführt werden.

  • Die Benutzung eines Ausgangs in anderen Befehlen (OUT, SET, RST, KEEP, andere F-Befehle) wird vom System nicht überprüft (keine Erkennung einer Doppelbelegung).

  • Um einen SPS-Ausgang auf FALSE zu setzen, der zuvor durch diesen Befehl auf TRUE geschaltet hatte, verwenden Sie einen RST oder MOVE-Befehl.

  • Um die Ausführung eines Befehls abzubrechen, setzen Sie Bit 2 des Datenregisters, in dem der Pulsausgabesteuercode (sys_wHscOrPulseControlCode) gespeichert wird, auf TRUE. Der Kontrollmerker "Pulsausgabe" wird auf FALSE gesetzt. Um die Ausführung des Befehls wieder zu aktivieren, setzen Sie Bit 2 auf FALSE zurück.

  • Wenn sowohl das Hauptprogramm als auch das Interrupt-Programm Code für denselben Kanal enthalten, dürfen die Programme nicht gleichzeitig ausgeführt 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.

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

Beispiel

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_EXTERNAL
		out_0: BOOL:=FALSE;
			(*output Y0 of PLC*)
	END_VAR
	VAR 
		start: BOOL:=FALSE;
			(*start condition*)
		@'': @'';
	END_VAR

POE-Rumpf

Wenn die Variable start 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_F,F166_PulseOutput_Set!,Instance,12,1,26,6,,?DEN?Hn_diPulseOutputChannel?Ds_diTargetValue?AENO?Cd_Y);
B(B_VARIN,,0,10,3,12,5,);
B(B_VARIN,,10,10,4,12,6,);
B(B_VAROUT,,out_0,26,3,28,5,);
B(B_CONTACT,,start,5,2,7,4,R);
L(1,3,5,3);
L(7,3,12,3);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

IF DF(start) then
    F166_PulseOutput_Set(n_diPulseOutputChannel := 0, 
          s_diTargetValue := 10, 
          d_Y => out_0);
END_IF;

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