西门子编程基本数据类型(基于博途V15西门子S7-1200)

本篇是《基于博途V15 西门子S7-1200 ...》系列的后续篇,看懂本篇文章之前请大家关注我,然后查找相关文章,学习之后再学习此篇也请专业领域的大神批评指正,接下来我们就来聊聊关于西门子编程基本数据类型?以下内容大家不妨参考一二希望能帮到您!

西门子编程基本数据类型(基于博途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(获取最大值)指令

MIN 指令用于比较两个参数 IN1 和 IN2 的值并将最小(较小)值分配给参数 OUT。

MAX 指令用于比较两个参数 IN1 和 IN2 的值并将最大(较大)值分配给参数 OUT。

2)参数的数据类型

参数 数据类型 说明

IN1, IN2

[...IN32] SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, 数学运算输入

Time, Date, TOD, 常数

OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, 数学运算输出

Time, Date, TOD

注:要添加输入,请单击“创建”(Create) 图标,或在其中一个现有 IN 参数的输入短线处单击右键,并选择“插入输入”(Insert input) 命令。要删除输入,请在其中一个现有 IN 参数(多于两个原始输入时)的输入短线处单击右键,并选择“删除”(Delete) 命令。

3)ENO 状态

ENO 说明

1 无错误

0 仅适用于 Real 数据类型: 至少一个输入不是实数 (NaN)。 结果 OUT 为 /- INF(无穷大)。

8. LIMIT(设置限值)

1)LIMIT(设置限值)指令

Limit 指令用于测试参数 IN 的值是否在参数 MIN 和 MAX 指定的值范围内。

2)参数的数据类型

参数 数据类型 说明

MN, IN 和 MX SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Time,

Date, TOD·常数 数学运算输入

OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Time, 数学运算输出

Date, TOD

如果参数 IN 的值在指定的范围内,则 IN 的值将存储在参数 OUT 中。如果参数 IN 的值超出指定的范围,则 OUT 值为参数 MIN 的值(如果 IN 值小于 MIN 值)或参数MAX 的值(如果 IN 值大于 MAX 值)。

3)ENO 状态

ENO 说明

1 无错误

0 Real:如果 MIN、IN 和 MAX 的一个或多个值是 NaN(不是数字),则返回 NaN。

0 如果 MIN 大于 MAX,则将值 IN 分配给 OUT。

示例:

MyVal := LIMIT(MN:=10,IN:=53, MX:=40); //结果:MyVal = 40

MyVal := LIMIT(MN:=10,IN:=37, MX:=40); //结果:MyVal = 37

MyVal := LIMIT(MN:=10,IN:=8, MX:=40); //结果:MyVal = 10

9. 指数、对数及三角函数指令

1)使用浮点指令可编写使用 Real 或 LReal 数据类型的数学运算程序:

SQR:计算平方 (IN 2 = OUT)

SQRT:计算平方根 (√IN = OUT)

LN:计算自然对数 (LN(IN) = OUT)

EXP:计算指数值 (e IN =OUT),其中底数 e = 2.71828182845904523536

EXPT:取幂 (IN1 IN2 = OUT)

EXPT 参数 IN1 和 OUT 总是为同一数据类型,可以选定为 Real 或

LReal。可以从众多数据类型中为指数参数 IN2 选择数据类型。

FRAC:提取小数(浮点数 IN 的小数部分 = OUT)

SIN:计算正弦值 (sin(IN radians) = OUT)

ASIN:计算反正弦值(arcsine(IN) = OUT 弧度),其中 sin(OUT 弧度) = IN

COS:计算余弦(cos(IN 弧度) = OUT)

ACOS:计算反余弦值 (arccos(IN) = OUT 弧度),其中 cos(OUT 弧度) = IN

TAN:计算正切值(tan(IN 弧度) = OUT)

ATAN:计算反正切值 (arctan(IN) = OUT 弧度),其中 tan(OUT 弧度) = IN

2)浮点型数学运算指令示例

平方:IN 2 = OUT例如:如果 IN = 9,则 OUT = 81。

综合指数:IN1 IN2 = OUT例如:如果 IN1 = 3 且 IN2 = 2,则 OUT = 9。

注:对于 LAD 和 FBD:单击“???”(按指令名称)并从下拉菜单中选择数据类型。

对于 SCL:还可以使用基本的 SCL 数学运算符来创建数学表达式。

3)参数的数据类型

参数 数据类型 说明

IN, IN1 Real, LReal, Constant 输入

IN2 SInt, Int, DInt, USInt, UInt,UDInt, Real, LReal, Constant EXPT 指数输入

OUT Real, LReal 输出

4)ENO 状态

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页