當(dāng)前位置:機(jī)電之家首頁(yè) >> PLC技術(shù)>> plc應(yīng)用 >> 三菱plc應(yīng)用 >> Vb6.0實(shí)現(xiàn)計(jì)算機(jī)與三菱PLC的通信
Vb6.0實(shí)現(xiàn)計(jì)算機(jī)與三菱PLC的通信

作為工廠自動(dòng)化的三大支柱可編程控制器PLC(Programmable Logic Controller),由于其安全可靠,廣泛的用于數(shù)據(jù)采集與控制。生產(chǎn)過程中,要監(jiān)視PLC內(nèi)部的數(shù)據(jù)與運(yùn)行狀況,選用市場(chǎng)上的人機(jī)界面或組態(tài)軟件,雖然功能豐富,但大都價(jià)格昂貴,在一些中小規(guī)模的生產(chǎn)場(chǎng)合,人們希望能自己用高級(jí)語(yǔ)言開發(fā)一個(gè)簡(jiǎn)易實(shí)用的通信程序。本文介紹了VB 進(jìn)行串口通信的各種基本方式和三菱可編程控制器之間的通信的程序設(shè)計(jì),重點(diǎn)介紹了利用MSCOMM.OCX進(jìn)行串行通信的設(shè)計(jì)方法。

一、引言

    在工業(yè)生產(chǎn)中,人們常常面臨著數(shù)據(jù)采集與管理。作為工廠自動(dòng)化的三大支柱可編程控制器PLC(Programmable Logic Controller),由于其安全可靠,廣泛的用于數(shù)據(jù)采集與控制。生產(chǎn)過程中,要監(jiān)視PLC內(nèi)部的數(shù)據(jù)與運(yùn)行狀況,選用市場(chǎng)上的人機(jī)界面或組態(tài)軟件,雖然功能豐富,但大都價(jià)格昂貴,在一些中小規(guī)模的生產(chǎn)場(chǎng)合,人們希望能自己用高級(jí)語(yǔ)言開發(fā)一個(gè)簡(jiǎn)易實(shí)用的通信程序。微軟公司推出的Visual Basic 6.0,開發(fā)串行通信程序時(shí),有兩種方法,一種是用bbbbbbs API函數(shù),另一種是用VB支持的通信控件MSCOMM.OCX。利用bbbbbbs API函數(shù)是通過調(diào)用讀寫等函數(shù)來操作串口。兩種比較,使用MSCOMM.OCX控件編程方便,具有更完善的發(fā)送和接收功能。這里采用了MSCOMM.OCX控件。

本文根據(jù)杭州某包裝材料公司原料配料控制系統(tǒng)為背景,簡(jiǎn)述實(shí)現(xiàn)計(jì)算機(jī)與三菱FX系列PLC通信的實(shí)現(xiàn)過程。

二、硬件與選型

日本三菱公司是國(guó)際著名的工廠自動(dòng)化設(shè)備制造商,工業(yè)可編程控制器在國(guó)內(nèi)市場(chǎng)占有率一直保持前列。項(xiàng)目選用三菱FX2N-64MR型PLC,SC-09電纜作為計(jì)算機(jī)與PLC通信的連線。連接電纜的9針端連接在計(jì)算機(jī)串口上,另一端連接在PLC的RS-422編程口。系統(tǒng)框圖如圖一所示:

 SC-09電纜
 
三、軟件編程

    軟件設(shè)計(jì)主要包括PLC梯形圖設(shè)計(jì)和計(jì)算機(jī)VB程序、數(shù)據(jù)庫(kù)設(shè)計(jì)。計(jì)算機(jī)操作系統(tǒng)為bbbbbbs98,編程語(yǔ)言用Visual Basic 6.0,數(shù)據(jù)庫(kù)選用Access97,梯形圖程序在三菱PLC編程軟件GPPWIN 軟件環(huán)境設(shè)計(jì)。上位機(jī)軟件實(shí)現(xiàn)計(jì)算機(jī)對(duì)PLC內(nèi)部數(shù)據(jù)讀取、寫入?yún)?shù)和保存數(shù)據(jù)到數(shù)據(jù)庫(kù)。

