搜档网
当前位置:搜档网 › 在Delphi 中用ActiveX 技术实现与三菱PLC 的通讯

在Delphi 中用ActiveX 技术实现与三菱PLC 的通讯

在Delphi中用ActiveX技术实现与三菱PLC的通讯

张君峰

(青岛科技大学,青岛,266045)

摘要:本文介绍了怎样在Delphi语言中利用ActiveX技术来实现与三菱PLC的通讯。通过调用ActiveX 控件,可以很方便的实现与三菱PLC的通讯,而不必研究其底层的三菱专用通讯协议,并给出了与三菱Q系列PLC通过以太网通讯模块进行通讯的Delphi程序。

关键词:通讯,ActiveX控件,以太网, Delphi, PLC

Communication with Mitsubishi PLC Using ActiveX Technology

in Delphi

Zhang Junfeng

(Qingdao University of Science and Technology, Qingdao 266045)

Abstract: This article introduced how realizes communication with Mitsubishi PLC in the Delphi language using the ActiveX technology. Through call ActiveX component, it can realize communication with Mitsubishi PLC very conveniently, and does not need to study Mitsubishi special communication protocol, and provide the Delphi program of communication with Mitsubishi Q series PLC through the Ethernet communication module.

Key words: communication, ActiveX component, Ethernet, Delphi, PLC

1引言

日本三菱公司的PLC以其灵活及低价位的优势在我国很多行业中有着非常广泛的应用,从较早的FX2、A系列到现在的FX2n、FX1、Q4AR及MELSEC-Q系列应用都非常广泛。

除了利用组态软件外,目前与三菱系列PLC进行通讯的实现方法大都是根据三菱公司提供的通讯协议自行编程实现。这样我们就不得不花费大量的精力来研究三菱的通讯协议,来研究如何发送、如何接收、如何控制通讯。由于三菱PLC系列很多,通讯方式有串口、USB、以太网、CCLINK、MELSECNET/10、MELSECNET/H等,各种方式的通讯协议也不尽相同。这就很容易造成我们编写的通讯程序一是不完善,只是编写了我们用到的部分,不能完全用到所有的通讯协议,二是互相不通用,针对串口编写的通讯程序如移植到以太网通讯还需要做大量的工作,耗费了我们大量的时间和精力。

其实三菱公司提供了一套适用于各种通讯方式的ActiveX库,通过调用ActiveX控件,我们可以很方便的利用VB、VC、Delphi等高级语言编写通讯程序,而不必再花费精力研究三菱的底层通讯协议,而且各种通讯方式的控件在调用函数上是一致的,这样我们在移植通讯程序时只要更改控件及其名称就行了,可以大大减少我们的工作量。

下面就介绍三菱ActiveX库及其在Delphi中调用的方法和三菱Q系列PLC通过以太网通讯模块进行通讯的Delphi程序。

2三菱ActiveX通讯库

ActiveX控件实际上就是OLE(对象连接与嵌入)控件,Microsoft公司在将OLE更新为OLE2后将OLE2重新命名为ActiveX控件(以前的OLE控件被称为OCX)。

目前在很多工控软件中使用的OPC技术就是OLE for Process Control(用于过程控制的

OLE ),它是一个工业标准,定义了一个开发接口,在客户机和服务器之间进行数据交换,它就是基于Microsoft 公司的OLE(ActiveX)、COM& DCOM 、XML& internet 以及.NET 技术,并得到目前大多数仪表及控制厂商支持的标准。

三菱公司提供的基于ActiveX 技术的控件叫做MX Component ,是用来无需知道通讯协议和模块知识而实现从PC 到PLC 之间进行通讯编程的工具包,它可用于Windows95、98、ME 、2000、XP Home 及XP Professional 操作

系统,支持的编程语言有VB6.0、

VB .NET 、VC6.0、VC .NET 、VBA 及

VBScript7&8。

三菱ActiveX 控件支持几乎所有的

三菱PLC 通讯路径。图1列出了MX

Component 所支持的通讯。

三菱MX Component 控件的主要特

性有设备监控、读写PLC 数据、多线程

通讯、GX 仿真离线测试、支持多种编

程语言、兼容Q 系列Q 模式下的多CPU

系统、支持PC CPU 模块、网关功能等

等。

三菱MX Component 控件安装完成

后,它就把以上所有通讯的ActiveX 控

件注册到Windows 系统中,以供其它程

序调用。软件安装后还提供了通讯路径

设置实用程序和PLC 数据监视实用程

序。

以太网是迄今最成功的局域网络技

术,具有传输速度高、成本低、安装方

便和兼容性好等方面的优势,也是目前

应用最广泛的信息网络技术。三菱MX Component 支持的以太网模块见下表:

下面就以Q 系列的QJ71E71以太网通讯模块为例说明如何实现与三菱Q 系列PLC 的通讯。

3 在Delphi 中调用三菱ActiveX 控件

Delphi 是Borland 公司推出的快速应用程序可视化开发工具。它具有功能强大、易于学习和使用、编程效率高以及易于调试等特点。它将可视化应用程序开发环境IDE 、面向对象程序设计语言Object Pascal 、快速编译器和数据库编程工具完美地结合在一起,使用它可以更直观地、快速地开发出高质量的应用程序,因而备受开发人员的青睐,成为最受欢迎的Windows 可用的模块

E71*1 AJ71E71,AJ71E71-S3,A1SJ71E71-B2,A1SJ71E71-B5,A1SJ71E71B2-S3,A1SJ71E7

1B5-S3,AJ71E71N-T,AJ71E71N-B5,AJ71E71N-B2,AJ71E71N-B5T,A1SJ71E71N-T,A

