搜索
您的当前位置:首页正文

西门子S7-300学习资料

来源:爱够旅游网
实用标准文档

S7-300学习笔记

第一讲:S7-300简介

一、 标准型S7-300的硬件结构

1. S7-300为标准模块式结构,各种模块相互独立,并安装在固定的机架(导轨)

上,构成一个完整的PLC应用系统。

2. 第一槽为电源模块,第二槽为CPU模块,第三槽为通信模。

3. 300电源模块(PS)可用其它开关电源代替,而400必须选用原装模块 二、 S7-300 CPU模块

1. CPU模块分类

1) 300PLC可分为紧凑型.标准型.革新型.户外型.故障安全型和特种型CPU 2) C表示紧凑型.F故障安全型T表示特种型 2. S7-300 CPU的主要特点

3. S7-300 CPU状态故障显示

1) SF(红色):系统出错/故障指示灯,硬件或软件出错时亮

2) BATF(红色) :电池故障指示灯,没电或没有装入电池时亮.314和316有.

故障时不影响CPU工作

3) DC5V(绿色) :5V电源指示灯,总线5V电源正常时常亮 4) FRCE(黄色) :强制作业有效指示灯,有强制时亮

5) RUN(绿色) :运行指示灯.处于RUN时亮,在STARTUP(启动)时以2HZ闪烁,

在HOLD(暂停)时0.5HZ闪烁

6) STOP(黄色) :CPU处于STARTUP. HOLD.时常亮,在存储器复位时0.5HZ闪.

在存储器置位时以2HZ闪烁.

7) BUS DF(BF)(红色) :总线出错时亮,(只适用于带有DP接口的CPU). 8) SF DP:接口错误指示灯,DP接口故障时亮

三、 S7-300 PLC功能

文案大全

实用标准文档

1. 高速的指令处理:0.1-0.6us的指令处理时间 2. 人机界面(HMI):人机界面集成在S7-300操作系统内

3. 诊断功能:CPU的智能化的诊断系统可连续监控系统的功能是否正常,记录错误和特殊的系

统事件 4. 口令保护:多级口令保护可以使用户高度、有效的保护其技术机密,防止未经允许的复制和

修改 四、 S7-300 模块

PS电源模块、IM接口模块(360发送361接收)、FM功能模块、SM信号模块。MPI网络(多点通信协议)、PG编程设备、OP操作屏

1. S7-300的扩展能力

1) 与CPU312IFM和CPU313配套的模块只能安装在一个机架上

2) 除了电源模块、CPU模块和接口模块外,一个机加上最多只能再安装8个

信号模块或功能模块

3) CPU314/315/315-2DP最多可扩展4个机架

4) IM360(发送)/IM361(接收)接口模块装S7-300背板总线从一个机架连

接到下一个机架

2. S7-300数字量模块地址的确定

根据机架上的模块的类型,地址可以为输入或输出。数字I/O模块每个槽占点4B(等于32个I/O点)。也就是第一个槽地址为I0.0-I3.7,第二个槽地址为4.0-7.7。第二个机架的第一个槽地址第一个机架尾排列。 3. S7-300模拟量模块地址的确定

模拟I/O模块每个槽点16B(等于8个模拟量通道),每个模拟量输入通道或输出通道的地址总是一个字地址。也就是2个字节8个字 4. S7-300数字量模块位地址的确定

0号机架的第一个信号模块(4号槽)的地址为0.0~3.7,一个16点的数输入模块只点用地址0.0-0.7,地址2.0-3.7未用(空着)。数字量模块中的输入点和输出点的地址由字节部分和位部分组成。

文案大全

实用标准文档

第二讲:S7-300常用信号模块

一、 数字量模块

1. 数字量输入模块

1) 数字量输入模块将现场过程送来的数字量电平转换成S7-300内部信号电

平。也就是按扭信号、行程开关等开关量的信号。

2) 数字量输入模块SM321有四种型号模块可供选择,即直流16点输入、直

流32点输入、交流16点输入、交流8点输入模块。常用的是直流输入 3) S7-300与200PLC的接线区别就是M点的正负不可以接反,200PLCM点上

可以接正,而300只可以接负

4) 对于该32点的300输入模块的供电,只需将引脚20和40接上24V电源

的负极(即M)即可。

文案大全

实用标准文档

5) 对于该16点的300输入模块的供电,只需将引脚20接上24V电源的负极

(即M)即可

2. 数字量输出模块

数字量输出模块内部信号电转换成过程所要求的外部信号电平,可直接用于驱动电磁阀、接触器、小型电动机、灯和电动机启动器等 1) 晶体管输出模块只能带直流负载,属于直流输出模块 2) 可控硅输出方式属于交流输出模块

3) 继电器触点输出方式的模块属于交直流两用输出模块

4) 从响应速度上看,晶体管响应最快,继电器响应最慢;从安全隔离效果及

应用灵活性角度来看,以继电器触点输出型最佳。

5) 对于该32点的300输出模块的供电,需将引脚1,11,21,31接上24V电源

的正极(即L+);引脚10,20,30,40接上24V电源的负极(即M)即可

文案大全

实用标准文档

6) 300数子量晶体管输出模块与200的区别在于,200输出点外部没有接负

载时指示灯也会亮,而300没有接时是不会亮的。

3. 数字量I/O模块

SM323模块有两种类型,一种是带有8个共地输入端和8个共地输出端,另一种是带有16个共地输入端和16个共地输出端,两种特性相同。I/O额定负载电压24VDC,输入电压“1”信号电平为11~30V,“0”信号电平为-3~+5V,I/O通过光耦与背板总线隔离。在额定输入电压下,输入延迟为1.2~4.8ms。输出具有电子短路保护功能。

二、 模拟量模块

1. 模拟量值的表示方法

S7-300的CPU用16位的二进制补码表示模拟量值。其中最高位为符号位“S”,“0”表示正值,“1”表示负值。被测值的精度可以调整,取决于模拟量模块的性能和它的设定参数,对于精度小于15位的模拟量值,低字节中幂项低的位不用

2. 模拟量输入模块

1) 模拟量输入(简称模入(AI))模块SM331目前有三种规格型号,即8AI*12

位模块、2AI*12位模块和8AI*16位模块。

2) SM331主要由A/D转换部件、模拟切换开关、补偿电路、恒流源、光电隔

离部件、逻辑电路等组成。A/D转换部件是模块的核心,其转换原理采用积分方法,补测模拟量的精度是所设定的积分时间的正函数,也即积分时间越长,被测值的精度越高。SM331可选四档积分时间:2.5ms、16.7ms、20ms和100ms,相对应的以位表示的精度为8、12、12和14 3) SM331与传感器、变送器的连接

文案大全

实用标准文档

3. 模拟量输出模块

文案大全

实用标准文档

第三讲:STEP7编程软件的安装与介绍

一、 软件的安装

1. STEP7安装软件对系统的要求

XP SP1以上,或200 SP3,IE要6.0以上 2. STEP7硬件需求

能运行200或XP的PG(编程设备)或PC机 CPU主频至少为600MHz 内存至少为256M

硬盘剩于空间在600MB以上 具备光驱

显示器支持32位,1024*768分辩率 3. 软件的安装

常用典型安装就可以 注意安装授权

二、 SIMATIC管理器

1. 启动SIMAIC管理器,通过开始菜单启动

2. 设置PG/PC接口,通过开始菜单设置,界面与200差不多

第四讲 STEP7编程快速入门

一、 STEP7设计步骤

二、 编程举例

下面以用S7-300PLC控 制三相异步电动机的起动与停止为例,来介绍STEP7软件的使用。

文案大全

实用标准文档

1. 项目要求

本例中PLC实现的功能相当于图1所示的控制电路,外部需要连接一个起动按钮SB1、一个停止按钮SB2和一个输出接触器KM,PLC的端子接线图如图2所示。其中FR为热继电器,当主电路同的电动机过载时FR动作,并切断接触器KM的线圈。

2. PLC硬件选择

PLC硬件系统包括一个PS307(5A)电源模块、一个CPU314、一个数字量输入模块SM321 DI32*DC24V和一个数字量输出模块SM322DO32*AC120/230/1A。所使用的数字量输入模块有32个输入点,每8个为一组,拥有4个公共端,用1M.2M.3M.4M.表示,外部控制按扭(如SB1、SB2)信号通过DC24V送入相应的输入端(如I0.0、I0.1)所使用的数字量输出模块有32个输出点,每8点为一组,有4个公共电源输入端,用1L、2L、3L、4L表示,外部负载(如KM)均通过电源(如AC220)接在公共电源输入端(如1L)与输出端(如Q4.1)之间。 3. STEP7软件组态与操作

PACK-导轨 PS-电源 SM-信号模块 1) 创建STEP7项目 2) 插入S7-300工作站 3) 硬件组态 4) 编辑符号表 5) 程序编辑窗口

6) 在OB1中编辑LAD程序下载 7) 运行与监控

第五讲 S7-300编程语言与数据类型

一、 S7-300编程语言

STEP是S7-300/400系列PLC应用设计软件包,所支持的PLC编程语言非常丰富。该软件的标准版支持STL(语句表)、LAD(梯形图)及FBD(功能块图)3种基本编 程语言,并且在STEP7中可以相互转换。专业版附加对GRAPH(顺序功能图)、SCL(结构化控制语言)、HIGRAPH(图形编程语言)、CFC(连续功能图)等编 程语言的支持。不同的编程语言可供不同知识背景的人员采用。 二、 数据类型

文案大全

实用标准文档

数据类型决定数据的属性,在STEP7中,数据类型分为三大类: 1) 基本数据类型

Bit-位 Byte-字节 Word-字 DWord-双字 INT-16位整数 DINT-32位整数 REAL-浮点数

2) 复杂数据类型

复杂数据类型定义超过32位或由其他数据类型组成的数据。复杂数据类型要预先定义,其变量只能在全局数据块中声明,可作为参数或逻辑块的局部变量。STEP7支持的复杂数据类型有数组、结构、字符串、日期和时间、用户定义的数据类型和功能块类型6种

 数组(ARRAY):是由一组同一类型的数据组合在一起而形成的复杂数据类

型。数的维数最大可以到6维。 例如:ARRAY[]1..4,1..5,1..6]INT

这是一个三维数组,1..4、1..5、1..6为数据第1-3维的下标范围;INT为元素类型关键词。定义了一个整数型,大小为4*5*6的三维数组。可以用数组名加上下标方式来引用数组中的某个元素。如a[]2,1,5,]。  结构(STRUCT)是由一组不同类型的数据组合在一起而形成的复杂数据类

型。结构通常用来定义一组相关的数据。 例如电机的一组数据可以按如下方式定义: Motor(电机):STRUCT(结构)

Speed(速度):INT(整数) Current(电流):REAL(浮点数)

END_STRUCT

