上海6ES7 323-1BL00-0AA0德國西門子
上海6ES7 323-1BL00-0AA0德國西門子
局部變量的聲明類型
可進(jìn)行的局部變量分配類型取決于在其中進(jìn)行分配的 POU。主程序
(OB1)、中斷例程和子例程可使用臨時(shí) (TEMP)
變量。只有在執(zhí)行塊時(shí),臨時(shí)變量才可用,塊執(zhí)行完成后,臨時(shí)變量可被覆蓋。
數(shù)據(jù)值可以作為參數(shù)與子例程間進(jìn)行傳遞,具體如下所述:
● 如果要將數(shù)據(jù)值傳遞至子例程,則在子例程變量表中創(chuàng)建一個(gè)變量,并將其聲明類型
為 IN。
● 如果要將子例程中建立的數(shù)據(jù)值傳回至調(diào)用例程,則在子例程的變量表中創(chuàng)建一個(gè)變
量,并將其聲明類型為 OUT。
● 如果要將初始數(shù)據(jù)值傳遞至子例程,則執(zhí)行一項(xiàng)可修改數(shù)據(jù)值的操作,并將修改后的
結(jié)果傳回至調(diào)用例程,然后在子例程變量表中創(chuàng)建一個(gè)變量,并將其聲明類型為
IN_OUT。
聲明類型
說明
IN
調(diào)用 POU 提供的輸入?yún)?shù)。
OUT
返回到調(diào)用 POU 的輸出參數(shù)。
IN_OUT
參數(shù),其值由調(diào)用 POU 提供、由子例程修改,然后返回到調(diào)用
POU。
TEMP
臨時(shí)保存在局部數(shù)據(jù)堆棧中的臨時(shí)變量。一旦 POU
*執(zhí)行,臨時(shí)變量值不再可用。在兩次 POU
執(zhí)行之間,臨時(shí)變量不保持其值。
局部變量的數(shù)據(jù)類型檢查
將局部變量作為子例程參數(shù)傳遞時(shí),在該子例程局部變量表中的數(shù)據(jù)類型必須與調(diào)用
POU 中值的數(shù)據(jù)類型相匹配。
示例
您從 OB1 調(diào)用 SBR0,將稱為 INPUT1 的全局符號(hào)用作子例程的輸入?yún)?shù)。
在 SBR0 的局部變量表中,您已經(jīng)將一個(gè)稱為 FIRST 的局部變量定義為輸入?yún)?shù)。
當(dāng) OB1 調(diào)用 SBR0 時(shí),INPUT1 的值被傳遞至 FIRST。
INPUT1 和 FIRST 的數(shù)據(jù)類型必須匹配。
如果 INPUT1 是實(shí)數(shù),FIRST 也是實(shí)數(shù),則數(shù)據(jù)類型匹配。如果 INPUT1 是實(shí)數(shù),但
FIRST 是整數(shù),則數(shù)據(jù)類型不匹配,只有糾正了這一錯(cuò)誤,程序才能編譯。