基于PLC和PC的快速自动化控制系统的研究

时间:2022-08-25 12:52:22

基于PLC和PC的快速自动化控制系统的研究

摘要本文介绍西门子S7-400 PLC与PC上位机通信软件的设计。使用C++语言,通过PRODAVE软件包实现PC上位机与PLC的以太网通信,实现PC上位机对PLC数据的高速读写操作。

【关键词】C++ PLC PRODAVE 以太网 通信

1 引言

自动化技术的发展使得大规模、大批量生产成为可能,为了提高生产效率和产品质量,越来越多的厂家需要引入自动化生产线。自动化生产线中,上位机需要对底层设备进行实时数据采集与控制。

目前,在中小型自动化生产线控制系统中通常采用专业工控组态软件开发上位机程序。组态软件的开发环境相对封闭,灵活性较差,通信速度较慢,且无法像高级编程语言那样可以灵活、简便地利用各种资源来编写拥有多种功能的上位机程序。为了克服这些缺陷,寻找一种使上位机系统不通过组态软件就能够运用工业以太网与PLC进行数据通信的方式变得非常有必要。

本文针对工业以太网技术,以西门子S7-400 PLC为底层控制装置,给出一种PC上位机与PLC实现以太网快速通信的方法。

2 系统架构

PLC通过PROFIBUS、MODBUS等协议与设备相连,设备的控制点保存在DB块中。PC通过以太网与PLC通讯,通过快速读写DB块进行数据交换,完成自动化控制。PC同时可以对设备进行监控、数据采集、数据分析、图形化显示以及基于复杂工艺条件的控制。

软硬件条件:PC工控机,Windows 7专业版操作系统,英特尔双核3.40GHz CPU,2G内存,百兆网卡,C++开发语言,PRODAVE软件包;PLC型号为S7-400-3 PN/DP,DB块大小为2500字节。

3通信软件包PRODAVE

PRODAVE是西门子开发的,供第三方直接调用,用于PC与S7系列PLC之间直接进行数据通信的软件开发包。

3.1 PRODAVE特点

PRODAVE向Windows 统提供了一个接口函数库(DLL或LIB库),用来解决PLC与PC之间数据交换的需求,它同时支持C#、C++、Python等多种编程语言,具有以下特点:

(1)使用简单方便。编程人员不需要熟悉复杂的通信协议。通过调用PRODAVE 提供的动态链接库(DLL)中的函数就可以实现通信。

(2)上位机用通信函数直接读写PLC中的数据,用户不用编写PLC一侧的通信程序。

(3)6.2版增加了对Windows 7操作系统的支持以及读取PDU大小的函数。

3.2 调用的函数说明

LoadConnection_ex6函数用于建立PC和PLC的连接,UnloadConnection_ex6函数用于断开PC和PLC的连接,db_read_ex6函数对PLC的DB块进行读取,db_write_ex6 函数对PLC的DB块进行写入,defrag_ex6函数对PLC内存中的所有块进行碎片整理和压缩,GetErrorMessage_ex6函数将返回的错误码转换成对应的文字说明。

4 PC程序

4.1 程序逻辑

(1)首先调用LoadConnection_ex6连接PLC;

(2)由于PLC无法主动告知PC自身数据的变化,因此只有在程序中通过循环语句,不停地扫描PLC中的数据和写入PC更新的控制数据,从而实现对设备的实时控制。程序每次循环依次调用db_read_ex6,db_write_ex6,defrag_ex6,sleep 20ms,循环过程如有调用失败,通过GetErrorMessage_ex6记录错误信息;

(3)循环结束,调用UnloadConnection_ex6断开PLC连接。

4.2 运行结果

(1)运行一周记录中未发现通信错误;

(2)网络平均使用率:0.6%;

(3)CPU平均占有率:3.5%;

(4)db_read_ex6的平均时间:46ms;

(5)db_write_ex6加dbfrag_ex6的平均时间:165ms;

(6)运行测试表明,db_read_ex6和db_write_ex6的时间与DB块大小几乎无关;

(7)循环中若不调用defrag_ex6,则多次读写后,PLC会报内存不够的错误。

5 总结

程序通过调用PRODAVE软件包C++接口实现与PLC的通信,完成对PLC的DB块的快速数据交换,从而实现对设备的控制从PLC转移到PC上位机。PLC中2500字节的DB块,对于中小型自动化控制系统已完全够用。利用PC软件开发的快速性和简易性,可以快速地实现更加复杂、智能的自动化控制系统,从而极大提高自动化控制系统的开发效率。

在程序测试过程中,我们也发现了PRODAVE开发包的一个局限,就是同一个进程中,它不支持同时并联多个PLC,同一时间只能同一个PLC进行通信。要同时并联多个PLC,有二种方法。一种是PC只与主控PLC通信,主控PLC再并行与多个PLC通信,这种方法的优点是PC程序较简单,缺点是增加了PLC架构的复杂性,还可能会使主控PLC数据超出DB块的容量限制;第二种方法是PC启动多个进程并行与多PLC进行通信,再将结果汇总到总控程序中,这种方法的优点是各个PLC独立运行,缺点是程序结构复杂化。

在实际开发中,本架构还有几点需注意或可优化:

(1)对于实时性要求特别高的一些跨设备的联动,控制逻辑必须放在PLC端实现,比如对一些伺服驱动器的控制;

(2)PC中如果多线程对设备的点进行操作,如果操作不是原子操作,必须进行加锁操作,从而会影响操作实时性,须谨慎对待。

(3)为了减少网络通信量,可以优化对PLC数据的写操作,如果操作没有更新数据,不必每次循环都写入数据到PLC。

参考文献

[1]王朝夕,邓丽,费敏锐,杨文强.分布式自动化生产线控制系统中上位机与PLC之间的通信方法[J].仪表技术,2013(11):24-28.

[2]胡满,胡宁,刘玉霞.PRODAVE在S7-200 PLC监控系统中的应用.自动化技术与应用[J].2013,32(10):33-35.

[3]SIMATICPRODAVE MPI/IE V6.2Manual01/2012 A5E03681152-01.

作者单位

上海理想万里晖薄膜设备有限公司上海市201203

上一篇:Windows中JDK的安装及Java开发环境的设置 下一篇:探析新形势下PLC在电气自动化中的应用