自动化1 王朔 1215102041 毕业论文(1) - 图文

更新时间:2024-01-28 01:09:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

华侨大学

本科生毕业设计(论文)

题目: 直线扫描架控制系统设计

姓名: 王朔

学号: 1215102041

系别: 自动化

专业: 自动化

年级: 2012级

指导教师: 金福江老师

2016年 05月 12日

华侨大学毕业设计(论文)

学位论文独创性声明 本人声明兹呈交的学位论文是本人在导师指导下完成的研究成果。论文写作中不包含其他人已经发表或撰写过的研究内容,如参考他人或集体的科研成果,均在论文中以明确的方式说明。本人依法享有和承担由此论文所产生的权利和责任。 论文作者签名:签名日期:

学位论文版权使用授权声明 本人同意授权华侨大学有权保留并向国家机关或机构送交学位论文的复印件和电子版,允许学位论文被查阅和借阅。本人授权华侨大学可以将本学位论文的全部内容或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 论文作者签名:指导教师签名: 签名日期:签名日期:

直线扫描架控制系统设计

直线扫描架控制系统设计

摘要

伴随着自动化水平的日益提高,更多的工业控制场合需要精准的位置控制。本次课题研究的直线扫描架需要精确的位置控制。因此,如何更方便、更精准地实现位置控制是本次课题的一个非常重要的问题。位置控制的准确性主要原因在于伺服驱动器和运动控制器的精度。位置控制的方便性可以通过VB进行界面设计,SQl的数据统计方便位置控制。复杂的运动控制模块可以对伺服系统进行十分复杂的运动控制。但有些用到位置控制的场合,他们对位置精度的要求比较高。但对运动的复杂程度要求不是很高,因此就没有需要选择那些昂贵的复杂的运动控制系统。

VB可以通过RS-232通讯对伺服控制器的内部参数进行改变,达到位置控制的目的。在VB中设计基本的控制界面方便对参数的更改和对伺服电机位置的监控。通过SQL建立相应的数据库对数据进行保存。方便,快捷。实现VB与伺服的通讯主要控件是MSComm。设置相应的参数实现对伺服电机的控制和监控。

如何设置伺服控制器的哪几个参数将在本文详细介绍。并怎样实现通信对伺服控制进行监控和对参数的保存。

关键词:直线扫描架,伺服电机,位置控制,速度控制,VB,SQL

III

华侨大学毕业设计(论文)

linear scanning frame control system

Abstract

With increasing levels of automation,More and more industrial control applications require precise position control.So, how to be more convenient and more accurate position control achieved is an important issue in the field of industrial control.The accuracy depends on the accuracy of the position control servo drives and motion controllers.Position control convenience can interface design, SQl data statistical convenient location controlled by VB.High-end motion control modules for servo system can be very complex motion control. However, in some occasions require position control, its positional accuracy requirements are relatively high.But the complexity of the movement is not very high, which is not necessary to select those expensive high-end motion control system.

VB servo controller can change its internal parameters via RS-232 communication.The purpose of position control.The basic design of the control interface and convenient way to change the position of the servo motor monitoring parameters in VB.Corresponding database through SQL data is saved.Convenient.VB to achieve communications with the main servo control is MSComm. Set the parameters to achieve the servo motor control and monitoring.This article describes how to set several parameters which servo controller.

And how to communicate to servo control monitoring and preservation of parameters.

Key words: VB, SQL, Linear gantry position control, MSComm.

IV

直线扫描架控制系统设计

目 录

绪论................................................................ 1

1.1研究背景及意义............................................... 1 1.2研究现状..................................................... 1 1.3研究内容..................................................... 1 第2章直线扫描架的结构与组成(对象)................................ 3

2.1扫描架的结构................................................. 3 2.2扫描架的速度控制............................................. 4 2.3扫描架的位置控制............................................. 5 第3章 直线扫描架控制系统模型....................................... 8

3.1 直线扫描架控制系统组成(闭环控制系统)三相系统下的数学模型 .. 8

3.2.1αβ0坐标系中的模型 .................................... 9 3.2.2dq0坐标系中的模型 ..................................... 10

3.2 交流伺服电机模型 3.3 对象模型 3.4 编码器模型

第4章控制系统设计................................................. 13

4.1速度控制算法设计(PID参数整定,控制效果) .................. 13 4.2位置控制算法设计............................................ 14 第5章组态程序设计................................................. 15

5.1 系统组成:VB的界面设计..................................... 15 5.3伺服控制器参数的设置........................................ 15 5.4VB与伺服通信的实现.......................................... 16 5.5设计思路.................................................... 17 第6章结论与展望................................................... 18 参考文献........................................................... 19 致谢............................................................... 20 附录一代码及解释................................................... 21

V

直线扫描架控制系统设计

绪论

1.1研究背景

本次毕设参照的是浙江嘉兴和意自动化生产的直线扫描测厚仪。其基本厚度自动检测系统是主要由“0”型扫描器和操作员站两部分组成。扫描器的主要部件有厚度传感器,扫描架本体,PLC,导轨和滑块。扫描架是厚度传感器的载体,保证厚度传感器在被测物上平滑地,高精度地来回扫描。PLC采集和处理来自厚度传感器的厚度信号,并把它送往操作员站。操作员站主要有工业控制计算机,通讯模块和控制柜组成。工业控制计算机通过通讯模块,将PLC送来的喜好处理成用户需要的各种现实。并通过高级控制算法去执行纵向和横向控制。

