Obsidean_VM/04-SIDEL/00 - MASTER/Source/source/MessageScroll.md

1.2 KiB

// Block Type: FC
// Block Number: 210
// Original Network Languages: STL

FUNCTION "MessageScroll" : Void
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1

VAR_INPUT
  Data_B : "DB_ANY";
  First : Int;
  Last : Int;
  Time_Vis : Timer;
END_VAR

VAR_INOUT
  Code : Int;
END_VAR

VAR_TEMP
  First_bit : Int;
  Last_bit : Int;
  Point : DWord;
END_VAR

BEGIN

  // Network 1:  (Original Language: STL)

  // --- BEGIN STL Network 1 ---
   
     	AUF	"Data_B"
     	A	"Time_Vis"
     	BEC
     	CLR
     	L	S5T#3S
     	Pulse	"Time_Vis"
     	L	"First"
     	L	8
     	MUL_I
     	ADD	-1
     	T	"First_bit"
     	L	"Last"
     	L	8
     	MUL_I
     	ADD	7
     	T	"Last_bit"
     	L	"Code"
     	ADD	1
     	L	"First_bit"
     	ADD_I
     	T	"Point"
     	L	"Point"
     	L	"Last_bit"
     	GT_I
     	JC	rest
     	L	"Point"
     loop:   		LAR1_ACCU1
     	A	DBX[AR1,P#0.0]
     	L	S5T#3S
     	Pulse	"Time_Vis"
     	JC	code
     	L	"Point"
     	L	"Last_bit"
     	GE_I
     	JC	rest
     	L	"Point"
     	L	1
     	ADD_I
     	T	"Point"
     	JU	loop
     rest:   		L	0
     	T	"Code"
     	BEU
     code:   		NOP_0
     	L	"Point"
     	L	"First_bit"
     	SUB_I
     	T	"Code"
   
  // --- END STL Network 1 ---

END_FUNCTION