基于PRODAVE的造粒生产线控制系统研究

2020-10-09 11:07郑剑郝浩刘思君胡恩俊玉
数字技术与应用 2020年8期

郑剑 郝浩 刘思君 胡恩 俊玉

摘要:本文通过C#高级语言开发西门子S7-300PLC的上位机系统,运用西门子提供的PRODAVE软件包解决PC上位机与PLC之间的通讯问题,实现造粒生产线的自动控制。运行发现这种方法能对 PLC数据存储器进行快速准确地读写,控制系统具有良好的动态性能。本文针对造粒生产线的实际要求详细介绍了基于PRODAVE的PC-PLC通讯,同时也阐述了整个造粒生产线控制系统的设计。

关键词:PRODAVE;PLC;造粒生产线;上位机系统

中图分类号:TP273 文献标识码:A 文章编号:1007-9416(2020)08-0003-04

0 引言

在非金属颗粒生产中,造粒对于颗粒质量起决定性作用。从广义上讲造粒就是对粉体、液体等状态原料进行加工,将其成型为特定形状的过程。随着自动化技术的迅速发展,为了提高产品质量和生产效率,厂商纷纷要求引入自动化生产线[1-2]。

在工业控制系统中一般可使用组态软件来完成PLC与上位机的通讯,但难以满足个性化需求。结合造粒生产的实际问题,本文提出了基于Prodave造粒生产线控制系统,通过西门子提供的PRODAVE MPI/IE 6.2模块(下文提及PRODAVE指此版本),解决了上下位机通信问题,实现造粒机生产线的自动控制;上位机在Win7环境下采用C#语言编程,实现对造粒生产线全过程的实时监测、故障报警、统计分析、视频监控等方面的功能;下位机主要由PLC来承担动作执行及数据采集等功能。

1 造粒机生产线功能需求分析

造粒生产线控制就是按照指定的配方比例,混合各种原料,经过充分混合后进行高温密炼加工,然后由造粒机生产特定形状的颗粒,最后打包并通过机器人在指定位置码垛,完成整个生产过程[3-4]。如图1为造粒机生产线加工过程图。

作为一套完整的工业生产线控制系统,不仅要求精准的动作控制,还要求能够正确处理一些异常情况;同时要能实时的查看每个工位,每个设备的工作状态及重要的参数,获取生产现场的视频监控,对于出现异常数据及时的报警,并且做出相应的记录;为了便于对员工的绩效考核,统计出个人完成工作的数量及质量。最后还需将产品的关键信息存入后台数据库中支持历史查询等功能。

2 基于PRODAVE的PC和PLC之间的通讯

PRODAVE MPI/IE是西门子提供的专门用于解决PC与西门子PLC的通讯问题的软件包,支持通过“DB_ Read/Write”、“Field_Read/Write”方式与西门子S7系列PLC进行数据传输。通过PRODAVE软件包实现上位机对PLC的读写速度快,而且传输正确率高[5-6]。在造粒生产线控制系统调试过程中,大大缩短开发周期。

2.1 PRODAVE通信流程

PRODAVE软件提供了丰富的基于Windows操作系统的DLL函数,为开发人员解决PLC和PC通讯的问题提供了极大地便利,开发人员可以通过PRODAVE建立与PLC的通讯。如图2为通信流程图。

2.2 建立PC-PLC通讯

2.2.1 设置PG/PC接口

首先设置上位机PG/PC接口。本项目选用CP5611通讯卡,PCI板卡与PLC的DP口通过PROFIBUS电缆连接,然后在PC上安装CP5611驱动程序,对PG/PC接口进行设置,在访问路径标签下选择对应的CP5611(PROFIBUS)即可。

2.2.2 通讯实现

(1)建立连接。由于PRODAVE库函数中用到了union结构,而C#无此类型需要进行转化。共同体结构占用同一个开始地址,结束地址取决于其中最长的变量长度,结合本项目union占据6个byte的长度,因此使用C#中的System.Runtime.InteropServices.Marshal類为其分配6个byte长度的内存,声明一个长度为6的byte类型数组。

然后调用LoadConnection_ex6连接PLC,返回值为0则连成功。调用SetActiveConnection_ex6激活连接。激活完成之后即可进行数据的传输。如果上述过程连接或激活不成功可调用GetErrorMessage_ex6获取返回值用以指示错误位置。

(2)实现读写。由于PLC中数据储存格式与PC中不一致,PC中32位Int整形的高位在左,低位在右,而PLC中正好与之相反,因此在写入之前和读取之后要对读写的内容做相应的格式转换。

这里以PLC中DB2.DBD16的位置写入一个DINT类型的数据a为例说明此问题。DINT型是32位的占据4个字节,该数据占据了16~19号地址位,分别写入的内容如表1所示。

