ServerSuperIO Designer IDE 发布,打造物联网通讯大脑,随心而联。附:C#驱动源代码。

1.概况


      注:ServerSuperIO Designer IDE 同行业网友随便使用,不涉及到软件使用限制的问题。

     从2015年到现在的将近两年的时间,一直在开发、完善ServerSuperIO(SSIO)的基础框架,包括:多通讯机制、稳定性、扩展性等,没有太多时间把工作放在UI的设计与开发上,从二次开发者角度来讲易用性是短板。为了增补短板,在SSIO核心框架的基础上开发ServerSuperIO Designer IDE工具,希望能够帮助二次开发者快速上手。另外,从框架的健壮性和扩展性来讲,在Designer IDE的基础上开发HMI交互也是很容易的事,但是后期不会以这个方案开发C/S结构的人机对话组态界面,取而代之的是SSIO与SuperView的Web组态无缝对接。

      对于物联网体系建设,通讯始终是核心部分,涉及到多种设备、多种协议、多种通讯机制、多种数据,加之5G标准的实施,通讯层需要进行改造与完善。有的组态或scada的相关产品已经不能适应日益变化的市场需求、场景需求,例如:把IO通讯的读写操作放到设备驱动或插件内部,一是本身框架的执行效率受到影响,二是不能支持多种通讯场景以及高并发的要求,三是不能进行多设备复用同一IO资源,四是底层通讯层的扩展性受到制约。SSIO充分考虑到应用场景,进行顶层框架设计,实现接口的解耦而达到整体融合,目标是实现物联网通讯层的大脑。

      我们谈物联网、大数据、云平台等,首先就是实现节点之间互联以及解决数据的实时流通,在每个节点上逐步加入业务功能,从而实现整个系统有续扩展。流通的数据好比身体流淌的血液,业务功能好比身体的肌肉。

 

 

2.ServerSuperIO及Designer IDE的特点


  • 轻型高性能通信框架,适用多种应用场:轮询模式、自控模式、并发模式和单例模式。

  • 支持协议驱动器,可以按规范写标准协议和自定义协议。

  • 支持发送数据缓存器,支持命令缓存重发和按优先级别发送。

  • 支持协议过滤器,按规则筛选数据,并且可以承继接口,自定义过滤方式。

  • 支持接收数据缓存器,可以缓存不符合过滤器的数据,和下次接收数据进行拼接。

  • 支持按设备命令优先级别进行调度设备,保证有高级别命令的驱动及时发送。

  • 支持一个设备驱动,同时适配串口和网络两种通讯方式,可以监视IO通道数据。

  • 支持一个设备驱动,在网络通讯时适配TCP Server和TCP Client两种工作模式。

  • 支持WebSocket,进行数据采集与转发。

  • 支持多设备共享同一个IO通道进行通讯。

  • 支持定时清理超时的网络IO通道。

  • 支持显示视图接口,满足不同人机对话的需求。

  • 支持服务组件接口,例如:4-20mA输出、LED大屏显示、短信服务、以及多功能网关服务。

  • 设备驱动与设备驱动,设备驱动与服务器(云端)可以实时双向交互,上传数据和指令下发。

  • 支持OPC Server和OPC Client。

  • 支持创建多服务实例,完成不同业务的拆分。

  • 支持跨平台部署,可以运行在Linux和Windows系统。

  • 支持SuperRTDB、eDna和CoreRT实时数据库。

  • 支持mysql、oracle、sqlserver和sqlite数据库。

      Designer IDE是在ServerSuperIO基础开发的,支持挂载设备驱动和服务驱动、OPC Server/Client、数据转发客户端/服务端、支持标准的Modbus协议驱动等。Designer IDE使整个框架操作更简单、易用。基于ServerSuperIO开发的设备驱动或服务驱动,可以挂载到IDE下运行。

 

3.软件部署


       ServerSuperIO 4.0以前版本采用文件方式存储配置信息,ServerSuperIO 4.0及以后版本采用mysql存储数据,以后开发Web管理系统方便行进在线管理。部署说明,如下:

   (1)在mysql中创建数据库实例,例如数据库名称为:ServerSuperIO

   (2) 在数据库实例中运行“数据库脚本\serversuperio 4.0.sql”,初始化数据表。

   (3) 在“ServerSuperIO Designer IDE 4.0\ServerSuperIO\ SourceConfig.cfg”配置mysql的数据库实例信息。

   (4) 运行“ServerSuperIO.Designer.exe“应用程序即可。

 

4.管理设备驱动和服务驱动


        基于SSIO 4.0版本开发的设备驱动和服务驱动,可以在IDE下进行管理和运行。

设备驱动源代码:

https://github.com/wxzz/ServerSuperIO.Driver

服务驱动源代码:

https://github.com/wxzz/ServerSuperIO.Service

Modbus 操作类库源代码:

https://github.com/wxzz/ServerSuperIO.Modbus

测试驱动源代码:

https://github.com/wxzz/TestDeviceDriver

