第四章S7-200PLC功能指令二例题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四章
S7-200PLC功能指令
主讲:李宏伟
4:子程序及应用
5:中断程序及应用
6:高速计数器功能及应用7:高速脉冲输出功能及应用
例:带参数的子程序调用如下所示。
注释:Micro/WIN保留L内存的最上方的4个字节(LB60-LB63),用于调用参数数据。
// L内存被用于保存布尔输入参数状态,
// 此类参数在LAD和FBD中被显示为使能位输入。
// 从而允许本网络在LAD、FBD和STL编辑器中显示。
七、子程序应用举例
例1:用两个子程序分别控制两台电动机的启停,主程序中调用子程序实现控制。
SBR0
方案一:无参数传递
OB1
SBR1
OB1
方案二:带参数传递
LD I0.0
= L60.0
LD I0.1
= L63.7
LD I0.2
= L63.6
LD L60.0
CALL SBR_0:SBR0, L63.7, L63.6, Q0.0
LD I1.0
= L60.0
LD I1.1
= L63.7
LD I1.2
= L63.6
LD L60.0
CALL SBR_0:SBR0, L63.7, L63.6, Q1.0
方案二:带参数传递
SBR0
LD #启动:L0.0
O #电机:L0.2
AN #停止:L0.1
= #电机:L0.2
例2:设计一记录设备运行时间的子程序,符号名为“运行时间”。设备运行时I0.0为ON,用I0.0的常开触点调用子程序。
OB1
SBR0
四、中断应用举例
例1:利用定时中断指令实现对模拟量的等间隔采样
OB1:
LD SM0.1
CALL SBR_0:SBR0 SBR0:
LD SM0.0
MOVB 100, SMB34
ATCH INT_0:INT0, 10
ENI
INT0:
LD SM0.0
MOVW AIW4, VW100
例2:在I0.0的上升沿通过中断使Q0.0立即置位;在I0.1的下降沿通过中断使Q0.0立即复位。
//主程序OB1
LD SM0.1 //第一次扫描时
ATCH INT_0,0 //I0.0上升沿执行0号中断程序ATCH INT_1,3 //I0.1下降沿执行1号中断程序ENI //允许全局中断
//中断程序0(INT_0)
LD SM0.0 //常ON
SI Q0.0,1 //使Q0.0立即置位
//中断程序1(INT_1)
LD SM0.0
RI Q0.0,1 //使Q0.0立即复位
例3:定时中断的定时时间最长为255ms,如何用定时中断1实现周期为2s的高精度定时?
//主程序OB1
LD SM0.1 //第一次扫描时
MOVB 0,VB10 //中断次数计数器清零
MOVB 250,SMB34 //设定中断0时间间隔为250ms ATCH INT_0,10 //指定定时中断0执行0号中断程序ENI //允许全局中断
//中断程序0(INT_0),每隔250ms中断一次
LD SM0.0 //常ON
INCB VB10 //中断次数计数器加1
LDB= 8,VB10 //比较,如果中断8次(2s)MOVB 0,VB10 //中断次数计数器清零
INCB QB0 //每2s将QB0加1
例4:出现事故时,I0.0的上升沿产生中断,使输出Q1.0立即置位,同时将事故发生的日期和时间保存在VB10~VB17中。
//主程序OB1
LD SM0.1 //第一次扫描
ATCH 0,0 //指定在I0.0上升沿
//执行中断程序0
ENI //开中断
//中断程序INT0
LD SM0.0
SI Q1.0,1 //使Q1.0立即置位
TODR VB10 //读实时时钟
例5:使用定时中断的彩灯控制程序,控制8个彩灯循环左移。
定时中断0的中断号为10,SMB34中的定时时间为1~255ms。彩灯移位的延时时间一般大于
255ms,将中断的时间间隔设为250ms,用VB0做中断次数计数器,在中断服务程序中将VB0加1,然后用比较触点指令判断VB0是否等于设置的次数N。若相等则将QB0循环左移一位,同时VB0清零。移位时间间隔为0.25N(s)。
主程序OB1
LD SM0.1
CALL SBR_0:SBR0
子程序SBR0
LD SM0.0
MOVB 16#07, QB0 MOVB 0, VB0 MOVB 250, SMB34 ATCH INT_0:INT0, 10 ENI 中断程序INT0 LD SM0.0 INCB VB0
LDB= VB0, 4 RLB QB0, 1 MOVB 0, VB0
例6:使用T32中断的彩灯控制程序,控制8个彩灯循环左移。
1ms定时器T32和T96的定时时间到时可以产生中断,中断号分别为21和22,最长定时时间为32.767s。对于分辨率为1ms和10ms的定时器,不能使用定时器本身触点作为自复位控制,应使用下面主程序方法。