VS2022-使用MX-Component读取三菱PLC32位数据测试
目录
VS2022 使用MX Component读取三菱PLC32位数据测试
这里写目录标题
一、测试前准备
1、VS软件
我这边下载的是最新的2022的版本,如果你是其他的版本测试过程也是差不多的,这里使用C#进行测试。
2、三菱软件
三菱 GX WORKS2 编程软件,版本不限
3、MX Component
具体配置可以看之前的设置过程
二、测试过程
MX Component下载以后在它的示例项目中是有读取16位数据的C#程序的,但是读取32位的数据并没有提及,网上找了一些方法也感觉比较繁琐,这里有一个比较简便的方法可以试一下。
1、MX Component示例项目路径
右击你的Communication Setup Utility,找到文件所在的路径,然后返回
……\MELSOFT\ACT\Samples
一般都是在这个Samples文件夹里面,你可以找到自己擅长的编程语言示例,这里我打开的是Vcs.NET里的示例项目
打开后直接F5就可以运行测试
具体测试过程我就不赘述了,网上有很多。
2、创建测试项目
我们这里使用VS2022新建一个windows窗体应用
界面上放一个textBox用于显示数据
再放一个button用于触发读取数据事件
引用一下act文件
3、代码编写
打开连接什么的可以参考示例项目,或者网上有好多案例 关键的按钮触发事件代码如下,通过点击按钮,读取D410的数据:
private void button1_Click(object sender, EventArgs e)
{
short[] MX = new short[2];
int iReturnCode = axActUtlType.ReadDeviceBlock2("D410", 2, out MX[0]);
byte[] L = System.BitConverter.GetBytes(MX[0]);
byte[] H = System.BitConverter.GetBytes(MX[1]);
byte[] f = new byte[H.Length + L.Length];
Buffer.BlockCopy(L, 0, f, 0, L.Length);
Buffer.BlockCopy(H, 0, f, L.Length, H.Length);
//float FF = BitConverter.ToSingle(f, 0); //转换成浮点数
int FF = BitConverter.ToInt32(f, 0); //转换成32位Int型
textBox1.Text = FF.ToString();
}
可以最终显示浮点数,或者是32位Int型 主要就是通过把高低字拼接到一起,最终整合转换类型显示就可以了 如果需要多次调用可以写成一个类,这样就很方便了,这里只是测试一下
三、测试结果
读取32位整数
读取浮点数
由于PLC里面的有效位数是7位,所以PLC里显示的最后以为可能不一样,只要把我们的VS上的有效数位设置成一样的就完全一样了
如果有更好的方法,欢迎一起分享讨论
Ending~