(FB in SCL) Creazione di R_Trig e F_Trig per S7-300 e S7-400

E’ molto utile poter utilizzare le funzioni R_Trig e F_Trig. Tali funzioni sono però disponibili solo per S7-1200 e S7-1500 e non per S7-300 e S7-400 (in SCL).
Per ovviare a questo problema, si possono creare le seguenti FB (ovviamente creo delle Function Block perchè posso avere più istanze di queste funzioni):

R_Trig (Positive signal edge):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
FUNCTION_BLOCK "R_Trig1"
{ S7_Optimized_Access := 'FALSE' }
VERSION : 0.1
   VAR_INPUT 
      input : Bool;
   END_VAR
 
   VAR_OUTPUT 
      out : Bool;
   END_VAR
 
   VAR 
      input_old : Bool;
   END_VAR
 
 
BEGIN
	IF  #input AND NOT #input_old THEN
	    #out := 1;
	ELSE
	    #out := 0;
	END_IF;
	#input_old := #input;
 
END_FUNCTION_BLOCK

F_Trig (Negative signal edge):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
FUNCTION_BLOCK "F_Trig1"
{ S7_Optimized_Access := 'FALSE' }
VERSION : 0.1
   VAR_INPUT 
      input : Bool;
   END_VAR
 
   VAR_OUTPUT 
      out : Bool;
   END_VAR
 
   VAR 
      input_old : Bool;
   END_VAR
 
 
BEGIN
	IF NOT #input AND #input_old THEN
	    #out := 1;
	ELSE
	    #out := 0;
	END_IF;
	#input_old := #input;
 
END_FUNCTION_BLOCK

You may also like...


Warning: count(): Parameter must be an array or an object that implements Countable in /membri/fabioplc/wp-includes/class-wp-comment-query.php on line 399
Menu Title