




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、S7-200 自由口通訊自由口模式允許應(yīng)用程序控制S7-200 CPU的通訊端口,使用PC/PPI電纜和自由口功能,可以將S7-200連接到帶有RS-232兼容接口的多種設(shè)備,比如調(diào)制解調(diào)器。這里我們將介紹如何用S7-200連接GSM調(diào)制解調(diào)器發(fā)送短消息,并通過(guò)這個(gè)例子來(lái)介紹應(yīng)用S7-200自由口編程的一般原則時(shí)及應(yīng)注意的問(wèn)題。在下面的例子中我們將用到:1. PC/PPI電纜(10位;9 600波特;DIP開(kāi)關(guān)設(shè)置:0 1 0 1 1)2. 西門(mén)子 S7-200 CPU22X3. TC35 Terminal GSM調(diào)制解調(diào)器4. 一個(gè)9直通針轉(zhuǎn)接頭(用來(lái)連結(jié)PC/PPI電纜與TC35 Term
2、inal調(diào)制解調(diào)器)5. 一根九針直通電纜(用來(lái)連結(jié)計(jì)算機(jī)與TC35 Terminal調(diào)制解調(diào)器)6. STEP 7-Micro/Win V3.2或更高版本軟件一、 TC35 調(diào)制解調(diào)器AT指令簡(jiǎn)介要使用TC35發(fā)送短消息需要使用TC35的AT指令,我們首先介紹如何用Windows自帶的超級(jí)終端連接TC35發(fā)送短消息。1 用九針直通的電纜將TC35連接到計(jì)算機(jī)的串口上2 打開(kāi)超級(jí)終端(開(kāi)始à程序à附件à通訊à超級(jí)終端)3 為連接取名Connect to TC35T4 選擇TC35連接的串口COM15 按照下圖的參數(shù)設(shè)置端口。19 200 bps為T(mén)C35
3、默認(rèn)的端口波特率,如果該波特率已被更改,請(qǐng)選擇正確的波特率。6 在窗口中鍵入AT回車(chē)測(cè)試與TC35的連接,如果連接正確,TC35將返回OK。7 TC35可以發(fā)送兩種格式的短消息,普通文本格式和PDU格式。應(yīng)用普通文本格式時(shí),短消息內(nèi)容以ASCII碼格式直接輸入,操作比較簡(jiǎn)單,缺點(diǎn)是只能發(fā)送英文短消息;應(yīng)用PDU格式時(shí),短消息內(nèi)容以Unicode格式輸入,可以發(fā)送任何文字,缺點(diǎn)是短消息內(nèi)容需要轉(zhuǎn)換成Unicode碼,并且要把短消息按PDU格式打包,操作比較復(fù)雜(編程復(fù)雜)。通過(guò)指令A(yù)T+CMGF=0設(shè)置TC35以PDU格式發(fā)送短消息(默認(rèn)),AT+CMGF=1設(shè)置TC35以普通文本格式發(fā)送短消息
4、。8 如何以普通文本格式發(fā)送短消息可以在S7-200的網(wǎng)站上找到 ,這里我們將介紹如何發(fā)送中文短消息。要發(fā)送中文短消息必須把短消息內(nèi)容轉(zhuǎn)換成Unicode碼,并按照PDU格式打包發(fā)送給TC35。PDU數(shù)據(jù)格式涉及手機(jī)開(kāi)發(fā)的相關(guān)知識(shí),我們不作詳細(xì)介紹,這里指給出一個(gè)標(biāo)準(zhǔn)格式供大家使用。以下就是一個(gè)PDU格式的數(shù)據(jù)包:0001000D91683108214365F700080459296C14其中,紅色的數(shù)字(3108214365F7)代表對(duì)方的手機(jī)號(hào)碼,在PDU格式中,手機(jī)號(hào)碼每?jī)晌恍枰獙?duì)調(diào)。比如在上面這個(gè)例子里,對(duì)方的手機(jī)號(hào)碼F用來(lái)補(bǔ)充7后面的空位。藍(lán)色的數(shù)字(592
5、96C14)是短消息內(nèi)容的Unicode碼,這里5929代表“天”6C14代表“氣”。Unicode碼同樣可以用來(lái)表示中一般英文字母和數(shù)字,方法是在英文或數(shù)字的ASCII碼前加00。紫色的數(shù)字(04)代表短消息的長(zhǎng)度,它等于其后所有字符個(gè)數(shù)除以2。黑色的數(shù)字每次發(fā)送短消息時(shí)都是相同的,使用時(shí)可以照抄,但前提是所使用的SIM卡在使用前要用手機(jī)設(shè)置好短消息服務(wù)中心號(hào)碼(+8613800100500)。漢字的Unicode碼可以通過(guò)編碼轉(zhuǎn)換軟件得到,我們使用的是Megaton Technology公司的一個(gè)編碼轉(zhuǎn)換軟件9 在使用PDU格式發(fā)送短消息時(shí),還必須計(jì)算整個(gè)PDU數(shù)據(jù)包的長(zhǎng)度,PDU數(shù)據(jù)包的
6、長(zhǎng)度等于(PDU數(shù)據(jù)包字符數(shù)-2)/2,在上面的例子里:(38-2)/2=18。發(fā)送短消息時(shí),我們先向TC35發(fā)送AT+CMGS=<Length>回車(chē)(Length是計(jì)算好的PDU數(shù)據(jù)包的長(zhǎng)度),TC35收到指令后返回一個(gè)“”符號(hào),然后我們發(fā)送整個(gè)PDU數(shù)據(jù)包并以組合鍵Ctrl+Z結(jié)束。如果短消息被成功的發(fā)送,TC35會(huì)返回+CMGS: x,其中“x”代表該模塊以及發(fā)送的短消息個(gè)數(shù),同時(shí)返回OK。二、 設(shè)置TC35在將TC35連接到S7-200之前我們先要對(duì)TC35作一些設(shè)置,使其適合與PLC通訊。1. 通過(guò)指令A(yù)T+IPR=9600設(shè)置TC35的端口波特率為9 600 bps2.
7、 重新建立一個(gè)波特率為9 600 bps的連接,用指令A(yù)TE0禁止回波功能?;夭üδ苁拐{(diào)制解調(diào)器將收到的指令回發(fā)給發(fā)送方,這項(xiàng)功能會(huì)給PLC編程來(lái)來(lái)不便,當(dāng)禁止回波功能后,TC35只返回指令執(zhí)行的結(jié)果,比如OK等等3. 鍵入AT&W0回車(chē)將當(dāng)前設(shè)置存為用戶配置文件(掉電保持),再鍵入ATZ0以用戶配置文件重新啟動(dòng)。此后TC35重新上電時(shí)將按照前面所作的設(shè)置啟動(dòng)。三、 PLC編程現(xiàn)在,我們已經(jīng)知道如何用AT指令發(fā)送短消息,剩下的工作是用PLC程序來(lái)發(fā)送這些AT指令。S7-200的通訊端口為RS-485接口,RS-485接口為半雙工接口,因此,編寫(xiě)PLC程序的關(guān)鍵是避免在通訊端口上同時(shí)發(fā)送
8、和接收。我們下面將介紹一種標(biāo)準(zhǔn)的編程模式,按照這種模式編寫(xiě)自由口通訊程序可以有效的避免因同時(shí)發(fā)送和接收造成的通訊沖突,從而保證程序的正常運(yùn)行。1. 初始化Network 1LD SM0.1MOVB 9, SMB30MOVB 2#11000100, SMB87MOVB '>', SMB88MOVW +5, SMW92MOVB 255, SMB94ATCH INT_0, 23ATCH INT_1, 9ENI將上面這段程序添加到主程序中,對(duì)PLC的端口0進(jìn)行初始化。這段程序以SM0.1為觸發(fā)條件,每當(dāng)PLC進(jìn)入RUN狀態(tài)時(shí)執(zhí)行一次。MOVB 9, SMB30該指令將端口0設(shè)置為
9、 9600,8,N,1 自由口方式MOVB 2#11000100, SMB87SM87.7=1 允許端口0接收字符SM87.6=1 當(dāng)檢測(cè)到與SMB88中相同的字符時(shí)開(kāi)始接收,并將該字符當(dāng)作信息的首字符SM87.5=0 不檢測(cè)信息的結(jié)束字符SM87.4=0 不檢測(cè)端口空閑狀態(tài)SM87.3=0 定時(shí)器為內(nèi)部字符定時(shí)器,意思是PLC開(kāi)始接收信息后(檢測(cè)到起始字符),每接收到一個(gè)字符就啟動(dòng)定時(shí)器,當(dāng)定時(shí)器到達(dá)在SMW92中設(shè)置的時(shí)間后,即認(rèn)為定時(shí)器超時(shí)SM87.2=1 允許在定時(shí)器超時(shí)后停止接收,并產(chǎn)生接收完成中斷SM87.1=0 忽略Break條件MOVB '>', SMB8
10、8設(shè)置接收起始字符為ASCII碼的”>”,當(dāng)TC35收到AT+CMGS=<Length>后將返回”>”,當(dāng)PLC收到”>”后發(fā)送PDU數(shù)據(jù)包MOVW +5, SMW92設(shè)置定時(shí)器超時(shí)時(shí)間為5 msMOVB 255, SMB94設(shè)置RCV指令接收的最大字符數(shù)位255ATCH INT_0, 23中斷時(shí)間23為端口0接收完成中斷,將該中斷連接到中斷0ATCH INT_1, 9中斷時(shí)間9為端口0發(fā)送完成中斷,將該中斷連接到中斷1ENI中斷允許2. 接收TC35的信息Network 2LD SM0.0RCV VB100, 0在初始化程序中,端口0以被允許接收來(lái)自TC35的信
11、息,在主程序中添加上面的程序?qū)⒍丝?置于接收狀態(tài)。這時(shí)端口0將檢測(cè)收到的字符,當(dāng)收到”>”時(shí)即開(kāi)始接收,并把收到的信息保存到VB101開(kāi)始的存儲(chǔ)器中(VB100中將保存每次收到的字符的個(gè)數(shù),當(dāng)接收結(jié)束時(shí),該位置被清零)。3. 發(fā)AT指令PLC要向TC35發(fā)送兩部分內(nèi)容來(lái)發(fā)送一條短消息,首先是AT指令(AT+CMGS=18),當(dāng)收到”>”后,發(fā)送PDU數(shù)據(jù)包。這里,我們用M0.0的上升沿來(lái)觸發(fā)PLC發(fā)送AT指令。在主程序中添加下面指令Network 3LD M0.0EUR SM87.7, 1RCV VB100, 0XMT VB0, 0R SM87.7, 1SM87.7置0,禁止在端口
12、0接收信息RCV VB100, 0執(zhí)行RCV指令,停止端口0的接收。XMT VB0, 0發(fā)送AT指令到TC35這里需要特別注意的是,在初始化程序中,端口0已被置為接收狀態(tài),此時(shí)如果直接發(fā)送AT指令,將會(huì)導(dǎo)致端口0發(fā)生通訊沖突,而導(dǎo)致其不能正常工作。因此,我們?cè)诎l(fā)送指令前必須先禁止接收(將SM87.7復(fù)0)然后執(zhí)行RCV指令,RCV指令執(zhí)行時(shí)將會(huì)檢測(cè)SM87.7的狀態(tài),當(dāng)發(fā)現(xiàn)SM87.7=0時(shí),即停止端口0的接收。這里我們建議,在使用XMT指令前,首先執(zhí)行R SM87.7, 1 、 RCV VB100, 0兩條指令(VB100可以換成其他地址)。XMT指令指向VB0,我們將AT指令寫(xiě)在VB0開(kāi)始
13、的數(shù)據(jù)塊中4. 發(fā)送PDU數(shù)據(jù)包當(dāng)AT指令發(fā)送完成時(shí),PLC會(huì)產(chǎn)生一個(gè)中斷,在初始化程序中,我們已經(jīng)將這個(gè)中斷連接到INT_1(ATCH INT_1, 9),在這個(gè)中斷中,我們重新把端口0置于接收狀態(tài),用來(lái)接收TC35返回的“>“,同時(shí)我們將M0.0復(fù)位以便檢測(cè)下一次發(fā)送請(qǐng)求并清空RCV指令的接收緩沖區(qū)。將下面指令添加到INT_1中:Network 1LD M0.0S SM87.7, 1RCV VB100, 0R M0.0, 1Network 2LD SM0.0FILL +0, VW100, 10TC35接收到AT+CMGS=18后,返回”>”,PLC接收到”>”后開(kāi)始將接收
14、到的字符保存到VB101開(kāi)始的存儲(chǔ)區(qū),并且每接收一個(gè)字符即啟動(dòng)定時(shí)器,超過(guò)5 ms仍接收不到下一個(gè)字符時(shí),就認(rèn)為本次接收已經(jīng)完成,產(chǎn)生接收完成中斷。在初始化程序中我們已經(jīng)將該中斷連接到INT_0(ATCH INT_0, 23)。將下面指令添加到INT_0中:Network 1LDB= VB101, '>'S M0.1, 1在中斷程序中不易執(zhí)行過(guò)多程序,因此我們?cè)谶@里判斷VB101是否為”>”,如果是則表示TC35等待接收PDU數(shù)據(jù),我們通過(guò)M0.1在主程序中觸發(fā)發(fā)送PDU數(shù)據(jù)。將下面這段程序添加到主程序中:Network 4LD M0.1EUR SM87.7, 1R
15、CV VB100, 0XMT VB20, 0與發(fā)送AT指令一樣,我們首先要停止端口0的接收,然后發(fā)送PDU數(shù)據(jù)包,PDU數(shù)據(jù)包保存在VB21開(kāi)始的數(shù)據(jù)塊中,VB20中保存XMT指令要發(fā)送的字節(jié)數(shù)目。5. 判斷發(fā)送狀態(tài)在發(fā)送完成中斷中,我們要重新置端口0為接收狀態(tài),同時(shí)復(fù)位M0.1,并將RCV指令判斷的起始字符由原來(lái)的”>”改為”+”,因?yàn)門(mén)C35接收到PDU數(shù)舉包后會(huì)返回”+CMGS: x”表示發(fā)送成功,或者” +CMS ERROR: 500”表示發(fā)送失敗,將下面的指令添加到INT_1中Network 3LD M0.1S SM87.7, 1MOVB '+', SMB88R
16、CV VB100, 0R M0.1, 1在接收完成中斷中(INT_0)我們可以通過(guò)判斷VB104的狀態(tài)來(lái)判斷發(fā)送是否成功,如果發(fā)送成功,VB104=”G”,如果不成功VB104=”S”。將下面的指令添加到INT_0中Network 2LDB= VB104, 'G'MOVB '>', SMB88Network 3LDB= VB104, 'S'MOVB '>', SMB88S M0.0, 1如果成功則將RCV指令的起始字符恢復(fù)為”>”,如果不成功則將RCV指令的起始字符恢復(fù)為”>”同時(shí)置位M0.0重新發(fā)送短消息
17、。將整個(gè)程序下載到PLC中,每次置位M0.0即可以送一條短消息,短消息內(nèi)容為“天氣”。只要更改數(shù)據(jù)塊中的內(nèi)容,即可向不同的手機(jī)號(hào)碼發(fā)送不同內(nèi)容的短消息。整個(gè)程序如下:MAINNetwork 1LD SM0.1MOVB 9, SMB30MOVB 2#11000100, SMB87MOVB '>', SMB88MOVW +5, SMW92MOVB 255, SMB94ATCH INT_0, 23ATCH INT_1, 9ENINetwork 2LD SM0.0RCV VB100, 0Network 3LD M0.0EUR SM87.7, 1RCV V
18、B100, 0XMT VB0, 0Network 4LD M0.1EUR SM87.7, 1RCV VB100, 0XMT VB20, 0INT_0Network 1LDB= VB101, '>'S M0.1, 1Network 2LDB= VB104, 'G'MOVB '>', SMB88Network 3LDB= VB104, 'S'MOVB '>', SMB88S M0.0, 1INT_1Network 1LD M0.0S SM87.7, 1RCV VB100, 0R M0.0, 1Network 2LD SM0.0FILL +0, VW100, 10Network 3LD M0.1S SM87.7, 1MOVB '+', S
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)園區(qū)的資源分配與管理
- 工業(yè)廢水處理技術(shù)與環(huán)境治理研究
- 工業(yè)安全生產(chǎn)管理與預(yù)防策略
- 工業(yè)廢水處理技術(shù)的研究與應(yīng)用
- 工業(yè)自動(dòng)化中新材料技術(shù)的趨勢(shì)分析
- 工業(yè)污染防治與環(huán)保設(shè)備應(yīng)用
- 工業(yè)物聯(lián)網(wǎng)的遠(yuǎn)程監(jiān)控與維護(hù)系統(tǒng)設(shè)計(jì)
- 工業(yè)機(jī)械自動(dòng)化系統(tǒng)的可靠性保障
- 工業(yè)設(shè)計(jì)中的智能產(chǎn)品解決方案
- 工作與休息的平衡對(duì)殘疾人群的特別意義
- 2025山東“才聚齊魯成就未來(lái)”水發(fā)集團(tuán)高校畢業(yè)招聘241人筆試參考題庫(kù)附帶答案詳解
- 2025中考數(shù)學(xué)押題預(yù)測(cè) (廣西卷)(試卷+答案詳解)
- GB/T 45355-2025無(wú)壓埋地排污、排水用聚乙烯(PE)管道系統(tǒng)
- 馬工程版《中國(guó)經(jīng)濟(jì)史》各章思考題答題要點(diǎn)及詳解
- .全年累計(jì)供暖空調(diào)能耗模擬報(bào)告
- 自身免疫性腦炎
- 熱工基礎(chǔ)思考題答案(第1章)
- 大學(xué)生選課申請(qǐng)表
- 生產(chǎn)安全事故風(fēng)險(xiǎn)評(píng)估報(bào)告(參考模板)
- 消防安全工作臺(tái)賬表格匯總
- 廣州舊城改造三元里文本
評(píng)論
0/150
提交評(píng)論