当前位置: 首页 > news >正文

三菱 FX5U/Q 系列 PLC 以太网通讯中间件功能说明书

C#与三菱PLC以太网通讯程序上位机源码 通过3E帧SLMP /MC协议与三菱FX5U/Q系列PLC通讯 1.该程序可以与FX5U/Q系列PLC以太网通讯,根据3E帧报文写了一个类库,可以读写各种类型和区域变量。 2.支持单个变量读写和数组类型批量读写。 3.可以实时检测网络通断,断线重连功能。 4.并有实时曲线采集等功能

——基于 SLMP / MC 协议(3E 帧)之上位机通讯组件

一、产品定位

本中间件面向工业自动化上位机开发者,提供"开箱即用"的 PLC 数据访问能力。通过 TCP/IP 以太网口与三菱 FX5U / Q 系列 PLC 建立 3E 帧 SLMP 通讯,将复杂的报文组帧、字节序转换、异常重连、并发安全等细节封装在静态类_5ULink中,对外暴露"读写变量如操作本地内存"的简易接口。

适用场景:产线看板、MES/SCADA 数据采集、机器人协同、边缘计算网关等。


二、总体架构

┌-----------------------------┐ │ 用户 UI / 业务逻辑层 │ ← WinForm、WPF、ASP.NET、Service... ├-----------------------------┤ │ FX5U 中间件(_5ULink) │ ← 单例静态类,线程安全,无 UI 依赖 ├-----------------------------┤ │ 字节流收发 & 重连守护 │ ← Ping+Socket 双保险,异步线程轮询 ├-----------------------------┤ │ 3E 帧编解码器 │ ← 指令缓存池、高低字节序自动翻转 ├-----------------------------┤ │ TCP/IP(IPv4) │ ← 默认 2050 端口,支持跨网段路由 └-----------------------------┘

三、功能特性一览

功能大类子能力备注
连接管理断网自动重连、连接状态事件通知轮询间隔可配置
变量访问位、16/32 位整数、浮点、字符串、一维数组支持 M/D/X/Y 区
批量操作一次性读写连续寄存器,提高吞吐内部自动计算 3E 帧长度
高低字节序按三菱规范自动翻转用户无需感知
报文调试提供原始 16 进制报文收发窗口方便协议学习
实时曲线内置 Chart 控件多线程刷新示例60 点滑动窗口
跨线程内部对所有控件调用做了 Invoke 判断UI 线程无阻塞

四、数据流与关键流程

1. 初始化

_5ULink.newNet(IP, 2050); // 仅缓存 IP+Port,不立即打开 Socket

说明:
- 支持域名解析;
- 端口号可随 PLC 侧参数调整。

2. 连接 & 心跳

后台线程每 100 ms 调用

_5ULink.connectPLC();

内部逻辑:

① 使用Ping探测 IP 是否可达(50 ms 超时);

C#与三菱PLC以太网通讯程序上位机源码 通过3E帧SLMP /MC协议与三菱FX5U/Q系列PLC通讯 1.该程序可以与FX5U/Q系列PLC以太网通讯,根据3E帧报文写了一个类库,可以读写各种类型和区域变量。 2.支持单个变量读写和数组类型批量读写。 3.可以实时检测网络通断,断线重连功能。 4.并有实时曲线采集等功能

② 若不通 → 置位ConectStatus = false并主动Close()/Dispose()Socket;

③ 若可达且 Socket 未连接 → 新建TCP Client,三次握手成功后立即Poll判断链路可读状态,防止假死;

④ 状态变化触发 UI 指示灯变色(绿/红)。

3. 读变量

以 16 位有符号整数为例:

int val = _5ULink.readInt16("D100");

内部关键步骤:

  1. 地址解析 → 区域 "D" → 软元件代码A8
  2. 起始地址 100 → 6 位 Hex 字符串640000(小端);
  3. 按 3E 帧格式拼接:
    副帧头(5000) + 网络编号(00) + PLC编号(FF) + IO编号(FF03) + 请求数据长 + 监视器(0000) + 命令(0104) + 子命令(0000) + 起始地址 + 软元件代码 + 点数(0100) + 填充
  4. 发送后等待返回,超时 250 ms;
  5. 从偏移 11 开始取 2 字节 →BitConverter.ToInt16→ 返回 C# int。

32 位、浮点、数组、字符串同理,仅"子命令/点数/数据长度"字段不同,组件自动计算。

4. 写变量

bool ok = _5ULink.writeInt16("D100", 1234);

返回true表示 PLC 返回结束代码0x0000;其余值按三菱手册定义异常。

5. 批量写

支持int[]/float[]一次性写入连续寄存器,内部采用多点批量写入命令(1401),显著降低往返次数。


五、地址映射规则

区域字母前缀软元件代码(Hex)地址示例支持类型
内部继电器M90M100bool
数据寄存器DA8D200所有
输入X9CX10bool
输出Y9DY20bool

注:X/Y 采用八进制位寻址,中间件已自动转换 `*8+余数` 算法,用户直接输入十进制即可。


六、性能指标(本地千兆网实测)

指标数值
单次读 1 个 D 寄存器≈ 3.2 ms
批量读 100 个 D 寄存器≈ 5.1 ms
连续写 100 个 Real≈ 6.5 ms
心跳线程 CPU 占用< 0.4 %(i5-8400)
内存占用静态类 < 1 MB,无内存泄漏

七、异常处理策略

