基于VC++的S7-300PLC高速采集系统设计

2017-05-10 07:02倪福生滕俊迪
计算机测量与控制 2017年4期
关键词:实验台河海大学泥沙

蒋 爽,倪福生,滕俊迪,戴 伟

(1.河海大学 疏浚技术教育部工程研究中心,江苏 常州 213022;2.河海大学 机电工程学院,江苏 常州 213022)

基于VC++的S7-300PLC高速采集系统设计

蒋 爽1,2,倪福生1,2,滕俊迪1,2,戴 伟1,2

(1.河海大学 疏浚技术教育部工程研究中心,江苏 常州 213022;2.河海大学 机电工程学院,江苏 常州 213022)

由于进行疏浚实验时,泥泵扬程、真空和管道流速、浓度等关键参数的变化较快,为了更为准确地研究泥泵性能和管道输送特性,需要进一步提高泥砂输送实验平台的数据采集和存储速度;下位机S7-300PLC控制系统选择了利用逐次逼近法进行采样的高速采集模块,使其AD转换速度缩短至μs级,同时采用中断定时技术,保证了传感器数据每隔50ms更新、缓存一次,并通过OPC通讯协议将采样信号传送至上位机;上位机软件采用多线程技术保证采集的连续性和可靠性,同时采用顺序存储标志位确保Excel中存储的数据顺序与实际变化完全一致,解决了存储时易造成的数据重复、跳变等问题;通过对多个传感器的长时间采集、存储实验发现,在生成的Excel报表中数据的采集次数恒定为20次/秒,且无重复、跳变现象,满足了疏浚泥沙实验对数据采集系统的要求。

高速采集;可编程逻辑控制器;多线程;疏浚

0 引言

河海大学疏浚泥沙输送实验台主要用于大型疏浚泥泵的能量特性、磨损特性、汽蚀特性研究,以及泥沙在管道内的高浓度、长距离输送工艺开发等[1-3]。由于进行各类疏浚实验时,泥泵扬程、真空和管道流速、浓度等关键参数的变化速度较快,要求PLC控制系统的采集周期不能大于100 ms,才能实时反映出实验变化规律,尤其在研究泥沙启动或管道堵塞的临界流速时,所需的采集周期更短。

实验台控制系统所选用的西门子S7-300系列PLC通常配合WINCC等组态软件进行现场数据的采集,并将其存储在WINCC数据库或进行归档或显示在界面上。但WINCC的最小刷新周期只有250 ms,远远大于疏浚泥沙实验所需的采样周期。因此,本文利用VC++软件数据处理速度快、开放性和灵活性好、软件成本低等特点[4-5],配合OPC(OLE for Process Control)通讯技术和多线程技术,开发上位机监控程序。同时下位机选用S7-300PLC高速采集模块,并采用中断定时的方法进行数据采集程序的循环,最终实现了实验数据20次/秒的稳定高速采集、存储。

1 高速采集整体方案设计

VC++软件和S7-300PLC构成的监控系统进行数据采集时,通常采用普通的SM331模块进行模数转换,并利用PLC的定时器功能实现数据在CPU中的缓存,然后通过以太网模块和OPC通讯协议,将数据传送至上位机VC++程序,实现数据的显示与存储[6]。这种方式通常应用于每秒10次以下的数据采集,当进一步提高采集速度时,会出现以下4个方面的问题:首先是普通的SM331模块采用积分转换的方式,模数转换时间较长;其次,PLC中定时器定时精度较低,不能保证更短间隔时间的精确循环采集;再次,PLC采集周期与OPC刷新周期起始时间的不一致,可能会造成上位机存储数据时局部次序颠倒,当数据变化较快时,局部数据的次序混乱对数据分析的影响更大;最后,上位机如果采用单线程技术,当同时实现数据的高速采集、显示、存储和多个现场设备的控制、调节时,很容易造成线程的超负荷运行,使得数据丢失甚至程序的崩溃。

因此,针对上述问题,本文从PLC采集模块选型、PLC定时采集方式、采集周期和刷新周期的一致性以及上位机的线程处理方式等4个方面进行了改进设计,原采集方式和改进后的采集方式对比如图1所示。

图1 原有采集方式和改进后采集方式的对比图

2 下位机数据采集系统设计

泥砂输送实验平台数据采集系统的下位机主要完成对泥泵及管道沿线共约30个模拟量信号的采集、缓存和上传,需要在对PLC采集模块工作原理充分了解的基础上,进行高速采集模块的选型设计,同时对CPU的定时功能进行分析,实现精确的定时循环采集。

2.1 高速采集模块选型

