SFC20沒有指明字節(jié)數(shù)
劉玉蓉
發(fā)布于2014-11-07 17:36
85
0
標簽:
在程序調(diào)用SFC20時,輸入,輸出都只有一個指針,沒有標明字節(jié)數(shù),請問這樣的拷貝數(shù)據(jù)區(qū)域大小怎么確定?是DB中有定義的全部都拷過去嗎?
佳答案
在程序調(diào)用SFC20時,輸入,輸出都只有一個指針,沒有標明字節(jié)數(shù),請問這樣的拷貝數(shù)據(jù)區(qū)域大小怎么確定?
是的沒有標明字節(jié)數(shù)。例如:
將數(shù)據(jù)從外設(shè)地址區(qū)PEW300 復制到 DB5 數(shù)據(jù)塊。
源區(qū)域與目標區(qū)域一定不可以交叉。如果指定的目標區(qū)域大于源區(qū)域,此功能只將源區(qū)域中包含的數(shù)據(jù)復制到目標區(qū)域。
如果指定的目標區(qū)域(DSTBLK參數(shù))小于源區(qū)域(SRCBLK參數(shù)),則功能僅復制所能寫入到目標區(qū)域的盡可能多的數(shù)據(jù)。
如果實際存在的目標區(qū)域或源區(qū)域小于源區(qū)域或目標區(qū)域的存儲區(qū)的參數(shù)集大小(SRCBLK、DSTBLK參數(shù)),則數(shù)據(jù)將不傳送。
如果ANY指針(源或目標)是布爾類型,則指定的長度必須是8的倍數(shù);否則SFC將不能執(zhí)行。
源或目標參數(shù)(或二者都)的數(shù)據(jù)類型也可以為STRING。如果源為字符串,將只復制該字符串的當前字符。如果源和目標為字符串,則復制字符數(shù)目的當前長度將被寫入。
如果要復制包括大長度和實際長度的字符串,可如下操作:創(chuàng)建自己在SRCBLK和DSTBLK參數(shù)中使用的ANY指針。請使用BYTE數(shù)據(jù)類型完成此操作。
使用SFC 20 "BLKMOV” (塊移動)可將存儲器區(qū)(= 源區(qū)域)的內(nèi)容復制到另一個存儲器區(qū)(= 目標區(qū)域)。
SRCBLK :指定被復制的存儲區(qū)(源區(qū)域)。不允許指定STRING類型的數(shù)組。
RET_VAL :在功能執(zhí)行時如有故障發(fā)生,此參數(shù)值中包含故
障代碼。
DSTBLK :指定要將數(shù)據(jù)復制到的存儲區(qū)(目標區(qū)域)。不允許指定STRING類型的數(shù)組。
相關(guān)文檔:
如何使用間接尋址訪問I/O地址區(qū),當使用SFC20時應注意什么?
連接:
https://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo&objId=24520804&nodeid0=10805384&load=treecontent&lang=zh&siteid=cseus&aktprim=0&objaction=csview&extranet=standard&viewreg=CN