西门子Step 7 培训资料_第1页
西门子Step 7 培训资料_第2页
西门子Step 7 培训资料_第3页
西门子Step 7 培训资料_第4页
西门子Step 7 培训资料_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录页数据格式................................................................................................................................................2-4数据装入和传递..........…….....................................................................................................................5-7定时器概述...............................................................................................................................................8

定时器:接通延时(SD)......………….......................................................................................................

9定时器:带保持接通延时(SS)…......................................................................................10定时器:关断延时(SF)…………..........................................................................................................11定时器:脉冲(SP).............................................................................................................................12定时器:扩展脉冲(SE)….....................................................................................................................13定时器:位指令…................................................................................................................................14练习9.1:测试定时器................................................................................................................................15设置定时器...............................................................................................................................................16使用定时器...............................................................................................................................................17练习9.2:由两个定时器组成的时钟发生器...............................................................................................18练习9.3:由单定时器构成的闪烁频率发生器............................................................................................19练习9.4:三个风扇的监控程序..................................................................................................................20STEP

7

中的S5

计数器......................................................................................................................21计数器:位指令.....................................................................................................................................22计数器:功能图.......................................................................................................................................23比较指令................................................................................................................................................24练习9.5:分频器.......................................................................................................................................25练习9.6:瓶装线编程(循环灌装和瓶子计数)………...............................................................................26转换操作BCD<->整数….................................................................................................................27转换操作I->DI->REAL……............................................................................................................28数字逻辑操作.......................................................................................................................................29基本数学功能……………....................................................................................................................30练习9.7:数字操作例子............................................................................................................................31练习9.8:瓶装线编程(产量数据)…….......................................................................................................32练习9.9:瓶装线编程(包装数)....................................................................……………............................33移位操作(字/双字)…...........................................................................................................................34有符号整数右移位……..................................................................................................35双字循环移位操作...............................................................................................................................36Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation数字指令CMP

==IIN1IN2IW0IW2M0.0Q

5.7T4S_ODTTVSBCDBIRI0.7S5T#35sI0.5Q4.5Q

MW0QW6BCD-码单个的十进制数需要用4位二进制数进行编码。之所以需要4位二进制数表示是因为十进制的最大数9需要至少4位二进制数表示(1001)。为了用BCD码表示十进制数的0--9,使用与二进制数的相同表示方法。

4位二进制数共有16

可能组合,其中6种没有使用。这些组合称作伪4位二进制编码。整数数据类型INT

是整数(16

位)。符号位(第15位)表示所处理的是正数还是负数(“0”=正数,“1”=负数)。整数的表示范围是-32

768--+32

767。整数占用存储器的一个字。用二进制表示,一个整数的负数用其正数的补码表示。所有的位取反加“1”可以得到正数的补码。实数实数(也称浮点数)是用十进制数(例如0.339

或-11.32)表示的正数或负数。为了表示10的乘方次数,可以用幂的形式表示实数。例如:1024

可以表示为1.024E3。实数占用存储器的两个字,最高位是符号位。其余的位代表指数和尾数。实数的表示范围是:-3.402823

1038--3.402823

1038Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Information

and

Training

CenterKnowledge

for

Automation数据格式十进制

BCD数

数000001000120010300114010050101601107011181000910011011Siemens

AG

2000.

All

rights

r1es2erved.0158

70

0

0

0

0

0

0

0

1

1

0

0

1

1

0

1符号位数据类型128

+

64

+整型例如2058

+

4

+

1十进制值:31 24

23 1615 8

7

00

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0 0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0指数(8位) 尾数(23

位)数据类型实数例如45.6789符号位BCD

码十进制数的每一位用四个二进制位表示,因为最大的数是9,所以需要四位才能表示出来(1001)。从0到9的十进制数的BCD码表示与二进制数表示相同。整数数据类型INT

是整数(16

位)。符号(位15)表示数是正数或是负数(“0”=正数,“1”=负数)。16位整数的范围是-32

768~+32

767.在二进制格式中,整数的负数形式用正数的二进制补码表示。(二进制补码利用取反加1得到)负数的位格式,对零的位置加权求和,再加1,然后在前面放一个负号。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation数据格式

(16

位)BCD整数BCD000000010010100015

