ServerSuperIO 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
ServerSuperIO 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: GPL
开发语言: C#
操作系统: Windows
收录时间: 2016-03-25
提 交 者: wxzz

ServerSuperIO 简称 SSIO ,是一个 C# 跨平台物联网通讯框架。

一.SSIO的特点

  1. 轻型高性能通信框架,适用于多种应用场,轮询模式、自控模式、并发模式和单例模式。

  2. 设备驱动、IO通道、控制模式场景协调统一。

  3. 设备驱动内轩命令驱动器、命令缓存器、自定义参数和实时数据元素。

  4. 框架平台支持按设备命令优先级别进行调度,保证高级别命令及时发送。

  5. 一个设备驱动同时支持串口和网络两种通讯方式,可以监视IO通道数据。

  6. 一个设备驱动,在网络通讯时可以支持TCP Server和TCP Client两种工作模式。

  7. 内置显示视图接口,满足不同显示需求。

  8. 内置服务组件接口,可以自定义完成OPC服务、4-20mA输出、LED大屏显示、短信服务、以及多功能网关服务。

  9. 可以创建多服务实例,完成不同业务的拆分。

  10. 支持跨平台部署,可以运行在Linux和Windows系统。

二.SSIO概述

   SSIO通信框架的设计思想是在SuperIO(SIO)基础上发展而来,并没有高大上的技术,主要是工作经验的积累,适合于不同应用场景的物联网的数据 采集与交互。SSIO和SIO并不是简单的对IO高性能的操作,而是设备驱动、IO通道、控制模式和实际硬件设备之间的协调机制,各方面之间无缝衔接和运 行,也是为了解决现实工作和应用场景的一些痛点。

  软硬件之间的数据交互,并且面临着复杂的现场环境:

(1)复杂的、多样的通讯协议。有标准的协议,例如:Modbus等,也有很多根据标准协议修改的协议格式、以及自定义协议格式,并且千差万别。对于不好的软件架构,疲于应对,增加设备或协议要对整个软件进行梳理,往往在此过程中出现新的问题或BUG。

(2)针对不同用户对软件界面或功能的要求有很大不同,使之满足不同用户的显示要求,可以自定义数据显示界面。那么就需要提供显示视图接口,与设备驱动进行交互。

(3)既然现场设备的数据被采集上来,那么就需要对其进行处理,不仅仅是保存、查询、报表等,还有:数据转发、数据输出(OPC、模拟量、大屏等)等。那么就需要提供服务性的接口,与设备驱动进行交互。

(4)通讯链路的多种性,对于同一个设备可能要支持RS232/RS485/RS422、RJ45、3G/4G等通讯方式,所以对于一个设备要对应多种通讯方式(串口和网络),也给我们的开发造成很大的障碍。

(5)设备驱动、IO通道和实际的现场硬件终端之间链路复杂,有可能:一个设备驱动对应一个IO通道、一个设备驱动对应多个IO通道、多个设备驱动对应一个IO通道等情况。

(6)既然设备与服务端进行数据交互,那么就应该对设备的通讯状态、IO状态、以及设备本身的状态进行监控,这样设备才处于可维护状态。

(7)软件各版本、以及软件与硬件之间的兼容性很差,管理起来错综复杂。在框架平台稳定的情况下,只需要更新设备驱动。

   为了解决以上诸多问题,开发一个软件框架,支持二次开发。在不对软件框架改动的情况下,能够很方便的接入设备、维护设备、集成设备、处理设备业务数据等。软件框架相对稳定,把容易变化的部分进行灵活设计。

三.控制模式

(1)轮询模式:当串口和网络通讯时都可以使用这种控制模式。当有多个设备 连接到通讯平台时,通讯平台会轮询调度设备进行通讯任务。某一时刻只能有一个设备发送请求命令、等待接收返回数据,这个设备完成发送、接收(如果遇到超时 情况,则自动返回)后,下一个设备才进行通讯任务,依次轮询设备。如下图:

 

(2)并发模式:只有网络通讯时可以使用这种控制模式。并发通讯模式是集中 发送所有设备的请求指令,框架是采用循环同步方式发送请求命令。还有进一步提高的机会,采用并行异步方式集中发送请求命令。硬件设备接收到指令后进行校 验,校验成功后返回对应指令的数据,通讯平台异步监听到数据信息后,进行接收操作,然后再进行数据的分发、处理等。如下图:

 

(3)自控模式:只有网络通讯时可以使用这种控制模式。自控通讯模式与并发 通讯模式类似,区别在于发送指令操作交给设备驱动本身进行控制,或者说交给二次开发者,二次开发者可以通过时钟定时用事件驱动的方式发送指令数据。硬件设 备接收到指令后进行校验,校验成功后返回对应指令的数据,通讯平台异步监听到数据信息后,进行接收操作,然后再进行数据的分发、处理等。

   自控通讯模式可以为二次开发者提供精确的定时请求实时数据机制,使通讯机制更灵活、自主,如果多个设备驱动使用同一个IO通道的话,时间控制会有偏差。如下图:

 

