设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
西门子博途数字函数
返回列表
发新帖
[西门子]
西门子博途数字函数
[复制链接]
23174
|
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
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
非标自动化
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』