SCL編程
劉玉蓉
發(fā)布于2014-12-03 17:10
6
0
標(biāo)簽:
DB_NO(數(shù)據(jù)塊號(hào))的內(nèi)容為: array[0..99] of real ,我想編寫(xiě)一個(gè)FB塊可以從這里面獲取浮點(diǎn)數(shù)值,可以從DBB_NO(數(shù)據(jù)偏移個(gè)數(shù))開(kāi)始的連續(xù)NUM個(gè)數(shù),然后復(fù)制到FB的OUT接口(data1,data2,data3,data4... ...data32)上。
輸出的接口是一個(gè)個(gè)的REAL,不是ARRAY(并且CFC不兼容array輸出),array可以帶檢索號(hào),容易實(shí)現(xiàn)for賦值。而且data1(REAL)的起始地址在FB的背景DI位置是需要尋址的,類(lèi)似STL的 LAR1 P##Address, data1就是D [ar1,p#0.0] +AR1這樣就可以實(shí)現(xiàn)LOOP語(yǔ)句對(duì)data2,3,4...賦值。SCL怎么來(lái)實(shí)現(xiàn)呢?
圖片說(shuō)明: 1,123
佳答案
SCL是類(lèi)似PASCAL的高級(jí)語(yǔ)言,不存在像你說(shuō)的可以讀取變量的地址,它的編程方法都是以變量名尋址的。你說(shuō)的在STL中是常見(jiàn)的,在SCL中用一步循環(huán)即可搞定。
我覺(jué)得你的OUT接口也不用尋址,因?yàn)槟阋呀?jīng)在定義時(shí)給出了每個(gè)輸出變量了,那么它們?cè)诒尘癉B塊的地址已經(jīng)固定了,不再改變,你可以直接對(duì)每個(gè)輸出變量賦值。