西门子S7-300PLC的 RLO 置位、清零、保存指令及示例.doc

上传人:PIYPING 文档编号:10880468 上传时间:2021-06-10 格式:DOC 页数:21 大小:125.50KB
返回 下载 相关 举报
西门子S7-300PLC的 RLO 置位、清零、保存指令及示例.doc_第1页
第1页 / 共21页
西门子S7-300PLC的 RLO 置位、清零、保存指令及示例.doc_第2页
第2页 / 共21页
西门子S7-300PLC的 RLO 置位、清零、保存指令及示例.doc_第3页
第3页 / 共21页
西门子S7-300PLC的 RLO 置位、清零、保存指令及示例.doc_第4页
第4页 / 共21页
西门子S7-300PLC的 RLO 置位、清零、保存指令及示例.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《西门子S7-300PLC的 RLO 置位、清零、保存指令及示例.doc》由会员分享,可在线阅读,更多相关《西门子S7-300PLC的 RLO 置位、清零、保存指令及示例.doc(21页珍藏版)》请在三一文库上搜索。

1、西门子S7-300PLC的 RLO 置位、清零、保存指令及示例置位指令符号: SET 功能: RLO = 1复位指令符号: CLR 功能: RLO = 0例3.1.17RLO保存指令符号: SAVE 功能: (RLO) BR说明:将RLO的状态保存到状态字寄存器中的BR位中。西门子PLC中的s与set的指令有什么区别S是根据RLO状态来置位,SET是将RLO状态来置位。 1、S置位:如果RLO=1,则使用置位指令(S),可以将寻址位置位为“1” 例如: AI0.0 SQ0.0/如果I0.0为1(RLO=1),则Q0.0也为1;如果I0.0为0(RLO=0),则Q0.0也为0.。 2、SETRL

2、O置位:使用RLO置位(SET)指令,可以将RLO的信号状态置为“1”。 例如: SET/将RLO置位 =M0.1/RLO为1,则M0.1也为1. 西门子梯形逻辑06/11/24(2006-11-24 09:23:57) 转载分类: 工作日志 1.1 位逻辑指令概述说明位逻辑指令处理两个数字,“1”和“0”。这两个数字构成二进制数字系统的基础。这两个数字“1”和“0”称为二进制数字或二进制位。在接点与线圈领域,“1”表示动作或通电,“0”表示未动作或未通电。位逻辑指令扫描信号状态1 和0,并根据布尔逻辑对它们进行组合。这些组合产生结果1或0,称为“逻辑运算结果(RLO)”。由位逻辑指令触发的逻