模拟终端源代码:

https://github.com/wxzz/TestDevice

      操作界面,如下图:

 

        服务驱动加载类型分为GlobalServer(全局服务)和InternalServer(内部服务),全局服务面向所有服务实例的设备驱动,以及之间进行数据交互;内部服务只面向同一服务实例内部的服务,以及之间进行数据交互。

 

5.服务实例


       服务实例相当于容器,可以在一个服务实例中运行串口设备驱动、网络设备驱动、服务驱动以及视图驱动(IDE还没有集成视图部分)。并且在一个服务实例中支持四大通讯机制:(1)轮询模式,队列方式向设备发送请求数据命令,并且等待设备返回数据;(2)自控模式,驱动可以周期定时向设备发送请求数据命令,也可以不主动请求,被动接收数据;(3)并发模式,集中异步向所有设备发送请求数据命令,异步等待所有设备返回的数据。(4)单例模式,一个设备驱动对应所有物理设备,相当于一个单纯的通讯框架。增加服务实例,如下图:

 

6.增加设备驱动


        在一个服务实例中可以增加N个串口设备驱动和网络设备驱动,SSIO负责整体管理与调度,以保证在通讯IO和通讯机制方面稳定运行。控制分组,当网络通讯模式下,每个设备驱动设置不同的分组,相当于每个设备驱动在独立的容器中运行,以到达到高效运行。增加设备驱动,如下图:

 

7.增加设备驱动的数据监测点


        每个设备驱动可以增加N个监测点标签(Tag),支持Modbus RTU/ASCII/TCP协议,以保证监测数据在SSIO框架内的流程与交互,后期会增加对监测点的管理工具。增加标签,如下图:

 

8.OPC客户端


          OPC客户端仅支持DA模式,可以读取远程OPC Server的数据信息,并保存到本地以及现次通过数据转发服务传递给其他节点。如下图:

 

9.OPC服务端


         把设备驱动或OPC Client读上来的数据,通过OPC Server为其他系统提供可访问的接口,可以选择输出数据的设备点表或OPC Client点表。如下图:

 

10.数据转发(客户端)


       可以增加转发任务,主动连接其他服务器端,并且根据设备点表和OPC Client点表配置要转发的数据,可以实现物联网建设的级联以及直接连接云端。可以填写“站点编号”,把本机当作站点,方便云端进行管理。如下图:

 

11.数据转发(服务端)


      支持远程客户端主动连接ServerSuperIO,并针对已经连接的终端设备(PC机、手机、Web(Socket)业务系统等)转发设备点表和OPC Client点表的数据,实现数据向终端的分发。如下图:

 

12.展望


     下一篇文章已经写好《助力中小企业级连云端,促进工业互联网平台蓬勃发展,全套解决方案》,将来一体化智能网关、ServerSuperIO 4.0、实时数据库、Web组态整体进行方案介绍,实现基础技术体系化应用。

 

物联网&集成技术(.NET) QQ群:54256083 

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


原文地址:https://www.cnblogs.com/lsjwq/p/8120023.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/322486.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL数据库面试题(2020最新版)

转载自 MySQL数据库面试题(2020最新版) 数据库基础知识 为什么要使用数据库 数据保存在内存 优点:存取速度快 缺点:数据不能永久保存 数据保存在文件 优点:数据永久保存 缺点:1)速度比内…

分布式系统的消息服务模式简单总结

在一个分布式系统中,有各种消息的处理,有各种服务模式,有同步异步,有高并发问题甚至应对高并发问题的Actor编程模型,本文尝试对这些问题做一个简单思考和总结。一、消息的“推、拉模式” 在传统的Client/Server结构中&…

Spring Cloud面试题(2020最新版)

转载自 Spring Cloud面试题(2020最新版) 为什么需要学习Spring Cloud 不论是商业应用还是用户应用,在业务初期都很简单,我们通常会把它实现为单体结构的应用。但是,随着业务逐渐发展,产品思想会变得越来…

《Office 365 开发入门指南》

终于等来了这一天,可以为我的这本新书画上一个句号。我记得是在今年的2月份从西雅图回来之后,就萌发了要为中国的Office 365开发人员写一些东西并最终能帮到更多中国用户的想法,而从2月26日正式写下了第一篇,到今天正好是整整十个…

助力中小企业级连云端,促进工业互联网平台蓬勃发展,全套解决方案。附:技术产品

1.概述经过两年多团体的努力,四个产品终于面世了,做产品不容易,做好产品更不容易,最终形成了体系化的解决方案。下面具体介绍。行业大数据平台以及工业互联网平台的发展是必然趋势,结合自己的工作经验&…

基于百度AI实现 车牌识别

前言目前百度的AI接口相对完善,对于文字识别类的操作还需要开发者一一去尝试,去评估这效果到底是怎么的。文字识别的接口相对简单,官方提供的SDK也集成很好,笔者只是在这上面做了一些前期性的功能数据校验和过滤,以及返…

面试官问我:Redis 内存满了怎么办

