当前位置:首页>排行榜>西门子数据类型怎么选?BOOL/INT/DINT/REAL 取值范围一次记清

西门子数据类型怎么选?BOOL/INT/DINT/REAL 取值范围一次记清

  • 更新时间 2026-11-02 08:01:17
西门子数据类型怎么选?BOOL/INT/DINT/REAL 取值范围一次记清
PLC基础

数着数着变成负数,是盒子选小了

设备计数器数到三万多突然跳成负数;模拟量读的温度明明是 80 度,程序里却显示一个看不懂的大整数。这两种怪现象,根子往往不在指令写错,而在数据类型选小了。

数据类型就是"数字盒子"

PLC 里的数据全按二进制存,数据类型就是规定这个数用几位、按有符号还是无符号解读。位数决定能装多大:有符号时最高位当符号位,1 就是负数,所以同样 16 位,无符号到 65535,有符号只到 32767。

S7-200 SMART 常用数据类型与取值范围

五类常用类型,记位数就够

BOOL 只装 0 和 1,对应一个开关量;BYTE 8 位无符号;WORD 16 位无符号,用在模拟量这类只取正数的场合;INT 16 位有符号;DINT 32 位有符号;REAL 是 32 位浮点,装温度压力这类带小数的数。WORD 和 INT 底层一模一样,区别只在你怎么解读;REAL 不能直接拿整数指令去算。

实例:把通道读数变成温度

S7-200 SMART 按 0~20mA 组态时,4~20mA 在 CPU 内部对应 5530~27648(5530 = 4÷20×27648)。设变送器量程 0~100 度,正确做法是走模拟量比例换算:输入取 AIW 通道,低限 5530、高限 27648,结果低限 0.0、高限 100.0,存进 VD 这样的 REAL 变量,出来才是能上触摸屏的浮点数。

温度 = (AIW − 5530) × 100.0 ÷ (27648 − 5530)

两个最容易踩的坑

一是拿 INT 存累计值:脉冲、产量这类只往上加的数超过 32767 就翻负,要么换 WORD,要么一开始就用 DINT。二是同一地址被两种类型重复占用——V 区按字节排队,用了 VD100 的 4 个字节,就不要再拿 VW100、VW102 装别的数。

提示:记法:位宽定上限,符号位吃掉一半。255、32767、21 亿——这三个数背下来,选类型基本不犯错。

三菱这边怎么对应

FX3U 没这么直白的名,规矩一样:16 位用普通指令、-32768~32767;32 位要占两个寄存器、指令前加 D;浮点靠 E 表示的实数常量和两个 D 存取。所以西门子用 DINT、三菱用 D 开头指令,本质是一回事。

依据:数据依据:西门子工业支持中心《S7-200 系统中的数据及其格式》类型表;S7-200 SMART 模拟量说明(0~20mA 对应 0~27648、4~20mA 对应 5530~27648);三菱《FX3U 系列编程手册》5.2 节 K/H/E 常数设定范围。

每天一篇,陪你从电工基础到 PLC 工程师

PLC笔记 · 每日一篇

随机文章