1、电机转动时,如果转动的方向与编程时的理论转动方向相反时,两相电机可以对调其中一相的两根线来解决。其它电机也可以用调换接线顺序的方法来改正。如不想改接线,也可以在程序上修改坐标值正负。1.用模拟量1调速(外壳上标写A1的可调电位器)三个电机正转50个单位,再反转50个单位。一个单位长度输出多少个脉冲设置如下图,本例设置成640个脉冲,是驱动16细分,丝杆螺距5mm,走1mm的脉冲数。执行过程:执行进程一 第一行,设置速度用电位器调速,加速度为220。执行第二行,转动到从标50,50,50。因为上电时控制器内部坐标是0,0,0。现在转动到50,50,50,也就是三个轴同时正转50(正转,输出506
2、40=32000个脉冲,640为单位脉冲数的设置值),第二执行完成后,内部坐标更新为32000,32000,32000。执行第三行,上一个指令执行完后,内部坐标是32000,32000,32000,现在第三行指令是要转动到0,0,0,也就是三个轴同时反转50(反转,输出50640=32000个脉冲),第三行执行完成后,内部坐标更新为0,0,0。执行第四行,跳转到第1行。这样就实现了循环。运行的效果是三个电机同时正转50,反转50,循环.并可用A1电位器调速。第二进程与第三进程都是空的指令,执行时什么也不做。1a. 接上启动开关的的正反转按下启动按钮执行一个正反转动作,之后再等待按钮按下,有按下
3、再执行正反转一次。启动开关接在IN2与GND端子上。执行第二行,空指令,什么也不做,这行可以删除,不影响功能,本例这样写只是便于阅读。执行第三行,等待IN2接的开关与GND接通,没有接通一直等待。执行第四行,转动到坐标50,50,50。640=32000个脉冲),第二执行完成后,内部坐标更新为32000,320000,320000。执行第三行,上一个指令执行完后,内部坐标是32000,320000,320000,现在第三行指令是要转动到0,0,0,也就是三个轴同时反转50(反转,输出50执行第四行,跳转到第3行。运行的效果是按一下启动开关,三个电机同时正转50,反转50,并可用A1电位器调速。
4、2.上电时三个轴轮流回原点,之后正反转循环执行进程一 第一行,设置速度脉冲频率为10000Hz,加速度为220。执行第二行,X轴回原点,原点开关信号输入到IN1,开关安装到X转反向转到的方向顶端上。执行第三行,y轴回原点,原点开关信号输入到IN1,开关安装到y转反向转到的方向顶端上。执行第四行,z轴回原点,原点开关信号输入到IN1,开关安装到z转反向转到的方向顶端上。执行第五行,空指令,什么也不做,这行可以删除,不影响功能,本例这样写只是便于阅读。执行第六至第八行,与例程一相同。执行第九行,跳转到第6行。运行的效果是上电时三个轴轮流回原点,回原点时的最快脉冲频率是10000。回原点后,三个轴正
5、反转循环,最快脉冲频率为电位器A1设置。3.上电回原点后正反转来回循环,并用电位器调节电机转反转动量第一至第五行与上例相同。执行第六行,把X轴的单位脉冲数与电位器2的值相乘赋值给变量1,即V30*V25=V1。电位器的输入值最小是0,最大是255。执行第七行,V1变量除以3,把商重新赋值给V1。除以三的用意是电位器调节精度为1/3个单位长度,如是16细分,5mm丝杆,本例精度则是1/3mm。用电位器调节长度是0-255*1/3mm 。执行第七八行,V1变量除以10000,把商重新赋值给V1。为什么要除10000,原因在V30的单位脉冲数是扩大10000位后才保存在控制器内,除以10000只是还
6、原。上述三行指令执行结果是(V30单位脉冲数) ( V25电位器2) 3 10000 = V1。执行第九到第十二行, 空行,什么都不做。执行第十三至十五行,与例程1相同,只是第14行转动指令的参数用到了变量 ,当用变量后,控制器输出的脉冲数将不与单位脉冲数相乘,直接输出变量值个数的脉冲。4.在两个限位开关内来回移动注意上电前当前位置一定要在两个开关之内,不然可能会撞车。执行第二行,X轴正转,直至IN2接的限位开关触发后停下来,参数3表示当IN2低电平时为有效触发,即IN2要接常开开关。执行第三行,X轴反转,直至IN1接的限位开关触发后停下来,IN1接常开开关。执行第四行,跳转到第2行。运行的效
7、果是电机在两个开关内来回转动,循环.并可用A1电位器调速。5.在两个限位开关内来回移动,可接暂停开关开关内来回移动的程序写在进程一内,与上例一模一样。响应接在IN8暂停开关的程序写在进程三内写,如下图:进程一的执行过程与上例一样。执行进程三 第一行,判断IN8接的开关是否有按下,没按下(即IN8为高是平时),跳转到每一行,实际上就是没有按下一直执行第一行。有按下时,则执行下面一行。执行第二行,反转状态,129运行/暂停 位。如原来是运行状态,执行该指令后就为暂停状态,反之亦然。执行第三行,IN8是不按下,如按下就一直执行第3行,直到按下的开关放开后再执行下面行。如不等待开关放开,则每按一次开关
8、,运行/暂停 状态会反转多次,最后状态与按下开关的时间而不同。执行第四行,跳转到第一行,继续去判断IN8接的开关是否再次补按下。运行效果是电机在两开关内来回移动,当IN8接的开关按下时,来回移动暂停,开关再次按下时,电机继续上次的来回移动。再按下,又暂停.6.ZYZ三轴坐标任意两点间来回移动用遥控器修改两点坐标,并可保存在控制器内,下次上电直接在修改后的两点间移动。进程一 第一行至第四行三个轴回原点。之后在第七行至十二行循环执行,电机在两个坐标之间直线转动。V1V95为断电可保存寄存器,初始值可以点击编程软件“”按钮设置初始值。如下图:当没有用遥控制修改保存坐标的V1-V6寄存器时,电机在坐标
9、(1,2,3)与坐标(500,500,500)两点间来回转动。用遥控器修改V1-V6寄存器的坐标写在进程三内,当控制器暂停时,才允许修改V1-V6,代码如下:第一行 是获取所有输入信号编码后的数值,编码规则是各IN*输入信号对应的值之和乘以258再加上各遥控器按钮对应的值之和。各输入对应的值如下表:遥控6号键遥控5号键遥控4号键遥控3号键遥控2号键遥控1号键32168421IN8IN7IN6IN5IN4IN3IN2IN112864例如上表中灰色底字的输入有信号时,编码后的数值为(32+4)256(16+4)=9236。第二行 是取余数运算。把IN*输入信号的编码值除去。如面计算的结果92362
10、56后,余数等于20,即是遥控5号键与遥控3号键同时按下时的编程值。第三行 判断遥控输入编码值是否为1号钮与6号钮同时按下。如是则跳转到61行去执行运行/暂停状态切换,不是则继续执行下面一行。第四行 判断当前是否是暂停状态,如不是暂停状态则跳转到第一行,重复上面的过程。如果已在暂停状态,则继续执行下面的指令。第六至十五行 根据遥控输入编码后的值去执行对应的程序。如第十行,输入编码值为1时,就跳转到18行,不等于1时,则继续执行第十一行。再看18行,执行开启电机转动,之后把1保存到V19,再跳转到第36行。第36,第37与第一行第二行一样,是获取输入信号编码值,第38比较V19保存的值是否与新获
11、取的编码值相同,相同则跳转到36行,重新获取输入编码值再比较。一直到不相同时,才执行第39行,关停电机转动。关停后,跳转到第一行。这样就完成了一次点动操作。其余点动等操作的执行过程与此类似,读都可自行分析。6a.有循环次数的两点间转动此例在上例的基础上设置了4次循环,之后要等待IN1接的开并按下后,再执行4次循环。程序只是进程1里有所区别,如下图:第七行 是设置循环次数,即第8至第12行的5行指令按顺序重复执行2遍。完了再执行第12行后面的程序。第十五行 是等待IN1接的开关按下。没按下一直等待。7.X轴横向钻孔钻孔个数可调,Z轴上装钻头。第二行接启动开关,按下后才开始钻孔。第三行是空行,什么
12、都不做,可以删除,本例只是为了便于阅读。第四行设置成相对坐标,这样第7行循环一次就会正向转动10。第五行是设置本行后面的2行程序按顺序执行4次,即第67行程序执行4次。第六行是去调用15行开始的Z轴下降10再上升10的子程序。第七行X轴正向移动10。因第五行的设置,第六,第七行重复执行4次,即4个孔,4次移动, (示意图:O- O- O- O- )。第八行再补钻一个孔,总钻5孔,移动4次,(示意图:O- O- O- O- O)。第11行,设置成绝地坐标。第12行,转动到坐标0,也就是上电时的位置。第13行,跳转到第二行。等待启动开关按下。执行效果:按IN2接的开关按下,钻一排孔后,回到钻第一个
13、孔的位置,再次等待开关按下重复。8.横竖排列钻孔上例的钻孔在Y方向上等距钻3排。执行过程与上例基本相同,710行为钻一排孔的程序 。钻完一排后,第11行Y轴移动20。第12行把V3正负变换,原来正现为负,原来负现变正。712行为第6行循环指令的循环体,执行到指定次数后才会继续执行第13行。所以第一次循环后,会跳转到第7行重复上面分析的过程,不同的是第二次循环时,V3是负数,所以第二排钻孔是负向移动。最终效果第一排孔是左向右钻,第二排是右向左钻. 示意图:O- O- O- O- OO-O-O O- O- O- O- O9.N行I列钻孔使用变量适合用触屏控制上电三个轴分别回原点,再等待启动信号后,
14、N行I列钻孔。可以用触屏修改行数,列数,行宽,列宽。V1存列数,V2存行数,V3存列宽,V4存行宽。8到18行是变量的初始化与相应的计算,20行到33行执行过程与例8基本相同,读者可自分析。10.三轴点动在输入端IN1IN6分别接下6个点动开关,用于X,Y,Z 轴6个方向的点动控制。控制器上电后,2-8行轮流判断IN1IN6上接的开关有否被按下。执行第一行,设置速度与加速度。执行第二行,判断IN1接的开关是否按下,没按下继续执行下一下,有按下跳转到第10行。执行第三至第七行,过程与第二行相同。执行第八行,返回到第2行重新判断输入信号。如上面的判断中,IN1输入端有信号,跳转到第10行。执行第10行,开启电机转动,这个指令的三个参数当中,只有X轴坐标为最大值(软件会自动计算最大值,编程时只要填入一个足够大的数即可),Y与Z轴是系统当前坐标。这指令的用意是只让X轴向大坐标位置转动,而Y,Z轴保持在当前坐标,效果就是只有X轴转。这行开启电机转动后就跳转到下一行,不等待电机转动完成。执行第11行,等待IN1接的开关放开。不放开就一直等,放开后才执行下一行。执行第12行,如上一行已等到开关放开,就关停电机转动。执行第13行,跳转到第二行去执行。更多实例不定期更新,可到XX网盘下载: