当前位置:小鱼儿玄机二站 > 关于计算机 > 物联网框架ServerSuperIO教程

物联网框架ServerSuperIO教程

文章作者:关于计算机 上传时间:2019-11-07

《物联网框架ServerSuperIO教程》-20.网络通讯控制器分组,提高交互的负载平衡能力。v3.6.6 版本发布,物联网控制器

《物联网框架ServerSuperIO教程》-21.终端控制传感器或设备,形成回路控制。附:demo源代码,

20.1     概述

     ServerSuperIO原来在网络通讯模式下,只有一个网络控制器,在自控模式、并发模式和单例模式下时都是异步处理返回的数据,并不会出现性能问题。但是在轮询模式下,一个网络控制器要按顺序逐一操作设备驱动的发送和接收,这样就会出现轮询周期过长,达不到读取数据频率的情况。

     为了解决上述问题,现在对设备驱动的参数增加了网络控制器分组功能,网络控制器会根据设备参数设置的分组名称控制设备驱动。例如轮询模式下,有1000个设备驱动,可以每10个设备驱动设置相同的分组名称,这10个设备驱动受控于同一个网络控制器,如果每间隔1s读取一次数据,那么每个设备驱动的轮询周期是10s钟,其他网络控制器类似。

21.1     概述

     ServerSuperIO以前所做的工作逐步为形成回路控制或级联控制打下基础,例如:服务连接器和设备驱动连接器的开发与应用。总之,是通过多种形式下发命令控制设备(驱动)或传感器,云端控制站点或监测点的传感器、App或者其他终端控制传感器、根据传感器的采集数据控制另一个传感器等。

    下面介绍云端、App或者其他终端如何控制传感器设备(传感器控制传感器类似,请参见:12.服务接口的开发,以及与云端双向交互)。根据通讯协议,结构化方案、不需要太多代码即可完成相应的功能。效果如下图:

 图片 1 

20.2     网络控制器示意图

  static void Main(string[] args) { string deviceID = "2"; DeviceDriver dev3 = new DeviceDriver(); dev3.DeviceParameter.DeviceName = "设备2"; dev3.DeviceParameter.DeviceAddr = 0; dev3.DeviceParameter.DeviceID = deviceID; dev3.DeviceParameter.DeviceCode = deviceID; dev3.DeviceDynamic.DeviceID = deviceID; dev3.DeviceParameter.NET.RemoteIP = "127.0.0.1"; dev3.DeviceParameter.NET.RemotePort = 9600; dev3.DeviceParameter.NET.ControllerGroup = "G2"; dev3.CommunicateType = CommunicateType.NET; dev3.DeviceParameter.NET.WorkMode = WorkMode.TcpServer; dev3.Initialize(deviceID); deviceID = "3"; DeviceDriver dev4 = new DeviceDriver(); dev4.DeviceParameter.DeviceName = "设备3"; dev4.DeviceParameter.DeviceAddr = 0; dev4.DeviceParameter.DeviceID = deviceID; dev4.DeviceParameter.DeviceCode = deviceID; dev4.DeviceDynamic.DeviceID = deviceID; dev4.DeviceParameter.NET.RemoteIP = "127.0.0.1"; dev4.DeviceParameter.NET.RemotePort = 9600; dev4.DeviceParameter.NET.ControllerGroup = "G3"; dev4.CommunicateType = CommunicateType.NET; dev4.Initialize(deviceID); IServer server = new ServerManager().CreateServer(new ServerConfig() { ServerName = "服务1", ComReadTimeout = 1000, ComWriteTimeout = 1000, NetReceiveTimeout = 1000, NetSendTimeout = 1000, ControlMode = ControlMode.Loop, SocketMode = SocketMode.Tcp, StartReceiveDataFliter = false, ClearSocketSession = true, StartCheckPackageLength = false, CheckSameSocketSession = false, }); server.AddDeviceCompleted += server_AddDeviceCompleted; server.DeleteDeviceCompleted += server_DeleteDeviceCompleted; server.SocketConnected+=server_SocketConnected; server.SocketClosed+=server_SocketClosed; server.Start(); server.AddDevice(dev3); server.AddDevice(dev4); while ("exit"==Console.ReadLine()) { server.Stop(); } }

 


1.[连载]《C#通讯(串口和网络)框架的设计与实现》

2.[开源]C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍

2.应用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的整体方案

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

5.ServerSuperIO开源地址:

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

下载地址:


 

1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍

《连载 | 物联网框架ServerSuperIO教程》1.4种通讯模式机制。

《连载 | 物联网框架ServerSuperIO教程》2.服务实例的配置参数说明

《连载 | 物联网框架ServerSuperIO教程》- 3.设备驱动介绍

《连载 | 物联网框架ServerSuperIO教程》-4.如开发一套设备驱动,同时支持串口和网络通讯。

《连载 | 物联网框架ServerSuperIO教程》- 5.轮询通讯模式开发及注意事项。

《连载 | 物联网框架ServerSuperIO教程》- 6.并发通讯模式开发及注意事项

《连载 | 物联网框架ServerSuperIO教程》- 7.自控通讯模式开发及注意事项

《连载 | 物联网框架ServerSuperIO教程》- 8.单例通讯模式开发及注意事项

《连载 | 物联网框架ServerSuperIO教程》- 9. 协议过滤器,解决一包多发、粘包、冗余数据

《连载 | 物联网框架ServerSuperIO教程》- 10.持续传输大块数据流的两种方式(如:文件)

《连载 | 物联网框架ServerSuperIO教程》- 11.实现设备(驱动)与设备(驱动)交互和级联控制。

《连载 | 物联网框架ServerSuperIO教程》- 12.服务接口的开发,以及与云端双向交互