1.2研究意义

本课题的要求是通过SQl、VB实现PC机与伺服控制器用RS-232接口相互连接,达到对扫描架的精准定位,设定支架的左限位置、右限位置、运行速度的目的。

本次毕业设计的直线扫描架使用的是台达研发的伺服电机,因为有控制器的伺服电机才能旋转,故而全部公司生产的伺服电机肯定有配套的伺服控制器。一般有三种控制信号模式被交流伺服电机驱动器采用当做控制方法:P command(位置模式),V command(速度模式),T command(转矩模式)。

小型伺服控制器大多数是运用的P command(位置模式)控制方法。本次毕业设计的目的是能够准确的定位机构的位置和个人电脑与台达生产的ASDA-A2交流伺服控制器通过RS-232实现通讯。通过本次课题使我基本了解了扫描架的工作原理。能够对扫描架通过伺服进行PC端控制。

1.3研究内容

本次设计的直线扫描架采用的是台达公司生产的型号为 ASD-A2-0421-M的驱动器,配套的电机型号是ECMA-C10604SS。脉冲数是伺服能够做到精确定位控制的根本,因此完全可以如下理解:之所以一个脉冲相应的角度被台达伺服电机转动,是因为台达伺服电机获得了1个脉冲,因而带动装置位移。相应的台达伺服电机(带编码器)自己拥有产生脉冲的特点,所以台达电机走动了一个角度产生了对应脉冲数。就是因为如此,这个值与台达交流伺服电机得到的值进行比较,

1

华侨大学毕业设计(论文)

别名叫做闭环。比较后控制器对电机进行多退少补的原则进行精确控制。我们就能够通过这个过程很精准的控制电机带动直线扫描架支架的移动,实现了精准的位置定位。再用VB通过MSCommon控件进行RS-232协议通信。实现通过VB对伺服控制器的参数进行修改和监控。

2

直线扫描架控制系统设计

第2章扫描架的概况

2.1扫描架的结构

扫描架的外观如图2.1.1

图2.1.1扫描架的外观

整体看上去看到一个铁皮箱子作为保护和支撑作用,箱子上面有一个小孔伸出来两根线。一根是伺服控制器给电机电的线,一根是编码器给伺服信号的线。具体供电线为九宫格插口,编码器反馈线为两行三列的插。,如下图2.1.2

图2.1.2扫描架与伺服接头

内部结构包括一对传动齿轮用于把转动改为平行运动、一个伺服电机(包括编码器)为动力来源、一个扫描支架用于放置相应的传感器、一条皮带用于带动支架运动、一根不锈钢轨道、一条塑料防护链用于保护传感器的线路不影响扫描架的运行。如图2.1.3图2.1.4

3

华侨大学毕业设计(论文)

图2.1.3伺服电机的传动组织

图2.1.4传感器支架

2.2扫描架的速度控制

扫描架的速度控制是通过伺服控制器来实现的。其中伺服控制器提供了两种速度控制模式,一种为速度模式有模拟输入:台达伺服驱动器收到相应命令,启

4

直线扫描架控制系统设计

动伺服电机从而控制机构移动至设定速度。相应命令仅可由控制器内建的寄存器给出(共三组寄存器),或由上位机给出模拟电压(-10V~+10v)。可设定CN1口对应的I/O口开通或者关闭实现DI信号选择寄存器编号。另一种为速度模式但是没有模拟输入:台达伺服驱动器收到相应指令,启动伺服电机从而控制机构移动至设定速度。相应指令仅可由控制器内建寄存器给出(共三组寄存器),可设定CN1口对应的I/O口开通或者关闭实现DI信号选择寄存器编号。总的来说都是通过控制器给电机相应的速度值,编码器对电机的转速进行监控,反馈给伺服控制器伺服电机目前的速度。控制器根据设定值与反馈值的差值进行“多退少补”。实现速度控制的目的。控制方框图如下图2.2.1

速度指令速度比例系数-SERVO PG速度积分系数脉冲/速度转换 图2.2.1速度控制系统框图

2.3扫描架的位置控制

扫描架的位置控制是通过串级反馈来实现的。台达伺服提供了两种位置控制模式,一种为位置控制模式由端子输入控制指令:台达伺服检测到相应命令,启动伺服电机从而引导机构移动至预定地点。控制指令由上位机给出,此指令是一种带符号的脉波。另一种为位置控制模式由内部寄存器输入控制命令:台达伺服检测到此指令后,启动伺服电机从而引导机构移动至预定地点。相应命令由控制器内建寄存器给出(共64组寄存器),可设定CN1口对应的I/O口开通或者关闭实现DI信号选择寄存器编号[4]。总的来说都是通过台达控制器对电机指定一个想要实现的脉冲数,伺服电机启动后编码器实时监控电机产生的脉冲数,并将这个数回传给台达控制器。台达控制器根据预定的脉冲数与回传的数值的差值进行“多退少补”。达到位置控制的目的。因为位置控制过程中对速度也是有要求的所以位置控制采用的是串级控制模式。方框图如下图2.2.2

