FC中參數(shù)傳遞
劉玉蓉
發(fā)布于2014-12-09 17:22
41
0
標(biāo)簽:
有幾個(gè)參數(shù)傳遞的問題想請(qǐng)教下:
1. 西門子高級(jí)編程PPT中說,在被調(diào)FC中,必須寫輸出參數(shù)(避免使用指令如S和R)? 為什么?
2. 如何用指針將一個(gè)數(shù)組(bits)寫到另一個(gè)數(shù)組(bits),并且應(yīng)該置位第二個(gè)數(shù)組,即 A array[0] S array1[0],應(yīng)該怎么寫?
問題補(bǔ)充:
1. 您說的我理解,問題在于為什么說不能用S 和R
2.FC如圖所示,該FC在模擬器中正常,但是用SFC51將數(shù)據(jù)寫入DB作為該FC的輸入,不能夠正常輸出
圖片說明: 1,11
佳答案
1、FC的輸入輸出是沒有實(shí)際地址對(duì)應(yīng)的,只有的程序調(diào)用時(shí),才會(huì)和實(shí)際的地址產(chǎn)生對(duì)應(yīng)關(guān)系。FC參數(shù)傳遞的是數(shù)據(jù)的地址。
2、需要對(duì)數(shù)組進(jìn)行拆分后傳送。
參見:FC中如何傳遞ANY指針
https://www.ad.siemens.com.cn/download/docMessage.aspx?ID=6731&loginID=&srno=&sendtime=
輸出變量每次執(zhí)行掃描后必須都要對(duì)其賦值,否則就會(huì)輸出一個(gè)隨機(jī)值。這就是不用S、R指令的原因,因?yàn)镕C中沒有保存輸出狀態(tài)的地址。
至于你的程序不能夠正常輸出,原因也在與此。其實(shí)你用字節(jié)、字傳送也可以的,或用A、=,這樣保證每次執(zhí)行時(shí)都對(duì)輸出賦值了。