6ES7 952-1KL00-0西門子內(nèi)存卡6ES7 952-1KL00-0AA0
參考價(jià): | 面議 |
- 6GK1 905-0AB10 產(chǎn)品型號(hào)
- 西門子/SIEMENS 品牌
- 經(jīng)銷商 廠商性質(zhì)
- 上海市 所在地
訪問次數(shù):174更新時(shí)間:2018-03-06 17:03:23
問題描述:
當(dāng)高性能電容的時(shí)間(根據(jù) CPU 類型不同而不同)用完,或者電池模塊過期(200天),修改過的參數(shù)就會(huì)丟失。使用以下程序庫所提供的子程序,可以在 CPU 中的內(nèi)部 EEPROM 中保存完整的變量區(qū)域,在運(yùn)行期內(nèi)該區(qū)域是不易失的(在系統(tǒng)手冊(cè)中僅說明了保存單個(gè)變量)。
軟件要求:
此操作程序庫使用需要 STEP 7 Micro/WIN V4.0 SP7 或者更高的版本 。
警告:
當(dāng) CPU 啟動(dòng)時(shí),包含 DB (數(shù)據(jù)塊)的存儲(chǔ)卡不可以被插入。如果包含 DB 的存儲(chǔ)卡被插入,CPU 會(huì)讀出存儲(chǔ)卡的內(nèi)容而不是去讀內(nèi)部 EEPROM,同時(shí)存儲(chǔ)數(shù)據(jù)被錯(cuò)誤的寫回。
合并和使用庫:
- 將下載的文件“store_to_eeprom.zip”保存在電腦上。
- 在獨(dú)立的目錄下解壓文件“store_to_eeprom.zip”。
- 雙擊開始解壓的 STEP 7 Micro/WIN 庫 “store_to_eeprom.mwl”。
- 在 STEP 7-Micro/WIN 對(duì)話欄中打開確認(rèn)集成的庫。
增加的 “EEPROM (v1.0)”文件夾中包含了子程序“EEPROM_Direct"”和 “EEPROM_Indirect”。
圖:01
使用子程序:
- 在網(wǎng)絡(luò)中從文件夾“EEPROM (v1.0)”插入所需要的子程序。
- 根據(jù)例程中的參數(shù)列表給所選子程序分配輸入輸出參數(shù)。
使用適當(dāng)?shù)倪壿嬤B接,以確保在執(zhí)行期間程序執(zhí)行觸發(fā)輸入位“Start”保持為1 (高)。
更多的信息也可以在子程序的注釋中得到。.
注意:
不能以很高的頻率在 EEPROM 上保存數(shù)據(jù)。EEPROM 典型的存儲(chǔ)次數(shù)為100,000次。如果超過這個(gè)值,CPU 將發(fā)生故障。 如果按小時(shí)在 EEPROM 上保存數(shù)值,那么 EEPROM 的預(yù)計(jì)使用壽命是 11 到 12 年。
起始地址為直接尋址“EEPROM_direct"”例程:
圖: 02
參數(shù) | 變量類型 | 說明 |
EN | BOOL | 必須始終為1(高) |
Start | BOOL | 上升沿 (0 ->1)觸發(fā)程序運(yùn)行;必須保持1 (高) 直到 BUSY 位變成 0 (低)。 |
V_Start | INT | 偏移量(起始地址)。例如,200=VB 200 |
Length | INT | 從偏移量(起始地址)開始待保存的字節(jié)數(shù) |
Memory | INT | 用于子程序的臨時(shí)存儲(chǔ)區(qū) |
Busy | BOOL | 過程狀態(tài) 1 (高),程序在運(yùn)行中 |
Done | BOOL | 結(jié)束狀態(tài) 1 (高),成功完成保存 |
表: 01
起始地址為間接尋址“EEPROM_indirect”例程:
圖: 03
參數(shù) | 變量類型 | 說明 |
EN | BOOL | 必須始終為1(高) |
Start | BOOL | 上升沿 (0 ->1)觸發(fā)程序運(yùn)行;必須保持1 (高) 直到 BUSY 位變成 0 (低)。 |
Address | DWORD | 起始地址偏移量(起始地址以DWORD類型變量讀入) |
Length | INT | 從偏移量(起始地址)開始待保存的字節(jié)數(shù)目 |
Memory | INT | 用于子程序的臨時(shí)存儲(chǔ) |
Busy | BOOL | 過程狀態(tài) 1 (高),程序在運(yùn)行中 |
Done | BOOL | 結(jié)束狀態(tài) 1 (高),成功完成保存 |
表:02
程序測(cè)試:
程序運(yùn)行后, 刪除可保持的 V 變量并將存儲(chǔ)的數(shù)據(jù)裝載回 CPU。
序號(hào). | 解釋 | |||||||||||||||||||||||||||||||||
1 | 刪除數(shù)據(jù): 由路徑“View > Component > System Block"”到“System Block"”選擇“Retentive Ranges”表。
選擇數(shù)據(jù)范圍,輸入起始地址和范圍。點(diǎn)擊“Clear”按鈕。 例程如下圖顯示: 西門子SIMATIC S7系列串行通信模塊,包括CP340、CP341、CP440-1、CP441-1/2、CPU313C/314C-2PtP以及ET200S的1SI 3964/ASCII等,都支持ASCII驅(qū)動(dòng)協(xié)議的通信,可以廣泛地用于與第三方支持ASCII協(xié)議的儀表、設(shè)備、系統(tǒng)等進(jìn)行點(diǎn)對(duì)點(diǎn)連接通信,具有應(yīng)用簡單、靈活,使用方便等優(yōu)點(diǎn)。 本文通過一個(gè)具體的示例,給出了在多個(gè)西門子串口通信模塊(CP340/CP341)之間通過ASCII驅(qū)動(dòng)協(xié)議進(jìn)行輪詢通信的應(yīng)用。其具體的實(shí)現(xiàn)方法和輪詢?cè)砭哂衅毡榈闹笇?dǎo)意義,可以作為串行通信模塊與支持ASCII協(xié)議的儀表、設(shè)備、系統(tǒng)等進(jìn)行串行通信的參考。 1 網(wǎng)絡(luò)搭建和硬件組態(tài) 1.1 網(wǎng)絡(luò)搭建 1.1.1 系統(tǒng)組成 如下圖1所示,系統(tǒng)包括3個(gè)SIMATIC S7-300站,其中一個(gè)作為串行通信的主站,通過ASCII驅(qū)動(dòng)協(xié)議輪詢采集另外兩個(gè)從站的數(shù)據(jù)。系統(tǒng)主站和1#從站各配置了一個(gè)串行通信模塊CP341(6ES7341-1CH01-0AE0)(RS422/485接口),2#從站配置了一個(gè)串行通信模塊CP340(6ES7340-1AH02-0AE0)(RS232C接口),為了將它們連接到一個(gè)網(wǎng)絡(luò)中,在本例中選擇了的PC/PPI電纜(6ES7901-3CB30-0XA0)將2#從站的RS232C接口轉(zhuǎn)換為RS485接口連接到網(wǎng)絡(luò)中。
系統(tǒng)涉及的主要硬件設(shè)備及版本信息如表1
表1 系統(tǒng)主要硬件設(shè)備及版本信息 1.1.2 軟件環(huán)境 Ø 操作系統(tǒng):Windows XP Professional SP2; Ø 編程軟件:STEP7 V5.4 SP4; Ø PTP協(xié)議軟件包:SIMATIC S7-CP PtP Param V5.1+SP11 下載鏈接:/cs/document/27013524?caller=view&lc=zh-CN。
1.1.3 電纜和硬件連接 根據(jù)具體情況可以自己制作通信電纜,也可以選擇提供的定制電纜。在通信距離可以滿足要求的情況下,建議選擇提供的串行通信電纜,電纜訂貨號(hào)如表2。
詳細(xì)的硬件連接如圖2所示。
1.2 參數(shù)分配 1.2.1 組態(tài)主站
Ø CP341模塊起始地址256,ASCII協(xié)議模式; Ø 消息幀結(jié)束標(biāo)準(zhǔn):字符延遲時(shí)間4ms; Ø 波特率:9600bps,8位數(shù)據(jù)位,1位停止位,無校驗(yàn); Ø 接口類型:RS485半雙工; Ø 其他采用默認(rèn)值。
1.2.2 組態(tài)從站 對(duì)于從站CP341/CP340模塊的參數(shù)分配與主站保持*,特別注意波特率、數(shù)據(jù)位、停止位和奇偶校驗(yàn)位設(shè)置要與主站相同。 說明:詳細(xì)的接口參數(shù)設(shè)置請(qǐng)參考CP341/CP340手冊(cè)及相關(guān)文檔。 下載鏈接:http://www.ad.siemens.com.cn/download/
2 輪詢?cè)?/span> 2.1原理說明 與MODBUS協(xié)議輪詢不同,由于每個(gè)從站自身不具有*的設(shè)備標(biāo)識(shí)信息(從站地址),無法直接區(qū)分和識(shí)別網(wǎng)絡(luò)上的數(shù)據(jù)幀是哪個(gè)站的、需要哪個(gè)站做出響應(yīng),所以要通過ASCII協(xié)議驅(qū)動(dòng)實(shí)現(xiàn)多站點(diǎn)輪詢,需要人為地對(duì)每個(gè)站做出標(biāo)識(shí),并在主站發(fā)送輪詢指令時(shí)給出相應(yīng)的指令標(biāo)識(shí),以便從站能夠識(shí)別是否是發(fā)送給自己的數(shù)據(jù)以及是否做出響應(yīng)。 在ASCII協(xié)議驅(qū)動(dòng)實(shí)現(xiàn)多站點(diǎn)輪詢的過程中,應(yīng)主要考慮以下幾個(gè)方面:
Ø 基本模式:主站主動(dòng)請(qǐng)求,從站根據(jù)請(qǐng)求作出響應(yīng); Ø 數(shù)據(jù)幀:在發(fā)送或響應(yīng)數(shù)據(jù)幀中要包含有站點(diǎn)標(biāo)識(shí)的信息; Ø 實(shí)現(xiàn)方法:定時(shí)輪詢,完成后直接啟動(dòng)下一個(gè)作業(yè),完成后延時(shí)啟動(dòng)下一個(gè)作業(yè)等實(shí)現(xiàn)方法; Ø 校驗(yàn)、錯(cuò)誤處理機(jī)制:CRC、等待、丟棄、重試等。
本應(yīng)用實(shí)例在以上幾個(gè)方面都采用了相對(duì)簡單的處理方式,在實(shí)際的應(yīng)用中,針對(duì)不同的通信對(duì)象,可以具體分析并作出相應(yīng)的處理。 2.2 輪詢機(jī)制 2.2.1數(shù)據(jù)幀格式 為了區(qū)別1#從站和2#從站,在消息幀中增加一個(gè)字的地址標(biāo)識(shí)字符,主站通過發(fā)送不同地址標(biāo)識(shí)字符的幀來輪詢不同從站,同時(shí)從站根據(jù)地址字符來判斷是否是給自己的消息,并據(jù)此做出相應(yīng)的處理。從站發(fā)送給主站的響應(yīng)幀也包含有自己的地址標(biāo)識(shí)字符,用于主站判斷是哪個(gè)從站返回的數(shù)據(jù)。字符幀格式如下:
2.2.2 時(shí)序圖 如下圖所示,主站按順序輪詢1#從站和2#從站。
2.2.3 流程圖 Ø 初始化流程
初始化主要針對(duì)主站而言。在初始化階段主要完成CP模塊的參數(shù)化、初始化輪詢計(jì)數(shù)器,復(fù)位接收緩沖區(qū)以及根據(jù)輪詢計(jì)數(shù)器生成發(fā)送數(shù)據(jù)幀等方面的工作。
Ø 主站輪詢流程
如下圖所示,在系統(tǒng)初始化完成后,手動(dòng)啟動(dòng)*次輪詢作業(yè),本實(shí)例先輪詢1#從站。給1#從站發(fā)送查詢請(qǐng)求后,等待1#從站的響應(yīng),如果在的延時(shí)時(shí)間內(nèi)接收到1#從站返回的數(shù)據(jù),則給2#從站發(fā)送查詢請(qǐng)求,并等待2#從站的響應(yīng),同樣如果在的延時(shí)時(shí)間內(nèi)接收到2#從站返回的數(shù)據(jù),則一次完整的輪詢結(jié)束,自動(dòng)啟動(dòng)新一輪的輪詢。 如果在的延時(shí)時(shí)間內(nèi)不能接收到從站的返回?cái)?shù)據(jù)或接收錯(cuò)誤,則跳過本站,開始輪詢下一個(gè)站點(diǎn)。
Ø 從站響應(yīng)流程
從站根據(jù)主站的請(qǐng)求做出響應(yīng),主要是在接收到網(wǎng)絡(luò)上的數(shù)據(jù)后,判斷是否是給自己的數(shù)據(jù)。如果是,則將數(shù)據(jù)接收到的數(shù)據(jù)區(qū),同時(shí)啟動(dòng)發(fā)送功能,發(fā)送相應(yīng)的返回?cái)?shù)據(jù)給主站;如果不是,則直接刪除收到的數(shù)據(jù),并不做任何響應(yīng)。
3 程序?qū)崿F(xiàn) 接下來我們就可以根據(jù)上述輪詢思想,通過編寫STEP7程序具體實(shí)現(xiàn)主站輪詢從站的功能。由于主站、從站任務(wù)的不同,所以在程序上的實(shí)現(xiàn)上也有所不同,下面針對(duì)主站和從站的程序?qū)崿F(xiàn)做個(gè)簡要描述。具體的例程可以參考本文附帶的樣例程序。 3.1 主站程序 3.1.1 初始化 為了實(shí)現(xiàn)對(duì)多個(gè)從站的輪詢,程序構(gòu)造了一個(gè)輪詢計(jì)數(shù)器,通過修改輪詢計(jì)數(shù)器的值,來修改主站發(fā)送數(shù)據(jù)幀中的站地址標(biāo)識(shí)字符。 本例中定義MW2作為輪詢計(jì)數(shù)器,程序開始,先對(duì)輪詢計(jì)數(shù)器進(jìn)行操作,默認(rèn)先輪詢1#從站,將值1賦值給MW2。
在程序執(zhí)行過程中,會(huì)修改輪詢計(jì)數(shù)器的值,通過判斷輪詢計(jì)數(shù)器的值對(duì)發(fā)送數(shù)據(jù)塊的地址標(biāo)識(shí)符字作相應(yīng)的修改,以完成對(duì)響應(yīng)從站的輪詢。本例中具體的實(shí)現(xiàn)如下圖,其中DB13作為發(fā)送數(shù)據(jù)塊,DB13.DBW0為地址標(biāo)識(shí)符字。
3.1.2 啟動(dòng)發(fā)送 初始化完成后,可以啟動(dòng)發(fā)送功能。本例*次發(fā)送采用手動(dòng)方式,通過觸發(fā)手動(dòng)啟動(dòng)標(biāo)志位M30.1,并調(diào)用FB8 P_SND_RK發(fā)送數(shù)據(jù)到從站。完成*次發(fā)送后,可以通過程序自動(dòng)修改自動(dòng)輪詢標(biāo)志位M30.0來實(shí)現(xiàn)自動(dòng)發(fā)送數(shù)據(jù)到從站的功能,具體的FB8 P_SND_RK功能塊使用參考CP341手冊(cè)。 啟動(dòng)發(fā)送功能塊FB8后,通過FB8返回狀態(tài)信息,判斷是否發(fā)送完成,如果發(fā)送錯(cuò)誤,則重新啟動(dòng)發(fā)送功能。 Ø 發(fā)送完成:啟動(dòng)接收作業(yè),準(zhǔn)備接收從站返回?cái)?shù)據(jù)。同時(shí)啟動(dòng)一個(gè)超時(shí)定時(shí)器T11,如果超時(shí)定時(shí)時(shí)間到,還沒有接收到數(shù)據(jù),則放棄等待,開始輪詢下一個(gè)站。
3.1.3 接收從站返回?cái)?shù)據(jù) 發(fā)送完成后,啟動(dòng)接收作業(yè),準(zhǔn)備接收從站返回?cái)?shù)據(jù),并將接收到的數(shù)據(jù)先放到接收緩沖區(qū)中,本例DB14數(shù)據(jù)塊為接收緩沖區(qū)。
3.1.4 接收完成 接收完成后,做如下幾方面處理。如果接收錯(cuò)誤或超時(shí),則跳過此站的輪詢。 Ø 根據(jù)接收到數(shù)據(jù)的地址標(biāo)識(shí)符判斷是來自哪個(gè)從站的數(shù)據(jù),并將數(shù)據(jù)從接收緩沖區(qū)轉(zhuǎn)移到的從站數(shù)據(jù)存儲(chǔ)區(qū)中,同時(shí)清空接收緩沖區(qū); Ø 復(fù)位接收標(biāo)志,同時(shí)修改輪詢計(jì)數(shù)器的值,準(zhǔn)備輪詢下一個(gè)從站; Ø 復(fù)位超時(shí)定時(shí)器; Ø 啟動(dòng)一個(gè)延時(shí)定時(shí)器,延時(shí)時(shí)間到后開始輪詢下一個(gè)從站。
3.2 從站程序 相對(duì)于主站,從站的處理程序相對(duì)簡單。下面以2#從站為例做個(gè)說明,1#從站除了調(diào)用FB不同外,都與2#從站相同。 3.2.1 接收數(shù)據(jù) 從站一直啟動(dòng)接收功能FB2 P_RCV,接收來自網(wǎng)絡(luò)上的數(shù)據(jù),如果接收到數(shù)據(jù)則根據(jù)地址標(biāo)識(shí)符判斷是否是本站的數(shù)據(jù):
Ø 是本站數(shù)據(jù),則將接收緩沖區(qū)(DB17)中的數(shù)據(jù)移到的地址區(qū)(DB18)中,并清空接收緩沖區(qū)。同時(shí),觸發(fā)發(fā)送標(biāo)志,發(fā)送返回?cái)?shù)據(jù)給主站; Ø 不是本站數(shù)據(jù),直接清空接收緩沖區(qū)(DB17)。
3.2.1 發(fā)送返回?cái)?shù)據(jù) 接收完成后,調(diào)用發(fā)送功能,將DB19的數(shù)據(jù)發(fā)送給主站。
3.3 實(shí)驗(yàn)結(jié)果 搭建好網(wǎng)絡(luò),并將程序分別下載到各自的CPU中,啟動(dòng)CPU的運(yùn)行。通過置位手動(dòng)啟動(dòng)輪詢標(biāo)志位M30.0即可啟動(dòng)輪詢程序的運(yùn)行。通過變量表可以監(jiān)視到系統(tǒng)的運(yùn)行情況,可以看到,主站會(huì)循環(huán)地將數(shù)據(jù)發(fā)送到兩個(gè)從站,同時(shí)也循環(huán)地接收來自從站的返回?cái)?shù)據(jù),如下圖所示。
ASCII_Polling.zip (302 KB) ( 302 KB )
4 應(yīng)用小結(jié) 通過本應(yīng)用實(shí)例,可以看到基于ASCII驅(qū)動(dòng)協(xié)議的多站點(diǎn)輪詢?cè)肀容^簡單。同時(shí)因?yàn)槠漭^大的靈活性,所以可以與各種滿足ASCII協(xié)議的設(shè)備進(jìn)行通信。串行通信模塊CP340、CP341、CP440-1、CP441-1/2、CPU313C/314C-2PtP以及ET200S的1SI 3964/ASCII等都集成有ASCII驅(qū)動(dòng)協(xié)議功能,可以根據(jù)需求靈活地選擇這些產(chǎn)品。 本文所述應(yīng)用和提供例程只作為相關(guān)應(yīng)用的參考,在實(shí)際的應(yīng)用中,應(yīng)該充分考慮通信伙伴的特點(diǎn)和實(shí)際需求,結(jié)合不同的輪詢方式、錯(cuò)誤處理機(jī)制、校驗(yàn)方法、數(shù)據(jù)處理方法等手段達(dá)到通信目的。 鄭重聲明:本文的虛擬工程與真實(shí)工程實(shí)例有重大差別,示例中并未遵循規(guī)范的工程設(shè)計(jì)流程進(jìn)行編程,請(qǐng)讀者切勿將其與工程實(shí)例相混淆;由于此例子是免費(fèi)的,任何用戶可以免費(fèi)復(fù)制或傳播此程序例子。程序的作者對(duì)此程序不承擔(dān)任何功能性或兼容性的責(zé)任,使用者風(fēng)險(xiǎn)自負(fù);不提供此程序例子的錯(cuò)誤更改或者支持;為了更好的使用這些模板,建議用戶仔細(xì)閱讀相關(guān)模板的使用手冊(cè)。 |