请选择 进入手机版 | 继续访问电脑版
查看: 8166|回复: 59

[SSIO] 【开源】ServerSuperIO跨平台物联网通讯框架

  [复制链接]

44

主题

56

帖子

991

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
991
发表于 2016-11-6 21:57:11 | 显示全部楼层 |阅读模式
目       录
C#跨平台物联网通讯框架ServerSuperIO(SSIO)正式开源

1.      SSIO的特点
2.      SSIO概述
3.      SSIO与SIO的区别
4.      控制模式
5.      跨平台Windows和Linux

一.SSIO的特点
  • 轻型高性能通信框架,适用多种应用场:轮询模式、自控模式、并发模式和单例模式。
  • 支持协议驱动器,可以按规范写标准协议和自定义协议。
  • 支持发送数据缓存器,支持命令缓存重发和按优先级别发送。
  • 支持协议过滤器,按规则筛选数据,并且可以承继接口,自定义过滤方式。
  • 支持接收数据缓存器,可以缓存不符合过滤器的数据,和下次接收数据进行拼接。
  • 支持按设备命令优先级别进行调度设备,保证有高级别命令的驱动及时发送。
  • 支持一个设备驱动,同时支持串口和网络两种通讯方式,可以监视IO通道数据。
  • 支持一个设备驱动,在网络通讯时可以支持TCP ServerTCP Client两种工作模式。
  • 支持WebSocket。
  • 支持多设备共享同一IO通道进行通讯。
  • 支持定时清理超时的网络IO通道。
  • 支持显示视图接口,满足不同人机对话的需求。
  • 支持服务组件接口,例如:4-20mA输出、LED大屏显示、短信服务、以及多功能网关服务。
  • 设备驱动与设备驱动,设备驱动与服务器(云端)可以实时双向交互,上传数据和指令下发。
  • 支持OPC ServerOPC Client
  • 支持创建多服务实例,完成不同业务的拆分。
  • 支持跨平台部署,可以运行在LinuxWindows系统。
  • 支持eDnaGoldenCoreRT实时数据库。
  • 支持mysqloraclesqlserversqlite数据库。


二.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)软件各版本、以及软件与硬件之间的兼容性很差,管理起来错综复杂。在框架平台稳定的情况下,只需要更新设备驱动。
   为了解决以上诸多问题,开发一个软件框架,支持二次开发。在不对软件框架改动的情况下,能够很方便的接入设备、维护设备、集成设备、处理设备业务数据等。软件框架相对稳定,把容易变化的部分进行灵活设计。

三.SSIO与SIO的区别
序号
属性
SSIO
SIO
1
应用场景
适用于高频的数据采集与控制,可以部署在服务器端。
适用于一般性的上位机数据采集,例如:局域网内的厂级服务端应用。
2
控制模式
轮询模式、自控模式、并发模式、单例模式
轮询模式、自控模式、并发模式、
3
性能
高性能
性能不如SSIO
4
服务实例
一个进程可以创建多个服务实例
一个进程只能创建一个服务实例
5
跨平台
支持Linux和Windows
只支持Windows各版本操作系统
6
二次开发
方便(不包括界面)
只需要继承就可以创建一个完整的应用程序
7
代码结构
更合适
使用的单例模式较多
8
串口组件
SerialPort
PCOMM
9
网络组件
SocketAsyncEventArgs
Socket
10
开源
开源
没有开源
11
OPC
支持(Server和Client端产品)
支持(Demo)
12
模拟量
不支持
支持
13
插件
有二次开发套件
完全支持插件化部署

