基于VB的伺服拧紧机数据采集设计
来源:爱玩科技网
智慧工厂I SMART FACTORY 基于VB的伺服拧紧机数据采集设计 Data Acquisition Design for Servo Tightener Based on VB ・亚太机电股份有限公司 沈铁军Shen Tiejun 杭州萧山技师学院 金凌芳Jin Linfang 顾磊Gu Lei ・摘要:现代工业应用BgPC—Based是一种使用相当广泛的通信方式,通用的上位机组态软件,界面 友好、开发简洁等等优点,目前在PC监控领域已经得到了广泛的应用,其中Visual Basic在开发可视 化环境下的监控系统时具有其独特的优势以及可视化得界面,尤其是在串行通信方面,为人们读取某 些仪器的数据提供了方便,其配线数少,不需要增加投资,灵活性好,容易实现,特别适合于小规模 的控制系统。本文讲述了一种关于VB与DDK ̄JE拧紧机串行通信,并使用DAO模型访问数据,最终 以Excel输出。 关键词:Visual Basic串行通信伺服拧紧机 Abstract:PC—Based used in modern industry is a kind of communication method widely applied It's a universal configuration SOflware for master computer,and is widely applied in PC monitoring with advantages of friendly interface,easy development,etc.Visual Basic has its unique advantages and visualization interface when used in the development of monitoring system in visualization environment,especially in serial communication,where it supplies convenience for the reading of data frOm some instruments.It has feW linking wires. and does not need to increase investment,therefore it's flexible and easy to implement.It。S quite suitable for small—scale control systems This paper introduces the communication between VB and servoTightener,access data using the DAOmodel,with Excel output. Keywords:Visual Basic Serial communication ServoTightener 【中图分类号】TN820.3【文献标识码】B文章编号1 606—51 23(201 6)1 2-0093-04 1 引言 随着技术的发展,目前很多产品部件的螺栓拧紧联接 采用简易的气动控制,或是手动的力矩扳手来拧紧螺栓,操 作人员的劳动强度大,其次拧紧的力矩准确度如何由当时的 检验人员的主观感觉判断,数据没有可查性。当前很多主机 单位对螺栓的力矩有明确的范围要求,而AC伺服拧紧机构 实现高精度模块化转矩信号增幅、电传功能以及TOOL.ID功 参数:波特率9600,无校验方式,8位数据位,2位停止, 每次拧紧后均会将数据结果发送,其结果输出数据长度78 字节,见图1所示。 l 2 3 1 5 6 7 B g 10 11 l2 l3 ll l5 I6 i O O 0 ㈨。。 l I 々 0 I l意 l 2Ⅲ1 l20}I I:lII{ I 17 。。 2 l8 19 20 2l 22 2'3 24 25 26 27 28 29 30 3l 32 譬 ㈨ l 3 4 I3ll1 i j 2 3 ㈨ I 4 I3lI。 要 麓 l 2 . 3 ∞ 鲋 35 36 37 :19 10 4l I2 1_{4,1 45 .16 -l7 I.8 能,进行螺纹紧固,其紧固结果的数据可通过RS一232接口读 4 脆20HI I{_30lI。 0 l I追 2 3 l 57 l。。 蔷萼 } … I 0 I 2 3 出,即可满足主机单位力矩要求以及数据可查性。本文提出 了一种由DDK伺服拧紧系统来实现螺栓的拧紧,采用VB上 {9 50 5l 船 53 S4 55 56 58 59 60 6l 62 63 0 6 龋 . 66 1 ∞ 2 6R 3 69 70 7I 72 l 73 0 74 .75 0 76 77 78 位机软件编写控制程序,采集拧紧数据,使数据可以追溯。 I 粥 }Ij 判定 4R] 201Il 20t{l 2供{ OCDRI { OAI 1o :,WI1^“ Ef 2伺服拧紧机通信协议 伺服拧紧机采用DDK——sAN—DP2 ̄E动装置,其通信 图1 拧紧机数据发送格式 X 581{R/ ̄3E('T __D l SMART FACTORY I智慧工厂 、 0 。。。0:董 表2界面控件设计 3.1通信方式选择 利用Visual Basic6.0开发通信程序主要的方法有两种, I四Frame Listb。x ■国■E皿Framel 1/ 2■■固■■ 存放控件 通信参数 是利用VB本身提供的控件(CONTRALS),另一种方法是 / 波特率 串口 PLC站号 9600,N,8,2 串口选择/站号选择 显示提示 显示提示 显示提示 通信波特率 利用WINDOWS API应用程序接口,wINDOWS API主要提 供了三个动态连接库KERNEL.EXE、USER.EXE、GDI.EXE Label Label Label Text LabelI Label2 Label3 Textl 供开发人员调用,其中KERNEL.EXE主要包括一些底层操 作函数,完成一些资源管理、任务、内存等操作:USER. EXE包含了一些与WINDOWS管理有关的函数,如通讯、 菜单、消息、光标、插入符、计时器以及绝大多数非显示 函数;GD1.EXE图形设备接口库,主要内容为与设备输出 有关的函数。在实践中,用VB控件实现通讯的方法比调用 SDK的API动态连接库的方法更加方便、快捷,而用较少的 代码可以实现相同的功能。 通信 睫特覃: 0∞lI,rL ! 3.2 串口MSComm控件特性 在Windows环境下,操作系统完全接管了各种硬件资 图2通信界面 源,不允许用户直接控制串行口的中断管理。以往程序员只 能通过数目众多的API函数来控制串口。在一些编程软件中  ̄TEIVB6.0下提供了一个ActiveX控件Microsoft Communication Control 6.0,简称MSComm控件。MSComm控件有许多属 l ̄(Property),其中一些重要的属性见表l所示。 表1 MSComm控件属性 -曩 0 4.1程序设计 根据上述的界面设置,在Listboxl控件中设置1O个Com 提供选择,在Listbox2控件中设置1 6个PLC站号提供选择, 具体程序段设计如下所示。 Private Sub Form Load() Dim iAs Integer Fori=l TO l0 __ 祭≯ lCommPort属性设置并返回通讯端口号。 在MSComm控件设置CommEvent属性为 comEvReceive并产生OnComm之前,设置并返回的 RThreshold属性 要接收的字符数当接收字符后,若Rthreshold属性 设置为0(缺省值)则不产生OnComm事件。 MSComm控件设置CommEvent属性为comEvSend并 SThreshold属性 产生OnComm事件之前,设置并返回传输缓冲区中 允许的最小字符数。 comEvSend 1:发送事件。 comEvReceive 2:接收事件。 comEvCTS 3:clear—tO—send线变化。 OnComm常数 comEvDSR 4:data—set ready线变化。 comEvCD 5:carrier detect线变化。 comEvRing 6:振铃检测。 comEvEOF 7:文件结束。 cboPort.AddItem”Com”&Trim¥(Str¥(i)1 cboPort.Listlndex=0 Nexti Fori=0To 15 cboStation.Addltem…0’+Trim¥(Hex(i)1 cboStation.ListIndex=0 Nexti Call CommSet End Sub comlnputModeText0:通过Input属性以文本方式取 InputMode常数 回数据。 comlnputModeBinary 1:通过Input属性以二进制方 式检取回数据。 上述站号在此设计中只用0号站,其余站号是为了扩展 应用,Call CommSet语句中的CommSet子程序为串口Coin的 一Settin 属性 蔟誊翟鎏 甏。 3.3 VB串口初始化设计 、 据位、停止位参 些设置,程序如下所示: Private Sub CommSet() On ErrorGoTo errl If MSComm.PortOpen=True Then InputLen属性 设置并返回Input属性从接收缓冲区读取的字符数。 在本次设计中,系统应用程序串口初始化:由波特率 设置,串口选择,PLC, ̄i号(拧紧机其它过程控制采用PLC) 组成,并可以根据不同的场合进行设置。 (1)界面设计:采用一个Frame控件、二个Listbox控 MSComm.PortOpen=False EndIf IfNot MSComm.PortOpen Then MSComm.CommPort=cboPort.I,istlndex+1 件、三个Label和一个Text控件,见表2和图2所示。 智慧工厂I SMART FACTORY CommEvent—comEvEOF(7)文件结束 Select Case MSComm.ComrnEvent Case comEvReceive MSComm.PortOpen=True Cmbufcount=MSComm.1nBufferCount Cmbuffer=MSComm.Input CmstrReceive=Cmbuffer EndIf Exit Sub CITl: if Mid(CmstrReceive,27,1)=”4C”Or Mid(Cmstr Receive,34,I)=”4C”Then Text2=”999” Text3=”999” Else MsgBoxErr.Description End Sub 4.2数据接收程序设计 (1)界面设计:采用二个Label和二个Text控件,见表3 和图3所示。 表3界面控件设计 Ebit=CStr(Hex2Bin(Mid(CmstrReceive,23,4))) Ebit 1=CStr(Hex2Bin(Mid(CmstrReceive,29,4))) ■ Label Labe1 Text Text2=Val(Ebit) Label4 Label5 Text2 拧紧力矩 拧紧角度 , 显示提示 显示提示 数据显示 Text3=Val(Ebit1) End Select Yext Yext3 数据显示 End Sub 4.3数据存储程序设计 拧紧力矩:I12.5 牛米 在上述数据接收完成后,使用数据控件将拧紧结果存 人数据库中,以便后续数据追溯。使用DAO模型访问数 拧紧角度:匝 ■一度 图3数据接收界面 据,约束绑定控件,在窗体上放置一个MSFlexGrid控件, 在程序设计中: (2)在数据接收程序设计中,需对拧紧结果的判断,若 拧紧结果合格,则读出数据,反之则直接写入999,具体程 序段设计如下所示: Private Sub MSComm OnCommO Dim CmbufferAs Variant Dim CmstrReceiveAs String (1)在窗体的加载中增加数据库的链接: AdoConnectstring=”P rovider MiC rosOft.JCt. OLEDB.4.0;Data Source=”&App.Path&”\1 03.mdb;Persist Security Info False” Adodc 1.ConnectionString=AdoConnectstring (2)再将串151读出的数据写入MsFlexGrid控件中,使用 Do…while循环语句将数据写入,具体见下程序段: Dim CmiAs Integer Dim CmbufcountAs Integer Dim DisPlayStrAs String Do While Not rs.EOF MSFlexGrid 1.Row=i Dim TempStrXAs String Dim EbitAs String Dim EbitlAs Sting rMSComm。InputMode 0 MSFlexGrid 1.Co1=0 MSFlexGrid1.Text=i Forj=l to 3 MSFlexGrid 1.Col-j CommEvent—comEvSend(1)发送事件 MsFlexGrid 1.Text=rsO—l 1 Nextj rs.MoveNext CommEvent—comEvReceive(2)接收事件 CommEvent—comEvCTS(3)Clr—To—Send线变化 CommEvent—comEvDSR(4)Data—Set—Ready线变化 CommEvent—comEvCD(5)Carrier Detect线变化 CommEvent—comEvRing(6)检测 ̄fing I-I+l Loop l I SMART FACTORY I智慧工厂 4.4数据Excel导出程序设计 在本次设计中数据的查询采用VB惯用sQL查询方式,再 将数据库Access文件数据导AExcel电子表格中。在窗体上 放置一个Command控件,对其单击实现表格转换,具体程 序段设计如下所示: Pfiv ̄e Sub Commandlclick() _在通过OPC软件与上位机进行数据交换,则可以双向进行 选型,为以后整线数据追溯的扩展,采用以太网通信,以 OPC为桥梁直接使用PC Based PLC方式。 参考文献 [1]Salah Abdallah and Salem Nijmeh,Design,Two axes sun tracking system withPLC control[J]JordJ.App]Sci.University,2002 Set newxls=CreateOoject(”Exce1.Application”、 newxls.Visible=True 【2]J.Yoo,s.Cha,C.H Kim and D.Y.Son,Design,Synthesis of FBD— based PLC design from NuSCR ̄rmal speciifcation[J].South Korea:KAIST and KAERI,2004. Set newbook=newxls.Workbook.Add Set newsheet=newbook.Worksheets(1) ifAdodc1.Recordset.EOF=False Then For i=0 to Adodc1.Recordset.RecordCount.1 [3】范逸之,陈立元.VB6 0与KS一232串行通信控制【M】.清华大学出 版社社,2002. 【4】张钧良.Visual Basic6.0程序设计教程『M】南京:第一版.东南大学 出皈{±,2003. [5]李建华,郭明.RS232 ̄N调制解调器高级通讯编程[M】北京:人民 Forj=0 to Adodc1.Recordset.Fields.Count-1 DataGrid1.Row=i 邮电出版社,2001. DataGrid1.Col=j newsheet.cells(i+1j+1)=DataGrid1.Text [6]李小明,李东晓l基于VisualC++6.0实现PC与PLC的通讯[1l_电测 与仪表,2001. [7]通海,周到利用MSComm控件实现PC机与单片机串口通讯的 研究 应用科技,2004. [8]Ha ̄ew M.Deute1.Visual Basic 6.0 How to Program[M]电子工业 Nextj Nexti Endif End Sub 出版社,2003. 『9汪晓光 晓瑛.91可编程控制器的原理与应用『M].北京:机械工业 5结束语 经过现场实践,本次设计达到了预期的效果。通过这 出版社,2003. 【1 0J邹宗峰,裴仁清.用VB6.O实现OMRON系 ̄IJPLC与微机的通信 机电一体化,2003 l】1】徐德 同景.可编程序控制器应用技术fM 芹南:山东科学技术 出版社,2000. [12】范逸之.xrLsual Basic与RS232串行通讯技术[MI.北京:中圈青年 出版,2004. 次设计,上位机采用串口通信的方式采集数据,使用DAO 模型访问数据,约束绑定控件,数据查询通过Excel输出, 在单个工作台的控制应用中,其设计简单,操作方便, 性价比良好,然而此系统也存在很多不足之处:本文提 出的数据采集只是将拧紧数据传送至工控机,而产品的选 型不能由上位机完成,若拧紧机构的数据先传送至PLC, (上接89页) 声音内容判断是否需要求助或报警。此外,系统可以通过 声音辨识区分主人和陌生人,系统可以一直工作,不用手 重庆邮电大学学报自然科学版,2004,16(4):134-135 [3】高立艾,李丽华,刘伟娜,等.基于SPCE061A单片机的温室温湿度 动打开和关闭系统。 控制系统的设计卟农机化研究,2008(7):119-121. [4】周小四,杨杰,朱一坦.用于监控智能报警系统的图像识别技术 参考文献 …赵巧妮基于单片机控制的智能家庭防盗报警系统的设计U].自 动化技术与应用,2010,29(8):100—102. [2]李健SPCE061A单片机及其在语音识别与合成系统中的应用 u】.上海交通大学学报,2002,36(4):498—498 [5】谢勤岚,杨康.一种基于电话网络的家居智能报警系统 电子设 计工程,2009,17(4):70—72.