访问结构中的各个元素:

L“Drive_1”.Motor.Current L“Drive_1”.Motor.Spccd 其中Drive_1是数据的符号名,该数据包含结构,结构的名称在数据块符

文案大全

实用标准文档

号后面,结构的元素名跟在结构名的后面。中间用点分割。

 字符串(STRING)是最多254个字符(CHAR)的一维数组,最大长度为256

个字节(其中前2个字节用来存储字符串的长度信息)。字符串常量用单引号括起来,如:‘S7-300’、‘SIMATIC’

 日期和时间(DATE_AND_TIME)用来存储年、月、日、时、分、秒、毫秒

和星期,占用8个字节,用BCD码格式保存。星期天的代码为1,星期一至星期六的代码分别为2-7。如:DT#2010-02-06-13:30:15.200表示2010年2月6日13点30分15.2秒。

 用户定义的数据类型(UDT)表示自定义的结构,存放在UDT块中

(UDT1-UDT65535),在另一个数据类型中作为一个数据类型“模板”。当输入数据块时,如果需要输入几个相同的结构,利用UDT可以节省输入时间。 例:需要在一个数据块中输入10个相同的结构。首先定义一个结构并把它存为一个UDT,如UDT1。在数据块中,定义一个变量Addresses,它有10个元素,数据类型是UDT1。 Addresses ARRAY[1..10]UDT1

这样就建立了UDT1所定义结构的10个数据区域,而不需要分加别输入。

操作步骤:1新建UDT1数据类型

2打开UDT1,建立一个结构 3新建DB数据块

4打开DB数据块,建立一个数组,类型为UDT1

第六讲 S7-300PLC的指令基础

一、 PLC用户存储区的分类及功能

存储区域 功能 在扫描循环的开始,操作系统从现场读取控制按扭、输入过程印象寄存器 I 行程开关及各种开关量数字信号,并存入输入过程印象寄存器,其每一位对应数字量输入模块的输入端子 在扫描循环其间,逻辑运算的结果存入到输出过程印象输出过程印象寄存器 Q 操作系统从输出过程印象寄存器读出最终结果。并将其传送到数字量输出模块,直接控制PLC外部的指示灯,接触器、等控制对象 输出双字 0-5532 QD 输出位 输出字节 0.0-65535.7 0-5535 0-5534 Q QB QW 输入双字 0-5532 ID 单位 输入位 输入字节 输入字 录址范围 0.0-65535.7 0-5535 0-5534 标识符 I IB IW 寄存器,在循环扫描结束前,输出字 文案大全

实用标准文档

位存储器与PLC外部的对象没有任何关系,它的功能类似于继电器控制系统中的中间继电器,主要用来存储程位存储器 M 序运算过程中的临时结果,可为编程提供无数量限止的触点,可以被驱动,但不能直接驱动任何负载 它的存在主要是为了使编程方便 用户呆以通过外部输入寄存外部输入寄存器 PI 器直接来访问模拟量输入模块,以便接收来自现场的模拟量输入信号 用户可以通过外部输出寄存外部输出寄存器 PQ 器直接访问模拟量输出模块,以便将模拟量输出信号送给现场的控制执行器 定时器 T 作为定时器指令使用,访问该存储区可获得定时器的剩于时间 作为计数器指令使用,可访问存储区可获得计数器的当前值 数据块寄存器用于存储数据块的数据,最多可同时打开数据块寄存器 DB 一个共享数据DB和一个背景数据块DI,用OPIN DB指令可打开一个共享数据块,用OPIN DI指今打开一个数据块DI 本地寄存器用来存储逻辑块中所使用的临时数据,一般本地数据寄存器 I 用作中间暂存器,因为这些数据实际存储在本地数据堆栈中,所以当逻辑块执行结束时,数据自然丢失 本地数据字节 本地数据字 本地数据双字 0-5535 0-5534 0-5532 LB LW LD 本地数据位 0.0-65535.7 L 数据双字 0-5532 DBD或DID 数据位 数据字节 数据字 0.0-65535.7 0-5535 0-5534 DBX或DIX DBB或DIB DBW或DIW 计数器 0-255 C 定时器 0-255 T 外部输入字节 外部输入字 外部输入双字 外部输出字节 外部输出字 外部输出双字 0-65535 0-65534 0-65532 0-65535 0-65534 0-65532 PIB PIW PID PQB PQW PQD 存储字 0-254 MW 存储字节 0-255 MB 存储位 0.0-255.7 M 计数器 C

二、 指令操作数

指令操作数(又称编程元件)一般在用户存储区中,操作数由操作标识符和参数组成,操作标识符由主标识符和辅助标识符组成,主标识符用来指定操作数所使用的存储区类型,辅助标识符则用来指定操作数的单位(如:位、字节、字、双字等)

主标识符有:I-输入过程映像寄存器、Q-输出过程映像寄存器、M-位存储器、

文案大全

实用标准文档

PI-外部输入寄存器、PQ-外部输出寄存器、T-定时器、C-计数器、DB-数据块寄存器、L-本地数据寄存器;

辅助标识符有:X-位、B-字节、W-字或2B、D-2DW或4B。

三、 寻址方式

所谓寻址方式就是指令执行时获取操作数的方式,可以直接或间接方式给出操作数。

 立即寻址

 存储器直接寻址  存储器间接寻址  寄存器间接寻址

1. 立即寻址

立即寻址是对常数或常量的寻址方式,其特点是操作数直接表示在指令中,或以惟一形式隐含在指令中,下面各条指令操作数采用了立即寻址方式,其中“//”后面的内容为指令的注释部分,对指令没有任何影响

L 66 //表示把常数66装入累加器1中

AW W#16#168 //将十六进制数168与累加器1的低字进行“与”运算

SET //默认操作数为RLO(逻辑输出),该指令实现对RLO置“1”操作

2. 存储器直接寻址

存储器直接寻址,简称直接录址,该寻址方式在指令中直接给出操作数的存储单元地址。存储单元地址可有符号地址(如SB1.KM等)或绝对地址(如I0.0.Q4.1)。下面各条指令操作数均采用了直接寻址方式。

A I0.0 //对输入位I0.0执行逻辑“与”运算 = Q4.1 //将逻辑运算结果送给输出继电器Q4.1 L MW2 //将存储字MW2的内容装入累加器1

T DBW4 //将累加器1低字中的内容传送给数据字DBW4

3. 存储器间接寻址

存储器间接寻址,简称间接寻址,该寻址方式在指令中以存储器的形式给出操作数所在的存储单元地址,也就是说该存储器的内容是操作数所在存储器单元地址。该存储器一般为地址指针,在指令中需写在方括号“[]”内。地址指针可以是字或双字,对于地址范围小于65535的存储器可以用字指针;对于其他存储器则要使用双字指针。

例:存储器间接寻址的单字节格式的指针寻址 如 OPN DB[MW0]

打开 数据块[]

若MW0中的值为2,则DB[MW0]就是DB2。MW0的值一改变,则指定的数据块也改变。

存储器间接寻址的双字指针的格式如图所示 16位序312423158位序70 310000 00000000 000024230000 0bbb0000 0bbbbbbb bbbbbbbb bbbbbbbb bxxx1615870说明:位0~2(xxx)为被寻址地址中位的编号(0~7)说明:位0~2(xxx)为被寻址地址中位的编号(0~7)位3~8为被寻址地址的字节的编号(0~65535)位3~8为被寻址地址的字节的编号(0~65535)

例:存储器间接录址的双字格式的指针录址

文案大全

实用标准文档

4. 寄存器间接寻址

寄存器间接寻址,简称寄存器寻址。该寻址方式在指今中通过地址寄存器和偏移量间接获取操作数,其中的地焉寄存器及偏移量必写在“[]”内,在S7-300中有两个地址寄存器AR1和AR2,用地址寄存器的内容加上偏移量形成的地址指针,并指向操作数所在的存储器单元,地址寄存器的地址指针有两种格式,其长度均为双字,指针格式如图所示

位序位序 3131242423231615161587807x000 0 r r rx000 0 r r r0000 0bbbbbbb bbbb0000 0bbbbbbb bxxxbbbb bbbb说明:位0~2(xxx)为被寻址地址中位的编号(0~7)说明:位0~2(xxx)为被寻址地址中位的编号(0~7)位3~8为被寻址地址的字节的编号(0~65535)位24~26(rrr)为被寻址地址的区域标识号位3~8为被寻址地址的字节的编号(0~655位31的x=0为区域内的间接寻址,x=1为区域间的间接寻址35)位24~26(rrr)为被寻址地址的区域标识号位31的x=0为区域内的间接寻址,x=1为区域间的间接寻址

地址指针区域标识位的含义

第一种地址指针格式适用于在确定的存储区内寻址,即区内寄存器间接寻址,

例:区内寄存器间接寻址

第二种地址指针格式适用于区域间寄存器间接寻址

文案大全

实用标准文档

例:区域间寄存器间接寻址

第一种地址指针格式包括被寻址数据所在存储单元地址的安节编号和位编号,到于对哪个存储区寻址,则必须在指令中明确给出。这种格式适用于在确定的存储区内寻址,即区内寄存器间接寻址。

第二种地址指针格式包含了数据所在存储区的说明位(存储区域标识位),可通过改变标识位实现跨区域寻址,区域标识由26-24确定,这种指针格式适用于区域间寄存器间接寻址。 四、 CPU中的寄存器

1. 累加器(ACCUx)

累加器用于处理字节、字或双字的寄存器。S7-300有2个32位的累加器(ACCUI和ACCU2)。S7-400有4个32位的累加器(ACCU1-ACCU4)。数据放在累加器的低位(右对齐)。 2. 状态字

状态字用于表示CPU执行指令时所具有的状态信息。

首位检测位(FC) 溢出位(OV)

逻辑操作结果(RL0) 溢出状态保护位(OS)

状态位(STA) 条件码1(CC1)和条件码(CC0) 或位(OR) 二进制结果位(BR)

第7讲位逻辑指令(-)

位逻辑指令处理的对象为二进制位号。位逻辑指今扫描信号状态“1”和“0”位,并根据布尔逻辑对它们进行组合,所产生的结果(“1”或“0”)称为逻辑运算结果,存储在状态字的“RLO(状态字:逻辑操作结果)”中。 一、 触点与线圈指令

在LAD程序中,通常使用类似继电器控制电路中的触点符号及线圈符号来表示PLC的位元件,被扫描的操作数(用绝对地址或符号地址表示)则标在触点符号的上方,如图所示。

文案大全

实用标准文档

1. 常开触点

对于常开触点(动合触点),则对于1扫描相应操作数。在PLC中规定:若操作数是“1”则常开触点“动作”,即认为是“闭合”的;若操作数是“0”,则常开触点“复位”,即触点仍处于打开的状态。

常开触点所使用的操作数是:I、Q、M、L、D、T、C、

