苏州实操派科技有限公司官网-实操派教育科技,汇川技术PLC培训,实操派PLC培训,苏州PLC培训机构

如何在西门子PLC程序中取绝对值:简明易懂的教程

[复制链接]
1 905

附件下载,需登录可以查看贴内更多信息

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

x
文章大纲:

I. 简介
- 介绍PLC程序中取绝对值的应用和意义

II. 实现绝对值的方法
- 逻辑实现
- 数学实现

III. 逻辑实现方法详解
- 使用SET和RESET指令
- 使用CMP指令和条件跳转指令
- 使用MOV指令和条件跳转指令

IV. 数学实现方法详解
- 使用数学函数ABS
- 使用数学函数SQRT和乘法实现
- 使用数学函数SQR和乘法实现

V. 实例演示
- 给出使用以上两种方法实现绝对值的PLC程序实例,并进行详细的讲解和演示。

VI. 总结
- 总结以上讲解和演示,并强调实现绝对值在PLC程序中的重要性。

I. 简介

在PLC控制系统中,有时需要对某些数据或变量的绝对值进行操作,比如控制电机的速度和方向等。因此,在PLC程序中,实现绝对值的方法成为了非常重要的技能之一。

II. 实现绝对值的方法

在PLC程序中,实现绝对值通常有两种方法:逻辑实现和数学实现。

III. 逻辑实现方法详解

逻辑实现方法是采用逻辑指令实现绝对值,具有通用性和可移植性等优点。

使用SET和RESET指令

通过将变量的符号位取反,再加1实现变量的绝对值。这种方法简单易行,但只适用于符号位在最高位的数据类型(如S7-300和S7-400)。

例如,在S7-300和S7-400 PLC中实现变量A的绝对值的代码如下:

SET A; // 将A赋值给M0.0
SET M0.1; // 将M0.1置1,表示A为负数
SET M0.2; // 将M0.2置1,表示A的绝对值未计算
L #0.0; // 延时一段时间
JMP LBL1; // 跳转至LBL1
LBL0: RESET M0.1; // 将M0.1置0,表示A为正数
LBL1: CMP M0.1,#1.0; // 比较M0.1和1.0
JE LBL0; // 如果M0.1等于1.0,则跳转至LBL0
ADD M0.0,#1.0; // 对M0.0加1,即计算A的绝对值
SET M0.2; // 将M0.2置1,表示A的绝对值已计算

使用CMP指令和条件跳转指令

通过比较变量与0的大小关系,并按照条件跳转的方式实现变量的绝对值。

例如,在S7-300和S7-400 PLC中实现变量A的绝对值的代码如下:

CMP A,#0.0; // 比较A和0.0
JGE LBL0; // 如果A大于等于0.0,则跳转至LBL0
NEG A; // 对A取反,即计算A的绝对值
LBL0: NOP; // 无操作

使用MOV指令和条件跳转指令

通过移动变量到另一个存储区,并通过条件跳转的方式实现变量的绝对值。

例如,在S7-1200和S7-1500 PLC中实现变量A的绝对值的代码如下:

L #0.0; // 将0.0加载到存储器中
MOV A,DB1.DBD0; // 将A移动到DB1.DBD0存储区
TST DB1.DBD0; // 测试DB1.DBD0是否为非负数
JGE LBL0; // 如果DB1.DBD0大于等于0.0,则跳转至LBL0
NEG DB1.DBD0; // 对DB1.DBD0取反,即计算A的绝对值
LBL0: NOP; // 无操作

IV. 数学实现方法详解

数学实现方法是采用数学函数实现绝对值,具有精度高和实现简单等优点。

使用数学函数ABS

ABS函数是PLC语言中的内置函数,可直接调用。

例如,在S7-1200和S7-1500 PLC中实现变量A的绝对值的代码如下:

ABS A; // 对A求绝对值

使用数学函数SQRT和乘法实现

通过先对变量平方,再开方的方式实现变量的绝对值。

例如,在S7-1200和S7-1500 PLC中实现变量A的绝对值的代码如下:

MUL A,A; // 对A进行平方运算
SQRT DB1.DBD0; // 对DB1.DBD0进行开方运算

使用数学函数SQR和乘法实现

SQR函数是PLC语言中的内置函数,可直接调用。

例如,在S7-1200和S7-1500 PLC中实现变量A的绝对值的代码如下:

SQR A,DB1.DBD0; // 对A进行开方运算,并将结果存储到DB1.DBD0

V. 实例演示

下面给出使用以上两种方法实现绝对值的PLC程序实例,以S7-1200和S7-1500 PLC为例。

逻辑实现方法:

```
L #0.0; // 将0.0加载到存储器中
MOV A,DB1.DBD0; // 将A移动到DB1.DBD0存储区
TST DB1.DBD0; // 测试DB1.DBD0是否为非负数
JGE LBL0; // 如果DB1.DBD0大于等于0.0,则跳转至LBL0
NEG DB1.DBD0; // 对DB1.DBD0取反,即计算A的绝对值
LBL0: NOP; // 无操作
```

数学实现方法:

```
ABS A; // 对A求绝对值
```

VI. 总结

在PLC程序中,实现绝对值是非常常见和重要的操作。本文介绍了两种方法实现绝对值:逻辑实现和数学实现,并给出了详细的演示和实例代码。在实际应用中,根据不同的需求和情况,选择合适的方法实现绝对值是非常关键的。

________________________________________________________________________

免责声明:本文非官方发布,内容真实性请注意甄别,文章内容仅供参考。本站不对内容真实性负责,请悉知!本站不对内容真实性负责,请悉知!。我们专注于汇川技术产品培训,官网https://shicaopai.com

相关帖子

回复

使用道具 举报

shicaopai 2023-6-27 08:09:08 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

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

本版积分规则

"π³ 实操派",培养中高端PLC工程师,PLC培训-Codesys培训

项目实战 手把手教学 微信&电话 15850116008
超2000节系统化课程,汇川优秀自动化讲师亲授!学一门Codesys,玩800家PLC仅剩少量名额
点击免费试听

到实操派,学PLC就是快!

扫码领取工控文库VIP

钻石VIP先到先得

服务电话 & 微信:9:00-22:00

15850116008

苏州实操派科技有限公司

公司地址:江苏省苏州市吴中区越溪街道天鹅荡路5号31B13

Copyright © 苏州实操派科技有限公司 2022 到实操派,学PLC就是快!工业自动化业务培训适用人群:成人 ( 苏ICP备2022021576号-3 )

公司地址:江苏省苏州市吴中区越溪街道天鹅荡路5号31B13

返回顶部