5

华侨大学毕业设计(论文)

速度指令位置比例系数脉冲指令--速度比例系数SERVO PG速度积分系数脉冲/速度转换位置反馈

图2.2.2位置控制系统框图

我们对扫描架的控制采用的是PR控制模式:由内部寄存器输入位置命令的控制模式基本基本控制构架如下

CN1(POS5-POS0、CTRG) 命令寄存器P6-00—P7-27 加减速寄存器P5-20—P5-35 延迟时间寄存器P5-40—P5-55 速度寄存器P5-60—P5-75 第一分子(P1-44)

第二分子(P1-60) 第三分子(P1-61) 第四分子(P1-62) 分母(P1-45) S型平滑器P1-36 命令选择P1-01 Moving P1-01 6

直线扫描架控制系统设计

当然控制模式还有扭矩控制模式和混合控制模式这里因为没有用到就不进行细致的介绍了。

低通滤波器P1-08 位置Notch Fiter P1-25—P1-26 位置Notch Filter P1-27—P1-28

7

华侨大学毕业设计(论文)

第3章伺服电机的模型

3.1 三相系统下的数学模型

台达的 ECMA-C10604SS电机的定子与常见的电机的定子都是运用三相对称绕组。在此我们依照电动机不成文的规定设定个运算时的正方向。图3.1.1示出了一台两极永磁交流伺服电机的机构简图。

图3.1.1两极永磁交流伺服电机的机构简图

图中,规定正方向为正电压产生正电流,正电流产生正磁场,电动势根据右手定则决定磁链的方向,进一步相电流导致磁场的出现并且其中心轴与绕组的中心轴可以等效代替,定子绕组中心轴逆时针组合,A相绕组中心轴作为定子静止参考轴,转子永磁极产生的基波磁场方向为直轴d轴,超前直轴90°电角度的位置是交轴q轴,并且以转子值周相对于定子A相绕组轴线作为转子位置角θ,即逆时针方向旋转为转速正方向。由此得到定子电压方程式为

uA?rSiA?p?A (3-1) uB?rSiB?p?B

uC?rSiC?p?C式中:uA、uB、uC为三相绕组相电压;rS为每相绕组电阻;iA、iB、iC为三相绕组相电流;?A、?B、?C为三相绕组匝链的磁链;p?d/dt为微分算子。

定子每相绕组的磁链不仅与三相绕组电流有关,而且与转子永磁极的励磁磁

场和转子的位置角有关,因此磁链方程为

8

直线扫描架控制系统设计

式中式中sh

?A?LAAiA?MABiB?MACiC??fA ?B?LBAiA?MBBiB?MBCiC??fB?A?LCAiA?MCBiB?MCCiC??fC(3-2)

式中:LAA、LBB、LCC为每相绕组自感;MAB?MBA、MBC?MCB、MCA?MAC为两组绕组互感;?fA、?fB、?fC为三相绕组匝链的转子每极永磁磁链。 并且

式中,?f为定子电枢绕组最大可能匝链的转子每极永磁磁链。 3.2两相坐标系下的动态模型

在永磁交流伺服电机的分析中,经常用到的是αβ0和dq0两种两相坐标系统,其中αβ0坐标系为静止的两相坐标系,而dq0则为与转子同步旋转的旋转坐标系。

?fA??fcos? (3-3) ?fB??fcos(??2?/3)?fA??fcos(??2?/3)3.2.1αβ0坐标系中的模型

从定子静止的ABC坐标系到定子静止的两相αβ0坐标系的变换,也称为Clarke变换,如图3.2.1所示。

图3.2.1???变换 其中有

?fa??fA? (3-4) ?f??C?f?K?b??B? ????fC??fc??

9

华侨大学毕业设计(论文)

其中,变换矩阵CK为

其逆变换为

?fa??fA? ?f??C?1?f?K?B??b????fC???fc?????101??13?CK???1? (3-5) ?22??13??1???22?(3-6)

其中

11??1???22???2?33??1 (3-7) Ck?0???322?111??22?2??将定子电压方程式(3-1)改写成矩阵形式并两边左乘Clarke逆变换矩阵后,得到定子静止两相坐标系统中的电压方程为

?i?? ?u??????u?r(3-8) ???S?i????u??i?????????????p??????????

同样将定子磁链方程式(3-2)改写成矩阵形式并两边左乘Clarke逆变换矩阵后,得到定子静止两相坐标系统中的磁链方程为

?????i????f??????????L(2?)i?? 1???????f??????i???????????f??(3-9)

3.2.2dq0坐标系中的模型

将αβ0坐标转换为dq0坐标,称为Park变换。如图3.2.1所示,

10

直线扫描架控制系统设计

图3.2.1两相静止与两相旋转坐标系 有

其中,Park变换矩阵为

其逆变换为 其中

?fd??f?? (3-12) ????1??fq??CP?f???f??f?????o??cos?sin?0???1TCP?CP???sin?cos?0?? (3-13) ?01??0??cos??sin?0?? CP??sin?cos?0???01??0??fd??f?????? (3-10) f?CP?fq?????f??f?????o?(3-11)

