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

87 lines
1.2 KiB
Markdown

```pascal
// 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
```