字符串转换为 DINT (STOD)
此信息适用于 CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370、GuardLogix 5570、Compact GuardLogix 5380、CompactLogix 5380、ControlLogix 5580、GuardLogix 5580 和 ControlLogix 5590 控制器。
字符串转换为 DINT (STOD) 指令将整数的 ASCII 表示转换为整型值或 REAL 值。
可用语言
梯形图

功能块
此指令不可用于功能块中。
结构化文本
STOD(Source,Dest);
操作数
指令中混用数据类型时,需遵从相关的数据转换规则。请参见“数据转换”。
梯形图和结构化文本
操作数 | 类型 | 格式 | 说明 | 备注 |
|---|---|---|---|---|
Source | 字符串类型 | 标签 | 包含 ASCII 形式的值的标签 | 字符串类型包括:
|
Destination | SINT INT DINT | 标签 | 要存储整型值的标签 | 如果 Source 值为浮点数,则指令仅转换该数值的非小数部分(不考虑目标数据类型)。 |
有关表达式语法的详细信息,请参见
结构化文本语法
部分。说明
STOD 指令将 Source 转换为整数并将结果放入 Destination 中。
- 该指令可转换正数和负数。
- 如果 Source 字符串包含非数字字符,STOD 将转换第一组连续数字:
该指令将跳过任何起始控制字符或非数字字符(数字前的负号除外)。
如果字符串包含多组数字,以分隔符(例如 /)分隔,则指令只转换第一组数字。
影响数学状态标志
仅在梯形图中。请参见
数学状态标志
部分。严重/轻微故障
类型 | Code | 原因 | 恢复方法 |
|---|---|---|---|
4 | 51 | 字符串标签的 LEN 值大于字符串标签的 DATA 大小。 | 检查确认未将任何指令写入字符串类型标签的 LEN 成员。 在 LEN 值中,输入字符串包含的字符数。 |
4 | 53 | 输出数值超出目标数据类型的限制。 |
|
有关操作数相关的故障,请参见
通用属性
部分。执行
梯形图
条件 | 执行的操作 |
|---|---|
预扫描 | 不适用 |
梯级输入条件为假 | 不适用 |
梯级输入条件为真 | 指令执行。 Destination 清零。 该指令转换 Source。 |
后扫描 | 不适用 |
结构化文本
条件 | Action |
|---|---|
预扫描 | 请参见上文“梯形图”表中的“预扫描”行 |
正常执行 | 请参见上文“梯形图”表中的“梯级输入条件为真”行。 |
后扫描 | 请参见上文“梯形图”表中的“后扫描”行 |
示例
当 MV_read.EM 置位时,STOD 指令将 Mv_msg 中的第一组数字字符转换为整型值。指令跳过起始控制字符 ($06) 并在分隔符 (\) 处停止。
梯形图

结构化文本
IF MV_read.EM THEN
STOD(MV_msg,MV_msg_nmbr);
MV_read.EM := 0;
END_IF;
提供反馈