(4)单例模式:只有网络通讯时可以使用这种控制模式。在一个服务实例内只 能有一个设备驱动,相当于一个设备驱动对应着N多个硬件设备终端。更适合通讯的数据协议有固定的标准,以命令关键字处理不同的数据。适用于高并发的硬件终 端设备主动上传数据,服务器端根据数据信息进行处理和返回相应的数据。如下图:

 

 

四.跨平台Windows和Linux

(1)Windows运行效果

 

(2)Linux运行效果

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

ServerSuperIO 的相关博客

物联网框架ServerSuperIO在.NetCore实现跨平台的实践路线

正所谓天下大势,不跟风不行。你不跨平台,很low嘛。java说:你们能跨嘛,跨给我看看。C#说:不要强人所难嘛。java说:能部署...

C#跨平台物联网通讯框架ServerSuperIO(SSIO)

一.SSIO的特点 轻型高性能通信框架,适用于多种应用场,轮询模式、自控模式、并发模式和单例模式。 设备驱动、IO通道、控制模...

《ServerSuperIO Designer IDE使用教程》- 5.树形结构管理设备驱动,小版本更新。发布:v4.2.3.1版本

v4.2.3.1 更新内容: 1.选择和管理设备驱动,增加树状结构显示。 2.优化ide代码,核心代码没有改动。 下载地址:官方下载 5....

《ServerSuperIO Designer IDE使用教程》- 7.增加机器学习算法,通讯采集数据与算法相结合。发布:4.2.5 版本

v4.2.5更新内容: 1.修复服务实例设置ClearSocketSession参数时,可能出现资源无法释放而造成异常的情况。 2.修复关闭宿主程序...

《ServerSuperIO Designer IDE使用教程》-4.增加台达PLC驱动及使用教程,从0到1的改变。发布:v4.2.3版本

v4.2.3 更新内容: 1.优化数据存储部分,提高效率。 2.修复数据库服务停止造成程序异常退出的现象。 3.修复本机没有串口造成无...

《ServerSuperIO Designer IDE使用教程》-3.Modbus协议,读取多个寄存器,实现多种数据类型解析。发布:v4.2.2版本

更新内容,v4.2.2版本: 1.增加Modbus协议读取多个寄存器,并且按多种数据类型解析数据。 2.Modbus Serial和Modbus TCP两个驱...

《ServerSuperIO Designer IDE使用教程》-1.标准Modbus和非标准协议的使用、测试以及驱动开发。附:v4.2发布

ServerSuperIO Designer IDE v4.2版本更新内容: 增加ServerSuperIO.Host运行程序,可以使用IDE进行测试,Host为运行环境。 ...

ServerSuperIO Designer IDE 发布,打造物联网通讯大脑,随心而联。附:C#驱动源代码。

1.概况 注:ServerSuperIO Designer IDE 同行业网友随便使用,不涉及到软件使用限制的问题。 从2015年到现在的将近两年的时间...

《ServerSuperIO Designer IDE使用教程》-2.与硬件网关数据交互,并进行数据级联转发,直到云端。发布:v4.2.1版本

v4.2.1 更新内容: 1.重新定义数据转发文本协议,使网关与ServerSuperIO以及之间能够相关交互数据。 2.扩展ServerSuperIO动态...

《ServerSuperIO Designer IDE使用教程》- 6.增加与阿里云物联网(IOT)对接服务,实现数据交互。发布:v4.2.4 版本

v4.2.4 更新内容: 1.增加了对接阿里物联网平台的服务。 下载地址:官方下载 6. 增加与阿里云物联网(IOT)对接服务,实现数据...

ServerSuperIO 的相关问答

还没有任何问答,马上提问

评论 (11)

加载中
wxzz软件作者
请到http://www.ineuos.net 工业互联网操作系统。
05/21 14:01
回复
举报
已經不開源了
2019/09/06 09:19
回复
举报
666
2017/09/29 09:03
回复
举报
收藏
2017/05/16 14:26
回复
举报
打分: 力荐
不错,希望能改进一些更好,支持
2017/02/05 08:56
回复
举报
2016/03/25 08:30
回复
举报
linux上是mono? #ServerSuperIO#
2016/03/25 09:02
回复
举报
先收藏,但没看清楚和supersocker这类有何区别? #ServerSuperIO#
2016/03/25 15:34
回复
举报
怒马。 #ServerSuperIO#
2016/03/30 14:55
回复
举报
2016/07/15 08:07
回复
举报
更多评论
11 评论
487 收藏
分享
返回顶部
顶部