常州市金坛四海电机电器厂
   
 
CNC控制器

一、 概述

        CNC可编程步进电机控制器可与步进电机驱动器、步进电机组成一个完善的步进电机控制系统,能控制多台步进电机多段分时运行。

本控制器采用计算机式的编程语言,拥有输入、输出、计数、循环、条件转移、无条件转移、中断等多种指令。只需在控制器上按键选择指令和输入参数即可完成程序编程来控制电机运转和信号的输出以及被外部输入信号所控制,具有编程灵活、适应范围广等特点。

二、 技术指标

1. 可控制3台步进电机(任意两台电机同时工作)

2. 可编180段程序指令(不同的工作状态)

3. 5条升降速曲线选择

4. 最高输出频率:10 KHz

5. 7个输入,4个输出

6. 数码显示,可显示当前的运行状态、循0环次数、脉冲数等

7. 采用共阳接法,+5V输出,可直接驱动我厂生产的SH系列步进电机驱动器

三、 控制器的显示及操作键

1.面板说明:

    8位数码显示:作设定、循环作计数、运行状态、电机工作之用。
指示灯显示输入、输出、方向、脉冲等各种工作。
操作键多为复合键,在不同的状态下表示不同的功能。

2.接线说明: 

    具体接线可参考后面的完整流程。

   

( 1 )、OPTO、DIR、CP为步进电机驱动器控制线,此三端分别连至驱动器的OPTO、DIR、CP端:

其中:OPTO----所有驱动器折公共阳端 

DIR0-----0号电机方向电平信号 

CP0-------0号电机脉冲信号 

DIR1-----1号电机方向电平信号 

CP1-------1号电机脉冲信号 

DIR2-----2号电机方向电平信号 

CP2-------2号电机脉冲信号 

( 2 )、 启动:启动程序自动运行,可接霍尔、光电、接近开关(输出为低电平)等信号端。相当于面板上 启动 键。   

( 3 )、 停止:暂停正自动运行的程序,可接霍尔、光电、接近开关(输出为低电平)等信号端,相当于面板上的 停止 键,再次按 启动 键后,程序继续运行。停止端接线方式与启动端的接线方式一致。

( 4 )、输入1、2、3、4、5:通用开关量输入端(见开关量输入电路图)。

(5)、输出1、2、3:通用开关量输出端(见开关量输出电路图);输出J、K为一组继电器常开触点。


注:因继电器工作次数有限,频繁使用时建议使用外接继电器。

(6) +12VGND 输入输出开关量外部电源,本电源为DC12V/0.2A,由本控制器提供。

(7)、 12V,~220V 控制器电源输入端。

(8)、A操作 和B操作

A操作、B操作分别为A操作、B操作外部中断源(强制中断),一旦接收中断信号,控制器将停止当前运行的程序 ,跳转至A操作、B操作指定的程序运行(下降沿有效)。

具体说明:

    这是本控制器的一大特点:对于步进电机,我们一般进行定量的定位、定速控制。如控制电机以一定的速度运行一定的位移量,这种方式很容易解决,只需要把速度量和位移量编程即可。但还有相当多的控制是不能事先定位的,例如控制步进电机从起始点开始朝一方向运行,直到碰到一行程开关后停止,然后再反方向回到起始点。再例如要求步进电机在二个行程开关之间往复运行n次,等等。在这些控制中,我们事先并不知道步进电机位移量的具体值,又应当如何编程呢?本控制器利用"中断操作"很好的解决了这一问题,本控制器设置了二个独立的"中断操作",我们称之为"A操作"和"B操作"。 以"A操作"为例,工作流程为:当程序正在运行时(电机作一种形式运行),如果"A操作"端有信号输入,电机作停止,程序跳转到"A操作入口地址"所指定的程序处运行程序(电机作另一种形式运行),A操作入口地址在参数设定里设置。

