国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于MX Component的PC與PLC以太網(wǎng)通訊方法研究

2018-06-04 12:49:16劉瑞通
機械工程與自動化 2018年3期
關(guān)鍵詞:點數(shù)批量以太網(wǎng)

劉瑞通

(一汽解放汽車有限公司 車橋分公司,吉林 長春 130011)

0 引言

MX Component是三菱電機自動化公司發(fā)布的第三方通信軟件包,可以通過簡單方法實現(xiàn)從計算機至可編程控制器的通信[1]。

本文主要對基于MX Component的PC與PLC以太網(wǎng)通訊方法進行研究。

1 MX Component設(shè)置

1.1 設(shè)置邏輯站號

邏輯站號可以設(shè)置的范圍為0~1 023,邏輯站號不可重復使用。打開Communication Setup Utility軟件,選擇”Target Setting”選項卡,點擊”Wizard”按鈕,設(shè)置Logical station number。

1.2 設(shè)置PC側(cè)I/F

在“PC side I/F”中選擇“Ethernet board”,使用以太網(wǎng)通信、網(wǎng)關(guān)功能通信;在“Connect module”中選擇“CPU module”;在“Protocol”中選擇“TCP”。

1.3 設(shè)置PLC側(cè)I/F

首先為PLC設(shè)定固定IP,將PLC通過網(wǎng)線連入PC所在的局域網(wǎng)中,其次為PLC接通電源,然后設(shè)置相關(guān)參數(shù):“PLC side I/F”中選擇“CPU module”,Host(IP Address)通過“Find CPU(Buitt-in Ethernet port) on network”按鈕瀏覽能使用的終端IP,如果沒有瀏覽到可以直接寫入為PLC設(shè)置的固定IP。

1.4 設(shè)置站類型

Station type選擇“Host station”。

1.5 設(shè)置CPU類型

CPU type選擇“Q03UDE”(此CPU類型可根據(jù)實際使用CPU類型進行設(shè)置),Multiple CPU 選擇“None”。

1.6 設(shè)置目標注釋

在“Comment”寫入注釋內(nèi)容,完成設(shè)置,如圖1所示。

圖1 參數(shù)設(shè)置

1.7 測試

完成設(shè)置后,測試連接,結(jié)果如圖2所示。

2 VB.NET相關(guān)函數(shù)

本節(jié)主要介紹基于VB.NET的編程方法。

2.1 編程前期準備

(1) 添加引用。在VB.NET程序工程引用中添加ActUtlTypeLib。

(2) 定義全局變量:

Public comUtlType As ActUtlTypeLib.ActUtlType

(3) 實例化ActUtlTypeLib.ActUtlType對象,代碼如下所示:

comUtlType = New ActUtlTypeLib.ActUtlType

AddHandler comUtlType.OnDeviceStatus, AddressOf comUtlType_OnDeviceStatus

(4) 設(shè)置邏輯端口,此邏輯端口需要和本文1.1中設(shè)置的MX Component邏輯站號保持一致,才能保證通信的順利進行。設(shè)置邏輯端口代碼如下所示:

comUtlType.ActLogicalStationNumber = mLogicalStationNumber

(5) 打開ult服務(wù):

iReturnCode = comUtlType.Open()

圖2 測試結(jié)果

2.2 軟元件隨機讀取

此功能通過指定所需讀取的所有軟元件名和讀取的點數(shù)進行軟元件值的隨機讀取。軟元件隨機讀取代碼如下:

Private Function BitRead(ByVal szDeviceName As String(), ByRef iReturnCode As Integer) As Short()

Dim iNumberOfDeviceName As Integer

Dim strDeviceName As String

iReturnCde = 1

strDeviceName = String.Join(vbLf, szDeviceName)

iNumberOfDeviceName = szDeviceName.Length

Dim sharrDeviceValue(iNumberOfDeviceName - 1) As Short '軟元件數(shù)

iReturnCode = comUtlType.ReadDeviceRandom2(strDeviceName,iNumberOfDeviceName, sharrDeviceValue(0))

Return sharrDeviceValue

End Function

2.3 軟元件隨機寫入

此功能通過指定所需寫入的軟元件名、寫入的點數(shù)及相應(yīng)軟元件的值進行軟元件的隨機寫入。軟元件隨機寫入代碼如下:

Private Function BitWrite(ByVal szDeviceName As String(), ByVal sharrDeviceValue As Short()) As Integer

Dim iReturnCode As Integer = 1

Dim iNumberOfDeviceName As Integer

Dim strDeviceName As String

iNumberOfDeviceName = szDeviceName.Length

strDeviceName = String.Join(vbLf, szDeviceName)

iReturnCode = comUtlType.WriteDeviceRandom2 (strDeviceName, iNumberOfDeviceName, sharrDeviceValue(0))

Return iReturnCode

End Function

2.4 軟元件批量讀取

