[更新]跨平台物联网通信框架 ServerSuperIO v1.2(SSIO),增添数量分发控制形式

葡京娱乐总站平台 1

12.6        数据导出的开发… 9

3)   设备驱动内轩命令驱动器、命令缓存器、自定义参数和实时数据元素。

12.4.1.2 解析实时数据协议

  
下位机接收到读实时数据命令后,并校验成功,再次回到实时数据,校验和为从“从机地址”开端的充分和,不包罗“数据报头”、“校验和”和“协议截止”。

   接收数据帧如下:

帧结构

多少报头

从机地址

命令代码

流量

信号

校验和

共谋为止

0x55

0xAA

 

0x61

浮点型

浮点型

 

0x0D

字节数

1

1

1

1

4

4

1

1

 

1)  
轻型高质量通讯框架,适用于多样应用场,轮询形式、自控格局、并发情势和单例情势。

12.8     配置工具的采纳

    
手动对框架平台的布署文件进行改动,对安排新闻不易于精通,也易于影响配置文件的格式,所以写了一个布局工具“ConfigTool.exe”,对框架平台的全局参数和驱动音讯进行挂载、删除等。

2)   设备驱动、IO通道、控制方式场景协调联合。

12.1     项目配制

1)目的框架选拔Framework4.0

 葡京娱乐总站平台 2

2)生成的对象平台应用x86

 葡京娱乐总站平台 3

    
所有事例程序的对象平台运用x86。主要考虑到32位操作系统与64操作系统的包容性。

 

第十二章     二次开发及应用… 2

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

12.8.1参数配置

   
参数配置首要涉嫌到:软件音讯、安装操作、互联网和串口通信等音讯。配置内容如下图

 葡京娱乐总站平台 4

   
原来只好按设备IP举行多少分发,但是考虑到装备终端有可能是GPRS模块等,IP本身不固定,所以扩充了按设备地址把多少分发给配备。

12.4.4营造参数和实时数据实例类

   
新建七个类:MyDeviceParameter和MyDeviceRTDataMyDeviceParameter继承SuperIO.Device.DeviceParameter类,用于保存备参数,可以在此类中追加新的装备参数。

   
MyDeviceRTData继承SuperIO.Device.DeviceReal提姆eData类,用于保存设备的实时数据,可以根据报导协议自定义设备的实时数据。

   
这五个类继承基类后会自动一而再SaveSerialize和GetSerialize八个泛型函数,SaveSerialize函数是把近来目的连串化成XML,GetSerialize是把连串化的XML反向变化对象实例。SuperIO.Device.DeviceParameter类和SuperIO.Device.DeviceReal提姆eData类是三番五次自SerializeOperation类,他们的接口是IserializeOperation,SerializeOperation只是一个简约的种类化XML操作类库。

一旦开发者想全盘自定义一个数目持久文件,那么可以三番五次IserializeOperation接口,重写相应的接口函数,自定义存储数据的模式。

4)   框架平台帮衬按设备命令优先级别举行调度,有限接济高级别命令立时发送。

12.2        引用相关组件… 4

   
扩大数量分发形式(DeliveryMode),在互联网通信异步通讯时,接收到数码后,可以按设备IP或配备地址把数量分发给该装置,从而使得装置运转。

12.4.1.3   发送和接收数据事例… 7

(3)既然现场配备的多少被采集上来,那么就须求对其进展处理,不仅仅是保留、查询、报表等,还有:数据转载、数据输出(OPC、模拟量、大屏等)等。那么就需求提供服务性的接口,与设施驱动举办互动。

12.4     设备驱动的成本

7)   内置展现视图接口,满意分裂突显必要。

12.5     图形突显的费用

  1. 充实对SuperIO组件的引用。
  2. 新建Form窗体,继承SuperIO.Show.IGraphicsShow接口,并且完毕接口效能。
  3. 透过UpdateDevice接口完结解析对象,并展现解析对象后的数码。

10) 协理跨平台布署,可以运行在Linux和Windows系统。

12.4.1       假定通信协议… 6

5)   一个配备驱动同时协理串口和网络两种简报格局,可以监视IO通道数据。

12.8        配置工具的应用… 10

3.SSIO概述

12.4.4       创设参数和实时数据实例类… 8

