亚洲精华国产精华精华液网站,你懂的,娇生惯养4ph归寻(矜以),丰年经继拇中文3与其他教材比较

技術頻道

娓娓工業
您現在的位置: 中國傳動網 > 技術頻道 > 應用方案 > VC環境下PLC與上位機的實時通信

VC環境下PLC與上位機的實時通信

時間:2008-12-12 10:55:06來源:zhangting

導語:?可編程控制器(plc)是集計算機技術、自動控制技術、通信技術為一體的新型自動控制裝置。
1 前言 可編程控制器(plc)是集計算機技術、自動控制技術、通信技術為一體的新型自動控制裝置。由于體積小、可靠性高以及組態靈活等優點,plc在工業控制領域得到了廣泛的應用。在plc組成的自動測量和控制系統中,一般采用主從式控制結構,由plc向計算機發送數據,計算機處理數據后根據具體情況向plc發出相應的指令,控制plc的運行。plc作為下位機,完成數據采集、狀態判別、輸出控制等任務,上位機(微型計算機、工業控制機)完成采集數據信息的存儲、分析處理、狀態顯示以及打印輸出等任務,以實現對系統的實時監控。目前市場上常用的人機界面或監控組態軟件價格昂貴且由國外公司壟斷, 對于小型企業的單機系統來說,許多功能并不實用,同時組態軟件的本身也還存在不足之處,不能滿足一些特殊要求。因此,目前仍然需要技術人員根據實際情況開發小型經濟適用的軟件。筆者針對比較簡單的控制系統,利用vc++6.0設計了一個通信程序,實現了windows環境下上位計算機對多臺plc的靈活監控。 2 通信類型 日本三菱公司是國際著名的工廠自動化設備制造商,其工業可編程控制器在國內市場占有相當大的份額。本項目選用三菱fx2n-48mr型plc,fx系列plc支持以下5種通信類型: (1) plc的n:n通信方式; (2) plc雙機并聯通信方式; (3) plc與計算機專有協議通信方式; (4) plc與計算機無協議通信方式(使用rs指令或fx2n-232if特殊功能塊); (5) 自由端口設計方式(需要特殊通信模塊,使用較少)。 各種通信類型的具體特性列于表1。本系統采用專有協議通信方式,以pc機為主站,通過fx-485pc-if及fx2n-485bd與多臺plc從站連接(最多16臺),每臺plc被賦予唯一的站號用以標志身份,上位機通過rs-485通信總線對plc進行控制。 3 通信協議
fx2n系列plc通信采用異步格式,較常用的數據幀由1位起始位、7位數據位、1位停止位及1位校驗位組成,波特率為9600bps。傳輸數據以字節為單位,分為高4位和低4位,每4位轉化為1個ascii字符發送。以上位機從plc讀取數據為例。 計算機方發送數據幀格式如表2所示:
enq是請求通信標志;station no.代表plc站號,設定范圍00h-0fh;pc no. 是plc的cpu代號,fx系列為ffh;command是操作命令碼,具體內容列于表3;message wait time表示從命令發出到plc回應之間的等待時間,允許值從0-150ms,設定為00h-0fh;character area a為傳送字符串,包括位元件或字元件的首地址和單元字節個數; sum check code是和校驗碼,分為高4位和低4位。 plc應答格式如表4所示。 stx是幀開始字符;character area b為傳送數據,fx系列plc一次最多可以傳送64比特即40h數據;etx為幀結束字符;其余含義同上。 本程序的主要功能為,每隔一定時間(由用戶通過界面設定)按站號順序批量讀取plc中位元件y000-y017的狀態,將數據存放入數據庫plc表中。 總共有2臺plc,對于站號為i 的plc,命令格式如表5所示。 4 軟件編程 軟件設計選用visualc++6.0作為開發平臺,利用其提供的mscomm控件,可以方便地實現plc與上位機的串行通信。該通信控件提供了使用rs232開發串行通信軟件的細則,使用事件驅動或查詢方式來解決開發通信軟件中遇到的問題。該控件有27個屬性,主要的屬性如表6所示。 首先將mscomm控件加入工程,同時安裝1個系統定時器。通信控件m_mycom用于訪問串口、發送和接收數據;系統定時器用于控制每隔一定時間間由上位機向plc發送命令。通信程序部分代碼如下:
// 首先初始化通信端口 bool cplccommdlg::oninitdialog() {…… m_mycom.setcommport(1); file://選擇com1 m_mycom.setinbuffersize(1024); file://設置輸入緩沖區的大小 m_mycom.setoutbuffersize(512); file://設置輸出緩沖區的大小 m_mycom.setinputmode(1);//設置數據獲取方式 m_mycom.setsettings("9600,e,7,1");//設置通信參數 m_mycom.setinputlen(0); file://設置讀取方式 if(!m_mycom.getportopen() ); m_mycom.setportopen (true); file://打開串口 stationno=0x30; if(settimer(1,m_usertime,null)==0) afxmessagebox("error setting,please check it!") } file://消息處理函數ontimer void cplccommdlg::ontimer(uint nidevent) { byte receivedata[1024]; byte senddata[]={`0x05`,`0`,`i`,`f`,`f`,`w`,`r`,`a`,`y`,`0`,`0`,`0`,`0`, `0`,`1`,`sumh`,`suml`}; if(stationno<0x31) stationno++; else stationno=0x30; senddata[3]= stationno; sumcheck(senddata,17) cbytearray array; array.removeall(); array.setsize(17); for(int k=0;k<17;k++) { array.setat(k,senddata[k]); } m_mycom.setoutput(colevariant(array));//發送命令 ……//數據接收處理及加入數據庫操作 } file://和校驗函數sumcheck void cplccommdlg::sumcheck(byte temp[],int n) { int i; byte sum=0x00,sumh=0xf0,suml=0x0f; for(i=1;i<=n-3;i++) sum+=temp[i]; suml= suml∑ sumh= sumh∑ sumh= sumh>>4; temp[n-1]= suml; temp[n-2]= sumh; } 5 結論 串行通信是目前計算機與其他設備之間重要的通信手段之一,本程序作為小型監控系統的重要組成部分,實現了上位機對多臺plc的實時監控,傳送數據準確,程序運行穩定。整個控制系統方便可靠,同時又節省了大筆投資,具有相當大的實用性。

標簽:

點贊

分享到:

上一篇:鎳基合金噴焊層的切削加工

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

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

本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業自動化與智能制造的全媒體“互聯網+”創新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業執照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號

主站蜘蛛池模板: 方山县| 镇江市| 诸城市| 南乐县| 霍林郭勒市| 宿迁市| 瑞安市| 科尔| 新野县| 延吉市| 邯郸县| 喀喇沁旗| 格尔木市| 缙云县| 赤水市| 沾益县| 丰宁| 浦县| 仪陇县| 静乐县| 永昌县| 张北县| 庆安县| 托克托县| 镇巴县| 兴宁市| 渭南市| 永胜县| 织金县| 石楼县| 黄冈市| 新沂市| 垫江县| 唐海县| 锡林郭勒盟| 谢通门县| 河曲县| 突泉县| 海淀区| 苏尼特右旗| 长沙市|