式(3-12)称为角位解耦变换,变换矩阵CP是正交矩阵。将上述变换关系矩阵及个系数带入(3-12),简化得到dqo坐标中的电压方程为

?ud??id??Ld?f?????????u?Cf?rqK?S???iq???0???u??i???f?????o?????00Lq00??id??0???L0?pi??q????d??Lo????0?i???Lq000??id??0????1?0?i???qf???????0????0???i??(3-14)

同样推导可带dqo坐标系统中的定子磁链方程为

11

华侨大学毕业设计(论文)

??d??Ld?????q???0?????o??00Lq00??id??1????0?(3-15) 0?i??qf???????Lo????0???io?

12

直线扫描架控制系统设计

第4章算法设计

4.1速度控制算法设计

伺服电机想要达到速度控制的目的必须采用PID算法。尽管PID全有的调节器比较准确,但是并不是说能够使用于所有系统,而且这样整定比较复杂,如果参数不恰当,甚至会导致系统崩溃,南辕北辙。使用哪一种控制器呢?首先考虑P环节,其次研究I环节,最后看看要不要引进D环节。例如机构的时间常数超过了界限,另一种情况是有一大段的延迟在这种情况下我们要使用D环节,在比如控制过程中可以有适当的偏差,那么控制器可以引入P环节和D环节;控制过程中不能有差值的话,就必须启动PID控制。但是机构的时间常数低于界限,而且抗干扰能力还不错,控制过程希望误差为零,那么P环节加I环节是首选。但是机构的时间常数低于界限,很容易受到外界干扰,控制过程可以有适当的偏差,那么仅仅使用P环节就可以了。本课题延迟时间较小可以不用D调节机制,对误差要求较高所以选用PD调节机构。

对PD参数的调整包括比例带?、微分时间常数Ti。调节采用衰竭曲线法。首先是调节器为纯比例规律且比例带较大。然后是系统闭环,待系统稳定后,逐步减小比例带,当系统出现衰减震荡时(??0.75,??0.9)计下?s和Ts与?s和Tr。然后查表4.1和表4.2

??0.75

PID 减率为0.75

规律 参数 ? Ti TD P ?s PI 1.2?s 0.5Ts 0.8?s 0.3Ts 0.1Ts 表4.1当衰时

13

华侨大学毕业设计(论文)

??0.9

规律 参数 ? Ti TD P ?s PI 1.2?s 2Tr PID 表4.2当衰减率为0.9时

0.8?s 1.2Tr 0.4Tr 4.2位置控制算法设计

因为位置控制为串级控制系统所以参数的整定有另外的两套方法,第一套是逐次逼近法、另外一套是两步整定法。

逐次逼近法:第一步要把主回路断开形成开环,副回路根据上节的衰减曲线法调节妥当。第二部把第一步得到的数设置进副环,把副环当做主环的一部分来用单回路法调节主环参数。然后,主副环都闭环带入入两组参数,按照衰减曲线法调节副环参数。最后把参数带入调节主环,如果达不到理想值,重复前面的步骤[13]。

两步法:优先调节副环参数,首先使主副环都闭合,然后把主环的?设置为100%,参考衰减曲线法调节副环参数,过程中截取副环的衰减率为0.75时的比例带?2s和震荡周期T20。其次调节主环参数,要主副回路状态不变,设置副环的比例带为第一步得到的?2s,然后参考第一步来设置主环截取主环在衰减率为0.75时的比例带?1s和震荡周期T1o。最后按照“衰减曲线法”的计算公式,分别求出调节器的整定参数。

14

直线扫描架控制系统设计

第5章系统实现

5.1 VB的界面设计

本次毕设对电机的控制包括运行速度的控制和运行距离的控制所以有两个输入文本框加两个文本“给定速度”和“设定距离”。按键包括两个设置键、停止键、启动键、转动键。对电机进行监控要用一个文本框和一个文本“输出位置”。达到对伺服的通讯的目的须要控件MOSComm。界面如图3.1.1

图3.1.1VB控制界面

5.2SQL的设计

我们需要的伺服电机的数据包括时间、运行的距离、运行的速度。须要创立一个伺服电机状况表。表中的属性包括运行距离、时间、运行速度。其中时间作为主键。

5.3伺服控制器参数的设置

想要达到本次毕设的目的有几个参数要进行设置1、P1-01参数代表控制模式及改变控制命令的输入源。其的参数设置为01,把伺服控制器的控制模式变为位置控制模式且由内部寄存器给命令。2、P6-02参数定义的是PATH#1,对路径进行详细定义,包括路径的运行方式、运行速度、加减速时间、执行后的延迟

15

华侨大学毕业设计(论文)

时间。我们把参数设置为000000042。3、P6-03参数代表的是PATH#1要走的脉冲数。我们要通过VB界面对这个参数进行修改。4、P2-10参数代表了DI1口的功能,因为我们要用VB进行伺服的启动和停止所以把此参数设置为101(开启伺服)、001(关闭伺服)即可,然后通过VB改变为相反参数即可。5、P5-07的参数代表本次执行哪一个路径。所以在伺服开启的状态下通过VB设置P5-07为01就启动了PATH#1。6、P5-60参数代表了目标速度,所以我们要通过VB改变其参数,就可以改变目标速度了。7、P3-00参数是伺服的局号,设置为1。8、P3-01参数代表了通讯传输率,设置为0001及选择通讯率为9600。8、P3-02参数代表选用的通信协议,设置为6,即数位是8位、无奇偶校验、停止位2位格式为MODBUS RTU。9、P3-05参数代表通信接口,设置为0,即RS232通信。

