Test case R0005
Full test suiteDevice test case
Global vars in FB and functions
This test case it part of the test suite proposed for new devices.
Test case ID: R0005
Language: ST
tests2/t0005.stPROGRAM T0005A VAR_GLOBAL GL1T0005 : INT := 11; END_VAR VAR_GLOBAL CONSTANT GL1T0005C : INT := 120; END_VAR VAR_EXTERNAL GL2T0005 : INT; END_VAR GL1T0005 := GL1T0005+2; // GL2T0005 := 11+2 GL2T0005 := GL2T0005+3; // GL2T0005 := 22+3 _GEB_ASSERT_(GL1T0005 = 13); _GEB_ASSERT_(GL2T0005 = 25); END_PROGRAM PROGRAM T0005B VAR_EXTERNAL GL1T0005 : INT; END_VAR VAR_GLOBAL GL2T0005 : INT := 22; END_VAR VAR fb3 : FB3_T0005; X : INT; END_VAR GL1T0005 := GL1T0005 + 5; GL2T0005 := GL2T0005 + 7; _GEB_ASSERT_(GL1T0005 = 18); _GEB_ASSERT_(GL2T0005 = 32); fb3(i:=20); _GEB_ASSERT_(GL2T0005 = 52); X := F_T0005(7); _GEB_ASSERT_(X = 127); fb3(); END_PROGRAM (* adds input value to both global vars *) FUNCTION_BLOCK FB3_T0005 VAR_EXTERNAL GL1T0005 : INT; GL2T0005 : INT; END_VAR VAR_INPUT i : INT; END_VAR VAR_OUTPUT o : INT; END_VAR GL1T0005 := GL1T0005 + i; GL2T0005 := GL2T0005 + i; o := i; END_FUNCTION_BLOCK (* uses read only global *) FUNCTION F_T0005 : INT VAR_EXTERNAL CONSTANT GL1T0005C : INT; END_VAR VAR_INPUT i : INT; END_VAR F_T0005 := i + GL1T0005C; END_FUNCTION