14

13

12

11

10

9

8

7 6

5

4 3

2

1

028

25

23=

=

=256

+ 32

+ 8

=

2960000001010010110296符号(+)1111010000010011413符号(-)W#16#F413111111100110001115

14

13

12

11

10

9

8

7 6

5

4 3

2

1

028

27=

=256+

128

+2423

22=

=

=

16+

8+

4

=

412-

(412

+

1)

=

-

413负数整数正数W#16#296+296-413

PGCPUMOVE(LAD/FBD)如果输入EN

有效,输入“IN”处的值拷贝到输出“OUT”。“ENO”与“EN”的状态相同。L

和T(STL)装载和传递指令的执行与RLO无关,数据通过累加器交换。

装载指令把右边源地址中的值写到累加器1,用“0”补充其它的位(共32位)。传递指令拷贝累加器中一些或所有内容到指定目的地址(见下页)。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation装载举例数据装入和传递(1)L

+5//16-位常数(整数)LL#523123//32-位常数(双整数)LB#16#EF//十六进制字节L2#0010

0110

1110

0011//16-位二进制值L3.14//32-位常数(实数)MOVEENINOUTENOMB55FBDLT+5MB5STLMOVEENOUTENOMB5LADIN5ACCU1

ACCU

1是CPU中的中央寄存器,当执行装入指令时,要装入的值被写入ACCU1;对于传输指令,要传输的值从ACCU1读出。数学功能、移位和循环移位的结果也放在ACCU1。ACCU2

当执行装载指令时,ACCU1中的旧值先移到ACCU2,在新值写入ACCU1前它先被清零。ACCU2也用于比较操作,数字逻辑操作、数学和移位操作。这些操作在后面详细介绍。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation数据装入和传递(2)00000000::L

W#16#CAFEL

W#16#AFFE:::XXXXXXXXCAFEAFFEACCU2内容ACCU1内容程序YYYYYYYYXXXXXXXX0000CAFE概述累加器是CPU中的辅助存储器,它们用于不同地址之间数据交换、比较和数学运算操作。S7-300

有两个32位的累加器,S7-400

有四个32位的累加器。装载装载指令把指定字节、字或双字中的内容装入ACCU1。传递当传递指令执行时,ACCU

1中的内容保持不变。相同的信息可以传到不同的目的地址。如果仅传递一个字节,只使用右边的8位(见图)。RLO

在LAD

和FBD中,可以使用MOVE的允许输入(EN)把装载和传递操作和RLO联系起来。在STL

中,总是执行装入和传递操作,而和RLO无关。但是,利用条件跳转指令来执行和RLO有关的装入和传递功能。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation数据装入和传递(3)MB

3MB

2MB

0MB

1装载T

QD

4QD

4QW

4QB

4传递ACCU

1内容程序31231570LMB

00

00000000

00000000

000

0

000MB

031231570LMW

00

00000000

0000000MB

0MB

131231570L

MD

0T

QW

4T

QB

4定时器功能在控制任务中,经常需要各种各样的定时功能。SIMATIC

S7可编程控制器为用户提供了一定数量的具有不同功能的定时器。例如,CPU314提供了128个定时器,分别为T0到T127。启动当“0”到“1”的信号变化作用在启动输入端(S)时,定时器启动,TV端用于设置定时时间。用STL编程时,紧跟在对启动条件的扫描操作(如:A

I

0.7)之后,为设置定时时间(如:L

S5T#35S)和启动定时器(如:SD

T4)复位作用在复位输入端(R)的信号(“1”有效)用于停止定时器。当前时间被置为“0”,定时器的触点输出端(Q)被复位。时间值输出定时器的实际时间值可分别从两个数字输出端BI(二进制数)和BCD(十进制数)上读出。触点输出定时器的触点输出端(Q)的信号状态(“0”或“1”),取决于定时器的种类及当前的工作状态。注意对定时器编程时,启动定时器的三条语句必不可少,而复位和扫描定时器输出的操作则可根据任务的要求取舍。用STL形式编写的程序要转换为FBD/LAD的形式,则每一个未赋值的输入和输出必须用NOP

0语句(空操作)来编写。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

AutomationLADSTL示例:

