Steuercode für schnellen Zähler schreiben

Auf das Sonderdatenregister, das den Steuercode für den schnellen Zähler und die Pulsausgabe speichert, kann mit der Systemvariable sys_wHscOrPulseControlCode zugegriffen werden. (Die Systemvariable sys_wHscOrPulseControlCode entspricht dem Sonderdatenregister DT90052.)

Funktionen, die vom Steuercode des schnellen Zählers ausgeführt werden:

Die Einstellungen des Steuercodes können mit den Systemvariablen sys_wHscChannelxControlCode oder sys_wPulseChannelxControlCode (wobei x=Kanalnummer) für jeden einzelnen Kanal abgefragt werden. Die Einstellungen dieser Systemvariable bleiben erhalten, bis sie neu definiert werden.

Schnelle Zählerbefehle abbrechen (Bit 3)

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.

Rücksetzeingang (Hardware-Reset) des schnellen Zählers aktivieren/deaktivieren (Bit 2)

X0 Schneller Zählereingang

  1.  (1) Istwert:
  2.  (2) Bit 2 des Steuercodes des schnellen Zählers (Rücksetzeingang aktivieren/deaktivieren)
  3.  (3) Istwert wird auf 0 zurückgesetzt
  4.  (4) Zurücksetzen nicht möglich

Wenn Bit 2 des Steuercodes auf TRUE gesetzt wird, ist es nicht möglich, den in den Systemregistern angegebenen Eingang zurückzusetzen. Die Zählung wird fortgesetzt, auch wenn der Rücksetzeingang auf TRUE gesetzt wurde. Der Rücksetzeingang bleibt deaktiviert bis Bit 2 auf 0 zurückgesetzt wird.

Zählen aktivieren/deaktivieren (Bit 1)

Steueroperation der Zählereingabe

X0 Schneller Zählereingang

  1.  (1) Istwert:
  2.  (2) Bit 1 des Steuercodes des schnellen Zählers (Zählen)

Wenn Bit 1 des Steuercodes auf TRUE gesetzt ist, wird das Zählen unterbunden und der Istwert behält den aktuellen Wert bei. Das Zählen wird fortgesetzt, wenn Bit 1 auf FALSE zurückgesetzt wird.

Istwert des schnellen Zählers auf 0 zurücksetzen (Software-Reset) (Bit 0)

X0 Schneller Zählereingang

  1.  (1) Istwert:
  2.  (2) Bit 0 des Steuercodes des schnellen Zählers (Istwert zurücksetzen)

Wenn Bit 0 des Steuercodes auf TRUE gesetzt ist, wird der Istwert auf 0 zurückgesetzt. Der Istwert behält den Wert 0 bei bis Bit 0 wieder auf FALSE zurückgesetzt wird.

Beschreibung für FP-Sigma, FP-X, FP0R

