文本操作错误状态(STR_ERR_STAT)
当在执行文本操作的过程中发生错误时, 会将错误设置到文本操作错误状态[e:STR_ERR_STAT]中。[e: STR_ERR_STAT]中的“0” 表示正常状态,而保存在 [e: STR_ERR_STAT]中的非“0”值表示错误状态。会将最近的错误保存在文本操作错误状态[e:STR_ERR_STAT]中。可以用D脚本工具箱菜单下的[串口操作/标签设置]设置文本运算错误状态。下表列出了文本运算错误。
错误编号0/正常
错误编号1/文本溢出
以下函数的参数中直接包含至少256个字节的字符串:_strset ( ), _strlen ( ), _strcat ( ), _strmid ( ), and IO_READ_WAIT ( ).
或者,在执行 _strcat ( ) 或 _ldcopy ( ) 函数过程中创建了一个超出数据缓冲器大小的字符串。
例如,
_strcat(databuf0, databuf1)
当1020个字节的字符串保存在 databuf0、 60 个字节的字符串保存在 databuf 1 执行上面的功能。(超出1024个字节、即数据缓冲器大小的字符串会导致错误状态。)
错误编号2/文本串转换错误
为 _hexasc2bin ( ) 或 _decasc2bin ( ) 函数指定了无效 字符代码。
例如:
在 _hexasc2bin ( ) 的第二个参数中包含了非 “0” 至 “9”、“A”至 “F”或 “a”至 “f”的字符代码。
错误编号3/文本提取错误
试图检索一个长度大于用“_strmid ( )”函数指定的字符串长度的字符串。或者分配了大于指定字符串的偏移值。
例如:
_strmid(databuf0, "12345678", 2, 8)
试图从偏移2中检索一个8字符的字符串。
D脚本和全局D脚本不能使用字符串控制错误状态。如果它被意外读取,将载入“0”。
在执行每个函数时都将其保存在错误状态中。
要检查错误状态[e: STR_ERR_STAT],请写如下语句。您可以用如下表达式确认错误。
表达式示例:
if ([e:STR_ERR_STAT]<>0)// 检查错误状态。
{
set([b:[#INTERNAL]LS005000]) //设置错误指示灯的位。
}
endif
当发生错误并返回到主函数开始的地方时,该处理终止。(如果在函数运行时出现该命令,它就返回到调用该函数的行。)