技术论坛

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

返回主题列表
作者 主题
西门子Auto
官方工程师
西门子官方工程师西门子官方工程师

经验值:2462
发帖数:126
精华帖:16
楼主    2012-01-10 09:13:53
主题:来自西门子技术支持热线的故事: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,实现单速连续旋转,发送固定频率的脉冲,用沿跳变触发START引脚,可运用Abort引脚来停止。



注意,若使用ADV功能块,停止当前的连续运动包络轮廓并按照在向导轮廓定义中规定的脉冲数前进。
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库时,选择速度控制功能块,可以让轴按照指定的方向和频率运动,即也能够实现按照某个频率发送脉冲。
这里注意,每次更改发送脉冲的频率值后,需要重新触发EXECUTE引脚。这个功能块只能通过Stop Block功能块来停止轴的运动。


芳季
至圣

经验值:72120
发帖数:15507
精华帖:101
6楼    2012-02-06 23:51:53
精华帖  主题:回复:来自西门子技术支持热线的故事:S7-200如何实现发送无限脉冲?
非也。不会有发完又从新的现象。脉冲一点都不会有间隙。我的程序最关键最特别的地方是:要发脉冲的时候连续执行两个PLS指令。是两个。不是一般的一个。一个用于马上生成脉冲并马上发出。后一个是建立在缓冲当中。根据某版本编程手册上说后一段脉冲串可以连续地接续第一段脉冲。
我也用口头复述一下我的证实过程:
实验1。设定10K频率发10K个脉冲。作为一段。执行 壹 次PLS指令。以后每当脉冲完成中断执行一次PLS指令。
实验2。(同上)略。连续执行 贰 次PLS指令。以后……(同上,略)。
硬件上我把高速输出接上适当的电阻,并串联0.2W8Ω的小喇叭。去听以上两个实验的高频声。结果出来了。
第一个实验的声音是:滴……咪滴……咪滴……咪滴…………
第二个实验的声音是:滴…………………………………………
非常明显听见一有1秒周期的杂音。我看这个结果用示波器都很难捕捉不到啊。除非用双踪,一通道做触发去检查另一通道的同步。
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。