四.控制模式
(1)轮询模式:当串口和网络通讯时都可以使用这种控制模式。当有多个设备连接到通讯平台时,通讯平台会轮询调度设备进行通讯任务。某一时刻只能有一个设备发送请求命令、等待接收返回数据,这个设备完成发送、接收(如果遇到超时情况,则自动返回)后,下一个设备才进行通讯任务,依次轮询设备。如下图:
279374-20160324175941042-2137870243.png
(2)并发模式:只有网络通讯时可以使用这种控制模式。并发通讯模式是集中发送所有设备的请求指令,框架是采用循环同步方式发送请求命令。还有进一步提高的机会,采用并行异步方式集中发送请求命令。硬件设备接收到指令后进行校验,校验成功后返回对应指令的数据,通讯平台异步监听到数据信息后,进行接收操作,然后再进行数据的分发、处理等。如下图:
279374-20160324175952573-556538348.png
(3)自控模式:只有网络通讯时可以使用这种控制模式。自控通讯模式与并发通讯模式类似,区别在于发送指令操作交给设备驱动本身进行控制,或者说交给二次开发者,二次开发者可以通过时钟定时用事件驱动的方式发送指令数据。硬件设备接收到指令后进行校验,校验成功后返回对应指令的数据,通讯平台异步监听到数据信息后,进行接收操作,然后再进行数据的分发、处理等。
   自控通讯模式可以为二次开发者提供精确的定时请求实时数据机制,使通讯机制更灵活、自主,如果多个设备驱动使用同一个IO通道的话,时间控制会有偏差。如下图:
279374-20160324180008401-2084468907.png
(4)单例模式:只有网络通讯时可以使用这种控制模式。在一个服务实例内只能有一个设备驱动,相当于一个设备驱动对应着N多个硬件设备终端。更适合通讯的数据协议有固定的标准,以命令关键字处理不同的数据。适用于高并发的硬件终端设备主动上传数据,服务器端根据数据信息进行处理和返回相应的数据。如下图:
279374-20160324180023558-1395314208.png

五.跨平台Windows和Linux
(1)Windows运行效果
279374-20160324180336167-1057637760.png
(2)Linux运行效果
279374-20160324180345698-614483115.png

最新二次开发包(2017-07-05v3.6.8),包括:Ubuntu&Ubuntu Mate、Windows
下载:http://pan.baidu.com/s/1c1ZZLOO


注:ServerSuperIO与Golden、CoreRT实时数据库达成了战略合作协议,v3.4版本以后支持实时库接口,并有相应的优惠政策
实时数据库下载地址:链接:http://pan.baidu.com/s/1dEXxSul 密码:nyhd。


物联网&集成技术(.NET) QQ群
54256083
【开源】ServerSuperIO跨平台物联网通讯框架 -- 二次开发教程


ServerSuperIO 源代码v3.0+二次开发教程,(注:3.0版本以后,源代码不再开源
回复下载:
游客,如果您要查看本帖隐藏内容请回复

回复

使用道具 举报

0

主题

8

帖子

77

积分

注册会员

Rank: 2

积分
77
发表于 2016-11-23 08:35:12 | 显示全部楼层
赞一个   
回复 支持 反对

使用道具 举报

0

主题

1

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2016-11-30 21:57:35 | 显示全部楼层
太厉害了 向你学习
回复 支持 反对

使用道具 举报

0

主题

2

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2016-11-30 22:21:09 | 显示全部楼层
瞻仰下不错
回复 支持 反对

使用道具 举报

0

主题

1

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2016-11-30 23:13:55 | 显示全部楼层
赞一个!!!!
回复

使用道具 举报

0

主题

4

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2016-12-1 08:26:54 | 显示全部楼层
多谢,学习参考串口的控制使用。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2016-12-1 08:40:12 | 显示全部楼层
大赞
回复

使用道具 举报

0

主题

1

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2016-12-1 08:53:18 | 显示全部楼层
群主辛苦 希望大家不要辜负了群主的好意
回复 支持 反对

使用道具 举报

0

主题

2

帖子

22

积分

新手上路

Rank: 1

积分
22
发表于 2016-12-1 09:06:20 | 显示全部楼层
一直都在关注也在学习这个框架,感谢
回复 支持 反对

使用道具 举报

0

主题

4

帖子

36

积分

新手上路

Rank: 1

积分
36
发表于 2016-12-1 09:33:52 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门版块:
帖子推荐:
图文热帖:
客服咨询

服务时间 9:00-22:00

Copyright © 2016 Comsenz Inc. All Rights Reserved. By Discuz! X3.2 ( 11010902000139 ) 

扫描二维码关注我:
确 认
快速回复 返回顶部 返回列表