开源物联网框架ServerSuperIO(SSIO),项目中实践应用介绍
一、项目背景
我们是传统行业,但是我们有一颗不传统的心。企业用户遍布国内和国外,面对行业,要建设行业级的(大)数据平台。一提到大数据平台,大家往往想到Hadoop、Spark、Nosql、分布式等等,我只能说我们还比较低级,但是后期肯定会涉及到这些技术。做大数据平台是有风险的,抛开绝技术方面,应该从四个方面来考虑这个问题:企业思维的转变、是否解决实际问题、是否落地可实施、是否有增值效应。
不转变思维,企业不死,个人死。为什么呢?战略定力差,推进动力不足,随时面临PASS的风险。
不能解决实际问题,那只是空中楼阁,创造不了实际的价值,变现也很困难,忽悠人是不能长久的。
不能落地可实施,要么是团体不行,要么是技术不行,总之还是团队不行,带头人不一定什么都懂,但是要有绝对的推进能力。
不能有增值效应,最终最不到钱,这是任何人都不愿意看到的情况。再美的女人,不能生孩子,你也要多顾虑一些。所以我大学同学找对象的第一原则,就是能生孩子。
二、数据情况
全国大概有238个站点,不包括国外。每个站点大概有2000个传感器,5分钟上传一次数据,相当于1秒钟要传7个点的传感器。在大数据平台再进行数据的深度分析,帮助生产企业改进生产工艺,以及安全防范。
三、通讯协议
通讯协议主要从指令要求、传输流程、通讯层级、应答模式、重发机制、超时界定、数据完整性、通讯效率、代码和字典定义等,进行综合考虑,有些是用技术实现的,有些是用协议保障的……。
通讯协议命令包如下:

四、缓存机制
避免频繁的操作数据库,在上传数据端和接收数据端进行了缓冲设计,作为临时数据的存储,当然这些临时数据也可以保存在Hadoop上,前期没有打算这样做。
客户端缓存结构图:

服务端缓存结构图:

五、通讯层面的框架
服务端使用的是SeverSuperIO(SSIO),并没有使用其他的框架。一是考虑到不同协议的接入,二是方便对站点的通讯状态、IO状态,以及站点进行管理。客户端就是自己写的控制台程序。

六、问题及解决
(1) 第一天客户端与服务端进行测试的时候,第二天发现客户端直接崩了,提示:OutOfMemoryException。经排查,再测试至今还没有出现问题。可能是因为线程并且对数据操作引起的。
(2) 测试过程中,发现接收到的数据开头和结尾都对,但是就是解析数据包为空。这个问题是因为CRC16校验与结尾字节数据组重复了,SeverSuperIO(SSIO)在过滤数据的时候,少了两个字节。后来把CRC16校验改成了校验和。
七、测试效果
测试12小时,如下图:

