比较数值
比较指令可以对两个数据类型相同的数值进行比较。您可以比较字节、整数、双整数和实 数。
对于 LAD 和 FBD:比较结果为 TRUE 时,比较指令将接通触点(LAD 程序段能流)或 输出(FBD 逻辑流)。
对于 STL:比较结果为 TRUE 时,比较指令可装载 1、将 1 与逻辑栈顶中的值进行“与”运 算或者“或”运算。
比较类型
有六种比较类型可用:
选择要比较的数据类型
所选数据类型标识符决定 IN1 和 IN2 参数所需的数据类型。
说明
以下条件会导致非致命错误,将能流设置为 OFF(ENO 位 = 0),并且使用值 0 作为比 较结果
• 遇到非法间接地址(任意比较指令)
• 比较实数指令遇到非法实数(例如 NaN)
为了避免这些情况的发生,首先应确保正确初始化指针以及包含实数的值,然后再执行使 用这些值的比较指令。
无论能流的状态如何,都会执行比较指令。
比较字符串
比较字符串指令可比较两个 ASCII 字符串。 对于 LAD 和 FBD: 比较结果为 TRUE 时,比较指令将接通触点 (LAD) 或输出 (FBD)。 对于 STL: 比较结果为 TRUE 时,比较指令可装载 1、将 1 与逻辑栈顶中的值进行“与” 运算或者“或”运算。 可以在两个变量或一个常数和一个变量之间进行比较。 如果比较中使用了常数,则它必 须为顶部参数(LAD 触点/ FBD 功能框)或参数 (STL)。 在程序编辑器中,常数字符串参数赋值必须以双引号字符开始和结束。 常数字符串条目 的大长度是 126 个字符(字节)。 相反,变量字符串由初始长度字节的字节地址引用,字符字节存储在下一个字节地址处。 变量字符串的大长度为 254 个字符(字节),并且可在数据块编辑器进行初始化(前 后带双引号字符)。
说明
以下条件会导致非致命错误,能流将设置为 OFF(ENO 位 = 0),并采用值 0 作为比较 结果:
• 遇到非法间接地址(任意比较指令)
• 遇到长度大于 254 个字符的变量字符串(比较字符串指令)
• 变量字符串的起始地址和长度使其不适合所指定的存储区(比较字符串指令) 为了避免这些情况的发生,首先应确保正确初始化指针以及用于保留 ASCII 字符串的存 储单元,然后再执行使用这些值的比较指令。 确保为 ASCII 字符串预留的缓冲区能够完 全放入指定的存储区。 无论能流的状态如何,都会执行比较指令。
STRING 数据类型的格式
字符串变量是一个字符序列,其中的每个字符均以字节形式存储。 STRING 数据类型的 个字节定义字符串的长度,即字符字节数。 下图所示为存储器中以变量形式存储的 STRING 数据类型。 字符串的长度可以是 0 到 254 个字符。 变量字符串的大存储要求为 255 个字节(长度字节加上 254 个字符)。
如果直接在程序编辑器中输入常数字符串参数(多 126 个字符),或在数据块编辑器 中初始化变量字符串(多 254 个字符),则字符串赋值必须以双引号字符开始和结 束。