技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > S7-200可編程控制器與微機通信的設(shè)計和實現(xiàn)

S7-200可編程控制器與微機通信的設(shè)計和實現(xiàn)

時間:2008-08-14 10:15:00來源:ronggang

導(dǎo)語:?本文以飛剪控制系統(tǒng)為例,介紹了S7-222的通信方式,著重闡述了自由口通信的參數(shù)設(shè)定、協(xié)議規(guī)劃和通信程序設(shè)計
摘 要:西門子公司的SIMATIC S7-200系列是適應(yīng)于中小型設(shè)備控制的微型PLC, 應(yīng)用領(lǐng)域廣泛。無論是獨立運行或相連成網(wǎng)絡(luò)皆能在自動化系統(tǒng)中實現(xiàn)復(fù)雜的控制功能,強勁的通信能力使其在同類PLC產(chǎn)品中獨具特色。本文以飛剪控制系統(tǒng)為例,介紹了S7-222的通信方式,著重闡述了自由口通信的參數(shù)設(shè)定、協(xié)議規(guī)劃和通信程序設(shè)計。 關(guān)鍵詞:PLC; S7-200; Win9x; 自由口模式; 串口 1.前言   可編程控制器(PLC)作為一種高性能的工業(yè)現(xiàn)場控制裝置,已廣泛地用于工業(yè)控制的各個領(lǐng)域。目前,工業(yè)自動控制對PLC的網(wǎng)絡(luò)通信能力要求越來越高, PLC與上位機之間、PLC與PLC之間都要能夠進行數(shù)據(jù)共享和控制。   飛剪控制系統(tǒng)要求在遠離PLC的控制室里,實時監(jiān)控電機、供紙、刀輥等設(shè)備。上位機為普通PC機,下位機為 SIEMENS S7-222 PLC。在實際開發(fā)中,采用自由口通信模式,自定義 PC與 PLC的通信協(xié)議,用Step7編寫PLC端的通信程序,而在 PC端用VC6.0實現(xiàn)串行通信的控制和監(jiān)控界面的顯示。 2.通信方式及原理   S7-200系列PLC通信方式有三種:一種是點對點(PPI)方式,用于與西門子公司的PLC編程器或其它產(chǎn)品通信,其通信協(xié)議是不公開的。另一種為DP方式,這種方式使得PLC可通過Profibus的DP通信接口接入現(xiàn)場總線網(wǎng)絡(luò),從而擴大PLC的使用范圍。最后一種方式是自由口(FreePort)通信方式,由用戶定義通信協(xié)議,實現(xiàn)PLC與外設(shè)的通信。本系統(tǒng)中采用自由口通信方式。它是S7-200系列PLC一個很有特色的功能。這種方式不需要增加投資,具有較好的靈活性,適合小規(guī)??刂葡到y(tǒng)。自由口通信在物理接口上要求雙方都使用RS485接口,波特率最高為38400bps。雖然PC機的標(biāo)準(zhǔn)串口為RS232,但西門子公司提供的PC/PPI電纜帶有RS232 /RS485電平轉(zhuǎn)換器,因此在不增加任何硬件的情況下,可以很方便地將PLC和PC機互聯(lián)。   2.1自由口模式的初始化   PLC的自由口模式通信編程首先是對串口初始化。對S7-200PLC的初始化是通過對特殊存儲字節(jié)SMB30(端口0)寫入通信控制字,來設(shè)置通信的波特率、奇偶校驗、停止位和數(shù)據(jù)位數(shù)。顯然,這些設(shè)定必須與上位機設(shè)定值相一致。另外還可選擇通信模式和主從站模式,各具體存儲位內(nèi)容可參考SIMATIC S7-200系統(tǒng)手冊。   2.2自由口模式下收發(fā)數(shù)據(jù)   初始化自由端口通信模式后,就可以進行數(shù)據(jù)的收發(fā)。  ?。?) 發(fā)送數(shù)據(jù)指令 XMT   格式:XMT Table,Port??梢杂?XMT指令發(fā)送數(shù)據(jù),XMT指令激活發(fā)送緩沖區(qū)(從Table開始的變量存儲區(qū))中的數(shù)據(jù)。數(shù)據(jù)緩沖區(qū)的第一個數(shù)據(jù)指明了要發(fā)送的字節(jié)數(shù),Port指明了用于發(fā)送的端口,緩沖區(qū)最多可以有255個字符。在發(fā)完緩沖區(qū)的最后一個字符時,會產(chǎn)生一個中斷 (對端口 0為中斷事件9)。本例的XMT緩沖區(qū)的格式如表1。其中,狀態(tài)字節(jié)表示PLC是否正確接收了上位機所傳數(shù)據(jù);上傳數(shù)據(jù)為PLC上傳給PC的數(shù)據(jù),需將9字節(jié)的16進制數(shù)編碼為18字節(jié)的ASIIC碼,所以字節(jié)數(shù)為18;BCC為上傳數(shù)據(jù)的異或和,同樣將16進制數(shù)編碼為ASIIC碼;結(jié)束字符的值為26。 [align=center] 表1 發(fā)送緩沖區(qū) 表2 接收緩沖區(qū)[/align]   RCV Table,Port。用 RCV指令接收最多為255個字符的數(shù)據(jù),這些字符存儲在緩沖區(qū)中。在接收到結(jié)束字符時,會產(chǎn)生一個中斷(對端口 0為中斷事件23)。本例的RCV緩沖區(qū)的格式如表2。其中,命令類型表示上位機讓PLC 執(zhí)行什么操作,如讀或?qū)?目標(biāo)站號是分配給PLC的一個代號;起始地址是PLC要進行讀寫的存儲區(qū)的起始地址;讀寫字節(jié)數(shù)是PLC接到命令后,對存儲區(qū)進行讀寫的字節(jié)數(shù),本例中最多寫入16字節(jié)、讀出9字節(jié);寫入數(shù)據(jù)是上位機要寫入PLC的數(shù)據(jù),對于讀命令不起作用;BCC是從命令類型開始到寫入數(shù)據(jù)為止的43字節(jié)數(shù)據(jù)的異或和。從目標(biāo)站號到BCC這幾項內(nèi)容,都是把16進制數(shù)編碼為ASIIC碼來表示的。 3.自由口通信程序設(shè)計   通信程序的設(shè)計需遵循一定的規(guī)則,如中斷通信處理程序要短小精悍、要避免XMT與RCV指令同時在一個端口執(zhí)行等。整個PLC通信程序包括主程序、通信初始化子程序、校驗子程序、讀寫數(shù)據(jù)子程序和發(fā)送完成、接收完成中斷服務(wù)程序。   3.1主程序   通信主程序是PLC實現(xiàn)接收、發(fā)送功能的主框架。其主要流程為查詢接收是否完成,校驗,再根據(jù)命令類型執(zhí)行讀、寫等操作。它的作用是控制程序的主流程,校驗、讀寫等具體工作由相應(yīng)的子程序完成。流程如圖1。   3.2通信初始化程序   通信初始化子程序設(shè)置自由口通信的有關(guān)參數(shù),對接收信息控制寄存器SMB87寫入控制字,定義起始字符、結(jié)束字符和接收超時。設(shè)好自由口模式的這些參數(shù)后,還要連接中斷事件和中斷服務(wù)程序,并打開中斷。最后,把接收、發(fā)送緩沖區(qū)寫入初值即可。   3.3校驗子程序   每次PLC接收完1幀數(shù)據(jù),就調(diào)用此子程序進行校驗。進入子程序后,先清除接收完成標(biāo)志位,再計算所接收數(shù)據(jù)的校驗和BCC。如果正確,還要檢驗結(jié)束字符是否為‘G’。不是的話,說明數(shù)據(jù)報文長度不對或傳輸過程中發(fā)生了錯誤,需要向上位機返回相應(yīng)的出錯信息。流程如圖2。 [align=center] 圖1 主程序流程圖 圖2 校驗子程序流程圖[/align]   3.4讀、寫數(shù)據(jù)子程序   這2個子程序的任務(wù)是把PLC存儲區(qū)中的數(shù)據(jù)發(fā)給上位機或把上位機傳來的數(shù)據(jù)寫入PLC存儲區(qū)。二者的流程相似,只是數(shù)據(jù)流向不同。進入子程序后,先停止接收,然后完成數(shù)據(jù)傳輸,最后發(fā)送應(yīng)答報文。不同之處就是應(yīng)答報文中的狀態(tài)字節(jié):讀操作時是1、寫操作時是2。   3.5接收、發(fā)送完成中斷服務(wù)程序   當(dāng)PLC接收到結(jié)束字符后產(chǎn)生中斷(事件號9)或數(shù)據(jù)發(fā)送結(jié)束后產(chǎn)生中斷(事件號23),這兩個服務(wù)程序被執(zhí)行。接收完,先把接收完標(biāo)志置1,然后再次啟動接收。發(fā)送完,先清除校驗正確標(biāo)志,再把接收緩沖區(qū)中的結(jié)束字符和計算出的接收BCC結(jié)果清零,最后再次啟動接收。   由于是半雙工通信,因此PLC無論是發(fā)送和接收完數(shù)據(jù)后,都必須將通信口設(shè)置成接收狀態(tài)。否則,PLC就接收不到任何數(shù)據(jù)了。 4.上位機的通信編程   上位機通過RS232口與PLC進行通信,Windows環(huán)境串口通信程序利用VC6編寫。VC6編寫串口通信程序通常有MSCOMM控件和通信API兩種方法。二者各有優(yōu)缺點。MSCOMM控件封裝了微機串口通信的基本功能,使用者只需設(shè)置一些基本參數(shù),就可以通過串口收發(fā)數(shù)據(jù)了。這種方法簡單,易于編程人員使用,現(xiàn)在已有很多例子供參考。用通信API編寫串口程序相對復(fù)雜一些。開發(fā)者要直接使用Windows提供的一組API函數(shù)來完成上述控件封裝好的功能。所以使用API編程比使用控件更復(fù)雜,但同時也更靈活。通信控件已經(jīng)封裝好的功能是無法改變的,而使用API就能針對通信協(xié)議編寫效率更高的代碼。   在飛剪控制系統(tǒng)的上位機程序中,使用通信API編寫了串口讀寫的模塊。接收時,程序要查找起始字符‘g’,以確定1幀數(shù)據(jù)的開始;再根據(jù)下一個狀態(tài)字節(jié)判斷通信的正確性;最后,把長度為23字節(jié)的數(shù)據(jù)幀接收好,并準(zhǔn)備接收下一幀。發(fā)送過程不用判斷數(shù)據(jù)內(nèi)容,執(zhí)行發(fā)送函數(shù)即可。需要注意的是:由于PLC通信口是半雙工的,所以在PLC向上位機上傳數(shù)據(jù)時,上位機要等1幀數(shù)據(jù)接收完畢,再執(zhí)行發(fā)送操作,以避免收發(fā)沖突。 [align=center] 圖3 上位機串口通信流程圖[/align] 5.結(jié)束語   本系統(tǒng)取PC機和PLC各自的特點,實現(xiàn)了對飛剪系統(tǒng)的實時監(jiān)控。通過利用PLC(下位機 )的自由口通信協(xié)議和上位機的VC開發(fā)工具,可以方便地開發(fā)出PC機和PLC通信應(yīng)用軟件。這種方法節(jié)省投資,對小規(guī)模的系統(tǒng)極具現(xiàn)實意義。系統(tǒng)具有實時性好、速度快、可靠性高、操作方便等優(yōu)點,達到了預(yù)期的效果。經(jīng)現(xiàn)場調(diào)試及運行表明,該系統(tǒng)適合于飛剪系統(tǒng)的實時監(jiān)控。 參考文獻   [1].SIEMENS SIMATIC S7-200 可編程控制器手冊[M]. 2000   [2]. 許毅.基于PC與S7-200實現(xiàn)自由通信協(xié)議的研究[J].武漢理工大學(xué)學(xué)報,2002(4):512-515   [3]. 龍偉. S7-200系列PLC和PC機實時通信的實現(xiàn)方法[J].南昌大學(xué)學(xué)報,2002(2):81-83   [4].廖常初.PLC編程及應(yīng)用[M].機械工業(yè)出版社,2002.9

標(biāo)簽:

點贊

分享到:

上一篇:一種計算機實時控制系統(tǒng)的分...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.treenowplaneincome.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權(quán)法律責(zé)任。

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號