6ES7511-1AL03-0AB0|技术参数
- 供应商
- 浔之漫智控技术(上海)有限公司
- 认证
- 品牌
- 西门子
- 型号
- 模块
- 产地
- 德国
- 全国服务热线
- 15821971992
- 经理
- 聂聪
- 所在地
- 上海市松江区广富林路4855弄88号3楼
- 更新时间
- 2023-10-26 04:00
条件结束指令
条件结束(end)指令:执行条件成立(左侧逻辑值为1)时,终止当前扫描周期,结束主程序,返回主程序起点。end指令可以在主程序中使用,但不能在子程序或中断服务程序中使用。end指令见表3-11。
停止指令
停止(stop)指令:执行条件成立(左侧逻辑值为1)时,停止执行用户程序时cpu状态由 run转到stop。stp指令见表3-12。
如果stop指令在中断程序中执行,那么该中断立即终止,并且忽略所有挂起的中断,继续扫描程序剩余部分,完成当前周期的剩余动作,包括主用户程序的执行,并在当前扫描的zui后,完成从run到 stop模式的转变。
看门狗复位指令
看门狗复位(wdr)指令允许s7-200cpu的看门狗定时器被重新触发,这样可以在不引起看门狗错误的情况下,增加此扫描所允许的时间。wdr指令见表3-13。
跳转指令
跳转(jmp)指令:把程序的执行跳转到指定的标号,执行跳转后,逻辑堆栈顶总为1;
标号(lbl)指令:标记跳转目的地的位置;
操作数 n:0~255。
jmp指令见表3-14,jmp指令梯形图示例如图 3-16所示。
jmp指令可以在主程序、子程序或者中断服务程序中使用。跳转和与之相应的标号指令必须位于同一程序代码(无论是主程序、子程序还是中断服务程序)。不能从主程序跳到子程序或中断程序,同样也不能从子程序或中断程序中跳出。可以在顺序控制(scr)程序段中使用jmp指令,但相应的标号指令必须在同一个顺序控制程序段中。
子程序指令
s7-200plc的指令系统具有简单、方便、灵活的子程序调用功能。与子程序有关的操作有:建立子程序、子程序的调用和返回。
1.建立子程序
建立子程序是通过编程软件来完成的。可用编程软件“编辑”菜单中的“插入”选项,选择“子程序”,以建立或插入一个新的子程序,同时,在指令树窗口可以看到新建的子程序图标,默认的程序名是sbr_n,编号n从o开始按递增顺序生成,也可以在图标上直接更改子程序的程序名,把它变为更能描述该子程序功能的名字。在指令树窗口双击子程序的图标就可进入子程序,并能对它进行编辑。s7-200cpu221、cpu222、cpu224zui大支持64个(0~63)子程序;s7_200cpu 224xp.cpu 226zui大支持128个(0~127)子程序。
2.子程序调用
(1)子程序调用(call)指令在使能输入有效时,主程序把程序控制权交给子程序。子程序的调用可以带参数,也可以不带参数。它在梯形图中以指令盒的形式编程。call指令见表3-15。
(2)子程序条件返回(cret)指令在使能输入有效时,结束子程序的执行,返回主程序中(此子程序调用的下一条指令)。梯形图中以线圈的形式编程,指令不带参数。
使用说明:
(1)cret指令多用于子程序的内部,由判断条件决定是否结束子程序调用;ret指令用于子程序的结束。用microwin32编程时,不需要手工输入ret指令,而是由软件自动加在每个子程序结尾。
(2)子程序嵌套如果在子程序的内部又对另一子程序执行调用指令,则这种调用称为子程序的嵌套。子程序的嵌套深度zui多为8级。
(3)当一个子程序被调用时,系统自动保存当前的堆栈数据,并把栈顶置为1,堆栈中的其他置为0,子程序占有控制权。子程序执行结束,通过返回指令自动恢复原来的逻辑堆栈值,调用程序又重新取得控制权。
(4)累加器可在调用程序和被调用子程序之间自由传递,所以累加器的值在子程序调用时既不保存也不恢复。
3.带参数的子程序调用
子程序中可以有参变量,带参数的子程序调用扩大了子程序的使用范围,增加了调用的灵活性。子程序的调用过程如果存在数据的传递,则在调用指令中应包含相应的参数。
1)子程序参数
子程序zui多可以传递16个参数。参数在子程序的局部变量表中加以定义。参数包含下列信息:变量名、变量类型和数据类型。
(1)变量名变量名zui多用8个字符表示,第一个字符不能是数字。
(2)变量类型变量类型是按变量对应数据的传递方向来划分的,可以是传入子程序(in)、传入/传出子程序(in/out)、传出子程序(out)和暂时变量(temp)四种类型。四种变量类型的参数在变量表中的位置必须按以下先后顺序:
①in类型传入子程序参数。所接的参数可以是直接寻址数据(如vbi00)、间接寻址数据(如ac1)、立即数(如16#2344)和数据的地址值(如&vbi06)
②in/out类型:传入/传出子程序参数。调用时将指定参数位置的值传到子程序,返回时从子程序得到的结果值被返回到同一地址。参数可以采用直接和间接寻址,但立即数(如16#1234)和地址值(如&vbl00)不能作为参数。
③out类型:传出子程序参数。它将从子程序返回的结果值送到指定的参数位置。输出参数可以采用直接和间接寻址,但不能是立即数或地址编号。
④temp类型:暂时变量类型。在子程序内部暂时存储数据,不能用来与主程序传递参数数据。
(3)数据类型局部变量表中还要对数据类型进行声明。数据类型包括:能流,布尔型,字节、字和双字型,整数、双整数型以及实型。
①能流:仅允许对位输入操作,是位逻辑运算的结果。在局部变量表中,布尔能流输入处于所有类型的zui前面。
②布尔型:布尔型用于单独的位输入和输出。
③字节、字和双字型:这三种类型分别声明一个1字节、2字节和4字节的无符号输入或输出参数。
④整数、双整数型:这两种类型分别声明一个2字节或4字节的有符号输入或输出参数。
⑤实型:该类型声明一个ieee标准的32位浮点参数。
2)参数子程序调用的规则
常数参数必须声明数据类型。例如,把值为223344的无符号双字作为参数传递时,必须用dw#223344来指明。如果缺少常数参数的这一描述,常数可能会被当作不同类型使用。
输入或输出参数没有自动数据类型转换功能。例如,局部变量表中声明一个参数为实型,而在调用时使用一个双字,则子程序中的值就是双字。参数在调用时必须按照一定的顺序排列,先是输入参数,然后是输入输出参数,zui后是输出参数。
3)变量表使用
按照子程序指令的调用顺序,参数值分配给局部变量存储器,起始地址是l0.0。使用编程软件时,地址分配是自动的。在局部变量表中要加入一个参数,右击要加入的变量类型区可以得到一个选择菜单,选择“插入”,然后选择“下一行”即可。局部变量表使用局部变量存储器。当在局部变量表中加入一个参数时,系统自动给各参数分配局部变量存储空间。参数子程序调用指令格式:call子程序,参数i,参数2,.,参数n.局部变量分配见表3-16,带参数调用子程序示例如图3-18所示。
展开全文