6ES7216-2BD23-0XB8供应现货
步进电机位移与输入脉冲信号数相对应,精度高、响应特性好、可靠性高、速度可在较宽范围内平滑调节,是控制系统中一种重要的自动化执行元件。
SCM(Single ChipMicrocomputer,单片机)是把组成微型计算机的中央处理器、存储器、输入输出接口电路、定时器/计数器等制作在一块集成电路芯片中,它具有小巧、低功耗、指令系统丰富等优点,成为工业控制的主角。
PLC(Programmable LogicController,可编程序逻辑控制器)是以微型计算机为核心的一种工控机。其控制方案能事先进行模拟调试,自身设计采用了冗余措施和容错技术。由于PLC通用性强,编程操作方便,扩展灵活,可靠性高,应用几乎覆盖各个工业领域。
步进电机的电脉冲信号若由SCM产生,就构成以SCM为核心的控制系统。若电脉冲信号由PLC产生,就构成以PLC为核心的控制系统。
1 步进电机驱动方式
反应式步进电机频率响应快、可双向旋转、定位准确、起停速度快,使用多,具有代表性。三应式步进电机定子有6个等间隔的磁极,线圈绕过相互正对的两个磁极构成一相,共有A—A、B—B和C—C三相。根据步进电机的工作原理,若按顺序给步进电机的绕组施加有序的脉冲电流即可控制步进电机的转动,从而进行数字到角度的转换。转动的角度大小与施加的脉冲数成正比,转动的速度与脉冲频率成正比,而转动的方向则与脉冲的顺序有关。
从一相通电转到另一相通电称为一拍,对三应式步进电机来说,若按A→B→C→A顺序通电,则称为单相三拍运行方式。若按A→AB→B→BC→C→C→A→A顺序通电,则称为三相六拍运行方式。若按AB→BC→CA→AB顺序通电,则称为双相三拍运行方式。一般数字电路的信号能量远远不足以驱动步进电机,必须要有一个与之匹配的驱动电路来驱动步进电机。驱动电路不仅应该包含由功率开关器件构成的驱动主电路,还应包含一个逻辑单元,在输入脉冲序列的作用下输出定子绕组通电状态,控制主电路功率开关器件的导通与关断。典型的驱动电路主要有全电压,恒流斩渡,升频升压等形式。
2基于SCM的步进电机控制方法
2.1控制原理
SCM的P1口作为输出口,P1.0,P1.1,P1.2分别输出控制脉冲,通过7406驱动脉冲功率放大级的达林顿复合管,再分别控制三相步进电机的A、B、C三相。根据P1口输出控制信号的状态,即可实现对步进电机的正反转控制。
表1列出了步进电机工作在三相六拍时的控制字。从中可以看出,步进电机个控制字数据为01H,从上到下输出控制字时,电机正转,自下而上输出控制字数据时,电机反转。步进电机运行一拍的时间决定了步进电机的转速。在输出一个控制字后加入一定的延时时间,即可控制步进电机的转速。
表1 三相六拍步进电机控制字
2.2 控制程序
设SCM工作寄存器R3中存放了步进电机要走的步数,转向标志存放在程序状态寄存器用户标志位F1(D5H)中,当F1为“0”时步进电机正转,F1为“1”时步进电机反转。正转控制字存放在片内数据存储器20H~25H中,26H中存放结束标志00H。在27H开始的存储区存放反转控制字,在2DH单元存放结束标志00H。SCM可以采用程序延时和定时器延时。下面利用定时器延时,以中断方式输出控制脉冲。
3基于PLC的步进电机控制方法
本文以OMRON的CQM1型机为例,分析通过PLC的软件设计来实现步进电机的脉冲分配。
由移位寄存器SFT(10)指令循环输出实现脉冲分配,步进电机工作在三相六拍时的状态由内部辅助寄存器IR016的00~05继电器控制,为实现循环控制,由第6位信号01605作为反馈信号接到SFT的数据输入端IN。SFT的移位脉冲输入端CP可由PLC内部高速定时器通过编程实现,本设计中为方便起见。采用了内部特殊继电器SR25500。SFT的复位输入端R接步进电机停止信号,该端为ON时,数据通道IR016的所有位置0,并且不接受数据输入。
步进电机是一种将电脉冲信号转换为线位移或角位移的电机,但步进电机的控制通常都采用汇编语言或C语言进行软件开发,本文结合SC3步进电机控制器及平移台的控制开发为例,介绍了一种如何在bbbbbbs平台下利用Visual C++6.0提供的串行通信控件MSComm来实现PC机与步进电机控制器之间的数据通讯,终实现由PC机直接控制步进电机的方法,并详细介绍了编写串行通信程序的基本步骤和方法。调试结果表明:设计的控制程序简单、易懂,工作可靠,且具有友好的人机交互界面。
步进电机是一种将电脉冲转化为角位移的机电式数模转换器,在控制系统中具有十分广泛的用途,但传统的步进电机的控制通常都采用汇编语言或C语言进行软件开发,本文利用VC++提供的串行通信控件MSComm实现PC机与步进电机控制器之间的串行通信[1]。与 DOS下串行通信程序不同的是,bbbbbbs不提倡应用程序直接控制硬件,而是通过bbbbbbs操作系统提供的设备驱动程序来进行数据传送。串行口在Win32中是作为文件来进行处理的,而不是直接对端口进行操作,对于串行通信,Win32提供了相应的文件I/O函数与通信函数,通过了解这些函数的使用,可以编制出符合不同需要的通信程序。
实现串行通信[2]一般有3种方法[3]:使用VC++提供的串行通信控件MSComm[4];在单线程中实现自定义的串口通信类;多线程下实现串行通信。结合实际情况,本系统采用VC++提供的串行通信控件MSComm来进行软件编程,可以很方便地管理与控制计算机串口。
1、系统组成
由PC机控制步进电动机的系统如图1所示。
图1 PC机控制步进电机系统框图
本系统的电机控制采用通用的RS 232[5]串口的异步通信。由于RS 232早期是为促进公用电话网络进行数据通信而制定的标准,其逻辑电平对地是对称的,与TTL、MOS逻辑电平完全不同。逻辑0电平规定为+5~+15 V之间,逻辑1电平规定为-5~-15 V之间,RS 232驱动器与TTL电平连接必须经过电平转换。
2、控制软硬件的技术参数
本系统采用卓立汉光仪器有限公司生产的SC3步进电机控制器及平移台,实现平移台的三维控制(x,y,z)。利用RS 232串口异步通信完成对步进电机的单步和连续移动控制,并且把电机的实际位置数据反馈给PC机处理。
电控平移台的机械指标如下:
(1) 精密电控旋转台:型号RSA200用于x轴。转动范围>±40°;传动比180∶1;小步距0.000 312 5°;台面直径Φ200;分辨率0.001 25°;重复定位精度<0.005°;大速度25/s;中心大负载60 kg。
(2) 重载型电控平移台:型号TSA300B,用于z轴。小步距0.003 15 mm;重复定位精度<0.005 mm;加固定平移台有效行程为150 mm。
(3) 超薄型电控平移台:型号TSA30C,用于y轴。小步距为0.002 mm;重复定位精度<0.005 mm;有效行程30 mm。SC3步进电机控制器设有手动和联动方式,手动能设置的操作有:速度设定、归零操作、方向设定、位移量设定等,联机方式可以使电机的运动直接受应用软件控制。由于是进行二次开发,应用程序必须嵌入原控制器的控制指令及协议。
该指令系统主要有以下几条:
联络指令指令格式:“?R" & CHR$(13)
该指令发出200 ms以内SC3回送:“OK”& CHR$(10),表示联络成功。
查询指令指令格式:“?V”& CHR$(13)
SC3接到该指令后回送:“V number” & CHR$(10)。其中number为ASC码表示的SC3当前速度值。范围0~255。
坐标查询指令指令格式:“?X”& CHR$(13) 或“?Y”& CHR$(13)或“?Z”& CHR$(13)
SC3接到该指令后回送:“X+number” & CHR$(10),或“Xnumber” & CHR$(10),其他轴类似。其中number为以ASC码表示的SC3当前坐标值,正负号代表当前位置在开机位置(0位)的正负方向的位置。
速度设置指令指令格式:“V”& number & CHR$(13)
其中number为以ASC码表示的速度设置值。范围0~255。
归零指令指令格式:“HX”& CHR$(13) 或“HY”& CHR$(13) 或“HZ”& CHR$(13)
SC3接到此类指令后进行归零操作。完成归零操作后回送:“OK”& CHR$(10),表示SC3归零完毕。
零状态查询指令指令格式:“?H”& CHR$(13)
SC3接到此类指令后回送:“H000” & CHR$(10)
其中000的含义:
位数值:1表示z轴归零成功,0表示z轴未归零。
第二位数值:1表示y轴归零成功,0表示y轴未归零。
第三位数值:1表示x轴归零成功,0表示x轴未归零。
运行指令指令格式:“Xdirectionnumber”& CHR$(13)或“Y directionnumber”& CHR$(13)或“Z directionnumber”& CHR$(13)
3、软件实现
3.1 利用VC++提供的串行通信控件MSComm实现串行通信
在VC++[5]的对话框中创建通信控件,若Control工具栏中缺少该控件,可通过菜单Project→Add toProject→Components and Control插入即可,再将该控件从工具箱拉到对话框中。此时,你只需要关心控件提供的对bbbbbbs通信驱动程序的API函数的接口,即只需要设置和监视MSComm控件的属性和事件。
在ClassWizard中为新建的通信控件定义成员对象(CMSComm m_Serial),通过该对象便可以对串口属性进行设置,MSComm控件共有27个属性,其中主要包括:
Commport:设置并返回通信端口号,缺省为COM1。
Settings:以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
PortOpen:设置并返回通信端口的状态,也可以打开和关闭端口。
bbbbb:从接收缓冲区返回和删除字符。
Output:向发送缓冲区写入字符串。
bbbbbLen:每次设置bbbbb读入的字符个数,缺省值为0,表明读取接收缓冲区中的全部内容。
InBufferCount:返回接收缓冲区中已接收到的字符数,将其置0可以清除接收缓冲区。
bbbbbMode:定义bbbbb属性获取数据的方式(为0:文本方式;为1:二进制方式)。
RThreshold和SThreshold属性,表示在OnComm事件发生之前,接收缓冲区或发送缓冲区中可接收的字符数。
以下是通过设置控件属性对串口进行初始化的实例:
打开所需串口后,需要考虑串口通信的时机。在接收或发送数据过程中,可能需要监视并响应一些事件和错误,事件驱动是处理串行端口交互作用的一种非常有效的方法。使用OnComm事件和CommEvent属性捕捉并检查通信事件和错误的值。发生通信事件或错误时,将触发OnComm事件,CommEvent属性的值将被改变,应用程序检查CommEvent属性值并作出相应的反应。在程序中用ClassWizard为CMSComm控件添加OnComm消息处理函数:
3.2 系统初始化
在执行应用程序时必须进行初始化,其初始化程序框图如图2所示。
图2 初始化程序框图
运行程序时,视图执行初始化操作函数OnInitialUpdate(),该函数内要先打开串口1,通过设置对象m_ContrCom各成员函数,设置好各通信参数:
经过一个位置选择对话框,通常选“保持原来的位置”,就发出询问各轴的坐标值的指令。流程如图2所示。除x轴是直接发送坐标询问指令获得坐标数据外,其他2个轴都是通过连续的2个定时器来询问坐标的,定时器响应后执行图3的程序。此后就进入待操作画面。
3.3 运行操作的编程
在电机运动操作区的各文本框内输入某一轴向的位移值、速度值,按下“运行”按钮,则程序会把位移值转化为字符型的实际要运行的步数,通过串口送到SC3步进电机控制器,控制对应的轴的电机运行相应的步数。运行结束后,SC3会返回一个“OK”字符至串口,PC机接受到这个字符后,就知道电机运行结束,向串口发送坐标询问指令,SC3会回送有关坐标数据,PC机接到这些数据后进行处理运算并在文本框中显示出来。这样就结束了一个完整的运行操作。
所有主要的PC机和SC3控制器的有关数据通信程序都在MSComm控件内。包括所有的接受、识别返回字符,各轴向坐标的运算和显示。
当步进运动完毕后,返回到PC机的数据为步进电机已经运行的步数,根据这个步数要计算相应的坐标,必须知道各轴的脉冲当量。步进电机每走一步,电移台的位移等于脉冲当量,即分辨率。
坐标值=初始坐标+运行步数*脉冲当量
平移台脉冲当量=丝杠导程mm*步距角/(360*细分数)
旋转台(x轴)的脉冲当量(度)=步进电机步距角/(传动比*细分数)
其中细分数是由控制器后面板拨码开关设置的。
步进电机的步距角都为1.8°,纵轴的丝杠导程为1 mm,横轴为4 mm,旋转轴传动比为180∶1,细分数为2,则根据以上公式可得出:
纵轴(z)脉冲当量=1/100
横轴(y)脉冲当量=1/400
旋转轴(x)脉冲当量=1/200
4、结语
在PC机和单片机之间实现串行通信控制是近几年很受欢迎、较为流行的方法。本文介绍的运用MSComm控件来编制的由PC机对步进电机直接控制的应用软件具有友好的人机交互界面,且编程简便、工作可靠,是一种切实有效的方法。这种串行控制方法和技术还可运用于相应的工业控制场合。
一、概述
该切管机主要用于电热管行业的各种管材切割切断加工,比如切割钢管、铝管、铁管等。该控制系统原来采用继电器、行程开关控制,产量低,不能自动自动送料、自动加紧、自动切割。
客户决定采用PLC控制,为了增加产量,保持锯切工件的准确度以及降低劳动强度,减少劳动用工,该控制系统具有自动送料、定长、自动夹紧、自动切割的功能;可设定参数,保护报警等功能。
二、系统控制组成及工艺要求
该切管机只是钢管生产线的一部分,为了在钢管切割时保证生产线上其他设备的照常运动,有一个活动的切割平台,保持与钢管相对静止以完成切割。
下图为钢管切割的示意图:
切管机有两种控制方式:手动和自动。手动一般是次切割时使用,系统并不考虑管子的长度而直接切割,之后与自动方式相同。
钢管运动到平台后,当达到所要切割的长度时图中橙色部分动作,伸出的推杆返回,气动加紧机构动作,会加紧钢管,钢管会推着切割平台一起运动。图中的绿色部分——切割机“低头”开始切割,切割完成后回触碰2号行程开关,切割机“抬头”电机停转。
切割过程中和切割完成后平台和钢管依然保持运动,直到平台触碰3号行程开关,加紧机构松开,平台不在和钢管一起运动而停止,经过一段时间的延时后(一般2-3分钟)图中橙色部分动作推动平台返回,再回程过程中会触碰4号行程开关,翻料机构(不在这台机床上)动作,切下的管子离开切管机。平台回程后会触碰5号行程开关,等待下一段钢管达到要求的长度。
钢管的切割长度在LED输入/输出设备上设定。
当切割钢管产生热故障的时候就产生报警。
三PLC控制方案
采用艾默生公司EC20系列EC20-1410BRA模块。
四、应用
采用艾默生EC20系列高性能PLC工作,给客户带来了以下的好处:
1、操作集中简易,灵敏,维修简便。
2、设备自动化水平提高后系统稳定性和抗干扰性也得到大大的提高。
3、可自动夹料,进刀,送料、定寸设置,定数停机和工作计量功能。
4、可以提高工作效率,使得产量的得到提高
5、自动报警