一种矿用挖掘机PLC与上位机通信软件的设计★

2018-03-30 21:01吉孟兰何俊强
山西冶金 2018年5期
关键词:挖掘机调用上位

吉孟兰, 何俊强

(1.矿山采掘装备及智能制造国家重点实验室;2.太原重工股份有限公司技术中心, 山西 太原 030024;3.太原科技大学, 山西 太原 030024)

太原重工股份有限公司的WK系列矿用挖掘机从最初的发电机—电动机系统,已经发展到如今第三代的变频电控系统,其控制核心是西门子S7-300 PLC,具有极高的可靠性和自诊断功能,通过信息化手段采集到监控系统后,能够连续智能的检测系统是否有故障并记录系统运行中的错误,应用于矿用挖掘机后已经发挥出极大的优势。下面将介绍PLC如何与上位机结合使用,并通过VC++6.0对软件系统进行开发,从而满足对大型矿用挖掘机各类信号的实时监控,提高设备的整体性能。

1 基于Prodave的上位机通信软件设计

通过建立一工程师站将PLC与PC之间通过通讯接口连接起来,用PC作为上位机,通过对PLC数据存储器中的IO点以及数据块等区域的读取与写入,将PLC采集的各类状态信息及时反馈给维护人员,从而实现控制系统的监控,使PLC及PC机二者优势互补,充分利用PLC强大控制性能以及PC强大的友好界面组成一个功能强大、可靠性高、成本低的控制监测系统,最大限度地合理利用资源。

1.1 Prodave软件介绍

Prodave 6.0是西门子为用户提供对S7-300进行数据通讯的动态链接库,此链接库为西门子专门为用户进行上位机软件二次开发而设计[1]。Prodave 6.0是基于MPI通讯协议的软件包,利用此软件包能够方便地实现上位机(PC)与PLC之间的数据通信,且其通讯速度满足一般监控要求。

Prodave软件包中提供了大量基于Windows的函数,方便在上位机中进行软件开发,支持MPI协议,能够解决PLC与PC之间的数据交换和数据处理。设计基于Prodave的上位机监控软件具有如下的特点[2]:

1)使用简单方便。调试、编程开发人员不需要熟悉极其复杂的通信协议,只需通过简单调用Prodave提供的动态链接库(DLL)中的内置函数即可实现软件开发。

2)用户不用编写PLC侧的通信程序,在上位机中只需通信函数便可直接读写PLC中的数据,极大的提高了开发效率。

1.2 基于Prodave的上位机通信监控系统设计

通讯系统的设计包括软硬件两部分。

1.2.1 系统的硬件设计

PLC与上位机之间的通讯需要MPI适配器(PC Adaper)或者通讯板卡进行硬线连接。采用MPI适配器连接需要占用PLC的MPI通信接口,在实际应用中可以选择使用通讯板卡代替MPI适配器以节省MPI接口,从而使得系统更加简洁。注意在PLC硬件组态中,通讯速率的设置速率需要进行预估然后进行设置。上位机的PC/PG接口设置为“PC Adapter(MPI)”。

1.2.2 VC++常用库函数调用及调用DLL的方法

该软件的开发是基于VC++6.0开发环境,采用该编程软件加载Prodave中的动态链接库一般有两种方式:显式链接方式和隐式链接[3]方式。其中隐式链接方式实现起来比较简单,是较常用的方式,本软件也是基于隐式链接进行设计。隐式链接方式是指在编写代码时事先要作好链接工作,然后在程序运行中就能够随时调用DLL导出的函数,其具体软件开发步骤如下:

1)安装Prodave软件包,并在Prodave的安装目录下找到下面三个文件:Prodave6.dll、Prodave6.h和Prodave6.lib。

2)将Prodave6.dll拷贝到自己所建立目标工程的Debug目录。

3)将Prodave6.h和Prodave6.lib拷贝到自己所建立目标工程目录下,使得其与目标工程软件同目录。

4)在自己所建立目标工程程序中,选择Project/Settings下拉菜单,点选link选项卡,在Object/library modules选项的编辑框中输入Prodave6.Lib。

5)在自己所建立目标工程头文件Head Files中添加Prodave6.h文件。

