Test case R0096
Full test suiteDevice test case
Function blocks as global vars
This test case it part of the test suite proposed for new devices.
Test case ID: R0096
Language: ST
tests2/t0096.st// returns sum of outputs plus internal accumulator // accumulator starts at 100 and increments in output FUNCTION_BLOCK FBR0096 VAR_INPUT x : INT; y : INT; END_VAR VAR t : INT:=100; END_VAR VAR_OUTPUT z : INT; END_VAR z := x + y + t; t := t + z; END_FUNCTION_BLOCK PROGRAM R0096_INIT VAR_GLOBAL fb1g : FBR0096; END_VAR fb1g.x :=2; // no effect END_PROGRAM PROGRAM R0096_MAIN VAR_EXTERNAL fb1g : FBR0096; END_VAR VAR fb2 : FBR0096; i1,i2 :INT; END_VAR fb2(x:=21,y:=6); // z:127 t:100+127=227 fb2.x := 31; fb2.y := 22; fb2(); // z:227+53=280 t: 227+280 =507 i2 := fb2.z; fb1g(x:=20,y:=5,z=>i1); // z:125 t:225 fb1g.x := 21; fb1g.y := 24; fb1g(); // z:225+45= 270 i1 := fb1g.z; _GEB_ASSERT_(i1 = 270); _GEB_ASSERT_(i2 = 280); END_PROGRAM