C#使用MX Component实现三菱PLC软元件数据采集的完整步骤(仿真)
创作时间:
作者:
@小白创作中心
C#使用MX Component实现三菱PLC软元件数据采集的完整步骤(仿真)
引用
1
来源
1.
https://www.cnblogs.com/Jerry9521/p/18174620
前言
本文介绍了如何使用三菱提供的MX Component插件实现对三菱PLC软元件数据的读写,记录了使用计算机仿真,模拟PLC,直至完成测试的详细流程,并重点介绍了在这个过程中的易错点,供参考。
用到的软件:
- PLC开发编程环境GX Works2,GX Works2下载链接:https://www.mitsubishielectric-fa.cn/site/file-software-detail?id=18
- 实现计算机与可编程控制器通信的软件工具MX Component,MX Component下载链接:https://www.mitsubishielectric-fa.cn/site/file-software-detail?id=27
配置流程:
GX Works2的配置流程:
(1)新建工程,选择PLC型号;
(2)修改PLC参数,PLC文件设置=>使用一下文件=>命名,设置合适的容量大小,扩容为了后期测试时使用(该操作可选);
(3)修改软元件设置,使用上一步骤中的扩容操作,三菱PLC设计上位机数据操作区一般选择D区,R区和W区亦可(该操作可选);
(4)调试中选择=>模拟开始,出现Simulator窗口,Mode和RUN绿灯长亮即表示仿真正常;
MX Component配置流程:
(1)找到MX Component安装的对应软件,选择“Communication Setup Utility”,以管理员身份运行;
(2)添加Logical Station Number(通道号);(这里以99为例)
(3)由于本案例采用的是GX Works2仿真方案,选择GX Simulator2,选择CPU型号,下一步即可;
(4)选择描述,,以Test为例;
(5)配置完成后,进行测试,显示successful表示连接成功;连接成功后可以关掉该软件,不影响正常通讯;
C#上位机的程序测试:
using ActUtlTypeLib; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace MELSEC.MX.Test { public partial class Form1 : Form { private ActUtlType m_plc; public Form1() { InitializeComponent(); m_plc = new ActUtlType(); } private void Form1_Load(object sender, EventArgs e) { cmb_LogicalStationNumber.Items.Clear(); for (int i = 1; i <= 256; i++) { cmb_LogicalStationNumber.Items.Add(i.ToString()); } } private void btn_Comm_Click(object sender, EventArgs e) { try { int logNUM = Convert.ToInt16(cmb_LogicalStationNumber.Text); m_plc.ActLogicalStationNumber = logNUM; m_plc.ActPassword = ""; if (m_plc.Open() != 0) { btn_Comm.BackColor = Color.Gray; btn_Comm.Text = "未建立链接"; m_plc.Close(); m_plc = null; } else { btn_Comm.BackColor = Color.Green; btn_Comm.Text = "已连接"; } } catch (Exception) { throw; } } private void btn_Read_Click(object sender, EventArgs e) { try { Thread thread = new Thread(() => { while (true) { txb_D0.Invoke(new Action(() => { txb_D0.Text = ReadDeviceValue("D0", 2)[0].ToString(); txb_D1.Text = ReadDeviceValue("D0", 2)[1].ToString(); txb_R100.Text = ReadDeviceValue("R100", 1)[0].ToString(); txb_W500.Text = ReadDeviceValue("W500", 1)[0].ToString(); })); Thread.Sleep(300); } }); thread.IsBackground = true; thread.Start(); } catch (Exception) { throw; } } private string[] ReadDeviceValue(string DeviceName, int NumberOfData) { int iReturnCode; short[] arrDeviceValue; string szDeviceName; string[] arrData = { }; int iNumberOfData; try { szDeviceName = string.Join("\n", DeviceName); iNumberOfData = Convert.ToInt32(NumberOfData); arrDeviceValue = new short[iNumberOfData]; iReturnCode = m_plc.ReadDeviceBlock2(szDeviceName, iNumberOfData, out arrDeviceValue[0]); if (iReturnCode == 0) { arrData = new string[iNumberOfData]; for (int i = 0; i < iNumberOfData; i++) { arrData[i] = arrDeviceValue[i].ToString(); } return arrData; } return arrData; } catch (Exception ex) { MessageBox.Show(ex.Message, Name, MessageBoxButtons.OK, MessageBoxIcon.Error); return arrData; } } } }
Demo演示
热门推荐
海外服务器流量限制真相:无限流量套餐到底值不值得信赖?
如何创作富有教育意义的儿歌?
DSP开发工程师职场攻略
英冠综述:谢菲尔德联和伯恩利有望重返英超,利兹联近期状态堪忧
如何高效进行任务分配表格制作?这些技巧你一定要知道!
投影仪焦距怎么调清晰视频?调整技巧有哪些?
榴莲的魅力何在?独特的外观、味道与文化争议探索
如何找到自信?摆脱负面思考,你不可不知这4个提升自信的思考练习
恐惧、焦虑与觉察:从"灾难化思维"走向"从容生长"
不焯水吃就等于“服毒”?为了家人健康,这几种菜再懒也要焯下水
智力低下的表现有哪些?容易给孩子带来哪些危害?看这一篇就够了
美国旅游签证申请全攻略:流程解析与面签技巧
未经公司审批的加班,算加班吗?加班费怎么算?法院这样认定
如何通过知识库管理与智能应答平台提升企业效率?
人类历史上影响最大的经济危机:1929-1933年大萧条的深度剖析
如何正确配置电脑硬盘?(从选购到安装,硬盘配置教程全解析)
日本关西必买伴手礼12选!大阪、京都&奈良等地知名零食一次推荐
同位素水文学:综述
从大数据及经络角度理解「葛根」的4种强大功效!
如何应对灾难化思维与焦虑?
培养学生自主学习的方法
市净率是什么意思?一文读懂市净率的计算与应用
每天吃菠菜对身体有坏处吗
钙剂和菠菜不能同吃,是真是假?
接线端子有哪些类型?2025年全面解析常见分类与应用场景
学校怀孕的学生应该如何妥善处理?提供什么支持措施?
两会专访 | 吴义勤:AI时代,文学版权保护亟需加强
从唐诡到清明,2年14部古装悬疑为何仍干不过现代悬疑?
故障排除指南:8种常见网络交换机故障及解决方案
美元升值的原因如何全面分析?这种分析对经济有何影响?