C#的ServerSuperIO有什么特点

技术C#的ServerSuperIO有什么特点这篇文章主要讲解了“C#的ServerSuperIO有什么特点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#的Serve

本文主要讲解“C#的ServerSuperIO有什么特点”,简单明了,易学易懂。现在,请跟随边肖的思路,一起学习和学习“C#的ServerSuperIO有什么特点”!

一.SSIO的特点

轻量级高性能通信框架,适用于多种应用领域,轮询模式、自动控制模式、并发模式和单例模式。

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

设备驱动程序包括命令驱动程序、命令缓冲区、自定义参数和实时数据元素。

平台支持根据设备命令的优先级进行调度,保证高级命令能够及时发送。

设备驱动程序支持串口和网络通信,可以监控输入输出通道数据。

一种设备驱动程序,可以支持网络通信中的TCP服务器和TCP客户端。

内置显示视图界面,满足不同的显示需求。

内置服务组件接口,可定制OPC服务、4-20mA输出、LED大屏显示、短信服务、多功能网关服务。

可以创建多个服务实例来拆分不同的服务。

它支持跨平台部署,可以在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

一个

应用场景

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

适用于一般的PC机数据采集,如工厂服务器在局域网中的应用。

2

控制模式

轮询模式、自动控制模式、并发模式、单一模式

轮询模式、自动控制模式和并发模式

式、

3

性能

高性能

性能不如SSIO

4

服务实例

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

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

5

跨平台

支持Linux和Windows

只支持Windows各版本操作系统

6

二次开发

方便(不包括界面)

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

7

代码结构

更合适

使用的单例模式较多

8

串口组件

SerialPort

PCOMM

9

网络组件

SocketAsyncEventArgs

Socket

10

开源

开源

没有开源

11

OPC

不支持

支持

12

模拟量

不支持

支持

13

插件

需要自己二次开发

完全支持插件化部署

四.控制模式

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

 C#的ServerSuperIO有什么特点

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

 C#的ServerSuperIO有什么特点

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

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

 C#的ServerSuperIO有什么特点

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

 C#的ServerSuperIO有什么特点

五.跨平台Windows和Linux

(1)Windows运行效果

 C#的ServerSuperIO有什么特点

(2)Linux运行效果

C#的ServerSuperIO有什么特点

感谢各位的阅读,以上就是“C#的ServerSuperIO有什么特点”的内容了,经过本文的学习后,相信大家对C#的ServerSuperIO有什么特点这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/118931.html

(0)

相关推荐

  • Python中如何实现Flask请求数据获取响应

    技术Python中如何实现Flask请求数据获取响应这篇文章给大家分享的是有关Python中如何实现Flask请求数据获取响应的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一,请求数据及其获取

    攻略 2021年10月31日
  • oracle中日期时间型timestamp怎么用

    技术oracle中日期时间型timestamp怎么用这篇文章将为大家详细讲解有关oracle中日期时间型timestamp怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、字符型

    攻略 2021年11月11日
  • Python中如何实现Scrapy+adbapi提高数据库写入效率

    技术Python中如何实现Scrapy+adbapi提高数据库写入效率今天就跟大家聊聊有关Python中如何实现Scrapy+adbapi提高数据库写入效率,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下

    攻略 2021年10月21日
  • pythondjango3教程(python的django是什么架构)

    技术Python的django-is-core有什么功能这篇文章主要介绍“Python的django-is-core有什么功能”,在日常操作中,相信很多人在Python的django-is-core有什么功能问题上存在疑

    攻略 2021年12月17日
  • 利用聚合概念指导MongoDB的Schema设计是怎么样的

    技术利用聚合概念指导MongoDB的Schema设计是怎么样的这期内容当中小编将会给大家带来有关利用聚合概念指导MongoDB的Schema设计是怎么样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大

    攻略 2021年11月4日
  • MySQL5.6.x sha256_password插件登入用户时报错怎么办

    技术MySQL5.6.x sha256_password插件登入用户时报错怎么办MySQL5.6.x sha256_password插件登入用户时报错怎么办,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因

    攻略 2021年10月26日