回复:SMART如何处理64位运算

大连穆工

  • 帖子

    1579
  • 精华

    1
  • 被关注

    82

论坛等级:奇侠

注册时间:2010-03-01

钻石 钻石 如何晋级?

发布于 2025-04-28 08:05:47

22楼

在 S7-200 SMART PLC 中处理 信捷伺服驱动器 通过 RS485(Modbus RTU) 采集到的 64位数据(如长整型Long或双精度浮点Double),需要结合 Modbus协议 和 数据转换方法 进行处理。以下是具体步骤和解决方案:

1. 确认信捷伺服驱动器的数据格式

信捷伺服驱动器通常通过 Modbus RTU 协议返回数据,64位数据可能以 两种形式 存储:

64位整数(Long Long / UInt64)(占用4个Modbus寄存器)

64位浮点数(Double / Float64)(占用4个Modbus寄存器)

示例数据存储方式(假设从地址40001开始):

Modbus 寄存器地址

数据内容(16位)

40001    高16位(Word1)    

40002    Word2    

40003    Word3    

40004    低16位(Word4)    

2. S7-200 SMART 读取64位数据

(1) 使用 Modbus RTU 主站指令读取

在 S7-200 SMART 中,使用 MBUS_MSG 指令读取4个连续的Modbus寄存器(因为64位=8字节=4个Word)。

复制

下载

MBUS_MSG(
   EN      => 启动条件(如SM0.0或脉冲触发),
   Slave   => 信捷伺服站号(如1),
   RW      => 0(读取),
   Addr    => 40001(起始地址),
   Count   => 4(读取4个Word),
   DataPtr => &VB100(存储到VB100开始的缓冲区),
   Done    => M0.0(完成标志),
   Error   => MB10(错误代码)
);

数据存储位置:VB100 ~ VB107(共8字节)。

(2) 数据转换(64位处理)

S7-200 SMART 不支持直接处理64位数据,需要拆分为 两个32位DWord 或 4个Word,再组合计算。

情况1:64位整数(Long Long / UInt64)

由于 S7-200 SMART 最大支持32位(DWord),无法直接存储64位整数,但可以拆分为 高32位 + 低32位 进行计算:

复制

下载

// VB100 ~ VB107 存储8字节64位数据
// 拆分高低32位
LD   SM0.0
MOVD &VB100, VD200   // 低32位(VD200)
MOVD &VB104, VD204   // 高32位(VD204)

计算方式(如需数值运算):

使用 加法/乘法 结合高低位计算(需自定义算法,如 Value = (VD204 << 32) + VD200)。

或 直接使用高/低32位(如仅需部分数据)。

情况2:64位浮点数(Double / Float64)

S7-200 SMART 不支持双精度浮点,但可以:

转换为32位浮点数(Float)(损失精度):

复制

下载

MOVD &VB100, VD208   // 存储为Float(VD208)

取前4字节(VB100~VB103)作为 Float:

手动计算(如需完整64位Double):

需编写算法,将8字节数据转换为IEEE 754 Double格式(较复杂,建议在HMI或上位机处理)。

3. 替代方案(推荐)

如果 64位数据必须完整处理,但S7-200 SMART能力有限,可考虑:

在信捷伺服端拆分数据(如返回2个32位数据)。

使用HMI/上位机处理(如WinCC、组态王等直接解析64位数据)。

升级到S7-1200/1500(支持LReal数据类型)。

总结

数据类型

S7-200 SMART 处理方法

64位整数    拆分为2个DWord(高32位+低32位)    

64位浮点    取前4字节转Float(损失精度)或在上位机处理    

推荐:如果数据精度要求高,建议在 HMI或PC端 进行64位数据处理,避免PLC计算能力限制。


科技在于不断探索
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8931条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。