《物聯網框架ServerSuperIO教程》-20.網絡通信控制器分組,提升交互的負載平衡能力。v3.6.6 版本發佈

20.1     概述

     ServerSuperIO原來在網絡通信模式下,只有一個網絡控制器,在自控模式、併發模式和單例模式下時都是異步處理返回的數據,並不會出現性能問題。可是在輪詢模式下,一個網絡控制器要按順序逐一操做設備驅動的發送和接收,這樣就會出現輪詢週期過長,達不到讀取數據頻率的狀況。html

     爲了解決上述問題,如今對設備驅動的參數增長了網絡控制器分組功能,網絡控制器會根據設備參數設置的分組名稱控制設備驅動。例如輪詢模式下,有1000個設備驅動,能夠每10個設備驅動設置相同的分組名稱,這10個設備驅動受控於同一個網絡控制器,若是每間隔1s讀取一次數據,那麼每一個設備驅動的輪詢週期是10s鍾,其餘網絡控制器相似。mysql

20.2     網絡控制器示意圖

 

      根據設置設備驅動網絡參數的ControllerGroup,能夠把設備驅動分配到不一樣的網絡控制中運行,而且適用於輪詢、自控、併發和單例控制模式。git

20.3     串口控制器示意圖

 

         順便提一下串口控制器,經過設置設備驅動的串口號決定被分配到不一樣的串口控制器,該控制器只能適用於輪詢控制模式。github

20.4     設備驅動網絡控制器分組示例代碼

        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#通信(串口和網絡)框架的設計與實現》sql

2.[開源]C#跨平臺物聯網通信框架ServerSuperIO(SSIO)介紹數據庫

2.應用SuperIO(SIO)和開源跨平臺物聯網框架ServerSuperIO(SSIO)構建系統的總體方案網絡

3.C#工業物聯網和集成系統解決方案的技術路線(數據源、數據採集、數據上傳與接收、ActiveMQ、Mongodb、WebApi、手機App)併發

5.ServerSuperIO開源地址:https://github.com/wxzz/ServerSuperIOoracle

物聯網&集成技術(.NET) QQ羣:54256083  框架

下載地址:http://www.bmpj.net/thread-14-1-1.html


 

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的持久化

相關文章
相關標籤/搜索