ServerSuperIO

C# 跨平台物联网通讯框架
授权协议 GPL
开发语言 C#
所属分类 程序开发、 高性能网络开发库
软件类型 开源软件
地区 国产
投 递 者 王景山
操作系统 Windows
开源组织
适用人群 未知
 软件概览

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运行效果

  • 1.需要编写DriverCommand来支撑协议驱动,实现ProtocolCommand抽象类,在驱动初始化时,会加载同一个程序集内的所有实现了IProtocolCommand接口的所有命令,并存储在ProtocolCommand的_Commands集合中,当收到返回帧时,根据ProtocolCommand中的getCommand方法获取对应的命令,然后调用ProtpcolCommand中的Dri

 相关资料
  • 与物联网一样,所有物联网设备都连接到其他物联网设备和应用程序,以使用协议传输和接收信息。物联网设备和物联网应用之间存在差距。物联网平台填补了设备(传感器)和应用(网络)之间的空白。因此可以说物联网平台是一种集成服务,可以实现物联网设备和应用程序之间的差距,并为您提供在线物理对象。 有几种物联网平台可以提供主动部署物联网应用的工具。其中一些列表如下: 亚马逊网络服务(AWS)物联网平台:亚马逊网络服

  • 主要内容:物联网中ThingWorx平台的服务,ThingWorx组件ThingWorx平台是一个完整的端到端技术平台,专为工业物联网而设计。它促进了开发和设置物联网开发其他方面的连接,分析和生成所需的工具和服务。 ThingWorx物联网平台是一系列模块,可提供实施物联网应用所需的灵活性,功能和灵活性。ThingWorx使企业能够快速开发和部署功能强大的应用程序以及增强现实(AR)体验。 ThingWorx是第一个连接人员,系统,物品,连接操作,连接产品,连接应用

  • 本教程主要围绕物联网整体概述,小米移动物联网管理平台,客户服务,API文档,品质保障,用户服务,合作案例,安全SIM卡,通信模组以及eSIM几个方面进行介绍。

  • 主要内容:决策领域物联网决策框架提供了一种结构化方法,可以创建强大的物联网产品策略。物联网决策框架是关于战略决策的。物联网决策框架帮助我们了解需要制定决策的领域,并确保所有战略业务决策,技术等方面的一致性。 物联网决策框架更为重要,因为通过网络进行通信的产品或服务经历了五个不同的技术复杂层。 设备硬件 设备软件 通讯 云平台 云应用程序 决策领域 物联网决策框架关注任何物联网产品中的六个关键决策领域。这些决定领域是

  • 多平台支持 Mpx支持在多个小程序平台中进行增强,目前支持的小程序平台包括微信,支付宝,百度,qq和头条,不过自2.0版本后,Mpx支持了以微信增强语法为base的跨平台输出,实现了一套业务源码在多端输出运行的能力,大大提升了多小程序平台业务的开发效率,详情可以查看template增强特性 不同平台上的模板增强指令按照平台的指令风格进行设计,文档和代码示例为了方便统一采用微信小程序下的书写方式。

  • 本文向大家介绍JavaScript跨平台的开源框架NativeScript,包括了JavaScript跨平台的开源框架NativeScript的使用技巧和注意事项,需要的朋友参考一下 NativeScript是一款使用JavaScript语言来构建跨平台原生移动应用的开源框架,支持iOS、Android和Windows Phone。且NativeScript的使用没有过多繁杂的要求,只需使用自己已

  • 1、自我介绍 2、对岗位的理解 3、身高 4、成绩排名 5、平常运动吗 6、社团活动 7、反问 基本7分钟,说很快出结果 #联通##陕西联通##陕西联通校招#

  • 主要内容:连接到每一种旅行方式,交通监控避免碰撞物联网(IoT)在运输系统中具有至关重要的应用。 物联网在航空运输,水运和陆运等所有运输领域都发挥着重要作用。 这些运输领域的所有组件都是使用智能设备(传感器,处理器)构建的,并通过云服务器或将数据传输到网络的不同服务器互连。 连接到每一种旅行方式 交通运输中的物联网不仅适用于从一个地方到另一个地方的旅行,而且更安全,更环保,更方便。 例如,智能汽车同时执行工作,例如导航,通信,娱乐,高效,更可靠