输入延时S_ODTALSDI0.7S5T#35sT4AI0.5RT4LT4TMW0LCT4TMW2AT4=Q8.5定时器概述启动当定时器的“S”输入端的RLO从“0”变到“1”时,定时器启动。只要输入S=1,定时器定时起作用,当到达指定的TV值时定时器启动。复位当复位输入R的RLO=“1”时,就清除定时器中的定时值,而且输出Q复位。数字输出当前时间值可以在BI输出端以二进制数读出,在BCD输出端以BCD码形式读出。当前时间值是TV的初值减定时器启动以来的经过时间。位输出当定时器时间到达,没有错误而且输入S=“1”时,输出“Q”的信号变为“1”。如果在定时时间到达前输入端S从“1”变到“0”,定时器停止运行,这时输出Q=“0”。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation定时器:接通延时(SD)LADT4S_ODTSTVBCDRI0.7I0.5S5T#35sQ4.5Q

BI

MW0QW6FBDQBITVRI0.5I0.7S5T#35sMW0T4S_ODTBCDQW6Q4.5=SSTLALSDARLTLCTA=I0.7S5T#35T4

I0.5

T4T4MW0T4QW6T4Q4.5S处的RLOR处的RLO定时器操作例如Q时间值:0...9990,01s

<--

0

00,1s

<--

0

11s

<--

1

010s

<--

1

1S5TIME数据类型启动当定时器的“S”输入端的RLO从“0”变到“1”时,定时器启动。即使定时过程中出现输入S=0,定时器从输入TV设定的时间开始定时。当定时器运行时,如果启动输入再次从“0”变到“1”定时器重新开始。复位当复位输入R的RLO=1时,就清除定时器中的定时值,而且输出Q复位。位输出当定时器时间到达而且没有错误,输出“Q”的信号变为“1”,和输入端S的信号无关。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation定时器:带保持接通延时(SS)STLI0.7S5T#35ALSSARLTLCTA=T4I0.5T4T4MW0T4QW6T4Q4.5LADT4S_ODTSSTVBCDRI0.7I0.5S5T#35sQ4.5Q

BI

MW0QW6FBDQTVRI0.5I0.7S5T#35sMW0T4S_ODTSBIBCDQW6Q4.5=SS处的RLOR处的RLO定时器操作例如Q启动当定时器的S输入端的RLO从“1”变到“0”时,定时器启动。当时间到达时,输出信号Q=0。当定时器运行时,如果输入S的状态从“0”变到“1”,定时器停止运行。下次当S从“1”变到“0”时,它重新启动。复位当复位输入R的RLO=1时,就清除定时器中的定时值,而且输出Q复位。如果两个输入(S

和R)都有信号“1”,不置位输出Q,直到优先级高的复位取消为止。位输出当输入端S

处的RLO从“0”变到“1”时,输出Q=1,如果输入S取消,输出Q

继续保持“1”,直到设定的时间到达。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation定时器:关断延时(SF)STLAI0.7LS5T#35sSFT4AI0.5RT4LT4TMW0LCT4TQW6AT4=Q4.5LADT4S_OFFDTSTVBCDRI0.7I0.5S5T#35sQ4.5Q

BI

MW0QW6FBDQTVRI0.5I0.7S5T#35sMW0T4S_OFFDTBIBCDQW6Q4.5=S例如S处的RLOR处的RLO定时器操作Q启动当“S”输入端从“0”变到“1”时,启动定时器,输出“Q”也置为“1”。复位下面情况下输出“Q”复位:•定时器定时时间到,或•启动信号从“1”变到“0”,或•复位输入“R”有信号“1”。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation定时器:脉冲(SP)FBDQTVRI0.5I0.7S5T#35sMW0T4S_PULSEBIBCDQW6Q4.5=SS处的RLOR处的RLO定时器操作例如QSTLAI0.7LS5T#3SPT4AI0.5RT4LT4TMW0LCT4TQW6AT4=Q8.5LADT4S_PULSESTVBCDRI0.7I0.5S5T#35sQ4.5Q

BI

MW0QW6启动当S

输入端的RLO从“0”变到“1”时,定时器启动。输出Q

被置位“1”。即使S

输入变到“0”,输出Q

