產(chǎn)品詳情
長沙玥勵 西門子 6ES7232-4HD32-0XB0 模塊 PLC
S7-1200 存儲卡使用
-
文檔
-
涉及產(chǎn)品
S7-1200 存儲卡使用
1 S7-1200 存儲卡介紹
S7-1200 CPU 使用的存儲卡為 SD 卡,存儲卡中可以存儲用戶項目文件,有如下四種功能:
- 作為 CPU 的裝載存儲區(qū),用戶項目文件可以僅存儲在卡中,CPU 中沒有項目文件,離開存儲卡無法運(yùn)行。
- 在有編程器的情況下,作為向多個S7-1200PLC 傳送項目文件的介質(zhì)。
- 忘記密碼時,清除 CPU 內(nèi)部的項目文件和密碼。
- 24M卡可以用于更新S7-1200CPU 的固件版本。
圖. 1: S7-1200 存儲卡
怎樣插入存儲卡:
將CPU上擋板向下掀開,可以看到右上角有一 MC 卡槽,將存儲卡缺口向上插入,如下圖所示:
圖. 2: 插入存儲卡
注意
-
對于 S7-1200 CPU ,存儲卡不是必須的。
-
將存儲卡插到一個運(yùn)行狀態(tài)的 CPU 上,會造成 CPU 停機(jī)。
-
S7-1200 CPU 僅支持由西門子制造商預(yù)先格式化過的存儲卡, 存儲卡訂貨號如下表所示:
訂貨 |
容量 |
6ES7 954-8LF01-0AA0 | 24MB |
6ES7954-8LC01-0AA0 | 4MB |
6ES7 954-8LB01-0AA0 | 2MB |
-
如果使用 Windows 格式化程序?qū)?SIMATIC 存儲卡重新進(jìn)行格式化,CPU 將無法使用該重新格式化的存儲卡。
-
目前,S7-1200 仍不能使用存儲卡實現(xiàn)配方和數(shù)據(jù)歸檔這樣的高級功能。
2 存儲卡的工作模式
存儲卡有兩種工作模式:
- 程序卡:存儲卡作為S7-1200 CPU 的裝載存儲區(qū),所有程序和數(shù)據(jù)存儲在卡中,CPU 內(nèi)部集成的存儲區(qū)中沒有項目文件,設(shè)備運(yùn)行中存儲卡不能被拔出 。
- 傳輸卡:用于從存儲卡向 CPU 傳送項目,傳送完成后必須將存儲卡拔出。CPU 可以離開存儲卡獨(dú)立運(yùn)行。
修改存儲卡的工作模式:
在STEP 7 Basic 軟件的項目視圖下,點(diǎn)擊左側(cè)"項目視圖“--->"SIMATIC Card Reader" --->您的讀卡器型號,如下圖所示:
圖. 3: 項目視圖
右擊存儲卡的盤符(這里是F:),選擇“屬性”按鈕,打開下面窗口:
圖. 4: 存儲卡屬性
用戶在“存儲卡類型”中選擇需要的工作模式,點(diǎn)擊“確認(rèn)”完成設(shè)定。
3 程序卡的不同模式
優(yōu)點(diǎn):更換 CPU 時不需要重新下載項目文件。
3.1 上載用戶文件到存儲卡
- 第一步: 按照上面方法將存儲卡設(shè)定到“編程”模式。建議客戶做此操作之前清除存儲卡中的所有文件。
- 第二步: 設(shè)置 CPU 的啟動狀態(tài)。在"項目樹"中右擊 CPU 選擇“屬性”,在“屬性”窗口中點(diǎn)擊“啟動”,此處我們必須選擇“暖啟動-RUN 模式”。
圖. 5: 啟動
- 第三步: 將 CPU 斷電
- 第四步: 將存儲卡插到 CPU 卡槽內(nèi)
- 第五步: 將 CPU 上電
- 第六步: 在 STEP 7 Basic 中點(diǎn)擊下載,將項目文件全部下載到存儲卡中。此時下載是將項目文件(包括用戶程序、硬件組態(tài)和強(qiáng)制值)下載到存儲卡中,而不是 CPU 內(nèi)部集成的存儲區(qū)中。
完成上述步驟后,CPU可以帶卡正常運(yùn)行。此時如果將存儲卡拔出,CPU 會報錯,"ERROR"紅燈閃爍。
3.2 常見問題
FAQ 1
為什么插上存儲卡后 CPU 的“MAINT”燈閃爍,使用STEP 7 Basic下載時提示報錯“The download of the hardware configuration failed (0050 -133 2 2458)”?
回答
請清除存儲卡中的所有文件,重新使用STEP7 Basic軟件將存儲卡設(shè)置到“編程”模式,然后再重復(fù)上述步驟。請您也檢查存儲卡上的撥碼開關(guān),檢查存儲卡是否處于寫保護(hù)模式。
FAQ2
為什么CPU斷電上電后進(jìn)入停止?fàn)顟B(tài),而不進(jìn)入運(yùn)行狀態(tài)?
回答
原因是 CPU 的啟動方式不是“暖啟動-RUN 模式”,詳細(xì)請參考上面“第二步”。
4 使用傳輸卡模式
優(yōu)點(diǎn): 編程器存在的情況下,傳輸卡可以向多個S7-1200 PLC 復(fù)制項目文件。
4.1 向處于傳輸模式的存儲卡中裝載項目
- 第一步: 按照上面方法將存儲卡設(shè)定到“ 傳輸”模式。建議客戶做此操作之前清除存儲卡中的所有文件。
- 第二步: 設(shè)置 CPU 的啟動狀態(tài):在"Project tree"中右擊 CPU 選擇“屬性”,在“屬性”窗口中點(diǎn)擊“啟動”,此處我們必須選擇“暖啟動-RUN 模式”。
- 第三步: 直接拖拽 PLC 設(shè)備到存儲卡盤符
圖. 6: 拖拽
用戶也可以直接將一張已經(jīng)做好的“程序卡”更改為“傳輸卡” 。
4.2 從存儲卡復(fù)制項目到 S7-1200 PLC
- 第一步: 將 CPU 斷電
- 第二步: 插卡到 CPU 卡槽
- 第三步: 將 CPU 上電,用戶會看到 CPU 的"MAINT"黃燈閃爍
- 第四步: 將 CPU 斷電,將存儲卡拔出
- 第五步: 將 CPU 上電
FAQ
為什么 CPU 斷電上電后進(jìn)入停止?fàn)顟B(tài),而不進(jìn)入運(yùn)行狀態(tài)?
回答
- CPU 的啟動方式不是“暖啟動-RUN 模式”,詳細(xì)請參考上面“第二步”。
- 檢查第三步,必須拖拽 PLC 項目到存儲卡盤符,而不只是程序塊等其他項目內(nèi)容。下載到存儲卡中的項目文件有可能不完整,例如缺失硬件組態(tài)等。
5 使用存儲卡清除密碼
如果客戶忘記了之前設(shè)定的 S7-1200 的密碼,通過”恢復(fù)出廠設(shè)置“無法清除 S7-1200 內(nèi)部的程序和密碼,使用存儲卡是清除密碼的唯一方法。詳細(xì)步驟如下:
- 將 S7-1200 設(shè)備斷電
- 插入一張存儲卡到 S7-1200 CPU 上,存儲卡中的程序不能有密碼保護(hù)
- 將 S7-1200 設(shè)備上電
S7-1200 CPU 上電后,會將存儲卡中的程序復(fù)制到內(nèi)部的 FLASH 寄存器中,即執(zhí)行清除密碼操作。
客 戶也可以用相同的方法插入一張全新的或者空白的存儲卡到 S7-1200 CPU,設(shè)備上電后,S7-1200 CPU 會將內(nèi)部存儲區(qū)的程序轉(zhuǎn)移到存儲卡中,拔下存儲卡后,S7-1200 CPU 內(nèi)部將不在有用戶程序,即實現(xiàn)了清除密碼。存儲卡中的內(nèi)容可以使用讀卡器清除。
注意: 不要格式化存儲卡。
6 使用24M存儲卡更新 S7-1200 CPU 的固件版本
S7-1200 的固件版本可以從西門子官方網(wǎng)站下載: http://support.automation.siemens.com/WW/view/en.。用戶可以使用西門子網(wǎng)站右上方的搜索引擎在“Download”分類中搜索“S7-1200 firmware”。
注意
- 不同訂貨號的S7-1200 CPU 的固件文件不相同,下載地址也不相同。用戶在下載和更新固件之前請核對產(chǎn)品訂貨號。
- 2M存儲卡不能用于 CPU 固件升級。
- 固件升級前 CPU 內(nèi)部存儲的項目文件(程序塊、硬件組態(tài)等)不受影響,不會被清除。
- 如果存儲卡中的固件文件訂貨號與實際 CPU 的訂貨號不一致,即使執(zhí)行了下列步驟,CPU的原固件版本也不會改變。
更新 CPU 的固件版本具體步驟如下:
- 第一步: 使用電腦通過讀卡器清除存儲卡中內(nèi)容。注意:不要格式化存儲卡!
- 第二步: 從西門子官方網(wǎng)站下載最新版本的固件文件。下載并解壓縮,用戶可以得到一個“S7_JOB.SYS”文件和“FWUOPDATE.S7S”文件夾。
- 第三步: 將“S7_JOB.SYS”文件和“FWUOPDATE.S7S”文件夾拷貝到存儲卡中。
- 第四步: 將存儲卡插到 CPU 1200 卡槽中。此時CPU會停止,“MAINT”指示燈閃爍。
- 第五步: 將 CPU 斷電上電 。CPU的“RUN/STOP” 指示燈黃綠交替閃爍說明固件正在被更新中。如果“RUN/STOP” 指示燈常亮,“MAINT”指示燈閃爍說明固件更新已經(jīng)結(jié)束。
- 第六步: 拔出存儲卡。
- 第七步: 再次將 CPU 斷電上電。
-
文檔
-
涉及產(chǎn)品
- PKE: 參數(shù) ID。包括代表主站指令和從站響應(yīng)的信息,以及參數(shù)號等
- IND: 參數(shù)索引,主要用于與 PKE 配合定位參數(shù)
- PWEm:參數(shù)值數(shù)據(jù)
- PZD1:主站發(fā)給從站的控制字/從站返回主站的狀態(tài)字
- PZD2: 主站發(fā)給從站的給定/從站返回主站的實際反饋
如何通過USS協(xié)議實現(xiàn)S7-1200 與MM440變頻器的通信
西門子S7-1200 PLC在當(dāng)前的市場中有著廣泛的應(yīng)用,作為常與變頻器共同使用的PLC,其與西門子MM440 變頻器的USS通信一直在市場上有著非常廣泛的應(yīng)用。本文將主要介紹如何使用USS通信協(xié)議來實現(xiàn)S7-1200與MM440變頻器的通信。
1. USS通信介紹
1.1. USS協(xié)議特點(diǎn)
USS (Universal Serial Interface, 即通用串行通信接口) 是西門子專為驅(qū)動裝置開發(fā)的通信協(xié)議。USS 協(xié)議的基本特點(diǎn)如下:
? 支持多點(diǎn)通信(因而可以應(yīng)用在 RS 485 等網(wǎng)絡(luò)上)
? 采用單主站的“主-從”訪問機(jī)制
? 每個網(wǎng)絡(luò)上最多可以有 32 個節(jié)點(diǎn)(最多 31 個從站)
? 簡單可靠的報文格式,使數(shù)據(jù)傳輸靈活高效
? 容易實現(xiàn),成本較低
USS 的工作機(jī)制是,通信總是由主站發(fā)起,USS 主站不斷循環(huán)輪詢各個從站,從站根據(jù)收到的指令,決定是否以及如何響應(yīng)。從站永遠(yuǎn)不會主動發(fā)送數(shù)據(jù)。從站在以下條件滿足時應(yīng)答:
-- 接收到的主站報文沒有錯誤,并且
-- 本從站在接收到主站報文中被尋址
上述條件不滿足,或者主站發(fā)出的是廣播報文,從站不會做任何響應(yīng)。對于主站來說,從站必須在接收到主站報文之后的一定時間內(nèi)發(fā)回響應(yīng)。否則主站將視為出錯。
USS 的字符傳輸格式符合 UART 規(guī)范,即使用串行異步傳輸方式。USS 在串行數(shù)據(jù)總線上的字符傳輸幀為 11 位長度,如表1所示:
表1:USS字符幀
USS 協(xié)議的報文簡潔可靠,高效靈活。報文由一連串的字符組成,協(xié)議中定義了它們的特
定功能,表2所示:
表2:USS報文結(jié)構(gòu)
每小格代表一個字符(字節(jié))。其中:
STX: 起始字符,總是 02 h
LGE: 報文長度
ADR:從站地址及報文類型
BCC: BCC 校驗符
凈數(shù)據(jù)區(qū)由 PKW 區(qū)和 PZD 區(qū)組成,如表3所示:
表3:USS凈數(shù)據(jù)區(qū)
PKW: 此區(qū)域用于讀寫參數(shù)值、參數(shù)定義或參數(shù)描述文本,并可修改和報告參數(shù)的改變 。其中:
PZD: 此區(qū)域用于在主站和從站之間傳遞控制和過程數(shù)據(jù)??刂茀?shù)按設(shè)定好的固定格式在主、從站之間對應(yīng)往返。如:
根據(jù)傳輸?shù)臄?shù)據(jù)類型和驅(qū)動裝置的不同,PKW 和 PZD 區(qū)的數(shù)據(jù)長度都不是固定的,它們可以靈活改變以適應(yīng)具體的需要。但是,在用于與控制器通信的自動控制任務(wù)時,網(wǎng)絡(luò)上的所有節(jié)點(diǎn)都要按相同的設(shè)定工作,并且在整個工作過程中不能隨意改變。
注意:
對于不同的驅(qū)動裝置和工作模式,PKW 和 PZD 的長度可以按一定規(guī)律定義。 一旦確定就不能在運(yùn)行中隨意改變 ;
PKW 可以訪問所有對 USS 通信開放的參數(shù);而 PZD 僅能訪問特定的控制和過程數(shù)據(jù);
PKW 在許多驅(qū)動裝置中是作為后臺任務(wù)處理,因此 PZD 的實時性要比 PKW 好。
1.2. S7-1200 USS通信簡介
CM 1241 RS485 模塊通過 RS485 端口與MM440進(jìn)行通信。 可使用 USS 庫控制MM440和讀/寫MM440參數(shù)。該庫提供 1 個 FB 和 3 個 FC 來支持 USS 協(xié)議。 每個 CM1241 RS485 通信模塊最多支持 16 個MM440。連接到一個 CM 1241 RS485 的所有MM440(最多 16 個)是同一 USS 網(wǎng)絡(luò)的一部分。連接到另一 CM 1241 RS485 的所有MM440是另一 USS 網(wǎng)絡(luò)的一部分。 因為 S7-1200最多支持三個 CM 1241 RS485 設(shè)備,所以用戶最多可建立三個 USS 網(wǎng)絡(luò),每個網(wǎng)絡(luò)最多 16 個MM440,總共支持 48 個 USS MM440。各 USS 網(wǎng)絡(luò)使用各自唯一的數(shù)據(jù)塊進(jìn)行管理(使用三個 CM 1241 RS485 設(shè)備建立三個 USS網(wǎng)絡(luò)需要三個數(shù)據(jù)塊)。 同一USS 網(wǎng)絡(luò)相關(guān)的所有指令必須共享該數(shù)據(jù)塊。 這包括用于控制網(wǎng)絡(luò)上所有MM440的 USS_DRV、USS_PORT、USS_RPM 和USS_WPM 指令。
2. 硬件需求及接線
2.1. 硬件需求
S7-1200 PLC目前有3種類型的CPU:
1)S7-1211C CPU。
2)S7-1212C CPU。
3)S7-1214C CPU。
這三種類型的CPU都可以使用USS通信協(xié)議通過通信模塊CM1241 RS485來實現(xiàn)S7-1200與MM440變頻器的通信。
本例中使用的PLC硬件為:
1) S7-1214C ( 6ES7 214 -1BE30 -0XB0 )
2) CM1241 RS485 ( 6ES7 241 -1CH30 -0XB0 )
3) CSM 1277 ( 6GK7 277 -1AA00 - 0AA0)
本例中使用的MM440變頻器硬件為:
1) MM440 ( 6SE6440 - 2AB11 - 2AA1 )
2) MICROMASTER 4 ENCODER MODULE ( 6SE6400 - 0EN00 - 0AA0 )
3) SIEMENS MOTOR ( 1LA7060 - 4AB10 - Z )
4) USS 通信電纜 ( 6XV1830 - 0EH10 )
2.2. 接線
建議使用西門子的網(wǎng)絡(luò)插頭和PROFIBUS電纜。在 S7-1200 CPU 通信口上使用西門子網(wǎng)絡(luò)插頭。
PROFIBUS 電纜的紅色導(dǎo)線B 即 RS 485 信號 +,此信號應(yīng)當(dāng)連接到 MM 440 通信端口的 P+;綠色導(dǎo)線A 即 RS 485 信號 -,此信號應(yīng)當(dāng)連接到 MM 440 通信端口的 N-。
圖1: MM440接線端子 表4:MM440端子定義
因為MM 440 通信口是端子連接,所以 PROFIBUS 電纜不需要網(wǎng)絡(luò)插頭,而是剝出線頭直接壓在端子上。如果還要連接下一個驅(qū)動裝置,則兩條電纜的同色芯線可以壓在同一個端子內(nèi)。PROFIBUS 電纜的紅色芯線應(yīng)當(dāng)壓入端子 29;綠色芯線應(yīng)當(dāng)連接到端子 30,如圖1、表4所示。完整接線圖如圖2所示。
圖2: S7-1200與MM440接線圖
a. 屏蔽/保護(hù)接地母排,或可靠的多點(diǎn)接地。此連接對抑制干擾有重要意義。
b. PROFIBUS 網(wǎng)絡(luò)插頭,內(nèi)置偏置和終端電阻。
c. MM 440 端的偏置和終端電阻。
d. 通信口的等電位連接??梢员Wo(hù)通信口不致因共模電壓差損壞或通信中斷。
e. 雙絞屏蔽電纜(PROFIBUS)電纜,因是高速通信,電纜的屏蔽層須雙端接地(接 PE)。
注意,以下幾點(diǎn)對網(wǎng)絡(luò)的性能有極為重要的影響。幾乎所有網(wǎng)絡(luò)通信質(zhì)量方面的問題都與未考慮到下列事項有關(guān):
? 偏置電阻用于在復(fù)雜的環(huán)境下確保通信線上的電平在總線未被驅(qū)動時保持穩(wěn)定;終端電阻用于吸收網(wǎng)絡(luò)上的反射信號。一個完善的總線型網(wǎng)絡(luò)必須在兩端接偏置和終端電阻。
? 通信口 M 的等電位連接建議單獨(dú)采用較粗的導(dǎo)線 ,而不要使用 PROFIBUS 的屏蔽層,因為此連接上可能有較大的電流,以致通信中斷。
? PROFIBUS 電纜的屏蔽層要盡量大面積接 PE。一個實用的做法是在靠近插頭、接線端子處環(huán)剝外皮,用壓箍將裸露的屏蔽層壓緊在 PE 接地體上(如 PE 母排或良好接地的裸露金屬安裝板)。
? 通信線與動力線分開布線;緊貼金屬板安裝也能改善抗干擾能力。驅(qū)動裝置的輸入/輸出端要盡量采用濾波裝置,并使用屏蔽電纜。
? 在 MM 440 的包裝內(nèi)提供了終端偏置電阻元件,接線時可按說明書直接壓在端子上。如果可能,可采用熱縮管將此元件包裹,并適當(dāng)固定。
3. 組態(tài)
我們通過下述的實際操作來介紹如何在Step7 Basic V10.5 中組態(tài)S7-1214C 和MM440變頻器的USS通信。
3.1. PLC 硬件組態(tài)
首先在Step7 Basic V10.5中建立一個項目,如圖3所示。
圖3: 新建S7 1200項目
在硬件配置中,添加CPU1214C和通信模塊CM1241 RS485模塊,如圖4所示:
圖4: S7 1200硬件配置
在CPU的屬性中,設(shè)置以太網(wǎng)的IP地址,建立PG與PLC的連接,如圖5所示。
圖5: S7 1200 IP地址的設(shè)置
3.2. MM440參數(shù)設(shè)置
我們假定已經(jīng)完成了驅(qū)動裝置的基本參數(shù)設(shè)置和調(diào)試(如電機(jī)參數(shù)辨識等等),以下只涉及與 S7-1200 控制器連接相關(guān)的參數(shù)。
MM 440 的參數(shù)分為幾個訪問級別,以便于過濾不需要查看的部分。 與 S7-1200 連接時,需要設(shè)置的主要有“控制源”和“設(shè)定源”兩組參數(shù)。要設(shè)置此類參數(shù),需要“專家”參數(shù)訪問級別,即首先需要把 P0003 參數(shù)設(shè)置為 3。
控制源參數(shù)設(shè)置:
控制命令控制驅(qū)動裝置的啟動、停止、正/反轉(zhuǎn)等功能。控制源參數(shù)設(shè)置決定了驅(qū)動裝置從何種途徑接受控制信號,如表5所示。
表5:控制源由參數(shù) P0700 設(shè)置
此參數(shù)有分組,在此僅設(shè)第一組,即 P0700[0]。
設(shè)定源控制參數(shù):
設(shè)定值控制驅(qū)動裝置的轉(zhuǎn)速/頻率等功能。設(shè)定源參數(shù)決定了驅(qū)動裝置從哪里接受設(shè)定值(即給定),如表6所示。
表6:設(shè)定源由參數(shù) P1000 設(shè)置
此參數(shù)有分組,在此僅設(shè)第一組,即 P1000[0]。
控制源和設(shè)定源之間可以自由組合,根據(jù)工藝要求可以靈活選用。我們以控制源和設(shè)定源都來自 COM Link 上的 USS 通信為例,簡介 USS 通信的參數(shù)設(shè)置。
主要參數(shù)有:
1. P0700: 設(shè)置 P0700[0] = 5,即控制源來自 COM Link 上的 USS 通信;
2. P1000: 設(shè)置 P1000[0] = 5,即設(shè)定源來自 COM Link 上的 USS 通信;
3. P2009: 決定是否對 COM Link 上的 USS 通信設(shè)定值規(guī)格化,即設(shè)定值將是運(yùn)轉(zhuǎn)頻率的百分比形式,還是絕對頻率值。為0,不規(guī)格化 USS 通信設(shè)定值,即設(shè)定為MM440中的頻率設(shè)定范圍的百分比形式;為1,對 USS 通信設(shè)定值進(jìn)行規(guī)格化,即設(shè)定值為絕對的頻率數(shù)值;
4. P2010: 設(shè)置 COM Link 上的 USS 通信速率。根據(jù) S7-1200 通信口的限制,支持的通信波特率如表7所示。
4 | 2400 bit/s |
5 | 4800 bit/s |
6 | 9600 bit/s |
7 | 19200 bit/s |
8 | 38400 bit/s |
9 | 57600 bit/s |
12 | 115200 bit/s |
表7:通信波特率
5. P2011: 設(shè)置 P2011[0] = 0 至 31,即驅(qū)動裝置 COM Link 上的 USS 通信口在網(wǎng)絡(luò)上的從站地址;
6. P2012: 設(shè)置 P2012[0] = 2,即 USS PZD 區(qū)長度為 2 個字長;
7. P2013: 設(shè)置 P2013[0] = 4;
8. P2014: 設(shè)置 P2014[0] = 0 至 65535,即 COM Link 上的 USS 通信控制信號中斷超時時間,單位為 ms;如設(shè)置為 0,則不進(jìn)行此端口上的超時檢查;
9. P0971: 設(shè)置 P0971 = 1,上述參數(shù)將保存入MM 440 的 EEPROM 中。
4. USS通信原理與編程的實現(xiàn)
4.1 S7 1200 PLC與MM440 通過USS通信的基本原理
S7 1200提供了專用的USS庫進(jìn)行USS通信,如圖6所示:
圖6:S7 1200 專用的USS庫
USS_DRV功能塊通過USS_DRV_DB數(shù)據(jù)塊實現(xiàn)與USS_PORT功能塊的數(shù)據(jù)接收與傳送,而USS_PORT功能塊是S7-1200 PLC CM1241 RS485模塊與MM440之間的通信接口。USS_RPM功能塊和USS_WPM功能塊與MM440的通信與USS_DRV功能塊的通信方式是相同的。如圖7所示。
圖7:通信結(jié)構(gòu)圖
4.2. 功能塊使用介紹
USS_DRV 功能塊是S7-1200 USS通信的主體功能塊,接受MM440的信息和控制MM440的指令都是通過這個功能快來完成的。必須在主 OB中調(diào)用。
USS_PORT功能塊是S7-1200與MM440進(jìn)行USS通信的接口,主要設(shè)置通信的接口參數(shù)??稍谥鱋B或中斷OB中調(diào)用。
USS_RPM功能塊是通過USS通信讀取MM440的參數(shù)。必須在主 OB中調(diào)用。
USS_WPM功能塊是通過USS通信設(shè)置MM440的參數(shù)。必須在主 OB中調(diào)用。
4.3. S7 1200 PLC進(jìn)行USS通信的編程
4.3.1. USS_DRV功能塊的編程
USS_DRV功能塊的編程如圖8所示。
圖8: USS_DRV功能塊的編程
USS_DRV功能塊用來與MM440進(jìn)行交換數(shù)據(jù),從而讀取MM440的狀態(tài)以及控制MM440的運(yùn)行。每個MM440使用唯一的一個USS_DRV功能塊,但是同一個CM1241 RS485模塊的USS網(wǎng)絡(luò)的所有MM440(最多16個)都使用同一個USS_DRV_DB。
USS_DRV_DB: 指定MM440進(jìn)行USS通信的數(shù)據(jù)塊。 | |||||
RUN: 指定DB塊的MM440啟動指令。 | |||||
OFF2: 緊急停止,自由停車。 該位為0時停車。 | |||||
OFF3: 快速停車,帶制動停車。該位為0時停車。 | |||||
F_ACK: MM440故障確認(rèn)。 | |||||
DIR : MM440控制電機(jī)的轉(zhuǎn)向。 | |||||
SPEED_SP: MM440的速度設(shè)定值。 | |||||
NDR: 新數(shù)據(jù)就緒。 | |||||
ERROR: 程序輸出錯誤。 | |||||
RUN_EN: MM440運(yùn)行狀態(tài)指示。 | |||||
D_DIR: MM440運(yùn)行方向狀態(tài)指示。 | |||||
INHIBIT: MM440是否被禁止的狀態(tài)指示。 | |||||
FAULT: MM440故障。 | |||||
SPEED: MM440的反饋的實際速度值。 | |||||
DRIVE: MM440的USS站地址。MM440參數(shù)P2011設(shè)置。 | |||||
PZD_LEN: PZD數(shù)據(jù)的字?jǐn)?shù),有效值2,4,6或8個字。MM440參數(shù)P2012設(shè)置。 | |||||
4.3.2. USS通信接口參數(shù)功能塊的編程
USS通信接口參數(shù)功能塊的編程如圖9所示。
圖9: USS通信接口參數(shù)功能塊的編程
USS_PORT功能塊用來處理USS網(wǎng)絡(luò)上的通信,它是S71200 CPU與MM440的通信接口。每個CM1241 RS485模塊有且必須有一個USS_PORT功能塊。
PORT: 通信模塊標(biāo)識符:在默認(rèn)變量表的“常量”(Constants) 選項卡內(nèi)引用的常量。
BAUD: 指的是和MM440進(jìn)行通行的速率。 MM440的參數(shù)P2010種進(jìn)行設(shè)置。
USS_DB: 引用在用戶程序中放置 USS_DRV 指令時創(chuàng)建和初始化的背景數(shù)據(jù)塊。
ERROR: 輸出錯誤。
STATUS:掃描或初始化的狀態(tài)。
USS_PORT 功能通過RS485通信模塊處理 CPU 和變頻器之間的實際通信。 每次調(diào)用此功能可處理與一個變頻器的一次通信。 用戶程序必須盡快調(diào)用此功能以防止與變頻器通信超時。 可在主 OB 或任何中斷 OB 中調(diào)用此功能。通常從循環(huán)中斷 OB 調(diào)用USS_PORT 以防止變頻器超時以及使 USS_DRV 調(diào)用的 USS 數(shù)據(jù)保持最新。
S7-1200 PLC與MM440的通信是與它本身的掃描周期不同步的,在完成一次與MM440的通信事件之前,S7-1200通常完成了多個掃描。
USS_PORT通信的時間間隔是S7-1200與MM440通信所需要的時間,不同的通信波特率對應(yīng)的不同的USS_PORT通信間隔時間。表8列出了不同的波特率對應(yīng)的USS_PORT最小通信間隔時間。
表8:不同的波特率對應(yīng)的USS_PORT最小通信間隔時間
USS_PORT在發(fā)生通信錯誤時,通常進(jìn)行3次嘗試來完成通信事件,那么S7-1200與MM440通信的時間就是USS_PORT發(fā)生通信超時的時間間隔。例如:如果通信波特率是9600,那么USS_PORT與MM440通信的時間間隔應(yīng)當(dāng)大于最小的調(diào)用時間間隔,即大于116.3毫秒而小于349毫秒。S7-1200 USS 協(xié)議庫默認(rèn)的通信錯誤超時嘗試次數(shù)是2次。
基于以上的USS_PORT通信時間的處理,建議在循環(huán)中斷OB塊中調(diào)用USS_PORT通信功能塊。在建立循環(huán)中斷OB塊時,我們可以設(shè)置循環(huán)中斷OB塊的掃描時間,以滿足通信的要求。循環(huán)中斷OB塊的掃描時間的設(shè)置如圖10所示:
圖10:循環(huán)中斷OB塊的掃描時間的設(shè)置
4.3.3. USS_RPM功能塊的編程
USS_RPM功能塊的編程 如圖11所示。
圖11:USS_RPM功能塊的編程
USS_RPM功能塊用于通過USS通信從MM440讀取參數(shù)。
REQ: 讀取參數(shù)請求。 | |||
DRIVE: MM440的USS站地址。 | |||
PARAM: MM440的參數(shù)代碼。 | |||
INDEX: MM440的參數(shù)索引代碼 | |||
USS_DB:指定MM440進(jìn)行USS通信的數(shù)據(jù)塊。 | |||
DONE: 讀取參數(shù)完成。 | |||
ERROR: 讀取參數(shù)錯誤。 | |||
STATUS:讀取參數(shù)狀態(tài)代碼。 | |||
VALUE: 所讀取的參數(shù)的值。 |
注意:進(jìn)行讀取參數(shù)功能塊編程時,各個數(shù)據(jù)的數(shù)據(jù)類型一定要正確對應(yīng)。
4.3.4. USS_WPM功能塊的編程
USS_WPM功能塊的編程如圖12所示。
圖12:USS_WPM功能塊的編程
USS_WPM功能塊用于通過USS通信設(shè)置MM440的參數(shù)。
REQ: 寫參數(shù)請求。 | |||
DRIVE: MM440的USS站地址。 | |||
PARAM: MM440的參數(shù)代碼。 | |||
INDEX: MM440的參數(shù)索引代碼。 | |||
EEPROM:把參數(shù)存儲到MM440的EEPROM。 | |||
VALUE: 設(shè)置參數(shù)的值。 | |||
USS_DB:指定MM440進(jìn)行USS通信的數(shù)據(jù)塊。 | |||
DONE: 讀取參數(shù)完成。 | |||
ERROR: 讀取參數(shù)錯誤狀態(tài)。 |
注意:對寫入?yún)?shù)功能塊編程時,各個數(shù)據(jù)的數(shù)據(jù)類型一定要正確對應(yīng)。
4.3.5. 常見錯誤
如果讀寫同時使能,則報錯818A:參數(shù)請求通道正在被本變頻器的另一請求占用。如圖13所示。
圖13:讀寫同時使能報錯
如果通信斷開,則PORT報錯818B,如圖14所示。
圖14:通信斷開報錯
如果速度設(shè)定值不正確,則報錯8186,如圖15所示。
圖15:速度設(shè)定值錯誤
關(guān)鍵詞
USS 協(xié)議,S7-1200,MM440,變頻器
S7-200做主站S7-300 CP341做從站的Modbus RTU通訊
-
文檔
-
涉及產(chǎn)品
1. 概述
在現(xiàn)場應(yīng)用中,很多儀表和設(shè)備僅支持Modbus RTU的通訊協(xié)議,第三方儀表可以做Modbus主站或從站,西門子的通訊模塊CP341 / CP441-2 通過Dongle(硬件狗)可以擴(kuò)展該協(xié)議,S7-200 集成的口可以支持自由口通訊,通過指令庫也可以方便的實現(xiàn)Modbus RTU通訊。本文以S7-200作為Modbus 主站,CP341作為Modbus 從站,實現(xiàn)Modbus RTU通訊,闡述兩者在通訊方面的設(shè)置和注意事項。
2. 軟件環(huán)境
2.1 STEP7 V5.4 SP4
用于編寫 S7-300/400程序,此軟件需要從西門子購買,本文檔中的300的程序是使用Step7 V5.4 SP4的軟件編寫。
2.2 CP PTP Param V5.1 SP11
串行通訊模板的驅(qū)動程序,安裝此驅(qū)動后才能對PtP模板進(jìn)行參數(shù)配置,并在Step7中集成通訊編程需要使用的功能塊。此驅(qū)動隨購買模板一起提供,也可以從以下的鏈接下載:27013524
2.3 CP PTP Modbus Slave V3.1 SP7
CP341或CP441-2用于Modbus從站時,需要安裝此驅(qū)動協(xié)議,但安裝之前必須先安裝PtP Driver,此驅(qū)動可以在購買Modbus Dongle時選擇購買,也可以從以下的鏈接下載:27774276
2.4 STEP7 Micro/WIN V4.0 SP6
用于S7-200編程的軟件,本文檔中的200的程序是使用Step7 Micro/win 的軟件編寫。此軟件可以從西門子下載中心免費(fèi)下載,也可以從以下的鏈接下載。
http://www.ad.siemens.com.cn/download 網(wǎng)站 自動化系統(tǒng)>>S7-200>>軟件,文檔編號S0002。
2.5 Toolbox_V32-STEP 7-Micro WIN 32 Instruction Library
S7-200實現(xiàn)Modbus RTU功能,可以使用Modbus的指令庫,要使用西門子的標(biāo)準(zhǔn)指令庫,必須先安裝指令庫的軟件包 Instruction Library,安裝后,可以在Step 7-Micro/WIN軟件的庫中找到Modbus相關(guān)的指令,該軟件包可以從以下的鏈接下載。http://www.ad.siemens.com.cn/download 網(wǎng)站 自動化系統(tǒng)>>S7-200>>軟件,文檔編號S0010。
3. 硬件列表和接線
3.1 硬件列表
S7-300從站 | CPU315-2DP | 6ES7 315-2AG10-0AB0 |
CP341 RS422/485 | 6ES7 341-1CH01-0AE0 | |
Dongle | 6ES7 870-1AB01-0YA0 | |
PC 適配器(USB) | 6ES7 972-0CB20-0XA0 | |
S7-200主站 | CPU 224XP | 6ES7 214-2BD23-0XB0 |
表1 硬件設(shè)備
3.2 硬件接線
3.2.1 接口定義
S7-200的通訊口為RS485物理口(9針口),CP341是RS422/485的接口類型(15針口),兩種設(shè)備的接口引腳的示意圖如下所示,更詳細(xì)的信息可以參考CP341及S7-200通信接口的手冊。
圖1 S7-200 CPU通信口引腳定義
圖2 S7-300 CP341 RS422/485 通訊口引腳定義
3.2.2 接線示意圖
圖3 硬件結(jié)構(gòu)和接線示意圖
4. 組態(tài)設(shè)置和編程
4.1 S7-200做Modbus主站的設(shè)置
S7-200 CPU上的通信口在電氣上是標(biāo)準(zhǔn)的RS-485半雙工串行通信口,此串行字符通信的格式:1個起始位;7/8位數(shù)據(jù)位;1位奇/偶/無校驗;1停止位。通信波特率可以設(shè)置為1200、2400、4800、9600、19200、38400、57600或112500,符合這些格式的串行通訊設(shè)備可以和S7-200進(jìn)行自由口通訊,Modbus RTU指令庫就是使用自由口編程實現(xiàn)的。
4.1.1 Modbus RTU主站庫
使用Modbus 主站指令庫時需要注意的幾點(diǎn):
- 需要S7-200的編程軟件是 Micro/WIN V4.0 SP5及以上版本;
- Modbus RTU 主站庫對CPU的版本有要求,CPU 的版本必須為 2.00 或者 2.01(即訂貨號為 6ES721*-***23-0BA*);
- Modbus主站可讀/寫的最大數(shù)據(jù)量為120個字(指每一個 MBUS_MSG 指令);
- Modbus 主站庫支持Port0和Port1(從站庫只支持Port0口),本例中用Port0;
- 使用Modbus 庫時必須對庫存儲區(qū)進(jìn)行分配,見下圖設(shè)置,而且分配的空間不能和程序中其它空間沖突,否則編譯調(diào)用會報錯。
圖4 庫存儲區(qū)設(shè)置
-
Modbus主站庫支持的功能碼和地址對應(yīng)關(guān)系:
Modbus 地址 讀 / 寫 Modbus 從站須支持的功能 00001~09999 讀 功能1:讀輸出點(diǎn) 數(shù)字量輸出 寫 功能5:寫單個輸出點(diǎn) 功能15:寫多個輸出點(diǎn) 10001~19999 讀 功能2:讀輸入點(diǎn) 數(shù)字量輸入 30001~39999 讀 功能4:讀輸入寄存器 輸入寄存器 40001~49999 讀 功能3:讀保持寄存器 保持寄存器 寫 功能6:寫單個寄存器 功能16:寫多個寄存器 表2需要從站支持的功能
4.1.2 S7-200 Modbus主站編程
編程時,使用SM0.0調(diào)用MBUS_CTRL完成主站的參數(shù)初始化,詳細(xì)見下表,參數(shù)的說明也可以從子程序的局部變量表中找到。
圖5 Modbus RTU 主站初始化
圖中各參數(shù)含義如下
編號 | 符號/含義 | 說 明 |
a | EN / 使能 | 必須保證每一掃描周期都被使能(使用SM0.0)。 |
b | Mode / 模式 | 為1時使能為Modbus協(xié)議;為0時恢復(fù)為PPI協(xié)議。 |
c | Baud / 波特率 | 支持的通訊波特率為1200,2400,4800,9600,19200,38400,57600,115200。 |
d | Parity / 校驗 | 校驗方式選擇:0=無校驗;1=奇校驗,2=偶校驗。 |
e | Timeout / 超時 | 主站等待從站響應(yīng)的時間,以毫秒為單位,典型的設(shè)置值為 1000毫秒,允許設(shè)置的范圍為1-32767。這個值必須設(shè)置足夠大以保證從站有時間響應(yīng)。 |
f | Done / 完成位 | 初始化完成,此位會自動置1。 |
g | Error / 錯誤位 | 初始化錯誤代碼。 |
表3
調(diào)用 Modbus RTU 主站讀寫子程序MBUS_MSG,發(fā)送一個Modbus 請求。
圖6 調(diào)用Modbus RTU 主站讀寫子程序
圖中各參數(shù)含義如下
編號 | 符號/含義 | 說 明 |
a | EN / 使能 | 同一時刻只能有一個讀寫功能使能。 |
b | First / 讀寫請求位 | 每一個新的讀寫請求必須使用脈沖觸發(fā)。 |
c | Slave / 從站地址 | 可選擇的范圍1–247。 |
d | RW / 讀寫操作位 | 0=讀, 1=寫。 |
e | Addr / 讀寫從站的數(shù)據(jù)地址 | 選擇讀寫的數(shù)據(jù)類型: |
00001 至 0xxxx - 開關(guān)量輸出 | ||
10001 至 1xxxx - 開關(guān)量輸入 | ||
30001 至 3xxxx - 模擬量輸入 | ||
40001 至 4xxxx - 保持寄存器。 | ||
f | Count / 數(shù)據(jù)的個數(shù) | 通訊的數(shù)據(jù)個數(shù)(位或字的個數(shù))。 |
g | DaptPtr / 數(shù)據(jù)指針 | 如果是讀指令,讀回的數(shù)據(jù)放到這個數(shù)據(jù)區(qū)中; |
如果是寫指令,要寫出的數(shù)據(jù)放到這個數(shù)據(jù)區(qū)中。 | ||
h | Done / 完成位 | 讀寫功能完成位。 |
i | Error / 錯誤代碼 | 只有在Done位為1時,錯誤代碼才有效。 |
表4
從上圖中可見,S7-200作為Modbus RTU主站,波特率9.6Kb/s,偶校驗,連接從站的站地址是3,數(shù)據(jù)存儲區(qū)為VB2000開始的區(qū)域。
4.2 CP341 做Modbus 從站的硬件組態(tài)
4.2.1 硬件組態(tài)
圖7 S7-300側(cè)硬件組態(tài)
4.2.2 設(shè)置Modbus參數(shù)
圖8 消息楨字符結(jié)構(gòu)
按照上述操作設(shè)置參數(shù),從上圖可以看出,本例中的傳輸波特率9.6Kb/s,1位起始位,8位數(shù)據(jù)位,偶校驗位,1位停止位,從站站地址是3,主從通訊設(shè)備的字符幀格式和波特率等參數(shù)設(shè)置需要一致。
圖9 RS422/485 接口組態(tài)
RS422/485接口只能一個有效,接口的選擇只需要組態(tài)而不需要在硬件上短接。
4.2.3 Modbus驅(qū)動的下載
當(dāng)配置好Modbus通信的參數(shù)后,保存前需要向CP341下載Modbus Slave的驅(qū)動,一旦下載完成后無需再次下載。
需要注意的是,在下載驅(qū)動時(可以在無Dongle情況下下載),需要將CPU停機(jī),然后下載,操作過程如下所示。
圖10 下載Dongle時,需要CPU停機(jī)
圖11 從站驅(qū)動下載后結(jié)果
4.2.4 CP341做Modbus從站的編程
從Step7 軟件下的EXAMPLE目錄中,找到項目名“zXX21_05_PtP_Com_MODSL”的項目,打開,然后將Modbus通訊模塊FB80傳遞到用戶項目中,打開路徑如下所示。
圖12 Modbus Slave 例程打開路徑
OB1中調(diào)用FB80編程如下:
圖13 FB80程序塊調(diào)用
CP卡初始化正常后,CP_START,CP_START_FM和CP_START_OK為1信號,否則CP_START_ERROR為1,同時可以從ERROR_NR察看錯誤信息,也可以在硬件組態(tài)中在線后的CP341的診斷緩沖區(qū)察看詳細(xì)的錯誤信息,錯誤信息對照和處理方式可以參考
《S7-300以用于PtP CP Modbus 協(xié)議RTU格式S7的可裝載驅(qū)動程序為從站》的手冊。
FB80的各參數(shù)含義如下
LADDR | 硬件組態(tài)中CP341的起始邏輯地址,本例中為256 |
START_TIMER | 初始化超時定時器,本例中為T120 |
START_TIME | 初始化定時器時間,本例中為5S |
OB_MASK | I/O訪問錯誤屏蔽位,本例中為True(I/O訪問錯誤已屏蔽) |
CP_START | FB初始化使能位,本例中為M0.0 |
CP_START_FM | CP_START 初始化的上升沿位,本例中為M0.1 |
CP_NDR | 從CP卡寫操作位,本例中為m0.2 |
CP_START_OK | 初始化完成且無錯誤,本例中為M0.3 |
CP_START_ERROR | 初始化完成,但有錯誤,本例中為M0.4 |
ERROR_NR | 錯誤號,本例中為MW2 |
ERROR_INFO | 錯誤信息,本例中為MW4 |
表5
5. 通訊測試
Modbus RTU格式通信協(xié)議是以主從的方式進(jìn)行數(shù)據(jù)傳輸?shù)模趥鬏數(shù)倪^程中主站是主動方,即主站發(fā)送數(shù)據(jù)請求報文到從站,從站返回響應(yīng)報文。Modbus 系統(tǒng)間的數(shù)據(jù)交換是通過功能碼來控制的,以下對現(xiàn)場常用的功能碼進(jìn)行分類測試,關(guān)于功能碼的詳細(xì)信息請參考手冊。
5.1 FC01/05/15功能碼
CP341從站的通訊區(qū)域配置
圖14 FC01/05/15 參數(shù)組態(tài)界面
FC01、FC05、FC15對應(yīng)的數(shù)據(jù)區(qū)為位輸出,數(shù)據(jù)的傳遞以位為單位,可以讀寫操作,用戶地址區(qū)為0xxxx,Modbus地址在信息傳遞中從0開始。如上圖,左邊為信息傳遞地址(地址區(qū)不能沖突),右邊對應(yīng)的是S7-300的數(shù)據(jù)區(qū)。例如左邊信息傳遞地址從0 ~ 7對應(yīng)用戶地址區(qū)為00001 ~ 00008,對應(yīng)S7-300的M10.0 ~ M10.7,并且以此為例說明FC01功能碼的通訊。
S7-200主站程序調(diào)用
圖15 功能碼FC01使用
S7-200主站,用功能碼FC01讀取從站8點(diǎn)數(shù)字量輸出,接收的數(shù)據(jù)存放在VB2000開始的區(qū)域,測試截圖結(jié)果如下。
圖16 FC01功能碼數(shù)據(jù)交換
5.2 FC02功能碼
CP341從站的通訊區(qū)域配置
圖17 FC02 參數(shù)組態(tài)界面
FC02對應(yīng)的數(shù)據(jù)區(qū)為位輸出,數(shù)據(jù)的傳遞以位為單位,只讀操作,用戶地址區(qū)為1xxxx,Modbus地址在信息傳遞中從0開始,如上圖,左邊為信息傳遞地址(地址區(qū)不能沖突),右邊對應(yīng)的是S7-300的數(shù)據(jù)區(qū)。例如左邊信息傳遞地址從0 ~ 7對應(yīng)用戶地址區(qū)為10001 ~ 10008,對應(yīng)S7-300的M20.0 ~ M20.7,并且以此為例說明FC02功能碼的通訊。
S7-200主站程序調(diào)用
圖18 功能碼FC02使用
S7-200主站,用功能碼FC02讀取從站8點(diǎn)數(shù)字量輸入,接收的數(shù)據(jù)存放在VB2000開始的區(qū)域,測試截圖結(jié)果如下。
圖19 FC02功能碼數(shù)據(jù)交換
5.3 FC03/06/16 功能碼
CP341從站的通訊區(qū)域配置
圖20 FC03/06/16參數(shù)組態(tài)界面
FC03/06/16 對應(yīng)的數(shù)據(jù)區(qū)為寄存器,數(shù)據(jù)的傳遞以字為單位,可以讀寫操作,用戶地址區(qū)為4xxxx,Modbus地址在信息傳遞中從0開始。如上圖,左邊為信息傳遞地址,右邊對應(yīng)的是S7-300的數(shù)據(jù)區(qū),左邊傳輸?shù)刂凡豢筛?,右邊只對?yīng)一個數(shù)據(jù)區(qū)。例如用戶地址
區(qū)為40001 ~ 40004,對應(yīng)S7-300數(shù)據(jù)區(qū)為DB1.DBW0 ~ DB1.DBW6,并且以此為例說明
FC03功能碼的通訊。
S7-200主站程序調(diào)用
圖21功能碼FC03使用
S7-200主站,用功能碼FC03讀取從站4個字寄存器,接收的數(shù)據(jù)存放在VB2000開始的區(qū)域,測試截圖結(jié)果如下。
圖22 FC03功能碼數(shù)據(jù)交換
5.4 FC04 功能碼
CP341從站的通訊區(qū)域配置
圖23 FC04參數(shù)組態(tài)界面
FC04對應(yīng)的數(shù)據(jù)區(qū)為寄存器輸入,數(shù)據(jù)的傳遞也以字為單位,只讀操作,用戶地址區(qū)3xxxx,Modbus地址在信息傳送中從0開始。如上圖,左邊為信息傳遞地址,右邊對應(yīng)的是S7-300的數(shù)據(jù)區(qū),左邊傳輸?shù)刂凡豢筛?,右邊只對?yīng)一個數(shù)據(jù)區(qū)。例如用戶地址區(qū)為30001 ~ 30004,對應(yīng)S7-300數(shù)據(jù)區(qū)為DB1.DBW0 ~ DB1.DBW6,并且以此為例說明FC04功能碼的通訊。
S7-200主站程序調(diào)用
圖24功能碼FC04使用
S7-200主站,用功能碼FC04讀取從站4個字輸入寄存器,接收的數(shù)據(jù)存放在VB2000開始的區(qū)域,測試截圖結(jié)果如下。
圖25 FC04功能碼數(shù)據(jù)交換
5.5 Limits 欄
圖26 Limits 參數(shù)組態(tài)界面
對于寫功能碼FC05、06、15、16,可以禁用或限制訪問相關(guān)S7-300存儲區(qū),即使用這些功能碼時,S7-300存儲區(qū)需要在設(shè)定的最小和最大的范圍之間,如果訪問的區(qū)域超出這個范圍,則訪問會被拒絕,同時輸出報錯誤信息。
6. 總結(jié)
本文檔以S7-200為主站和CP341為從站簡單介紹了Modbus RTU通訊,關(guān)于通訊的組態(tài)設(shè)置,編程以及常用功能碼的使用,其具體的使用可以作為西門子串行通訊模塊與第三方的儀表、設(shè)備等進(jìn)行串行通信的參考。
7. 相關(guān)參考資料
關(guān)于西門子串行通信應(yīng)用的文檔可以參考相關(guān)產(chǎn)品手冊,或登錄下載中心網(wǎng)站http://www.ad.siemens.com.cn/download/ , 搜索下載如下文檔:
A0006:串口通訊模塊的信息與使用
A0081:CP340/341/440/441通訊及編程
A0336:CP341 Modbus RTU多站點(diǎn)輪詢
A0440:CP340/341基于ASCII驅(qū)動協(xié)議的多站點(diǎn)輪詢
A0384:S7-300 CP341作主S7-200作從的Modbus通信
關(guān)鍵詞
CP341,Modbus RTU,功能碼,S7-200
S7-200CPU掉電數(shù)據(jù)保持常見問題
-
文檔
-
涉及產(chǎn)品
問題1:S7-200 CPU內(nèi)部存儲區(qū)類型?
回答:S7-200 CPU內(nèi)部存儲區(qū)分為易失性的RAM存儲區(qū)和永久保持的EEPROM兩種,其中RAM包含CPU工作存儲區(qū)和數(shù)據(jù)區(qū)域中的V數(shù)據(jù)存儲區(qū)、M數(shù)據(jù)存儲區(qū)、T(定時器)區(qū)和C(計數(shù)器)區(qū),EEPROM包含程序存儲區(qū)、V數(shù)據(jù)存儲區(qū)的全部和M數(shù)據(jù)存儲區(qū)的前14個字節(jié)。
也就是說V區(qū)和MB0-MB13這些區(qū)域都有對應(yīng)的EEPROM永久保持區(qū)域。
EEPROM的寫操作次數(shù)是有限制的(最少10萬次,典型值為100萬次),所以請注意只在必要時才進(jìn)行保存操作。否則,EEPROM可能會失效,從而引起CPU故障。
EEPROM的寫入次數(shù)如果超過限制之后,該CPU即不能使用了,需要整體更換CPU,不能夠只更換CPU內(nèi)EEPROM,西門子不提供這項服務(wù)。
問題2:S7-200 CPU的存儲卡的作用?
回答:S7-200還提供三種類型的存儲卡用于永久存儲程序,數(shù)據(jù)塊,系統(tǒng)塊,數(shù)據(jù)記錄(歸檔)、配方數(shù)據(jù),以及一些其他文件等,這些存儲卡不能用于實時存儲數(shù)據(jù),只能通過PLC—存儲卡編程的方法將程序塊/數(shù)據(jù)塊/系統(tǒng)塊的初始設(shè)置存于存儲卡內(nèi)。
存儲卡分為兩種,根據(jù)大小共有三個型號。
32K存儲卡:僅用于儲存和傳遞程序、數(shù)據(jù)塊和強(qiáng)制值。32K存儲卡只可以用于向新版(23版)CPU傳遞程序,新版CPU不能向32K存儲卡中寫入任何數(shù)據(jù)。而且32K存儲卡不支持存儲程序以外的其他功能。訂貨號:6ES7 291-8GE20-0XA0。
64K/256K存儲卡:可用于新版CPU(23版)保存程序、數(shù)據(jù)塊和強(qiáng)制值、配方、數(shù)據(jù)記錄和其他文件(如項目文件、圖片等)。64K/256K新存儲卡只能用于新版CPU(23版)。64K存儲卡訂貨號: 6ES7 291-8GF23-0XA0;256K存儲卡訂貨號:6ES7 291-8GH23-0XA0。
為了把存儲卡中的程序送到CPU中,必須先插入存儲卡,然后給CPU上電,程序和數(shù)據(jù)將自動復(fù)制到RAM及EEPROM中。
存儲卡的使用完整限制條件,請參考《S7-200系統(tǒng)手冊》附錄A 技術(shù)規(guī)范—可選卡件一節(jié)。
S7-200的外部存儲卡有哪些功能?
459464
問題3:S7-200 CPU內(nèi)的程序是否具有掉電保持特性?
回答:S7-200 CPU內(nèi)的程序塊下載時,會同時下載到EEPROM中,也就是說程序下載后,將永久保持。同樣,系統(tǒng)塊和數(shù)據(jù)塊下載時,也會同時下載到EEPROM中。
問題4:S7-200 CPU內(nèi)部的數(shù)據(jù)的掉電保持特性?
回答:S7-200系統(tǒng)手冊第四章——“PLC基本概念”一章中“理解S7--200如何保存和存儲數(shù)據(jù)”一節(jié)詳細(xì)介紹了S7-200 CPU內(nèi)數(shù)據(jù)的掉電保持特性,建議用戶仔細(xì)閱讀。
S7-200 CPU內(nèi)的數(shù)據(jù)分為RAM區(qū)和EEPROM區(qū)。
其中,RAM區(qū)數(shù)據(jù)需要CPU內(nèi)置的超級電容或者外插電池卡才能實現(xiàn)掉電保持特性。
對于CPU221和CPU222的內(nèi)置超級電容,能提供典型值約50小時的數(shù)據(jù)保持。
對于CPU224,CPU224XP,CPU224XPsi和CPU226的內(nèi)置超級電容,能提供典型值約100小時的數(shù)據(jù)保持。
超級電容需要在CPU上電時充電。為達(dá)到上述指標(biāo)的數(shù)據(jù)保持時間,需要連續(xù)充電至少24小時。
當(dāng)該時間不夠時,可以購買電池卡,以獲得更長時間的數(shù)據(jù)保持時間。
EEPROM區(qū)能實現(xiàn)數(shù)據(jù)永久保持,不依靠超級電容或者電池就可以保持?jǐn)?shù)據(jù)。
問題5:S7-200 CPU內(nèi)部數(shù)據(jù)的工作順序?
回答:S7-200 CPU一上電后,CPU先去檢查RAM區(qū)域中的數(shù)據(jù),如果在超級電容或者電池有電的情況下,數(shù)據(jù)并未丟失,則使用該RAM區(qū)的數(shù)據(jù);如果超級電容或者電池沒電了,導(dǎo)致數(shù)據(jù)丟失,則CPU去讀EEPROM中相應(yīng)的區(qū)域(包含數(shù)據(jù)塊中的數(shù)據(jù)定義內(nèi)容),如果在EEPROM中存有永久保持的數(shù)據(jù),則CPU將EEPROM中的數(shù)據(jù)寫回到RAM區(qū)中,再進(jìn)行下面的工作。
如果EEPROM中也沒有對應(yīng)存儲區(qū)的數(shù)據(jù)了,則該存儲區(qū)的數(shù)據(jù)將變成0。
問題6:S7-200 CPU電池卡的使用注意事項?
回答:新版S7-200 CPU電池卡有兩種型號。
對于CPU221和CPU222,由于其中沒有實時時鐘,則對應(yīng)的為時鐘電池卡,訂貨號為:6ES7297--1AA23--0XA0。
對于CPU224,CPU224XP,CPU224XPsi和CPU226,電池卡僅提供電池功能,訂貨號為:6ES7 291--8BA20--0XA0,該款電池卡型號又叫做BC293。
電池卡的壽命典型值約為200天,當(dāng)插上電池卡后,如果CPU處于工作狀態(tài)或者超級電容有電的情況下,并不消耗電池卡的電量。當(dāng)電池卡的電量消耗完畢之后,該電池卡就報廢了。
S7-200電池卡不能充電,使用完畢就不能再用了,只能購買新的電池卡了。
S7-200沒有檢測電池卡內(nèi)剩余電量的狀態(tài)位和這種功能。
新版S7-200 CPU電池卡不能用于老CPU,即訂貨號為6ES7xxx-xxx21-0XB0和6ES7xxx-xxx22-0XB0以及更老版本的CPU。
圖1
以上為兩種電池卡以及所在插槽位置。
電池卡的使用完整限制條件,請參考《S7-200系統(tǒng)手冊》附錄A 技術(shù)規(guī)范—可選卡件一節(jié)。
問題7:S7-200 CPU內(nèi)EEPROM的使用方法?
回答:EEPROM的寫入分為如下幾種情況:
1、MB0—MB13的設(shè)置,只需要在系統(tǒng)塊—斷電數(shù)據(jù)保持中設(shè)置即可。
默認(rèn)情況下,系統(tǒng)塊設(shè)置如下圖藍(lán)框中所示,即MB14—MB31,這些區(qū)域沒有對應(yīng)的EEPROM區(qū)域,無須考慮EEPROM寫入次數(shù)限制。
圖2
MB0—MB13如果在系統(tǒng)塊中設(shè)置成掉電保持區(qū)域,如圖2紅框中所示,并將系統(tǒng)塊下載到CPU之后,則這14個字節(jié)的數(shù)據(jù)在掉電的瞬間會將數(shù)值寫入EEPROM中,如果掉電時間超過超級電容和電池的保持時間之后,再上電時,CPU會將EEPROM中存儲的數(shù)據(jù)數(shù)值寫回到RAM中對應(yīng)的存儲區(qū),實現(xiàn)永久保持?jǐn)?shù)據(jù)的目的。
注意:實現(xiàn)該功能一定要將修改過的系統(tǒng)塊下載到CPU中。
2、數(shù)據(jù)塊中定義的數(shù)據(jù),如圖3所示,當(dāng)下載數(shù)據(jù)塊的時候,同時會將定義的數(shù)據(jù)下載到EEPROM中,這樣,當(dāng)?shù)綦姇r間超過超級電容和電池的保持時間之后,再上電時,CPU會將EEPROM中存儲的數(shù)據(jù)塊中定義的數(shù)據(jù)數(shù)值寫回到RAM中對應(yīng)的存儲區(qū),實現(xiàn)永久保持?jǐn)?shù)據(jù)的目的。也就是恢復(fù)成數(shù)據(jù)的初始設(shè)置值。
注意:實現(xiàn)該功能一定要將定義好數(shù)據(jù)的數(shù)據(jù)塊下載到CPU中。
圖3
3、使用SMB31和SMW32控制字來實現(xiàn)將V區(qū)的數(shù)據(jù)存到EEPROM中
特殊存儲器字節(jié)31 (SMB31)命令S7-200將V存儲區(qū)中的某個值復(fù)制到永久存儲器的V存儲區(qū),置位SM31.7提供了初始化存儲操作的命令。特殊存儲器字32 (SMW32)中存儲所要復(fù)制數(shù)據(jù)的地址。如圖4為S7-200系統(tǒng)手冊內(nèi)關(guān)于SMB31和SMW32的使用說明。
圖4
采用下列步驟來保存或者寫入V存儲區(qū)中的一個特定數(shù)值:
1. 將要保存的V存儲器的地址裝載到SMW32中。
2. 將數(shù)據(jù)長度裝載入SM31.0和SM31.1。具體含義如圖4所示。
3. 將SM31.7置為1。
圖5
注意:如果在數(shù)據(jù)塊中定義了某地址的數(shù)據(jù),而又使用這種辦法存儲同樣地址的數(shù)據(jù),則當(dāng)CPU內(nèi)超級電容或電池沒電時,CPU再上電時將采用SMB31和SMW32存儲的數(shù)據(jù)。
問題8:EEPROM寫入次數(shù)的統(tǒng)計?
回答:每次下載程序塊/數(shù)據(jù)塊/系統(tǒng)塊或者執(zhí)行一次SMB31.7置位的操作都算作對EEPROM的一次寫操作,所以請注意在程序中一定不要每周期都調(diào)用SMB31/SMW32用于將數(shù)據(jù)寫入EEPROM內(nèi),否則CPU將很快報廢。
問題9:不使用數(shù)據(jù)塊的方法,如何在程序中實現(xiàn)不止一個V區(qū)數(shù)據(jù)的存儲?
回答:由于SMB31/SMW32一次最多只能送入一個V區(qū)雙字給EEPROM區(qū)域,因而當(dāng)有超過一個雙字的數(shù)據(jù)需要送入EEPROM中時,需要程序配合實現(xiàn)。具體操作方法可參照如下的例子,即使用SMB31/SMW32送完一個數(shù)據(jù)(字節(jié)/字/雙字)之后,通過一個標(biāo)志位(如M0.0)來觸發(fā)下一個SMB31/SMW32操作,之后需要將上一個標(biāo)志位清零,以用于下一次的存儲數(shù)據(jù)的操作。
由于SM31.7在每次操作結(jié)束之后都自動復(fù)位,因而不能使用它作為第二次觸發(fā)操作的條件。
以上程序僅供參考。
或者可以參考如下FAQ,多次調(diào)用指令庫用以存儲多個V區(qū)變量到EEPROM存儲區(qū)中:
如何在 CPU 內(nèi)部 EEPROM 存儲空間中永久保存變量區(qū)域?
17471561
問題10:定時器和計數(shù)器以及MB14-MB31的掉電保持性能?
回答:計數(shù)器和TONR型的定時器(T0-T31,T64-T95)能夠?qū)崿F(xiàn)掉電保持。這些區(qū)域只能由超級電容和電池來進(jìn)行數(shù)據(jù)的掉電保持,他們并沒有對應(yīng)的EEPROM永久保持存儲區(qū)。當(dāng)超過超級電容和電池供電的時間之后,這些計數(shù)器和TONR定時器的數(shù)據(jù)全部清零。
TON和TOF型的定時器(T32-T63,T96-T255)沒有掉電保持?jǐn)?shù)據(jù)的功能。請不要在系統(tǒng)塊中設(shè)置這些區(qū)域為掉電保持,如圖6所示為錯誤做法:
圖6
按上述做法設(shè)置之后,下載系統(tǒng)塊時會導(dǎo)致如下錯誤發(fā)生:
圖7
所以請不要將T32-T63,T96-T255的定時器設(shè)為掉電保持區(qū)域。
問題11:CPU內(nèi)具備斷電保持性的數(shù)據(jù)區(qū)為何會丟失?
以下情況會導(dǎo)致CPU內(nèi)數(shù)據(jù)清零:
1. 沒有插入電池卡的CPU斷電時間過長,內(nèi)部超級電容放電完畢,TONR區(qū)/C區(qū)/MB14-MB31區(qū)數(shù)據(jù)丟失,V區(qū)和MB0-MB13區(qū)的對應(yīng)EEPROM內(nèi)沒有數(shù)據(jù)導(dǎo)致數(shù)據(jù)丟失,
2. 電池卡使用時間過長,使之沒電了, TONR區(qū)/C區(qū)/MB14-MB31區(qū)數(shù)據(jù)丟失,V區(qū)和MB0-MB13區(qū)的對應(yīng)EEPROM內(nèi)沒有數(shù)據(jù)導(dǎo)致數(shù)據(jù)丟失,
3. 插在CPU上的存儲卡內(nèi)程序/數(shù)據(jù)與CPU內(nèi)部RAM中運(yùn)行的程序/數(shù)據(jù)不符,一上電時會導(dǎo)致原有數(shù)據(jù)/程序的丟失。
4. CPU損壞。
相關(guān)參考手冊:
S7-200系統(tǒng)手冊:
1109582
在其中第四章——“PLC基本概念”一章中“理解S7--200如何保存和存儲數(shù)據(jù)”一節(jié)有詳細(xì)介紹。
Micro'n Power《西門子 S7-200?LOGO!?SITOP 參考》V0.93版(更新版)
http://www.ad.siemens.com.cn/download/searchResultbx?searchText=A0136
在其中“S7-200PLC—功能、編程與調(diào)試—數(shù)據(jù)保持”一節(jié)和“S7-200PLC—功能、編程與調(diào)試—外插卡(時鐘/電池、存儲卡)” 一節(jié)中有詳細(xì)介紹。
關(guān)鍵詞
S7-200,數(shù)據(jù)存儲,RAM,EEPROM,掉電保持
長沙玥勵 西門子 6ES7232-4HD32-0XB0