第四章S7-200PLC功能指令二例题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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的定时器,不能使用定时器本身触点作为自复位控制,应使用下面主程序方法。

相关文档
最新文档