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

上位机与PLC 通讯源码 DEMO 上位机与三菱PLC,西门子PLC通讯 同时一起通讯,单独控制

上位机与PLC 通讯源码 DEMO 上位机与三菱PLC,西门子PLC通讯 同时一起通讯,单独控制,三菱采用官方MX 通讯,支持三菱FX系列,A系列,Q系列,L系列,R系列,全系系列,各种串口和各种网口通讯,, 西门子采用S7.NET通讯,支持S7200,300,400,S71200,1500系列(网口), 带详细注释源码,写的非常通俗易懂,PLC和上位机通讯,(编程语言采用VB.NET) 需要用到上位机采集,PLC通讯数据项目的或者实际项目要用到的童靴可以学习参考… 包含: S7.NET 使用中文说明书,提供各个函数接口,方便直接在工程实际项目中使用 ( 网上一般都是英文的) 程序源码实例(带详细注释) MX Componnet 说明书 个人详细说明 及具体使用方法和注意事项

最近在工控项目里折腾上位机和PLC联调,发现不少同行对多品牌PLC混搭通讯挺头疼的。刚好手头有个用VB.NET写的双协议通讯DEMO,实测过三菱全系和西门子S7系列,今天把关键代码拆开揉碎了说说。

三菱PLC通讯的暴力美学

用官方MX Component是真香,但安装包里的日文文档确实劝退。这里推荐直接啃MX Componnet安装目录下的MelsecMxCtl.chm帮助文件,用翻译软件转成中文能省一半时间。

初始化通讯建议用网口方案(毕竟现在谁还用串口啊):

Dim mx As New ActEasyIF With mx .ActLogicalStationNumber = 0 ' 逻辑站号对应MX Configurator设置 .Open() If .State <> ActEasyIF.StateEnum.OPEN Then Throw New Exception("三菱PLC连接异常,检查IP白名单!") End If End With

注意Q系列要单独设置CPU类型,遇到过新手在L02CPU上死活连不上的情况:

mx.ActCpuType = ActEasyIF.CpuTypeEnum.Q_L02CPU

读D寄存器的正确姿势:

Dim devValue As Integer mx.ReadDeviceRandom("D100", 1, devValue) ' 这里有个坑:地址不要带软元件类型,直接写D100'

西门子S7的骚操作

S7.NET的GitHub项目是开源的,但中文资料确实稀缺。实测S71200的DB块读写得这么玩:

Dim plc As New Plc(CpuType.S71200, "192.168.0.1", 0, 1) plc.Open() If plc.IsConnected Then Dim dataBuffer(20) As Byte plc.ReadBytes(DataType.DataBlock, 1, 0, 2, dataBuffer) ' DB1.DBW0读取2个字节' End If

遇到过最奇葩的bug是S7-200 Smart必须设置机架号和槽号为0,不然直接Timeout给你看。

双协议同场飙车怎么玩

同时连两种PLC时记得分线程处理:

Task.Factory.StartNew(Sub() While True ' 三菱数据采集 ' SyncLock mxLock mx.ReadDeviceRandom("D100", 1, devValue) End SyncLock Thread.Sleep(50) End While End Sub) Task.Factory.StartNew(Sub() While True ' 西门子数据采集 ' SyncLock s7Lock plc.ReadBytes(...) End SyncLock Thread.Sleep(50) End While End Sub)

同步锁一定要加!血泪教训:之前没加锁导致MX Component底层崩溃蓝屏。

项目实战避坑指南

  1. 三菱MX组件要手动激活许可证,在控制面板找到MELSEC Environment下的License Management
  2. 西门子TPLC的TSAP默认是03.01,但有些国产触摸屏改过TSAP会导致连不上
  3. 批量读取时三菱建议用ReadDeviceBlock代替多次ReadDeviceRandom
  4. 遇到S7.NET报错18#大概率是DB块没勾选允许远程访问

源码里特意加了这些异常处理:

Try mx.WriteDeviceRandom("Y10", 1, 1) ' 强制输出Y10' Catch ex As Exception When TypeOf ex Is TIME_OUT ' 三菱超时重连逻辑 ' Catch ex As Exception When ex.Message.Contains("无法访问") ' 西门子权限异常处理 ' End Try

最后说个冷知识:MX Component的TCP端口默认5561,如果防火墙没开这个端口,调试时能ping通但死活连不上。曾经有次在现场排查了三个小时才发现是Windows Defender在搞事情...

(源码和中文手册已打包,需要的直接评论区喊话。特别说明:西门子S7-200需要PPI转换器,别拿个USB线就硬怼!)

http://www.zskr.cn/news/176870.html

相关文章:

  • PyTorch-CUDA-v2.7镜像中如何监控GPU使用率
  • 深度学习入门必备:PyTorch GPU环境安装全攻略
  • PyTorch-CUDA-v2.7镜像运行YOLOv8全流程演示
  • PyTorch-CUDA-v2.7镜像是否支持MPS(Apple芯片)
  • 手把手教你用Anaconda配置PyTorch环境(支持GPU)全流程
  • PyTorch-CUDA-v2.7镜像处理NLP任务的速度优化技巧
  • Git Commit最佳实践:配合PyTorch实验进行代码版本控制
  • PyTorch-CUDA-v2.7镜像是否支持LoRA微调技术
  • 让数据自己说话:TDengine TDgpt 如何识破时序数据中的异常
  • Markdown编写技术博客:记录你的第一次PyTorch模型训练
  • 2026德国乳胶漆怎么选?十大品牌5大维度测评,附除醛环保选型清单 - 速递信息
  • PyTorch-CUDA-v2.7镜像能否实现模型热更新
  • 水冷电机方案仿真技术研究:案例分析、素材准备与录屏实践
  • 不想全程出国?昆山杜克大学双校园模式,兼顾国际化与本土根基 - 速递信息
  • 为什么越来越多开发者选择PyTorch-CUDA基础镜像?
  • 深度学习新手必看:如何高效安装PyTorch和CUDA工具包
  • 大模型提示词工程实战:5种经典方法详解,建议收藏学习
  • 软件工程实践课程总结报告
  • Markdown写技术博客:记录你的PyTorch学习成长之路
  • Java毕设项目推荐-基于springBoot的学生党员、党务工作者、学院党委、学校组织部高校大学生党建系统设计与实现【附源码+文档,调试定制服务】
  • AI运维宝典:4大关键阶段全解析,附实操步骤与避坑指南,助力大模型成功应用
  • RHEL 7.0下载全攻略:轻松获取企业级Linux镜像
  • AI大模型学习路线图,从入门到实战的全栈指南_大模型AI产品经理学习路线解析,完美!
  • 告别熨烫难题!2025挂烫机排行榜前十名,闭眼入都香的高性价比之选 - 速递信息
  • 【必学收藏】RAG检索增强生成:让大模型实时专业回答的终极指南
  • 未命名剧本
  • 【毕业设计】基于springBoot的高校大学生党建系统设计与实现(源码+文档+远程调试,全bao定制等)
  • 如何导出PyTorch-CUDA-v2.7镜像用于离线部署
  • docker-compose 部署单节点 kafka 4.0 测试环境
  • 【课程设计/毕业设计】基于SpringBoot高校智慧党建管理系统的设计与实现基于springBoot的高校大学生党建系统设计与实现【附源码、数据库、万字文档】