1 引言 隨著計(jì)算機(jī)通訊技術(shù)的日益成熟及企業(yè)對工業(yè)自動(dòng)化程度要求的提高缎除,自動(dòng)控制系統(tǒng)從傳統(tǒng)的集中式控制向多級(jí)分布式控制方向發(fā)展膝但,構(gòu)成控制系統(tǒng)的PLC也就必須具備通信聯(lián)網(wǎng)功能。在具體應(yīng)用過程中策泣,若要監(jiān)視PLC內(nèi)部的數(shù)據(jù)與運(yùn)行狀況馅扣,選用市場上的人機(jī)界面或組態(tài)軟件,雖然功能豐富着降,但大都價(jià)格昂貴差油,尤其在一些中小規(guī)模的生產(chǎn)場合。所以許多企業(yè)希望能自己用高級(jí)語言開發(fā)一個(gè)簡易實(shí)用的通信程序任洞,通過面向?qū)ο蟮目梢暬幊陶Z言VB6.0很容易地實(shí)現(xiàn)分布式監(jiān)控蓄喇。PLC等下位機(jī)控制生產(chǎn)過程,本地計(jì)算機(jī)進(jìn)行實(shí)時(shí)監(jiān)測或參與控制生產(chǎn)現(xiàn)場的參數(shù)交掏。本文通過對OMRON的CPM1A小型機(jī)與上位計(jì)算機(jī)通信原理和通信方法的研究偷真,介紹了如何用VB6.0實(shí)現(xiàn)上位計(jì)算機(jī)對PLC的實(shí)時(shí)監(jiān)控,并取得了良好的效果精幌。 2 監(jiān)控原理 2.1 通信方法 圖1 系統(tǒng)通信原理 在通信過程中上位機(jī)始終處于主動(dòng)方调限,PLC則處于從動(dòng)方,所有的數(shù)據(jù)交換只能在主站和從站之間進(jìn)行赋咽,從站之間不能直接交換數(shù)據(jù)旧噪,如果從站之間需要交換數(shù)據(jù)吨娜,必須通過主站中轉(zhuǎn)1脓匿。首先上位機(jī)向PLC發(fā)送指令幀,PLC接收了上位機(jī)的指令后宦赠,先進(jìn)行FCS校驗(yàn)陪毡,看其是否正確,如果正確勾扭,則接收并向上位機(jī)傳送響應(yīng)幀(包含首尾校驗(yàn)字節(jié))毡琉,否則,PLC拒絕向上位機(jī)傳送數(shù)據(jù)妙色。需要說明的是桅滋,整個(gè)通信過程中因PLC中配有通信機(jī)制,一般不需要對PLC進(jìn)行編程身辨。上位機(jī)接收到PLC傳送的數(shù)據(jù)推妈,也要判斷正確與否,如果正確滩扩,則接收显哨,完成一次正常通信,否則槽顶,通信需重新開始篙绎。 2.2 通訊協(xié)議 ● 雙方在初始化時(shí)要使波特率亿隔、數(shù)據(jù)位數(shù)、停止位數(shù)、奇偶校驗(yàn)均保持一致矛熬;
(3)通訊的響應(yīng)幀設(shè)計(jì)
其中鳖群,@為前導(dǎo)字符紊荞,表示開始;設(shè)備號(hào)為00-31(本例限設(shè)到10)袁余,共可設(shè)置32個(gè)站號(hào)擎勘,用來識(shí)別所連接的PLC,可通過PLC的DM6653的低8位來設(shè)定颖榜,默認(rèn)站號(hào)為00棚饵;命令碼為CPMIA小型PLC規(guī)定的對其操作的命令代碼;正文為需要讀或?qū)懙臄?shù)據(jù)地址以及數(shù)據(jù)掩完;FCS為幀校驗(yàn)代碼噪漾,用于及時(shí)發(fā)現(xiàn)通信過程中的錯(cuò)誤,以備處理且蓬;*和CR表示命令結(jié)束[2>欣硼。 命令幀為PC機(jī)傳向PLC的幀格式,響應(yīng)幀為PLC傳向PC機(jī)的幀格式,其命令幀與響應(yīng)幀中的各個(gè)部分除數(shù)據(jù)區(qū)不同外恶阴,其他部分的含義是相同的诈胜。 2.3 MSComm控件介紹 表1 MSComm控件屬性 2 通信程序設(shè)計(jì) 本系統(tǒng)以PC對基于PLC的交通燈控制系統(tǒng)的監(jiān)控為例,在上位機(jī)與PLC正常通信的前提下逮弛,設(shè)計(jì)如下界面螃方。窗體的內(nèi)容主要包括,四大區(qū):端口敷裁、站號(hào)選擇區(qū)应攘,設(shè)定時(shí)間輸入?yún)^(qū),監(jiān)控顯示區(qū)泌景,控制按紐區(qū)轧翘。從站號(hào)選擇區(qū)選擇不同站號(hào)即不同PLC,實(shí)現(xiàn)對多個(gè)PLC的實(shí)時(shí)監(jiān)控坑匆。 3.1 串口初始化程序 If MSComm1.PortOpen <> True Then 3.2 計(jì)算機(jī)與PLC通信的VB程序 Dim OutputStr As String Dim InString As String Dim ReturnStr As String Dim EndString As String Dim FCSString As String Dim ReturnFCSString As String Form1.MSComm1.InBufferCount=0 OutputStr=InputStr+FCS(InputStr)+“*” If Form1.MSComm1.PortOpen=True Then Form1.MSComm1.Output=OutputStr+Chr$(13)’按照PLC幀格式輸出 End If Do DoEvents Loop Until Form1.MSComm1.InBufferCount >=Num2’返回幀的長度 InString=Form1.MSComm1.Input EndString=Mid$(InString,6,2)’取返回幀的響應(yīng)碼 If EndString <> “00”Then ReadData=“Error” Exit Function End If EndString=Mid$(InString,1,Len(InString)-4) ReturnFCSString=Mid$(InString, Len(InString) -3,2)’取返回幀校驗(yàn)碼 FCSString=FCS(EndString) If FCSString <> ReturnFCSString Then ReadData=“Error” Exit Function End If If Len(InString)>=Num2 Then ReturnStr=Mid$(InString, Len(InString)-Num1-3, Num1)’取返回幀的數(shù)據(jù)曙辑,其度為Num1 ReadData = ReturnStr End If End Function 4 結(jié)束語 |
聲明:本網(wǎng)站所收集的部分公開資料來源于互聯(lián)網(wǎng),轉(zhuǎn)載的目的在于傳遞更多信息及用于網(wǎng)絡(luò)分享毡们,并不代表本站贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé)迅皇,也不構(gòu)成任何其他建議。本站部分作品是由網(wǎng)友自主投稿和發(fā)布衙熔、編輯整理上傳登颓,對此類作品本站僅提供交流平臺(tái),不為其版權(quán)負(fù)責(zé)红氯。如果您發(fā)現(xiàn)網(wǎng)站上所用視頻框咙、圖片、文字如涉及作品版權(quán)問題痢甘,請第一時(shí)間告知喇嘱,我們將根據(jù)您提供的證明材料確認(rèn)版權(quán)并按國家標(biāo)準(zhǔn)支付稿酬或立即刪除內(nèi)容,以保證您的權(quán)益塞栅!聯(lián)系電話:010-58612588 或 Email:editor@mmsonline.com.cn者铜。
- 暫無反饋
編輯推薦
- 2025新年特刊:打造新質(zhì)生產(chǎn)力账嚎,智啟未來新篇章
- 定義制造業(yè)未來的數(shù)控加工中心技術(shù)專題
- 航空航天及交通領(lǐng)域先進(jìn)制造技術(shù)應(yīng)用專題
- 解碼消費(fèi)電子產(chǎn)品生產(chǎn)的數(shù)字化之路技術(shù)專題
- 精密智能機(jī)床,助力制造升級(jí)技術(shù)專題
- 汽車輕量化驅(qū)動(dòng)下的零部件加工應(yīng)用專題
- 高性能銑刀實(shí)現(xiàn)高精加工生產(chǎn)技術(shù)專題
- 航空航天發(fā)動(dòng)機(jī)解決方案專題
- 高效齒輪加工生產(chǎn)技術(shù)方案專題
- 金屬加工液的性能不止?jié)櫥夹g(shù)應(yīng)用專題