转载自 想不到!面试官问我:Redis 内存满了怎么办 Redis占用内存大小 Redis的内存淘汰 LRU算法 LRU在Redis中的实现 LFU算法 问题 Redis占用内存大小 我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以…

开源组件NanUI一周年 - 使用HTML/CSS/JS来构建.Net Winform应用程序界面

NanUI是什么NanUI基于ChromiumFX项目进行开发,它能让你在你的Winform应用程序中使用HTML5/CSS3/Javascript等网页技术来呈现用户界面(类似Electron)。同时NanUI提供了原生窗口和定制化的无标题栏无边框窗口,你能使用全部的网页技术…

ThreadPoolExecutor 八种拒绝策略,对的,不是4种

转载自 ThreadPoolExecutor 八种拒绝策略,对的,不是4种 前言 谈到 Java 的线程池最熟悉的莫过于 ExecutorService 接口了,jdk1.5 新增的 java.util.concurrent 包下的这个 api,大大的简化了多线程代码的开发。而不论你用 Fixed…

采用Opserver来监控你的ASP.NET项目系列(三、监控你的服务器状态)

前言之前有过2篇关于如何监控ASP.NET core项目的文章,有兴趣的也可以看看. ASP.NET Core之跨平台的实时性能监控ASP.NET Core之跨平台的实时性能监控(2.健康检查)今天我们主要来介绍一下,如何使用Opserver监控我们的服务器状态.Opserver的功能其实很强大,他可以用于连接任何支持…

Net Core中数据库事务隔离详解——以Dapper和Mysql为例

事务隔离级别.NET Core中的IDbConnection接口提供了BeginTransaction方法作为执行事务,BeginTransaction方法提供了两个重载,一个不需要参数BeginTransaction()默认事务隔离级别为RepeatableRead;另一个BeginTransaction(IsolationLevel il)可以根据业务…

2017年,我的身边发生了那些事?

不知不觉,运营独具.NET跨平台特色的微信公众号:dotNet跨平台至今已经整整三年光景了,这三年里微软开源.NET也满三周年了。三年时间说长不长,说短也不短了,然而我还是保持着每天三篇的更新 ,或有感而原创&am…

ABP .Net Core Entity Framework迁移使用MySql数据库

一、迁移说明ABP模板项目Entity Framework Core默认使用的是Sql Server,也很容易将数据库迁移到MySQL,步骤如下。二、迁移MySQL步骤1、 下载项目请到 http://aspnetboilerplate.com/Templates 下载一个新的项目,选择ASP.NET Core 2.x标签&…

(四)十大经典排序算法(动画图解,代码完全)

排序算法是《数据结构与算法》中最基本的算法之一 1. 冒泡排序 1.1 算法步骤 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。…

(五)SpringBoot 能挣钱的几个项目!!!

不得不佩服 Spring Boot 的生态如此强大,今天给大家推荐几款 Gitee 上优秀的后台开源版本的管理系统,小伙伴们再也不用从头到尾撸一个项目了,简直就是接私活,挣钱的利器啊。SmartAdmin我们开源一套漂亮的代码和一套整洁的代码规范…

手把手引进门之 ASP.NET Core Entity Framework Core(官方教程翻译版 版本3.2.5)

以下是手把手引进门教程,基于 ASP.NET Core, Entity Framework Core ,ABP 框架 创建Web 应用, PS: 自带自动的测试模块哦。样例下载 (上 github 的请自便)介绍这是系列文章的第一部分&#xff1…

图像识别:微信跳一跳机器人

准备IDE:VisualStudioLanguage:VB.NET/C#GitHub:AutoJump.NET本文将向你介绍一种通过图像识别实现“跳一跳”机器人的方法。 第一节 图像识别文中提到的所有方法和步骤均仅涉及简单的向量计算。需要哪些计算?比较像素点的颜色求向…

(七)HTML和CSS 、JavaScript 和Java到底有什么区别,今天终于明白了!!!

有人曾经问过,“HTML CSS 和 JavaScript 以及 Java有什么区别” TCP VS UDP Java VS C 功能先上了再说 高级开发人员作为一个团队进行编程 调试CSS 高级开发人员重构代码 能一个手指完成的绝不用两只手 看实习生编码的时候,我的表情…… 当我尝试进入B…

基于Accord.Audio和百度语言识别

目标需求使用录音形式,模拟微信语音聊天。按住录音,松开发送语音,并完成语音识别。ps:百度的语言识别有60秒长度限制,需要自己做好控制。实现方案采用C# winform 程序实现桌面版,采用Accord 实现语音录制停…

(八)Spring与MyBatis整合

持久层 目录 Mybatis 开发步骤回顾Mybatis 开发中存在的问题Spring 与 Mybatis 整合思路Spring 与 Mybatis 整合的开发步骤Spring 与 Mybatis 整合的编码搭建开发环境 pom.xmlSpring 配置文件的配置编码Spring 与 Mybatis 整合细节持久层整合总述 1、Spring 框架为什么要与持…