Herunterladen Inhalt Inhalt Diese Seite drucken

HAWE Hydraulik PLVC Technische Dokumentation Seite 324

Inhaltsverzeichnis

Werbung

IV. CAN-BUS
( * V a r i a b l e n d e f i n i e r e n * )
1
VAR
can_lesen :
3
c a n _ i n i t i e a l i e r e n :
b i t t w e r t e 1 :
5
b i t t w e r t e 2 :
z a h l e nw e r t 1 :
7
z a h l e nw e r t 2 :
END_VAR
9
( * Programmcode * )
11
( * Gerade im e r s t e n Programmlauf * )
13
I F NOT
e r s t d u r c h l a u f
( * Übernehmen der Telegramme * )
15
c a n _ i n i t i a l i s i e r e n (CHANNEL : = 1 , ID :=16#295) ;
c a n _ i n i t i a l i s i e r e n (CHANNEL : = 2 , ID :=16#296) ;
17
e r s t d u r c h l a u f : = TRUE;
END_IF
19
( * Telegramm l e s e n * )
21
can_lesen (CHANNEL : = 1 ) ;
( * Fordern der V a l i d i e r u n g * )
23
i f
can_lesen . v a l i d =1
( * T r a n s f o r m a t i o n und Üb e r t r a g u n g der gü l t i g e n Werte i n Byte * )
25
b i t w e r t e 1 : = d i n t _ t o _ b y t e ( u s i n t _ t o _ d i n t ( can_lesen . b0 ) ) ;
b i t w e r t e 2 : = d i n t _ t o _ b y t e ( u s i n t _ t o _ d i n t ( can_lesen . b1 ) ) ;
27
( * Telegramm l e s e n * )
29
can_lesen (CHANNEL : = 2 ) ;
( * Fordern der V a l i d i e r u n g * )
31
i f
can_lesen . v a l i d =1
( * T r a n s f o r m a t i o n und Üb e r t r a g u n g gü l t i g e n Werte i n INTEGER * )
33
z a h l e nw e r t 1 : = u s i n t _ t o _ i n t ( can_lesen . b0 ) ;
z a h l e nw e r t 1 : = z a h l e n we r t 1 + u s i n t _ t o _ i n t ( can_lesen . b1 ) * 2 5 6 ;
35
z a h l e nw e r t 2 : = u s i n t _ t o _ i n t ( can_lesen . b2 ) ;
z a h l e nw e r t 2 : = z a h l e n we r t 2 + u s i n t _ t o _ i n t ( can_lesen . b3 ) * 2 5 6 ;
37
END_IF
;
Das Lesen von Telegrammen erfolgt in zwei Schritten.
Im ersten Schritt (Zeile 13 bis 19) werden Telegramme initialisiert. Nur so vorgewählte Telegramme
können anschließend gelesen werden. Hierfür wird der Funktionsbaustein can_rec_ini verwendet.
Es können maximal 10 Telegramme mit diesem Funktionsbaustein gelesen werden. Sie erhalten im
ersten Teil des Programms eine Channelnummer (1-10) und die Angabe der Telegramm-ID. Diese
Funktion muss nur einmal im Programm aufgerufen werden. Deshalb wurde sie im Programmcode
entsprechend in eine IF-Abfrage gesetzt.
Anschließend (ab Zeile 21) werden zyklisch (in jedem Programmdurchlauf) die Telegramme eingelesen
und die Werte werden Variablen zugeordnet.
324 / 366
CAN_READ;
CAN_REC_INI ;
BYTE
;
BYTE
;
INT
;
INT
;
THEN
then
then
Release: 2.0.6-0-g5b0081f (2019-08-12)
END_IF
;
B 7845 Manual

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis