西门子S7300PLC的 RLO 置位清零保存指令及示例Word文档格式.docx

上传人:b****4 文档编号:16226211 上传时间:2022-11-21 格式:DOCX 页数:24 大小:42.91KB
下载 相关 举报
西门子S7300PLC的 RLO 置位清零保存指令及示例Word文档格式.docx_第1页
第1页 / 共24页
西门子S7300PLC的 RLO 置位清零保存指令及示例Word文档格式.docx_第2页
第2页 / 共24页
西门子S7300PLC的 RLO 置位清零保存指令及示例Word文档格式.docx_第3页
第3页 / 共24页
西门子S7300PLC的 RLO 置位清零保存指令及示例Word文档格式.docx_第4页
第4页 / 共24页
西门子S7300PLC的 RLO 置位清零保存指令及示例Word文档格式.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

西门子S7300PLC的 RLO 置位清零保存指令及示例Word文档格式.docx

《西门子S7300PLC的 RLO 置位清零保存指令及示例Word文档格式.docx》由会员分享,可在线阅读,更多相关《西门子S7300PLC的 RLO 置位清零保存指令及示例Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。

西门子S7300PLC的 RLO 置位清零保存指令及示例Word文档格式.docx

使用 

置位(SET)指令,可以将 

的信号状态置为“1”。

SET//将RLO 

置位

=M 

0.1//RLO 

为1,则M 

0.1也为1.

西门子梯形逻辑06/11/24

(2006-11-2409:

23:

57)

转载▼

分类:

工作日志

1.1位逻辑指令概述

说明

位逻辑指令处理两个数字,“1”和“0”。

这两个数字构成二进制数字系统的基础。

这两

个数字“1”和“0”称为二进制数字或二进制位。

在接点与线圈领域,“1”表示动作或通

电,“0”表示未动作或未通电。

位逻辑指令扫描信号状态1和0,并根据布尔逻辑对它们进行组合。

这些组合产生结果1

或0,称为“逻辑运算结果(RLO)”。

由位逻辑指令触发的逻辑操作可执行各种类型的功能。

可执行下列功能的位逻辑指令:

·

---||---常开接点(地址)

---|/|---常闭接点(地址)

---(SAVE)将RLO存入BR存储器

XOR位异或

---()输出线圈

---(#)---中间输出

---|NOT|---信号流反向

下列指令当RLO为1时起作用,执行下列功能:

---(S)线圈置位

---(R)线圈复位

SR置位复位触发器

RS复位置位触发器

其它指令对上升沿和下降沿有反应,执行下列功能:

---(N)---RLO下降沿检测

---(P)---RLO上升沿检测

NEG地址下降沿检测

POS地址上升沿检测

立即读操作

立即写操作

1.2---||---常开接点(地址)

符号

<

地址>

---||---

当保存在指定<

中的位值等于“1”时,---||---(常开接点)闭合。

当接点闭合时,梯形逻辑级中的信号流经接点,逻辑运算结果(RLO)=“1”。

相反,如果指定<

的信号状态为“0”,接点打开。

当接点打开时,没有信号流经接点,逻辑运算结果(RLO)=“0”。

串联使用时,---||---通过“与(AND)”逻辑链接到RLO位。

并联使用时,---||---通过“或(OR)”逻辑链接到RLO位。

1.3---|/|---常闭接点(地址)

---|/|---

中的位值等于“0”时,---|/|---(常闭接点)闭合。

的信号状态为“1”,接点打开。

串联使用时,---|/|---通过“与(AND)”逻辑链接到RLO位。

并联使用时,---|/|---通过“或(OR)”逻辑链接到RLO位。

1.4XOR位异或

对于XOR功能,常开接点和常闭接点程序段必须如下生成。

如果两个指定位的信号状态不同,XOR(位异或)将产生一个RLO“1”。

1.5--|NOT|--信号流反向

---|NOT|---

--|NOT|---(信号流反向指令)取RLO位的非值。

1.6---()输出线圈

---()

---()(输出线圈指令)象继电器逻辑图中的线圈一样作用。

如果有电流流过线圈(RLO=1),位置<

处的位则被置为“1”。

如果没有电流流过线圈(RLO=0),位置<

处的位则被置为“0”。

输出线圈只能放置在梯形逻辑级的右端。

也可以有多个输出元素(最多16个)(见举例)。

使用---|NOT|---(信号流反向)元素,可以生成求反输出。

1.7---(#)---中间输出

---(#)---

---(#)---(中间输出指令)是一个中间赋值元素,可以将RLO位(信号流状态)保存到指定的<

这一中间输出元素可以保存前一分支元素的逻辑结果。

与其它接点并联时,---(#)---可以象一个接点那样插入。

---(#)---元素绝不能连接到电源线上或直接连接到一个分支连接的后面或一个分支的末尾。

使用---|NOT|---(信号流反向)元素,可以生成求反---(#)---。

1.8---(R)线圈复位

---(R)

---(R)(线圈复位指令)只有在前一指令的RLO为“1”时(电流流经线圈),才能执行。

如果有电流流过线圈(RLO为“1”),元素的指定<

处的位则被复位为“0”。

RLO为“0”(没有电流流过线圈)没有任何作用,并且元素指定地址的状态保持不变。

也可以是一个定时器值被复位为“0”的定时器(Tno.)或一个计数器值被复位为“0”的计数器(Cno.)。

1.9---(S)线圈置位

---(S)

---(S)(线圈置位指令)只有在前一指令的RLO为“1”时(电流流经线圈),才能执行。

如果RLO为“1”时,元素的指定<

将被置为“1”。

RLO=0没有任何作用,并且元素指定地址的状态保持不变。

1.10RS复位置位触发器

如果在R端输入的信号状态为“1”,在S端输入的信号状态为“0”,则RS(复位置位触

发器)复位。

相反,如果在R端输入的信号状态为“0”,在S端输入的信号状态为"

1”,则RS(复位置位触发器)置位。

如果在两个输入端RLO均为“1”,则顺序优先,触发器置位。

在指定<

,复位置位触发器首先执行复位指令,然后执行置位指令,以使该地

址保持置位状态程序扫描剩余时间。

S(置位)和R(复位)指令只有在RLO为“1”时才执行。

RLO“0”对这些指令没有任何作用,并且指令中的指定地址保持不变。

SAVECLR的用法

经常会看到一些程序中出现 

save 

和 

clr的组合使用,这两个到底是怎么个用法啊,请各路神仙帮忙解析下。

转帖一个典型问题,看了这个答案就全明白了:

A( 

"

MT510"

.Powder1

BTI 

#temp1

SET 

SAVE 

CLR 

BR 

) 

JNB 

_005

9

#temp10

_005:

NOP 

上面的那段代码是由梯形图转换而来的,首先将"

做BCD-I转换并存于temp1,然后将9传送到temp10,两个指令串联在一起。

现有如下问题向各位请教:

1、BTI指令执行完成后BR位自动置位吗?

还是需要SAVE?

2、上段中的SET、SAVE及CLR用途何在?

3、在一个NetWork中串联执行多个指令或并联执行多个指令时,该如何处理?

回答:

首先弄清BR位:

状态字的第8位称为二进制结果位。

它将字处理程序与位处理联系起来,在一段既有位操作又有字操作的程序中,用于表示字逻辑是否正确。

将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。

1. 

因为上面的那段代码是由梯形图转换而来的。

出现了“SET、SAVE及CLR”。

就此而论,在做BCD-I转换并存于temp1后,SET与SAVE两指令。

SET即将状态字RLO置位;

SAVE将RLO保存到状态字的BR位。

此时表示功能被正确执行,即BR位为1.

2. 

将状态字RLO复位,以免影响下面的指令。

此时BR位为1,RLO=0

_005 

若BR=1且RLO=0,则跳转到005。

此时BR=1且RLO=1

3. 

在一个NetWork中串联执行多个指令或并联执行多个指令时,该如何处理?

一般不要顾及用SAVE指令保存RLO。

在下面的情况可用:

在一个逻辑块中需检另一查逻辑块的BR位。

在用户编写的FB/FC程序中,应该对BR位进行管理,功能块正确执行后,使BR位为1,否则使其为0。

使用SAVE指令将RLO存入BR中,从而达到管理BR位目的。

其他答案

1、SAVE将RLO保存到BR位中。

第一个校验位/FC不复位。

因此,BR位的状态包括在下一程序段中的与逻辑运算内。

建议不要在同一个块或二级块中对BR位使用SAVE并执行后续查询,因为BR位可能会被这两个操作之间的大量指令改变。

退出块之前使用SAVE指令的意义在于,此操作将ENO输出(= 

BR位)设置为RLO位的值,从而可以将该块的出错处理添加至此。

2、CLR将RLO设置到信号状态"

0"

3、例程:

MB 

BR

_002

10

_002:

此程序的含义就是对MB0和MB10分别置零,SET对RLO置1,SAVE把RLO的值暂存到BAR缓冲位,换句话这两条指令完成了对BAR位的置1,保证下一条与指令的正常执行,CLR对此地的RLO为清零,以免被传递下去引起误操作。

最佳答案

在现场看到一断程序如下_Pzgn@D 

CLR 

rqiH!

"

0.0"

DJ7ak>

AN 

DataFromHMI"

.DBX3_2WRkuPj2 

?

lgE9I] 

CC 

Rotator"

1B4FAR&

Qj1%'

wWG 

^_3$f 

M0.0等于0.pe.K3G&

这样不是永远都调用不到“rotator”这个功能块了吗?

roAHkI 

如图,是在FC10块出现的,不明白什么意思。

那位高手解释一下

这段程序的意思大致为:

根据()内的运行结果去决定是否调用FC40

将变量IN0去乘以1000,结果保存在TEMP2中,然后检测前面的乘法运算是否结果溢出,OV为溢出标志位,通过检测OV是否为1来决定是否运算溢出。

为什么要用ANOV呢?

如果您知道三菱的话,那么西门子AN相当于ANI,也就是欧姆龙的ANDNOT。

因为后续的有用到SAVE指令,该指令用于保存当前的RLO到BR位中去。

而RLO结果则是根据当前的指令运算结果。

因此,这里使用ANOV,此时如果没有溢出发生,那么OV的值为0,由于AN的存在,那么当前的结果为RLO=1,执行SAVE后,那么BR=1。

如果有溢出发生,那么RLO=0,从而导致SAVE指令不会被执行,也就不会改变BR位的结果。

后面的CLR指令用于将当前的RLO结果清零(也可以称作为复位)。

ABR 

用于检测BR位的状态,如果BR位为1,通过A指令后,那么RLO状态就会更改为1,否则为0.

最后()内的指令讲解完毕,那么()外的A就是用于检测()内的RLO运行结果。

如果()内的RLO为1,那么就执行FC,否则,不执行。

引用第2楼cvlsam于2009-01-0410:

55发表的 

:

.......

对你的解释有不同的看法欢迎讨论。

有异议的地方是这句:

“最后()内的指令讲解完毕,那么()外的A就是用于检测()内的RLO运行结果。

首先call是无条件调用语句,也就是说不依赖任何条件进行处理,指定的块总是被调用。

(不包括OB)。

那么你说的“如果()内的RLO为1,那么就执行FC,否则,不执行。

”因为FC的执行不由在执行它时RLO位的状态决定,也就是无论如何FC40都是要执行的,要想达到你说的用RLO位判断是否执行FC40,前面必需要有跳转语句等。

在西门子PLC的BR位处理的问题中:

A(.....SETSAVECLRABR)这样的程序什么时候BR位为零啊

BR位的处理是使用语句表编辑程序当中很重要的方式,如果顺序执行的是

SET

SAVE

CLR

ABR

这样的语句,则BR位永远为1,因为SET是不管以上任何条件将RLO置为1的,CAVE将当前的RLO保存到BR,CLR清除的只是RLO位,ABR是判断BR位是否是1,所以,如果这段程序被执行,BR位置就永远为1了,只有通过跳转或者之前的程序判断,不执行SET指令的时候,BR位才可能是0.

中断过程——西门子S7-300PLC组织块OB及其应用

文章来源:

不详作者:

佚名

--------------------------------------------------------------------------------

该文章讲述了中断过程——西门子S7-300PLC组织块OB及其应用的原理和应用

系统检测到一个OB块中断时,则被中断块的累加器和寄存器上的当前信息将被作为一个中断堆栈存起来(I堆栈)。

I堆栈中保存的内容有:

F累加器及地址寄存器的内容;

F数据块寄存器的内容;

F局部数据堆栈,状态字,MCR寄存器和B堆栈指针。

如果新的OB块调用FB和FC,则每一个块的处理数据将被存储堆栈中(B堆栈)

B堆栈中保存的内容有:

FDB和DI寄存器;

F临时数据(L堆栈)的指针;

F块的号码及返回地址。

西门子S7-300PLC的RLO边沿信号识别指令及示例

点击:

发布日期:

2007-7-2613:

40:

00进入论坛

当信号状态变化时就产生跳变沿,当从0变到1时,产生一个上升沿(或正跳沿);

若从1变到0,则产生一个下降沿(或负跳沿)。

跳变沿检测的原理是:

在每个扫描周期中把信号状态和它在前一个扫描周期的状态进行比较,若不同则表明有一个跳变沿。

因此,前一个周期里的信号状态必须被存储,以便能和新的信号状态相比较。

l下降沿信号识别指令

若CPU检测到输入有一个负跳沿,将使得输出线圈在一个扫描周期内通电。

对输入扫描的RLO值存放在存储位中。

在OB1的扫描周期中,CPU扫描并形成RLO值,若该RLO值是0且上次RLO值是1,这说明FN指令检测到一个RLO的负跳沿,那么FN指令把RLO位置1。

如果RLO在相邻的两个扫描周期中相同(全为1或0),那么FN语句把RLO位清0。

例3.1.13

若CPU检测到输入I1.0有一个负跳沿,将使得输出Q4.0的线圈在一个扫描周期内通电。

对输入I1.0常开触点扫描的RLO值(在本例中,此RLO正好与输入I1.0的信号状态相同)存放在存储位M1.0中。

在OB1的扫描周期中,CPU对I1.0信号状态扫描并形成RLO值,若该RLO值是0且存放在M1.0中的上次RLO值是1,这说明FN指令检测到一个RLO的负跳沿,那么FN指令把RLO位置1。

l上升沿信号识别指令

若CPU检测到输入有一个正跳沿,将使得输出线圈在一个扫描周期内通电。

在OB1的扫描周期中,CPU扫描并形成RLO值,若该RLO值是1且上次RLO值是0,这说明FN指令检测到一个RLO的正跳沿,那么FP指令把RLO位置1。

如果RLO在相邻的两个扫描周期中相同(全为1或0),那么FP语句把RLO位清0。

例3.1.14

若CPU检测到输入I1.0有一个正跳沿,将使得输出Q4.0的线圈在一个扫描周期内通电。

在OB1的扫描周期中,CPU对I1.0信号状态扫描并形成RLO值,若该RLO值是1且存放在M1.0中的上次RLO值是0,这说明FN指令检测到一个RLO的正跳沿,那么FP指令把RLO位置1。

SET

SAVE

=L68.1

A#COM_RST

JCNA7d0

L#I_ITLVAL

T#sIanteilAlt

L0.000000e+000

T#LMN

CLR

=#QLMN_HLM

=#QLMN_LLM

T#LMN_P

T#LMN_I

T#LMN_D

LW#16#0

T#LMN_PER

TAK

T#PV

T#ER

T#sInvAlt

T#sRestInt

T#sRestDif

T#sRueck

T#sLmn

=#sbArwHLmOn

=#sbArwLLmOn

JUA7d1

A7d0:

L#CYCLE

DTR

L1.000000e+003

/R

T#rCycle

L#PV_PER

ITD

L3.616898e-003

*R

T#Istwert

L#PV_FAC

L#PV_OFF

+R

A#PVPER_ON

NOT

JCNA7d2

L#PV_IN

A7d2:

L#Istwert

L#SP_INT

-R

T#ErKp

L#DEADB_W

NEGR

<

R

JCNA7d3

L#ErKp

JUA7d4

A7d3:

>

JCNA7d5

A7d5:

A7d4:

L#ER

L#GAIN

L#TI

T#rTi

L#TD

T#rTd

L#TM_LAG

T#rTmLag

L#rCycle

L5.000000e-001

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 思想汇报心得体会

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1