三菱MX Component与C#连接应用说明
一、MX Component组件安装
组件下载地址https://mitsubishielectric.yangben.cn/assets/detail/5b7ce314b2dcac27e0b97d0c
二、安装软件
软件序列号:570-986818410
三、安装完成后电脑显示图标
1-1图示
四、MX 连接PLC过程
双击1-1图示软件图标弹出
点击上图红框内按钮添加所需连接PLC
此处登陆站号为C# 或是C++等上位机语言连接库内所需调用站号用来让上位机可以区分使用的哪一个连接,注此处设置不是PLC本体站号。
输入站号,请不要与已有站号重复 单击[Next]
选择PLC端端口,蓝色为示例为串口
选择上位机端使用串口(对应COM口),注上两图COM口为上位机与MX-COM需一致
单击 [NEXT]
选择PLC端连接方式此处以CPU模块直连为例
选择PLC CPU型号,设置通讯波特率
完成以上步聚 单击 [NEXT]
选择PLC在你的线路上是属于从站,还是主站,如果是CPU模块上的串口请选择主站
单击 [next]
此处注释可以填也可以不填写,单击完成,
至此我们已经完成MX 连接PLC的相关设置,下面我们测试连接
选择Connection test 选项卡单击 [Test]
如果反回为 Communication test is successful表示MX控制已与PLC成功连接,Result=0
至此我们的MX控件在电脑上的布置已完成。
五、C# 连接MX控制,通过MX控制操作PLC过程
C#调用MX控件需要的引用库
引用文件位置,MX软件安装区
C#采用Control文件内库文件
C++采用Include文件夹内文件,文件名与C#文件名称一致
使用命名空间
创建C#连接MX对象
添加对象连接站号即MX标示的站号
此处站号必须一致
测试并打开连接
Open函数返回值为零则已成功连接,若返回为其它值则连接失败
连接成功后我们就可以直接调用库里所对应的函数来读写PLC数据了
注只限于16进制与位读写如需读写32位数据请做相应数据转换
单写
例:MY.SetDevice2("M1108", 1);返回为0时为写入成功,其它数值为失败写入失败
单读
多读
多写
例:;返回为0时为写入成功,其它数值为失败写入失败
C#转换文件如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WindowsFormsApplication2
{
class DataC
{
public void Dest16To32(short SourceB, short SourceA,out int dest)
{
//16位转32位
//A代表低位,B代表高位
dest = 0;
dest = dest | (SourceB & 0x0000ffff);
dest = (dest << 16) | (SourceA & 0x0000ffff);
}
public void Dest32To16(Int32 SourceNum, out short SourceH, out short SourceL)
{
//32分解双16位
SourceH = Convert.ToInt16(SourceNum >> 16);
SourceL = Convert.ToInt16((SourceNum << 16) >> 16);
}
public void int32tofloat(int i,out float x)
{
//DINT32位转实数(浮点数)
byte[] intBuff = BitConverter.GetBytes(i); // 将 int 转换成字节数组
// i = BitConverter.ToInt32(intBuff, 0); // 从字节数组转换成 int
x = BitConverter.ToSingle(intBuff, 0); // 从字节数组转换成 float
}
public void floattoint32(float x,out Int32 i)
{
//实数(浮点数)转32位DINT
byte[] floatBuff = BitConverter.GetBytes(x); // 将 Single 转换成字节数组
// x = BitConverter.ToSingle(floatBuff, 0); // 从字节数组转换成 float
i = BitConverter.ToInt32(floatBuff, 0); // 从字节数组转换成 int
}
}
}
库内可应用函数
C++ VB 等执行类似于C#
函数使用祥情请查阅
示例文档位置