1SJ71E71N-B5,A1SJ71E71N-B2,A1SJ71E71N-B5T

QE71*2 AJ71QE71,AJ71QE71-B5,A1SJ71QE71-B2,A1SJ71QE71-B5,AJ71QE71N-T,AJ71Q

E71N-B5,AJ71QE71N-B2,AJ71QE71N-B5T,A1SJ71QE71N-T,A1SJ71QE71N-B5,A1

SJ71QE71N-B2,A1SJ71QE7N-B5T

Q 系列E71 QJ71E71,QJ71E71-B2,QJ71E71-B5,QJ71E71-100

应用程序开发工具之—。

在MX Component支持的编程语言中并没有Delphi,但这并不妨碍MX Component在Delphi中调用。只要将MX Component以ActiveX控件的形式导入到Delphi中,既可方便的实现MX Component通讯控件的调用。

要在Delphi应用程序中使用三菱ActiveX控

件MX Component,首先要把三菱ActiveX控件加

到Delphi IDE中的组件面板上。这样,组件面板

上将出现该ActiveX控件的图标。把ActiveX控件

加到组件面板上后,就可以像其他Delphi组件一

样把它拖放到窗体上使用。

要把ActiveX控件加到组件面板上,需要进行

以下步骤(以增加三菱以太网模块通讯的ActiveX

控件为例):

1)从Delphi IDE的主菜单上选取Component

| Import ActiveX Control命令,打开Import ActiveX

对话窗,在对话窗中找到已经注册的MITSUBISHI

ActEther Controls控件,见图2。

2)在上面对话窗中选择Install或Create Unit

按钮,就可将三菱关于以太网通讯的ActiveX控件

安装到ActiveX组件面板上,见图3。

3)三菱不同的通讯方式要选择不同

的ActiveX控件。如通过QJ71C24串口

通讯,需选择MITSUBISHI ActComLk

Controls。我们可以根据需要选择不同的

ActiveX控件。

这样,与三菱Q系列以太网模块QJ71E71通讯的ActiveX控件就加入到了Delphi IDE中的ActiveX组件中,就可以像其它控件一样拖入到窗体中使用了。

通过Q系列以太网模块与PC进行通讯之前,必须使用三菱公司的PLC编程软件GX Explorer设置QJ71E71以太网通讯模块。主要的初始化设置为:设置通讯方式为2进制码方式,采用TCP协议,设置以太网通讯模块的IP为:192.168.0.8,网络号为1。

4调用三菱以太网ActiveX控件的通讯程序

在Delphi IDE中的ActiveX组件中将三菱Q系列以太网模块QJ71E71通讯的ActiveX控件拖入主窗体中,并将此控件的属性按GX Explorer中设置的网络号、通讯方式等设置。

下面就是如何连接控件、读取数据、写入数据几个功能的程序。

连接网络程序:

Procedure https://www.sodocs.net/doc/7110645115.html,LinkClick(Sender: TObject);

begin

ActQJ71E71TCP1.ActHostAddress:=’192.168.0.8’;

ActQJ71E71TCP1.ActNetworkNumber:=1;

ActQJ71E71TCP1.Open;

end;

断开网络程序:

Procedure https://www.sodocs.net/doc/7110645115.html,LinkClick(Sender: TObject)

begin

ActQJ71E71TCP1.Close;

End;

写入100个数据到D0开始的软元件数据区的程序:

procedure TForm1.WriteClick(Sender: TObject);

var

Buf:array [0..1024] of integer;

i,Rst:integer;

begin

for i:=0 to 99 do Buf[i]:=i;

Rst:=ActQJ71E71TCP1.WriteDeviceBlock('D0', 100, Buf[0]);

if Rst=0 then

ShowMessage('写入成功!')

else

ShowMessage('写入失败!')

end;

读取D0开始的软元件数据区的100个数据的程序:

procedure TForm1.ReadClick(Sender: TObject);

var

Buf:array [0..1024] of integer;

Rst:integer;

begin

rst:=ActQJ71E71TCP1.ReadDeviceBlock('D0', 100,Buf[0]);

if Rst=0 then

ShowMessage('读取成功!')

else

ShowMessage('读取失败!');

end;

上述例子只是简单的介绍了三菱ActiveX控件的使用方法及如何使用控件连接PLC网络、读写PLC数据。其实三菱ActiveX控件提供了几乎所有的读取、控制三菱PLC的函数,可供我们实现更加复杂的应用,而且不必研究三菱底层的通讯协议,节省我们大量的时间和精力。

随着企业信息化程度要求的不断提高,调用ActiveX控件还有助于实现企业信息化,通过调用ActiveX控件可很方便的按要求实时读取PLC的数据,并保存到管理网络的SQL Server 数据库中,以供网络上的用户进行浏览和查询,可实现企业控制系统与管理网络的信息集成,可为企业管控一体化奠定基础。

参考文献

[1][美]Marco Cantu. Delphi 7从入门到精通电子工业出版社 2002

[2]MX Component Operating Manual Version 3. Mitsubishi Electric Corporation, 1998.

作者简介:张君峰,男, 92年毕业于青岛化工学院自动化系,现任青岛科技大学科发集团高校软控股份有限公司副总工程师,从事控制及软件方面的工作。 Zhangss0214@https://www.sodocs.net/doc/7110645115.html,

通讯地址:山东省青岛市郑州路1号青岛高校软控股份有限公司

邮编:266045

Email: Zhangss0214@https://www.sodocs.net/doc/7110645115.html,

基金资助项目: 2002年信息产业部电子发展基金项目 "数字化轮胎生产管控连接件"

2005年被信息产业部评为电子发展基金优秀项目

相关主题