s7-200的脉冲输出应用指令PLS。。和高带计数器HSC..的相关祥细的说明 点击:5794 | 回复:6



fandy

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 22回
  • 年度积分:0
  • 历史总积分:164
  • 注册:2009年12月22日
发表于:2011-01-06 16:40:24
楼主
大家好小弟刚接触西文子的PLC。。哪位大侠有相关s7-200的脉冲输出应用指令PLS。。和高带计数器HSC..的相关祥细的说明。。西文子的太牛了。。和三菱一点都不一样太麻烦了。。哪 位大侠给点这方面的祥细点的资料。。小弟在此谢过拉。。。帮帮忙啊。。



fandy

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 22回
  • 年度积分:0
  • 历史总积分:164
  • 注册:2009年12月22日
发表于:2011-01-06 17:06:07
1楼
S7-200的高速计数器(HSC)的使用概述本例叙述SIMATICS7-200的高速计数器(HSC)的一种组态功能。对来自传感性(如编码器)信号的处理,高速计数器可采用多种不同的组态功能。本例用脉冲输出(PLS)来为HSC产生高速计数信号,PLS可以产生脉冲串和脉宽调制信号,例如用来控制伺服电机。既然利用脉冲输出,必须选用CPU224DC/DC/DC。下面这个例子,展示了用HSC和脉冲输出构成一个简单的反馈回路,怎样编制一个程序来实现反馈功能。例图程序和注释本例描述了S7-200DC/DC/DC的高速计数器(HSC)的功能。HSC计数速度比PLC扫描时间快得多,采用集成在CPU224中的20K硬件计数器进行计数。总的来说,每个高速计数器需要10个字节内存用来存控制位、当前值、设定值、状态位。本程序长度为91个字。//主程序://在主程序中,首先将输出Q0.0置,0,因为这是脉冲输出功能的需要。再初始化高速计//数器HSC0,然后调用子程序0和1。//HSC0起动后具有下列特性:可更新CV和PV值,正向计数。//当脉冲输出数达到SMD72中规定的个数后,程序就终止。//主程序LDSM0.1//首次扫描标志(SM0.1=1)。RQ0.0,1//脉冲输出Q0.0复位(Q0.0=0)。MOVB16#F8,SMB37//装载HSC0的控制位://激活HSC0,可更新CV,可更新PV,//可改变方向,正向计数。//HSC指令用这些控制位来组态HSC。MOVD0,SMD38//HSC0当前值(CV)为0。MOVD1000,SMD42//HSC0的第一次设定值(PV)为1000。HDEF0,0//HSC0定为模式0。CALL0//调用子程序0。CALL1//调用子程序1。MEND//主程序结束。//********************//子程序0://子程序0初始化,并激活脉冲输出(PLS)。//在特殊存储字节SMB67中定义脉冲输出特性:脉冲串(PT0),时基,可更新数值,激活PLS。//SMW68定义脉冲周期,其值为时基的倍数。//最后,在SMD72中指定需要产生的脉冲数。(SMD72)为内存双字,即4个字节)。//子程序0SBR0//子程序0MOVB16#8D,SMB67//装载脉冲输出(PLS0)的控制位:PT0,时基1ms,可更新,激活。MOVW1,SMW68//脉冲周期1ms。MOVD30000,SMD72//产生30000个脉冲。PLS0//起动脉冲输出(PLS0),从输出端Q0.0输出脉冲。RET//子程序0结束。//********************//子程序1://子程序1起动HSC0,并把中断程序0分配给中断事件12(HSC0的当前值CV等于设定值PV)。//只要脉冲计数值(当前值CV)达到设定值(PV),该事件就会发生。//最后,允许中断。//子程序1SBR0//子程序1。ATCH0,12//把中断程序0分配给中断事件12(HSC0的CV=PV)。ENI//允许中断。HSC0//按主程序中对HSC0的初始组态特性,起动HSC0。RET//子程序1结束。//********************//中断程序0://当HSC0的计数脉冲达到第一,设定值1000时,调用中断程序0。//输出端Q0.1置位(Q0.1=1)。//为HSC0设置新的设定值1500(第二设定值)//用中断程序1取代中断程序0,分配给中断事件12(HSC0的CV=PV)。//中断程序0INT0//中断程序0。SQ0.1,1//输出端Q0.1置位(Q0.1=1)。MOVB16#A0,SMB37//重置HSC0的控制位,仅更新设定值(PV)。MOVD1500,SMD42//HSC0的下一个设定值为1500(第二设定值)。ATCH1,12//用中断程序1取代中断程序0,分配给中断事件12。HSC0//起动HSC0,,为其装载新的设定值。RETI//中断程序0结束。//********************//中断程序1://当HSC0的计数脉冲达到第二设定值1500时,调用中断程序1。//输出端Q0.2置位(Q0.2=1)。//HSC0改成减计数,并置新的设定值1000(第三设定值)。//用中断程序2取代中断程序1,分配给中断事件12(HSC0的CV=PV)。//中断程序1:INT1//中断程序1。SQ0.2,1//输出端Q0.2置位(Q0.2=1)。MOVB16#B0,SMB37//重置HSC0的控制位,更新设定值,并改成减计数(反向计数)。MOVD1000,SMD42//HSC0的下一个设定值为1000(第三设定值)。ATCH2,12//用中断程序2取代中断程序1,分配给中断事件12。HSC0//起动HSC0,,为其装载新的设定值和方向。RETI//中断程序1结束。//********************//中断程序2://当HSC0的计数脉冲达到第三设定值1000时,调用中断程序2。//输出端Q0.1和Q0.2复位(Q0.1=0,Q0.2=0)。//HSC0的计数方向重新改为正向(增计数),并将当前计数值置为0,而设定值PV保持不变(1000)。//重新把中断程序0分配给中断事件12,程序再次起动HSC0运行。//当脉冲数达到SMD72中规定的个数后,程序就终止。//中断程序2:INT2//中断程序2。RQ0.1,2//输出端Q0.1和Q0.2复位(Q0.1=0,Q0.2=0)。MOVB16#D8,SMB37//重置HSC0的控制位,更新CV,改为正向计数(增计数)。MOVD0,SMD38//HSC0的当前值复位(CV=0)。ATCH0,12//把中断程序0分配给中断事件12。HSC0//重新起动HSC0。RETI//中断程序2结束。

fandy

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 22回
  • 年度积分:0
  • 历史总积分:164
  • 注册:2009年12月22日
发表于:2011-01-08 10:40:42
2楼
会西文子的大侠们,帮帮忙。s7-200-cpu224.模式12的高速计数器,怎么写的?能帮我写个吗?小弟写了好久都不计不了数?

fs007

  • 精华:0帖
  • 求助:40帖
  • 帖子:305帖 | 1715回
  • 年度积分:0
  • 历史总积分:6747
  • 注册:2004年9月09日
发表于:2011-01-08 18:13:30
3楼
你下个视频教程,有个宋老师录的。有一章专门说的高速计数器。

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2011-01-08 19:32:11
4楼
现在你手头上已经有了哪些关于西文子的资料?

nh9011

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 10回
  • 年度积分:0
  • 历史总积分:9
  • 注册:2015年8月19日
发表于:2015-08-19 21:18:13
5楼

找了好久,最近也在做这方面

leisurefly

  • 精华:0帖
  • 求助:1帖
  • 帖子:7帖 | 1256回
  • 年度积分:21
  • 历史总积分:8350
  • 注册:2012年5月22日
发表于:2015-08-20 14:41:11
6楼

这,西文字?西门子吧,太犀利鸟!


热门招聘
相关主题

官方公众号

智造工程师