西门子PLC:200smart
第十三章
项目 | Value | Value |
---|---|---|
主程序 | MAIN | 一个项目只能有一个,循环扫描 |
子程序 | SBR_0 | 项目中最多有128个,只有在调用时 才执行(子程序可以嵌套其他子程序,最多八层) |
中断程序 | INT_0 | 中断程序也可以像子程序一样写程序,最多128个,不会被调用,只能被中断事件触发 |
子程序的优点:
①优化主程序(方便调试);
②缩短PLC的扫描周期;
③可以项目移植,多次调用;
子程序 | 是否带参 | 是否有条件调用 |
---|---|---|
子程序分类 | 不带参子程序 | 有条件调用 |
子程序分类 | 带参子程序 | 无条件调用 |
例:手自动转换,手动自动转换开关I0.7
;(0手动,1自动
)
手动模式:按I0.0
电动;
自动模式:按I0.0
自锁,按I0.1
停止;
主程序:
手动子程序:
自动子程序:
总结:
调用条件断开时,且没有扫描到最新的状态,子程序中的Q
、M
、T
、C
都会保持调用条件消失之前的状态(若想停下来,要在子程序中使用下降沿复位)
2、带参子程序
有管脚或引脚的子程序
创建带参子程序的步骤:
- ①创建子程序;
- ②创建变量表(子程序中);
- ③写子程序;
- ④主程序调用子程序;
局部变量:子程序的专属变量;
- 全局变量:
VB
、VW
、VD
等,不能重复地址;- 局部变量:子程序专用,每个子程序有56个字节(表示为
LB
、LW
、LD
等)
例:创建子程序
创建一个求长方体体积的子程序
- 变量表位于:
视图——组件——变量表
中 - 变量表中的变量类型:
IN
:输入;OUT
:输出;IN_OUT
:中间变量(若将底面积设置成中间变量,在子程序和主程序的引脚都能看得到)TEMP
:临时变量(若将底面积设置成临时变量,在主程序中使用时,管脚处就看不到底面积了)
- 也可以有多个输出,如质量、体积等;
- 要想在子程序中使用到底面积,又不想在主程序中出现,可以将底面积的变量类型设置成临时变量
TEMP
写完子程序后,可以在:项目——指令——调用子程序例程中找到并使用
3、将子程序设置成库文件
①将子程序设置成库文件,有助于以后的程序中可以使用,也可以发送给别人使用具体步骤如下:
项目——指令——库(右键)——创建库(可以给子程序设置一个合适的名称)——下一页——添加、下一页——(不设置密码)下一页——(设置子程序版本号)下一页——创建
②创建完成后,库文件对应的磁盘中就多了一个子程序,如何找到这个刚刚保存的库文件呢?
- 项目——指令——库(右键)——打开库文件
- 然后就能跳转到对应的路径,要是删除掉这里的库文件,那么对应的库指令就消失了,不能做到其他程序也是用(广而用之)
③如何使用创建的库指令:
使用后在项目——程序块,双击就能看到库文件对应的子程序了
例:不带参子程序:往返运动,可手动,可自动。
具体要求:在手动模式下,可以右行,可以左行。
在自动模式下,按下启动,开始右行,碰到右限位,自动左行,碰到左限位,又开始右行,如此循环。
手自动转换使用的是Q0.7