具体的编程方式可参考后面的例程三。
同一段程序中,既允许A操作,又允许B操作,当两个中断操作同时有效时,A操作优先。但是,若A操作已经有效并且程序已经跳转,在跳转到的程序内,又允许了B操作,则当B操作信号到来时,系统就会响应,并打断当前程序而跳转到B操作指定的程序段。相反,先响应了B操作时,A操作也可打断B操作。
A操作 和B操作的接线与前面启动停止的接线方式一样,可接开关或传感器。

四、 操作说明

控制器总是工作在四种状态之一:自动状态、手动状态、程序编辑状态、系统参数设定状态。
上电或按复位键后控制器处于自动待运行状态,这时可以按启动键启动程序自动运行。
复位后按手动键切换到手动状态。
复位后按编辑键进入程序编辑状态。
复位后按住编辑键3秒以上(显示Acc时)进入系统参数设定状态。
程序编辑、系统参数设定、手动完成后按退出键返回自动待运行状态;在程序编辑、系统参数设定、手动状态下按停止键均返回自动待运行状态。

五、系统参数设定:

1、指令:参数输入模式:

系统参数设定方式
控制器共有如下几个系统参数:
Acc:升降曲线设定(0—4),根据需要设定,负载大选慢速曲线。曲线0时加速最快;
HSPEEd :手动速度设定(0—9999 Hz)
Hadd: 手动位移增量设定(1—59999),即在手动状态下,按一下 Λ 、 Ⅴ 键电机正转、反转一次性走完的步数;
dZCL0:接收一个脉冲后0号电机上负载走过的位移量,范围(0.0001~5.0000)
dZCL1:接收一个脉冲后1号电机上负载走过的位移量,范围(0.0001~5.0000) 
dZCL2:接收一个脉冲后2号电机上负载走过的位移量,范围(0.0001~5.0000)
关于电子齿轮的具体计算方法可参看附录一
nA: 前两位表示A操作有效开始端,4,5位表示A操作有效结束端,7,8两位表示当A操作输入端有信号时,程序跳转到该设定的程序端,范围(00~179)
nb: 前两位表示B操作有效开始端,4,5位表示B操作有效结束端,7,8两位表示当B操作输入端有信号时,程序跳转到该设定的程序端,范围(00~179)

这里先以修改HSPEED参数为例,其他参数修改与SPEED修改方式一致

空格一:在待运行状态下,按住编辑键3秒以
空格上,直到出现ACC进入系统参数设定状

空格二:利用Λ两键选择需要的参数名

空格三:按回车确认修改该参数数值

空格四:按<>使要修改的那一位闪烁

空格五:按Λ两键选择数字

空格六:按回车确认修改
空格七:若要修改其他参数,可重复第二至第六步
空格否则按取消退出复位键退出

六、 程序编辑:

指令:参数选择模式:
空格本控制器采用选择编辑式指令、参数选择模式。即控制器自身有各种指令、数字,通过Λ、Ⅴ、<、>和回车、取消六键来选择、修改编辑程序。控制器的程序区最多可以编辑180段程序,程序中的每一段有一个段号,段号为自动编号,从00开始按顺序排列,您可以在程序中插入或删除某段,但段号会自动重新分配。
空格注:程序的段号只能由数码管的前两位显示,当程序超过100条时,两位已显示不了,此时,在数码管的第一位后面所添加的一个小数点表示百位的1,即0.0代表1007.9代表179(nA,nB以及其他跳转程序中所涉及的程序段号参数也是如此)。显示样式可参看下面简介。

程序输入:
这里以输入“SPEED 1000”这条指令为例
空格一:在自动待运行状态下,按编辑

空格二:若控制器中已有程序,可长按删除键删除程序,若没有可跳过此步。

空格三:按插入键插入一条新程序

空格四:利用Λ两键选择需要的指令

空格五:按回车确认此条指令,并显示此条指令的参数数值(如指令无参数则不显示)

空格六:修改指令的参数数值(如选取得指令无参数则此步骤跳过)

空格七:按回车确认参数后,指令已完成输入数码管显示下一条指令

空格八:若要输入其他指令,可重复步骤三到七, 否则可按退出复位键退出

