System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及一种数据采集系统及数据采集方法,特别涉及基于协程控制的高性能数据采集方法和采集系统。
技术介绍
1、在目前的工业数据采集场景中,一般需要同时监测大量现场传感器数据。甚至有些应用场所需要同时监测上万的数据采集终端才能再现和处理产线情况。目前的数据采集系统均采用服务器同时连接数据采集终端和数据使用终端,以服务器将数据采集终端采集的数据进行处理和发送到数据使用终端,在数据使用终端进行处理和显示。但基于线程和进程的数据采集传输系统属于阻塞系统,即服务器只能同时处理一组数据,对于多并发事件只能实行轮询处理,一个事件运行时其他时间只能等待,因而需要轮询等候,同一服务器处理数据传输总会出现阻塞。常规通过多进程或多线程加同步阻塞方法,往往只能支撑到数百到上千的并发请求,无法满足高性能需求。
2、当数据采集要求提高是,例如每秒向数万终端采集数据(或相似强度,如每10毫秒轮询数百传感器)时,并发送到数据消费程序,或检测数据是否发生变化,在数据变化及时感知并通知数据消费程序。而如果能采用无阻塞的异步请求的协程控制,并在用户程序中自行调度任务,避免操作系统调度线程或进程时的内存消耗及cpu切换资源、锁的竞争等,同一系统一般至少是可以支撑数十万以上的并发请求,实现多采集终端和多使用终端的数据处理。而目前在工业场景中尚未采取协程控制的数据采集系统和方法出现。
技术实现思路
1、本专利技术的目的在于提供一种基于协程的高性能数据采集系统,同时提供一种上述系统使用的数据采集方法。提高数据采
2、本专利技术的基于协程的高性能数据采集系统,包括数据采集模块、数据采集服务模块和数据消费模块。所述数据采集模块、数据采集服务模块和数据消费模块之间以tcp/ip协议建立通信。所述数据采集模块包括数据采集传感器和数据采集初步处理程序;所述数据采集服务模块包括数据采集服务器和数据采集配置调度程序;所述数据消费模块包括数据处理终端和数据终端处理程序。
3、上述所述的基于协程的高性能数据采集系统中,所述传感器为支持基于tcp/ip的数据采集协议的传感器,包括支持modbus tcp协议的传感器、支持snap7协议的传感器或支持opcua通信协议的传感器,以支持配置协程调度框架。
4、上述所述的基于协程的高性能数据采集系统中,所述传感器为通过plc或扩展模块来支持tcp/ip网络采集协议的传感器。以扩展模块实现其他传感器对tcp/ip网络采集协议的支持。
5、上述所述的基于协程的高性能数据采集系统中,所述数据采集服务模块包括支持协程调度的编程语言或编程框架;协程调度框架确保在网络请求时,程序不被阻塞,并自动切换到另一个协程任务。协程编程框架是协程调度程序的基础,以协程调度框架调度配置异步无阻塞网络的运行。
6、上述所述的基于协程的高性能数据采集系统中,所述协程调度框架为php编程语言的swoole编程框架。
7、上述所述的基于协程的高性能数据采集系统中,所述数据消费模块数据处理终端是工业应用处理终端,包括规则诊断终端、数据展示终端、数据库终端。
8、本专利技术的一种基于协程的高性能数据采集方法,包括以下过程:
9、a:数据采集服务模块通过主程序加载所有待采集的传感器配置,并为其建立tcp/ip通信连接,创建数据采集协程;
10、b:调用无阻塞版本api为传感器发送无阻塞数据采集请求,建立无阻塞数据采集协程,传感器作出数据采集响应采集相关数据;
11、c:数据采集协程判断监测数据类型,如是普通数据则建立无阻塞数据推送请求,将数据传输至数据消费终端;如属于只监测数据变化类型,则进入下一步操作;
12、d:如属于只监测数据变化类型,则与上次数据比较是否有变化,如无变化,则通过异步无阻塞请求再次返回数据采集请求;如有变化,执行数据推送,将数据传输至数据消费终端。
13、上述所述的基于协程的高性能数据采集方法中,所述数据采集协程执行过程包括以下步骤:
14、a:协程调度程序创建数据采集协程1,数据采集协程1发起网络连接请求后,协程调度程序便可转而执行其他协程,待网络连接成功后返回执行协程1,进行发送网络数据;
15、b:协程1发送网络数据过程中可以转而执行其他协程,待协程1发送网络数据完成后,协程调度程序转而执行协程1,执行转为接收网络数据,此过程中协程调度程序再次执行其他协程;
16、c:执行接收网络数据完成后,协程调度程序转而执行协程1,开始关闭网络连接操作,关闭网络连接操作过程中,协程调度程序再洗转而执行其他协程,直至协程1中关闭网络连接完成再返回协程1。
17、本专利技术中基于协程的高性能数据采集处理系统和方法,通过协程框架调度配置程序,实现无需cpu资源的协程调度,进而组建异步无阻塞网络。采用协程的方法,可将回调函数机制封装在协程调度框架内,在用户程序内只需要直接请求,由协程调度框架确保在请求发起后,立即切换到其它协程任务执行,而在请求完成后,回到该协程继续向下执行任务,克服了用户程序中使用层层回调函数导致的晦涩难懂。实现高性能的数据采集及处理。
本文档来自技高网...【技术保护点】
1.一种基于协程的高性能数据采集系统,包括数据采集模块、数据采集服务模块和数据消费模块,其特征在于:数据采集模块、数据采集服务模块和数据消费模块之间以TCP/IP协议建立网络通信;所述数据采集模块包括数据采集传感器和数据采集处理程序;所述数据采集服务模块包括数据采集服务器和数据采集配置调度程序;所述数据消费模块包括数据处理终端和数据终端处理程序。
2.根据权利要求1所述的基于协程的高性能数据采集系统,其特征在于:所述传感器为支持基于TCP/IP的数据采集协议的传感器,包括支持modbus tcp协议传感器、支持snap7协议传感器或支持opcua通信协议传感器之一或组合。
3.根据权利要求1所述的基于协程的高性能数据采集系统,其特征在于:所述传感器为通过PLC或扩展模块来支持TCP/IP网络采集协议的传感器。
4.根据权利要求1所述的基于协程的高性能数据采集系统,其特征在于:所述数据采集服务模块包括支持协程调度的编程语言或编程框架;协程调度框架确保在网络请求时,程序不被阻塞,并自动切换到另一个协程任务。
5.根据权利要求4所述的基于
6.根据权利要求1所述的基于协程的高性能数据采集系统,其特征在于:所述数据消费模块数据处理终端是工业应用处理终端,包括规则诊断终端、数据展示终端或者数据库终端。
7.一种基于协程的高性能数据采集方法,其特征在于包括以下过程:
8.根据权利要求7所述的基于协程的高性能数据采集方法,其特征在于:所述数据采集协程执行过程包括以下步骤:
...【技术特征摘要】
1.一种基于协程的高性能数据采集系统,包括数据采集模块、数据采集服务模块和数据消费模块,其特征在于:数据采集模块、数据采集服务模块和数据消费模块之间以tcp/ip协议建立网络通信;所述数据采集模块包括数据采集传感器和数据采集处理程序;所述数据采集服务模块包括数据采集服务器和数据采集配置调度程序;所述数据消费模块包括数据处理终端和数据终端处理程序。
2.根据权利要求1所述的基于协程的高性能数据采集系统,其特征在于:所述传感器为支持基于tcp/ip的数据采集协议的传感器,包括支持modbus tcp协议传感器、支持snap7协议传感器或支持opcua通信协议传感器之一或组合。
3.根据权利要求1所述的基于协程的高性能数据采集系统,其特征在于:所述传感器为通过plc或扩展模块来支持tcp/ip网络采集...
【专利技术属性】
技术研发人员:陈鹤昊,王磊,沈苗斌,梁健,周建波,柳琦平,郑阳,
申请(专利权)人:上海智能制造功能平台有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。