C#PC与三菱Q系列PLC通信小实验中遇到的问题

1.在线程中处理控件时报错。

在线程中想要对TextBox写入时,报错。

解决:

                    this.Invoke(new MethodInvoker(delegate()
                    {
                        this.ShowRead.Text = DisplayData; //对控件的操作
                    }));


2.想要程序一直读取PLC寄存器的值并显示出来,于是使用了一个while循环,但这时结果显示有误。

解决:

将这个while循环写入线程中。

注意使用线程的话,需要引用库,添加一个using System.Threading;

                new Thread(delegate()
                    {
                        while (lampState)
                        {             
                            ReturnCode = act.ReadDeviceRandom2(lpszDeviceName, iNumberOfDeviceName, out lpshDeviceValue);
                            if (ReturnCode == 0)
                            {
                                this.Invoke(new MethodInvoker(delegate()
                

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要与三菱Q系列PLC进行以太网通讯,可以使用Mitsubishi FX通讯协议(MC Protocol)进行通信。以下是使用C#语言编写的示例代码,用于与三菱Q系列PLC进行以太网通讯: ```csharp using System; using System.Net.Sockets; class Program { static void Main() { // PLC的IP地址和端口号 string ipAddress = "192.168.0.1"; int port = 5002; // 创建TCP客户端 TcpClient client = new TcpClient(ipAddress, port); // 获取网络流 NetworkStream stream = client.GetStream(); // 发送和接收数据 byte[] sendData = { 0x50, 0x00, 0xFF, 0xFF, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00 }; byte[] receiveData = new byte[1024]; // 发送数据到PLC stream.Write(sendData, 0, sendData.Length); // 接收PLC的响应数据 int bytesRead = stream.Read(receiveData, 0, receiveData.Length); // 处理接收到的数据 // TODO: 根据MC Protocol协议解析接收到的数据 // 关闭网络流和TCP客户端 stream.Close(); client.Close(); } } ``` 在代码,我们首先指定PLC的IP地址和端口号,通过`TcpClient`类创建一个TCP客户端连接到PLC。然后,通过`GetStream`方法获取与PLC的网络流。 接下来,我们定义了要发送给PLC的数据(示例的`sendData`数组),以及用于接收PLC响应数据的缓冲区(示例的`receiveData`数组)。 然后,通过网络流发送数据到PLC,使用`Write`方法发送`sendData`数组的数据,并使用`Read`方法从PLC接收响应数据,将数据存储在`receiveData`数组。 接收到数据后,可以根据MC Protocol协议对接收到的数据进行解析和处理。 最后,我们关闭网络流和TCP客户端连接。 请注意,上述代码仅提供了与PLC进行基本的通信操作,具体的通信协议和数据解析需要根据实际情况进行调整和实现。另外,还需要确保与PLC连接的网络设置正确,并且PLC已经配置好与PC进行通信

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值