程序删除程序编辑状态下,若当前程序段号在闪烁,按 删除 键将删除该段程序,如按 删除 键3秒以上直到出现“00 END”将清空所有程序段,程序的最后一段固定为“END”。
程序浏览在程序编辑状态的行号闪动状态下,按 Λ 、 Ⅴ 两键浏览程序
总之,参数的设定通过 Λ 、 Ⅴ 、 < 、 > 、 回车 、 取消 六个按键来完成: Λ 、 Ⅴ 可改变程序指令和数据,< 、 > 可移动数据左右位置, 回车 、可确认选择的指令和数据, 取消 可取消前一步操作或退回到待运行状态。

七、运行
1、手动运行方式:
在自动状态下按 自动/手动 键将进入手动状态,前位数码管将显示为“HO”,H表示为手动状态,O表示电机号,按 < 或 > ,电机将按不同的方向手动运行。按 Λ 或 Ⅴ ,电机将按不同的方向运行设定的手动位移增量。手动运行的位移增量由参数设定状态下的HADD值决定,手动速度由HSPEEd决定。再次按下自动/手动 键,可修改当前手动的电机为1号或2号电机。具体操作可参阅下图


2、 自动运行方式:
控制器上电或按复位键后,自动待运行状态,按 启动 键或接受外部启动信号,控制器将从第00段程序开始运行,直至运行到最后一段程序END,控制器返回自动待运行状态。在程序自动运行状态下按停止键,运行完该段后,程序暂停运行,再按 启动 键程序将继续运行。
在运行状态下, 有三种不同的显示方式:(在停止或暂停状态下通过按同一个键 步数 计数 Λ 进行切换)
1. 计数显示方式: 控制器显示当前的计数值;
2. 步数显示方式:控制器显示当前运行的步数;
3. 程序显示方式:控制器显示当前所处的程序段。
具体数码显示如下:

 

因具体程序与数值不可能一致,所以用户自行操作时,上述三图中的数值可能稍有不同,但各方式的标志字母“N,L,P”相同
注:运行时不能切换

八、外形尺寸及安装尺寸:

本控制器采用嵌入式仪表外壳,,前面板为96mm×96mm的方形,长度为122mm,具体尺寸见下图:

指令表(HH—表示程序行号;XXXXXX—表示程序数据):
指令名称在数码管上的具体显示式样可参阅第八页表格

 

序号

指令名称

指令显示形式

说明

0

选择电机号及方向指令

HH_DIR
XX

前一位设定为当前运行的电机号码,可以设定0电机、1电机、2电机

后一位设定当前运行电机的方向,0为反向,1为正向

1

暂停指令

HH_PAUSE
无参数

程序暂停,等待面板启动按键或端子启动信号

2

位移指令

HH_G-LEN
XXXX.X

执行此指令时;控制器将按最新SPEED指令所赋值的速度、本指令所指定的位移量、参数设定中所设定的升降速曲线等,控制电机运行;如果此指令前无SPEED语句,则以起跳频率作为默认值;参数范围:0~ 5999.9 单位:毫米,大于等于6000.0为无限长;

3

速度赋值指令

HH_SPEED
XXXX

此程序以下的所有运行都将以此指令所设定的速度运行,直到下一个速度赋值指令出现为止;
参数范围:1 ~ 9999 单位:脉冲数/秒(pps);

4

延时指令

HH_DELAY
XXXXX

延时时间;参数范围:0.1 ~ 5999.9 单位:秒;

5

无条件跳转指令

HH__JUMP
XX

无条件跳转指令,参数XX表示要跳转的程序行号;

6

循环指令

HH__LOOP
XX XXXXX

从当前行到指定行执行循环;前两位为行号(要求小于当前行),后五位为循环次数(0定义为无限次)。行号超过当前行号时,系统运行将出错。

7

运行到某一位置

HH__GOTO
00000

备用

8

输出指令

HH___OUT
XXXXX

