摘要:本文通過分析啤酒稀釋自控系統這一實例,介紹了利用微軟Visual Basic的串口通信控件MSComm和小型PLC開發小型自控系統的方法。
關鍵詞:串行通信、三菱FX、Visual Basic、自控系統
一. 前言
隨著生產自動化程度的不斷提高,可編程序控制器PLC得到了廣泛的應用,特別是小型PLC具有編程簡單、性能可靠和價格低">

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

技術頻道

利用Visual Basic和PLC開發小型自控系統

 摘要:本文通過分析啤酒稀釋自控系統這一實例,介紹了利用微軟Visual Basic的串口通信控件MSComm和小型PLC開發小型自控系統的方法。
關鍵詞:串行通信、三菱FX、Visual Basic、自控系統
一. 前言
隨著生產自動化程度的不斷提高,可編程序控制器PLC得到了廣泛的應用,特別是小型PLC具有編程簡單、性能可靠和價格低的特點,被大量應用于單機控制系統中,如啤酒的稀釋控制、離心機控制等。作為設備維修技術人員,一般都能掌握PLC和計算機PC的應用知識,但如何利用PLC和PC來設計小型自控系統,實現簡單的數據采集和監控操作,從而滿足生產需要,卻是一個要深入學習研究的問題。
面向生產操作,設計簡單有效的控制系統,涉及到三部分的軟件編程:
第一:PC上人機操作界面的設計。PC作為上位機,一般都是運行在Windows 98/2000操作系統下,利用微軟提供的可視化編程軟件Visual Basic 6.0,設備維修技術人員就可設計出優美的人機操作界面,只需進行主要操作功能編程和少量界面控制編程。
第二:實現生產工藝要求的PLC控制程序設計。因為是小型控制系統,其生產控制過程并不復雜,技術人員只要充分了解了生產工藝和控制要求,運用PLC編程工具,此部分設計編程并不難。
第三:PC與PLC通訊程序的設計。此部分的開發設計較難,需要掌握PC和PLC的有關通訊硬件驅動和通訊協議的知識。但對于小型控制系統來說,主要通過PC串口來通訊,所以通訊程序設計的關鍵是如何利用Visual Basic 6.0中的串口通信控件——MSComm控件,并根據PLC的串口通信協議設計出上下位機的數據交換程序。
下面以啤酒稀釋自控系統設計為例,主要講解PC和PLC通訊程序的設計要點。
二. 啤酒稀釋自控系統設計分析
1. 啤酒稀釋控制要求
啤酒稀釋是啤酒生產中一個重要環節,通過把高濃度的酒液與脫氧水按比例混合成稀釋酒,從而提高啤酒產量和增加啤酒品種,稀釋的控制過程很簡單,主要步驟有:
1) 輸入高濃度的濃度A和稀釋后要達到的濃度B ;
2) 計算出加水量的百分比 [(B-A) / A]*100% ;
3) 根據此百分比和高濃酒的瞬時流量,計算出脫氧水要達到的流量;
4) 比較水的瞬時流量和計算出的流量,來控制水調節閥的開度,使水瞬時流量等于計算流量。
由于酒和水的瞬時流量是變化的,所以3)、4)步要反復進行。以上所有的計算功能和PID調節功能都由PLC完成。
2. 啤酒稀釋的人機操作界面:
人機操作主要用來輸入啤酒濃度數據、操作命令,直觀顯示各種流量數據并記錄偏差曲線,界面圖如下:
3. 硬件配置
本例子中上位機PC選用聯想奔騰Ⅱ品牌機,外加RS232轉RS485通訊轉換卡。下位機PLC選用三菱FX2N-16MR,另加模擬輸入模塊FX2N-2AD 和模擬輸出模塊FX2N-2DA各一塊,外加一個485串口通訊模塊PC-485BD。
三. PC與PLC通訊程序設計分析
在分析具體的VB通訊程序之前,先要介紹有關VB串口通信控件MSComm的應用知識和三菱PLC 通訊協議。
1. MSComm控件簡介
如圖所示是Mscomm控件的圖標。
它可以用來提供簡單的串行端口通信功能,也可以用來創建功能完備、事件驅動的高級通信工具。Mscomm控件提供了一系列標準通信命令的使用界面。使用它可以建立與串行端口的連接,通過串行端口再連接到其它設備(如調制解調器、PLC),發出命令,交換數據,以及監視和響應串行連接中發生的事件和錯誤。
2. MSComm控件的基本屬性
MSComm 控件有很多重要的屬性,基本屬性如下:
屬性 描述
CommPort 設置并返回通訊端口號。
Settings 以字符串的形式設置并返回波特率、奇偶校驗、數據位、停止位。
PortOpen 設置并返回通訊端口的狀態。也可以打開和關閉端口。
Input 從接收緩沖區返回和刪除字符。
Output 向傳輸緩沖區寫一個字符串。
如下程序打開串行端口COM1
MSComm1.CommPort = 1 使用 COM1
MSComm1.Settings = "9600,N,7,1" 9600波特率,無奇偶校驗,7位數據,一個停止位。
MSComm1.PortOpen = True ''打開端口,開始通信。
3. MSComm控件的通信方式
通信控件有2種不同的方式來處理和解決各類通信軟件的開發和設計問題。
(1) 事件驅動
事件驅動通訊是處理串行端口交互作用的一種非常有效的方法。在許多情況下,在事件發生時需要得到通知,例如:當線路數據到達本端或CD線和RTS信號線狀態發生變化時,要求我們使用相應的事件來跟蹤和出理。在這些情況下, Mscomm控件將觸發OnComm事件,CommEvent屬性值也將被改變。所以在OnComm事件中讀取CommEvent屬性值就可以檢測和處理通信錯誤等方面的問題。
(2)查詢方式
利用定時器控件Timer,我們可以設計程序每隔一段時間去讀取CommEvent的值并處理所發生錯誤和事件。
4. 本實例中采用的通訊方式
在本例子中,PC與PLC 采用無握手協議的串行通信,它們只用兩根數據線 TD和RD、一根信號地線連接,數據通信采用查詢方式。根據系統功能要求,PC需發送兩種類型的命令:
(1) 周期性命令,它由定時器觸發引起,每隔0.5秒發送一次。用它來向PLC查詢實時顯示的數據。如酒、水的瞬時流量,調節閥開度等。
(2) 非周期性命令,它由操作者按動命令按鈕引起,非周期性發送。用它來傳送輸入參數、操作命令給PLC 。
在啤酒稀釋的人機操作界面中,有運行時不可見的通信控件(MSComm1)一個、定時器控件一個Timer1。通信控件(MSComm1)用于初始化串口數據并打開串口;定時器控件(Timer1)用于每隔0.5秒執行通訊命令,把查詢命令從PC發送到PLC,同時接收PLC返回的應答數據。設計通訊數據的發送和查詢功能,必須掌握PLC所遵循的通訊協議。
5. 三菱FX系列PLC通訊協議
三菱FX系列PLC共有四種通信模式,本實例采用的是PLC與計算機專用協議通信方式(無須PLC編程,電腦直接讀寫操縱PLC),其通訊命令字和通訊格式介紹如下:
PC發送給PLC的通信命令字
命令字 注釋
BR 以1點為單位,讀出位元件的狀態
WR 以16點為單位,讀出位元件的狀態,或以1字為單位,讀出字元件的值
BW 以1點為單位,寫入位元件的狀態
WW 以16點為單位,寫入位元件的狀態,或以1字為單位,寫入值到字元件
BT 以1點為單位,設置/復位 位元件
WT 以16點為單位,設置/復位 位元件,或以1字為單位,寫入值到字元件
RR 控制PLC運行RUN
RS 控制PLC停止STOP
PC 讀出PLC設備類型
TT 連接測試
PC發送給PLC的通信命令格式
約定說明:ENQ為請求標志,ASCII值5,VB中以chr(5)表示;
     ACK為正確標志,ASCII值6,VB中以chr(6)表示;
     STX為請求標志,ASCII值2,VB中以chr(2)表示;
     EXT為請求標志,ASCII值3,VB中以chr(3)表示;
     表格中粗體字為需要求和效驗的部分;
     和效驗為每一項的ASCII值的總和轉換成十六進制后,取其低兩位;
     站號、PLC號、元件數量、和效驗都是以十六進制表示;
    等待延時為0-150毫秒,以十六進制0H-FH表示,如100ms為AH。