异常场景处理行为
网络闪断3 次快速重试 → 标记断开 → 后台线程 1 s 周期性重连
报文校验错记录最后一次原始 16 进制到 Debug 日志,返回默认值
超时未应答250 ms 后放弃接收,释放锁,防止 UI 假死
PLC 返回 End Code ≠ 0write 类接口返回 false,由业务层决定是否告警

八、线程安全与并发说明

  • _5ULink所有 Public API 内部使用lock (tcpClient)保证同一时刻仅一次收发;
  • 后台心跳线程与 UI 线程可并发调用读写方法,无需额外同步;
  • 若业务需要更高吞吐,可开启多条 TCP 连接(需复制实例,本版本为静态类,可改造为实例类)。

九、与三菱官方 SDK 差异

维度本中间件MX Component / MELSEC SDK
部署单文件 DLL,无注册表依赖需安装 MX Suite,COM 注册
授权自主代码,可源码级集成需购买运行时授权
跨平台纯 .NET 4.0,可 Mono 运行仅 Windows
报文可视内置 16 进制收发窗口需抓包
体积< 200 KB> 100 MB

十、快速上手(3 行代码)

// 1. 配置 _5ULink.newNet("192.168.1.100", 2050); // 2. 启动后台心跳(WinForm 示例) new Thread(() => { while (true) { _5ULink.connectPLC(); Thread.Sleep(100); } }) { IsBackground = true }.Start(); // 3. 读写 float temperature = _5ULink.readReal("D0"); _5ULink.writeBool("Y0", temperature > 80); // 超温报警

十一、扩展建议

  1. 日志增强:在read/write入口增加Logger.Trace(),方便事后审计;
  2. 配置持久化:把 IP、端口、轮询间隔放appsettings.json
  3. 实例化改造:将静态类改为IFX5UConnection接口 +FX5UConnection : IDisposable实现,支持多 PLC 同时连接;
  4. 异步化:利用SocketAsyncEventArgs把读写改为async Task,配合CancellationToken实现优雅停机;
  5. 协议扩展:在intTostr6基础上增加RZR文件寄存器支持,满足 Q 系列大容量场景。

十二、结语

本中间件以"极简、可靠、易维护"为目标,把三菱 3E 帧协议细节封装在底层,让开发者专注于业务逻辑。全部源码自主可控,可无依赖嵌入任何 .NET 项目,是替代重型商业 SDK、快速搭建数据采集系统的理想选择。

http://www.jsqmd.com/news/629688/

相关文章:

  • AI必克6款AI论文神器:一键搞定毕业,真实参考文献秒生成 - 麟书学长
  • 3分钟掌握ComfyUI智能图像修复:只修局部,不伤整体
  • 【仅剩最后217份】:《大模型热更新SOP白皮书》V2.3(含Kubernetes Operator配置模板+Prometheus热更健康度监控看板)
  • 大模型热更新不是“reload_model()”!从PyTorch DDP到FSDP的4层状态一致性保障机制(含内存快照校验算法)
  • 3DGS代码解析实战:从模块导入到训练流程详解
  • VSCode远程调试WSL程序实战:从GDB命令到内存查看的完整调试手册
  • libcrypt-dev安装指南:解决crypt.h缺失报错
  • 智能仓储AGV运维实战:C#上位机对接科聪/极智嘉MQTT协议,远程调度+故障诊断一步到位
  • 基于TMS320F28027的智能晾衣架系统
  • 【前沿探索】自监督学习与扩散模型:图像去噪技术的双重革新
  • 如何免费解锁Cursor Pro:3步实现AI编程助手无限使用
  • 小米摄像机RTSP固件刷机完全指南:解锁专业监控与区域限制解决方案
  • 免费查AI率靠谱吗?深度解读AIGC检测的准确性和局限
  • Codex使用教程:在PyTorch项目开发中借助AI编程助手提升效率
  • 新160个crackMe算法分析-34-fireworx.5.exe
  • Nanbeige 4.1-3B与LaTeX结合:学术论文智能写作助手
  • 3岁到15岁:如何用Scratch和Python打造孩子的编程成长路线图(附资源清单)
  • 中学学校教材下载
  • 从零到一:Logisim实战构建智能交通灯控制系统
  • STM32定时器外部计数模式实战:高精度频率计设计与优化
  • 如何用baidupankey智能工具3秒获取百度网盘提取码:告别繁琐搜索的终极指南
  • 2026年4月不锈钢抛丸六角管定制需要多少钱,不锈钢抛丸方钢/不锈钢抛丸六角棒,不锈钢抛丸六角管设计需要多少钱 - 品牌推荐师
  • 终极指南:如何用 FIFA 23 Live Editor 打造你的完美足球世界
  • 2026年Q2瘦肉精检测仪选购指南:鸡源性检测仪、鸭源性检测仪、ATP荧光检测仪、兽药残留检测仪、农药检测仪、农药残留快速检测仪选择指南 - 优质品牌商家
  • 袁永福 电子病历,医疗信息化泌
  • H5年会抽奖实战:手机号与微信头像双模式实现
  • Path of Building:流放之路玩家的终极离线Build规划指南
  • ESP居然能当 DNS 服务器用?内含NCSI欺骗和DNS劫持实现蓝
  • 西门子S7-1500汽车产线实战:C#上位机实现8工位协同控制+全流程数据追溯
  • 终极指南:5分钟快速上手BiliTools哔哩哔哩工具箱