技术论坛

由一个200smart高速计数器的功能思考

作者 主题
至圣

经验值: 72010
发帖数: 8043
精华帖: 145
主题:【分享】由一个200smart高速计数器的功能思考
精华帖精华帖星级2级 推荐帖


只看楼主 只看精华 楼主 2016-09-20 08:25:40

                          由一个200smart高速计数器的功能思考

     写了一篇关于西门子300cpu315-2dp的集成通讯口名称及其功能后,意犹未尽地想再写一篇,思考了一下,有一个问题值得深思。问题大意是:"西门子200的高速计数器功能支持高速模式12,即高速计数器号HSC0(支持Q0.0的集成高速“输入”)和HSC3(支持Q0.1的集成高速“输入”),而200smart为什么“舍弃”了该功能?这里的“输入”含义是指不需要实际的硬件接线就可以得到自高速脉冲输出Q0.0或Q0.1的高速脉冲数据"。

    前一段时间在兑换区兑换过一本【深入浅出 西门子S7-200SMART PLC】的书,晚上空闲时间偶尔阅读一下,好像看到过类似的解释。为进一步加深印象,打开该书目录第8章“工艺功能”,从P256页开始查询答案。

    该书中描述:“200smart cpu提供了自HSC0~HSC3集成的高速计数器功能,最高计数器频率达到200KHZ(仅对于ST、SR系列cpu单相计数模式时)。其中高速计数器号HSC0和HSC2支持8种计数器模式(0、1、3、4、6、7、9、10);HSC1和HSC3仅只支持一种高速计数器模式(模式0)”。

   在该书的常问问题中找到了一些解释:“S7-200SMART取消了在S7-200上的模式12功能,模式12是S7-200高速计数器中的一种模式,可允许用户在不用外部接线的情况下,使用高速计数器测量CPU集成点Q0.0或Q0,1的高速脉冲输出。由于S7-200SMART的高速脉冲输出使用运动控制指令,其当前的脉冲数可以通过指令引脚C_POS得到,但这种方式受限于更新机制,大约有50mS的延迟,如果客户需要更快速地得到当前值,则可以通过AXIS*_RDPOS指令实现”。答案终于在此找到,不是舍弃了高速计数器模式12,而是让用户更加方便快捷地应用了原S7-200的高速计数器模式12了,使用原S7-200的模式12功能仅仅只需要调用指令即可。

   那运动控制指令C_POS引脚和AXIS*_RDPOS(读取当前轴位置)指令又是什么?答案在第303页中找到。在“启用和初始化运动轴指令AXIS_CTRL”功能有此输出引脚“C_POS”,表示运动轴的当前值,该值可以输出脉冲数(DINT双整形数)或工程单位数(REAL浮点数),用该引脚数据可以得到原S7-200的高速计数器模式12(脉冲数),只是这个值是受控于plc的扫描机制的影响。原因很显然,其中一个原因是调用该功能的使能端子EN端是SM0.0标志位,一般该特殊标志位需受控于程序刷新的扫描机制。在本书第308页中对功能指令AXIS*_RDPOS的解释,“相对于C_POS,I_POS可以更快获取当前值,C_POS数值是周期性更新(plc扫描机制),时间是几十毫秒,而使用AXIS*_RDPOS则可以微秒级返回当前位置,对于需要及时获取当前位置的应用,则需要此指令”。至此,疑问像窗户一样,被豁然推开,明白了其中被“误解”的原因所在。

   书是知识的“海洋”,想要获取海洋中的“宝藏”,需要大家去认真学习和实践。只有深入地去学习、实践过,才能掌握其中的“奥秘”。抬头看了一下时钟,已指向23点,休息了吧,祝自己明天能够有新的知识收获。

 

 

 

 

 

 

                                           2016年9月19日星期一 晚



 
分享帖版主置评: 书到用时方知少。 (推荐人:yanxiao)
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1326019&b_id=64&s_id=0&num=17

奇侠

经验值: 5763
发帖数: 1383
精华帖: 2
回复:由一个200smart高速计数器的功能思考


只看楼主 只看精华 1楼 2016-09-20 08:56:02

感谢楼主分享,受益匪浅!


我爱自动化
以下网友喜欢您的帖子:

  
侠圣

