西门子S7300PLC的RLO置位清零保存指令及示例Word文档格式.docx
- 文档编号:21578486
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:24
- 大小:48.99KB
西门子S7300PLC的RLO置位清零保存指令及示例Word文档格式.docx
《西门子S7300PLC的RLO置位清零保存指令及示例Word文档格式.docx》由会员分享,可在线阅读,更多相关《西门子S7300PLC的RLO置位清零保存指令及示例Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
SET//将RLO
置位ﻫ=M
0.1//RLO
为1,则M
0.1也为1.
西门子梯形逻辑06/11/24
(2006-11-24 09:
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”时,---|/ |---(常闭接点)闭合。
当接点闭合时,梯形逻辑级中的信号流经接点,逻辑运算结果(RLO)=“1”。
相反,如果指定<地址>
的信号状态为“1”,接点打开。
当接点打开时,没有信号流经接点,逻辑运算结果(RLO)=“0”。
ﻫ串联使用时,---|/|--- 通过“与(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(
L
"
MT510"
.Powder1ﻫ
BTI
T
#temp1ﻫ
SET
SAVE
CLR
ﻫ
A
BR
)
JNB
_005
L
9ﻫ
#temp10
_005:
NOP
0ﻫ上面的那段代码是由梯形图转换而来的,首先将"
MT510"
.Powder1ﻫ做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.
CLR
/
将状态字RLO复位,以免影响下面的指令。
此时BR位为1,RLO=0
_005
若BR=1且RLO=0,则跳转到005。
ﻫL
9
此时BR=1且RLO=1
T
#temp10
_005:
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、例程:
A(
MB
SET
SAVE
CLR
A
BRﻫ
_002
0ﻫ
10ﻫ_002:
此程序的含义就是对MB0和MB10分别置零,SET对RLO置1,SAVE把RLO的值暂存到BAR缓冲位,换句话这两条指令完成了对BAR位的置1,保证下一条与指令的正常执行,CLR对此地的RLO为清零,以免被传递下去引起误操作。
SAVECLR的用法
save
最佳答案
转帖一个典型问题,看了这个答案就全明白了:
"MT510"
.Powder1ﻫ
#temp1
CLR
_005ﻫ
9
#temp10ﻫ_005:
NOP
MT510"
.Powder1
做BCD-I转换并存于temp1,然后将9传送到temp10,两个指令串联在一起。
现有如下问题向各位请教:
ﻫ1、BTI指令执行完成后BR位自动置位吗?
还是需要SAVE?
2、上段中的SET、SAVE及CLR用途何在?
3、在一个NetWork中串联执行多个指令或并联执行多个指令时,该如何处理?
回答:
ﻫ首先弄清BR位:
状态字的第8位称为二进制结果位。
将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。
出现了“SET、SAVE及CLR”。
就此而论,在做BCD-I转换并存于temp1后,SET与SAVE两指令。
SET即将状态字RLO置位;
SAVE将RLO保存到状态字的BR位。
此时表示功能被正确执行,即BR位为1.ﻫ2.
/
此时BR位为1,RLO=0
JNB
_005
若BR=1且RLO=0,则跳转到005。
此时BR=1且RLO=1
#temp10
_005:
NOP
0
3.
在一个NetWork中串联执行多个指令或并联执行多个指令时,该如何处理?
一般不要顾及用SAVE指令保存RLO。
在下面的情况可用:
在一个逻辑块中需检另一查逻辑块的BR位。
ﻫ例如:
在用户编写的FB/FC程序中,应该对BR位进行管理,功能块正确执行后,使BR位为1,否则使其为0。
使用SAVE指令将RLO存入BR中,从而达到管理BR位目的。
在现场看到一断程序如下_ Pzﻥgn@D
CLR
rqﻹiH!
R
"
M
0.0"
DJ7ak>ﻡ"R
AN
DataFromHMI"
.DBX3_2 WRkﻶuﻼPj2
M
0.0"
ﻷ?
lgﻳE9I]
CC
Rotator"
1B4FAR&
Qﻯj1%'
wWﻧG
^_3$fﻻﻰ
M0.0等于0.pe.K3G&
ﻫ这样不是永远都调用不到“rotator”这个功能块了吗?
roAHkI
如图,是在FC10块出现的,不明白什么意思。
那位高手解释一下
这段程序的意思大致为:
根据()内的运行结果去决定是否调用FC40
ﻫ将变量IN0去乘以1000,结果保存在TEMP2中,然后检测前面的乘法运算是否结果溢出,OV为溢出标志位,通过检测OV是否为1来决定是否运算溢出。
ﻫ为什么要用ANOV呢?
如果您知道三菱的话,那么西门子AN相当于ANI,也就是欧姆龙的AND NOT。
ﻫ因为后续的有用到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-04 10:
55发表的
:
将变量IN0去乘以1000,结果保存在TEMP2中,然后检测前面的乘法运算是否结果溢出,OV为溢出标志位,通过检测OV是否为1来决定是否运算溢出。
为什么要用ANOV呢?
如果您知道三菱的话,那么西门子AN相当于ANI,也就是欧姆龙的AND NOT。
ﻫ.......
对你的解释有不同的看法欢迎讨论。
ﻫ有异议的地方是这句:
ﻫ“最后()内的指令讲解完毕,那么()外的A就是用于检测()内的RLO运行结果。
如果()内的RLO为1,那么就执行FC,否则,不执行。
”ﻫ首先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堆栈中保存的内容有:
F DB和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。
如果RLO在相邻的两个扫描周期中相同(全为1或0),那么FN语句把RLO位清0。
l 上升沿信号识别指令
若CPU检测到输入有一个正跳沿,将使得输出线圈在一个扫描周期内通电。
对输入扫描的RLO值存放在存储位中。
在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的线圈在一个扫描周期内通电。
对输入I1.0常开触点扫描的RLO值(在本例中,此RLO正好与输入I1.0的信号状态相同)存放在存储位M1.0中。
在OB1的扫描周期中,CPU对I1.0信号状态扫描并形成RLO值,若该RLO值是1且存放在M1.0中的上次RLO值是0,这说明FN指令检测到一个RLO的正跳沿,那么FP指令把RLO位置1。
如果RLO在相邻的两个扫描周期中相同(全为1或0),那么FP语句把RLO位清0。
SET
SAVE
=L 68.1
A #COM_RST
JCN A7d0
L #I_ITLVAL
T#sIanteilAlt
L0.000000e+000
T #LMN
CLR
= #QLMN_HLM
= #QLMN_LLM
T#LMN_P
T #LMN_I
T #LMN_D
L W#16#0
T #LMN_PER
TAK
T #PV
T #ER
T #sInvAlt
T #sRestInt
T #sRestDif
T#sRueck
T #sLmn
= #sbArwHLmOn
= #sbArwLLmOn
JU A7d1
A7d0:
L#CYCLE
DTR
L 1.000000e+003
/R
T #rCycle
L #PV_PER
ITD
DTR
L3.616898e-003
*R
T#Istwert
L #PV_FAC
*R
L#PV_OFF
+R
T#Istwert
CLR
A #PVPER_ON
NOT
JCNA7d2
L #PV_IN
T#Istwert
A7d2:
L #Istwert
T #PV
L #SP_INT
TAK
-R
T#ErKp
L #DEADB_W
NEGR
<
R
JCN A7d3
L #ErKp
L#DEADB_W
+R
T#ER
JU A7d4
A7d3:
L #ErKp
L #DEADB_W
>R
JCN A7d5
L #ErKp
TAK
-R
T #ER
JU A7d4
A7d5:
L 0.000000e+000
T #ER
A7d4:
L#ER
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西门子 S7300PLC RLO 清零 保存 指令 示例