1.PLC通信?

namespace _2.PLC通信
{public partial class Form1 : Form{public Form1(){InitializeComponent();}//連接//1.型號: 跟PLC溝通 使用哪個型號的PLC//2.IP 同上//3.機臺號:同上//4.插槽號:同上Plc plc = new Plc(CpuType.S71200, "192.168.25.80", 0, 1);private void button1_Click(object sender, EventArgs e){//連接plc.Open();}//讀取private void button2_Click(object sender, EventArgs e){//讀取數據的類型是什么?//讀取bool值 值是DBX 讀取int類型 DBW 其他類型DBD bool b = (bool)plc.Read("DB1.DBX0.0");int i = (int)plc.Read("DB3.DBW1.2");if (b){//例如執行拍照邏輯}}//發送private void button3_Click(object sender, EventArgs e){plc.Write("DB1.DBD0.2", "240,69");plc.Write("DB3.DBX0.3", true);}//關閉private void button4_Click(object sender, EventArgs e){plc.Close();}}
2.Tpc客戶端Socket

namespace _1.Tcp_客戶端
{public partial class Form1 : Form{public Socket socket;//接收信息的線程Thread T1;public Form1(){InitializeComponent();Control.CheckForIllegalCrossThreadCalls = false;}//連接private void button1_Click(object sender, EventArgs e){button1.Enabled = false;button2.Enabled = true;button3.Enabled = true;//設置通信socket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);//綁定IPIPAddress ip = IPAddress.Parse(textBox1.Text);//創建端口號int port = Convert.ToInt32(textBox2.Text);//形成IP連接點IPEndPoint point = new IPEndPoint(ip, port);//連接try{socket.Connect(point);ShowMsg($"{DateTime.Now.ToString("HH:mm:ss")}-->連接服務器: {point}");ShowMsg("\r\n");// 接收信息T1 = new Thread(o =>{//創建一個新的Socket 將建立連接的套接字傳遞過來賦值給新的套接字 進行通信socket = o as Socket;//不斷地接收信息while (true){byte[] bytes = new byte[1024 * 2];int r = socket.Receive(bytes);if (r == 0){break;}// 接收到的數據string str = Encoding.UTF8.GetString(bytes);ShowMsg($"{DateTime.Now.ToString("HH:mm:ss")}-->接收到服務端信息: {str}");ShowMsg("\r\n");// T1 .//if (str.Contains("T1") )//{// 要執行的邏輯了//}}});T1.IsBackground = true;T1.Start(socket);}catch(Exception ex) { }}public void ShowMsg(string msg){textBox3.Text += $"{msg}";}//關閉private void button2_Click(object sender, EventArgs e){if (socket != null){// 給服務端發送一個告知關閉的信息socket.Close();T1.Abort();button1.Enabled = true;button2.Enabled = false;button3.Enabled = false;ShowMsg($"{DateTime.Now.ToString("HH:mm:ss")}--> 與服務器斷開連接");ShowMsg("\r\n");}}//發送信息事件private void button3_Click(object sender, EventArgs e){byte[] bytes = Encoding.Default.GetBytes(textBox4.Text);socket.Send(bytes);//顯示ShowMsg($"{DateTime.Now.ToString("HH:mm:ss")}-->向服務端發送:{textBox4.Text}");textBox4.Clear();}}
}