以前我用这个东西控制伺服经常发现伺服的命令脉冲数比PLC的输出脉冲数多一个。
每发一轮脉冲就会有时候多一个有时候相等。我发的脉冲有一个特殊性,就是,不是自然停止,而是用PLSY指令前面的能流切断。使得脉冲强制中断。就会发生这种情况。
今天总算找到原因了。(正常停止的脉冲串不会有这种情况)
伺服收到的脉冲是对的。物理上也是产生了这数量的脉冲。错的是PLC。PLC记录脉冲完整个数是在脉冲下降缘登记的。脉冲完成标志也是大概这个时刻置位的。脉冲串的低电平忽略了。
当强制中断脉冲的话,执行完PLSY指令之后就会终止脉冲。而这个终止会发生在波形的任意位置。
当终止发生在低电平的时候波形的高电平完整,伺服也执行了这个脉冲,PLC的内部计数也登记了这个脉冲。这样的话伺服的命令脉冲寄存器与PLC的内部脉冲计数器数值相等。一切都不存在问题。
当终止发生在波形的高电平的时候。波形高电平不完整了。但但但 是是是 伺服却执行了这半个高电平。 而而而 PLC却不承认这个脉冲的发出。结果发生了本文第一句话的情况。
我相信三菱其他小型系列都是这种情况了。
欢迎拍砖。
用2N控制伺服这部分程序今天都搞好了。情况理想。
对象在两个端点之间移动。控制分自动、连续和点动三种状态。自动速度高使用PLSR有斜坡时间。点动速度低不需要斜坡时间,用PLSY指令。连动是用点动形式,但是中途不停止,端点才停止。
不论连动自动还是点动极限都会停在极限限位开关之前。不论连动或者自动都可以随时紧急停止,当前位置可以记忆,可以继续往下走或者往回走。
已经找零之后若碰到极限限位开关就清除零位信号,必须从新找零。只要伺服一直就绪,零位记忆和当前位置一直掌握之中。
零点开关分布在极限开关中央。前半程零点开关OFF,后半程零点开关ON.。找零动作可以再行程当中任意位置开始找零,都可以找到零点开关ON-->OFF边缘,作为零点。
屏幕设定零位偏移;总行程;自动最大速度;手动速度;斜坡时间。由于PLSR指令对最大频率和斜坡时间的配合有要求。程序自动限制最大速度。当设定情况不允许的时候自动修改降低最高速度。
"2.上面说到。用高计累计高出脉冲。不要用D8xxx。高计的计数方向受伺服的方向命令驱动,一定要注意扫描过程一定要先驱动伺服的方向信号,下一个周期执行高计方向指令再执行高速计数器线圈再执行脉冲输出。道理很复杂,有兴趣再详述。 "
我理解:
1方向要先置好,应在上个扫描周期内完成.因为PLSY/PLSR的方向口,可以自由指定. 扫描到PLSY/PLSR时,条件满足后,脉冲发生器就开始工作了.
2.如果在同一扫描周期内,在PLSY/R指令前/后置方向,其实已经晚了, 方向端要到END后,才做刷新.没有出现异常,是低频时,驱动器容忍切换方向.
3.有1位底层(山寨)PLC设计者,设计这2条指令时,在扫描到PLSY/PLSR时,解释核的内部执行REF Y,N, 那么前置/后置都没有关系. 但是那样好吗?!