本文主要讲解“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)轮询模式:当串口和网络通讯时都可以使用这种控制模式。当有多个设备连接到通讯平台时,通讯平台会轮询调度设备进行通讯任务。某一时刻只能有一个设备发送请求命令、等待接收返回数据,这个设备完成发送、接收(如果遇到超时情况,则自动返回)后,下一个设备才进行通讯任务,依次轮询设备。如下图:
(2)并发模式:只有网络通讯时可以使用这种控制模式。并发通讯模式是集中发送所有设备的请求指令,框架是采用循环同步方式发送请求命令。还有进一步提高的机会,采用并行异步方式集中发送请求命令。硬件设备接收到指令后进行校验,校验成功后返回对应指令的数据,通讯平台异步监听到数据信息后,进行接收操作,然后再进行数据的分发、处理等。如下图:
(3)自控模式:只有网络通讯时可以使用这种控制模式。自控通讯模式与并发通讯模式类似,区别在于发送指令操作交给设备驱动本身进行控制,或者说交给二次开发者,二次开发者可以通过时钟定时用事件驱动的方式发送指令数据。硬件设备接收到指令后进行校验,校验成功后返回对应指令的数据,通讯平台异步监听到数据信息后,进行接收操作,然后再进行数据的分发、处理等。
自控通讯模式可以为二次开发者提供精确的定时请求实时数据机制,使通讯机制更灵活、自主,如果多个设备驱动使用同一个IO通道的话,时间控制会有偏差。如下图:
(4)单例模式:只有网络通讯时可以使用这种控制模式。在一个服务实例内只能有一个设备驱动,相当于一个设备驱动对应着N多个硬件设备终端。更适合通讯的数据协议有固定的标准,以命令关键字处理不同的数据。适用于高并发的硬件终端设备主动上传数据,服务器端根据数据信息进行处理和返回相应的数据。如下图:
五.跨平台Windows和Linux
(1)Windows运行效果
(2)Linux运行效果
感谢各位的阅读,以上就是“C#的ServerSuperIO有什么特点”的内容了,经过本文的学习后,相信大家对C#的ServerSuperIO有什么特点这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/118931.html