此功能通過指定軟元件名和讀取的點數(shù)進行軟元件值的批量讀取。軟元件批量讀取代碼如下:

Private Function DataRead(ByVal szDeviceName As String, ByVal iNumberOfDeviceName As Integer, ByRef iReturnCode As Integer) As

Short()

Dim sharrDeviceValue(iNumberOfDeviceName - 1) As Short '軟元件數(shù)

iReturnCode = comUtlType.ReadDeviceBlock2(szDeviceName, iNumberOfDeviceName, sharrDeviceValue(0))

Return sharrDeviceValue

End Function

2.5 軟元件批量寫入

此功能通過給出軟元件名、寫入的點數(shù)及相應(yīng)軟元件的值進行軟元件的批量寫入。軟元件批量寫入代碼如下:

Private Function DataWrite(ByVal szDeviceName As String, ByVal sharrDeviceValue As Short()) As Integer

Dim iReturnCode As Integer = 1

Dim iNumberOfDeviceName As Integer

iNumberOfDeviceName =harrDeviceValue.Length

iReturnCode =comUtlType.WriteDeviceBlock2( szDeviceName, iNumberOfDeviceName, sharrDeviceValue(0))

Return iReturnCode

End Function

2.6 注冊事件應(yīng)用

此功能可以利用軟件在PLC上注冊事件,然后調(diào)用事件對PLC軟元件進行監(jiān)控,當軟元件的值發(fā)生變化時,自動調(diào)用事件處理函數(shù)進行事件處理。注冊事件能夠?qū)崿F(xiàn)PLC主動上傳信息、上位機及時捕捉到PLC狀態(tài)變化信息并進行處理,減少PC機因采用輪詢方式造成的CPU占用。注冊事件代碼如下所示:

(1) 打開ult服務(wù):

comUtlType.Open()

(2) 調(diào)用注冊事件:

Dim lData(0) As Integer

lData(0) = 1

comUtlType.EntryDeviceStatus("M0", 1, 1, lData)

上述設(shè)置中當“M0”狀態(tài)發(fā)生變化時,將觸發(fā)事件處理函數(shù)。

(3) 事件處理函數(shù):

Private Sub comUtlType_OnDeviceStatus(ByVal szDevice As String, ByVal iData As Integer, ByVal iReturnCode As Integer)

HandleFunction() '自定義處理函數(shù)

End Sub

(4) 關(guān)閉ult服務(wù):

comUtlType.Close()

2.7 特別說明

在軟元件隨機讀取、軟元件隨機寫入、軟元件批量讀取、軟元件批量寫入的過程中返回代碼iReturnCode為非0x0時,需要重新啟動ult服務(wù)。

3 結(jié)語

本文介紹了MX Component在使用過程中的設(shè)置方法和幾種基于VB.NET編程軟件的常用函數(shù)編程方法,為將PLC控制的生產(chǎn)設(shè)備連接到上位機提供了一種簡單方法。

參考文獻:

[1] 程曉鵬,劉園,任素利,等.基于MX Component的PC—PLC通訊設(shè)計[J].福建電腦,2014(3):34-35.

[2] 三菱電機自動化(中國)有限公司.MX Component軟件介紹 [CP/OL].2015-04-10/2016-09-02.http://cn.mitsubishielectric.com/fa/zh/download/dwn_idx_softwareDetail.asp?sid=45.

猜你喜歡
點數(shù)批量以太網(wǎng)
批量提交在配置分發(fā)中的應(yīng)用
科學家(2021年24期)2021-04-25 12:55:27
基于1500以太網(wǎng)養(yǎng)豬場的智能飼喂控制系統(tǒng)的設(shè)計與實現(xiàn)
看不到的總點數(shù)
談實時以太網(wǎng)EtherCAT技術(shù)在變電站自動化中的應(yīng)用
電子制作(2017年24期)2017-02-02 07:14:44
畫點數(shù)
破解“心靈感應(yīng)”
多核并行的大點數(shù)FFT、IFFT設(shè)計
一種90W高功率以太網(wǎng)供電系統(tǒng)的設(shè)計
淺談EPON與工業(yè)以太網(wǎng)在貴遵高速公路中的應(yīng)用
淺議高校網(wǎng)銀批量代發(fā)
连城县| 麻江县| 海兴县| 东丽区| 曲阳县| 商都县| 贵定县| 高州市| 正镶白旗| 犍为县| 宣武区| 阳信县| 景德镇市| 巨鹿县| 祁门县| 福鼎市| 巫溪县| 云南省| 五指山市| 塔城市| 永胜县| 凤山县| 泗水县| 儋州市| 扬中市| 凉山| 沅江市| 华安县| 永新县| 象山县| 临洮县| 松江区| 津南区| 鹤壁市| 互助| 乌兰察布市| 荔浦县| 万山特区| 承德县| 霍城县| 丹巴县|