久久精品人妻一区二区蜜桃-欧美精品人妻一区二区免费视频-久久精品免费一区二区喷潮-久久精品中文闷骚内射-精品bbw-精品久久无码中文字幕-小小水蜜桃3视频高清在线观看-日韩免费一级aaa片毛太久-欧美激情肉欲高潮无码鲁大师-欧美影片一区二区三区-亚洲精品无码av无码专区一本,波多野吉衣一区二区三区在线观看,囯精品人妻无码一区二区三区99,包哟哟在线观看免费观看

產(chǎn)品分類

當(dāng)前位置: 首頁 > 工業(yè)控制產(chǎn)品 > 自動(dòng)化控制 > PLC可編程控制器

類型分類:
科普知識
數(shù)據(jù)分類:
PLC可編程控制器

Vb6.0 實(shí)現(xiàn)計(jì)算機(jī)和三菱PLC的通信

發(fā)布日期:2022-04-22 點(diǎn)擊率:120 品牌:信捷_XINJIE

一、引言

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

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

 

二、硬件與選型

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

三、軟件編程

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

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

命令

命令字

控制元件

     備注

讀元件

0

X,Y,M,S,T,C,D

讀字/位元件狀態(tài)

寫元件

1

X,Y,M,S,T,C,D

寫字/位元件狀態(tài)

置位

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ù)位,一位停止位。

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

     Private Sub Form_Load()

     MSComm1.CommPort = 1 '選擇COM1

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

     End Sub

    數(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é)束符+和檢驗(yàn)碼

  GetData = MSComm1.Input

  MSComm1.InBufferCount = 0

  MSComm1.InputLen = 0

End Function

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

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

Access97數(shù)據(jù)庫中包含三個(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.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)      ‘長石當(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ù)子程序只是對數(shù)據(jù)庫操作,程序結(jié)構(gòu)可參考以上子程序。

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

四、結(jié)束語

    串行通信是目前計(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之間的通信

下一篇: PLC、DCS、FCS三大控

上一篇: 索爾維全系列Solef?PV

推薦產(chǎn)品

更多