《精编》项目自动送料车控制系统相关知识

上传人:tang****xu2 文档编号:133125171 上传时间:2020-05-24 格式:PPT 页数:67 大小:1.06MB
返回 下载 相关 举报
《精编》项目自动送料车控制系统相关知识_第1页
第1页 / 共67页
《精编》项目自动送料车控制系统相关知识_第2页
第2页 / 共67页
《精编》项目自动送料车控制系统相关知识_第3页
第3页 / 共67页
《精编》项目自动送料车控制系统相关知识_第4页
第4页 / 共67页
《精编》项目自动送料车控制系统相关知识_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《《精编》项目自动送料车控制系统相关知识》由会员分享,可在线阅读,更多相关《《精编》项目自动送料车控制系统相关知识(67页珍藏版)》请在金锄头文库上搜索。

1、项目十一自动送料车控制系统 项目十一自动送料车控制系统 项目描述任务1认知PLC程序结构任务2自动送料车系统工艺过程分析 外部接线图设计和I O接线任务3用经验法编程控制送料车任务4用顺序控制编程控制送料车 项目描述 初始状态 S1 OFF S2 OFF 阀K1 K2 电动机M1 M2 M3皆为OFF 气动系统 红灯灭L1 OFF 绿灯L2 ON 表示允许汽车开进装料 K1阀通电打开进料 当料斗中料到达上位S1时 K1阀关闭 5s后 红灯L1亮 绿灯L2灭 电机M3运行 电机M3运行2s后M2接通 M2运行2s后M1也接通运行 料斗出料阀K2在M1接通2s后打开出料 当汽车装料后S2 ON 料

2、斗出料阀K2关闭 3s后电机M1停止运行 M1停止3s后m2停止 M2停止3s后M3停止 此时红灯灭L1 OFF 绿等L2 ON 汽车可以开走 前一汽车开走5s后 下一汽车进来 如此循环 当按下停止按钮后 系统停车顺序按汽车装满后的流程停车 直到全部到初始状态后系统停止运行 项目实施过程 一 方案设计 1 硬件设计 2 软件设计二 项目实施 1 硬件接线 2 程序录入三 设备调试四 项目报告 任务1认知PLC程序结构 学习目标 掌握程序控制功能指令 PLC系统控制的典型程序结构 1 S7 200的指令规约 1 1使能输入与使能输出梯形图中有一条提供 能流 的左侧垂直母线 图中I2 4的常开触点

3、接通时 能流流到功能块DIV I的数字量输入端EN EnableIN 使能输入 该输入端有能流时 功能指令DIV I才能被执行 如果功能块在EN处有能流而且执行时无错误 则ENO EnableOutput 使能输出 将能流传递给下一元件 如果执行过程中有错误 能流在出现错误的功能块终止 与ENO指令 AENO 与ENO指令ENO是梯形图和功能框图编程时指令盒的布尔能流输出端 如果指令盒的能流输入有效 同时执行没有错误 ENO就置位 将能流向下传递 当用梯形图编程时 且指令盒后串联一个指令盒或线圈 语句表语言中用AENO指令描述 指令格式 AENO 无操作数 返回本节 与ENO指令 AENO指令

4、只能在语句表中使用 将栈顶值和ENO位的逻辑与运算 运算结果保存到栈顶 程序如图所示 返回本节 与ENO指令 1 2梯形图中的网络与指令 在梯形图中 程序被划分为称为网络 Network 的独立的段 网络由触点 线圈和功能块组成 在梯形图中给出了网络的编号 如网络2 能流只能从左往右流功 网络中不能有断路 开路和反方向的能流 允许以网络为单位给梯形图程序加注释 STL程序不使用网络 如果用Network这个关键词对程序分段 可以将STL程序转换为梯形图程序 必须有能流输入才能执行的功能块或线圈指令称为条件输入指令 它们不能直接连接到左侧母线上 如果需要无条件执行这些指令 可以用接在左侧母线上的

5、SM0 0 该位始终为1 的常开触点来驱动它们 有的线圈或功能块的执行与能流无关 例如标号指令LBL和顺序控制指令SCR等 称为无条件输入指令 应将它们直接接在左侧母线上 不能级连的指令块没有END输出端和能流流出 JMP CRET LBL NEXT SCR和SCRE等属于这类指令 触点比较指令没有能流输入时 输出为0 有能流输入时 输出与比较结果有关 1 3其他规约 SIMATIC程序编辑器中的直接地址由存储器区和地址组成 如I0 0 IEC程序编辑器用 表示直接地址 如 I0 0 可以用数字和字母组成的符号来代替存储器的地址 符号地址便于记忆 使程序更容易理解 程序编译后下载到PLC时 所