参数的前三位从左到右依次对应于接线端的 输出1~输出3;同时对应前面板的三个输出指示灯1~3。0 ----- 对应输出端子为高电平,负载不导通,面板指示灯灭;1 ----- 对应输出端子为低电平,负载导通,面板指示灯亮; 参数第四位为继电器输出状态,对应于接线端输出J、输出K(继电器为常开)0-------表示继电器释放;1-------表示继电器吸合;参数的最后一位,专门为控制器内部的蜂鸣器所设计:0 ----- 执行此指令时,蜂鸣器不响1 ----- 执行此指令时,蜂鸣器响一长声

9

测位跳转

HH_J-BIT
XX X X

前两位为行号,指明所跳转的位置,第五位为输入1、2、3、4、5、A、B的其中之一;第八位为跳转条件(0或1);当所测定的输入口为所设定的状态时,跳转到指定行号,否则,顺序执行。

10

计数跳转

HH_J-CNT
XX XXXXX

本指令为计数器指令,前两位为行号,指明程序所跳转的位置;后五位为设定值。当计数器计数到或大于设定数值时,则跳转到指定行号,否则顺序执行。

11

变量位移

HH_GO-AB
±X

备用

12

计数器加1

HH_CNT-1
无参数

本指令为计数器指令,控制器内部有一计数器单元,容量为999999, 计数器的值可实时的在计数显示状态下显示;本指令对计数器进行加1操作

13

计数器清零

HH_CNT-0
无参数

本指令为计数器指令;本指令把计数器清零。除了本指令外,还可以通过计数器清零按 清零 键随时可以把计数器清零(在停止状态下)

14 坐标清零 HH_CLr无参数 本指令把当前坐标位置数值清零。
15

两电机同时运行指令

HH_2dJr 两电机同时运行指令。详见例六

16

结束指令

HH___END
无参数

程序结束行,程序运行到此指令时,表示本控制器自动运行结束,控制器返回自动待运行状态。
该指令不可编辑,且总是位于程序的最后一行。

程序段号超过100时的显示样式:
1.程序段号

空格表示第112条指令为 DIR

2.JUMP跳转指令中的程序段号参数(J-BIT与J-CNT中的程序段号参数与此相同)

空格JUMP的参数为0.1,表示运行到此JUMP指令时,程序跳转到第101段

3.nA的参数(nB与此相同)

空格表示A操作的有效开始端为第98段程序,A操作的有效结束端为第112段程序,A操作发生后,程序跳转到第120段程序

 

完整应用流程
简介
使用CNC控制器,2034D和2046D驱动器各一个以及8线步进电机两个
程序功能:用CNC控制两台步进电机,0号和1号,按下启动键后,0号步进电机慢速转过360度,接着1号电机慢速转过720度,等到按下外部按键输入1,两个电机同时快速返回原来位置,接着输出1输出一信号带动外部12V继电器工作,两秒后断开。
一:接线方式
整个系统接线图如下:

 

二:系统参数设定
两驱动器都设置为两细分状态,电机转一圈需要400个脉冲,所以
DZCL0 = 360 (度) ÷ 400 = 0.9000 (度)
DZCL1 = 360 (度) ÷ 400 = 0.9000 (度)
参照之前设定系统参数的方法,将DZCL0和DZCL1分别设置正确即可
三:程序清单
00DIR00             选择0号电机正向
01SPEED200            到0号电机的脉冲频率为200Hz
02G-LEN360.0          0号电机转过360度
03DIR10             选择1号电机正向
04SPEED400            到1号电机的脉冲频率为400Hz
05G-LEN720.0          1号电机转过720.0度
06J-BIT08   1   0     检测输入1,有信号跳转08行,没有顺序执行
07JUMP06             无条件跳转到06行
082DJR               选择两个电机同时运行
DIRA01             A电机为0号电机,反向
SPDA600            到A电机脉冲频率为600Hz
LA360.0          A电机转过360度
DIRB11             B电机为1号电机,反向
SPDB800            到B电机脉冲频率为800Hz
LB720.0          B电机转过720度
09OUT1 0 0 0 0      输出1输出
10DELAY2.O            延时2秒
11OUT0 0 0 0 0      输出1关断
12END                结束
四:编程流程如下

 

其他编程举例
例一:
运行要求:电机以3000频速度运行1圈,两相电机,两细分,接0号端口
参数设定 Acc=3,dzcl0=1/400=0.0025
程序清单

00DIR00 ;初始方向为正向
01SPEEd3000 ;设定运行速度
02G-LEN1.0 ;设定运行1圈
03END;程序结束
例二:
运行要求:以1KHz速度运行100mm,再以2KHz的速度反向运行30mm,循环20次停止。电机为两相,工作在两细分,步距角为0.9度,电机转一转为4mm。电机接0号端口。
参数设定 Acc=1,dzcl0=4/400=0.0100, nA=00,00,00,nb=00,00,00。
程序清单

00DIR00 ;初始方向为正向
01SPEEd1000 ;设定运行速度
02G-LEN100.0 ;设定长度为100
03DIR01 ;设定反方向运行
04SPEEd2000 ;设定反向运行速度
05G-LEN300.0 ;设定反向长度为300
06LOOP100 00020
07END;程序结束

 

例三:
运行要求:在AB两点之间来回运转。A、B点各有一限位信号,从A点开始,电机每接收一信号,运转一定的位移,间断向B点移动,达到B点后自动按原规则反向A点往复运动。
设计分析按键运行后,输出1输出,控制绕线电机启动,等待输入信号,当有信号输入时,步进电机向前运行一设定的位移,再等待信号如此循环,当遇到限位信号时反向运行,并计数加1,当计数到100时,结束运行。
参数设定: dzcl0=0.1000,dzcl1=1.0000,nA=04,06,07,nb=04,10,11。
程序清单:(进入程序编辑状态录入程序,运行程序前,把控制器设定为计数显示方式)
00CNT-0            ; 计数器清零
01OUT10001  ;      输出1输出,控制绕丝电机,同时蜂鸣器响一下
02SPEEd1000   ;      设定运行速度
03DIR00     ;      初始方向为正向
04PAUSE            ;      等待启动信号
05G-LEN100.0  ;      设定长度为100
06JUMP04     ;      当电机动作完后等待继续运行
07DIR00     ;      A操作入口, A限位开关有信号时程序跳至此处
08CNT-1       ;      计数器加1
09J-CNT15 100 ;      当计数到100时结束程序运行,否则程序向下运行
10JUMP04     ;
11DIR01     ;      B操作入口,B限位开关有信号时程序跳至此处
12CNT-1       ;      计数器加1
13J-CNT15 100 ;      当计数到100时结束程序运行,否则程序向下运行14 JUMP 04 ;
15OUT00001  ;      输出1停止输出,同时蜂鸣器响一下通知结束
16END         ;       程序结束

   
   

 

例四:
运行要求:定长无色标:按启动键(或收到外部启动信号1)后,步进电机快速走设定的长度700毫米后等待,再按启动键(或收到外部启动信号2)后,步进电机反向走设定的长度20毫米后等待,再按启动键(或收到外部启动信号3)后,步进电机反向走设定的长度30毫米后一个工作循环结束,蜂鸣器响一下提示结束,计数器加1,再等待接受信号循环工作1000次;
色标袋(长度700毫米左右):按启动键(或收到外部启动信号1)后,步进电机快速走设定的长度680毫米,慢速走开始检测色标,检测到色标停止,如到720毫米未检测到色标则停机报警,等待再按启动键(或收到外部启动信号2)后,步进电机反向走设定的长度20毫米后等待,再按启动键(或收到外部启动信号3)后,步进电机反向走设定的长度30毫米后一个工作循环结束,,蜂鸣器响一下提示结束,计数器加1,再等待接受信号循环工作1000次;
设计分析:假设步进电机走一圈切向长度为100毫米(可根据实际情况来计算此值),电机为两相,工作在两细分,步距角为0.9度,电机转一圈为400个脉冲,计算得一个脉冲长度为100毫米/400=0.25毫米,外接按键1.有效/无效按键(为自锁按键):此键按下后才能启动电机运行;在此键抬起状态,即使有光电信号,电机也不动作。2.色标/定长选择按键(自锁按键):按下为色标检测方式;抬起为定长方式。
参数设定:(进入参数设定状态)设定升降速为1,可根据需要设定,0加速性最快。电子齿轮设定为dzcl 0 0.25。A操作有效开始段为08,即从08程序段开始检测色标,有效结束段为10,即到第10段关闭检测色标(第10段不检测),A操作入口地址为14段,当检测到色标时程序跳到第14段运行
程序清单:(进入程序编辑状态录入程序,运行程序前,把控制器设定为计数显示方式,信号1为启动程序运行信号)
00J-BIT26    1    1 ;  若有效/无效按键未按下,程序结束;按下运行
01DIR  00 ;            电机为0电机,正向运行
02SPEEd1000 ;          设定高速运行速度1000脉冲/秒
03OUT  10000 ;         输出1输出,可以启动切刀或其他部件动作
04J-BIT07    2    0 ;  若色标/定长按键按下为色标方式,程序转07
05G-LEN700.0 ;         在定长方式下,电机运行700毫米
06JUMP 14 ;            跳转程序段14,等待反向运行
07G-LEN680.0 ;         在色标方式下,电机先运行680毫米
08SPEED500 ;           假设低速检测色标时的速度为500脉冲/秒
09G-LEN40.0 ;          检测色标,在40毫米内检测到转A操作入口
10OUT  00001 ;         40毫米内未检测到色标,停止输出1,短声报警
11DELAY1.0 ;           延时1秒
12LOOP 10 20 ;         循环到程序段10,短声报警20次
13JUMP 26 ;            停止程序运行
14PAUSE ;                   A操作入口,找到色标,电机停止,等待信号2
15DIR  01 ;            电机为0电机,反向运行
16G-LEN30.0 ;          反向运行30毫米
17PAUSE ;                   暂停等待信号3
18G-LEN20.0 ;          反向运行20毫米
19CNT-1 ;                   计数器加1
20J-CNT23 1000 ;       计数器计到1000,转至报警3次
21OUT  10001 ;         一个循环完成蜂鸣器响一下
22JUMP 26 ;            程序跳转到结束等待下一次循环
23OUT  00001 ;         报警3次
24DELAY1.0 ;
25LOOP 23 3 ;
26END;                 程序结束

附录一:
步进电机相关参数计算:
1.步进电机的步距角
一般两相步进电机步距角为1.8度,即在驱动器设置为 1 细分的状态下,控制器每发一个脉冲到驱动器,电机转过1.8度,这样,步进电机转过360度,一共需要200个脉冲。
驱动器的细分技术,就是将步距角分的更细,比如 2 细分状态下,步距角变为 1.8 ÷2 = 0.9度 ,控制器每发一个脉冲到驱动器,电机转过0.9度,这样,步进电机转过360度,一共需要(200× 2)= 400个脉冲。
对应于 4 细分状态,步距角为1.8÷4 = 0.45度,电机转一圈需要800个脉冲,其他细分依次类推,即 步距角 = 1.8 ÷ 细分数 (度)

2. 步进电机的速度

步进电机的速度与控制器给到驱动器的脉冲频率相关。对应于上面描述的 2 细分状态下,电机转一圈需要 400 个脉冲,这时,如果控制器给到驱动器的脉冲频率为 400Hz,则电机的速度为: 400 ÷ 400 = 1 (圈/秒) ,电机转过这一圈只需要1秒
如果控制器的脉冲频率为800Hz,则电机速度为 800÷400 = 2 (圈/秒)
所以,电机的速度计算公式为:
V = 脉冲频率÷(细分数× 200) (圈/秒)
3. 电子齿轮的计算
角位移换算:
电子齿轮 = 步距角(整步)÷(机械减速比 × 驱动器细分数)
此时所有设定值均为角度单位(度)。

线位移换算:
电子齿轮 = (步距角(整步)× pD(负载轴轮直径))÷(360° ×机械减速比 × 驱动器细分数)
每转步数=细分数×200,0.9度为2细分,每转400步;
(步距角为0.9度/1.8度的电机)此时所有设定值均为长度单位(毫米)。

附录二:控制器操作流程