技术论坛

 我来吃个螃蟹,发个关于S7-200脉冲的讨论.

返回主题列表
作者 主题
伊默
至圣

经验值:19238
发帖数:4259
精华帖:118
楼主    2007-04-22 19:09:48
主题:我来吃个螃蟹,发个关于S7-200脉冲的讨论. 精华帖 
就初学者而言,S7-200的脉冲输出功能比较麻烦,但是实际上它的包络表功能还是非常强大的,可以实现多段包络。 但是
1、对于自己编程实现三段包络(加速、匀速、减速)来说实际是有一个非常矛盾的问题:由于采用初始周期+周期增量+脉冲个数,以此来确定包络,想想做一个加速的包络会出现什么问题呢?随着周期越来越小,而周期增量却不变,导致加速度越来越大!举个极端的例子假设周期增量为-2us,某一时刻周期为4us,那么下一周期的脉冲周期为2us ,看看,短短的2us之内,速度翻了一倍! 这显然是不合理的!
2、采用软件提供的向导功能,能达到非常平稳的加减速控制! 可是向导只提供在向导内绘制包络表,而不能实时的更改,比如最大脉冲频率,脉冲数目等,这又非常不方便!
我想要得到一个可以通过上位机随时更改步进速度(脉冲周期)和运动位移(脉冲数目)且可以非常平稳的加减速的包络表,怎么办? 以下给出一个粗略的方案,供大家参考,大家如果有什么不同的意思一起讨论!

打开软件,选择PTO/PWM向导功能。
1、设置最大脉冲频率20000,最小脉冲频率1000,如下图


2、设置加减速时间均为200毫秒,如下图


3、绘制一个脉冲频率为20000(最大频率),脉冲个数为10000的三段包络,如下图


4、绘制一个脉冲频率为10000(最大频率的0.5倍),脉冲个数为10000的三段包络,如下图


5、绘制一个脉冲频率为5000(最大频率的0.25倍),脉冲个数为10000的三段包络,如下图



之后,完成向导功能,切换到“数据块”,查看向导数据块的内容,会有如下发现:
A、对应最大频率20K的加速脉冲为2099;
B、对应最大频率10K的加速脉冲为521;
C、对应最大频率5K的加速脉冲为127;

根据上面三项,我们大致得出一个统计规律,设PLC的最大频率为F(除224XP外都是20K),该频率下对应的加速脉冲个数为N(F), 则当脉冲频率为f时对应的加速脉冲个数为:
N(f)=((f/F)的平方) * N(F)
验证一下:
10K时,N(10K)= 0.5的平方 *2099 =524 --->实际需要521
5 K时,N(5K)= 0.25的平方 *2099 =131 --->实际需要127
上式说明误差还是非常小的! 另外,一般来讲我们做的都是加速度等减速度,所以减速脉冲个数也等于加速脉冲个数!

接下来,我们要用这个粗略的统计规律来如何为我们服务呢? 假设通过上位机给定后,可以得知脉冲频率为F,脉冲个数为N ,那么如何得到一个可以实施的平稳的三段包络呢? 方法还是同上,使用向导设置, 不过不需要再设置包络表了! 只需要设置好最小频率,最大频率,加速时间,减速时间,然后确定就好了。 剩下的就是编程的问题了:
1、由以上公式可知,该段包络的减速段脉冲个数为x=(F/20000)平方 * N ,意即PLC在发出(N-x)个脉冲后就需要开始减速了!又设“减速时刻脉冲个数”=(N-x)
2、在主程序内调用:
初始化时使能HC0的模式12,对Q0.0输出脉冲计数;在启动该包络的上升沿时刻给“PTO实际频率”赋值为F(最大频率)并使能HC0高速计数中断;

主程序:

LD 运行标志
EU
MOVD F,PTO实际频率 //给定最高频率
MOVD N, SMD42 //给定总脉冲个数
-D 1, SMD42 //补偿(-1)个脉冲
HSC 0
ATCH HC0中断, 12 //HC0 Pv=Sv中断

LD SM0.0
= L60.0
LDN 运行标志
= L63.7
LDN SM0.0
= L63.6
LD L60.0
CALL PTO0_CTRL, L63.7, L63.6, L20.0, PTO0_Err, PTO0_Pos

LD 急停
= L60.0
LD 运行标志
= L63.7
LD L60.0
CALL PTO0_MAN, L63.7, PTO实际频率, PTO0_Err, PTO0_Pos

LDD> HC0, 减速时刻脉冲个数
MOVD 1000, PTO实际频率 //最后停止频率(最小频率)

HC0中断子程序
LD SM0.0
R 运行标志,1

LD SM0.0
= L60.0
LDN 运行标志
= L63.7
LDN SM0.0
= L63.6
LD L60.0
CALL PTO0_CTRL, L63.7, L63.6, L20.0, PTO0_Err, PTO0_Pos
I can do it
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。