C#网络类智能开关控制板实例
生活随笔
收集整理的這篇文章主要介紹了
C#网络类智能开关控制板实例
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
網(wǎng)絡(luò)類智能開關(guān)控制板采用 TCP/IP 協(xié)議與控制主機(PC 機)進行通訊,運
行穩(wěn)定可靠,傳輸距離遠,尤其適合不方便布線的場所。每塊開關(guān)板分配一個唯
一的 IP 地址,通過 IP 地址進行控制數(shù)據(jù)的傳輸區(qū)分;每個開關(guān)觸點容量為
220V/10A,一般情況下推薦使用到 6A 左右,太大的電流請使用我公司的 30A 控
制卡。
網(wǎng)絡(luò)類普通型號(有線、無線和混合網(wǎng)絡(luò))可以直接連路由器,手機和電腦
連接路由器后均可以控制,但是異地遠程需要路由器所在網(wǎng)絡(luò)有外網(wǎng) IP,通過
花生殼+端口映射即可實現(xiàn)異地遠程。云轉(zhuǎn)發(fā)型號直接支持異地遠程,插上網(wǎng)線
手機和電腦軟件中輸入設(shè)備序列號即可異地遠程進行開關(guān)控制
下面以兩路的控制板舉例:硬件圖片
設(shè)置界面:
demo代碼:
using System; using System.Net; using System.Net.Sockets;using System.Windows.Forms;namespace 遠程智能開關(guān)控制板 {public partial class Form1 : Form{public Form1() {InitializeComponent();}private void Form1_Load(object sender, EventArgs e) {radioButton1.Checked = true;textBox1.Text = "192.168.1.80";textBox2.Text = "3000";}private void SendData(IPAddress remoteIP, int Port,byte[] bits) {//實例化socket Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);IPEndPoint ipep = new IPEndPoint(remoteIP, Port);socket.Connect(ipep);//socket.Send(bits, 8, SocketFlags.None);socket.Send(bits);socket.Close();}private void button1_Click(object sender, EventArgs e) {byte[] order = new byte[8];foreach (RadioButton c in groupBox1.Controls){if (c.Checked){switch (c.Name){case "radioButton1": order = new byte[] { 0x55, 0x01, 0x12, 0x00, 0x00, 0x00, 0x01, 0x69 }; break;//閉合第一路case "radioButton2": order = new byte[] { 0x55, 0x01, 0x12, 0x00, 0x00, 0x00, 0x02, 0x6a }; break;//閉合第二路case "radioButton3": order = new byte[] { 0x55, 0x01, 0x12, 0x00, 0x00, 0x00, 0x03, 0x6b }; break;//閉合第三路case "radioButton4": order = new byte[] { 0x55, 0x01, 0x12, 0x00, 0x00, 0x00, 0x04, 0x6c }; break;//閉合第四路default: break;}}}SendData(IPAddress.Parse(textBox1.Text), int.Parse(textBox2.Text), order);MessageBox.Show("閉合指令發(fā)送成功");}private void button2_Click(object sender, EventArgs e) {byte[] order = new byte[8];foreach (RadioButton c in groupBox1.Controls){if (c.Checked){switch (c.Name){case "radioButton1": order = new byte[] { 0x55, 0x01, 0x11, 0x00, 0x00, 0x00, 0x01, 0x68 }; break;//斷開第一路case "radioButton2": order = new byte[] { 0x55, 0x01, 0x11, 0x00, 0x00, 0x00, 0x02, 0x69 }; break;//斷開第二路case "radioButton3": order = new byte[] { 0x55, 0x01, 0x11, 0x00, 0x00, 0x00, 0x03, 0x6a }; break;//斷開第三路case "radioButton4": order = new byte[] { 0x55, 0x01, 0x11, 0x00, 0x00, 0x00, 0x04, 0x6b }; break;//斷開第四路default: break;}}}SendData(IPAddress.Parse(textBox1.Text), int.Parse(textBox2.Text), order);MessageBox.Show("斷開指令發(fā)送成功");}} }運行界面:
總結(jié)
以上是生活随笔為你收集整理的C#网络类智能开关控制板实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 试用GitHub Copilot一周后,
- 下一篇: MVP on Board 没用小技巧