6)最后在自己所建立目标工程源程序.cpp(此时需要调用DLL中库函数的程序)中加入引导语句#include"Prodave6.h"来声明包含Prodave6的头文件。

常用的VC++调用Prodave函数库包括以下一些基本函数:能与PLC建立通讯连接的初始化函数load_tool(),激活通讯连接函数new_ss(),以及断开连接函数unload_tool()。

实际使用中,在调用其它函数前首先需要调用load_tool(),它的主要作用是初始化适配器,并检查是否已经加载驱动,再初始化连接地址和激活选定界面。下面就软件编写过程中常用基本函数的功能及用法做简要介绍:

load_tool():检查通信、对通信参数进行初始化、激活连接。其中所含参数依次为要激活的连接数、用户驱动设备的名称(对于本文中MPI驱动器为“S7ONLINE”),以及连接的地址列表。

unload_tool():用来断开上位机和PLC的连接。

db_read(int,int,int*,void*);//用来读取 PLC 中的数据。所含参数分别代表:要读取的数据块号、要读取的起始字节数、要读取的字节个数,以及要读取的数据在PC中的存储区。

db_write(int,int,int*,void*);//用来向 PLC 写入数据。所含参数分别代表:要写入的数据块号、要写入的起始字节位置、要写入字节的个数,以及要写入的数在PC中的存储区。

d_field_read(int,int,int,void*);//的字节个数,以及要读取的数据在PC中的存储区。

db_write (int,int,int*,void*);//用 来 读 取 PLC某一存储区的数据。

d_field_write(int,int,int,void*);//的字节个数,以及要读取的数据在PC中的存储区。

db_write(int,int,int*,void *);//用来向 PLC 某一存储区写入数据。

1.2.3 基于Prodave的监控软件设计

在软件设计过程中,要充分考虑软件应实现的功能效果以及PC机友好的人机界面,将人机界面以及功能融为一体是软件设计的目标。具体步骤基于前面的章节进行:

在Microsoft Virtual C++6.0编程环境下,首先要建立上位机与PLC系统的通讯连接并显示通讯结果,采用load_tool()和unload_tool()函数来实现。如果通讯失败还需要提供故障号以便监控人员进行简单初步的诊断。然后要实现PLC数据的读取,此部分为关键部分也是软件的核心。多次调用db_read(int,int,int*,void*)、d_field_read (int,int,int,void*)等函数对数据块以及IO进行读取,此步需要经过反复调试才能最终运行。由于通讯数据量较大,在设计中必须选择合理的通讯速率,使得既要保证数据量能够及时的上传到上位机,又要减少错误数据包以提高通讯质量。本软件采集的数据总量约为2 kB,上位机的数据刷新周期为5 s,综合比较下最终选择的通讯速率为187.5 kbit/s。

2 实验结果

在VC++6.0编程环境下,设计了基于Prodave的监控软件测试版本。进入软件后,点击加载按钮,软件能够在10 s内与PLC建立通信连接。通信成功后便可读取PLC的数据块以及IO状态;如果出现通信故障,状态区会显示相应的故障信息。数据区可以对PLC的数据进行读取,保存按钮可以将加载的数据保存到指定位置。整个系统的通信速率大约为100 kbit/s,数据的刷新周期设置为5 s,最高刷新周期能达到1 s,很好的满足了监控数据的要求。

3 结语

最终实验结果表明,测试软件能够很好的完成通讯任务,满足挖掘机数据监控的要求。将开发的软件应用于WK系列矿用挖掘机监控系统后,设备维护人员能够对矿用挖掘机进行实时监控,掌握机械设备的最新运行状态,从而及时了解机械设备的健康状态,对设备进行合理的检修维护,降低设备故障造成的停机甚至损失。

猜你喜欢
挖掘机调用上位
挖掘机尿素喷嘴散热改进
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
特斯拉 风云之老阿姨上位
“三扶”齐上位 决战必打赢
基于系统调用的恶意软件检测技术研究
基于ZigBee和VC上位机的教室智能监测管理系统
以新思路促推现代农业上位
露天采矿挖掘机的维修保养
徐工XW1300C大型挖掘机