《物联网框架ServerSuperIO教程》- 23.动态数据接口增长缓存,提升数据输出到OPCServer和(实时)数据库的效率

 22.1   概述及要解决的问题html

      设备驱动有DeviceDynamic接口,能够继承并增长新的实时数据属性,每次通信完成后更新这些属性数据。原来是经过DeviceDynamic接口实体类反射的方式得到最新的实时数据,并输出到关系数据库、实时数据库和OPC Server等接口。git

     可是这种操做方式存在两个问题:1.经过反射的方式,效率不高。2.若是是一个传感器,那么定义的实时数据属性很少;若是是一个站点(能够理解为生产单位或网关层)上传的数据,可能有成千上万监测点,那么不可能在继承DeviceDynamic接口的子类中定义这么多属性。原来的操做方式以下图:github


     为了解决上述问题,在DeviceDynamic接口中定义了DynamicCache属性缓存接口,以KeyValue的方式存储监测数据。也就是说若是设备驱动接收一批监测数据,能够循环放到DynamicCache缓存中,再输出到关系数据库、实时数据库和OPC Server等接口。新的操做方式以下图:数据库


    下面介绍使用过程当中注意的三个地方,设备驱动、配置输出监测点和配置参数等。缓存

22.2  设备驱动

     可能有的网友已经写好设备驱动了,须要在此的基础上,把数据信息放到DynamicCache缓存中。以下代码:网络

if (cr == CommandArray.RealTimeData)
{
    Dyn dyn = (Dyn)obj;
    _deviceDyn.DynamicCache.AddOrUpdate("flow",dyn.Flow);
    _deviceDyn.DynamicCache.AddOrUpdate("signal",dyn.Signal);
}

22.3     配置输出监测点

    在根目录下打开“ServerSuperIO.Tool.exe”工具,在【标签配置】里把设备驱动里DynamicCache缓存中想要输出到关系数据库、实时数据库和OPC Server等接口对应的标准名称增长到配置项中。例如:flow和signal。以下图:框架

22.4     配置参数

    一样打开“ServerSuperIO.Tool.exe”工具,打开【基本配置】。工具

    若是想要把数据输出到OPC Server接口,先安装相应的组件,在“OPC工具和组件”目录中,最后配置以下参数:post


    若是想要把数据输出到关系数据库或实时数据库,配置以下参数:spa


1.[连载]《C#通信(串口和网络)框架的设计与实现》

2.[开源]C#跨平台物联网通信框架ServerSuperIO(SSIO)介绍

2.应用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的总体方案

3.C#工业物联网和集成系统解决方案的技术路线(数据源、数据采集、数据上传与接收、ActiveMQ、Mongodb、WebApi、手机App)

5.ServerSuperIO开源地址:https://github.com/wxzz/ServerSuperIO

物联网&集成技术(.NET) QQ群:54256083 

下载地址:http://www.bmpj.net/thread-14-1-1.html

相关文章
相关标签/搜索