熟女人妻水多爽中文字幕,国产精品鲁鲁鲁,隔壁的少妇2做爰韩国电影,亚洲最大中文字幕无码网站

技術頻道

娓娓工業
您現在的位置: 中國傳動網 > 技術頻道 > 技術百科 > 用VB6.0實現PC對多個PLC的監控

用VB6.0實現PC對多個PLC的監控

時間:2008-09-24 14:33:00來源:dujing

導語:?本文給出了利用VB中的MSCOMM控件實現上位機與多個PLC之間的通信方法,實現了上位機對多個PLC的實時監控。對于分布是控制系統大幅度地減小了通訊成本,具有一定的推廣價值
1 引言 隨著計算機通訊技術的日益成熟及企業對工業自動化程度要求的提高,自動控制系統從傳統的集中式控制向多級分布式控制方向發展,構成控制系統的PLC也就必須具備通信聯網功能。在具體應用過程中,若要監視PLC內部的數據與運行狀況,選用市場上的人機界面或組態軟件,雖然功能豐富,但大都價格昂貴,尤其在一些中小規模的生產場合。所以許多企業希望能自己用高級語言開發一個簡易實用的通信程序,通過面向對象的可視化編程語言VB6.0很容易地實現分布式監控。PLC等下位機控制生產過程,本地計算機進行實時監測或參與控制生產現場的參數。本文通過對OMRON的CPM1A小型機與上位計算機通信原理和通信方法的研究,介紹了如何用VB6.0實現上位計算機對PLC的實時監控,并取得了良好的效果。 2 監控原理 2.1 通信方法 上位機作為主站要能夠通過PLC監控下層設備的狀態,首先要實現上位機與PLC間的通信。由于串行通信具有線路簡單、應用靈活、可靠性高等優點,并且普通計算機均帶有串行口,所以PC與PLC間通常采用串行通信方式。串行通信可以通過Windows的API函數實現,也可以串行通信控件實現,但后者較容易,本文采用VB的通信控件。如果只實現對一臺CPM1APLC的監控,需要CPM1-CIFO1(OMRON提供的專用的RS232適配器)形成RS232C口與上位機通信;如果是實現對多臺PLC的監控,則需用RS232—RS422/RS485轉換器ADAM-4520和CPM1-CIF11(OMRON提供的專用RS422適配器)與上位機通信,最多可連接32臺PLC,連接方式如圖1所示。 [align=center] 圖1 系統通信原理[/align] 在通信過程中上位機始終處于主動方,PLC則處于從動方,所有的數據交換只能在主站和從站之間進行,從站之間不能直接交換數據,如果從站之間需要交換數據,必須通過主站中轉1。首先上位機向PLC發送指令幀,PLC接收了上位機的指令后,先進行FCS校驗,看其是否正確,如果正確,則接收并向上位機傳送響應幀(包含首尾校驗字節),否則,PLC拒絕向上位機傳送數據。需要說明的是,整個通信過程中因PLC中配有通信機制,一般不需要對PLC進行編程。上位機接收到PLC傳送的數據,也要判斷正確與否,如果正確,則接收,完成一次正常通信,否則,通信需重新開始。 2.2 通訊協議 (1)通訊條件設計。要使上位機與下位機正確地交換數據,必須確保以下幾點: ● 雙方在初始化時要使波特率、數據位數、停止位數、奇偶校驗均保持一致; ● 要嚴格按照PLC的通信協議的規定及幀格式編寫PC的通信程序。 (2)通訊的命令幀設計。OMRON公司的CPMIA小型PLC的傳輸協議的一般格式為:
(3)通訊的響應幀設計
其中,@為前導字符,表示開始;設備號為00-31(本例限設到10),共可設置32個站號,用來識別所連接的PLC,可通過PLC的DM6653的低8位來設定,默認站號為00;命令碼為CPMIA小型PLC規定的對其操作的命令代碼;正文為需要讀或寫的數據地址以及數據;FCS為幀校驗代碼,用于及時發現通信過程中的錯誤,以備處理;*和CR表示命令結束[2]。 命令幀為PC機傳向PLC的幀格式,響應幀為PLC傳向PC機的幀格式,其命令幀與響應幀中的各個部分除數據區不同外,其他部分的含義是相同的。 2.3 MSComm控件介紹 VB中的MSComm控件具有功能完善的串口數據發送和接收功能。 MSComm控件具有兩種通信方式:事件驅動方式和查詢方式[3]。因為查詢方式占用CPU時間太多,我們采用事件驅動方式。要完成通信,必需正確設置MSComm控件的相關屬性,本設計在窗體中對其進行初始化,主要包括端口設置,波特率設置,奇偶設置等。主要屬性如表1所示。 [align=center]表1 MSComm控件屬性 [/align] [b]2 通信程序設計 [/b] 本系統以PC對基于PLC的交通燈控制系統的監控為例,在上位機與PLC正常通信的前提下,設計如下界面。窗體的內容主要包括,四大區:端口、站號選擇區,設定時間輸入區,監控顯示區,控制按紐區。從站號選擇區選擇不同站號即不同PLC,實現對多個PLC的實時監控。 3.1 串口初始化程序 If MSComm1.PortOpen <> True Then MSComm1.PortOpen=True End If MSComm1.Settings=“9600,E,7,2” MSComm1.InputLen=0 MSComm1.InBufferCount=0 MSComm1.InputMode=comInputModeText MSComm1.Handshaking=comNone 3.2 計算機與PLC通信的VB程序 Public Function ReadData(ByVal InputStr As String, ByVal Num1 As Integer, ByVal Num2 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 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)’取返回幀的響應碼 If EndString <> “00”Then ReadData=“Error” Exit Function End If 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 If Len(InString)>=Num2 Then ReturnStr=Mid$(InString, Len(InString)-Num1-3, Num1)’取返回幀的數據,其度為Num1 ReadData = ReturnStr End If End Function 4 結束語 本文給出了利用VB中的MSCOMM控件實現上位機與多個PLC之間的通信方法,實現了上位機對多個PLC的實時監控。對于分布是控制系統大幅度地減小了通訊成本,具有一定的推廣價值。

標簽:

點贊

分享到:

上一篇:一種新的無線傳感器網絡分簇...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.hysjfh.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業自動化與智能制造的全媒體“互聯網+”創新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業執照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號

主站蜘蛛池模板: 商南县| 株洲县| 云和县| 扎鲁特旗| 丰城市| 青海省| 高平市| 蕉岭县| 阿鲁科尔沁旗| 平山县| 得荣县| 乐昌市| 繁峙县| 巧家县| 光泽县| 子洲县| 平安县| 元朗区| 博客| 九江县| 岳阳市| 广宁县| 龙山县| 临沧市| 长海县| 曲靖市| 灌阳县| 乳源| 漳州市| 汶上县| 石渠县| 丹寨县| 海盐县| 治多县| 扶风县| 伊宁市| 那坡县| 交城县| 海丰县| 武强县| 栾城县|