博途v15模拟量转换_基于博途V15西门⼦S7-1200数据处理指
令应⽤-数学函数
本篇是《基于博途V15 西门⼦S7-1200 ...》系列的后续篇,看懂本篇⽂章之前请⼤家关注我,然后查相关⽂章,学习之后再学习此篇。也请专业领域的⼤神批评指正。
感谢⼤家关注与⽀持!
这是第六篇功能指令,本篇介绍两个简单的定时器指令应⽤实例。上⼀篇是《基于博途V15 西门⼦S7-1200 数据处理指令应⽤-⽐较运算》,⼤家可以⾃⾏查阅学习。
1. CALCULATE(计算)
1)CALCULATE 指令
CALCULATE 指令可⽤于创建作⽤于多个输⼊上的数学函数(IN1,IN2,.. INn),并根据您定义的等式在 OUT 处⽣成结果。
⾸先选择数据类型。所有输⼊和输出的数据类型必须相同。
要添加其它输⼊,请单击最后⼀个输⼊处的图标。
2)参数的数据类型
参数 数据类型
IN1, IN2, ..INn SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte, Word, DWord
OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte, Word, DWord
注:IN 和 OUT 参数必须具有相同的数据类型(通过对输⼊参数进⾏隐式转换)。 例如: 如果 OUT 是 INT 或REAL,则 SINT 输⼊值将转换为 INT 或 REAL 值单击计算器图标可打开对话框,在其中定义数学函数。 输⼊等式作为输⼊(如 IN1 和IN2)和操作数。 单击“确定”(OK)保存函数时,对话框会⾃动⽣成 CALCULATE 指令的输⼊。
对话框显⽰⼀个⽰例,以及可根据 OUT 参数的数据类型加⼊的⼀列指令。
还必须为函数中的任何常量⽣成输⼊。 然后会在指令 CALCULATE 的相关输⼊中输⼊该常量值。通过输⼊常量作为输⼊,可将CALCULATE 指令复制到⽤户程序的其它位置,从⽽⽆需更改函数。之后,不需要修改函数,就可以更改指令输⼊的值或变量。
当执⾏ CALCULATE 并成功完成计算中的所有单个运算时,ENO = 1,否则 ENO = 0。
2. 加法、减法、乘法和除法指令
1)加法、减法、乘法和除法指令
ADD:加法 (IN1 + IN2 = OUT)
SUB:减法 (IN1 - IN2 = OUT)
MUL:乘法 (IN1 * IN2 = OUT)
DIV:除法 (IN1 / IN2 = OUT)
整数除法运算会截去商的⼩数部分以⽣成整数输出。
注:对于 LAD 和 FBD:单击“”并从下拉菜单中选择数据类型。
2)参数的数据类型(LAD 和 FBD)
参数 数据类型 说明
IN1, IN2 SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, 常数 数学运算输⼊
OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal 数学运算输出
注:要添加 ADD 或 MUL 输⼊,请单击“创建”(Create) 图标,或在其中⼀个现有IN 参数的输⼊短线处单击右键,并选择“插⼊输
⼊”(Insert input) 命令。要删除输⼊,请在其中⼀个现有 IN 参数(多于两个原始输⼊时)的输⼊短线处单击右键,并选择“删除”(Delete)命令。启⽤数学指令 (EN = 1) 后,指令会对输⼊值(IN1 和IN2)执⾏指定的运算并将结果存储在通过输出参数 (OUT) 指定的存储器地址中。运算成功完成后,指令会设置 ENO = 1。
3)ENO 状态
ENO 说明
1 ⽆错误
0 数学运算结果值可能超出所选数据类型的有效数值范围。返回适合⽬标⼤⼩的结果的最低有效部分。
0 除数为 0 (IN2 = 0):结果未定义,返回 0。
0 Real/LReal:如果其中⼀个输⼊值为 NaN(不是数字),则返回 NaN。
0 ADD Real/LReal:如果两个 IN 值均为 INF,但符号不同,则这是⾮法运算并返回 NaN。
0 SUB Real/LReal:如果两个 IN 值均为 INF,且符号相同,则这是⾮法运算并返回 NaN。
0 MUL Real/LReal:如果⼀个 IN 值为零⽽另⼀个为 INF,则这是⾮法运算并返回 NaN。
0 DIV Real/LReal:如果两个 IN 值均为零或 INF,则这是⾮法运算并返回 NaN。
3. MOD(返回除法的余数)
1)求模(返回除法的余数)指令
可以使⽤ MOD 指令返回整数除法运算的余数。⽤输⼊ IN1 的值除以输⼊ IN2 的值,在输出 OUT 中返回余数。
2)参数的数据类型
参数 数据类型 说明
IN1 和 IN2 SInt, Int, DInt, USInt, UInt, UDInt, 常数 求模输⼊
OUT SInt, Int, DInt, USInt, UInt, UDInt 求模输出
3)ENO 值
ENO 说明
1 ⽆错误
0 值 IN2 = 0,OUT 被赋以零值
4. NEG(取反)
1)NEG(求⼆进制补码)指令
使⽤ NEG 指令可将参数 IN 的值的算术符号取反并将结果存储在参数 OUT 中。
2)参数的数据类型
参数 数据类型 说明
IN SInt, Int, DInt, Real, LReal, Constant 数学运算输⼊
OUT SInt, Int, DInt, Real, LReal 数学运算输出
3)ENO 状态
ENO 说明
1 ⽆错误
0 结果值超出所选数据类型的有效数值范围。注:以 SInt 为例:NEG (-128) 的结果为 +128,超出该数据类型的最⼤值。
5. INC(递增)和 DEC(递减)
1)INC(递增)和 DEC(递减)
递增有符号或⽆符号整数值:IN_OUT 值 +1 = IN_OUT 值
递减有符号或⽆符号整数值:IN_OUT 值 - 1 = IN_OUT 值
2)参数的数据类型
参数 数据类型 说明
IN/OUT SInt, Int, DInt, USInt, UInt, UDInt 数学运算输⼊和输出
3)ENO 状态
ENO 说明
1 ⽆错误
0 结果值超出所选数据类型的有效数值范围。注:SInt ⽰例:(+127) INC 的结果为 +128,超出该数据类型的最⼤值。6. ABS(计算绝对值)
1)ABS(绝对值)指令
计算参数 IN 的有符号整数或实数的绝对值并将结果存储在参数 OUT 中。
2)参数的数据类型
参数 数据类型 说明
IN SInt, Int, DInt, Real, LReal 数学运算输⼊
OUT SInt, Int, DInt, Real, LReal 数学运算输出
3)ENO 状态
ENO 说明
1 ⽆错误
0 数学运算结果值超出所选数据类型的有效数值范围。注:SInt ⽰例:(-128) ABS 的结果为 +128,超出该数据类型的最⼤值。
7. MIN(获取最⼩值)和 MAX(获取最⼤值)
1)MIN(获取最⼩值)和 MAX(获取最⼤值)指令parameter数据类型
MIN 指令⽤于⽐较两个参数 IN1 和 IN2 的值并将最⼩(较⼩)值分配给参数 OUT。
MAX 指令⽤于⽐较两个参数 IN1 和 IN2 的值并将最⼤(较⼤)值分配给参数 OUT。
2)参数的数据类型
参数 数据类型 说明
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论