關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設計應用 > 基于VB的PLC與計算機間串行通信實現(xiàn)

基于VB的PLC與計算機間串行通信實現(xiàn)

作者: 時間:2010-11-05 來源:網(wǎng)絡 收藏

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

 ?。猳utput:將字符寫入輸出緩沖區(qū)。

  *inbuffercount:傳回接收緩沖區(qū)中的字符數(shù)。

  *outbuffercount:傳回輸出緩沖區(qū)中的字符數(shù)。

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

 ?。猧nputmode:設定接收數(shù)據(jù)的方式。

 ?。猺threshold:設定引發(fā)接收事件的字符數(shù)。

 ?。猚ommevent:傳回ONcomm事件發(fā)生時的數(shù)值碼

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

 ?。?) 控件參數(shù)的初始化

  初始化程序如下:

  mscomm.comport=2 `使用串口com2

  mscomm.settings=9600, e, 7, 2 `波特率9600,偶校驗,7位數(shù)據(jù)位,2位停止位

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

 ?。?) 計算校驗碼fcs,計算fcs的vb自定義函數(shù)如下:

  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) `轉(zhuǎn)化為16進制

  if len(tempfes)=1then tempfes =“0”+tempfes

  fcs = tempfes

  end function

 ?。?) 通信程序

  主要是一個自定義函數(shù)。

  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

  utputstr=inputstr+fcs(inputstr)+“*” `給出命令幀

  mscomm.output=outputstr+chr$(13) `向傳送命令幀

  do

  doevents

  loop while mscomm.inbuffercount 15

  instring=mscomm.input `獲取的響應幀

 ?。嘟Y(jié)束碼判斷

  endstring = mid$(instring, len(instring) -

  num- 5, 2)



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