<rt id="m4md3"></rt>
  • <bdo id="m4md3"><meter id="m4md3"></meter></bdo>
  • <label id="m4md3"></label>
      <center id="m4md3"><optgroup id="m4md3"></optgroup></center>
      產品分類

      當前位置: 首頁 > 工業控制產品 > 自動化控制 > PLC可編程控制器

      類型分類:
      科普知識
      數據分類:
      PLC可編程控制器

      用VB完畢歐姆龍PLC及核算機間的串行通訊

      發布日期:2022-04-26 點擊率:58 品牌:歐姆龍_Omron


      1 導言
      在工業操控范疇中,plc作為一種安穩牢靠的操控器得到廣泛的運用。但它也有本身的一些缺陷,即數據的核算處理和處理才調較弱,不能給用戶供應超卓的界面等。而核算機剛好能抵償plc的短少,它不光有很強的數據處理和處理才調,并且能給用戶供應十分美麗而又易于操作的界面。將plc與核算機聯絡,可使系統抵達既能及時地搜集、存儲數據,又可處理和運用好數據,兩者聯絡的要害是plc與核算機之間的通訊。這篇文章以omron公司的cpmia小型plc為例,詳細的談論了plc與核算機通訊的原理和用vb怎樣完畢plc與核算機的通訊。
      2 通行原理與辦法
      上位機要可以經過plc監控底層設備的狀況,就要完畢上位機與plc間的通訊,通常工業操控中都是選用rs232c完畢。上位機首要向plc發送查詢數據的指令(實習上是查詢plc中端子的狀況和dm區的值等),plc接納了上位的指令后,進行校驗(fcs校驗碼),看其是不是精確,假定精確,則向上位機傳送數據(包含首尾校驗字節)。不然,plc回絕向上位機傳送數據。上位接納到plc傳送的數據,也要區別精確與否,假定精確,則接納,不然,回絕接納。
      因為cpm1a沒有供應串行通訊口,咱們運用其供應的外設端口完畢通訊。plc與核算機之間的聯接是經過omron供應的專用電纜cqm1-cif01來完畢的,其硬件聯接圖如圖1所示。

      3 plc與核算機間的通訊規約
      核算機與plc間的通訊是以“幀”為單位進行的,并且在通訊的進程中,核算機具有更高的優先級。首要,核算機向plc宣告指令幀,然后,plc作出照料,向核算機發送回照料幀。其間指令幀和照料幀的格局如下:
      (1) 指令幀格局。為了便當核算機和plc的通訊,cpm1a對在核算機聯接通訊中溝通的指令和照料規矩了相應的格局。當核算機發送一個指令時,指令數據主預備格局如圖2所示。

      其間@放在首位,標明以@開端,設備號為上位機辨認所聯接的plc的設備號。辨認碼為指令代碼,用來設置用戶期望上位機完畢的操作,fcs為幀查驗代碼,一旦通訊犯錯,經過核算fcs可以及時發現。完畢符為“*”和cr回車符,標明指令完畢。
      (2) 照料幀格局。由plc宣告的對應于指令格局的照料幀格局如圖3所示。

      其間,失常碼可以斷定核算機發送的指令是不是精確施行。其它的與正文中的含義一樣。正文僅在有讀出數據時有回來。
      4 通訊程序的方案
      為了充沛運用核算機數據處理的健旺功用,咱們可以選用核算機有優先權的辦法,在核算機上編寫程序來完畢核算機與plc的通訊, 核算機向plc宣告指令主張通訊,plc自動回來照料。這篇文章中選用vb來編寫核算機與plc間的通訊程序。在vb中供應了通訊控件—運用通訊控件(mscomm),完畢經過串行端口傳送和承受的功用。
      下面介紹mscomm控件的特征:
      *commport:設定通訊聯接端口代號,程序有必要指定所要運用的串行端標語,WINOOWs系統運用所設定的端口與外界通訊。
      *portopen:設定通訊口狀況,若為真,通訊端口翻開,不然封閉。
      *settings:設定通訊口參數,其格局是"bbbb,p
      ,d,s",其間bbbb為通訊速率(波特率),p為通訊查看辦法(奇偶校驗), d 為數據位數,s為接連位數,其設定應與plc的設定一同。
      *input:將對方傳送至輸入緩沖區的字符讀入到程序。
      *output:將字符寫入輸出緩沖區。
      *inbuffercount:傳回接納緩沖區中的字符數。
      *outbuffercount:傳回輸出緩沖區中的字符數。
      *inputlen:設定串行端口讀入字符串的長度。
      *inputmode:設定接納數據的辦法。
      *rthreshold:設定致使接納作業的字符數。
      *commevent:傳回oncomm作業發作時的數值碼
      *oncomm作業:不論是過錯或作業發作,都會觸發此作業。
      (1) 控件參數的初始化。
      初始化程序如下:
      mscomm.comport=2 `運用串口com2
      mscomm.settings="9600, e, 7, 2" `波特率9600,偶校驗,7位數據位,2位接連位
      mscomm.portopen=true `翻注冊訊端口,預備通訊
      (2) 核算校驗碼fcs,核算fcs的vb自界說函數如下:
      function fcs(byval inputstr as string) as string
      dim slen, i, xorresult as integer
      dim tempfes as string
      slen=len(inputstr) `求輸入字符串長度
      xorresult = 0
      for i = 1 to slen
      xorresult = xorresult xor asc(mid$(inputstr, i, 1)) `按位異或
      next i
      tempfes=hex$(xorresult) `轉化為16進制
      if len(tempfes)=1then tempfes =“0”+tempfes
      fcs = tempfes
      end function
      (3) 核算機與plc通訊程序。
      首要是一個自界說函數。
      function readdata(byval inputstr as string, byval num as integer) as string
      dim outputstr as string
      dim instring as string
      dim returnstr as string
      dim endstring as string
      dim fcsstring as string
      dim returnfcsstring as string)
      mscomm.inbuffercount=0
      outputstr=inputstr+fcs(inputstr)+“*” `給出指令幀
      mscomm.output=outputstr+chr$(13) `向plc傳送指令幀
      do
      doevents
      loop while mscomm.inbuffercount < 15
      instring=mscomm.input `獲取plc的照料幀
      `完畢碼區別
      endstring = mid$(instring, len(instring) -
      num- 5, 2)
      if endstring = "13" then
      readdata = "error"
      exit function
      elseif endstring = "14" then
      readdata = "error"
      exit function
      elseif endstring = "15" then
      readdata = "error"
      exit function
      elseif endstring = "18" then
      readdata = "error"
      exit function
      elseif endstring = "a3" then
      readdata = "error"
      exit function
      elseif endstring = "a8" then
      readdata = "error"
      exit function
      end if
      `照料幀校驗
      endstring = mid$(instring, 1, len(instring) - 4)
      returnfcsstring = mid$(instring,len(instring) - 3, 2)
      fcsstring = fcs(endstring)
      if fcsstring <> returnfcsstring then
      readdata = "error"
      exit function
      end if
      returnstr = mid$(instring,
      len(instring) - num - 3, num)
      readdata = returnstr
      end function
      從上面程序可以看到,核算機對plc回來的照料幀要進行fcs校驗,并運用失常碼打掃回來的失常數據,這么不光可早年進核算機獲取信息的精確性,并且跋涉了核算機監控的實時性。
      5 完畢語
      這篇文章介紹的通訊辦法在我校cims研討基地自行研發的一套機電一體化設備中得到施行運用,經實驗作業,證實這種通訊辦法安穩、牢靠,的確是一種十分有用的辦法。將plc與核算機通訊網絡聯接起來,plc作為下位機,核算機作為上位機,構成一個優勢互補的自動操控系統,完畢了“會集處理,松懈操控”。其間各個plc子系統或長途作業站在出產現場對各個被控政策進行操控,運用網絡聯接構成一個plc歸納操控,滿意了現代自動化系統向信息化、網絡化、智能化的過渡。


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

      上一篇: MATLAB和Simulink在航

      推薦產品

      更多
      主站蜘蛛池模板: 婷婷综合激情五月中文字幕| 色欲天天婬色婬香视频综合网 | 久久婷婷成人综合色综合| 亚洲人成综合在线播放| 亚洲欧洲综合在线| 综合91在线精品| 色综合色综合色综合色欲| 亚洲综合无码一区二区痴汉 | 国产综合在线观看| 久久综合给合久久狠狠狠97色69| 亚洲综合色丁香婷婷六月图片| 天天综合网网欲色| 亚洲综合色7777情网站777| 亚洲国产综合久久天堂| 国产精品亚洲综合五月天| 伊人久久综合成人网| 色噜噜狠狠色综合欧洲selulu| 久久99精品久久久久久综合| 青草久久精品亚洲综合专区| 91综合久久婷婷久久| 久久久综合九色合综国产| 八区精品色欲人妻综合网| 久久综合久久久久88| 久久综合香蕉久久久久久久 | 久久综合香蕉国产蜜臀AV| 国产成人精品综合久久久| 婷婷亚洲综合五月天小说在线| 久久大香线蕉综合爱| 一本久久a久久精品综合夜夜| 久久婷婷色综合一区二区| 国产精品 综合 第五页| 伊人色综合久久天天人守人婷 | 伊人久久大香线蕉综合5g| 亚洲AV综合永久无码精品天堂| 中文字幕亚洲综合久久2| 亚洲一区综合在线播放| 97se亚洲国产综合自在线| 色综合99久久久无码国产精品| 丁香婷婷激情综合俺也去| 亚洲 综合 国产 欧洲 丝袜 | 国产精品综合专区中文字幕免费播放|