6、有的符号地址被转换为绝对地址 INPUT1 为全局符号名 符 INPUT1中的 号表示该符号是局部变量 红色问号 或 表示需要输入的地址或数值 梯形图中的规约 是一个开路符号 或需要能流连接 表示输出是一个可选的能流 用于指令的级连 符号 表示有一个值或能流可以使用 2 程序控制指令 1 1结束指令结束指令有两条 END和MEND 两条指令在梯形图中以线圈形式编程 END ConditionalEND 条件结束指令使能输入有效时 终止用户主程序 MEND 无条件结束指令无条件终止用户程序的执行 返回主程序的第一条指令 用Micro Win32编程时 不需手工输入MEND指令 而是由软件自动加在

7、主程序结尾 指令格式 END 无操作数 2 暂停指令STOP 暂停指令使能输入有效时 该指令使主机CPU的工作方式由RUN切换到STOP方式 从而立即终止用户程序的执行 STOP指令在梯形图中以线圈形式编程 指令不含操作数 STOP指令可用在主程序 子程序和中断程序中 指令格式 STOP 无操作数 返回本节 2 2程序控制指令 2 3监控定时器复位指令 监控定时器 Watchdog 又称看门狗 它的定时时间为500ms 每次扫描都被自动复位一次 正常工作时 若扫描周期小于500ms 它不起作用 如扫描周期大于500ms 监控定时器会停止执行用户程序 如 1 用户程序很长 2 出现中断事件时 执

8、行中断程序的时间很长 3 循环指令使扫描时间延长 4 为了防止在正常情况下监控定时器动作 可将监控定时器复位指令插到程序适当的地方 2 4看门狗复位指令 WDR 看门狗复位指令当使能输入有效时 执行WDR指令 每执行一次 看门狗定时器就被复位一次 用本指令可用以延长扫描周期 从而可以有效避免看门狗超时错误 指令格式 WDR 无操作数 程序实例 指令STOP END WDR的应用如图所示 停止 结束 看门狗指令应用 返回本节 2 5循环指令 循环开始FOR 循环开始指令 用来标记循环体开始 在LAD中有3个输入端 INDX Index 当前循环计数INIT Initial 循环初值FINAL F

9、inal 循环终值循环结束NEXT 循环结束指令 用来标记循环体结束 无操作数 指令格式 FORINDX INIT FINALNEXT FOR指令必须与NEXT指令配套使用 允许循环嵌套 即FOR NEXT循环在另一个FOR NEXT循环之中 最多可嵌套8层 图6 2中的I2 1接通时 执行100次标有1的外层循环 I2 1和I2 2同时接通时 执行2次标有2的内层循环 例6 1 在I0 1 1的上升沿 将10 15 20 35这6个数分别送到VW10 VW12 VW20 程序实例 返回本节 2 6跳转与标号指令 1 跳转指令 1 跳转指令JMP Jump 跳转指令使能输入有效时 使程序流程跳

10、到同一程序中的指定标号n处执行 执行跳转指令时 逻辑堆栈的栈顶值总是1 2 标号指令LBL Label 标号指令 标记程序段 作为跳转指令执行时跳转到的目的位置 操作数n为0 255的字型数据 指令格式 JMPnLBLn 程序实例 如右图所示 用增减计数器进行计数 如果当前值小于500 则程序按原顺序执行 若当前值超过500 则跳转到从标号10开始的程序执行 2 7诊断LED指令 S7 200检测到致命错误时 SF DlAG 故障 诊断 LED发出红光 在V4 0版编程软件的系统块的 配置LED 选项卡中 如果选择了有变量被强制或是有I 0错误时LED亮 出现上述诊断事件时LED将发黄光 如果

11、两个选项都没有被选择 SF DIAGLED发黄光只受DIAG LED指令的控制 如果此时指令的输人参数IN为0 诊断LED不亮 如果IN大于0 诊断LED发黄光 图6 4的VB10中如果有非零的错误代码 将使诊断LED亮 3局部变量表与子程序 3 1局部变量表3 2建立子程序3 3子程序调用3 4带参数的子程序调用 3 1局部变量表 1 局部变量与全局变量程序中的每个POU ProgramOrganizationalunit 程序组织单元 均有自己的由64字节L存储器组成的局部变量表 局部变量只在它被创建的POU中有效 在局部变量表中定义 全局符号在各POU中均有效 只能在符号表 局变量表中定