2. 常闭触点

常闭触点(动断触点)则对“0”扫描相应操作数。在PLC中规定:若操作数是“1”则常闭触点“动作”,即触点“断开”;若操作数是“0”,则常闭触点“复位”,即触点仍保持闭合。

常闭触点所使用的操作数是:I、Q、M、L、D、T、C。

3. 输出线圈(赋值指令)

输出线圈与继电器电路中的线圈一样,如查有电流(信号流)流过线圈(RL0=“1”),则被驱动的操作数置(1);如果没有电流流过线圈(RLO=“0”),则补驱动的操作数复位(置“0”)。输出线圈只能出现在梯形图逻辑串的最右边。

输出线圈等同于STL(语句表)程序中的赋值指令(用等于号“=”表示),所使用的操作数可以是:Q、M、L、D。不能是输入I。 4. 中间输出

在梯形图设计时,如果一个逻辑串很长不便于编辑时,可以将逻辑串分成几个段,前一段的逻辑运算结果(RLO)可作为中间输出,存储在位存储器(I、Q、M、L或D)中,该存储位可以当作一个触点出现在其它逻辑串的中间,而不能出现在最左端或最右端

下图中,两个程序功能一样

二、 基本逻辑指令

基本逻辑指令主要包括:

 “与”指令 串连常开指令  “与非”指令 串连常闭指令  “或”指令 并连常开指令  “或非”指令 并连常闭指令

文案大全

实用标准文档

 信号流取反指令 1. 逻辑“与”指令

2. 3. 4. 文案大全

逻辑“与”指令使用的操作数可以是:I、Q、M、L、D、T、C。有2种指令形式(STL和FBD),用LAD也可以实现逻辑“与”运算

逻辑“与非”指令

逻辑“与非”指令使用的操作数可以是:I、Q、M、L、D、T、C。有2种指令形式(STL和FBD),用LAD也可以实现逻辑“与非”运算

逻辑“或”指令

逻辑“或”指令使用的操作数可以是:I、Q、M、L、D、T、C。有2种指令形式(STL和FBD),用LAD也可以实现逻辑“或”运算

逻辑“或非”指令

逻辑“或非”指令使用的操作数可以是:I、Q、M、L、D、T、C。有2种指令形式(STL和FBD),用LAD也可以实现逻辑“或非”运算

实用标准文档

5. 信号流取反指令

信号流取反指令的作用就是对逻辑串的RLO(逻辑运算结果)值进行取反。指令格式及示例见下图。当输入位I0.0和I0.1同时动作时,Q4.0信号状态为“0”;否则,Q4.0信号状态为“1”

三、 置位和复位指令

置位(S)和复位(R)指令根据RLO的值来决定操作数的信号状态是否改变,对于置位指令,一旦RLO为“1”,则操作数半的状态置“1”,即使RLO又变为“0”,输出仍保持为“1”;若RLO为“0”,则操作数的信号状态保持不变。对于复位操作,一旦RLO为“1”,则操作数的状态置“0”即使RLO又变为“0”,输出仍保持为“0”;若RLO为“0”,则操作信号状态保护不变。这一特性又被称为静态的置位和复位,相应的,赋值指令被称为动态赋值。

文案大全

实用标准文档

例:置位与复位指令的应用——传送带运动控制

如图所示为一个传送带,在传送带的起点有两个按扭:用于起动的S1和用于停止的S2。在传送带的尾端也有两个按钮:用于启动的S3和用于停止的S4。要求能从任一端起动或停止传送带。另外,当传送带上的物件到达未端时,传感器S5使传送带停止

传感器S5Motor_onS1S2起动停止电动机S3S4起动停止

 端子连接图

 地址分配

文案大全

实用标准文档

 梯形图程序

第8讲 位逻辑指令(二)

一、 RS和SR触发器指令

 RS触发器为“置位优先”型触发器(当R和S驱动信号同是为“1”是时,触发器

最终为置位状态);

 SR触发器为“复位优先”型触发器(当R和S驱动信号同时为“1”时,触发器最

终为复位状态)。

RS触发器和SR触发器的“位地址”,置位(S)、复位(S)及输出(Q)所使用的操作数可以是:I、Q、M、L、D。 1. RS触发器

2. SR触发器

文案大全

实用标准文档

3. RS触发器和SR触发器工作时序图

二、

跳变沿检测指令(相当于200的上升和下降沿指令)

STEP7中有2类跳变沿检测指令,一种是对RLO的跳变沿检测的指令,另一种是对触点的跳变沿直接检测的梯形图方块指令  RLO上升沿检测指令  RLO下降沿检测指令

 触点信号上升沿检测指令  触点信号下降沿检测指令 1. RLO上升沿检测指令(P)

M1.0和M1.1的状态和前面的逻辑运算结果一致

2. RLO下降沿检测指令(N)

M1.2和M1.3的状态和前面的逻辑运算结果一致

3. LRO边沿检测指令的工作时序

文案大全

实用标准文档

注意:当I1.0接通后过一个扫描周期以后Q4.0产生一个一个周期接通信号,也就是I0.0接通后第二周期Q4.0接通一个周期。 4. 触点信号上升沿检测指令(POS)

此LAD程序是对“I1.0”触点上升沿状态的检测,当‘I1.0’接通后对“Q4.0”产生一个扫描周期的脉冲信号,“M0.0”的状态与“I0.0”的状态一致 5. 触点信号下降沿检测指令(NEG)

当“I1.0”由1变为0时产生一个下降沿脉冲的时候,“Q4.2”输出一个宽度为一个扫描周期的脉冲,“M0.0”的状态与“I1.0”的状态一致 6. 触点信号边沿检测时序图

文案大全

实用标准文档

第9讲定时器

一. S_PULSE(脉冲S5定时器)

指令块上面是定时器的编号,用Txx表示。S端是启动信号,TV—设定定时器的时

间 R-定时器的复位信号,Q-输出位地址,BI和BCD是输出定时器的倒计时时间,用两种不同的格式显示。

设定时时器时间格式:S5T#xxxS S5T定时器#设定时间S单位秒 脉冲定时器的线圈指令

T2 定时器编号

-(SP)- 表示脉冲5定时器

S5T#10s 定时器时间10秒

-(R)- 复位信号

文案大全

实用标准文档

脉冲S5定时器工作时序图

当I0.1接通后MW0和MW2开始倒计时,当计时到0的时候,计时结束。I0.1接通的情况下,T1的位立即接通,当定时时间一到T1的位复位断开。如果当计时器还没有计时到0的情况下I0.1断开,那么计时器会马上停止计时,同时T1位断开。I0.1再次接通后T1重新开倒计时。Q4.0的位与T1保持一致

例:合上开关SA(I0.0),指示灯HL(Q0.0)亮1小时2分10秒后自动熄灭。

用I0.0接通一个T0定时器,定时器时间为1小时2分10秒。当I0.0接通后T0的位立即接通动作,Q0.0接通,当定时的时间一到T0的位断开,Q0.0也断开 二. S_PEXT(扩展脉冲S5定时器)

文案大全

实用标准文档

他的指令格式与脉冲S5定时期格式一样,但线圈指令用(SE)表示,而脉冲S5定时器用(SP)表示

扩展脉冲S5定时器工作时序图

当I0.1接通后MW0和MW2开始倒计时,当计时到0的时候,计时结束。I0.1接通

文案大全

实用标准文档

的情况下,T1的位立即接通,当定时时间一到T1的位复位断开。如果当计时器还没有计时到0的情况下I0.1断开,那么计时器会继续计时(与脉冲S5定时器不同),只到计时器计时时间为0后T1位断开。I0.1再次接通后T1重新开倒计时,如果I0.1断开后计器还没有计时到0又接通,那么计时器将重新从头开始倒计时。Q4.0的位与T1保持一致。扩展脉冲定时器只要启动信号接通一下,计时器就可以计时。

例:扩展脉冲定时器应用——电动机延时自动关闭控制。

控制要求:按动起动按钮S1(I0.0),电动机M(Q4.0)立即起动,延时5分钟以后自动关闭。起动后按动停止按钮S2(I0.1),电动机立即停机

I0.0接通5分钟SE定时器,T1接通后Q4.0接通。I0.1接通后复位定时器。程序运行时,当I0.0(启动按扭)接通一下后T1开始计时,当计时5分钟后T1位断开,同时断开Q4.0(电机)I0.0接通后手动关闭定时器 三. S_ODT(接 通延时S5定时器)

他的指令格式与以上两种相同,但是线圈指令用(SD)表示

文案大全

实用标准文档

接通延时S5定时器时序图

接通延时S5定时器的主要工作特点就是,触发点接通后定时器并不马上接通,待定时器时间到后才接通。触发点接通后定时器没有达到倒计时设定时间又断开,定时器位不接通。 四. S_ODTS(保持型接通延时S5定时器)

文案大全

实用标准文档

他的指令格式与以上三种相同,但是线圈指令用(SS)表示

时序图

当I0.0接通后计时器开始计时,待计时到达后T10位接通,此时当I0.0断开后T10的位并不断开,而一般的S5接通延时计时器此时会断开。T10的位必须用I1.0复位后才能断开 五. S_OFFDT(断电延时S5定时器)

他的指令格式与以上四种相同,但是线圈指令用(SF)表示

文案大全

实用标准文档

断电延时S5定时器时序图

当I0.0接通后,T13位马上接通,当定器时间到达后T13位断开。 例:断电延时定时器的应用

合上开关SA(I0.0),HL1(Q0.0)和HL2(Q0.1)亮,断开SA,HL1立即熄灭,过10S后HL2自动熄灭。

I0.0直接控制Q0.0(HL1),因为I0.0接通后,第一个灯就亮断开就灭。然后用Q0.0接通一个T0断电延时计时器,当Q0.0断开10S后T0断开,同时HL2(Q0.1)熄灭。 六. 5个 S5定时器的主要功能与区别

1. 脉冲S5定时器:当启动信号接通后,定时器位也接通,定时时间到达后定时器位

断开,如启动信号中途断开,定时器位同时断开。

文案大全

实用标准文档

2. 扩展脉冲S5定时器:当启动信号接通后,定时器位马上接通,等定时器时间到达

后定时器位断开,如启动信号中途断开后,定时器继续定时,只到定时时间到达后位才断开

3. 接通延时S5定时器:当启动信号接通后,定时器的位不接通,等定时时间到达后

位接通,如启动信号断开,定时器的位马上断开

4. 保持型接通延时S5定时器:当启动信号接通后,定时器的位不接通,等定时时间

到达后位接通,如启动信号断开,定时器位继续保持接通状态,只有通过复位来断开定时器的位

5. 断电延时S5定时器:当启动信号接通后,定时器的位马上接通,当启动信号断开

