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