在程序中的用指令可将表中的数据送入V变量存储区中。 (3)多段流水线PTO初始化和操作步骤www.plcs.cn 用一个子程序实现PTO初始化,首次扫描(SM0.1)时从主程序调用初始化子程序,执行初始化操作。以后的扫描不再调用该子程序,这样减少扫描时间,程序结构更好。 初始化操作步骤如下: 1首次扫描(SM0.1)时将输出Q0.0或Q0.1复位(置0),并调用完成初始化操作的子程序。 2在初始化子程序中,根据控制要求设置控制字并写入SMB67或SMB77特殊存储器。如写入16#A0(选择微秒递增)或16#A8(选择毫秒递增),两个数值表示允许PTO功能、选择PTO操作、选择多段操作、以及选择时基(微秒或毫秒)。 3将包络表的首地址(16位)写入在SMW168(或SMW178)。 4在变量存储器V中,写入包络表的各参数值。一定要在包络表的起始字节中写入段数。在在变量存储器V中建立包络表的过程也可以在一个子程序中完成,在此只须调用设置包络表的子程序。 5设置中断事件并全局开中断。如果想在PTO完成后,立即执行相关功能,则须设置中断,将脉冲串完成事件(中断事件号19)连接一中断程序。 6执行PLS指令,使S7-200为PTO/PWM发生器编程,高速脉冲串由Q0.0或Q0.1输出。 7退出子程序。 【例6-7】PTO指令应用实例。编程实现例6-6中的步进电机的控制 分析:编程前首先选择高速脉冲发生器为Q0.0,并确定PTO为3段流水线。设置控制字节SMB67为16#A0表示允许PTO功能、选择PTO操作、选择多段操作、以及选择时基为微秒,不允许更新周期和脉冲数。建立3段的包络表(例6-6),并将包络表的首地址装入SMW168。PTO完成调用中断程序,使Q1.0接通。PTO完成的中断事件号为19。用中断调用指令ATCH将中断事件19与中断程序INT-0连接,并全局开中断。执行PLS指令,退出子程序。本例题的主程序,初始化子程序,和中断程序如图6-15所示。
主程序 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 |