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