网络通讯控制器分组,提高交互的负载平衡能力实例教程
20.1 概述
ServerSuperIO原来在网络通讯模式下,只有一个网络控制器,在自控模式、并发模式和单例模式下时都是异步处理返回的数据,并不会出现性能问题。但是在轮询模式下,一个网络控制器要按顺序逐一操作设备驱动的发送和接收,这样就会出现轮询周期过长,达不到读取数据频率的情况。
为了解决上述问题,现在对设备驱动的参数增加了网络控制器分组功能,网络控制器会根据设备参数设置的分组名称控制设备驱动。例如轮询模式下,有1000个设备驱动,可以每10个设备驱动设置相同的分组名称,这10个设备驱动受控于同一个网络控制器,如果每间隔1s读取一次数据,那么每个设备驱动的轮询周期是10s钟,其他网络控制器类似。
20.2 网络控制器示意图
根据设置设备驱动网络参数的ControllerGroup,可以把设备驱动分配到不同的网络控制中运行,并且适用于轮询、自控、并发和单例控制模式。
20.3 串口控制器示意图
顺便提一下串口控制器,通过设置设备驱动的串口号决定被分配到不同的串口控制器,该控制器只能适用于轮询控制模式。
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(); } }
Atas ialah kandungan terperinci 网络通讯控制器分组,提高交互的负载平衡能力实例教程. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Memandangkan Windows telah menjadi platform permainan pilihan, adalah lebih penting untuk mengenal pasti ciri berorientasikan permainannya. Salah satunya ialah keupayaan untuk menentukur pengawal Xbox One pada Windows 11. Dengan penentukuran manual terbina dalam, anda boleh menyingkirkan drift, pergerakan rawak atau isu prestasi dan menjajarkan paksi X, Y dan Z dengan berkesan. Jika pilihan yang tersedia tidak berfungsi, anda sentiasa boleh menggunakan alat penentukuran pengawal Xbox One pihak ketiga. Mari ketahui! Bagaimanakah cara saya menentukur pengawal Xbox saya pada Windows 11? Sebelum meneruskan, pastikan anda menyambungkan pengawal anda ke komputer anda dan kemas kini pemacu pengawal Xbox One anda. Semasa anda melakukannya, pasang juga sebarang kemas kini perisian tegar yang tersedia. 1. Gunakan Angin

PHP ialah bahasa pengaturcaraan yang sangat popular, dan CodeIgniter4 ialah rangka kerja PHP yang biasa digunakan. Apabila membangunkan aplikasi web, menggunakan rangka kerja sangat membantu Ia boleh mempercepatkan proses pembangunan, meningkatkan kualiti kod dan mengurangkan kos penyelenggaraan. Artikel ini akan memperkenalkan cara menggunakan rangka kerja CodeIgniter4. Pasang rangka kerja CodeIgniter4 Rangka kerja CodeIgniter4 boleh dimuat turun dari laman web rasmi (https://codeigniter.com/). Bawah

Belajar Laravel dari awal: Penjelasan terperinci tentang penggunaan kaedah pengawal Dalam pembangunan Laravel, pengawal adalah konsep yang sangat penting. Pengawal bertindak sebagai jambatan antara model dan pandangan, memproses permintaan daripada laluan dan mengembalikan data yang sepadan kepada paparan untuk paparan. Kaedah dalam pengawal boleh dipanggil melalui laluan Artikel ini akan memperkenalkan secara terperinci cara menulis dan memanggil kaedah dalam pengawal, dan akan memberikan contoh kod khusus. Pertama, kita perlu membuat pengawal. Anda boleh menggunakan alat baris arahan Artisan untuk membuat

Dalam laravel, pengawal (Controller) ialah kelas yang digunakan untuk melaksanakan fungsi tertentu pengawal boleh menggabungkan logik pemprosesan permintaan yang berkaitan ke dalam kelas yang berasingan. Sesetengah kaedah disimpan dalam pengawal untuk melaksanakan fungsi tertentu Pengawal dipanggil melalui penghalaan, dan fungsi panggil balik tidak lagi digunakan dalam direktori "app/Http/Controllers".

Dalam panduan pembelajaran Laravel, memanggil kaedah pengawal adalah topik yang sangat penting. Pengawal bertindak sebagai jambatan antara penghalaan dan model dan memainkan peranan penting dalam aplikasi. Artikel ini akan memperkenalkan amalan terbaik untuk panggilan kaedah pengawal dan menyediakan contoh kod khusus untuk membantu pembaca memahami dengan lebih baik. Mula-mula, mari kita fahami struktur asas kaedah pengawal. Dalam Laravel, kelas pengawal biasanya disimpan dalam direktori app/Http/Controllers Setiap kelas pengawal mengandungi berbilang

Bagaimana untuk melaksanakan fungsi pengumpulan data dan statistik dalam PHP Dalam proses pembangunan sebenar, kita sering menghadapi keperluan untuk mengumpulkan dan mengira data. Sama ada ia mengumpulkan statistik pada data dalam pangkalan data atau mengendalikan data dalam tatasusunan, PHP menyediakan pelbagai fungsi dan kaedah untuk memenuhi keperluan kita. Berikut akan menunjukkan cara mengumpulkan dan mengira pangkalan data dan data tatasusunan dalam PHP. Pengumpulan data dan statistik dalam pangkalan data Katakan kita mempunyai jadual prestasi pelajar dengan struktur jadual berikut: CREATETABLE`s

Dalam rangka kerja Yii, pengawal memainkan peranan penting dalam memproses permintaan. Selain mengendalikan permintaan halaman biasa, pengawal juga boleh digunakan untuk mengendalikan permintaan Ajax. Artikel ini akan memperkenalkan cara mengendalikan permintaan Ajax dalam rangka kerja Yii dan memberikan contoh kod. Dalam rangka kerja Yii, pemprosesan permintaan Ajax boleh dijalankan melalui langkah-langkah berikut: Langkah pertama ialah mencipta kelas pengawal (Pengawal). Anda boleh mewarisi kelas pengawal asas yiiwebCo yang disediakan oleh rangka kerja Yii

Rangka kerja Symfony ialah rangka kerja PHP popular yang direka berdasarkan seni bina MVC (Model-View-Controller). Dalam Symfony, pengawal adalah salah satu komponen utama yang bertanggungjawab untuk mengendalikan permintaan aplikasi web. Parameter dalam pengawal sangat berguna apabila memproses permintaan Artikel ini akan memperkenalkan cara menggunakan parameter pengawal dalam rangka kerja Symfony. Pengetahuan asas tentang parameter pengawal Parameter pengawal dihantar kepada pengawal melalui penghalaan. Penghalaan ialah pemetaan URI (Uniform Resource Identifiers) kepada pengawal dan
