PLC操作简单示例(读写指定寄存器)

这篇博客展示了如何通过C#编程实现与PLC的TCP/IP连接,进行读写指定寄存器操作。作者提供了一个简单的程序,包括读取、停止、启动和清除操作,通过发送不同命令来改变寄存器状态,并展示接收的响应数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近写的一个程序要和生产线的PLC连动(特定条件下读写指定寄存器),

查询了一些PLC的操作资料,做了一个测试程序:


        private void btnRead_Click(object sender, EventArgs e)
        {
            try
            {

                Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                IPAddress ip = Dns.GetHostEntry(this.txtIP.Text.Trim()).AddressList[0];
                IPEndPoint ipend = new IPEndPoint(ip, int.Parse(this.txtPort.Text.Trim()));
                sock.Connect(ipend);

                byte[] cmd;
                byte[] rec;

                cmd = createCommand("R", int.Parse(this.txtStartAddr.Text), 1);
                sock.Send(cmd);

                Thread.Sleep(1000);

                rec = new byte[sock.Available];
                sock.Receive(rec);
                this.txtRegInfo.Text = this.txtRegInfo.Text + Environment.NewLine + " <读取> " + b2s(rec);

                sock.Shutdown(SocketShutdown.Both);
                sock.Close();

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }


        private void btnStop_Click(object sender, EventArgs e)
        {

            try
            {
                this.mutexforsocket.WaitOne();
                Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                IPAddress ip = Dns.GetHostEntry(this.txtIP.Text.Trim()).AddressList[0];
                IPEndPoint ipend = new IPEndPoint(ip, int.Parse(this.txtPort.Text.Trim()));
                sock.Connect(ipend);

                byte[] cmd;
                byte[] rec;
               
                cmd = createCommand("W", int.Parse(this.txtStartAddr.Text), 0x3130);
                sock.Send(cmd);

                Thread.Sleep(1000);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值