s7300 數(shù)據(jù)查詢
劉玉蓉
發(fā)布于2014-11-03 17:17
725
0
標(biāo)簽:
問(wèn)題:
想有S7300做一個(gè)功能塊,
輸入3個(gè)數(shù)據(jù),(分別是:配方號(hào)一個(gè)字r,工位號(hào)一個(gè)字p,查詢請(qǐng)求一個(gè)位q)
輸出15個(gè)數(shù)據(jù)(分別是這個(gè)工位上的15個(gè)工藝參數(shù)a.b.c .d.e.f.g.h.i .j.k.l.m.n.o)其中,這15個(gè)數(shù)據(jù)存在DB10里面的一個(gè)二維數(shù)據(jù)表里,這個(gè)表有38行,15列,每15個(gè)數(shù)據(jù)作為一個(gè)工位的15個(gè)參數(shù)都有規(guī)律的存在這個(gè)表中的一行里面。
請(qǐng)教如何實(shí)現(xiàn), 不太會(huì)用,望給講一下,越詳細(xì)越好!
問(wèn)題補(bǔ)充:
我怎么也找不到FC500和FC501,能否幫我測(cè)試一下你的程序,我不知問(wèn)題出在哪里。
佳答案
用scl的數(shù)組方法來(lái)處理:
1、新建一個(gè)db,name鍵入DATA,type鍵入ARRAY[1..15,1..38],Initial vlaue為空,下一行的type鍵入Real
2、在soruce目錄下新建一個(gè)scl source文件,把下面代碼粘貼然后編譯,得到兩個(gè)fc,其中fc500是用于給數(shù)組賦初始值,可以放在ob100里面,fc501則是查詢數(shù)據(jù)用的,放在ob1里面
FUNCTION FC500 : VOID
BEGIN
DB3.DATA[1,1]:=1.0;
DB3.DATA[1,2]:=2.0;
DB3.DATA[1,3]:=3.0;
DB3.DATA[1,4]:=4.0;
DB3.DATA[2,1]:=1.0;
DB3.DATA[2,2]:=2.0;
DB3.DATA[2,3]:=3.0;
DB3.DATA[2,4]:=4.0;
END_FUNCTION
FUNCTION FC501 : VOID
VAR_INPUT
P:INT;
Q:BOOL;
END_VAR
VAR_OUTPUT
A:REAL;
B:REAL;
C:REAL;
D:REAL;
E:REAL;
F:REAL;
G:REAL;
H:REAL;
I:REAL;
J:REAL;
K:REAL;
L:REAL;
M:REAL;
N:REAL;
O:REAL;
ERROR:BOOL;
END_VAR
BEGIN
IF Q=TRUE AND P>=1 AND P<=38 THEN
A:=DB3.DATA[P,1];
B:=DB3.DATA[P,2];
C:=DB3.DATA[P,3];
//后面自己加
//如果輸出參數(shù)用一個(gè)數(shù)組,這段程序就可以用一個(gè)循環(huán)寫(xiě)了
ERROR:=FALSE;
ELSE
ERROR:=TRUE;
END_IF;
END_FUNCTION