国产强伦姧在线观看无码,中文字幕99久久亚洲精品,国产精品乱码在线观看,色桃花亚洲天堂视频久久,日韩精品无码观看视频免费

      您現(xiàn)在的位置:智能制造網(wǎng)>技術(shù)中心>基于VB的臺達(dá)PLC與監(jiān)控計(jì)算機(jī)的串行通信實(shí)現(xiàn)

      直播推薦

      更多>

      企業(yè)動態(tài)

      更多>

      推薦展會

      更多>

      基于VB的臺達(dá)PLC與監(jiān)控計(jì)算機(jī)的串行通信實(shí)現(xiàn)

      2006年08月28日 11:47:30人氣:732來源:煙臺勾股通信技術(shù)有限公司

      Implementation of Serial Communication Between Monitoring Computer and Delta PLC Based on Visual Basic
      Wang Naiquan

      摘要:PLC直接與現(xiàn)場控制層的檢測儀器儀表設(shè)備連接,是底層控制網(wǎng)絡(luò)的組成部分,是工廠自動化系統(tǒng)的基石,因此實(shí)現(xiàn)與監(jiān)控層計(jì)算機(jī)的通信對系統(tǒng)的優(yōu)化運(yùn)行有重要意義。文章基于VB討論臺達(dá)DVP PLC與監(jiān)控計(jì)算機(jī)的通信問題。

      關(guān)鍵詞:VB  通信協(xié)議  可編程控制器
      Abstract: The PLC is a composing part of Infranet, it links to the measuring instrument and device in field control layer directly, and is the footstone of factory automation system. Therefore it is very important to realize the communication between PLC and monitoring layer computer for optimization of syste running. The paper discussed the related communication problems between Delta DVP PLC and monitoring computer based on Visual Basic.  
      Key Words: Visual Basic  Communication protocal   Programable logic controller

      [中圖分類號] TP273        [文獻(xiàn)標(biāo)識碼] B             文章編號

      1 引 言 
          現(xiàn)場設(shè)備層中的設(shè)備種類繁多,有傳感器、啟動器、驅(qū)動器、I/O部件、變送器、閥門等等,當(dāng)然也包括現(xiàn)場檢測儀器儀表設(shè)備。PLC是現(xiàn)場設(shè)備控制層*的部分,已經(jīng)非常普及,如何簡便地實(shí)現(xiàn)與PLC的交互已經(jīng)成為眾多廠商新的競爭戰(zhàn)場。由此產(chǎn)生了人機(jī)界面等軟件產(chǎn)品,這些產(chǎn)品的出現(xiàn)簡化了對PLC的控制、操作,使PLC的應(yīng)用更加方便;但也有其共同的缺點(diǎn),價格普遍偏高和可二開發(fā)性較差。VB作為“原始”的編程語言在這兩方面無疑有著明顯優(yōu)勢的,本文結(jié)合一個簡單的案例,用比較基礎(chǔ)的概念討論如何通過VB實(shí)現(xiàn)PC與PLC之間的通信問題,這對剛涉步控制領(lǐng)域的工程師或許是有幫助的。在現(xiàn)場設(shè)備層中各式各樣的設(shè)備都可以和計(jì)算機(jī)聯(lián)機(jī),而zui簡單的自動化聯(lián)機(jī)方式就是使用串行通信,VB提供了串行通信控件可以讓開發(fā)出串行通信的系統(tǒng)程序,以下是對相關(guān)問題的粗略討論。

      2 串行通信基本概念
          數(shù)據(jù)通訊中有兩種類型的通信形式,即并行通信(Parallel Communication)和串行通信(Serial Communication)。例如,如果有8位數(shù)據(jù)需要傳送,那么并行通信一次就可以完成8位的傳輸量;而串行一次只能傳送1位。圖1表示了兩種不同的通信模式,常用的串行通信也有兩種,分別為RS-232和RS-485。


      2.1 RS-232 串行通信
          RS-232的信號準(zhǔn)位是參考地線而言的,如圖2所示。相對于參考接地端1傳輸端傳送數(shù)據(jù);接收端則相對于參考接地端2復(fù)現(xiàn)出傳送端的傳送的數(shù)據(jù)。

      由于兩個接地端準(zhǔn)位不一定一樣,而且很容易受到干擾,所以信號在RS-232線路傳輸時,很容易產(chǎn)生錯誤。

      2.2 RS-485串行通信


          RS-485的信號被傳送出去時會分成正負(fù)兩條線路,當(dāng)?shù)竭_(dá)接收端后,在將信號相減還原成原來的信號;如果將原始的信號表示成(DT),而被分成的信號分別標(biāo)示成(D+)及(D-),則DT=(D+)-(D-)。同理,接收端在接收到信號后,也依據(jù)上式還原成原來的樣子。如果線路受到干擾,兩條線路的信號分別為(D+)+Noise與(D-)+Noise。接收端還原信號為(DT)= [(D+)+Noise]-[(D-)+Noise],與先前結(jié)果一樣,所以RS-485可以有效的防止噪聲的干擾。

      3 VB的基本概念
          VB(Visual Basic)是微軟的窗口軟件,提供了很多接口成員,對象、屬性、事件、方法就是4個重要的接口,VB提供了許多常用的控件。
      3.1卷標(biāo)控件
      3.2 按鈕控件
      3.3 定時器控件

      4 基于MScomm控件的串行通信
          要完成VB與PLC等設(shè)備的串行通信要用到MScomm控件, 在此有必要對該控件作較詳細(xì)的說明。Mscomm是一個非標(biāo)準(zhǔn)控件,需要要手動添加許多項(xiàng)目,其步驟如下。
          1) 選擇菜單的【工程】
          2) 選擇【部件】

      4.1 MODBUS ASCII
          Modbus 分為ASCII和RTU兩種,ASCII采用的格式和校驗(yàn)相對簡單,本文采用ASCII格式,并僅對使用的功能碼進(jìn)行說明,更多的信息,請參看協(xié)議的詳細(xì)說明。
      LRC算法:ADR H+CMD H+DATA H,然后取2的補(bǔ)碼。
      2)功能碼
      05,寫入線圈
      01,讀線圈狀態(tài)
      06,寫入單個字寄存器


      4.2 VB與PLC通信的實(shí)現(xiàn)
          以下舉例說明現(xiàn)場設(shè)備與PLC通信的實(shí)現(xiàn)。
          1)控制要求:控制PLC的起動、停止,并顯示運(yùn)行狀態(tài)(綠色為運(yùn)行,紅色為停止);能夠用交替型按鈕控制Y0,Y1,并用指示燈顯示Y0,Y1狀態(tài)(綠色為運(yùn)行,紅色為停止);能夠?qū)256,D512兩個寄存器進(jìn)行數(shù)值寫入的操作。
          2)實(shí)現(xiàn)思路:PLC起動停止的標(biāo)志位為M1072,查DVP協(xié)議,知道地址為H0C30,按功能碼01操作;   同樣Y0,Y1的地址分別為H0500,H0501。寫入FF00為ON,0000為OFF,按功能碼05操作;D256,D512地址分別為H1100,H1200,按功能碼06操作即可。
          3)VB接口的設(shè)計(jì)。
         用按鈕控制PLC的起動停止,Y0、Y1的ON/OFF及D256、D512寫完數(shù)據(jù)的發(fā)送;用Shape組件做指示燈,表示PLC的運(yùn)行狀態(tài)和Y的狀態(tài);用timer組件不停的讀取M1072的狀態(tài),以判斷PLC的運(yùn)行情況;用MScomm控件實(shí)現(xiàn)PC與PLC的通信。
          4)編程實(shí)現(xiàn)的代碼構(gòu)成
           (1) LRC算法校驗(yàn)的實(shí)現(xiàn)
       Public Function LRC(str As String) As String
                 c = 0
                 l = Len(str)   
                 For c = c + 1 To l
                 c_data = Mid$(str, c, 2)   
                 d_lrc = d_lrc + Val("&H" + c_data)
                 c = c + 1
                 Next c
                 If d_lrc > &HFF Then
                 d_lrc = d_lrc Mod &H100
                 End If
                 h_lrc = Hex(&HFF - d_lrc + 1)
                 If Len(h_lrc) > 2 Then
                    h_lrc = Mid(h_lrc, Len(h_lrc) - 1, 2)
                 End If
                 LRC = h_lrc
                 End Function
       (2) 運(yùn)行的開始就判斷PLC的狀態(tài)并設(shè)置標(biāo)志位
                '初次運(yùn)行打開串口,并顯示PLC運(yùn)行狀態(tài)
                Private Sub Form_Load()
                Dim s1 As String
                Dim s2 As String
                Dim s22 As String
                Dim s3 As String
                Dim s4 As String
                MSComm1.PortOpen = True
                s2 = "01010C300001"
                s22 = LRC(s2)
                s1 = ":" + s2 + s22 + Chr$(13) + Chr$(10)
                MSComm1.Output = s1
                s3 = MSComm1.Input
                s4 = Mid$(s, 6, 8)
                If s4 = "0C30FF00" Then
                     plc = 1 'PLC為運(yùn)行標(biāo)志
                Else
                     plc = 0 'PLC為停止標(biāo)志
                End If
                End Sub
          (3) 下面一段為用指示燈表示PLC的運(yùn)行狀態(tài)
                Private Sub Timer5_Timer()
                Dim s1 As String
                Dim s2 As String
                Dim s22
                Dim s3 As String
                Dim s4 As String
                s2 = "01010C300001"
                s22 = LRC(s2)
                s1 = ":" + s2 + s22 + Chr$(13) + Chr$(10)
                MSComm1.Output = s1
                s3 = MSComm1.Input
                s4 = Mid$(s3, 8, 2)
                If s4 = "31" Then
                     plc = 1 'PLC為運(yùn)行標(biāo)志
                Else: If s4 = "30" Then plc = 0 'PLC為停止標(biāo)志
                End If
                If plc = 1 Then
                      Label2.Caption = "PLC正在運(yùn)行......"
                      Shape1.FillColor = RGB(0, 255, 0)  'green
                Else
                Label2.Caption = "PLC已經(jīng)停止"
                      Shape1.FillColor = RGB(255, 0, 0) 'red
                End If
                End Sub
          (4) PLC的起動與停止
                '起動PLC
                Private Sub start_Click()
                Dim strout As String
                Timer5.Enabled = False
                str = "00050C30FF00"  'M1072 為PLC起動停止標(biāo)志位。查地址表,M1072為OC30.FF00為置
                                       ON,0000為置OFF。
                '以上都是固定格式,要牢記。
                LRCC = LRC(str)   '計(jì)算 str的lrc校驗(yàn)碼。
                strout = ":" + str + LRCC + Chr$(13) + Chr$(10) '欲傳送之?dāng)?shù)據(jù)。13為D,10為A
                MSComm1.Output = strout
                Timer5.Enabled = True
                End Sub
                '停止PLC
                Private Sub stop_Click()
                Dim strout As String
                Timer5.Enabled = False
                str = "00050C300000"
                LRCC = LRC(str)
                strout = ":" + str + LRCC + Chr$(13) + Chr$(10)
                MSComm1.Output = strout
                Timer5.Enabled = True
                End Sub
          Y0、Y1的ON/OFF與PLC起動/停止的控制方式相同,指示燈的表示方式也相同。D256,D512數(shù)據(jù)寫入的操作類似,限于篇幅其它代碼就不再列出了。

      5 結(jié)束語
          VB語言易于編程使用,為與串行設(shè)備的通信提供了很大的方便。臺達(dá)PLC采用標(biāo)準(zhǔn)的目前廣為流行的MODBUS協(xié)議,為實(shí)現(xiàn)PLC與監(jiān)控計(jì)算機(jī)的通信提供了簡化的平臺。由于臺達(dá)所有的機(jī)電產(chǎn)品都支持MODBUS協(xié)議,所以,掌握了VB與PLC通信過程,也就等于掌握了PC與臺達(dá)所有機(jī)電產(chǎn)品的通信。
      參考文獻(xiàn)[略]

      作者簡介
          王乃全(1978-),男,自動化設(shè)備工程師,主要從事PLC控制系統(tǒng)的開發(fā)與。

      全年征稿/資訊合作 聯(lián)系郵箱:1271141964@qq.com

      免責(zé)聲明

      • 凡本網(wǎng)注明"來源:智能制造網(wǎng)"的所有作品,版權(quán)均屬于智能制造網(wǎng),轉(zhuǎn)載請必須注明智能制造網(wǎng),http://towegas.com。違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
      • 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔(dān)責(zé)任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責(zé)任。
      • 本網(wǎng)轉(zhuǎn)載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品來源,并自負(fù)版權(quán)等法律責(zé)任。
      • 如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

      <
      更多 >

      工控網(wǎng)機(jī)器人儀器儀表物聯(lián)網(wǎng)3D打印工業(yè)軟件金屬加工機(jī)械包裝機(jī)械印刷機(jī)械農(nóng)業(yè)機(jī)械食品加工設(shè)備制藥設(shè)備倉儲物流環(huán)保設(shè)備造紙機(jī)械工程機(jī)械紡織機(jī)械化工設(shè)備電子加工設(shè)備水泥設(shè)備海洋水利裝備礦冶設(shè)備新能源設(shè)備服裝機(jī)械印染機(jī)械制鞋機(jī)械玻璃機(jī)械陶瓷設(shè)備橡塑設(shè)備船舶設(shè)備電子元器件電氣設(shè)備


      我要投稿
      • 投稿請發(fā)送郵件至:(郵件標(biāo)題請備注“投稿”)1271141964.qq.com
      • 聯(lián)系電話0571-89719789
      工業(yè)4.0時代智能制造領(lǐng)域“互聯(lián)網(wǎng)+”服務(wù)平臺
      智能制造網(wǎng)APP

      功能豐富 實(shí)時交流

      智能制造網(wǎng)小程序

      訂閱獲取更多服務(wù)

      微信公眾號

      關(guān)注我們

      抖音

      智能制造網(wǎng)

      抖音號:gkzhan

      打開抖音 搜索頁掃一掃

      視頻號

      智能制造網(wǎng)

      公眾號:智能制造網(wǎng)

      打開微信掃碼關(guān)注視頻號

      快手

      智能制造網(wǎng)

      快手ID:gkzhan2006

      打開快手 掃一掃關(guān)注
      意見反饋
      關(guān)閉
      企業(yè)未開通此功能
      詳詢客服 : 0571-87858618