【发布】工业串口和网络软件通讯平台(SuperIO v2.2.4)
更新说明:
1.修复无法把数据输出给IAppService的问题,以及无法触发删除操作事件。
2.侦听端口,可以设置。
3.设备接口,增加Object属性,方便平台使用。
4.中断时间改为轮询模式中断时间。
转载地址:http://www.bmpj.net/article-1-1.html
一、SuperIO 的特点:
1)支持二次开发,快速构建自己的通讯数据采集平台软件
2)快速构建设备驱动、协议驱动、命令缓冲、自定义参数和实时数据
3)快速二次开发图形显示、数据输出、服务驱动
4)一个设备驱动,同时支持串口(COM)和网络(TCP Server/Tcp Client)通讯机制,可以自由切换
5)内置协议驱动,可以把第三方协议转换成自定义的协议
6)内置设备命令缓冲器,可以设置命令发送的优先级别
7)以插件的方式挂载设备驱动、显示、输出、服务模块等
8)以服务驱动方式(IAppService)二次开发OPC服务、4-20mA输出、LED大屏显示、短信服务等
9)快速开发、运行稳定、扩展性强大
10)适用工业上位机软件,以及系统集成中采集远程设备数据
11)支持Windows XP/7/8/8.1、Windows Server 2008/2012
二、SuperIO 的设计思想:
公司的硬件产品分类比较多,早期的时候,每一个硬件产品都对应一个上位机软件,都有专人维护。而客户的需求日益变化,造成维护成本比较高。也没打算用组态软件进行开发,因为组态软件的费用比较高,有些特殊的业务或复杂的业务无法完成。
基于现实情况,打算开发一个平台性质的软件,核心部分是数据采集部分,相对来说比较固定,把数据展示、数据导出等类似业务功能设计灵活,变化比较多、比较大。最终实现大家都能在同一平台下进行开发工作,专人维护核心部分
三、SuperIO 开发背景和应用场景:
在工业领域,经常遇到软硬件之间的交互,面临着复杂的现场环境,例如:(1)复杂的、多样的通讯协议。有标准的Modbus协议,也有很多是自定义协议,
并且千差万别。对于不好的软件架构,疲于应对,增加设备或协议要对整个软件进行梳理,往往在此过程中出现新的问题或BUG。(2)不同用户对软件界面或功
能的要求有很大不同,使之满足不同用户的显示要求。(3)在做集成项目的时候,输入输出数据的多样性。首先我们要集成其他厂家的设备,要在平台软件上很方
便的进行接入。其次,还有很多是其他厂家要集成自己家的设备,就涉及的输出数据的问题。没有统一的标准,也是千差万别。(4)通讯链路的多种性,对于同一
个设备可能要支持RS232/RS485/RS422、RJ45、3G/4G等通讯方式,所以对于一个设备要对应多种通讯方式,也给我们的开发造成很大的
障碍。(5)一种类型的设备对应一套软件,在早期的时候,公司可能一个类型的软件对应一套软件,不同的人员在维护不同的设备软件,造成很高的维护成本、人
员成本以及时间成本。这些情况造成我们的软件版本兼容性很差,管理起来比较麻烦。
为了解决以上诸多问题,开发一个软件框架,支持二次开发。在不对软件框架改动的情况下,能够很方便的接入设备、维护设备、集成设备、处理设备业务数据等。软件框架是相对稳定的,把不稳定的部分完全以灵活的方式进行设计。
四、SuperIO 开发事例程序



增加设备

系统配制工具
方便开发者对系统进行管理,配制包括:系统参数、设备挂载配制、设备展示挂载配制、输出数据挂载配制。