9)   可以成立多服务实例,完结不相同工作的拆分。

12.4        设备驱动的开发… 6

   
SSIO通讯框架的设计思想是在SuperIO(SIO)基础上腾飞而来,并从未惊天动地上的技术,首借使工作经历的累积,适合于分歧选用场景的物联网的数目
采集与互动。SSIO和SIO并不是粗略的对IO高质量的操作,而是设备驱动、IO通道、控制形式和实在硬件设施之间的和谐机制,各地方之间无缝过渡和运
行,也是为着解决实际工作和拔取场景的局地痛点。

12.4.3       创设协商驱动… 8

(7)软件各版本、以及软件与硬件之间的包容性很差,管理起来复杂。在框架平台稳定的景况下,只要求更新配备驱动。

第十二章      二次开发及运用

   
协助二次开发是框架的主要特征,作为设计者或架构师能使自己的创作广泛被应用是一件很雅观的一件事。不管做过些微项目,可以有温馨的代表小说是一件很不易于的一件事,可以透过一个创作广泛的交接一些情侣也是一件很庆幸的事。所以,一向极力让SuperIO更安宁、更好的支撑二次开发、更快的营造一个通信平台。

   这一部分至关主要介绍利用SuperIO举办二次开发,开发流程如下图:

 葡京娱乐总站平台 5

 

6)   一个装备驱动,在互联网通信时可以支撑TCP Server和TCP
Client二种工作格局。

目       录

(2)针对分化用户对软件界面或效益的需求有很大分裂,使之满意不一致用户的显得必要,可以自定义数据突显界面。那么就必要提供展现视图接口,与设施驱动举行互动。

12.7        服务组件的开发… 10

 

12.4.5营造设备驱动

   
“打造协商驱动”和“打造参数和实时数据实例类”两节都是为创设运行设备做的初期准备,将作为运行设备的特性。

     新建一个设施类:MyDevice,它一而再自SuperIO.Device. RunDevice1。

     开发者注意到还有一个SuperIO.Device.
RunDevice类,它是相比较早的运转设备类,考虑的阳台的包容性,现在还在一连使用,不过新开发的装置模型不提出采取SuperIO.Device.
RunDevice1类。它们都是继续自IRunDevice接口。

  
为了缓解上述诸多难点,开发一个软件框架,辅助二次开发。在不对软件框架改动的场合下,可以很有益的连通设备、维护设备、集成设备、处理设备业务数据等。软件框架相对稳定,把简单变化的部分举办灵活设计。

12.2     引用相关组件

     在“开发包”中援引相关组件。如下图:

 葡京娱乐总站平台 6

3.C#工业物联网和集成系统解决方案的技术路线(数据源、数据搜集、数据上传与接受、ActiveMQ、Mongodb、WebApi、手机App)

12.4.5       打造设备驱动… 9

2.动用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)创设系统的一体化方案

12.4.2       新建设施模块… 7

 

12.9        小结… 11

1.【开源】C#跨平台物联网通信框架ServerSuperIO(SSIO)

12.4.1.2   解析实时数据协议… 6

 

12.8.2使得挂载

   
配置工具也足以挂载驱动和插件,配置好未来,启动框架平台可以对其展开操作,以挂载设备驱动为例如下图:

 葡京娱乐总站平台 7

(5)设备驱动、IO通道和事实上的现场硬件终端之间链路复杂,有可能:一个设施驱动对应一个IO通道、一个设施驱动对应八个IO通道、三个设施驱动对应一个IO通道等情况。

12.4.1.1   发送读实时数据命令协议… 6

1.SSIO翻新内容:

12.7     服务组件的开发

  1. 追加对SuperIO组件的引用。
  2. 新建类,继承SuperIO.Services.AppService抽象类,并且已毕接口功效。
  3. 可以透过UpdateDevice接口函数更新设备的缓存数据。
    /// <summary>
    /// 分发数据模式
    /// </summary>
    public enum DeliveryMode
    {
        [EnumDescription("设备IP分发数据")]
        DeviceIP,
        [EnumDescription("设备地址分发数据")]
        DeviceAddress
    }

12.1        项目配制… 3

  软硬件之间的数量交互,并且面临着错综复杂的实地环境:

