第三章_小型整体式PLC(2)_第1页
第三章_小型整体式PLC(2)_第2页
第三章_小型整体式PLC(2)_第3页
第三章_小型整体式PLC(2)_第4页
第三章_小型整体式PLC(2)_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

PLC原理及应用 第三章小型整体式PLC 第三章小型整体式PLC CPM系列小型机系统的特点CPM系列机的构成CPM系列机的继电器区和数据区CPM系列机的指令系统 PLC是在继电器线路和计算机原理的基础上发展起来的 PLC的梯形图语言借鉴了继电器线路原理 例3 1展示了PLC梯形图和继电器线路间的联系 例3 1 图a为电机启停保控制电路 试用PLC实现之 分析 对于这样一个任务来说 有两个输入SB1和SB2 一个输出KM 至于KM的自保触点 可用PLC内部的位实现 因此KM的自保触点不作为输入 SB1和SB2均可选用带一对常开触点的按钮 假定该任务在CPM1ACPU主机上实现 可对输入输出点分配如下 输入 停止按钮SB100000启动按钮SB200001输出 电机转动KM01000 例3 1 输入输出定好后 便可画出与PLC硬件连接图 图3 24a和图3 24b程序所实现的逻辑是相同的 但图3 24b程序占用的程序空间较小 其扫描时间较短 通过该例可以发现 PLC的梯形图程序与继电器线路图非常接近 编制梯形图程序时可借鉴继电器线路图 但不可照搬 合理地安排梯形图逻辑顺序 可以节省程序存储空间 缩短扫描时间 例3 1 接下来 编写PLC程序 1 任何一个输出 或定时器 计数器 传送指令等 都不能直接连到母线 其前面至少应该有一个触点 2 利用最基本指令编程时应注意的问题 2 同一个位 作为输出只能使用一次 但作为触点可以无限制地重复使用 在图3 26a的程序中 01000作为输出使用了二次 是错误的 对于程序中有多处需改变同一个位的状态 即输出 时 可把这些地方的条件综合到一起 然后输出 2 利用最基本指令编程时应注意的问题 3 由于桥式电路在PLC中无法用指令编程 所以 在设计梯形图程序时不应出现桥式电路 对于确实需要桥式电路的地方 可按逻辑关系等效成非桥式电路 2 利用最基本指令编程时应注意的问题 4 编程时 对于有复杂逻辑关系的程序段 应按照先复杂后简单的原则编程 这样 可以节省程序存储空间 减小扫描时间 0LD000001LDNOT000012ANDHR00013LD000024LD000035AND000046ORLD7ANDLD8ORLD9OUT01000 0LD000031AND000042OR000023ANDNOT000014ANDHR00015OR000006OUT01000 2 利用最基本指令编程时应注意的问题 几个程序优化的例子 很显然这个程序行不是最优的 我们可以对它做如下优化 程序优化举例1 程序优化举例1 程序优化举例1 程序优化举例1 上面梯形图先需要一个 ORLD 操作 紧接着是一个 ANDLD 操作 这样对顶部三个逻辑块编写 然后再用另两个 ORLD 操作来完成助记符编程 尽管程序可以按上面编写程序执行 但该程序并不是最优的 可做如下改写 以简化程序并节省内存空间 程序优化举例2 程序优化举例2 改写为这种形式后 省去了第一条 ORLD 和 ANDLD 指令 简化了程序并节省了内存空间 程序优化举例2 程序优化举例2 上面梯形图需要五个逻辑块 这里先按顺序对五个逻辑块编写 然后利用 ORLD 和 ANDLD 指令从最后两个块开始往前将它们连接起来 程序中地址00008的 ORLD 指令把块d和e连接起来 随后的 ANDLD 指令将上述过程产生的执行条件和块c的执行条件连接起来 等等 程序优化举例3 程序优化举例3 改画为如上形式后 即简化了编程又节省了内存空间 程序优化举例3 程序优化举例3 5 编程时 注意指令的数据区如在CMP1A中 OUT指令使用IR区时 就不能使用000通道中的位作输出位 这是因为在CPM1A中000通道是输入通道 2 利用最基本指令编程时应注意的问题 IL 02 ILC 03 为联锁指令 括号中的号码为指令功能码 IL为联锁条件 表示联锁程序段的开始 ILC为联锁清除 表示联锁程序段的结束 使用联锁指令可以解决在分支点上存储执行条件的问题 3 联锁指令 联锁指令的执行过程和使用方法 1 IL前面的状态为OFF时 IL与ILC之间的程序不执行 当IL前面的状态为ON时 IL与ILC之间的程序照样执行 与没有IL和ILC时一样 2 IL前面的状态为OFF时 IL与ILC之间程序段中各输出状态如下 3 联锁指令 3 IL前面必须具有条件 即其前面至少有一个位 不论IL前面的状态是ON还是OFF PLC都对IL ILC之间的程序段进行处理 所以 无论IL ILC之间的程序是否执行 都要占用程序扫描时间 4 联锁不允许嵌套 即不允许出现IL IL ILC ILC形式 但允许不成对出现 IL IL ILC 联锁指令在程序中没有使用次数限制 在程序中使用IL IL ILC后 进行程序检查时认为出错 但不影响执行 在程序中使用IL IL ILC ILC后 进行程序检查时认为出错 程序不执行 3 联锁指令 对于图3 33所示的程序 当00000为OFF时 00000后ILC前的程序不执行 01000 01003均为OFF 当00000为ON 00001为OFF时 00000后00001前的程序执行 00001后ILC前的程序不执行 当00000 00001均为ON时 程序执行 相当于没有IL IL ILC 编程时 IL后的程序相当于重新从母线开始 所以 图3 33程序等价于图3 34程序 LD00000ILLD00002OUT01000LD00003OUT01001LD00001ILLD00004OUT01002LD00005OUT01003ILC 联锁指令举例 3 联锁指令 注意事项 一个或多个IL 02 后面必须跟一个ILC 03 无论何时执行ILC 03 都会清除所有有效的ILC 03 与之前的IL 02 之间的联锁 所以 ILC 03 指令不能在没有一个IL 02 的情况下连续使用 也就是说 不能嵌套 当多个IL 02 和单个ILC 03 一起使用时 在完成程序检查时 将发生出错信息 但程序仍可正常执行 这些指令不影响任何标志位 暂存继电器TR0 TR7用于暂存中间结果 记录程序分支点的状态 在同一个程序段中 TR0 TR7不可重复使用 但在不同的程序段中 同一个暂存继电器可重复使用 暂存指令TR不影响标志位 4 暂存指令 TR0 TR1 LD00000OUTTR0LDTR0AND00002OUT01000LDTR0AND00003OUT01001LDTR0AND00001OUTTR1LDTR1AND00004OUT01002LDTR1AND00005OUT01003 4 暂存指令 暂存指令的应用场合指令行分支 如梯形图A所示 如果在分支点上存在的执行条件在返回分支行前不会改变 即最右侧的指令不改变该执行条件 那么将正确地执行分支行而不需要作任何特殊的编程处理 如梯形图B所示 如果在分支点和最上面指令行的最后一条指令之间有一个条件 那么分支点上的执行条件和完成上面指令行之后的执行条件有时可能是不同的 因此 不能确保该分支行正确地执行 4 暂存指令 结论 当一个指令行分成两行或更多行时 它有时必须使用互锁或TR位来保存分支点上存在的执行条件 这是因为指令行在返回分支点执行一个分支行上的指令之前执行了右侧指令 如果在分支点后的任意指令行上存在一个条件 这时执行条件可能发生改变而不能完成本来的操作 4 暂存指令 暂存指令的应用场合 TR位TR区共提供8个位 TR0 TR7 可用于暂时储存执行条件 如果一个TR位被设置在分支点处 则当前的执行条件就会存储在指定的TR位中 当程序返回到分支点时 TR位释放出执行状态 而该状态正是在程序第一次执行到该分支点处时被保存下来的状态 前面的梯形图B可写为如下形式 4 暂存指令 使用两个TR位的例子 在这个例子中 TR0和TR1用来存储两个分支点的执行条件 在执行指令1后 TR1内的执行条件被调出和IR00003的状态进行 AND 操作 而存在TR0中的执行条件会被两次调用 第一次调出来和IR00004的状态进行 AND 操作 而第二次是与IR00005的状态 非 进行 AND 操作 4 暂存指令 当画梯形图时 除非必须 一般不用TR位 画梯形图时不使用TR位可以减少程序的指令数 并使程序更易于理解 优化程序例1 4 暂存指令 只有在使用助记符编程时才使用TR位 当直接输入梯形图时 不必使用TR位 但仍要注意在分支点所需要TR位的最大数目的限制 8个 也要注意采用适当的方法减少程序所用的指令数 优化程序例2 4 暂存指令 虽然简化程序总是一个令人关心的问题 但指令的执行顺序有时也是很重要的 例如 在一个二进制加法指令执行之前 需要一条传送 MOVE 指令把适当的数据放入所需的操作数字中 在考虑简化程序之前 必须要确认执行顺序全部正确 程序优化时的注意事项 除了用TR位可以保存指令行分支点上的执行条件外 利用联锁指令也可以起到同样的效果 把程序中分支点的执行条件放在联锁 IL 指令行上 把所有原来从分支点分出的行都重写成独立的指令行 并且在最后再加入一条解除联锁 ILC 指令 4 暂存指令 根据一个指定的执行条件 可以跳过程序中某一指定段 JMP总是与JME连用来形成跳转 也就是说 从梯形图的一点跳转到另一点 JMP定义开始跳转的点 JME定义了结束跳转的点 n为跳转号 范围为00 49 5 跳转指令JMPn JMEn 跳转指令的工作过程和使用方法 1 JMPn前的状态为OFF时 JMPn与JMEn之间的程序不执行 当JMPn前面的状态为ON时 不发生跳转 JMPn与JMEn之间的程序正常执行 2 JMPn前的状态为OFF时 JMPn与JMEn之间的程序保持JMPn前的状态为ON时的状态不变 由于此时PLC对JMPn与JMEn之间的程序不处理 所以此时JMPn与JMEn之间的程序不占用扫描时间 5 跳转指令 3 有两种类型的跳转 跳转号n 0和跳转号n 0 在01 49之间取值 当n在01 49之间取值时 每个跳转号只能使用一次 即对同一个n JMPn JMEn只能在程序中使用一次 程序执行立即跳转到具有相同跳转编号的JME 05 处 而不执行它们中间的任何指令 当n取00值时 JMP00 JME00可以在程序中多次使用 以00作为JMP的跳转号时 因为CPU必须通过搜索程序来寻找下一个JME00指令 所以它的执行时间比跳转号不为00的跳转指令的执行时间要稍长一些 5 跳转指令 4 多个JMPn可以共用一个JMEn 如JMP01 JMP01 JME01 这样使用后 在进行程序检查时会出现出错信息 但程序仍会正常执行 5 跳转指令可以嵌套使用 但必须是不同的跳转号 如JMP00 JMP01 JME01 JME00 也可以交叉使用 如JMP01 JMP02 JME01 JME02 5 跳转指令 6 跳转指令编程 LD00000JMP00LD00002OUT01000LD00003OUT01001LD00001JMP00LD00004OUT01002LD00005OUT01003JME00 当00000为OFF时 输出01000 01003保持00000为ON时的状态 当00000为ON 00001为OFF时 00000后00001前的程序正常执行 输出01002 01003保持00001为ON时的状态 当00000 00001均为ON时 程序正常执行 相当于没有JMP00 JMP00 JME00 编程时 JMP后的程序相当于重新从母线开始 相同点 JMPn前面的状态为ON时 JMPn与JMEn之间的程序正常执行 IL前面的状态为ON时 IL与ILC之间的程序正常执行 JMPn前的状态为OFF时 JMPn与JMEn之间的程序不执行 IL前面的状态为OFF时 IL与ILC之间的程序不执行 跳转指令和联锁指令的异同 5 跳转指令 不同点 JMPn前的状态为OFF时 PLC对JMPn与JMEn之间的程序不处理 JMPn与JMEn之间的程序不占用扫描时间 JMPn与JMEn之间的程序状态保持以前的状态不变 IL前面的状态为OFF时 PLC都对IL ILC之间的程序段进行处理 IL ILC之间的程序占用程序扫描时间 IL与ILC之间程序段中各输出状态有固定模式 1 输出OUT OFF 2 定时器 复位 2 计数器 移位寄存器保持指令输出 状态不变 跳转指令和联锁指令的异同 5 跳转指令 SET用于使指定的继电器为ON RESET用于使指定的继电器为OFF B为要置位或复位的继电器 6 置位和复位指令 功能 当SET指令的执行条件为ON时 使指定继电器置位为ON 当执行条件为OFF时 SET指令不改变指定继电器的状态 当RESET指令的执行条件为ON时 使指定继电器复位为OFF 当执行条件为OFF时 RESET指令不改变指定继电器的状态 SET和RESET指令的数据区为IR SR HR AR LR 6 置位和复位指令 实例 当00000由OFF变为ON后 20000被置位为ON 并保持为ON 即使00000变为OFF 当00003由OFF变为ON后 20000被复位为OFF 并保持OFF 即使00003变为0FF 注意 SET指令和OUT的不同当执行条件为OFF时 OUT指令置操作数为OFF 而SET不变同样 RSET指令的执行和OUTNOT不同 执行条件为OFF时 OUTNOT指令置操作数位为ON 而REST操作数不变 6 置位和复位指令 NOP 00 功能 空操作指令用来取消某一步操作 该指令无操作数 无梯形图符号 7 空操作指令 图a中梯形图对应的语句表如右侧所示 若将第二条指令 AND00001 改为NOP 对应的梯形图变为图b 相当于将00001短接 当执行到该条指令时 PLC进行空操作 作用 修改程序时 使用NOP指令 可使步序号不变 便于调试程序 如上例中 若用删除键将第二条指令删除 则第3步变为第2步 用NOP指令则步序号不变 7 空操作指令 0LD000031AND000042OR000023ANDNOT000014ANDHR00015OR000006OUT01000 如由于某种原因不需要串联触点0004了 若直接去掉步号被打乱 可插入NOP 节省程序修改时间 0LD000031NOP2OR000023ANDNOT000014ANDHR00015OR000006OUT01000 NOP 00 不影响任何标志位 KEEP 11 功能 用于改变一个位的状态 KEEP指令有一个置位端 一个复位端 置位端和复位端既可以是一个位 也可以是用最基本指令构成的逻辑块 KEEP指令只能以位为单位操作 对KEEP指令编程时 先编置位端 后编复位端 然后编KEEP指令 8 保持指令 作用 使用保持指令来保持基于两个执行条件的操作位的状态 这样做 将保持指令连接到两条指令线上 当第一个指令行末端的执行条件为ON时 保持指令的操作位置ON 当第二个指令行末端的执行条件为ON时 保持指令的操作位置OFF 即使位于在程序的连锁内部部分 保持指令的操作位将保存它的ON或OFF状态 8 保持指令 语句表LD00002LD00003KEEPHR0000 KEEP 11 运算就象一个由S置位和R复位的锁存继电器 8 保持指令 KEEP指令的数据区为IR SR HR AR LR当KEEP指令使用HR数据区时 断电后KEEP位可保持断电前的状态使用IR数据区时 断电后KEEP位的状态变为OFFKEEP指令的位和OUT指令的位都是输出 因此同一个位不能同时用于KEEP和OUT指令 同时 和OUT指令一样 对同一个位 用于KEEP指令时 只能使用一次 IR区中用作输入通道的位不能使用 注意 8 保持指令 比较如下两种保持方式的异同 KEEP指令相当于输出带自保的OUT 图3 42程序与图a程序是等价的 但当在IL ILC程序段中时 情况略有不同 当IL前面的状态为OFF时 图a程序中的HR0000保持原状态不变 图3 42程序中的HR0000的状态变为OFF 8 保持指令 9 微分指令 作用 用于取一个位的上升沿或下降沿 DIFU 13 为上升沿微分 当其前面的状态由OFF变为ON时 DIFU后的位ON一个扫描周期 DIFD 14 为下降沿微分 当其前面的状态由ON变为OFF时 DIFD后的位ON一个扫描周期 编程实例 当00002由OFF变为ON时 01000为ON一个扫描周期的时间 当00002由ON变为OFF时 01001为ON一个扫描周期时间 01001变为OFF后01002为ON一个扫描周期时间 如果某条指令要求在00002为ON时只执行一次 则可用00002的上升沿微分01000作为该指令的执行条件 如果用00002作为该指令的执行条件 则只要00002为ON 每个扫描周期执行一次 执行的次数取决于00002为ON的时间 9 微分指令 注意事项 微分指令的数据区为IR SR HR AR LR 在程序中微分指令最多可使用48个 微分指令也是输出 使用IR区时用作输入通道的位不能使用 用作外部输出的位最好也不要使用 当指令编程在IL 02 和ILC 03 之间 JMP和JME之间或子程序中时 DIFU 13 和DIFD 14 的执行结果会不确定 9 微分指令 9 微分指令 如果DIFU或DIFD在一个联锁部分中并且IL的执行条件为OFF 则不记录DIFU或DIFD的执行条件的变化 当IL的执行条件为ON后立即执行联锁部分中的DIFU或DIFD时 在联锁有效之前 即 IL的联锁条件变为OFF之前 DIFU或DIFD的执行条件将与现存的执行条件相比较 它的梯形图和位状态如图所示 当000000是OFF时 联锁有效 注意即使00001已是OFF然后变为ON 20000将不会在标为A的点上置ON 执行结果不确定的例子 至此 我们学习了LD指令 OUT指令 AND指令 OR指令 NOT指令 ANDLD指令 ORLD指令 END指令 联锁指令 暂存指令 跳转指令 置位和复位指令 空操作指令 保持指令 微分指令等基本指令 这其中的OUT OUTNOT DIFU 13 DIFD 14 SET RSET 和KEEP 11 指令 由于通常可以用他们来控制单独的位状态 因此这些指令又可统称为位控制令 这些指令可以用不同的方法来控制位的ON和OFF状态 由于他们在程序编制中经常用到 所以我们对位控指令做一下复习 基本指令小结 输出和输出非 OUT和OUTNOT OUT和OUTNOT用于根据执行条件控制指定位的状态 对于执行条件为ON OUT指令将指定位置ON 对于执行条件为OFF OUT指令将指定位置OFF 在一个TR位中 OUT出现在分支点上 而不是一个指令行的末端 对于执行条件为OFF OUTNOT指令将指定位置ON 对于执行条件为ON OUTNOT指令将指定位置OFF 基本指令小结 通过梯形图中指定条件位置ON和OFF 可控制OUT和OUTNOT的执行 而这些位决定其他指令的执行条件 允许一组复杂条件控制单个工作位状态 接着这个工作位用于控制其他指令 这对编程是非常有帮助的 一个位ON和OFF的时间长短可以通过将OUT或OUTNOT与TIM指令结合来完成控制 输出和输出非 OUT和OUTNOT 基本指令小结 置位和复位 SET和RSET 当SET的执行条件为ON SET置操作数位为ON 当其执行条件为OFF时 操作数位的状态不受影响 当RSET的执行条件为ON RSET置操作数位为OFF 当其执行条件为OFF时 操作数位的状态不受影响 基本指令小结 注意事项 SET指令的执行和OUT不同 因为当执行条件为OFF时 OUT指令置操作数位为OFF 同样 RSET指令的执行和OUTNOT不同 因为当执行条件为OFF时 OUTNOT指令置操作数位为ON 当遇到联锁和跳转条件时 即 当IL 02 和JMP 04 在一个OFF执行条件执行下 在IL 02 和ILC 03 或JMP 04 和JME 05 之间的SE

温馨提示

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

评论

0/150

提交评论