仍保持“1”。当定时器正在运行时,如果启动输入信号从“0”变到“1”,定时器被再次启动。复位在如下情况下输出“Q”被复位:•定时器时间到,或•复位输入“R”有信号“1”。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation定时器:扩展脉冲(SE)LADFBDS处的RLOR处的RLO定时器操作例如QSTLI0.7ST4S_PEXTQQ4.5

I0.7ST4S_PEXTBIMW0ALSEI0.7S5T#3T4S5T#35sI0.5TVRBIBCDMW0QW6S5T#35sI0.5TVRBCDQQW6Q4.5=ARLTI0.5T4T4MW0LCT4TQW6A=T4Q4.5位指令所有的定时器也可以用简单的位指令启动,这种方法和前面讨论的定时器功能的相似处和不同之处如下:•相似处:-启动条件在“S”输入-指定时间值-复位条件在“R”输入-

信号响应在输出“Q”•不同(对LAD

和FBD):-不能检查当前时间值(没有BI

和BCD

输出)。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation定时器:位指令I0.0T4SDS5T#5sT4Q

4.0I0.1T4RNetwork

1:Network

2:Network

3:LAD&SDT4I0.0S5T#5s&Q

4.0=T4&I0.1TVT4RFBDI0.0S5T#5sALSDT4AT4=

Q

4.0AI0.1RT4STL练习完成上面幻灯片中的定时器功能图!Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation练习9.1:

测试定时器T4S_PEXTSTVRBIBCDQI

0.7S5T#5sI

0.5Q4.0I

0.7I

0.5Q4.0T4S_PULSES

BITV BCD

R

QI

0.7S5T#5sI

0.5Q

4.0I

0.7I

0.5Q4.05sT4S_ODTSTVRBIBCDQI

0.7S5T#5sI

0.5Q

4.0I

0.7I

0.5Q4.0T4S_ODTSSTVRBIBCDQI

0.7S5T#5sI

0.5Q

4.0I

0.7I

0.5Q4.0I

0.7I

0.5Q4.0T4S_OFFDTSTVRBIBCDQI

0.7S5T#5sI

0.5Q

