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

台达AS系列PLC的Modbus TCP通信C#源代码及生产数据监控与Excel表格生成

台达AS系列PLC modbus TCP网口上位机通信项目现场使用设备的C#源代码监控设备每月每天的生产数据并生成Excel表格。最近在工业现场折腾台达AS系列PLC的Modbus TCP通讯发现这玩意儿的协议实现和常规设备还真有点不一样。项目需求是抓取设备每月每天的生产数据存Excel先给大伙儿看看我们是怎么用C#暴力破解的。先上硬菜——网络连接部分。台达PLC的Modbus TCP端口默认是502但寄存器地址需要特别注意偏移量using System.Net.Sockets; //... TcpClient client new TcpClient(); client.Connect(192.168.1.10, 502); NetworkStream stream client.GetStream(); // Modbus TCP请求帧 byte[] request new byte[] { 0x00, 0x01, //事务标识 0x00, 0x00, //协议标识 0x00, 0x06, //后续字节数 0x01, //单元标识 0x03, //功能码03读保持寄存器 0x00, 0x64, //起始地址注意台达地址偏移 0x00, 0x02 //读取寄存器数量 };这里有个坑——台达的寄存器地址需要做1偏移。比如手册标注D100寄存器实际要发0x0063十进制99而不是0x0064。第一次调试时在这卡了两个小时现场老哥差点把咖啡泼我键盘上。台达AS系列PLC modbus TCP网口上位机通信项目现场使用设备的C#源代码监控设备每月每天的生产数据并生成Excel表格。数据解析环节更刺激。读回来的数据是大端模式处理浮点数得特别注意byte[] response new byte[256]; int bytesRead stream.Read(response, 0, response.Length); // 解析产量数据假设从D100开始 float dailyOutput BitConverter.ToSingle(new byte[] { response[9], response[8], //注意字节顺序 response[11], response[10] }, 0); // 处理负数情况 if (BitConverter.IsLittleEndian) { Array.Reverse(response, 8, 4); }这段代码让我想起去年在钢厂调试时温度值总是显示-40°C后来发现是字节顺序没处理好。现在看见BitConverter都有应激反应建议各位随身携带字节序对照表。数据攒够之后要生成Excel报表用EPPlus比传统的Interop稳定得多using OfficeOpenXml; //... using (var package new ExcelPackage()) { var worksheet package.Workbook.Worksheets.Add(生产日报); worksheet.Cells[A1].LoadFromCollection(dataRecords, true); // 设置日期格式 worksheet.Column(1).Style.Numberformat.Format yyyy-MM-dd; // 自动调整列宽防止现场人员老花眼 worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns(); FileInfo file new FileInfo(${DateTime.Now:yyyyMM}_production.xlsx); package.SaveAs(file); }EPPlus处理十万级数据量时建议开启内存优化模式别问我怎么知道的——上个月报表生成直接吃光8G内存现场工控机当场罢工。顺便提醒记得在finally块里释放资源PLC那边的连接超时可不会等你。调试时建议用Modbus Slave软件模拟PLCWireshark抓包看原始数据流。曾经遇到个灵异事件现场设备正常但读不到数据后来发现是网管把502端口给封了。所以啊工业网络调试三分靠技术七分靠玄学。

相关文章:

台达AS系列PLC的Modbus TCP通信C#源代码及生产数据监控与Excel表格生成

台达AS系列PLC modbus TCP网口上位机通信,项目现场使用设备的C#源代码,监控设备每月每天的生产数据并生成Excel表格。最近在工业现场折腾台达AS系列PLC的Modbus TCP通讯,发现这玩意儿的协议实现和常规设备还真有点不一样。项目需求是抓取设备…...

React - 组件优化、children props 与 render props、错误边界

一、组件优化 1、问题引入 (1)基本介绍只要执行 setState,即使不改变状态数据, 组件也会重新 render只要当前组件重新 render,就会自动重新 render 子组件,纵使子组件没有用到父组件的任何数据只要父组件更新&#xff…...

OpenSSF Scorecard安全策略检查:保护代码仓库的终极完整指南

OpenSSF Scorecard安全策略检查:保护代码仓库的终极完整指南 【免费下载链接】scorecard OpenSSF Scorecard - Security health metrics for Open Source 项目地址: https://gitcode.com/gh_mirrors/sc/scorecard OpenSSF Scorecard是一款由Open Source Secu…...

终极MFE-starter缓存策略指南:Service Worker与浏览器缓存优化全解析

终极MFE-starter缓存策略指南:Service Worker与浏览器缓存优化全解析 【免费下载链接】MFE-starter MFE Starter 项目地址: https://gitcode.com/gh_mirrors/mf/MFE-starter MFE-starter作为现代前端微服务架构的开发利器,其缓存策略直接影响应用…...

