0

关于投票
人机界面
  随着液晶显示技术的进步,高质量的液晶显示模块会被日趋广泛地应用于各种嵌入式系统中。在系统整体设计中,人机交互界面的设计往往占据着很大一部分工作,现以某嵌入式系统的人机交互部分为例,介绍一种使用WGA-12864B图形LCD模块实现中文窗口菜单界面的方法。
 
    1 LCD模块WGM-12864简介
 
    WGM-12864B模块是单色图形点阵液晶显示模块,点阵数为64×128,其点阵存储区。
 
    模块点阵分为左右两边,左右两边的结构是完全一样的。对模块的点阵存储区进行读写操作时,由CS1、CS2进行片选,高电平有效。模块中每8行为1页,页地址由X确定;Y确定点阵的列号,点阵数据的每一个字节所在的位置由(CSi,X,Y)唯一确定。字节中的每一位对应着相应的像素,为1显示该像素;为0则不显示。液晶显示模块工作时,逐行扫描点阵存储区。首先被扫描的行显示在LCD屏幕的第1行上,其余行则依次顺序显示。“扫描起始行”可以通过Z地址寄存器来设置。Z可以是0~63的任意一行,如Z=56时,则显示在LCD屏幕上的次序从上到下分别为:
 
     56,57,…,62,63,0,1,2,…,54,55
 
     该模块的这一功能为窗口的滚屏提供了便利。
 
    2 人机界面的硬件接口设计
 
    系统扩展了1片8255A作为人机界面的接口,硬件接口电路如图2所示。8255A的A口连接图形LCD的8位数据线,B口低6位连接相应的控制线,D/I表示数据总线上的信号是点阵数据还是控制命令字,R/W表示当前操作是读或写操作,E是使能控制端,RST是复位端,CS1、CS2是左右点阵区选端。以行扫描方式扩展键盘接口,C口高半字节接行线,低半字节接列线。8255A初始化时,定义A、B口为方式0输出;C口高半字节为方式0输出,低半字节为方式0输入。请注意,大多数类型的8255芯片在对其方式控制寄存器进行初始化时,会引起A、B、C口清零,故不要在程序中动态改变8255端口的输入输出方式,以免影响LCD和键盘。
 
    3 用户界面的软件设计
 
    人机交互界面设计的目标是实现中文窗口界面,用户可以在菜单方式下进行交互。窗口分为两类:对话框和菜单,也包括对话框和菜单的混合。对话框用于参数的输入输出显示;菜单用于响应用户的选择,根据用户的选择运行程序。
 
    首先,应当确定系统需要多少个窗口,每个窗口有多少个菜单,画出窗口之间的变迁图,可以知道所有的窗口应当组成一个树形结构。菜单中的汉字大小为16×16的点阵,数字和符号的大小为16×8的点阵。这些点阵数据可以由点阵提取程序获得。点阵数为64×128的LCD模块只能同时显示4个菜单项,每个菜单项点据256个字节的点阵存储空间。窗口多于4个菜单项时,应当使用滚屏功能。为方便数据的安排,系统规定了参数、菜单、窗口及LCD缓冲区的数据结构。
 
    (1)数据结构
 
    为方便参数的显示和处理,参数的输入输出格式用类似于分离BCD码来表示,数据结构如图3所示。数据长度表示数据区的字节数。正负标志,为1表示负数,为0表示正数,负数在输入都要在数据前面加上负号“-”。数据区的每一字节对应于参数的每一位数。数字用分离BCD码表示,小数点用ASCII码表示。“数据长度”域占1个字节时,此数据结构可以表示最多255位的数据。
 
    菜单点阵的数据结构如图4所示。菜单序号表示该菜单在该窗口所有菜单中的次序;菜单长度表示该菜单项中汉字的个数,菜单点阵数据区存放的是菜单中汉字的点阵,每一个汉字都是16×16的点阵;参数标志为0表示没有参数,为1表示此菜单项是对话框,后面跟着参数。参数存放在参数指针域指向的内存中,若是系统参数,则要预先从E2PROM读到内存中。由于系统是16位寻址的存储空间,所以用2个字节存放指针。参数存放格式如图3所示。
 
    窗口点阵的数据结构如图5所示,其中用到了菜单数据结构,窗口中使用到的菜单项依着菜单序号顺次存放,各域的含义是显而易见的。注意,窗口的点阵数据是事先按照此格式建立的,系统中所有窗口以此格式存放非易失存储介质中,如ROM。以此格式,系统可以有255个窗口,每一个窗口可以多达255个菜单项。
 
    系统在内存中特定区域开壁了1个LCD显示缓冲区,将要显示的整个窗口的点阵数据按下列格式拼装好以后存放在此区间。LCD的显示程序从此区间中读取数据到LCD点阵数据存储区,LCD显示程序正是凭借此数据结构管理用户交互界面。每个菜单项除了汉字和参数的点阵外,其余的空间用00H补齐为256字节。对话框中显示的参数,可以依据菜单数据结构中的参数指针域检索到数据,然后把它译码成为可以显示的16×8的点阵数据。LCD缓冲区数据结构如图6所示。当前菜单域指的是当有获得焦点的菜单序号,需要反显,主要用于光标管理。显示中的菜单项序号分别对应着当前LCD点阵存储区中的4个菜单项,这些数据主要用于滚屏操作。其余各域和上述类似。
 
    (2)人机交互设计
 
    人机交互设计的重点在于窗口界面的显示、滚屏、光标的管理及参数的显示、修改和保存。现在只介绍窗口的滚虐和参数的输入输出显示。仅当窗口的菜单数大于4的时候,才用到滚屏操作。为提高系统响应的速度,窗口在滚屏时只将新的菜单点阵数据读入LCD点阵存储 ,其余3个菜单的点阵数据保持不变。图7所示的窗口滚屏过程中LCD点阵存储区的快照以及LCD屏上显示的菜单次序,从A到E的滚屏每一步都是可逆的。可以发现,每一步相邻的操作,只要将1个即将显示的菜单项点阵数据写入LCD点阵存储区,图中加黑框的菜单项就是新写入的。当向下滚屏时,从LCD显示缓冲区中“显示中的菜单项”域检索出菜单序号最小的项,把新的菜单序号插入此位置,从显示缓冲区的“菜单点阵数据”域把菜单的点阵数据读到LCD点阵存储区中相应位置。然后再检索更新后的“显示中的菜单项”域,找出最小菜单项所在的行号,设置扫描起始行Z为此行号,图中箭头指向的位置即为扫描起始行。最后要更新的域是“当前菜单项”,用于光标显示管理。当向上滚屏时,操作是类似的,不同的是要替换出“显示中的菜单项”域中序号最大的菜单项。
 
    参数的输入输出显示是人机交互界面中的重要环节。显示的参数来自键盘输入或系统内部,数据的流向如图8所示。参数依据图3对应的数据格式存放到参数指地所指的内存中,然后启动窗口更新即可。若该参数需要保存,则存入对应的E2PROM地址中。本系统使用X5045作为E2PROM,同时兼作看门狗。
 
    4 结论
 
    本文主要从数据结构的角度出发,结合器件的特片,提出了图形LCD在嵌入式应用中解决人机交互问题的一般方法,实现了中文窗口菜单,解决了参数的输入、显示、修改和保存。文中的方法具有非常好的灵活性和良好的可维护性,程序员可以在需要的时候方便地修改原有窗口或者加入新的窗口,而不至于影响系统软件原有的结构。这些便利都得益于系统定义了合理的数据结构。
