產(chǎn)品詳情
長沙 西門子 6ES7332-5HB01-4AB1 模塊 PLC
S7-200和S7-300之間的MPI通信
S7-200 PLC與S7-300 PLC之間采用MPI通訊方式時,S7-200 PLC中不需要編寫任何與通訊有關(guān)的程序,只需要將要交換的數(shù)據(jù)整理到一個連續(xù)的V 存儲區(qū)當中即可,而S7-300 PLC中需要在組織塊OB1(或是定時中斷組織塊OB35)當中調(diào)用系統(tǒng)功能X_GET(SFC67)和X_PUT(SFC68),以實現(xiàn)S7-200 PLC與S7-300 PLC之間的通訊。調(diào)用SFC67和SFC68時VAR_ADDR參數(shù)填寫S7-200的數(shù)據(jù)地址區(qū),由于S7-200的數(shù)據(jù)區(qū)為v區(qū),這里需填寫 P#DB1.DBX×× BYTE n 對應(yīng)的就是S7200 V存儲區(qū)當中VB××到VB(××+n)的數(shù)據(jù)區(qū)。例如交換的數(shù)據(jù)存在S7-200中VB50到VB59這10個字節(jié)當中,VAR_ADDR參數(shù)應(yīng)為 P#DB1.DBX50.0 BYTE 10.
首先根據(jù)S7-300的硬件配置,在STEP7當中組態(tài)S7-300站并且下載,注意S7-200和S7-300出廠默認的MPI地址都是2,所以必須修改其中一個PLC的站地址,例子程序當中將S7-300 MPI地址設(shè)定為2,S7-200地址設(shè)定3,另外要分別將S7-300和S7-200的通訊速率設(shè)定一致,可設(shè)為9.6K,19.2K,187.5K三 種波特率,例子程序當中選用了19.2K的速率。
S7-200 PLC中通過系統(tǒng)塊定義自身的MPI地址和波特率,參考下圖:
圖1 S7-200 設(shè)置MPI地址
S7-300 PLC修改MPI地址可以參考下圖:
圖2 S7-300 設(shè)置MPI地址
例子程序在OB1當中調(diào)用數(shù)據(jù)讀寫功能塊:SFC67和SFC68,如下圖:
圖3 程序編寫
分別在STEP7 MicroWin32 和STEP7當中監(jiān)視S7-200和S7-300 PLC當中的數(shù)據(jù),數(shù)據(jù)監(jiān)視界面如下:
圖4 S7-200監(jiān)控結(jié)果
圖5 S7-300監(jiān)控結(jié)果
通過CP5611,STEP7 MicroWin32, Set PG/PC Interface可以讀取S7200和S7300的站地址,如下圖:
圖6 CP5611診斷結(jié)果(站地址0為進行編程的計算機)
圖7 使用STEP7 MicroWin32診斷結(jié)果
注意事項
1 雖然MPI的波特率可以達到12M,但是受到S7-200通信能力的限制,所以可設(shè)為9.6K,19.2K,187.5K三 種波特率。
2 如果PPI或者MPI的通信距離超過50m,需要加中繼器;如果中繼器之間沒有任何站點的情況下,最遠距離可為1000米。
3 MPI不能與作為PPI主站的S7-200PLC通信。
系列視頻:S7-200跟我學(xué)/跟我做:
S7-200CN: PROFIBUS通信效果演示-跟我學(xué) - 173/185 | http://www.ad.siemens.com.cn/service/elearning/cn/CourseV2bx?CourseID=422 |
S7-200CN: PROFIBUS通信效果演示-跟我做 - 174/185 | http://www.ad.siemens.com.cn/service/elearning/cn/CourseV2bx?CourseID=423 |
S7-200和S7-300之間的PROFIBUS通信
S7-300與S7-200通過EM277進行PROFIBUS DP通訊,需要在STEP7中進行S7-300站組態(tài),在S7-200系統(tǒng)中不需要對通訊進行組態(tài)和編程,只需要將要進行通訊的數(shù)據(jù)整理存放在V 存儲區(qū),并且S7-300組態(tài)EM277從站時設(shè)置正確的地址即可。
EM277的地址,在模塊本身上的撥碼設(shè)置分為X0(地址個位)和X10(地址十位);EM277是波特率自適應(yīng)的,取決于S7-300的組態(tài)。
配置步驟
首先,在STEP 7項目里插入一個S7-300的站:
圖1 S7-300組態(tài)
選中STEP7的硬件組態(tài)窗口中的菜單 Option-install new GSD(GSD 文件下載:113652) ,導(dǎo)入SIEM089D.GSD文件,安裝EM277從站配置文件,如下圖:
圖2 安裝GSD
在SIMATIC文件夾中有EM277的GSD文件:
圖3 安裝GSD
導(dǎo)入GSD文件后,在右側(cè)的設(shè)備選擇列表中找到EM277從站,PROFIBUS DP-Additional Field Device-PLC-SIMATIC-EM277,并且根據(jù)通訊字節(jié)數(shù),選擇一種配置,本例選擇8字節(jié)入/8字節(jié)出的方式,如下圖:
圖4 通信區(qū)域組態(tài)
確定S7-300硬件組態(tài)中所設(shè)置EM277的地址,如下圖紅框標注,為DP從站EM277的站地址。
圖5 組態(tài)DP通信地址
組態(tài)完系統(tǒng)的硬件配置后,將編譯下載到S7-300的PLC當中。
在S7-200側(cè)斷電的情況下,將EM277的撥位開關(guān)撥到與S7-300側(cè)硬件組態(tài)的設(shè)定值一致。
在S7-200中編寫程序?qū)⑦M行交換的數(shù)據(jù)存放在VB0-VB15,對應(yīng)S7-300的PQB0-PQB7和PIB0-PIB7,打開 STEP7中的變量表和STEP7 MicroWin32的狀態(tài)表進行監(jiān)控,它們的數(shù)據(jù)交換結(jié)果如下圖:
圖6 通信數(shù)據(jù)監(jiān)控
圖7 通信數(shù)據(jù)監(jiān)控
注意:VB0-VB7是S7-300寫到S7-200的數(shù)據(jù),VB8-VB15是S7-300從S7-200讀取的值。EM277上撥位開 關(guān)的位置一定要和S7-300中組態(tài)的地址值一致。如果使用的S7-200通信區(qū)域不從VB0開始,則需要設(shè)置地址偏移,在S7-300硬件組態(tài)中雙擊 EM277,修改數(shù)值0為實際使用的數(shù)值即可,如下圖所示:
圖8 地址區(qū)域偏移設(shè)置
常問問題
DP通信所需要傳輸?shù)臄?shù)據(jù)超過64字節(jié)怎么辦?
方法1:以64字節(jié)通信區(qū)為例,若超過最大配置。那么可以將通信區(qū)的第一個字節(jié)作為標志位,這樣需要在S7-200中分時或條件判斷,將數(shù)據(jù)放置或讀取通信區(qū)域。同理,在S7-300中也需要判斷標志位。
方法2:滿足擴展要求的前提下,同一個200PLC可以擴展多個EM277,具體可以參考本文中最大I/O擴展能力的要求,那么在同一個S7-300的項目里可以組態(tài)多個PROFIBUS從站。
方法1可以增大通信的數(shù)據(jù)量,但由于通過標志位來分時分次傳輸?shù)?,所以通信?shù)據(jù)的刷新會比方法2慢;方法2通過擴展DP從站或者200PLC的通信端口來實現(xiàn)數(shù)據(jù)擴展的,但增加了成本,且需要考慮是否滿足擴展要求。
S7-200和S7-300的以太網(wǎng)通信
S7-200 PLC本體沒有以太網(wǎng)口,需要通過以太網(wǎng)模塊CP243-1來擴展以太網(wǎng)通信,且一個S7-200PLC只能擴展一個CP243-1。CP243-1不是即插即用模塊,需要通過其他方式對S7-200下載一個包含以太網(wǎng)向?qū)У捻椖课募趴梢允褂谩?br />
通過以太網(wǎng)向?qū)?,最?個以太網(wǎng)S7控制器通信,每個連接既可以是服務(wù)器連接也可以是客戶機連接。除此之外,CP243-1還可以同時支持一個STEP 7-Micro/WIN的編程連接。
一個客戶端(Client)可以包含1-32個數(shù)據(jù)傳輸操作,一個讀寫操作最多可以傳輸212個字節(jié)。如果CP243-1作為服務(wù)器運行,每個讀操作可以傳送222個字節(jié)。
S7-200 可以通過 CP243-1 作為服務(wù)器端和客戶端建立 S7 連接,這意味著以下可能:
1. 在 S7-200 中配置一個客戶端,因此S7-200將主動激活與遠程服務(wù)器的 S7 連接。
2. 在S7-200中配置服務(wù)器連接,因此S7-200可被動的響應(yīng)建立好的S7連接,遠程的客戶端將與S7-200建立連接,S7-200作為服務(wù)器提供數(shù)據(jù)。
S7-200作為客戶機
可以把S7-200的以太網(wǎng)模塊CP243-1配置為CLIENT,使用STEP 7 Micro/WIN中的向?qū)нM行通信的配置即可。在命令菜單中選擇工具--以太網(wǎng)向?qū)А?
圖1 打開以太網(wǎng)向?qū)?span>
第一步是對以太網(wǎng)通信的描述,點擊下一步開始以太網(wǎng)配置。
圖2 向?qū)Ы榻B
在此處選擇模塊的位置,CPU后的第一個模塊位置為0,往后依次類推;或者在線的情況下,點擊讀取模塊搜尋CP243-1模塊(在線讀取將該模塊的命令字節(jié)載入模塊命令字節(jié)向?qū)聊唬?。點擊下一步;
圖3 讀取模塊
選擇模塊相匹配的MLFB版本,本例中的CP243-1模塊型號為6GK7243-1EX01-0XE0,如下圖所示:
圖4 模塊版本選擇
在此處填寫IP地址和子網(wǎng)掩碼。點擊下一步;
圖5 地址設(shè)置
下面的對話框?qū)⒔M態(tài)CP243-1進行S7連接的連接數(shù)量的設(shè)置,通過S7連接可以與通信伙伴進行讀寫數(shù)據(jù)操作。點擊“下一步”按鈕繼續(xù)進行S7連接組態(tài)。
圖6 模塊占用地址設(shè)置
選擇此為客戶機連接,遠程屬性TSAP (Transport Service Access Point)填寫為03.02,輸入S7-300側(cè)的IP地址。點擊數(shù)據(jù)傳輸按鈕進入數(shù)據(jù)交換的定義。
注意:如果連接遠程對象是 S7-300,TSAP為03.02;如果連接遠程對象是 S7-400,TSAP為03.0x,其中x為CPU模塊的槽位,可以從S7-400 站的硬件組態(tài)中找出PLC的槽號。
圖7 連接設(shè)置
選擇"數(shù)據(jù)傳輸"標記,并單擊"新傳輸"按鈕,進行配置:選擇是讀取數(shù)據(jù)還是寫入數(shù)據(jù),填寫通訊數(shù)據(jù)的字節(jié)個數(shù),填寫發(fā)送數(shù)據(jù)區(qū)和接收數(shù)據(jù)區(qū)的起始地址。
本例中為從S7-300的MB200開始讀取8個字節(jié)到VB1000開始的8個字節(jié)的區(qū)域中;從S7-200的VB2000開始的8個字節(jié)寫到S7-300的QB0開始的8個字節(jié)的區(qū)域中,點擊確認按鈕:
注意: 本地PLC中的地址必須是V內(nèi)存字節(jié)地址,遠程對象中的地址必須代表字節(jié)地址。當您為S7-300/ S7-400設(shè)備輸入遠程地址時,若是數(shù)據(jù)塊請使用DBx.DBBy格式。
圖8 數(shù)據(jù)區(qū)域設(shè)置
選擇CRC校驗,使用缺省的時間間隔30秒,點擊下一步按鈕。
圖9 使用CRC
填寫模塊所占用的V存儲區(qū)的起始地址。你也可以通過“建議地址”按鈕來獲得系統(tǒng)建議的V存儲區(qū)的起始地址, 點擊下一步按鈕。
圖10 配置存儲區(qū)
S7-200 CPU 編程通信
完成以太網(wǎng)向?qū)渲煤笮枰诔绦蛑姓{(diào)用以太網(wǎng)向?qū)傻腅THx_CTRL和ETH0_XFR, 然后,將整個項目下載到作客戶端的S7-200 CPU上。
1. 調(diào)用向?qū)傻淖映绦?,實現(xiàn)數(shù)據(jù)傳輸
對于S7-200的同一個連接的多個數(shù)據(jù)傳輸,不能同時激活,必須分時調(diào)用。下面的程序就是用前一個數(shù)據(jù)傳輸?shù)耐瓿晌蝗ゼせ钕乱粋€數(shù)據(jù)傳輸,如圖11.圖12.圖13. 所示
圖11 S7-200程序段1
圖12 S7-200程序段2
圖13 S7-200程序段3