专栏名称: OSC开源社区
OSChina 开源中国 官方微信账号
目录
相关文章推荐
程序员小灰  ·  视频号可能是下一个风口! ·  3 天前  
程序员小灰  ·  OpenAI出王炸了 ·  5 天前  
OSC开源社区  ·  程序员面试“潜台词”解读:谈钱=压价? ·  6 天前  
程序猿  ·  我删除了一段看起来没用的代码… ·  5 天前  
程序猿  ·  最美Linux发行版、macOS开源替代方案 ... ·  6 天前  
51好读  ›  专栏  ›  OSC开源社区

ServerSuperIO —— C# 跨平台物联网通讯框架 | 软件推介

OSC开源社区  · 公众号  · 程序员  · 2017-08-27 08:30

正文


授权协议:GPL

开发语言:C#

操作系统:Windows

评分:7.3

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

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

跨平台Windows和Linux



(1)Windows运行效果

(2)Linux运行效果


更多软件请前往公众号菜单栏“读我”->“软件推介”查看。



推荐阅读

入坑 Kotlin 开发实战前,这些项目能让你少走弯路

最实用的 Linux 命令行使用技巧

开发者必备的程序调试利器,来找到适合你的那一款!

删雇主网站源代码 北京一软件工程师获刑五年

点击“阅读原文”查看更多精彩内容