脉冲是如何控制伺服电机的

如题所述

如何实现伺服的控制的,下面是一个实例分析,只有知道控制原理,我们才能够继续延伸更多的知识,所谓“基础要过硬”,好了,大家先理解一下!

一、实战分析 伺服如何实现脉冲控制,及优缺点

一般我们控制伺服电机正反转,位置控制,或者是位置+速度控制,都是采用控制器发脉冲的控制方式,比如三菱PLC的FX2N和三菱的伺服驱动器,就可以利用PLC编辑程序,根据您所要的当量换算,计算出要发出的脉冲数,发送速度等参数,然后驱动设备运行相应的距离。当然比如西门子,欧姆龙等控制器和不同品牌的伺服,万变不离其中,原理都是类似的。
那么问题来了,总线控制又是什么东东那,接下来我给大家介绍一下:

二、现场总线控制方式应用场合及优缺点分析

随着IT产业的蓬勃发展,工厂内设备的自动化也全面进入了要以网络来联机的时代,这也使得"PC Based"的控制器在工厂设备中被运用的比例也愈来愈高,在图一中所展现的是一个开放式架构 (Open Architecture) 工厂自动化 (Factory Automation) 的网络结构,包含了硬件及各式的通讯协议
1. 多轴运动控制

机器设备因自动化程度提高而使得单一机器上所需要的轴数增多,一台设备上十几轴是常见的事情。在轴数变多后,如何协调各轴动作就是一个重要的课题。

2. 体积要小

由于厂房空间的限制,机器的体积要越小越好,机器内控制器的体积也就被要求愈来愈小,相对地走线空间也愈来愈少。

3. 要更精准

随着半导体制程已经精密到100nm以下,在制程及检测相关设备所要求的运动精度也要更精确。

4. 要更稳定

三、传统AC伺服定位系统

图二所示是一个传统「模拟式AC伺服定位系统」的方块图,驱动器的内层回路是一个相量控制的电流死循环系统以控制电机的转矩,外圈是转速死循环控制。运动控制卡读回 encoder 位置来作定位死循环控制。通常控制卡会利用DA输出电压到驱动器当成转速指令。
示为改良后的「脉冲式AC伺服定位系统」,因为伺服驱动器的进步而将定位死循环控制移入驱动器内执行。(也就是将速度环移到了驱动器内部)。运动控制卡输出脉冲指令来同时控制马达的位置及转速,同时读回encoder位置以作定位修正之用。

不论是传统或是改良式的控制架构都一定会遇到下列的瓶颈:

3. 偏移误差(Offset)及噪声。只要是模拟讯号必定会有所谓偏移误差的问题,造成传送指令的位准误差,此问题在零转速附近会特别明显,必须靠校正来补偿,另外在高压大电流的AC伺服系统必须特别注意噪声带来的干扰,否则也很容易引起脉冲指令误差。

4. 缺乏自我检测功能。这两类驱动器架构都很难令外界控制器读取或实时调整伺服参数,伺服驱动器内的参数多达百种,没有办法藉由传统配线方式就读取这些参数,如此就没有办法在控制器上完全掌握这些参数,也就没有办法进行自我检测及调试。

四、各式串行式运动控制通讯协议

随着串行式通讯科技的日新月异,如:Ethernet,运用串行式通讯来解决传统服务器驱动问题也有很大的进展,就如第一节中所述,串行式系统的不便之处在于没有共同遵守的通讯标准,就连在单项的运动控制系统目前也没有大家遵守的标准,不论是在硬件或通讯协议。

虽然没有标准,但是技术内涵的需求都是一样的:

1. 要能在固定周期内实时地传输控制指令,

2. 此周期是快速到约0.1ms~5ms之间,

3. 非周期性地收集外围所有I/O资料,

4. 选择性地、非周期地传收伺服参数数据,

5. 数据结构上要含数据正确性编码,以防在噪声干扰时作数据修正。


