




已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于VB的臺達(dá)PLC與監(jiān)控計(jì)算機(jī)的串行通信實(shí)現(xiàn)Implementation of Serial Communication Between Monitoring Computer and Delta PLC Based on Visual Basic摘 要:PLC直接與現(xiàn)場控制層的檢測儀器儀表設(shè)備連接,是底層控制網(wǎng)絡(luò)的組成部分,是工廠自動化系統(tǒng)的基石,因此實(shí)現(xiàn)與監(jiān)控層計(jì)算機(jī)的通信對系統(tǒng)的優(yōu)化運(yùn)行有重要意義。文章基于VB討論臺達(dá)DVP PLC與監(jiān)控計(jì)算機(jī)的通信問題。關(guān)鍵詞:VB 通信協(xié)議 可編程控制器Abstract: The PLC is a composing part of Infranet, it links to the measuring instrument and device in field control layer directly, and is the footstone of factory automation system. Therefore it is very important to realize the communication between PLC and monitoring layer computer for optimization of syste running. The paper discussed the related communication problems between Delta DVP PLC and monitoring computer based on Visual Basic. Key Words: Visual Basic Communication protocal Programable logic controller1 引 言 現(xiàn)場設(shè)備層中的設(shè)備種類繁多,有傳感器、啟動器、驅(qū)動器、I/O部件、變送器、閥門等等,當(dāng)然也包括現(xiàn)場檢測儀器儀表設(shè)備。PLC是現(xiàn)場設(shè)備控制層不可缺少的部分,已經(jīng)非常普及,如何簡便地實(shí)現(xiàn)與PLC的交互已經(jīng)成為眾多廠商新的競爭戰(zhàn)場。由此產(chǎn)生了人機(jī)界面等軟件產(chǎn)品,這些產(chǎn)品的出現(xiàn)簡化了對PLC的控制、操作,使PLC的應(yīng)用更加方便;但也有其共同的缺點(diǎn),價(jià)格普遍偏高和可二開發(fā)性較差。VB作為“原始”的編程語言在這兩方面無疑有著明顯優(yōu)勢的,本文結(jié)合一個簡單的案例,用比較基礎(chǔ)的概念討論如何通過VB實(shí)現(xiàn)PC與PLC之間的通信問題,這對剛涉步控制領(lǐng)域的工程師或許是有幫助的。在現(xiàn)場設(shè)備層中各式各樣的設(shè)備都可以和計(jì)算機(jī)聯(lián)機(jī),而最簡單的自動化聯(lián)機(jī)方式就是使用串行通信,VB提供了串行通信控件可以讓開發(fā)者開發(fā)出串行通信的系統(tǒng)程序,以下是對相關(guān)問題的粗略討論。2 串行通信基本概念 數(shù)據(jù)通訊中有兩種類型的通信形式,即并行通信(Parallel Communication)和串行通信(Serial Communication)。例如,如果有8位數(shù)據(jù)需要傳送,那么并行通信一次就可以完成8位的傳輸量;而串行一次只能傳送1位。圖1表示了兩種不同的通信模式,常用的串行通信也有兩種,分別為RS-232和RS-485。 圖1 串行與并行傳輸?shù)谋容^21 RS-232 串行通信 RS-232的信號準(zhǔn)位是參考地線而言的,如圖2所示。相對于參考接地端1傳輸端傳送數(shù)據(jù);接收端則相對于參考接地端2復(fù)現(xiàn)出傳送端的傳送的數(shù)據(jù)。 圖2 RS-232 串行通信示意圖 由圖2可知,由于兩個接地端準(zhǔn)位不一定一樣,而且很容易受到干擾,所以信號在RS-232線路傳輸時(shí),很容易產(chǎn)生錯誤。22 RS-485串行通信RS-485的信號傳輸方式如圖3所示。 RS-485的信號被傳送出去時(shí)會分成正負(fù)兩條線路,當(dāng)?shù)竭_(dá)接收端后,在將信號相減還原成原來的信號;如果將原始的信號表示成(DT),而被分成的信號分別標(biāo)示成(D+)及(D-),則DT=(D+)-(D-)。同理,接收端在接收到信號后,也依據(jù)上式還原成原來的樣子。如果線路受到干擾,兩條線路的信號分別為(D+)+Noise與(D-)+Noise。接收端還原信號為(DT)= (D+)+Noise-(D-)+Noise,與先前結(jié)果一樣,所以RS-485可以有效的防止噪聲的干擾。3 VB的基本概念 VB(Visual Basic)是微軟的窗口軟件,提供了很多接口成員,對象、屬性、事件、方法就是4個重要的接口,VB提供了許多常用的控件。31卷標(biāo)控件 卷標(biāo)控件如圖4(a)所示,該控件專用于顯示文字、數(shù)字用,顯示如圖4(b)所示 (a) (b) 圖4 卷標(biāo)控件界面3.2 按鈕控件按鈕控件如圖5(a)所示,該控件使用率很高,提供一個供系統(tǒng)用戶操作用的按鈕,如圖5(b)所示。 (a) (b) 圖5 按鈕控件界面 33 定時(shí)器控件 定時(shí)器控件如圖6所示,該控件的最大作用在固定的時(shí)間內(nèi)可執(zhí)行所設(shè)置的程序代碼一次。 圖6 定時(shí)器控件界面 VB提供了大量的控件,在此不再多述。4 基于MScomm控件的串行通信 要完成VB與PLC等設(shè)備的串行通信要用到MScomm控件, 在此有必要對該控件作較詳細(xì)的說明。Mscomm是一個非標(biāo)準(zhǔn)控件,需要要手動添加許多項(xiàng)目,其步驟如下。 1) 選擇菜單的【工程】 2) 選擇【部件】 3) 在彈出的對話框中做如圖7的選擇。 圖7 對話框界面 4)如圖8所示,在部件選項(xiàng)卡就會出現(xiàn)MScomm控件。 圖8 MScomm控件 5)基本屬性 如圖9所示。 計(jì)算機(jī)通信口選擇 通信參數(shù)設(shè)置 PortOpen 通信口是否打開 Input 收到的字符 Output 發(fā)送的字符 圖9 基本屬性設(shè)置4.1 MODBUS ASCII Modbus 分為ASCII和RTU兩種,ASCII采用的格式和校驗(yàn)相對簡單,本文采用ASCII格式,并僅對使用的功能碼進(jìn)行說明,更多的信息,請參看協(xié)議的詳細(xì)說明。 1)通信格式STX起始字符 “:”(3AH)ADR 1通信地址(站號)采用2個字符ADR 0CMD 1功能碼。采用2個字符CMD 0DATA(0)數(shù)據(jù)項(xiàng)DATA(1)DATA(n-1)LRC CHK 1LRC 校驗(yàn)碼。采用2個字符LRC CHK 0END 1結(jié)束字符。采用2個字符。END 1 = CR(0DH),END 0 = LF(0AH)END 0 LRC算法:ADR H+CMD H+DATA H,然后取2的補(bǔ)碼。 2)功能碼格式例子 (十六進(jìn)制)字頭3A站號01功能碼01起始地址0614讀取數(shù)目0025LRC 碼BF 05,寫入線圈 01,讀線圈狀態(tài)格式例子(十六進(jìn)制)字頭3A站號01功能碼05地址0500寫入狀態(tài)FF00LRC 碼F6 06,寫入單個字寄存器 格 式 例子(十六進(jìn)制) 字 頭 3A 站 號 01 功能碼 06 寄存器地址 06 00 寫入的資料 12 34 LRC 校驗(yàn)碼 AD4.2 VB與PLC通信的實(shí)現(xiàn) 以下舉例說明現(xiàn)場設(shè)備與PLC通信的實(shí)現(xiàn)。 1)控制要求:控制PLC的起動、停止,并顯示運(yùn)行狀態(tài)(綠色為運(yùn)行,紅色為停止);能夠用交替型按鈕控制Y0,Y1,并用指示燈顯示Y0,Y1狀態(tài)(綠色為運(yùn)行,紅色為停止);能夠?qū)256,D512兩個寄存器進(jìn)行數(shù)值寫入的操作。 2)實(shí)現(xiàn)思路:PLC起動停止的標(biāo)志位為M1072,查DVP協(xié)議,知道地址為H0C30,按功能碼01操作; 同樣Y0,Y1的地址分別為H0500,H0501。寫入FF00為ON,0000為OFF,按功能碼05操作;D256,D512地址分別為H1100,H1200,按功能碼06操作即可。 3)VB接口的設(shè)計(jì)如圖10所示。 圖10 監(jiān)控程序界面 用按鈕控制PLC的起動停止,Y0、Y1的ON/OFF及D256、D512寫完數(shù)據(jù)的發(fā)送;用Shape組件做指示燈,表示PLC的運(yùn)行狀態(tài)和Y的狀態(tài);用timer組件不停的讀取M1072的狀態(tài),以判斷PLC的運(yùn)行情況;用MScomm控件實(shí)現(xiàn)PC與PLC的通信。 4)編程實(shí)現(xiàn)的代碼構(gòu)成 (1) LRC算法校驗(yàn)的實(shí)現(xiàn) Public Function LRC(str As String) As String c = 0 l = Len(str) For c = c + 1 To l c_data = Mid$(str, c, 2) d_lrc = d_lrc + Val(&H + c_data) c = c + 1 Next c If d_lrc &HFF Then d_lrc = d_lrc Mod &H100 End If h_lrc = Hex(&HFF - d_lrc + 1) If Len(h_lrc) 2 Then h_lrc = Mid(h_lrc, Len(h_lrc) - 1, 2) End If LRC = h_lrc End Function (2) 運(yùn)行的開始就判斷PLC的狀態(tài)并設(shè)置標(biāo)志位 初次運(yùn)行打開串口,并顯示PLC運(yùn)行狀態(tài) Private Sub Form_Load() Dim s1 As String Dim s2 As String Dim s22 As String Dim s3 As String Dim s4 As String MSComm1.PortOpen = True s2 = 01010C300001 s22 = LRC(s2) s1 = : + s2 + s22 + Chr$(13) + Chr$(10) MSComm1.Output = s1 s3 = MSComm1.Input s4 = Mid$(s, 6, 8) If s4 = 0C30FF00 Then plc = 1 PLC為運(yùn)行標(biāo)志 Else plc = 0 PLC為停止標(biāo)志 End If End Sub (3) 下面一段為用指示燈表示PLC的運(yùn)行狀態(tài) Private Sub Timer5_Timer() Dim s1 As String Dim s2 As String Dim s22 Dim s3 As String Dim s4 As String s2 = 01010C300001 s22 = LRC(s2) s1 = : + s2 + s22 + Chr$(13) + Chr$(10) MSComm1.Output = s1 s3 = MSComm1.Input s4 = Mid$(s3, 8, 2) If s4 = 31 Then plc = 1 PLC為運(yùn)行標(biāo)志 Else: If s4 = 30 Then plc = 0 PLC為停止標(biāo)志 End If If plc = 1 Then Label2.Caption = PLC正在運(yùn)行. Shape1.FillColor = RGB(0, 255, 0) green Else Label2.Caption = PLC已經(jīng)停止 Shape1.FillColor = RGB(255, 0, 0) red End If End Sub (4) PLC的起動與停止 起動PLC Private Sub start_Click() Dim strout As String Timer5.Enabled = False str = 00050C30FF00 M1072 為PLC起動停止標(biāo)志位。查地址表,M1072為OC30.FF00為置 ON,0000為置OFF。 以上都是固定格式,要牢記。 LRCC = LRC(str) 計(jì)算 str的lrc校驗(yàn)碼。 strout = : + str + LRCC + Chr$(13) + Chr$(10) 欲傳送之?dāng)?shù)據(jù)。13為D,10為A MSComm1.Output = strout Timer5.Enabled = True End Sub 停止PLC Private Sub stop_Click() Dim strout As String Timer5.Enabled = False str = 00050C300000 LRCC = LRC(str) strout = : + str + LRCC + Chr$(13) + Chr$(10) MSComm1.Output = strout Timer5.Enabled = True End Sub Y0、Y1的ON/OFF與PLC起動/停止的控制方式相同,指示燈的表示方式也相同。D256,D512數(shù)據(jù)寫入的操作類似,限于篇幅其它代碼就不再列出了。5 結(jié)束語VB語
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銷售保護(hù)類管理制度
- 2025至2030年中國客戶管理系統(tǒng)(CRM)行業(yè)投資前景及策略咨詢報(bào)告
- 2025至2030年中國十全養(yǎng)參酒行業(yè)投資前景及策略咨詢報(bào)告
- 2025至2030年中國分布式供水監(jiān)控與調(diào)度系統(tǒng)行業(yè)投資前景及策略咨詢報(bào)告
- 門診總值班管理制度
- 餐廳保潔柜管理制度
- 餐廳環(huán)保油管理制度
- 餐飲業(yè)庫存管理制度
- 黃金店店鋪管理制度
- 工程進(jìn)度與控制課件
- 抗震支架設(shè)計(jì)流程
- 中國絲綢簡述ppt課件
- 蘇軾《浣溪沙》優(yōu)秀課件
- 塑料包裝袋購銷合同
- 年產(chǎn)40萬噸甲醇合成工藝設(shè)計(jì)
- DDS307電導(dǎo)率以說明書
- S7、S9、S11系列變壓器損耗表
- 滿語語法入門拉丁版
- 鋼琴鍵盤大譜表對照表-直接打印版(共6頁)
- 化工企業(yè)安全生產(chǎn)診斷檢查表
- 舞臺搭建范例合同
評論
0/150
提交評論