《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于VB6.0的S7-200PLC與計算機的通訊設計
基于VB6.0的S7-200PLC與計算機的通訊設計
摘要: 本文采用s7-200plc的自由口通訊協議,基于vb6.0開發了一種簡單實用且易于功能擴展的監控界面,其中計算機作為上位機,通過mscomm控件建立與下位機plc的通訊,可以實現數字量和模擬量讀寫、存儲及模擬量趨勢曲線繪制。
關鍵詞: 接口IC VB6.0 S7-200 PLC
Abstract:
Key words :

1  引言

           
  plc 作為一種穩定可靠的控制器在工業控制系統得到了廣泛的應用[1]。但是由于中小型plc的人機接口功能不很完善,不能提供給用戶一個友好的交互界面,因此妨礙了對現場運行過程的跟蹤與監控[2~5]。目前一些通用的組態軟件,以其功能強大、界面友好、開發簡潔等優點在計算機監控領域已經得到了廣泛的應用,但是一般價格比較昂貴[6~7]。

  visual basic6.0 在開發可視化環境下的監控系統時具有其獨特的優勢,它本身提供的mscomm控件就是為應用程序提供串口通訊而設計的,它屏蔽了通訊過程中的底層操作,只需設置、監視mscomm控件的屬性和事件即可完成對串行口的初始化和數據輸入輸出[8~10]。西門子s7-200plc由于其體積小,可靠性高,通訊功能強大等特點,在工業控制領域得到廣泛的應用。s7-200系列plc的通訊方式主要有三種:ppi方式、profibus-dp方式、freeport(自由口)方式。其中自由口方式是由用戶自己定義通訊協議,具有與外圍設備通訊方便、自由,易于計算機控制軟件的開發等特點,因此使用自由口通訊方式實現plc與上位機通信的控制方案較多[11~14]。

  本文采用s7-200plc的自由口通訊協議,基于vb6.0開發了一種簡單實用且易于功能擴展的監控界面,其中計算機作為上位機,通過mscomm控件建立與下位機plc的通訊,可以實現數字量和模擬量讀寫、存儲及模擬量趨勢曲線繪制。
            
