s7300PLC编程方法实例
Rack0
Recon
Recon
S7-300指令介绍(1)
常开接点和常闭接点
常开接点相当于一个简单的开关,开关合上, 电路接通,开关打开,电路断开
常闭接点也相当于简单的开关,但逻辑关系和 常开接点相反,开关合上,电路断开,开关打 开,电路接通
Recon
S7-300指令介绍(2)
输出线圈方式
Recon
S7-300指令介绍(6)
整数算术运算指令
整数算术运算指令在整数(或双整数) IN1 和 IN2 之 间 进 行 加 ( ADD ) 、 减 ( SUB ) 、 乘 ( MUL ) 、 除 ( DIV ) 等 运算,结果在OUT中输出
Recon
S7-300指令介绍(7)
浮点算术运算指令
浮点数运算的种类有: 加法(ADD)、减法(SUB)、 乘法(MUL)、除法(DIV)、 绝对值(ABS)、 平方(SQR)、平方根(SQRT)、 自然对数(LN)、e指数(EXP)、 正弦(SIN)、反正弦(ASIN)、 余弦(COS)、反余弦(ACOS)、 正切(TAN)、反正切(ATAN) 等运算
Recon
S7-300常用模块介绍
数字量模块——(SM321 DI、SM322 DO、 SM323 DI/DO)
DI模块可检测开关量、数字量等开关状态 量,DO模块可输出开关量控制外部执行单 元,两者配合可实现各种复杂的工作流程
Recon
S7-300常用模块介绍
模拟量模块——(SM331 AI、SM332 AO, SM334 AI/AO)
中型:256-1,023点,占18.2%: 主要用作控制系统运用于冶金,电力,造纸,化工,加工、 组装生产流水线,包装流水线等领域。
小型:64-255点,占23..8%: 主要用于设备控制,也有用作小型系统控制器的。
微型:少于64点,占40.2%: 主要用于单台设备的监控,在纺织机械,数控机床,塑料 加工机械,小型包装机械上运用广泛。
PLC的特点
1、高可靠性 2、丰富的I/O接口模块 3、采用模块化结构 4、编程简单易学 5、安装简单,维修方便
Recon
PLC的应用范围
微型 40.2%
小型 23.8%
大型 中型 17.8% 18.2%
中国PLC市场组成结构图
Recon
Recon
PLC的应用范围(续)
大型:不少于1,024个点,占17.8%: 主要用于冶金,自动化生产线和电厂。
第二部分:S7-300介绍
1、硬件结构 2、指令介绍 3、数据块的使用 4、功能的使用
Recon
Recon
S7-300硬件结构
S7-300系列PLC采用模块化硬件结构,各模 块能以各种不同方式组合在一起,这表明可将控 制系统设计成完全符合应用需要。
西门子的常用模块有:电源模块、CPU模块、 数字量模块、模拟量模块、各种功能模块、接口 模块、RS485模块等类型。每种模块都有许多具体 型号,以适合不同的应用场合 。
Recon
S7-300指令介绍(4)
转换指令
转换指令把IN参数的内容转换成另外一种格 式,并在OUT中输出结果。 可转换的数据格式:BCD码、整数ห้องสมุดไป่ตู้双整数、 浮点数等
Recon
S7-300指令介绍(5)
定时器指令
定时器指令用在各类需要定时、延时、 等时间操作的场合。 有 脉 冲 ( PULSE ) 、 扩 展 脉 冲 (PEXT)、接通延时(ODT)、保 持型接通延时(ODTS)、断开延时 (OFFDT)等种类,适合不同的延时 /定时要求
输出线圈就如同继电器中的线圈,如果有电流 通过线圈,则对应地址的开关被接通,反之则 断开
线圈复位指令当有电流通过时,线圈无论当前 是什么状态,对应的地址都被清零并保持。线 圈无电流通过,则线圈保持当前状态
线圈置位指令当有电流通过时,线圈无论当前 是什么状态,对应的地址都被置位,并保持。 线圈无电流通过,则线圈保持当前状态
接口模块——(IM360、IM361、IM365) 当系统中模块的数量超过8个(一排的最 大模块数量),就需要接口模块来扩展更 多的模块导轨排
Recon
S7-300常用模块介绍
RS485模块—— 可自由编程的串行RS485口,可连接各种 RS485接口的设备
更多Rack
S7-300导轨排
Rack2
S7-300常用模块介绍
Recon
电源模块—— 为S7-300系统提供稳定可靠的电源
Recon
S7-300常用模块介绍
CPU模块——(CPU 312、CPU313、 CPU314、CPU315、CPU316、CPU318)
是S7-300系统的控制单元,用户程序和系 统程序都在CPU模块中运行。我们常用的 是CPU314系列的模块
Recon
PLC
编程思路和方法
培训内容
概述 S7-300介绍 编程实例演示
Recon
第一部分:概 述
1、PLC的定义 2、PLC的特点 3、PLC的应用范围
Recon
Recon
PLC的定义
可编程控制器(Programmable Controller)是 计算机家族中的一员,是为工业控制应用而设计 制造的。早期的可编程控制器称作可编程逻辑控 制器(Programmable Logic Controller),简称 PLC,它主要用来代替继电器实现逻辑控制。随 着技术的发展,这种装置的功能已经大大超过了 逻辑控制的范围,因此,今天这种装置称作可编 程控制器,简称PC。但是为了避免与个人计算机 (Personal Computer)的简称混淆,所以将可 编程控制器简称PLC。
Recon
S7-300指令介绍(3)
比较指令
比较指令分整数比较、双整数比较、实数比
较等; 比较方式有:IN1==INT2(等于)、IN1>IN2 (大于)、IN1>=IN2(大于或等于)、 IN1<>IN2(不等于)、IN1<IN2(小于)、 IN1<=IN2(小于或等于),当IN1和IN2之间 的关系和比较方式相一致时,指令的输出将 被置为“1”
AI模块可连接温度、压力、电压、电流等 各种传感器或变送器,检测现场的状态, AO模块可实现PID等调节机构,实现各种 需要连续调节的控制
Recon
S7-300常用模块介绍
功能模块——脉冲量模块(FM350) 专用的脉冲量模块在计量站的应用中可用 来检测脉冲式流量计的流量数值
Recon
S7-300常用模块介绍
第4章西门子PLC编程举例3(数字指令)
四、STEP 7基本数据类型
关键字 BOOL BYTE WORD DWORD CHAR S5TIME 长度 (位) 位 1 8 16 32 8 16 该类型的常数举例 True 或 False (1 或0) B#16#A9 W#16#12AF DW#16#ADAC1EF5 'w' S5T#5s_200ms
CMP ? R 实数比较
例
如果下列条件成立,则输出 Q4.0 置位: • 在输入 I0.0 和 I0.1 的信号状态为“1” • 并且 MD0 >= MD4 • 并且,输入 I0.2 的信号状态为“1”
三、 转换指令P118
下述转换指令可供使用: • BCD_I BCD 码转换为整数 • I_BCD 整数转换为BCD 码 • BCD_DI BCD 码转换为双整 数 • I_DINT 整数转换为双整数 • DI_BCD 双整数转换为BCD 码 • DI_REAL 双整数转换为浮点 数 • INV_I 整数的二进制反码 • INV_DI 双整数的二进制反码 • NEG_I 整数的二进制补码 • NEG_DI 双整数的二进制补 码 • NEG_R 浮点数求反 • ROUND 舍入为双整数 • TRUNC 舍去小数取整为双 整数 • CEIL 上取整 • FLOOR 下取整
第四章 S7-300指令系统 ——数字指令
要求: 1、了解S7-300编程软件STEP7的基本数据 类型。 2、了解S7-300系列PLC的各种数字指令 3、能编写简单程序。
一、S7-300系列PLC编成语言-STEP7
PLC的编程语言有3种: 1、梯形图(LAD) 方式 2、语句表(STL) 方式 3、功能块图(FBD) 方式 例1 梯形图方式
例1 无条件跳转
第6章 S7-300PLC指令系统及编程(1)
“与嵌套”指令用于电路块串联的编程。其指令格式如下: A( ——与嵌套开始指令 )——与嵌套结束指令
图6-6
2、“或嵌套”指令 “或嵌套”指令用于电路块并联的编程。其指令格式如下: O( ——或嵌套开始指令 )——或嵌套结束指令
图6-7
3、说明:先与后或(即电路元件先串后并)可不用嵌套指令中的 括号,如图6-8所示。
3.二分频器程序编写
图6-18 抢答器程序
二分频器是一种具有一个输入端和一个输出端的功能单元,输出频
率为输入频率的一半。实现二分频的方法有很多种,下面介绍其中
两种:
(1)利用“与”“或”指令实现二分频程序。 设输入为I1.0,输出为Q4.0,根据二分频要求I1.0接通2次,Q4.0只接
通1次。其波形如图6-19所示。
②复位/置位的LAD指令只能放在逻辑串的最右端,不能放在逻辑 串的中间,它们也属于输出指令。
③置位指令具有保持功能,即使指定位地址的“位”一直为1,直 到复位指令把它清零。
图6-11说明了复位/置位指令的用法。
图6-11
图6-11的程序中,只要I1.0一闭合,不论I1.0闭合后又断开,Q4.0 一直保持通电状态(1态,直到I2.0闭合且不论闭合后又断开,Q4.0 才断电(0态)。其功能同电动机的起停保控制电路类似。
验灯程序的编写很简单。在
PLC中用1个输入点如I3.7,其外 部连接一个常开按钮。由于I3.7 的内部触点是无数的,控制指示 灯输出点的梯形图上均并联1个 I3.7常开触点,当它闭合时指示 灯均亮,以查验灯的好坏。
2.利用触发器编写第一信号记录程序
图6-17 验灯程序
在工业现场一旦有故障发生可能随之带来多个故障,如果能找出
第5章S7-300PLC指令系统及编程(2)
T STW
//将累加器1中的0~8位传送到状态字的相应位。
6.地址寄存器内容的装入和传送指令 S7-300PLC有两个地址寄存器,即AR1和AR2。对于地址寄存 器可以不经过累加器1而直接将操作数装入和传送,或直接交换两 个地址寄存器的内容。指令示例如表5-16、表5-17所示。 使用CAR指令可以交换地址寄存器AR1 和地址寄存器AB2的内 容,指令不需要指定操作数。指令的执行与状态位无关,而且对状 态字没有任何影响。
面举一个使用的例子,如图5-65 所示。图中绘出了梯形图方块 及对应语句表程序。
(三)双整数和实数间的转换 用户程序中有时需要整数相除,相除的结果可能小于0 ,由于这些 值只能用实数表示,所以需要转换到实数。此外,其他实数运算和 比较也会用到实数转换,实数是32 位数,一般整数要转换为实数时, 须先将整数转换为双整数后再进行。 1.双整数(32 位)转换为实数(32 位) 梯形图方块指令(DI _ R )和语句表指令(DTR )均列于表5-18 中最后一条。 2.实数(32 位)转换为双整数(32 位) 为简化介绍,用图5-66 统一表示转换方块,方块中上部字符如表 5-19所示。
装入指令和传送指令有三种寻址方式:立即寻址、直接寻址和间 接寻址。 1.立即寻址的装入与传送指令 操作数是指令操作或运算的对象,寻址方式是指令取得操作数的 方式,操作数可以直接给出或间接给出。立即寻址的操作数直接在 指令中,下面是使用立即寻址的例子。
2. 直接寻址的装入与传送指令 直接寻址在指令中直接给出存储器或寄存器的区域、长度和位 置,例如用MW200 指定位存储区中的字,地址为200;MBl00表示
例如,两个整数进行大于等于比较,其程序如图5-70所示。
由上例看出,方块比较指令在逻辑串中,可等效于一个常开触点。 如果比较结果为“真”,则该常开触点闭合(意味着电流可流过), 否则触点断开。由于比较指令的使用与触点类似,可以与其它触点 串联或并联,因此比较指令不能放在逻辑串的最后。 梯形图方块指令的输入和输出均为BOOL 数,可以取自I、Q 、 M 、D 、L 。被比较数IN1和IN2的数据类型与指令类型有关,且只 能在二个同类型数据间比较。
实验指导书——S7-300编程示例
S7-300 PLC的梯形图编程示例1 与、或、非、同或、异或与:只有当I0.0和I0.1都为1时,Q0.0才能为1。
或:只要I0.0和I0.1有一个为1,Q0.0为1。
非:当I0.0为1时,Q0.0为0。
同或:只有当I0.0和I0.1状态相同时,Q0.0才为1。
异或:只有当I0.0和I0.1状态不同时,Q0.0才为1。
2 启动和复位控制结构(自锁结构)I0.0接启动按钮,I0.1接复位(停止)按钮,灯接Q0.0构成自锁结构。
自锁结构也可以通过同时使用S指令和R指令来实现。
然而同时使用S指令和R指令时,存在一种隐患,请思考是什么隐患?为了避免这种隐患,可以使用SR或者RS触发器。
或者注意:此示例使用电动机启动与停止的控制作为例子,其实很多地方都可以使用到启动和复位控制结构,大家的思路要开阔,不要被例子所局限。
比如可以利用M区域的地址替代例子中的Q地址,实现在PLC内部某些位变量的锁存和复位。
3 自锁和互锁程序4 延时通断控制程序在PLC的实际应用中,延时通断通常可采用定时器(或计数器)来实现。
定时器的串联是用一个定时器启动另一个定时器,可以实现“长延时”控制。
定时器的并联可以使多个输出在不同的时刻接通,实现输出的顺序启动。
4.1 脉冲定时控制(SP定时器)SP定时器可以用定时线圈的形式实现:请结合指令帮助,体会SP定时器的工作方式。
4.2延时接通控制(SD定时器)SD定时器可以用定时线圈的形式实现:请结合指令帮助,体会SD定时器的工作方式。
也可以使用指令块的形式实现:4.3 延时断开控制(SF定时器)延时断开控制可以用定时线圈实现:请结合指令帮助,体会SD定时器的工作方式。
4.4 顺序延时接通控制顺序延时接通是指多个被控对象相隔一定的时间,有顺序地依次起动。
实现这种控制的程序很多,例如,利用多个定时器:或者利用计数器加系统的时钟存储器实现:其中M100.5是CPU时钟位,周期为1S,在硬件组态的CPU属性中设置,如下图所示:表:时钟存储器各位的周期及频率位 7 6 5 4 3 2 1 0 周期/s 2 1.6 1 0.8 0.5 0.4 0.2 0.1 频率/Hz0.5 0.625 1 1.25 2 2.5 5 10注意:①系统的时钟存储器中各位的频率是固定的,无法更改。
s7-300PLC程序设计实例
所谓无参功能(FC),是指在编辑功能(FC)时,在局部变量声明表不进行形式参数的定义,在功能(FC)中直接使用绝对地址完成控制程序的编程。
这种方式一般应用于分部式结构的程序编写,每个功能(FC)实现整个控制任务的一部分,不重复调用。
§5.4.1 编辑无参功能(FC)§5.4.2 在OB1中调用无参功能(FC)§5.4 编辑并调用无参功能(FC)——分部程序设计【例5-4-1】搅拌控制系统程序设计器 进料泵 1进料 泵 2 放料泵 料 A 料 B 料 C控制说明如图所示为一搅拌控制系统,由3个开关量液位传感器,分别检测液位的高、中和低。
现要求对A、B两种液体原料按等比例混合,请编写控制程序。
要求:按起动按钮后系统自动运行,首先打开进料泵1,开始加入液料A→中液位传感器动作后,则关闭进料泵1,打开进料泵2,开始加入液料B→高液位传感器动作后,关闭进料泵2,起动搅拌器→搅拌10s后,关闭搅拌器,开启放料泵→当低液位传感器动作后,延时5s后关闭放料泵。
按停止按钮,系统应立即停止运行。
1.创建S7项目按照第3章所介绍的方法,创建S7项目,并命名为“无参FC ”,项目包含组织块OB1和OB100。
2.硬件配置在“无参FC ”项目内打开“SIMATIC 300 Station ”文件夹,打开硬件配置窗口,并完成硬件配置。
§5.4.1 编辑无参功能(FC)3.编辑符号表4.规划程序结构5.编辑功能(FC )在“无参FC”项目内选择“Blocks”文件夹,然后反复执行菜单命令【Insert】→【S7 Block】→【Function】,分别创建4个功能(FC):FC1、FC2、FC3和FC4。
由于在符号表内已经为FC1~FC4定义了符号名,因此在创建FC的属性对话框内系统会自动添加符号名。
✓FC1控制程序✓FC2控制程序✓FC3控制程序✓FC4控制程序✓OB100控制程序FC1的控制程序 FC2的控制程序FC3的控制程序FC4的控制程序OB100的控制程序§5.4.2 在OB1中调用无参功能(FC)可调用的功能FC 在O B1内调用FC1~FC4OB1的控制程序所谓有参功能(FC),是指编辑功能(FC)时,在局部变量声明表内定义了形式参数,在功能(FC)中使用了虚拟的符号地址完成控制程序的编程,以便在其他块中能重复调用有参功能(FC)。
电器控制与PLC技术应用 第5章 S7-300的指令系统及编程
2、计数器指令的功能框表示形式
加计数器
减计数器
可加/减计数器
3、 计数器线圈指令
LAD指令 STL指令 L C#... S C no. CU Cno. 功 能 该指令为计数器置初始值。当RLO有上升沿时,将预置值十进制数 (格式为C#...)装入累加器1中作为计数器的当前值。 加计数,程序运行时RLO没有一个上升沿时,计数值加1,若达上限 999时,停止加计数。 减计数,程序运行时RLO没有一个上升沿时,计数值减1,若达下限 0时,则停止减计数。
• 5.2.3 跳变沿检测指令
当信号状态发生变化时就产生跳变沿。指令格式见表5-3。
表5-3 跳变沿检测指令
对RLO跳变沿检测的指令 LAD指令 STL指令 FP <位地址> 功 能 存储区
RLO正跳沿检测,位地址用于存放需要检测的 RLO的上一扫描周期值,当RLO值由0变化到1时, 输出接通一个扫描周期。 Q、M、D
第5章
•
S7-300的指令系统及编程
STEP 7是与西门子公司SIMATIC S7系列PLC相配 套的支持用户开发应用程序的软件包,在STEP 7中, S7系列PLC常用的编程语言有:LAD(梯形图)、 STL(语句表)、FBD(功能块图)等。只有当编 程语言选择为LAD时,在编程环境中,选择主菜单 的Insert项的Program Elements,则编辑环境的左 面出现了指令树窗口,右面出现了用户程序窗口, 在指令树窗口中涵盖了S7-300的所有常用梯形图指 令,用户可以采用双击或拖拽的方式应用到用户程 序的需要处,即用户可以利用指令树窗口的指令在 用户程序窗口中绘制所需的梯形图程序。如图5-1所 示。其他两种常用的编程语言不提供指令帮助。
3. 装入时间值或计数值 4. 地址寄存器装入和传送 5、梯形图方块传送指令
玩转S7-300编程(28工控老鬼新浪微博)
S7-300/400PLC编程之1 OB块使用指南【工控老鬼】S7-300/400PLC编程之1 OB块使用指南【工控老鬼】S7-300/400PLC编程之2 PLC暖启动和冷启动【工控老鬼】S7-300/400PLC编程之3 模拟量处理【工控老鬼】++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++S7-300/400PLC编程之4 检测导致CPU停机的故障【工控老鬼】S7-300/400PLC编程之4 检测导致CPU停机的故障【工控老鬼】什么是诊断诊断指的是S7-300/400内部集成的识别和记录功能。
记录错误信息的区称为诊断缓冲区。
这个区的大小有赖于CPU型号 (例如:CPU 314 = 100个信息)。
当有错误时如果一个错误或事件发生时,例如:模式转换。
将发生如下事件:将发生什么?•标有时间和日期的信息被保存到诊断缓冲区中。
最近的信息保存到缓冲区的开始。
如果缓冲区满,最旧的信息将覆盖。
•将事件记入系统的状态表中。
•如果必要,将激活一个相关的错误 OB(组织块)。
错误的类型利用CPU的诊断功能,可以识别下面的错误:• CPU或模板中的系统错误• CPU中的程序错误排除故障的手段针对下列故障,应采用不同的手段予以排除:•导致CPU停机的故障,应使用“Module Information”工具。
•逻辑错误,即程序可执行但功能不能实现,应使用“Referece Data”和“Program Status”工具。
•偶尔出现的故障,即只在特定的系统状态下才出现的故障,它可能导致停机或逻辑错误。
可采用“CPU Messages”工具或生成自定义触发点“your own trigger point”。
S7-300/400PLC编程之5 符号使用指南【工控老鬼】S7-300/400PLC编程之5 符号使用指南【工控老鬼】在大家使用step7编程的时候,经常会使用到符号表功能,高效的使用符号表功能可以大大的提高编程的效率,对符号表的使用方法,工控老鬼总结如下!希望对大伙有所帮助!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ S7-300/400PLC编程之6 定时器指令【工控老鬼】在大家使用step7编程的时候,经常会使用定时器指令功能,熟练的掌握定时器指令功能可以帮助我们构造很完善的算法,对定时器指令使用方法,工控老鬼总结如下!希望对大伙有所帮助!之前讲过,可以使用S7-300PLC CPU里自带的标准时钟脉冲来做很多功能,这里我来分享一个例子,如何使用定时器功能来做任意时间间隔的标准时钟脉冲!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++S7-300/400PLC编程之7 工程应用中的信号防抖处理技巧【工控老鬼】S7-300/400PLC编程之7 工程应用中的信号防抖处理技巧【工控老鬼】++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++S7-300/400PLC编程之8 关于OB1的思考【工控老鬼】S7-300/400PLC编程之8 关于OB1的思考【工控老鬼】使用西门子S7-300/400PLC的朋友一定对Step7都不陌生,同时你们也应该对OB1如数家珍,因为你不可能不用到它,它是你的好兄弟!但是我却发现很多的朋友对它的了解还是不够深入,老鬼今天我就简单的给大家分享一下OB1的几个功能!1、信息知多少?打开OB1,在局部数据区域内,是否发现有一些系统自定义的局部变量?没错!有很多,不清楚?那就了解一下吧!2、下表描述了OB1的临时(TEMP)变量。
西门子S7-300PLC模拟量编程
西门子S7-300PLC模拟量编程西门子S7-300PLC模拟量方面的实例,包含了以下几个方面的要点:1、对变送器进行取值,并进行控制2、对模数功能块FC105 进行调用3、对AI 模块进行设置4、对AI 量程块进行选择这个实例,调试的是一个流量调节回路中,流量变送器输出2-2-MA DC信号到SM331 模拟输入模块,模块将该信号转换成浮点数,然后在程序中调用FC105将该值转换成工程量,我们就可以监视实际工程中的流量值了。
模拟量AI 采用SM311 模块是8x12Bit(8 通道12 位)对应货号是6ES7 331-7KF02-OABO,在模数转化上利用传感器或变送器的,电压或电流取出的值,到AI 模块上进行转换,然后把值传给西门子的CPU 进行处理,从而检测控制传感器的值,如图:模拟量输入模块模拟量输入用于连接电压和电流传感器、热电耦、电阻和热电阻,用来实现PLC 与模拟量过程信号的连接。
模拟量输入模块将从过程发送来的模拟信号转换成供PLC 内部处理用的数字信号。
本次工程用的是SM311 输入模块如下图所示。
该模块具有如下特点:分辨率为9 到15 位+符号位(用于不同的转换时间),可设置不同的测量范围。
通过量程模块可以机械调整电流/电压的基本测量范围。
用STEP 7硬件组态工具可进行微调。
模块把诊断和超限中断发送到可编程控制器的CPU 中。
模块向CPU 发送详细的诊断信息。
模拟量输入模块的接线方式两线制电流和四线制电流都只有两根信号线,它们之间的主要区别在于:两线制电流的两根信号线既要给传感器或者变送器供电,又要提供电流信号;而四线制电流的两根信号线只提供电流信号。
因此,通常提供两线制电流信号的传感器或者变送器是无源的;而提供四线制电流信号的传感器或者变送器是有源的。
因此,当PLC 的模板输入通道设定为连接四线制传感器时,PLC 只从模板通道的端子上采集模拟信号,如图2-3,而当PLC 的模板输入通道设定为连接二线制传感器时,如图2-2,PLC 的模拟输入模板的通道上还要向外输出一个直流24V的电源,以驱动两线制传感器工作。
S7-300许多程序实例
产品部门:AS 所属行业:金属加工机械制造业来源:SIEMENS Automation Expert Meeting 2006 Xi’An作者刘少全(西门子数控南京有限公司南京)作者周红卫(江苏新瑞机械有限公司常州)摘要:本文介绍了用S7-300控制高档压铸机的方案。
系统完成对机器顺序动作的控制,运用软件斜率调节比例阀的输出,使机器动作平滑;在压射过程中采集大量数据并以曲线的形式显示在HMI上;根据曲线可以对制品成型过程进行分析比较,可通过脉宽调制控制步进电机,调节压射过程中3个不同阶段的速度。
关键词:压铸机,脉宽调制,比例阀,软件斜率,自动调模,硬件中断,曲线AbstractThis paper introduces a solution of control system for die casting machine withS7-300 PLC. The controller will realize the control of machine sequence, use software ramp to adjust the output of the proportional valve and make the make move very smoothly; Large number of data will be sampled during die casting phase and all of the sampled data will be display in HMI with TREND curve; Analysis and comparison can be done according to the curve which is sampled during die casting phase, then the speed during die casting phase can be adjusted by stepper motor which is controlled by PWM.Key Words: Die casting machine, Pulse Width Modulation, Proportional Valve, Software Ramp, Auto Mold Adjustment, Process alarm, Curve正文:输出)SM322316DQ,DC24V,0.5A数字量输出SM33514AI4AQ 模拟量输入:移模电子尺、压射电子尺、顶针电子尺、压射压力检测模拟量输出:比例压力、比例流量IM3651P-BUS扩展机架RAIL2480mm导轨MPICable15m电缆4.照片新瑞SR150型压铸机二、控制系统构成1.硬件配置、系统结构及选择依据系统由HMI和S7-300型PLC构成。
3_S7-300PLC的编程(西门子s7-300授课资料)
本文由yyiixxster贡献ppt文档可能在WAP端浏览体验不佳。
建议您优先选择TXT,或下载源文件到本机查看。
S7-300/400PLC的编程技术的编程技术刘美俊编程语言与数据类型1 编程语言STEP-7是S7-300/400系列PLC的编程软件. 梯形图,语句表(即指令表)和功能块图是标准的STEP-7软件包配备的3种基本编程语言,这3种语言可以在STEP-7中相互转换.1 顺序功能图顺序功能图(SFC)这是一种位于其他编程语言之上的图形语言,用来编制顺序控制程序,STEP-7中的S7 Graph顺序控制图形编程语言属于可选的软件包.在这种语言中,工艺过程被划分为若干个顺序出现的步,步中包含控制输出的动作,从一步到另一步的转换由转换条件控制.用Graph表达复杂的顺序控制过程非常清晰,用于编程及故障诊断更为有效, 使PLC程序的结构更加易读,它特别适合于生产制造过程. S7 Graph具有丰富的图形,窗口和缩放功能.系统化的结构和清晰的组织显示使S7 Graph对于顺序过程的控制更加有效.2 梯形图(LAD)梯形图是使用得最多的PLC图形编程语言.梯形图与继电器电路图很相似,具有直观易懂的优点, 特别适合于数字量逻辑控制.梯形图由触点,线圈和用方框表示的指令框组成.触点代表逻辑输入条件,例如外部的开关,按钮和内部条件等.线圈通常代表逻辑运算的结果,常用来控制外部的指示灯, 交流接触器和内部的标志位等.指令框用来表示定时器,计数器或者数学运算等附加指令. 使用编程软件可以直接生成和编辑梯形图,并将它下载到PLC.触点和线圈等组成的独立电路称为网络(Network),如下图所示,编程软件自动为网络编号.梯形图中的触点和线圈可以使用物理地址,例如I0.1, Q0.3等.如果在符号表中对某些地址定义了符号,例如令I0.1的符号为"起动",在程序中可用符号地址"起动"来代替物理地址I0.0,这样使程序易于阅读和理解. 用户可以在网络号右边加上网络的标题,在网络号的下面为网络加上注释.还可以选择在梯形图下面自动加上该网络中使用的符号的信息. 在分析梯形图中的逻辑关系时,为了借用继电器电路图的分析方法,可以想象在梯形图的左有两侧垂直"电源"之间有一个左正右负的直流电源电压,有一个假想的"能流"(PowerFlow)流过线圈.利用能流这一概念,可以很好地理解和分析梯形图,能流只能从左向右流动.3 语句表(STL)S7系列PLC将指令表称为语句表(Statement List),它是一种类似于微机的汇编语言中的文本语言,多条语句组成一个程序段.语句表比较适合经验丰富的程序员使用,可以实现某些不能用梯形图或功能块图表示的功能.4)功能块图(FBD) 功能块图(FBD)使用类似于布尔代数的图形逻辑符号来表示控制逻辑.一些复杂的功能用指令框来表示,功能块图用类似于与门,或门的方框来表示逻辑运算关系. 5)结构文本(ST) 结构文本(ST)是为IEC61131-3标准创建的一种专用的高级编程语言. STEP-7的S7 SCL(结构化控制语言)是符合lEC61131-3标准的高级文本语言.它的语言结构与编程语言Pascal和C相似,所以特别适合于习惯使用高级编程语言的人使用.6)S7 HiGraph编程语言图形编程语言S7 HiGraph属于可选软件包,它用状态图(State Graphs)来描述异步,非顺序控制过程的编程语言. 7)S7 CFC编程语言可选软件包CFC(Continuous Function Chart,连续功能图)用图形方式连接程序库中以块的形式提供的各种功能,包括从简单的逻辑操作到复杂的闭环和开环控制等领域.编程时将这些块复制到图中并用线连接起来即可.基本数据类型(1)基本数据类型;(2)用户通过组合基本数据类型生成的复合数据类型; (3)可用来定义传送FB(功能块)和FC(功能)参数的参数类型. 下面介绍STEP7的基本数据类型: 1)位(bit) 位数据的数据类型为BOOL(布尔)型,在编程软件中BOOL 变量的值1和0常用英语单词TURE(真)和FALSE(假)来表示. 位存储单元的地址由字节地址和位地址组成,例如I3.2中的区域标示符"I"表示输入(Input),字节地址为3,位地址为2,如图所示.这种存取方式称为"字节.位"寻址方式.输入字节IB3(B是Byte的缩写)由I3.0~I3.7这8位组成.位数据的表示2)字节(Byte) 8位二进制数组成1个字节(Byte,如下图,其中的第0位为最低位(LSB),第7位为最高位(MSB).3)字(Word) 相邻两个字节组成一个字,字用来表示无符号数.MWl00是由MB1OO和MB1O1组成的1个字,如图5.4.3,MB00为高位字节.MW100中的M为区域标示符,W表示字,100为字的起始字节MB1O0的地址.字的取值范围为W#16#0000~W#16#FFFF. 4) 双字(Double Word) 两个字组成1个双字,双字用来表示无符号数.MD100是由MB100~MB103组成的1个双字,(见上图),MB100为高位宇节, D表示双字,100为双字的起始字节MB100的地址.双字的取值范围为DW#16#0000_0000~DW#16#FFFF_FFFF.常数的表示方法常数值可以是字节,字或双字,CPU以二进制方式存储常数,常数也可以用十进制,十六进制,ASCII 码或浮点数形式来表示.B#16#,W#16#,DW#16#分别用来表示十六进制字节,字和双字常数.2#用来表示二进制常数,例如2#1101_1010. L#为32位双整数常数,例如L# +5. P#为地址指针常数,例如P#M2.O是M2.0的地址. S5T#是16位S5时间常数,格式为S5T# aD_bH_cM_dS_eMS.其中a,b,c,d,e分别是日, 小时,分,秒和毫秒的数值.输入时可以省掉下划线, 例如S5T#4S30MS=4s30ms,S5T#2H15M30S=2小时15分30秒. C#为计数器常数(BCD码),例如C#250.状态字状态字用于表示CPU执行指令时所具有的状态.某些指令可否执行或以何种方式执行可能取决于状态字中的某些位,指令执行时也可能改变状态字中的某些位,可以用位逻辑指令或字逻辑指令访问并检测状态字.状态字的结构如图所示.逻辑操作结果(RLO) 状态字的第1位称为逻辑操作结果(Result of Logic Operation, RLO).该位存储逻辑操作指令或比较指令的结果.在逻辑串中,RLO位的状态表示有关信号流的信息,RLO的状态为1, 表明有信号流(通),RLO的状态为0,表明无信号流(断).可用RLO触发跳转指令. 溢出位(OV) 状态字的第4位称为溢出位.当算术运算或浮点数比较指被置1,如果执行结果正常,该位被清0. 令执行时出现错误(溢出,非法操作,不规范格式)时,OV位条件码l(CCl)和条件码0(CC0) 状态字的第7位和第6位称为条件码1和条件码0.这两位结合起来用于表示在累加器1中产生的算术运算结果与0的大小关系,表1 算术运算后的CC1和CC0表2 比较,移位,字逻辑指令后的CCl和CC0寻址方式所谓寻址方式是指指令得到操作数的方式,可以直接或间接给出操作数的地址.STEP-7有4种寻址方式:立即寻址,存储器直接寻址,存储器间接寻址和寄存器间接寻址. 1 立即寻址立即寻址是对常数或常量的寻址万式,其特点是操作数直接包含在指令中,或者指令的操作数是惟一的.例如: SET AW W#16#117 // 将RLO置1 辑运算L 43 //将整数43装入累加器1中//将常数W#16#117与累加器1进行"与"逻2 存储器直接寻址存储器直接寻址的特点是直接给出操作数的存储单元地址.例如O I0.2 //对输入位I0.2进行"或"逻辑运算R Q4.0 = Ml.1 L Cl //将输出位Q4.0清"0" //使Ml.1的内容等于RLO的内容//将计数器Cl中的计数值装入累加器1 T MW6 //将累加器1中的内容传送给MW63 存储器间接寻址存储器间接寻址的特点是用指针进行寻址.操作数存储在由指针给出的存储单元中,根据要描述的地址复杂程度,地址指针可以是字或双字的,存储指针的存储器也应是字或双字的.对于T,C,FB,FC, DB,由于其地址范围为0~65535,可使用字指针; 对于I,Q,M等,可能要使用双字指针.使用双字指针时,必须保证指针中的位编号为"0".存储器间接寻址的指针格式如图所示.存储器间接寻址的指针格式例存储器间接寻址的指针格式及寻址L +6 T WM1 OPN T MD5 //将整数6装入累加器1//将累加器1的内容传送给存储器MWl //打开由MWl 指出的数据块,即打开数据块DB6//将累加器1的内容传送到存储器MD5A I[MDl] //对输入位I8.7进行逻辑"与"操作= Q[MD5] //将RLO赋值给输出位Q12.74 寄存器间接寻址寄存器间接寻址的特点是通过地址寄存器寻址.S7中有两个地址寄存器:ARl和AR2, 地址寄存器的内容加上偏移量形成地址指针,指向操作数所在的存储单元. 寄存器间接寻址有两种形式:区域内寄存器间接寻址和区域司寄存器间接寻址.寄存器间接寻址的指针格式如图所示.寄存器间接寻址的指针格式地址指针区域标识位的含义使用寄器指针格式访问一个字节,字或双字时,必须保证指针中位地址的编号为0.下面是区间间接寻址的例子: L P#5.0 LAR1 //将间接寻址的指针装入累加器1 //将累加器1中的内容送到地址寄存器1A M[AR1,P#2.3] //AR1中的P#5.0加偏移量P#2.3,实际上是对M7.3进行操作= Q[AR1,P#0.2] //逻辑运算结果送Q5.2 L DBW[AR1,P#18.0] //将DBW23装入累加器1 下面是区域间间接寻址的例子: L P#M6.0 LAR1 //将存储器位M6.0的双字指针装入累加器1 //将累加器1中的内容送到地址寄存器1 T W[AR1,P#50.0] //将累加器1的内容传送到存储器字MW56基本指令及其编程1,位逻辑指令位逻辑指令状态寄存器触点在S7-300/400PLC中,CPU中有一个专门用于存储指令执行状态的16位状态寄存器,状态寄存器以二进制位的形式保存指令的执行结果与中间状态等,在梯形图编程时,这些标志可以用触点的形式在梯形图中使用与编程,S7300/400PLC可以使用的状态寄存器触点如下表所示.状态寄存器触点1,"与"(A),"与非"(AN)A:"与"指令适用于单个常开触点串联,完成逻辑"与"运算. AN:"与非"指令适用于单个常闭触点串联,完成逻辑"与非" 运算."与"(A),"与非"(AN)指令由图可知,触点串联指令也用于串联逻辑行的开始.CPU 对逻辑行开始第1条语句如I1.0的扫描称为首次扫描.首次扫描的结果(I1.0的状态)被直接保存在RLO(逻辑操作结果位)中; 在下一条语句,扫描触点Q5.3的状态,并将这次扫描的结果和RLO中保存的上一次结果相"与"产生的结果,再存入RLO中,如此依次进行.在逻辑串结束处的RLO可作进一步处理. 如赋值给Q4.2(=Q4.2).2 ,"或"(O),"或非"(ON) )," ), 或非" )O:"或"指令适用于单个常开触点并联,完成逻辑"或"的运算. ON:"或非"指令适用于单个常闭触点并联,完成逻辑"或非"运算."或"(O),"或非"(ON)指令由图可知,触点并联指令也用于一个并联逻辑行的开始.CPU对逻辑行开始第1条语句如I4.0的扫描称为首次扫描.首次扫描的结果(I4.0的状态)被直接保存在RLO(逻辑操作结果位)中,并和下一条语句的扫描结果相"或",产生新的结果再存入RLO中,如此一次进行.在逻辑串结束处的RLO 可用作进一步处理,如赋值给Q8.0(=Q8.0). 此外,还有"异或"(X),"异或非" (XN),嵌套指令等等.3,输出线圈,输出线圈指令即逻辑串输出指令,又称赋值指令,该指令把RLO中的置赋给指定的位地址,当RLO变化时,相应位地址信号状态也变化,在LAD中,只能将输出指令放在触点电路的最右端,不能将输出指令单独放在一个空网络中.下图是两个应用举例.4,中间输出如图所示,中间输出指令被安置在逻辑串中间,用于将其前面的位逻辑操作结果(即本位置的RLO值)保存到指定地址,所以有时也称为"连接器"或"中间赋值元件".它和其他元件串联时, "连接器"指令和触点一样插入.连接器不能直接连接母线,也不能放在逻辑串的结尾或分支结尾处.5 置位指令,复位指令置位指令,置位/复位指令也是一种输出指令.使用置位指令时,如果RLO =1,则指定的地址被置为1,而且一直保持,直到被复位为0.使用复位指令时,如果RLO=1,则指定的地址被复位为0,而且一直保持,直到被置位为1,如图所示.6 触发器指令触发器有置位复位触发器(SR触发器)和复位置位触发器(RS 触发器)两种,这两种触发器指令均可实现对指定位地址的置位或复位.触发器可以用在逻辑串最右端,结束一个逻辑串;也可用在逻辑串中,当作一个特殊触点,影响右边的逻辑操作结果.置位优先型RS触发器如下图所示.7 边沿检测指令当信号状态变化时就产生跳变沿:从0变到1时,产生一个上升沿(也称正跳沿);从1变到0时,产生一个下降沿(也称负跳变). 跳变沿检测的方法是:在每个扫描周期(OB1循环扫描一周),把当前信号状态和它在前一个扫描周期的状态相比较,若不同,则表明有一个跳变沿.因此,前一个周期里的信号状态必须被存储,以便能和新的信号状态相比较. S7-300/400PLC有两种边沿检测指令:一种是对逻辑串操作结果RLO的跳变沿检测的指令;另一种是对单个触点跳变沿检测的指令. (1) RLO跳变沿检测指令RLO跳变沿检测可分别检测正跳沿和负跳沿.①当RLO从0到1时,正跳沿检测指令在当前扫描周期以RLO=0表示其变化,而在其他扫描周期均为0.在执行RLO正跳沿检测指令前,RLO的状态存储在位地址中. ②当RLO从1到0时,负跳沿检测指令在当前扫描周期以RLO=1表示其变化,而在其他扫描周期均为0.在执行RLO 负跳沿检测指令前,RLO的状态存储在位地址中. RLO跳变沿检测指令和操作数见下表.RLO跳变沿检测指令和操作数(2) 触点跳变沿检测指令触点跳变沿检测可分别检测正跳沿和负跳沿. ①触点正跳沿检测指令FP:在LAD中以功能框表示,它有两个输入端,一个直接连接要检测的触点,另一个输入端M_BIT所接的位存储器上存储上一个扫描周期触点的状态.有一个输出端Q,当触点状态从0到1时,输出端Q接通一个扫描周期.②触点负跳沿检测指令FN:在LAD中以功能框表示,它有两个输入端,一个直接连接要检测的触点,另一个输入端M_BIT所接的位存储器上存储上一个扫描周期触点的状态.有一个输出端Q,当触点状态从1到0时,输出端Q接通一个扫描周期.触点跳变沿检测指令和操作数LAD(a)程序行要检测的是逻辑串I1.0,I1.1的运算结果的跳变边沿,即图中①点处的RLO的边沿变化情况,同时用M1.0来存储RLO①的状态.程序的工作过程如时序图:当程序运行到图中a点时,当前RLO值是1,而上次RLO值(存放在M1.0中)是0, 于是FP指令判断到一个RLO的正跳沿,就将②点处的M1.0置1, 并且输出给M8.0;当程序经过1个扫描周期,运行到波形图中b点时,当前RLO值和前一个RLO 值均为1,相同(RLO在相邻两个扫描周期中相同,可全为1或0),那么FP指令将②点处M1.0置0, 并输出给M8.0.这样M8.0为1的时间仅一个周期.图中虚线箭头指的是两个相邻扫描周期RLO的比较. 对RLO下降沿的检测,读者可自行分析c点,d点时的情况,FN 指令检测到一个RLO①的负跳沿时将M8.1置1,M8.1为1的时间也是一个周期.位逻辑指令的应用举例机床的工作台运动示意图工作台由交流电动机驱动,改变电动机的旋转方向就可以改变工作台的运动方向.按下启动按钮SBl后,电动机驱动工作台运动,如果工作台运动到极限位置时,由行程开关SQl或SQ2检测并发出停止前进指令,同时自动发出返回指令.只要不按停止按钮SB2,工作台将继续这种自动往复运动.工作台驱动电动机通过热继电器做过载保护.I/O地址分配表系统梯形图程序二,定时器指令S7-300/400PLC提供了多种型式的定时器,定时器的语句表指令如表1所示,梯形图指令与操作数如表2所示.不同类型定时器的编号是统一的,如CPU314为T0~T127(共128个),究竟它属于哪种定时器类型由对它所用的指令决定. 定时器的语句表指令定时器的梯形图指令与操作数1,脉冲定时器(SP)这是一种产生一个"长度脉冲",即接通一定时间的定时器,图中当I0.0闭合(RLO有正跳沿),SP定时器T4启动并运行,T4触点立即动作,T4常开触点闭合,只要I0.0保持闭合,T4继续运行,T4常开触点保持闭合.当定时时间到(图中为3s), T4常开触点断开.所以只要I0.0维持足够长的时间(超过设定时间)及无复位信号(I0.1未接通) 两个条件成立,定时器就能接通一固定时间(所设定时间).2,延时脉冲定时器(SE) ,延时脉冲定时器( )图中当I0.0闭合(RLO有正跳沿),SE定时器T4启动运行,T4触点立即动作,其常开触点闭合,此时即使I0.0断开,T4仍将继续运行,T4 常开触点也一直保持闭合直至所设定的时间.只要I0.0不在设定时间内反复短时通断,T4均可设定长时间的接通.如果出现I0.0短时反复通断, 导致T4的反复响应,会使总接通时间大于设定时间(图中t>3s处).I0.1闭合,启动复位信号, 定时器T4立即复位(停止运行).启动延时接通定时器(SD)控制中,有些控制动作要比输入信号滞后一段时间开始,但和输入信号一起停止,为了满足这样的要求, 可采用启动延时接通定时器,其工作过程如下图所示. 图中,当I0.0闭合(RLO有正跳沿),SD定时器T4 启动运行,当设定的延时时间3s到后,T4触点动作, T4的常开触点闭合,直至I0.0断开,T4运行随之停止, T4常开触点断开.I0.0闭合时间小于定时器T4设定延时时间,T4触点不会动作.I0.1闭合,启动复位信号, 定时器T4立即复位(停止运行).4 启动保持型延时接通定时器(SS)如果希望输入信号接通后(接通短时即断开,或持续接通), 在设定延迟时间后才有输出,就需要用启动保持型延时接通定时器.其工作过程如下图. 图中当I0.0闭合一下或闭合较长时间(RLO有正跳沿),SS 定时器T4启动运行,当设定的延时时间3s到后,T4线圈得电, T4常开触点就闭合,此后一直闭合,直至I0.1闭合,复位指令使T4复位.只有复位指令才能令动作了的SS定时器复位,因此使用SS定时器必须编写复位指令(R),其他定时方式可根据需要而定. 在设定延时时间内,如果I0.0反复通断,会影响定时器触点延迟接通时间.5, 启动延时断开定时器(SF)图中I0.0闭合,SF定时器T4启动,其触点立即动作, 常开触点T4立即闭合.当I0.0断开(RLO有负跳沿)时开始计时,在定时的延时时间未到之前,其触点不会动作,常开触点T4不会断开.当延时时间到,常开触点T4 才会断开.在延时时间内I0.1闭合,复位信号可令T4立即复位,常开触点立即断开.不在定时延时时间内,复位(R)信号对SF定时器不起作用. 在I0.0断开的时刻,如果存在复位信号,则SF定时器立即复位.计数器指令在生产过程中常常要对现场事物发生的次数进行记录并据此发出控制命令,计数器就是为了完成这一功能而开发的用线圈表示的计数器指令用功能块表示的计数器指令及操作数减计数器的使用当输入I0.1从0跳变为1时,CPU将装入累加器1中的计数初值(此处为BCD数值127)置入指定的计数器C20 中.计数器一般是正跳沿计数.当输入I0.3由0跳变到1, 每一个正跳沿使计数器C20的计数值减1(减计数),若I0.3没有正跳沿,计数器C20的计数值保持不变.当I0.3 正跳变127次,计数器C20中的计数值减为0.计数值为0 后,I0.3再有正跳沿,计数值0也不会再变.计数器C20 的计数值若不等于0,则C20输出状态为1,Q4.0也为1; 当计数值等于0时,C20输出状态亦为0,Q4.0为0.输入I0.4若为1,计数器立即被复位,计数值复位为0,C20输出状态为0.可逆计数器的使用..I0.2CUI0.3 I0.1CDS C#5 I0.4 5 当前计数值MW10 MW12 4 3 2 1 0 PV R Q4.0. .图中当S(置位)输入端的I0.1从0跳变到1时,计数器就设定为PV端输入的值,PV输入端可用BCD码指定设定值,也可用存储BCD数的单元指定设定值,本图中指定BCD数为5.当CU (加计数)输入端I0.2从0变到1时,计数器的当前值加1(最大999).当CD(减计数)输入端I0.3从0变到1时,计数器的当前值减1(最小为0).如果两个计数输入端都有正跳沿,则加, 减操作都执行,计数保持不变.当计数值大于0时输出Q上的信号状态为1;当计数值等于0时,Q上的信号为0,图中Q4.0也相应为1或0.输出端CV和CV_BCD分别输出计数器当前的二进制计数值和BCD计数值,图中MW10存当前二进制计数值,MW12 存当前BCD计数值.当R(复位)输入端的I0.4为1,计数器的值置为0,计数器不能计数,也不能置位.下面介绍常用的功能指令的使用方法.1 装载与传送指令数据装载与传送指令用于在各个存储区之间交换数据及存储区与过程输入/输出模板之间交换数据.CPU在每次扫描中无条件执行数据装载与传送指令,而不受RLO的影响. L T T T L (1)对累加器1的装载和传输指令+8 //将立即数装载人累加器1中//将累加器1的内容传输给输出QBl0 //将累加器1的内容传输给存储字MWl4 //将累加器1的内容传输给数据双字DBD2IB[DID8] //将数据双字DID8所指的输入字节装载入累加器1中QBl0 MWl4 DBD2(2)读取或传输状态宇L T STW STW //将状态字中的内容装入累加器1 中//将累加器1中的内容传输到状态字中(3)装载时间值或计数值LC L Tl Cl //将定时器Tl中的时间值以BCD码格式装入累加器1中//将计数器Cl中的二进制格式的计数值装入累加器的低字中传输指令的应用传输指令EN端为允许输入端;ENO端为允许输出端.当输入I0.0 为"1"时,传输指令将MWl0中的字传输给MW20.如果指令正确执行,则输出Q4.0为"1".否则,如果输入I0.0为"0",则数据不传输.如果希望MWl0无条件传输给MW20,则EN端直接连接至母线即可.整数比较指令的使用输入信号I0.0的RLO为"1"时,比较整数MW0的值是否大于等于MW2的值,如果是,则输出Q4.0为"1".1。
