教你一步一步吧学STEP.docx
《教你一步一步吧学STEP.docx》由会员分享,可在线阅读,更多相关《教你一步一步吧学STEP.docx(41页珍藏版)》请在冰豆网上搜索。
教你一步一步吧学STEP
STEP7基础教程
第一章STEP7的基础
1.1/.STEP7的安装和授权(略)
1.2/.STEP7的介绍
1.3/.SIMATIC管理器
1.4/.硬件组态
1.5/.仿真软件S7-PLCSIM的应用第二章STEP7中程序对象
2.1/.源文件夹
2.2/.软件块
2.2.1’组织块
2.2.2FC
2.2.3FB
2.3/.编程一个多重背景数据块
2.4/.VAT:
变量表
2.5/.交叉参考表
第三章STEP7的编程
3.1/存储区域(地址范围参见具体的CPU手册
3.2/STEP7中基本数据类型以及使用常数的格式
3.3/STEP7中的时间
3.3.1.1/W#16#wxyz
3.3.1.2/S5T#aH_bbM_ccS_dddMS
3.3.2/、如果想通过上位或触摸屏对PLC中S5TIME类型的参数进行设定,
3.3.2.1/从上位机写整型数INT或实数REAL到PLC
3.3.2.2/如果使用WinCC作为上位软件
第四章S7-300/400PLC寻址方式
4.1.直接寻址
4.2.间接寻址
4.3.S7-300/400寻址方式图解
第五章S7-300/S7400的扩展
5.1、S7-300系统扩展
5.2、S7-400系统扩展
IM460-0/461-0模式:
5.2.1.1/.发送模块指示灯与状态:
5.2.1.2/.接收模块指示灯与状态
5.2.2.1/、发送模块指示灯与状态
5.2.2.2/接收模块指示灯与状态
5.2.3/、IM460-3/IM461-3模式:
5.2.3.1/发送模块指示灯与状态
5.2.3.2/接收模块指示灯与状态:
5.2.4/IM460-4/IM461-4模式:
5.2.4.1/发送模块指示灯与状态:
5.2.4.2/接收模块指示灯与状态:
5.2.5/用于连接S5模块的扩展机架
5.2.5.1/IM462-3指示灯
5.2.5.2/接口选择开关:
5.2.5.3/电缆长度选择开关
第六章S7--400之间通过以太网通讯实例
6.1/网络配置图
6.2/PLC站配置
PLC1#系统配置方框图
6.2.2/2#、3#、4#、5#PLC配置方框图
6.3/STEP7中的硬件及网络组态
选择连接类型
第七章S7300之间通过MPI通讯实例(通过全局数据包)
7.1/网络构成
7.2/硬件组态
cp342-5做从站为例)
第一章STEP7的基础
1.1/.STEP7的安装和授权(略)
1.2/.STEP7的介绍
使用STEP7软件,可以在一个项目下生成你的S7程序并监视和控制你的控制对象。
在S7程序中通过地址寻址I/O模板。
1.3/.SIMATIC管理器
1.4/.硬件组态
基本步骤:
RACK(0)
插槽1:
电源模板或为空
插槽2:
CPU模板
插槽3:
接口模板或为空
插槽4~11:
信号模板、功能模板、通讯模板或为空
RACK(1~3)
插槽1:
电源模板或为空
插槽2:
为空
插槽3:
接口模板
插槽4~11:
信号模板、功能模板、通讯模板(如为IM365,则该机架上不能插入CP模板)或为空
S7-400PLC是由一个中央控制机架CR以及一个或多个扩展机架ER组成(当然也可以不用扩展机架),如你的CR上没有足够的插槽安装你的模板或者你希望独立于CR操作一些信号模板时,在距离允许范围内,可以考虑选用ER。
常用的S7400机架
UR1(18SLOT)和UR2(9SLOT):
通用机架,既可以用作中央控制器也可用做扩展单元。
当UR1或UR2用作中央控制器时:
1’必需组件:
一个电源模块和一个CPU
2’能以集中式扩展(最大为3m)或分布式扩展(最大为100m,S7EU)
3’扩展时需要发送接口模板,最多可插入6个接口模板。
4’最多可连接21个扩展单元。
CR2机架:
用于有分割的中央控制器(18SLOT,二个CPU在单一机架内彼此独立地并行运行)可用于SM模板,接收IM,电源模板。
1.必需组件:
一个电源模块和两个CPU
2.以集中式扩展(最大为3m)或分布式扩展(最大为100m,S7EU)
3.扩展时需要发送接口模板,最多可插入6个接口模板。
4.最多可连接21个扩展单元。
ER1(18SLOT)和ER2(9SLOT)机架:
用于有信号模板的扩展单元。
没有C总线。
UR2-H机架;用于S7-400H。
注;集成在所有机架上的并行的I/O总线用于CPU与信号模板、功能模板进行高速数据交换。
除ER1和ER2外所有机架上都有一个用于大量数据交换的串行通讯总线(K总线)。
UR1(用做CR时)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
标准PS
冗余PS
CPU,M7-CPU
DI,DO,AI.AO
M7-FM
FM
CP
SENDIM
UR1(用做ER时)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
标准PS
冗余PS
DI,DO,AI,AO
M7-FM
FM,CP
接收IM
ER1机架
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
标准PS
冗余PS
DI,DO,AI,AO
接收IM
CR2机架
Segment1
Segment2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
标准PS
冗余PS
CPU1
CPU2
DI,DO,AI,AO
M7-FM
FM
CP
SENDIM
硬件组态中模块的参数设置
模拟量输入模板:
A.两线制电流和四线制电流都只有两根信号线,它们之间的主要区别在于:
两线制电流的两根信号线既要给传感器或者变送器供电,又要提供电流信号;而四线制电流的两根信号线只提供电流信号。
因此,通常提供两线制电流信号的传感器或者变送器是无源的;而提供四线制电流信号的传感器或者变送器是有源的,因此,当您将您的模板输入通道设定为连接四线制传感器时,PLC只从模板通道的端子上采集模拟信号,而当您将模板输入通道设定为连接二线制传感器时,PLC的模拟输入模板的通道上还要向外输出一个直流24V的电源,以驱动两线制传感器工作。
要想正确设置模拟量输入模块的量程,您必须首先确定传感器或者变送器的信号类型。
B.不同类型传感器到SM331-7Kx0x的接线
B.a、和电压传感器的连接
B.b、和2线电流传感器的连接
B.c、和4线电流传感器的连接
B.d、电阻型温度计(如PT100)和电阻的连接
-
对于二线回路,将M+与IC+跨接,M-与IC-跨接
对于三线回路,将M-与IC-跨接
SM331SF灯亮表明硬件故障。
可能的原因如下:
模板所需24VDC电源未正确接入;前连接器未插到位;总线连接器未连好;有硬件中断产生(断线、超限),量程卡所插的方向与HWConfig中的设置不符,等等。
硬件组态的下载
软件的下载和上传
1.5/.仿真软件S7-PLCSIM的应用
第二章STEP7中程序对象
0’符号表symbols
在STEP7程序中,你可以寻址I/O信号,存储位、计数/定时器,数据块和功能块。
在程序中,可以用绝对地址来访问这些地址(如I0.0,Q0.0,M0.0,DB0,FB1,FC1),也可以用符号地址,这会使你的程序具有很强的可读性。
符号表中定义的变量是全局变量,可供所有的逻辑块使用。
全局符号名在整个用户程序中必须是唯一的。
在OB、FC、FB中TEMP里声明的变量为局部变量,局部变量只是在它所在的块中有效。
符号名不能超过24个字符。
2.1/.源文件夹
编写STL源文件的基本信息导出源文件
生成STL源文件导出源文件
将软件块模式插入STL源文件
将源代码插入STL源文件
检查STL源文件的一致性
编译STL源文件
从软件块生成STL源文件
2.2/.软件块
组织块(OB)
函数块(FC)
功能块(FB)
系统函数块(SFC)
系统功能块(SFB)
2.2.1’组织块
组织块是CPU的操作系统与用户程序之间的接口。
用户可以通过以下方法利用OB运行指定的程序组件
●当启动CPU时
●当循环运行或在设置的时间间隔时
●在特定的时刻或特定的日期
●在运行了一段指定的时间后
●当错误发生时
●当硬件中断发生时
组织块的执行还根据其分配的优先级而定。
OB1:
OB1的循环运行从启动结束时开始。
用户可以OB1内调用功能块(FB,SFB)或函数(FC、SFC)。
OB1在所有运行时监视的组织块中具有最低的优先级。
除了OB90,所有其他的OB均可将OB1的运行中断。
以下事件将使操作系统调用OB1:
●启动结束
●OB1运行结束(前一个循环)
OB1的运行结束后,操作系统将过程映像输出表PIQ写入外围模块并发送所有的共享数据。
在重新启动OB1前,操作系统更新过程映像输入表并从CPU接收所有的共享数据。
S7提供了一种监视最大扫描循环时间的方法以确保最大的响应时间。
如果用户程序超过了OB1的最大循环时间,操作系统将调用OB80(时间故障组织块)。
如果OB80未被编程,CPU将切换STOP模式。
OB30~OB38:
循环中断,利用这些组织块,可以使程序在相等的时间间隔内开始执行。
注意:
用户必须保证每个循环中断组织块的运行时间比时间间隔短。
如果由于在一个循环中断组织块完成前到达时间间隔而导致其再次准备执行,就将启动时间错误组织块(OB80)后将调用产生错误的循环中断组织块。
OB40~OB47:
硬件中断组织块。
当模块触发了一个硬件中断后,操作系统将识别插槽并决定相应的硬件中断组织块。
如果该组织块比当前活动的优先级高,则将被启动。
OB80:
时间故障组织块
例如超过了扫描循环时间或当前一个组织块还没有运行完毕而有产生了调用同一个循环中断组织块的事件时,操作系统将调用OB80,如OB80未被编程,则CPU将切换到STOP模式。
OB81:
电源故障组织块
CPU操作系统在电源(S7-400)或备用电池发生故障时会调用OB81,如OB81未被编程,CPU不进入STOP模式。
OB82:
诊断中断组织块。
当具有诊断功能的模块发现错误时,CPU对输出和输入事件发出诊断中断。
该操作系统调用OB82。
如OB82未被编程,则CPU将切换到STOP模式。
OB83:
插入/删除模块中断组织块
在运行模式时移走组态模块时将会启动OB83。
如OB83未被编程,则CPU将切换到STOP模式。
OB84:
CPU硬件故障组织块
当CPU发现多点接口网络,通信总线,或分散I/O的连接发生错误时,该操作系统调用OB84。
如OB84未被编程,则CPU将切换到STOP模式。
OB85:
优先级错误组织块
如OB85未被编程,则CPU将切换到STOP模式。
OB86:
基板故障组织块
如OB86未被编程,则CPU将切换到STOP模式。
OB87:
通信错误组织块
如OB87未被编程,则CPU将切换到STOP模式。
OB80~OB87称为异步错误中断。
OB121:
编程错误组织
当产生一个导致程序运行错误的事件,CPU的操作系统将调用OB121。
例如,如果用户在程序中调用一个未下载到CPU的块,OB121将被调用。
OB122:
I/O访问故障组织块
当访问模块内的数据时发生错误,CPU的操作系统将调用OB122。
一点建议:
为了避免在发生一些非严重错误时CPU频频进入STOP状态,建议在项目中一般将OB80~OB87,OB121、OB122插入BLOCK文件夹并下载到PLC中。
2.2.2FC
2.2.3FB
2.3/.编程一个多重背景数据块
2.4/.VAT:
变量表
2.5/.交叉参考表
第三章STEP7的编程
3.1/存储区域(地址范围参见具体的CPU手册)
输入字节IB
输入字IW
输入双字ID
输出位Q
输出字节QB
输出字QW
输出双字QD
存储位M
存储字节MB
存储字MW
存储双字MD
外设输入字节PIB
外设输入字PIW
外设输入双字PID
外设输出字节PQB
外设输出字PQW
外设输出双字PQD
T
C
数据位DBX
数据字节DBB
数据字DBW
数据双字DBD
临时本地数据位L
临时本地数据字节LB
临时本地数据字LW
临时本地数据双字LD
什么叫本地数据:
本地数据区域是包含在FB或FC中使用的临时数据。
这些数据也被称为动态本地数据。
他们用做中间暂存器。
当逻辑块FB或FC块结束时,这些数据丢失。
数据是包含在本地数据堆栈中。
以字节为基准的存储器单元
MW0(高字)MW2(低字)
MB0(高字节)
MB1(低字节)
MB2(高字节)
M3(低字节)
MD0
注意:
当使用宽度为字或双字的绝对地址时,应保证没有生成任何重叠的字节分配。
3.2/STEP7中基本数据类型以及使用常数的格式。
类型和说明
位数
格式选项
范围和数字记数法
举例
BOOL
1
布尔文本
TRUE/FALSE
TRUE
BYTE
(字节)
8
十六进制
B#16#0~B#16#FF
B#16#10或
byte#16#10
WORD
(字)
16
十六进制
w#16#0~w#16#FFFF
W#16#1000或
word#16#1000
DWORD
(双字)
32
十六进制
DW#16#00000000~DW#16#FFFFFFFF
DW#16#00AA1234或
Dword#16#00AA1234
INT(整数)
16
带符号的十进制
-32767~32768
1
DINT(双整数)
32
带符号的十进制
L#1
REAL(浮点数)
32
浮点数
上限:
+3.402823e+38或-3.402823e+38
1.23E+13
下限:
+1.175495e-38或-1.175495e-38
S5TIME
(SIMATIC时间)
16
S5时间,以10ms为单位(为缺省值)
S5T#0H0M0S0MS~
S5T#2H10MS
S5T#2H46M30S0MS
TIME
(IEC时间)
32
IEC时间,以1ms为单位。
T#-24D-20H-31M-23S-648MS~
T#24D-20H-31M-23S-674MS
T#0D1H1M0S0MS
DATE
(IEC日期)
16
IEC日期,以1日为单位
TIME-OF-DAY
(日计时
32
日计时,以1-ms为单位
TOD#0:
0:
0.0~TOD#23:
59:
59:
999
TOD#1:
10:
3.3
CHAR(字符)
8
字符
‘A’等
‘B’
3.3/STEP7中的时间
3.3.1/、S5TIME(TimeDuration)的格式及访S5TIME的格式
S5TIME是用BCD码保存的,在数据存储区占用两个连续的字节。
下图给出的例子中时间值为127,时基为1秒。
当使用S5TIME时,定义数值的范围为0~999,而且要指明使用的时基。
时基指定了时间单位。
S5TIME时基及相应的时间范围如下:
时基
BCD码
时间范围
10ms
00
10ms-9s990ms
100ms
01
100ms-1min39s990ms
1s
10
1s-16min39s
10s
11
10s-2hr46min30s
您可以采用如下两种格式定义时间值:
∙3.3.1.1/W#16#wxyz
ow=时基(即时间间隔或精度)
oxyz=BCD格式的时间值
这种方式只能用于STL编程(但是可以通过中间变量转而给LAD编程赋值)。
∙3.3.1.2/S5T#aH_bbM_ccS_dddMS
oa=小时,bb=分钟,cc=秒,dd=毫秒
o这种情况下时基自动选择,数值为该时基下取整去尾到下一个较低值。
您可以输入的最大值为9,990秒,或2H_46M_30S。
3.3.2/、如果想通过上位或触摸屏对PLC中S5TIME类型的参数进行设定,有如下方法:
3.3.2.1/从上位机写整型数INT或实数REAL到PLC,首先该数值需包含以毫秒为单位的时间值,在写入PLC的数据存储区后,利用ITD(IntegertoDoubleInteger)或RND(RealtoDoubleIntegerwithRoundingOff)将该值转换为双整形,然后将该值写到类型为TIME的变量里,在程序中调用FC40,将TIME转换成S5TIME即可
3.3.2.2/如果使用WinCC作为上位软件,或上位软件支持32位带符号浮点数,可以从上位写32位带符号浮点数到PLC中定义为TIME的变量,然后在程序中调用FC40,将TIME转换成S5TIME即可。
A、FC33用于S5TIME到TIME的转换。
B、当使用数据类型DATE_AND_TIME(DT)时,将占用数据存储区的8个连续字节,以BCD码格式保存。
该数据类型范围如下:
DT#1990-1-1-0:
0:
0.0toDT#2089-12-31-23:
59:
59.999
C、STEP7中关于时间的常用的功能块
SFC0"SET_CLK"设置CPU时钟
·SFC1"READ_CLK"读出CPU时钟
∙FC3"D_TOD_DT"将DATE和TIME_OF_DAY(TOD)结合起来,转换成DATE_AND_TIME(DT)。
该功能块的管脚IN1必须在DATE#1990-01-01到DATE#2089-12-31范围内。
FC6"DT_DATE"从DATE_AND_TIME中取出DATE。
FC7"DT_DAY"从DATE_AND_TIME中取出thedayoftheweek,即星期几。
FC8"DT_TOD"从DATE_AND_TIME中取出时间。
第四章S7-300/400PLC寻址方式
4.1.直接寻址
4.2.间接寻址
32位指针,例如AI[MD0]
4.3.S7-300/400寻址方式图解
指针用来指向一个地址。
使用这种寻址方式的优点在于可以在程序运行过程中实现变址。
程序中用于存储器间接寻址的语句包含一个指令、一个地址标识符、以及一个偏移量(偏移量必须在方括号内给出)。
下面给出一个双字格式的指针的例子:
LP#8.7把指针值装载到累加器1
TI[MD2]把指针值传送到MD2
AI[MD2]查询I8.7的信号状态
=Q[MD2]给输出位Q8.7赋值
程序中采用这些寻址方式的语句包含一个指令以及下列内容:
地址标识符、地址寄存器标识符、偏移量。
地址寄存器(AR1、AR2)及偏移量必须写在方括号内。
:
LP#8.7把指针值装载到累加器1
LAR1把指针从累加器1装载到AR1
AI[AR1,P#0.0]查询I8.7的信号状态
=Q[AR1,P#1.1]给输出位Q10.0赋值
偏移量0.0不起作用。
输出Q10.0等于8.7(AR1)加偏移量1.1。
结果是10.0,而不是9.8,参见指针格式。
在存储区域交叉寻址中,指针中包含指示存储区域的信息(例子中为I和Q)。
LP#I8.7把指针值及存储区域标识装载到累加器1
LAR1把存储区域I和地址8.7装载到AR1
LP#Q8.7把指针值和地址标识符装载到累加器1
LAR2把存储区域Q和地址8.7装载到AR2
A[AR1,P#0.0]查询输入位I8.7的信号状态
=[AR2,P#1.1]给输出位Q10.0赋值
偏移量0.0不起作用。
输出Q10.0等于8.