后,定时器开时计时,当计时器时间到达后,定时器的位断开, 定时器名称 LAD 启动信号接通 启动信号中途断开 定时器时间到 定时到达后启动信号断 状态说明 脉冲S5定时器 扩展脉冲S5定时器 接通延时S5定时器 保持型接通延时S5定时器 断电延时S5定时器

S_PULSE (SP) S_PEXT (SE) S_ODT (SD) S_ODTS (SS) S_OFFDT (SF) 通 计时 通 计时 断 计时 断 计时 通 停 断 停 通 计时 断 停 断 计时 通 计时 断 停 断 停 通 停 通 停 断 停 断 停 断 停 断 停 通 停 断 停 启动接通,定时到后断 信号断开继续计时 停止后断开 启动不通,定时到后通 停止后继续接通 启动信号断开后开始计时,计时时间到后断开 信号断开停止 第10讲 定时器应用实例

一. 多级皮带运输机控制

例:多级皮带运输机控制

文案大全

实用标准文档

如图是一个四级传送带系统示意图。整个系统有四台电动机M1、M2、M3、M4,落料漏斗YO由一阀控制。控制要求如下:

a) 落料漏斗启动后,传送带M1应马上启动,经6秒须启动传送带M2. b) 传送带M2启动后5秒应启动传送带M3. c) 传送带M3启动后4秒应启动传送带M4.

d) 落料停止后,应根据所需的时间差别,分别隔6S.5S.4S.3S.将四台电机停

止。

I/O分配及接线图

PLC控制程序

按下I0.0启动信号 后 把M0.1停止位关闭 把M0.0启动位关打开

按下I0.1停止信号 把M0.1停止位接通 把M0.0启动位断开

启动位接通后启动三个(SD)接通延时定时器,定时时间为分是6秒,6+5秒、6+5+4秒

文案大全

实用标准文档

二. 交通灯控制

交通信号灯示意图如图所示

文案大全

M0.0启动后接通Q0.4落料阀动作 同时第一个传送带Q0.0开始工作

计时6秒后,第一个定时器T0接通。T0接通后第二个传带Q0.1开始工作

T1计时11秒后接通,Q0.2接通第三个传送带开始工作

T2计时15秒后Q0.3第四个传送带开始工作

停止位接通后启动动4个接通延时定时器 T10 6秒

T11 11秒

T12 15秒

T13 18秒

I0.1停止按扭接通后先把进料阀关闭

计时6秒后关闭第一个传送带

计时11秒后关闭第二个传送带

计时15秒后关闭第三个传送带

计时18秒后关闭第四个传送带

实用标准文档

控制要求如下:

(1)接通起动按钮后,信号灯开始工作,东西向(行向)红灯、南北向(列向)绿灯同时亮。

(2)南北向绿灯亮25s后,闪烁3次(1s/次),接着南北向黄灯亮,2s后南北向红灯亮,30s后南北向绿灯又亮……如此不断循环,直至停止工作。

(3)东西向红灯亮30s后,东西向绿灯亮,25s后东西向绿灯闪烁3次(1s/次),接着东西向黄灯亮,2s后东西向红灯又亮……如此不断循环,直至停止工作。 工作时序图

交通灯接线图

PLC控制程序

文案大全

实用标准文档

启动后Q0.0行红灯和Q1.7列绿灯亮,25秒以后T0接通Q1.7列绿灯以500ms闪烁。闪3秒后T1接通Q1.7列绿灯灭,同时接通Q1.3列黄灯,T1接通2秒后T2接通断开开Q1.3列黄灯和Q0.0行红灯,同时接通Q1.0列红灯、Q0.7行绿灯和启动T3延时定时器,25秒以后T3定时器接通Q0.7行绿灯开始闪烁,闪3秒后T4定时器接通断开Q0.7行绿灯并接通Q0.3行黄灯和启动T5定时器,黄灯亮2秒后T5接通把Q0.3行黄灯关闭并断开T0定时器,T0断开后Q0.0行红灯和Q1.7列绿灯亮并把后面的定时器和T5全部断开重新计时工作。按下I0.1后因M0.0位断开不能进行新一圈的计时所以停

文案大全

实用标准文档

止。

第11讲 CPU时钟存储的应用

一、

CPU时钟存储器

通过设置CPU时钟存储器,可得到多种脉冲。要使用该功能,如图所示,在硬件配置时需要设置CPU属性,其中有一个选项为Clock Mcmory(时钟存储器),选中选择框可激活此功能

在硬件组态中双击CPU弹出属性框,选择时钟存储器

启动时钟存储器,选择MB位,如填写为0,则表是用M0.0-M0.8位做为时钟脉冲信号位,一个字节8个位,各个位的时钟周期表如下

文案大全

实用标准文档

二、 编程举例

例:编程实现以下功能:

当开关SA1(I0.0)为ON,SA2(I0.1)为OFF时,MW10每隔1S加1,当SA1为OFF,SA2为ON时,MW10每隔1S减1.

首先在CPU硬件中设置MB0为时钟存储器,则M0.5为周期为1S的脉冲。编写程序如图所示

第12讲 计数器及其应用

S7-300 400的计数器都是16位的,因此每个计数器占用该区域2个字节空间,用来存储计数值。不同的CPU模析,用于计数器的存储区域也不同,最多允许使用64~512个计数器,计数器的地址编号:C0-C511 一. S_CUD加减计数器

文案大全

实用标准文档

U 减信号输入 CD加信号输入 S预置信号开关 PV预置信号值 R复位信号 CV和CV_BCD为两个不同累型的计数器输出值

当I0.0接通时,计数器C0加一个值,I0.1输入一个信号时C0减一个值,最小只能到0,没有负数。当S信号开关打开时,把预轩信号值写入当前的C0里。I0.3接通时C0清0。注意:Q4.0的值,只要计数器的值不等于0时他就接通,反之等于0时就不通。

二. S_CU加计数器

文案大全

实用标准文档

加计数器用法与加减计数器一样,只是少了一个减开关 减计数器也是与他们一样,只是少了个加开关输入 三. S_CD减计数器

四.

计数器的线圈指令

除了面介绍的块图形工的计数器指令以外,S7-300系统还为用户准备了LAD环境下的线圈图形式的计数器,这些指令有计数器初预置指令SC、加计数器指令CU和减计数器指令CD。

文案大全

实用标准文档

初值预置SC指令若与CU指令配合可实现S_CU指令的功能

通过I0.0接通SC预置指令,把C4的当前值值为66

通过I0.1接通加计数器的输入,I0.1接通一次,C4计数器加1

I0.2接通复位指令,把C4的值清到0

初值预置SC指令若与CD指令配合可实现S_CD指令的功能,计数器减

通过I0.0接通SC预置指令,把C5的当前值预值为66

I0.0接通计数器减的输入。I0.0接通一次C5的值减1

I0.2接通计数器复位指令,把计数器清0

SC指令若与CU和CD配合可实现S_CUD的功能。

文案大全

实用标准文档

例:用计数器编程实现以下功能;

接一按钮于PLC的I0.0,当按第3次按钮时,Q0.0置位为ON,当按到第7次安钮时,Q0.0Q复位为OFF。如此可反复操作。用一个增计数器对按钮的接通次数时行计数。

第13讲 装入与传送指令

S7-300/400PLC指令功能丰富,且有装入与传送指令、转换指令、比较指令、算术运算指令、字逻辑运算指令、移位指令、逻辑控制指令、程序控制指令、主控指令等。许多指令的具体用户与s7-200plc的指令大体相同。

本课程主要介绍一些常用的功能指令,以及与S7-200使用有区别的指令。

装入指令(L)和传送指令(T),可以对输入或输出模块与存储区这间的信息交换进行编程。

一.

对累加器1的装入指令(L)

装入指令(L)和传送指令(T)的功能是实现各种数据存储区之间的数据交换,这种数据交换必须通过累加器来实现。S7-300PLC系统有2个32位的累加器,S7-400PLC系统有4个32位的累加器。

以S7-300为例介绍指令的应用。当执行装入指令时,首先将累加器1中的原有的数据移入累加器2,累加器2中原有的数据内容被覆盖(400则把2的内容移到3内,3的移到4,4的内容被覆盖),然后将数据装入累加器1中。当执行传送指令时,将累加器1中的数据写入目标存储区中,而累加器1的内容保持不变。L和T指令可对字节、字、双字数据进行操作,当数据长度小于32位时,数据在累加器1中右对齐(低位对齐),其余各位补0。

文案大全

实用标准文档

L B#16#1B L 向累加器传入 B#字节 16# 16进制数 1B 16进制数1B L 1.0E+2 向累加器装入1乘以10的2次方,200.1的实型常数 二. 对累加器1的传送指令 (T)

T指令可以将累加器1的内容复制到被寻址的操作数,所复制的字节数取决于目标地址的类型(字节、字或双字),指令格式如下:

T 操作数 其中的操作数可以为直接I/O(存储类型为PQ)、数据存储区或过程映像输出表的相应地址(存储类型为Q)

三. 状态字与累加器1之间的装入和传送指令

 L STW (将状态字装入累加器1)

将装态字装入累加器1中,指令的执行与状态位无关,而且对状态字没有任何影响,指令格式如下:

L STW

 T STW (将累加器1的内容传送到装态字)

使用T STW指令可以将累加器1的位0-8传送到状态字的相应位,指令的执行与状态位无关,指令格式如下: T STW

四. 与地址寄存器有关的装入和传送指令

 LAR1(将操作数的内容装入地址寄存器AR1)S7-300有2个地址寄存器,分别是AR1

和AR2

文案大全

实用标准文档

 LAR2(将操作数的内容装入地址寄存器2 )

