Академический Документы
Профессиональный Документы
Культура Документы
P R O G R A M m a in
VA R N o t e : A lle n B r a d le y d o e s n o t im p le m e n t
i : IN T ; th e s ta n d a rd s o th a t th e p ro g ra m s c a n b e
EN D _VA R w r it t e n w it h t e x t o n ly . W h e n p r o g r a m
i := 0 ; m in g in R S L o g ix , o n ly t h e s e c t io n in d i
REPEA T c a t e d t o t h e le f t w o u ld b e e n t e r e d . T h e
i := i + 1 ; v a r ia b le i w o u ld b e d e f in e d a s a t a g ,
U N T IL i > = 1 0 ; a n d t h e p r o g r a m w o u ld b e d e f in e d a s a
EN D _R EP EA T; ta s k .
EN D _PRO G RA M
Structured Programming
F U N C T I O N s a m p le
G O O D IN P U T _ V A R
s ta rt : B O O L ; ( * a N O s t a r t in p u t * )
s to p : B O O L ; ( * a N C s t o p in p u t * )
E N D _V A R
O U TP U T_V A R
m o t o r : B O O L ; ( * a m o t o r c o n t r o l r e la y
*)
E N D _V A R
m o t o r := ( m o t o r + s t a r t ) * s t o p ; ( * g e t t h e m o t o r o u t p u t * )
E N D _ F U N C T IO N
F U N C T I O N s a m p le
B A D IN P U T _ V A R
S T A R T :B O O L ; S T O P : B O O L ;
E N D _V A R
O U TP U T _V A R
M O T O R :B O O L ;
E N D _V A R
M O T O R := ( M O T O R + S T A R T ) * S T O P ; E N D _ F U N C T I O N
Declaration Description
example description
description examples
A N D (A ,B ) lo g ic a l a n d
O R (A ,B ) lo g ic a l o r
X O R (A ,B ) e x c lu s iv e o r
N O T (A ) lo g ic a l n o t
! lo g ic a l n o t ( n o t e : n o t im p le m e n t e d o n A B c o n t r o lle r s )
! - ( N o t e : n o t a v a ila b le o n A B c o n t r o lle r s )
()
f u n c t io n s
X P Y , **
n e g a t io n
h ig h e s t p r io r ity
S Q R , T O D , F R D , N O T , N E G , L N , L O G , D E G , R A D , S IN , C O S , T A N , A S N , A C S , A T N
* , /, M O D
+ , -
> , > = , = , < = , < , < >
A N D ( fo r w o r d )
X O R ( fo r w o r d )
O R ( fo r w o r d )
A N D ( b it )
X O R ( b it )
O R ( b it )
la d d e r in s t r u c t io n s
IF-THEN-ELSIF-ELSE-END_IF; normal if-then structure
CASE-value:-ELSE-END_CASE; a case switching function
FOR-TO-BY-DO-END_FOR; for-next loop
WHILE-DO-END_WHILE;
a v g := 0 ;
i := 0 ;
W H IL E (i < 5 ) D O
a v g := a v g + f [ i] ;
i := i + 1 ;
E N D _ W H IL E ;
a v g := a v g / 5 ;
t . T im e r E n a b le := b ;
T O N R (t) ;
IF (a = 1 ) T H E N
x := 1 ;
E L S IF (b = 1 A N D t.D N = 1 ) T H E N
y := 1 ;
I F ( I :0 0 0 / 0 2 = 0 ) T H E N
z := 1 ;
E N D _ IF ;
ELSE
x := 0 ;
y := 0 ;
z := 0 ;
E N D _ IF ;
C A S E te s t O F
0:
a . 0 := 1;
1:
a . 1 := 1;
2:
a . 2 := 1;
3:
a . 3 := 1;
ELSE
a := 0 ;
EN D _C A SE;
F R D ( b c d _ in p u t , d e la y _ t im e ) ;
t . P R E := d e la y _ t im e ;
I F ( t e s t _ in p u t ) T H E N
t . E n a b le T im e r := 1 ;
ELSE
t . E n a b le T im e r := 0 ;
E N D _ IF ;
T O N R (t) ;
s e t := t . D N ;
....
D := T E S T ( 1 . 3 , 3 . 4 ) ; ( * s a m p le c a llin g p r o g r a m , h e r e C w ill d e f a u lt t o 3 . 1 4 * )
E := T E S T ( 1 . 3 , 3 . 4 , 6 . 2 8 ) ; ( * h e r e C w ill b e g iv e n a n e w v a lu e * )
....
F U N C T IO N T E S T : R E A L
V A R _ I N P U T A , B : R E A L ; C : R E A L := 3 . 1 4 1 5 9 ; E N D V A R
T E S T := ( A + B ) / C ;
E N D _ F U N C T IO N
S B R ();
I F S :F S T H E N
s t a t e := 0 ;
g r e e n _ E W . T im e r E n a b le := 1 ;
y e llo w _ E W . T im e r E n a b le := 0 ;
g r e e n _ N S . T im e r E n a b le := 0 ;
y e llo w _ N S . T im e r E n a b le := 0 ; N o t e : T h is e x a m p le is f o r t h e A B
E N D _ IF ; C o n t r o lL o g ix p la t f o r m , s o it
d o e s n o t s h o w th e n o r m a l
T O N R ( g r e e n _ E W ) ; T O N R ( y e llo w _ E W ) ; f u n c t io n a n d t a g d e f in it io n s .
T O N R ( g r e e n _ N S ) ; T O N R ( y e llo w _ N S ) ; T h e s e a r e d o n e s e p a r a t e ly in
t h e t a g e d it o r .
C A S E s ta te O F
0: IF g re e n _ E W .D N T H E N s ta te : D I N T
s t a t e := 1 ; g re e n _ E W : F B D _ T IM E R
g r e e n _ E W . T im e r E n a b le := 0 ; y e llo w _ E W : F B D _ T I M E R
y e llo w _ E W . T im e r E n a b le := 1 ; g re e n _ N S : F B D _ T IM E R
E N D _ IF y e llo w _ N S : F B D _ T I M E R
1: I F y e llo w _ E W . D N T H E N lig h t _ E W _ g r e e n : B O O L a lia s =
s t a t e := 2 ; r a c k :1 :O . D a t a . 0
y e llo w _ E W . T im e r E n a b le := 0 ; lig h t _ E W _ y e llo w : B O O L a lia s =
g r e e n _ N S . T im e r E n a b le := 1 ; r a c k :1 :O . D a t a . 1
E N D _ IF lig h t _ E W _ r e d : B O O L a lia s =
2: IF g re e n _ N S .D N T H E N r a c k :1 :O . D a t a . 2
s t a t e := 3 ; lig h t _ N S _ g r e e n : B O O L a lia s =
g r e e n _ N S . T im e r E n a b le := 0 ; r a c k :1 :O . D a t a . 3
y e llo w _ N S . T im e r E n a b le := 1 ; lig h t _ N S _ y e llo w : B O O L a lia s =
E N D _ IF r a c k :1 :O . D a t a . 4
3: I F y e llo w _ N S . D N T H E N lig h t _ N S _ r e d : B O O L a lia s =
s t a t e := 0 ; r a c k :1 :O . D a t a . 5
y e llo w _ N S . T im e r E n a b le := 0 ;
g r e e n _ E W . T im e r E n a b le := 1 ;
E N D _ IF
lig h t _ EW _ g r e e n := ( s t a t e = 0 ) ;
lig h t _ EW _ y e llo w := ( s t a t e = 1 ) ;
lig h t _ EW _ r e d := ( s t a t e = 2 ) O R ( s t a t e = 3 ) ;
lig h t _ N S _ g r e e n := ( s t a t e = 2 ) ;
lig h t _ N S _ y e llo w := ( s t a t e = 3 ) ;
lig h t _ N S _ r e d := ( s t a t e = 0 ) O R ( s t a t e = 1 ) ;
R E T ();