5.4VB与伺服通信的实现

串行通信控件(Miscrosoft Communications Control ,MSComm)是微软公司提供的简化Windows下串行通信编程的ActiveX控件,它既可以用来提供简单的串行接口通讯功能,也可以用来创建功能完备的、事件驱动的高级通信工具。

通过它可以建立与串行通信接口的链接,通过将串行接口连接到其他通信设备,发出指令,交换数据,以及监视和响应串行链接中发生的事件[2]。利用她可以进行诸如拨打电话、监视串行接口输入数据程序,以及创建功能完备的终端程序等。

MSCommon控件的常用属性包括 CommPort属性

语法:MSCommon1.CommPort[=Value] 作用:设置或返回通信接口号 HandShaking属性

语法:MSCommon1.HandSHaking[=Value] 作用:制定通信双方的握手协议 Input属性

语法:MSCommon1.Input[=Value]

作用:返回缓冲区存在的数据并删除接收缓冲区存在的数据 InputLen属性

语法:MSCommon1.InputLen[=value]

作用:规定Input属性能够从接收缓冲区得到的数据个数并返回Input属性从接收缓冲区得到的数据个数

inputMode属性

16

直线扫描架控制系统设计

语法:MSCommon1.InputMode[=Value]

作用:规定可以接收到的数据的类型或返回接收到的数据的类型 OutPut属性

语法:MSCommon1.OutPut[=value] 作用:软件向传输缓冲区填写数据 PortOpen属性

语法:MSCommon.PortOpen[=value] 作用:设置或返回通信接口的状态 Setings属性

语法:MSCommon1.Setings[=value] 作用:设置并返回通信参数 RThreshold属性

语法:MSCommon1.RThreshold[=value]

作用:规定返回接收缓冲区能够装得下的数据个数,并启动OnCommon事件 SThreshold属性

语法:MSCommon1.STHreshold[=value]

作用:规定返回发送缓冲区能够装得下的数据个数,并启动OnCommon事件 DTREnable属性

语法:MSCommon1.DTREnable[=value]

作用:决定在通信时是否用的到DTR(Data Terminal Ready)线路 RTSEnable属性

语法:MSCommon1.TRSEnable[=value]

作用:决定是否使RTS(Request To Send)线有效 OutBufferSize属性

语法:MSCommon1.OutBufferSize[=value]。 作用:规定传输缓冲区大小或得到传输缓冲区大小。 InBufferSize属性

语法:MSCommon1.InBufferSize[=value]

作用:规定接收缓冲区大小或得到接收缓冲区大小。

5.5设计思路

17

华侨大学毕业设计(论文)

首先通过阅读使用手册了解到可以通过设置P1-01改变控制模式,并将其设