【发布】工业串口和网络软件通讯平台(SuperIO v2.2.4)的更多相关文章
- 【工业串口和网络软件通讯平台(SuperIO)教程】七.二次开发服务驱动
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 服务接口的作用 围绕着设备驱动模块采集的数据,根据需求提供多种应用服务,例如:数据上传服务.数 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】六.二次开发导出数据驱动
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 导出数据接口的作用 在数据集成系统项目中,要么是自已集成其他厂家的设备,要么是其他厂家集成自己 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】五.二次开发图形显示界面
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 图形显示接口的作用 用于显示采集终端设备的数据,可以把不同类型设备的数据以多种形式集成显示在不 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】四.开发设备驱动
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 开发准备 把“开发包”内的所有文件复制到项目的“bin”目录下,或项目下的专用生成目录.开发包 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】二.架构和组成部分
1.1 架构结构图 1.1.1 层次示意图 1.1.2 模型对象示意图 1.2 IO管理器 IO管理器是对串口和网络通讯链路的管理.调度.针对串口和网络通讯链路的特点,在IO管 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】九.重写通讯接口函数,实现特殊通讯方式
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 统一的IO接口 开发一套设备驱动同时具备串口和网络通讯能力,通讯接口在逻辑上是统一的,在此基础 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】一.通讯机制
1.1 应用场景 通讯平台的交互对象包括两方面:第一.与硬件产品交互.第二.与软件产品交互.基本这两方面考虑,通讯平台一般会应用在两个场景: 1)通讯平台应用在PC机上 主要应用在自动站的工控机 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】八.SuperIO通讯机制与设备驱动对接的说明
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 通讯机制说明 通讯的总体机制采用呼叫应答方式,就是上位机软件主动发送请求数据命令,下位机终端接 ...
- 【工业串口和网络软件通讯平台(SuperIO)教程】三.二次开发流程
1.1 二次开发流程图 1.2 引用相关组件 找到“开发包”,引用里边的相关组件.如下图: 1.3 开发设备驱动模块 1.3.1 开发发送协议驱动 继承SuperIO.Devi ...
- 工业串口和网络软件通讯平台(SuperIO 2.0)发布
下载:SuperIO 2.0(开发手册.Demo.组件包) 官网:进入 交流群:54256083 SuperIO 2.0版本正式发布.把SCL正式更改名称为SuperIO. 一.此次升级主要包括两个方 ...
随机推荐
- 《Entity Framework 6 Recipes》中文翻译系列 (24) ------ 第五章 加载实体和导航属性之查询内存对象
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 5-4 查询内存对象 问题 你想使用模型中的实体对象,如果他们已经加载到上下文中, ...
- rem单位和em单位的使用
今天弄了一点响应式的东西,本以为很快就可以弄好,结果还是绕晕了头,所以还是写下来方便下次看吧! 一开始我打算用百分比%来做响应式布局,后来算的很懵圈,就果断放弃了,哈哈是不是很明智. 接下来就是rem ...
- 几个最常用的用来代替Div的HTML5元素
虽说html5中大多数功能性的元素如<video><canvas><audio>等还得不到当前主流浏览器的支持(主要就是指IE浏览器了),但至少那些个与布局相关的元 ...
- WCF 安全性 之 Windows
案例下载 http://download.csdn.net/detail/woxpp/4113172 服务端配置代码 <system.serviceModel> <services& ...
- KnockoutJS 3.X API 第七章 其他技术(2) 使用扩展器来增加可观察量(监控属性)
Knockout observables提供了支持读取/写入值并在值改变时通知订阅者所需的基本功能. 但在某些情况下,您可能希望向可观察者添加其他功能. 这可能包括通过在可观察者前面放置一个可写的计算 ...
- Performance Monitor2:Peformance Counter
Performance Counter 是量化系统状态或活动的一个数值,Windows Performance Monitor在一定时间间隔内(默认的取样间隔是15s)获取Performance Co ...
- Conditional Split component 用法
Conditional Split 用于将数据流按照条件进行拆分,每一个output 都有name和condition. 数据流逐行按照condition进行match,如果match,那么改行会进入 ...
- jQuery 2.0.3 源码分析Sizzle引擎 - 高效查询
为什么Sizzle很高效? 首先,从处理流程上理解,它总是先使用最高效的原生方法来做处理 HTML文档一共有这么四个API: getElementById 上下文只能是HTML文档 浏览器支持情况:I ...
- jQuery 2.0.3 源码分析 钩子机制 - 属性操作
jQuery提供了一些快捷函数来对dom对象的属性进行存取操作. 这一部分还是比较简单的. 根据API这章主要是分解5个方法 .attr() 获取匹配的元素集合中的第一个元素的属性的值 或 设置 ...
- 【原创】开源Math.NET基础数学类库使用(08)C#进行数值积分
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...