S7-300PLC mm 的编程.ppt_第1页
S7-300PLC mm 的编程.ppt_第2页
S7-300PLC mm 的编程.ppt_第3页
S7-300PLC mm 的编程.ppt_第4页
S7-300PLC mm 的编程.ppt_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

S7 300 400PLC的编程技术 刘美俊 编程语言与数据类型 STEP 7是S7 300 400系列PLC的编程软件 梯形图 语句表 即指令表 和功能块图是标准的STEP 7软件包配备的3种基本编程语言 这3种语言可以在STEP 7中相互转换 1编程语言 1顺序功能图 SFC 这是一种位于其他编程语言之上的图形语言 用来编制顺序控制程序 STEP 7中的S7Graph顺序控制图形编程语言属于可选的软件包 在这种语言中 工艺过程被划分为若干个顺序出现的步 步中包含控制输出的动作 从一步到另一步的转换由转换条件控制 用Graph表达复杂的顺序控制过程非常清晰 用于编程及故障诊断更为有效 使PLC程序的结构更加易读 它特别适合于生产制造过程 S7Graph具有丰富的图形 窗口和缩放功能 系统化的结构和清晰的组织显示使S7Graph对于顺序过程的控制更加有效 梯形图是使用得最多的PLC图形编程语言 梯形图与继电器电路图很相似 具有直观易懂的优点 特别适合于数字量逻辑控制 梯形图由触点 线圈和用方框表示的指令框组成 触点代表逻辑输入条件 例如外部的开关 按钮和内部条件等 线圈通常代表逻辑运算的结果 常用来控制外部的指示灯 交流接触器和内部的标志位等 指令框用来表示定时器 计数器或者数学运算等附加指令 使用编程软件可以直接生成和编辑梯形图 并将它下载到PLC 2梯形图 LAD 触点和线圈等组成的独立电路称为网络 Network 如下图所示 编程软件自动为网络编号 梯形图中的触点和线圈可以使用物理地址 例如I0 1 Q0 3等 如果在符号表中对某些地址定义了符号 例如令I0 1的符号为 起动 在程序中可用符号地址 起动 来代替物理地址I0 0 这样使程序易于阅读和理解 用户可以在网络号右边加上网络的标题 在网络号的下面为网络加上注释 还可以选择在梯形图下面自动加上该网络中使用的符号的信息 在分析梯形图中的逻辑关系时 为了借用继电器电路图的分析方法 可以想象在梯形图的左有两侧垂直 电源 之间有一个左正右负的直流电源电压 有一个假想的 能流 PowerFlow 流过线圈 利用能流这一概念 可以很好地理解和分析梯形图 能流只能从左向右流动 3语句表 STL S7系列PLC将指令表称为语句表 StatementList 它是一种类似于微机的汇编语言中的文本语言 多条语句组成一个程序段 语句表比较适合经验丰富的程序员使用 可以实现某些不能用梯形图或功能块图表示的功能 4 功能块图 FBD 功能块图 FBD 使用类似于布尔代数的图形逻辑符号来表示控制逻辑 一些复杂的功能用指令框来表示 功能块图用类似于与门 或门的方框来表示逻辑运算关系 5 结构文本 ST 结构文本 ST 是为IEC61131 3标准创建的一种专用的高级编程语言 STEP 7的S7SCL 结构化控制语言 是符合lEC61131 3标准的高级文本语言 它的语言结构与编程语言Pascal和C相似 所以特别适合于习惯使用高级编程语言的人使用 6 S7HiGraph编程语言图形编程语言S7HiGraph属于可选软件包 它用状态图 StateGraphs 来描述异步 非顺序控制过程的编程语言 7 S7CFC编程语言可选软件包CFC ContinuousFunctionChart 连续功能图 用图形方式连接程序库中以块的形式提供的各种功能 包括从简单的逻辑操作到复杂的闭环和开环控制等领域 编程时将这些块复制到图中并用线连接起来即可 基本数据类型 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 双字 DoubleWord 两个字组成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位称为逻辑操作结果 ResultofLogicOperation RLO 该位存储逻辑操作指令或比较指令的结果 在逻辑串中 RLO位的状态表示有关信号流的信息 RLO的状态为1 表明有信号流 通 RLO的状态为0 表明无信号流 断 可用RLO触发跳转指令 溢出位 OV 状态字的第4位称为溢出位 当算术运算或浮点数比较指令执行时出现错误 溢出 非法操作 不规范格式 时 OV位被置1 如果执行结果正常 该位被清0 条件码l CCl 和条件码0 CC0 状态字的第7位和第6位称为条件码1和条件码0 这两位结合起来用于表示在累加器1中产生的算术运算结果与0的大小关系 表1算术运算后的CC1和CC0 表2比较 移位 字逻辑指令后的CCl和CC0 寻址方式 所谓寻址方式是指指令得到操作数的方式 可以直接或间接给出操作数的地址 STEP 7有4种寻址方式 立即寻址 存储器直接寻址 存储器间接寻址和寄存器间接寻址 1立即寻址立即寻址是对常数或常量的寻址万式 其特点是操作数直接包含在指令中 或者指令的操作数是惟一的 例如 SET 将RLO置1AWW 16 117 将常数W 16 117与累加器1进行 与 逻辑运算L43 将整数43装入累加器1中 2存储器直接寻址存储器直接寻址的特点是直接给出操作数的存储单元地址 例如OI0 2 对输入位I0 2进行 或 逻辑运算RQ4 0 将输出位Q4 0清 0 Ml 1 使Ml 1的内容等于RLO的内容LCl 将计数器Cl中的计数值装入累加器1TMW6 将累加器1中的内容传送给MW6 3存储器间接寻址 存储器间接寻址的特点是用指针进行寻址 操作数存储在由指针给出的存储单元中 根据要描述的地址复杂程度 地址指针可以是字或双字的 存储指针的存储器也应是字或双字的 对于T C FB FC DB 由于其地址范围为0 65535 可使用字指针 对于I Q M等 可能要使用双字指针 使用双字指针时 必须保证指针中的位编号为 0 存储器间接寻址的指针格式如图所示 存储器间接寻址的指针格式 例存储器间接寻址的指针格式及寻址L 6 将整数6装入累加器1TWM1 将累加器1的内容传送给存储器MWlOPN 打开由MWl指出的数据块 即打开数据块DB6TMD5 将累加器1的内容传送到存储器MD5AI MDl 对输入位I8 7进行逻辑 与 操作 Q MD5 将RLO赋值给输出位Q12 7 4寄存器间接寻址寄存器间接寻址的特点是通过地址寄存器寻址 S7中有两个地址寄存器 ARl和AR2 地址寄存器的内容加上偏移量形成地址指针 指向操作数所在的存储单元 寄存器间接寻址有两种形式 区域内寄存器间接寻址和区域司寄存器间接寻址 寄存器间接寻址的指针格式如图所示 寄存器间接寻址的指针格式 地址指针区域标识位的含义 使用寄器指针格式访问一个字节 字或双字时 必须保证指针中位地址的编号为0 下面是区间间接寻址的例子 LP 5 0 将间接寻址的指针装入累加器1LAR1 将累加器1中的内容送到地址寄存器1AM AR1 P 2 3 AR1中的P 5 0加偏移量P 2 3 实际上是对M7 3进行操作 Q AR1 P 0 2 逻辑运算结果送Q5 2LDBW AR1 P 18 0 将DBW23装入累加器1 下面是区域间间接寻址的例子 LP M6 0 将存储器位M6 0的双字指针装入累加器1LAR1 将累加器1中的内容送到地址寄存器1TW AR1 P 50 0 将累加器1的内容传送到存储器字MW56 基本指令及其编程 1 位逻辑指令 位逻辑指令 状态寄存器触点 在S7 300 400PLC中 CPU中有一个专门用于存储指令执行状态的16位状态寄存器 状态寄存器以二进制位的形式保存指令的执行结果与中间状态等 在梯形图编程时 这些标志可以用触点的形式在梯形图中使用与编程 S7 300 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 可逆计数器的使用 图中当S 置位 输入端

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论