S7-300PLC的普通模拟量采集模块采用的是积分方法进行A/D转换[7],即将输入电压进行积分得到平均值,并根据基准电压值将平均电压转化为数字量,采集原理如图2(a)所示。积分方法采集转换的数据精度较高,但采集速度较慢,如果选择常用的50 Hz滤波频率,模数转换的时间为196 ms[8],即使不考虑通讯、存储等环节的时间损耗,1 s内的最高采样次数也只能达到5次,远远不能满足实验要求。

因此,本文选用了采用逐次逼近法进行采样的高速采集模块,即通过将寄存器发生的状态值,经过数模转化器转化为模拟量,并在比较器中与初始值V0进行比较,根据比较的结果最终在缓存寄存器得到数字量的值,具体的转换原理如图2所示。相比较积分型转换模块,采用高速采集模块后,其转换速度可达μs级,在整个采样存储周期中所耗费的时间几乎可以忽略,只是在精度方面有所损失(分辨率小于<12位),但对于疏浚泥沙输送实验研究已经足够。

图2 积分型和逐次逼近型AD转换原理图

2.2 中断定时采集

高速采集模块的选择解决了AD转换时间过长的问题,但在利用程序定时器进行循环采集时发现,定时器的定时时间实际为设定时间和程序运行时间之和。通过查看OB1块程序的运行时间,如图3所示,可以看出扫描循环监视时间为1~4 ms不等,也就是定时器所设置的定时时间都会在1~4 ms之间变化,因此要实现精确的50 ms数据更新,这种方式难以满足。

图3 PLC程序扫描周期监测图

相比之下,中断组织块可以实现更为精确的定时操作,因为中断发生时,由操作系统自动调用中断程序,而非程序块本身,程序循环周期排除了不断变化的扫描周期的影响,定时间隔恒定不变,定时精度较高。控制系统选用了定时中断组织块OB32,并设定时间间隔50 ms,保证了数据每隔50 ms更新一次。相应OPC Scout的数据刷新周期设定为最短的250 ms,这样就保证了一个OPC刷新周期内采集到同一变量的5个不同时刻数据,然后在每次OPC数据刷新时,传送至上位机进行数据的显示和存储[8]。

3 上位机数据显示存储系统设计

为了实现数据的稳定显示和存储,上位机采用多线程技术保证采集的连续性和可靠性,同时采用顺序存储程序确保Excel中存储的数据顺序与实际变化的数据完全一致。

3.1 数据存储线程设计

使用多线程处理多任务系统时,是将任务分布到几个独立线程中运行[9-10]。本文采用专有线程实现数据存储,而主线程用来实现数据显示、变频器和阀门控制等。考虑到现有计算机均配置有多核CPU,所以无需对某条线程进行挂起操作,主线程与数据采集线程同步运行,消息处理级别相同。数据存储线程的具体实现步骤如下:

1)构建线程控制函数:线程控制的全局函数声明extern DWORD WINAPI ThreadProc1(LPVOID lpParam);考虑到上位机需要两个界面同时控制数据存储,所以多线程函数使用全局函数。

2)启动线程,创建Excel,存储数据:点击“开始保存”按钮,程序调用OnStartSave()函数,然后通过AfxBeginThread()函数,启动线程,进行数据的持续写入。实验结束后,点击“停止保存”按钮,进行Excel表格存储。

3)中止线程:停止保存数据之后,直接在线程函数内部使用AfxEndThread()来中止自身的运行,并释放线程所占用的资源,释放内存。

3.2 顺序存储程序设计

一个OPC刷新周期内的数据采集过程如图4所示。图中ABCDE代表的是第一个OPC刷新周期内PLC采集到的5个数据,FGHIJ代表下一个OPC刷新周期内采集到的数据。K代表PLC中的循环状态字,用以确保250 ms内对同一数据进行5次不同时间的采集。

图4 实验数据的采集及存储流程图

由于PLC采集周期(50 ms)与OPC刷新周期(250 ms)起始时间点的不一致,存储到Excel中的数据可能产生图4右边所示的几种不同结果。其中ABCDE的顺序存储是我们期望出现的结果,但后面的4种数据存储情况也会随机出现,造成数据的非正常跳变,给实验数据的分析带来障碍。因此,本文将PLC循环状态字K发送到上位机,使其在实现PLC数据循环采集的同时,也能够实时反映最新数据的位置。上位机根据K值重新调整数据在Excel中的存储顺序,使得实验数据与实际变化情况符合。

4 实验调试

本文调试时对泥沙输送实验台的22个现场数据进行了4小时的数据采集,并记录每间隔半小时的数据采集次数,绘制出如图5中所示的曲线,图中纵坐标为采集次数,横坐标为采集时间,两条曲线分别代表采集方式改进前后的采集次数,曲线顶端的公式即为采集次数和时间的关系。

图5 改进前后的采集次数对比曲线

