西门子S120连接电缆6SL3060-4AA10-0AA0
1.条件跳转指令
条件跳转指令cj(p)的编号为fnc00,操作数为指针标号p0~p127,其中p63为end所在步序,不需标记。指针标号允许用变址寄存器修改。cj和cjp都占3个程序步,指针标号占1步。
如图1所示,当x20接通时,则由cjp9指令跳到标号为p9的指令处开始执行,跳过了程序的一部分,减少了扫描周期。如果x20断开,跳转不会执行,则程序按原顺序执行。
图1跳转指令的使用
使用跳转指令时应注意:
1)cjp指令表示为脉冲执行方式;
2)在一个程序中一个标号只能出现一次,否则将出错;www.diangon.com
3)在跳转执行期间,被跳过程序的驱动条件改变,但其线圈(或结果)仍保持跳转前的状态,因为跳转期间根本没有执行这段程序。
4)如果在跳转开始时定时器和计数器已在工作,则在跳转执行期间它们将停止工作,到跳转条件不满足后又继续工作。但对于正在工作的定时器t192~t199和高速计数器c235~c255不管有无跳转仍连续工作。
5)若积算定时器和计数器的复位(rst)指令在跳转区外,它们的线圈被跳转,但对它们的复位仍然有效。
2.子程序调用与子程序返回指令
子程序调用指令call的编号为fnc01。操作数为p0~p127,此指令占用3个程序步。
子程序返回指令sret的编号为fnc02。无操作数,占用1个程序步。
如图2所示,如果x0接通,则转到标号p10处去执行子程序。当执行sret指令时,返回到call指令的下一步执行。
图2子程序调用与返回指令的使用
使用子程序调用与返回指令时应注意:
1)转移标号不能重复,也不可与跳转指令的标号重复;
2)子程序可以嵌套调用,*多可5级嵌套。
3.与中断有关的指令
与中断有关的三条功能指令是:中断返回指令iret,编号为fnco3;中断允许指令ei,编号为fnco4;中断禁止di,编号为fnc05。它们均无操作数,占用1个程序步。
通常处于禁止中断状态,由ei和di指令组成允许中断范围。在执行到该区间,如有中断源产生中断,cpu将暂停主程序执行转而执行中断服务程序。当遇到iret时返回断点继续执行主程序。如图3所示,允许中断范围中若中断源x0有一个下降沿,则转入i000为标号的中断服务程序,但x0可否引起中断还受m8050控制,当x20有效时则m8050控制x0无法中断。
图3中断指令的使用
使用中断相关指令时应注意:
1)中断的优先级排队如下,如果多个中断依次发生,则以发生先后为序,即发生越早级别越高,如果多个中断源发出信号,则中断指针号越小优先级越高;
2)当m8050~m8058为on时,禁止执行相应i0□□~i8□□的中断,m8059为on时则禁止所有计数器中断;
3)无需中断禁止时,可只用ei指令,不必用di指令;
4)执行一个中断服务程序时,如果在中断服务程序中有ei和di,可实现二级中断嵌套,否则禁止其它中断。
4.主程序结束指令
主程序结束指令fend的编号为fnc06,无操作数,占用1个程序步。fend表示主程序结束,当执行到fend时,plc进行输入/输出处理,监视定时器刷新,完成后返回启始步。
使用fend指令时应注意:
1)子程序和中断服务程序应放在fend之后;
2)子程序和中断服务程序必须写在fend和end之间,否则出错。
5.监视定时器指令
监视定时器指令wdt(p)编号为fnc07,没有操作数,占有1个程序步。wdt指令的功能是对plc的监视定时器进行刷新。
fx系列plc的监视定时器缺省值为200ms(可用d8000来设定),正常情况下plc扫描周期小于此定时时间。如果由于有外界干扰或程序本身的原因使扫描周期大于监视定时器的设定值,使plc的cpu出错灯亮并停止工作,可通过在适当位置加wdt指令复位监视定时器,以使程序能继续执行到end。
如图4所示,利用一个wdt指令将一个240ms的程序一分为二,使它们都小于200ms,则不再会出现报警停机。
图4监控定时器指令的使用
使用wdt指令时应注意:
1)如果在后续的for-next循环中,执行时间可能超过监控定时器的定时时间,可将wdt插入循环程序中。
2)当与条件跳转指令cj对应的指针标号在cj指令之前时(即程序往回跳)就有可能连续反复跳步使它们之间的程序反复执行,使执行时间超过监控时间,可在cj指令与对应标号之间插入wdt指令。
6.循环指令
循环指令共有两条:循环区起点指令for,编号为fnc08,占3个程序步;循环结束指令next,编号为fnc09,占用1个程序步,无操作数。
在程序运行时,位于for~next间的程序反复执行n次(由操作数决定)后再继续执行后续程序。循环的次数n=1~32767。如果n=-32767~0之间,则当作n=1处理。
如图5所示为一个二重嵌套循环,外层执行5次。如果d0z中的数为6,则外层a每执行一次则内层b将执行6次。
图5循环指令的使用
使用循环指令时应注意:
1)for和next必须成对使用;
2)fx2n系列plc可循环嵌套5层;
3)在循环中可利用cj指令在循环没结束时跳出循环体;
4)for应放在next之前,next应在fend和end之前,否则均会出错
进行程序编辑时,只需要将编辑光标(鼠标)调整到程序编辑器界面,即可进入程序编辑状态,下面以梯形图的编辑为例,具体说明程序的编辑步骤。
(1)选定程序块
——双击指令树中程序结构显示区的程序块图标,或者点击编辑区下部的程序块排列区的程序块名称快捷键(见图12-2.2),选择需要编辑的程序块(图中选择的是ob1);
——鼠标点击程序编辑区,选择输入位置。
(2)输入程序指令
对于常用指令的输入,一般在“指令快捷按钮”区(见图12-2.2)直接点击指令快捷按钮,在弹出菜单中选择即可。
对于功能指令,可以通过打开指令树中的指令文件夹(instructions),再打开指令分类文件夹(如逻辑运算指令应打开文件夹“bitlogic”等),并双击相应的指令符号,即可输入指令(见图12-2.3)。
(3)输入地址
在程序编辑中输入一条指令后,地址自动用问号表示,如“??.?”或“????”等。可点击问号,直接为该编程元件指定一个常数或**地址、符号地址或变量地址。
(4)程序修改
编制梯形图程序过程中,可利用编辑菜单中“剪切”、“复制”、“粘贴”、“插入”、“查找”、“替换”等功能键或编辑指令对程序进行修改。
(5)语言切换
梯形图程序可通过“检视”菜单下的stl、lad、fbd按钮进行三种编程语言间的切换。
(6)标题注释
编制梯形图程序过程中,可单击程序块注释(pou comment)、网络标题(network title)、网络注释(networkcomment)等注释框,输入识别该逻辑网络的标题注释。
(7)密码设置
用右键单击指令树中程序结构显示区的程序块图标,或者点击编辑区下部的程序块排列区的程序块名称,并从弹出菜单中选择“属性(properties...)”,即可对程序块的名称、作者、密码等进行设置(见图12-2.4)。
设定了密码保护后,在程序打开时,会在“指令树(instructiontree)”中的“程序块(programblock)”文件夹以及编辑区的程序块显示区出现保护标记(见图12-2.5)。
对于加入了密码的程序块,只有在程序块的“属性( properties...)”中重新输入密码,才能打开程序。