12.4.3创设协商驱动

      新建七个类:MySendProtocol
和MyReceiveProtocol,MySendProtocol继承SuperIO.Device.DeviceSendProtocol基类,MyReceiveProtocol类继承SCL.Device.DeviceReceiveProtocol。

MySendProtocol 和MyReceiveProtocol三个类都重写(override)

     
“Function61”函数,MySendProtocol类中的Function61函数已毕打包发送命令操作,MyReceiveProtocol类中的Function61函数已毕解析数据操作,FunctionXX在三个类中都会成对出现,紧假如为了好记。

 在MySendProtocol实例中可以调用DriverFunction函数,传入相应的一声令下,例如:0x61。会自动调用“Function61”函数,作为调用相应命令函数的驱动接口。GetSendCmdBytes函数接口是在DriverFunction函数基础上包裹的,同样也可以利用,可是要把“isbox“设置成false,否则会对发送的数额做特其他拍卖。

     
在MyReceiveProtocol实例中得以调用DriverFunction函数,传入相应的指令,例如:0x61。会自行调用“Function61”函数,作为调用相应命令函数的驱动接口。GetAnalysisData函数是在DriverFunction函数基础上包裹的,同样可以运用,只是多调用了一层GetCommand函数接口。

      具体代码请参见:DeviceDemo项目。

(1)复杂的、八种的通信协议。有正规的说道,例如:Modbus等,也有无数按照标准协议修改的协商格式、以及自定义磋商格式,并且距离。对于不佳的软件架构,疲于应对,扩充设备或协议要对整个软件拓展梳理,往往在此进程中出现新的标题或BUG。

12.9     小结

   
对装备驱动的开销展开了详实的牵线,对于任何插件请依据实际的事态进行支付,详情请参见《二次开发手册》。

 

小编:唯笑志在

Email:504547114@qq.com

QQ:504547114

.NET开发技术联盟:54256083

文档下载:http://pan.baidu.com/s/1pJ7lZWf

合法网址:http://www.bmpj.net

 2.SSIO特点:

12.5        图形彰显的开发… 9

(6)既然设备与服务端进行数量交互,那么就相应对配备的通信状态、IO状态、以及配备本身的事态进行监察,那样设备才处于可保证状态。

12.4.1.1 发送读实时数据命令协议

   
总括机发送0x61命令为读实时数据命令,共发送6个字节,校验和为从“从机地址”起首的增加和,不包涵“数据报头”、“校验和”和“协议甘休”。

    发送指令数据帧如下:

帧结构

数据报头

从机地址

一声令下代码

校验和

共谋为止

0x55

0xAA

 

0x61

 

0x0D

字节数

1

1

1

1

1

1

  

8)  
内置服务组件接口,能够自定义完毕OPC服务、4-20mA输出、LED大屏显示、短信服务、以及多效益网关服务。

12.4.1.3 发送和接收数据事例

出殡(十六进制):0x55 0xaa 0x00 0x61 0x61 0x0d

收受(十六进制):0x55 0xaa 0x00 0x61 0x43 0x7a 0x00 0x00 0x43 0xb4 0x15
0x0d

流量数据为:250.00

信号数据为:360.00

(4)通信链路的多样性,对于同一个设施可能要接济RS232/RS485/RS422、RJ45、3G/4G等通信方式,所以对于一个配备要对应二种通讯格局(串口和网络),也给大家的开销造成很大的绊脚石。

12.6     数据导出的开发

  1. 追加对SuperIO组件的引用。
  2. 新建类,继承SuperIO.Export.IExportData接口,并且达成接口作用。
  3. 透过UpdateDevice接口落成解析对象,并出口格式化后的多少。

12.3        塑造主程序… 5

12.4.1即使通讯协议

12.8.2       驱动挂载… 11

葡京娱乐总站平台,12.3     营造主程序

  
通过持续SuperIO.UI.MainForm窗体类可以打造友好的宿主程序,那只是一个主干的界面框架,可以在此基础上举办增加。营造好的宿主程序如下图:

 葡京娱乐总站平台 8

12.8.1       参数配置… 10

12.4.2新建设备模块

   如下图:

 葡京娱乐总站平台 9

     增加对SuperIO.dll的引用,如下图:

葡京娱乐总站平台 10