一、 实例
机械手分为自动及手动两种工作方式
自动方式
手动方式
二、问题的提出
1 、什么是程序控制类指令?各起什么作用?
程序控制指令用于程序执行流程的控制。对一个扫描周期而言,跳转指令可以使程序出现跨越或跳跃以实现程序段的选择。子程序指令可调用某段子程序。循环指令可多次重复执行特定的程序段。中断指令则用于中断信号引起的子程序调用。
程序控制类指令可以影响程序执行的流向及内容。对合理安排程序的结构,有效提高程序的功能,对实现某些技巧性运算,都有重要的意义。
( 1 )跳转指令说明及跳转对扫描过程的影响
该指令的助记符、指令代码、操作数、程序步如表 9-1 所示。
表 9-1 条件跳转指令要素
指令名称 | 助记符 | 指令代码位数 | 操作数范围 | 程序步 |
D ( . ) | ||||
条件跳转 | CJ CJ(P) | FNC100 (16) | P0~P63 P63 即 END | CJ 和 CI (P) ~3 步 标号 P~1 步 |
跳转指令在梯形图中使用的情况如图 9-1 所示。图中跳转指令 P8 、 P9 分别对应 CJ P8 及 CJ P9 二条跳转指令。
跳转指令执行的意义为在满足跳转条件之后的各个扫描周期中, PLC 将不再扫描执行跳转指令与跳转指针 PX 间的程序,即跳到以指针 PX 为入口的程序段中执行。直到跳转的条件不再满足,跳转停止进行。在图 9-1 中,当 X0 置 1 ,跳转指令 CJ P8 执行条件满足,程序将从 CJ P8 指令处跳至标号 P8 处,仅执行该梯形图中最后三行程序。
( 2 )子程序指令的使用要素及其梯形图表示
该指令的助记符、指令代码、操作数、程序步如表 9-3 所示。
表 9-3 子程序指令要素
指令名称 | 助记符 | 指令代码位数 | 操作数范围 | 程序步 |
D ( . ) | ||||
子程序调用 | CALL CALL(P) | FNC01 (16) | 指针 P0~P62 嵌套 5 级 | 3 步(指令标号) 1 步 |
子程序返回 | SRET | FNC02 | 无 | 1 步 |
子程序是为了一些特定的控制目的编制的相对独立的程序。为了区别于主程序,规定在程序编排时。将主程序排在前边,子程序排在后边,并以主程序结束指令 FEND ( FNC06 )将这两部分分隔开。
子程序指令在梯形图中使用的情况如图 9-6 所示。图中,子程序调用指令 CALL 安排在主程序段中, X0 是子程序执行的条件,当 X0 置 1 时标号为 P10 的子程序得以执行。子程序 P10 安排在主程序结束指令 FEND 之后,标号 P10 和子程序返回指令 SRET 间的程序构成了 P10 子程序的内容。当主程序带有多个子程序时,子程序可依次列在主程序结
束之后。并以不同的标号相区别。
( 3 )使用跳转指令应注意点什么?
( a )由于跳转指令具有选择程序段的功能。在同一程序且位于因跳转而不会被同时执行程序段中的同一线圈不被视为双线圈
( b )可以有多条跳转指令使用同一标号。在图 9-2 中,如 X20 接通,第一条跳转指令有效,从这一步跳到标号 P9 。如果 X20 断开,而 X21 接通,则第二条跳转指令生效,程序从第二条跳转指令处跳到 P9 处。但不允许一个跳转指令对应二个标号的情况,即在同一程序中不允许存在二个相同的标号。
( c )标号一般设在相关的跳转指令之后,也
可以设在跳转指令之前。但要注意从程序执行顺序 图 9-1 跳转指令使用说明
来看,如果由于标号在前造成该程序的执行时间超过了警戒时钟设定值,则程序就会出错。
图示 二条跳转指令使用同一标号 | 图示 跳转指令用于程序初始化 |
( d )使用 CJ ( P )指令时,跳转只执行一个扫描周期,但若用辅助继电器 M8000 作为跳转指令的工作条件,跳转就成为无条件跳转。
( e )跳转可用来执行程序初始化工作。如图 9-3 所示,在
PLC 运行的第一个扫描周期中,跳转 CJP7 将不执行,程序执行
初始化程序后执行工作程序。而从第二个扫描周期开始,初始化
程序则被跨过,不再执行。
2 、怎样用跳转指令来实现机械手的控制
三、 PLC 硬件的实现
1 、 I/O 的分配
输入 | 功能说明 | 输出 | 功能说明 | ||
S0 | X0 | 启动 | Y0 | ||
S1 | X1 | 慢速 | Y1 | ||
S2 | X2 | 中速 | Y2 | ||
S3 | X3 | 快速 | |||
S4 | X4 | 正反转 | |||
S5 | X5 | 单步 | |||
S6 | X6 | 10 步 | |||
S7 | X7 | 100 步 | |||
S8 | X10 | 暂停 |
2 、 I/O 的外部接线
四、 PLC 软件的实现
图示即为一段手动、自动程序选择的梯形图。图中输入继电器 X10 为手动 / 自动转换开关。当 X10 置 1 时,执行自动工作方式,置 0 时执行手动工作方式。
(需补充程序)
五、识的拓展
指令名称 | 助记符 | 指令代码位数 | 操作数范围 | 程序步 |
D | ||||
中断返回指令 | IRET | FNC03 | 无 | 1 步 |
允许中断指令 | EI | FNC04 | 无 | 1 步 |
禁止中断指令 | DI | FNC05 | 无 | 1 步 |
指令名称 | 助记符 | 指令代码位数 | 操作数范围 | 程序步 |
S | ||||
循环开始指令 | FOR | FNC08 (16) | K 、 H KnX 、 KnY 、 KnM 、 KnS T 、 C 、 D 、 V 、 Z | 3 步(嵌套 5 层) |
循环结束指令 | NEXT | FNC09 | 无 | 1 步 |
六、习题
(1) 跳转发生后, CPU 还是否对被跳转指令跨越的程序段逐行扫描,逐行执行。被跨越的程序中的输出继电器、定时器及计数器的工作状态怎样?
(2) 某报时器有春冬季和夏季二套报时程序。请设计二种程序结构,安排这二套程序。