可编程序控制器的指令系统4幻灯片.ppt

* 【例】编写程序,要求读时钟并以BCD码显示秒钟。 说明: 时钟缓冲区从VB0开始,VB5中存放着秒钟,第一次用SEG指令将字节VB100的秒钟低四位转换成七段显示码由QB0输出,接着用右移位指令将VB100右移四位,将其高四位变为低四位,再次使用SEG指令,将秒钟的高四位转换成七段显示码由QB1输出。 * LD SM0.1 TODR VB0 MOVB VB5, VB100 SEG VB100, QB0 SRB VB100, 4 SEG VB100, QB1 图 读时钟并以BCD码显示秒钟 * 【例】编写程序,要求控制灯的定时接通和断开。 要求18:00时开灯,06:00时关灯。时钟缓冲区从VB0开始。程序如下图所示。 网络1 读实时时钟,“小时”在VB3 LD SM0.0 TODR VB0 网络2 18点之后,6点之前开灯,时间 用BCD码 LDB= VB3, 16#18 OB= VB3, 16#06 = Q0.0 图 控制灯的定时接通和断开程序 * 小结:通过本讲的学习,重点掌握PLC的特殊功能类指令。 作业:用所学指令系统设计个简单控制。 学习要求 * 作者一 姓 名:杨霞 工作单位:沈阳工业大学 联系方式 :Tel Mail yangxia99@126.com 通讯地址:沈阳经济技术开发区沈辽西路111号 559信箱 邮政编码:110870 作者二 姓 名:张博舒 工作单位:沈阳航空职业技术学院 联系方式 :Tel Mail 916015610@ 通讯地址:沈阳市大东区和睦路12号 邮政编码:110043 * ④在变量存储器V中,写入包络表的各参数值。一定要在包络表的起始字节中写入段数。在在变量存储器V中建立包络表的过程也可以在一个子程序中完成,在此只须调用设置包络表的子程序。 ⑤设置中断事件并全局开中断。如果想在PTO完成后,立即执行相关功能,则须设置中断,将脉冲串完成事件(中断事件号19)连接一中断程序。 ⑥执行PLS指令,使S7-200为PTO/PWM发生器编程,高速脉冲串由Q0.0或Q0.1输出。 ⑦退出子程序。 * 例 PTO指令应用实例 编程实现例8-6中的步进电机的控制 分析: 编程前首先选择高速脉冲发生器为Q0.0,并确定PTO为3段流水线。 设置控制字节SMB67为16#A0表示允许PTO功能、选择PTO操作、选择多段操作、以及选择时基为微秒,不允许更新周期和脉冲数。 建立3段的包络表(上例),并将包络表的首地址装入SMW168。 PTO完成调用中断程序,使Q1.0接通。PTO完成的中断事件号为19。 用中断调用指令ATCH将中断事件19与中断程序INT-0连接,并全局开中断。 执行PLS指令,退出子程序。 本例题的主程序,初始化子程序,和中断程序如下图所示。 * 主程序 LD SM0.1// 首次扫描时,将Q0.0复位 R Q0.0 1 CALL SBR_0//调用子程序0 * 子程序0 // 写入PTO包络表 LD SM0.0 MOVB 3 VB200 // 将包络表段数设为3 // 段1: MOVW +500 VW201 //段1的初始循环时间设为500ms MOVW -2 VW203 //段1的Δ设为-2 ms MOVD +200 VD205 //段1的脉冲数设为200 // 段2: MOVW +100 VW209 //段2的初始周期设为100 ms MOVW +0 VW211 //段2的Δ设为0 ms MOVD +3600 VD213 //段2中的脉冲数设为3600 // 段3: MOVW +100 VW217 //段3的初始周期设为100ms MOVW +1 VW219 //段3的Δ设为1ms MOVD +200 VD221 //段3中的脉冲数设为200 LD SM0.0 MOVB 16#A0, SMB67 // 设置控制字节 MOVW +200, SMW168 // 将包络表起始地址指定为V200 ATCH INT_0, 19 // 设置中断 ENI // 全局开中断 PLS 0 // 起动PTO,由Q0.0输出 * 中断程序0 LD SM0.0 // PTO完成时,输出Q1.0 = Q1.0 图 主程序,初始化子程序,中断程序 * PWM是脉宽可调的高速脉冲输出,通过控制脉宽和脉冲的周期,实现控制任务。 (1)周期和脉宽 周期和脉宽时基为:微秒或

文档评论(0)

1亿VIP精品文档

相关文档