S7-200PLC中断优先级和排对等候
优先级是指多个中断事件同时发出中断请求时,CPU对中断事件响应的优先次序。S7-200规定的中断优先由高到低依次是:通信中断、I/O中断和定时中断。每类中断中不同的中断事件又有不同的优先权,如表2所示。
一个程序中总共可有128个中断。S7-200在各自的优先级组内按照先来先服务的原则为中断提供服务。在任何时刻,只能执行一个中断程序。一旦一个中断程序开始执行,则一直执行至完成。不能被另一个中断程序打断,即使是更高优先级的中断程序。中断程序执行中,新的中断请求按优先级排队等候。中断队列能保存的中断个数有限,若超出,则会产生溢出。中断队列的最多中断个数和溢出标志位如表3所示。
表2中断事件及优先级
优先级分组 |
组内优先级 |
中断事件号 |
中断事件说明 |
中断事件类别 |
通信中断 |
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中断 |
表3 中断队列的最多中断个数和溢出标志位
队列 |
CPU 221 |
CPU 222 |
CPU 224 |
CPU 226和CPU 226XM |
溢出标志位 |
通讯中断队列 |
4 |
4 |
4 |
8 |
SM4.0 |
I/O中断队列 |
16 |
16 |
16 |
16 |
SM4.1 |
定时中断队列 |
8 |
8 |
8 |
8 |
SM4.2 |
西门子PLC实现用四个按钮分别控制四个灯的设计原理:用四个按钮分别控制四个灯,当其中任意一个按钮按下时对应的灯亮,多个按钮按下时灯不亮。
具体控制方案设计如下:
1.输入/输出元件及控制功能
|
PLC软元件 |
元件文字符号 |
元件名称 |
控制功能 |
输入 |
I0.0 |
SB1 |
按钮1 |
控制灯 |
I0.1 |
SB2 |
按钮2 |
控制灯 |
|
I0.2 |
SB3 |
按钮3 |
控制灯 |
|
I0.3 |
SB4 |
按钮4 |
控制灯 |
|
输出 |
Q0.0 |
EL1 |
灯1 |
照明 |
Q0.1 |
EL2 |
灯2 |
照明 |
|
Q0.2 |
EL3 |
灯3 |
照明 |
|
Q0.3 |
EL4 |
灯4 |
照明 |
看到很多网友问学习PLC的方法, 现将我个人学习PLC编程的心得总结如下,大家有更好的方法请补充:
1.有一定的电工基础-----掌握传感器、接近开关、编马器、气动元件等常用器件的使用及继电器控制原理。
2.再学数制及数制转换-----掌握二进制、八进制、十六进制、BCD码、ASCI码的概念。
3.选择你所在地区流型的PLC品牌做为学习的机种.---------学会后可以更好的与实际工作对接。
4.买台手提电脑(配制不低于CPU最好是双核或以上 ,1G内存,硬盘80G,带串口)----必备学习及外出干活的工具。
5. 学会电脑的基本操作,如开机关机、文件保存以及WORD、EXCEL办公软件的基本应用(电脑使用者必会);常用软件的安装与卸载(如编程软件的安装和卸载);打字(用于程序起名及加注释)。
6.寻找PLC编程软件及仿真软件、教学软件(当然还要学会使用它们)。-----必备学习用具。
7. 买相关书及视频教材(电工论坛有欧姆龙,西门子,松下PLC视频教程直播)。-----学习资料。
8. 找齐该PLC编程手册、使用手册、使用案例,可从网上收集或参加产品推广会获得。----工作中肯定会用到的资料.
9. 以上准备好后,您可以自学PLC了,一般来说PLC梯形图的基本指令好学,其逻辑关系与继电器控制原理图相通。但功能指令就难很多了。
10.最好是到有实力口碑好的学校培训.-----比起自学可缩短学习时间,学得更系统,还可多交恩师、学友以利于今后发展。
11. 用一切办法多结识周围的同行、PLC厂家、代理商,以便于得到他们的帮助及有用的信息。
12. 坚持学习,多与同行交流,多动手实践.-----编程是理论与技能高度结合的,应多看书多实践才能提高编程技术。
13. 当外出包工程时,还要准备该类型PLC程序解密软件------因为有时你会忘记自己程序中已加的密码,还有时是别人加密的程序,客户要你J将它再优化、增加新功能、修改参数、将原来定时停机的程序删除。这也是很多人找解码软件的原因。
用siemens PLC控制喷泉系统梯形图、控制语句表
一、控制要求及I/O分配
1.控制要求
隔灯闪烁:L1亮0.5秒后灭,接着L2亮0.5秒后灭, 接着L3亮0.5秒后灭,接着L4亮0.5秒后灭,接着L5、L9亮0.5秒后灭,接着L6、L10亮0.5秒后灭,接着L7、L11亮0.5秒后灭,接着L8、L12亮0.5秒后灭,L1亮0.5秒后灭,如此循环下去。
2.I/O分配
输入 输出
起动按钮:I0.0 L1:Q0.0 L5、L9: Q0.4
停止按钮:I0.1 L2:Q0.1 L6、L10:Q0.5
L3:Q0.2 L7、L11:Q0.6
L4:Q0.3 L8、L12:Q0.7
图1-1 喷泉控制示意图
三、喷泉控制语句表
0
LD
I0.0
16
TON
T38,+5
31
LD
M10.6
1
O
M1.0
17
LD
T38
32
=
Q0.5
2
AN
T37
18
=
M0.0
33
LD
M10.7
3
A
I0.1
19
LD
M0.0
34
=
Q0.6
4
=
M1.0
20
SHRB
M10.0,M10.0,+8
35
LD
M11.0
5
LD
M1.0
36
=
Q0.7
6
TON
T37,+5
21
LD
M10.1
37
LDN
I0.1
7
LD
T37
22
=
Q0.0
38
R
M10.1,8
8
O
M11.0
23
LD
M10.2
9
=
M10.0
24
=
Q0.1
10
LD
I0.0
25
LD
M10.3
11
O
M0.1
26
=
Q0.2
12
A
I0.1
27
LD
M10.4
13
=
M0.1
28
=
Q0.3
14
LD
M0.1
29
LD
M10.5
15
AN
M0.0
30
=
Q0.4
四、喷泉控制梯形图
PLC中断程序的概念及建立中断程序的方法
1. 中断程序的概念
中断程序是为处理中断事件而事先编好的程序。中断程序不是由程序调用,而是在中断事件发生时由操作系统调用。在中断程序中不能改写其他程序使用的存储器,最好使用局部变量。中断程序应实现特定的任务,应“越短越好”,中断程序由中断程序号开始,以无条件返回指令(CRETI)结束。在中断程序中禁止使用DISI、ENI、HDEF、LSCR和END指令。
2. 建立中断程序的方法
方法一:从“编辑”菜单→选择插入(Insert)→ 中断(Interrupt)。
方法二:从指令树,用鼠标右键单击“程序块”图标并从弹出菜单→选择插入(Insert)→ 中断(Interrupt)。
方法三:从“程序编辑器”窗口,从弹出菜单用鼠标右键单击插入(Insert)→ 中断(Interrupt)。
程序编辑器从先前的POU显示更改为新中断程序,在程序编辑器的底部会出现一个新标记,代表新的中断程序。
S7-200PLC的数据区
(一)数字量输入和输出映象区
1.输入映象寄存器(数字量输入映象区)(I)
数字量输入映象区是S7-200CPU为输入端信号状态开辟的一个存储区。输入映像寄存器的标识符为I,在每个扫描周期的开始,CPU对输入点进行采样,并将采样值存于输入映像寄存器中。
输入映像寄存器是PLC接收外部输入的开关量信号的窗口。
可以按位、字节、字、双字四种方式来存取。
(1)按“位”方式:从I0.0~I15.7,共有128点
(2)按“字节”方式:从IB0~IB15,共有16个字节
(3)按“字”方式:从IW0~IW14,共有8个字
(4)按“双字”方式:从ID0~ID12,共有4个双字
2.输出映像寄存器(Q)
数字量输出映象区是S7-200CPU为输出端信号状态开辟的一个存储区。输出映像寄存器的标识符为Q(从Q0.0~Q15.7,共有128点),在每个扫描周期的末尾,CPU将输出映像寄存器的数据传送给输出模块,再由后者驱动外部负载。
可以按位、字节、字、双字四种方式来存取。
(1)按“位”方式:从Q0.0~I15.7,共有128点
(2)按“字节”方式:从QB0~QB15,共有16个字节
(3)按“字”方式:从QW0~QW14,共有8个字
(4)按“双字”方式:从QD0~QD12,共有4个双字
说明:实际没有使用的输入端和输出端的映象区的存储单元可以作中间继电器用。
(二)模拟量输入映象区和输出映象区
1.模拟量输入映象区(AI区)
模拟量输入映象区是S7-200CPU为模拟量输入端信号开辟的一个存储区。S7-200将测得的模拟量(如温度、压力)转换成1个字长(2个字节)的数字量,模拟量输入映像寄存器用标识符(AI)、数据长度(W)及字节的起始地址表示。
从AIW0~AIW30,共有16个字,总共允许有16路模拟量输入。
说明:模拟量输入值为只读数据。
2.模拟量输出映象区(AQ区)
模拟量输出映象区是S7-200CPU为模拟量输出端信号开辟的一个存储区。S7-200将1个字长(2个字节,16位)的数字量按比例转换为电流或电压。模拟量输出映像寄存器用标识符(AQ)、数据长度(W)及字节的起始地址表示。
从AQW0~AQW30,共有16个字,总共允许有16路模拟量输出。
(三)变量存储器(V)(相当于内辅继电器)
PLC执行程序过程中,会存在一些控制过程的中间结果,这些中间数据也需要用存储器来保存。变量存储器就是根据这个实际的要求设计的。变量存储器是S7-200CPU为保存中间变量数据而建立的一个存储区,用V表示。
可以按位、字节、字、双字四种方式来存取。
(1)按“位”方式:从V0.0~I5119.7,共有40960点。CPU221、CPU222变量存储器只有2048个字节,其变量存储区只能到V2047.7位。
(2)按“字节”方式:从VB0~VB5119,共有5120个字节
(3)按“字”方式:从VW0~VW5118,共有2560个字
(4)按“双字”方式:从VD0~VD5116,共有1280个双字
(四)位存储器(M)区
PLC执行程序过程中,可能会用到一些标志位,这些标志位也需要用存储器来寄存。位存储器就是根据这个要求设计的。位存储器是S7-200CPU为保存标志位数据而建立的一个存储区,用M表示。该区虽然叫位存储器,但是其中的数据不仅可以是位、还可以是字节、字或双字。
(1)按“位”方式:从M0.0~M31.7,共有256点。
(2)按“字节”方式:从MB0~MB31,共有32个字节
(3)按“字”方式:从MW0~MW30,共有16个字
(4)按“双字”方式:从MD0~MD28,共有8个双字
(五)顺序控制继电器区(S)
PLC执行程序过程中,可能会用到顺序控制。顺序控制继电器就是根据顺序控制的特点和要求设计的。顺序控制继电器区是S7-200CPU为顺序控制继电器的数据而建立的一个存储区,用S表示。在顺序控制过程中,用于组织步进过程的控制。
可以按位、字节、字、双字四种方式来存取。
(1)按“位”方式:从S0.0~S31.7,共有256点。
(2)按“字节”方式:从SB0~SB31,共有32个字节
(3)按“字”方式:从SW0~SW30,共有16个字
(4)按“双字”方式:从SD0~SD28,共有8个双字
(六)局部存储器区(L)(相当于内辅继电器)
S7-200PLC有64个字节的局部存储器,其中60个可以用作暂时存储器或者给子程序传递参数。
局部存储器和变量存储器很相似,主要区别是变量存储器是全局有效的,而局部存储器是局部有效的。全局是指同一个存储器可以被任何程序存取(例如,主程序、子程序或中断程序)。局部是指导存储器区和特定的程序相关联。
几种程序之间不能互访。
局部存储器区是S7-200CPU为局部变量数据建立的一个存储区,用L表示。该区域的数据可以用位、字节、字、双字四种方式来存取。
(1)按“位”方式:从L0.0~L63.7,共有512点。
(2)按“字节”方式:从LB0~LB63,共有64个字节
(3)按“字”方式:从LW0~LW62,共有32个字
(4)按“双字”方式:从LD0~LD60,共有16个双字
(七)定时器存储器区(T)
PLC在工作中少不了需要计时,定时器就是实现PLC具有计时功能的计时设备。定时器的编号:
T0、T1、……、T255
S7-200有256个定时器。
(八)计数器存储器区(C)
PLC在工作中有时不仅需要计时,还可能需要计数功能。计数器就是PLC具有计数功能的计数设备。
计数器的编号:
C0、C1、……、C255
(九)高速计数器区(HSC)
高速计数器用来累计比CPU扫描速率更快的事件。S7-200各个高速计数器不仅计数频率高达30kHz。
S7-200各个高速计数器有32位带符号整数计数器的当前值。若要存取高速计数器的值,则必须给出高速计数器的地址,即高速计数器的编号。
高速计数器的编号为:HSC0、HSC1、……、HSC5。
S7-200有6个高速计数器。其中CPU221和CPU222仅有4个高速计数器(HSC0、HSC3、HSC4、HSC5)
(十)累加器区(AC)
累加器是可以像存储器那样进行读/写的设备。例如,可以用累加器向子程序传递参数,或从子程序返回参数,以及用来存储计算的中间数据。
S7-200CPU提供了4个32位累加器(AC0、AC1、AC2、AC3)。
可以按字节、字或双字来存取累加器数据中的数据。但是,以字节形式读/写累加器中的数据时,只能读/写累加器32位数据中的最低8位数据。如果是以字的形式读/写累加器中的数据,只能读/写累加器32位数据中的低16位数据。只有采取双字的形式读/写累加器中的数据时,才能一次读写全部32位数据。
因为PLC的运算功能是离不开累加器的。因此不有像占用其他存储器那样占用累加器。
(十一)特殊存储器区(SM)
特殊存储器是S7-200PLC为CPU和用户程序之间传递信息的媒介。它们可以反映CPU在运行中的各种状态信息,用户可以根据这些信息来判断机器工作状态,从而确定用户程序该做什么,不该做什么。这些特殊信息也需要用存储器来寄存。特殊存储器就是根据这个要求设计的。
1.特殊存储器区
它是S7-200PLC为保存自身工作状态数据而建立的一个存储区,用SM表示。特殊存储器区的数据有些是可读可写的,有一些是只读的。特殊存储器区的数据可以是位,也可是字节、字或双字。
(1)按“位”方式:从SM0.0~SM179.7,共有1440点。
(2)按“字节”方式:从SM0~SM179,共有180个字节
(3)按“字”方式:从SMW0~SMW178,共有90个字
(4)按“双字”方式:从SMD0~SMD176,共有45个双字
说明:特殊存储器区的头30个字节为只读区。
2.常用的特殊继电器及其功能
特殊存储器用于CPU与用户之间交换信息,例如SM0.0一直为“1”状态,SM0.1仅在执行用户程序的第一个扫描周期为“1”状态。SM0.4和SM0.5分别提供周期为1min和1s的时钟脉冲。SM1.0、 SM1.1和 SM1.2分别是零标志、溢出标志和负数标志。
S7-200 PLC高速计数器指令的使用简介
(1)每个高速计数器都有一个32位当前值和一个32位预置值,当前值和预设值均为带符号的整数值。要设置高速计数器的新当前值和新预置值,必须设置控制字节(表6-7),令其第五位和第六位为1,允许更新预置值和当前值,新当前值和新预置值写入特殊内部标志位存储区。然后执行HSC指令,将新数值传输到高速计数器。当前值和预置值占用的特殊内部标志位存储区如表1所示。
表1 HSC0-HSC5当前值和预置值占用的特殊内部标志位存储区
要装入的数值
HSC0
HSC1
HSC2
HSC3
HSC4
HSC5
新的当前值
SMD38
SMD48
SMD58
SMD138
SMD148
SMD158
新的预置值
SMD42
SMD52
SMD62
SMD142
SMD152
SMD162
除控制字节以及新预设值和当前值保持字节外,还可以使用数据类型HC(高速计数器当前值)加计数器号码(0、1、2、3、4或5)读取每台高速计数器的当前值。因此,读取操作可直接读取当前值,但只有用上述HSC指令才能执行写入操作。
(2)执行HDEF指令之前,必须将高速计数器控制字节的位设置成需要的状态,否则将采用默认设置。默认设置为:复位和起动输入高电平有效,正交计数速率选择4×模式。执行HDEF指令后,就不能再改变计数器的设置,除非CPU进入停止模式。
(3)执行HSC指令时,CPU检查控制字节和有关的当前值和预置值。