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