永宏P(guān)LC在VB_NET中的應(yīng)用參考模板_第1頁
永宏P(guān)LC在VB_NET中的應(yīng)用參考模板_第2頁
永宏P(guān)LC在VB_NET中的應(yīng)用參考模板_第3頁
永宏P(guān)LC在VB_NET中的應(yīng)用參考模板_第4頁
永宏P(guān)LC在VB_NET中的應(yīng)用參考模板_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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肖藝斌永宏電機·范堤商貿(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 In

2、ternet, 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- 1 - /

3、 15一 前言隨著IT產(chǎn)業(yè)的進(jìn)步及網(wǎng)際網(wǎng)絡(luò)的發(fā)展,傳統(tǒng)工業(yè)控制所使用之PLC控制器,具有高度的穩(wěn)定性及抗雜訊的特性且配線容易及價格便宜,因此北大量應(yīng)用的在自動化的場所,已由單機操作朝向網(wǎng)絡(luò)控制化發(fā)展,文本在探討網(wǎng)絡(luò)控制化的核心技術(shù),使PC借由RS-232通訊協(xié)定控制PLC,并透過VB.NET程序語言,達(dá)到遠(yuǎn)端控制及網(wǎng)際自動化控制的功能。本文以自動紅綠燈控制為主題,所使用之PLC為國內(nèi)永宏電機公司所制FBS-PLC,內(nèi)含通訊模組,因此不需額外增購,且可由該公司網(wǎng)站免費下載及更新階梯圖軟體(Winproladder)。二 永宏通訊協(xié)議2.1 主仆定位與通訊互動關(guān)系在永宏 PLC 的通訊結(jié)構(gòu)上,永宏

4、 PLC 是被定位為仆系統(tǒng)( SLAVE ),而任何與永宏 PLC聯(lián)機的外圍設(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 ,接收方以此來判斷傳

5、輸數(shù)據(jù)的開頭。 2) 仆站號碼:為兩位數(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)都有一個獨一無二的站號,分別為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狀態(tài)、填入或讀取緩存器

6、數(shù)據(jù)、強制設(shè)定、運轉(zhuǎn)、停止 .等,和站號一樣,在響應(yīng)信息時,仆系統(tǒng)也會將從主系統(tǒng)接收的命令號碼原原本本地隨同本文數(shù)據(jù)一塊傳回主系統(tǒng)。 4) 本文資料:本文數(shù)據(jù)可為 0 (無文本資料)500 個 ASCII 字符,在命令信息中此 字段數(shù)據(jù)用來指定命令所要運作或存取的對象 (地址)或要寫入的數(shù)值。在響應(yīng)信息中本字段的開頭為一個錯誤碼字符,在正常(沒有錯誤)情況下此錯誤碼必為字符 0 (30H ),其后跟著的才是要響應(yīng)給主系統(tǒng)的狀態(tài)或數(shù)值等本文數(shù)據(jù)。當(dāng)有錯誤時,本開頭字符不再是 0 ,取而代之的是錯誤碼,同時其后不再有其它本文數(shù)據(jù)(即本文數(shù)據(jù)僅為一個字符的錯誤碼)。 5) 校驗碼 (CHECKSUM

7、) :校驗碼是將前述 各字段的所有 ASCII 字符的 16 進(jìn)制數(shù)值以縱式余數(shù)查核法LRC(Longitudinal Redundancy Check )計算產(chǎn)出一個 Byte 長度(兩個 16 進(jìn)制數(shù)值 00 FF )的校驗碼。當(dāng)接收端收到信息后按照同樣的計算方法則將 字段的所有字符算出其校驗碼,兩個值相同表示傳輸?shù)臄?shù)據(jù)正確,否則就是有傳輸錯誤發(fā)生。本通訊協(xié)議 LRC 校驗碼的計算方法是將各 ASCII 字符的 16 進(jìn)制數(shù)碼值( 8 位長度)從頭到尾按照順序相加,但不考慮進(jìn)位,因此最終結(jié)果仍為 8 位長度的校驗碼。 6) 結(jié)尾字符( ETX ):ASCII 碼的結(jié)尾字符 ETX 的 16

8、 進(jìn)制數(shù)碼為 03H ,無論命令或響應(yīng)信息的結(jié)尾字符均都為 ETX ,當(dāng)接收方收到 ETX 字符后便知道該次通訊已結(jié)束,可開始處理該命令或數(shù)據(jù)了。三 紅綠燈控制階梯圖程序【程序說明】 1. 按下啟動按鈕X0交通燈開始工作,按下停止按鈕X1,交通燈系統(tǒng)停止運行。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è)計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è)計 圖

10、二 狀態(tài)一 圖三 狀態(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 Boo

11、lean = False 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.

12、Enabled = 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

13、 Integer 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 =

14、 New IO.Ports.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 c

15、mbCom.Enabled = 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 = R

16、S232.IsOpen 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

17、 '發(fā)送數(shù)據(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

18、 ex As Exception 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ù) Pri

19、vate Sub 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

20、 Threading.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.Visu

21、alBasic.Mid(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.Pars

22、e(Y2) Y06 = 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.Ba

23、ckColor = 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

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論