使用LAR2指令可以将操作数的内容(32位指针)装入地址寄存器AR2,指令格式同LAR1,其中的操作数可以是累加器1、指针型常数(P#)、存储双字(MD)、本 地数据双字(LD)、数据双字(DBD)或背景数据双字(DID)、但不能和AR1  TAR1(将地址寄存器1的内容传送到操作数)

 TAR2(将地址寄存器2的内容传送到操作数) 使用TAR2指令可以将地址寄存器AR1的内容(32位指针)传送给被寻址的操作数,指令格式同TAR1。其中的操作数可以是累加器1、存储双字(MD)、本地数据双字(LD)、数据双字(DBD)、背景数据双字(DID),但不 能用AR1。

 CAR(交换地址寄存器1和地址寄存器2的内容)

使用CAR指令可以交换地址寄存器AR1和地址寄存器AR2的内容,指令不需要指定操作数。指令的执行与状态位无 关,而且对状态字没有任何影响。 五. LC(定时器/计数器装载指令)

使用LC指令可以在累加器1的内容保存到累加器2中之后,将指定定时器字中当前时间值和时基值以BCD码(0~99)格式装入到累加器1中,或装指定计数器的当前计数值以BCD码(0~99)格式装入到累加器1中。指令格式如下:

LC <定时器/计数器>

文案大全

实用标准文档

六.

MOVE指令

MOVE指令为功能框形式的传送指令,能够复制字节、字或双字数据对象。应用中IN和OUT端操作数可以是常 数I、Q、M、D、L、等类型,但必须在宽度上匹配。(也就是说前面是字节后面也必须是字节,前面是字后面也必须是字,前后数据宽度上必须相同)

Q4.0的状态其实和I0.0状态是一样的,只要MOVE指令正确执行,Q4.0就接通。

第14讲 转换与比较指令

一.

转换指令

转换指令是将累加器1中的数据进行数据类型换,转换结果仍放在累加器1中(只针对STL语句表编程)。在STEP7中,可以实现BCD码与整数、整数(16位)与长整数(32位)、长整数与实数、整数的反码、整数的补码、实数求反等数据转换操作。 1. BCD码和整数到其他类型转换指令

STL形式的指令

BTI B=BCD码 T=转换 I=整数

文案大全

实用标准文档

LAD和FBD形式的指令

2. 整数和实数的码型变换指令

STL形式的指令

文案大全

实用标准文档

求补其实就是求相数,就是就反加1

LAD和FBD形式的指令

3. 实数取整指令

4. 累加器1调整指令

文案大全

实用标准文档

二.

比较指令

比较指令可完成整数、长整数或32位浮点数(实数)的相等、不等、大于或等于、小于或等于比较

1. 整数比较指令

当I0.0为ON,且MW10中的内容与MW20中的内容相等时,则M8.0驱动为ON。

2. 长整数比较指令

文案大全

实用标准文档

当IN1的内容大于或等于IN2时,则输出点接通 3. 实数比较指令

第15讲 算术运算指令与控制指令

一、 算术指令

算术运算指令可完成整数、长整数及实数的加、减、乘、除、求余、求绝对值等基本算数运算;以及32位浮点数的平方、平方根、自然对数、基于e的指数运算及三角函数等扩展算数运算 1. 基本算术运算指令

整数运算

文案大全

实用标准文档

注意:整数的除法,得出的结果只是整数,把余数去掉,只保存整数 长整数运算

长整数的运算过程和整数相似,不同的只是他是32位的长整数运算。MOD_DI是取余数运算 实数的算法(R)

文案大全

实用标准文档

2. 扩展算术运算指令

二、 控制指令

控制指令可控制程序的执行顺序,使得CPU根据不同的情况执行不同的程序 1. 跳转指令

跳转指令可以中断原有的线性程序扫描,并跳转到目标地址处重新执行线性程序扫描。目标地址由跳转指令后面的标号指定,该地址示号指出程序要跳往何处,可向前跳转,也可向后跳转(在编程中进量使用向后跳转,避免使用向前跳转使程序进入死循环),最大跳转距离为-32768或32767字。

跳转指令有无条件跳转指令、多分支跳转指令和条件跳转指令3种。 1) 无条件跳转指令(JU)

文案大全

实用标准文档

无条件跳转指令JU执行时,将直接中断当前的线性程序扫描,并跳转到由指令后面的标号所指定的目标地址处重新执行线性程序扫描。

这种指令实际上用的很少,要跳过的程序其实不编就可以

例:无条件跳转指令的使用

当程序执行到无条件跳转令时,将直接跳转到L1处执行。

2) 多分支跳转指令

多分支跳转指令JL的指令格式 JL<标号>

如果累加器1低字中低字节的内容小于JL指令和由JL指令所指定的标号之间的JU指令的数量,JL指令就会跳转到其中一条JU处执行,并由JU指令进一步跳转到目标地址;如果累加器1低字中低字节的内容为0,则直接执行JL指令下面的第一条JU指令;如果累加器1低字上低字节的内容为1,则直接执行JL指令下面的第二条JU指令;如果跳转目的地的数量太大,则JL指令跳转到目的地列表上最后一JU指令这后的第一个指令。 例:多分支跳转指令的使用

文案大全

实用标准文档

3) 条件跳转指令

例:条件跳转指令的使用。

程序示例如图所示。当I0.0与I0.1同时为’1’时,则跳转到L2处执行;否则,到L1处执行(顺序执行)

文案大全

实用标准文档

2. 子程序调用指

CLL<块标识符>指令相对用的比较多,FB功能块 FC 功能 SFB 系统功能块 SFC系统功能

第16讲 用户程序的结构与执行

一、 用户程序中用到的块

 组织块(OB):操作系统与用户程序的接口,决定用户程序的结构。如主程序是

放在OB1中

 系统功能块(SFB):S-系统 F-功能 B-块。系统功能块集成在CPU模块中,

通过SFB调用一些重要的系统功能,有存储区。每一个SFB的作用都是固定的,在CPU模块中已经配置好的,在SFC内部的程序不需要编写,应用时只需调用就行。

 系统功能(SFC):集成在CPU模块中,通过SFC调用一些重要的系统功能。无存

储区。他与SFB的的关键区别就是没有存储区,SFB有存储区他使用的时候要带DB。SFC不用跨数据块。

 功能块(FB):用户编定的包含经常使用的功能的子程序,有存储区。他的使用

和SFB大至是一样的,他们的区别是FB内的程序需用户编写,而SFB的程序是不需用户编写的。

 功能(FC):用户编写的包含经常使用的功能的子程序,无存储区。他与SFC的区别

就就是一个需用户编与程序,一个不需。也有一些系统内部配备的功能区,可直接调用。

 背景数据块(DI)调用FB和SFB时用于传递参数的数据块,在编译过程中自动生

成数据,背景数据块一定是为FB和SFB来服务的

 共享数据块(DB)存储用户数据的数据区域,供所有的块共享。所有块都可以调

用他

文案大全

实用标准文档

PLC的操作系统是通过调用OB组织块来实现的,OB组织块常用的有循环组织块,定时组织块,过程组织块,故障组织块,由操作系统调用。在每个OB块里面可以调用FB,FB里也可能调用FB,这叫嵌套。FB里也可以调用其它的SFB系统功能块、FB功能块、FC、SFC等。 1、 组织块(OB)

组织块是操作系统与用户程序的接口,由操作体系统调用,用于控制扫描循环和中断程序的执行,PLC的起动和错误处理等,有的CPU只能使用部分组织块。具体查看对应CPU的说明书

1) 组织块的起动事件及对应优先级

文案大全

实用标准文档

2) OB1

OB1是循环扫描的主程序块,它的优先级最低。其循环时间被监控。即除OB90以外,其它所有OB均可中断OB1的执行(因为OB1的优先级别最低,是1)。以下二个事件可导致操作体系统调用OB1

CPU启动完毕

OB1执行到上一个循环周期结束

3) 启动组织块OB100-OB102

当PLC接通电源后,CPU有三种起动方式,可以在STEP7中设置CPU的属性时选择其一:暖起动(Warm restart)、热起动(Hot restart)和冷起动(Cold restart)。 OB100为暖起动组织块,OB101为热起动组织块,OB102为冷起动组织块。对于OB100-OB102,CPU只在起动运行时对其进行一次扫描,其它时间只对OB1进行循环扫描。

S7-300CPU(不包含318)只有暖起动,用STEP7可以指定存储器位,定时器、计数器和数据块在电源掉电后的保持范围。

2、 功能(FC)

功能是是用户编的没有固定存储区的块,其临时变量存储在局域数据堆栈中,功能执行结束后,这些数据就丢失了。可以用共享数据区来存储那些在功能执行结束后需要保存的数据,不能为功能的局域数据分配初始值。

调用功能时,可能实际参数代替形式参数。形参是实参在逻辑块中的名称,功能不需要背景数据块。功能被调用后,可以为调用它的块提供一个数据类型为RETRUNR 的返回值。 3、 功能块(FB)

功能块是用户编写的有自己存储区(背景数据块)的块,每次调用功能时需要提供各种类型的数据给功能块,功能块也要返回变量给调用它的块。这些数据静态变量(STAT)的形式存放在指定的背景数据块(DI)中,临时变量存储在局部数据堆栈中。功能块执行完后,背景数据块中的数据不会丢失,但是不会保存局域数据堆栈中的数据。

在编写调用FB程序时,必须指定DI的编号,调用时DI被 自动打开。在编译

文案大全

实用标准文档

FB时,自动生成背景数据块中的数据。 4、 数据块

1) 共享数据块

共享数据块存储的是全局数据,所有的FB、FC或OB都可以从共享数据块中读取数据,或装某个数据写入共享数据块。如果某个逻辑块被调用,它可以使用它的的临时局域数据区(即L堆栈)。逻辑块执行结束后,其局域数据区中的数据丢失,但共享数据不会删除。 2) 背景数据块

背景数据块中的数据是伴随FB或SFB自动生成的,是FB或SFB的变量声明表中的数据(不含临时变量TEMP)。它用于传递参数,FB的实参和静态数据存储在背景数据块中。调用用功能块时,应同时指定背景数据块的编号,它只能被指定的功能访问。

5、 系统功能(SFC)和系统功能块(SFB)

系统功能是集成在S7 CPU的操作系统中预先编好的程序的逻辑块,如时间功能和块传送功能等。SFC属于操作系统的一部分,可以在用户程序中调用。与SFB相比,SFC没有存储功能。

系统功能块是为用户提供已经编好的块,可以在用户程序中调用这些块,但是用户不能修改。它们是操作系统的一部分,不占用程序空间,SFB有存储功能,其变量保存在指定给它的背景数据块中。 6、 系统数据块(SDB)

系统数据块是由STEP7产生的程序存储区,包含系统组态数据,如硬件模块参数和通信连接参数等用于CPU操作系统的数据

二、 用户程序的结构

 线性程序(线性编程)

所谓线性程序结构,就是将整个用户程序连续放置在一个循环程序块中(OB1)中,块中的程序按顺序执行,CPU通过反复执行OB1来实现自动化控制任务。这种结构和PLC所代替的硬接线继电器控制类似,CPU逐条的处理指令。事实上所有的程序都可以用线性结构实现,不过线性结构一般适用于相对简单的程序编写。  分部式程序(分部编程,分块编程)

所谓分部程序,就是将整个程序按任务分成若干个部分,并分别放置在不同的功能(FC)、功能块(FB)及组织块中,在一个块中可以进一步分解成段。在组织块OB1中,包含按顺序调用其他块的指令,并控制程序执行。

如用300编写一个机械手的程序,把自动编写在FC中,把手动编定在FB中,然后通过组织块OB1调用,这就是分部式编程结构

在分部程序中,既无数据交换,也不存在重复利用的程序代码。功能(FC)和功能块(FB)不传递也不接收参数,分部程序结构的编程效率比线性程序有所提高,程序测试也较方便,对程序员的要求也不太高。对不太复杂的控制程序可考虑采用这种程序结构

 结构化程序(结构化编程或模块化编程)

