回收西門子模塊6ES75411AD000AB0 回收西門子模塊6ES75411AD000AB0
寫功能塊程序時(shí),可以用以下兩種方式使用局部變量:
(1) 使用變量名,此時(shí)變量名前加前綴“#”,以區(qū)別于在符號(hào)表中定義的符號(hào)地址。增量方式下,前綴會(huì)自動(dòng)產(chǎn)生。
(2) 直接使用局部變量的地址,這種方式只對(duì)背景數(shù)據(jù)塊和L堆棧有效。
在調(diào)用FB塊時(shí),要說明其背景數(shù)據(jù)塊。背景數(shù)據(jù)塊應(yīng)在調(diào)用前生成,其順序格式與變量聲明表必須保持*。在增量方式下,調(diào)用FB塊時(shí),STEP 7會(huì)自動(dòng)提醒并生成背景數(shù)據(jù)塊。此時(shí)也為背景數(shù)據(jù)塊設(shè)置了初始值,該初始值與變量聲明表中的相同。當(dāng)然也可以為背景數(shù)據(jù)塊設(shè)置當(dāng)前值(Current Value),即存儲(chǔ)在CPU中的數(shù)值。
1.二分頻器
假設(shè)功能塊FC10是二分頻器產(chǎn)生程序,功能是對(duì)不同的輸入位進(jìn)行二分頻處理。以下給出了FC10的變量聲明表和語(yǔ)句表程序。在程序中使用了跳變沿檢測(cè)指令。
1) FC10的變量聲明表(見表5.3)
Address Decl. Symbol Data Type Initial Value Comment
0.0 In INP BOOL FALSE 脈沖輸入信號(hào)
1.0 Out OUTP BOOL FALSE 脈沖輸出信號(hào)
2.0 In_Out ETF BOOL FALSE 跳變沿標(biāo)志
2) 語(yǔ)句表程序
Network 1
A #INP 對(duì)脈沖輸入信號(hào)產(chǎn)生RLO
FP #ETF 對(duì)前面的RLO進(jìn)行跳變沿檢測(cè),若有正跳沿則RLO=1,否則RLO=0
NOT 取反RLO
BEC 若RLO=1(沒有正跳沿),結(jié)束塊;若RLO=0(有正跳沿),繼續(xù)執(zhí)行下一條指令
AN #OUTP
= #OUTP 輸出信號(hào)反轉(zhuǎn)
BEU 無條件結(jié)束塊
在功能塊FCl0中定義了三個(gè)形參,程序中以引用變量名方式使用了形參變量。也可以為FC10在符號(hào)表中定義一個(gè)符號(hào)名,如“BINARY”,并選用以下兩種方式之一調(diào)用功能塊FC10。調(diào)用時(shí)為形參分別賦予實(shí)參I0.0、Q4.0和M10.0,以對(duì)輸入位I0.0進(jìn)行二分頻以產(chǎn)生輸出脈沖Q4.0。
調(diào)用方式1 調(diào)用方式2
CALL FC10 CALL BINARY
INP:= I0.0 INP:= I0.0
OUTP:= Q4.0 OUTP:= Q4.0
ETF:= M10.0 ETF:= M10.0
2.讀模擬輸入量程序
一些S7-300的應(yīng)用系統(tǒng)中,使用8通道模擬量模塊采集信號(hào),當(dāng)模塊數(shù)量較多時(shí),讀模擬輸入量就很繁瑣。下面給出一個(gè)通用程序FC100,利用它可以方便地把模擬量讀回并順序存入數(shù)據(jù)塊,因?yàn)槟H肽K的起始地址、通道數(shù)、存儲(chǔ)數(shù)據(jù)塊號(hào)及數(shù)據(jù)在數(shù)據(jù)塊中的存儲(chǔ)起始位置均是可變的,所以可在調(diào)用FC100時(shí)靈活確定。