與fb相比,fc的局部變量多了一個ret_val(返回值)。它實際上是輸出參數(shù)。默認的情況它是沒有數(shù)據(jù)類型的,在調(diào)用fc時也看不到這個輸出參數(shù)。只要在局部變量表中設(shè)置ret_val的數(shù)據(jù)類型,在調(diào)用時就能看到它在方框的右邊出現(xiàn),所以它是一個輸出參數(shù)。
我很長時間一直不理解為什么要設(shè)置這樣一個局部變量,而不是將它納入輸出參數(shù)。后來偶然在一個資料上看到,這是為了和plc編程語言的國際標(biāo)準(zhǔn)iec 61131-3一致而設(shè)置的。
功能fc的英語為function,也可以像博途那樣,將function翻譯為函數(shù)。iec的函數(shù)和c語言的函數(shù)一樣,執(zhí)行后會產(chǎn)生一個返回值。iec 61131-3的fc也只有一個返回值,不用設(shè)置它的名稱,返回值的名稱和fc的名稱相同。因此iec 61131-3的fc只有返回值這樣一個輸出參數(shù)。
西門子的fc對輸出參數(shù)的個數(shù)沒有限制,比iec 61131-3的fc更好用一些。