发布于 2013-01-22 22:40:09
3楼
LD M0.2
A M6.0
EU
CALL SBR_0:SBR0
子程序:
LD SM0.0 // 仅首次扫描周期SM0.1置位(SM0.1=1)
MOVB 16#85, SMB67 // 输出脉冲周期为500微秒
MOVW +500, SMW68 // 脉宽为0(脉宽调制)
MOVW +0, SMW70 // 输出40000个脉冲
MOVD +40000, SMD72 // 把中断程序0分配给中断事件19(PLS0
// 脉冲输出结束)
ATCH INT_0:INT0, 19 // 允许中断
ENI
PLS 0
我这样写了后实际情况是按下M6.0会发脉冲,松开要等一会才停止,而且我给的数字都是定值,但是到伺服端的速度感觉是加减速状态..暂时还没有找到原因。
另外想请教芳季大侠一下,如果我使用Q0.0发脉冲,手动时可点动,自动时有走定长,有往返运动,那么我发脉冲只用一个Q0.0会有冲突吗,是用一个发脉冲的子程序还是用多个发脉冲的子程序?
假如我的要简单的实现以下动作:手动时(M0.2),点动按钮(M6.0),按下则脉冲输出,松开则不发脉冲;
自动时(NOT M0.2),按下自动按钮(M6.1),则此时Q0.0输出 走第一个定长,然后在走第2个定长后,再以第二个定长走往返。
现在感觉手动点动和自动时走定长的脉冲子程序感觉有冲突。请问有什么好的处理办法吗?
最好的永远没有