您好!欢迎光临工博士商城

西门子plc专营

产品:516    

咨询热线:18621383620

QQ QQ
您当前的位置:首页 » 西门子新闻中心 » 西门子plc200 smart高速计数器的计数
产品分类
西门子新闻中心
西门子plc200 smart高速计数器的计数
发布时间:2018-03-06        浏览次数:542        返回列表
 昨天下午在“找答案”版区,看到一则网友的提问,主要提问是“为什么需要进行高速计数器的2次启用HSC指令”,网友的图示程序提供的还是比较清楚、明了的

   根据上图程序的描述,我大致回复了2次启用HSC1的原理就匆匆下班回家了。晚上特想起那个回复感觉没有把原理描述清楚,只是笼统地讲了程序的思路过程。

   编写200或者200smart PLC的高速计数器,我之前有几篇文章发表过,有兴趣的网友可以按标号索引阅读基本的使用方法,均是以西门子200 smart PLC为案例的。

实际上这个问题关键之一在于如何理解高速计数器的控制字节SMB47,打开帮助,看高速计数器SMB47的控制字节解释,该控制字节是专对于高速计数器HSC1而设置的,(200或者200 smart PLC)的高速计数器控制字节是单独唯一的索引,即每一个高速计数器都有具体的控制字节应对。为说明控制字节的含义,我截图如下:

 

网友高速计数器程序的初始化高速计数器控制字节,把16# F8写入SMB47,理解控制字节SMB47的含义只需要把16# F8转换为二进制数是2# 11111000,并按位“对号入座”。

SMB47控制字节其含义:

1)  启用高速计数器HSC1

2)  更新当前值

3)  更新预设值

4)  更新计数方向

5)  加(增)计数方式

上述5点模式选择,高速计数器的控制字节的含义已经非常清楚了的。

   程序所选择的高速计数器工作模式为11,表示外部连接的是:带外部复位输入的正交A/B高速模式。当前值定义为0,预设值(目标值)定义为50,启用当前值等于预设值中断并连接中断子程序INT_0,开中断,启用高速计数器HSC1。

   网友的疑问是当前值等于预设值时,系统进入中断子程序后,重新定义当前值SMD48为0(重新初始化),为什么仍然还需要再启用高速计数器HSC1呢?实际上真正的原因(关键原因之二)是网友在中断子程序中“重新”定义了高速计数器的工作模式,即当前值清0的操作,重新定义了的高速计数器初始化参数后必须重新启用高速计数器,才能使定义的初始化数据生效。当然,如果不重新定义高速计数器工作模式,可以不调用高速计数器的。按网友的程序理解:当高速计数器计数到达50个高速脉冲后,进入中断子程序重新将当前值重新定义为0后,这时的高速计数器当前值由50变为0,准备好了下一次的高速计数操作。如果在中断子程序没有操作当前值的清0,则高速计数器的当前值会在以50个高速脉冲上一直累加,除非改变的高速计数器的方向。所以,无论你采用何种方式改变了高速计数器的工作模式,必须重新启用高速计数器一次。另外,在中断子程序中重新定义高速计数器的工作模式,可以不需要采用特殊标志位SM0.1或者沿触发的原因是中断仅仅只执行一个周期的工作特性,如果那位网友看到此贴,希望能够帮助到他进一步认识200的高速计数器定义特点及使用方法。




 

联系热线:18621383620   联系人:张利康 联系地址:北京市朝阳区东土城路4号3幢4层401房间

技术和报价服务:星期一至星期六8:00-22:00 西门子plc专营