智汇工业-智慧工业、智能制造及工业智能、工业互联门户网站,专业的工业“互联网+”传媒

用VB實現PLC與計算機間的串行通信

來源:網絡

點擊:1534

A+ A-

所屬頻道:新聞中心

關鍵詞:VB,PLC,串行通信

    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控件的屬性:

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

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

      *settings:設定通信口參數,其格式是“bbbb,p

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

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

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

     ?。猧nbuffercount:傳回接收緩沖區中的字符數。

      *outbuffercount:傳回輸出緩沖區中的字符數。

     ?。猧nputlen:設定串行端口讀入字符串的長度。

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

      *rthreshold:設定引發接收事件的字符數。

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

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

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

      初始化程序如下:

      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

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

    (審核編輯: 智匯胡妮)

    聲明:除特別說明之外,新聞內容及圖片均來自網絡及各大主流媒體。版權歸原作者所有。如認為內容侵權,請聯系我們刪除。

    主站蜘蛛池模板: 南京货架|仓库货架|货架公司|仓储货架工厂批发定做-南京苏正科技实业公司 | 危废处理_危废处置_危废处理公司-江苏绿瑞特环境科技股份有限公司 | 尾矿干排_机制砂尾矿干排_带式压滤机|山东森鹏环保科技有限公司 潍坊卓瑞机械有限公司,输送设备,石灰消化设备,餐厨垃圾设备,化机浆设备,污泥脱水 | 限矩型液力偶合器_调速型液力偶合器_摩擦型耦合器生产厂家-河南省华升矿机有限公司 | 中国国际精细化工展览会—官网| 上海中泉泵业制造有限公司-柴油机泵,一体化泵站,柴油机消防泵,泵站,预制一体化泵站 | 消泡剂_有机硅消泡剂_水处理消泡剂_新万成消泡剂厂家 | 世界地图,卫星地图,99地图网,微笑如歌 - www.99ditu.com | 微库仑硫氯分析仪-化学发光定氮仪-X荧光硫测定仪-泰州江河仪器有限公司 | 无锡鑫润杰金属科技有限公司 | 精密铸造,精密铸件,不锈钢铸造,不锈钢铸件-常州鸿雁行机械科技有限公司 | 植绒布工厂,植绒布现货批发-深圳市金峰盛植绒制品有限公司 | 全降解塑料厂家_淋膜_秸秆_手机壳_气泡袋_牙刷牙线_GRS可回收包装材料-东莞全球环保科技有限公司 | 上海层傲传动设备有限公司 - 工业皮带,输送带,传动带 | 秦皇岛天视影像有限公司,宣传片创意拍摄制作,商业广告拍摄公司,影视影像服务商 - 秦皇岛天视影像有限公司,宣传片创意拍摄制作,商业广告拍摄公司,影视影像服务商 秦皇岛市信恒电子科技有限公司 秦皇岛市华谊彩印有限公司 | 天津高压泵-高压清洗机-高压柱塞泵-厂家-价格-天津高压泵格瑞德 天津翻译公司盖章|022-58385822| 翰文博译(天津)商务咨询有限公司 | 选金银铅锌钽铌锡铂钨铑铱镐钯宝石&金属尾矿重选-青州冠诚重工机械 | 随车挖生产厂家_山东精久工程机械有限公司 | 金刚石线切割-电火花穿孔机-中走丝线切割-泰州锐特 | 无心磨床- 无锡润一机床有限公司 | 专业液压对辊,双齿辊破碎机,沙子烘干机,制砂洗沙设备生产线厂家 - 巩义市吉宏机械 | 土工膜_土工布_复合土工膜_山东土工膜生产厂家_山东路易达新材料有限公司 | 润东方环保空调厂家-水冷式空调价格-润东方水冷空调-东莞市科骏机电设备有限公司 | 无锡防爆墙-无锡泄爆墙_江苏鑫立轩装饰工程有限公司 | 液压升降货梯_导轨式升降机_往复式提升机_济南宇轩机械厂家 | 全降解塑料厂家_淋膜_秸秆_手机壳_气泡袋_牙刷牙线_GRS可回收包装材料-东莞全球环保科技有限公司 | 久久91精品久久91综合_国产亚洲自拍一区_国产精品第1页_亚洲高清视频一区_91成人午夜在线精品_亚洲国产精品网站在线播放_亚洲国产成人久久综合区_国产精品亚洲专区在线观看_免费视频精品一区二区三区 | 曙海培训-ZEMAX培训射频培训无线电培训GMS培训EMC培训电磁兼容性培训Maxwell培训欧姆龙培训procast培训可靠性培训光学培训工业机器人培训NI培训Linux培训5G培训Hadoop培训CFD培训 | 山东金起起重机械有限公司[官网]-金桥银路悬臂吊,金起龙门吊,山东金起起重行吊,单梁起重机 | 随州市东正专用汽车有限公司 | 五金冲压厂家_五金冲压件加工_微细孔加工-深圳市浩鑫精密五金制品有限公司 | 弯箍机_钢筋弯箍机_全自动钢筋弯箍机_数控弯箍机-建科智能装备制造(天津)股份有限公司 | 人防信号控制箱厂家-液位控制器价格-信号灯箱批发厂家-消声加热器-鼎兴自控 | 钻机配件-岩心管-岩心管接箍-地质套管-煤矿用钻头-河南滨远机械设备有限公司 | 江门市振达机械制造有限公司_散货输送系统_全密封带式输送机 | 久久黄色一级视频_视频一区精品自拍_理论片免费ā片在线观看_亚洲色视频在线播放网站_香港经典a毛片免费观看_亚州三级久久电影 | 湖南视频会议设备厂家|长沙视频会议设备安装型号齐全找湖南日恒智能工程有限公司 | 狠狠穞A片一區二區三區-免费网站在线观看人数更新时间-欧洲尺码日本尺码专线不卡顿,国产大尺度禁片未删减版,baomaav | 西安外墙防水补漏-堵漏-防腐-保温工程公司-陕西宏图祥瑞实业有限公司 | 淘客联盟平台_网络电话系统-河南英邦软件科技有限公司官网 | 山东长青石油液压机械有限公司-致力于石油机械设备的研发制造,提供定制服务 |