產(chǎn)地類(lèi)別 | 進(jìn)口 |
---|
SIEMENS 可編程控制器
1,、 SIMATIC S7 系列PLC:S7-200,、S7-1200,、S7-300、S7-400,、ET-200
2,、 邏輯控制模塊 LOGO!230RC,、230RCO,、230RCL、24RC,、24RCL等
3,、 SITOP直流電源 24V DC 1.3A、2.5A,、3A,、5A,、10A、20A,、40A可并聯(lián).
![]() |
參考價(jià) | 面議 |
更新時(shí)間:2023-07-28 17:18:49瀏覽次數(shù):198
聯(lián)系我們時(shí)請(qǐng)說(shuō)明是化工儀器網(wǎng)上看到的信息,,謝謝!
南充西門(mén)子PLC代理商
讀模擬輸入量程序
一些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í)靈活確定,。
Address Decl. Symbol Data Type Initial Value Comment
0.0 In PIW_Addr INT
模入模塊通道起始地址
2.0 In CH_LEN INT
要讀入的通道數(shù)
4.0 In DB_No INT
存儲(chǔ)數(shù)據(jù)塊號(hào)
6.0 In DBW_Addr INT
存儲(chǔ)在數(shù)據(jù)塊中的字地址
Network 1
L #DB_No
T LW0
OPN DB[LW 0] 打開(kāi)存儲(chǔ)數(shù)據(jù)塊
L #PIW_Addr
SLD 3 形成模入模塊地址指針
T LD4 在臨時(shí)本地?cái)?shù)據(jù)雙字LD 4中存儲(chǔ)模入模塊地址指針
L #DBW_Addr
SLD 3 形成數(shù)據(jù)塊存儲(chǔ)地址指針
T LD8 在臨時(shí)本地?cái)?shù)據(jù)雙字LD 8中存入數(shù)據(jù)塊存儲(chǔ)地址指針
L #CH_LEN 以要讀入的通道數(shù)為循環(huán)次數(shù),裝入累加器1
NEXT:T LW 0
將累加器1的值,,裝入循環(huán)次數(shù)計(jì)數(shù)器LW0(臨時(shí)本地?cái)?shù)據(jù)字)
L LD4
LARl 將模入模塊地址指針裝入地址寄存器1
L PIW[ARl,,P#0.0] 讀模入模塊裝入累加器1
T LW2 將累加器1的內(nèi)容暫存入緩沖器LW2
L LD8
LARl 將數(shù)據(jù)塊存儲(chǔ)地址指針裝入地址寄存器1
L LW2 將數(shù)據(jù)緩沖器中的內(nèi)容裝入累加器1
T DBW[ARl,P#0.0] 將累加器的內(nèi)容存入數(shù)據(jù)塊中
L LD4 AR1+P#2.0→AR1
+ L#16 ACC1+(.._0001_0 000)
T LD4 調(diào)整模入模塊地址指針,,指向下一通道Acc1+(bb bbbb bxxx)
L LD8
+ L#16
T LD8 調(diào)整數(shù)據(jù)塊存儲(chǔ)地址指針,,指向下一存儲(chǔ)地址
L LW0 將循環(huán)次數(shù)計(jì)數(shù)器LW0的值裝入累加器1
LOOP NEXT 若累加器1的值不為0,將累加器減1繼續(xù)循環(huán),;若累加
器為0,,則結(jié)束
在FC100中,寄存器間接尋址指令OP NDB[LW0]使用了臨時(shí)本地?cái)?shù)據(jù)LW0,,變量表中定義的臨時(shí)變量雖然也在L堆棧中,,但不能用于存儲(chǔ)器間接尋址,從這里也可看出臨時(shí)本地?cái)?shù)據(jù)與臨時(shí)變量的區(qū)別,。程序中LW2,、LD4和LD8起的作用也可用臨時(shí)變量替代,。
下面舉例說(shuō)明如何使用FC100,。在某應(yīng)用中,機(jī)架0的4號(hào)槽位安裝了一個(gè)8模入模塊(地址256開(kāi)始),,若要將前6個(gè)模入模塊信號(hào)讀回,,存入DB50.DBW10開(kāi)始的6個(gè)字單元中,,可按下列形式調(diào)用FC100:
CALL FC100
PIW_Add:= 256
CH_LEN:= 6
DB_No:= 50
DBW_Addr:= 10
數(shù)據(jù)塊
數(shù)據(jù)塊定義在S7 CPU存儲(chǔ)器中,用戶(hù)可在存儲(chǔ)器中建立一個(gè)或多個(gè)數(shù)據(jù)塊,。每個(gè)數(shù)據(jù)塊可大可小,,但CPU對(duì)數(shù)據(jù)塊數(shù)量及數(shù)據(jù)總量有限制,如對(duì)于CPU314,用作數(shù)據(jù)塊的存儲(chǔ)器多為8 KB(8192 B),,用戶(hù)定義的數(shù)據(jù)總量不能超出這個(gè)限制,。對(duì)數(shù)據(jù)塊必須遵循先定義后使用的原則,否則,,將造成系統(tǒng)錯(cuò)誤,。
1. 定義數(shù)據(jù)塊
在編程階段和運(yùn)行程序中都能定義數(shù)據(jù)塊。大多數(shù)數(shù)據(jù)塊是在編程階段用STEP 7開(kāi)發(fā)軟件包定義的,,定義內(nèi)容包括數(shù)據(jù)塊號(hào)及塊中的變量(包括變量符號(hào)名,、數(shù)據(jù)類(lèi)型以及初始值等),定義完成后,,數(shù)據(jù)塊中變量的順序及類(lèi)型決定了數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu),,變量的數(shù)量決定了數(shù)據(jù)塊的大小。數(shù)據(jù)塊在使用前,,必須作為用戶(hù)程序的一部分下載到CPU中,。
如果確實(shí)需要,還可以在程序運(yùn)行中動(dòng)態(tài)定義一個(gè)數(shù)據(jù)塊,。動(dòng)態(tài)定義時(shí),,數(shù)據(jù)塊號(hào)是自動(dòng)產(chǎn)生的,數(shù)據(jù)塊在存儲(chǔ)器中的位置是動(dòng)態(tài)分配的,。由于要定義的數(shù)據(jù)塊有可能大于CPU存儲(chǔ)器(用于數(shù)據(jù)塊的部分)的剩余空間,,因此動(dòng)態(tài)定義過(guò)程有可能失敗
2.訪(fǎng)問(wèn)數(shù)據(jù)塊
在用戶(hù)程序中可能定義了許多數(shù)據(jù)塊,而每個(gè)數(shù)據(jù)塊中又有許多不同類(lèi)型的數(shù)據(jù),,因此,,訪(fǎng)問(wèn)時(shí)需要明確數(shù)據(jù)塊號(hào)和數(shù)據(jù)塊中的數(shù)據(jù)類(lèi)型與位置。根據(jù)明確數(shù)據(jù)塊號(hào)的不同方法,,可以用多種方法訪(fǎng)問(wèn)數(shù)據(jù)塊中的數(shù)據(jù),。
直接在訪(fǎng)問(wèn)指令中寫(xiě)明數(shù)據(jù)塊號(hào),如:
L DB5.DBW10
T DB10.DBW20
L Motor_1.Speed 符號(hào)地址
另一種方法是“先打開(kāi)后訪(fǎng)問(wèn)",。在訪(fǎng)問(wèn)某數(shù)據(jù)塊中的數(shù)據(jù)前,,先“打開(kāi)"這個(gè)數(shù)據(jù)塊,也就是將數(shù)據(jù)塊號(hào)(數(shù)據(jù)塊的起始地址)裝入數(shù)據(jù)塊寄存器,。這樣,,存放在數(shù)據(jù)塊中的數(shù)據(jù)就可利用數(shù)據(jù)塊起始地址加偏移量的方法來(lái)訪(fǎng)問(wèn),。如:
OPN DB5
L DBW10
OPN DB10
T DBW20
在打開(kāi)一個(gè)數(shù)據(jù)塊時(shí),,先打開(kāi)的數(shù)據(jù)塊會(huì)自動(dòng)關(guān)閉(沒(méi)有專(zhuān)門(mén)的數(shù)據(jù)塊關(guān)閉指令)。由于有兩個(gè)數(shù)據(jù)塊寄存器(DB和DI寄存器),,因此,,多可同時(shí)打開(kāi)兩個(gè)數(shù)據(jù)塊。一個(gè)作為背景數(shù)據(jù)塊,,數(shù)據(jù)塊的起始地址存儲(chǔ)在DI寄存器中,;另一個(gè)作為共享數(shù)據(jù)塊,,數(shù)據(jù)塊的起始地址存儲(chǔ)在DB寄存器中。打開(kāi)背景數(shù)據(jù)塊,,在調(diào)用FB時(shí)可以自動(dòng)實(shí)現(xiàn),。由于調(diào)用FB時(shí)使用DI寄存器,因此,,一般不在FB程序中用OPN DI n指令打開(kāi)數(shù)據(jù)塊,。
3. 背景數(shù)據(jù)塊和共享數(shù)據(jù)塊
背景數(shù)據(jù)塊和共享數(shù)據(jù)塊有不同的用途。任何FB,、FC或OB均可讀寫(xiě)存放在共享數(shù)據(jù)塊中的數(shù)據(jù),。背景數(shù)據(jù)塊是FB運(yùn)行時(shí)的工作存儲(chǔ)區(qū),它存放FB的部分運(yùn)行變量,。調(diào)用FB時(shí),,必須一個(gè)相關(guān)的背景數(shù)據(jù)塊。作為規(guī)則,,只有FB塊才能訪(fǎng)問(wèn)存放在背景數(shù)據(jù)塊中的數(shù)據(jù),。
一般情況下,每個(gè)FB都有一個(gè)對(duì)應(yīng)的背景數(shù)據(jù)塊,,一個(gè)FB也可以使用不同的背景數(shù)據(jù)塊,。如果幾個(gè)FB需要的背景數(shù)據(jù)*相同,為節(jié)省存儲(chǔ)器,,則可以定義成一個(gè)背景數(shù)據(jù)塊,,供它們分別使用。通過(guò)多重背景數(shù)據(jù),,也可將幾個(gè)FB需要的不同的背景數(shù)據(jù)定義在一個(gè)背景數(shù)據(jù)塊中,,以?xún)?yōu)化數(shù)據(jù)管理。各數(shù)據(jù)塊在CPU的存儲(chǔ)器中是沒(méi)有區(qū)別的,,只是由于打開(kāi)方式不同,,才在打開(kāi)時(shí)有背景數(shù)據(jù)塊和共享數(shù)據(jù)塊之分。原則上,,任何一個(gè)數(shù)據(jù)塊都可以當(dāng)作共享數(shù)據(jù)塊或背景數(shù)據(jù)塊使用,,實(shí)際上,一個(gè)數(shù)據(jù)塊由FB當(dāng)作背景數(shù)據(jù)塊使用時(shí),,必須與FB的要求格式相符,。
南充西門(mén)子PLC代理商