1  引言
    在工業(yè)控制領(lǐng)域中,PLC作為一種穩(wěn)定可靠的控制器得到廣泛的應(yīng)用。但它也有自身的一些缺點(diǎn),即數(shù)據(jù)的計(jì)算處理和管理能力較弱,不能給用戶提供良好的界面等。而計(jì)算機(jī)恰好能彌補(bǔ)PLC的不足,它不但有很強(qiáng)的數(shù)據(jù)處理和管理能力,而且能給用戶提供非常美觀而又易于操作的界面。將PLC與計(jì)算機(jī)結(jié)合,可使系統(tǒng)達(dá)">

欧美成人aaaaa免费视频_亚洲欧美激情小说另类_欧美激情一区二区三区视频_一级在线|欧洲

技術(shù)頻道

用VB實(shí)現(xiàn)PLC與計(jì)算機(jī)間的串行通信

1 引言
在工業(yè)控制領(lǐng)域中,PLC作為一種穩(wěn)定可靠的控制器得到廣泛的應(yīng)用。但它也有自身的一些缺點(diǎn),即數(shù)據(jù)的計(jì)算處理和管理能力較弱,不能給用戶提供良好的界面等。而計(jì)算機(jī)恰好能彌補(bǔ)PLC的不足,它不但有很強(qiáng)的數(shù)據(jù)處理和管理能力,而且能給用戶提供非常美觀而又易于操作的界面。將PLC與計(jì)算機(jī)結(jié)合,可使系統(tǒng)達(dá)到既能及時(shí)地采集、存儲數(shù)據(jù),又可處理和使用好數(shù)據(jù),兩者結(jié)合的關(guān)鍵是PLC與計(jì)算機(jī)之間的通信。本文以O(shè)MRON公司的CPMIA小型PLC為例,詳細(xì)的討論了PLC與計(jì)算機(jī)通信的原理和用VB如何實(shí)現(xiàn)PLC與計(jì)算機(jī)的通信。
2 通行原理與方法
上位機(jī)要能夠通過PLC監(jiān)控下層設(shè)備的狀態(tài),就要實(shí)現(xiàn)上位機(jī)與PLC間的通信,一般工業(yè)控制中都是采用RS232C實(shí)現(xiàn)。上位機(jī)首先向PLC發(fā)送查詢數(shù)據(jù)的指令(實(shí)際上是查詢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沒有提供串行通信口,我們利用其提供的外設(shè)端口實(shí)現(xiàn)通信。PLC與計(jì)算機(jī)之間的
連接是通過OMRON提供的專用電纜CQM1-CIF01來實(shí)現(xiàn)的,其硬件連接圖如圖1所示。


3 PLC與計(jì)算機(jī)間的通信規(guī)約
計(jì)算機(jī)與PLC間的通信是以“幀”為單位進(jìn)行的,并且在通信的過程中,計(jì)算機(jī)具有更高的優(yōu)先級。首先,計(jì)算機(jī)向PLC發(fā)出命令幀,然后,PLC作出響應(yīng),向計(jì)算機(jī)發(fā)送回響應(yīng)幀。其中命令幀和響應(yīng)幀的格式如下:
(1) 命令幀格式。為了方便計(jì)算機(jī)和PLC的通訊,CPM1A對在計(jì)算機(jī)連接通信中交換的命令和響應(yīng)規(guī)定了相應(yīng)的格式。當(dāng)計(jì)算機(jī)發(fā)送一個(gè)命令時(shí),命令數(shù)據(jù)主準(zhǔn)備格式如圖2所示。


其中@放在首位,表示以@開始,設(shè)備號為上位機(jī)識別所連接的PLC的設(shè)備號。識別碼為命令代碼,用來設(shè)置用戶希望上位機(jī)完成的操作,F(xiàn)CS為幀檢驗(yàn)代碼,一旦通信出錯,通過計(jì)算FCS可以及時(shí)發(fā)現(xiàn)。結(jié)束符為“*”和CR回車符,表示命令結(jié)束。
(2) 響應(yīng)幀格式。由PLC發(fā)出的對應(yīng)于命令格式的響應(yīng)幀格式如圖3所示。

其中,異常碼可以確定計(jì)算機(jī)發(fā)送的命令是否正確執(zhí)行。其它的與正文中的含義相同。正文僅在有讀出數(shù)據(jù)時(shí)有返回。
4 通信程序的設(shè)計(jì)
為了充分利用計(jì)算機(jī)數(shù)據(jù)處理的強(qiáng)大功能,我們可以采用計(jì)算機(jī)有優(yōu)先權(quán)的方式,在計(jì)算機(jī)上編寫程序來實(shí)現(xiàn)計(jì)算機(jī)與PLC的通信, 計(jì)算機(jī)向PLC發(fā)出命令發(fā)起通信,PLC自動返回響應(yīng)。本文中采用VB來編寫計(jì)算機(jī)與PLC間的通訊程序。在VB中提供了通信控件—應(yīng)用通信控件(MSCOMM),實(shí)現(xiàn)通過串行端口傳送和接受的功能。
下面介紹MSCOMM控件的屬性:
*CommPort:設(shè)定通信連接端口代號,程序必須指定所要使用的串行端口號,Windows系統(tǒng)使用所設(shè)定的端口與外界通信。
*PortOpen:設(shè)定通信口狀態(tài),若為真,通信端口打開,否則關(guān)閉。
*Settings:設(shè)定通信口參數(shù),其格式是"bbbb,p
,d,s",其中bbbb為通信速率(波特率),p為通信檢查方式(奇偶校驗(yàn)), d 為數(shù)據(jù)位數(shù),s為停止位數(shù),其設(shè)定應(yīng)與PLC的設(shè)定一致。
*Input:將對方傳送至輸入緩沖區(qū)的字符讀入到程序。
*Output:將字符寫入輸出緩沖區(qū)。
*InBufferCount:傳回接收緩沖區(qū)中的字符數(shù)。
*OutBufferCount:傳回輸出緩沖區(qū)中的字符數(shù)。
*InputLen:設(shè)定串行端口讀入字符串的長度。
*InputMode:設(shè)定接收數(shù)據(jù)的方式。
*Rthreshold:設(shè)定引發(fā)接收事件的字符數(shù)。
*CommEvent:傳回OnComm事件發(fā)生時(shí)的數(shù)值碼
*OnComm事件:無論是錯誤或事件發(fā)生,都會觸發(fā)此事件。
(1) 控件參數(shù)的初始化。
初始化程序如下:
Mscomm.ComPort=2 '使用串口Com2
Mscomm.Settings="9600, E, 7, 2" '波特率9600,偶校驗(yàn),7位數(shù)據(jù)位,2位停止位
Mscomm.PortOpen=True '打開通信端口,準(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) '求輸入字符串長度
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
(3) 計(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
OutputStr=InputStr+FCS(InputStr)+“*” '給出命令幀
MSComm.Output=OutputStr+Chr$(13) '向PLC傳送命令幀
Do
DoEvents
Loop While MSComm.InBufferCount < 15
InString=MSComm.Input '獲取PLC的響應(yīng)幀
'結(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ī)對PLC返回的響應(yīng)幀要進(jìn)行FCS校驗(yàn),并利用異常碼排除返回的異常數(shù)據(jù),這樣不但可以提高計(jì)算機(jī)獲取信息的正確性,而且提高了計(jì)算機(jī)監(jiān)控的實(shí)時(shí)性。
5 結(jié)束語
本文介紹的通信方法在我校CIMS研究中心自行研制的一套機(jī)電一體化設(shè)備中得到實(shí)施運(yùn)用,經(jīng)試驗(yàn)運(yùn)行,證明這種通信方法穩(wěn)定、可靠,確實(shí)是一種非常有效的方法。將PLC與計(jì)算機(jī)通信網(wǎng)絡(luò)連接起來,PLC作為下位機(jī),計(jì)算機(jī)作為上位機(jī),形成一個(gè)優(yōu)勢互補(bǔ)的自動控制系統(tǒng),實(shí)現(xiàn)了“集中管理,分散控制”。其中各個(gè)PLC子系統(tǒng)或遠(yuǎn)程工作站在生產(chǎn)現(xiàn)場對各個(gè)被控對象進(jìn)行控制,利用網(wǎng)絡(luò)連接構(gòu)成一個(gè)PLC綜合控制,滿足了現(xiàn)代自動化系統(tǒng)向信息化、網(wǎng)絡(luò)化、智能化的過渡。

文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。

欧美成人aaaaa免费视频_亚洲欧美激情小说另类_欧美激情一区二区三区视频_一级在线|欧洲

      9000px;">

          中文字幕免费观看一区| 亚洲电影一区二区| www.性欧美| 国产凹凸在线观看一区二区| 麻豆91精品视频| 午夜久久久久久久久久一区二区| 伊人开心综合网| 一区二区三区久久| 黑人巨大精品欧美一区| 国模大尺度一区二区三区| 日韩欧美色综合| 亚洲欧美区自拍先锋| 秋霞午夜鲁丝一区二区老狼| 亚洲日本电影在线| 中文字幕精品在线不卡| 久久日韩粉嫩一区二区三区| 欧美xxxxxxxx| 久久久久久99精品| 欧美v国产在线一区二区三区| 无码av中文一区二区三区桃花岛| 国产精品午夜春色av| 久久精品在这里| 欧美精品一区二区三区在线| 精品动漫一区二区三区在线观看| 欧美日韩精品三区| 日韩无一区二区| 日韩一区二区三区精品视频| 欧美精选午夜久久久乱码6080| 欧美综合视频在线观看| 欧美在线一二三四区| 欧美日本在线一区| 欧美日韩免费在线视频| 7777精品伊人久久久大香线蕉| 欧美视频你懂的| 欧美一级艳片视频免费观看| 欧美变态口味重另类| 国产精品视频一二三区| 亚洲男人的天堂一区二区| 一区二区成人在线视频| 亚洲国产精品久久不卡毛片| 亚洲日本va午夜在线影院| 欧美韩国日本一区| 亚洲手机成人高清视频| 亚洲成人免费看| 国产精品一区二区黑丝| 成人亚洲精品久久久久软件| 色噜噜狠狠成人中文综合| 欧美视频中文字幕| 国产欧美日韩亚州综合| 日韩电影在线一区二区| 99久久综合精品| 久久综合av免费| 同产精品九九九| 91免费看片在线观看| 亚洲精品一区二区三区香蕉| 亚洲国产中文字幕| 成人的网站免费观看| 6080日韩午夜伦伦午夜伦| 日韩一区在线免费观看| 精品一区二区免费| 欧美日韩午夜在线视频| 欧美精品一区二区精品网| 中文字幕第一区第二区| 日韩精品免费专区| 欧洲一区在线观看| 91精品在线一区二区| 中文字幕在线不卡一区二区三区 | 精品精品欲导航| 亚洲人快播电影网| 国产精品一区二区在线播放| 91久久香蕉国产日韩欧美9色| 国产欧美日韩综合| 精品一区二区久久久| 日韩国产精品久久久久久亚洲| 不卡一区二区中文字幕| 精品国产免费久久| 久久精品二区亚洲w码| 色婷婷精品久久二区二区蜜臀av | 亚洲v中文字幕| 色综合 综合色| 中文字幕中文字幕在线一区 | 国模大尺度一区二区三区| 在线电影国产精品| 日本欧美一区二区三区乱码| 欧美写真视频网站| 亚洲成人黄色影院| 欧美色老头old∨ideo| 日韩美女视频一区二区| 国产伦精品一区二区三区免费| 欧美一级欧美三级在线观看 | 日本欧美在线观看| 欧美日韩成人高清| 香蕉乱码成人久久天堂爱免费| 一本到一区二区三区| 亚洲色图一区二区| www.一区二区| 亚洲免费观看高清完整版在线观看 | 国产精品久久久一区麻豆最新章节| 老司机一区二区| 日韩一区二区影院| 国产麻豆成人传媒免费观看| 成人sese在线| 国产精品青草久久| 91在线云播放| 一区二区三区**美女毛片| 日本精品视频一区二区| 日韩成人一区二区三区在线观看| 制服丝袜亚洲色图| 美女视频黄久久| 久久久久久久国产精品影院| 国产综合色视频| 国产精品乱码一区二三区小蝌蚪| 99精品国产99久久久久久白柏| 亚洲欧美另类在线| 欧美aaaaaa午夜精品| 日韩一区二区三区在线观看| 国产一区二区0| 亚洲精品亚洲人成人网 | 韩国视频一区二区| 国产女人aaa级久久久级| 在线观看91精品国产入口| 日本成人中文字幕在线视频| 久久综合丝袜日本网| 91一区一区三区| 久久久电影一区二区三区| 99精品一区二区三区| 亚洲成a人片在线不卡一二三区| 欧美精品一区二区三区蜜桃| 91免费版在线看| 精品一区二区三区免费毛片爱| 国产精品嫩草99a| 欧美日韩你懂得| 福利视频网站一区二区三区| 青草av.久久免费一区| 国产精品少妇自拍| 88在线观看91蜜桃国自产| 国产成人在线网站| 毛片av中文字幕一区二区| 自拍av一区二区三区| 精品国精品国产| 日本精品视频一区二区三区| 成人激情开心网| 久久成人精品无人区| 亚洲综合免费观看高清完整版| 26uuu欧美| 欧美精品成人一区二区三区四区| 成人v精品蜜桃久久一区| 久久精品av麻豆的观看方式| 亚洲va在线va天堂| 中文字幕亚洲精品在线观看| 欧美不卡一区二区三区四区| 91精品1区2区| 成人av网址在线观看| 蜜桃视频第一区免费观看| 亚洲第一狼人社区| 亚洲欧美精品午睡沙发| 国产精品网站导航| 91色porny蝌蚪| 欧美四级电影网| 欧洲视频一区二区| 99久久精品久久久久久清纯| 国产精品一区二区久激情瑜伽| 日韩**一区毛片| 亚洲国产你懂的| 亚洲欧美日韩国产手机在线| 亚洲欧美另类久久久精品2019| 国产精品剧情在线亚洲| 国产亚洲精品中文字幕| 3d成人动漫网站| 日韩一区二区视频| 精品伦理精品一区| 国产成人在线电影| av一二三不卡影片| 99国内精品久久| 91视频国产观看| 97se亚洲国产综合自在线不卡| 国产成人精品免费一区二区| 国产高清亚洲一区| www.亚洲在线| 欧美精品1区2区3区| 欧美一个色资源| 精品国产伦理网| 欧美精品一区二区三区视频| 国产日产欧美一区| 欧美日韩一区久久| 欧美精品粉嫩高潮一区二区| 日韩欧美中文字幕公布| 欧美tickling挠脚心丨vk| 久久久精品黄色| 亚洲欧洲日产国码二区| 亚洲综合一区二区三区| 麻豆国产欧美日韩综合精品二区| 激情综合色丁香一区二区| 国产精品羞羞答答xxdd| 99久免费精品视频在线观看| 在线观看av一区| 久久奇米777| 一区二区三区在线观看动漫| 亚洲一二三区在线观看| 日本不卡在线视频|