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

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

目前創(chuàng)新互聯(lián)公司已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計、永安網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

20.1     概述

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

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

20.2     網(wǎng)絡(luò)控制器示意圖

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

根據(jù)設(shè)置設(shè)備驅(qū)動網(wǎng)絡(luò)參數(shù)的ControllerGroup,可以把設(shè)備驅(qū)動分配到不同的網(wǎng)絡(luò)控制中運行,并且適用于輪詢、自控、并發(fā)和單例控制模式。

20.3     串口控制器示意圖

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

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

20.4     設(shè)備驅(qū)動網(wǎng)絡(luò)控制器分組示例代碼

        static void Main(string[] args)
        {
            string deviceID = "2";
            DeviceDriver dev3 = new DeviceDriver();
            dev3.DeviceParameter.DeviceName = "設(shè)備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 = "設(shè)備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 = "服務(wù)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();
            }
        }

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

網(wǎng)頁名稱:ServerSuperIO分組提高交互負載平衡能力的示例分析
網(wǎng)站鏈接:http://www.muchs.cn/article44/jsoshe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、電子商務(wù)、搜索引擎優(yōu)化App開發(fā)、標簽優(yōu)化全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)