男女午夜激情_www.天堂av.com_亚洲综合小说区_亚洲欧美自拍视频_成年精品_久久www免费人成—看片_激情综合五月天_久久高潮视频_最新国产成人ab网站_国产精品卡一

當前位置:機電之家首頁 >> PLC技術>> plc應用 >> 歐姆龍plc應用 >> MSComm實現計算機與歐姆龍PLC串行通信編程的研究與應用
MSComm實現計算機與歐姆龍PLC串行通信編程的研究與應用

計算機通信論文計算機算法論文:
基于VB通信控件MSComm實現計算機與歐姆龍PLC串行通信編程的研究與應用
摘要:主要闡述了如何在VB(Visual Basic)編程環境下利用MSComm通信控件實現計算機與歐姆龍PLC進行串行通信的編程技術。
關鍵詞:MSComm控件;串行通信
0引言
計算機串行通信是計算機與控制設備(PLC)進行數據傳送的一種通信方式,也是實現工業自動控制經常用到的通信模式。每一種通信方式都嚴格約定了與其對應的通信協議。要確保計算機與P L C之間能正常通信,就必須遵照PLC通信協議編寫通信程序。本文將圍繞如何使用VisualBasic(簡稱VB)的MSComm通信控件編寫計算機與歐姆龍PLC串行通信程序進行闡述。
1串行通信
串行通信在工業系統控制的范疇中一直占據著極其重要的地位,串行端口(RS-232)是計算機上的標準配置,常用于連接調制解調器來傳輸數據,在計算機的硬件設備管理器中可以看到,定義為COM1、COM2等。常用的串行通信方式有兩種,分別是RS-232和RS-485,本文以RS-232方式為例進行介紹。
2 VB集成開發環境中MSComm通信控件的使用與設置
2.1 Visual Basic集成開發環境
V B采用了面向對象的程序設計思想。它的基本思路是把復雜的程序設計問題分解為一個個能夠完成獨立功能的相對簡單的對象集合,所謂“對象”就是一個可操作的實體,如窗體、窗體中的命令按鈕、標簽、文本框等。面向對象的編程就好像搭積木一樣,程序員可根據程序和界面設計要求,直接在屏幕上“畫\"出窗口、菜單、按鈕等不同類型的對象,并為每個對象設置屬性。
2.2串行通信控件MSComm的使用和設置
VB提供了支持串行通信的可編程組件MSComm,用戶只需要將其加載到應用程序中,對其進行簡單的屬性設置即“可使用。現將控件的加載及屬性設置方法進行介紹。
2.2.1將MSComm控件加載到應用程序中
在VB集成開發環境(IDE)中選擇“工程”選項卡中的“部件”子菜單進入控件選擇頁面。
在控件選擇頁面中選上Microsoft Comm Cotrol 6.0控件加載項,單擊“確定”按鈕完成MSComm控件的加載。
當完成MSComm控件的加載后,在IDE中的常規控件欄即可看到MSComm控件,此時就可使用此控件了。
2.2.2 MSComm控件屬性設置
當應用程序成功添加MSComm控件后,就可在其屬性設置頁面完成其屬性的設置,如圖4所示。在一般的串行通信應用程序中只需要對MSComm控件的如下幾個屬性進行設置。
CommPort:通信程序使用的串口序號,根據計算機的串口硬件配置進行選擇,可以為1、2等。
Settings:屬性設置字符串,屬性有:波特率、奇偶校驗、字節數據位數、字節停止位數。可以為9600、e、7、2。也可在程序中動態設置,屬性設置程序代碼如下:
frmMain.MSComm1.CommPort=1
frmMain.MSComm1.Settings=“9600,e,7,2”
3 PLC通信數據幀介紹
計算機與P L C通信時,按應答方式進行。由計算機發給PLC一組ASCII碼字符數據,這一組數據成為命令幀。P L C對收到的命令幀進行校驗,并將校驗結果返回給計算機,P L C返回給計算機的這一組數據稱為響應幀,只有當校驗正確時P L C才按照命令執行。計算機和P L C通信時,PLC是被動的,必須先由計算機給PLC發出命令幀,PLC再給計算機發出響應幀,每幀最多由1 3 1個字符組成。下面將命令幀與響應幀的組成結構介紹如下: 
3.1命令幀
幀結構解析:
@:在起始處必須放置;
節點號:有效值為00~31,表示PC機最多可同32臺PLC通信;
頭代碼:PLC的命令代碼;
發送文本:P C機發送的命令參數;
FCS(Frame Check Sequence):
幀檢查順序代碼(幀校驗碼);幀校驗碼是2位(Bit)十六進制數。它是由幀數據包含的所有字符的ASCII碼進行位異或運算的結果。
終止符:“*”號和回車符“CR”。
 3.2響應幀 
幀結構解析:
@:返回命令頭;
節點號:有效值為00—31,返回數據的PLC節點號
頭代碼:PLC的命令代碼;
尾代碼:返回命令完成狀態碼;
接收文本:在有數據時返回的數據;
FCS:幀檢查順序代碼;
終止符:“*”號和回車符“CR”。
 3.3 FCS(幀數據冗余校驗碼)的計算
