PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 23106|回复: 0

[西门子] 西门子博途数字函数

[复制链接]
发表于 2024-5-23 17:32:55 | 显示全部楼层 |阅读模式
1、CALCULATE:计算

使用“CALCULATE:计算”指令定义并执行表达式,根据所选数据类型计算数学运算或复杂逻辑运算。

可以从指令框图中1位置的“???”下拉列表中选择该指令的数据类型。根据所选的数据类型,可以组合某些指令的函数以执行复杂计算。



在图中2位置对话框中指定待计算的表达式,单击指令框上方的“计算器”(Calculator) 图标可打开该对话框。表达式可以包含输入参数的名称和指令的语法。不能指定操作数名称和操作数地址。也就是只能用指令默认的端口名称编辑表达式。



在刚插入的指令中,指令框至少包含两个输入(IN1 和 IN2),如图一中3/4位置所示。点击5位置小星号图标可以扩展输入数目。在功能框中按升序对插入的输入编号。

下面看一下指令实际用法:



实例中可以得到:数据类型为INT整数型,

运行指令要执行的公式为:(IN1+IN2)*IN1,也就是(MW200+MW202)*MW200然后将运算结果存入MW204中;

PS:1.使用输入的值执行指定表达式。表达式中不一定会使用所有的已定义输入,如上图中的IN3没有参与运算。该指令的结果将传送到输出 OUT 中。

PS:2.如果表达式中的一个数学运算失败,则没有结果传送到输出 OUT,并且使能输出 ENO 返回信号状态“1”。

PS:3. 表达式中新定义的输入编号必须是连续的。例如,如果表达式中未定义输入 IN3,就不能使用输入 IN4。

PS:4.如果满足下列条件之一,则使能输出 ENO 的信号状态为“0”:

    ·使能输入 EN 的信号状态为“0”。

    ·“计算”指令的结果超出输出 OUT 指定的数据类型的允许范围。

    ·浮点数的值无效。

    ·执行表达式中某个指令期间出错。

下面看一下指令参数:



2、ADD:加

使用“ADD:加”指令,将输入 IN1 的值与输入 IN2 的值相加,并在输出 OUT(OUT:= IN1+IN2)处查询总和。

在刚插入一个ADD:加指令时,指令框中至少包含两个输入(IN1 和 IN2)如下图中2/3位置。可以点击图中4位置小星号,扩展输入数目。

在功能框中按升序对插入的输入编号。执行该指令时,将所有可用输入参数的值相加。求得的和存储在输出 OUT 中。

在图中1位置点击“???”选择要计算的数据类型,数据类型数据类型包含:如下如图右边所示;



以下面一个例子来看:



当EN使能M1.2导通时,指令开始执行:将IN1+IN2+IN3三个数值相加,并把结果存储至OUT,也就是(MW200+MW202+MW204)=MW206。指令执行完成后ENO输出状态为“1”。

加计算:所有输入数值都会自动参与计算。

PS:如果满足下列条件之一,则使能输出 ENO 的信号状态为“0”:

·使能输入 EN 的信号状态为“0”。

·指令结果超出输出 OUT 指定的数据类型的允许范围。

·浮点数的值无效。



3、SUB:减

使用“减”指令,将输入 IN2 的值从输入 IN1 的值中减去,并在输出 OUT(OUT:= IN1-IN2)处查询差值。

表中列出减计算的参数:



减计算与加用法一样,可参考ADD。

PS:一条减运算指令只支持两个数的运算。

4、MUL:乘法

使用“乘”指令,将输入 IN1 的值与输入 IN2 的值相乘,并在输出 OUT(OUT:= IN1*IN2)处查询乘积。用法与ADD:加类似,可参考;

可以在指令功能框中展开输入的数字。在功能框中以升序对相加的输入进行编号。指令执行时,将所有可用输入参数的值相乘。乘积存储在输出 OUT 中。

PS:1.乘法运算在设定OUT输出存储器时注意尽量多空出一些存储序号,防止有影响,如下图程式中MB204,其他地方尽量不要用MB205;