置为01为PR控制模式,因为我们只用一段路径就可以了,所以只用P6-02和P6-03这一组路径(PATH#1)的数据,其中P6-02是对该路径的定义具体参考2.2PR控制的设定及相应参数设定,P6-03是对该路径要走多少脉冲进行设置,及P6-03中的数值就是该路径要走的脉冲数。还要设置该路径运行时对应的运行速度,通过对P5-60进行设置就可以了,因为我们的PATH#1选择的速度寄存器是P5-60,如何选择请参考2.2PR控制的设定及相应参数设定。这些设置完成后要对CN1口进行设置其中P2-10设置为001(DI1口设置为常闭的SON),P2-11设置为108(DI2口设置为常开的CGRT)。还要对电子齿轮比进行设置,因为本型号的台达电机的编码器一圈是1280000个脉冲,当设置电子齿轮比分子为128、电子齿轮比分母为10的时候电机转一圈产生100000个脉冲,即100000*128/10=1280000。最后进行触发,及把P5-07设置为01。这样通过伺服控制器进行的位置控制完成了。通过这种控制我们知道VB的控制要有 1、距离输入,及通过通信对P6-03的数值进行修改,当然需要一个参数这个参数,通过多次测量和线性回归得到了一个比较精确的值,如下图4.3

图4.3线性回归

2、路径速度输入,及通过通信对P6-50的参数进行修改,因为伺服控制器规定当进行通信设置时单位为10r/min,所以要对输入值进行除10的操作。 3、对路径运行的监控,及通过通信对P0-02中的数值进行提取。并且要把P0-02的参数设置为00显示的是电机反馈脉波数(电子齿轮比之后)。

第6章结论

通过这次毕设我收获了很多主要有以下几点

18

直线扫描架控制系统设计

1、对直线扫描架的控制有了初步的了解

2、了解了伺服电机的各种工作方式,深刻熟悉了PR工作模式。了解了伺服电机的各个参数的设定和对伺服电机状态的监控方法。 3、了解并使用了RS-232通信协议。

4、更加深刻的认识了VB和SQL。主要认识了通信控件MSCommon,对以后的工作和学习都有很大帮助。

5、对硬件接线方面也有很大收获。是以前在课本上了解不到的。 通过这次对伺服电机的控制对其以后有几点展望 1、伺服控制向着数字化的趋势发展

数字化伺服控制有着相对模拟伺服控制来说的巨大优势,避免了零漂、抗干扰性很差容易受外界影响、可靠性不高经常会罢工、精度很低和柔性很差的缺陷。所以伺服系统全面采纳定制的数字信号处理机(DSP)来取代采用模拟电子器件的伺服系统,从而达到精确、稳定控制的地步。而且数字化控制是一种软件控制,所以相对于模拟控制更加灵活可以引用更多的先进算法,这样控制的性能就有一个巨大的提升。

2、对伺服的DCS

伺服的DCS可操作性强,拥有带电热拔插特点,拥有在线下载新增加的控制程序的功能,增加了在线添加I/O接口的特点。多个控制站共享数据是由DCS通过局域星型环网现实的。DCS扩展工程相对方便点。

参考文献

[1]颜嘉男.伺服电机应用技术[M].北京.科学出版社.2010。

19

华侨大学毕业设计(论文)

[2]柏逢明,卫昱含.VB基础与RS-232C通信技术[M].北京.机械工业出版社.2014。

[3]杨添博,武威.伺服电机控制的VB设计.[J].《工程与实验》,2013年53卷第1 期:73-75。

[4]台达私服电机ASDA-A2使用手册.引自台达私服官网,

http://www.deltagreentech.com.cn/productlv4-374-164.html。 [5]龚沛曾,袁科萍,杨志强.数据库技术及应用[M].北京.高等教育出版社.2008.3。

[6]Visual Basic+SQL Server 数据库应用系统开发教程[M].北京.清华大学出版社.2012.1。

[7]李江全.Visual Basic 串口通信及测控应用实例详解[M].北京.电子工业出版社.2014.1。

[8]莫会成.微特电机[M].北京.中国电力出版社.2015.9。

[9]郭庆鼎,孙宜标,王丽梅.现代永磁电动机交流伺服系统[M].北京.中国电力出版社.2006

[10]张红莲.电机与电力拖动控制系统[M].北京.机械工业出版社.2013.9 [11]舒志兵.交流伺服运动控制系统[M].北京.清华大学出版社.2006.3 [12]寇宝泉.程树康.交流伺服电机及其控制[M].北京.机械工业出版社.2008.9 [13]金以慧.过程控制[M].北京.清华大学出版社.1993.4

致谢

毕业论文基本完成这就是说我在国立华侨大学厦门校区的本科四年将

20

直线扫描架控制系统设计

要结束。想想我的一生最值得铭记的时光能够在这样开放、美丽校园里,能在周围都是学识渊博的老师们的关注下走过绝对是一段快乐的时光。走过了四年快乐的时光,我无论实在学习上还是在思想上都收获良多。能够顺利毕业不仅必须有自身努力还与各位老师、同学和朋友的帮助、支持和鼓励是密不可分的。

写作论文是意见枯燥艰辛而又富有挑战的事情。伺服电机一直是控制界研究的热点话题,老师的谆谆诱导、同学的出谋划策及家长的支持鼓励是我坚持完成毕业设计和论文的不竭动力的源泉。在这里我必须特别要感谢我敬佩的金福江老师。从毕业设计的选题、论文的文献的采集、框架的设计、结构的布局到最终的论文定稿从内容到格式从标题到标点他都呕心沥血。没有金福江老师的细心提点、认真指导就没有我论文和毕业设计的顺利完成。 感谢信息学院自动化系的各位同学和研究生学长能和他们交流是我思路的另一个来源。最后一定要感谢我的家人还有一只支持我、鼓励我的朋友们,他们使我所做的一切更有意义,也正是因为他们给了我追求进步的力量和信念。时间的仓促及受自身专业水平的制约整篇论文肯定存在尚未发现的不足。恳请阅读此篇论文的老师、同学多予指正不胜感激。

附录一代码及解释

Option Explicit

21

华侨大学毕业设计(论文)

Dim RcrcH As Byte 'CRC校验高位 Dim RcrcL As Byte 'CRC校验低位 Dim jieshou() As Byte '接收缓存数组 Dim db As Integer '读步骤判断原cc

Dim txsb1 As Integer '通讯失败次数1原tsdk1 Dim zdds As Integer '发送步骤判断

Dim sdH As Byte '设置速度高8位 Dim sdl As Byte '设置速度低8位 Dim wyH As Byte '设置位移高8位 Dim wyL As Byte '设置位移低8位 Dim wyH1 As Byte Dim wyL1 As Byte

Private Sub Command6_Click() '转动速度设置 On Error Resume Next Text3.Enabled = True

sdH = \高八位 sdl = \低八位 zdds = 4 Call zdd

End Sub

Private Sub Form_Load()

'***************************设置文本显示颜色******************************* Dim a As Integer

Text1.ForeColor = RGB(255, 0, 0) '通讯超时字体颜色 Text2.ForeColor = RGB(255, 0, 0) '设定频率字体颜色 Text3.ForeColor = RGB(255, 0, 0) '给定频率字体颜色 Text4.ForeColor = RGB(255, 0, 0) '输出频率字体颜色

'**********************************************************

For a = 1 To 16

Combo1.AddItem \初始化端口号设置参数 Next a

Combo1.ListIndex = 0

'***************************设置可选择波特率******************************* Combo2.AddItem \Combo2.AddItem \Combo2.AddItem \Combo2.ListIndex = 1

'***************************设置通讯校验方式*******************************

22

直线扫描架控制系统设计

Combo3.AddItem \Combo3.AddItem \Combo3.AddItem \Combo3.ListIndex = 0

'***************************设置通讯数据位******************************* Combo4.AddItem \Combo4.AddItem \Combo4.ListIndex = 1

'***************************设置通讯停止位******************************* Combo5.AddItem \Combo5.AddItem \Combo5.ListIndex = 1

Text1.Text = 100 '默认通讯超时时间为100ms Timer2.Enabled = False Timer4.Enabled = False Timer6.Enabled = False Timer7.Enabled = False

End Sub

Private Sub Command4_Click()

Timer2.Interval = Val(Text1.Text) '通讯超时时间设置 Call COMCHONGZHI '端口设置 End Sub

Private Sub Text1_Click() '通讯超时时间输入 Load Form2 Form2.Show End Sub

Private Sub COMCHONGZHI() '通讯端口设置 On Error Resume Next

If MSComm1.PortOpen = True Then MSComm1.PortOpen = False

MSComm1.CommPort = Mid(Combo1.Text, 4, 2) '截取Combo1.Text中的字符串,从第四位开始截两位?

MSComm1.Settings = Combo2.Text & Combo3.Text & Combo4.Text & Combo5.Text MSComm1.PortOpen = True If Err.Number <> 0 Then Load Form3 Form3.Show

Form3.Label1.Caption = \错误!通讯端口初始化失败! \Exit Sub Else

Load Form3 Form3.Show

23

华侨大学毕业设计(论文)

Form3.Label1.Caption = \ 通讯端口打开成功!\Call du End If End Sub

Private Sub Command1_Click() '转动 zdds = 0 Call zdd End Sub

Private Sub Command2_Click() '停止 zdds = 1 Call zdd End Sub

Private Sub Command3_Click() '启动 zdds = 2 Call zdd End Sub

Private Sub zdd() '中断写取程序 Timer2.Enabled = False Timer4.Enabled = False Timer6.Enabled = True txsb1 = 0

End Sub

Private Sub Command5_Click() '位移距离设置 On Error Resume Next

wyH = \低16位高八位

wyL = \低16位低八位

wyH1 = \256) '高16位高八位

