Test case R0900
Full test suiteDevice test case
External lib (non native)
This test case it part of the test suite proposed for new devices.
Test case ID: R0900
Language: ST
tests2/t0900.st
(* requires function LIBFUNC1 defined inside func1.zip and NNF1 defined in lib/nonnative *)
PROGRAM X01LIB
VAR
C1,C2,C3,C4,C7,C0: INT;
fb1,fb2: LIBFB1;
M8 AT %MW63.8 : INT ;
AT %MW63.7 : INT ;
T : INT; // Loop count
END_VAR
VAR_EXTERNAL
_T_PARAMS : TEST_PARAMS;
END_VAR
VAR_EXTERNAL
(* from the library - this is not recommended practice *)
globlib : INT;
END_VAR
T := T +1;
IF T = 1 THEN (* initialization *)
%MW63.7 := 80 ;
M8 := 115;
globlib := 100; // globlib = 100
END_IF;
C0 := LIBFUNC1(3,7) ; // 22
C1 := LIBFUNC2(3,17) + 7; // 27
C4 := NNF1(3,C0) + 5; // 30
// 1st 2nd
fb2(i:=10,j:=3000); // o=3010 cont=1 %8=120 %7=75 | o=3011 cont=2 %8=136 %7=61
fb1(i:=1,j:=100); // o=101 cont=1 %8=125 %7=70 | o=103 cont=3 %8=141 %7=56
fb1(i:=20,j:=1000); // o=1021 cont=2 %8=130 %7=65 | o=1023 cont=4 %8=146 %7=51
// globlib=130 | globlib=1160
C2 := fb1.o; // 1023
C3 := fb2.o; // 3011
globlib := globlib + 1000; // globlib=1130 | globlib=2160
M8 := M8 + 1 ; // 131 | 147
%MW63.7 := %MW63.7 +1; // 66 | 52
C7 := %MW63.7;
IF _T_PARAMS.cycle = _T_PARAMS.timestorun THEN // last iteration
_GEB_ASSERT_(C0 = 22);
_GEB_ASSERT_(C1 = 27);
_GEB_ASSERT_(C2 = 1023);
_GEB_ASSERT_(C3 = 3011);
// _GEB_MSG_(INT_TO_STRING(C7));
_GEB_ASSERT_(C7= 52);
_GEB_ASSERT_(C4= 30);
_GEB_ASSERT_(M8= 147);
_GEB_ASSERT_(globlib = 2160);
END_IF;
END_PROGRAM


