當(dāng)前位置:首頁(yè) > 智能硬件 > 智能硬件
[導(dǎo)讀] 在工業(yè)控制領(lǐng)域中,PLC作為一種穩(wěn)定可靠的控制器得到廣泛的應(yīng)用。但它也有自身的一些缺點(diǎn),即數(shù)據(jù)的計(jì)算處理和管理能力較弱,不能給用戶(hù)提供良好的界面等。而計(jì)算機(jī)恰好能彌補(bǔ)PLC的不足,它不但有很強(qiáng)的數(shù)據(jù)處理和

  在工業(yè)控制領(lǐng)域中,PLC作為一種穩(wěn)定可靠的控制器得到廣泛的應(yīng)用。但它也有自身的一些缺點(diǎn),即數(shù)據(jù)的計(jì)算處理和管理能力較弱,不能給用戶(hù)提供良好的界面等。而計(jì)算機(jī)恰好能彌補(bǔ)PLC的不足,它不但有很強(qiáng)的數(shù)據(jù)處理和管理能力,而且能給用戶(hù)提供非常美觀而又易于操作的界面。將PLC與計(jì)算機(jī)結(jié)合,可使系統(tǒng)達(dá)到既能及時(shí)地采集、存儲(chǔ)數(shù)據(jù),又可處理和使用好數(shù)據(jù),兩者結(jié)合的關(guān)鍵是PLC與計(jì)算機(jī)之間的通信。本文以O(shè)MRON公司的CPMI小型PLC為例,詳細(xì)的討論了PLC與計(jì)算機(jī)通信的原理和用VB如何實(shí)現(xiàn)PLC與計(jì)算機(jī)的通信。

  一、通行原理與方法

  上位機(jī)要能夠通過(guò)PLC監(jiān)控下層設(shè)備的狀態(tài),就要實(shí)現(xiàn)上位機(jī)與PLC間的通信,一般工業(yè)控制中都是采用RS232C實(shí)現(xiàn)。上位機(jī)首先向PLC 發(fā)送查詢(xún)數(shù)據(jù)的指令(實(shí)際上是查詢(xún)PLC中端子的狀態(tài)和dm區(qū)的值等),PLC接收了上位的指令后,進(jìn)行校驗(yàn)(fcs校驗(yàn)碼),看其是否正確,如果正確,則向上位機(jī)傳送數(shù)據(jù)(包含首尾校驗(yàn)字節(jié))。否則,PLC拒絕向上位機(jī)傳送數(shù)據(jù)。上位接收到PLC傳送的數(shù)據(jù),也要判斷正確與否,如果正確,則接收,否則,拒絕接收。

  由于cpm1a沒(méi)有提供串行通信口,我們利用其提供的外設(shè)端口實(shí)現(xiàn)通信。PLC與計(jì)算機(jī)之間的連接是通過(guò)omron提供的專(zhuān)用電纜cqm1-cif01來(lái)實(shí)現(xiàn)的,其硬件連接圖如圖1所示。


  二、 PLC與計(jì)算機(jī)間的通信規(guī)約

  計(jì)算機(jī)與PLC間的通信是以“幀”為單位進(jìn)行的,并且在通信的過(guò)程中,計(jì)算機(jī)具有更高的優(yōu)先級(jí)。首先,計(jì)算機(jī)向PLC發(fā)出命令幀,然后,PLC作出響應(yīng),向計(jì)算機(jī)發(fā)送回響應(yīng)幀。其中命令幀和響應(yīng)幀的格式如下:

  (1) 命令幀格式。為了方便計(jì)算機(jī)和PLC的通訊,cpm1a對(duì)在計(jì)算機(jī)連接通信中交換的命令和響應(yīng)規(guī)定了相應(yīng)的格式。當(dāng)計(jì)算機(jī)發(fā)送一個(gè)命令時(shí),命令數(shù)據(jù)主準(zhǔn)備格式如圖2所示。


  其中@放在首位,表示以@開(kāi)始,設(shè)備號(hào)為上位機(jī)識(shí)別所連接的PLC的設(shè)備號(hào)。識(shí)別碼為命令代碼,用來(lái)設(shè)置用戶(hù)希望上位機(jī)完成的操作,fcs為幀檢驗(yàn)代碼,一旦通信出錯(cuò),通過(guò)計(jì)算fcs可以及時(shí)發(fā)現(xiàn)。結(jié)束符為“*”和cr回車(chē)符,表示命令結(jié)束。

  (2) 響應(yīng)幀格式。由PLC發(fā)出的對(duì)應(yīng)于命令格式的響應(yīng)幀格式如圖3所示。


 


  其中,異常碼可以確定計(jì)算機(jī)發(fā)送的命令是否正確執(zhí)行。其它的與正文中的含義相同。正文僅在有讀出數(shù)據(jù)時(shí)有返回。

  三、 通信程序的設(shè)計(jì)

  為了充分利用計(jì)算機(jī)數(shù)據(jù)處理的強(qiáng)大功能,我們可以采用計(jì)算機(jī)有優(yōu)先權(quán)的方式,在計(jì)算機(jī)上編寫(xiě)程序來(lái)實(shí)現(xiàn)計(jì)算機(jī)與PLC的通信, 計(jì)算機(jī)向 PLC發(fā)出命令發(fā)起通信,PLC自動(dòng)返回響應(yīng)。本文中采用vb來(lái)編寫(xiě)計(jì)算機(jī)與PLC間的通訊程序。在vb中提供了通信控件—應(yīng)用通信控件(mscomm),實(shí)現(xiàn)通過(guò)串行端口傳送和接受的功能。

  下面介紹mscomm控件的屬性:

 ?。猚ommport:設(shè)定通信連接端口代號(hào),程序必須指定所要使用的串行端口號(hào),windows系統(tǒng)使用所設(shè)定的端口與外界通信。

 ?。猵ortopen:設(shè)定通信口狀態(tài),若為真,通信端口打開(kāi),否則關(guān)閉。

 ?。猻ettings:設(shè)定通信口參數(shù),其格式是"BBbb,p,d,s",其中bbbb為通信速率(波特率),p為通信檢查方式(奇偶校驗(yàn)), d 為數(shù)據(jù)位數(shù),s為停止位數(shù),其設(shè)定應(yīng)與PLC的設(shè)定一致。

 ?。猧nput:將對(duì)方傳送至輸入緩沖區(qū)的字符讀入到程序。

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

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

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

 ?。猧nputlen:設(shè)定串行端口讀入字符串的長(zhǎng)度。

  *inputmode:設(shè)定接收數(shù)據(jù)的方式。

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

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

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

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

  初始化程序如下:

  mscomm.comport=2 `使用串口com2

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

  mscomm.portopen=true `打開(kāi)通信端口,準(zhǔn)備通信

  (2) 計(jì)算校驗(yàn)碼fcs,計(jì)算fcs的vb自定義函數(shù)如下:

  function fcs(byval inputSTr as string) as string

  dim slen, i, xorresult as integer

  dim tempfes as string

  slen=len(inputstr) `求輸入字符串長(zhǎng)度

  xorresult = 0

  for i = 1 to slen

  xorresult = xorresult xor asc(mid$(inputstr, i, 1)) `按位異或

  next i

  tempfes=hex$(xorresult) `轉(zhuǎn)化為16進(jìn)制

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

  fcs = tempfes

  end function

 ?。?) 計(jì)算機(jī)與PLC通信程序

  主要是一個(gè)自定義函數(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) `向PLC傳送命令幀

  do

  doevents

  loop while mscomm.inbuffercount < 15

  instring=mscomm.input `獲取PLC的響應(yīng)幀

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

  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

  `響應(yīng)幀校驗(yàn)

  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

  從上面程序可以看到,計(jì)算機(jī)對(duì)PLC返回的響應(yīng)幀要進(jìn)行fcs校驗(yàn),并利用異常碼排除返回的異常數(shù)據(jù),這樣不但可以提高計(jì)算機(jī)獲取信息的正確性,而且提高了計(jì)算機(jī)監(jiān)控的實(shí)時(shí)性。

  四、結(jié)束語(yǔ)

  本文介紹的通信方法在我校cims研究中心自行研制的一套機(jī)電一體化設(shè)備中得到實(shí)施運(yùn)用,經(jīng)試驗(yàn)運(yùn)行,證明這種通信方法穩(wěn)定、可靠,確實(shí)是一種非常有效的方法。將PLC與計(jì)算機(jī)通信網(wǎng)絡(luò)連接起來(lái),PLC作為下位機(jī),計(jì)算機(jī)作為上位機(jī),形成一個(gè)優(yōu)勢(shì)互補(bǔ)的自動(dòng)控制系統(tǒng),實(shí)現(xiàn)了“集中管理,分散控制”。其中各個(gè)PLC子系統(tǒng)或遠(yuǎn)程工作站在生產(chǎn)現(xiàn)場(chǎng)對(duì)各個(gè)被控對(duì)象進(jìn)行控制,利用網(wǎng)絡(luò)連接構(gòu)成一個(gè)PLC綜合控制,滿(mǎn)足了現(xiàn)代自動(dòng)化系統(tǒng)向信息化、網(wǎng)絡(luò)化、智能化的過(guò)渡。

 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