wyL1 = \高16位低八位

Print Hex(Val(Text2.Text)) Print wyH Print wyL Print wyH1 Print wyL1 zdds = 3 Call zdd

24

直线扫描架控制系统设计

End Sub

Private Sub Timer6_Timer()

MSComm1.InBufferCount = 0 '清空缓存区 MSComm1.OutBufferCount = 0 Select Case zdds Case 0

Call zidongxie(&H1, &H5, &HE, &H0, &H1) '设置P5-07为1 Case 1

Call zidongxie(&H1, &H2, &H22, &H0, &H21) '停止设置P2-17为21 Case 2

Call zidongxie(&H1, &H2, &H22, &H1, &H21) '启动设置P2-17为121 Case 3

Call maichongxie(&H1, &H6, &H6, wyH, wyL, wyH1, wyL1) '设置脉冲数 Case 4

Call zidongxie(&H1, &H5, &H78, sdH, sdl) '设置速度 Case 5

Call zidongxie(&H1, &H1, &H2, &H1, &H1) '设定反传 Case 6

Call zidongxie(&H1, &H1, &H2, &H0, &H1) '设定正转 End Select

Timer6.Enabled = False Timer7.Enabled = True End Sub

Private Sub Timer7_Timer() '帧后静止 Timer7.Enabled = False Call du End Sub

Private Sub zidongxie(zhanhao1 As Byte, dizhiH1 As Byte, dizhiL1 As Byte, shuzhiH1 As Byte, shuzhiL1 As Byte) '写操作子程序

On Error Resume Next Dim e As Integer Dim zdfs() As Byte ReDim zdfs(5)

zdfs(0) = zhanhao1 zdfs(1) = &H6 zdfs(2) = dizhiH1 zdfs(3) = dizhiL1 zdfs(4) = shuzhiH1 zdfs(5) = shuzhiL1 Call CRC(zdfs, 5)

ReDim Preserve zdfs(7) zdfs(6) = RcrcL

25

华侨大学毕业设计(论文)

zdfs(7) = RcrcH RcrcH = 0 RcrcL = 0

MSComm1.Output = zdfs() End Sub

Private Sub maichongxie(zhanhao1 As Byte, dizhiH1 As Byte, dizhiL1 As Byte, shuzhiH1 As Byte, shuzhiL1 As Byte, shuzhiH12 As Byte, shuzhiL12 As Byte) '写操作子程序

On Error Resume Next Dim e As Integer Dim zdfs() As Byte ReDim zdfs(10) zdfs(0) = zhanhao1 zdfs(1) = &H10 zdfs(2) = dizhiH1 zdfs(3) = dizhiL1 zdfs(4) = &H0 zdfs(5) = &H2 zdfs(6) = &H4 zdfs(7) = shuzhiH1 zdfs(8) = shuzhiL1 zdfs(9) = shuzhiH12 zdfs(10) = shuzhiL12

