LN:计算自然对数 (S7-300, S7-400) 说明 使用“计算自然对数”指令,可以计算输入值的以 e(e=2.718282) 为底的自然对数。如果 输入值大于零,则该指令的结果为正数。如果输入值小于零,则该指令返回一个无效浮点数。参数 下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 <操作数> Input 浮点数 I、Q、M、D、L、P 或常数 输入值 <结果> Output 浮点数 I、Q、M、D、 L、P 输入值的自然对数有关有效数据类型的更多信息,请参见“另请参见”。
EXP:计算指数值 (S7-300,S7-400) 说明 可以使用“计算指数值”指令计算操作数值以 e (e = 2,718282) 为底时的指数。 参数下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 <操作数> Input 浮点数 I、Q、M、D、 L、P或常数 输入值 <结果> Output 浮点数 I、Q、M、D、 L、P 输入值的指数值有关有效数据类型的更多信息,请参见“另请参见”。 示例 以下示例说明了该指令的工作原理:SIN:计算正弦值 (S7-300,S7-400) 说明 使用“计算正弦值”指令,可以计算角度的正弦值。角度值在操作数中以弧度的形式指定。如果操作数的值不是有效的浮点数,则结果值无效。 参数 下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明<操作数> Input REAL I、Q、M、D、 L、P 或常数 角度值(弧度形式) <结果> OutputREAL I、Q、M、D、 L、P 指定角度的正弦 有关有效数据类型的更多信息,请参见“另请参见”。COS:计算余弦值(S7-300, S7-400) 说明 可以使用“计算余弦值”指令计算角度的余弦。角度值在操作数中以弧度的形式指定。如果操作数的值不是有效的浮点数,则结果值无效。 参数 下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明<操作数> Input REAL I、Q、M、D、 L、P 或常数 角度值(弧度形式) <结果> OutputREAL I、Q、M、D、 L、P 指定角度的余弦有关有效数据类型的更多信息,请参见“另请参见”。可以使用“计算正切值”指令计算一个角度的正切。角度值在操作数中以弧度的形式指定。如果操作数的值不是有效的浮点数,则结果值无效。 参数 下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明<操作数> Input REAL I、Q、M、D、 L、P 或常数 角度值(弧度形式) <结果> OutputREAL I、Q、M、D、 L、P 指定角度的正切ASIN:计算反正弦值 (S7-300, S7-400) 说明可以使用“计算反正弦值”指令计算操作数中指定的正弦值对应的角度值。只能为操作数指 定范围 -1 到 +1内的有效浮点数。计算出的角度值以弧度为单位,范围为 -π/2 到 +π/2。 如果满足以下任何条件,则结果值无效: •该操作数的值不是有效的浮点数。 • 该操作数的值超出了所允许的值范围(-1 到 +1)。ACOS:计算反余弦值 (S7-300,S7-400) 说明 可以使用“计算反余弦值”指令计算操作数中指定的余弦值对应的角度值。只能为操作数指 定范围 -1 到 +1内的有效浮点数。计算出的角度值以弧度为单位,范围为 0 到 +π。ATAN:计算反正切值 (S7-300, S7-400) 说明可以使用“计算反正切值”指令计算操作数中指定的正切值对应的角度值。操作数中的值只 能是有效的浮点数(或-NaN/+NaN)。计算出的角度值以弧度为单位,范围为 -π/2 到 +π/2。 如果输入 IN 的值不是有效的浮点数,则输出OUT 的值无效。 参数 下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 <操作数> Input 浮点数I、Q、M、D、 L、P 或常数 正切值 <结果> Output 浮点数 I、Q、M、D、 L、P 角度值(弧度形式)有关有效数据类型的更多信息,请参见“另请参见”。移动操作 (S7-300, S7-400) SWAP:交换 (S7-300,S7-400) 说明 可以使用“交换”指令更改操作数中各个字节的顺序。 根据使用的数据类型,可以交换累加器 1中的所有字节或仅交换累加器 1 的低字中的字节。 下图说明了如何交换 DWORD 数据类型操作数中的字节:BLKMOV:块移动(S7-300, S7-400) 说明 可以使用“块移动”指令将一个存储区(源区域)的数据移动到另一个存储区(目标区域)中。移动操作沿地址升序方向执行。可使用 ANY 指针定义源区域和目标区域。 说明 在该指令中,只能使用适用于 S7-300/400系列 CPU 的数据类型。 下图说明了移动操作的原理:源数据和目标数据一致请确保在执行“块移动”指令的过程中,源数据保持不变,否则无法保证目标数据的一致性。 可中断性如果源区域所在的数据块不仅仅只位于装载存储器中,则嵌套深度无限制。 如果从一个与运行系统无关的 DB 中进行复制时发生BLKMOV 中断,则 BLKMOV 操 作将无法继续嵌套。 存储区 可以使用“块移动”指令移动以下存储区的数据: • 数据块区域 •位存储区 • 过程映像输入 • 过程映像输出 • 与运行系统无关的数据块移动操作的通用规则源区域和目标区域不得重叠。如果源和目标区域长度不同,则只能移动较小长度的区域。如果源区域小于目标区域,则将整个源区域的数据都写入到目标区域中。而目标区域的其余 字节则保持不变。如果目标区域小于源区域,将写满整个目标区域。而忽略源区域的剩余字节。 如果移动 BOOL 数据类型的块,则指定的块长度必须能被 8整除,否则无法执行该指令。 说明 如果实际的源或目标区域小于 SRCBLK 或 DSTBLK 参数上指定的目标或源区域,则系统行为将取决于正在使用的 CPU 类型: • 以下情况适用于 S7-300 CPU: 不进行数据传输。并在参数 RET_VAL中输出错误代码 W#16#837F。在用户程序中必须 评估该错误代码。 • 以下情况适用于 S7-400 V4-CPU(V4、V4H-CPU 和 V4.5 H CPU): 不进行数据传输。并在参数 RET_VAL 中输出错误代码 W#16#8122 或W#16#8323。在 用户程序中必须评估该错误代码。 • 其它所有 S7-400-CPU: 进行数据传输。并在参数RET_VAL 中输出错误代码 W#16#8122 或 W#16#8323。在用 户程序中必须评估该错误代码。 移动字符串的规则还可以使用“块移动”指令移动 STRING 数据类型的源区域和目标区域。如果只有源区域为 STRING数据类型,则移动字符串中实际包含的字符。有关实际长度和Zui大长度信息不会写 入目标区域中。如果源和目标区域都是 STRING数据类型,则将目标区域中字符串的当前长 度设置为实际移动的字符数。如果要移动字符串实际长度和Zui大长度的信息,则需要以字节为单位将相关区域指定给 SRCBLK 和 DSTBLK参数。也可使用“Serialize”/“Deserialize”指令。 移动与运行系统无关数据块的规则源区域也可位于装载存储器中与运行系统无关的数据块内。系统使用关键字 UNLINKED,指 示与运行系统无关的数据块。如果使用“块移动”指令将与运行系统无关的数据块复制到工作存储器并加载该数据块(例如,通过编程设备),则该指令将延时数毫秒后才执行。这将导致 OB 周期延长,从而 可能触发周期监视。如果使用“块移动”指令移动与运行系统无关的数据块时操作中断,则该指令无法继续执行。如果 CPU 支持“从装载内存中的数据块读取数据”指令,则需使用该指令从装载存储器中读 取与运行系统无关的数据块。如果使用“块移动”指令,则会输出错误 W#16#8092。 参数下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 SRCBLK Input ANY I、Q、M、D、 L、P指定待移动的存储区(源 区域)。 RET_VAL Output INT I、Q、M、D、 L、P 错误信息: 如果在该指令执行期间出错,则在参数 RET_VAL 中 输出一个错误代码。 DSTBLK Output 1) ANY I、Q、M、D、 L、P指定要将块移动到的存储 区(目标区域)。 1) 参数 DSTBLK 声明为 Output,但在块接口中必须声明为InOut。UBLKMOV:不可中断的存储区移动 (S7-300, S7-400) 说明可以使用“不可中断的存储区移动”指令将一个存储区(源区域)的数据移动到另一个存储区 (目标区域)中。移动操作沿地址升序方向执行。可使用ANY 指针定义源区域和目标区域。 此移动操作不会被操作系统的其它任务打断。在执行“不可中断的存储区移动”指令 期间,CPU中断响应次数将增加。 说明 在该指令中,只能使用适用于 S7-300/400 系列 CPU 的数据类型。 存储区可以使用“不可中断的存储区移动”指令移动以下存储区的数据: • 数据块区域 • 位存储区 • 过程映像输入 • 过程映像输出。