技術頻道

      實現WINDOWS下上位機與PLC網絡之間的數據通訊

       
      [摘 要]
      可編程控制器與PLC機組成的集散控制系統,越來越廣泛的應用于生產過程自動化領域。本文就PC機與多臺PLC組成的網絡之間數據通訊的通用模式及軟、硬件實現方案加以探討。
      [關鍵詞]
      計算機 PLC 網絡通訊 軟硬件
      一、引言
      PLC以其高可靠性、適應工業過程現場、強大的聯網功能等特點,被廣泛應用。可實現順序控制、PID回路調節、高速數據采集分析、計算機上位管理PLC分散控制的集散管理系統,是實現機電一體化的重要手段和發展方向。
      WINDOWS操作系統以其圖形用戶界面、多任務、自動內存管理等特點,已取代了DOS操作系統的地位。WINDOWS操作系統為用戶提供了API接口函數,但非專業開發人員難以掌握。VB作為WINDOWS下的應用軟件開發平臺以其易學好用的優點給程序員提供了強大的可視化編程工具。
      在微機與PLC之間構成的集散控制系統中,多數是由一臺PC計算機與數臺PLC之間形成1-N的通信模式。該模式系統中PLC負責現場高速數據采集、實現邏輯、定時、計數、PID調節等控制任務并通過串行通訊口向微機傳送PLC工作狀態機有關數據從而實現計算機對控制系統的管理,提高了PLC的控制能力的控制范圍。使其從設備級的控制發展到生產線級乃至工廠級的控制,從而實現工廠智能化的目標。該集散控制系統中,PLC與微型計算機之間的通訊顯得尤為重要。因此如何提高保證它們之間的通訊準確程度、可靠性及效率是通訊成功與否的關鍵技術之一,下面就對該關鍵技術做一些探討。
      二、上位計算機與PLC之間的鏈接方式
      本文介紹的是上位機與多臺PLC組成的多鏈系統,常用的連接方式有兩種:
      方式一使用連接適配器較少,也不用信號轉換,但若中間一臺PLC出故障,其后續的PLC無法與上位機通訊。

      方式二雖然使用了信號轉換,但可避免前級故障對后級的影響。

      三、上位計算機與PLC的鏈路通訊
      以OMRON公司CPM1A型PLC和上位計算機通訊為例,通訊協議如下:

      按上圖順序發送/接受命令。每次通訊發送/接受的一組數據稱為一“幀”。幀由少于131個字符的數據構成,若發送數據要進行分割幀發送,分割幀的結尾用CR碼(CHR(13))一個字符的分界符(分段字符)來代替終端。發送幀的一方具有發送權,發送方發送完一幀后,將發送權交給接受方。
      發送幀的基本格式為:
      @機號 識別碼 正文 FCS *CR
      其中:@ 為幀開始標志
      機號 網絡通訊中每一臺PLC被分配給的唯一番號
      識別碼 該幀的通訊命令碼
      正文 用來設定命令參數
      FCS 幀校驗和
      終端 命令結束符
      響應的基本格式為:
      @機號 識別碼 結束碼 正文 FCS *CR
      其中:@機號 識別碼 正文等同發送幀意義
      結束碼 返回命令結束有無錯誤等狀態
      關于多于131個字符的分割幀這里不在贅述。

      四、通訊過程
      通訊開始先由上位計算機依次對網的PLC發出一串字符的測試幀命令。為充分利用上位機CPU的時間,可使上位機與PLC并行工作,在上位機等待PLC回答信號的同時,使CPU處理其它任務或線程。某PLC在接到上位機的一個完整幀以后,首先判斷是不是自己的代號,若不是就不予理睬,若是就發送呼叫回答信號。上位機接到回答信號后,與發送測試的數據比較,若兩者無誤,發出可以進行數據通訊的信號,轉入正常數據通訊,否則提示用戶檢查線路重新測試或通訊失敗。

      五、上位計算機WINDOWS下的通訊程序設計
      上位機通訊軟件是用VB開發的,因VB具有強大的圖形顯示功能,可以開發出界面良好的WINDOWS標準風格的圖形用戶界面。同時VB還提供了串行端口控件MSCOMM,程序員在利用該控件時,只需設置、監視其屬性和事件,即可完成對串行口的初始化和數據的傳輸工作。
      Sub forml_load()
      Mscomml.comport = 1
      Mscomml.settings = "9600,n,8,1"
      End sub
      Sub commandl_click
      Mscomml.inputlen = 0
      If mscomml.portopen = false then
      Mscomml.portopen = true
      End if
      For I = 1 to n ;N為網絡系統中的PLC個數
      If i<10 then
      S$ = "@"+"0"+str$(i)+"ts"+"abcd"
      Else
      S$ = "@"+str$(i)+ts"+"abcd" ;abcd為測試字符
      Endif
      … ;形成上位機測試命令數據塊sedata$;
      Mscomml.output = sedata$
      Timerl_on = false
      Timetl.enable = true
      Do until (mscomml.inbuffercountá&ntilde;0)
      or (timerl_on = true)
      Domy = doevents()
      Loop
      Timerl.enable = false

      Redata$ = mscomml.input
      If redata$ = sedata$
      … ;轉入正常通訊數據處理
      Else
      Labell.caption = str$(i)+“測試通訊失敗,檢查線路后再測試”
      Endif
      Endsub

      六、PLC方的通訊設置
      計算機與PLC通訊的目的是實現計算機對PLC運行狀態、數據區的監控、PLC工的管理并可用計算機編程。一般來說,在通訊過程中PLC是被動的,每一次通訊都由計算機發起與終止,但也可由PLC發起。
      通訊前需用外部輸入設備在系統設定區域的DM6650-DM6653中進行通訊條件設定。
      通道地址 位 設定 功能說明

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 无码丰满熟妇浪潮一区二区AV| 丝袜美腿高跟呻吟高潮一区| 国产一区二区精品| 韩国一区二区三区视频| 国产乱码一区二区三区| 亚洲午夜一区二区三区| 久久中文字幕无码一区二区 | 亚洲一区二区三区在线网站 | 亚洲午夜日韩高清一区| 国产一区二区三区在线影院| 无码乱人伦一区二区亚洲一| 伊人久久一区二区三区无码| 一区二区免费在线观看| 夜夜嗨AV一区二区三区| 亚洲狠狠狠一区二区三区| 国产在线精品一区在线观看| 国产一区二区电影| 日韩福利视频一区| 国产AV午夜精品一区二区三| 国产精品视频一区二区猎奇| 国产免费私拍一区二区三区| 一本大道东京热无码一区| 精品国产福利在线观看一区| 中文字幕国产一区| 中文字幕乱码亚洲精品一区| 色一情一乱一伦一区二区三区日本 | 精品一区二区ww| 99精品国产一区二区三区| 日韩一区二区在线视频| AV怡红院一区二区三区| 伊人久久大香线蕉AV一区二区 | 国产suv精品一区二区33| 亚洲熟女综合色一区二区三区| 国产a久久精品一区二区三区| 国产精品一区二区三区免费| 视频一区二区在线播放| 亚洲日韩精品国产一区二区三区 | 精品视频无码一区二区三区| 男人免费视频一区二区在线观看| 久久精品黄AA片一区二区三区 | 日韩国产免费一区二区三区|