版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、.永宏P(guān)LC在VB.NET中的應(yīng)用Fatek Application of PLC in five - axis reciprocating machines肖藝斌永宏電機(jī)·范堤商貿(mào)(上海)有限公司·上海摘要隨著IT產(chǎn)業(yè)的進(jìn)步及網(wǎng)際網(wǎng)絡(luò)的發(fā)展,傳統(tǒng)的工業(yè)控制所使用之PLC控制器,具有高度的穩(wěn)定性及抗雜訊的特性且配線容易價格便宜,因此被大量的在自動化的場所,本文介紹了永宏P(guān)LC在VB.NET中的應(yīng)用。關(guān)鍵詞:FATEK PLC;VB.NETAbstractWith the progress of IT industry and the development of the I
2、nternet, the traditional industrial control the use of PLC controller, with high stability and resistance to static characteristics and Wiring easy inexpensive, so it is a lot of places in the automation, this article describes fatek PLC in VB.Application of the net.Key Words :FATEK PLC;VB.NET一 前言隨著
3、IT產(chǎn)業(yè)的進(jìn)步及網(wǎng)際網(wǎng)絡(luò)的發(fā)展,傳統(tǒng)工業(yè)控制所使用之PLC控制器,具有高度的穩(wěn)定性及抗雜訊的特性且配線容易及價格便宜,因此北大量應(yīng)用的在自動化的場所,已由單機(jī)操作朝向網(wǎng)絡(luò)控制化發(fā)展,文本在探討網(wǎng)絡(luò)控制化的核心技術(shù),使PC借由RS-232通訊協(xié)定控制PLC,并透過VB.NET程序語言,達(dá)到遠(yuǎn)端控制及網(wǎng)際自動化控制的功能。本文以自動紅綠燈控制為主題,所使用之PLC為國內(nèi)永宏電機(jī)公司所制FBS-PLC,內(nèi)含通訊模組,因此不需額外增購,且可由該公司網(wǎng)站免費(fèi)下載及更新階梯圖軟體(Winproladder)。二 永宏通訊協(xié)議2.1 主仆定位與通訊互動關(guān)系在永宏 PLC 的通訊結(jié)構(gòu)上,永宏 PLC 是被定位
4、為仆系統(tǒng)( SLAVE ),而任何與永宏 PLC聯(lián)機(jī)的外圍設(shè)備都為主系統(tǒng)( MASTER ),也就是說任何外圍設(shè)備與永宏 PLC 之間的通訊都是由主系統(tǒng)(外圍設(shè)備)來主動發(fā)出命令,仆系統(tǒng)(永宏 PLC )只有在收到命令信息后才根 據(jù)該命令的要求響應(yīng)信息給主系統(tǒng),而不能主動發(fā)出信息給主系統(tǒng)。2.2永宏P(guān)LC通訊訊息格式永宏P(guān)LC的通訊信息格式無論是命令信息(主系統(tǒng)發(fā)出)或響應(yīng)信息(仆系統(tǒng)發(fā)出)都可大概分為 6 個數(shù)據(jù)域位,如下圖的范例:1) 開頭字符(STX):ASCII碼的開始字符STX的16進(jìn)制碼數(shù)為02H ,無論命令或響 應(yīng)信息的開頭字符都為 STX ,接收方以此來判斷傳輸數(shù)據(jù)的開頭。 2
5、) 仆站號碼:為兩位數(shù)的 16 進(jìn)制數(shù)值,在永宏 PLC 通訊系統(tǒng)中的網(wǎng)絡(luò)結(jié)構(gòu)采用主仆系統(tǒng)在整個網(wǎng)絡(luò)系統(tǒng)中只有一個主系統(tǒng),但可以有 254 個仆系統(tǒng),每個仆系統(tǒng)都有一個獨(dú)一無二的站號,分別為1 FEH(站號0 則當(dāng)作對所有仆系統(tǒng)作廣播下命令),當(dāng)主系統(tǒng)都對仆系統(tǒng)下命令時是以站號來指定由那個PLC,或所有PLC(廣播時)來接收這個命令。在響應(yīng)信息 時,仆系統(tǒng)會將自己的站號響應(yīng)給主系統(tǒng),以供主系統(tǒng)確認(rèn)是它所指定的那個仆站(PLC)所送回的信息。3) 命令號碼:為兩位數(shù)的 16 進(jìn)制數(shù)值,所謂命令號碼是由主系統(tǒng)要求仆系統(tǒng)所執(zhí)行的動作類型,例如要求讀取或?qū)懭雴吸c(diǎn)狀態(tài)、填入或讀取緩存器數(shù)據(jù)、強(qiáng)制設(shè)定、運(yùn)
6、轉(zhuǎn)、停止 .等,和站號一樣,在響應(yīng)信息時,仆系統(tǒng)也會將從主系統(tǒng)接收的命令號碼原原本本地隨同本文數(shù)據(jù)一塊傳回主系統(tǒng)。 4) 本文資料:本文數(shù)據(jù)可為 0 (無文本資料)500 個 ASCII 字符,在命令信息中此 字段數(shù)據(jù)用來指定命令所要運(yùn)作或存取的對象 (地址)或要寫入的數(shù)值。在響應(yīng)信息中本字段的開頭為一個錯誤碼字符,在正常(沒有錯誤)情況下此錯誤碼必為字符 0 (30H ),其后跟著的才是要響應(yīng)給主系統(tǒng)的狀態(tài)或數(shù)值等本文數(shù)據(jù)。當(dāng)有錯誤時,本開頭字符不再是 0 ,取而代之的是錯誤碼,同時其后不再有其它本文數(shù)據(jù)(即本文數(shù)據(jù)僅為一個字符的錯誤碼)。 5) 校驗(yàn)碼 (CHECKSUM) :校驗(yàn)碼是將前
7、述 各字段的所有 ASCII 字符的 16 進(jìn)制數(shù)值以縱式余數(shù)查核法LRC(Longitudinal Redundancy Check )計(jì)算產(chǎn)出一個 Byte 長度(兩個 16 進(jìn)制數(shù)值 00 FF )的校驗(yàn)碼。當(dāng)接收端收到信息后按照同樣的計(jì)算方法則將 字段的所有字符算出其校驗(yàn)碼,兩個值相同表示傳輸?shù)臄?shù)據(jù)正確,否則就是有傳輸錯誤發(fā)生。本通訊協(xié)議 LRC 校驗(yàn)碼的計(jì)算方法是將各 ASCII 字符的 16 進(jìn)制數(shù)碼值( 8 位長度)從頭到尾按照順序相加,但不考慮進(jìn)位,因此最終結(jié)果仍為 8 位長度的校驗(yàn)碼。 6) 結(jié)尾字符( ETX ):ASCII 碼的結(jié)尾字符 ETX 的 16 進(jìn)制數(shù)碼為 03
8、H ,無論命令或響應(yīng)信息的結(jié)尾字符均都為 ETX ,當(dāng)接收方收到 ETX 字符后便知道該次通訊已結(jié)束,可開始處理該命令或數(shù)據(jù)了。三 紅綠燈控制階梯圖程序【程序說明】 1. 按下啟動按鈕X0交通燈開始工作,按下停止按鈕X1,交通燈系統(tǒng)停止運(yùn)行。2. 設(shè)東西方西車流量較小,紅燈亮的時間為60秒,而南北方向車流量較大,紅燈亮的時間為30秒。3. 東西方向的紅燈時間就是南北方向的“綠燈時間綠燈閃爍時間黃燈時間”,反之,南北方向紅燈,時間就是東西方向的“綠燈時間綠燈閃爍時間黃燈時間”。4. 黃燈亮?xí)r車和人不能再通過馬路,黃燈亮5秒的目的是讓正在十字路口通行的人和車有時間到達(dá)對面馬路。5. 東西方向交通燈
9、狀態(tài)變化規(guī)律:6. 南北方向交通燈狀態(tài)變化規(guī)律:【階梯圖如下】四 VB.NET即時監(jiān)控程序架構(gòu)及程序設(shè)計(jì)PC借由RS232與PLC取得連線,通訊參數(shù)如下:9600,7,E,1,整個連線設(shè)定可參考Form1_Load()及btnStart_Click()段。即時監(jiān)控如圖一所示,當(dāng)執(zhí)行系統(tǒng)啟動按鈕時,桌面將呈現(xiàn)如圖二圖五所示,狀態(tài)的偵測采用200ms定時觸發(fā)的方式,依次讀取Y0Y8,R0R1的即時狀態(tài),程序執(zhí)行段參考Timer1_Tick()段,系統(tǒng)啟動功能代碼可參考Button2_Click()段,系統(tǒng)停止功能代碼可參考Button3_Click()段圖一 即時監(jiān)控畫面設(shè)計(jì) 圖二 狀態(tài)一 圖三
10、狀態(tài)二 圖四 狀態(tài)三 圖五 狀態(tài)四五 結(jié)論隨著網(wǎng)際網(wǎng)絡(luò)的普及,遠(yuǎn)端監(jiān)控已是必然的趨勢,本文所提供PC與FBS-PLC間的連線,僅需在VB.NET程序中加入網(wǎng)際網(wǎng)絡(luò)物件即可達(dá)到Internet的遠(yuǎn)距控制,亦可透過RS485界面達(dá)到遠(yuǎn)端即時監(jiān)控。六 附錄6.1 參考文獻(xiàn)1 范堤商貿(mào)(上海)有限公司. 永宏可編程控制器使用手冊I【硬件篇&指令篇】. 20102 范堤商貿(mào)(上海)有限公司. 永宏可編程控制器使用手冊II【進(jìn)階應(yīng)用篇】. 20106.2 VB.NET程序段Imports System.IO.PortsPublic Class Form1 Dim i As Boolean = Fa
11、lse Dim WithEvents RS232 As SerialPort Delegate Sub SetTextCallback(ByVal InputString As String) '聲明一個代理 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Timer1.Enabled = False Button2.Enabled = False Button3.Enabled = False TextBox.Enabled =
12、 False txtReceive.Enabled = False For Each sp As String In SerialPort.GetPortNames() cmbCom.Items.Add(sp) Next cmbCom.Sorted = True cmbCom.SelectedIndex = 0 End Sub Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click Dim mBaudRate As Integer
13、Dim mParity As IO.Ports.Parity Dim mDataBit As Integer Dim mStopBit As IO.Ports.StopBits Dim mPortName As String Button2.Enabled = True mPortName = cmbCom.SelectedItem.ToString mBaudRate = 9600 mParity = Parity.Even mDataBit = 7 mStopBit = StopBits.One Me.txtReceive.Text = mPortName RS232 = New IO.P
14、orts.SerialPort(mPortName, mBaudRate, mParity, mDataBit, mStopBit) Try RS232.Open() '打開串口 txtReceive.Text = RS232.IsOpen If RS232.IsOpen = True Then txtReceive.Text = "串口已連接“ txtReceive.ForeColor = Color.Green Timer1.Enabled = True btnStart.Enabled = False btnClose.Enabled = True cmbCom.Ena
15、bled = False End If Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click Button2.Enabled = False Button3.Enabled = False Try RS232.Close() '關(guān)閉串口 txtReceive.Text = RS232.IsOp
16、en If RS232.IsOpen = False Then Timer1.Enabled = False txtReceive.Text = "串口未打開" txtReceive.ForeColor = Color.Red btnStart.Enabled = True btnClose.Enabled = False cmbCom.Enabled = True Button2.Enabled = False End If Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub '發(fā)送數(shù)
17、據(jù) Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If i = 0 Then i = 1 Try RS232.Write("_014409Y00004D_") Catch ex As Exception MessageBox.Show(ex.Message) End Try Else i = 0 Try RS232.Write("_014602R0000071_") Catch ex As Ex
18、ception MessageBox.Show(ex.Message) End Try End If End Sub '觸發(fā)接收事件 Public Sub Sp_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles RS232.DataReceived Me.Invoke(New EventHandler(AddressOf Sp_Receiving) '調(diào)用接收數(shù)據(jù)函數(shù) End Sub '接收數(shù)據(jù) Private Sub
19、Sp_Receiving(ByVal sender As Object, ByVal e As EventArgs) Dim strIncoming As String Dim Y0, Y1, Y2, Y6, Y7, Y8, R0, R1 As String Dim Y00, Y01, Y02, Y06, Y07, Y08 As Integer Dim Mystr As String Try TextBox.Text = Str(Val(txtReceive.Text) + RS232.BytesToRead) If RS232.BytesToRead > 0 Then Threadin
20、g.Thread.Sleep(100) '添加延時 strIncoming = RS232.ReadExisting.ToString '讀取緩沖區(qū)中的數(shù)據(jù) RS232.DiscardInBuffer() TextBox.Text = strIncoming Mystr = Microsoft.VisualBasic.Mid(strIncoming, 4, 2) If Mystr = "44" Then Y0 = Microsoft.VisualBasic.Mid(strIncoming, 7, 1) Y1 = Microsoft.VisualBasic.M
21、id(strIncoming, 8, 1) Y2 = Microsoft.VisualBasic.Mid(strIncoming, 9, 1) Y6 = Microsoft.VisualBasic.Mid(strIncoming, 13, 1) Y7 = Microsoft.VisualBasic.Mid(strIncoming, 14, 1) Y8 = Microsoft.VisualBasic.Mid(strIncoming, 15, 1) Y00 = Integer.Parse(Y0) Y01 = Integer.Parse(Y1) Y02 = Integer.Parse(Y2) Y06
22、 = Integer.Parse(Y6) Y07 = Integer.Parse(Y7) Y08 = Integer.Parse(Y8) If Y00 = 1 Then OvalShape6.BackColor = Color.Red Else OvalShape6.BackColor = Color.Black End If If Y01 = 1 Then OvalShape4.BackColor = Color.Lime Else OvalShape4.BackColor = Color.Black End If If Y02 = 1 Then OvalShape5.BackColor =
23、 Color.Yellow Else OvalShape5.BackColor = Color.Black End If If Y06 = 1 Then OvalShape3.BackColor = Color.Lime Else OvalShape3.BackColor = Color.Black End If If Y07 = 1 Then OvalShape2.BackColor = Color.Yellow Else OvalShape2.BackColor = Color.Black End If If Y08 = 1 Then OvalShape1.BackColor = Color.Red Else OvalShape1.BackColor = Color.Black End If ElseIf Mystr = "46" Then R0 = Microsoft.VisualBasic.Mid(strIncoming, 7, 4) R1 = Microsoft.VisualBasic.Mid(strIncoming, 11, 4) Label4.Text = Val("&H" & R0) Label4.Fo
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 招生信息發(fā)布與答疑解惑
- 2025年度鉆井工程地質(zhì)監(jiān)理合同4篇
- 2025年度鋁合金材料行業(yè)應(yīng)用研究采購合同4篇
- 基于云計(jì)算的2025年度智能安防系統(tǒng)開發(fā)與維護(hù)合同
- 2025年度地下綜合管廊零星工程施工合同4篇
- 2025版離婚房產(chǎn)分割及購房款退還與財(cái)產(chǎn)分割合同4篇
- 2024年08月遼寧興業(yè)銀行大連分行社會招考(85)筆試歷年參考題庫附帶答案詳解
- 二零二五年度大數(shù)據(jù)中心建設(shè)合同標(biāo)的物采購與運(yùn)維4篇
- 2025年度城市綠化工程分包合同4篇
- 水性金銀墨行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 醫(yī)療糾紛預(yù)防和處理?xiàng)l例通用課件
- 廚邦醬油推廣方案
- 乳腺癌診療指南(2024年版)
- 高三數(shù)學(xué)寒假作業(yè)1
- 保險產(chǎn)品創(chuàng)新與市場定位培訓(xùn)課件
- (完整文本版)體檢報告單模版
- 1例左舌鱗癌手術(shù)患者的圍手術(shù)期護(hù)理體會
- (完整)100道兩位數(shù)加減兩位數(shù)口算題(難)
- 鋼結(jié)構(gòu)牛腿計(jì)算
- 2023-2024學(xué)年重慶市兩江新區(qū)四上數(shù)學(xué)期末質(zhì)量檢測試題含答案
- 體外診斷試劑工作校準(zhǔn)品產(chǎn)品校準(zhǔn)品互換性(基質(zhì)效應(yīng))Excel計(jì)算模板
評論
0/150
提交評論