系统分类: 人机界面
用户分类: 无分类
标签: 无标签
来源: 无分类
发表评论 阅读全文(79) | 回复(0)

0

关于投票
人机界面在PLC工控系统中的应用
  新一代工业人机界面的出现,对于在构建PLC工控系统时实现上述功能,提供了一种简便可行的途径。本文以国内某大型浮法玻璃生产线冷端切割区主控系统为例,介绍HMI在PLC工控系统上的应用。


    1、前 言

        可编程序控制器Programmable Logic Controller在工厂自动化FA中占有举足轻重的地位。技术的不断发展极大地促进了基于PLC为核心的控制系统在控制功能、控制水平等方面的提高。同时对其控制方式、运行水平的要求也越来越高,因此交互式操作界面、报警记录和打印等要求也成为整个控制系统中重要的内容。对于那些工艺过程较复杂,控制参数较多的工控系统来说,尤其显得重要。新一代工业人机界面的出现,对于在构建PLC工控系统时实现上述功能,提供了一种简便可行的途径。

    2、工业人机界面的特点和功能

        工业人机界面Human Machine Interface,简称HMI,又称触摸屏监控器,是一种智能化操作控制显示装置。工业人机界面由特殊设计的计算机系统32位RISC CPR芯片 为核心,在STN、TFT液晶显示屏或EL电发光显示器上罩盖有透明的电阻网络式触摸屏。触动屏幕时,电阻网络上的电阻和电压发生变化并由软件计算出触摸位置。

        HMI的主要功能有:数据的输入与显示;系统或设备的操作状态方面的实时信息显示;在HMI上设置触摸控件可把HMI作为操作面板进行控制操作;报警处理及打印;此外,新一代工业人机界面还具有简单的编程、对输入的数据进行处理、数据登录及配方等智能化控制功能。

    3、HMI在PLC工控系统上的应用

       下面以国内某大型浮法玻璃生产线冷端切割区主控系统为例,介绍HMI在PLC工控系统上的应用。

    3.1 系统概述

        切割区为浮法玻璃生产线中一个重要工段,其中包括测量发讯、纵切、横切、掰断加速、掰边、纵掰纵分、输送辊道等众多生产控制设备。系统硬件上主要由主控制器PLC,现场设备控制装置包括伺服控制器、变频器、模拟量信号及脉冲信号处理器等 和HMI构成。作为整个控制系统的核心,切割区主控系统在正常生产时根据生产工艺要求协调各个单机控制子系统的工作,制定切割计划,实现整个生产过程全自动化。整个系统的核心控制部分由美国GE Fanuc 90-30 PLC完成,此部分内容本文略,而系统的监控和交互式操作界面等任务将由HMI承担。主要有以下内容:参数的设定;动态画面的显示;故障报警与诊断以及报表打印。其中HMI选用日本Digital公司的GP-577。

    3.2 HMI与PLC之间的通讯

        当HMI用于PLC控制系统时,HMI与PLC之间通过串口以Direct Link直接连接方式进行通讯。在该方式下,HMI根据要求直接读入PLC的数据或把数据写入PLC相应的地址中。由于内装通讯协议,因此无须编制通讯程序,只要指定所用PLC类型即通讯协议,运行时便可实现通讯。因此大大减少了PLC用户程序的负担。在系统设计时,直接指定控制部件与其对应PLC的输入输出%I/O、寄存器%R、中间寄存器%M的地址,运行时HMI就能自动和PLC进行数据交换。直接读取或改写PLC相应地址的内容,并据此改变画面上显示内容。同时通过对HMI的触摸操作,可向PLC相应的地址输入数据。

    3.3 HMI监控主面

        整个HMI监控系统采用树型结构,由监控主画面及相应功能子画面组成。在监控主画面下端设有控制功能键,按动功能键可以依次进入相应子画面,执行所需的功能。在每一个子画面中可通过 上一页 、 下一页 功能键在同一功能组中进行画面切换,在任一子画面都可以通过 主画面 功能键退回到监控主画面。系统自动采集相关数据,将切割计划、测量脉冲、辊道速度等一些重要生产工艺参数显示在主画面上,便于操作人员的观察。监控主画面上还有生产过程的动态画面显示,在动态画面上以各种形式模拟出主要控制设备的运行情况,例如光电开关的动作、电磁阀的吸合、电机的运行停止等,直观、生动的反映出现场的过程,方便操作人员对生产情况、设备工况的了解。DIGITAL公司的HMI编程软件ProPB3Win提供了丰富的控制部件,例如按钮部件、画面切换部件、指示灯部件、数据文本显示部件等等,实现上述功能只要根据需要选择相应的控制部件,定义好其属性即可。ProPB3Win采用监控软件通用模式,所有控制部件的属性通过组态形式完成,以实现相应控制功能。使用ProPB3Win内附的图库及作图工具来构造生产现场的模拟画面,简便易行。内容丰富的作图工具库,使得画面生动、丰富多彩。

        此外,充分利用HMI的优势将原先布置在控制柜上的开关、指示灯尽可能地用HMI中的控制部件替代,这样做减少硬件设备,简化了现场设备间的接线,更重要的是给设计和调试带来诸多方便。

    3.4 HMI参数设置功能

        主控系统中有多达近百个参数需要设置,根据控制功能将其分为联锁、横切、横掰、速度、掰边、纵掰及设备参数组,使整个系统的结构更加合理。同时利用HMI触摸操作的特性使参数设置变得极为直观和简便。在参数设定时,利用其内带的数字键盘,将此数字键盘设计为弹出式,在操作人员要设定参数时,按动 设定 键,弹出数字键盘进行操作。每个参数在部件属性中定义并分配了相应的PLC地址,当确认后输入的数据将存入PLC指定的地址中。操作完成后,按动 一 键,可消去数字键盘。此种设计模式可最大化地利用画面的有效面积。同时每个参数都设有上下限限制,当输入数值超限时,系统拒绝接受并向操作者发出超限音响报警。此外对重要的系统设备参数组,为安全起见,通过工具库中D-Script脚本语句编写简单程序设置画面进入操作密码,赋予操作人员不同的操作权限,增加系统的安全性。

    3.5 HMI报警及打印功能

        在系统报警设计时,将故障信息在报警编辑器中编辑好,并在报警记录子画面中设置报警记录显示部件用于故障信息显示。系统运行发生故障时,HMI根据PLC传送的故障信号,将报警编辑器中对应的故障信息在报警记录子画面显示出来。同时监控主画面上?quot;故障"信号灯将闪烁,音响报警。此时操作人员可进入报警记录子画面,根据故障信息查找原因,及时处理。

        HMI的打印机接口支持标准打印机,可实现数据打印。将HM统数据区打印机控制字置1,便能激活打印机。系统在切割计划子画面中设有打印功能,可及时打印切割计划报表,供生产管理人员使用。

    4、结束语

        该系统投入使用后,受到用户的欢迎。系统具有安全、直观、简便等特点。监控、故障诊断和打印等功能的实现,大大提高了生产运行的可靠性。实践证明,HMI在PLC控制系统中有着广泛的应用前景,必将在工厂自动化中发挥出越来越大的作用。
