物联网通讯框架

Leo_wlCnBlogs Leo_wlCnBlogs     2022-07-30     326

关键词:

[连载]《C#通讯(串口和网络)框架的设计与实现》-1.通讯框架介绍

[连载]《C#通讯(串口和网络)框架的设计与实现》-2.框架的总体设计

 

目       录

C#跨平台物联网通讯框架ServerSuperIO(SSIO)正式开源... 1

1.      SSIO的特点

2.      SSIO概述

3.      SSIO与SIO的区别

4.      控制模式

5.      跨平台Windows和Linux

 

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

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

 

三.SSIO与SIO的区别

序号

属性

SSIO

SIO

1

应用场景

适用于高频的数据采集与控制,可以部署在服务器端。

适用于一般性的上位机数据采集,例如:局域网内的厂级服务端应用。

2

控制模式

轮询模式、自控模式、并发模式、单例模式

轮询模式、自控模式、并发模式、

3

性能

高性能

性能不如SSIO

4

服务实例

一个进程可以创建多个服务实例

一个进程只能创建一个服务实例

5

跨平台

支持Linux和Windows

只支持Windows各版本操作系统

6

二次开发

方便(不包括界面)

只需要继承就可以创建一个完整的应用程序

7

代码结构

更合适

使用的单例模式较多

8

串口组件

SerialPort

PCOMM

9

网络组件

SocketAsyncEventArgs

Socket

10

开源

开源

没有开源

11

OPC

不支持

支持

12

模拟量

不支持

支持

13

插件

需要自己二次开发

完全支持插件化部署

 

四.控制模式

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

 

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

 

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

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

 

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

 

 

五.跨平台Windows和Linux

(1)Windows运行效果

 

(2)Linux运行效果

 

开源地址:https://github.com/wxzz/ServerSuperIO

百度网盘:http://pan.baidu.com/s/1eRy0inK

QQ:504547114

QQ群:54256083

《连载|物联网框架serversuperio教程》-6.并发通讯模式开发及注意事项

1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍《连载|物联网框架ServerSuperIO教程》1.4种通讯模式机制。《连载|物联网框架ServerSuperIO教程》2.服务实例的配置参数说明《连载|物联网框架ServerSuperIO教程》-3.设备驱动介绍《连载|物... 查看详情

《连载|物联网框架serversuperio教程》-7.自控通讯模式开发及注意事项

1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍《连载|物联网框架ServerSuperIO教程》1.4种通讯模式机制。《连载|物联网框架ServerSuperIO教程》2.服务实例的配置参数说明《连载|物联网框架ServerSuperIO教程》-3.设备驱动介绍《连载|物... 查看详情

《连载|物联网框架serversuperio教程》-8.单例通讯模式开发及注意事项

1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍《连载|物联网框架ServerSuperIO教程》1.4种通讯模式机制。《连载|物联网框架ServerSuperIO教程》2.服务实例的配置参数说明《连载|物联网框架ServerSuperIO教程》-3.设备驱动介绍《连载|物... 查看详情

开源物联网通讯框架serversuperio,成功移植到windows10iot,在物联网和集成系统建设中降低成本。附:“物联网”交流大纲

【开源】C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍一、概述     经过一个多月晚上的时间,终于把开源物联网通讯框架ServerSuperIO成功移植到Windows10IOT上,暂时全名:ServerSuperIO.WinIOT(以后可能还会移植到Ub... 查看详情

《连载|物联网框架serversuperio教程》-12.服务接口的开发,以及与云端双向交互

1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍《连载|物联网框架ServerSuperIO教程》1.4种通讯模式机制。《连载|物联网框架ServerSuperIO教程》2.服务实例的配置参数说明《连载|物联网框架ServerSuperIO教程》-3.设备驱动介绍《连载|物... 查看详情

开源c#跨平台物联网通讯框架serversuperio(ssio)

最近学习一个框架,感谢网名:唯笑志在分享 博客原地址:http://www.cnblogs.com/lsjwq/p/5316577.html 目      录C#跨平台物联网通讯框架ServerSuperIO(SSIO)正式开源...11.     SSIO的特点2.& 查看详情

《连载|物联网框架serversuperio教程》-13.自定义视图显示接口开发,满足不同的显示需求

1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍《连载|物联网框架ServerSuperIO教程》1.4种通讯模式机制。《连载|物联网框架ServerSuperIO教程》2.服务实例的配置参数说明《连载|物联网框架ServerSuperIO教程》-3.设备驱动介绍《连载|物... 查看详情

《连载|物联网框架serversuperio教程》-10持续传输大块数据流的两种方式(如:文件)

1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍《连载|物联网框架ServerSuperIO教程》1.4种通讯模式机制。《连载|物联网框架ServerSuperIO教程》2.服务实例的配置参数说明《连载|物联网框架ServerSuperIO教程》-3.设备驱动介绍《连载|物... 查看详情

《连载|物联网框架serversuperio教程》-18.集成opcclient,及使用步骤。附:3.5发布与更新说明。

1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍《连载|物联网框架ServerSuperIO教程》1.4种通讯模式机制。《连载|物联网框架ServerSuperIO教程》2.服务实例的配置参数说明《连载|物联网框架ServerSuperIO教程》-3.设备驱动介绍《连载|物... 查看详情

《连载|物联网框架serversuperio教程》-6.并发通讯模式开发及注意事项

感谢唯笑志在分享原博主原地址:http://www.cnblogs.com/lsjwq/目      录6.并发通讯模式开发及注意事项...26.1          概述...26.2    &nb 查看详情

《连载|物联网框架serversuperio教程》-7.自控通讯模式开发及注意事项

感谢唯笑志在分享原博主原地址:http://www.cnblogs.com/lsjwq/ 目      录7.自控通讯模式开发及注意事项...27.1          概述...27.2   &nb 查看详情

《连载|物联网框架serversuperio教程》-8.单例通讯模式开发及注意事项

感谢唯笑志在分享原博主原地址:http://www.cnblogs.com/lsjwq/ 目      录8.单例通讯模式开发及注意事项...28.1          概述...28.2   &nb 查看详情

《连载|物联网框架serversuperio教程》-11.实现设备(驱动)与设备(驱动)交互和级联控制。注:设备驱动模拟金三与普京的对话

1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍《连载|物联网框架ServerSuperIO教程》1.4种通讯模式机制。《连载|物联网框架ServerSuperIO教程》2.服务实例的配置参数说明《连载|物联网框架ServerSuperIO教程》-3.设备驱动介绍《连载|物... 查看详情

《连载|物联网框架serversuperio教程》2.服务实例的配置参数说明

感谢唯笑志在分享原博主原地址:http://www.cnblogs.com/lsjwq/一、综述    SuperIO(SIO)定位在PC终端(上位机)应用,它只有一个服务实例,配置参数是全局属性。但是,ServerSuperIO(SSIO)与SuperIO(SIO)定位不一样,SSIO定位... 查看详情

《连载|物联网框架serversuperio教程》-3.设备驱动介绍

...bsp; 概述    定位ServerSuperIO(SSIO)为物联网通讯框架,就是因为这个框架是以“设备”(驱动)为核心构建,“设备”是泛指传感器、下位机、PC机等各类数据源,数据源有自己 查看详情

《物联网框架serversuperio教程》-20.网络通讯控制器分组,提高交互的负载平衡能力。v3.6.6版本发布

20.1    概述    ServerSuperIO原来在网络通讯模式下,只有一个网络控制器,在自控模式、并发模式和单例模式下时都是异步处理返回的数据,并不会出现性能问题。但是在轮询模式下,一个网络控制器... 查看详情

stm32物联网通讯gprs

一、GPRS相关概念介绍    智能家居和物联网都是目前的新兴产业,智能家居和物联网都是通过无线通讯模块与服务端进行数据通讯。其中GPRS通讯是一种常见的方式。GPRS(通用分组无线业务)的简称,是在现有的GSM系统上新... 查看详情

详解物联网modbus通讯协议(代码片段)

...行的一种通讯协议。本文分享自华为云社区《一文搞懂物联网Modbus通讯协议丨【拜托了,物联网!】》,作者:jackwangcumt。1概述随着IT技术的快速发展,当前已经步入了智能化时代,其中的物联网技术将在... 查看详情