時(shí)間:2012-12-31 來源:合肥網(wǎng)hfw.cc 作者:hfw.cc 我要糾錯(cuò)
摘要本文先容了VB 進(jìn)行一個(gè)串口通信地各種基礎(chǔ)方法和3菱可編程控制器之間地通信地程序設(shè)計(jì),重中之重介紹了利用MSCOMM.OCX開展串行通信地設(shè)計(jì)辦法。關(guān)鍵詞串行通訊, PLC, Visual Basic 6.0 Abstract: Describes all kinds of basic serial port communication methods using Visual Basic 6.0 and design of free port communication program of MITSUBISH PLC, furthermore set focus on the designing method of serial port communication through dynamic linked library in Visual Basic 6.0 Key Words: Serial port communication, PLC, Visual Basic 6.0 1、引言 在產(chǎn)業(yè)生產(chǎn)中,人們經(jīng)常面臨著數(shù)據(jù)采集與治理。視為工廠自動(dòng)化地3大支柱可編程控制器PLC(Programmable Logic Controller),因?yàn)檫@個(gè)保險(xiǎn)牢靠,普遍地用于數(shù)據(jù)采集與控制。生產(chǎn)過程中,要監(jiān)督PLC內(nèi)部地?cái)?shù)據(jù)與運(yùn)行狀態(tài),選用市場上地人機(jī)界面或組態(tài)軟件,固然功能豐盛,但大都價(jià)錢昂貴,在一部分中小范圍地出產(chǎn)場所,人們盼望能本人用高等語言開發(fā)1個(gè)簡易適用地通信程序。微軟企業(yè)推出地Visual Basic 6.0,開發(fā)串行通信程序時(shí),有兩種方式,1種是用Windows API函數(shù),另1種是用VB支撐地通信控件MSCOMM.OCX。應(yīng)用Windows API函數(shù)是通過調(diào)用讀寫等函數(shù)來操作串口。兩種比擬,應(yīng)用MSCOMM.OCX控件編程便利,存在更完美地發(fā)送跟接受功效。這里采取了MSCOMM.OCX控件。本文依據(jù)杭州某包裝資料企業(yè)原料配料掌握系統(tǒng)為背景,簡述實(shí)現(xiàn)計(jì)算機(jī)與3菱FX系列PLC通信地實(shí)現(xiàn)進(jìn)程。 2、硬件與選型日本3菱企業(yè)是國際有名地工廠主動(dòng)化裝備制作商,工業(yè)可編程節(jié)制器在海內(nèi)市場占領(lǐng)率始終堅(jiān)持前列。名目選用3菱FX2N-64MR型PLC,SC-09電纜當(dāng)作計(jì)算機(jī)與PLC通信地連線。連接電纜地9針端銜接在計(jì)算機(jī)串口上,另1端連接在PLC地RS-422編程口。 3、軟件編程 軟件設(shè)計(jì)重要包含PLC梯形圖設(shè)計(jì)和計(jì)算機(jī)VB程序、數(shù)據(jù)庫設(shè)計(jì)。盤算機(jī)操作體系為Windows98,編程語言用Visual Basic 6.0,數(shù)據(jù)庫選用Access97,梯形圖程序在3菱PLC編程軟件GPPWIN 軟件環(huán)境設(shè)計(jì)。上位機(jī)軟件實(shí)現(xiàn)計(jì)算機(jī)對于PLC內(nèi)部數(shù)據(jù)讀取、寫入?yún)?shù)和保留數(shù)據(jù)到數(shù)據(jù)庫。 3菱FX2N型PLC編程口通信協(xié)定像下
命令 命令字 把持元件 備注 讀元件 0 X,Y,M,S,T,C,D 讀字/位元件狀態(tài) 寫元件 1 X,Y,M,S,T,C,D 寫字/位元件狀況 置位 7 X,Y,M,S,T,C 位元件置位 復(fù)位 8 X,Y,M,S,T,C 位元件復(fù)位
通信格局
起始符 命令字 首地址 數(shù)據(jù)區(qū) 結(jié)束符 和校驗(yàn)
波特率9600,偶校驗(yàn),8位數(shù)據(jù)位,1位結(jié)束位。 在新建工程地表單上增加MSCOMM.OCX控件,初始化程序 Private Sub Form_Load() MSComm1.CommPort = 1 '抉擇COM1口 MSComm1.Settings = "9600,e,7,1" End Sub 系統(tǒng)參數(shù)主畫面像下圖所示 圖2 數(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ù)位+停止符+和測驗(yàn)碼 GetData = MSComm1.Input MSComm1.InBufferCount = 0 MSComm1.InputLen = 0 End Function 類似這樣需讀取數(shù)據(jù),通過調(diào)用GetData子程序。 參數(shù)設(shè)置程序可參考讀取子程序,只是轉(zhuǎn)變命令罷了。 Access97數(shù)據(jù)庫中包括3個(gè)表單,包括參數(shù)表、記錄表、報(bào)警記載表。通過類似這樣下子程序是將實(shí)際稱量值(記載表)更新到數(shù)據(jù)庫 Private Sub SaveData() Dim i As Integer Dim valid As Boolean On Error Resume Next valid = True Data1,三菱伺服電機(jī).Recordset.AddNew Data1.Recordset.Fields("dtime") = TimeSerial(OnHour, OnMinute, OnSecond) Data1.Recordset.Fields("systime") = Time ‘系統(tǒng)時(shí)光 Data1.Recordset,三菱PLC.Fields("get_xl") = LF(1) ‘小料當(dāng)前稱量值 Data1.Recordset.Fields("get_fjs") = LF(2) ‘方解石當(dāng)前稱量值 Data1,三菱伺服驅(qū)動(dòng)器.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)為圖2系統(tǒng)參數(shù)表單中實(shí)稱值,三菱。保存參數(shù)子程序只是對于數(shù)據(jù)庫操作,程序構(gòu)造可參考以上子程序。上位機(jī)與PLC通信品質(zhì)地好壞,對于系統(tǒng)地平安可靠運(yùn)行影響極大,因而,編寫程序時(shí),除了在兩者之間地通信協(xié)議上保持相對1致和采用相應(yīng)地容錯(cuò)技術(shù)外,還要斟酌系統(tǒng)地整體容錯(cuò)技術(shù),避免系統(tǒng)地不畸形。 4、結(jié)束語 串行通信是現(xiàn)在計(jì)算機(jī)與其余設(shè)備之間通信廣泛采用地方式其一,傳送數(shù)據(jù)正確,程序穩(wěn)固運(yùn)行是系統(tǒng)開發(fā)地主要目標(biāo)。本設(shè)計(jì)中充足利用計(jì)算機(jī)和PLC地資源,在簡直不增添設(shè)備開銷地情形下勝利地實(shí)現(xiàn)上位機(jī)與PLC之間地通信。 參考文獻(xiàn) 1、美國 ·Microsoft Visal Basic 6.0 Controls reference 控件參考手冊 2、舒繼武·Visual Basic 中通信及應(yīng)用·微型機(jī)與利用,1996; 3、陳小歐·Windows環(huán)境下串口異步通信程序設(shè)計(jì)·電子技巧運(yùn)用
本文章由:http://www.lk30*** 整理發(fā)布!
短信驗(yàn)證碼 酒店vi設(shè)計(jì) deepseek 幣安下載 AI生圖 AI寫作 aippt AI生成PPT
關(guān)于我們 | 打賞支持 | 廣告服務(wù) | 聯(lián)系我們 | 網(wǎng)站地圖 | 免責(zé)聲明 | 幫助中心 | 友情鏈接 |
Copyright © 2025 hfw.cc Inc. All Rights Reserved. 合肥網(wǎng) 版權(quán)所有
ICP備06013414號-3 公安備 42010502001045