您的位置:首页 > 其它

上位机与三菱PLC通信

2020-02-02 14:34 4175 查看

7月10日 转载 https://www.geek-share.com/detail/2726138533.html
由于本人在工业自动化行业做机器视觉的工作,所以除了图像处理方面要掌握外,还需要与工业机器人进行通信。上一篇写了c#通过TCP与川崎机器人通讯,链接:c#链接川崎机器人。

在自动化项目中,除了视觉系统直接与机器人通信外,还有一种常用的就是上位机与PLC通信,再由PLC对机器人进行控制,这适用于整个项目比较复杂的情况。下面就介绍如何利用MX component实现与三菱PLC的通信。

首先当然是MX component这个软件的安装与设置。下载安装好软件后,需要进行一些设置才能通信,网上一下就能搜到。这里就简单讲一下。

这里用以太网连接FX5U的CPU为例,选好接口和CPU

如果是PC直接连接PLC则勾选,并选择PC的网卡,但有些时候要通过交换,则需要把勾选去掉,然后按“Find CPU on network”自动获得所选型号的CPU的IP地址。博主一开始先输入了IP地址然后再寻找CPU,一直出错,很是苦恼了一段时间。

设置完成之后测试连接,成功后就可以用C#来调用了。

接下来是c#里面的程序。首先将dll添加引用:

图片4

然后private AxActUtlTypeLib.AxActUtlType axActUtlType1 = null;声明一个对象,以及this.axActUtlType1 = new AxActUtlTypeLib.AxActUtlType();(程序里忘加上去了)在程序里就可利用这个axActUtlType1 进行读写等操作。

首先要建立PLC连接,建立连接后,就可以对PLC进行读、写操作了。

textBox1.Text = “开始连接PLC”;
axActUtlType1.ActLogicalStationNumber = 1;//填设置的逻辑站号和密码
axActUtlType1.ActPassword = “”;
iReturnCode = axActUtlType1.Open();//尝试连接PLC,如果连接成功则返回值为0
if (iReturnCode == 0)
{
textBox1.Text = “连接PLC成功…”;

}
else
{
textBox1.Text = "连接PLC不成功...";
}

读取PLC用到的是iReturnCode = axActUtlType1.ReadDeviceBlock2(szDeviceName, iNumberOfData, out arrDeviceValue[0]);
写PLC则是iReturnCode = axActUtlType1.WriteDeviceBlock2(szDeviceName, iNumberOfData, ref theReadData1);
关键语句并不复杂,都是(设备名称,数量,值),如iReturnCode = axActUtlType1.ReadDeviceBlock2(M100, 1, out arrDeviceValue[0]);如果读取操作成功,则iReturnCode 等于0,arrDeviceValue就是读取的值。写操作也是类似。需要注意的是一些逻辑判断上的问题,比如说怎么判断上升沿,写入之前先判断当前值,写入是否成功的判断等。这些在源代码相应的部分都有注释,就不过多赘述了。

最后附上源代码下载:C#连接PLC源代码下载

作者:千年de小妖
来源:CSDN
原文:https://www.geek-share.com/detail/2726138533.html
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 点赞
  • 收藏
  • 分享
  • 文章举报
站内首发文章 韩暑 发布了2 篇原创文章 · 获赞 3 · 访问量 1332 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: