ADwin
Beispiel
#Include
ADWGCNT.Inc
Dim
error
AS LONG
Dim
old_1,
new_1
Dim
old_2,
new_2
INIT:
CNT_Enable(0)
Cnt_SE_Diff(11b)
differentiell
CNT_Clear(1111b)
CNT_Mode(0)
CNT_Set(0)
CNT_InputMode(0)
CNT_Enable(1111b)
old_1
=
0
old_2
=
0
error
=
0
EVENT:
PAR_1
= CNT_Read(1)
PAR_2
= CNT_GetStatus(1)
If
(PAR_2
AND
2000000h
Inc
PAR_3
Kabelfehler bis
error
=
1
ENDIF
If
(PAR_2
AND
1000000h
Inc
PAR_4
jetzt
error
=
1
ENDIF
CNT_ResetStatus()
Korrelationsfehler-
PAR_5
=
Shift_Right(PAR_2
PAR_6
=
Shift_Right(PAR_2
PAR_7
=
Shift_Right(PAR_2
ADwin-Gold USB / ENET, Handbuch Version 4.3, Januar 2012
'Variablen...
AS
LONG'dimensionieren
AS LONG
'Alle Zähler stoppen
'Alle Zählereingänge
'Alle Zähler löschen
'Externer Takteingang
'Vier-Flanken-Auswertung
'CLR-Eingang freischalten
'Alle Zähler starten
'Variablen...
'initialisieren
'Fehlerindikator zurücksetzen
'Zähler 1 auslesen
AND
0FFFF00F0h
'auslesen und maskieren
= 2000000h)
'Kabelfehler Zähler 1?
'Anzahl
'jetzt...
'Fehlerindikator setzen
= 1000000h)
'am Zähler 1?
'Anzahl Korrelationsfehler bis
'Fehlerindikator setzen
'Leitungs- und
'Bits löschen
AND
10h,4)
AND
10000h,16)
AND
20000h,17)
'Statusregister
THEN
'Leitungs-
bzw.
Leitungs-
bzw.
THEN
'Korrelationsfehler
'Zustand CLR-Eingg
'Zustand Eingang A
'Zustand Eingang B
Zähler
Cnt_SE_Diff
87