经验值: 2139
发帖数: 411
精华帖: 0
回复:由一个200smart高速计数器的功能思考


只看楼主 只看精华 2楼 2016-09-20 09:21:36

倒是没有在意过这个问题,因为我用的场合对数据更新没有那么高的要求,不过今天看到这个帖子就觉得手册要仔细看啊。另外,非常感谢。


没啥个性
以下网友喜欢您的帖子:

  
至圣

经验值: 67546
发帖数: 14783
精华帖: 100
回复:由一个200smart高速计数器的功能思考


只看楼主 只看精华 3楼 2016-09-20 11:56:59

送一个赞。表示你看到了我没有看见的东西。使我再一次认真看了一次向导的向导过程,再一次体现“书会越看越厚”的感觉。

手上还没有关于这个指令的说明。编程手册上没有。但是我又发现了一个事情。——只有选择了“读取位置”的时候才会出现这个指令。


可是,这上面说的事情是……

我不肯定这是个什么事情。是否当我们真正使用的时候只要不使用abspos指令,就可以忽略驱动器?就可以不下载特定的子程序?


 
以下网友喜欢您的帖子:

  
侠客

经验值: 894
发帖数: 16
精华帖: 0
回复:由一个200smart高速计数器的功能思考


只看楼主 只看精华 5楼 2016-09-20 17:46:04

你这个是主动读取,而200的高速计数器的模式12可以被动中断,不可能完全替代,我不觉得更方便快捷。


 
以下网友喜欢您的帖子:

  
版主

经验值: 25997
发帖数: 11809
精华帖: 43
回复:由一个200smart高速计数器的功能思考


只看楼主 只看精华 6楼 2016-09-20 19:15:00

读取当前位置和计数器的当前值,不是一回事。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 13020
发帖数: 1815
精华帖: 22
回复:由一个200smart高速计数器的功能思考


只看楼主 只看精华 7楼 2016-09-20 21:55:06


Smart运动库很好,获取轴当前值子程序实时性还好。向导生成的子程序命名规则也像一些著名的运动控制卡一样,很有考究。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 72010
发帖数: 8043
精华帖: 145
回复:由一个200smart高速计数器的功能思考


只看楼主 只看精华 楼主 8楼 2016-09-21 10:28:11

回季侠的问题:

看了你的回复,查了一下200smart系统手册,这个AXIS*_RDPOS指令的含义是“返回当前运动轴位置”,而读取当前位置值指令是AXIS*_ABPOS。详见200smart系统手册第511页,图示:

为了理解手册含义,打开运动控制向导,自行组态一个运动控制,在运动控制组件中可以找到这个解释。图示:

   AXIS*_RDPOS:子程序读取当前值

   AXIS*_ABPOS:子程序从驱动器读取绝对位置

   从软件组态方式来看,2者有着必然的联系(这点你已经指出),况且向导说明上清楚地描述了问题,而在系统手册及【深入浅出西门子S7-200SMART】一书上没有明确阐述关联。



 
以下网友喜欢您的帖子:

  
至圣

经验值: 72010
发帖数: 8043
精华帖: 145
回复:由一个200smart高速计数器的功能思考


只看楼主 只看精华 楼主 9楼 2016-09-21 11:00:36

回5、6楼:

   这个只能算是一种变通的做法。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 76206
发帖数: 19147
精华帖: 378
回复:由一个200smart高速计数器的功能思考


只看楼主 只看精华 10楼 2016-09-22 18:49:39
以下是引用芳季在2016-09-20 11:56:59的发言 >3楼

送一个赞。表示你看到了我没有看见的东西。使我再一次认真看了一次向导的向导过程,再一次体现“书会越看越厚”的感觉。

手上还没有关于这个指令的说明。编程手册上没有。但是我又发现了一个事情。——只有选择了“读取位置”的时候才会出现这个指令。


可是,这上面说的事情是……

我不肯定这是个什么事情。是否当我们真正使用的时候只要不使用abspos指令,就可以忽略驱动器?就可以不下载特定的子程序?

此功能原是配合V90绝对值编码器的,是通过通讯实现的,高版本的V90已取消了该功能。


与高速计数没啥关系


Zane 注册自动化系统工程师 Always save before download
以下网友喜欢您的帖子:

  
奇侠