三菱FX2N型PLC編程口通信協(xié)議如下:

      波特率9600,偶校驗(yàn),8位數(shù)據(jù)位,一位停止位。

   在新建工程的表單上添加MSCOMM.OCX控件,初始化程序:

     Private Sub Form_Load()

     MSComm1.CommPort = 1 '選擇COM1口

     MSComm1.Settings = "9600,e,7,1" 

     End Sub

系統(tǒng)參數(shù)主畫面如下圖所示: 

數(shù)據(jù)讀取子程序:

Public Function GetData(ByVal StartAddress As bbbbbb, ByVal GetBytes As Integer, ByVal Hex_Bytes As bbbbbb) As bbbbbb

  MSComm1.bbbbbLen = GetBytes * 2 + 4

  MSComm1.Output = STX + CMD_Read + StartAddress + Hex_Bytes + ETX + GetSumChk(CMD_Read + StartAddress + Hex_Bytes + ETX)

   ‘傳送數(shù)據(jù)組成:起始符+命令+首地址+數(shù)據(jù)位+結(jié)束符+和檢驗(yàn)碼

  GetData = MSComm1.bbbbb

  MSComm1.InBufferCount = 0

  MSComm1.bbbbbLen = 0

End Function

    如需讀取數(shù)據(jù),通過調(diào)用GetData子程序。

    參數(shù)設(shè)置程序可參考讀取子程序,只是改變命令而已。

Access97數(shù)據(jù)庫(kù)中包含三個(gè)表單,包括參數(shù)表、記錄表、報(bào)警記錄表。

通過如下子程序是將實(shí)際稱量值(記錄表)更新到數(shù)據(jù)庫(kù):

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)時(shí)間

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)      ‘長(zhǎng)石當(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ù)庫(kù)記錄

Data1.Recordset.MovePrevious

End Sub

程序中,LF(i)變量對(duì)應(yīng)為圖二系統(tǒng)參數(shù)表單中實(shí)稱值。

保存參數(shù)子程序只是對(duì)數(shù)據(jù)庫(kù)操作,程序結(jié)構(gòu)可參考以上子程序。

上位機(jī)與PLC通信質(zhì)量的好壞,對(duì)系統(tǒng)的安全可靠運(yùn)行影響極大,因此,編寫程序時(shí),除了在兩者之間的通信協(xié)議上保持絕對(duì)一致和采取相應(yīng)的容錯(cuò)技術(shù)外,還要考慮系統(tǒng)的整體容錯(cuò)技術(shù),防止系統(tǒng)的不正常。

四、結(jié)束語(yǔ)

    串行通信是目前計(jì)算機(jī)與其他設(shè)備之間通信廣泛采用的方式之一,傳送數(shù)據(jù)準(zhǔn)確,程序穩(wěn)定運(yùn)行是系統(tǒng)開發(fā)的主要目的。本設(shè)計(jì)中充分利用計(jì)算機(jī)和PLC的資源,在幾乎不增加設(shè)備開支的情況下成功的實(shí)現(xiàn)上位機(jī)與PLC之間的通信。

作者:未知 點(diǎn)擊:1053次 [打印] [關(guān)閉] [返回頂部]
本文標(biāo)簽:Vb6.0實(shí)現(xiàn)計(jì)算機(jī)與三菱PLC的通信
* 由于無法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報(bào)酬未能及時(shí)支付,在此深表歉意,請(qǐng)《Vb6.0實(shí)現(xiàn)計(jì)算機(jī)與三菱PLC的通信》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
電子樣本

SN系列樣冊(cè)
:鞏經(jīng)理
:13915946763
:南京塞姆泵業(yè)有限公司
個(gè)人求購(gòu)

楊異乾 【求購(gòu)】  電涌保護(hù)器  2025-11-28
趙焱 【求購(gòu)】  電氣溫控閥  2025-11-28
張揚(yáng)瓊 【求購(gòu)】  ABB火檢...  2025-11-27
張雪根 【求購(gòu)】  固體除垢劑  2025-11-26
趙經(jīng)理 【求購(gòu)】  變壓器  2025-11-26
羅經(jīng)理 【求購(gòu)】  巡邏車跟蹤...  2025-11-26
趙經(jīng)理 【求購(gòu)】  柴油發(fā)電機(jī)  2025-11-26
沈雙 【求購(gòu)】  柴油過濾紙  2025-11-26
VIP公司推薦