西门子S7-200如何实现发送无限脉冲?

 

来自西门子技术支持热线的故事:S7-200如何实现发送无限脉冲?

西门子的S7-200应用普遍,热线中大家常常就实际的应用,来问些与基本功能相关的衍生问题。
 某次我遇到客户问这样的问题,Q:S7-200如何实现发送无限脉冲?这个客户提出问题的范围较大,我只能通过询问来缩小解答范围了。
 A:您是运用CPU本体上高速脉冲输出通道来实现运动控制的吗?
 Q:是的。
 A:那您是用什么方式来发脉冲的呢?
 Q:就是输出高速脉冲啊,能有什么方式啊?
 好吧,接下来,我简单讲解了本体上高速脉冲输出,来实现运动控制的方式。
 对于S7-200 DC/DC/DC,通过Q0.0和Q0.1发送脉冲来做运动控制,一般可以采用PTO/PWM向导配置;PLS指令编程; MAP运动控制库函数实现。
 (MAP库函数:http://support.automation.siemens.com/CN/view/zh/26513850
 中文说明:http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=A0534)
 Q:哦,这么多方式,那能帮我都讲讲吗?
 ~~~~~~遇到这样的问题,我建议您参考下面的讲解:咱们现在按照上面提到的方法,分别做来看看:
 1.向导配置:
 A. 在作PTO向导配置时,选择模式:单速连续旋转。
 


 调用功能块PTOx_RUN,实现单速连续旋转,发送固定频率的脉冲,可运用Abort引脚来停止。
 


 B. 不论在向导配置时,包络选择怎样的操作模式,在向导配置完成后,调用功能块PTOx_MAN,发送无限脉冲,通过RUN位来控制开始和结束。
 


 Q:这里A和B两种方法,同样都能实现发送无限脉冲,那区别在哪里呢?
 A:您问的很好,区别就在于你需不需要更改发送脉冲的频率。方法A的脉冲频率是向导配置时设定的,无法更改,除非您再从新配置向导。方法B的脉冲频率,可以在发送脉冲的过程中,进行实时更改。
 2. PLS指令编程:
 常用到高速脉冲输出的客户了解,在PTO手动编程时,你需要先去定义PTO/PWM寄存器。不论您要实现多段或单段进行脉冲输出操作,都需要定义所要发送的脉冲个数。那么如何实现发送无限脉冲呢?有的客户就会问:在脉冲个数SMD72里的计数值是有范围的啊?
 


 若在这个问题上,您可以使用下面的方法:
 A. 使能更新脉冲计数值,同时将脉冲个数设置为:-1
 


 B. 禁用更新脉冲计数值,同时将脉冲个数设置为:0
 


 这两种方法没有本质区别,如果您想更改PTO脉冲指令的话,需要从新给控制寄存器赋值,这里主要需要再从新触发PLS指令。
 3.使用MAP运动控制库函数时,首先需要注意的是,一些输入输出点的功能被预先定义好了。
 


 应用MAP库时,选择速度控制功能块,可以让轴按照指定的方向和频率运动,即也能够实现按照某个频率发送脉冲。但这个功能块只能通过Stop Block功能块来停止轴的运动。
 

Write a comment

Comments: 4
  • #1

    嗡嗡嗡 (Thursday, 02 May 2013 16:13)

    还是看不懂

  • #2

    (Thursday, 02 May 2013 16:14)

    俺基础差,不行

  • #3

    舒米勒 (Friday, 06 June 2014 03:59)

    受教了,用库调用倒是接触的少。

  • #4

    wróżba (Saturday, 21 January 2017 16:47)

    sprzężonych