2.[开源]C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍
2.应用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的整体方案
3.C#工业物联网和集成系统解决方案的技术路线(数据源、数据采集、数据上传与接收、ActiveMQ、Mongodb、WebApi、手机App)
5.ServerSuperIO开源地址:https://github.com/wxzz/ServerSuperIO
物联网&集成技术(.NET) QQ群:
开源物联网框架ServerSuperIO(SSIO),项目中实践应用介绍的更多相关文章
- 开源物联网框架ServerSuperIO 3.0正式发布(C#),跨平台:Win&Win10 Iot&Ubuntu&Ubuntu Mate,一套设备驱动跨平台挂载,附:开发套件和教程。
3.0版本主要更新内容: 1.增加跨平台能力:Win&Win10 Iot&Ubuntu&Ubuntu Mate 2.统一设备驱动接口:可以一套设备驱动,跨平台挂载运行,降低人力 ...
- 《连载 | 物联网框架ServerSuperIO教程》- 3.设备驱动介绍
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》- 10.持续传输大块数据流的两种方式(如:文件)
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》- 18.集成OPC Client,及使用步骤
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《物联网框架ServerSuperIO教程》-19.设备驱动和OPC Client支持mysql、oracle、sqlite、sqlserver的持久化。v3.6.4版本发布
19.设备驱动和OPC Client支持mysql.oracle.sqlite.sqlserver的持久化 19.1 概述 ServerSuperIO支持设备驱动和OPC Client采集的数 ...
- 《物联网框架ServerSuperIO教程》-21.终端控制传感器或设备,形成回路控制。附:demo源代码
21.1 概述 ServerSuperIO以前所做的工作逐步为形成回路控制或级联控制打下基础,例如:服务连接器和设备驱动连接器的开发与应用.总之,是通过多种形式下发命令控制设备(驱动)或传感器 ...
- 《连载 | 物联网框架ServerSuperIO教程》-4.如开发一套设备驱动,同时支持串口和网络通讯。附:将来支持Windows 10 IOT
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》- 5.轮询通讯模式开发及注意事项。附:网友制作的类库说明(CHM)
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《连载 | 物联网框架ServerSuperIO教程》- 6.并发通讯模式开发及注意事项
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
随机推荐
- 关于SMARTFORMS文本编辑器出错
最近在做ISH的一个打印功能,SMARTFORM的需求本身很简单,但做起来则一波三折. 使用环境是这样的:Windows 7 64bit + SAP GUI 740 Patch 5 + MS Offi ...
- Maven安装
开发分布式的商场系统,用到了一些新的技术,做一个记录和分享 这里讲一下maven安装 首先什么是Maven Maven作为一个构建工具,不仅帮我们自动化构建,还能抽象构建过程,提供构建任务实现.他跨平 ...
- Atitit.技术管理者要不要自己做开发??
Atitit.技术管理者要不要自己做开发?? 1. 为什么很多管理者不能自己亲自做了1 1.1. 沟通成本多了1 1.2. .组织分散. 1 1.3. 会议多 .协调多 1 1.4. 问题的根源在于我 ...
- postgresql 基本语法
postgresql数据库创建/修改/删除等写入类代码语法总结: 1,创建库 2,创建/删除表 2.1 创建表 create table myTableName 2.2 如果表不存在则创建表 crea ...
- 浅谈iptables 入站 出站以及NAT实例
--------------本文是自己工作上的笔记总结,适合的可以直接拿去用,不适合的,适当修改即可!--------------- iptbales默认ACCEPT策略,也称通策略,这种情况下可以做 ...
- BZOJ1012: [JSOI2008]最大数maxnumber [线段树 | 单调栈+二分]
1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec Memory Limit: 162 MBSubmit: 8748 Solved: 3835[Submi ...
- 运用Mono.Cecil 反射读取.NET程序集元数据
CLR自带的反射机智和API可以很轻松的读取.NET程序集信息,但是不能对程序集进行修改.CLR提供的是只读的API,但是开源项目Mono.Cecil不仅仅可以读取.NET程序集的元数据,还可以进行修 ...
- 【初学者指南】在ASP.NET MVC 5中创建GridView
介绍 在这篇文章中,我们将会学习如何在 ASP.NET MVC 中创建一个 gridview,就像 ASP.NET Web 表单中的 gridview 一样.服务器端和客户端有许多可用的第三方库,这些 ...
- ABP教程-给项目添加SwaggerUI,生成动态webapi
上一篇,我们是正式将ABP生成的代码项目,跑起来了,然后演示了下多租户的不同.那么这篇我们就来实现下SwaggerUI. Q:SwaggerUI是干什么的呢? A:他是一个能将我们的webapi,通过 ...
- Java模块化规范之争(转载)
经过近20年的发展,Java语言已成为今日世界上最成功.使用的开发者人数最多的语言之一,Java世界中无数商业的或开源的组织.技术和产品共同构成了一个无比庞大的生态系统. 与大多数开发人员的普遍认知不 ...