系统分类: 人机界面
用户分类: 无分类
标签: 无标签
来源: 无分类
发表评论 阅读全文(81) | 回复(0)

0

关于投票
人机界面产品问答
1、人机界面与人们常说的“触摸屏”有什么区别?

    从严格意义上来说,两者是有本质上的区别的。因为“触摸屏”仅是人机界面产品中可能用到的硬件部分,是一种替代鼠标及键盘部分功能,安装在显示屏前端的输入设备;而人机界面产品则是一种包含硬件和软件的人机交互设备。在工业中,人们常把具有触摸输入功能的人机界面产品称为“触摸屏”,但这是不科学的。

    2、人机界面和组态软件有什么区别?

    人机界面产品,常被大家称为“触摸屏”,包含HMI硬件和相应的专用画面组态软件,一般情况下,不同厂家的HMI硬件使用不同的画面组态软件,连接的主要设备种类是PLC。而组态软件是运行于PC硬件平台、windows操作系统下的一个通用工具软件产品,和PC机或工控机一起也可以组成HMI产品;通用的组态软件支持的设备种类非常多,如各种PLC、PC板卡、仪表、变频器、模块等设备,而且由于PC的硬件平台性能强大(主要反应在在速度和存储容量上),通用组态软件的功能也强很多,适用于大型的监控系统中。

    3、人机界面产品中是否有操作系统?

    任何人机界面产品都有系统软件部分,系统软件运行在HMI的处理器中,支持多任务处理功能,处理器中需有小型的操作系统管理系统软件的运行。基于平板计算机的高性能人机界面产品中,一般使用WinCE,Linux等通用的嵌入式操作系统。

    4、人机界面只能连接PLC吗?

    不是这样的。人机界面产品是为了解决PLC的人机交互问题而产生的,但随着计算机技术和数字电路技术的发展,很多工业控制设备都具备了串口通讯能力,所以只要有串口通讯能力的工业控制设备,如变频器、直流调速器、温控仪表、数采模块等都可以连接人机界面产品,来实现人机交互功能。
   
    5、人机界面只能通过标准的串行通讯口与其它设备相连接吗?
 
    大多数情况下是这样的。但随着计算机和数字电路技术的发展,人机界面产品的接口能力越来越强。除了传统的串行(RS232、RS422/RS485)通讯接口外,有些人机界面产品已具有网口、并口、USB口等数据接口,它们就可与具有网口、并口、USB口等接口的工业控制设备相连接,来实现设备的人机的交互。
   
    6、是否有通讯功能的设备一定能和人机界面产品连接?
    应该是这样的。因为通用的人机界面产品都提供了大量的、可供选择的常用设备通讯驱动程序;一般情况下,只要在&#

20154;机界面的画面组态软件中选择与连接设备相对应的通讯驱动程序,就可以完成HMI和设备的通讯连接。如果所选HMI产品的组态软件中没有要连接设备的通讯驱动程序,用户则可以把要连接设备的通讯口类型和协议内容告知HMI产品的生产商,请HMI厂商代为编制该设备的通讯驱动程序。
   
    7、PC机加触摸屏,能否直接与PLC通讯,完成HMI的功能?


    当然可以。不过还要编制相应的HMI软件,才能使PC机成为一个真正的HMI产品。
   
    8、未来人机界面的发展趋势是什么?

    随着数字电路和计算机技术的发展,未来的人机界面产品在功能上的高、中、低划分将越来越不明显,HMI的功能将越来越丰富;5.7寸以上的HMI产品将全部是彩色显示屏,屏的寿命也将更长。由于计算机硬件成本的降低,HMI产品将以平板PC计算机为HMI硬件的高端产品为主,因为这种高端的产品在处理器速度、存储容量、通讯接口种类和数量、组网能力、软件资源共享上都有较大的优势,是未来HMI产品的发展方向。当然,小尺寸的(显示尺寸小于5.7寸)HMI产品,由于其在体积和价格上的优势,随着其功能的进一步增强(如增加IO功能),将在小型机械设备的人机交互应用中得到广泛应用。

系统分类: 人机界面
用户分类: 无分类
标签: 无标签
来源: 无分类
发表评论 阅读全文(94) | 回复(0)

0

关于投票
MIS人机界面的设计原则
随着计算机软硬件技术的发展,人机界面的重要性与日俱增。一些专家指出:对于用户,人机界面就是系统本身。在计算机发展的早期,受计算速度、存储容量等条件的限制,用户一味追求运行速度与所占空间,致使程序员在开发软件时不得不绞尽脑汁,考虑如何使所开发的软件运行速度快、占用内存/外存小,故程序员在开发软件时无不把主要精力放在软件内部算法与数据结构上。 
   
    然而时过境迁,硬件技术的飞速发展,使计算速度与存储容量不再成为软件开发人员所担心的问题,用户关心的主要问题是能否比较容易地使用软件。换言之,人们的着眼点在于软件的易用性,而易用与否主要取决于人机界面的优劣。众所周知,在当今的硬件与软件环境下,一个MIS软件没有很好的界面设计就不能算是成功。因为不管它内部有多么精巧的技术,只要用户不愿意使用它,它的优越性就得不到发挥,它的价值和作用也无从谈起。 
   
    正因如此,人机界面研究已经从过去的从属地位上升为一个专门的领域,国内外均有很多学者从事这方面的研究。Windows操作系统的日臻完善,更给人机界面技术以强有力的支持。 
二、 MIS人机界面设计的基本原则 
1、 以通信功能作为界面设计的核心 
    人机界面的关键是使人与计算机之间能够准确地交流信息。一方面,人向机器输入时应当尽量采取自然的方式;另一方面,机器向人传递的信息必须准确,不致引起误解或混乱。另外,不要把内部的处理、加工与人机界面混在一起(人机界面程序只是通信),以免互相干扰,影响速度。 
   
    MIS设计时,针对每一个功能,都要按照I-P-O的模块化思想,使输入、处理与输出泾渭分明,充分体现人机界面的通信功能。这样设计出来的程序不但不易出错,而且易于维护,即使有了错误也很容易加以改正。 
   
    报表打印是MIS必备的功能之一,而且打印之前常常需要计算。毕其功于一役并非明智之举。尽管这样做或许会节省一些运行时间,但对以后的维护极为不利。计算与打印分开设计,固然会增加一些时空开销,但考虑到可维护性,付出这一代价是完全值得的。 
2、 界面必须始终一致 
    一致的人机界面不致增加用户的负担,让用户始终用同一种方式思考与操作。最忌讳的是每换一个屏幕用户就要换一套操作命令与操作方法。 
   
    Windows下的应用软件之所以倍受青睐,与其界面的一致性不无关系。例如,以问号图标表示帮助,以磁盘图标表示存盘,以打印机图标表示打印,等等。 