3、辑操作可执行各种类型的功能。可执行下列功能的位逻辑指令: -| |- 常开接点(地址) -| / |- 常闭接点(地址) -(SAVE) 将RLO 存入BR 存储器 XOR 位异或 -( ) 输出线圈 -( # )- 中间输出 -|NOT|- 信号流反向下列指令当RLO 为1 时起作用,执行下列功能: -( S ) 线圈置位 -( R ) 线圈复位 SR 置位复位触发器 RS 复位置位触发器其它指令对上升沿和下降沿有反应,执行下列功能: -(N)- RLO 下降沿检测 -(P)- RLO 上升沿检测 NEG 地址下降沿检测 POS 地址上升沿检测 立即读操作 立即写操作1.2-| |- 常开接

4、点(地址)符号-| |-说明当保存在指定中的位值等于“1”时,-| |-(常开接点)闭合。当接点闭合时,梯形逻辑级中的信号流经接点,逻辑运算结果(RLO)=“1”。相反,如果指定的信号状态为“0”,接点打开。当接点打开时,没有信号流经接点,逻辑运算结果(RLO)=“0”。串联使用时,-| |- 通过“与(AND)”逻辑链接到RLO 位。并联使用时,-| |- 通过“或(OR)”逻辑链接到RLO 位。1.3 -| / |- 常闭接点(地址)符号-| / |-说明当保存在指定中的位值等于“0”时,-| / |-(常闭接点)闭合。当接点闭合时,梯形逻辑级中的信号流经接点,逻辑运算结果(RLO)=“1

5、”。相反,如果指定的信号状态为“1”,接点打开。当接点打开时,没有信号流经接点,逻辑运算结果(RLO)=“0”。串联使用时,-| / |- 通过“与(AND)”逻辑链接到RLO 位。并联使用时,-| / |- 通过“或(OR)”逻辑链接到RLO 位。1.4 XOR 位异或符号对于XOR 功能,常开接点和常闭接点程序段必须如下生成。说明如果两个指定位的信号状态不同,XOR(位异或)将产生一个 RLO“1”。1.5 -|NOT|- 信号流反向符号-|NOT|-说明-|NOT|-(信号流反向指令)取RLO 位的非值。1.6 -( ) 输出线圈符号-( )说明-( )(输出线圈指令)象继电器逻辑图中的

6、线圈一样作用。如果有电流流过线圈(RLO =1),位置处的位则被置为“1”。如果没有电流流过线圈(RLO = 0),位置处的位则被置为“0”。输出线圈只能放置在梯形逻辑级的右端。也可以有多个输出元素(最多16 个)(见举例)。使用 - |NOT|-(信号流反向)元素,可以生成求反输出。1.7 -( # )- 中间输出符号-( # )-说明-( # )-(中间输出指令)是一个中间赋值元素,可以将RLO 位(信号流状态)保存到指定的 。这一中间输出元素可以保存前一分支元素的逻辑结果。与其它接点并联时,-( # )- 可以象一个接点那样插入。-( # )- 元素绝不能连接到电源线上或直接连接到一个分

7、支连接的后面或一个分支的末尾。使用 - |NOT|-(信号流反向)元素,可以生成求反-( # )-。1.8 -( R ) 线圈复位符号-( R )说明-( R )(线圈复位指令)只有在前一指令的RLO为“1”时(电流流经线圈),才能执行。如果有电流流过线圈(RLO为“1”),元素的指定处的位则被复位为“0”。RLO 为“0”(没有电流流过线圈)没有任何作用,并且元素指定地址的状态保持不变。也可以是一个定时器值被复位为“0”的定时器(T no.)或一个计数器值被复位为“0”的计数器(C no.)。1.9 -( S ) 线圈置位符号-( S )说明-( S )(线圈置位指令)只有在前一指令的RLO

8、 为“1”时(电流流经线圈),才能执行。如果RLO 为“1”时,元素的指定将被置为“1”。RLO = 0 没有任何作用,并且元素指定地址的状态保持不变。1.10 RS 复位置位触发器符号说明如果在R 端输入的信号状态为“1”,在S 端输入的信号状态为“0”,则 RS(复位置位触发器)复位。相反,如果在R 端输入的信号状态为“0”,在S 端输入的信号状态为1”,则 RS(复位置位触发器)置位。如果在两个输入端RLO 均为“1”,则顺序优先,触发器置位。在指定,复位置位触发器首先执行复位指令,然后执行置位指令,以使该地址保持置位状态程序扫描剩余时间。S(置位)和 R(复位)指令只有在RLO 为“1

9、”时才执行。RLO“0”对这些指令没有任何作用,并且指令中的指定地址保持不变。SAVE CLR的用法 经常会看到一些程序中出现save和clr的组合使用,这两个到底是怎么个用法啊,请各路神仙帮忙解析下。转帖一个典型问题,看了这个答案就全明白了:A(LMT510.Powder1BTIT#temp1SETSAVECLRABR)JNB_005L9T#temp10_005:NOP0上面的那段代码是由梯形图转换而来的,首先将MT510.Powder1做BCD-I转换并存于temp1,然后将9传送到temp10,两个指令串联在一起。现有如下问题向各位请教:1、BTI指令执行完成后BR位自动置位吗?还是需要

10、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

11、.2.CLR/将状态字RLO复位,以免影响下面的指令。ABR/此时BR位为1,RLO=0)JNB_005/若BR=1且RLO=0,则跳转到005。L9/此时BR=1且RLO=1T#temp10_005:NOP03.在一个NetWork中串联执行多个指令或并联执行多个指令时,该如何处理?一般不要顾及用SAVE指令保存RLO。在下面的情况可用:在一个逻辑块中需检另一查逻辑块的BR位。例如:在用户编写的FB/FC程序中,应该对BR位进行管理,功能块正确执行后,使BR位为1,否则使其为0。使用SAVE指令将RLO存入BR中,从而达到管理BR位目的。其他答案1、SAVE将RLO保存到BR位中。第一个校验

12、位/FC不复位。因此,BR位的状态包括在下一程序段中的与逻辑运算内。建议不要在同一个块或二级块中对BR位使用SAVE并执行后续查询,因为BR位可能会被这两个操作之间的大量指令改变。退出块之前使用SAVE指令的意义在于,此操作将ENO输出(=BR位)设置为RLO位的值,从而可以将该块的出错处理添加至此。2、CLR将RLO设置到信号状态0。3、例程:A(L0TMB0SETSAVECLRABR)JNB_002L0TMB10_002:NOP0此程序的含义就是对MB0和MB10分别置零,SET对RLO置1,SAVE把RLO的值暂存到BAR缓冲位,换句话这两条指令完成了对BAR位的置1,保证下一条与指令的

13、正常执行,CLR对此地的RLO为清零,以免被传递下去引起误操作。SAVE CLR的用法 经常会看到一些程序中出现save和clr的组合使用,这两个到底是怎么个用法啊,请各路神仙帮忙解析下。最佳答案 转帖一个典型问题,看了这个答案就全明白了:A(LMT510.Powder1BTIT#temp1SETSAVECLRABR)JNB_005L9T#temp10_005:NOP0上面的那段代码是由梯形图转换而来的,首先将MT510.Powder1做BCD-I转换并存于temp1,然后将9传送到temp10,两个指令串联在一起。现有如下问题向各位请教:1、BTI指令执行完成后BR位自动置位吗?还是需要SA

14、VE?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

15、.CLR/将状态字RLO复位,以免影响下面的指令。ABR/此时BR位为1,RLO=0)JNB_005/若BR=1且RLO=0,则跳转到005。L9/此时BR=1且RLO=1T#temp10_005:NOP03.在一个NetWork中串联执行多个指令或并联执行多个指令时,该如何处理?一般不要顾及用SAVE指令保存RLO。在下面的情况可用:在一个逻辑块中需检另一查逻辑块的BR位。例如:在用户编写的FB/FC程序中,应该对BR位进行管理,功能块正确执行后,使BR位为1,否则使其为0。使用SAVE指令将RLO存入BR中,从而达到管理BR位目的。在现场看到一断程序如下 _ PzgnD CLR rqiH!

16、R = M 0.0 DJ7akR ANDataFromHMI.DBX3_2 WRkuPj2 A M 0.0 ?lgE9I CCRotator ,1B4FAR& Qj1%wWG _3 $f M0.0等于0 .pe.K3G & 这样不是永远都调用不到“rotator”这个功能 块了吗? roAHkI 如图,是在FC10块出现的,不明白什么意思。那位高手解释一下这段程序的意思大致为:根据()内的运行结果去决定是否调用FC40将变量IN0去乘以1000,结果保存在TEMP2中,然后检测前面的乘法运算是否结果溢出,OV为溢出标志位,通过检测OV是否为1来决定是否运算溢出。为什么要用AN OV呢?如果您知

17、道三菱的话,那么西门子AN相当于ANI,也就是欧姆龙的AND NOT。因为后续的有用到SAVE指令,该指令用于保存当前的RLO到BR位中去。而RLO结果则是根据当前的指令运算结果。因此,这里使用AN OV,此时如果没有溢出发生,那么OV的值为0,由于AN的存在,那么当前的结果为RLO=1,执行SAVE后,那么BR=1。如果有溢出发生,那么RLO=0,从而导致SAVE指令不会被执行,也就不会改变BR位的结果。后面的CLR指令用于将当前的RLO结果清零(也可以称作为复位)。A BR用于检测BR位的状态,如果BR位为1,通过A指令后,那么RLO状态就会更改为1,否则为0.最后()内的指令讲解完毕,那

18、么()外的A就是用于检测()内的RLO运行结果。如果()内的RLO为1,那么就执行FC,否则,不执行。引用第2楼cvlsam于2009-01-04 10:55发表的:这段程序的意思大致为:根据()内的运行结果去决定是否调用FC40将变量IN0去乘以1000,结果保存在TEMP2中,然后检测前面的乘法运算是否结果溢出,OV为溢出标志位,通过检测OV是否为1来决定是否运算溢出。为什么要用AN OV呢?如果您知道三菱的话,那么西门子AN相当于ANI,也就是欧姆龙的AND NOT。.对你的解释有不同的看法欢迎讨论。有异议的地方是这句:“最后()内的指令讲解完毕,那么()外的A就是用于检测()内的RLO

19、运行结果。如果()内的RLO为1,那么就执行FC,否则,不执行。”首先call是无条件调用语句,也就是说不依赖任何条件进行处理,指定的块总是被调用。(不包括OB)。那么你说的“如果()内的RLO为1,那么就执行FC,否则,不执行。”因为FC的执行不由在执行它时RLO位的状态决定,也就是无论如何FC40都是要执行的,要想达到你说的用RLO位判断是否执行FC40,前面必需要有跳转语句等。在西门子PLC 的BR位处理的问题中: A(. SET SAVE CLR A BR) 这样的程序什么时候BR位为零啊BR位的处理是使用语句表编辑程序当中很重要的方式,如果顺序执行的是SETSAVECLRA BR这样

20、的语句,则BR位永远为1,因为SET是不管以上任何条件将RLO置为1的,CAVE将当前的RLO保存到BR,CLR清除的只是RLO位,A BR是判断BR位是否是1,所以,如果这段程序被执行,BR位置就永远为1了,只有通过跳转或者之前的程序判断,不执行SET指令的时候,BR位才可能是0.中断过程西门子S7-300PLC组织块OB及其应用文章来源:不详 作者:佚名 -该文章讲述了中断过程西门子S7-300PLC组织块OB及其应用的原理和应用 系统检测到一个OB块中断时,则被中断块的累加器和寄存器上的当前信息将被作为一个中断堆栈存起来(I堆栈)。I堆栈中保存的内容有:F 累加器及地址寄存器的内容;F

21、数据块寄存器的内容;F 局部数据堆栈,状态字,MCR寄存器和B堆栈指针。如果新的OB块调用FB和FC,则每一个块的处理数据将被存储堆栈中(B堆栈)B堆栈中保存的内容有:F DB和DI寄存器;F 临时数据(L堆栈)的指针;F 块的号码及返回地址。 西门子S7-300PLC的RLO边沿信号识别指令及示例 点击: 发布日期:2007-7-26 13:40:00 进入论坛 当信号状态变化时就产生跳变沿,当从0变到1时,产生一个上升沿(或正跳沿);若从1变到0,则产生一个下降沿(或负跳沿)。跳变沿检测的原理是:在每个扫描周期中把信号状态和它在前一个扫描周期的状态进行比较,若不同则表明有一个跳变沿。因此,

22、前一个周期里的信号状态必须被存储,以便能和新的信号状态相比较。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

23、的信号状态相同)存放在存储位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在

24、相邻的两个扫描周期中相同(全为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 #C

25、OM_RST JCN A7d0 L #I_ITLVAL T #sIanteilAlt L 0.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 A7d1A7d0: L #CYCLE DTR L 1.000000e+003 /R T #rCycle L #PV_P

26、ER ITD DTR L 3.616898e-003 *R T #Istwert L #PV_FAC *R L #PV_OFF +R T #Istwert CLR A #PVPER_ON NOT JCN A7d2 L #PV_IN T #IstwertA7d2: L #Istwert T #PV L #SP_INT TAK -R T #ErKp L #DEADB_W NEGR R JCN A7d5 L #ErKp TAK -R T #ER JU A7d4A7d5: L 0.000000e+000 T #ERA7d4: L #ER L #GAIN *R T #ErKp L #TI DTR L 1

27、.000000e+003 /R T #rTi L #TD DTR L 1.000000e+003 /R T #rTd L #TM_LAG DTR L 1.000000e+003 /R T #rTmLag L #rCycle L 5.000000e-001 *R L #rTi TAK R JCN A7d7 L #rCycle L 5.000000e-001 *R T #rTiA7d7: L #rTd L #rCycle R JCN A7d8 T #rTdA7d8: L #rCycle L 5.000000e-001 *R L #rTmLag TAK R A #sbArwHLmOn O #INT_

28、HOLD L #Diff L 0.000000e+000 = L 68.2 R L #dLmn L #LMN_HLM = L 68.2 R A L 68.2 L #dLmn L #LMN_D -R L #LMN_HLM = L 68.2 R A L 68.2 JCN A7e8 L #DISV -R T #rVal L #dLmn L #LMN_HLM -R T #gf L #Ianteil L #rVal -R T #rVal L #gf R JCN A7e9 T #rValA7e9: L #Ianteil L #rVal -R T #Ianteil JU A7e7A7e8: L #LMN_LLM L #DISV -R L #Ianteil TAK R L #dLmn L #LMN_LLM = L 68.2 R A L 68.2 L #dLmn L

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

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1