2  通訊原理 
           
  在上位機中,通過vb6.0中的mscomm控件完成數據的發送與接收;在下位機中則是通過plc的指令完成數據的發送與接收的。
           
  2.1 通訊初始化設置
           
  由于s7-200plc與計算機的自由口通訊是串行通訊,故通訊前需要通訊雙方的串行端口初始化,使雙方通訊參數保持一致。
           
  (1) 上位機初始化設置
           
  上位機使用mscomm控件通過串行端口發送和接收數據,因此首先要對mscomm控件進行初始化設置,主要始化設置如下:

            mscomm1.commport=1 `設定通訊端口號
            mscomm1.portopen=true `通訊端口打開
            mscomm1.settings="9600,n,8,1"
            mscomm1.inputmode=1
           
  settings:以字符串的形式設置并返回波特率、奇偶校驗位、數據位和停止位。其中以字符n、o、e 分別代表無校驗、奇校驗和偶校驗。
           
  inputmode:設置從緩沖區讀取數據的格式;0為字符串格式(text),1為二進制格式(binary) [15]。
           
  (2) 下位機的初始化設置
           
  為了使下位機與上位機的通訊參數保持一致,可通過對plc的自由端口控制寄存器smb30(端口0)或smb130(端口1)的設置來實現。由于本文中使用的是cpu222是端口0,因此對plc的通訊設置是通過設置smb30來完成的。smb30的設置主要包括奇偶校驗位、數據位、波特率、協議選擇等參數。本文smb30設置內容如下,奇偶校驗為不校驗、字符數據位為8位/字符、波特率為9600bit/s、協議選擇為自由口協議,故smb30設置為9。由于本文是通過接收字符中斷接收數據,通過定時中斷發送數據,因此需要將兩個中斷初始化。
           
  plc主要初始化設置:

            movb 9, smb30   //將自由口控制存儲器設置9
            movb 200, smb34   //定時中斷時間設置(200ms)
            atch int_0, 8   //接收字符中斷
            atch int_1, 10  //定時中斷
            eni  //中斷允許
            2.2 通訊方式

             圖1  數據存儲時的界面
       

    
  (1) 上位機通訊方式
           
  首先將上位機待發送的m個字節依次存儲在數組s中,每次待接收的數據存儲在變量r中。
           
  發送信息時,數組s中第一個元素s(0)存儲第一個待發送字節……最后一個元素s(m-1)存儲最后一個待發送字節,發送方式為mscomm1.output=s。
           
  接收方式為 r=mscomm1.input。
           
  由于plc中的信息是以byte的形式傳輸到計算機中,因此上位機需要對接收的數據進行數據處理。由于plc中模擬量傳感器數據是以word的形式存儲在aiw中,而plc在發送該數據時是按照word對應的兩個byte發送,故計算機在后臺計算中要將其對應的兩個byte轉換為word。為了在人機界面中表達數字量(qb,ib,mb)的各個狀態,需要在計算機后臺計算中把plc的各數字量的十進制轉換為八位二進制,通過對八位二進制的每個位做0、1判斷,利用vb6.0可使用多種方法把判斷結果表達在界面中。

             圖2  存儲在excel表格中的部分數據
 

           
  (2) 下位機通訊方式
           
  為了在計算機中實時顯示plc運行狀況及傳感器的實時數據,就需要plc主動發送信息。為此,本文通過“定時中斷”使plc周期地向計算機發送數據。具體方法是在定時中斷事件里,使用plc自帶的發送指令xmt發送數據,定時中斷的時間設置(1ms~255ms)即為發送周期。
           
  s7-200系列的plc接收指令有兩種方法:第一種方法是使用plc自帶的rcv指令來接收計算機數據;第二種方法采用plc提供的“接收字符中斷”方式,將smb2(自由口接收字符緩沖區)定義指針,使用指針接收數據。在這兩種方法中,第二種方法更加靈活,因此在本文中,plc在接收信息時采用指針接收數據。即在plc接收數據時,每次接收m個字節,僅在第一個字節進入smb2時定義指針,并將該字節寫入指針所指向的變量存儲字節;第二個字節進入smb2時,指針指向下一個變量存儲字節,并把第二個字節寫入……最后一個字節進入smb2時,指針指向下一個變量存儲字節,把第m個字節寫入。若數據接收完成,則清空用于計數的變量存儲字節,等待下次接收數據,至此完成一次數據接收。本文中在接收字符中斷里使用指針接收2個字節:

            ld   sm4.5    //變送器閑置時動作
            lps
            ab=  vb99, 0   //vb99為0時
            movd    &vb100, ac1   
            //定義指針ac1,存儲于vb100
            lrd                             
            movb smb2, *ac1  
            //指針指向自由口接收字符緩沖區
            lrd                               
            incd ac1    //指針遞增
            lrd                               
            incb vb99    //接收字節個數遞增
            lpp           
            ab=  vb99, 2   //接收字節個數為2
            movb 0, vb99    //計數清零,完成一次接收