3、 界面必须使用户随时掌握任务的进展情况 
    人机界面应该能够告诉用户软件运行的进度。特别是在需要较长时间的等待时,必须让用户了解工作进展情况,如已经完成了百分之几等。切不可让用户面对一个没有反应的屏幕,以致怀疑是否出现了死机现象。 
   
    目前,Windows下的应用软件无论大小,其安装程序几乎均做到了这一点。开发MIS软件时,这一点很值得借鉴。 
4、 界面必须能够提供帮助 
    决不可以认为使用程序的用户都是专家,无需提供帮助。有关的提示、信息、说明应该放在随手可得的位置。 
  
    一个优秀的MIS软件应该提供在线求助功能,甚至提供使用向导,这无疑会给用户带来极大的方便。使用超链接技术将使求助功能锦上添花。在多媒体环境下,以语音提示作为操作向导,不会干扰屏幕信息,是一个极佳的选择。 
5、 宁可让程序多干,不可让用户多干 
    多数MIS软件的数据输入量较大。对于一些相对固定的数据,不应让用户频频输入(特别是汉字),而应让用户用鼠标轻松选择。例如,人事管理系统中?quot;文化程度系相对固定的数据,其值一般取小学、初中、高中、大专、大本、硕研、博研等。录入这类数据之前,MIS软件应在相应位置弹出一个列表框,待用户以鼠标点击,而不应让用户每次都输入这些汉字。 
   
    汉字输入与西文输入的状态切换虽说是举手之劳,但频繁进行状态切换令人颇感厌烦。若能够在程序中实现自动切换,无疑是深受用户欢迎的。 
   
    MIS软件开发完毕后,交付给用户使用时,开发人员往往要求用户记录软件的出错情况。这不能不说是强人所难,因为此举增加了用户的额外负担。开发者应编写一个错误实时记录程序,自动记录何日、何时、何程序出了何种错误。 
   
    总之,所开发的MIS在使用过程中,应使用户的数据输入量降至最低限度,同时使用户的干预尽量少。实践证明,用户干预愈少,MIS系统的满意程度愈高。 
6、 输入画面尽可能接近实际 
    如果某个电算会计软件的凭证录入画面是表格式的,一屏可录入多条记录,而且与实际凭证一模一样,甚至连颜色都无异,用户在终端上录入凭证,仿佛用笔在纸上填写凭证,那么,一种亲切感会油然而生。试想,哪个用户不愿意使用呢?相反,如果一屏只能录一条记录,录入一条凭证要操作数屏,那么结果是可想而知的。 
7、 具有较强的容错功能 
    误操作、按键连击等均有可能导致数据误录。巧妙地进行程序设计,可以避免此类因素造成的错误。例如,录入学生成绩时,我们可以对其范围进行限定,使用户无法输入0-100以外的数据;录入学生年龄时,不妨根据实际情况将范围限制在15-20之间。 
三、 人机界面设计中的矛盾及解决办法 
   
    设计人机界面时,经常会遇到灵活性与一致性的权衡问题。原则上,对某一软件来说,用户的思维方式应当是一致的,操作与控制的方式也应当是一致的。只有这样,才能减轻用户使用软件的困难,使用户不知不觉地进入统一的思维框架,从而正确地、顺利地应用这个软件。但这只是问题的一个方面。另一方面的问题是,用户是多种多样的,它们有各自的习惯与爱好,应当让他们有一定的灵活性,能够自由地选择某些功能的操作方式。 
   
    例如,出于方便,有人喜欢使用箭头键选择下拉菜单中列出的某项功能,有人则偏偏习惯于使用快捷键,因为它们非常快捷。设计软件时,我们不妨使鱼与熊掌兼得。 
   
    再如,对于人机界面的色彩,有人从提高工作效率着眼,喜欢鲜艳悦目的彩色界面;有人则则从保护视力出发,宁愿要黑白的。开发MIS软件时,程序员不妨给用户选择颜色的余地
系统分类: 人机界面
用户分类: 无分类
标签: 无标签
来源: 无分类
发表评论 阅读全文(139) | 回复(0)

0

关于投票
电容感应触摸屏故障排除
电容感应触摸屏,在安装过程和使用过程中最容易产生的故障是光标漂移和定位不准确。

如何检查触摸屏硬件性能是否正常

将触摸屏幕执照连接说明,与 PC 进行连接。当 PC 开启电源后控制卡上的 LED 指示灯会点亮, 3 秒后指示灯会熄灭。当手指触摸屏幕时,指示灯会进行闪烁。表示触摸屏幕硬件系统功能正常。

触摸屏指示灯不亮

首先检查供应电源的键盘口是否已经正确连接;主机的键盘口是否正常;主机的 R-232 口是否正常。如果不是上述问题,可能原因如下:

控制卡指示灯故障

控制卡整体故障、触摸屏或电缆故障

触摸屏定位不准确

使用驱动程序中的校准程序进行重新校准;

确认驱动程序和控制卡跳线断口的设置是否统一;

请检查触摸屏伸出电缆中的縁色线是否与显示器的地线进行连接;

主机使用的电源是否有搭地并确定已经接地。

触摸屏幕光标自行跳动

请检查触摸屏伸出电缆中的縁色线是否与显示器的地线进行连接;

主机使用的电源是否有搭地并确定已经接地

请检查触摸屏幕中的扫描频率部分,按照驱动程序中扫描频率,将频率重新定义后,关机器电源。重新启动后重新校准位置即可。

当产品移入新的环境使用,如果出现屏幕光标跳动情况,请采用上述方法处理。

触摸屏显示器在安装一体机时,发生装入前正常,装入一体机后发生光标抖动或位置不在准确。

可能是一体机接地有问题。

解决方法:请检查触摸屏伸出电缆中的縁色线是否与显示器的地线进行连接;主机使用的电源是否有搭地并确定已经接地。

请检查触摸屏幕中的扫描频率部分,按照驱动程序中扫描频率,将频率重新定义后,关机器电源。重新启动后重新校准位置即可。
系统分类: 人机界面
用户分类: 无分类
标签: 无标签
来源: 无分类
发表评论 阅读全文(61) | 回复(0)

0

关于投票
触摸屏的几个概念
所谓触摸屏,从市场概念来讲,就是一种人人都会使用的计算机输入设备,或者说是人人都会使用的与计算机沟通的设备。不用学习,人人都会使用,是触摸屏最大的魔力,这一点无论是键盘还是鼠标,都无法与其相比。人人都会使用,也就标志着计算机应用普及时代的真正到来。这也是我们发展触摸屏,发展KIOSK,发展KIOSK网络,努力形成中国触摸产业的原因。

从技术原理角度来讲,触摸屏是一套透明的绝对定位系统,首先它必须保证是透明的,因此它必须通过材料科技来解决透明问题,像数字化仪、写字板、电梯开关,它们都不是触摸屏;其次它是绝对坐标,手指摸哪就是哪,不需要第二个动作,不像鼠标,是相对定位的一套系统,我们可以注意到,触摸屏软件都不需要光标,有光标反倒影响用户的注意力,因为光标是给相对定位的设备用的,相对定位的设备要移动到一个地方首先要知道现在在何处,往哪个方向去,每时每刻还需要不停的给用户反馈当前的位置才不致于出现偏差。这些对采取绝对坐标定位的触摸屏来说都不需要;再其次就是能检测手指的触摸动作并且判断手指位置,各类触摸屏技术就是围绕“检测手指触摸”而八仙过海各显神通的。