PS:2.注意选择数据寄存器的取值范围:如下如图MB200(MAX):二进制1111_1111也就是255,在乘法中容易溢出,16*16=256将出现溢出现象,可将输出OUT地址改为MW204;对应其底八位为MB205,高八位为MB204(涉及西门子PLC寄存器地址使用规则,可查相关资料,有需要可留意,后续总结分享)。



下面是指令参数表说明:



5、DIV:除

使用“除”指令,将输入 IN1 的值除以输入 IN2 的值,并在输出 OUT (OUT := IN1/IN2) 处查询商值。

下面是“除”指令的参数表:



一条除法指令只可计算两个数据。

刚插入指令时点击下图3位置“???”选择数据类型

当EN使能导通指令执行IN1/IN2并将结果储存于OUT输出寄存器内。



以下图实例展示:MW200/MW202计算结果只保留整数部分;假设MW200=3,MW202=2,则计算结果MW204=1。



6、MOD:返回除法的余数

求余数指令在实际编程中应用还是比较多的,在很多时候当两个数做除法运算时,只保留整数是无法满足设计需求的,这时就需要用到MOD指令。

使用“返回除法的余数”指令,将输入 IN1 的值除以输入 IN2 的值,并通过输出 OUT 查询余数。下面是程式中指令展示:



插入指令后需要选择要运算的数据类型,点击上图中位置1“???”数据类型如图位置5处。

下面是“返回除法的余数”指令的参数表:



下面看实例说明:设MW200为3,MW202为2,则指令运算结果MW204等于1。



7、NEG:取反

使用“取反”指令更改输入 IN 中值的符号,并在输出 OUT 中查询结果。例如,如果输入 IN 为正值,则该值的负等效值将发送到输出 OUT。

指令展示:



“取反”指令的参数表:



8、INC:递增

应用比较多的一条指令,比如用于产量计算、判定某些程式执行次数等。

使用“递增”指令将参数 IN/OUT 中操作数的值自加1,并存储到当前寄存器中。只有使能输入 EN 的信号状态为“1”时,才执行“递增”指令。如果在执行期间未发生溢出错误,则使能输出 ENO 的信号状态也为“1”。



在使用此指令时,使能EN端最好使用脉冲型型号,也可随时读取MD200中的值,用于监测或显示出来。

“递增”指令的参数表:



9、DEC:递减    与INC互为逆运算

使用“递减”指令将参数 IN/OUT 中操作数的值自减1,并存储到当前寄存器中。只有使能输入 EN 的信号状态为“1”时,才执行“递减”指令。如果在执行期间未超出所选数据类型的值范围,则输出 ENO 的信号状态也为“1”。

参数表如下图所示:



10、ABS:计算绝对值

使用“计算绝对值”指令计算输入 IN 处指定的值的绝对值。也就是求它的正值。



如果满足下列条件之一,则使能输出 ENO 的信号状态为“0”:

·使能输入 EN 的信号状态为“0”。

·浮点数的值无效。

参数表:



11、MIN:获取最小值

“获取最小值”指令比较可用输入的值,并将最小的值写入输出 OUT 中。在指令框中可以通过其它输入来扩展输入的数量。在功能框中按升序对输入进行编号。

在图中1位置选择数据类型,在位置4处添加要比较的数据数量,OUT为比较结果。



PS:要执行该指令,最少需要指定 2 个输入,最多可以指定 100 个输入。

参数表说明:



12、MAX:获取最大值   与MIN刚好相反

“获取最大值”指令比较可用输入的值,并将最大的值写入输出 OUT 中。在指令框中可以通过其它输入来扩展输入的数量。在功能框中按升序对输入进行编号。

参考MIN。

13、LIMIT:设置限值

使用“设置限值”指令,将输入 IN 的值限制在输入 MN 与 MX 的值范围之间。如果 IN 输入的值满足 MN 条件<=IN <= MX,则将其复制到 OUT 输出。如果不满足该条件且输入值 IN 低于下限 MN,则将输出 OUT设置为输入 MN 的值。如果超出上限 MX,则将输出 OUT 设置为输入 MX 的值。

如果输入 MN 的值大于输入 MX 的值,则结果不确定并且使能输出 ENO 为“0”。

==END

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-6-16 16:08 , Processed in 0.049847 second(s), 27 queries .

快速回复 返回顶部 返回列表