為了降低串行通信的誤碼率,在接收和發送端都必須對數據進行校驗,常用的方法是進行F C S校驗。對幀數據進行冗余校驗計算時,應對幀數據中各個字符的ASCII碼進行位異或運算,然后將結果轉為2位十六進制字符。
4計算機與PLC串行通信程序實例
4.1通信主程序的設計架構
設計通信主程序的主要功能是:實現計算機對PLC的運行控制和狀態監視,即構成一個閉環監控系統。
4.2打開串行通信端口
打開通信端口,對端口進行初始化設置,程序設計流程。
4.3寫PLC數據
將計算機發出的命令寫入PLC,實現計算機對PLC的控制功能。程序設計流程
4.4讀PLC數據。
從PLC中讀取數據,監視PLC的運行狀態,程序設計流程。
例1打開通信端口程序源代碼
If frmMain.MSComm1.PortOpen=False Then
frmMain.MSComm1.CommPort=1
frmMain.MSComm1.Settings=“9600,E,7,2”
frmMain.MSComm1.PortOpen=True
End If
例2寫PLC函數程序源代碼
Public Sub MyWrite(MyAddress As bbbbbb,MyValueAs bbbbbb)
Dim a,tmpstr As bbbbbb
Dim i2 As Integer
CRLF="*"+Chr(13)
Dim word As bbbbbb
word="@00WD"
a=word&MyAddress&MyValue
a=a&fcs(a)&CRLF
If frmMain.MSComm1.PortOpen=True Then
frmMain.MSComm1.InBufferCount=0
frmMain.MSComm1.Output=a
i2=0
Do
DoEvents
i2=i2+1
Loop Until frmMain.MSComm1.InBufferCount>=11 Or i2>10000
If i2<10000 Then
tmpstr=frmMain.MSComm1.bbbbb
Else
MsgBox"傳輸錯誤!"
End If
End If
End Sub
附錄C讀PLC內存函數程序源代碼
Public Sub MyRead(MyAddress As bbbbbb,MyBiteAs bbbbbb,MyBit As Integer,MyFunction As bbbbbb)
Dim a,tmpstr As bbbbbb
Dim i2 As Integer
Dim word As bbbbbb
CRLF="*"+Chr(13)
word="@00RD"
a=word&MyAddress&MyBite
a=a&fcs(a)&CRLF
If frmMain.MSComm1.PortOpen=True Then
frmMain.MSComm1.InBufferCount=0
frmMain.MSComm1.Output=a
i2=0
Do
DoEvents
i2=i2+1
Loop Until frmMain.MSComm1.InBufferCount>=MyBit Or i2>10000
If i2<10000 Then
tim=0tmpstr=frmMain.MSComm1.bbbbb
tmpstr=tmpstr+frmMain.MSComm1.bbbbb
If MyFunction="zt1"Then
bbbbbb_SYSTEMSTATE1=tmpstr
End If
If MyFunction="zt2"Then
bbbbbb_SYSTEMSTATE2=tmpstr
End If
frmMain.Text3="PLC通訊正常"
frmMain.Timer1.Interval=500
Else
tim=tim+1
If Mid(tmpstr,8,4)<>"8888"Then
frmMain.Text3="PLC通訊失敗"
End If
End If
End If
End Sub
附錄D FCS函數程序源代碼
Function fcs(ByVal bbbbbstr As bbbbbb)As bbbbbb
Dim slen,i,xorresult As Integer
Dim tempfes As bbbbbb
slen=Len(bbbbbstr)
xorresult=0
For i=1 To slen
xorresult=xorresult Xor Asc(Mid$(bbbbbstr,i,1))
Next i
tempfes=Hex$(xorresult)
If Len(tempfes)=1 Then tempfes="0"+tempfes
fcs=tempfes
End Function
參考文獻
1徐德,孫同景,陳桂友.可編程序控制器(PLC)應用技術[M].山東:山東科學技術出版社,2005,3
2皮壯行等編著.可編程序控制器的系統設計與應用實例[M].北京:機械工業出版社,2000,11
3Microsoft Corporation著.Visual Basic6.0中文版語言參考手冊(希望圖書創作室譯)[M].北京:北京希望電子出版社,1998,9Michael Halvorson著.
4Microsoft Visual Basic 6.0 Profes-sional Step By Step.專業版循序漸進教程(希望圖書創作室譯)[M].北京:北京希望電子出版社,1999
5Microsoft Corporation著.Visual Basic 6.0.中文版程序員指南(希望圖書創作室譯)[M].北京:北京希望電子出版社,19982345
作者:未知 點擊:1418次 [打印] [關閉] [返回頂部]
本文標簽:MSComm實現計算機與歐姆龍PLC串行通信編程的研究與應用
* 由于無法獲得聯系方式等原因,本網使用的文字及圖片的作品報酬未能及時支付,在此深表歉意,請《MSComm實現計算機與歐姆龍PLC串行通信編程的研究與應用》相關權利人與機電之家網取得聯系。
電子樣本

SN系列樣冊
:鞏經理
:13915946763
:南京塞姆泵業有限公司
個人求購

王經理 【求購】  西湖輪胎  2026-3-20
蘇紅慶 【求購】  工業除濕機  2026-3-20
金喜 【求購】  線纜  2026-3-20
林杰 【求購】  自粘結鐵芯  2026-3-20
任建波 【求購】  鋰電鉆  2026-3-20
劉經理 【求購】  吊具電纜總...  2026-3-20
潘梟 【求購】  高強鋼焊絲  2026-3-19
李經理 【求購】  丹弗斯液壓...  2026-3-18
VIP公司推薦

主站蜘蛛池模板: 长沙县| 饶平县| 宜良县| 林口县| 绥宁县| 陈巴尔虎旗| 城固县| 池州市| 天等县| 左权县| 永春县| 厦门市| 三明市| 六枝特区| 衡水市| 咸阳市| 洛扎县| 永修县| 灯塔市| 廉江市| 兴国县| 宝应县| 新宁县| 东兴市| 西乡县| 临泽县| 乌拉特中旗| 神木县| 达孜县| 武川县| 荥经县| 临夏县| 新乐市| 东台市| 磐安县| 中宁县| 定州市| 宁德市| 肇东市| 土默特左旗| 九江市|