1) 批量讀出位元件—BR指令格式
1 2 3 4 5 6 7 8 15 16 17
PC側: ENQ 站號 PLC號 BR 延時 首地址 數量 和校驗 ACK 站號 PLC號
PLC側: STX 站號 PLC號 數據 EXT 和校驗
9 10 11 12 13 14
例如:要讀出站號為5的PLC的X40到X44共5點的狀態值,延時100毫秒,假設PLC中X40與X43為OFF,其余為ON,則指令數據如下:
注釋: 請求 站號 PLC號 命令 延時 元件首地址 元件數量 和校驗
代碼: ENQ 0 5 F F B R A X 0 0 4 0 0 5 4 7
ASCII碼: 05H 30H 35H 46H 46H 42H 52H 41H 58 30H 30H 34H 30H 30H 35H 34H 37H
只要將以上代碼以字符串形式(VB中可以表示為chr(5)&”05FFBRAX00400547”)發送到PLC,就會有正確的回應信息,如下:
注釋: 頭 站號 PLC號 位元件狀態值 尾 和校驗
代碼: STX 0 5 F F 0 1 1 0 1 EXT E 7
ASCII碼: 02H 30H 35H 46H 46H 30H 31H 31H 30H 31H 03H 45H 37H
2) 批量讀出字元件—WR指令格式
1 2 3 4 5 6 7 8 15 16 17
PC側: ENQ 站號 PLC號 WR 延時 首地址 數量 和校驗 ACK 站號 PLC號
PLC側: STX 站號 PLC號 數據 EXT 和校驗
9 10 11 12 13 14
該命令使用與BR命令相同。
3) 批量寫入位元件—BW指令格式
1 2 3 4 5 6 7 8 9
PC側: ENQ 站號 PLC號 BW 延時 首地址 數量 寫入值 和校驗
PLC側: ACK 站號 PLC號
10 11 12
4) 批量寫入字元件—WW指令格式
1 2 3 4 5 6 7 8 9
PC側: ENQ 站號 PLC號 WW 延時 首地址 數量 寫入值 和校驗
PLC側: ACK 站號 PLC號
10 11 12
6. VB通訊功能塊設計分析
根據三菱PLC的通訊指令格式,在PC中編寫數據查詢功能塊RevData( )和數據發送功能塊SendData( ),就可以在定時中斷處理塊TIMER1( )中調用查詢功能塊RevData( ),實現PC界面數據定時刷新;在每一次操作命令執行時,調用數據發送功能塊SendData( ),把控制值寫入PLC中,從而實現控制。下面給出這兩個功能塊的設計程序。
1) 查詢數據函數RevData( )
(沒有和校驗)
Sub RevPLC (iNo As String, iType As String, iAdd As String, iNum As String)
'' iNo為PLC站號,iType為元件類型,iAdd為首地址,iNum為元件數量
Dim Stmp As String
Dim cha, j As Integer
Dim ChaCount As Integer
Dim Comm As String
Select Case iType
Case "D" ''查詢數據寄存器的值
Comm = "WR" ''命令類型:數據字讀
cha = Val("&H" & iNum) * 4 ''數據寄存器的值為十六進制表示,占4個字符
Case "M", "X", "Y" ''查詢繼電器觸電的值
Comm = "BR" ''命令類型:二進制位讀
cha = Val("&H" & iNum)
End Select
iAdd = Right$("000" & iAdd, 4)
iNum = Right$("0" & iNum, 2)
Stmp = Chr$(5) & iNo & "FF" & Comm & "A" & iType & iAdd & iNum ''輸出命令格式
ChaCount = 6 + cha ''要返回字符個數
main.MSComm1.InBufferCount = 0 ''輸入緩沖區清零
main.MSComm1.Output = Stmp ''設傳送緩沖區內容為命令格式
Now=Second()
Do
DoEvents ''轉讓控制權,以便讓操作系統進行數據傳輸
If Second()-Now>1 Then Exit Sub
Loop Until main.MSComm1.InBufferCount = ChaCount ''當接收到規定字符時停止循環
RevDataTmp = Mid$(main.MSComm1.Input, 6, cha) ''返回數據字符串保存在全局變量
''RevDataTmp中
End Sub
2) 發送數據函數SendData( )
(沒有和校驗)
Sub SendPLC(iNo As String, iType As String, iAdd As String, iNum As String, iValue As String)
'' iNo為PLC站號,iType為元件類型,iAdd為首地址,iNum為元件數量,iValue為寫入值
Dim Stmp As String
Dim Comm As String
Select Case iType
Case "D" ''寫數據寄存器的值
Comm = "WW" ''命令類型:數據字寫
iValue = Right$("0000" + Hex$(Val(iValue)), 4) ''寫入值轉換成十六進制表示
Case "M" ''寫繼電器觸點的值
Comm = "BW" ''命令類型:二進制位寫
End Select

