21:CPU全面復(fù)位后哪些設(shè)置會(huì)保留下來?
復(fù)位CPU時(shí),內(nèi)存沒有被完全刪除。整個(gè)主內(nèi)存被完全刪除了,但加載內(nèi)存中數(shù)據(jù),以及保存在Flash-EPROM存儲(chǔ)卡(MC)或微存儲(chǔ)卡(MMC)上的數(shù)據(jù),則會(huì)全部保留下來。除了加載內(nèi)存以外,計(jì)時(shí)器(CPU 312 IFM除外)和診斷緩沖也被保留。具有MPI接口或一個(gè)組合MPI/DP接口的CPU只在全部復(fù)位之前保留接口所采用的當(dāng)前地址和波特率。另一方面,另一個(gè)PROFIBUS地址也被完全刪除,不能再訪問。
重要事項(xiàng):重新設(shè)置PG/PC之后,與CPU之間的通訊只能通過MPI或MPI/DP接口來建立。
22:為什么不能通過MPI在線訪問CPU?
如果在CPU上已經(jīng)更改了MPI參數(shù),請(qǐng)檢查硬件配置。可以將這些值與在"Set PG/PC interface"下的參數(shù)進(jìn)行比較,看是否有不一致。
或者可以這樣做:打開一個(gè)新的項(xiàng)目,創(chuàng)建一個(gè)新的硬件組態(tài)。在CPU的MPI接口的屬性中為地址和傳送速度設(shè)置各自的值。將"空"項(xiàng)目寫入存儲(chǔ)卡中。把該存儲(chǔ)卡插入到CPU 然后重新打開CPU的電壓,將位于存儲(chǔ)卡上的設(shè)置傳送到CPU。現(xiàn)在已經(jīng)傳送了MPI接口的當(dāng)前設(shè)置,并且像這樣的話,只要接口沒有故障就可以建立連接。 這個(gè)方法適用于所有具有存儲(chǔ)卡接口的S7-CPU。
23:錯(cuò)誤OB的用途是什么?
如果發(fā)生一個(gè)所描述的錯(cuò)誤(見文件1),則將調(diào)用并處理相應(yīng)OB。如果沒有加載該OB,則CPU進(jìn)入STOP(例外:OB70、72、7 3和81)
S7-CPU可以識(shí)別兩類錯(cuò)誤:
1)同步錯(cuò)誤: 這些錯(cuò)誤在處理特定操作的過程中被觸發(fā),并且可以歸因于用戶程序的特定部分。
2)異步錯(cuò)誤: 這些錯(cuò)誤不能直接歸因于運(yùn)行中的程序。這些錯(cuò)誤包括優(yōu)先級(jí)類的錯(cuò)誤,自動(dòng)化系統(tǒng)中的錯(cuò)誤(故障模塊)或者冗余的錯(cuò)誤。
24:在DP從站或CPU315-2DP型主站里應(yīng)該編程哪些“故障 OBs”?
在組態(tài)一個(gè)作為從站的CPU315-2DP站時(shí),必須在STEP7程序中編程下列OB以便評(píng)估分布式I/O類型的錯(cuò)誤信息:
OB 82 診斷中斷 OB 、OB 86 子機(jī)架故障 OB 、OB 122 I/O 訪問出錯(cuò)
1)診斷OB82:如果一個(gè)支持診斷,并且已經(jīng)對(duì)其釋放了診斷中斷的模塊識(shí)別出一個(gè)錯(cuò)誤,它既對(duì)進(jìn)入事件也對(duì)外出的事件向 CPU 發(fā)出一個(gè)診斷中斷的請(qǐng)求。操作系統(tǒng)然后調(diào)用 OB82。在 OB82 自己的局部變量里包含有有缺陷模塊的邏輯基地址和 4 個(gè)字節(jié)的診斷數(shù)據(jù)。如果你還沒有編程 OB82, 則 CPU 進(jìn)入“停止”模式。你可以阻斷或延遲診斷中斷 OB ,并通過 SFC 39 - 42 重新釋放它。
2)子機(jī)架故障OB86:如果識(shí)別出一個(gè) DP 主站系統(tǒng)或一個(gè)分布式 I/O 站有故障(既對(duì)進(jìn)入事件也對(duì)外出的事件),該 CPU 的操作系統(tǒng)就調(diào)用 OB 86 。如果沒有編程 OB 86 但出現(xiàn)了這樣一個(gè)錯(cuò)誤, CPU 就進(jìn)入“停止”模式。你可以阻斷或延遲 OB86 并通過 SFC 39 - 42 重新釋放它。
3)I/O 訪問出錯(cuò)OB122:當(dāng)訪問一個(gè)模塊的數(shù)據(jù)時(shí)出錯(cuò),該CPU的操作系統(tǒng)就調(diào)用OB 122。比方說,CPU在存取一個(gè)單個(gè)模塊的數(shù)據(jù)時(shí)識(shí)別出一個(gè)讀錯(cuò)誤,那么操作系統(tǒng)就調(diào)用OB 122。該OB 122以與中斷塊有相同的優(yōu)先級(jí)類別運(yùn)行。如果沒有編程OB 122,那么CPU由“運(yùn)行”模式改為“停止”模式。
25:為什么在某些情況下,保留區(qū)會(huì)被重寫?
在STEP 7的硬件組態(tài)中,可以把幾個(gè)操作數(shù)區(qū)定義為“保留區(qū)”。這樣可以在掉電以后,即使沒有備份電池的話,仍能保持這些區(qū)域中的內(nèi)容。如果定義一個(gè)塊為 “保留塊”,而它在 CPU 中不存在或只是臨時(shí)安裝過,那么這些區(qū)域的部分內(nèi)容會(huì)被重寫。在電源接通/斷開之后,其他內(nèi)容會(huì)在相關(guān)區(qū)里找到。
26:為何不能把閃存卡的內(nèi)容加載入S7 300 CPU?
你的項(xiàng)目在閃存卡上。現(xiàn)在要用它加載 S7-300西門子PLC 。但加載結(jié)束后發(fā)現(xiàn) CPU 的 RAM 中仍是空的。 出現(xiàn)此問題的原因是你的程序里有無法處理的,"錯(cuò)誤的"組織塊(比如說, OB86 沒有 DP 接口)。 在重新設(shè)置和重新啟動(dòng) CPU 后, RAM 仍是空的。 診斷緩沖區(qū)對(duì)這個(gè)"無法加載"的塊會(huì)提示一些信息。
27:當(dāng)把 CPU315-2DP 作為從站,把 CPU315-2DP 作為主站時(shí)的診斷地址
在組態(tài)一個(gè) CPU315-2DP 站時(shí),你使用 S7 工具 “H/W CONFIG” 來分配診斷地址。如果發(fā)生一個(gè)故障,這些診斷地址被加入診斷 OB 的變量 “OB82_MDL_ADDR” 里。 你可在 OB82 里分析此變量,確定有故障的站并作出相應(yīng)的反應(yīng)。
下面是如何分配診斷地址的例子:
第 1 步: 通過 CPU315-2DP 組態(tài)從站并賦予一個(gè)診斷地址,比如 422。
第 2 步: 通過 CPU315-2DP 組態(tài)主站
第 3 步: 把組態(tài)好的從站鏈接到主站并賦予一個(gè)診斷地址,比如 1022。
28:需要為S7-300 CPU的DP從站接口作何種設(shè)置,才可以使用它來進(jìn)行路由選擇?
如果使用CPU作為I-Slave,并且該CPU也起S7 路由器的作用,那么請(qǐng)注意如下事項(xiàng):
用于路由選擇的從站的DP接口必須設(shè)置為活動(dòng)狀態(tài)。這可以在HW Config中完成:在DP接口的屬性對(duì)話框中,選項(xiàng)" Commissioning/Test operation"或"Programming, status/modify..."必須激活。關(guān)于這些設(shè)置的注意事項(xiàng)可以在下表中獲得。
對(duì)于S7 路由連接,有 4 種可用的連接資源-與其它任何連接資源無關(guān)。沒有使用PG/OP的連接資源或S7基本通信。
如果必須通過DP接口來建立一個(gè)與位于其機(jī)架上的通信伙伴連接時(shí)(如在 CP 343-1 中),也要使用一個(gè)路由連接。而對(duì)于通過MPI接口與一個(gè)位于其機(jī)架上的通信伙伴的連接,則不使用路由連接資源,因?yàn)樵谶@種情況下,能夠直接到達(dá)伙伴。注意事項(xiàng):這不適用于CPU 318。
29:為什么當(dāng)使用S7-300 CPU的內(nèi)部運(yùn)行時(shí)間表時(shí),沒有任何返回值?
當(dāng)對(duì)CPU 312IFM到316-2DP參數(shù)化系統(tǒng)功能塊 SFC2, SFC3 和 SFC4 時(shí),為一個(gè)運(yùn)行時(shí)間表規(guī)定了一個(gè)大于 "B#16#0"的標(biāo)識(shí)符,那么將出錯(cuò)并且所需的功能也無法用。 此種情況下,將在塊的" RETVAL"輸出處輸出標(biāo)識(shí)符 "8080h" 。
說明:對(duì)于這些 CPU,只有一個(gè)計(jì)時(shí)器可用。因此你應(yīng)該只用標(biāo)識(shí)符 "B#16#0"。 在一個(gè)周期塊(OB1, OB35)里一定不能調(diào)用系統(tǒng)功能 SFC2 "SET_RTM",而是應(yīng)該在重啟動(dòng)OB(OB100)調(diào)用它。你也可以通過外部觸發(fā)器來啟動(dòng)該塊。不然的話,該塊將老是復(fù)位運(yùn)行計(jì)時(shí)表,永遠(yuǎn)完成不了計(jì)數(shù)。
30:變量是如何儲(chǔ)存在臨時(shí)局部數(shù)據(jù)中的?
L 堆棧永遠(yuǎn)以地址“0”開始。 在 L 堆棧中,會(huì)為每個(gè)數(shù)據(jù)塊保留相同個(gè)數(shù)的字節(jié),作為存放每個(gè)塊所擁有的靜態(tài)或局部數(shù)據(jù)。
當(dāng)某個(gè)塊終止時(shí),那么它的空間隨之也被重新釋放出來。 指針總是指向當(dāng)前打開塊的第一個(gè)字節(jié)。