经验值: 6183
发帖数: 987
精华帖: 4
回复:由一个200smart高速计数器的功能思考


只看楼主 只看精华 11楼 2016-09-23 10:29:28

为楼主的学习精神点赞!


每天进步一点点,无限接近零缺陷
以下网友喜欢您的帖子:

  
新手

经验值: 31
发帖数: 4
精华帖: 0
回复:由一个200smart高速计数器的功能思考


只看楼主 只看精华 12楼 2016-09-24 16:08:42


帖子不错,但俺是新手,还没用到过这个,一直想学习一下高速计数器怎么用,目前还是看不懂啊


 
以下网友喜欢您的帖子:

  
奇侠

经验值: 8830
发帖数: 791
精华帖: 4
回复:由一个200smart高速计数器的功能思考


只看楼主 只看精华 13楼 2016-09-30 08:00:39


【深入浅出 西门子S7-200SMART PLC】已兑换,可惜看的深度还是差太多


good good study,day day up!!!!
以下网友喜欢您的帖子:

  
侠客

经验值: 637
发帖数: 166
精华帖: 0
回复:由一个200smart高速计数器的功能思考


只看楼主 只看精华 14楼 2016-09-30 10:26:23

smart的这个改变应该是让人更容易上手,编程更简单,不需要去理解那么复杂的原理,而且smart运动控制功能更强大,运动控制面板更是趋向于运动控制卡的调试方式,毕竟smart是要替代200的产品。

200的高速计数器的模式12,手册中有一点,

只有HSC0和HSC3支持模式12。

HSC0计数Q0.0输出的脉冲数。

HSC3计数Q0.1输出的脉冲数。

而且HSC模式举例中也没有提模式12,后面有初始化模式12的方法,我做运动控制的时候都是用的库,这个应该已经在库里面了。不自己写PTO程序用处不大。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 67546
发帖数: 14783
精华帖: 100
回复:由一个200smart高速计数器的功能思考


只看楼主 只看精华 15楼 2016-09-30 22:58:57

200的plc至今我没有用过运动控制库在真正的产品上。而我用200的理由,正是他可以手工编制脉冲控制的空间。这点空间非常狭窄,但我却用到了。

一个题外话,正是这个狭窄的空间,我大量使用“双线圈”。同一个点位,在子程序,主程序,中断程序中不断地出现

=

指令做驱动。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 72010
发帖数: 8043
精华帖: 145
回复:由一个200smart高速计数器的功能思考


只看楼主 只看精华 楼主 16楼 2016-10-01 20:59:39
以下是引用芳季在2016-09-30 22:58:57的发言 >15楼

200的plc至今我没有用过运动控制库在真正的产品上。而我用200的理由,正是他可以手工编制脉冲控制的空间。这点空间非常狭窄,但我却用到了。

一个题外话,正是这个狭窄的空间,我大量使用“双线圈”。同一个点位,在子程序,主程序,中断程序中不断地出现

=

指令做驱动。

如果能够合理地使用“双线圈”,也不是一件坏事,毕竟大家都在说,而实际又很容易进入到这样一个死胡同里。再说了,系统也认可(编译没有错误)。


 
以下网友喜欢您的帖子:

  
侠客

经验值: 637
发帖数: 166
精华帖: 0
回复:由一个200smart高速计数器的功能思考


只看楼主 只看精华 17楼 2016-10-02 09:47:42

@芳季

我对自己写PTO,比较模糊。“用处不大”说的是使用运动库的时候HSC模式12,它已经在库里面了。如果像你自己写,那就要用了。你的程序都是“=”,没用PLS指令?



 
以下网友喜欢您的帖子:

  
至圣

经验值: 67546
发帖数: 14783
精华帖: 100
回复:由一个200smart高速计数器的功能思考


只看楼主 只看精华 18楼 2016-10-02 16:00:23
以下是引用ransad在2016-10-02 09:47:42的发言 >17楼

@芳季

我对自己写PTO,比较模糊。“用处不大”说的是使用运动库的时候HSC模式12,它已经在库里面了。如果像你自己写,那就要用了。你的程序都是“=”,没用PLS指令?


我是不使用库程序,只使用pls指令发脉冲。


 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
由一个200smart高速计数器的功能思考
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。