3  數據存儲
            
  vb6.0可將數據存儲在多種數據庫中(如access、excel等)??紤]到excel簡單實用且應用廣泛,通過設置excel的宏屬性,就可將實時數據保存在創建的excel文件中,并可方便的查看歷史數據。
           
  本文通過vb6.0鏈接一個指定的excel文件,在vb程序里定時器的觸發事件將數據存儲至excel文件,存儲方法如下:

  k=k+1
           
  xlsheet.cells(k,r) = v`數據v寫入excel第r列,隨著時間k的增加依次逐行存儲。
           
  為了建立vb6.0與指定excel文件的鏈接,需要對鏈接的雙方分別進行設置。首先建立并指定一個excel文件,命名為“g”,存儲路徑為“d:\g”,通過設置該文件宏屬性,可建立excel向vb6.0的鏈接。exel中的宏屬性設置設置為:

            sub auto_open()
            open " d:\g " for output as #1   `寫標志文件close #1
            end sub
            sub auto_close()
            kill " d:\g "     `刪除標志文件end sub
           
  在vb6.0向excel鏈接時,考慮到數據快速地寫入excel,為避免誤操作引起excel運行終止,本文在打開exel時設置excel不可見,當數據存儲完畢后,設置excel可見。

            (1) 打開exel(鏈接到指定的exel文件)
            set xlapp=createobject("excel.application")    `創建excel應用類
            xlapp.visible = false
            `設置excel不可見
            set xlbook=xlapp.workbooks.open("d:\g.xls")    `打開excel工作簿
            set xlsheet=xlbook.worksheets(1)
            `打開excel工作表
            xlsheet.activate
            (2) 關閉exel
            xlapp.visible = true   `設置excel可見
            set xlapp = nothing   `釋放excel對象
            
4  運行實例 
           
  為了驗證本設計在實際應用中的有效性,本文利用實驗室現有設備,在cpu222的擴展模塊em235中接入2個位移傳感器,設計了一套簡單實用的人機界面。在界面中,計算機實時的顯示兩個位移傳感器的數據及其曲線圖,并能將數據自動存儲至指定excel文件中;在界面中可以顯示plc的數字量輸入、輸出狀態及模擬量的實時變化曲線;通過“啟動”、“停止”按鈕可以直接控制plc的各輸出點。
           
  設置plc以200ms為周期每次發送9個字節,將傳感器1的數據存入vw2(發送vb2和vb3),傳感器2的數據存入vw4(發送vb4和vb5),i0.0~i0.7的狀態字節ib0存入vb6,i1.0~i1.7的狀態字節ib1存入vb7,q0.0~q0.7的狀態字節qb0存入vb8,q1.0~q1.7的狀態字節qb1存入vb9,m0.0~m0.7的狀態位mb0存入vb10。
           
  計算機每次發送2個字節,第一個字節寫入變量存儲字節vb100中,并將vb100的數據賦值給qb0,進而實現點擊“啟動”/“停止”按鈕控制q0.0~q0.7;第二個字節寫入變量存儲位vb101,該字節通過比較指令中的“字節等于”連接發送指令xmt,實現界面中點擊“開始監控”(字節等于1)時plc開始發送數據,點擊“停止監控”(字節等于0)時plc停止發送數據。
           
  為了實現計算機直接控制plc的數字量輸出,本設計在界面中使用8對“啟動”/“停止”控制按鈕,其中任何一個控制按鈕的點擊都是一次計算機向plc的數據寫入。在qb0中該字節對應的8個位控制plc的8個數字量輸出點(q0.0~q0.7),故這里通過定義一個數組q(0 to 7),數組中的8個元素分別對應qb0中的8個輸出點,每次點擊界面中控制按鈕都是向對應元素的賦值,并將8個元素的賦值求和,求和的結果即為寫入qb0的內容。其中每個“啟動”按鈕的賦值為對應元素的十進制數值,任何“停止”按鈕的賦值都為0。
           
  下面是人機界面運行中的截圖,界面中的圖表橫坐標單位是“s”,縱坐標單位是“mm”,圖表刷新周期為1秒,數據存儲至excel文件的周期是200ms。開始監控后,使用兩個量程為100mm的位移傳感器,用手動方式移動傳感器的檢測部位,在數據存儲過程中,excel文件不可見,停止數據存儲后,自動彈出excel文件。在圖2、圖3中,a列和b列分別表示位移傳感器1(黑色曲線)和位移傳感器2(紅色曲線)的歷史數據。

             圖3  exel中的數據生成圖表
            


5  結束語
           
  本文應用s7-200plc的自由口通訊協議,以計算機為上位機,plc為下位機,基于vb6.0設計了一套簡單實用且易于實現的監控界面。通過mscomm控件建立與下位機plc的通訊,較好地實現了數字量和模擬量讀寫、存儲及模擬量趨勢曲線繪制。實驗表明該監控系統能準確地監控各類數字量(如q,i,m)信息,自動繪制模擬量變化的實時曲線并存儲相應的模擬量數據。
           
  本文設計的通訊方法簡單實用且易于功能擴展,可以plc在中小場合的應用,為plc控制系統信息化、智能化發展提供了可行的探索路徑。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美一区二区三区电影在线观看| 亚洲国产日韩一区| 亚洲国产精品999| 久久丁香综合五月国产三级网站| 欧美午夜不卡视频| 欧美精品久久一区| 久久精品人人做人人爽| 欧美久久电影| 亚洲网站视频福利| 久久高清一区| 一区二区欧美国产| 99re这里只有精品6| 国产一级揄自揄精品视频| 午夜精品理论片| 亚洲欧美日韩国产| 在线一区观看| 国产综合一区二区| 女主播福利一区| 亚洲第一在线视频| 夜夜嗨av色综合久久久综合网| 欧美猛交免费看| 国产精品午夜av在线| 欧美在线999| 国产精品免费一区二区三区在线观看| 国产美女精品人人做人人爽| 久久蜜桃av一区精品变态类天堂| 午夜电影亚洲| 久久成人免费电影| 亚洲国产成人一区| 在线观看视频免费一区二区三区| 一区在线免费观看| 日韩一区二区精品在线观看| 国产欧美日韩高清| 国产欧美1区2区3区| 亚洲国产91精品在线观看| 国产女人精品视频| 美女国内精品自产拍在线播放| 99热免费精品在线观看| 99国产精品久久久久老师| 欧美欧美在线| 欧美国产日韩a欧美在线观看| 国产亚洲欧美一区二区| 欧美激情一二三区| 欧美国产亚洲另类动漫| 在线观看成人av电影| 亚洲成在人线av| 中文在线不卡视频| 欧美在线观看一区| 欧美日韩爆操| 激情综合视频| 国产一区在线看| 国产精品免费一区豆花| 久久影院午夜片一区| 久久综合亚洲社区| 在线观看国产精品淫| 国产精品视频区| 久久久久国产精品一区三寸| 欧美精品一区在线观看| 亚洲视频播放| 国产精品午夜在线观看| 欧美亚洲成人精品| 国产精品一区免费在线观看| 亚洲欧美日韩在线不卡| 国产精品美女久久久久aⅴ国产馆| 伊人影院久久| 在线观看欧美一区| 亚洲视频日本| 亚洲国产精品一区二区三区| 欧美自拍偷拍| 一本色道久久综合亚洲91| 欧美成人一区二免费视频软件| 欧美精品在线免费观看| 亚洲第一狼人社区| 亚洲精品五月天| 激情小说亚洲一区| 亚洲一区二区免费看| 国内精品模特av私拍在线观看| 欧美视频一区在线| 欧美一区影院| 国产九区一区在线| 日韩视频免费看| 亚洲视频999| 国产精品www网站| 欧美三级资源在线| 久久久久在线| 国内精品免费在线观看| 韩国成人理伦片免费播放| 激情欧美一区二区三区在线观看| 国产精品女主播| 国产欧美一区视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲国产视频a| 久久久视频精品| 国产婷婷成人久久av免费高清| 国内精品久久久久久| 国产在线高清精品| 亚洲国产一成人久久精品| 亚洲一二三级电影| 欧美三级不卡| 一本久久青青| 欧美成人一区在线| 久久亚洲综合色| 亚洲福利视频免费观看| 欧美成人乱码一区二区三区| 亚洲日韩视频| 欧美人妖另类| 国产精品日日摸夜夜摸av| 亚洲香蕉网站| 伊人狠狠色j香婷婷综合| 久久国产直播| 国产精品爽爽ⅴa在线观看| 欧美一区二区视频在线观看2020| 欧美激情一区二区三区在线视频| 欧美日韩在线第一页| 欧美日韩另类国产亚洲欧美一级| 国产精品永久| 性视频1819p久久| 欧美日韩的一区二区| 黑人一区二区三区四区五区| 欧美黄色一区| 欧美性猛交xxxx乱大交蜜桃| 在线电影院国产精品| 你懂的视频一区二区| 欧美1区2区视频| 国产精品高潮视频| 欧美日韩一二区| 亚洲国产精品成人综合色在线婷婷| 欧美一区二区观看视频| 中文亚洲免费| 国产精品vip| 亚洲综合导航| 亚洲男女自偷自拍图片另类| 免费91麻豆精品国产自产在线观看| 亚洲电影第三页| 久久精品夜夜夜夜久久| 久久综合精品国产一区二区三区| 国产精品国产三级国产aⅴ无密码| 午夜亚洲性色福利视频| 欧美在线不卡视频| 欧美精品在线一区二区| 国产午夜亚洲精品不卡| 在线成人亚洲| 亚洲一区网站| 亚洲国产精品第一区二区| 久久精品亚洲一区二区| 久久国产婷婷国产香蕉| 欧美激情综合亚洲一二区| 亚洲无毛电影| 欧美中文在线免费| 亚洲视频图片小说| 欧美私人啪啪vps| 国产精品久久久一区二区| 久久影音先锋| 久久国产精品高清| 午夜精品久久久99热福利| 美国十次了思思久久精品导航| 在线一区观看| 亚洲无玛一区| 国产精品久久久亚洲一区| 99精品国产在热久久下载| 欧美插天视频在线播放| 亚洲青色在线| 国产精品福利在线观看网址| 小黄鸭精品密入口导航| 欧美亚洲专区| 亚洲午夜电影| 99re8这里有精品热视频免费| 美女网站在线免费欧美精品| 一区二区三区免费看| 国产精品久久久久91| 国产精品视频xxxx| 国产精品高潮在线| 欧美一级理论性理论a| 国产一区二区在线观看免费播放| 91久久精品国产91性色tv| 国产一区二区无遮挡| 亚洲精品男同| 亚洲欧美色一区| 欧美偷拍另类| 久久久www| 国产一区二区三区在线观看视频| 久久一区二区三区超碰国产精品| 一区二区电影免费观看| 99精品视频免费观看视频| 亚洲一区3d动漫同人无遮挡| 欧美护士18xxxxhd| 国产一区亚洲一区| 欧美日韩国产探花| 亚洲手机成人高清视频| 国产视频在线一区二区| 亚洲缚视频在线观看| 亚洲一区二区动漫| 国产精品日韩精品欧美精品| 欧美日韩精品伦理作品在线免费观看| 亚洲综合导航| 欧美日本免费| 久久久伊人欧美| 亚洲伦理中文字幕| 欧美三级日韩三级国产三级| 亚洲国产欧美日韩| 久久精品国产第一区二区三区| 国产亚洲欧美另类一区二区三区| 亚洲人成人99网站| 久久综合伊人77777麻豆| 久久精品亚洲一区二区| 一本色道久久99精品综合| 亚洲最新色图| 亚洲永久精品国产| 亚洲福利久久| 久久久久久久性| 久久综合久久久久88| 午夜精品国产| 国产综合在线看| 麻豆成人在线播放| 国产精品黄色| 欧美激情视频一区二区三区在线播放| 欧美一区二区在线看| 欧美成人精品三级在线观看| 久久美女艺术照精彩视频福利播放| 国产精品电影在线观看| 久久嫩草精品久久久久| 亚洲激情二区| 久久se精品一区精品二区| 亚洲欧洲中文日韩久久av乱码| 国内精品国产成人| 亚洲欧美在线观看| 欧美77777| 国产精品一区二区三区成人| 日韩视频免费观看| 亚洲专区一区二区三区| 欧美国产日韩免费| 欧美亚洲免费在线| 国产精品腿扒开做爽爽爽挤奶网站| 欧美日韩第一区| 欧美激情亚洲另类| 欧美激情网站在线观看| 狂野欧美一区| 欧美精品乱人伦久久久久久| 国产精品免费区二区三区观看| 一区二区三区在线观看视频| 国产女精品视频网站免费| 欧美岛国激情| 欧美精品久久久久久久免费观看| 欧美一区二区视频免费观看| 亚洲国产第一| 欧美日韩一区二区在线观看| 欧美福利视频一区| 国产精品视频福利| 亚洲国产精品悠悠久久琪琪| 国产精品一区二区你懂得| 欧美日韩mp4| 又紧又大又爽精品一区二区| 欧美性猛交xxxx乱大交蜜桃| 极品中文字幕一区| 一本久道综合久久精品| 欧美在线免费观看亚洲| 国产午夜精品一区二区三区视频| 一本久久综合亚洲鲁鲁| 亚洲欧美色一区| 亚洲精品少妇30p| 欧美电影在线播放| 亚洲欧洲一二三| 欧美视频一区二| 亚洲欧美激情四射在线日| 国产亚洲综合性久久久影院| 国产欧美日本在线| 欧美专区在线观看| 亚洲茄子视频| 在线国产精品播放| 国产精品腿扒开做爽爽爽挤奶网站| 亚洲日本va午夜在线电影| 国产综合久久久久久鬼色| 欧美成人激情视频| 亚洲欧美日韩在线观看a三区| 黄色成人在线网站| 久久久久久国产精品一区| 禁断一区二区三区在线| 亚洲高清视频一区二区| 国产精品自在欧美一区| 亚洲在线国产日韩欧美| 亚洲精品午夜| 在线日韩中文字幕| 欧美一区日本一区韩国一区| 亚洲一区二区三区中文字幕| 欧美亚洲成人免费| 欧美亚州一区二区三区| 国产一区二区三区免费不卡| 亚洲欧美中文日韩v在线观看| 国产午夜精品全部视频播放| 国模大胆一区二区三区| 黄色成人在线免费| 在线电影欧美日韩一区二区私密| 亚洲人被黑人高潮完整版| 欧美亚一区二区| 久久久久久久久久看片| 久久久99精品免费观看不卡| 亚洲精品护士| 国产一区二区看久久| 亚洲精品一区在线| 国产欧美精品在线| 在线播放国产一区中文字幕剧情欧美| 亚洲欧美日韩在线| 一本大道久久a久久精二百| 国产精品久久久久久久久久免费看| 亚洲一区二区三区免费在线观看| 美女国内精品自产拍在线播放| 黄色工厂这里只有精品| 亚洲国产裸拍裸体视频在线观看乱了中文| 欧美国产一区二区在线观看| 一区二区三区四区精品| 久久精品导航| 99视频在线精品国自产拍免费观看| 国产免费一区二区三区香蕉精| 亚洲一区中文| 亚洲欧美成人精品| 欧美激情一区在线观看| 亚洲在线1234| 欧美一区国产一区| 亚洲国产清纯| 国产精品九九| 性欧美videos另类喷潮| 国产精品第一页第二页第三页| 影音先锋久久精品| 一本久道久久久| 国产精品成av人在线视午夜片| 亚洲精品欧洲| 久久精品国产久精国产思思| 亚洲日本va在线观看|