6ES7 952-1KL00-0西門子內存卡6ES7 952-1KL00-0AA0
西門子SIMATIC S7系列串行通信模塊,包括CP340、CP341、CP440-1、CP441-1/2、CPU313C/314C-2PtP以及ET200S的1SI 3964/ASCII等,都支持ASCII驅動協議的通信,可以廣泛地用于與第三方支持ASCII協議的儀表、設備、系統等進行點對點連接通信,具有應用簡單、靈活,使用方便等優點。
本文通過一個具體的示例,給出了在多個西門子串口通信模塊(CP340/CP341)之間通過ASCII驅動協議進行輪詢通信的應用。其具體的實現方法和輪詢原理具有普遍的指導意義,可以作為串行通信模塊與支持ASCII協議的儀表、設備、系統等進行串行通信的參考。
1 網絡搭建和硬件組態
1.1 網絡搭建
1.1.1 系統組成
如下圖1所示,系統包括3個SIMATIC S7-300站,其中一個作為串行通信的主站,通過ASCII驅動協議輪詢采集另外兩個從站的數據。系統主站和1#從站各配置了一個串行通信模塊CP341(6ES7341-1CH01-0AE0)(RS422/485接口),2#從站配置了一個串行通信模塊CP340(6ES7340-1AH02-0AE0)(RS232C接口),為了將它們連接到一個網絡中,在本例中選擇了的PC/PPI電纜(6ES7901-3CB30-0XA0)將2#從站的RS232C接口轉換為RS485接口連接到網絡中。
圖1 系統組成結構圖
系統涉及的主要硬件設備及版本信息如表1
設備名稱 | 訂貨號 | 版本 |
主站 |
|
|
CPU模塊 | 6ES7315-2AG10-0AB0 | V2.6 |
CP341 | 6ES7341-1CH01-0XE0 | V1.02 |
1#從站 |
|
|
CPU模塊 | 6ES7315-2AG10-0AB0 | V2.6 |
CP341 | 6ES7341-1CH01-0XE0 | V1.02 |
2#從站 |
|
|
CPU模塊 | 6ES7315-2AG10-0AB0 | V2.6 |
CP340 | 6ES7340-1AH02-0XE0 | V1.04 |
PC/PPI電纜 | 6ES7901-3CB30-0XA0 |
|
表1 系統主要硬件設備及版本信息
1.1.2 軟件環境
Ø 操作系統:Windows XP Professional SP2;
Ø 編程軟件:STEP7 V5.4 SP4;
Ø PTP協議軟件包:SIMATIC S7-CP PtP Param V5.1+SP11
下載鏈接:/cs/document/27013524?caller=view&lc=zh-CN。
1.1.3 電纜和硬件連接
根據具體情況可以自己制作通信電纜,也可以選擇提供的定制電纜。在通信距離可以滿足要求的情況下,建議選擇提供的串行通信電纜,電纜訂貨號如表2。
表2 連接電纜訂貨號
詳細的硬件連接如圖2所示。
圖2 實際硬件連接圖
1.2 參數分配
1.2.1 組態主站
Ø CP341模塊起始地址256,ASCII協議模式;
Ø 消息幀結束標準:字符延遲時間4ms;
Ø 波特率:9600bps,8位數據位,1位停止位,無校驗;
Ø 接口類型:RS485半雙工;
Ø 其他采用默認值。
圖3 主站CP341模塊協議參數分配圖
圖4 主站CP341模塊接口參數分配圖
1.2.2 組態從站
對于從站CP341/CP340模塊的參數分配與主站保持*,特別注意波特率、數據位、停止位和奇偶校驗位設置要與主站相同。
說明:詳細的接口參數設置請參考CP341/CP340手冊及相關文檔。
下載鏈接:http://www.ad.siemens.com.cn/download/
圖5 2#從站CP340模塊協議參數分配圖
2 輪詢原理
2.1原理說明
與MODBUS協議輪詢不同,由于每個從站自身不具有*的設備標識信息(從站地址),無法直接區分和識別網絡上的數據幀是哪個站的、需要哪個站做出響應,所以要通過ASCII協議驅動實現多站點輪詢,需要人為地對每個站做出標識,并在主站發送輪詢指令時給出相應的指令標識,以便從站能夠識別是否是發送給自己的數據以及是否做出響應。
在ASCII協議驅動實現多站點輪詢的過程中,應主要考慮以下幾個方面:
Ø 基本模式:主站主動請求,從站根據請求作出響應;
Ø 數據幀:在發送或響應數據幀中要包含有站點標識的信息;
Ø 實現方法:定時輪詢,完成后直接啟動下一個作業,完成后延時啟動下一個作業等實現方法;
Ø 校驗、錯誤處理機制:CRC、等待、丟棄、重試等。
本應用實例在以上幾個方面都采用了相對簡單的處理方式,在實際的應用中,針對不同的通信對象,可以具體分析并作出相應的處理。
2.2 輪詢機制
2.2.1數據幀格式
為了區別1#從站和2#從站,在消息幀中增加一個字的地址標識字符,主站通過發送不同地址標識字符的幀來輪詢不同從站,同時從站根據地址字符來判斷是否是給自己的消息,并據此做出相應的處理。從站發送給主站的響應幀也包含有自己的地址標識字符,用于主站判斷是哪個從站返回的數據。字符幀格式如下:
圖6 定義的主從站數據幀格式
2.2.2 時序圖
如下圖所示,主站按順序輪詢1#從站和2#從站。
圖7 輪詢時序圖
2.2.3 流程圖
Ø 初始化流程
初始化主要針對主站而言。在初始化階段主要完成CP模塊的參數化、初始化輪詢計數器,復位接收緩沖區以及根據輪詢計數器生成發送數據幀等方面的工作。
Ø 主站輪詢流程
如下圖所示,在系統初始化完成后,手動啟動*次輪詢作業,本實例先輪詢1#從站。給1#從站發送查詢請求后,等待1#從站的響應,如果在的延時時間內接收到1#從站返回的數據,則給2#從站發送查詢請求,并等待2#從站的響應,同樣如果在的延時時間內接收到2#從站返回的數據,則一次完整的輪詢結束,自動啟動新一輪的輪詢。
如果在的延時時間內不能接收到從站的返回數據或接收錯誤,則跳過本站,開始輪詢下一個站點。
圖8 主站輪詢流程圖
Ø 從站響應流程
從站根據主站的請求做出響應,主要是在接收到網絡上的數據后,判斷是否是給自己的數據。如果是,則將數據接收到的數據區,同時啟動發送功能,發送相應的返回數據給主站;如果不是,則直接刪除收到的數據,并不做任何響應。
圖9 從站響應流程圖
3 程序實現
接下來我們就可以根據上述輪詢思想,通過編寫STEP7程序具體實現主站輪詢從站的功能。由于主站、從站任務的不同,所以在程序上的實現上也有所不同,下面針對主站和從站的程序實現做個簡要描述。具體的例程可以參考本文附帶的樣例程序。
3.1 主站程序
3.1.1 初始化
為了實現對多個從站的輪詢,程序構造了一個輪詢計數器,通過修改輪詢計數器的值,來修改主站發送數據幀中的站地址標識字符。
本例中定義MW2作為輪詢計數器,程序開始,先對輪詢計數器進行操作,默認先輪詢1#從站,將值1賦值給MW2。
圖10 初始化輪詢計數器程序段
在程序執行過程中,會修改輪詢計數器的值,通過判斷輪詢計數器的值對發送數據塊的地址標識符字作相應的修改,以完成對響應從站的輪詢。本例中具體的實現如下圖,其中DB13作為發送數據塊,DB13.DBW0為地址標識符字。
圖11 生成地址標識符程序段
3.1.2 啟動發送
初始化完成后,可以啟動發送功能。本例*次發送采用手動方式,通過觸發手動啟動標志位M30.1,并調用FB8 P_SND_RK發送數據到從站。完成*次發送后,可以通過程序自動修改自動輪詢標志位M30.0來實現自動發送數據到從站的功能,具體的FB8 P_SND_RK功能塊使用參考CP341手冊。
啟動發送功能塊FB8后,通過FB8返回狀態信息,判斷是否發送完成,如果發送錯誤,則重新啟動發送功能。
Ø 發送完成:啟動接收作業,準備接收從站返回數據。同時啟動一個超時定時器T11,如果超時定時時間到,還沒有接收到數據,則放棄等待,開始輪詢下一個站。
圖12 發送功能塊程序段
3.1.3 接收從站返回數據
發送完成后,啟動接收作業,準備接收從站返回數據,并將接收到的數據先放到接收緩沖區中,本例DB14數據塊為接收緩沖區。
圖13 接收功能塊程序段
3.1.4 接收完成
接收完成后,做如下幾方面處理。如果接收錯誤或超時,則跳過此站的輪詢。
Ø 根據接收到數據的地址標識符判斷是來自哪個從站的數據,并將數據從接收緩沖區轉移到的從站數據存儲區中,同時清空接收緩沖區;
Ø 復位接收標志,同時修改輪詢計數器的值,準備輪詢下一個從站;
Ø 復位超時定時器;
Ø 啟動一個延時定時器,延時時間到后開始輪詢下一個從站。
圖14 接收完成處理程序段
圖15 準備輪詢下一個站程序段
3.2 從站程序
相對于主站,從站的處理程序相對簡單。下面以2#從站為例做個說明,1#從站除了調用FB不同外,都與2#從站相同。
3.2.1 接收數據
從站一直啟動接收功能FB2 P_RCV,接收來自網絡上的數據,如果接收到數據則根據地址標識符判斷是否是本站的數據:
Ø 是本站數據,則將接收緩沖區(DB17)中的數據移到的地址區(DB18)中,并清空接收緩沖區。同時,觸發發送標志,發送返回數據給主站;
Ø 不是本站數據,直接清空接收緩沖區(DB17)。
圖16 從站接收程序段
圖17 從站接收完處理程序段
3.2.1 發送返回數據
接收完成后,調用發送功能,將DB19的數據發送給主站。
圖18 從站發送響應程序段
3.3 實驗結果
搭建好網絡,并將程序分別下載到各自的CPU中,啟動CPU的運行。通過置位手動啟動輪詢標志位M30.0即可啟動輪詢程序的運行。通過變量表可以監視到系統的運行情況,可以看到,主站會循環地將數據發送到兩個從站,同時也循環地接收來自從站的返回數據,如下圖所示。
圖19 系統運行監控圖
ASCII_Polling.zip (302 KB) ( 302 KB )
4 應用小結
通過本應用實例,可以看到基于ASCII驅動協議的多站點輪詢原理比較簡單。同時因為其較大的靈活性,所以可以與各種滿足ASCII協議的設備進行通信。串行通信模塊CP340、CP341、CP440-1、CP441-1/2、CPU313C/314C-2PtP以及ET200S的1SI 3964/ASCII等都集成有ASCII驅動協議功能,可以根據需求靈活地選擇這些產品。
本文所述應用和提供例程只作為相關應用的參考,在實際的應用中,應該充分考慮通信伙伴的特點和實際需求,結合不同的輪詢方式、錯誤處理機制、校驗方法、數據處理方法等手段達到通信目的。
鄭重聲明:本文的虛擬工程與真實工程實例有重大差別,示例中并未遵循規范的工程設計流程進行編程,請讀者切勿將其與工程實例相混淆;由于此例子是免費的,任何用戶可以免費復制或傳播此程序例子。程序的作者對此程序不承擔任何功能性或兼容性的責任,使用者風險自負;不提供此程序例子的錯誤更改或者支持;為了更好的使用這些模板,建議用戶仔細閱讀相關模板的使用手冊。
的很多面板沒有時鐘保持功能,這可以通過設置PLC同面板的時鐘同步來解決,如何同步Protool/Winccflexible組態操作面板與 S7-200/300/400 控制器的日期和時間可以參照以下鏈接中的描述:79626087
如何同步WinCC Basic 組態的Basic Panel的日期與時間與 S7-1200 PLC日期和時間可以參照以下鏈接中的描述:
39182145
另外,使用 WinCC flexible 組態的面板也可以訪問 S7-1200,可以參照以下鏈接內容:
38111886
這種情況下,使用的是S7 300/400 PLC的驅動來訪問S7 1200 PLC的,此時,一般的變量訪問是沒有問題的,但如果實現兩者的時鐘同步就有問題了,因為S7 1200 PLC的系統時鐘格式與S7 300/400 PLC的系統時鐘是不相同的,S7 1200 PLC的系統時鐘由以下12個字節組成:
而S7 300/400PLC的系統時鐘由以下8個字節組成:
因此,實現WinCCflexible組態面板同S7 1200 PLC的時鐘同步的關鍵在于將S7 1200 PLC的系統時鐘格式轉換為符合S7 300/400 PLC的系統時鐘格式。具體實現步驟如下:
1.創建DB塊
創建DB塊,確保“僅符號訪問”選項不使能:
2.創建DB塊變量
在DB塊中創建所需要的變量如下:
3.創建周期中斷塊
創建一個周期中斷塊,將默認的掃描周期100ms改為1000ms,這樣可以減小PLC的負 擔:
4.在周期中斷塊中編程
4.1讀出S7 1200系統的本地時鐘
4.2將S7-1200的系統時鐘轉換成S7-300/400 PLC格式的時鐘(只轉換到秒單位)
5.WinCC flexible中的組態
5.1創建連接
創建一個連接,通訊驅動選擇”SIMATIC S7 300/400”,并設置好其他相關參數:
5.2設置連接區域指針參數
將“日期時間PLC”的連接參數選擇為剛才創建的連接;將存放S7-300格式系統時鐘區域的首地址分配給“日期時間PLC”; 將采集周期設為2S或更長時間來減小通訊負載。
SIEMENS上海朕鋅電氣設備有限公司
:鐘濤(小鐘)
24小時銷售及:
電 話: 傳 真:
手 機: :
:
:
地址:上海市金山區楓灣路500號
公司主營:數控系統,S7-200PLC S7-300PLC S7-400PLC S7-1200PLC 6ES5 ET200 人機界面,變頻器,DP總線,MM420 變頻器MM430 變頻器MM440 6SE70交流工程調速變頻器6RA70直流調速裝置 SITOP電源,電線電纜,數控備件,伺服電機等工控產品。: :
1. SIWAREX MS稱重模塊簡介
SIWAREX MS稱重模塊集成在SIMATIC S7-200系統中,主要特征如下:
- 利用STEP 7 MicroWin版本4.0 SP2及更高版本進行配置;
- 分辯率高達16位的重量測量或力的測量;
- 精度0.05 %;
- 可以在20 ms或33 ms之間選擇的快速測量時間;
- 使用SIWATOOL MS軟件,通過RS 232接口很容易地實現校秤;
- 允許理論校秤;
- 更換模塊后無需重新校訂,只需重新下載校秤數據即可;
- 適用于1類防爆區域的本質安全稱重傳感器電源(SIWAREX IS選項);
- 診斷功能。
2. 設備及軟件列表
該實驗中用到的硬件和軟件如下:
設備名稱 | 訂貨號 | 數量 |
CPU224 DC/DC/DC | 214-1AD21-0XB0 | 1 |
SIWAREX MS稱重模塊 | 7MH4930-0AA01 | 1 |
稱重傳感器 | 7MH4103-3AC01 | 1 |
PC/PPI 電纜 | 6ES7 901-3BF20-0XA0 | 1 |
或6ES7 901-3DB30-0XA0 | ||
SIWATOOL連接電纜(可選) | 7MH4 702-8CA | 1 |
屏蔽連接端子 | 6ES5 728-8MA11 | 1 |
軟件 | 說明 |
STEP7 Micro/Win | 4.0 SP2及更高版本 |
配置軟件包 | 包含Micro/Win程序庫、SIWATOOL MS軟件及使用手冊 |
3. 添加稱重庫指令
添加庫文件,步驟如下:
選擇要添加的兩個庫文件,如下圖所示:
已經添加的兩個庫文件如下所示:
建議*次使用稱重模塊的用戶到下列下載上述庫文件和相應例子程序:
http://www.ad.siemens.com.cn/download/DocList.aspx?TypeId=5&CatFirst=36&CatSecond=-1&CatThird=-1
4. 庫文件參數說明
4.1 MicroScale_V20參數說明
一個SIWAREX MS需要占用PLC200的4個模擬量輸入和4個模擬量輸出,其地址通過參數“First_AIW、Second_AIW、Third_AIW、Fourth_AIW”及“First_AQW、Second_AQW、Third_AQW、Fourth_AQW”,該地址可以通過下列方式獲取:
從下圖可以看出,在該例子程序中稱重模塊輸入和輸出的起始地址分別為AIW0和AQW0
FirstVB_Pointer:每個稱重模塊要占用PLC的V區內的20個字節來存儲相關的參數,該區域的始地址由“FirstVB_POINTER”, 如&VB200,那么重量存儲在VW202中,其他字節的含義請參考SIWAREX MS使用手冊。
Lib_Error:稱重模塊的故障代碼,它已經包含在上述20字節中,其地址為FirstVB_POINTER+18,如果FirstVB_POINTER為200,則Lib_Error對應地址為VW218
4.2 MicroScale_additional說明
FirstVB:與MicroScale功能塊的FirstVB_POINTER地址相同;
DR_Point:在稱重模塊內部參數以數據記錄DR的方式存儲,例子程序中已經建立了這些數據記錄,如下圖所示:
這些數據記錄占用V區186個字節,起始地址通過DR_Point。
Command_Code:命令代碼
DR: 要讀或寫的數據記錄的編號,如DR3
Offset:要訪問的數據在數據記錄中的偏移量
Length:要訪問的數據長度,以byte為單位
Command_Trigger:命令觸發,與Command_Code配合使用,執行某個命令;
注意: 如果Offset和Length同時為0,則表示對整個數據記錄進行操作;
5. 如何設定砝碼重量、小數點個數、傳感器特征值、量程、重量單位等
以修改標定砝碼重量為例進行說明:
(1) 在狀態表DR3中找到砝碼重量對應的變量VW6,然后寫入砝碼重量
由于在SIWAREX MS內部,重量通過一個Word進行存儲,那么砝碼重量與小數點位數有關。稱重模塊默認顯示兩位小數,如果砝碼50kg,則需要寫入5000;如果沒有小數點,則輸入50即可
這樣就把砝碼重量50.00kg寫入PLC中;
(2)將PLC中的砝碼重量通過命令255寫入稱重模塊,DR、Offset和Length分別為3、6和2,如下圖所示。Command_Trigger設置為1,命令執行。
(3)通過讀數據記錄命令254,查看數據是否已經寫入稱重模塊,如下圖所示。
此時DR3的VW6已經為5000,即50.00kg
通過SIWATOOL MS軟件也可以看到此時已經修改成功。
修改其他參數,如量程,只需要在DR3的VW28中輸入量程,如10000,即100.00kg。
MicroScale_additional的Offset和Length改為28和2,其他操作同上。
6. 零點標定
將秤體清空,執行零點標定,重量顯示變為0kg
此時重量VW202變為0kg,如下所示
此時在SIWATOOL MS中也可以看到,重量已經變為0kg,如下圖所示:
7. 砝碼標定
把50kg的砝碼放在秤體上,然后執行命令4,如下圖所示:
標定后VW202顯示砝碼重量5000,即50.00kg,如下圖所示:
此時在SIWATOOL MS中也可以看到,重量已經變為50.00kg,如下圖所示:
標定結束后,通過命令254將DR3中的數據讀取上來,如下圖所示:
注意:讀取整個數據記錄的內容時,Offset和Length默認為0,只輸入DR即可
此時就可以在PLC 200的變量表中查看模塊中的參數了,如下圖所示:
上述數據與SIWATOOL MS內的參數*相同,如下圖所示:
使用說明:
光感開關通常用于確定對百葉窗控制的早晚的開關點。 如您希望使用 SIMATIC S7-200 來控制百葉窗,可以采用一種天文算法來決定日出和日落的時間,這種運算法可以作為一個 STEP 7 Micro/WIN 庫函數供您使用。只需相關位置的經度和緯度坐標作為參數,并將 CPU 時鐘設置為 UTC 時間。 此外,也可對比運算法則中光感應時間調整百葉窗的開關時間。例如,將百葉窗設定在日出前 10 分鐘開,在日落后 5 分鐘關。 一旦參數設定后,控制器就開始運行且沒有任何臨時重新調整。同時它不受夏令時變化的影響。以下表格通過事例說明它是如何運作的。
No. | 步驟 |
1 | 打開 "shutter_control.mwp" 程序。 |
2 | 在程序編輯器中進入到主程序(MAIN)。 網絡 1 顯示的是“shutter_control” 子程序調用。該程序執行了天文算法。子程序“shutter_cuntrol”會在日出時在輸出位“open_shutter”, 日落時在輸出位“close_shutter”輸出一個只持續一個周期的脈沖。您可以通過修改該子程序的輸入參數來滿足特定的需要。
Longitude: Latitude: Up_offset: Down_offset: open_man: close_man: open_shutter: close_shutter: |
3 | 調整“百葉窗_控制”子程序的輸出參數以滿足百葉窗的控制條件。 網絡 2 和網絡 3 主程序中提供了2種方式: 網絡2 (靜態輸出信號): 網絡3 (輸出脈沖): 保留其中可以滿足您控制要求的方法,刪除不想用的方法。 按需求更改輸出位地址。 |
4 | 將控制器設定為 UTC 時間。UTC 時間(協調世界時)是與當地時間相對的有效的*的時間,而當地時間只在區域限定的時區內有效。如,UTC+1 為歐洲中部時間,UTC+2 為歐洲中部夏令時間 (CEST)。當前 UTC 時間可通過互聯網查找(如 http://www.weltzeituhr。。com/)。 時間控制法有兩種。 利用 CPU 實時時鐘: 利用 GPS 接收器:
|