触摸屏的第一个特征:透明,它直接影响到触摸屏的视觉效果。透明有透明的程度问题,红外线技术触摸屏和表面声波触摸屏只隔了一层纯玻璃,透明可算佼佼者,其它触摸屏这点就要好好推敲一番,“透明”,在触摸屏行业里,只是个非常泛泛的概念,我们知道,很多触摸屏是多层的复合薄膜,仅用透明一点来概括它的视觉效果是不够的,它应该至少包括四个特性:透明度、色彩失真度、反光性和清晰度,还能再分,比如反光程度包括镜面反光程度和衍射反光程度,只不过我们的触摸屏表面衍射反光还没到达CD盘的程度,对用户而言,这四个度量已经基本够了。今天我尽量不结合具体的触摸屏去“排队”,技术是在前进的,今天也许是声波屏最理想,明天也许又是另一种,环星公司通过触摸屏的技术本质引申出一些触摸屏的概念,目的是让用户自己学会思考、学会判断,选购适用的触摸屏。

先说透明度和色彩失真度,首先提醒大家,我们看到的彩色世界包含了可见光波段中的各种波长色,在没有完全解决透明材料科技之前,或者说还没有低成本的很好解决透明材料科技之前,多层复合薄膜的触摸屏在各波长下的透光性还不能达到理想的一致状态.

由于透光性与波长曲线图的存在,通过触摸屏看到的图象不可避免的与原图象产生了色彩失真,静态的图象感觉还只是色彩的失真,动态的多媒体图象感觉就不是很舒服了,色彩失真度也就是图中的最大色彩失真度自然是越小越好。平常所说的透明度也只能是图中的平均透明度,当然是越高越好。

反光性,主要是指由于镜面反射造成图象上重叠身后的光影,如人影、窗户、灯光等。反光是触摸屏带来的负面效果,越小越好,它影响用户的浏览速度,严重时甚至无法辨认图象字符,反光性强的触摸屏使用环境受到限制,现场的灯光布置也被迫需要调整。大多数存在反光问题的触摸屏都提供另外一种经过表面处理的型号:磨砂面触摸屏,也叫防眩型,价格略高一些,防眩型反光性明显下降,适用于采光非常充足的大厅或展览场所,不过,防眩型的透光性和清晰度也随之有较大幅度的下降。

清晰度,有些触摸屏加装之后,字迹模糊,图象细节模糊,整个屏幕显得模模糊糊,看不太清楚,这就是清晰度太差。清晰度的问题主要是多层薄膜结构的触摸屏,由于薄膜层之间光反复反射折射而造成的,此外防眩型触摸屏由于表面磨砂也造成清晰度下降。清晰度不好,眼睛容易疲劳,对眼睛也有一定伤害,选购触摸屏时要注意判别。

触摸屏的第二个特性:触摸屏是绝对坐标系统,要选哪就直接点那,与鼠标这类相对定位系统的本质区别是一次到位的直观性。绝对坐标系的特点是每一次定位坐标与上一次定位坐标没有关系,触摸屏在物理上是一套独立的坐标定位系统,每次触摸的数据通过校准数据转为屏幕上的坐标,这样,就要求触摸屏这套坐标不管在什么情况下,同一点的输出数据是稳定的,如果不稳定,那么这触摸屏就不能保证绝对坐标定位,点不准,这就是触摸屏最怕的问题:漂移。技术原理上凡是不能保证同一点触摸每一次采样数据相同的触摸屏都免不了漂移这个问题,目前有漂移现象的只有电容触摸屏。

触摸屏的第三个特性:检测触摸并定位,各种触摸屏技术都是依靠各自的传感器来工作的,甚至有的触摸屏本身就是一套传感器。各自的定位原理和各自所用的传感器决定了触摸屏的反应速度、可靠性、稳定性和寿命。触摸屏的传感器方式还决定了该触摸屏如何识别多点触摸的问题,也就是超过一点的同时触摸怎么办?有人触摸时接着旁边又有人触摸怎么办?这是触摸屏使用过程中经常出现的问题,我认为最理想的方式是:超过一点的同时触摸谁也不判断,一直等到多点触摸移走,有人触摸接着又有人触摸应该是分先后都判断,当然是技术上可能的话.
系统分类: 人机界面
用户分类: 无分类
标签: 无标签
来源: 无分类
发表评论 阅读全文(52) | 回复(0)

0

关于投票
有效使用触摸屏的十点技巧
全屏运行你的应用程序
    移去文件名栏和菜单栏,因此你以享受整个屏幕运行的好处。 

采用明亮的背景颜色(不要用黑色)
    明亮的背景颜色可以隐藏手指印,减小刺眼眩目的光线对视觉所造成的影响。其他图案背景(例如,皱纸图案)会使眼睛专注于屏幕图象而不是屏幕反射,即使在没有图标和菜单选项的区域,也是如此。

用大按钮作为简单的点击界面
    拖曳、双击、滚动条、下拉菜单、各种窗口或是其它因素都会使一些不熟练的使用者感到糊涂,也会减小使用者对产品的亲和度,降低其使用效率。

将鼠标的光标移去,使用户能注意整个屏幕而不是那个箭头
    屏幕上的鼠标箭头会使用户想到,我怎么才能利用这个箭头来做我想做的事情?将箭头移去,用户的思考和行为就由间接变为直接。这样触摸屏的真正力量就显现出来了。

使用户一触摸屏幕就会得到回馈响应
    即时的回馈对于使用户确认触摸已被接受是很重要的。回应可以是视觉的,比如和标准视窗按钮类似的立体按钮效果. 或者也可以以声音作为回应,即任何时候用户触摸屏幕, 都会听到“咔哒"声或其它声音。请确信显示器会立即清除上一屏,以及在下一个屏幕出现之前,屏幕显示沙漏图标(或是其它类似的图标)。

让你的应用程序变得有趣而快速
    如果系统速度很慢,用户肯定会走开。对他们的触摸给予快速的回应,你可以以此来锁定他们的注意力。高速的系统同样也会减少蓄意破坏行为的发生。图片模式需要过多的颜色和高分辨率,而这些东西只会减慢系统的速度。使用更多的颜色要比使用高分辨率有效得多。

让应用变得直观,简单,尽可能地引导使用者
    让特定的人使用你的触摸屏,以此作为测试。使用者如果由于不理解而暂停了,即使是一会儿,你也应该搞清楚什么地方需要改进。

通过应用程序与用户进行数字化的对话(通过声卡)
    由于人脑能同时接受声音和图象,因此能提供声音和触摸回应的用户界面就显得近乎神奇。比较好的自助服务机应用程序将这一知识运用到了极致。比如,-- 请点一下你所寻找公司的名字的第一个字母。-- 咔哒。-- 现在请点一下OK。-- 咔哒。

使你的应用具有诱人的包装
    动画制作和大字体有助于使自助服务机变得更有吸引力。 那么,自助服务机的外观设计也应该吸引人,并且结实牢固。

