西门子6ES7231-7PC22-0XA0程序安装4 中药自动配药系统中取药小车的优化方法 4.1 中药自动配药系统简介 中药自动配药系统中采用的是西门子公司出品的S7-200系列PLC控制步进电机工作,该系统取药装置主要由负责在X方向行走的取药小车和负责在Y方向行走的机械手组成,机械手安装在小车上,小车由X方向的步进电机(驱动小车左右行走)控制,机械手由Y方向的步进电机(驱动机械手上下行走)控制。小车在储杯器处取到药杯,由小车携带托着药杯的机械手行走至储药架指定位置取味药,第二味药,第三味药,…,直到所需的药全部取完,取药小车便回到封装器处对药杯封口完成一次取药流程。 4.2 实验数据分析及频率曲线的优化 这里主要针对X方向上驱动取药小车行走的步进电机的频率曲线进行分析。由于储药架上药瓶远近不同取药小车在取药过程中既要短距离行走,又要长距离行走。为避免损坏机器及提高取药定位的jingque度,要求小车在短距离行走时缓慢、平稳、定位jingque;为提高取药效率,则要求小车长距离行走时快速、平稳、防抖动、噪音小、定位jingque。实验中发现,仅仅使用图1中的三段曲线是不能满足以上要求的。在S7-200系列PLC的梯形图编程方式中,步进电机驱动小车运动是通过调用子程序的方式实现的,子程序中需要的参数包括曲线的段数、初始周期、脉冲数、周期增量等,这些信息都存放在PLC的包络表中,当PLC的主函数调用该子函数时,包络表将提供所有的参数信息。在对取药小车长距离行走进行分析时,根据步进电机的工作频率与步长之间的关系,将图1中的段曲线和第三段曲线再次划分如图2所示。图2 步进电机周期曲线(7段) 图2中前三段曲线段的作用效果等价于图1中段曲线段,若将包络表中的数据改为7段式曲线,并修改每段曲线的初始周期和脉冲数,即得到图2所示的周期曲线(由于包络表中频率是以周期的方式表示,因此,图2中将周期值换算成频率值,每段曲线的起始位置用“周期值(μs)/ 脉冲值(个)”的方式来标注该段曲线的初始周期和脉冲数,中部的数据代表该段曲线的周期增量,可以看作该段曲线的斜率,所有水平曲线的斜率为0,xpulse 是由主函数传递过来的电机驱动取药小车匀速运动时的脉冲数),从图中不难知道,每段曲线的周期及脉冲数和周期增量存在如下关系:(每段曲线的初始周期用tb表示,结束周期用te表示,脉冲数用p表示,周期增量用a表示)。 a=(te-t)/p (1) 由图2可以得出定理:步进电机周期曲线中每段曲线的结束周期值等于下一段曲线的初始周期值,因此计算下一段曲线的初始周期可由公式1变换为: te=a×p+tb (2) 在图2中,段曲线的初始周期为600,脉冲数为200,周期增量为-1,根据公式2计算出第二段曲线的初始周期为: (-1)×200+600=400 后面曲线的初始周期值可按同样方式计算出来。如果步进电机启动加速时速度太慢,由于驱动力不够导致小车运动不起来;相反,若启动速度过大,又会造成机器的磨损程度增加同时噪音也很大,因此恰到好处的设置启动曲线段的初始周期及脉冲数尤为重要。测试结果表明,采用图2中的曲线段数和参数,小车行走比原来三段曲线时更平滑,噪音也稍有降低,在电机启动的瞬间以及停止的瞬间尤为明显,整个小车的稳定性得到了提高。在实验中不断修改曲线参数及段数,经过多次实验得到11段周期曲线,每段曲线的周期值和脉冲值如表1。表1 曲线的周期值和脉冲值(11段) 由表1可知通常在PLC的子程序中要根据周期增量来计算下一段曲线的初始周期,为简化这一过程,在实验中采取了“跳跃式周期曲线”,即只留下整个曲线的水平部分,这样所有曲线的周期增量均为0,不仅免去计算的繁琐,同时在确定每段曲线的初始周期数和脉冲数时也比较自由,因此,周期曲线可简化为如图3所示。图3 跳跃式周期曲线(9段) 测试结果表明,“跳跃式周期曲线”是可行的,也达到了预期的标准。对于取药小车短距离行走,由于小车行走的距离很短,一般30cm左右,只要保证小车在行走时缓慢、平稳、噪音小、定位jingque就可以了。实验证明,将启动和匀速运动的速度设置的较慢就能达到目的,因此在短距离行走中将频率曲线划分成多段显得冗余,采用简单的三段曲线(图1中的曲线)并合理设置初始周期值就足够了3 基于PLC的步进电机控制方法 本文以OMRON的CQM1型机为例,分析通过PLC的软件设计来实现步进电机的脉冲分配。 由移位寄存器SFT(10)指令循环输出实现脉冲分配,步进电机工作在三相六拍时的状态由内部辅助寄存器IR016的00~05继电器控制,为实现循环控制,由第6位信号01605作为反馈信号接到SFT的数据输入端IN。SFT的移位脉冲输入端CP可由PLC内部高速定时器通过编程实现,本设计中为方便起见。采用了内部特殊继电器SR25500。SFT的复位输入端R接步进电机停止信号,该端为ON时,数据通道IR016的所有位置0,并且不接受数据输入。 表2列出了IR016与步进电机通电绕组的对应关系,在步进电机正转时,当移位数据信号移到位时。移位寄存器SFT位01600的输出应接通步进电机的A相;移到第二位时,应接通A相和B相;其余如此类推。以A相绕组为例,由表2可知,当辅助继电器0中任一个接通时(并联关系),A相通电。移位寄存器每一位的输出信号先驱动与步进电机各相对应的输出继电器,再由输出继电器通过功率放大器驱动步进电机。表2 IR016与电机通电绕组对应关系 梯形图控制程序如图1所示。工作过程简单描述如下:由输入端00000得电发出启动信号,前沿微分指令DIFU(13)保证移位寄存器SFT(10)指令中移位数据初始信号01600的唯一性。移位寄存器在移位脉冲的作用下顺序左移,实现6位脉冲分配,由输出继电器10000、10001、10002分别去接通步进电机的A、B、C三相。步进电机转速可由移位寄存器SFT的脉冲输入端控制,转向由继电器02603控制。当输入端00001无效时,KEEP(11)指令的置位端02600保证02603得电且保持该状态,电机正转;当00001为ON时,KEEP(11)指令的复位端02601使02603失电而恢复原状态,电机反转。图1 梯形图4 结束语 比较步进电机的SCM和PLC的控制方法可知。SCM采用定时器延时,以中断方式输出控制脉冲;PLC采用移位指令和内部特殊继电器,以循环顺序扫描方式输出控制脉冲。SCM采用汇编语言(或C语言)编程,其指令系统的同有格式受硬件结构的限制很大,编写和调试要求具备一定语言程序设计基础;而编写PLC程序,即可以采用语句表(助记符),又可以采用梯形图,梯形图简单易懂,通过图形编程器容易实现。SCM控制系统设计周期长,一般需要程序扩展,硬件方面需要经过印刷电路板设计等过程;PLC控制系统采用模块化结构,可在线修改控制程序,并实现实时监控,因而设计周期短。PLC系统扩展灵活,可以在原有控制系统基础上进行功能扩展,能有效降低成本,适应于复杂的工业控制环境。 用SCM和PLC来实现步进电机控制脉冲的产生和分配,可以通过编程在一定范围内自由地设定步进电机的转速,而且还可以灵活地控制步进电机的运行状态。这两种控制方式都不需要反馈就能对位置或速度进行控制,且位置误差不会积累;用软件编程代替硬件控制,不仅减少了系统设计的工作量,而且提高了控制系统的可靠性。0 引 言 步进电机位移与输入脉冲信号数相对应,精度高、响应特性好、可靠性高、速度可在较宽范围内平滑调节,是控制系统中一种重要的自动化执行元件。 SCM(Single Chip Microcomputer,单片机)是把组成微型计算机的中央处理器、存储器、输入输出接口电路、定时器/计数器等制作在一块集成电路芯片中,它具有小巧、低功耗、指令系统丰富等优点,成为工业控制的主角。 PLC(Programmable Logic Controller,可编程序逻辑控制器)是以微型计算机为核心的一种工控机。其控制方案能事先进行模拟调试,自身设计采用了冗余措施和容错技术。由于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的步进电机控制方法表2 IR016与电机通电绕组对应关系图1 梯形图4 结束语 用SCM和PLC来实现步进电机控制脉冲的产生和分配,可以通过编程在一定范围内自由地设定步进电机的转速,而且还可以灵活地控制步进电机的运行状态。这两种控制方式都不需要反馈就能对位置或速度进行控制,且位置误差不会积累;用软件编程代替硬件控制,不仅减少了系统设计的工作量,而且提高了控制系统的可靠性0 引 言1 步进电机驱动方式2 基于SCM的步进电机控制方法 2.1 控制原理表1 三相六拍步进电机控制字 2.2 控制程序