詳細(xì)介紹
西門子山東省代理商
上海盟疆工業(yè)自動化設(shè)備有限公司工業(yè)業(yè)務(wù)領(lǐng)域致力于為客戶提供高品質(zhì)的服務(wù),追求客戶的滿意是我們始終如一的目標(biāo)。在中國,工業(yè)業(yè)務(wù)領(lǐng)域擁有一支技術(shù)過硬、經(jīng)驗豐富的工程師隊伍,為客戶提供7x24小時全天候服務(wù)。專業(yè)的服務(wù)人員和遍布全國的服務(wù)及備件網(wǎng)絡(luò)將對客戶的服務(wù)需求迅速作出響應(yīng),將由設(shè)備故障引起的損失降低到小的程度。
問題:
如何用ET200S (IM151-CPU)運(yùn)行遠(yuǎn)程服務(wù)?
解答:
你希望建立到ET200S (IM151-CPU)的遠(yuǎn)程鏈接。
用ET200S (IM151-CPU)運(yùn)行遠(yuǎn)程服務(wù),下列組件可用:
- 把SIMATIC 遠(yuǎn)程服務(wù)作為用于STEP 7的選項包
- TS適配器
遠(yuǎn)程服務(wù)允許下列運(yùn)行模式:
- 遠(yuǎn)程服務(wù)
- PLC - PG/PC遠(yuǎn)程鏈接
- PLC - PLC遠(yuǎn)程鏈接
1. 遠(yuǎn)程服務(wù)
在此運(yùn)行模式中,建立起從PG/PC到ET200S CPU的一個連接。ET200S是服務(wù)器。這樣也允許了無限制使用ET200S上的被動接口。
這里,本地PG/PC自身通過調(diào)制解調(diào)器建立起一個到遠(yuǎn)程TS適配器的連接,然后將一個S7連接到遠(yuǎn)程CPU。通過建立起的這些連接,可以在遠(yuǎn)程CPU上運(yùn)行STEP 7服務(wù)程序,如下載/上載,狀態(tài)/控制,在線診斷等。
圖1:遠(yuǎn)程服務(wù)
2. PLC - PG/PC 遠(yuǎn)程鏈接
由于下列原因,在帶被動DP接口的ET200S CPU中不能進(jìn)行這種類型的鏈接:
在該運(yùn)行作模式中,S7連接通過功能塊“PG_DIAL”建立從PLC到本地TS適配器的連接。功能塊“PG_DIAL”隨TeleService軟件提供并集成到已安裝的STEP 7軟件包中。“PG_DIAL”功能塊內(nèi)部調(diào)用S7基本通訊塊:X_SEND和X_GET。然后,TS適配器自己通過已連接好的調(diào)制解調(diào)器自己建立到遠(yuǎn)程PG/PC的遠(yuǎn)程連接。在此連接中,應(yīng)用程序(用PRODAVE MPI創(chuàng)建)扮演相應(yīng)通訊伙伴的角色。在這種情況下,CPU必須承擔(dān)建立連接的任務(wù)。只有CPU的接口為 主動的接口并具有MPI屬性(通過 X 塊支持S7基本通訊)才有可能。
圖2:PLC-PG 遠(yuǎn)程鏈接
3. PLC - PLC 遠(yuǎn)程鏈接
該連接用于通過WAN的CPU-CPU通訊。至少一方必須主動建立連接(啟動程序),為此,這一方的通訊接口必須為主動接口,而且S7基本通訊塊可用(X_PUT,X_SEND,X_GET,X_ABORT)。另一方具有服務(wù)器功能即可,而且 被動接口亦可行。
將S7連接到本地TS適配器通過本地CPU中的功能塊“PLC_DIAL”建立。功能塊“PLC_DIAL”隨TeleService軟件提供并集成到已安裝的 STEP 7軟架包中。“PLC_DIAL”功能塊提供到本地TS適配器的選擇信息,之后TS適配器通過已連接的調(diào)制解調(diào)器建立到遠(yuǎn)程TS適配器的遠(yuǎn)程連接。數(shù)據(jù)傳送期間,遠(yuǎn)程TS適配器如“透明路由器”一樣動作。它建立遠(yuǎn)程CPU的S7連接,并且用遠(yuǎn)程CPU的操作固件執(zhí)行X_GET和X_PUT任務(wù)而無需在遠(yuǎn)程CPU上使用具有此功能的用戶程序。
ET200S CPU有一個被動接口,因而如服務(wù)器那樣支持PLC-PLC遠(yuǎn)程連接,盡管只適用于引發(fā)設(shè)備(本地CPU)中的系統(tǒng)功能X_PUT和/或X_GET。之后,可以比較ET200S的PROFIBUS接口和MPI接口(PB地址 = MPI地址)。必須將ET200S連接到如同TS適配器一樣的相同PROFIBUS段。在參數(shù)化TS適配器時,必須設(shè)置對應(yīng)于ET200 CPU的PROFIBUS設(shè)置文件。
圖3:PLC-PLC 遠(yuǎn)程鏈接
問題:如何計算當(dāng)前程序所需的Local Data大小并合理設(shè)置S7 400 CPU屬性中的Memory選項卡中的Local Data,S7 400 CPU中的Local data設(shè)置不當(dāng)會導(dǎo)致什么問題?
回答:Local data顧名思義為本地數(shù)據(jù),在西門子控制器中有一部分內(nèi)存空間被設(shè)置為L區(qū)間,它被用于控制器在運(yùn)行程序時存儲臨時數(shù)據(jù)。由于編寫FB/FC程序的需要和OB中調(diào)用功能塊結(jié)構(gòu)的不同,不同的OB由于調(diào)用不同的FB/FC,因此所需的Local data的大小各不相同(被調(diào)用的FB/FC將占用當(dāng)前調(diào)用他的OB塊的Local Data資源)。在控制器硬件組態(tài)中的CPU屬性設(shè)置中,Memory選項卡用于設(shè)置Local data的分配。如果相應(yīng)OB塊實際運(yùn)行所需的Local data大于硬件組態(tài)中所設(shè)置的Local Data大小,那么相應(yīng)的程序?qū)o法運(yùn)行,CPU將報告INTF錯誤,甚至更為嚴(yán)重的情況下CPU可能會停止運(yùn)行。但如果盲目將Local Data的分配設(shè)置過大,將會浪費一部分寶貴的CPU內(nèi)存空間。
S7 300CPU中的Local data不可修改,每個優(yōu)先級固定設(shè)置為256 bytes,S7 400的Local data則可以人為修改。由此可以看出正確設(shè)置S7400 CPU的Local Data的大小非常重要。在控制器硬件組態(tài)中CPU屬性? Memory選項卡的Local Data區(qū)域用于設(shè)置基于優(yōu)先級的Local Data(如下圖所示):
Pic1: Local Data的分配
在PCS7組態(tài)的項目中,在編譯CFC程序后,系統(tǒng)將會自動計算各OB塊所需的Local Data大小,可以通過交叉索引(Chart reference data ? Local data,如下圖所示)查詢到。
Pic2: Chart reference data ? Local data
而普通的由用戶采用Step7編程方式編寫的程序,程序功能塊及OB塊各自的調(diào)用結(jié)構(gòu)由用戶自行控制,需要在編寫完整個程序之后自行計算。
在手動計算Local Data時,需要獲取如下信息:
1. 各OB塊、FB塊、FC塊各自獨立運(yùn)行時所需的Local Data大小
可以通過如下方式查詢到:在Block文件夾中選擇相應(yīng)功能塊,右鍵 屬性? General - Part2中即可查看到,如下圖所示:
西門子山東省代理商
Pic3: 功能塊所需的Local Data
注:嵌套調(diào)用時,上一級功能塊將不會計算其嵌套調(diào)用的FB/FC所需的Local data大小;在上圖中將不會累加嵌套功能塊所需的Local data大?。?/p>
2. 整個程序的調(diào)用結(jié)構(gòu)(Call structure)
由于功能塊不會計算其嵌套調(diào)用的功能塊所需到Local data大小,因此為了后計算整個OB所需到Local Data,必須了解整個程序的調(diào)用結(jié)構(gòu)。打開任何一個功能塊,點擊左側(cè)的Call Structure即可查詢到,如下圖所示;
Pic4: 程序調(diào)用結(jié)構(gòu)
3. 當(dāng)前程序下所使用的所有OB的優(yōu)先級
由于CPU屬性設(shè)置中的Local Data分配基于優(yōu)先級進(jìn)行設(shè)置,因此需要查看所有當(dāng)前程序使用的OB塊的中斷優(yōu)先級,打開硬件組態(tài)中CPU屬性查看,如下圖所示;
Pic5: 查看OB的優(yōu)先級
獲得所有上述信息后,即可計算當(dāng)前程序所需的Local data大小。假設(shè)當(dāng)前項目下使用的功能塊及OB塊上述相關(guān)信息如下表所示:
OB/FB/FC | Priority 優(yōu)先級 | 所需Local Data(Bytes) |
FB1 | X | 100 |
FC1 | X | 400 |
OB1 | 1 | 26 |
OB35 | 12 | 26 |
OB121 | X | 20 |
OB122 | X | 20 |
OB的調(diào)用關(guān)系如上圖Pic4所示。根據(jù)調(diào)用結(jié)構(gòu)計算,單獨運(yùn)行各OB塊時所需的Local data如下:
OB1: OB1 + Max(Sum(FB1,FC1), FC1) =26+Max(Sum(100,400), 400)=526
OB35: OB35 + Sum(FB1,FC1) =26+Sum(100,400)=526
OB121: OB121=20
OB122: OB122=20
終CPU屬性中Local data的設(shè)置如下:
優(yōu)先級 1 所需Local Data大小至少為526 + 20 + 20 = 566 bytes;
優(yōu)先級12所需的Local Data大小至少為526 + 20 + 20 = 566 bytes;
注:為什么上述優(yōu)先級1和12中需要加入 兩個20呢,因為程序運(yùn)行的任何位置都有可能會執(zhí)行OB121、OB122,所以需要加上OB121和OB122所需的本地數(shù)據(jù)。PCS7中(Pic2所示)進(jìn)行各優(yōu)先級所需Local data大小計算時已經(jīng)自動加入了這部分的大小。
具體的計算法則可以歸納為一下幾點:
題1:S7-200 CPU內(nèi)部存儲區(qū)類型?
回答:S7-200 CPU內(nèi)部存儲區(qū)分為易失性的RAM存儲區(qū)和保持的EEPROM兩種,其中RAM包含CPU工作存儲區(qū)和數(shù)據(jù)區(qū)域中的V數(shù)據(jù)存儲區(qū)、M數(shù)據(jù)存儲區(qū)、T(定時器)區(qū)和C(計數(shù)器)區(qū),EEPROM包含程序存儲區(qū)、V數(shù)據(jù)存儲區(qū)的全部和M數(shù)據(jù)存儲區(qū)的前14個字節(jié)。
也就是說V區(qū)和MB0-MB13這些區(qū)域都有對應(yīng)的EEPROM保持區(qū)域。
EEPROM的寫操作次數(shù)是有限制的(少10萬次,典型值為100萬次),所以請注意只在必要時才進(jìn)行保存操作。否則,EEPROM可能會失效,從而引起CPU故障。
EEPROM的寫入次數(shù)如果超過限制之后,該CPU即不能使用了,需要整體更換CPU,不能夠只更換CPU內(nèi)EEPROM,西門子不提供這項服務(wù)。
問題2:S7-200 CPU的存儲卡的作用?
回答:S7-200還提供三種類型的存儲卡用于存儲程序,數(shù)據(jù)塊,系統(tǒng)塊,數(shù)據(jù)記錄(歸檔)、配方數(shù)據(jù),以及一些其他文件等,這些存儲卡不能用于實時存儲數(shù)據(jù),只能通過PLC—存儲卡編程的方法將程序塊/數(shù)據(jù)塊/系統(tǒng)塊的初始設(shè)置存于存儲卡內(nèi)。
存儲卡分為兩種,根據(jù)大小共有三個型號。
32K存儲卡:僅用于儲存和傳遞程序、數(shù)據(jù)塊和強(qiáng)制值。32K存儲卡只可以用于向新版(23版)CPU傳遞程序,新版CPU不能向32K存儲卡中寫入任何數(shù)據(jù)。而且32K存儲卡不支持存儲程序以外的其他功能。訂貨號:6ES7 291-8GE20-0XA0。
64K/256K存儲卡:可用于新版CPU(23版)保存程序、數(shù)據(jù)塊和強(qiáng)制值、配方、數(shù)據(jù)記錄和其他文件(如項目文件、圖片等)。64K/256K新存儲卡只能用于新版CPU(23版)。64K存儲卡訂貨號: 6ES7 291-8GF23-0XA0;256K存儲卡訂貨號:6ES7 291-8GH23-0XA0。
為了把存儲卡中的程序送到CPU中,必須先插入存儲卡,然后給CPU上電,程序和數(shù)據(jù)將自動復(fù)制到RAM及EEPROM中。
存儲卡的使用完整限制條件,請參考《S7-200系統(tǒng)手冊》附錄A 技術(shù)規(guī)范—可選卡件一節(jié)。
S7-200的外部存儲卡有哪些功能?
459464
問題3:S7-200 CPU內(nèi)的程序是否具有掉電保持特性?
回答:S7-200 CPU內(nèi)的程序塊下載時,會同時下載到EEPROM中,也就是說程序下載后,將保持。同樣,系統(tǒng)塊和數(shù)據(jù)塊下載時,也會同時下載到EEPROM中。
問題4:S7-200 CPU內(nèi)部的數(shù)據(jù)的掉電保持特性?
回答:S7-200系統(tǒng)手冊第四章——“PLC基本概念”一章中“理解S7--200如何保存和存儲數(shù)據(jù)”一節(jié)詳細(xì)介紹了S7-200 CPU內(nèi)數(shù)據(jù)的掉電保持特性,建議用戶仔細(xì)閱讀。
S7-200 CPU內(nèi)的數(shù)據(jù)分為RAM區(qū)和EEPROM區(qū)。
其中,RAM區(qū)數(shù)據(jù)需要CPU內(nèi)置的超級電容或者外插電池卡才能實現(xiàn)掉電保持特性。
對于CPU221和CPU222的內(nèi)置超級電容,能提供典型值約50小時的數(shù)據(jù)保持。
對于CPU224,CPU224XP,CPU224XPsi和CPU226的內(nèi)置超級電容,能提供典型值約100小時的數(shù)據(jù)保持。
超級電容需要在CPU上電時充電。為達(dá)到上述指標(biāo)的數(shù)據(jù)保持時間,需要連續(xù)充電至少24小時。
當(dāng)該時間不夠時,可以購買電池卡,以獲得更長時間的數(shù)據(jù)保持時間。
EEPROM區(qū)能實現(xiàn)數(shù)據(jù)保持,不依靠超級電容或者電池就可以保持?jǐn)?shù)據(jù)。
問題5:S7-200 CPU內(nèi)部數(shù)據(jù)的工作順序?
回答:S7-200 CPU一上電后,CPU先去檢查RAM區(qū)域中的數(shù)據(jù),如果在超級電容或者電池有電的情況下,數(shù)據(jù)并未丟失,則使用該RAM區(qū)的數(shù)據(jù);如果超級電容或者電池沒電了,導(dǎo)致數(shù)據(jù)丟失,則CPU去讀EEPROM中相應(yīng)的區(qū)域(包含數(shù)據(jù)塊中的數(shù)據(jù)定義內(nèi)容),如果在EEPROM中存有保持的數(shù)據(jù),則CPU將EEPROM中的數(shù)據(jù)寫回到RAM區(qū)中,再進(jìn)行下面的工作。
如果EEPROM中也沒有對應(yīng)存儲區(qū)的數(shù)據(jù)了,則該存儲區(qū)的數(shù)據(jù)將變成0。
問題6:S7-200 CPU電池卡的使用注意事項?
回答:新版S7-200 CPU電池卡有兩種型號。
對于CPU221和CPU222,由于其中沒有實時時鐘,則對應(yīng)的為時鐘電池卡,訂貨號為:6ES7297--1AA23--0XA0。
對于CPU224,CPU224XP,CPU224XPsi和CPU226,電池卡僅提供電池功能,訂貨號為:6ES7 291--8BA20--0XA0,該款電池卡型號又叫做BC293。
電池卡的壽命典型值約為200天,當(dāng)插上電池卡后,如果CPU處于工作狀態(tài)或者超級電容有電的情況下,并不消耗電池卡的電量。當(dāng)電池卡的電量消耗完畢之后,該電池卡就報廢了。
S7-200電池卡不能充電,使用完畢就不能再用了,只能購買新的電池卡了。
S7-200沒有檢測電池卡內(nèi)剩余電量的狀態(tài)位和這種功能。
新版S7-200 CPU電池卡不能用于老CPU,即訂貨號為6ES7xxx-xxx21-0XB0和6ES7xxx-xxx22-0XB0以及更老版本的CPU。
圖1
以上為兩種電池卡以及所在插槽位置。
電池卡的使用完整限制條件,請參考《S7-200系統(tǒng)手冊》附錄A 技術(shù)規(guī)范—可選卡件一節(jié)。
問題7:S7-200 CPU內(nèi)EEPROM的使用方法?
回答:EEPROM的寫入分為如下幾種情況:
1、MB0—MB13的設(shè)置,只需要在系統(tǒng)塊—斷電數(shù)據(jù)保持中設(shè)置即可。
默認(rèn)情況下,系統(tǒng)塊設(shè)置如下圖藍(lán)框中所示,即MB14—MB31,這些區(qū)域沒有對應(yīng)的EEPROM區(qū)域,無須考慮EEPROM寫入次數(shù)限制。
圖2
MB0—MB13如果在系統(tǒng)塊中設(shè)置成掉電保持區(qū)域,如圖2紅框中所示,并將系統(tǒng)塊下載到CPU之后,則這14個字節(jié)的數(shù)據(jù)在掉電的瞬間會將數(shù)值寫入EEPROM中,如果掉電時間超過超級電容和電池的保持時間之后,再上電時,CPU會將EEPROM中存儲的數(shù)據(jù)數(shù)值寫回到RAM中對應(yīng)的存儲區(qū),實現(xiàn)保持?jǐn)?shù)據(jù)的目的。
注意:實現(xiàn)該功能一定要將修改過的系統(tǒng)塊下載到CPU中。
2、數(shù)據(jù)塊中定義的數(shù)據(jù),如圖3所示,當(dāng)下載數(shù)據(jù)塊的時候,同時會將定義的數(shù)據(jù)下載到EEPROM中,這樣,當(dāng)?shù)綦姇r間超過超級電容和電池的保持時間之后,再上電時,CPU會將EEPROM中存儲的數(shù)據(jù)塊中定義的數(shù)據(jù)數(shù)值寫回到RAM中對應(yīng)的存儲區(qū),實現(xiàn)保持?jǐn)?shù)據(jù)的目的。也就是恢復(fù)成數(shù)據(jù)的初始設(shè)置值。
注意:實現(xiàn)該功能一定要將定義好數(shù)據(jù)的數(shù)據(jù)塊下載到CPU中。
圖3
3、使用SMB31和SMW32控制字來實現(xiàn)將V區(qū)的數(shù)據(jù)存到EEPROM中
特殊存儲器字節(jié)31 (SMB31)命令S7-200將V存儲區(qū)中的某個值復(fù)制到存儲器的V存儲區(qū),置位SM31.7提供了初始化存儲操作的命令。特殊存儲器字32 (SMW32)中存儲所要復(fù)制數(shù)據(jù)的地址。如圖4為S7-200系統(tǒng)手冊內(nèi)關(guān)于SMB31和SMW32的使用說明。
圖4
采用下列步驟來保存或者寫入V存儲區(qū)中的一個特定數(shù)值:
1. 將要保存的V存儲器的地址裝載到SMW32中。
2. 將數(shù)據(jù)長度裝載入SM31.0和SM31.1。具體含義如圖4所示。
3. 將SM31.7置為1。
圖5
注意:如果在數(shù)據(jù)塊中定義了某地址的數(shù)據(jù),而又使用這種辦法存儲同樣地址的數(shù)據(jù),則當(dāng)CPU內(nèi)超級電容或電池沒電時,CPU再上電時將采用SMB31和SMW32存儲的數(shù)據(jù)。
問題8:EEPROM寫入次數(shù)的統(tǒng)計?
回答:每次下載程序塊/數(shù)據(jù)塊/系統(tǒng)塊或者執(zhí)行一次SMB31.7置位的操作都算作對EEPROM的一次寫操作,所以請注意在程序中一定不要每周期都調(diào)用SMB31/SMW32用于將數(shù)據(jù)寫入EEPROM內(nèi),否則CPU將很快報廢。
問題9:不使用數(shù)據(jù)塊的方法,如何在程序中實現(xiàn)不止一個V區(qū)數(shù)據(jù)的存儲?
回答:由于SMB31/SMW32一次多只能送入一個V區(qū)雙字給EEPROM區(qū)域,因而當(dāng)有超過一個雙字的數(shù)據(jù)需要送入EEPROM中時,需要程序配合實現(xiàn)。具體操作方法可參照如下的例子,即使用SMB31/SMW32送完一個數(shù)據(jù)(字節(jié)/字/雙字)之后,通過一個標(biāo)志位(如M0.0)來觸發(fā)下一個SMB31/SMW32操作,之后需要將上一個標(biāo)志位清零,以用于下一次的存儲數(shù)據(jù)的操作。
由于SM31.7在每次操作結(jié)束之后都自動復(fù)位,因而不能使用它作為第二次觸發(fā)操作的條件。
以上程序僅供參考。
或者可以參考如下FAQ,多次調(diào)用指令庫用以存儲多個V區(qū)變量到EEPROM存儲區(qū)中:
如何在 CPU 內(nèi)部 EEPROM 存儲空間中保存變量區(qū)域?
17471561
問題10:定時器和計數(shù)器以及MB14-MB31的掉電保持性能?
回答:計數(shù)器和TONR型的定時器(T0-T31,T64-T95)能夠?qū)崿F(xiàn)掉電保持。這些區(qū)域只能由超級電容和電池來進(jìn)行數(shù)據(jù)的掉電保持,他們并沒有對應(yīng)的EEPROM保持存儲區(qū)。當(dāng)超過超級電容和電池供電的時間之后,這些計數(shù)器和TONR定時器的數(shù)據(jù)全部清零。
TON和TOF型的定時器(T32-T63,T96-T255)沒有掉電保持?jǐn)?shù)據(jù)的功能。請不要在系統(tǒng)塊中設(shè)置這些區(qū)域為掉電保持,如圖6所示為錯誤做法:
圖6
按上述做法設(shè)置之后,下載系統(tǒng)塊時會導(dǎo)致如下錯誤發(fā)生:
圖7
所以請不要將T32-T63,T96-T255的定時器設(shè)為掉電保持區(qū)域。
問題11:CPU內(nèi)具備斷電保持性的數(shù)據(jù)區(qū)為何會丟失?
以下情況會導(dǎo)致CPU內(nèi)數(shù)據(jù)清零:
1. 沒有插入電池卡的CPU斷電時間過長,內(nèi)部超級電容放電完畢,TONR區(qū)/C區(qū)/MB14-MB31區(qū)數(shù)據(jù)丟失,V區(qū)和MB0-MB13區(qū)的對應(yīng)EEPROM內(nèi)沒有數(shù)據(jù)導(dǎo)致數(shù)據(jù)丟失,
2. 電池卡使用時間過長,使之沒電了, TONR區(qū)/C區(qū)/MB14-MB31區(qū)數(shù)據(jù)丟失,V區(qū)和MB0-MB13區(qū)的對應(yīng)EEPROM內(nèi)沒有數(shù)據(jù)導(dǎo)致數(shù)據(jù)丟失,
3. 插在CPU上的存儲卡內(nèi)程序/數(shù)據(jù)與CPU內(nèi)部RAM中運(yùn)行的程序/數(shù)據(jù)不符,一上電時會導(dǎo)致原有數(shù)據(jù)/程序的丟失。
4. CPU損壞。