当你设计一个自助查询一体机时,请一定考虑下列因素:
    你使用排气扇吗?将风扇放在顶上,就在靠近监视器出口的地方。将走路时引起的灰尘减到最少, 并及清除地面上的灰尘,防止空气进入显视器周围。将扬声器对准你用户的耳朵. 请使用Elo查询一体机触摸显示器。 不然,你就得允许监视器外观尺寸的多样性,因为他们变得很快。显示器必须安装安全稳固的底座,这样的话,触摸起来比较牢固。最后,选择一种能够隐藏手指印抛光剂,不要用光亮的不锈钢,铬合金和光亮的黑色漆。
系统分类: 人机界面
用户分类: 无分类
标签: 无标签
来源: 无分类
发表评论 阅读全文(49) | 回复(0)

0

关于投票
触摸屏画面设计
触摸屏是一种新型可编程控制终端,是新一代高科技人机界面产品,适用于现场控制,可靠性高,编程简单,使用维护方便。在工艺参数较多又需要人机交互时使用触摸屏,可使整个生产的自动化控制的功能得到大大的加强。
  触摸屏画面由ProTool(西门子)、CX-Designer (欧姆龙)等专用软件进行设计,然后先通过编程电脑仿真调试,认为正确后再下载到触摸屏。触摸屏画面总数应在其存储空间允许的范围内,各画面之间尽量做到可相互切换。
(1)主画面的设计
  一般情况,可用欢迎画面或被控系统的主系统画面作为主画面,该画面可进入到各分画面。各分画面均能一步返回主画面。若是将被控主系统画面作为主画面,则应在画面中显示被控系统的一些主要参数,以便在此画面上对整个被控系统有大致的了结。
(2)控制画面的设计
  该画面主要用来控制被控设备的启停及显示PLC内部的参数,也可将PLC参数的设定做在其中。该种画面的数量在触摸屏画面中占的最多,其具体画面数量由实际被控设备决定。
(3)参数设置页面的设计
  该画面主要是对PLC的内部参数进行设定,同时还应显示参数设定完成的情况。实际制做时还应考虑加密的问题,限制闲散人员随意改动参数,对生产造成不必要的损失。
(4)实时趋势页面的设计
  该画面主要是以曲线记录的形式来显示被控值、PLC模拟量的主要工作参数(如输出变频器频率、温度趋线值)等的实时状态。
(5)信息记录页面的设计
  该画面主要是记录可能出现的设备损坏、过载、数值超范围和系统急停等故障信息。另外该画面还可记录各设备启停操作,作为凭证。
(6)节能画面的设计
该画面主要是记录和显示变频器的累积用电数及实时节电状态,以便向用户展示变频节能的好处,也可用来与其它的节电测量作比较。
(7)运行状态画面的设计
    该画面主要是各种设备运行状态的集中显示情况。
系统分类: 人机界面
用户分类: 无分类
标签: 无标签
来源: 无分类
发表评论 阅读全文(55) | 回复(0)

0

关于投票
OPC技术及其在工业以太网中的应用

引言

以太网作为一项比较成熟的技术正向自动化领域逐步渗透,从企业决策层?生产管理调度层向现场控制层延伸?

以太网由于采取冲突竞争的传输方式,具有传输不确定性的特点?但随着带宽的增加?冗余措施的加强和自诊断程序的完善,以太网完全可以满足中小型控制系统实时性的要求?同时以太网具有相关网络产品价格低廉,开放性好?技术成熟等优点?目前,Profibus?Devicenet?Controlnet和Lonworks等都使用以太网传送它们的报文,制定现场装置与以太网通信的标准,使以太网进入工业自动化的现场级?当现场智能设备将现场信息通过工业以太网专题">工业以太网传至监控计算机后,存在着信息共享与交互的问题?一方面,监控计算机内部应用程序需要对现场信息进行处理,另一方面,企业生产管理层需要与监控计算机进行信息沟通和传递?OPC的出现则解决了控制系统突破“信息孤岛”的瓶颈问题?

1 OPC(OLE for Process Control)技术规范与意义

OPC技术是以Microsoft的OLE/COM技术为基础建立的一项技术规范与标准,它采用客户/服务器(Client/Server)模型,定义了一组COM对象及其双接口(Dual Interface)? 字串3

OPC对象主要包括服务器(Server)?组(Group)和项(Item)?OPC服务器对象除了维护自身信息外,还作为组对象的容器,可动态地创建或释放组对象;而组对象相对于项而言也是一个包容器,它提供一套管理项的机制;OPC项则表示了与OPC服务器中数据的连接,包括值(Value)?品质(Quality)?时间戳(Time Stamp)3个基本属性?

OPC对象双接口由OPC自动化接口(Automation Interface)和定制接口(Custom Interface)组成?在C/S工作模式下,客户程序通过接口与OPC服务器连接,调用OPC对象的方法?一般来说自动化接口能为高级语言客户程序提供极大的便利,但数据传输效率较低,而定制接口则为用C/C++语言编写的客户程序带来灵活高效的调用手段?

OPC技术建立了一组符合工业控制要求的接口规范,将现场信号按照统一的标准与SCADA?HMI等软件无缝连接起来,同时将硬件和应用软件有效地分离开?只要硬件开发商提供带有OPC接口的服务器,任何支持OPC接口的客户程序均可采用统一的方式存取这些设备,无须重复开发驱动程序?这样大大提高了控制系统的互操作性和适应性? 字串2

2 OPC数据存取服务器在以太网控制系统的层次结构

图1示意了以太网控制系统的总体层次结构?在现场控制层,以PC104嵌入式系统作为现场智能节点,其外接模拟量输入输出?开关信号输入输出等I/O卡,主要作用是执行各种控制功能及进行数据采集,进行状态监测和报警,并将采集的数据上传;监控计算机则采用PC机,装有两块网卡,利用其中一块与下位机PC104通信,而通过另一块网卡与生产管理调度层的其他计算机组成局域网?监控计算机中运行OPC数据存取服务器程序,将现场智能节点传上来的数据通过OPC接口送到监控软件进行监控,并利用组态软件进行复杂的组态工作,将组态信息下载到PC104上,调整其控制算法和参数?而其他管理调度层的计算机OPC客户程序则通过DCOM的方式访问OPC服务器程序,进行信息交互?

由此可见,OPC服务器在以太网控制系统中将企业现场控制层与生产管理调度层有机地连接起来,组成一个开放性好?可靠性高的分布式控制系统,发挥了重要的桥梁作用?

3 OPC数据存取服务器的设计与实现

OPC数据存取服务器可按图2的系统结构设计?它主要由服务器对象?组对象?项对象?数据存储区和TCP/IP通信接口组成?
字串2


由于OPC数据存取服务器既要通过网卡与现场设备进行通信,又要通过OPC接口与客户程序进行交互,所以采用多线程模型以保证数据存取的效率?为避免不同线程同时对数据区中的数据进行操作,还需要考虑对临界区的互斥控制?

OPC技术是以微软的COM技术为基础,同时需要直接与底层硬件打交道,所以采用VC实现比较灵活方便?OPC数据存取服务器主要分为OPC通用接口?硬件接口以及数据存储区的实现,在本系统中硬件接口的实现主要是实现以太网通信接口?

3.1 OPC通用接口的实现

