浅谈西门子s7300系列plc与学习心得.docx
《浅谈西门子s7300系列plc与学习心得.docx》由会员分享,可在线阅读,更多相关《浅谈西门子s7300系列plc与学习心得.docx(15页珍藏版)》请在冰点文库上搜索。
浅谈西门子s7300系列plc与学习心得
浅谈西门子S7-300系列PLC与学习心得
随着现代工业生产中自动化程度的提高,我们对能够完成自动控制的设备也有了更高的要求,PLC就是其中能够对工业生产进行自动控制的一种控制设备.
PLC英文全称PROGRAMMABLELOGICCONTRO中文全称为可编程逻辑控制器,它是一种数字运算操作的电子系统,专为在工业环境应用而设计的.它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算,顺序控制,定时,计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程.它的特点在于:
1可靠性高,抗干扰能力强
2配套齐全,功能完善,适用性强
3易学易用,深受工程技术人员欢迎
4系统的设计、建造工作量小,维护方便,容易改造
5体积小,重量轻,能耗低
正因为如此,PLC的应用在现代工业控制生产领域起着非常重要的作用,特别是在钢铁、石油、化工、电力、机械制造等行业扮演着至关重要的角色。
在我厂炼油化工生产装置中,PLC系统应用也十分广泛,像:
余热发电站,汽油罐区,七万吨挤压造粒,水处理,老球罐,芳烃罐区,重油,柴油及压缩机机组等装置设备都应用了不同的PLC系统,保证装置设备的正常运做.在这些装置设备中其中以西门子公司的S7-300/400系列PLC系统为主.它有着灵活地组网方式及各种标准的通信协议,能够完成复杂的工业控制要求。
就我所认识学习的S7-300PLC系统做以简要的介绍:
一硬件架构:
1网络构造:
1
■TI
irsifST>300
鮎®15HULK
MPI多点接口网络:
该网主要用于PLC与工程师站和操作站的短距离连接,
通讯距离50米.通讯速率:
187.5KBIT/S或12MBITS/S
PROFIBU网络:
用于现场分布式的I/O站和别的西门子PLC通讯.通讯速率:
187.5MBITS/S或12MBITS/S
2组成部件:
S7-300PLC模块结构构成,它主要油以下几个部分组成:
CPU:
中央处理单元,用于计算卡件采集各种数据,我厂大多有CPU314,CPU31,5CPU316等系列.女口CPU315-2DP存储容量为64KB即我们编写程序最大的存储位为M65536.7。
CPLLh可插入快速闪存储卡,可用于长期存储重要的数据与功能程序。
PS:
电源模块,将AC220V电源转换成DC24V电源,供给CPU和I/O模块使用。
SM信号模块,它是模拟量输入输出模块,数字量输入输出模块的总称。
IM:
接口模块,用于中央机架与扩展机架的连接,每层机架最多可装8块
SM卡,当需要装入更多SM卡时,则需扩展。
系统最多搭配4层机架,最多可配置32块信号模块。
CP通讯处理器,用于PLC之间,PLC与计算机和其他智能设备之间的连接.通讯网卡:
用于PLC系统与上位机的数据通讯:
主要类型有CP5611,
CP5613,CP1613,CP5412A等通讯网卡,均支持多种通讯协议。
CPU
当我们需要架构起一台PLC系统时,需要配置最基本模块结构:
电源模块,CPU及信号模块,其他模块则可根据系统需要培植(如接口模块,当系统不需扩展机架时,则不需安装)•所有模块均安装在金属导轨上,电源模块安装在最左端(1号槽),CPU模块紧靠电源模块(2号槽),如需配置接口模块,则放在CPU莫块右侧(3号槽),当不需机架扩展时则安装信号模块,功能模块,通信处理器•(4到11号槽)•除电源模块外,卡件与卡件之间在背板上用总线连接器连接,并固定在导轨上,实现信号模块与CPU勺连接。
(注:
槽为设置在后面S7编程软件中设置)
二S7编程软件:
对于西门子S7-300/400系列来说,无论是逻辑功能编程还是硬件组态,都需要在S7软件中完成。
在介绍S7之前,首先要了解300系统中的存储器类型与信号在系统中的数据类型,了解这些知识才能迅速掌握了解数据在整个系统中的传输存储过程,帮
助我们更加快速的掌握S7软件。
300系统中分为4大存储区:
1装载存储器2工作存储器3系统存储器4外设存储区,其中系统存储器在我们编程组态中需要重点了解。
系统存储器又分为:
1过程映象输入输出(I/O)2内部存储器标志位(M)存储区3定时器(T)存储区4计算器(C)存储区5数据块与背景数据块6外设I/O区。
例如:
我们从一块模拟量输入SM卡上采集到一点模拟量数据PIW(外设I/O区),经过一个比较模块,与上位机给出的数据MD0(内部存储器标志位存储区)进行比较,将结果送入I1.0(过程映象输入输出(I/O)),此模块中我们还可加入一个定时功能(定时器(T)存储区),让结果在延时几秒肿后输出,以过滤错
误信号所产生的结果
我们可以清楚的看到每个数据所在的存储位置,以及数据传输的过程。
300系统中模拟信号的数据转换类型:
范围双极性
百分比
十进制
十六进制
±5V
±10V
±20MA
上溢出
118.515%
32767
7FFFH
5.926V
11.851V
23.70MA
超出范围
117.589%
32511
7EFFH
5.879V
11.759V
23.52MA
正常范围
100.000%
27648
6C00H
5V
10V
20MA
0%
0
0H
0V
0V
0MA
-100.000%
-27648
9400H
-5V
-10V
-20MA
低于范围
-117.593%
-32512
8100H
-5.879V
-11.759V
-23.52MA
下溢出
-118.519%
-32768
8000H
-5.926V
-11.851V
-23.70MA
范围
单极性
百分比
十进制
十六进制
0~10V
0~20MA
4~20MA
上溢出
118.515%
32767
7FFFH
11.852V
23.70MA
22.96MA
超出范围
117.589%
32511
7EFFH
11.759V
23.52MA
22.81MA
正常范围
100.000%
27648
6C00H
10V
20MA
20MA
0%
0
0H
0V
0MA
4MA
低于范围
-17.593%
-4864
ED00H
-1.959V
-3.52MA
1.185MA
生产过程中有大量的连续变化的模拟量需要测量或控制,液位,温度压力,流量这4大参数产生的标准电压,电流信号,在300系统中均都首先转化为可计算的十进制数或十六进制数进行逻辑控制运算。
例如:
标准电流信号4~20MA,在系统中首先要转化为0~27648的十进制数,在进行以后的逻辑功能运算,如果产生溢出,则在+32768和-32768间。
此外模拟卡的接线方式与量程设置也与其他SM卡有所不同,如一块AI8*12的模拟输入卡,它需要不仅硬件设置信号类型,还需要在软件上设置一次同样的类型。
模拟卡的侧面有4组可设置的量程卡,每2个通道为一组,量程卡标记有A,B,C,D,以确定你此通道的信号类型,同样也要在软件的硬件组态模拟卡的
参数设置中的通道信号类型上设置同样的信号类型,否则下装时会报错
1硬件组态与参数设置:
对于一台PLC系统,首先需要建立一个项目。
大致的步骤为:
1应用项目向导创建,设置CPU型号(如果没有所需要型号可以在后面硬件组态中修改),项目名称,功能块的添加,编程语言选择等。
2双击“HARDWA”进行硬件组态,可以看到主窗口中的1~11条添加框分别对应机架的1~11号槽位,根据我们的在硬件型号在窗口有侧目录中选择对应的型号添加到对应的槽位中。
一个300系统站最多可以有一个主机架和3个扩展机架,如需扩展机架,则在3号槽添加IM信号模块来实现,如果不虚扩展,则3号槽是留空的,SM信号模块从第4号槽位添加,一个机架最多可有8块信号模块。
可以看到当添加完成后窗口下方软件给所有信号模块都自动分配了地址,DI16*24V为16通道数字输入卡,占用2个字节地址,每个通道占用1BIT位地址;DO16*24V/0.5A为16通道数字输出卡,占用2个字节地址,每个通道占用1BIT位地址;AI8*12BIT为8通道模拟量输入卡,占用16个字节地址,每个通道占有2字节地址:
AO4*12BIT为4通道模拟量输出卡,占用8个字节,每个通道占有2字节地址.地址位是与模块卡硬点地址成对应关系的,一个地址位对应一个硬点,不能重复,在逻辑编程中,我们可以调用这些地址来完成输入输出功能的操作.
添加所需硬件模块完成后,我们可以对各个模块设置我们所对应的参数•如
图中所示:
AI8*12BIT模拟输入卡的输入参数设置,我们可以设置组诊断,信号测量类型,测量量程范围,干扰抑制频率,积分时间等等,要注意的是测量类型与测量量程,这都于我们所要接受的信号种类有关•如接受信号是4线制单独供电仪表,则在测量类型中选择4DUM在测量量程上选择信号的范围,可以看到量程框下的量程卡标记应于我们设置的硬件所对应,为”C',4线制变送器.测量类型
与测量范围有多种选择,我们可以根据自己的需要来配置信号类型范围,但一定
要注意应于硬件量程卡标记的字母所一致,否则会导致错误.
3组态编译与下装
完成硬件配置,模块参数设置的工作后,就可以进行硬件下装了,点击下装工具框,完成编译和下装过程.注意在硬件下装过程中,需将CPU莫块上的模式选择开关打到STOP位置,否则硬件下装无法完成•逻辑程序下装则无需此操作可在线下装•如要清除下装到CUP中的系统和程序参数可以长按CPU上MRESF复位开关,CPU回到初始状态.也可在S7管理器窗口中PLC栏选择RESET/CLEA项清除,重启•当下装完成后CPU或者其他模块的SF出现红灯时,则表示硬件或软件错误,系统无法正常运行,修改参数、程序重新下装,直到SF灯熄灭,下装完成.
3程序编程:
S7主要提供3种编程语言供所选择丄AD(梯形图语言),STL(语句表语言),FBD(功能块语言),我们主要学习LAD语言,LAD形象直观,易学易懂,逐步成为PLC编程语言的第一选择.
1语言的结构形式与数据类型
一条LAD语句由一个操作码和一个操作数组成,操作数由表示符和参数组成操作码执行要定义的功能,它告诉CPU该做什么;操作数提供为执行该操作所需要的信息,它告诉CPU用什么去做.
10,0
14——II——_C〉
I00I01
h~-0-~
图中—訐,TI,匚•这些是操作码,告诉我们所要执行的功能」0.0,l0.1,Q4.0为操作数,其中I为操作符,0.0,0.1,4.0为参数.
操作符就是前面所讲的系统存储器中的各个存储区的标识作为主标识符:
I,Q(过程映象输入输出)M(内部存储器标志位存储区)T(定时器存储区)C(计算器存储区)…等.助标识符有B(字节8位),W(字,16位),B(双字32位).
参数表示系统给SM模块分配的地址(前面硬件组态时系统给SM模块所分配的地址),和系统内部存储器地址,例如CPU315-2D的工作存储区为64KB,则内部存储器地址最大为64*1024=65536BIT,即最大为位地址为:
M65535.7
由此可以看出上图的功能表示为:
(I0.0=“0”ANDI0.1=“1”)0R(I0.0=“1”ANDI0.1=“0”),则输出Q4.0为“1”。
以下是S7中基本的数据类型,我们在编写逻辑程序时一定要注意数据转换后的类型,使用正确的数据类型.
STEP7中常用的基本数据类型
类型和描述
以位计的长度
格式选项
范围和计数法
(最低到最高值)
实例
B00L
(位)
1
布尔文本
「RUE/FALSE
TRUE
BYTE
(字节)
8
十六进制的数字
B#16#0到B#16#FF
LB#16#10
LBYTE#16#10
WORD
(字)
16
二进制的数字
十六进制的数字
BCD十进制无符号数字
2#0到2#1111_1111_1111_111
W#16#0到W#16#FFFF
C#0到C#999
B#(0.0)到B#(255.255)
L2#0001_0000_0000_0000
LW#16#1000
LW0RD#16#1000
LC#998
LB#(10,20)
LBYTE#(10,20)
DWORD
(双字)
32
二进制的数字
十六进制的数字
十进制无符号数字
2#0到
2#1111_1111_1111_1111111_1111_1111_1111DW#16#0000_0000U
DW#16#FFFF_FFFFB#(0,0,0,0)到
B#(255,255,255,255)
2#1000_0001_0001_1000_
1011_1011_0111_1111
LDW#16#00A2_1234
LDWORD#16#00A2_1234
LB#(1,14,100,120)
LBYTE#(1,14,100,120)
INT
(整数)
16
十进制有符号数字
-32768--32767
L1
DINT
(整数,
32位)
32
十进制有符号数字
L#-2147483648到
L#2147483647
LL#1
REAL
(浮点数)
32
IEEE
浮点数
上限:
3.402823E+38
下限:
1.175495E-38
L1.234567E+13
S5TIME(SIMATIC
时间)
16
S7时间
以步长
10毫秒(默认值)
S5T#0H_0M_0S_10隔S
S5T#2H_46M_30S_0MS
S5T#0H_0M_0S_0MS
LS5T#0H_1M_0S_0MS
L
S5TIME#0H_1H_1M_0S_0‘
2程序块的介绍
S7将可以将用户编写的程序和程序所需的程序放置在块中,可以使单个的程序标准化,通过在块内或块之间类似子程序的调用,使用户程序结构化,可以简化程序组织,使程序易于修改调试.用户可以自己编写创建所需的块,S7中也定义了一些标准程序块供用户调用.
OB块:
组织块,程序中必须存在有自由循环组织块,用于循环处理,是用户程序中的主程序,系统在每一次循环中自动扫描一次0B1块,执行0B1中的程序.
FC块:
功能,用于用户自行编写的程序作为子程序在别的块中调用,FC块没
有背景数据库,所以没有固定的存储区•
FB块:
功能块,功能与FC块相似,FB块有背景数据库.
DB块:
背景数据库用于存放程序变量数据的数据区,DB块的最大容量与CPU
的型号有关.
程序块
功能简要槪述
;组织块(OB)
是CPUjft作系统与HJ户程序的接口,被操作系统rt动调用
系统函数块(SFB)与系统声数(SFC)
SFB.SFC第成于S7CPU収通过烟用可以访河一些載婴的系统功fig,如CPU时钟,CPU诊断缓冲乩
函数块(FB)
FB帝以使用八编写的隔数带有“存储区肝
嗨数(FC)
FC叮作为子裡序,也可作为经曲開用的两数使用
柠呆数拯块
(InstanceDB)
訂駅DB块9F民SFB]幼|湘舐任调川时H动住城,存SFB屮所冇的数据,并作为它们的"存備区.o
数抓块(DB)
DE块存熊用门数拥,勺背景DB相比,D13块格式市用门定义®團片上链于im.匚HUABDMIC.OOM
我们可以编写obi主程序块,调用一个”发动机控制”的fb1块,来分别控制汽油机和柴油机,控制参数存储在背景数据块db1和db2中,控制汽油机时调用fb1和“汽油机数据”背景数据块db1,控制柴油机时调用fb2和“柴油机数据”背景数据块db2,此外主程序中还有为“风扇控制”的共享功能fc1供汽柴油机使用•
下图中功能块FB1的梯形图程序,SR指令块用来控制发动机的运行,输入变量QD和TZH分别是启动命令和停车命令。
GZH为故障信号,无故障时为0,有故障为1,当QD言号为1时发动机启动,因为QD为瞬时信号,又马上变为0,SR输出保持先前状态,YUN灿1,只到触发器R端为1时,发动机停车。
比较模块用来监视转速,如果满足条件,输出信号SPEED_DA被置为1。
这就是fb1功能块所要实现的功能。
^LAD/STL/JLJLD/STL/FBD-[FBI—•发动机控ST—S7_P£Q15\SIlAriC300Staticn\CP(T314(1.)\a.AFB11
口已山时匕O(.lieE.JlIJiisert屯eb班]£ler|_ind.0HH“p
m诽叫□屈釧副剖芈囘门|“(-1*a片剛!
丨叮ta酉劇卄|叶:
圏」「樽I
.」也ContentsOf;pEnvitonikeirt\Interface-\IN'
Fc1功能风扇控制程序,如下图所示,我们用到的是一条定时程序来控制风
扇,启动发动机YUN刈1同时启动风扇FSH当发动机停车后,风扇继续运行2秒种后停止.
光有功能和功能块是不行的,我们需要在主程序obi中调用这些块来实现我
们所需要的功能。
Obi通过两次调用fbi来实现对汽油机和柴油机的控制
O-fain^dii^xri.-irL^buf,£L«h㉔Ilranfandcnr^nlp
□罔学(dal1Ji1|_-|心口划创L.ICE-
Ld1也.
^LAD/STL/FBD[OBI
S7Prol5\SIlATIC300StatiDn\CriT314
(1)-\OB1j
CycleEcecutian
每次在主程序中调用fb块时,都会成一个背景数据块,下图是db1的图示,
可以存储表内各项参数的数据
l-lfr
Aditeu
1Ded^rathn
NAhM
w
[MuiYdLie
AdbuJivdue
GturmM
[
j]m
QD
BOOL
FALSE
FALSE
起騒制
2
0-.1]in
TZK
KML
FALSE
FALSE
悴止控
3
0»2in
■3IK
BOOL
FALSE
FALSE
葩障发空
4
2-1)in
SPEED_ACT
IKT
0
<0
5
札01out
YUNJ
BOOL
FAL'SE
FALSE
运行惟号
百
«tout
SPEED_DAD
BOOL
FXL强
FALSE
連竝到
乩Dstat
3PEEDYUSH
m
L20O
L25U
Dfctb.bl^ckEditFLCDebugYi**1VindoirK«lp
圧弟日僅刃C苫嗨睫I!
疋蕾盘•加松
j®DBI
S7_FrDlE\5IIiTI匚300Station\CP(j3I4Cl)
N1JY1
OTh*dtftuli.叭加b-t«tuiE«lh«rtltwmttytt^®trd^ttvklkL
offlh^A
以上介绍可以使我们清楚的了解到一个程序的结构,运行过程和块的功能用
对于需要进行累计计算的参数来说,需要引入中断的概念,s7提供给我们不同的组织块,ob1是最后重要的组织块,它总是在上一循环结束时启动,所以ob1在系统中总是被循环调用的。
系统还提供了其他的中断组织块供用户使用,有ob10时间中断,ob20延时中断,ob35循环中断,OB40硬件中断…等。
S7提供了一讴歌以固定间隔