《连载 | 物联网框架ServerSuperIO教程》- 13.自定义视图显示接口开发,满足不同的显示需求

《连载 | 物联网框架ServerSuperIO教程》- 14.配制工具介绍,以及设备驱动、视图驱动、服务实例的挂载

《连载 | 物联网框架ServerSuperIO教程》- 15.数据持久化接口的使用

《连载 | 物联网框架ServerSuperIO教程》- 16.OPC Server的使用步骤

《连载 | 物联网框架ServerSuperIO教程》- 17.支持实时数据库,高并发保存测点数据

《连载 | 物联网框架ServerSuperIO教程》- 18.集成OPC Client,及使用步骤

《连载 | 物联网框架ServerSuperIO教程》-19.设备驱动和OPC Client支持mysql、oracle、sqlite、sqlserver的持久化

 

版本发布,物联网控制器 20.1 概述 ServerSuperIO原来...

21.4     控制端

   控制端包括很多种:云端向下级发送控制命令、App或Pc机软件连接服务发送控制命令等等。发送控制命令如下图:

 public override void StartService() { string devId = "ControlDeviceService"; Driver dev = new Driver(); dev.ReceiveRequestInfos += Dev_ReceiveRequestInfos; dev.DeviceParameter.DeviceName = "控制设备驱动器"; dev.DeviceParameter.DeviceAddr = 0; dev.DeviceParameter.DeviceID = devId; dev.DeviceParameter.DeviceCode = ""; dev.DeviceDynamic.DeviceID = devId; dev.DeviceParameter.NET.RemoteIP = "127.0.0.1"; dev.DeviceParameter.NET.RemotePort = 9600; dev.DeviceParameter.NET.ControllerGroup = "LocalGroup"; dev.CommunicateType = CommunicateType.NET; dev.Initialize(devId); IServer server = new ServerManager().CreateServer(new ServerConfig() { ServerName = "控制设备服务", ListenPort=6670, ComReadTimeout = 1000, ComWriteTimeout = 1000, NetReceiveTimeout = 1000, NetSendTimeout = 1000, ControlMode = ControlMode.Singleton, SocketMode = SocketMode.Tcp, StartReceiveDataFliter = false, ClearSocketSession = false, StartCheckPackageLength = false, CheckSameSocketSession = false, }); server.AddDeviceCompleted += server_AddDeviceCompleted; server.DeleteDeviceCompleted += server_DeleteDeviceCompleted; server.SocketConnected += server_SocketConnected; server.SocketClosed += server_SocketClosed; server.Start(); server.AddDevice(dev); }

      dev.ReceiveRequestInfos事件是控制驱动继承ServerSuperIO框架中RunDevice驱动类扩展的事件接口,ServerSuperIO单例模式接收到数据信息,如果符合协议标准会把数据信息反馈给驱动程序的Communicate接口,ReceiveRequestInfos事件把数据信息传递给代理服务订阅该事件的Dev_ReceiveRequestInfos函数。代码如下图:

图片 2 

   代理服务中的Dev_ReceiveRequestInfos函数,通过服务连接器接口IServiceConnector,根据DeviceCode(addr)把信息传递给相应的设备驱动。代码如下图:

 1.[连载]《C#通讯(串口和网络)框架的设计与实现》

2.[开源]C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍

2.应用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的整体方案

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

5.ServerSuperIO开源地址:

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

下载地址:


 1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍

《连载 | 物联网框架ServerSuperIO教程》1.4种通讯模式机制。

《连载 | 物联网框架ServerSuperIO教程》2.服务实例的配置参数说明

《连载 | 物联网框架ServerSuperIO教程》- 3.设备驱动介绍

《连载 | 物联网框架ServerSuperIO教程》-4.如开发一套设备驱动,同时支持串口和网络通讯。

《连载 | 物联网框架ServerSuperIO教程》- 5.轮询通讯模式开发及注意事项。

《连载 | 物联网框架ServerSuperIO教程》- 6.并发通讯模式开发及注意事项

《连载 | 物联网框架ServerSuperIO教程》- 7.自控通讯模式开发及注意事项

《连载 | 物联网框架ServerSuperIO教程》- 8.单例通讯模式开发及注意事项

《连载 | 物联网框架ServerSuperIO教程》- 9. 协议过滤器,解决一包多发、粘包、冗余数据

《连载 | 物联网框架ServerSuperIO教程》- 10.持续传输大块数据流的两种方式(如:文件)

《连载 | 物联网框架ServerSuperIO教程》- 11.实现设备(驱动)与设备(驱动)交互和级联控制。

《连载 | 物联网框架ServerSuperIO教程》- 12.服务接口的开发,以及与云端双向交互

《连载 | 物联网框架ServerSuperIO教程》- 13.自定义视图显示接口开发,满足不同的显示需求

《连载 | 物联网框架ServerSuperIO教程》- 14.配制工具介绍,以及设备驱动、视图驱动、服务实例的挂载

《连载 | 物联网框架ServerSuperIO教程》- 15.数据持久化接口的使用

《连载 | 物联网框架ServerSuperIO教程》- 16.OPC Server的使用步骤

《连载 | 物联网框架ServerSuperIO教程》- 17.支持实时数据库,高并发保存测点数据

《连载 | 物联网框架ServerSuperIO教程》- 18.集成OPC Client,及使用步骤

《连载 | 物联网框架ServerSuperIO教程》-19.设备驱动和OPC Client支持mysql、oracle、sqlite、sqlserver的持久化

《物联网框架ServerSuperIO教程》-20.网络通讯控制器分组,提高交互的负载平衡能力。v3.6.6 版本发布

 

21.1 概述 ServerSuperIO以前所做的工作逐步为形成...

本文由小鱼儿玄机二站发布于关于计算机,转载请注明出处:物联网框架ServerSuperIO教程

关键词: