机械荟萃山庄

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 60|回复: 0

S7netplus与PLC通信时的读写

[复制链接]

2万

主题

2万

帖子

19万

积分

超级版主

Rank: 8Rank: 8

积分
191473
发表于 前天 17:11 | 显示全部楼层 |阅读模式







S7netplus 是一个开源的库,主要用于.NET环境中与西门子S7系列PLC进行通信。
S7NetPlus 对 PLC 内部变量(如 M0.0、MW10、MD20 等)的访问权限受限,特别是 S7-1200/1500 系列 的 PLC,默认启用了优化访问,并且限制了外部写入。
在博图(TIA Portal)中:
进入PLC属性 → "防护与安全" → "连接机制"
必须勾选"允许来自远程对象的PUT/GET通信访问"

右键点击DB块 → "属性"
必须取消勾选"优化块的访问"


西门子PLC中的浮点数(REAL)在内存中是以IEEE 754标准存储的32位单精度浮点数。S7netplus在底层通信时,会以字节形式传输数据,返回的是原始的32位整数表示,所以需要通过ConvertToFloat()方法将其转换为C#中的float类型。

对于LREAL(双精度浮点数),转换方法类似,但需要使用ConvertToLReal()方法
如果您想直接写入浮点数,S7netplus可能不支持直接写入浮点数类型,需要通过字节数组的方式
您也可以使用ReadBytes()方法读取指定字节数,然后自己处理转换。

https://www.jianshu.com/p/e93e85ddc59c
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|机械荟萃山庄 ( 辽ICP备16011317号-1 )

GMT+8, 2025-9-3 05:23 , Processed in 0.083091 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表