91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ServerSuperIO分組提高交互負載平衡能力的示例分析

發布時間:2021-09-17 10:31:33 來源:億速云 閱讀:146 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關ServerSuperIO分組提高交互負載平衡能力的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

20.1     概述

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

為了解決上述問題,現在對設備驅動的參數增加了網絡控制器分組功能,網絡控制器會根據設備參數設置的分組名稱控制設備驅動。例如輪詢模式下,有1000個設備驅動,可以每10個設備驅動設置相同的分組名稱,這10個設備驅動受控于同一個網絡控制器,如果每間隔1s讀取一次數據,那么每個設備驅動的輪詢周期是10s鐘,其他網絡控制器類似。

20.2     網絡控制器示意圖

ServerSuperIO分組提高交互負載平衡能力的示例分析

根據設置設備驅動網絡參數的ControllerGroup,可以把設備驅動分配到不同的網絡控制中運行,并且適用于輪詢、自控、并發和單例控制模式。

20.3     串口控制器示意圖

ServerSuperIO分組提高交互負載平衡能力的示例分析

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

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();
            }
        }

關于“ServerSuperIO分組提高交互負載平衡能力的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

静安区| 察隅县| 轮台县| 喜德县| 阿城市| 九龙坡区| 沂源县| 衡阳县| 汕头市| 望江县| 和林格尔县| 海安县| 伊宁市| 西平县| 灵寿县| 改则县| 中江县| 乐平市| 修武县| 竹北市| 贵港市| 望谟县| 喜德县| 疏附县| 锦屏县| 大理市| 麻栗坡县| 温州市| 栖霞市| 柞水县| 怀集县| 个旧市| 西畴县| 梨树县| 贡山| 潞西市| 翁牛特旗| 五台县| 武隆县| 哈尔滨市| 璧山县|