您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 编程语言、数据类型与存储区、用户程序
1§3-1~§3-3编程语言、数据类型与存储区、用户程序§3S7-1200PLC的程序设计基础陈庆彬E-mail:cqb@fzu.edu.cn福州大学电气工程与自动化学院2020/1/263.6用STEP7Basic生成用户程序——程序编辑器3.6用STEP7Basic生成用户程序——电机启动主电路3.6用STEP7Basic生成用户程序——电机启动控制电路3.6用STEP7Basic生成用户程序——电机启动控制程序3.6用STEP7Basic生成用户程序——生成用户程序打开主程序OB1,生成如下用户程序:3.6用STEP7Basic生成用户程序——工具栏上的按钮在选中的程序段下面插入一个新的程序段删除选中的程序段打开、关闭所有的程序段设置变量的显示方式:显示绝对地址、符号地址或同时显示关闭或打开程序段的注释显示或隐藏收藏夹跳转到前一个或下一个语法错误更新不一致的块调用打开或关闭程序状态监视3.6用STEP7Basic生成用户程序——设置程序编辑器参数1/2“选项”“设置”:3.6用STEP7Basic生成用户程序——设置程序编辑器参数2/2操作数与其他对象(例如触点)之间的垂直间距操作数水平方向和垂直方向可以输入的最大字符数3.6用STEP7Basic生成用户程序——生成和修改变量1/22.6用STEP7Basic生成用户程序——生成和修改变量2/23.6用STEP7Basic生成用户程序——快速生成变量3.6用STEP7Basic生成用户程序——设置变量的断电保护功能设置后有保持功能的M区的变量的“保持性”列的多选框中出现3.6用STEP7Basic生成用户程序——全局变量和局部变量PLC变量表中的变量可用于整个PLC中所有的代码块,在所有的代码中具有相同的意义和唯一的名称,可以在变量表中,为输入I、输出Q和位存储器M的位、字节、字和双字定义全局变量。在程序中,全局变量被自动添加双引号,例如“起动”。局部变量只能在它被定义的块中使用,同一个变量的名称可以在不同的块中分别使用一次。可以在块的界面区定义块的输入/输出参数(Input,Output,Inout)和临时数据(Temp),以及定义FB的静态变量(Static)。在程序中,局部变量被自动添加#号,例如#起动。3.6用STEP7Basic生成用户程序——使用详细窗口打开项目树下面的详细窗口,选中项目树中的“PLC变量”,详细窗口显示出变量表中的符号。可以将详细窗口中的符号地址或代码块界面区种定义的局部变量,拖放到程序中需要设置地址的???处。拖放到已设置的地址上时,原来的地址被替换。16§3-6位逻辑指令§3S7-1200PLC的程序设计基础3.6位逻辑指令常开触点、常闭触点、取反触点输出线圈、取反输出线圈复位、置位区域置位、区域复位复位优先锁存器、置位优先锁存器上升沿检测触点、下降沿检测触点上升沿检测线圈、下降沿检测线圈上升沿触发器、下降沿触发器3.6位逻辑指令——置位复位指令最主要的特点是有记忆和保持功能。Q0.5I0.4I0.53.6位逻辑指令——多点置位复位指令多点置位指令将指定的地址开始的连续若干个地址置位(变为1状态并保持)。多点复位指令将指定的地址开始的连续若干个地址复位(变为0状态并保持)。3.6位逻辑指令——复位优先、置位优先锁存器复位优先锁存器置位优先锁存器SR1输出位RS1输出位00保持前一状态00保持前一状态010100101011110111复位优先锁存器、置位优先锁存器:输出线圈可选3.6位逻辑指令——边缘检测触点指令如果输入信号I0.6由0变为1状态(即输入信号I0.6的上升沿),则该触点接通一个扫描周期。触点下面的M4.3为边缘存储位,用来存储上一个扫描循环是I0.6的状态,通过比较输入信号的当前状态和上一次循环的状态来检测信号的边沿。边沿存储位的地址只能在程序中使用一次,它的状态不能在其他地方被改写。只能使用M、全局DB和静态局部变量来作边沿存储位,不能使用临时局部数据或I/O变量来作边沿存储位。3.6位逻辑指令——边缘检测线圈指令边缘检测线圈指令:上升沿检测线圈仅在流进该线圈的能流的上升沿,输出位M6.1为1状态,M6.2为边沿存储位。在I0.7的上升沿,M6.1的常开触点闭合一个扫描周期,使M6.6置位,在I0.7的下降沿,M6.3的常开触点闭合一个扫描周期,使M6.6复位。3.6位逻辑指令——P_TRIG与N_TRIG指令在流进P_TRIG指令的CLK输入端的能流的上升沿,Q端输出一个扫描周期的能流,使M8.1置位,方框下面的M8.0是脉冲存储器位。P_TRIG指令与N_TRIG指令不能放在电路的开始处和结束处。3.6位逻辑指令——3种边沿检测指令的功能以上升沿检测为例:在P触点指令中,触点上面的地址的上升沿,该触点接通一个扫描周期,因此P触点用于检测触点上面地址的上升沿,并且直接输出上升沿脉冲。在P线圈的能流的上升沿,线圈上面的地址在一个扫描周期为1状态,因此P线圈用于检测能流的上升沿,并用线圈上面的地址来输出上升沿脉冲。P_TRIG指令用于检测能流的上升沿,并且直接输出上升沿脉冲。如果P_TRIG指令左边只有I1.0触点,可以用I1.0的P触点来代替P_TRIG指令。3.6位逻辑指令——故障信息显示电路举例1/2设计故障信息显示电路,从故障信号I0.0的上升沿开始,Q0.7控制的指示灯以1Hz的频率闪烁。操作人员按复位按钮I0.1后,如果故障已经消失,则指示灯灭,如果没有消失,则指示灯转为常亮,直至故障消失。3.6位逻辑指令——故障信息显示电路举例2/2故障信号I0.0复位信号I0.1锁存信号M2.1显示输出Q0.73.6定时器指令——定时器的基本功能1/2使用定时器指令可创建编程的时间延迟,S7-1200PLC有4种定时器:●TP:脉冲定时器可生成具有预设宽度时间的脉冲。●TON:接通延迟定时器输出Q在预设的延时过后设置为ON。●TOF:关断延迟定时器输出Q在预设的延时过后重置为OFF。●TONR:保持型接通延迟定时器输出在预设的延时过后设置为ON。在使用R输入重置经过的时间之前,会跨越多个定时时段一直累加经过的时间。●RT:通过清除存储在指定定时器背景数据块中的时间数据来重置定时器。每个定时器都使用一个存储在数据块中的结构来保存定时器数据。在编辑器中放置定时器指令时可分配该数据块。3.6定时器指令——定时器的基本功能2/2tttt输入信号IN脉冲定时器输出信号接通延时定时器输出信号断开延时定时器输出信号保持型接通延时定时器输出信号3.6定时器指令——定时器的输入输出参数1/4TP、TON和TOF定时器具有相同的输入和输出参数。TONR定时器具有附加的复位输入参数R。可创建自己的“定时器名称”来命名定时器数据块,还可以描述该定时器在过程中的用途。RT指令可重置指定定时器的定时器数据。3.6定时器指令——定时器的输入输出参数2/4参数数据类型说明INBool启用定时器输入RBool将TONR经过的时间重置为零PT(PresetTime)Bool预设的时间值输入QBool定时器输出ET(ElapsedTime)Time经过的时间值输出定时器数据块DB指定要使用RT指令复位的定时器参数IN从0变为1将启动TP、TON和TONR,从1变0将启动TOF。ET为定时开始后经过的时间,或称为已耗时间值(可以不为ET指定地址),它们的数值类型为32位的Time,单位为ms,最大定时时间为T#24D_20H_31M_23S_647MS。3.6定时器指令——定时器的输入输出参数3/4IEC定时器和IEC计数器属于功能块,调用时需要指定配套的背景数据块,定时器和计数器指令的数据保存在背景数据块中。在梯形图中输入定时器指令时,打开右边的指令窗口将“定时器操作”文件夹中的定时器指令拖放到梯形图中适当的位置,在出现的“调用选项”对话框中修改将要生成的背景数据块的名称,或采用默认的名称。点击“确定”按钮,自动生成数据块。3.6定时器指令——定时器的输入输出参数4/4定时器PT和IN参数值变化TP定时器运行期间,更改PT没有任何影响。定时器运行期间,更改IN没有任何影响。TON定时器运行期间,更改PT没有任何影响。定时器运行期间,将IN更改为FALSE会复位并停止定时器。TOF定时器运行期间,更改PT没有任何影响。定时器运行期间,将IN更改为TRUE会复位并停止定时器。TONR定时器运行期间更改PT没有任何影响,但对定时器中断后继续运行会有影响。定时器运行期间将IN更改为FALSE会停止定时器但不会复位定时器。将IN改回TRUE将使定时器从累积的时间值开始定时。3.6定时器指令——脉冲定时器TP时序图3.6定时器指令——接通延时定时器TON时序图3.6定时器指令——断开延时定时器TOF时序图3.6定时器指令——保持型接通延时定时器TONR时序图3.6定时器指令——举例1/6用接通延时定时器设计周期和占空比可调的振荡电路。M2.7只接通一个扫描周期,振荡电路实际上是一个有正反馈的电路,两个定时器的输出Q分别控制对方的输入IN,形成了正反馈。振荡电路的高、低电平时间分别由两个定时器的PT值确定。2s3s一个扫描周期I1.1M2.7Q0.73.6定时器指令——举例2/63.6定时器指令——举例3/6用3种定时器设计卫生间冲水控制电路。3.6定时器指令——举例4/63s4sI0.7M2.0Q1.0M2.15s3.6定时器指令——举例5/6两条运输带顺序相连,为避免运送的物料在1号运输带上堆积,按下起动按钮I0.3,1号带开始运行,8s后2号带自动起动。停机的顺序与起动的顺序相反,按了停止按钮I0.2后,先停2号带,8s后停1号带。Q1.1和Q0.6控制两台电动机M1和M2。3.6定时器指令——举例6/68s8sI0.3I0.2M2.3Q0.6Q1.13.6计数器指令——计数器的数据类型S7-1200有3种计数器:加计数器(CTU)、减计数器(CTD)和加减计数器(CTUD)。它们属于软件计数器,其最大计数速率受到它所在的OB的执行速率的限制。如果需要速率更高的计数器,可以使用CPU内置的高速计数器。调用计数器指令时,需要生成保存计数器数据的背景数据块。CU和CD分别是加计数输入和减计数输入,在CU或CD由0变为1是,实际计数值CV加1或减1。复位输入R为1时,计数器被复位,CV被清0,计数器的输入Q变为0。3.6计数器指令——计数器的输入输出参数参数数据类型说明CU、CDBOOL加计数或减计数,按加或减一计数R(CTU、CTUD)BOOL将计数值重置为零LOAD(CTD、CTUD)BOOL预设值的装载控制PVSInt、Int、DInt、USInt、UInt、UDInt预设计数值Q、QUBOOLCV=PV时为真QDBOOLCV=0时为真CVSInt、Int、DInt、USInt、UInt、UDInt当前计数值3.6计数器指令——加计数器CTU:参数CU的值从0变为1时,CTU使计数值加1。如果参数CV(当前计数值)的值大于或等于参数PV(预设计数值)的值,则计数器输出参数Q=1。如果复位参数R的值从0变为1,则当前计数值复位为0。PV=33.6计数器指令——减计数器CTD:参数CD的值从0变为1时,CTD使计数值减1。如果参数CV(当前计数值)的值等于或小于0,则计数器输出参数Q=1。如果参数LOAD的值从0变为1,则参数PV(预设值)的值将作为新的CV(当前计数值)装载到计数器。PV=33.6计数器指令——加减计数器1/2CTUD:加计数(CU,CountUp)或减计数(CD,CountDown)输入的值从0跳变为1时,CTUD会使计数值加1或减1。如果参数CV(当前计数值)的值大于或等于参数PV(预设值)的值,则计数器输出参数QU=1。如果参数CV的值小于或等于零,则计数器输出参数QD=1。如果参数LOAD的值从0变为1,则参数PV(预设值)的值将作为新的CV(当前计数值)装载到计数器。如果复位参数R的值从0变为1
本文标题:编程语言、数据类型与存储区、用户程序
链接地址:https://www.777doc.com/doc-3320795 .html