12、义 全局符号与局部变量名称相同时 在定义局部变量的POU中 该局部变量的定义优先 该全局定义则在其它POU中使用 局部变量有以下优点 a 在子程序中只用局部变量 不用绝对地址成全局符号 子程序可移植到别的项目中去 b 如果使用临时变量 TEMP 同一片物理存储器可在不同的程序中重复使用 2 局部变量的类型 TRMP 临时变量 暂时保存在局部数据区中的变量 IN 输入变量 由调用它的POU提供的输入参数 OUT 输出变量 返回给调用它的POU的输出参数 IN OUT 输入 输出变量 其初始值由调用它的POU提供 被子程序修改后返回给调用它的POU 3 局部变量的赋值 在局部变量表中赋值时 只需指

13、定局部变量的类型 TEMP IN IN OUT或OUT 和数据类型 不用指定存储器地址 程序编辑器自动地在L存储区中为所有局部变量指定存储器位置 起始地址为L0 1 8个连续的位参数分配一个字节 字节中的位地址为Lx 0 Lx 7 字节 字和双字值在局部存储器中按字节顺序分配 例如LBx Lwx或LDx 4 在局部变量表中增加新的变量 对于主程序与中断程序 局部变量表显示一组已被预先定义为TEMP 临时 变量的行 要向表中增加行 只需用右健单击表中的某一行 选择 插入 行 指令 在所选行的上部插入新的行 选择 插入 行下 指令 在所选行的下部插入新的行 对于子程序 局部变量表显示数据类型被项先

14、定义为IN IN OUT OUT和TEMP的一系列行 不能改变它们的顺序 如果要增加新的局部变量 必须用鼠标右键单击已有的行 并用弹出菜单在所击行的上下插入相同类型的另一局部变量 5 局部变量数据类型检查 局部变量作为参数向子程序传递时 在该子程序的局部变量表中指定的数据类型必须与调用POU中的数据类型值匹配 例如从主程序OB1调用子程序SBR0 使用名为INPUT1的全局符号作为子程序的输入参数 在SBR0的局部变量表中 已经定义了一个名为FIRST的局部变量作为该输入参数 当OB1调用SBR0时 INPUT1的数值被传入门FIRST INPUT1和FIRST的数据类型必须匹配 3 2子程序

15、的编写 1 子程序的作用子程序常用于需要多次反复执行相同任务的地方 只需要写一次子程序 别的程序在需要子程序的时候调用它 而无需重写该程序 子程序的调用是有条件的 未调用它时不会执行子程序中的指令 因此使用子程序可以减少扫描时间 使用子程序可以将程序分成容易管理的小块 使程序结构简单清晰 易于查错和维护 如果子程序中只使用局部变量 因为与其他POU没有地址冲突 可以将子程序移植到其他项目 为了移植子程序 应避免使用全局符号和变量 例如V存储器中的绝对地址 2 建立子程序 CreateaSubroutine 方法1 在指令窗口中 右击ProgramBlock图标 在弹出的选择按钮中单击Inser

16、tSubroutine 方法2 用菜单Edit Insert Subroutine 方法3 在编辑窗口右击编辑区 在弹出的菜单选项中选择Insert Subroutine 新建的子程序默认的程序名是SBR n 编号n从0开始按递增顺序生成 可以在图标上直接更改子程序的程序名 在指令树窗口双击子程序的图标就可对它进行编辑 3 3子程序调用 CallInstruction 1 子程序调用和返回指令子程序调用 CALL 使能输入有效时 主机把程序控制权交给子程序name 指令格式 CALLname例 CALLSBR 0子程序条件返回 ConditionalReturn 使能输入有效时 结束子程序的执行 返回主程序中子程序调用指令的下一条指令 指令格式 CRET例 CRET 2 注意事项CRET多用于子程序内部 RET用于子程序的结束 子程序可以嵌套 最多8级 累加器可在调用程序和被调子程序之间自由传递 累加器的值不变 可以在主程序 另一子程序或中断程序中调用子程序 但是递归调用应甚用 调用子程序时将执行子程序的全部指令 直至子程序结束 然后返回调用程序中子程序调用指令的下一条指令之处 应用实

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号