
生产线上运输升降机精确平层控制指令表.doc
2页精确平层控制程序运用S7-200 DC/DC/DC的高速记数器HSC的功能来构成一个反馈回路HSC计数速度比PLC扫描时间快的多,采用集成在CPU226中的20K硬件计数器进行比较,总的来说,每个高速计数器需要10个字节内存用来存控制位,当前值,设定值,状态位 主程序:在主程序中,首先将输出Q00置0,因为这是脉冲输出功能的需要再初始化高速计数器HSC0,然后调用子程序0和1HSC0起动后具有下列特性:可更新CV和PV值,正向计数当脉冲输出数达到SMD72中规定的个数后,程序就终止LD SM0.1 首次扫描标志(SM0.1=1)R Q0.0,1 脉冲输出Q0.0复位(Q0.0=0)MOVB 16#F8,SMB37 装载HSC0的控制位; 激活HSC0,可更新CV,PV, 可改变方向,正向计数 HSC指令用这些控制位组态HSC。
MOVD 0, SMD38 HSC0当前值(CV)为0MOVD 1000, SMD42 HSC0的第一次设定值(PV)为1000HDEF 0, 0 HSC0定为模式0CALL 0 调用子程序0CALL 1 调用子程序1MEND 主程序结束子程序0:子程序0初始化,并激活脉冲输出(PLS)在特殊存储字节SMB67中定义脉冲输出特性:脉冲串(PT0),时基,可更新数值,激活PLSSMW68定义脉冲周期,其值为时基的倍数最后,在SMD72中指定需要产生的脉冲数SMD72)为内存双字,四个字节SBR 0 (子程序0) MOVB 16#8D, SMB67 装载脉冲输出(PLS0)的控制位;PT0,时基1MS,可更新,激活MOVW 1, SMW68 脉冲周期1MS。
MOVD 30000,SMD72 产生30000个脉冲PLS 0 起动脉冲输出(PLS0),从输出端Q0.0输出脉冲RET 子程序0结束子程序1:子程序1起动HSC0,并把中断程序0分配给中断事件12(HSC0的当前值CV等于设定值PV0)只要脉冲计数值CV=PV,该事件就会发生最后,允许中断SBR 1 (子程序1)ATCH 0, 12 把中断程序0分配给中断事件12(HSC0的CV=PV)ENI 允许中断HSC 0 按主程序中对HSC0的初始组态特性,起动HSC0RET 子程序1结束 当HSC0的记数脉冲达到第一,设定值1000时,调用中断程序0。
输出端Q0.1置位(Q0.1=1)INT 0 (中断程序0)MOVB 16#D8, SMB37 重置HSC0的控制位,更新CV,正向计数MOVD 0, SMB38 HSC0的当前值复位(CV=0)ATCH 0, 12 把中断程序0分配给中断事件12HSC 0 (重新启动HSC0) RET 中断程序2结束 。












