西門子SIMATIC S7系列串行通信模塊,包括CP340、CP341、CP440-1、CP441-1/2、CPU313C/314C-2PtP以及ET200S的1SI 3964/ASCII等,都支持ASCII驅動協(xié)議的通信,可以廣泛地用于與第三方支持ASCII協(xié)議的儀表、設備、系統(tǒng)等進行點對點連接通信,具有應用簡單、靈活,使用方便等優(yōu)點。
這期欄目通過一個具體的示例,給出了在多個西門子串口通信模塊(CP340/CP341)之間通過ASCII驅動協(xié)議進行輪詢通信的應用。其具體的實現(xiàn)方法和輪詢原理具有普遍的指導意義,可以作為西門子串行通信模塊與支持ASCII協(xié)議的儀表、設備、系統(tǒng)等進行串行通信的參考。
1. 系統(tǒng)組成
如下圖所示,系統(tǒng)包括3個SIMATIC S7-300站,其中一個作為串行通信的主站,通過ASCII驅動協(xié)議輪詢采集另外兩個從站的數(shù)據(jù)。系統(tǒng)主站和1#從站各配置了一個串行通信模塊CP341(6ES7341-1CH01-0AE0)(RS422/485接口),2#從站配置了一個串行通信模塊CP340(6ES7340-1AH02-0AE0)(RS232C接口),為了將它們連接到一個網(wǎng)絡中,在本例中選擇了西門子的PC/PPI電纜(6ES7901-3CB30-0XA0)將2#從站的RS232C接口轉換為RS485接口連接到網(wǎng)絡中。
2.電纜和硬件連接
詳細的硬件連接如圖
3.組態(tài)主站
?CP341模塊起始地址256,ASCII協(xié)議模式;
?消息幀結束標準:字符延遲時間4ms;
?波特率:9600bps,8位數(shù)據(jù)位,1位停止位,無校驗;
?接口類型:RS485半雙工;
?其他采用默認值。
4. 組態(tài)從站
對于從站CP341/CP340模塊的參數(shù)分配與主站保持一致,特別注意波特率、數(shù)據(jù)位、停止位和奇偶校驗位設置要與主站相同。
5. 輪詢原理
與MODBUS協(xié)議輪詢不同,由于每個從站自身不具有唯一的設備標識信息(從站地址),無法直接區(qū)分和識別網(wǎng)絡上的數(shù)據(jù)幀是哪個站的、需要哪個站做出響應,所以要通過ASCII協(xié)議驅動實現(xiàn)多站點輪詢,需要人為地對每個站做出標識,并在主站發(fā)送輪詢指令時給出相應的指令標識,以便從站能夠識別是否是發(fā)送給自己的數(shù)據(jù)以及是否做出響應。
在ASCII協(xié)議驅動實現(xiàn)多站點輪詢的過程中,應主要考慮以下幾個方面:
?基本模式:主站主動請求,從站根據(jù)請求作出響應;
?數(shù)據(jù)幀:在發(fā)送或響應數(shù)據(jù)幀中要包含有站點標識的信息;
?實現(xiàn)方法:定時輪詢,完成后直接啟動下一個作業(yè),完成后延時啟動下一個作業(yè)等實現(xiàn)方法;
?校驗、錯誤處理機制:CRC、等待、丟棄、重試等。
6. 輪詢機制
①數(shù)據(jù)幀格式
為了區(qū)別1#從站和2#從站,在消息幀中增加一個字的地址標識字符,主站通過發(fā)送不同地址標識字符的幀來輪詢不同從站,同時從站根據(jù)地址字符來判斷是否是給自己的消息,并據(jù)此做出相應的處理。從站發(fā)送給主站的響應幀也包含有自己的地址標識字符,用于主站判斷是哪個從站返回的數(shù)據(jù)。字符幀格式如下:
②時序圖
③流程圖
?初始化流程
初始化主要針對主站而言。在初始化階段主要完成CP模塊的參數(shù)化、初始化輪詢計數(shù)器,復位接收緩沖區(qū)以及根據(jù)輪詢計數(shù)器生成發(fā)送數(shù)據(jù)幀等方面的工作。
?主站輪詢流程
如下圖所示,在系統(tǒng)初始化完成后,手動啟動第一次輪詢作業(yè),本實例先輪詢1#從站。給1#從站發(fā)送查詢請求后,等待1#從站的響應,如果在指定的延時時間內接收到1#從站返回的數(shù)據(jù),則給2#從站發(fā)送查詢請求,并等待2#從站的響應,同樣如果在指定的延時時間內接收到2#從站返回的數(shù)據(jù),則一次完整的輪詢結束,自動啟動新一輪的輪詢。
如果在指定的延時時間內不能接收到從站的返回數(shù)據(jù)或接收錯誤,則跳過本站,開始輪詢下一個站點。
?從站響應流程
從站根據(jù)主站的請求做出響應,主要是在接收到網(wǎng)絡上的數(shù)據(jù)后,判斷是否是給自己的數(shù)據(jù)。如果是,則將數(shù)據(jù)接收到指定的數(shù)據(jù)區(qū),同時啟動發(fā)送功能,發(fā)送相應的返回數(shù)據(jù)給主站;如果不是,則直接刪除收到的數(shù)據(jù),并不做任何響應。
7. 主站程序
①初始化
為了實現(xiàn)對多個從站的輪詢,程序構造了一個輪詢計數(shù)器,通過修改輪詢計數(shù)器的值,來修改主站發(fā)送數(shù)據(jù)幀中的站地址標識字符。
這里定義MW2作為輪詢計數(shù)器,程序開始,先對輪詢計數(shù)器進行操作,默認先輪詢1#從站,將值1賦值給MW2。
在程序執(zhí)行過程中,會修改輪詢計數(shù)器的值,通過判斷輪詢計數(shù)器的值對發(fā)送數(shù)據(jù)塊的地址標識符字作相應的修改,以完成對響應從站的輪詢。這里具體的實現(xiàn)如下圖,其中DB13作為發(fā)送數(shù)據(jù)塊,DB13.DBW0為地址標識符字。
②啟動發(fā)送
初始化完成后,可以啟動發(fā)送功能。這里第一次發(fā)送采用手動方式,通過觸發(fā)手動啟動標志位M30.1,并調用FB8 P_SND_RK發(fā)送數(shù)據(jù)到從站。完成第一次發(fā)送后,可以通過程序自動修改自動輪詢標志位M30.0來實現(xiàn)自動發(fā)送數(shù)據(jù)到從站的功能。
啟動發(fā)送功能塊FB8后,通過FB8返回狀態(tài)信息,判斷是否發(fā)送完成,如果發(fā)送錯誤,則重新啟動發(fā)送功能。
?發(fā)送完成:啟動接收作業(yè),準備接收從站返回數(shù)據(jù)。同時啟動一個超時定時器T11,如果超時定時時間到,還沒有接收到數(shù)據(jù),則放棄等待,開始輪詢下一個站。
③接收從站返回數(shù)據(jù)
發(fā)送完成后,啟動接收作業(yè),準備接收從站返回數(shù)據(jù),并將接收到的數(shù)據(jù)先放到接收緩沖區(qū)中,這里DB14數(shù)據(jù)塊為接收緩沖區(qū)。
④接收完成
接收完成后,做如下幾方面處理。如果接收錯誤或超時,則跳過此站的輪詢。
?根據(jù)接收到數(shù)據(jù)的地址標識符判斷是來自哪個從站的數(shù)據(jù),并將數(shù)據(jù)從接收緩沖區(qū)轉移到指定的從站數(shù)據(jù)存儲區(qū)中,同時清空接收緩沖區(qū);
?復位接收標志,同時修改輪詢計數(shù)器的值,準備輪詢下一個從站;
?復位超時定時器;
?啟動一個延時定時器,延時時間到后開始輪詢下一個從站。
8. 從站程序
相對于主站,從站的處理程序相對簡單。下面以2#從站為例做個說明,1#從站除了調用FB不同外,都與2#從站相同。
①接收數(shù)據(jù)
從站一直啟動接收功能FB2 P_RCV,接收來自網(wǎng)絡上的數(shù)據(jù),如果接收到數(shù)據(jù)則根據(jù)地址標識符判斷是否是本站的數(shù)據(jù):
?是本站數(shù)據(jù),則將接收緩沖區(qū)(DB17)中的數(shù)據(jù)移到指定的地址區(qū)(DB18)中,并清空接收緩沖區(qū)。同時,觸發(fā)發(fā)送標志,發(fā)送返回數(shù)據(jù)給主站;
?不是本站數(shù)據(jù),直接清空接收緩沖區(qū)(DB17)。
②發(fā)送返回數(shù)據(jù)
接收完成后,調用發(fā)送功能,將DB19的數(shù)據(jù)發(fā)送給主站。
9. 實驗結果
搭建好網(wǎng)絡,并將程序分別下載到各自的CPU中,啟動CPU的運行。通過置位手動啟動輪詢標志位M30.0即可啟動輪詢程序的運行。通過變量表可以監(jiān)視到系統(tǒng)的運行情況,可以看到,主站會循環(huán)地將數(shù)據(jù)發(fā)送到兩個從站,同時也循環(huán)地接收來自從站的返回數(shù)據(jù),如下圖所示。
-
西門子
+關注
關注
98文章
3173瀏覽量
118244 -
驅動協(xié)議
+關注
關注
0文章
1瀏覽量
2687
原文標題:如何組態(tài)基于ASCII驅動協(xié)議的多站點輪詢
文章出處:【微信號:Raul_Woo,微信公眾號:工控周刊】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
485通信,Modbus協(xié)議,如何通過Visa函數(shù)對多個儀表串口輪詢?
西門子PLC與labview之間如何通過OPC實現(xiàn)通信
西門子PLC對Socket通信的支持
西門子200Smart PLC的Socket通信技術
西門子PLC串口協(xié)議與以太網(wǎng)通信協(xié)議對比

西門子S7-1200與組態(tài)軟件之間無線MODBUS通信實例

快速了解西門子串口PPI、200、200smart驅動協(xié)議如何使用
上位機與西門子PLC通信協(xié)議

西門子PLC與IO模塊之間無線PROFINET通信

智嵌物聯(lián)串口服務器與西門子Win CC軟件通信演示

工業(yè)智能網(wǎng)關通過串口/網(wǎng)口實現(xiàn)西門子PLC實時通信

評論