技術(shù)頻道

      實(shí)現(xiàn)WINDOWS下上位機(jī)與PLC網(wǎng)絡(luò)之間的數(shù)據(jù)通訊

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

      方式二雖然使用了信號(hào)轉(zhuǎn)換,但可避免前級(jí)故障對(duì)后級(jí)的影響。

      三、上位計(jì)算機(jī)與PLC的鏈路通訊
      以O(shè)MRON公司CPM1A型PLC和上位計(jì)算機(jī)通訊為例,通訊協(xié)議如下:

      按上圖順序發(fā)送/接受命令。每次通訊發(fā)送/接受的一組數(shù)據(jù)稱(chēng)為一“幀”。幀由少于131個(gè)字符的數(shù)據(jù)構(gòu)成,若發(fā)送數(shù)據(jù)要進(jìn)行分割幀發(fā)送,分割幀的結(jié)尾用CR碼(CHR(13))一個(gè)字符的分界符(分段字符)來(lái)代替終端。發(fā)送幀的一方具有發(fā)送權(quán),發(fā)送方發(fā)送完一幀后,將發(fā)送權(quán)交給接受方。
      發(fā)送幀的基本格式為:
      @機(jī)號(hào) 識(shí)別碼 正文 FCS *CR
      其中:@ 為幀開(kāi)始標(biāo)志
      機(jī)號(hào) 網(wǎng)絡(luò)通訊中每一臺(tái)PLC被分配給的唯一番號(hào)
      識(shí)別碼 該幀的通訊命令碼
      正文 用來(lái)設(shè)定命令參數(shù)
      FCS 幀校驗(yàn)和
      終端 命令結(jié)束符
      響應(yīng)的基本格式為:
      @機(jī)號(hào) 識(shí)別碼 結(jié)束碼 正文 FCS *CR
      其中:@機(jī)號(hào) 識(shí)別碼 正文等同發(fā)送幀意義
      結(jié)束碼 返回命令結(jié)束有無(wú)錯(cuò)誤等狀態(tài)
      關(guān)于多于131個(gè)字符的分割幀這里不在贅述。

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

      五、上位計(jì)算機(jī)WINDOWS下的通訊程序設(shè)計(jì)
      上位機(jī)通訊軟件是用VB開(kāi)發(fā)的,因VB具有強(qiáng)大的圖形顯示功能,可以開(kāi)發(fā)出界面良好的WINDOWS標(biāo)準(zhǔn)風(fēng)格的圖形用戶(hù)界面。同時(shí)VB還提供了串行端口控件MSCOMM,程序員在利用該控件時(shí),只需設(shè)置、監(jiān)視其屬性和事件,即可完成對(duì)串行口的初始化和數(shù)據(jù)的傳輸工作。
      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為網(wǎng)絡(luò)系統(tǒng)中的PLC個(gè)數(shù)
      If i<10 then
      S$ = "@"+"0"+str$(i)+"ts"+"abcd"
      Else
      S$ = "@"+str$(i)+ts"+"abcd" ;abcd為測(cè)試字符
      Endif
      … ;形成上位機(jī)測(cè)試命令數(shù)據(jù)塊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$
      … ;轉(zhuǎn)入正常通訊數(shù)據(jù)處理
      Else
      Labell.caption = str$(i)+“測(cè)試通訊失敗,檢查線路后再測(cè)試”
      Endif
      Endsub

      六、PLC方的通訊設(shè)置
      計(jì)算機(jī)與PLC通訊的目的是實(shí)現(xiàn)計(jì)算機(jī)對(duì)PLC運(yùn)行狀態(tài)、數(shù)據(jù)區(qū)的監(jiān)控、PLC工的管理并可用計(jì)算機(jī)編程。一般來(lái)說(shuō),在通訊過(guò)程中PLC是被動(dòng)的,每一次通訊都由計(jì)算機(jī)發(fā)起與終止,但也可由PLC發(fā)起。
      通訊前需用外部輸入設(shè)備在系統(tǒng)設(shè)定區(qū)域的DM6650-DM6653中進(jìn)行通訊條件設(shè)定。
      通道地址 位 設(shè)定 功能說(shuō)明

      文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。

      主站蜘蛛池模板: 亚洲午夜福利AV一区二区无码| 国产精品分类视频分类一区| 亚洲一区二区三区高清不卡| 亚洲人成人一区二区三区| 综合久久一区二区三区| 精品一区二区三区在线成人 | 3d动漫精品一区视频在线观看| 久久国产三级无码一区二区| 亚洲日本乱码一区二区在线二产线| 午夜爽爽性刺激一区二区视频| 日韩精品人妻一区二区中文八零| 亚洲一区二区三区乱码A| 99无码人妻一区二区三区免费| 四虎永久在线精品免费一区二区| 国产一区二区三区精品视频 | 福利视频一区二区牛牛 | 国产一区韩国女主播| 亚洲熟女少妇一区二区| 久久久国产精品无码一区二区三区 | 无码一区二区三区免费视频| 日本高清不卡一区| 国产一区二区三区精品久久呦| 亚洲A∨无码一区二区三区| 日本在线视频一区| 福利在线一区二区| 色欲AV无码一区二区三区| 国产麻豆媒一区一区二区三区| 久久国产精品一区二区| 无码人妻一区二区三区免费看| 国产一区二区三区精品视频| 痴汉中文字幕视频一区| 东京热无码一区二区三区av| 色噜噜AV亚洲色一区二区 | 午夜视频久久久久一区| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 国产精品综合AV一区二区国产馆 | 国产精品日本一区二区在线播放| 国产成人精品无码一区二区老年人| 国产免费私拍一区二区三区| 日本香蕉一区二区三区| 免费国产在线精品一区|