所谓结构化程序,就是处理复杂的自动化控制任务的过程中,为了使任务更易于控制,常把过程要求类似或相关的功能进行分类,分割为可用于几个任务的通用解决方案的小任务,这些小任务以相应的程序段表示,称为块(FC或FB)。OB1通过调用这些程序来完成整个自动化控制任务。

结构化程序的特点是每个块(FC或FB)在OB1中可能会被多次调用,以完成具有

文案大全

实用标准文档

相同过程工艺要求的不同控制对象。这种结构可简化程序设计过程、减小代码长度、提高编程效率,比较适合地较复杂自动化控制任务的设计。

三、 I/O过程映像

第一步:读输入写入到映像寄存器保存

第二步:执行用户程序,从映像寄存器读输入状态 第三步:刷新输出,输出 四、 程序执行

文案大全

实用标准文档

第十七讲:数据块

数据块定义在S7 CPU的存储器中,用户可在存储器中建立一个或多个数据块。每个数据块可大可小,但CPU对数据据数量及总量有限制。

数据块(DB)可用来存储用户程序中逻辑块的变量数据(如:数值)。与临时数据不同,当逻辑块执行结束或数据关闭时,数据块中的数据保护不变。

用户程序可以以位、字节、字或双字操作访问数据块中的数据,可以使用符号或绝对地址。

一. 数据块的分类

共享数据块又称全局数据块。用于存储全局数据,所有的逻辑块(OB组织块、FC功能、FB功能块)都可以访问共享数据块存储的信息。

背景数据块用作私用存储器区,即用作协功能块(FB)的存储器,FB的参数和静态变量安排在它的背景数据块中,背景数据块不是由用户编辑的,而是由编辑器生成的。

用户定义数据块(DB)是以UDT为模板所生成的数据块。创建用户定义数据块(DB)之前,必须先创建一个用户定义数据类型,如UDT1,并在LAD S7程序编辑器内定义 二. 数据块的数据结构

在STEP7中数据块的数据类型可以采用基本数据类型,复杂数据类型或用户定义数据类型(UDT) 1. 基本数据类型

根据IE1131-3定义,长度不超过32位,可利用STEP7基本指令处理,能完全装入S7处理器的累加器中,基本数据类型包括:

 位数据类型:BOOL 、BYTE字节、WORD16位字、DWORD32位双字、CHAR字符  数字数据类型:INT16位整数、 DINT32位长整数、REAL32浮点数

 定时器类型:S5TIME S5数据类型、TIME 一般数据类型、DATE日期类型 、

TIME-OF-DAT 日期时间类型

2. 复杂数据类型

复杂数据类型只能结合共享数据块的变量声明表使用。复杂数据类型可大于32位,用装入指令不能把复杂数据类型完全装入累加器,一般利用库中的标准块(”IEC”S7程序)处理复杂数据类型,复杂数据类型包括  时间(DATE-AND-TIME)类型  数组(ARRAY)类型  结构(STRUCT)类型  字符串(STRING)数型 3. 用户定义数据类型

STEP-7允许利用数据块编辑器,将基本数据类型和复杂数据类型组合成长度大于32位用户定义数据类型(UDT)。用户定义数据类型不能存储在PLC中,只能存储在硬盘上的UDT块中,可以用用户定义数据类型作模版建位数据块,以节省录入时间,可用于建立结构化数据块,建立包含几个相同单元的矩降,在带有给定结构的FC和FB中建立局部变量。

例:创建用户定义数据类型:UDT1

创建一个名乐为UDT1的用户定义数据类型,数据结构如下,则可按以下几个步骤完成。

文案大全

实用标准文档

①点击块文件夹 数据类型属性 对话框 ③输入UDT的名称 ②选择插入“数据类型” ④确认

文案大全

实用标准文档

三. 建立数据块

在STEP7中,为了避免出现系统错误,在使用数据之前,必须先建立数据块,并在块中定义变量(包括变量符号名、数据类型以及初始值等)。数据块中变量的顺序及类型决定了数据块的数据结构,变量的数量决定了数据块的大小,数据块建立后,还必须同程序块一起下载到CPU中,才能被程序块访问。 建立数据块

①点击块文件数据块属性 对话框 ③输入DB的名称 My_DB ④选择DB的类型 可选择输入数据块的符号名 ②选择插入DB

①点击块文件数据块属性 对话框 ③输入DB的名称 My_DB ④选择DB的类型 可选择输入数据块的符号名 ②选择插入DB

文案大全

实用标准文档

四. 访问数据块

在用户程序中可能存在多个数据块,而每个数据块的数据结构并不完全相同,因此在访问数据块时,必须指明数据块的编号、数据类型与位置。如果访问不存在的数据单元或数据块,而且没有编错误处理OB块,CPU将进入STOP模式。 寻址数据块

访问数据块

在SPEP7中可以采用传统访问方式,即先打开后访问;也可以采用完全表示的直接访问方式

用指令OPN DB……。打开共享数据块(自动关闭之前打开的数据块),如果DB已经打开,则可以装入(L)或传送(T)指令访问数据块

[例]打开并访问共享数据块

直接访问数据块

所谓直接访问数据块,就是在指令中同时给出数据块的编号和数据在数据块中的地

文案大全

实用标准文档

址。可以用绝对地址,也可以用符号地址直接访问数据块。

用绝对地址直接访问数据块,如;

把DB1中DBW2的数据装入累加器中

把累加器中的数据写入到DB1中的DBW4中 用符号地址来访问数据块,如:

第18讲 逻辑块的结构与编程

一.

逻辑块(FC和FB)的结构

功能(FC)、功能块(FB)和组织块(OB)称为逻辑块(或程序块)、功能块(FB)有一个数据结构与该功能块的参数完全相同的数据块、称为背景数据块,背景数据块依附于功能块,它随着功能块的调用而打开,随着功能块的结束而关闭。存放在背景数据块中的数据在功能块结束时继续保持。而功能(FC)则不需要背景数据块,功能调用结束后数据不能保持。组织块(OB)是由操作系统直接调用的逻辑块。

逻辑块(OB.FB.FC)由变量声明表、代码及其属性等几部分组成。  局部变量声明表(局部数据)  逻辑块局部变量的数据类型 1. 局部变量声明表

每一个逻辑块前部都有一个变量声明表,称为局部变量声明表。

局部数据分为参数和局部变量两大类,局部变量又包括静态变量和临时变量(暂态变量两种)

对于功能能块(FB),操作系统为参数及静态变量分配的存储空间是背景数据块。这样参数变量在背景数据块中留有运行结果备份,在调用FB时,若没有提供实际参数,则功能块使用背景数据块中的数值,操作系统在L堆栈中给FB临时变量分配存储空间。

对于功能(FC),操作系统在L堆栈中给FC临时变量分配存储空间,由于没有背景数据块,因而FC不能使用静态变量。输入输出I/O参数以指向实参的指针形式存储在操作系统为参数传递而保留的额外空间中。

对于组织块(OB)来说,其调用是由操作系统管理的,用户不能参与,因此,OB只有定义在L堆栈中的临时变量。

文案大全

实用标准文档

2. 逻辑块局部变量的数据类型

局部变量可以是基本数据类型或数据类型,也可以是专门用与参数传递的所谓的”参数类型”。参数类型包括定时器、计数器、块的址或指针等。

二.

逻辑块(FC和FB)的编程

对逻辑块编程时必须编辑以下三个部分:

变量声明:分别定义形参、静态变量和临时变量(FC块中不包括静态变量);确定各变量的声明类型(Deel.)、变量名(Name)、和数据类型(Data type),还要为变量设置初始值(Initial value)。如果需要还可为变量注释(Comment)。在增量编程模式下,STEP7自动产生局部变量地址(Address)

程序块:对将要由PLC进行处理的块代码进行编程。

块属性;块属性包含了其它附加的信息,例如由系统输入的时间标志或路径,此外也可输入相关详细资料 1) 临时变量的定义和使用

2) 定义形式参数

文案大全

实用标准文档

选择参数类型 输入参数名称 从下拉列表中选择数据类型 参数注解 定义输入参数 定义输出参数 定义输入/输出参数 数据类型下拉列表 3. 编写控制程序

编定逻辑块(FC和FB)程序时,可以用以下两种方式使用局部变量: a) 使用变量名,此时变量名前加缀’#’,以区别于在符号表中定义的符号

地址,增量方式下,前缀会自动生成 b) 直接使用局部变量地址,这种方式只对背景数块和L堆栈有效

在调用FB块时,需要说明其背景数据块,背景数据块应在调用前生成,其顺序格式与变量声明表必须保持一致

第19讲:不带参数功能(FC)的编程与应用

无参功能(FC),(不带参数的功能)是指在编辑功能时,在局步变量声明不进行形式的定义,在功能中直接使用绝对地址完成控制程序。这种方式一般应用于分部式结构的程序编写,每个功能实现整个控制任务的一部分,不重复调用。

下面以一个实际的项止为例来讲解不带参数功能FC的编程与应用 一、 项目要求

搅拌控制系统程序设计

料 A 料 B 进料泵 1 进料泵 2 高液 位传感器 中液位传感器 搅拌器低液 位传 感器 料 C 放料泵 启动 起动停止 文案大全

实用标准文档

4. 控制说明

如图所示为一搅拌控制系统,由3个开关量液位传感器分别检测液的高、中、底。现在求对A.B两种液体原料按等比例混合,请编写控制程序

要求,按起动按钮后系统自动运行,首先打开进料泵1开始加入液料A,到中液位后传感器动作,则关闭进料泵1,打开进料泵2.开始加入液料B,到高液位后传感器动作,关闭进料泵2,起动搅拌器,10S后关闭搅拌器,开启放料泵,当低液位传感器动作后,延时5S后关闭放料泵,按停止按扭,系统立即停止动行。

二、 创建项目与编程

1、 创建S7项目

创建S7项目,并命名为“无参”项目包含组织块OB1和OB100。项目命名可以自定义,组织块1是主程序,100是初始化程序。 2、 硬件配置

在“无参FC”项目内打开“SMIATIC 300”文件夹,打开硬件配置窗品,并完成硬件配置。

3、 编辑符号表

符号表可以编辑也可不编,如果I/O点比较多的话为了编程的方便建议编辑符号表

文案大全

实用标准文档

4、 规划程序结构

操作系统 OB100:初始化程序 OB1 主循环 FC1: 液料A控制程序 FC2: 液料B控制程序 FC3: 搅拌器控制程序 FC4: 出料控制程序 5、 编辑功能(FC)

在无参FC项目内选择“块”然后反复执行菜单命令“插入对象”“功能”,分别创建4个功能(FC),由于在符号表内已经为FC1-4定义了符号名,因此在创建FC时属性对话框内系统会自动添加符号名。  FC1控制程序

当进料泵1工作时,接收到中液位信号I0.3时,接通一个上升沿信号。把进料泵Q4.0关闭,打开进料B(Q4.1)  FC2控制程序

当进料泵B工作时,接收到高液位信号I0.2时,接通一个上升沿信号,

文案大全

实用标准文档

关闭进料泵B,打开搅拌器Q4.2  FC3控制程序

文案大全

搅拌器Q4,2工作时,接通一个10S定时器

当定时器时间到达后接通一个上升沿信号,关闭搅拌器,同时打开出料阀Q4.3

FC4控制程序

当出料阀工作时,接到I0.4低液信号断开信号时,接通最低液位标志M0.1位

M0.1接通后启动T2接通延时定时器,当定时时间到达后T2接通,同时关闭出料阀,把最低液位标志位清0

实用标准文档

 OB100控制程序

PLC上电后不 管系统启动还是停止都把相应的位初始化为0  OB1控制程序

第20讲 带参数功能FC的编程与应用

所谓有参功能(FC),是指编辑功(FC)时,在局部变量声明表内定义了形式参数,在功能(FC)中使用了虚拟的符号地址完成控制程序的编程 ,以便在其它块中能重复调用有参功能(FC),这种方式一般应用于结构化程序编写 例1:多级分频控制程序设计

文案大全

实用标准文档

本例拟在功能FC1中编写二分频控制程序,然后在OB1中通过调用FC1实现多级分频器的功能,多级为频器的时序关系如图所示。其中I0.0为多级分频器的脉冲输入端;Q0.4~Q4.3分别为2、4、8、16分频分频器的脉冲输入端;Q4.4~Q4.7分别2、4、8、16分频指示驱动输出端。

1234567891011121314151617181920212223242526272829303132I0.0Q4.0/Q4.4/M0.0Q4.1/Q4.5/M0.1Q4.2/Q4.6/M0.2Q4.3/Q4.7/M0.3 编辑有参功能(FC)

5. 创建多级分频器的S7项目

使用菜单创建多级分频器的S7项目,并命名为”有参FC” 6. 硬件配置

打开300管理器,双击硬件配置图标打开硬件配置窗口,并按图所示完成硬件配置

7. 编写符号表

8. 规划程序结构

文案大全

实用标准文档

操作系统 OB1 主循环 调用FC1:实现2分频 调用FC1: 实现4分频 调用FC1: 实现8分频 调用FC1: 实现16分频 9. 创建有参功能FC1

选择“有参FC”项目,在块中插入一个功能,并命名为“FC1” 1. 编辑FC1的变量声明表

在FC1的变量声明表内,声明4个参数,见下表

2. 编辑FC1的控制程序

二分频器的时序如图所示,分析二分频器的时序图可以看到,输入信号每出现一个上升沿,输出便改变一次状态,据此可采用上跳沿检测指令实现。

S_INS_OUTF_P 如果输入信号S_IN出现上升沿,则对S_OUT取反,然后将S_OUT的信号装态送LED显示;否则,程序直接跳转到LP1(跳转信号位),将S_OUT的信号状态送LED显示。

文案大全

实用标准文档

第21讲:基于S7-300PLC的多机组控制

文案大全

实用标准文档

一、 电动机组控制要求如下:

1. 该机组总共有4台电机,每台电机都要求Y-△降压启动。

2. 启动时按下启动按钮,M1电机启动,然后每隔10S启动一台,最后M1到M4四

台电机全部启动

3. 停止时实现逆序停止,即按下停止按钮,M4先停止,过10S后M3也停止,再

过10S后M2也停止,再过10S后M1电机也停止,这样电机全部停止

4. 任一台电机启动时,控制电源的接触器和Y形接法的接触器接通电源8秒后,Y

形接触断开,1秒后△接法接触器动作接通。

二、 分析

1、 每台电机都要求有Y-△降压启动。控制一台电机要用到三个接触器,其中第

一个控制电机电源,每二个控制电机绕组Y形接法,第三个控制电机绕给角接法。所以要控制四台电机的机,PLC总共要控制12个接触器。

2、 因为每台电机的启动过程相同,所以可以设计一个FC功能来实现电机的启

动。然后在主程序OB1中来多次调用FC,就可以实现对电机的启动与停止。

三、 I/O分配

启动按钮接于I0.0 停止按钮接于I0.1

各输出点的分配如下表所示

四、 编定PLC控制程序

1. 首先编写FC1功能。FC1实现对电机的启动与停止控制 2. 编定OB1主程序。 五、 软件操作

第22节:S7-300功能块FB的编程与应用

功能块(FB)在程序的体系结构中位于组织块之下,它包含程序的一部分,这部分程序在OB1中可以多次调用,功能块的所有形参和静态数据都存储在一个单独的,被指定给该

文案大全

实用标准文档

功能块的数据块(DB)中,该数据块被称为背景数据块,当调用FB时,该背景数据块会自动打开,实际参数的值被存储在背景数据块中;当块退出时,背景数据块中的数据仍然保持。

一. 编辑无静态参数的功能块(FB)

二. 在OB1中调用无静态参数的功能块(FB) 例:水箱水位控制程序设计

Y1 UH1 水箱1 水箱2 Y3 UH2 水箱3 Y5 UH3 UL1 UL2 UL3 Y2 SB1 SB2 Y4 SB3 SB4 Y6 SB5 SB6

系统有3个贮水箱,每个水箱有2个液位传感器,UH1.UH2.UH3为高液位传感器,“1”有效;Y1.Y3,Y5分别为3个贮水水箱进水电磁阀;Y2.Y4.Y6分别为3个贮水水箱放水电磁阀,SB1.SB4.SB6分别为3个贮水箱放水电磁阀手动开启按钮;SB2.SB4.SB6分别为3个贮水箱放水电磁手动关闭按钮。

控制要求:SB1.SB3.SB5在PLC外部操作设定,通过人为的方式,按随机的顺序将水箱放空,只要检测到水箱“空”的信号,系统自动地向水箱注水,直到检测到水箱“满”信号为止,水箱注水的顺序要与水箱放空的顺序相同,每次只能对一个水箱时行注水操作。

1. 创建S7项目

使用菜单创建水箱水位控制系统的S7项目,并命名为“无静参FB”,项目包含组织块OB1和OB100 2. 硬件配置

在“无静参FB”项目内找开硬件配置窗口,并按图所示完成硬件配置

3. 编写符号表

文案大全

实用标准文档

4. 规划程序结构

启动 OB100 正 常 循 环 FB1 OB1 FB1 B1背景 D 2 B背景 DFB1 3 B背景 D 5. 编辑功能块(FB1)

在项目中创建功能块FB1,由于在符号表内已经为FB1定义了符号名,因此在FB1属性对话框内系统会自动添加符号名“水箱控制”  定义局部变量  编定程序代码

1) 与功能不同,在功能块参数表内还有扩展地址和结地址选项。

文案大全

实用标准文档

2) 编写程序

6. 建立背景数据块(DI)

7. 编辑启动组织块OB100

文案大全

实用标准文档

8. 在主程序中调用无静参功能块FB

为FB1指定背景数据块 可调用的功能块FB1 为FB1赋实际参数 在OB1内调用FB1

9. 编写主程序

文案大全

实用标准文档

第23讲 多重背景数据块的使用

例:发电机组控制系统设计-使用多重背景

设某发电机组由1台汽油发动机和1台柴油发动机组成,现要求用PLC控制发动机组,使各台发电机的转速稳定在设定速度上,并控制散热风扇的启动和延时关闭。每台发动机均设置一个启动按钮和一个停止按钮。

1. 创建S7项目

使用菜单创建一个发动机组控制系统的 S7项止,并命名为“多重背景”。CPU选CPU 315 -2DP,项目包含组织块OB1 2. 硬件配置

在“多重背景”项目内打开硬件文件,配置硬件如下图

3. 编辑符号表

文案大全

实用标准文档

4. 规划程序结构

FB10为上层功能块,它把FB10作为其中“局部实例”,通过二次调用本地实例,分别实现对汽油机和柴油机的控制,这种调用不占用数据块DB1和DB2,它将每次调用的数据存储到体系的上层功能块FB10背景数据块DB10中。 5. 编辑功能(FC)

1) 定义局部变量声明表

FC1用来实现发动机(汽油或柴油机)的风扇控制,按照控制要求,当发动机起动时,风扇应立即起动;当发动机停机后,风扇应延时关闭,因此FC1需要一个发动机起动信号,一个风扇控制信号和一个延时定时器。

2) 编辑FC1的控制程序

FC1实现的控制要求:发动机起动时风扇起动,当发动机再次关闭后,风扇继续动行4S,然后停止,定时器采用断电延时定时器,控制程序如下图

文案大全

实用标准文档

6. 编辑共享数据块

共享数扭块DB3可为FB1保存发动机(汽油机和柴油机)的实际转速,当发动机转速都达到预设速度时,还可以保存该状态的标志数据。

7. 编辑功能块(FB)

在该系统的程序结构内,有2个功能块:FB1和FB10。FB1为低层功能块,所以应首先创建编辑;FB10为上层功能块,可以调用FB1  编辑低层功能块FB1

在多重背景项目内创建FB1,定义功能块FB1的变量声明表

 编定功能块FB1的控制程序

FB1主要实现动机的起停控制及速度监视功能,其控制程序如下图

 编辑上层功能块FB10

在项止内创建FB10,在FB10的属性对话框内激活“多实例功能”选项

文案大全

实用标准文档

 定义功能FB10的变量声明表

要将FB1作为FB10的一个“局部背景”调用,需要在FB10的变量声明表中为FB1的调用声明不同名称的静态变量,数据数型为FB1

 编写功能块FB10的控制程序

在变量声明表内完成FB1类型的局部实例,声明后,在程序元素目录的“背景数据”目录中就会出现所声明的多重实例,如图所示,接下来可在FB10代码区调用FB1的“局部实例”

①声明FB1的2个“局部实例” ③调用“局部实例” ②“局部实例”出现在编程元素目录中

文案大全

实用标准文档

 编写功能块(FB10)的控制程序

调用FB1局部实例时,不再使用独立的背景数据块,FB1的实例数据位于FB10的实例数据块DB10中。发动机的实际转速可直接从共享数据块中午到,如DB3.DBW2

8. 生成多重背景数据块DB10

在项目中创建一个与FB10相关联的多重背景数据DB10.

9. 在OB1中调用功能(FC)及上层功能块(FB)

文案大全

实用标准文档

第24讲 组织块与中断处理(一)

中断处理用来实现对特殊内部事件或外部事件的快速响应。CPU检测到中断请求时,立即响应中断,调用中断源对应的中断程序(OB)。执行完中断程序后,反回被中断的程序中。

中断源类型主要有:I/O模块的硬件中断(外部中断),软件中断,例如日期时间中断、延时中断、循环中断和编程错误引起的中断等(内部中断)。 一. 日期时间中断组织块