首先定义OPC数据存取服务器的名称(ProgID)和类标识(CLSID),实现OPC数据存取服务器类厂对象?然后由OPC规范中定义的OPCServer类?OPCGroup类和OPCItem类,分别派生出装置Device ?板卡Board ?通道Channel3个新类?

OPC规范中定义的接口可分为可选接口和必选接口,但对任何OPC服务器而言,应实现必选接口的成员函数?因此在派生类中重载其父类中必选接口成员函数,并根据实际情况重载可选接口成员函数,例如IOPCBrowseServerAddressSpace接口等? 字串9

为了满足实际要求,还需要定义各个派生类的特殊属性和方法并实现其方法?例如,在装置类中增加IP地址属性,用以标识现场PC104智能节点?另外增加搜索函数,自动列出已连入现场控制层的PC104智能节点的IP地址?

3.2 以太网通信接口的实现

通信接口的设计是OPC数据存取服务器应用于工业以太网专题">工业以太网控制系统的关键?由于控制系统不同于普通局域网,所以通信的可靠性和实时性是必须考虑的重要因素?

(1)可靠性考虑 由于以太网支持TCP/IP协议,因此可利用socket套接字开发通信程序,这将大大降低开发难度?在利用socket编程时,主要用到的有流式套接字(SOCK_STREAM)和数据报套接字(SOCK_DGRAM)两种,其对应的通信方式也有两种,一种是面向连接的,采用TCP协议;一种是非面向连接的,采用UDP协议?当采用UDP协议时,它提供不可靠的无连接数据报传输服务,不提供报文到达确认?排序以及流量控制等功能,因此报文可能会丢失?重复以及乱序等?TCP则是建立在连接的抽象概念上的,它标识的是一个虚电路连接,需要两个端点都同意连接才能通信;它将数据流看作字节的序列,为了便于传输又将这个序列划分为若干段,在传输过程中,具有确认重传功能;此外TCP使用专门的滑动窗口机制来解决传输效率和流量控制等问题?为保证可靠性在本系统中采用TCP通信协议? 字串5

(2)实时性考虑以太网采用的是一种随机访问协议——带冲突检测的载波侦听多路访问(CSMA/CD)介质访问控制协议,这种数据传输协议虽比较简单,但它由冲突引起的数据传输时间的随机性,成了阻碍以太网进入工业控制领域的根源?在目前应用于工业控制领域的以太网中,通过限制连接在以太网上的结点数目?控制网络流量?使总线保持轻载工作条件,可以满足控制的实时性要求?

TCP/IP通信方式采用的是客户端/服务器模式,服务器程序被动地等待通信,而客户程序则主动地启动通信?在本系统中,由于下位机PC104采用DOS系统,处于单线程方式,不但要负责通信,而且还要执行特定的控制功能,所以将PC104作为通信客户方;而监控计算机采用支持多线程方式Windows NT/2000系统,可作为通信服务器方?因此在OPC数据存取服务器中专门创建一个线程用于监听是否有客户程序请求连接?如果有请求,则另创建一个线程来处理此次通信,将收到的数据存放到专为OPC服务器开辟的数据存储区,通信结束后关闭此通信线程,监听线程则一直运行?这样可保证数据传输的实时性?

3.3 数据存储区的实现

数据存储区是OPC服务器程序中的重要组成部分,其中包含了由服务器程序方定义的数据项?OPC客户程序通过OPC通用接口来访问存储区数据,硬件驱动部分也不断地将最新的现场数据写入到数据区?如果服务器程序实现了IOPCBrowseServerAddressSpace可选接口,那么客户程序可通过该接口浏览到数据存储区中数据项的名称? 字串3

在实际的设计过程中模仿OPC规范中组织数据的方法来组织数据存储区,通过设计对应的CGlobalServer?CGlobalGroup?CGlobalItem 3个数据项类来管理数据存储区?其中CGlobalServer包容了CGlobalGroup类对象的实例并定义了一些成员函数对CGlobalGroup类对象的具体数据进行操作,而CGlobalGroup类包容了CGlobalItem类对象的实例并定义了一些成员函数来对CGlobalItem类对象的具体数据进行操作,CGlobalItem数据项类包括了数值(Value)?品质(Quality)?时间戳(Time Stamp)3个基本属性,另外还有数据项名称?工程量单位等属性?由于数据项总是和具体的硬件相关,因此需要添加与设备有关的属性以及相关函数来设置和获取这些属性?

4 OPC 数据交换服务器在以太网控制系统中的应用

为了更好的解决信息交互问题,OPC基金会于2003年3月发布了OPC数据交换(Data eXchange)的1.0规范?它其实是一个OPC以太网数据交换标准,是对数据存取规范(DA)的扩展,与数据存取规范的最大不同在于数据存取规范解决的是现场信息在控制网络中纵向传输问题,而数据交换规范(DX)解决的是现场信息在控制网络中的横向传输问题?该规范提出一个标准的组态接口架构,使得任何控制网络上的OPC数据存取服务器之间只要支持该接口就能通信?同时它还支持远程的组态?诊断?监控?管理,目标是Plug & Play(即插即用)?图3显示了OPC数据交换技术实现数据存取服务器间信息交互的结构,这时候就不再需要双口/多口的客户端来支持OPC数据存取服务器之间的通信? 字串3

5 结束语

本文中设计的OPC数据存取服务器已在以太网控制系统中运行良好,整个控制系统也已通过测试和考核,证明能够满足一般工业控制领域对传输时延的要求,其可操作性?开放性?可靠性也较高,完全适用于中小型控制领域?随着以太网技术的发展,相信它能逐步胜任那些目前由工业自动化网络承担的控制任务?将OPC技术引入工业以太网专题">工业以太网控制系统能有效地促进以太网控制系统的发展以及企业现场控制层和生产过程管理层?调度决策层的集成?

系统分类: 工业以太网
用户分类: 无分类
标签: 无标签
来源: 无分类
发表评论 阅读全文(98) | 回复(0)

0

关于投票
OPC DA客户端的三种实现方式
1  引言
    OPC(OLE for Process Control)是一个工业标准,他是许多世界领先的自动化和软、硬件公司与微软公司合作的结晶。管理该标准的组织是OPC基金会。该基金会的会员单位在世界范围内超过150个,包括了世界上几乎全部的控制系统、仪器仪表和过程控制系统的主要供应商。OPC技术建立了一组符合工业控制要求的接口规范,将现场信号按照统一的标准与SCADA、HMI等软件无缝连接起来,同时将硬件和应用软件有效地分离开。只要硬件开发商提供带有OPC接口的服务器,任何支持OPC接口的客户程序均可采用统一的方式对不同硬件厂商的设备进行存取,无须重复开发驱动程序。如果希望将数据引入数据库进行统计分析,就要进行客户端开发。