温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-09
k为零表示没有限制脉冲总数,如果是k10000就代表给他一万个脉冲,编码器的作用是检测他转速及是否给的每一个脉冲都动作了,如果没动作会反馈回去一定要走完所有脉冲才下一个动作,比如用手捏住他不让他转,此时编码器检测到不在转这时就好比暂停,手松开继续完成没有走完的脉冲,而步进电机虽是给了脉冲总量,如果此时也捏住他,驱动器的脉冲还是照样发过来了,随着时间的推移脉冲发完了哪怕你松手也不会再转了,所以就达不到这个效果,F代表速度,另外DH加减速时间,
第2个回答  2020-02-02
PLC和伺服都是通用元器件,配合基本都没问题。K0是指通道0,在这个语句中K0是专门来制定通道的,K只是符号,混不了。你是那款PLC,FPX吗?
假如你有五个位置你需要编五段程序,执行完一段会给出执行完的信号,你再做下一步动作。各个位置之间的距离是脉冲数给出,用它和你的编码器一转脉冲数以及丝杠的螺距来计算实际距离。
第3个回答  2019-12-16
PLC接驱动器的50针插头,编码器反馈是接在电机上的,如果用脉冲控制,电机的反馈脉冲不会传到上位去,线如果是做好的,插上就行,UVW别接反了烧不坏东西的.PLC接脉冲正负,方向正负到驱动器,此外松下电机必须接24V(9针?记不清了)
第4个回答  2019-12-14
在这里我们以松下的PLC为例进行简单的学习,我们这次要做的联系是利用三个按钮通过PLC来控制步进电动机。实现八中状态。
所需硬件:松下FP∑一台,按钮三个,外接步进电动机驱动器一个,步进电动机一台。 有了这些东西就开始我们的征程把;
编程目的:通过三个按钮实现八中状态来控制不经电动机分别走到八个不同的地点。
编程难点:对松下FP∑ PLC的F171指令和其他一下指令的熟悉。
仓储系统: 程序的顺序是:上电复位 原点,第一仓库,第八仓库的定位,数据输入断电保持寄存器中 计算每个仓库之间的距离 根据上位机的三个传感器来确定把物料放到那个仓库中 通讯部分。 一、上电复位: 无论小车在什么地方,在上电后都回到原点。用到的指令是F171: 当按下按钮X0的时候 ,电动机以1000HZ的频率运行(向右运行) 直至碰到脱机信号(X8)。 是控制代码:H23的全名是H000023。表示的意识是原点返回模式,方向输出为0N。如果是H22,也表示原点返回模式,但是方向输出为OFF(在这台设备上是电动机一直向左移动,直到碰到脱机信号) 初始速度为100HZ,把它放到寄存器DT12中。 最高数度为1000HZ,(或叫运行频率),并把他放入寄存器DT14中。 加,减速时间为100mS,并把他放入寄存器DT16中。 偏差计算器清零信号,0.5ms到100ms[k到k100] 设定值+误差(≤.0.5ms)不使用本信号或指定0.5ms时,设置为K0。 从DT10及以后连续的空间中存放步进指令的参数。K0是表示从零通道输出(注:在FP∑系列中有两个通道,K0和K2通道,其中K0通道是以Y0为,脉冲;Y1为方向。K2为Y3,Y4,具体请查看手册,在用到了不经控制指令后,PLC不能用作高数计数) 这一句话的意识是,在plc通电后,按下x0,则小车会回到原点。 一般我们用这条语句作为初始化指令(上电复位指令:让小车,在开机后自动的回到原点,开始我们正常的运行);下面是,在通电一秒钟后,小车自动复位(回道原点): 注:许多人都想到了用R9013来让他作为F171的上电的运行指令,实际上这是行不通的,(在上图中如果把T0的触头,改为R9013是不行的)因为F171的触发方式为,触发条件有OFF变为ON时触发这条指令。而R9013为一上电就运行一个扫描周期。 我们是让小车复位了,运行到原点;可是,什么是原点呢?(plc控制的小车运行到那个部位呀?)在这个教学仪器的最右边,有两个开关,第一个开关是个限位开关(也就是我们规定原点),第二个开关是极限限位开关。(它和步进电动机驱动器的脱机信号连接,碰到他时,步进电动机就不动了,没有力矩输出了。注:在这套教学仪器的最左边,那个也是极限限位开关,感觉在左边也应该有一个限位开关。) 那好我们把X8的常闭串到T0的后面,假如小车碰到了X8就让他停止,可是把程序下进PLC中,更本不管用。 在用F171时,我们要对DT90052进行设置, H9:停止脉冲输出;H0:不执行软件复位 实际上H9是清除高数计数器 F171指令的控制;而H0是配合H9的,他是必须有的,否则它一直清楚,高数计数器将不能运行。(注:详见FP∑使用说明书第56页)注意,我们X8的触头要把上面的F171指令断开,把DT90052的指令闭合。 在这里我们就把PLC控制的步进机完成上电复位将完了,希望大家记忆。 二,原点,第一仓库,第八仓库的定位。 我们要对小车进行控制,就必须控制它要走多少个脉冲。或者确切的说是,让小车走多少个脉冲。但是在运行的过程中由于许多的原因,我们要对小车准备走的路线中在关键点进行人工的准确定位,这几个点是:机械手放物料的地方,第一仓库的地方,第八仓库的地方。 定位,我们就要人工控制小车的左右移动,在这里我要用到F172这条指令. 按下XA,小车向左走,断开XA小车停止。同理小车向右走的程序是: 在这里需要注意的是 右移 是用H23,不是H13,,前面的指令是减法,后面的是加法。 移动到机械手放物料的地方按下XC,把从原点到机械手放物料的地方的脉冲数放到 寄存器中。(DT90044,高数计数器经过值) 同理第一,和第八仓库的数据放在寄存器中 注:在这里我感觉应该把F0,改为F1;因为经过值寄存器为DT90044和DT90045。 接下来我们就要进行计算了,利用前面的三个数据 算出从原点到机械手放物料的地方有多少个脉冲,(让步进电机走多少个脉冲),算出每个仓库之间的距离是多少个脉冲。(在这里为了不破坏某些寄存器里的数值需要,把这些数据导来导去,希望大家不要弄糊涂了。这里都用的是16位数据,如果上面该为 F1用32为数据传输) 基础知识: 开始了,把每个仓库之间的距离算出来: 以上程序是:把第八仓库的脉冲数减去第一仓库的脉冲数,把结果放在DT120中。 以上的程序是:把差值除以7的得到每个仓库之间的距离,结果放到寄存器DT122里; 注: 接下来我们就要算出第二仓库到第七仓库分别的距离了。 先把数据存好。再把第一仓库的脉冲数加上仓库之间的距离得到第二仓库的距离。如下:DT104 里的数据就是第二仓库里的距离数。 同理其他的就很容易算出了。 DT106是第三,DT108是第四,DT110是第五,DT112是第六,DT114是第七。(注,为什么不用DT105,107等?现在我也不知道。) 教学仪器有八个仓库,这就是说我们可以用三个开关或者三个传感器来组成不同的编码,报货物送到不同的仓库。在这里因为设计到上位机的一些通信和其他的为,有时候讲述起来不是特别的清楚,不要着急,我们慢慢来说,哈哈 上位机中在物料由传输带经过三个传感器检测后(组成八种状态对应八个仓库)输送到底部,由气动机械手把物料板送到小车上(下位机);在这里需要说明的是数据传输需要多机通信。然后小车把物料放到不同的仓库中。 为了提高效率(这是我自己想的,哈哈不知道对不对)在机械手旋转的时候,小车从原点走到机械手放物料的地方,准备接收物料; R90对应着 上位机的 气动手旋转,当上位机气动手旋转了而且小车在原点 后 R20得电,小车走到取货位置。 当任何一个高数计数器从F166到F173的指令被运行的时候如果使用第一通道CH0时R903A跟随通道别打开。(第二通道对于着R903D) 在上位机手旋转到位,放下物料气缸提升的期间手旋转气缸是一直得电的。 货物取了,在旋转气缸断电的下降延开始决定物料送到那个仓库。R91,92,93由上位机的三个传感器控制。 小车运动 现在我们把小车送到了指定的仓库位置,接下来就用把物料推到仓库中: 条件是:不在原点,已取货,小车停了。把货物推到仓库; 哈哈,库入完了,也就是说一个周期完了,我们要把小车送到原点,开始下一个周期了。 这里省略了向DT90052写H9和H0;实际上使用了上电复位那个。(我感觉,哈哈 JJ) 哈哈,这样一个程序就完了,还有的就是一些局部的细节问题和,怎么样不难把。 仓满报警: J简单吧!!! 到现在你已经编了将近600布的程序了,怎么样不难吧,到现在你就是高手。哈哈
在上次我们尝试了用三个按钮来控制步进电动机的的八种状态;
继续又用了三个不同的传感器来代替这三个开关,而步进电动机的八
种状态对于于八个仓库,来实现简单的自动化仓库存储;而现在我们
利用一个PLC自带的一个A/D,通过一个电位器来控制步进电动机来确
定不同仓库位置。
松下FP SIGMA PLC 自带了两路模拟电位器,对应的内部特使功能寄存器是:DT90040和DT90041;通过调整电位器,我们就可以改变寄存器的值,它的范围是:K0--K10001(10为左右的精度)
相似回答