日期时间中断组织块有OB10~OB17,共8个。CPU318只能使用OB10和OB11,其余的S7-300CPU只能使用OB10。S7-400可使用的日期时间中断(OB10~OB17)的个数所CPU的型号有关

日期时间中断可以在某一特定的日期和时间执行一次,也可以从设定的日期时间开始,周期性重复执行,例如每分钟、每小时、每天、甚至每年执行一次。可以用取消(SFC28)、重新设置(SFC29)或激活(SFC30)日期时间中断。 1. 设置和起动日期时间中断

1) 用SFC28“SET_TINT”和SFC30“ACT_TINT”设置和激活日期时间中断。 2) 在硬件组态工具中设置和激活。在STEP7中打开硬件组态工具,双击机架中的

CPU模块所在行,打开设置CPU属性对话框,点击“时刻中断”选项卡,设置启动时日期中断的日期和时间,选中“激活”多选框,在在“执行”列表中选择执行方式,如图所示。将硬件组态数据下载到CPU中,可以实现日期时间中断的自动启动。

3) 用上述方法设置日期时间中断的参数,但不选择“激活”,而是在用户程序

中用SFC30激活日期时间中断

2. 查询日期时间中断

要想查询设置了哪些日期时间中断,以及这些中断什么时间发生,可以调用SFC31“QRY_TINT”查询日期时间中断。SFC31输出的状态字节STATUS如表所示。

文案大全

实用标准文档

3. 禁止与激活日期时间中断

用SFC 29“CAN_TINT”取消(禁止)日期时间中断,用SFC 28“SET_TINT”重新设置那些被禁止的日期时间中断,用SFC 30“ACT_TINT”重新激活日期时间中断。

在调用SFC 28 时,如果参数“OB10_PERIOD_EXE”为十六进制数W#16#0000,W#16#0201,W#16#0401, W#16#1001, W#16#1201,W#16#1401, W#16#1801 和W#16#2001,分别表示执行一次、每分钟、每小时、每天、每周、每月、每年和月末执行一次。

例:在I0.0的上升沿时启动日期时间中断OB10,在I0.1为1时禁止日期时间中断,每次中断使用MW2加1。从2010年2月27日8时开始,每分钟中断一次,每次中断MW2被加1。

要实现以上功能,得使用IEC D_TOD_TD(FC3)来合并日期和时间,它在程序编程器左边的指令目录与程序库窗口的Libraries/Standard Library/IEC Function Blocks文件夹中,如图所示

在STEP7中生成项目,为了便于调用,对日期时间中断的操作都放在功能FC12中,在OB1中调用FC12。在FC12中设一个临时变量“OUT_TIME_DATE”,为一个日期时间变量类型FC12程序如图所示。

文案大全

实用标准文档

二.

延时中断组织块

PLC中的普通定时器的工作与扫描工作方式有关,其定时精度受到不断变化的循环周期的影响。使用延时中断可以获得精度较高的延时,延时中断以ms为单位定时。

S7提供了4个延时中断OB(20-23),CPU可以使用的延时中断OB的个数与CPU的型号有关,S7-300(不含CPU318)只能使用OB20。用SFC32起动,经过设定的时间触发中断,调用SFC32指定的OB。延时中断可以用用SFC33取消。用SFC34查询延时中断的状态,它输出的状态字节STATUS如表所示

例:在主程序OB1中实现以下功能;

在I0,0的上升沿用SFC32起动延时中断OB20,10S后OB20被调用,在OB20中将

文案大全

实用标准文档

Q4.0置位,并立即输出。在延时过程中如果I0.1由0变为1,在OB1中用SFC33取消延时中断,OB20不会再被调用。I0.2由0变为1时Q4.0被复位。

文案大全

实用标准文档

第25讲:组织块与中断处理(二)

一、 循环中断组织块

循环中断组织块用于按一定时间间隔循环执行中断程序,例如周期性地定时执行某一段程序,间隔时间从STOP切换到RUN模式时开始计算。

循环中断组织块OB30-OB38默认的时间间隔和中断优先级别如表所示。CPU318只能使用OB32和OB35,其余的S7-300CPU只能使用OB35,400CPU呆以使用的循环中断OB的个数与CPU型号有关。

例:在I0.0的上升沿起动OB35对应的循环中断,在I0.1的上升沿禁止OB35对应的循环中断,在OB35中使用MW2加1。

在STEP7中生成一个项目,选用CPU312C,在硬件组态工具中打开CPU属性的组态窗口,由“周期循环”选项卡可知只能用OB35,其循环周期值的默认值为100ms,将它修改为1000ms,将组态下载到CPU中。

OB1主程序

文案大全

实用标准文档

网络1调用系统功能SFC40.

网络2调用系统功能SFC39,禁用新中断,B#16#2(禁用所有新发生的指定中断。使

用OB编号指定中断,断续在诊断缓冲区中输入条目) OB35中断程序

可以用PLC仿真软件模拟运行上述程序,将程序和硬件组态下载到仿真PLC,进行RUN模式扣,可以看到每秒MW2加1,用鼠标模拟产生I0.1的脉冲,循环中断被禁止,MW2停止加1。用鼠标模拟产生I0.0的脉冲,循环中断被激活在,MW2又开始加1 二、 硬件中断组织块

硬件中断组织块(OB40-OB47)用于块速响应信号模块(SM,即输入/输出模块)、通信处理器(CF)和功能模块(FM)的信号变化。具有中断能力的信号模块将中断信号传送到CPU时,或者当协能模块产生一个中断信号时,将触发硬件中断。

CPU318只能使用OB40-OB41,其余S7-300 CPU只能使用OB40。S7-400 CPU可以使用的硬件中断OB的个数与CPU的型号有关。

文案大全

实用标准文档

例;CPU 313C-2DP集成的16点数字量输入I124.0-125.7可以逐点设置中断特性,通过OB40对应的硬件中断,在I124.0的上升沿将CPU集成的数字量输出Q124.0置位,在I124.1的下降沿将Q124.0复位。此外要求在I0.2的上升沿时激活OB40对应的硬件中断,在I0.3下降沿标止OB40对应的硬件中断。

硬件组态

在“CPU313”下面“DI”属性对话框中点“输入”对话框

选择硬件条件0.0上升沿,和0.1下降沿

文案大全

实用标准文档

OB40中断程序

文案大全

实用标准文档

以上程序主要确定发生中断的具体地址

在OB40程序中,OB_MDL_ADDR是触发中断的模块的起始字节地址,OB_POINT_ADDR是发生中断的模块内的位地址。这两个数据为OB40的临时变量参数。 注意:在使用硬 件中断中,不能直接用鼠标接通I0.0中断位

下面介绍在PLCSIM仿真软件中,模拟硬件中断方法。将仿真PLC切换到RUN模式下,用鼠标模拟产生一个I0.2的脉冲输入信号,激活OB40对就的硬件中断。用PLCSIM的菜单命令Execute→Trigger Error OB→Hardware Interrupt (OB40-OB47)…”打开“Hardware Interrupt (OB40-OB47)”,对话框如图7-83所示。在对话框中输入模块的起始地址和位地址0。按“Apply”键触发指定的硬件中断,这样就可把Q124.0置位为1。将位改为1,单击“Apply”键又使Q124.0复位为0。

第26讲:S7_GRAPH的编程与应用 第27讲:交通灯GRAPH编程软件操作 第28讲:多种工作方式系统的顺序控制编程 第29讲:S7-300模拟量控制基础

一、 闭环控制与PID调节器

1. 模拟量单闭环控制系统的组成

虚线内是PLC操作

2. 闭环控制反馈极性的确定

在开环状态下运行PID控制程序。如果控制器中有积分环节,因为反馈被断开了,不能消除误差,D/A转换器的输出电压会向一个方向变化。如果假设接上执行机构,能减小误差,则为负反馈,反之为正反馈。

文案大全

实用标准文档

以温度控制为例,假设开环运行时给定值大于反馈值,若D/A转换器的输出值不断增大,如果形成闭环,将使电动调节阀的开度增大,闭五后温度反馈值将会增大,使误差减小,同此可判定系统是负反馈。 3. PID控制器的优点

1) 不需要被控制对象的数学模型 2) 结构简单,容易实现

3) 有较强的灵活性和适应性。根据被控制对象的具体情况,可采用PID控制大的

多种变化和改进的控制方式,如PI.PD和带死区的PID等。

4) 使用方便。现在很多PLC都提供PID控制功能的产品,使用简单方便。 4. PID控制器的数字化

模拟量PID控制器的输出表达式为:

mv(t): PID运算的结果 KP:比例方大倍数 ev(t):偏差(设定值减去反馈值的偏差)

Ti:积分时间常数 TD微分时间常数 M:初值

通过上以式可以看出,PID是由3部分组成 比例放大 积分作用 微分作用

需要较好的运态品质和较高的稳态精度时,可以选用PI;控制对象的惯性滞后较大时,应选择PID控制方式 5. 死区特性在PID控制中的应用

下图是一个闭环控制系统:SP是设定值

死区特性:就是控制在一定的值内(正负相差不大时)不让PID工作,防止机械设备在一定的小范围内平凡动作。设定死区特性时一定要注意,系统允许有一定的误差时才设定死区。

二、 使用SFB(或FB41)实现PID控制

1、 设定值与过程变量的处理

1) 设定值的输入

设定值的输入如图所示,浮点数格式的设定仁值(setpoint)用变量SP_INT(内部设定值)输入

文案大全

实用标准文档

2) 过程变量的输入

可以用两种方试输入过程变量(即反馈值): 用PV_IN(过程输入变量)输入浮点格式的过程变量,此时开关量PVPER_ON(外围设备过程变量)应用0状态

PVPER_ON(外围设备过程变量)输入外围设备(I/O)格式的过程变量,即用模拟量输入模块产生的数字值作为PID控制的过程变量,此时开关量PVPER_ON应为1状态

3) 外部设备过程变量转换为浮点数

外部设备(即模拟量输入模块)正常范围的最大输出值(100.0%)为27648,功能CRP_IN将外围输入值转换为-100%~+100%之间的浮点数格式的数仁,CPR_IN的输出(以%为单位)用下式试算:

PV_R = PV_PER ×100/27648

4) 外部设备过程变量的标准化

PV_NORM功能用下面的公式将CRP_IN的输出PV_R格式化:

PV_NORM的输出 = PV_R × PV_FAC + PV_OFF

式中,PV_FAC为过程变量的系数,默认值为1.0;PV_OFF为过程变量的偏移量,默认值为0.0。它们用来调节过程输入的范围。

如果设定值有物理意义,实际值(即反馈值)也可以转换为物理值。

2、 PID控制器的结构

文案大全

因篇幅问题不能全部显示,请点此查看更多更全内容

Top