C# 通过网络和三菱的PLC通信

本文详细介绍了如何使用C#通过逻辑站和IP连接与三菱PLC进行通信。涵盖了下载并安装MXcomponent,配置文件的使用,以及在Form和WPF中使用不同DLL进行通信的具体代码示例。

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

@C# 通过网络和三菱的PLC通信
作為一個新人我就就我所見的各種類型簡要的談一下好了
首先你是通過IP連接還是通過邏輯站連接,在此分為兩種。
先說最火的一種通過邏輯站連接,然後慢慢談IP連接,說的會有點慢,希望各位大佬批評指正。
1.邏輯站連接
在連接之前,你首先得下載MX component網上應該有很多安裝的教程,安裝完成后
在这里插入图片描述
找到Monitor 的文件夾,這是方便我們尋找我們配置文件。
在这里插入图片描述
這個路徑之上有個Act/Samples在这里插入图片描述
找到Vcs.NET (我觉得这是三菱给不同的软件写的配置文件)
在这里插入图片描述
我们是C#所以进去Vcs.NET找到Sample在这里插入图片描述
在这里插入图片描述
进去之后可能不同的人会不一样,没有生成我的这些文件,用VS打开一下就好了,同意生成更高的框架的文件。生成之后就会有我这些文件了。接下来就是非常重要的去寻找我们要的dll。在这里插入图片描述
在这里插入图片描述
这几个配置文件就是一直困扰我的配置文件,对了刚刚那个form打开之后你可以直接测一下从逻辑口读数据,如果你认真读一下这段代码
基本上你就对如何去读取数据非常了解了。
在这里插入图片描述
这几个配置文件,应该就是三菱专门写来和C#form通信的。
到这一步,你基本上可以去网上找教程连接了,但是还有一些小的细节,我可能需要多说一下,我遇到的一些小麻烦。
在这里插入图片描述
这两个dll都可以用来通信,区别在于AxInterop.ActUtlTypeLib.dll应该是用在Form中。
在这里插入图片描述
官方是用在form中,我目前只了解到这。

	public Form1(){
        	InitializeComponent();
        	this.axActUtlType = new AxActUtlTypeLib.AxActUtlType();
        	this.Controls.Add(this.axActUtlType);
        	//这个必须要加,这个是form将控件都加载到form当中,
     		//如果不加会抛异常
        	 timer1.Start();

    }

    public bool ConnectToPLC() {
        int iReturnCode;
        string iReturnCodeOX;
        this.axActUtlType.ActLogicalStationNumber = 1;
        //设置站口
        this.axActUtlType.ActPassword = "";
        //设置密码
        iReturnCode = this.axActUtlType.Open();
        iReturnCodeOX = Convert.ToString(iReturnCode, 16);
        //这里是我方便看错误代码写的没啥意义
        return iReturnCode == 0;
        //看手册可以知道返回0代表的是连接成功
    }

当然如果你用的是WPF你就不能用这个AxInterop.ActUtlTypeLib.dll这个控件了你应该用Interop.ActUtlTypeLib.dll这个控件。

使用的方式和这个差不多。

ActUtlType actUtlType = new ActUtlType();  
    public bool ConnectToPLC() {
        bool openOrNot = false;
       
            actUtlType.ActLogicalStationNumber = 1;
            
            if (actUtlType.Open() == 0) {
                openOrNot = true;
                actUtlType.Close();
                
            } else {
                actUtlType.Close();
            }
        
        return openOrNot;
    }

顺便说一句不要忘记using ActUtlTypeLib;
连接上之后估计就没什么别的了,你可以边看手册边去使用函数。读写爱干啥干啥去了。
对了运行这些代码之前你得先配置一下逻辑站,网上有很多我就不赘述了。贴几张图吧。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.IP連接
其实IP连接和这个差不多不过

 ACTETHERLib.ActQNUDECPUUDP actQNUDECPUUDP = new ACTETHERLib.ActQNUDECPUUDP();



        public bool ConnectToPLC() {
            bool openOrNot = false;
            string ardess=“127.0.0.0”;
                actQNUDECPUUDP.ActHostAddress = ardess;
                if (actQNUDECPUUDP.Open() == 0) {
                    openOrNot = true;
                    actQNUDECPUUDP.Close();
                    break;
                } else {
                    actQNUDECPUUDP.Close();
                }
            
            return openOrNot;
        }

在这里插入图片描述
2.IP連接
其实IP连接和这个差不多不过,不过你先得有Interop.ACTETHERLib.dll这个文件来配置一下;
对不同型号的三菱PLC你得去配置不同的类来读取数据,我觉得比较麻烦,虽然我现在用的就是这个。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值