基于MX Component的PC与PLC以太网通讯方法研究

2018-06-04 12:49刘瑞通
机械工程与自动化 2018年3期
关键词:点数批量以太网

刘瑞通

(一汽解放汽车有限公司 车桥分公司,吉林 长春 130011)

0 引言

MX Component是三菱电机自动化公司发布的第三方通信软件包,可以通过简单方法实现从计算机至可编程控制器的通信[1]。

本文主要对基于MX Component的PC与PLC以太网通讯方法进行研究。

1 MX Component设置

1.1 设置逻辑站号

逻辑站号可以设置的范围为0~1 023,逻辑站号不可重复使用。打开Communication Setup Utility软件,选择”Target Setting”选项卡,点击”Wizard”按钮,设置Logical station number。

1.2 设置PC侧I/F

在“PC side I/F”中选择“Ethernet board”,使用以太网通信、网关功能通信;在“Connect module”中选择“CPU module”;在“Protocol”中选择“TCP”。

1.3 设置PLC侧I/F

首先为PLC设定固定IP,将PLC通过网线连入PC所在的局域网中,其次为PLC接通电源,然后设置相关参数:“PLC side I/F”中选择“CPU module”,Host(IP Address)通过“Find CPU(Buitt-in Ethernet port) on network”按钮浏览能使用的终端IP,如果没有浏览到可以直接写入为PLC设置的固定IP。

1.4 设置站类型

Station type选择“Host station”。

1.5 设置CPU类型

CPU type选择“Q03UDE”(此CPU类型可根据实际使用CPU类型进行设置),Multiple CPU 选择“None”。

1.6 设置目标注释

在“Comment”写入注释内容,完成设置,如图1所示。

图1 参数设置

1.7 测试

完成设置后,测试连接,结果如图2所示。

2 VB.NET相关函数

本节主要介绍基于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) 设置逻辑端口,此逻辑端口需要和本文1.1中设置的MX Component逻辑站号保持一致,才能保证通信的顺利进行。设置逻辑端口代码如下所示:

comUtlType.ActLogicalStationNumber = mLogicalStationNumber

(5) 打开ult服务:

iReturnCode = comUtlType.Open()

图2 测试结果

2.2 软元件随机读取

此功能通过指定所需读取的所有软元件名和读取的点数进行软元件值的随机读取。软元件随机读取代码如下:

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 '软元件数

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

Return sharrDeviceValue

End Function

2.3 软元件随机写入

此功能通过指定所需写入的软元件名、写入的点数及相应软元件的值进行软元件的随机写入。软元件随机写入代码如下:

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 软元件批量读取

此功能通过指定软元件名和读取的点数进行软元件值的批量读取。软元件批量读取代码如下:

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

Short()

Dim sharrDeviceValue(iNumberOfDeviceName - 1) As Short '软元件数

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

Return sharrDeviceValue

End Function

2.5 软元件批量写入

此功能通过给出软元件名、写入的点数及相应软元件的值进行软元件的批量写入。软元件批量写入代码如下:

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 注册事件应用

此功能可以利用软件在PLC上注册事件,然后调用事件对PLC软元件进行监控,当软元件的值发生变化时,自动调用事件处理函数进行事件处理。注册事件能够实现PLC主动上传信息、上位机及时捕捉到PLC状态变化信息并进行处理,减少PC机因采用轮询方式造成的CPU占用。注册事件代码如下所示:

(1) 打开ult服务:

comUtlType.Open()

(2) 调用注册事件:

Dim lData(0) As Integer

lData(0) = 1

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

上述设置中当“M0”状态发生变化时,将触发事件处理函数。

(3) 事件处理函数:

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

HandleFunction() '自定义处理函数

End Sub

(4) 关闭ult服务:

comUtlType.Close()

2.7 特别说明

在软元件随机读取、软元件随机写入、软元件批量读取、软元件批量写入的过程中返回代码iReturnCode为非0x0时,需要重新启动ult服务。

3 结语

本文介绍了MX Component在使用过程中的设置方法和几种基于VB.NET编程软件的常用函数编程方法,为将PLC控制的生产设备连接到上位机提供了一种简单方法。

参考文献:

[1] 程晓鹏,刘园,任素利,等.基于MX Component的PC—PLC通讯设计[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.

猜你喜欢
点数批量以太网
批量提交在配置分发中的应用
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
看不到的总点数
谈实时以太网EtherCAT技术在变电站自动化中的应用
画点数
多核并行的大点数FFT、IFFT设计
一种90W高功率以太网供电系统的设计
浅谈EPON与工业以太网在贵遵高速公路中的应用
在数控车床上批量钻铰孔类工件的实践
基于AUTOIT3和VBA的POWERPOINT操作题自动批量批改