然后将转换后的结果放在一个数组中赋值给field_ write_ex6函数中对应的参数,执行field_write_ex6即可写入成功。同理对调用field_read_ex6函数读出来的数组也要进行上面相反的格式转换上位机才能正确显示。

封装是C#等面向对象程序设计语言的重要特征之一,为了便于在主程序中调用读写函数,对读写函数进行封装。对DB数据块中D、I、M、T、Z类型Write/Read封装,封装后只需填写参数要即可完成写的操作,如果返回值为0则写入成功,反之出现故障,按返回值来查询出现故障的原因。

(3)断开连接。PRODAVE在一个进程中只能与一台PLC建立连接,如果不断开连接会导致在下一次连接无法成功。为了防止上位机通讯系统异常或死机等异常发生兼顾通信效率,每一次完成读写操作前先检测是否连接,退出系统调用UnloadConnection_ex6函数断开与PLC的连接。

(4)C#通讯中定时器的使用。为了实时监测生产线各设备工作状况,上位机需要周期性的读取PLC寄存器中的数据,因此定时器的精度对数据的采集有很大程度的影响。

C#中共有三种timer 来实现定时功能:

①System.Windows.Forms.Timer

②System.Timers.Timer

③System.Threading.Timer

第一种也就是从工具箱中拖拽到WinForms窗体上的定时器timer,它是通过Windows消息机制实现的,由于消息的优先级别比较低,容易造成数据的丢失。另一方面由于占用UI线程,如果timer_Tick事件代码过长则会引起主窗体的卡顿,定时精度只能达到50ms左右,定时不准确。另外两种timer类似,都是开启独立的计时线程计时精准,也不影响UI线程但使用时需要注意跨线程的操作。本系统采用第二种timer来实现定时采样。

3 造粒生产线控制系统设计

造粒生产线控制系统有上下位机两部分组成,上位机采用C#高级语言编程,在VS2010中开发;下位机使用西门子S7-300PLC以及相应的模块;两者通过PRODAVE实现数据的传输。

3.1 硬件连接

本控制系统通过访问SQL数据库获取配方的原料种类和添加质量以及生产过程中所需要的工艺参数,另一方面通过工业以太网和下位机PLC相连接完成数据传输[7]。硬件连接如图3所示。

3.2 软件结构

上位机主要充当用户与下位机之间的媒介。本系统上位机软件采用C#的三层架构技术来设计。表示层是直接呈现给用户的,也就是软件界面的设计;业务逻辑层是结合具体的情况对相应数据的业务逻辑处理,供表示层调用;数据访问层是对数据库的直接访问与操作,供业务逻辑层调用。结构如图4所示。由于使用三层架构,本系统具有良好的开放性和可扩充性,维护和升级方便,同时安全性也比较高。

3.3 功能模块

造粒生产线控制系統,主要功能模块如图5所示。用户管理用于对用户身份、权限的管理;生产计划管理,主要对生产计划进行管理;工艺管理是对生产过程工艺参数的管理;过程监控是对生产数据、设备状态的显示、故障告警及各工位的视频监控;数据报表是根据管理需要开发对应的报表,实现报表的自动生产;数据库管理主要是对数据库的备份、还原等常规管理。

4 结语

调试表明PRODAVE一次连接与断开PLC的时间在200ms左右,读取一条数据时间0.7ms左右,因此要尽可能一次连接完成所有读写任务。此读写速度足以满足造粒生产线控制系统的实时性要求。

工程实际应用表明本文提出的基于PRODAVE的造粒生产线控制系统从生产实际出发,有效地解决了造粒生产中工艺数据和设备信息难以有效结合的问题,有效地提高了生产效率,降低了加工工人的劳动强度,进一步提高了造粒生产线的自动化水平。

参考文献

[1] 杨文亮.烟花自动生产线及其造粒系统的设计与研究[D].天津:河北工业大学,2014.

[2] 李亚军.集成过程分析技术和群体粒数衡算模拟的造粒过程决策支持系统的研究[D].广州:华南理工大学,2018.

[3] 杨旭东,胡骏马,王志磊,等.基于PLC的混合造粒控制系统设计[J].机械与电子,2017,35(1):36-38.

[4] 于洋.基于PLC的造粒过程控制系统设计[J].微型电脑应用,2019,35(4):102-104.

[5] 白鹏飞,齐岩磊,陈棫端,等.基于Visual C++和PLC的风量监控系统的设计[J].机电工程技术,2017,46(5):103-105.

[6] 王琳,尹鹏,武建新,等.基于PRODAVE通讯的柔性制造仿真系统设计[J].制造技术与机床,2019(3):36-39.

[7] 吉孟兰,何俊强.一种矿用挖掘机PLC与上位机通信软件的设计[J].山西冶金,2018,41(5):22-24.