iAdd = Right$("000" & iAdd, 4)
iNum = Right$("0" & iNum, 2)
Stmp = Chr$(5) & iNo & "FF" & Comm & "A" & iType & iAdd & iNum & iValue ''輸出命令格式
MSComm1.Output = Stmp ''輸出命令到傳送緩沖區
Now= Second()
Do
DoEvents ''轉讓控制權,以便讓操作系統進行數據傳輸
If Second()-Now>1 Then Exit Sub
Loop Until main.MSComm1.OutBufferCount = 0 ''當命令傳送完時停止循環
End Sub
四. 總結:
生產自控系統的設計要解決好三部分的問題:PC上人機操作界面的編制,PC與PLC的通信程序編寫,PLC生產控制程序的編寫。對于串行通信的單機自控系統,因為具有操作界面和生產工藝流程簡單的特點,所以利用Visual Basic設計操作界面和利用PLC編程語言設計生產控制程序都比較方便,但對如何編寫通信程序就比較陌生,也沒有許多相關資料可學習。本文介紹的方法簡單、實用,供各位參考。利用通信控件MSComm的OnComm事件和CommEvent屬性還可以設計出功能更完善的通信程序。

文章版權歸西部工控xbgk所有,未經許可不得轉載。

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

      9000px;">

          亚洲精品亚洲人成人网| 一区二区三区在线不卡| wwwwww.欧美系列| 国内精品自线一区二区三区视频| 中文一区一区三区高中清不卡| 中文字幕电影一区| 综合久久久久久| 五月天视频一区| 欧美亚洲综合在线| 亚洲精品一线二线三线| 波多野结衣在线一区| 337p亚洲精品色噜噜噜| 中文字幕日韩一区| 蜜桃传媒麻豆第一区在线观看| 亚洲成av人片一区二区三区| av一区二区三区| 国产日韩一级二级三级| 日本美女视频一区二区| 91精品国产色综合久久ai换脸| 国产精品久久久久久久浪潮网站 | 亚洲一区二区在线免费看| 成人黄色网址在线观看| 亚洲综合在线电影| 91麻豆精品国产自产在线| 男女男精品网站| 中文在线资源观看网站视频免费不卡| 国产传媒一区在线| 一区二区三区中文字幕电影| 91国内精品野花午夜精品| 亚洲一区二区三区影院| 51精品视频一区二区三区| 国产一区二区三区免费播放| 久久嫩草精品久久久久| 欧日韩精品视频| 蜜臀久久久99精品久久久久久| 日韩久久免费av| 91色在线porny| 午夜视频久久久久久| 欧美国产日韩a欧美在线观看| 99久久免费国产| 精品一区二区三区免费毛片爱| 国产精品水嫩水嫩| 日韩三级中文字幕| 91视频免费播放| av欧美精品.com| 国产a区久久久| 精品无人码麻豆乱码1区2区 | 精品一区二区三区在线播放视频| 国产精品午夜在线| 久久网这里都是精品| 精品欧美乱码久久久久久1区2区| 91婷婷韩国欧美一区二区| 国产精品一区二区在线看| 日韩国产在线一| 亚洲成av人片观看| 国产校园另类小说区| 7777精品伊人久久久大香线蕉的| 在线综合+亚洲+欧美中文字幕| 一本大道综合伊人精品热热| 国产制服丝袜一区| 国产91丝袜在线18| 福利一区二区在线观看| 成人av在线电影| av电影在线观看完整版一区二区| 韩国女主播成人在线观看| 性做久久久久久久久| 美女一区二区在线观看| 国产精品一品二品| 99视频在线精品| 欧美精品一区二区在线播放| 国产精品久久久爽爽爽麻豆色哟哟| 国产视频一区二区在线观看| 亚洲欧美另类久久久精品| 中文在线一区二区| 欧美成人综合网站| 国产色产综合色产在线视频| 欧美在线色视频| 欧美激情综合网| 天天爽夜夜爽夜夜爽精品视频| 麻豆免费看一区二区三区| 欧美色网站导航| 337p日本欧洲亚洲大胆色噜噜| 一区二区三区波多野结衣在线观看| 捆绑紧缚一区二区三区视频| 99精品国产一区二区三区不卡 | 蜜桃在线一区二区三区| 成人网男人的天堂| 久久久久久久久久美女| 老鸭窝一区二区久久精品| 欧美日本一区二区在线观看| 国产精品三级av在线播放| 蜜臀av亚洲一区中文字幕| 欧美疯狂性受xxxxx喷水图片| 中文字幕成人av| 国产一区二区视频在线播放| 欧美一区二区三区爱爱| 亚洲成av人影院| 欧美人xxxx| 免费精品视频最新在线| 精品剧情v国产在线观看在线| 免费av成人在线| 日韩美女一区二区三区四区| 天堂蜜桃91精品| 在线播放中文字幕一区| 成人免费视频国产在线观看| 日本一区二区三区在线观看| 国产成人综合精品三级| 国产精品久久网站| 欧美另类高清zo欧美| 国产精品综合在线视频| 午夜视频久久久久久| 国产精品麻豆网站| 精品国产三级a在线观看| 91视频精品在这里| 99久久99久久精品国产片果冻 | 亚洲电影第三页| 久久久久久9999| 日韩女优av电影在线观看| 欧亚一区二区三区| 91亚洲精品乱码久久久久久蜜桃| 五月天婷婷综合| 亚洲成av人在线观看| 亚洲高清不卡在线| 一区二区成人在线观看| 国产精品美女久久久久久久| 日韩欧美在线网站| 91精品国产综合久久久久久漫画| 99re视频精品| 99re66热这里只有精品3直播| 精品亚洲porn| 国产69精品久久99不卡| 不卡的电影网站| 99久久精品国产麻豆演员表| 成人午夜视频福利| 色猫猫国产区一区二在线视频| 风间由美性色一区二区三区| 成人丝袜视频网| 色老头久久综合| 91麻豆精品国产91久久久久久久久| 91美女福利视频| 欧美一区二区三区电影| 欧美一区二区大片| 国产欧美日韩三区| 亚洲精品视频观看| 日本亚洲欧美天堂免费| 精品国精品国产| 国产黄人亚洲片| 亚洲色大成网站www久久九九| 成人精品一区二区三区四区| 亚洲黄色在线视频| 91精品国产欧美一区二区成人| 蜜臀av在线播放一区二区三区| 日韩欧美国产一区二区在线播放| 日韩av一二三| 久久精品男人天堂av| 成人免费毛片嘿嘿连载视频| 亚洲欧美日韩在线播放| 欧美年轻男男videosbes| 国产乱码精品一品二品| 中文字幕一区二区三区不卡在线| 欧美一a一片一级一片| 久久国产精品一区二区| 自拍偷拍亚洲综合| 久久久噜噜噜久噜久久综合| 欧美三日本三级三级在线播放| 麻豆精品在线观看| 日韩欧美美女一区二区三区| 国产精品美日韩| 在线欧美小视频| 麻豆高清免费国产一区| 精品成人免费观看| 国产精品自拍毛片| 国产精品视频一二三| 欧美在线啊v一区| 日韩精品一区第一页| 欧美电影影音先锋| 麻豆精品精品国产自在97香蕉| 日韩欧美一级在线播放| 激情六月婷婷综合| 亚洲综合色噜噜狠狠| 欧美一区二区三区在线观看| 亚洲一二三四在线观看| 精品噜噜噜噜久久久久久久久试看| 日韩国产欧美视频| 亚洲一区二区视频在线| 欧美精品一区二区三区一线天视频 | 精品一区二区三区免费观看| 日韩女同互慰一区二区| 成人一区二区三区视频在线观看| 亚洲国产欧美在线| 亚洲色图清纯唯美| 久久久久久久久久久久久夜| 在线电影欧美成精品| 91久久人澡人人添人人爽欧美 | 欧美一区二区三区人| 97久久精品人人做人人爽| 免费人成在线不卡| 夜夜嗨av一区二区三区网页| 精品99一区二区| 国产亚洲欧美激情|