通过曲线可以很明显地看到,改进后采集系统的拟合曲线斜率大于原系统。根据拟合曲线公式计算出1小时数据采集次数为75493-3905=71588次,即1 s采集到的数据次数为71588/3600=19.88,符合20次/s的采集速度要求。但由于条件所限,没有进行更长采集时间的实验验证,也没有针对多种疏浚工况下的实验数据进行多组别的采集验证,这些都有待于进一步的研究分析。

5 结束语

本文对基于VC ++的S7-300PLC高速采集技术进行了分析研究,针对高速采集时可能出现的数据重复、跳变等问题,给出了高速采集模块、中断定时和OPC缓存及多线程技术相结合的解决方案,实现了对多个传感器信号20 次/ 秒的高速、稳定采集及存储。本系统已经成功应用于河海大学泥砂输送实验台监控系统,在生成的Excel报表中可以看到数据的采集次数恒定为20 次/ 秒,且无重复、跳变现象,满足了疏浚泥沙实验对数据采集系统的要求,也为进一步提高PLC系统的数据采集速度提供了新的思路。

[1] 倪福生,赵立娟.粗砂水力输送多峰阻力特性[J].中国港湾建设,2010,(1):23-24.

[2] 杨 斌. 泥沙输送实验台控制系统的研制[D]. 南京:河海大学,2011.

[3] 余方超. 基于冗余技术的疏浚实验台控制系统研制[D]. 南京:河海大学, 2014.

[4] 王 欢,井社民. 利用VC++ 6.0 实现上位机与PLC 通信[J]. 科技创业家,2011(5):38-40.

[5] 李丰堂,谢明红. 基于VC++的PC与PLC的通信软件设计[J]. 计算机技术与发展,2008,18(8):219-222.

[6] 倪福生,余方超,杨 斌. 基于 S7-300 PLC 的泥沙输送实验台数据采集系统设计[J]. 电子测试,2013,11: 012.

[7] 廖常初. 西门子工业通讯网络组态编程与故障诊断[M].北京:机械工业出版社,2009.

[8] 王纪森, 杨洪音, 梁海毅.液压综合试验台测控系统设计[J].计算机测量与控制,2011,19(4):759-761.

[9] 骆 斌, 费翔林. 多线程技术的研究与应用[J]. 计算机研究与发展, 2000, 37(4): 407-412.

[10] 贾广雷, 刘培玉. 多线程技术及其在串口通信中的应用[J]. 计算机工程,2003,29(1): 247-24.

DesignofHighSpeedDataAcquisitionSystemofS7-300PLCBasedonVC++

JiangShuang1,2,NiFusheng1,2,TengJundi1,2,DaiWei1,2

(1.EngineeringResearchCenterofDredgingTechnology,HohaiUniversity,Changzhou213022,China;2.CollegeofMechanicalandElectricalEngineering,HohaiUniversity,Changzhou213022,China)

In order to study the performance of the pump and the characteristics of transporting slurry through pipeline more accurately, the speed of data acquisition and storage of the sand transport test stand should be increased with quick change of the key parameters, such as pump head, vacuum degree, velocity in pipeline and concentration during dredging experiment. In S7-300PLC control system, the time of AD conversion can be shorten to microsecond by using high speed acquisition modules, which sampling by successive approximation method. The timer interruption is used for updating and saving sensors’ data every 50 ms. Then the communication protocol of OPC is used to transmit the signals to the host computer. The multi thread technology is used in the PC software to keep the process of collecting data continuously and reliably, and the sequential storage flag is used to ensure that the sequence of data stored in Excel is consistent with the actual changes, then the problems such as data duplication, jumps, can be solved in the host computer. Through long time collection and storage experiment by multi-sensors, the results show that the stable data collection and storage with the speed of 20 times per second in Excel can be achieved in the improved system.

high speed data acquisition; PLC; multi thread technology; dredging

2016-11-05;

2016-12-08。

蒋 爽(1981-),男,河南南阳人,在读博士,实验师,主要从事疏浚技术自动化方面的研究。

倪福生(1961-),男,安徽无为人,教授,博士生导师,主要从事疏浚工程“土、机、水”相互作用基础理论研究、疏浚装备关键机具研究开发和疏浚工艺及仿真研究。

1671-4598(2017)04-0156-03DOI:10.16526/j.cnki.11-4762/tp

TP

A

猜你喜欢
实验台河海大学泥沙
泥沙做的父亲
《河海大学学报(哲学社会科学版)》征稿简则
《河海大学学报(哲学社会科学版)》2022年重点选题方向
《河海大学学报(哲学社会科学版)》征稿简则
《河海大学学报(哲学社会科学版)》2021年重点选题方向
基于PLC的液压综合实验台在实验教学中的应用
超大型油船防泥沙设计
电控柴油机排气冲程喷水实验台的设计及NO减排效果
燃气轮机化学回热实验台总体控制系统研究
多风路空冷汽轮发电机PIV流场测试实验台研发