Call CRC(zdfs, 10)

ReDim Preserve zdfs(12) zdfs(11) = RcrcL zdfs(12) = RcrcH RcrcH = 0 RcrcL = 0

MSComm1.Output = zdfs() End Sub

Private Sub duoweixie(zhanhao1 As Byte, dizhiH1 As Byte, dizhiL1 As Byte, shumu1H As Byte, shumu1L As Byte, shumu2 As Byte, shuzhiH1 As Byte, shuzhiL1 As Byte, shuzhiH2 As Byte, shuzhiL2 As Byte) '多位操作子程序

On Error Resume Next Dim e As Integer Dim zdfs() As Byte ReDim zdfs(10) zdfs(0) = zhanhao1 zdfs(1) = &H10 zdfs(2) = dizhiH1 zdfs(3) = dizhiL1

26

直线扫描架控制系统设计

zdfs(4) = shumu1H zdfs(5) = shumu1L zdfs(6) = shumu2 zdfs(7) = shuzhiH1 zdfs(8) = shuzhiL1 zdfs(9) = shuzhiH2 zdfs(10) = shuzhiL2 Call CRC(zdfs, 10)

ReDim Preserve zdfs(12) zdfs(11) = RcrcL zdfs(12) = RcrcH RcrcH = 0 RcrcL = 0

MSComm1.Output = zdfs() End Sub

Private Sub zidongdu(zhanhao As Byte, dizhiH As Byte, dizhiL As Byte, geshuH As Byte, geshuL As Byte) '读操作子程序

On Error Resume Next Dim e As Integer Dim zdfs() As Byte ReDim zdfs(5) zdfs(0) = zhanhao zdfs(1) = &H3 zdfs(2) = dizhiH zdfs(3) = dizhiL zdfs(4) = geshuH zdfs(5) = geshuL Call CRC(zdfs, 5)

ReDim Preserve zdfs(7) zdfs(6) = RcrcL zdfs(7) = RcrcH RcrcH = 0 RcrcL = 0

MSComm1.Output = zdfs() End Sub

Private Sub CRC(fssz() As Byte, geshu As Integer) 'CRC校验子程序 On Error Resume Next

Dim crcH As Byte, crcL As Byte Dim ScrcH As Byte, ScrcL As Byte Dim crcAH As Byte, crcAL As Byte Dim a As Integer Dim b As Integer

27

华侨大学毕业设计(论文)

crcAH = &HA0 crcAL = &H1

Dim gs1 As Integer Dim gs2 As Integer

crcH = &HFF '1.设置CRC寄存器,并给其赋值FFFF(hex)。 crcL = &HFF

For gs1 = 0 To geshu

crcL = fssz(gs1) Xor crcL '2.将数据的第一个8-bit字符与16位CRC寄存器的低8位进行异或,并把结果存入CRC寄存器。

For gs2 = 0 To 7 '5.重复第3与第4步直到8次移位全部完成。此时一个8-bit数据处理完毕。

ScrcH = crcH ScrcL = crcL crcH = crcH \\ 2 '右移相除左移相乘 crcL = crcL \\ 2

If ((ScrcH And &H1) = &H1) Then '注意((ScrcH And &H1) = &H1)与ScrcH And &H1 = &H1区别

crcL = crcL Or &H80 End If

If ((ScrcL And &H1) = &H1) Then '4.如果LSB为0,重复第三步;若LSB为1,CRC寄存器与多项式码相异或。多项式码&HA001

crcL = crcL Xor crcAL crcH = crcH Xor crcAH End If Next gs2 Next gs1 RcrcH = crcH RcrcL = crcL End Sub Private Sub du() '读位操作1

MSComm1.InBufferCount = 0 '清空缓存区 MSComm1.OutBufferCount = 0 MSComm1.RThreshold = 15 '15

Call zidongdu(&H1, &H0, &H4, &H0, &H1) '站号+地址高+地址低+个数高+个数低,读P0-02

Timer2.Enabled = True '读超时

End Sub

Private Sub Timer2_Timer() '读超时1

28

直线扫描架控制系统设计

Timer2.Enabled = False Call du

End Sub

Private Sub mscomm1_oncomm() On Error Resume Next Dim cs As Integer

Select Case MSComm1.CommEvent Case comEvReceive '

ReDim jieshou(6)

jieshou() = MSComm1.Input Call CRC(jieshou(), 4)

If (RcrcL = jieshou(5)) And (RcrcH = jieshou(6)) And (jieshou(2) = 0) Then Timer2.Enabled = False txsb1 = 0

If Len(Hex(jieshou(4))) < 2 Then

Text4.Text = Val(\ Else

Text4.Text = Val(\ End If

Timer4.Enabled = True '读连续间隔计时2 Else

Text4.Text = \ End If End Select

End Sub

Private Sub Timer4_Timer() '连续读1 Call du

Timer4.Enabled = False End Sub

29

华侨大学毕业设计(论文)

30

本文来源:https://www.bwwdw.com/article/l2nw.html

Top