2  客户程序的设计方法与比较
    客户程序的设计主要是指客户程序中OPC接口部分的设计。客户程序本身可以完成很多复杂的数据处理与显示功能,但需要通过OPC接口部分访问OPC服务器,对现场数据进行存取。
    开发OPC、Data、Access、Client之前,要弄清服务器的大体情况,比如需要访问的服务器是否提供自动化接口、服务器的OPC的版本等,到目前为止,OPC有1.0和2.0两个版本,两个版本的接口定义不同,2.0版是对1.0的改进,但不兼容。
    OPC客户端的主要任务:
    ①创建服务器对象。
    ②建立与服务器的连接。
    ③浏览OPC服务器的功能。客户程序需要创建OPC基金会提供的OPC服务器浏览器对象(OPCServerList)再通过该对象的IOPCServerList接口获得OPC服务器名称的列表;可以通过枚举注册表中包含“OPC”子键的程序名来浏览符合OPC数据存取规范的服务器,但效率较低。
    ④通过OPC接口读写数据。
    ⑤断开连接。
    注意事项:
    设计时需要注意OPC对象的VARAINT结构类型、引用计数问题、内存管理问题和处理错误返回代码问题。由于一个OPC客户程序可能与多个OPC服务器相连,因此设计时也最好采用多线程,同时与多个OPC服务器程序进行交换以保证较高的通信效率。另外客户程序中OPC接口部分如何与其它功能模块进行数据交换需要根据实际情况仔细考虑。
2.1 使用MFC的COM库函数开发OPC客户端
    直接使用COM库函数开发OPC客户端,是最基本也是最灵活的方式,这种开发方式难度和工作量都大,要求开发人员对OPC规范和COM技术原理又比较深入的了解。早些时候VisualC++编译器还不支持模板,因此,它们不得不借助非模板的其它手段来将COM功能掺入类中。Microsoft通过加入一些虚函数到CCmdTarget类和一些宏中解决了这个问题,使得在MFC中实现COM接口有了可能。
    客户要创建一个COM对象首先应得到类厂对象,再由类厂对象创建COM对象。为了实现类厂对象,MFC提供了一个通用的类厂COleObjectFactory,其从CCmdTarget派生,并实现了IclassFactory2接口。在COleObjectFactory的成员中,最主要的是对象的类标识符(CLSID)和类型信息,类厂的CreateInstance成员函数利用这些信息在运行中创建COM对象。
    OPCServer应用程序包括了一个Server对象、多个Group对象、多个Item对象,Server对象实现IOPCServer接口;Group对象实现IOPCItemMgt、IOPCSyncIO接口;Item对象不实现任何接口,只是建立与数据源的连接。
    数据通信是通过OPC客户对OPC服务器的多次调用完成的。OPC客户首先要通过类厂对象创建OPCServer对象,由OPCGroup对象的IUnknown接口查询到IOPCServer接口,再通过调用这一接口根据客户需要增加多个OPCGroup对象;这样OPC客户就可以通过创建的OPCGroup对象调用IOPCItemMgt接口增加实际数量的Item对象;即创建OPCItem对象;接着通过调用OPCGroup对象的IOPCSyncIO接口成员函数Read和Write同步读写该组所包含的Item对象的属性,即实际数据值;最后OPC客户在退出时释放所有的接口并依次删除OPCItem、OPCGroup和OPCServer对象。
    客户端程序与OPC数据存取服务器连接的过程:
    步骤1:初始化COM库。
    hr="CoInitialize"(NULL);
    if(FAILED(HR))
    {
       AfxMessageBox(“CoInitialize fail!”)
               return true;
     }
    …….
    CoUninitialize();
    return FALSE;
    步骤2:创建Server对象(以下代码均略去变量定义、出错处理等部分)。
    CLSIDFromProgID(PROGRAM_ID,&clsid);
    HRESULT hr="CoCreateInstance"   (clsid,NULL,CLSCTX_INPROC_SERVER,IID_IUnknown,reinterpret_cast<void**>(&m_pUnknown));
    if(FAILED(hr))
    MessageBox(“can't create server”);
    return TRUE;
    步骤3:获得IOPCServer 接口。
    m_pUnknown->QuertyIterface(IID_IOPCServer,( void**)(&m_pServer));
    步骤4:添加组
    m_pServer->AddGroup(“GROUP”,TURE,CLIENT_RATE,1,NULL,NULL,O,&m_hGroup,&revisedUpdateRate,ID_IOPCItemMgt,(LPUNKNOWN*)(&m_pItemMgt));
    步骤5:添加其他接口
    m_pItemMgt->QueryInterface(IID_IOPCSyncIO, ( void**)(&m_pSyncIO));
    m_pItemMgt->QueryInterface(IID_IOPCASyncIO, ( void**)(&m_pASyncIO));
    利用IOPCServer接口,可以实现增加或删除组对象等管理功能;利用IOPCItemMgt接口在组中可以实现增加(IOPCItemMgt::AddItems()、删除(IOPCItemMgt::DeleteItems())及管理项等功能,利用IOPCSyncIO和IOPCASyncIO可进行数据的同步或异步读写操作,不多赘述。
2.2 通过创建包装类实现客户端
    利用#import伪指令引入类型库,编辑器从类型库中读取信息并且创建包装类。不仅可以对类型库文件(.tlb)使用#import指令,也可以对组件DLL或EXE文件,甚至支持类型库的复合文件和LoadTypeLib函数可以理解的任何其他文件格式使用#import指令。#import指令将产生两个文件,他们位于输出路径,和类型库具有相同的名称,后缀分别为“.tlh”和“.tli”。用#import指令引入类型库时,在StdAfx.h文件中添加:#import “...\...\OPCServer\OPCServer.tlb”\,其他步骤代码类似COM库函数开发方式。
    包装类封装了COM库函数,Visual C++客户程序通过包装类访问组件提供的属性和方法。虽然中间多了一层,但对客户程序开发人员来说,却方便多了。#import指令利用了一个新的类:_com_ptr_t,也被成为智能指针,是一个模板类,它封装了接口指针并提供了一些方法和重载操作符来简化指针的操作。智能指针自动执行COM的CoCreateInstance和QuertyIterface、AddRef和Release函数。要实现异常处理,可使用try/catch块。在catch块中,异常对象类型为_com_error对象。_com_error类封装了HERSULT错误代码和IerrorInfo接口提供的相关环境信息。用#import伪指令,使得在Visual C++中使用代码组件和在VBA中一样方便,而且不需要在工程中对组件进行源代码维护。
2.3 利用第三方的动态连接库或工具包快速开发OPC客户端
    互联网上有一些OPC客户端和服务器的开发工具包(ToolKit),利用这些工具包可以快速地开发OPC程序,但这些工具包大多需要付费。Factory Soft还开发了比较通用的服务器和客户端的快速开发工具,文献[4]介绍了把它用于先进控制软件平台的开发和应用情况,但这个开发工具价格昂贵,不适合中小型系统的自主开发。也有一些是免费的客户端程序和可产生仿真数据的服务器程序以及一些测试评价工具。比如Wintech OPC Server Client Develop Kit (1.0),其源代码可从http://www.csdn.nethttp://www.win-tech.com /index.htm 下载,解压缩后需注意四个文件:WTclient.dll、Wtclient lib文件、WTclientAPI.h、Wtclient Word文档。WTclientAPI.h 定义了部分API函数,这些API函数的实现以DLL的形式封装起来,详见WTclient DLL User
系统分类: 工业以太网
用户分类: 无分类
标签: 无标签
来源: 无分类
发表评论 阅读全文(127) | 回复(0)
23【下一页】总共 , 当前 /