《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 用VB實現PLC與計算機間的串行通信
用VB實現PLC與計算機間的串行通信
摘要: 本文以omron公司的cpmia小型plc為例,詳細的討論了plc與計算機通信的原理和用vb如何實現plc與計算機的通信。
關鍵詞: 接口IC VB PLC 串行通信
Abstract:
Key words :

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作出響應,向計算機發送回響應幀。其中命令幀和響應幀的格式如下:

 ?。?) 命令幀格式。為了方便計算機和plc的通訊,cpm1a對在計算機連接通信中交換的命令和響應規定了相應的格式。當計算機發送一個命令時,命令數據主準備格式如圖2所示。

  

  其中@放在首位,表示以@開始,設備號為上位機識別所連接的plc的設備號。識別碼為命令代碼,用來設置用戶希望上位機完成的操作,fcs為幀檢驗代碼,一旦通信出錯,通過計算fcs可以及時發現。結束符為“*”和cr回車符,表示命令結束。

 ?。?) 響應幀格式。由plc發出的對應于命令格式的響應幀格式如圖3所示。

  

  其中,異常碼可以確定計算機發送的命令是否正確執行。其它的與正文中的含義相同。正文僅在有讀出數據時有返回。

 

4 通信程序的設計

  為了充分利用計算機數據處理的強大功能,我們可以采用計算機有優先權的方式,在計算機上編寫程序來實現計算機與plc的通信, 計算機向 plc發出命令發起通信,plc自動返回響應。本文中采用vb來編寫計算機與plc間的通訊程序。在vb中提供了通信控件—應用通信控件(mscomm),實現通過串行端口傳送和接受的功能。

  下面介紹mscomm控件的屬性:

 ?。猚ommport:設定通信連接端口代號,程序必須指定所要使用的串行端口號,windows系統使用所設定的端口與外界通信。

 ?。猵ortopen:設定通信口狀態,若為真,通信端口打開,否則關閉。

 ?。猻ettings:設定通信口參數,其格式是“bbbb,p

  ,d,s”,其中bbbb為通信速率(波特率),p為通信檢查方式(奇偶校驗), d 為數據位數,s為停止位數,其設定應與plc的設定一致。

  *input:將對方傳送至輸入緩沖區的字符讀入到程序。

 ?。猳utput:將字符寫入輸出緩沖區。

  *inbuffercount:傳回接收緩沖區中的字符數。

 ?。猳utbuffercount:傳回輸出緩沖區中的字符數。

  *inputlen:設定串行端口讀入字符串的長度。

 ?。猧nputmode:設定接收數據的方式。

 ?。猺threshold:設定引發接收事件的字符數。

 ?。猚ommevent:傳回oncomm事件發生時的數值碼

 ?。猳ncomm事件:無論是錯誤或事件發生,都會觸發此事件。

 ?。?) 控件參數的初始化。

  初始化程序如下:

  mscomm.comport=2 `使用串口com2

  mscomm.settings=“9600, e, 7, 2” `波特率9600,偶校驗,7位數據位,2位停止位

  mscomm.portopen=true `打開通信端口,準備通信

 ?。?) 計算校驗碼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綜合控制,滿足了現代自動化系統向信息化、網絡化、智能化的過渡。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美在线资源| 欧美三级日韩三级国产三级| 中日韩美女免费视频网站在线观看| 久久不射中文字幕| 亚洲一区二区高清视频| 在线亚洲一区观看| 日韩视频在线一区| 亚洲精品国久久99热| 亚洲国产美女久久久久| 亚洲国产成人精品女人久久久| 精品成人免费| 在线日韩一区二区| 在线日韩视频| 亚洲第一天堂av| 亚洲国产天堂久久综合网| 亚洲国产视频一区| 亚洲精品国产日韩| 一区二区三区高清| 亚洲一区日韩在线| 亚洲欧美日韩一区二区在线 | 久久久女女女女999久久| 久久激情婷婷| 久久久精彩视频| 美日韩免费视频| 欧美国产成人在线| 欧美日韩视频在线观看一区二区三区| 欧美日韩精品三区| 国产精品欧美激情| 国产一区二区三区久久悠悠色av| 国模套图日韩精品一区二区| 在线观看亚洲| 亚洲精品偷拍| 亚洲男同1069视频| 亚洲第一黄网| 夜夜嗨av色一区二区不卡| 亚洲自拍都市欧美小说| 亚洲欧美精品| 久久综合久久综合久久| 欧美另类久久久品 | 国产精品国产三级国产普通话蜜臀| 国产精品免费一区二区三区在线观看| 国产日韩欧美在线视频观看| 在线观看国产欧美| 亚洲伦理在线免费看| 亚洲性人人天天夜夜摸| 性色av一区二区三区| 亚洲国产一区二区三区高清| 亚洲性夜色噜噜噜7777| 久久精品免费电影| 欧美激情亚洲一区| 国产乱码精品一区二区三| 亚洲成在人线av| 亚洲一区免费| 亚洲黑丝一区二区| 亚洲综合成人在线| 麻豆国产精品va在线观看不卡| 欧美日韩亚洲视频一区| 国模私拍一区二区三区| 亚洲最新在线| 久久精品国产99精品国产亚洲性色| 一区二区成人精品| 久久久女女女女999久久| 欧美日韩中文字幕| 国产综合色一区二区三区| 亚洲人午夜精品免费| 小处雏高清一区二区三区 | 欧美日本在线播放| 国产美女一区二区| 亚洲日本成人女熟在线观看| 亚洲欧美日韩在线观看a三区| 亚洲美女av在线播放| 久久av一区二区三区漫画| 欧美日韩黄色大片| 娇妻被交换粗又大又硬视频欧美| 一区二区福利| 亚洲精品网址在线观看| 欧美中文在线免费| 欧美日韩一区综合| 亚洲电影免费在线观看| 先锋影音久久| 亚洲综合好骚| 欧美精品一区二区三区高清aⅴ| 国产一区二区三区久久悠悠色av | 欧美一区二区日韩一区二区| 欧美精品在线观看91| 国产综合色在线视频区| 亚洲一区视频在线观看视频| aa级大片欧美三级| 免费观看久久久4p| 国产一区日韩一区| 亚洲欧美成人| 中文无字幕一区二区三区| 欧美大尺度在线观看| 激情小说亚洲一区| 欧美影院一区| 久久成人久久爱| 国产精品国产三级国产普通话99 | 久久精品国产亚洲一区二区| 国产精品久久久久一区| 亚洲人精品午夜| 最新国产拍偷乱拍精品| 久久精品99无色码中文字幕| 国产精品美女999| 一区二区三区欧美在线| av成人手机在线| 免费观看成人www动漫视频| 国内成+人亚洲| 午夜视频在线观看一区| 午夜精品免费视频| 国产精品久久久久久久久搜平片| 夜夜嗨av一区二区三区中文字幕 | 欧美国产视频在线观看| 在线免费观看成人网| 亚洲电影av| 久久久一区二区三区| 国产一区二区三区久久精品| 欧美在线二区| 久久精品在线视频| 国产亚洲综合精品| 欧美亚洲免费在线| 久久婷婷影院| 狠狠干综合网| 亚洲电影观看| 免费在线看一区| 亚洲国产日韩美| 夜夜嗨av一区二区三区网页| 欧美日韩精品免费| 夜夜爽www精品| 亚洲欧美综合另类中字| 国产精品亚洲成人| 欧美一区二区观看视频| 久久精品国产久精国产思思| 国产午夜精品美女视频明星a级| 欧美一级午夜免费电影| 久久麻豆一区二区| 亚洲国产精品成人精品| 99精品视频免费| 欧美丝袜第一区| 亚洲精品精选| 亚洲永久精品大片| 久久久久久久网| 激情av一区| 91久久精品美女高潮| 欧美激情在线播放| 亚洲精品日韩精品| 亚洲一区二区三区精品在线| 国产精品萝li| 午夜久久电影网| 久久亚洲二区| 亚洲黄色影院| 亚洲欧美日韩国产中文在线| 国产婷婷色一区二区三区四区| 久久精品一区二区三区不卡| 欧美高清在线一区| 亚洲视频导航| 久久久久久久久久久久久9999| 亚洲国产精品久久久久秋霞不卡| 一区二区日韩精品| 国产精品一区一区三区| 亚洲国产欧美一区二区三区同亚洲| 欧美日韩高清一区| 亚洲综合视频网| 免费国产自线拍一欧美视频| 日韩午夜av电影| 久久国产精品电影| 亚洲人成人一区二区三区| 亚洲欧美激情在线视频| 黄色另类av| 亚洲亚洲精品三区日韩精品在线视频| 国产日韩专区| 日韩一区二区免费看| 国产欧美精品国产国产专区| 亚洲人成人一区二区在线观看| 欧美日韩亚洲综合在线| 欧美一区二区三区四区夜夜大片| 欧美成人免费在线| 亚洲免费视频观看| 欧美黄网免费在线观看| 午夜精品在线看| 欧美日韩在线亚洲一区蜜芽| 亚洲第一成人在线| 国产精品天天看| 亚洲伦理在线免费看| 国产美女扒开尿口久久久| 亚洲精选在线观看| 国产在线拍偷自揄拍精品| 亚洲无吗在线| 亚洲丶国产丶欧美一区二区三区| 亚洲欧美日韩在线不卡| 亚洲国产日韩一级| 久久精品国产91精品亚洲| 夜夜嗨av一区二区三区四区| 蜜臀av在线播放一区二区三区| 亚洲天堂激情| 欧美另类专区| 亚洲国产精品传媒在线观看| 国产精品高清网站| 99精品福利视频| 一区二区视频在线观看| 欧美亚洲网站|