西門子PLC卡件6ES7317-2AK14-0AB0
西門子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)用簡(jiǎn)單、靈活,使用方便等優(yōu)點(diǎn)。
本文通過(guò)一個(gè)具體的示例,給出了在多個(gè)西門子串口通信模塊(CP340/CP341)之間通過(guò)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è)作為串行通信的主站,通過(guò)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ò)中。
圖1 系統(tǒng)組成結(jié)構(gòu)圖
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。
表2 連接電纜訂貨號(hào)
詳細(xì)的硬件連接如圖2所示。
圖2 實(shí)際硬件連接圖
1.2 參數(shù)分配
1.2.1 組態(tài)主站
? CP341模塊起始地址256,ASCII協(xié)議模式;
? 消息幀結(jié)束標(biāo)準(zhǔn):字符延遲時(shí)間4ms;
? 波特率:9600bps,8位數(shù)據(jù)位,1位停止位,無(wú)校驗(yàn);
? 接口類型:RS485半雙工;
? 其他采用默認(rèn)值。
圖3 主站CP341模塊協(xié)議參數(shù)分配圖
圖4 主站CP341模塊接口參數(shù)分配圖
1.2.2 組態(tài)從站
對(duì)于從站CP341/CP340模塊的參數(shù)分配與主站保持一致,特別注意波特率、數(shù)據(jù)位、停止位和奇偶校驗(yàn)位設(shè)置要與主站相同。
說(shuō)明:詳細(xì)的接口參數(shù)設(shè)置請(qǐng)參考CP341/CP340手冊(cè)及相關(guān)文檔。
下載鏈接:西門子PLC卡件6ES7317-2AK14-0AB0
圖5 2#從站CP340模塊協(xié)議參數(shù)分配圖
2 輪詢?cè)?/p>
2.1原理說(shuō)明
與MODBUS協(xié)議輪詢不同,由于每個(gè)從站自身不具有的設(shè)備標(biāo)識(shí)信息(從站地址),無(wú)法直接區(qū)分和識(shí)別網(wǎng)絡(luò)上的數(shù)據(jù)幀是哪個(gè)站的、需要哪個(gè)站做出響應(yīng),所以要通過(guò)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)輪詢的過(guò)程中,應(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ì)簡(jiǎn)單的處理方式,在實(shí)際的應(yīng)用中,針對(duì)不同的通信對(duì)象,可以具體分析并作出相應(yīng)的處理。
2.2 輪詢機(jī)制
2.2.1數(shù)據(jù)幀格式
為了區(qū)別1#從站和2#從站,在消息幀中增加一個(gè)字的地址標(biāo)識(shí)字符,主站通過(guò)發(fā)送不同地址標(biāo)識(shí)字符的幀來(lái)輪詢不同從站,同時(shí)從站根據(jù)地址字符來(lái)判斷是否是給自己的消息,并據(jù)此做出相應(yīng)的處理。從站發(fā)送給主站的響應(yīng)幀也包含有自己的地址標(biāo)識(shí)字符,用于主站判斷是哪個(gè)從站返回的數(shù)據(jù)。字符幀格式如下:
圖6 定義的主從站數(shù)據(jù)幀格式
2.2.2 時(shí)序圖
如下圖所示,主站按順序輪詢1#從站和2#從站。
圖7 輪詢時(shí)序圖
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ò)誤,則跳過(guò)本站,開(kāi)始輪詢下一個(gè)站點(diǎn)。
圖8 主站輪詢流程圖
? 從站響應(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)。
圖9 從站響應(yīng)流程圖