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