告别复制粘贴!PDF-Parser-1.0实战:3步提取论文/报告/合同所有内容

告别复制粘贴!PDF-Parser-1.0实战:3步提取论文/报告/合同所有内容 1. 为什么你需要PDF-Parser-1.0? 还在为PDF文档中的内容提取而烦恼吗?无论是学术论文中的复杂公式,财务报告里的精密表格,还是法律合同中…...

终极DevSecOps安全测试工具大全:OWASP ZAP、Brakeman等实战应用指南

终极DevSecOps安全测试工具大全:OWASP ZAP、Brakeman等实战应用指南 【免费下载链接】awesome-devsecops An authoritative list of awesome devsecops tools with the help from community experiments and contributions. 项目地址: https://gitcode.com/gh_mir…...

BAAI/bge-m3环境配置全攻略:WebUI集成与语义分析服务搭建

BAAI/bge-m3环境配置全攻略:WebUI集成与语义分析服务搭建 1. 环境准备与快速部署 1.1 系统要求与依赖安装 BAAI/bge-m3作为当前最强大的开源语义嵌入模型之一,对运行环境有特定要求。以下是推荐的配置方案: 操作系统:Linux (U…...

使用Knockout.js构建完全键盘友好的无障碍导航菜单:终极指南

使用Knockout.js构建完全键盘友好的无障碍导航菜单:终极指南 【免费下载链接】knockout Knockout makes it easier to create rich, responsive UIs with JavaScript 项目地址: https://gitcode.com/gh_mirrors/kn/knockout 在现代Web开发中,创建…...

Rack错误处理终极指南:ShowExceptions中间件详解与实战技巧

Rack错误处理终极指南:ShowExceptions中间件详解与实战技巧 【免费下载链接】rack A modular Ruby web server interface. 项目地址: https://gitcode.com/gh_mirrors/ra/rack Rack是Ruby生态系统中最核心的Web服务器接口,为Ruby开发者提供了模块…...

防撤回解决方案:系统级保护的即时通讯消息安全增强

防撤回解决方案:系统级保护的即时通讯消息安全增强 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://gitcode.com/G…...

Spring Authorization Server 安全审计和合规性检查终极指南:10个关键实践

Spring Authorization Server 安全审计和合规性检查终极指南:10个关键实践 【免费下载链接】spring-authorization-server Spring Authorization Server 项目地址: https://gitcode.com/gh_mirrors/sp/spring-authorization-server Spring Authorization Ser…...

终极指南:5分钟掌握Fan Control风扇控制软件,彻底优化电脑散热与噪音

终极指南:5分钟掌握Fan Control风扇控制软件,彻底优化电脑散热与噪音 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitco…...

Alex.js 终极指南:如何用智能工具提升写作包容性

Alex.js 终极指南:如何用智能工具提升写作包容性 【免费下载链接】alex Catch insensitive, inconsiderate writing 项目地址: https://gitcode.com/gh_mirrors/al/alex Alex.js 是一款强大的开源工具,专为检测和改进写作中的不敏感、不周到表达而…...

如何构建现代化单页应用导航系统:从基础原理到实战实现

如何构建现代化单页应用导航系统:从基础原理到实战实现 【免费下载链接】screencasts Code that goes along with my screencasts. 项目地址: https://gitcode.com/gh_mirrors/sc/screencasts 单页应用(SPA)导航是现代Web开发的核心技…...

mPLUG视觉问答快速上手:5分钟完成本地部署,支持多格式图片+自然语言提问

mPLUG视觉问答快速上手:5分钟完成本地部署,支持多格式图片自然语言提问 你是不是经常遇到这种情况:看到一张复杂的图表,想快速知道它表达了什么;或者拿到一张产品设计图,想了解其中的细节信息;…...

如何让你的Windows电脑重获新生?系统优化与个性化全攻略

如何让你的Windows电脑重获新生?系统优化与个性化全攻略 【免费下载链接】Winhance-zh_CN A Chinese version of Winhance. C# application designed to optimize and customize your Windows experience. 项目地址: https://gitcode.com/gh_mirrors/wi/Winhance-…...

OpenClaw定时任务管理:千问3.5-27B实现凌晨自动备份

OpenClaw定时任务管理:千问3.5-27B实现凌晨自动备份 1. 为什么需要AI驱动的定时任务? 上个月我经历了一次惨痛的数据丢失——连续三天熬夜写的代码,因为笔记本突然蓝屏而全部消失。虽然最终通过碎片文件恢复了部分内容,但这件事…...

7-Zip ZS高效压缩算法深度解析:多格式压缩实战配置指南

7-Zip ZS高效压缩算法深度解析:多格式压缩实战配置指南 【免费下载链接】7-Zip-zstd 7-Zip with support for Brotli, Fast-LZMA2, Lizard, LZ4, LZ5 and Zstandard 项目地址: https://gitcode.com/gh_mirrors/7z/7-Zip-zstd 7-Zip ZS(7-Zip-zstd…...

GPUStack 在华为昇腾 I A 服务器上的保姆级部署指南几

开发个什么Skill呢? 通过 Skill,我们可以将某些能力进行模块化封装,从而实现特定的工作流编排、专家领域知识沉淀以及各类工具的集成。 这里我打算来一次“套娃式”的实践:创建一个用于自动生成 Skill 的 Skill,一是用…...

Sparrow App快速上手:5分钟学会API测试和调试

Sparrow App快速上手:5分钟学会API测试和调试 【免费下载链接】sparrow-app Your next-gen API testing and development tool. 项目地址: https://gitcode.com/gh_mirrors/sp/sparrow-app Sparrow App是一款下一代API测试和开发工具,能帮助开发者…...

微信聊天记录备份:数字时代的数据主权与记忆守护之道

微信聊天记录备份:数字时代的数据主权与记忆守护之道 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChat…...

DeepTutor智能复习系统:基于遗忘曲线的高效复习策略终极指南

DeepTutor智能复习系统:基于遗忘曲线的高效复习策略终极指南 【免费下载链接】DeepTutor "DeepTutor: Agent-Native Personalized Learning Assistant" 项目地址: https://gitcode.com/GitHub_Trending/dee/DeepTutor DeepTutor是一个基于AI智能体…...

从xcode-install到xcodes:项目迁移指南与版本管理工具演进

从xcode-install到xcodes:项目迁移指南与版本管理工具演进 【免费下载链接】xcode-install 🔽 Install and update your Xcodes 项目地址: https://gitcode.com/gh_mirrors/xc/xcode-install xcode-install是一款曾广受欢迎的Xcode版本管理工具&a…...

突破学术资源壁垒:Unpaywall扩展全方位应用指南

突破学术资源壁垒:Unpaywall扩展全方位应用指南 【免费下载链接】unpaywall-extension Firefox/Chrome extension that gives you a link to a free PDF when you view scholarly articles 项目地址: https://gitcode.com/gh_mirrors/un/unpaywall-extension …...

Cursor Free VIP开源工具:Cursor功能扩展完整技术指南

Cursor Free VIP开源工具:Cursor功能扩展完整技术指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your tri…...

Databricks推出AiChemy多智能体AI系统,助力药物研发加速

Databricks近日发布了一套名为AiChemy的多智能体AI参考架构,该系统通过模型上下文协议(MCP)将其平台上的企业内部数据与外部科学数据库相结合,旨在加速药物研发过程中的靶点识别与候选化合物评估等关键任务。靶点识别与候选化合物…...

AWS首席执行官解释为何同时投资Anthropic与OpenAI并不存在冲突

AWS首席执行官马特加曼表示,亚马逊近期对OpenAI完成了500亿美元的投资,此前已与Anthropic建立长期合作关系并累计投入80亿美元。他认为,对于这家云计算巨头而言,处理此类利益冲突早已是家常便饭。加曼在本周于旧金山举办的HumanX大…...

高并发系统线程爆炸危机迫在眉睫,Java 25虚拟线程已是唯一解?阿里/Netflix/Stripe真实迁移时间表首度公开

第一章:Java 25虚拟线程:高并发架构演进的分水岭Java 25正式将虚拟线程(Virtual Threads)从预览特性转为标准特性,标志着JVM在轻量级并发模型上的根本性突破。虚拟线程并非简单的API升级,而是JVM调度层与操…...

PHP异步I/O迁移紧急预案(含同步代码自动转换工具链+CI/CD熔断检测脚本)

第一章:PHP异步I/O迁移紧急预案概览当传统阻塞式 PHP 应用遭遇高并发 I/O 瓶颈(如大量 HTTP 请求、数据库查询或文件读写),服务响应延迟激增、连接池耗尽、CPU 利用率反常偏低——此时,异步 I/O 迁移已非优化选项&…...

CV-CUDA快速入门:10分钟学会构建你的第一个GPU加速图像处理应用

CV-CUDA快速入门:10分钟学会构建你的第一个GPU加速图像处理应用 【免费下载链接】CV-CUDA CV-CUDA™ is an open-source, GPU accelerated library for cloud-scale image processing and computer vision. 项目地址: https://gitcode.com/gh_mirrors/cv/CV-CUDA …...