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