
s7-1200-plc的程序设计基础.ppt
80页第 2 章 S7-1200 PLC的程序设计基础,2.1 S7-1200的编程语言——国际标准,IEC(国际电工委员会)是为电子技术的所有领域制定全球标准的国际组织 IEC 61131是PLC的国际标准,其中第三部分IEC 61131-3是PLC的编程语言标准 IEC 61131-3是世界上第一个,也是至今唯一的工业控制系统的编程语言标准,已经成为DCS、IPC、FCS、SCADA和运动控制系统事实上的软件标准 IEC 61131-3的5种编程语言:指令表(Instruction List)、结构文本(Structured Text, ST)、梯形图(Ladder Diagram, LD)、功能块图(Function Block Diagram, FBD)、顺序功能图(Sequential Function Chart, SFC)2.1 S7-1200的编程语言——梯形图和功能块图,梯形图(LAD)是使用得最多的PLC图形编程语言,由触点、线圈和用方框表示的指令框组成 触点和线圈组成的电路称为程序段(network,网络),Step 7 Basic自动为程序段编号 功能块图(FBD)使用类似于数字电路的图形逻辑来表示控制逻辑。
2.2 系统存储区与数据类型——物理存储器,PLC使用的物理存储器类型: RAM, ROM, Flash EPROM(简称为FEPROM),装载存储器:非易失性的存储区,用于保存用户程序、数据和组态信息所有的CPU都有内部的装载存储器,CPU插入存储卡后,用存储卡做装载存储器类似于计算机的硬盘,具有断电保持功能 工作存储器:集成在CPU中的高速存取的RAM类似于计算机的内存,断电时内容丢失 断电保持存储器:用来防止在电源关闭时丢失数据,可以用不同方法设置变量的断电保持功能 存储卡:可选的存储卡用来存储用户程序,或用于传送程序2.2 系统存储区与数据类型——基本数据类型,2.2 系统存储区与数据类型——字节,字节.位寻址,“字节. 位”寻址方式 :如I3.2,首位字母表示存储器标识符,I表示输入过程映像区,8位二进制数组成1个字节(Byte):,以起始字节的地址作为字和双字的地址 起始字节为最高位的字节2.2 系统存储区与数据类型——字,双字寻址,MW100,MD100,32位的浮点数又称为实数(Real)浮点数的优点是用很小的存储空间(4B)表示非常大和非常小的数 PLC输入和输出的数值大多是整数,例如模拟量输入和输出值,用浮点数来处理这些数据需要进行整数和浮点数之间的转换,浮点数的运输速度不及整数的运算速度慢一些。
在编程软件中,用十进制小数来表示浮点数,例如50是整数,50.0为浮点数2.2 系统存储区与数据类型——浮点数,2.2 系统存储区与数据类型——系统存储区,2.3 位逻辑指令,常开触点、常闭触点、取反触点,输出线圈、取反输出线圈,复位、置位,区域置位、区域复位,复位优先锁存器、置位优先锁存器,上升沿检测触点、下降沿检测触点,上升沿检测线圈、下降沿检测线圈,上升沿触发器、下降沿触发器,2.3 位逻辑指令——置位复位指令,最主要的特点是有记忆和保持功能2.3 位逻辑指令——多点置位复位指令,多点置位指令将指定的地址开始的连续若干个地址置位(变为1状态并保持) 多点复位指令将指定的地址开始的连续若干个地址复位(变为0状态并保持)2.3 位逻辑指令——复位优先、置位优先锁存器,复位优先锁存器、置位优先锁存器:,输出线圈可选,2.3 位逻辑指令——边缘检测触点指令,如果输入信号I0.6由0变为1状态(即输入信号I0.6的上升沿),则该触点接通一个扫描周期 触点下面的M4.3为边缘存储位,用来存储上一个扫描循环是I0.6的状态,通过比较输入信号的当前状态和上一次循环的状态来检测信号的边沿边沿存储位的地址只能在程序中使用一次,它的状态不能在其他地方被改写。
只能使用M、全局DB和静态局部变量来作边沿存储位,不能使用临时局部数据或I/O变量来作边沿存储位2.3 位逻辑指令——边缘检测线圈指令,边缘检测线圈指令:,上升沿检测线圈仅在流进该线圈的能流的上升沿,输出位M6.1为1状态,M6.2为边沿存储位 在I0.7的上升沿,M6.1的常开触点闭合一个扫描周期,使M6.6置位,在I0.7的下降沿,M6.3的常开触点闭合一个扫描周期,使M6.6复位2.3 位逻辑指令——P_TRIG与N_TRIG指令,在流进P_TRIG指令的CLK输入端的能流的上升沿,Q端输出一个扫描周期的能流,使M8.1置位,方框下面的M8.0是脉冲存储器位 P_TRIG指令与N_TRIG指令不能放在电路的开始处和结束处2.3 位逻辑指令——3种边沿检测指令的功能,以上升沿检测为例: 在P触点指令中,触点上面的地址的上升沿,该触点接通一个扫描周期,因此P触点用于检测触点上面地址的上升沿,并且直接输出上升沿脉冲 在P线圈的能流的上升沿,线圈上面的地址在一个扫描周期为1状态,因此P线圈用于检测能流的上升沿,并用线圈上面的地址来输出上升沿脉冲 P_TRIG指令用于检测能流的上升沿,并且直接输出上升沿脉冲。
如果P_TRIG指令左边只有I1.0触点,可以用I1.0的P触点来代替P_TRIG指令2.3 位逻辑指令——故障信息显示电路举例 1/2,设计故障信息显示电路,从故障信号I0.0的上升沿开始,Q0.7控制的指示灯以1Hz的频率闪烁操作人员按复位按钮I0.1后,如果故障已经消失,则指示灯灭,如果没有消失,则指示灯转为常亮,直至故障消失2.3 位逻辑指令——故障信息显示电路举例 2/2,2.4 定时器指令——定时器的基本功能 1/2,使用定时器指令可创建编程的时间延迟,S7-1200 PLC有4种定时器: ●TP: 脉冲定时器可生成具有预设宽度时间的脉冲 ●TON:接通延迟定时器输出Q在预设的延时过后设置为 ON ●TOF:关断延迟定时器输出 Q 在预设的延时过后重置为 OFF ●TONR:保持型接通延迟定时器输出在预设的延时过后设置为ON在使用 R 输入重置经过的时间之前,会跨越多个定时时段一直累加经过的时间 ● RT:通过清除存储在指定定时器背景数据块中的时间数据来重置定时器 每个定时器都使用一个存储在数据块中的结构来保存定时器数据 在编辑器中放置定时器指令时可分配该数据块2.4 定时器指令——定时器的基本功能 2/2,2.4 定时器指令——定时器的输入输出参数 1/4,TP、TON 和 TOF 定时器具有相同的输入和输出参数。
TONR 定时器具有附加的复位输入参数 R 可创建自己的“定时器名称”来命名定时器数据块,还可以描述该定时器在过程中的用途RT 指令可重置指定定时器的定时器数据2.4 定时器指令——定时器的输入输出参数 2/4,参数 IN从0变为1将启动TP、TON 和 TONR,从1变0 将启动 TOF ET 为定时开始后经过的时间,或称为已耗时间值(可以不为ET指定地址),它们的数值类型为32位的Time,单位为ms,最大定时时间为T#24D_20H_31M_23S_647MS2.4 定时器指令——定时器的输入输出参数 3/4,IEC定时器和IEC计数器属于功能块,调用时需要指定配套的背景数据块,定时器和计数器指令的数据保存在背景数据块中 在梯形图中输入定时器指令时,打开右边的指令窗口将“定时器操作”文件夹中的定时器指令拖放到梯形图中适当的位置,在出现的“调用选项”对话框中修改将要生成的背景数据块的名称,或采用默认的名称点击“确定”按钮,自动生成数据块2.4 定时器指令——定时器的输入输出参数 4/4,2.4 定时器指令——脉冲定时器TP时序图,2.4 定时器指令——接通延时定时器TON时序图,2.4 定时器指令——断开延时定时器TOF时序图,2.4 定时器指令——保持型接通延时定时器TONR时序图,2.4 定时器指令——举例 1/6,用接通延时定时器设计周期和占空比可调的振荡电路。
M2.7只接通一个扫描周期,振荡电路实际上是一个有正反馈的电路,两个定时器的输出Q分别控制对方的输入IN,形成了正反馈 振荡电路的高、低电平时间分别由两个定时器的PT值确定2.4 定时器指令——举例 2/6,2.4 定时器指令——举例 3/6,用3种定时器设计卫生间冲水控制电路2.4 定时器指令——举例 4/6,2.4 定时器指令——举例 5/6,两条运输带顺序相连,为避免运送的物料在1号运输带上堆积,按下起动按钮I0.3,1号带开始运行,8s后2号带自动起动停机的顺序与起动的顺序相反,按了停止按钮I0.2后,先停2号带,8s后停1号带Q1.1和Q0.6控制两台电动机M1和M22.4 定时器指令——举例 6/6,2.5 计数器指令——计数器的数据类型,S7-1200有3种计数器:加计数器(CTU)、减计数器(CTD)和加减计数器(CTUD)它们属于软件计数器,其最大计数速率受到它所在的OB的执行速率的限制 如果需要速率更高的计数器,可以使用CPU内置的高速计数器 调用计数器指令时,需要生成保存计数器数据的背景数据块 CU和CD分别是加计数输入和减计数输入,在CU或CD由0变为1是,实际计数值CV加1或减1。
复位输入R为1时,计数器被复位,CV被清0,计数器的输入Q变为02.5 计数器指令——计数器的输入输出 参数,2.5 计数器指令——加计数器,CTU: 参数 CU 的值从 0 变为 1 时,CTU 使计数值加 1如果参数 CV(当前计数值)的值大于或等于参数 PV (预设计数值)的值,则计数器输出参数 Q = 1如果复位参数 R 的值从 0 变为 1,则当前计数值复位为 0PV = 3,2.5 计数器指令——减计数器,CTD: 参数 CD 的值从 0 变为 1 时,CTD 使计数值减 1如果参数 CV (当前计数值)的值等于或小于 0,则计数器输出参数 Q = 1如果参数 LOAD 的值从 0 变为 1,则参数PV (预设值)的值将作为新的 CV (当前计数值)装载到计数器PV = 3,2.5 计数器指令——加减计数器 1/2,CTUD: 加计数 (CU, Count Up) 或减计数 (CD, Count Down) 输入的值从 0 跳变为 1时,CTUD 会使计数值加 1 或减 1 如果参数 CV(当前计数值)的值大于或等于参数PV(预设值)的值,则计数器输出参数 QU = 1如果参数 CV 的值小于或等于零,则计数器输出参数 QD = 1。
如果参数 LOAD 的值从 0 变为 1,则参数 PV(预设值)的值将 作为新的 CV(当前计数值)装载到计数器 如果复位参数 R 的值从 0 变为 1,则当前计数值复位为 02.5 计数器指令——加减计数器 2/2,PV = 4,2.6 用STEP 7 Basic生成用户程序——程序编辑器,,,,,,,2.6 用STEP 7 Basic生成用户程序——电机启动主电路,2.6 用STEP 7 Basic生成用户程序——电机启动控制电路,2.6 用STEP 7 Basic生成用户程序——电机启动控制程序,2.6 用STEP 7 Basic生成用户程序——生成用户程序,打开主程序OB1,生成如下用户程序:,2.6 用STEP 7 Basic生成用户程序——工具栏上的按钮,在选中的程序段下面插入一个新的程序段,删除选中的程序段,打开、关闭所有的程序段,设置变量的显示方式:显示绝对地址、符号地址或同时显示,关闭或打开程序段的注释,显示或隐藏收藏夹,跳转到前一个或下一个语法错误,更新不一致的块调用,打开或关闭程序状态监视,2.6 用STEP 7 Basic生成用户程序——设置程序编辑器参数1/2,“选项”“设置”:,2.6 用STEP 7 Basic生成用户程序——设置程序编辑器参数2/2,操作数与其他对象(例如触点。
