编写S7-200PLC程序完成采样工作,要求每10ms采样
发表时间:2018-09-08
编程完成采样工作,要求每10ms采样一次。
分析:完成每10ms采样一次,需用定时中断,查表1可知,定时中断0的中断事件号为10。因此在主程序中将采样周期(10ms)即定时中断的时间间隔写入定时中断0的特殊存储器SMB34,并将中断事件10和INT-0连接,全局开中断。在中断程序0中,将模拟量输入信号读入,程序如图下图所示。
表1中断事件及优先级
优先级分组 |
组内优先级 |
中断事件号 |
中断事件说明 |
中断事件类别 |
通信中断 |
0 |
8 |
通信口0:接收字符 |
通信口0 |
0 |
9 |
通信口0:发送完成 |
||
0 |
23 |
通信口0:接收信息完成 |
||
1 |
24 |
通信口1:接收信息完成 |
通信口1 |
|
1 |
25 |
通信口1:接收字符 |
||
1 |
26 |
通信口1:发送完成 |
||
I/O中断
|
0 |
19 |
PTO 0脉冲串输出完成中断 |
脉冲输出 |
1 |
20 |
PTO 1脉冲串输出完成中断 |
||
2 |
0 |
I0.0上升沿中断 |
外部输入 |
|
3 |
2 |
I0.1上升沿中断 |
||
4 |
4 |
I0.2上升沿中断 |
||
5 |
6 |
I0.3上升沿中断 |
||
6 |
1 |
10.0下降沿中断 |
||
7 |
3 |
I0.1下降沿中断 |
||
8 |
5 |
I0.2下降沿中断 |
||
9 |
7 |
I0.3下降沿中断 |
||
10 |
12 |
HSC0当前值=预置值中断 |
高速计数器 |
|
11 |
27 |
HSC0计数方向改变中断 |
||
12 |
28 |
HSC0外部复位中断 |
||
13 |
13 |
HSC1当前值=预置值中断 |
||
14 |
14 |
HSC1计数方向改变中断 |
||
15 |
15 |
HSC1外部复位中断 |
||
16 |
16 |
HSC2当前值=预置值中断 |
||
17 |
17 |
HSC2计数方向改变中断 |
||
18 |
18 |
HSC2外部复位中断 |
||
19 |
32 |
HSC3当前值=预置值中断 |
||
20 |
29 |
HSC4当前值=预置值中断 |
||
21 |
30 |
HSC4计数方向改变 |
||
22 |
31 |
HSC4外部复位 |
||
23 |
33 |
HSC5当前值=预置值中断 |
||
定时中断 |
0 |
10 |
定时中断0 |
定时 |
1 |
11 |
定时中断1 |
||
2 |
21 |
定时器T32 CT=PT中断 |
定时器 |
|
3 |
22 |
定时器T96 CT=PT中断 |
主程序
LD I0.0
MOVB 10, SMB34 // 将采样周期设为10毫秒
ATCH INT_0, 10 // 将事件10连接INT_0
ENI // 全局开中断
中断程序0
LD SM0.0
MOVW AIW0, VW100 //读入模拟量AIW0