老师您好,
很感谢您帮我瞅瞅程序出现的错误;程序很小,错误一直解决不了,自己很丢人;麻烦您啦,帮我看看哈。
————————————————————————————————————————————————————————
西门子plc s7-200 226 晶闸管类型
伺服是v90的1FT6配套伺服电机
手轮是安士能的HBA-084962(这不重要,和市面上一样的产品)
————————————————————————————————————————————————————————
I0.0和0.1输入AB脉冲信号
q0.0输出脉冲,Q0.3电机使能,Q0.2或者Q1.2作为电极方向
——————————————————————————
我的程序是这样的;
向导生成HSC0模式9的高速计数器增计数程序
中断有两个,一个是预置值等于当前值进中断1;
中断1 发一个脉冲,电机使能,方向正转,清除当前值
另一个是方向改变进中断2;
中断2 发一个脉冲,电机使能,方向反转,清除当前值
————————————————————————————
效果是,
1手轮反转,电机反转,正常,2手轮正转,电机正转,正常;3手轮在反转,电机正转,不正常,,,,接下去,无论手轮正转反转,电机都是正转
————————————————————————————————
我的改进是:
在电机方向的Q0.2或者Q1.2上加入定时器关断,也就是进中断,输出高电平,定时时间到,输出低电平;
效果是,未输出高电平;电机一直反转;
————————————————————————————
我的另一个改进是:
重新定义计数器,两个计数器,分别是计数器0和3,两个中断
模式都是0;
我的想法是一个计数A相,一个计数B相;谁先计数到设置值谁进中断;A的中断是正转,B的中断是反转;
就是利用AB相相差90度。
效果是:产生不实时的脉冲,也就是我转10个刻度,可能发送5、7个脉冲的样子;
————————————————————————————————————————
我的最后一个程序是:
加入两个模式,一个计数器一个模式的一个增计数,一个减计数,相互嵌套;结果是只会进入一个计数器的增计数,减计数不会调用;
————————————————————————————————————————
已上为所有效果,学生接触plc时间短,麻烦老师指点迷津,带带路子;谢谢老师;