《连载 | 物联网框架ServerSuperIO教程》- 17.支持实时数据库,高并发保存测点数据。附:3.4 发布与版本更新说明。
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍
《连载 | 物联网框架ServerSuperIO教程》1.4种通讯模式机制。
《连载 | 物联网框架ServerSuperIO教程》2.服务实例的配置参数说明
《连载 | 物联网框架ServerSuperIO教程》- 3.设备驱动介绍
《连载 | 物联网框架ServerSuperIO教程》-4.如开发一套设备驱动,同时支持串口和网络通讯。
《连载 | 物联网框架ServerSuperIO教程》- 5.轮询通讯模式开发及注意事项。
《连载 | 物联网框架ServerSuperIO教程》- 6.并发通讯模式开发及注意事项
《连载 | 物联网框架ServerSuperIO教程》- 7.自控通讯模式开发及注意事项
《连载 | 物联网框架ServerSuperIO教程》- 8.单例通讯模式开发及注意事项
《连载 | 物联网框架ServerSuperIO教程》- 9. 协议过滤器,解决一包多发、粘包、冗余数据
《连载 | 物联网框架ServerSuperIO教程》- 10.持续传输大块数据流的两种方式(如:文件)
《连载 | 物联网框架ServerSuperIO教程》- 11.实现设备(驱动)与设备(驱动)交互和级联控制。
《连载 | 物联网框架ServerSuperIO教程》- 12.服务接口的开发,以及与云端双向交互
《连载 | 物联网框架ServerSuperIO教程》- 13.自定义视图显示接口开发,满足不同的显示需求
《连载 | 物联网框架ServerSuperIO教程》- 14.配制工具介绍,以及设备驱动、视图驱动、服务实例的挂载
《连载 | 物联网框架ServerSuperIO教程》- 15.数据持久化接口的使用
《连载 | 物联网框架ServerSuperIO教程》- 16.OPC Server的使用步骤
目 录
17.支持实时数据库,高并发保存测点数据... 2
17.1 概述... 2
17.2 ServerSuperIO与实时数据库对接... 4
17.2.1 继承动态接口,并设置持久化器... 4
17.2.2 增加设备驱动... 5
17.2.3 配制标签属性... 6
17.2.4 安装实时数据库... 7
17.2.5 配置实时数据库参数... 7
17.2.6 运行程序... 8
17.3 注意事项... 8
17.4 视频演示... 8
17.支持实时数据库,高并发保存测点数据
17.1 概述
实时数据库系统是开发实时控制系统、数据采集系统等的后台支撑软件。大量使用实时数据库系统进行控制系统监控,系统先进控制和优化控制,并为企业的生产管理和调度、数据分析、决策支持及远程在线浏览提供实时数据服务和多种数据管理功能。实时数据库已经成为企业信息化的基础数据平台,可直接实时采集、获取企业运行过程中的各种数据,并将其转化为对各类业务有效的公共信息,满足企业生产管理、企业过程监控、企业经营管理之间对实时信息完整性、一致性、安全共享的需求,可为企业自动化系统与管理信息系统间建立起信息沟通的桥梁。
实时数据库的一个重要特性就是实时性,包括数据实时性和事务实时性。数据实时性是现场IO数据的更新周期,不能不考虑数据的实时性。一般数据的实时性主要受现场设备的制约,特别是对于一些比较老的系统而言,情况更是这样。事务实时性是指数据库对其事务处理的速度。它可以是事件触发方式或定时触发方式。事件触发是该事件一旦发生可以立刻获得调度,这类事件可以得到立即处理,但是比较消耗系统资源;定时触发是在一定时间范围内获得调度权。
系统框架示意如下图:

ServerSuperIO作为物联网通讯框架,是系统体系化建设的关键节点,同时也需要后台持久化服务的支持。实时采集传感器的点数据,用实时数据库对采集点数据进行时序存储是最理想的。
通过持久化接口进行存储操作,接口示意如下图:

结构示意如下图:

17.2 ServerSuperIO与实时数据库对接
使用过程比较简单,在二次开发设备驱动过程中,继承动态接口实现自定义属性保存实时数据;通过配制工作把设备驱动实现自定义的属性映射成Tag标签,然后设置持久化器;设备通讯后设备驱动会把实时数据更新到实时数据库中。
17.2.1继承动态接口,并设置持久化器
在设备驱动中实现临时保存数据的动态接口,可以把流量或信号之类的数据定义成相应的属性名称,每次采集到数据后更新相应的属性。
代码如下:
public class DeviceDyn:DeviceDynamic
{
public DeviceDyn() : base()
{
}
public override string GetAlertState()
{
throw new NotImplementedException("无报警信息");
}
private float Flow {set;get;}
private float Signal {set;get;}
}
开发好动态数据属性后,在设备驱动的初始化中设置该类持久化器,代码如下:
public DeviceDriver() : base()
{
_devicePara = new DevicePara();
_deviceDyn = new DeviceDyn(); //用实时数据库持久化动态数据
_deviceDyn.InitDataPersistence(new RDBPersistence()); _protocol = new DeviceProtocol();
_contextMenuComponent=new ContextMenuComponent(); }
当然,设备驱动的开发不仅仅包括这些,具体请参见以前的教程。
17.2.2增加设备驱动
运行“ServerSuperIO.Tool.exe”工具,单击【基本配置】菜单。把开发好的设备驱动程序集在配置工具中进行信息配置,证明当前的设备驱动在平台上可以运行,如下图:

上面配置的是程序集的基本信息,可供多个设备驱动实例使用。设备驱动在平台下运行,还需要进行实例化(具体的通讯实例),那么就要挂载设备驱动。挂载过程:创建服务实例,在服务实例下挂载可运行的设备实例。如下图:

17.2.3配制标签属性
运行“ServerSuperIO.Tool.exe”工具,单击【标签配置】菜单,把刚设备挂载的可运行设备驱动的动态数据接口的属性映射成Tag标签。如下图:

17.2.4安装实时数据库
下载“实时数据库安装包及二次开发包.rar”(下载地址)并进行安装,安装之后有服务管理器和企业管理器,如下图:
。
17.2.5配置实时数据库参数
运行“ServerSuperIO.Tool.exe”工具,单击【基本配置】菜单,启动OPC Server服务。如下图:

17.2.6运行程序
可以运行“ServerSuperIO.Host.exe”或“ServerSuperIO.UI.exe”的宿主程序,也可以运行自已二次开发的主程序。
17.3 注意事项
ServerSuperIO服务实例的名称就是实时数据库的点表名称,在配置服务实例名称的时候尽量使用字符和数字。
17.4 视频演示
2.[开源]C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍
2.应用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的整体方案
3.C#工业物联网和集成系统解决方案的技术路线(数据源、数据采集、数据上传与接收、ActiveMQ、Mongodb、WebApi、手机App)
5.ServerSuperIO开源地址:https://github.com/wxzz/ServerSuperIO
物联网&集成技术(.NET) QQ群:
下载地址:http://www.bmpj.net/thread-14-1-1.html
《连载 | 物联网框架ServerSuperIO教程》- 17.支持实时数据库,高并发保存测点数据。附:3.4 发布与版本更新说明。的更多相关文章
- 《连载 | 物联网框架ServerSuperIO教程》- 16.OPC Server的使用步骤。附:3.3 发布与版本更新说明。
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》1.4种通讯模式机制。附小文:招.NET开发,结果他转JAVA了,一切都是为了生活
参考文章: 1.SuperIO通讯框架介绍,含通信本质 2.C#跨平台物联网通讯框架ServerSuperIO(SSIO) 一.感慨 上大学的时候,没有学过C#,花了5块钱在地坛书市买了一本教程,也就 ...
- 《连载 | 物联网框架ServerSuperIO教程》- 17.集成Golden实时数据库,高并发保存测点数据。附:3.4 发布与版本更新说明。
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》-4.如开发一套设备驱动,同时支持串口和网络通讯。附:将来支持Windows 10 IOT
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》- 18.集成OPC Client,及使用步骤
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》- 3.设备驱动介绍
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》- 15.数据持久化接口的使用。附:3.2发布与版本更新说明。
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》2.服务实例的配置参数说明
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制 一.综述 SuperIO(SIO)定位 ...
- 《连载 | 物联网框架ServerSuperIO教程》- 5.轮询通讯模式开发及注意事项。附:网友制作的类库说明(CHM)
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
随机推荐
- HUST 1586 数字排列
1586 - 数字排列 时间限制:1秒 内存限制:128兆 91 次提交 36 次通过 题目描述 现有n个k位的数字,你的任务是重新安排数字每一位的位置,使得重新安排后这n个数字中最大的数字和最小的数 ...
- 20150817---成长日记1---DelayQueue&&Delayed&&Other
今天第一次接触DelayQueue,源于项目中的话单解析入库的拆分线程中引入,首先简单了解一下DelayQueue: DelayQueue是一个无界阻塞队列,只有在延迟期满时才能从中提取元素.该队列的 ...
- Android开发9:网络访问&Web服务开发
前言 啦啦啦各位小伙伴们好~ 一起进入我们今天的主题.今天我们将和大家学习网络访问和Web服务开发的相关知识,一起学习熟练使用 HttpURLConnection 访问 WebService,熟悉使用 ...
- maven引用net.sf.json-lib
json-lib提供了两个jdk版本的实现, json-lib-2.1-jdk13.jar和json-lib-2.1-jdk15.jar <dependency> <gro ...
- JNI调用的helloworld(JNI_OnLoad映射方式)
本示例展示JNI的基本示例,helloworld级别的,不过是用JNI_OnLoad映射的方式. 直接看代码,先看包含native method的Person.java的代码: package hel ...
- ZOJ 1492 Maximum Clique 搜索最大团
ZOJ1492 题意:给一个无向图 求最大团的大小.节点数小于50 数据有限,考虑记忆化搜索,方程很好给出. 令 Si={vi,vi+1.....vn} mc[i]表示Si最大团的大小,倒着推算. 必 ...
- FFmpeg入门,简单播放器
一个偶然的机缘,好像要做直播相关的项目 为了筹备,前期做一些只是储备,于是开始学习ffmpeg 这是学习的第一课 做一个简单的播放器,播放视频画面帧 思路是,将视频文件解码,得到帧,然后使用定时器,1 ...
- javascript string对象方法总结
1.anchor() 用于创建html锚,也就是a标签,()中可以带参数,是a标签的name属性值. var string="hello world"; document.writ ...
- c风格字符串,字符串字面值,c++字符串
C风格字符串:本质上就是以空字符null为结束符的数组 可以简单的理解为:有'\0'的是c风格字符串,无'\0'的是普通字符数组 字符串字面值:是一串常量字符,字符串字面值常量用双引号括起来的零个或多 ...
- MyBatis的类型自定义映射
背景 利用MyBatis将数据库的时间类型映射成Java8的时间类型,引申对不同类型的自定义映射 实现方法 1.实现MyBatis中TypeHandler接口 @MappedTypes(value = ...