4.0设置定时时间定时器的运行时间设定值由TV端输入,该值可以是常数(如:S5T#45S);也可以通过扫描输入字(如:拨轮开关IW2)来获得,或者通过处理输出字、标志字或数据字来确定。时间设定值的格式以常数形式输入定时时间,只需在字符串“S5T#”后以小时(h)、分钟(m)、秒(s)或毫秒(ms)为单位写入时间值即

可。例如,定时时间为2.5秒,则在TV端输入“S5T#2s_500ms”。而若以其它其它形式提供定时时间,就必须了解定时器字的数据格式。定时器字的长度是16位,从该字的右端起,头12位是时间值的BCD码,每四位表示一位十进制数,其表达范围为(0~999);随后的两位用来表示时间的基准(0~3),最后两位在设定时值时没有意义。时间基准定义一个单位代表的时间间隔。当时间用常数(S5T#...)表示时,时间基准自动由系统自动分配。如果时间由拨码按钮或通过数据接口指定,用户必须指定时间基准。启动定时器当定时器启动时,定时时间值被传送到定时器的系统数据区中,一旦定时器启动,时间值便一个单位一个单位地递减,直到零为止,以什么单位递减则要根据所设定的时间基值。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation设置定时器以下列形式设置时间:常数

S5T#43S_200MS输入字

IW2输出字

QW12标志字

MW24数据字

DBW255T10TV-

- 0

1 0

1

0

00

0

1

10

0

1

0定时器字的数据格式(432×0.1s

=

43.2s)102101100

时间 0-999(BCD)无用0:

0.01S2:

1S1:

0.1S3:

10S任务要求只要输入I1.7接通(为“1”),输出Q5.7就闪烁,ON和OFF的宽度都可以改变,时序关系见上图中实线所示。步骤(1)用上图中所给的结构画出程序的功能方框图。(2)用FBD方式将程序块FC8写在硬盘上。(3)将PLC置为STOP。(4)将FC8从硬盘传送到PLC并在OB1中调用。(5)将PLC置为RUN并测试程序。修改要实现以下各步需作那些修改?(1)开关I1.7断开时,输出Q5.7立即断开并且(2)当输入I1.7断开后又马上接通时,输出Q5.7立即变亮。(时序关系如上图中虚线所示)Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation练习9.2:由两个定时器组成的时钟发生器I

1.7Q

5.7FC8Q5.72S4SI

1.7任务要求在实际应用中,闪烁频率经常用于故障显示,上图给出了由一个定时器构成的闪烁频率信号的产生程序。第一段的功能是产生一个时钟信号。每当定时时间T到达时,就重新启动定时器T64,使定时器在每个时钟周期输出一个宽度为一个扫描周期的“0”脉冲。第二段的作用是使时钟信号变为高低电平对称的闪烁频率信号。当定时时间T到达时,M0.2在一个循环扫描周期内被置位,这个标志位将通过S

M1.0或R

M1.0使标志M1.0被置位或复位,这样每两个时钟周期通过M1.0输出一个高低电平对称的方波信号。一旦闪烁频率发生器在程序中安装,它就可以提供时钟脉冲而不需要特定的启动信号。闪烁频率可通过Q5.3观察到。(注意频率不要大于10Hz)练习在一个新程序块FC51中编写上述程序。令闪烁频率为2Hz,调试程序。闪烁频率周期=2○(定时时间+扫描周期)≈2○定时时间=2T

闪烁频率=1/周期=1/2T,如闪烁频率为2Hz,则定时时间T=250ms。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation练习9.3:由单定时器构成的闪烁频率发生器T64Q5.3T64!

G

!Q5.3#

M

0.2S5T#5STVST64S_PEXTM

0.2M

1.0M

0.2M

0.3

#

M

0.3SR&&M

1.0Q5.3FC51Segment1Segment2注意:输出点为继电器输出时,开关频率不能太高。任务要求用程序对一个设备中三个风扇(I0.0,I0.1和I0.2)进行监控。正常情况下,只要设备运行(I0.3=1)其中两个风扇就转,另一个备用。对它们的监控要求如下:(1)如果一个风扇坏了,而备用风扇在5秒钟内还未接通,显示故障信号(Q4.0=1)。(2)一旦三个风扇都坏了,故障信号立即显示。(3)当设备恢复正常运行时,用I0.7清除故障信息(Q4.0=0)。注意上图中“=1”表示“n中取1”(即多个输入中只有一个为1时,输出为1),需要用AND和OR功能来编写。练习步骤(1)在新块FC10中编写监控程序。(2)调试程序。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation练习9.4:三个风扇的监控程序I0.0I0.1I0.2=1I0.3&S_ODTT30I0.7M30.0&

I0.0I0.1I0.2I0.3RSQ>=1Q4.0计数器值在系统数据存储器中为每个计数器保留了一个16-位字,它用来以二进制格式存储计数器的值(

0...999

)。加计数当“CU”输入端的RLO

从“0”变到“1”时,计数器的当前值加1(最大值=999).减计数当“CD”输入端的RLO

从“0”变到“1”时,计数器的当前值减1(最小值=0).置数计数器当“S”输入端RLO从“0”变到“1”时,计数器就设定为“PV”输入的值。清零计数器当“R”输入端RLO=1,计数器的值置为0。如果复位条件满足,计数器不能置数,也不能计数。PV

在“PV”输入端,用BCD码指定设定值(0...999):•用常数(C#...)•通过数据接口用BCD

格式CV/CV_BCD

计数器值用二进制数或BCD数装入累加器,再传递到其他地址。

Q

计数器状态在输出“Q”检查:•计数值=0->Q=0•计数值><0->Q=1计数器类型•S_CU=加计数器(仅加计数)•S_CD=减计数器(仅减计数)•S_CUD=加/减计数器Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

AutomationSTEP

7中的S5计数器STLLADFBDC5C5AI0.CUC5I

0.4S_CUDQ

4.3S_CUDAI0.CUQI

0.4CUCDC5AI0.I

0.5CDI

0.5CDLSC#2C5I

0.3AI0.SI

0.3SCVMW

4RC5LC5C#20PVCVMW

4C#20PVCV_BCDQW

6TMW4I

0.7RCV_BCDQW

6I

0.7RQQ

4.3=LCTAC5QW6C5=Q4.位指令所有的计数器功能也可以用简单的位指令操作。这种方法和前面讨论的计数器功能的相似处和不同之处如下:•相似处:-设定条件在输入“SC”-指定计数器值-“CU”输入处RLO

变化-“CD”输入处RLO

变化•不同之处:-不能检查计数器当前值(没有BI

和BCD

输出)。-没有图形表示中的位输出Q。.注在STEP

7中也可实现IEC允许计数器。在高级编程课中讨论采用系统功能块实现IEC计数器。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation计数器:位指令STLAI0.0I0.1C5CDAC5=Q

4.0LADI0.0C5SCC#20Network

1:Network

4:C5Q

4.0FBDC5SCI0.0C#20CVLC#20Network

2:SI0.1C5C5C5CUI0.1CUANetwork

3:CUC5I0.2C5C5ACDI0.2CDI0.2Q

4.0=C5注如果计数器加计数达到999,或减计数达到0,那麽,计数值就保持不变,不对计数脉冲反应。如果加计数和减计数同时输入,计数器保持不变。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation计数器:功能图Q计数CUCDSR543210CMP

利用比较指令比较下面的数值:I

比较整数(16位定点数)D

比较整数(32位定点数)R

比较浮点数(32

位=IEEE

格式浮点数)。如果比较结果为“真”,则操作的RLO=1,否则RLO=0。用指定的条件比较输入IN1和IN2端的值:==IN1

等于IN2<>IN1

不等于IN2>IN1

大于IN2<IN1

小于IN2>=IN1

大于等于IN2<=IN1

小于等于IN2.Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation比较指令STLM0.IW0IW2AA

(LL==I)=Q5.LADCMP

==IIN1IN2IW0IW2M0.0Q

5.7FBDIN1IN2M0.0IW0IW2&Q5.7=CMP

==I任务要求由定时器T65构成的闪烁频率发生器通过标志M25.0提供频率信号,该时钟信号经过计数器实现分频,分频后的信号通过Q4.7输出。如果输入端I1.7为“1”,则时钟信号使计数器C25加计数,直到计数值达到标志字MW2中所存储的值。在下一个时钟脉冲到来时计数器则开始减计数,当计数值达到零时又开始加计数。计数值以十进制的方式显示在数显屏QW6上。分频数即为计数设定值的二倍,存在MW2中的计数设定值通过IB0输入。程序块的拷贝前面练习中已经编写了一个闪烁频率发生器的程序FC51,为了不再重新输入该程序,可将原来的程序块FC51拷贝成为一个新块,在新块中继续编写其它程序。练习步骤(1)将FC51拷贝为FC25。(2)按上图中要求修改并完成新的FC25(T65,M25.0)。(3)插入一个新段,完成从IB0输入计数值的功能。(4)插入几个新段,按上图中要求编写其它功能。(5)调试分频器程序。改变IB0的值,查看QW6及Q4.7的显示。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation练习9.5:分频器T65;M25.0FG1Hz&&C25CDRCU

CVBCDQQW6

MW2IN1

Q>=IN2SRQM25.1Q4.7I1.7C25Q4.7I1.7M25.0MW2FC25目的给瓶子灌装程序加入一个新功能,除已经编程的手动模式(FC15),建立一个自动模式程序。自动模式的在自动模式下,当传送带电机(Q

8.5)接通时,它一直保持接通直到传送带控制用停止开关(I

0.1)或传感器(I

8.6)检测到瓶子。当瓶子已经装满,传送带自动启动向前运动,一直到检测到另一个瓶子或操作STOP开关。瓶子灌装当在灌装漏斗(I

8.6=1)下检测到瓶子时,灌装开始。灌装用3秒和输出Q

5.0指示模拟。瓶子计数另外两个传感器提供满瓶和空瓶检查。瓶子传感器I

8.5

检查空瓶,瓶子传感器I8.7检查数满瓶。当瓶装线运行后,开始对空瓶和满瓶计数(C1

用于空瓶,C2

用于满瓶),满瓶数显示在数码管上QW

6。操作1.在FC

16中写一个程序,在OB1(项目“MyProject”下程序“FILL”中)中调用FC16。必须修改FC

15中包含传送带向前点动的程序段。2.在培训设备上测试你的程序。结果它应该工作正常。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation主容器Q

5.0灌装漏斗瓶子传感器I

8.6瓶子传感器I

8.5瓶子传感器I

8.7练习9.6:瓶装线编程(灌装循环和瓶子计数)设备ON/OFF:I

0.0=启动(瞬态常开触点)I

0.1=停止(瞬态常闭触点)手动/自动模式:I

0.4=手动/自动I

0.5=接受模式

I

0.2=向前点动

I

0.3=向后点动MQ

8.5传送带向前Q

8.6传送带向后例用户程序利用拨轮按钮输入的值执行数学功能,并把结果显示在数据显示窗中。数学功能不能用BCD格式执行,所以必须转换格式。转换指令S7-300/400

指令集支持多种转换功能,指令都有相同的格式:EN,ENO

如果在允许输入EN处的RLO=1,就执行转换。允许输出ENO

总是和EN的状态相同。如果不是这样,在相关指令中指出。IN

当EN=1时,IN处的值读入转换指令。

OUT

转换的结果保存在OUT输出的地址中。BCD_I/BTI

(BCD

转换到整数)以三位BCD码数(+/-999)读入IN参数,把它转换成一个整数(16位)。I_BCD/ITB

(整数转换到BCD)以整数形式(16位)读入IN参数,把它转换成一个三位BCD码数(+/-999),如果出现溢出,ENO=0。BCD_DI/BTD

把BCD

码数(+/-9999999)转换成双整数(32位)。DI_BCD/DTB

把双整数转换成一个7位BCD码数(+/-9999999),如果出现溢出,ENO=0。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation转换操作

BCD

<->

整数ENENO

BCD_IOUTINIW4MW20ENENO

I_BCDOUTINMW10QW6FBDIW4LBTITMW20MW10LITBTQW6STL0

8

1

5用BCD码输入的数用BCD码显示的数转换BCD->整数任务转换BCD<-整数有数学运算的用户程序0

2

4

8ENBCD_IENOOUTINIW4

MW20INENI_BCDENOOUTMW10QW6LAD例使用整数的用户程序也需要执行除法,可能出现结果小于1。由于这些值只能用实数表示,所以需要转换到实数。这样,首先需要把整数转换成双整数。I_DI/ITD

整数到双整数转换。

DI_R/DTR

双整数到实数转换。注其他转换指令,例如:•INV_I/INVI•NEG_I/NEGI•TRUNC/TRUNC•ROUND/RND•CEIL/RND+•FLOOR/RND-•

INV_DI/INVD•NEG_DI/NEGD•NEG_R/NEGR•CAW,CAD在高级编程课中详细讨论。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation转换指令I->DI->REALSTLI_DIOUTMD14DI_RFBD

EN带有实数的运算程序从双整数到实数的转换从整数到双整数的转换任务整数格式的数据(16位)OUT

MD14MD26INMW12INENOENOUTMD26LLADMD14INENO

MW12ITDDTRENI_DIENOENDI_RENOTMD26OUTMW12

MD14INWAND_W

“字与”指令对输入IN1和IN2处的数值相应位用“与”真值表运算。操作结果存放在输出OUT的地址。当EN=1时,执行该指令。例如,屏蔽拨轮按钮的第4个数:IW

2=

=

0100

0100

1100

0100

W#16#0FFF

=

0000

1111

1111

1111MW30

=

0000

0100

1100

0100WOR_W“字或”指令对输入IN1和IN2处的数值相应位用“或”真值表运算。操作结果存放在输出OUT的地址。当EN=1时,执行该指令。例如,置位MW32中的第0位:MW32

=

0100

0010

0110

1010

W#16#0001

=

0000

0000

0000

0001MW32

=

0100

0010

0110

1011WXOR_W“字异或”指令对输入IN1和IN2处的数值相应位用“异或”真值表运算。操作结果存放在输出OUT的地址。当EN=1时,执行该指令。例如,检测IW0中的信号变化:IW0

=0100

0100

1100

1010

MW28

=0110

0010

1011

1001MW24

=

0010

0110

0111

0011Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation数字逻辑指令LLIW

0W#16#5F2AAW

/

OW

/

XOWT

MW10IW0

=W#16#5F2A

=WXOR_WWOR_WWAND_W

ENENOIN2W#16#5F2AOUT

MW10IN1IW015

00

1

0

0

0

0

0

0

0

0

1

1

0

0

1

00

1

0

1

1

1

1

1

0

0

1

0

1

0

1

0AW后的MW10OW后的MW10XOW后的MW10ANDORXOR010000000010001001011111001110100001111100011000概述S7-300/400

指令集支持多种转换功能,所有指令都有相同的格式:EN

如果在允许输入EN处的RLO=1,就执行转换。ENO如果结果超出了数据类型允许的范围,溢出位OV=“Overflow”和OS=“Stored

Overflow”被置位,允许输出ENO=0。这可以防止和ENO有关的指令继续执行。IN1,IN2

IN1处的值作为第一个地址读入,IN2处的值作为第二个地址读入。OUT

数学操作的结果存储在输出OUT的地址处。指令加法:ADD_I

整数加法ADD_DI

双整数加法ADD_R

实数加法减法:SUB_I

整数减法SUB_DI

双整数减法SUB_R

实数减法乘法:MUL_I

整数乘法MUL_DI

双整数乘法MUL_R

实数乘法除法:DIV_I

整数减法DIV_DI

双整数减法DIV_R

实数减法注高级数学功能(ABS,SQR,SQRT,LN,EXP,SIN,COS,TAN,ASIN,ACOS,ATAN)在高级编程课中讨论。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

AutomationLADFBDSTL基本数学功能减法乘法除法加法MW4MW10LL+

ITMW6ADD_IENOOUTENIN1IN2MW4MW10MW6ADD_IENOOUTENIN1IN2MW4MW10MW6SUB_IENOENIN1IN2MW5MW11MW7OUTSUB_IENOOUTENIN1IN2MW5MW11MW7MW5MW11LL-

ITMW7MD6MD12MUL_RENOMD66ENIN1IN2MUL_ROUTENIN1IN2

ENOMD6MD12MD66MD6MD12LL*

RTMD66MD40MD4ENIN1IN2MD32OUTDIV_RENODIV_ROUTENIN1IN2

ENOMD40MD4MD32MD40MD4LL/

RTMD32这个练习包含了带有以下功能的例子:程序段1:当I0.0从0变到1时,加计数器加一。当前的计数值以BCD码的形式保存在MW4中。程序段2:将MW2置零。程序段3:当前的值转换成双整数,再转换成实数。(一个BCD值不能直接转换成实数)。第二个转换的结果除以6。除法的浮点结果保存在MD20中。程序段4:MD20取整成一个整数,然后再把双整数转换成BCD码。BCD码被送到输出BCD显示(QW6).目标:1.使用这些指令检验对数字操作的理解。2.由于这些指令不在工具框中,所以,必须熟悉指令显示功能和相应的帮助功能。过程:

1.

建立FC100,用程序编辑器(LAD/STL/FBD)编辑、存盘、装入并测试上面显示的 逻辑操作。结果:

当用I0.0计数时,可以看到显示是如何增加1的。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation练习9.7:

数字操作例子目的扩展瓶子计数功能。计数器的最大计数范围是999,为了扩大计数值,可以把计数器串联。应该使用数学操作进行计数。图中显示的产量数据也是管理所要求的。操作1.删除FC

16中的“瓶子计数”段。2.

写一个FC18完成计数功能,当装置启动后,在MW

100/102/104中的值要删

除。 当检测到

I

8.5

I

8.7

的边沿时,瓶子计数加1。满瓶和空瓶的差数存放在

MW

104。3.在OB1中编一个FC18调用。4.下载S7程序“FILL”的所有块到CPU,测试程序。Date:File:8/17/2019SSP1_09C.1SIMATIC

S7Siemens

AG

2000.

All

rights

reserved.Information

and

Training

CenterKnowledge

for

Automation练习9.8:瓶装线编程(产量数据)满瓶空瓶“碎”瓶MW

100MW

102MW

104目的把下面有关瓶装线产量数据加到程序中:•满瓶以6个为单位打一个包装,包装数需要计算并要显示在QW6.•在FC19中写一个程序处理这个任务。操作1.在FC19(S7-程序FILL)中写一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论