S7300讲稿第3章a_材料物理讲稿第3章
S7300讲稿第3章a由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“材料物理讲稿第3章”。
S7-300/400的编程语言与指令系统
3.1 S7-300/400的编程语言 3.1.1 PLC编程语言的国际标准
IEC 61131是PLC的国际标准,1992~1995年发布了IEC 61131标准中的1~4部分,我国在1995年11月发布了GB/T 15969-1/2/3/4(等同于IEC 61131-1/2/3/4)。
IEC 61131-3广泛地应用PLC、DCS和工控机、“软件PLC”、数控系统、RTU等产品。定义了5种编程语言
1)指令表IL(Instruction list):西门子称为语句表STL。
2)结构文本ST(Structured text):西门子称为结构化控制语言(SCL)。
3)梯形图LD(Ladder diagram):西门子简称为LAD。4)功能块图FBD(Function block diagram):标准中称为功能方框图语言。
5)顺序功能图SFC(Sequential function chart):对应于西门子的S7 Graph。
Ëò³Ð¹¦ÜÄ¼Í ÝÐÌÎͼ¦Ä¹Ü¿éͼ¸ÁÖî±í á¹Î½Ä±¾ ¼3-1 PLCµÍıà³ÌÓïÑÔ
3.1.2 STEP 7中的编程语言
梯形图、语句表和功能块图是3种基本编程语言,可以相互转换。
1.顺序功能图(SFC):STEP 7中的S7 Graph 2.梯形图(LAD)直观易懂,适合于数字量逻辑控制。“能流”(Power flow)与程序执行的方向。
3.语句表(STL):功能比梯形图或功能块图强。
4.功能块图(FBD):“LOGO!”系列微型PLC使用功能块图编程。5.结构文本(ST):STEP 7的S7 SCL(结构化控制语言)符合EN 61131-3标准。
SCL适合于复杂的公式计算、复杂的计算任务和最优化算法,或管理大量的数据等。
6.S7 HiGraph 编程语言
图形编程语言S7 HiGraph 属于可选软件包,它用状态图(state graphs)来描述异步、非顺序过程的编程语言。
7.S7 CFC 编程语言
可选软件包CFC(Continuous Function Chart,连续功能图)用图形方式连接程序库中以块的形式提供的各种功能。
8.编程语言的相互转换与选用
在STEP 7编程软件中,如果程序块没有错误,并且被正确地划分为网络,在梯形图、功能块图和语句表之间可以转换。如果部分网络不能转换,则用语句表表示。
语句表可供喜欢用汇编语言编程的用户使用。语句表的输入快,可以在每条语句后面加上注释。设计高级应用程序时建议使用语句表。梯形图适合于熟悉继电器电路的人员使用。设计复杂的触点电路时最好用梯形图。
功能块图适合于熟悉数字电路的人使用。
S7 SCL编程语言适合于熟悉高级编程语言(例如PASCAL或C语言)的人使用。S7 Graph,HiGraph和CFC可供有技术背景,但是没有PLC 编程经验的用户使用。S7 Graph对顺序控制过程的编程非常方便,HiGraph适合于异步非顺序过程的编程,CFC适合于连续过程控制的编程。3.2 S7-300/400 CPU的存储区 3.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#0000 0010 1001 0110。
2#0000 0001 0010 1000对应的十进制数也是296,对应的十进制数为
28+25+23=256328296。3.2.2 基本数据类型
MSBIB0IB1IB2IB3IB4IB5LSB 76543210图3-5 位数据的存放
1.位(bit):位数据的数据类型为BOOL(布尔)型。I3.2的意义。2.字节(Byte)
3.字(Word)表示无符号数。取值范围为W#16#0000~W#16#FFFF。4.双字(Double Word)表示无符号数。范围DW#16#0000_0000~DW#16#FFFF_FFFF。
5.16位整数(INT,Integer)是有符号数,补码。最高位为符号位,为0时为正数,取值范围为32 768~32 767。
6.32位整数(DINT,Double Integer)最高位为符号位,取值范围为
2 147 483 648~2 147 483 647。MSB7MB100LSB0MSB15高有效字节MB100LSB 低有效字节0MB101(a)MB100MSB31最高有效字节MB100MB101(b)MW100LSB最低有效字节0MB102MB103(c)MD100
图3-6 字节、字和双字
7.32位浮点数
浮点数又称实数(REAL),表示为1.m 2E,例如123.4可表示为1.234 102。根据ANSI/IEEE标准
浮点数=1.m 2e
式中指数e = E +127(1 ≤e ≤254),为8位正整数。
ANSI/IEEE 标准浮点数占用一个双字(32位)。
因为规定尾数的整数部分总是为1,只保留尾数的小数部分m(0~22位)。浮点数的表示范围为±1.175495 1038~±3.402 823 1038。
符号位 指数em尾数的小数部分876543210 22212019***312111093***252423
图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位实时时间(Time of day)常数,时间增量为1ms,例如TOD#23:50:45.300。
B(b1,b2)B(b1,b2,b3,b4)用来表示2个字节或4个字节常数。
3.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-defined data types)。在数据块DB和逻辑块的变量声明表中定义复合数据类型。2.参数类型
为在逻辑块之间传递参数的形参(formal parameter,形式参数)定义的数据类型:
(1)TIMER(定时器)和COUNTER(计数器):对应的实参(actual parameter,实际参数)应为定时器或计数器的编号,例如T3,C21。(2)BLOCK(块):指定一个块用作输入和输出,实参应为同类型的块。
(3)POINTER(指针):指针用地址作为实参。例如P#M50.0。
(3)ANY:用于实参的数据类型未知或实参可以使用任意数据类型的情况,占10个字节。
3.2.5 系统存储器
1.过程映像输入/输出(I/Q)
在扫描循环开始时,CPU读取数字量输入模块的输入信号的状态,并将它们存入过程映像输入(proce image input,PII)中。
在扫描循环中,用户程序计算输出值,并将它们存入过程映像输出表(proce image output,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。3.2.6 CPU中的寄存器 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。
15未用98BR7CC16CC05OS4OV3OR2STA1RLO0FC
图3-9 状态字的结构 I0.1 MW2 MOVEENENOINOUTMW4能流 IB2 MOVEENENOINOUT Q4.1MB8图3-50 传送指令
3.数据块寄存器:DB和DI寄存器分别用来保存打开的共享数据块和背景数据块的编号。3.3 位逻辑指令 位逻辑指令用于二进制数的逻辑运算。位逻辑运算的结果简称为RLO。3.3.1 触点指令
1. 触点与线圈
A(And,与)指令来表示串联的常开触点。O(Or,或)指令来表示并联的常开触点。AN(And Not,与非)来表示串联的常闭触点,ON(Or Not)来表示并联的常闭触点。
输出指令“=”将RLO写入地址位,与线圈相对应。L20.0是局域变量。将梯形图转换为语句表时,局域变量L20.0是自动分配的。
A(A
AN
O)
A
I 0.0 I 0.1 I 0.2 I 0.3
ON
=
A
=
A
=
A
AN
=
I0.0 I0.2 C5I0.1I0.3Q4.3Q4.4I3.4C 5 L 20.0 L 20.0 Q 4.3 L 20.0 Q 4.4 L 20.0 I 3.4 Q 4.6
Q4.6 图3-10 触点与输出指令
2. 取反触点
I0.6I0.3NOTQ4.5图3-11 取反触点
3.电路块的串联和并联
I0.0 I0.5M9.1M0.3Q4.3I0.2AANOAAON=I0.0M0.3I0.5I0.2M9.1Q4.3 I0.0M3.3M0.0Q4.4I0.2A(OO)A(OO)= I0.0M3.3M0.0I0.2Q4.4图3-12 电路块的并联 图3-13 电路块的串联
4.中线输出指令
下面是图3-14(b)中第一行对应的语句表。
A
I0.0
AN
I0.1
=
M0.1
A
M0.1
A
I0.3
=
Q4.3 I0.0I0.1I0.3I0.4Q4.3Q4.2 I0.0M0.1I0.1I0.4M0.1I0.3#Q4.2(b)Q4.3(a)图3-14 中线输出指令
I0.0 I0.0I0.2I0.2Q4.3XI0.0XI0.2=Q4.3 I0.0I0.0I0.2I0.2Q4.4XXN=I0.0I0.2Q4.4 图3-15 异或图3-16 同或
I0.1Q4.3SI0.3Q4.3RAAI0.1 I0.3 S Q4.3R Q4.3I0.1I0.3Q4.3 图3-17 置位与复位
I0.4 M0.0RSQRSQ4.1 I0.2M0.1SRQSR Q4.3I0.6I0.5图3-18 RS触发器与SR触发器 I0.3I0.0M0.0Q4.5PI0.3I0.0M0.1Q4.3N I0.3.I0.0Q4.5Q4.3
图3-19 上升沿与下降沿检测
Network 1:
A I0.3 A I0.0 FP
= Q4.5
Network 2:
A I0.3 A I0.0 FN
= Q4.3 I0.1 M0.0I0.2POSQM_BITQ4.3I0.3I0.4NEGQQ4.5 M0.1M_BIT图3-20 上升沿检测与下降沿检测
A
I0.3 A(A
I0.4 BLD
FN
M0.1)
=
Q4.5 【例3-1】设计故障信息显示电路,故障信号I0.0为1使Q4.0控制的指示灯以1Hz的频率闪烁。操作人员按复位按钮I0.1后,如果故障已经消失,指示灯熄灭。如果没有消失,指示灯转为常亮,直至故障消失。
I0.0POSQM0.0M_BIT M0.1M0.1 M1.5 M0.1 I0.0Q4.0I0.0故障信号I0.1复位信号M0.1锁存信号Q4.0显示输出I0.1M0.1 图3-21 故障信息显示
设置CPU的属性时,在“Cycle/Clock Memory”标签页令M1为时钟存储器字节,其中的M1.5提供周期为1s的时钟脉冲。
SET与CLR(Clear)指令将RLO(逻辑运算结果)置位或复位,紧接在它们后面的赋值语句中的地址将变为1状态或0状态。
SET = M0.2 CLR = Q4.7 //将RLO置位
//M0.2的线圈“通电” //将RLO复位
//Q4.7的线圈“断电”
3.4.1 定时器指令
输入信号脉冲定时器的输出信号 I0.0Q4.0ttttt扩展脉冲定时器Q4.1的输出信号接通延时定时器Q4.2的输出信号保持型接通延时Q4.3定时器的输出信号断开延时定时器Q4.5的输出信号图3-23 定时器功能
0 1
15xx8100 010702100 17110未用时基1秒以BCD码表示的时间值(0~999)图3-24 定时器字
在CPU内部,时间值以二进制格式存放,占定时器字的0~9位。可以按下列的形式将时间预置值装入累加器的低位字:(1)十六进制数W#16#wxyz,其中的w是时间基准,xyz是BCD码形式的时间值。
(2)S5T#aH_bM_cS_Dms,例如S5T#18S。
时基代码为二进制数00,01,10和11时,对应的时基分别为10ms,100ms,1s和10s。6.脉冲定时器
I0.0 T0I0.1T0SP S5T#2SQ4.0T0RtI0.0I0.1t 当前值Q4.0 图3-25 脉冲定时器 图3-26 脉冲定时器时序图
类似于上升沿触发的单稳态电路。
S5脉冲定时器(Pulse S5 Timer),S为设置输入端,TV为预置值输入端,R为复位输入端;Q为定时器位输出端,BI输出不带时基的十六进制格式,BCD输出BCD格式的当前时间值和时基。
定时器中的S,R,Q为BOOL(位)变量,BI和BCD为WORD(字)变量,TV为S5TIME量。各变量均可以使用I, Q, M, L, D存储区, TV也可以使用定时时间常数S5T#。再起动输入I1.2起动输入I0.0复位输入I0.1T0的响应(当前值)T0的输出触点tt I0.0T0S_PULSEQSQ4.0 S5T#2STV I0.1RBIMW10BCDMW12图3-28 脉冲定时器的再起动时序图图3-27 S5脉冲定时器
A
FR A L
SP A R L
T
I 1.2 T0 //允许定时器T1再起动 I 0.0 S5T#2s //预置值2s送入累加器1 T0
//启动T0 I 0.1 T0
//复位T0 T0
//将T0的十六进制时间当前值装入累加器1 MW10 //将累加器1的 内容传送到MW10 T0
//将T0的BCD时间当前值装入累加器1.LC
T
A = MW12 //将累加器1的内容传送到MW12 T0
//检查T0的信号状态
Q 4.0 //T0的定时器位为1时,Q4.0的线圈通电
仅在语句表中使用的FR指令允许定时器再起动,即控制FR的RLO(I1.2)由0变为1状态时,重新装入定时时间,定时器又从预置值开始定时。再起动只是在定时器的起动条件满足(图3-28中的I0.1=1)时起作用。该指令可以用于所有的定时器,但是它不是起动定时器定时的必要条件。
8.扩展的脉冲定时器 I0.2 T1I0.3T1SES5T#3SQ4.1T1RtI0.2I0.3t当前值Q4.1 图3-29 扩展的脉冲定时器 图3-30 时序图T1S_PEXTQS
I0.2Q4.1 S5T#3STVI0.3RBIMW14BCD图3-31 S5扩展脉冲定时器
10.接通延时定时器
I0.4T2SDS5T#2SQ4.2T2RtI0.4I0.5tt T2I0.5当前值Q4.2 图3-32 接通延时定时器 图3-33 时序图
I0.4T2S_ODTQSQ4.2 S5T#2STVI0.5RBIMW10BCDMW12图3-34 S5接通延时定时器 I0.0T6SDS5T#4ST7SFS5T#3S Q4.6 I0.0Q4.6T6的常开触点4s3sI0.0 T8T9T8SDS5T#2ST9SDS5T#3S Q4.7 T6 T7 图3-35 延时接通/断开电路图3-36 振荡电路
12.保持型接通延时定时器
I0.6T3SSS5T#6S Q4.3T3RtI0.6I0.7tt T3I0.7当前值Q4.3 图3-37 保持型接通延时 图3-38 时序图 T3S_ODTSQSBIBCDQ4.3
I0.6 S5T#6STVI0.7R图3-39 S5保持型接通延时
14.断开延时定时器线圈
I1.0T5SFS5T#7SQ4.5T5RtI1.0I1.1tt T5I1.1当前值Q4.5 图3-40 断开延时定时器 图3-41 时序图
I1.0S5T#7S I1.1T5S_OFFDTQSTVRBIBCDQ4.5 MW2图3-42 S5断开延时定时器
3.4.2 计数器指令 1.计数器的存储器区
每个计数器有一个16位的字和一个二进制位。
0108702100 1710 110未用BCD码格式的计数值(0~999)***11 110 1 未用二进制数计数值 图3-43 计数器字
计数器字的0~11位是计数值的BCD码,计数值的范围为0~999。二进制格式的计数值只占用计数器字的0~9位。
I0.0 I0.2 I0.3C10 S_CUQCU SCVMW0 RCV_BCDMW8Q5.0 I0.2C10SCC#6 C10CUC10R I0.4C11S_CDQCDSCVRCV_BCD Q5.1I0.5 I0.0I0.3C#6PV I0.5I0.6 I0.4I0.6C#5PVC11SCC#5 C11CDC11R图3-44 加计数器 图3-45 减计数器
下面是图3-44中左边的电路对应的语句表:
A I0.0
CU
C10 BLD 101 A I0.2
L
C#6
S
C10
A I0.3
R C10
L
C10
T
MW0 LC
C10 T
MW8 A C10
=
Q 5.0 //在I0.0的上升沿
//加计数器C10的当前值加1 //在I0.2的上升沿
//计数器的预置值6被装入累加器的低字 //将预置值装入计数器C10 //如果I0.3为1 //复位C10 //将C10的二进制计数当前值装入累加器1 //将累加器1的内容传送到MW0 //将C10的BCD计数当前值装入累加器1 //将累加器1的内容传送到MW8 //如果C10的当前值非0 //Q 5.0为1状态
设置计数值线圈SC(Set Counter Value)用来设置计数值,在RLO的上升沿预置值被送入指定的计数器。CU的线圈为加计数器线圈。在I0.0的上升沿,如果计数值小于999,计数值加1。复位输入I0.3为1时,计数器被复位,计数值被清0。
计数值大于0时计数器位(即输出Q)为1;计数值为0时,计数器位亦为0。
在减计数输入信号CD的上升沿,如果计数值大于0,计数值减1。I0.0T12T11 SDS5T#7200S T11T12 SDS5T#7200SI0.0M0.0C0PSCC#999 T11M0.1C0NCD I0.0C0R C0I0.0Q5.4 I0.0 Q5.43996h C12 I0.0S_CUDQ5.2 CUQI0.1CDI0.2SMW20PVCVI0.3RCV_BCD 图3-47 加减计数器 图3-46 定时范围的扩展
第三章工程项目投资决策 P2start 项目投资决策的分析与评价 项目投资估算 项目经济分析的基本方法 P2end P3start 第一节项目投资决策的分析与评价工程项目投资决策是指投......
第3章测验题A选项 B选项 C选项 D选项 E选项 F选项 答题(A-F) 分 答案 页 章 标识 备注得一:单选题1 《中华人民共和国会计法》规定:"使用电子计算机进行会计核算的,其软件及生......
第三章问题:举出一个企业的例子,分析其是哪一种创业类型有“中国鸡王”之称的大连韩伟企业集团创始人韩伟1956年,韩伟出生于大连三涟堡镇东泥河村 一户农民家庭。韩读书不多,仅......
第三章城市规划概述第一节 城市规划的基本概念规划——是为实现一定目标而预先安排行动步骤并不断付诸实践的过程。城市规划的概念国标《城市规划基本术语标准》:城市规划是......
第三章练习题及参考答案复习思考题一、单项选择题1、材料采购途中的合理损耗应()。A、由供应单位赔偿B、计入材料采购成本C、由保险公司赔偿D、计入管理费用2、在物价上升的情......
