(机械电子工程专业论文)基于网络的机电一体化设备控制及管理软件开发研究.pdf_第1页
(机械电子工程专业论文)基于网络的机电一体化设备控制及管理软件开发研究.pdf_第2页
(机械电子工程专业论文)基于网络的机电一体化设备控制及管理软件开发研究.pdf_第3页
(机械电子工程专业论文)基于网络的机电一体化设备控制及管理软件开发研究.pdf_第4页
(机械电子工程专业论文)基于网络的机电一体化设备控制及管理软件开发研究.pdf_第5页
已阅读5页,还剩77页未读 继续免费阅读

(机械电子工程专业论文)基于网络的机电一体化设备控制及管理软件开发研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 本文论述了基于网络的机电一体化设备驱动与管理软件的开发方法。 开发出y p 3 6 0 数控标牌打印机在w i n d o w 环境下的驱动、串行重量数据采 集、数据库及企业局域网络通讯等软件。 在驱动程序的设计中,采用了调用动态链接库文件( d l l ) 的方法, 通过调用a c l 0 3 2 d l l 文件访问a c 4 1 6 1 光电隔离板,进而控制数控标牌 打印机的各轴电机,同时在步进电机的升降速控制中,采用了升速等公差 递减延时及降速等公差递增延时的升降速算法,而且升速与降速阶段采用 不同的延时长度,这一种优化策略近似指数曲线的升降速算法,更接近步 进电机的实际运动规律。在此基础上进一步论述了实现两轴联动以及以一 ( 微机) 拖二( 标牌打印机) 的方法。少 根据对国内许多钢铁企业称重仪接收与发送数据的特点的总结,得出 了三种不同的串行数据模型:实时数据模型、过程数据模型和连续不变数 据模型,着重阐述了利用v b 提供的m s c o m m 控件采集这三种数据类型 的方法,并且提出了结合t i m e r 控件进行串行数据采集的方法,取得了非 常好的效果。 针对钢铁企业对标牌打印数据的要求,论述了数据库的建立、存储、 查询、报表制作以及数据库的管理维护等几个方面的设计过程,在数据库 的建立中,介绍了动态建立数据库、表、字段的方法:在数据的存储中, 采用了d a 0 ( 数据对象存取对象) 与r o o ( 远程数据对象) 相结合的方法,用 d a 0 进行本地数据库的开发,方便快捷,而r d 0 则是在网络数据库上作了 优化,可以较好的满足局域网络数据库存储、查询等的要求:在数据库查 询中则总结了关于查询优化方面的经验;而在打印报表的设计中,在介绍 基本设计过程的基础上,给出了动态生成打印报表的方法。 ( 在网络开发中,提出了两利,不同的局域网络数据库的方案,进行了比 较,采用了客户端分散管理,集中更新的方案,优化了速度,提高了数据 第l 页 山东大学硕士学位论文 安全性,并详细阐述了客户机数据库与服务器数据库之间进行数据库交互 的方法;最后根据生产现场的情况提出了用数据库进行网络通信的方法。 上述控制及管理软件成功地应用于y p 3 - 6 0 数控标牌打印机中,并在 安阳钢铁公司得到生产验证。 关键词:机电一体化设备;标牌打机;: 驱动程序: e pv bw i n d o w s 步进电机;数据库;局域网络。 第1 i 页 a b s t r a c t t h i s p a p e r d e s c r i b e st h em e a n s t o d e v e l o p t h em e c h a t r o n i c e q u i p m e n tt h r o u g ht h ed e s c r i b i n go ft h ed e s i g np r o c e s so fy p 3 6 0 c o m p u t e rn u m e r i c a lc o n t r o ll a b e ls t a m p j n gp r i n t e rw h i c hi n c l u d i n g w i n d o w sd r i v e r sd e s i g n 、t h ec o l l e c t i o no fs e r i a ld a t a 、d a t a b a s e d e s i g na n d l o c a la r e an e t w o r k ( l a n ) d e s i g n i nt h ed r i v e rd e s i g n ,t h ed y n a m i cl i n kl i b r a r yf i1 e a c l 0 3 2 d l l i sr e c a l l e dt ov i s i tt h ea c 4 1 6 1c a r dt h r o u g hw h i c ht h es t e pm o t o r s o ft h el a b e ls t a m p i n gp r i n t e ri sc o n t r o l l e d i nt h ec o n t r o lo fs t e p m o t o rr a t e ,ak i n do fa r i t h m e t i ct h a t t i m e d e l a yi s d e c r e a s e db y a ne q u a li n t e r v a lw h e na c c e l e r a t i n ga n dt i m e d e l a yi si n c r e a s e db y ae q u a li n t e r v a lw h e nd e c e l e r a t i n g t h i sa r i t h m e t i ci sao p t i m i z e d m e t h o dw h i c hi sa p p r o x i m a t e l yc o n f o r m e dt oa ne x p o n e n t i a lc u r v e i no r d e rt om a k et h i sa r i t h m e t i ca p p r o a c ht ot h er e a l c o n d i t i o n , t h ed e l a yt i m ei n t e r v a lw h e nd e c e l e r a t i n gi sn o ts a m ea st h a tw h e n a c c e l e r a t i n g t h e n ,t h em e t h o d st or e a l i z et h e1 i n k a g eo ft w os h a f t s a n dd r i v et w ol a b e ls t a m p i n g p r i n t e r sb yo n ec o m p u t e ra r ep r e s e n t e d t h r e es e r i a ld a t am o d e l sw h i c hi n c l u d er e a l t i m ed a t am o d e l 、 p r o c e s s i n gd a t am o d e la n dc o n t i n u o u s l yc h a n g e l e s sd a t am o d e la r e p r o p o s e d o nt h eb a s eo ft h e p r o p e r t i e s o fd i f f e r e n t w e i g h t i n g a p p a r a t u so fan u m b e ro fs t e e lf a c t o r i e s ,t h e nt h em e a n st oc o ll e c t t h e s et y p e so fs e r i a ld a t ab yt h em s c o m mc o n t r o li nv ba r eg i v e n i nd e t a i l a n dt h em e t h o du s i n gt h et i m e rc o n t r o lt oh e l pc o l l e c t s e r i a ld a t ai si n t r o d u c e d t h e d e v e l o p m e n to ft h ed a t a b a s eb a s e do nt h ed a t ac o m i n gf r o m t h es t a m p i n gp r o c e s si s d e s c r i b e d ,w h i c hi n c l u d et h eb u i l d i n go f d a t a b a s e 、t h es t o r a g eo fd a t a 、t h e q u e r yo fd a t a 、t h ed e s i g no fd a t a 第1 i i 页 r e d o r ta n dt h em a i n t e n a n c eo fd a t a b a s e t h em e a n st os e tu pd y n a m i c d a t a b a s e 、t a b l e sa n df i e l d s a r ei n t r o d u c e di nt h eb u i l d i n go f d a t a b a s e :i nt h es t o r a g ed e s i g n ,d a oa n dr d oa r eu s e da t t h es a m e t i m e d a oi se f f i c i e n tt oa c c o m p l i s ht h ei o c a ld a t a b a s ed e s i g n ,a n d r d oi sa n o p t i m i z e d m e t h o dt or e a l i z et h el o c a la r e an e t w o r k d a t a b a s ed e s i g n :s o m ep i e c e so fe x p e r ie n c ei sg i y e no nh o w t o o p t i m i z et h eq u e r ym e t h o d si nt h eq u e r yp a r t a n dt h ew a yt oc r e a t e d a t ad y n a m i cr e p o r ti sp r o p o s e dw h e nt h ed e s i g no fd a t ar e p o r ti s d is c u s s e d i nt h en e t w o r kd e v e l o p m e n t ,t w os c h e m e so n1 0 c a la r e an e t w o r k d a t a b a s ea r e p r o p o s e d ,a n d t h eo n ei nw h i c hd a t aa r e m a n a g e d d is p e r s e d l ya n dr e f r e s h e da to n et i m eb yc l i e n t ,t h es p e e da n dt h e s a f e t yo fd a t ac o m m u n i c a t i o n a r ee n h a n c e d a n dt h e nt h e w a yi nw h i c h t h et r a n s f e rb e t w e e nc l l e n td a t a b a s ea n ds e v e rd a t a b a s ei sp r o p o s e d f i n a l l y ,t h em e t h o dt oc o m m u n i c a t ew i t hd a t a b a s ei nt h el o c a la r e a n e t w o r ki s p u tf o r w a r d k e yw o r d :m e c h a t r o n i c se q u i p m e n t ,l a b e ls t a m p i n gp r i n t e r :v b : w i n d o w sd r i v e r :s t e pm o t o r :d a t a b a s e :l o c a la r e an e t w o r k 第1 v 页 山东大学硕士学位论文 1 绪论 1 1 引言 “机电一体化”又称“机械电子学( m e c h a t r o n i c s ) ”。它是在机构的主 功能、动力功能、信息处理功能和控制功能上引进了电子技术,并将机械 装黉和电子设备以及软件等有机的结合起来构成的系统的总称【l 】。机电一 体化技术适应了现代科学技术学科交叉结合的形势的需求,为一直在寻求 出路的机械行业找到了一个突破口。而由机电一体化技术产生的机电一体 化设备则以其独特的优势,正在不断的发展壮大,为各个行业所瞩目。机 电一体化设备的开发与发展状况已成为一个国家基础行业发展水平的重 要标志之一。 计算机尤其是微型计算机的发展为机电一体化设备的开发与应用提 供了广阔的空间,计算机功能的日益强大,不仅使设备在快速性、准确性 和稳定性等各个方面有长足的发展,而且使设备功能日益强大。尤其是近 几年来随着数据库技术及网络技术的发展,使得机电一体化设备的功能得 到进一步的扩展,不再局限于控制设备本身,而延伸到了企业管理等更为 广阔的领域,更好的适应了企业发展的要求,也为机电一体化设备的进一 步的发展与应用创造了条件。 本文以我校开发成功的数控标牌打印机为例,在w i n d o w s 环境下,通 过对驱动软件、数据库管理、网络通信以及控制优化等方面的研究,来论 述基于网络的机电一体化设备控制与管理软件的开发过程。 1 2 现有标牌打印设备的比较 标牌打印机要打印到标牌上的数据,如班次、钢号、生产日期、炉号、 第l 页 接反映了企业的生产情况,企业从其中获得生产数据,生成数据报表,并 根据这些数据制定相应的管理计划,因此可以说标牌打印是钢铁企业非常 关键的环节,这就对该环节的主要设备一标牌打印机提出了严格的要求, 因此下面我们先来看一下对标牌打印机的一些基本要求。 1 2 1 标牌的打印设备的基本要求 1 准确性。这是对标牌打印机的基本要求。标牌上的数据标示了诸如 钢材的钢号、规格、重量等等重要参数,首先要保证打牌时每个字符要正 确,不能出现错码现象。 2 快速性。现代企业都重视生产效率,每个钢铁企业都有自己的生产 节奏,它要求生产的每个环节都要跟上这一节奏。标牌打印也是整个生产 中的一个环节,标牌打印设备必须有足够快的速度,不能出现滞后现象。 3 操作简单,自动化程度高。这不仅是处于提高效率,使工人易于接 受等方面的考虑。更重要的是操作简单,自动化程度高可尽量减少人为参 入,减少出错的几率。 4 稳定,可靠性高,故障率低。这是保证准确性与提高工作效率的关 键。 5 维护方便。整个标牌打印系统无论从硬件上还是从软件上都应该便 于维护。 1 2 2 国内外几种标牌的打印设备比较 目前,国内各钢铁企业用到的标牌打印设备有以下几种:1 液压标牌 打印机( 江苏宜兴) 2 气动针式标牌打印机( 武汉佳n ) 3 数控标牌打印机 ( 德国因特思达、意大利丹尼利、山大瑞兹) 。江苏宜兴生产的液压标牌打 印机需要人工更换打印字模,易出错,效率低,基本处于淘汰行列;武汉 的气动针式标牌打印机则是靠多个针孔排列出所需字符,字迹不清、不美 第2 页 t 山东大学硕士学位论文 观、效率低,由于是靠气体的高频振动作为动力源,噪声大,一般在l o o d b 以上;德国和意大利的标牌机目前在国内有几家用户,大都是随生产线引 进的。现将主要指标比较如下: 生产厂家打印速度字符排版方次打工作噪声其它功 售价 ( 字符形成a牌数( d b )能( 万元) 分)方式量 德国 6 0 模压计算机双牌 7 5 通讯 18 2 0 意大利 1 2 0 1 4 0 模压计算机单牌 7 3 通讯 1 7 一1 8 江苏宜兴1 0 0 以下模压人工单牌 9 0 无 4 45 武汉佳明 6 0 - 9 0 针扎计算机单牌1 0 0 以上通讯 5 6 山大瑞兹1 5 0 以上模压计算机双牌 7 3 7 7 通讯、 6 5 7 5 网络、 数据库 表1 - 1 1 3y p 3 6 0 数控标牌打印机系统的现状 y p 3 数控标牌打印机系统是由山东大学( 原山东工业大学) 瑞兹机 电新技术开发公司研制开发的精密高科技产品,在国内同行业中处于领先 地位,属于生产急需设备,现在的生产销售已初具规模,产品己销售到首 钢、鞍钢、莱钢、济钢、贵钢等全国各地的大中小型钢厂,并以其高科技 含量和良好的性能受到广大用户的信赖与好评。 y p 3 6 0 ( 或y p 2 6 0 ) 数控标牌打印机系统应用程序的开发原来是在 d o s 环境下用c 语言完成的,无论是在用户界面上还是在功能上都受到了 极大的限制。首先在用户界面上由于d o s 编程的复杂性,很难编制出用户 界面友好的界面,而且由于全部用键盘操纵,操作起来比较麻烦。而大多 数的用户对计算机操作并不太熟悉,这必然要花大的精力对用户进行培 训。更重要的是此前的标牌打印应用程序中对数据库及网络的应用几乎没 有涉及到,就是涉及到往往也要借助其他应用软件来实现,这对采用单线 程工作机制的d o s 环境来说也是比较麻烦的事情。这对于将管理与效益放 第3 页 山东大学硕士学位论文 在极其重要的位置的现代企业来说,可以说是一个欠缺。 而这些在有着良好的图形用户界面的w i n d o w s 来说却是容易解决的。 利用w i n d o w s 中可视化的编程语言可以编制出界面简单友好的应用程序。 w i n d o w s 提供了功能强大的数据库与网络应用,对于基于客户机嘲艮务器 的数据库应用程序的开发比以前更加简单与快速。这可以很好的满足现代 企业在管理上的要求。 另外,由于驱动方法、控制方法和摩擦等方面的原因,步进电机在运 行过程中尤其是升降速过程中运动不平稳,容易出现振荡和失步现象, 很有必要对其驱动、控制尤其是升降速方法进行优化,以提高其平稳性。 1 4 主要开发工具的介绍 1 4 1v is u a ib a s i c6 0 的新特性1 m 埘1 高性能的本地代码编译 由于使用了v i s u a lc + + 6 0 的本地代码编译器,v i s u a lb a s i c6 0 的本 地代码编译能力大为增强。 集成可视化数据库开发工具 使用v i s u a lb a s i c6 0 可以获取o d b c 、o l ed b 和m i c r o s o f ta c t i v e x d a t ao b j e c t s ( a d o ) 所有数据源中的数据,v i s u a lb a s i c6 0 推广a d o 为一 个新的、功能强大的数据获取标准,使用v i s u a lb a s i c6 0 可以驱动任何 o l ed b 数据源,包括s q l 6 5 ,o r a c l e 7 3 3 + ,m i c r o s o f ta c c e s s ,o d b c 和 s n a 服务器。 数据自动绑定 使用v i s u a lb a s i c6 0 将一个控件绑定到一个数据源上是不需要任何代 码的。只需要在控件的属性窗口中设置两个属性就可以将控件绑定到任何 数据源上。 数据环境设计器 第4 页 山东大学硕士学位论文 通过数据环境设计器,可以用可视化方法创建可重复使用的分层数据 对象,它具有自动拖放( d r a g a n d d r o p ) 的功能,可以绑定到多个数据源 进行数据获取和处理。通过拖放可以非常快速地完成数据绑定表单和报表 的开发。 w e b c l a s s 设计器 使用v i s u a lb a s i c6 0 提供的w e bc l a s s 设计器,可以十分方便的创建 服务器端应用程序和控件来从任何平台的w e b 浏览器中获取数据。 动态h t m l ( d h t m l ) 页面设计器 在v i s u a lb a s i c6 0 中,通过使用文档对象模块和动态h t m l 设计界面 可以十分方便的开发多媒体界面的应用程序。 另外,v b 功能之所以很强大的一个原因就是它能够利用动态连接库 ( d l l ) 等技术来对其功能进行无限的扩展 3 7 】。d l l 是组成w i n d o w s 的 重要元素之一,它可以通过c 或c + + 语言编写,然后在v b 中进行简单的 调用即可。d l l 可以通过应用程序编程接1 3 ( a p p l i c a t i o np r o g r a m m i n g i n t e r f a c e ,a p i ) 进行调用。正如所知,w i n d o w s 包含了几百个d l l ,而基 于这些d l l 又有几千个函数和过程,这无疑使v b 的功能更加强大。而 且,在v b 中也可以调用一些第三方提供的d l l 文件,十分的方便,这 为进行驱动程序的编写提供了有利的条件。 v b 6 0 提供了功能强大的通讯控件,例如,串行通讯控件m s c o m m 。 使用m s c o m m 控件可以使d o s 环境下非常繁杂的串行通讯编程变得非常 的简单,程序设计者只要只要设置m s c o m m 控件的属性和监视m s c o m m 控件的事件即可完成串行通信编程。而且,对于通过串行口进行数据采集 的实时系统。它提供了稳定可靠的通信方法,结果表明v b 的串行通信具 有极好的性能n ”。 1 4 2v b 6 0 中数据库技术简介“6 1 v i s u a lb a s i c6 0 版本在继承以前版本的功能外,对高级数据库开发和 网络开发投入了极大的精力,使得数据库编程尤其是基于客户机,服务器 第5 页 山东大学硕士学位论文 数据库应用程序的开发比以前更加简单与快速。对于希望快速开发和使用 基于客户机朋艮务器的数据库程序的开发人员来说,v i s u a lb a s i c 已经成为 最佳的选择。 v i s u a lb a s i c6 0 提供大量新的并十分有效的工具和特征。这些大大简 化了数据库应用程序的开发。 1 v i s u a lb a s i c6 0 支持以下几种数据存取模式: 数据存取对象( d a t a a c c e s s o b j e c t ;d a o ) 针对访问单一用户、单 独的数据资源进行了优化。 远程数据对象( r e m o t ed a t ao b j e c t ;r d o ) 针对访问开放数据库 连接 o p e nd a t a b a s ec o n n e c t i n g ;o d b c 服务器端数据库资源进行了 优化。 a c t i v e x 数据对象( a c t i v e xd a t ao b j e c t ;a d o ) 提供了o l ed b 数据源的入口。这是v i s u a lb a s i c6 0 新增的内容,也是一种很有发 展前途的数据库开发工具。 在以后,将对以上三种模式进行比较、论述。 2 可视化数据库工具 v i s u a lb a s i c6 0 支持几个面向数据库的可视化管理工具,包括可视化 数据管理器。可视化数据管理器可以访问服务器端数据库,包括m i c r o s o r s q ls e r v e r 和o r a c l e ,使用它可以创建并修改数据库表、视图和查询,还 可以修改表列的数据类型。 3 数据报表( d a t ar e p o r t ) 生成器 v i s u a lb a s i c6 0 包含一个集成的报表设计程序。d a t ar e p o r t 生成器, 如图1 - 1 所示,可以用任何关系数据库中的大量表创建报表。它既可以存 取任何o l ed b 数据源,也可以存取任何o d b c 数据源。d a t a r e p o r t 生 成器的主要特征包括: 设计报表时完整的字段拖放功能。 一个完备的用于报表设计的控件集合,包括标签、图形、列表框、 文本框、线和图像。 在打印以前对报表进行预览的功能。 第6 页 山东大学硕士学位论文 按屏幕所示精确打印报表的功能。将报表转换成h t m l ( 超文本 置标语言) 和文本格式的功能。 图1 1 d a t ar e p o r t 生成器 4 数据观察( d a t a v i e w ) 窗口 数据观察窗口,如图1 - 2 所示,可用来查看并管理所连接的数据库。 使用它,你可以对你已与之创建连接的任何数据库进行查看、修改数据库 表和视图以及存储过程。 图1 2 数据观察窗口 5 数据环境( d a t ae n v i r o n m e n t ) 设计器 利用数据环境设计器( 如图卜3 ) 可与多个数据源进行连接,并可对 要连接的字段进行设置。这可以为d a t ar e p o r t 控件设置好所需的环境。 图i - 3 数据环境设计器 第7 页 i 歪- 望鎏主型型这一 l _ l _ l _ l _ _ i _ - - _ _ l _ l - - - _ - - - l l _ _ - - _ _ l _ 1 4 3v b 中的网络设计2 1 1 州 在实现w e b 功能上,v b 6 0 使用了三个a c t i v e x 控件:这些a c t i v e x 控件之一是m i c r o s o f tw i n s o c k 控件。此控件在v b 窗体上可见,在客户 机上提供与同样包含w i n s o c k 控件的服务器应用程序的t c p i p 通信。另 一个控件是m i c r o s o f ti n t e r n e tt r a n s f e r 控件。此控件通过使用如h t t p 和 f t p 协议在t c p i p 网络上的服务器与客户机之间传送文件。第三个控件 是w e bb r o w s e r 控件,它用于显示h t m l 页。 本课题讨论的将主要是局域网络的设计,用到的主要是w i n s o c k 控件。 1 5 课题的主要研究方法和研究工作 1 5 1 研究的方法 根据以上对课题情况及开发工具的介绍,本课题采用以下研究方法: 以w i n d o w s 下面向对象的编程语言v i s u a lb a s i c6 0 为主要开发工 具完成w i n d o w s 环境下驱动程序的编写,以及绝大部分数据库及网络通信 的开发。同时通过简单实用的数据库工具m i c r o s o f ta c c e s s9 7 完成一些 基本的数据库建库、建表等的工作。 1 5 2 主要研究工作 本课题主要完成了以下工作: 1 实现标牌打印机驱动软件由d o s 环境向w i n d o w s 环境的转变。主 要是通过访问1 6 入、1 6 出的光电隔离板a c 4 1 6 1 来控制标牌打印机各个 轴电机,使之按优化的方法运转,从而实现对标牌打印过程的控制:能实 现一拖二功能:即一台微机带动两台标牌打印机同时工作。 2 串彳亍通信编程。通过串口接收称重仪数据,进行数据处理,并能 第8 页 山东大学硕士学位论文 根据要求将需要的数据纳入打印内容一起打印。 3 数据库开发。要求能完成打印数据及各个参数的存取,能够根据要 求进行打印数据的查询,并能对当班记录、当天记录、当月记录等进行原 始记录和汇总报表的打印;能够实现数据库的备份、压缩、恢复等管理与 维护工作。 4 局域网络开发。实现打印数据的网络共享,可在局域网络中进行数 据查询,并可实现服务器与客户机之间的网络通信。 5 控制与管理系统的应用考核。 第9 页 2 标牌打印机w j n d o w s 驱动程序设计 w i n d o w s 下驱动程序的设计与开发是本课题的关键部分,是整个课题 的核心。它是整个系统的基础,直接关系到标牌打印机的功能与性能,只 有本部分做好了,其他部分的开发与研究才有意义。 在本系统中标牌打印机与p c 机之间是通过1 6 入、1 6 出光电隔离板 a c 4 1 6 1 进行通信的,为此我们先介绍一下a c 4 1 6 1 板的结构与功能。 2 1 a c 4 1 6 1 介绍 a c 4 1 6 1 为d b 3 7 型d 型插座,它广泛应用于各种数字量控制、数字量 电平变换及输入输出,特别是在干扰较大的应用场合或长线数字i o 。 p c 机的i o 译码占用1 0 条地址线a 0 一a 9 。a c 4 1 6 1 占4 条地址线 ( a 0 一a 3 ) ,称为“偏移地址”o f f s e t ,其余6 条( a 4 一a 9 ) 由跳线器j p l 选 择,称为“基地址”b a s e 。跳线器j p l 如图2 - 1 所示: j p l : 123456 口二 工1 a 4a 5a 6a 7a 8a 9 图2 1 当跳线器由短路环短路则对应的地址选择为“0 ”,我们以“x ”表示; 当跳线器开路时表示此路为“1 ”,以“一”表示。 如图2 1 所示,j p l 跳线器的卜6 位对应选择地址a 4 一a 9 ,共有6 位, 而地址的低四位被a c 4 1 6 1 占用,o - f f h 译码地址被p c 机占用,所以基地 址b a s e 只能在1 0 0 - 3 f o h 中选择。这样,a c 4 1 6 1 操作的实际地址( a d r ) = 基地址( b a s e ) + 偏移地址( o f f s e t ) 例如,a c 4 1 6 1 板出厂时操作基地址设为2 2 0 h ,则j p l 的设定方法如 下: 第1 0 页 j p l : l234 56 区e 圈工田 a 4a 5a 6a 7 a 8 a 9 图2 - 2 a o a 3 偏移地址o f f s e t 由a c 4 1 6 1 板占用,分配如下 表2 1 例如:如果我们已设定段地址为2 2 0 1 t ,要读通道8 到1 5 的状态,则 对地址2 2 0 t i + l h = 2 2 1 h 进行读操作即可。 其他一些功能说明如下: a o a 3 = 3 h 写操作 功能:中断寄存器清零,当中断程序退出时,进行此操作以清除当 前中断状态,以接收下一次中断。 o u t p ( 0 x 2 2 3 ,o x o ) ; a o a 3 = o h1 h 读操作 功能:读输入通道0 - 7 ( 8 - 1 5 ) 的状念 d 7d 6d 5d 4 d 3 d 2d 1d o o h 通道: 765432l0 1 h1 51 41 31 21 1l o98 当外部输入为“1 ”时,对应输入( 读入) 状态为1 。 s t a t e = i n p ( 0 x 2 2 0 ) ;( 或= i n p ( 0 x 2 2 1 ) ,= i n p ( o x 2 2 2 ) s t a t e :对应输入状态 a o a 3 = o h1 h 写操作 功能:读输出通道0 7 ( 8 - 1 5 ) 的状态 d 7d 6 d 5 d 4 d 3d 2d ld o o h 通道: 76543 210 1 h1 51 41 3 】21 l1 098 第1 1 页 山东大学硕士学位论文 当写入为“l ”时,对应输出状态“1 ”:输出对应为o c 输出的高阻 状态( 截至) 。 当写入为“0 ”时,对应输出状态为“o ”:输出为饱和态,即输出下 拉到地。 注:对通道“o ”设置,清除上电状态,上电状态为输出是0 c 的高 阻状态( 为“1 ”) 。 o u t p ( 0 x 2 2 0 ,s t a t e ) :* s t a t e = 0 2 5 5 * 2 2 动态连接( d l l ) 文件的调用机理m m 州3 9 1 前面我们就说过v b 功能之所以很强大的个原因就是它能够利用动 态连接库( d l l ) 等技术来对其功能进行无限的扩展【3 9 i ,本课题标牌打印 机驱动程序的编程就很好的说明了这一点,它e 是通过调用一个第三方 d l l 文件a c l 0 3 2 d l l 来实现的。下面我们就通过对a c l 0 3 2 d l l 文件介绍了解一下动态连接文件的调用机理。 a c l 0 3 2 d l l 是由北京双诺测控技术有限公司提供的应用于v b 3 2 位 版的d l l 程序,它是通过c ( 也可以用c + + ) 语言编写的。在编写动态 连接库函数时,主要包括以下三部分: 1 模块定义文件( 十d e f ) 2 动态连接头文件( + h ) 3 动态连接函数文件( t c p p ) a c l 0 3 2 d l l 主要提供: l :v o i dv b o u t ( u n s i g n e ds h o r td a t a ,u n s i g n e ds h o r tp o a ) 8 位1 0 输出d a t a 为数据,p o r t 为地址 2 :v o i d v b o u t w ( u n s i g n e ds h o r td a t a ,u n s i g n e ds h o r tp o a ) 1 6 位i o 输出,d a t a 为数据,p o r t 为地址 3 :u n s i g n e ds h o r tv b i n p ( u n s i g n e ds h o r t ) 8 位1 0 输入,p o r t 为地址,数据由函数返回 4 :u n s i g n e ds h o r tv b i n p w ( u n s i g n e ds h o r t ) 第1 2 页 山东大学硕士学位论文 1 6 位i o 输入,p o r t 为地址,数据由函数返回 编写了动态连接文件后,要想在v b 中使用,还必须在v b 的全局模 块中进行声明。其声明如下: d e c l a r es u bv b o u tl i b ”c :w i n d o w s s y s t e m a c i 0 3 2 d l l ”( b y v a lp o r ta s i n t e g e r ,b y v a ld a t a a s i n t e g e r ) d e c l a r es u bv b o u t wl i b ”c :w i n d o w s s y s t e m a c i 0 3 2 d l l ”( b y v a lp o r ta s i n t e g e r ,b y v a ld a t a a s i n t e g e r ) d e c l a r ef u n c t i o nv b i n p l i b ”c :w i n d o w s s y s t e m a c i 0 3 2 d l l ”( b y v a lp o r t a s i n t e g e r ) a si n t e g e r d e c l a r ef u n c t i o n v b i n p wl i b ”c :w i n d o w s s y s t e m a c i 0 3 2 d l l ”( b y v a lp o r t a s i n t e g e r ) a si n t e g e r 在声明时应注意:a c l 0 3 2 d l l 的缺省目录为w i n d o w s 的s y s t e m 目录,所以用户应将a c l 0 3 2 d l l 拷贝到w i n d o w s 的s y s t e m 目录中。 当然其路径也可以由用户设置,此时,用户应该在全局模块文件中的声明 中的a c l 0 3 2 d l l 语句前,加入a c l 0 3 2 d l l 的全路径名称。 在做好了以上工作后,我们就可以在y b 中象调用v b 的普通函数 样调用d l l 函数了。可以看一下两个例子: 例1 :从2 1 0 h 地址读入8 位数据放在i 中 i = v b i n p ( & h 2 10 ) 例2 :向2 1 0 h 地址写入数据i v b o u t ( & h 2 1o ) ,i 2 。3 标牌打印机的驱动 前面对光电隔离板a c 4 1 6 1 以及访问a c 4 1 6 1 的d l l 文件分别进行了介 绍,但这仅仅是一些了解、准备工作,它们都是为标牌打印机驱动程序的 设计而作的准备工作,下面我们将在上述基础上阐述本课题的关键部分一 一标牌打印机驱动程序的设计。 第1 3 页 山东大学硕士学位论文 2 3 1 打印内容中字符位置的确定 编辑好打印内容后,就可以开始标牌的打印了。 每个字符在标牌上都有他自己的位置,只有确定好每个字符的在标牌 上的绝对位置或者相对位置,才能将字符按预定的次序整齐地打印到标牌 上,而不至于打乱。 我们知道,要想确定一个物体的位置,首先要有一个作为判断基准的 位置,这一位置通常称为零点。为了确定字符的绝对位置,我们也定义了 一个零点位置,如图2 3 ,标牌打印内容的第一个字符与标牌左上角的横、 纵轴位置间隔x 。y 。级为标牌打印机的零点位置,其他字符的绝对位置都 以这个点为基准。 图2 3 字符在标牌上的位置是根据对应字符在编辑打印内容中的映射位置 确定的,为此我们首先应该确定字符在打印内容中的映射位置,字符的绝 对位置仍可以以第一个字为基准零点计算出。字符的绝对位置是很容易求 出的,但这并不是我们所需要的最终结果,因为,在标牌的打印过程中, 不可能在打印完一个字符后,先复位到第一个字符位甓处,然后再移动到 该字符位置处,这样必然要降低标牌打印机的工作速度,降低效率。我们 采用的方法是,打印完一个字符后,直接从该字符移动到下一字符处,这 样就应知道下一字符与该字符的相对位置,从而得到应该移动的步数。因 第1 4 页 此,关键问题应该是求出下一字符与当前字符在纵向y 及横向x 间隔的相 对字符数,并且应该判断出下一字符与当前字符是否为同一字符,如果不 相同的话就应该使字符盘转动相应的距离。其流程图如图2 4 : 其源程序如下: p u b l i cm p o s i t i o na si n t e g e r p u b l i ci n s t r p o s i t i o n ( 2 ) a sl o n g p u b l i cx r e l p o s i t i o na sl o n g p u b l i cy r e l p o s i t i o na sl o n g 图2 4 第1 5 页 山东大学硕士学位论文 _ i i i i i p u b l i cx p o s i t i o n ( p o s ) a sl o n g p u b l i cy p o s i t i o n ( p o s ) a sl o n g i u b li c b 1r l xa sb o o l e 3 n p u b l t cb l n ya sb 0 0 1 e a n p u b li cxd i r e c ta si n t e g e r p u b li cy _ d i r e c ta si n t e g e r p u b l i cs u bs c a n p o s i t i o n 0 d i m1ir l ea si n t e g e r d i mj n s t r n u ma sl o n g d i mi n s t r l 0a sl o n g d i ms t r c h a ra ss t r i n g d i ms t r l 0a ss t r i n g d i ms t r m i da ss t r i n g d i mka sl o n g o ne r r o rr e s u m en e x t s t r l 0 = c h r ( 1 0 ) s t r c h a r = t h e c h a r ( i c o u n t ) 用上一次的第二位置置给初值 x p o s i t i o n ( 1 ) = x p o s i t i o n ( 2 )在所在行的位置 i n s t r p o s i l i o n ( 1 ) = i n s t r p o s i l i o n ( 2 ) 在整个文本框中的绝对位置 y p o s i l i o n ( 1 ) = y p o s i t i o n ( 2 )行数 i fm p o s i t i o n = 0t h e n m p o s i t i o n = 0 说明要打的字符与上一次相同 i n s t r n u m2i n s t r ( i n s t r p o s i t i o n ( 1 ) + 1 ,f o r m l r t x t p a n t e x t ,s t r c h a t ) e 1 s e i n s t r n u m2 i n s t r ( 1 ,f o r m l r t x t p a n t e x t ,s t r c h a r ) e n di f i fi n s t r n u m 0t h e n i n s t r p o s it i o n ( 2 ) = i n s t r n u m e n di f l i n e = f o r m l r t x t p a n g e t l i n e f r o m c h a r ( i n s t r n u m ) 本次所在行数 y p o s i t i o n ( 2 ) = l i n e 相对于

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论