西门子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.0SQ0.0//如果I0.0为1(RLO=1),则Q0.0也为1;如果I0.0为0(RLO=0),则Q0.0也为0.。2、SETRLO置位:使用RLO置位(SET)指令,可以将RLO的信号状态置为“1”。例如:SET//将RLO置位=M0.1//RLO为1,则M0.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”时,---|/|---(常闭接点)闭合。当接点闭合时,梯形逻辑级中的信号流经接点,逻辑运算结果(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(LMT510.Powder1BTIT#temp1SETSAVECLRABR)JNB_005L9T#temp10_005:NOP0上面的那段代码是由梯形图转换而来的,首先将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复位,以免影响下面的指令。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位中。第一个校验位/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,保证下一条与指令的正常执行,CLR对此地的RLO为清零,以免被传递下去引起误操作。SAVECLR的用法经常会看到一些程序中出现save和clr的组合使用,这两个到底是怎么个用法啊,请各路神仙帮忙解析下。最佳答案转帖一个典型问题,看了这个答案就全明白了:A(LMT510.Powder1BTIT#temp1SETSAVECLRABR)JNB_005L9T#temp10_005:NOP0上面的那段代码是由梯形图转换而来的,首先将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复位,以免影响下面的指令。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位目的。在现场看到一断程序如下CLR=M0.0ANDataFromHMI.DBX3_2AM0.0CCRotatorM0.0等于0这样不是永远都调用不到“rotator”这个功能块了吗?如图,是在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位