Die Bits 0–15 des Steuercodes sind in Vierergruppen angeordnet. Die Biteinstellung in jeder Gruppe wird durch eine Hexadezimalzahl dargestellt (z.B. 00020000 0000 1001 = 16#2009).

  1.  (1) Kanalnummer (Kanal n: 16#n)
  2.  (2) Schnellen Zählerbefehl abbrechen (Bit 3)

    0: Fortsetzen/1: löschen

  3.  (3) Rücksetzeingang (Bit 2) (siehe Anmerkung)

    0: Aktiviert /1: Deaktiviert

  4.  (4) Zählen (Bit 1)

    0: Aktiviert /1: Deaktiviert

  5.  (5) Istwert auf 0 zurücksetzen (Bit 0)

    0: Nein/1: Ja

Beispiel: 16#2009

Gruppe

Wert

Beschreibung

IV

2

Kanalnummer: 2

III

0

(fest)

II

0

(fest)

I

9

Hex 9 entspricht der Binärzahl 1001

Schnellen Zählerbefehl abbrechen: Löschen (Bit 3)

1

Rücksetzeingang: Aktiviert (Bit 2)

0

Zählen: Aktiviert (Bit 1)

0

Istwert auf 0 zurücksetzen: Ja (Bit 0)

1

Beschreibung für FP0, FP-e

Die Bits 0–15 des Steuercodes sind in Vierergruppen angeordnet, wobei jede Gruppe die Einstellungen für einen Kanal enthält.Die Bits 0–15 des Steuercodes sind in Vierergruppen angeordnet, wobei jede Gruppe die Einstellungen für einen Kanal enthält. Die Biteinstellung in jeder Gruppe wird durch eine Hexadezimalzahl dargestellt (z.B. 0000 0000 1001 0000 = 16#90).

  1.  (1) Schnellen Zählerbefehl abbrechen (bit 3)

    0: Fortsetzen /1: Löschen

  2.  (2) Rücksetzeingang (bit 2) (siehe Anmerkung)

    0: Aktiviert/1: Deaktiviert

  3.  (3) Zählen (Bit 1)

    0: Aktiviert/1: Deaktiviert

  4.  (4) Istwert auf 0 zurücksetzen (bit 0)

    0: Nein/1: Ja

Gruppe

IV

III

II

I

Kanal

3

2

1

0

Beispiel: 16#90

Gruppe

Wert

Beschreibung

IV

0

III

0

II

9

Kanalnummer: 1

Hex 9 entspricht der Binärzahl 1001

Schnellen Zählerbefehl abbrechen: Löschen (Bit 3)

1

Rücksetzeingang: Aktiviert (Bit 2)

0

Zählen: Aktiviert (Bit 1)

0

Istwert auf 0 zurücksetzen: Ja (Bit 0)

1

I

0

Anmerkung

Wenn der Rücksetzeingang auf TRUE gesetzt wird, wird der Istwert auf 0 zurückgesetzt. Mit Bit 2 (Rücksetzeingang des schnellen Zählers aktivieren/deaktivieren) können Sie den in den Systemregistern festgelegten Rücksetzeingang deaktivieren.

Beispiel: Software-Reset für Kanal 0

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
		bSoftwareReset: BOOL:=FALSE;
			(*Activates the function*)
	END_VAR
	VAR CONSTANT 
		HSC_CH0_RESET_ELAPSED_VALUE: WORD:=16#0001;
			(*Resets elapsed value of channel 0*)
		HSC_CH0_CONTINUE: WORD:=16#0000;
			(*Continues counting in channel 0*)
	END_VAR
	VAR 
	END_VAR

POE-Rumpf

Das Zurücksetzen wird in Schritt 1 ausgeführt; dann wird direkt anschließend 0 in Schritt 2 eingegeben, um die Zählung zu starten. Durch das alleinige Zurücksetzen wird die Zählung nicht gestartet.

KOP-Rumpf

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_VARIN,,HSC_CH0_RESET_ELAPSED_VALUE,22,2,24,4,);
B(B_CONTACT,,bSoftwareReset,5,1,7,3,R);
B(B_VARIN,,HSC_CH0_CONTINUE,22,6,24,8,);
B(B_F,E_MOVE!,Instance,24,0,30,4,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,30,2,32,4,);
B(B_F,E_MOVE!,Instance,24,4,30,8,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,30,6,32,8,);
L(1,2,5,2);
L(7,2,8,2);
L(8,2,24,2);
L(8,6,24,6);
L(8,2,8,6);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

if DF(bSoftwareReset) then
    sys_wHscOrPulseControlCode:=HSC_CH0_RESET_ELAPSED_VALUE;
    sys_wHscOrPulseControlCode:=HSC_CH0_CONTINUE;
end_if;

Beispiel: Software-Reset für Kanal 1 (FP-SIGMA, FP-X, FP0R)

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
		bSoftwareReset: BOOL:=FALSE;
			(*Activates the function*)
	END_VAR
	VAR CONSTANT 
		HSC_CH1_RESET_ELAPSED_VALUE: WORD:=16#1001;
			(*Resets elapsed value of channel 1*)
		HSC_CH1_CONTINUE: WORD:=16#1000;
			(*Continues counting in channel 1*)
	END_VAR
	VAR 
	END_VAR

POE-Rumpf

Das Zurücksetzen wird in Schritt 1 ausgeführt; dann wird direkt anschließend 0 in Schritt 2 eingegeben, um die Zählung zu starten. Durch das alleinige Zurücksetzen wird die Zählung nicht gestartet.

KOP-Rumpf

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_VARIN,,HSC_CH1_RESET_ELAPSED_VALUE,24,2,26,4,);
B(B_CONTACT,,bSoftwareReset,5,1,7,3,R);
B(B_VARIN,,HSC_CH1_CONTINUE,24,6,26,8,);
B(B_F,E_MOVE!,Instance,26,0,32,4,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,32,2,34,4,);
B(B_F,E_MOVE!,Instance,26,4,32,8,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,32,6,34,8,);
L(1,2,5,2);
L(7,2,8,2);
L(8,2,26,2);
L(1,0,1,8);
L(8,6,26,6);
L(8,2,8,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

if DF(bSoftwareReset) then
    sys_wHscOrPulseControlCode:=HSC_CH1_RESET_ELAPSED_VALUE;
    sys_wHscOrPulseControlCode:=HSC_CH1_CONTINUE;
end_if;

Letzte Änderung am: 2021-07-28Feedback zu dieser SeitePanasonic Hotline