西门子S7300及400PLC控制系统Word文档格式.docx
《西门子S7300及400PLC控制系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《西门子S7300及400PLC控制系统Word文档格式.docx(50页珍藏版)》请在冰点文库上搜索。
(1).模块诊断功能
可以诊断出以下故障:
失压,熔断器熔断,看门狗故障,EPROM、RAM故障。
模拟量模块共模故障、组态/参数错误、断线、上下溢出。
(2).过程中断
数字量输入信号上升沿、下降沿中断,模拟量输入超限,CPU暂停当前程序,处理OB40。
[1]状态与故障显示LED
SF(系统出错/故障显示,红色):
CPU硬件故障或软件错误时亮。
BATF(电池故障,红色):
电池电压低或没有电池时亮。
DC5V(+5V电源指示,绿色):
5V电源正常时亮。
FRCE(强制,黄色):
至少有一个I/O被强制时亮。
RUN(运行方式,绿色):
CPU处于RUN状态时亮;
重新启动时以2Hz的频率闪亮;
HOLD(单步、断点)状态时以0.5Hz的频率闪亮。
STOP(停止方式,黄色):
CPU处于STOP,HOLD状态或重新启动时常亮。
BUSF(总线错误,红色)。
图2-4CPU318-2的面板
[2]模式选择开关
(a)RUN-P(运行-编程)位置:
运行时还可以读出和修改用户程序,改变运行方式。
(b)RUN(运行)位置:
CPU执行、读出用户程序,但是不能修改用户程序。
(c)STOP(停止)位置:
不执行用户程序,可以读出和修改用户程序。
(d)MRES(清除存储器):
不能保持。
将钥匙开关从STOP状态搬到MRES位置,可复位存储器,使CPU回到初始状态。
复位存储器操作:
通电后从STOP位置扳到MRES位置,“STOP”LED熄灭1s,亮1s,再熄灭1s后保持亮。
放开开关,使它回到STOP位置,然后又回到MRES,“STOP”LED以2Hz的频率至少闪动3s,表示正在执行复位,最后“STOP”LED一直亮。
某些CPU模块上有集成I/O。
PLC使用的物理存储器:
RAM,ROM,快闪存储器(FlashEPROM)和EEPROM。
2、S7-300的输入/输出模块
输入/输出模块统称为信号模块(SM)。
前连接器插在前盖后面的凹槽内。
一个编码元件与之啮合,该连接器只能插入同类模块。
两线式接近开关的漏电流小于输入模块允许的静态电流,汇点输入的电流流进输入模块,反之为源输入电路。
SM323是S7-300的数字量输入输出模块,8DI/8DO,16DI/16DO。
表2-11SM331模拟量输入模块的模拟值
范围
双极性
百分比
十进制
十六进制
±
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
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
11.852V
22.96mA
11.759V
22.81mA
0mA
4mA
-17.593%
-4864
ED00H
-3.52mA
1.185mA
模拟值的精度小于15位,则模拟值左移,左对齐。
【例】压力变送器的量程为0~10MPa,输出信号为4~20mA,模拟量输入模块的量程为4~20mA,转换后的数字量为0~27648,设转换后得到的数字为N,试求以kPa为单位的压力值。
解:
0~10MPa(0~10000kPa)对应于转换后的数字0~27648,转换公式为
P=10000N/27648(kPa)
注意在运算时一定要先乘后除,否则可能会损失原始数据的精度。
图2-11量程卡
3、电源模块
PS307电源模块将120/230伏交流电压转换为24V直流电压,为S7-300/400、传感器和执行器供电。
输出电流有2A、5A或10A3种。
电源模块安装在DIN导轨上的插槽1。
图2-13S7-300的浮动参考电位
某些大型工厂(例如化工厂和发电厂)为了监视对地的短路电流,可能采用浮动参考电位,可以将M点与接地点之间的短接片去掉。
二、S7-400系列PLC的硬件组成
1系统结构
模块的尺寸为25(宽)×
290(高)×
210(深)mm。
图2-14S7—400PLC
集中式扩展方式适用于小型配置或一个控制柜中的系统。
CC和EU的最大距离为1.5m(带5V电源)或3m(不带5V电源)。
分布式扩展适用于分布范围广的场合,CC与最后一个EU的最大距离为100m(S7EU)或600m(S5EU)。
用ET200分布式I/O可以进行远程扩展,用于分布范围很广的系统。
通过CPU中的PROFIBUS-DP接口,最多连接125个总线节点。
使用光缆时CC和最后一个节点的距离为23km。
2、S7-400的特点
(1)运行速度高,S7416执行一条二进制指令只要0.08s。
(2)存储器容量大,例如CPU417-4的RAM可以扩展到16MB,装载存储器(FEPROM或RAM)可以扩展到64MB。
(3)I/O扩展功能强,可以扩展21个机架,S7417-4最多可以扩展262144个数字量I/O点和16384个模拟量I/O。
(4)有极强的通信能力,集成的MPI能建立最多32个站的简单网络。
大多数CPU集成有PROFIBUS-DP主站接口,用来建立高速的分布式系统,通信速率最高12Mbit/s。
(7)集成的HMI服务,只需要为HMI服务定义源和目的地址,自动传送信息。
3、机架与接口模块
(1)通用机架UR1/UR2
(2)中央机架,CR2是18槽,一个电源模块和两个CPU模块。
CR3是4槽的中央机架,有I/O总线和通信总线。
图2-16机架与总线
(3)扩展机架ER1/ER2
ER1和ER2是扩展机架,分别有18槽和9槽,只有I/O总线。
(4)UR2-H机架
UR2-H机架用于在一个机架上配置一个完整的S7-400H冗余系统,每个均有自己的I/O。
两个电源模块和两个冗余CPU模块。
4、S7-400的通信功能
MPI、PROFIBUS-DP、工业以太网或AS-i现场总线,周期性自动交换I/O模块的数据。
或基于事件驱动,由用户程序块调用。
5、冗余设计的容错自动化系统S7-400H
S7SoftwareRedundancy(软件冗余性)可选软件在S7-300和S7-400标准系统上运行。
生产过程出现故障时,在几秒内切换到替代系统。
S7-400H主要器件都是双重的:
CPU、电源模块以及连接两个CPU的硬件……
使用分为两个区(每个区9个槽)的机架UR2H,或两个独立的UR1/UR2。
CPU414-4H或CPU417-4H,一块PS407电源模块。
同步子模块用于连接两个CPU,由光缆互连。
每个CC上有S7I/O模块,也可以有扩展机架或ET200M分布式I/O。
中央功能总是冗余配置的,I/O模块可以是常规配置、切换型配置或冗余配置。
可以采用冗余供电的方式。
S7-400H可以使用系统总线或点对点通信,支持PROFIBUS或工业以太网的容错通信。
6、S7-400H冗余控制PLC的工作原理
S7-400H采用“热备用”模式的主动冗余原理,在发生故障时,无扰动地自动切换。
两个控制器使用相同的用户程序,接收相同的数据,两个控制器同步地更新内容,任意
一个子系统有故障时,另一个承担全部控制任务。
(1)、安全型自动化系统S7-400F/FH
[1]S7-400F:
安全型自动化系统,出现故障时转为安全状态,并执行中断。
[2]S7-400FH:
安全及容错自动化系统,如果系统出现故障,生产过程能继续执行。
S7-400F/FH使用标准模块和安全型模块,整个工厂用相同的标准工具软件来配置和编程。
PRFISafePROFIBUS规范允许安全型功能的数据和标准报文帧一起传送。
(2)、多CPU处理
S7-400中央机架上最多4个具有多CPU处理能力的CPU同时运行。
这些CPU自动地、同步地变换其运行模式。
适用场合:
程序太长,存储空间不够,系统可以分。
通过通信总线,CPU彼此互连。
(3)、输入/输出模块
S7-400的信号模块地址是在STEP7中自动生成的。
用户可以修改。
S7-400的模拟量模块起始地址从512开始,同类模块的地址按顺序连续排列。
第三节S7-300/400的编程语言与指令系统
一、S7-300/400的编程语言
1.1PLC编程语言的国际标准
IEC61131是PLC的国际标准,1992~1995年发布了IEC61131标准中的1~4部分,我国在1995年11月发布了GB/T15969-1/2/3/4(等同于IEC61131-1/2/3/4)。
IEC61131-3广泛地应用PLC、DCS和工控机、“软件PLC”、数控系统、RTU等产品。
定义了5种编程语言
1)指令表IL(Instructionlist):
西门子称为语句表STL。
2)结构文本ST(Structuredtext):
西门子称为结构化控制语言(SCL)。
3)梯形图LD(Ladderdiagram):
西门子简称为LAD。
4)功能块图FBD(Functionblockdiagram):
标准中称为功能方框图语言。
5)顺序功能图SFC(Sequentialfunctionchart):
对应于西门子的S7Graph。
图3—1PLC的编程语言
1.2STEP7中的编程语言
梯形图、语句表和功能块图是3种基本编程语言,可以相互转换。
1).顺序功能图(SFC):
STEP7中的S7Graph
2).梯形图(LAD)
直观易懂,适合于数字量逻辑控制。
“能流”(Powerflow)与程序执行的方向。
3).语句表(STL):
功能比梯形图或功能块图强。
4).功能块图(FBD):
“LOGO!
”系列微型PLC使用功能块图编程。
5).结构文本(ST):
STEP7的S7SCL(结构化控制语言)符合EN61131-3标准。
SCL适合于复杂的公式计算、复杂的计算任务和最优化算法,或管理大量的数据等。
6).S7HiGraph编程语言
图形编程语言S7HiGraph属于可选软件包,它用状态图(stategraphs)来描述异步、非顺序过程的编程语言。
7).S7CFC编程语言
可选软件包CFC(ContinuousFunctionChart,连续功能图)用图形方式连接程序库中以块的形式提供的各种功能。
8).编程语言的相互转换与选用
在STEP7编程软件中,如果程序块没有错误,并且被正确地划分为网络,在梯形图、功能块图和语句表之间可以转换。
如果部分网络不能转换,则用语句表表示。
语句表可供喜欢用汇编语言编程的用户使用。
语句表的输入快,可以在每条语句后面加
上注释。
设计高级应用程序时建议使用语句表。
梯形图适合于熟悉继电器电路的人员使用。
设计复杂的触点电路时最好用梯形图。
功能块图适合于熟悉数字电路的人使用。
S7SCL编程语言适合于熟悉高级编程语言(例如PASCAL或C语言)的人使用。
S7Graph,HiGraph和CFC可供有技术背景,但是没有PLC编程经验的用户使用。
S7Graph对顺序控制过程的编程非常方便,HiGraph适合于异步非顺序过程的编程,CFC适合于连续过程控制的编程。
二、S7-300/400CPU的存储区
2.1数制
1).二进制数
二进制数的1位(bit)只能取0和1这两个不同的值,用来表示开关量的两种不同的状态。
该位的值与线圈、触点的关系。
ON/OFF,TURE/FALSE。
二进制常数:
2#1111_0110_1001_0001。
2).十六进制数
十六进制的16个数字是0~9和A~F,每个占二进制数的4位。
B#16#,W#16#,DW#16#,W#16#13AF(13AFH)。
逢16进1,例如B#16#3C=3×
16+12=60。
3).BCD码
BCD码用4位二进制数表示一位十进制数,十进制数9对应的二进制数为1001。
最高4位用来表示符号,16/32位BCD码的范围。
BCD码实际上是十六进制数,但是各位之间逢十进一。
296对应的BCD码为W#16#296,或2#0000001010010110。
2#0000000100101000对应的十进制数也是296,对应的十进制数为
。
2.2基本数据类型
图3-5位数据的存放
1).位(bit):
位数据的数据类型为BOOL(布尔)型。
I3.2的意义。
2).字节(Byte)
3).字(Word)表示无符号数。
取值范围为W#16#0000~W#16#FFFF。
4).双字(DoubleWord)表示无符号数。
范围DW#16#0000_0000~DW#16#FFFF_FFFF。
5).16位整数(INT,Integer)是有符号数,补码。
最高位为符号位,为0时为正数,取值范围为32768~32767。
6).32位整数(DINT,DoubleInteger)最高位为符号位,取值范围为
2147483648~2147483647。
图3-6字节、字和双字
7).32位浮点数
浮点数又称实数(REAL),表示为1.m
,例如123.4可表示为1.234
根据ANSI/IEEE标准
浮点数=1.m
式中指数e=E+127(1≤e≤254),为8位正整数。
ANSI/IEEE标准浮点数占用一个双字(32位)。
因为规定尾数的整数部分总是为1,只保留尾数的小数部分m(0~22位)。
浮点数的表示范围为±
1.175495
~±
3.4028231038。
图3-7浮点数的结构
用很小的存储空间(4个字节)可以表示非常大和非常小的数。
PLC输入和输出的数值大多是整数,浮点数的运算速度比整数运算的慢。
L#为32位双整数常数,例如L#+5。
P#为地址指针常数,例如P#M2.0是M2.0的地址。
S5T#是16位S5时间常数,格式为S5T#aD_bH_cM_dS_eMS。
S5T#4S30MS=4s30ms,取值范围为S5T#0~S5T#2H_46M_30S_0MS(9990s),时间增量为10ms。
C#为计数器常数(BCD码),例如C#250。
8位ASCII字符用单引号表示,例如‘ABC’。
T#为带符号的32位IEC时间常数,例如T#1D_12H_30M_0S_250MS,时间增量为1ms。
DATE是IEC日期常数,例如D#2004-1-15。
取值范围为D#1990-1-1~D#2168-12-31。
TOD#是32位实时时间(Timeofday)常数,时间增量为1ms,例如TOD#23:
50:
45.300。
B(b1,b2)B(b1,b2,b3,b4)用来表示2个字节或4个字节常数。
2.3复合数据类型与参数类型
1).复合数据类型
通过组合基本数据类型和复合数据类型可以生成下面的数据类型:
(1)数组(ARRAY)将一组同一类型的数据组合在一起,形成一个单元。
(2)结构(STRUCT)将一组不同类型的数据组合在一起,形成一个单元。
(3)字符串(STRING)是最多有254个字符(CHAR)的一维数组。
(4)日期和时间(DATE_AND_TIME)用于存储年、月、日、时、分、秒、毫秒和星期,占用8个字节,用BCD格式保存。
星期天的代码为1,星期一~星期六的代码为2~7。
例如DT#2004-07-15-1230:
15.200为2004年7月15日12时30分15.2秒。
(5)用户定义的数据类型UDT(user-defineddatatypes)。
在数据块DB和逻辑块的变量声明表中定义复合数据类型。
2).参数类型
为在逻辑块之间传递参数的形参(formalparameter,形式参数)定义的数据类型:
(1)TIMER(定时器)和COUNTER(计数器):
对应的实参(actualparameter,实际参数)应为定时器或计数器的编号,例如T3,C21。
(2)BLOCK(块):
指定一个块用作输入和输出,实参应为同类型的块。
(3)POINTER(指针):
指针用地址作为实参。
例如P#M50.0。
(3)ANY:
用于实参的数据类型未知或实参可以使用任意数据类型的情况,占10个字节。
2.4系统存储器
1).过程映像输入/输出(I/Q)
在扫描循环开始时,CPU读取数字量输入模块的输入信号的状态,并将它们存入过程映像输入(processimageinput,PII)中。
在扫描循环中,用户程序计算输出值,并将它们存入过程映像输出表(processimageoutput,PIQ)。
在循环扫描结束时将过程映像输出表的内容写入数字量输出模块。
I和Q均以按位、字节、字和双字来存取,例如I0.0,IB0,IW0和ID0。
与直接访问I/O模块相比的优缺点。
2).内部存储器标志位(M)存储器区
3).定时器(T)存储器区
时间值可以用二进制或BCD码方式读取。
4).计数器(C)存储器区
计数值(0~999)可以用二进制或BCD码方式读取。
5).共享数据块(DB)与背景数据块(DI)
DB为共享数据块,DBX2.3,DBB5,DBW10和DBD12。
DI为背景数据块,DIX,DIB,DIW和DID。
6).外设I/O区(PI/PO)
外设输入(PI)和外设输出(PQ)区允许直接访问本地的和分布式的输入模块和输出模块。
可以按字节(PIB或PQB)、字(PIW或PQW)或双字(PID或PQD)存取,不能以位为单位存取PI和PO。
2.5CPU中的寄存器
1).累加器(ACCUx)
累加器用于处理字节、字或双字的寄存器。
S7-300有两个32位累加器(ACCU1和ACCU2),S7-400有4个累加器(ACCU1~ACCU4)。
数据放在累加器的低端(右对齐)。
2).状态字寄存器(16位)
首次检测位/FC,逻辑运算结果(RLO);
状态位STA不能用指令检测;
OR位暂存逻辑“与”的操作结果(先与后或);
算术运算或比较指令执行时出现错误,溢出位OV被置1。
OV位被置1时溢出状态保持位OS位也被置1,OV位被清0时OS仍保持为1,用于指明前面的指令执行过程中是否产生过错误。
条件码1(CC1)和条件码0(CCO)综合起来用于表示在累加器1中产生的算术运算或逻辑运算的结果与0的大小关系、比较指令的执行结果或移位指令的移出位状态。
二进制结果位(BR)在一段既有位操作又有字操作的程序中,用于表示字操作结果是否正确。
在梯形图的方框指令中,BR位与ENO有对应关系,用于表明方框指令是否被正确执行:
如果执行出现了错误,BR位为0,ENO也为0;
如果功能被正确执行,BR位为1,ENO也为1。
图3-8状态字的结构
图3-9传送指令
3).数据块寄存器:
DB和DI寄存器分别用来保存打开的共享数据块和背景数据块的编号。
三、位逻辑指令
位逻辑指令用于二进制数的逻辑运算。
位逻辑运算的结果简称为RLO。
3.1触点指令
1)触点与线圈
A(And,与)指令来表示串联的常开触点。
O(Or,或)指令来表示并联的常开触点。
AN(AndNot,与非)来表示串联的常闭触点,
ON