FB2中定義本地實例FB1,監(jiān)控發(fā)現(xiàn)FB2的背景DB數(shù)據(jù)沒改變啊,F(xiàn)B1的一直在變
劉玉蓉
發(fā)布于2014-11-27 17:35
492
0
標(biāo)簽:
如題,具體編程如下:純手打......
(****FB1的****部分沒用的省略*****FB1的符號為FB1_INSTANCE**)
FUNCTION_BLOCK FB1_INSTANCE
VAR_INPUT
IN:INT;
END_VAR
VAR_OUTPUT
OUT:INT;
END_VAR
VAR
END_VAR
BEGIN
OUT:=IN+1;
END_FUNCTION_BLOCK
(*********FB2的****部分沒用的省略**FB2符號FB2_INSTANCE**********)
FUNCTION_BLOCK FB2_INSTANCE
VAR_INPUT
IN1:INT;
END_VAR
VAR_OUTPUT
OUT:INT;
END_VAR
VAR
FB_INSTANCE:FB1_INSTANCE
END_VAR
BEGIN
if(FB1_INSTANCE.OUT>10)
then OUT1:=IN1+1;
else OUT1:=IN1+2;
end_if;
END_FUNCTION_BLOCK
(****************OB35中執(zhí)行先FB1******************************)
DB1.DBW0給IN DB1.DBW2給OUT
/////////////////段2中執(zhí)行以下代碼
L DB1.DBW2
L 2
+I
T DB1.DBW0
////////////段3執(zhí)行FB2
問題補充:
嗯,練習(xí)下,等下回去再看下,這不是原來執(zhí)行不成功的程序,按照那個現(xiàn)寫的一個。沒人回就給你吧
佳答案
按照你的描述,F(xiàn)B2中OUT1:=IN1+1或IN1+2,每次執(zhí)行時IN1的值沒發(fā)生變化,所以O(shè)UT1的值也不會改變的。應(yīng)該是程序問題。
你可以優(yōu)化一下你的程序,此功能在一個塊中實現(xiàn)即可,為什么要使用多重背景呢,還是為了練習(xí)呢。