技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > Vb6.0 實現(xiàn)計算機與三菱PLC的通信 

Vb6.0 實現(xiàn)計算機與三菱PLC的通信 

時間:2008-11-18 13:24:00來源:dujing

導(dǎo)語:?本文介紹了VB 進(jìn)行串口通信的各種基本方式和三菱可編程控制器之間的通信的程序設(shè)計,重點介紹了利用MSCOMM.OCX進(jìn)行串行通信的設(shè)計方法。
  摘要:本文介紹了VB 進(jìn)行串口通信的各種基本方式和三菱可編程控制器之間的通信的程序設(shè)計,重點介紹了利用MSCOMM.OCX進(jìn)行串行通信的設(shè)計方法。   關(guān)鍵詞:串行通信, PLC, Visual Basic 6.0   一、引言   在工業(yè)生產(chǎn)中,人們常常面臨著數(shù)據(jù)采集與管理。作為工廠自動化的三大支柱可編程控制器PLC(Programmable Logic Controller),由于其安全可靠,廣泛的用于數(shù)據(jù)采集與控制。生產(chǎn)過程中,要監(jiān)視PLC內(nèi)部的數(shù)據(jù)與運行狀況,選用市場上的人機界面或組態(tài)軟件,雖然功能豐富,但大都價格昂貴,在一些中小規(guī)模的生產(chǎn)場合,人們希望能自己用高級語言開發(fā)一個簡易實用的通信程序。微軟公司推出的Visual Basic 6.0,開發(fā)串行通信程序時,有兩種方法,一種是用Windows API函數(shù),另一種是用VB支持的通信控件MSCOMM.OCX。利用Windows API函數(shù)是通過調(diào)用讀寫等函數(shù)來操作串口。兩種比較,使用MSCOMM.OCX控件編程方便,具有更完善的發(fā)送和接收功能。這里采用了M SCOMM.OCX控件。   本文根據(jù)杭州某包裝材料公司原料配料控制系統(tǒng)為背景,簡述實現(xiàn)計算機與三菱FX系列PLC通信的實現(xiàn)過程。   二、硬件與選型   日本三菱公司是國際著名的工廠自動化設(shè)備制造商,工業(yè)可編程控制器在國內(nèi)市場占有率一直保持前列。項目選用三菱FX2N-64MR型PLC,SC-09電纜作為計算機與PLC通信的連線。連接電纜的9針端連接在計算機串口上,另一端連接在PLC的RS-422編程口。系統(tǒng)框圖如圖一所示。
  三、軟件編程   軟件設(shè)計主要包括PLC梯形圖設(shè)計和計算機VB程序、數(shù)據(jù)庫設(shè)計。計算機操作系統(tǒng)為Windows98,編程語言用Visual Basic 6.0,數(shù)據(jù)庫選用Access97,梯形圖程序在三菱PLC編程軟件GPPWIN 軟件環(huán)境設(shè)計。上位機軟件實現(xiàn)計算機對PLC內(nèi)部數(shù)據(jù)讀取、寫入?yún)?shù)和保存數(shù)據(jù)到數(shù)據(jù)庫。   三菱FX2N型PLC編程口通信協(xié)議如下:      
  波特率9600,偶校驗,8位數(shù)據(jù)位,一位停止位。   在新建工程的表單上添加MSCOMM.OCX控件,初始化程序:   Private Sub Form_Load()   MSComm1.CommPort = 1 ‘選擇COM1口   MSComm1.Settings = "9600,e,7,1"   End Sub   系統(tǒng)參數(shù)主畫面如下圖所示: [align=center] 圖二[/align]   數(shù)據(jù)讀取子程序:   Public Function GetData(ByVal StartAddress As String, ByVal GetBytes As Integer, ByVal Hex_Bytes As String) As String   MSComm1.InputLen = GetBytes * 2 + 4   MSComm1.Output = STX + CMD_Read + StartAddress + Hex_Bytes + ETX + GetSumChk(CMD_Read + StartAddress + Hex_Bytes + ETX)   ‘傳送數(shù)據(jù)組成:起始符+命令+首地址+數(shù)據(jù)位+結(jié)束符+和檢驗碼   GetData = MSComm1.Input   MSComm1.InBufferCount = 0   MSComm1.InputLen = 0   End Function   如需讀取數(shù)據(jù),通過調(diào)用GetData子程序。   參數(shù)設(shè)置程序可參考讀取子程序,只是改變命令而已。   Access97數(shù)據(jù)庫中包含三個表單,包括參數(shù)表、記錄表、報警記錄表。   通過如下子程序是將實際稱量值(記錄表)更新到數(shù)據(jù)庫:   Private Sub SaveData()   Dim i As Integer   Dim valid As Boolean   On Error Resume Next   valid = True   Data1.Recordset.AddNew   Data1.Recordset.Fields("dtime") = TimeSerial(OnHour, OnMinute, OnSecond)   Data1.Recordset.Fields("systime") = Time ‘系統(tǒng)時間   Data1.Recordset.Fields("get_xl") = LF(1) ‘小料當(dāng)前稱量值   Data1.Recordset.Fields("get_fjs") = LF(2) ‘方解石當(dāng)前稱量值   Data1.Recordset.Fields("get_cs") = LF(3) ‘長石當(dāng)前稱量值   Data1.Recordset.Fields("get_sys") = LF(4) ‘石英砂當(dāng)前稱量值   Data1.Recordset.Fields("get_cj") = LF(5) ‘純堿當(dāng)前稱量值   On Error Resume Next   Data1.Recordset.Update ‘更新數(shù)據(jù)庫記錄   Data1.Recordset.MovePrevious   End Sub   程序中,LF(i)變量對應(yīng)為圖二系統(tǒng)參數(shù)表單中實稱值。   保存參數(shù)子程序只是對數(shù)據(jù)庫操作,程序結(jié)構(gòu)可參考以上子程序。   上位機與PLC通信質(zhì)量的好壞,對系統(tǒng)的安全可靠運行影響極大,因此,編寫程序時,除了在兩者之間的通信協(xié)議上保持絕對一致和采取相應(yīng)的容錯技術(shù)外,還要考慮系統(tǒng)的整體容錯技術(shù),防止系統(tǒng)的不正常。   四、結(jié)束語   串行通信是目前計算機與其他設(shè)備之間通信廣泛采用的方式之一,傳送數(shù)據(jù)準(zhǔn)確,程序穩(wěn)定運行是系統(tǒng)開發(fā)的主要目的。本設(shè)計中充分利用計算機和PLC的資源,在幾乎不增加設(shè)備開支的情況下成功的實現(xiàn)上位機與PLC之間的通信。

標(biāo)簽:

點贊

分享到:

上一篇:水處理工業(yè)中的測量最優(yōu)化

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

中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.wangxinlc.cn)獨家所有。如需轉(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)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(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 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號