西門子編程電纜:6ES7972-0CB20-0XA0
上海翰粵是西門子工控及自動化產(chǎn)品*分銷商咨詢!
:鄭轅鴻(銷售工程師)
:
(): 傳真():
:zx2013888 :www.hanyue.cc
:
MM420與S7-300進(jìn)行DP通訊時顯示A0702報警
大家好,我是西門子工業(yè)業(yè)務(wù)領(lǐng)域工業(yè)自動化集團/驅(qū)動技術(shù)集團/樓宇科技集團的一名工程師,負(fù)責(zé)驅(qū)動產(chǎn)品,主要解決和驅(qū)動產(chǎn)品相關(guān)的選型、調(diào)試、應(yīng)用等問題。
今天說一個遇到的問題,與大家分享:
客戶現(xiàn)場應(yīng)用S7300通過DP與多臺MM440及一臺MM420通訊,所有MM440變頻器通訊正常,但是MM420的DP通訊板桔黃燈亮,面板顯示A0702報警?
根據(jù)客戶描述的現(xiàn)象,說明MM420與DP板之間的連接正常,但DP主站與變頻器之間通訊中斷,問題在變頻器及通訊板外側(cè),一開始建議檢查DP插頭及DP電纜是否異常,客戶成套更換了MM40與MM420之間DP通訊板及連接電纜,結(jié)果現(xiàn)象相同,即MM440變頻器通訊正常,MM420仍然報警。同時檢查參數(shù)R2054.0(CB診斷)顯示值為2,即通訊波特率識別正常,沒有報文交換。說明主從之間連接正常,問題出在主站組態(tài)及報文發(fā)送上,與客戶通過后檢查發(fā)現(xiàn)PLC組態(tài)變頻器時選擇的報文類型為PPO4,而通訊手冊規(guī)定的MM420通訊報文類型只能是PPO1和PPO3,不支持PPO4類型。見下表:
客戶重新組態(tài)MM420變頻器后通訊正常。
通常情況下我們?nèi)菀渍J(rèn)為MM420/MM430/MM440的DP通訊是一樣的,經(jīng)常使用的報文類型類型為PPO1或PPO3,所以在組態(tài)時按照同樣的從站報文設(shè)定,容易忽略二者之間的區(qū)別。
?
西門子編程電纜訂貨號:6GK1571-0BA00-0AA0
DB塊那些事
響起,一天工作開始。
C:我300PLC內(nèi)共享DB塊內(nèi)存的參數(shù)不能保持,CPU下電后再上電,所有保存的參數(shù)都變成零了? E:請問您共享DB塊的初始值是零嗎?
C:我沒改過,都是默認(rèn)的。
E:那您有沒有使能“Non Retain”屬性?
C:我沒改過,都是默認(rèn)的,那些對勾我都沒打。
E:(心理活動,應(yīng)該是程序的問題,可能是程序有地方啟動時給這里寫零。)那您這個問題可能是程序有地方給這里寫零造成的,您檢查過程序嗎?
C:檢查過,沒發(fā)現(xiàn)問題。程序是兩年前做的,一直都沒問題的,就是昨天檢修后突然不行了。
E:(心理活動,檢修后行的話,有可能是MMC卡取下來后CPU上電了。)那您CPU 的存儲卡您取下來過嗎?
C:取下來過,然后將另外一個MMC卡插入這個CPU內(nèi)下載程序了。下載后又把原先的卡插進(jìn)來了,啟動后就發(fā)現(xiàn)原來調(diào)試的幾個參數(shù)沒有了。
E:這是正常的,如果CPU在取下存儲卡后單獨上電,然后下電,然后再插存儲卡,DB塊通過MMC卡保持的數(shù)據(jù)會丟失的。
C:那如果我調(diào)試好的參數(shù)需要保持住應(yīng)該怎么辦?
E:您可以考慮初始值,將您調(diào)試好的數(shù)據(jù)放入DB塊的初始值;或者您可以考慮更改離線的實際值。這樣數(shù)據(jù)就不會丟,隨程序保存。
C:那我試下
二次響起
C:我DB塊的初始值不起作用,現(xiàn)在數(shù)值還全是0。
E:那您是在聲明視圖修改完初始值,然后保存下載的吧?
C:是的。我下載完后直接監(jiān)視,實際值都是0。
E:那您需要對DB塊執(zhí)行初始化,初始化之后,所有的初始值變成離線的實際值。然后再下載,然后程序在線的實際值就是您設(shè)定的初始值了。
C:DB數(shù)值這么多事兒,聽起來有點糾結(jié)。那怎么進(jìn)行初始化操作呢?
E:將DB塊切換到數(shù)據(jù)視圖,然后在編輯菜單下選擇初始化數(shù)據(jù)塊項,然后點保存,然后下載。
C:新數(shù)值已經(jīng)起作用了,非常感謝!
Case結(jié)束。
DB塊數(shù)值涉及的內(nèi)容有:初始值、離線項目的實際值、在線項目的實際值、帶@的實際值,部分客戶由于不清楚之間的關(guān)系或者不熟悉其作用,造成調(diào)試過程中很多問題。跟大家分享下我對這些問題的見解。
關(guān)于共享數(shù)據(jù)塊:
共享數(shù)據(jù)塊不能分配給邏輯塊。它包含設(shè)備或機器所需的值,并且可以在程序中的任何位置直接調(diào)用。
初始值:如果不希望軟件使用所輸入數(shù)據(jù)類型的默認(rèn)值,那么可以在此輸入初始值。 當(dāng)*保存塊時,如果沒有明確定義變量的實際值,那么,初始值將作為當(dāng)前值使用(需要注意的是DB塊的*個字節(jié)已經(jīng)被STEP7定義為INT型變量DB_VAR,且其離線實際值為0,所以造成很多客戶困惑在聲明視圖建立很多INT變量,下載后在線監(jiān)視*個值為0其他的都和初始值*見圖1、圖2、圖3。解決該問題,只需要將DB初始化后下載)。初始值通過離線實際值作用于CPU,初始值并不直接作用于CPU。
圖1:在聲明視圖內(nèi)定義變量
圖2:在數(shù)據(jù)視圖內(nèi)查看變量
圖3:監(jiān)視DB塊的在線值
離線實際值:打開數(shù)據(jù)塊時的變量值,或上一次修改、保存過的變量值。
在線實際值:打開數(shù)據(jù)塊時的當(dāng)前值。需要注意僅當(dāng)前值才可以下載給 CPU。
關(guān)于背景數(shù)據(jù)塊:
背景數(shù)據(jù)塊是直接分配給邏輯塊的數(shù)據(jù)塊,如功能塊。背景數(shù)據(jù)塊包含存儲在變量聲明表中的功能塊的數(shù)據(jù)。對于不是全局共享的數(shù)據(jù)塊,不能改變聲明視圖。
初始值:背景數(shù)據(jù)塊的初始值,不能在DB快的聲明視圖內(nèi)設(shè)定,只能在定UDT或者FB的輸入?yún)?shù)(IN) 、 輸出參數(shù)(OUT) 、 輸入/輸出參數(shù)(IN_OUT) 、靜態(tài)數(shù)據(jù)(STAT)時定義。
圖4:UDT內(nèi)定義背景塊的初始值
圖5:FB內(nèi)定義背景塊的初始值
離線實際值:打開數(shù)據(jù)塊時的變量值,或上一次修改、保存過的變量值。在給FB或者UDT背景數(shù)據(jù)塊時,如果沒有在數(shù)據(jù)試圖內(nèi)分配離線實際值,則FB或者UDT的初始值保存為背景數(shù)據(jù)塊的離線實際值。
在線實際值:保存下載背景塊時的離線實際值,并在下載時將該值作為DB塊的當(dāng)前值,即:帶@的實際值。監(jiān)視背景塊時,可以修改在線實際值,然后通過參數(shù)分配按鈕,可以在不下載背景塊的情況下修改DB塊的當(dāng)前值(該按鈕僅FB的背景塊和DB塊類型為UDT時有,DB塊作為共享數(shù)據(jù)塊,變量類型為UDT時沒有該功能)。
圖6:FB背景塊的分配參數(shù)按鈕
帶@的實際值:FB背景數(shù)據(jù)塊的當(dāng)前值,參與PLC運算,不能更改,只能通過修改實際值更改。如果需要將帶@的實際值恢復(fù)為FB或者UDT定義的初始值,可以在線監(jiān)視時執(zhí)行編輯菜單下的初始化數(shù)據(jù)塊功能(該按鈕僅FB的背景塊和DB塊類型為UDT時有,DB塊作為共享數(shù)據(jù)塊,變量類型為UDT時沒有該功能)。
DB塊并不“糾結(jié)” ,不清楚或者不熟悉各個值之間關(guān)系才會感覺混亂。正所謂“工欲善其事,必先利其器”,編程調(diào)試前只要履清楚各個值之間的關(guān)系,必能編程調(diào)試時得心應(yīng)手,事半功倍。