(控制理论与控制工程专业论文)基于siemens+plc的ccms开发与实现.pdf_第1页
(控制理论与控制工程专业论文)基于siemens+plc的ccms开发与实现.pdf_第2页
(控制理论与控制工程专业论文)基于siemens+plc的ccms开发与实现.pdf_第3页
(控制理论与控制工程专业论文)基于siemens+plc的ccms开发与实现.pdf_第4页
(控制理论与控制工程专业论文)基于siemens+plc的ccms开发与实现.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

武汉理 二大学硕士学位论文 摘要 随着工控行业的快速发展,港口起重机上位监控系统越来越被港口工控行 业所关注。国内外各大型港口例如y i c t ( y i a n t i a ni m e m a t i o n a l c o n t a i n e r t e r m i n a l ) 、h i t 等都已应用多种起重机上位监控系统( 简称c c m sc r a n e c o n d i t i o nm o n i t o rs y s t e m ) 。由于p l c ( p r o g r a m m e r l o g i c a lc o n t r o l l e r ) 的广泛 应用,依托各种p l c 而开发的各种起重机上位监控系统,随处可见,各种组态 工具也日益增多。国外的有诸如f i x 、w i n c c 、i n t o u c h 、c i m p l i c i t y 等,国内的 有m c g s 、组态王等。但是由于组态软件的价格普遍不低,再加上港口对于起 重机监控系统的需求量呈上升趋势,各种港口用户对于监控系统的要求也越来 越多,所以利用各种高级语言自行开发起重机上位监控系统也日渐增多。 本论文依托江苏省常州市基腾电气有限公司c c m s ( c r a n ec o n d i t i o n m o n i t o r i n gs y s t e m ) 原有部分系统以及本人调试项目“江苏南通姚港港务公司7 # 门机改造”,论述了以v b 6 0 为开发工具,借助该高级语言当中集合( c o l l e c t i o n ) 概念完成了起重机本地上位监控系统的开发与实现。文中首先介绍了当前各种 上位监控系统的国内外应用现状以及主要功能,并论述了本论文课题的研究内 容、意义及完成的主要任务。第2 章中应用本人的起重机上位监控系统开发经 验,详细研究了个起重机本地上位监控系统的主要构成部分包括诸如通讯、 界面、数据刷新、界面刷新等几大部分。并以s i e m e n ss 7 3 0 0p l c 为例,具体 研究解决了起重机上位监控系统中包括与s 7 3 0 0p l c 的数据通讯、通讯数据接 收后在上位机中的处理、系统监控界面的组织、界面中控件的更新以及系统对 于数据库的具体操作等。并根据需要在系统重要部分罗列了部分v b 源代码。 另外,随着网络的应用越来越广泛,在本论文的第3 章中还论述了一种基 于i n t e m e t l a n 的p l c 远程监控技术。该系统利用v s n e t 中的a s e n e t 作为 开发工具,并利用v b 中控件制作的简易性,将通讯部分制作成专门控件在 a s p n e t 中进行调用,完成监控系统中最关键的数据通讯问题。另外,利用 a s r n e t 本身的网络浏览功能,通过i n t e m e t 或局域网网实现起重机上位监控系 统的远程通讯、远程界面调用、远程数据监控。整个系统采用典型的b s 结构。 方法简便易行,且十分经济。 武汉理工大学硕十学位论文 通过本论文,能清楚了解上位监控系统的应用现状及主要功能特点,以及本 地与远程起重机上位监控系统的优缺点。同时,还能掌握一个简单的起重机上位 监控系统的总体框架结构及系统中主要问题的简单解决方法,为进一步的开发 和应用起重机上位监控系统有着较大的帮助。 关键词:上位监控互联网浏览器数据库串行通讯p l c i i 武汉理丁大学硕七学位论文 a b s t r a c t w i t l lt h ed e v e l o p m e n to ft h ei n d u s t r y , z h em o n i t o rs y s t e mi sa t t e n d e d b ym o r e a n dm o r eu s e r a l lk i n d so fc r a n em o n i t o rs y s t e mh a v eb e e ni m p l i c a t e db y m a n yp o r t a u t h o r i t y s u c ha sy i c t 、h i t 。b e c a u s eo ft h e a p p l i c a t i o no fp l c a l l k i n d so f m o n i t o rs y s t e mc a l lb ev i e w e dw h e r ea n dw h e r ew h i c hi sb a s eo ft h ep l c 。z h e c o n f i g u r a t i o n s o f t w a r e a p p e a r s m o r et h a nb e f o r e b u t i nc a s eo fo ft h e h i g n p r i c e m a n ym a n u f a c t u r e r sb e g i nt ow o r k o v e rt h eo w nm o n i t o rs y s t e m t h ep a p e ri sb a s e do nt h ec c m s ( c r a n ec o n d i t i o nm o n i t o r i n gs y s t e m ) o ft h e j i t e n g e l e c t r i cc o r no fc h a n g z h o ua n dt h e d e b u g g i n g o ft h e r e b u i l d i n g o f7 社 c r a n s c a d eo f y a o g a n g o f n a n t o n g i ti n t r o d u c e st h ec o n c e p to f c o l l e c t i o na n db a s e do n l h ec o l l e c t i o n 、i td e p i c t i o n st h ee x p l o i t u r ea n dt h ea p p l i c a t i o no fm o n i t o rs y s t e m i n t h ef i r s tc h a p t e r , i ti n t r o d u c et h ea c t u a l i t ya n dt h em a i nf u n c t i o no fc r a n em o n i t o r s y s t e m i n t h es a m et i m e ,i td i s c u s s e st h es t u d y i n gc o n t e n t ,m e a n i n ga n df i n i s h e d m i s s i o n i nt h es e c o n d c h a p t e r , i t t r a v e r s et h em a i ns t r u c t u r eb a s eo nm yo w n e m p o l d e r i n ge x p e r i e n c ei nc c m s ,t h em a i ns t r u c t u r eo f t h ec c m sc o n s i s t so ft h e c o m m u n i c a t i o n ,f o r n ,r e f r e s h i n go f d a t a ,r e f r e s h i n go f f o r m a s t h ee x a m p l eo f s i e m e n s s 7 3 0 0p l c ,i tt r a s ho u tt h ec o l m m m i c a t i o n ,d i s p o s i n go ft h ei n c e p t e dd a t af r o m s 7 3 0 0p l c ,o r g a n i z i n go fs y t e m sf o r i l l t h er e f r e s h i n go ft h ef o r m sc o n t r o l l e ra n d t h eo p e r a t i o no fd a t a b a s e i na d d i t i o n ,t h ep a p e rs p r e a do u ts o m es o u r c ec o d e , i na d d i t i o n ,w i t ht h ee x t e n s i v ea p p l i c a t i o no ft h ei n t e r n e t ,i nt h ep a p e r st h i r d c h a p t e r i td i s c u s st h et e c h n i co fr e m o t em o n i t o rg r o u n do nt l l e i n t e r u e t l a n t h e a s p 州e ti st h et o o lo fi m p o l d e r i n gi nt h er e m o t es y s t e m w i t lt h ef a c i l i t yo f v b m a k i n g t h ec o n t r o lo fc o m m u n i c a t i n ga n di st r a n s f e r r e di nt h ea s e n e t i t c o m p l e t e st h ep i v o t a lq u e s t i o no fc o m m u n i c a t i o n 0 nt h es i d e ,m a k i n gu s eo ft h e f i m c t i o no fn e t w o r kb r o w s ea b o u ta s p n e t i tc o m e s t r u et h er e m o t e c o m m u n i c a t i n g ,t r a n s f e r r i n gl o n g d i s t a n c e ,d a t am o n i t o r i n gr e m o t e l y i nt h ei n t e m e to r t h ei n t r a n e t t h es y s t e m ss t r u c t u r ei st h eb s t h em o d ei ss i m p l ea n de c o n o m i c a l 、i t ht h ed e p i c t i o no ft h ep a p e r , t h er e a d e rc a nl e a r nt h ea p p l i c a t i o na c t u a l i t ya n d t h ee x c e l l e n c ea n dt h es h o r t c o m i n go ft h em o n i t o rs y s t e m i nt h es a m et i m e ,t h e r e a d e rc a nr e a l i z et h ef r a m eo ft h e s i m p l e m o n i t o r s y s t e m a n dt l l em a i n q u e s t i o n s ,t h e ny o u c a r lm a k ead e e p s e a t e ds t u d yo fm o n i t o rs y s t e ma n dd oy o ua a s s i s t k e yw o r d :e p i g y n o u s m o n i t o ri n t e m e tb r o w s e rd a t a b a s es e r i a lc o m m u n i c a t i o n p r o g r a m m a b l el o g i c c o n t r o l l e r 1 1 1 武汉理工大学硕士学 ! ) :论文 1 1 选题背景 第1 章绪论 目i j i f 港口行业对于p l c 的应用越来越为广泛,而依托各种p l c 出现的起重机 上位监控系统越来越多。港口的门机、轨道式龙门吊、轮胎龙门吊、桥吊等对 监控的要求也越来越高。虽然目前p l c 的控制能力很强,但是由于p l c 编程软件 监视能力弱,特别是对于一些非工控的专业人士来说,要想通过p l c 的编程软 件来检测当前整个系统运行状态包括各个电机的转速、转距等,是件并不容易 的事情,在这种情况下,使得通过起重机上位监控系统来监测各种现场参数例如 电机的转速、电流、电压等就成为港口工控行业的必然”3 。 本篇论文就是在这一背景下,以研究生论文阶段参加并完成的实际项目 “江苏南通姚港港务公司7 号门机改造”及“深圳y i c t1 2 台轮胎式龙门吊 l c c m s ( 1 , o c a lc r a n ec o n d i t i o ny o n i t o rs y s t e m ) ”为基础,并以v b 高级语言为 工具,利用v b 语著的可视化强、操作简单、控件丰富、使用方便等特点,并结 合实习所在公司“常州基腾电气有限公司”的各种技术帮助来完成的。论文主 要以港口各种大型起重机设备诸如门式起重机、轮胎式龙门吊、轨道式龙门吊、 桥吊为对象,研究解决了港口大型机械上位监控系统的通信、数据处理、数据 操作等问题1 1 】【2 】p l l 4 1 。 在论文中,首先解决了起重机上位监控系统中最关键的通信问题。上位监 控系统与p l c 的通信是整个系统中的难点。与p l c 的通信常见的有串口通信、 网口通信。在本论文的研究课题中,是以与s i e m e n ss 7 3 0 0 的串口通信为例, 依托s i e m e n s 公司提供的控件w 9 5s 7 d l l 和s 7 0 n l i n x d l l ,完成工控机与p l c 的 通信。另外,借助v b 高级语言集合( c o l l e c t i o n ) 概念,设计一特定数据配置 表,研发出了一套简单快捷的刷新通信数据和刷新系统界面控件的方法,同时 还以a c c e s s 数据库为例,完成了对通信数据的数据存储、数据查询、数据报 表输出等。接着在论文的第三章节,借助v s n e t 中a s p n e t 开发工具,直接 调用v b 语言制作的通信控件,实现了上位监控系统远程浏览功能口岬i 2 9 1 1 3 0 武汉理工大学硕士学位论文 1 2 港口起重机上位监控国内外概况 随着全球一体化进程的加快和因际经济活动的目趋频繁以及供应链管理思 想的兴起,现代港口特别是大型枢纽港的地位越来越突出。基于各种大型港口 超重机设备诸如门式起重机、轮胎式龙门吊、轨道式龙门吊、桥吊等的上位监 控系统在国内外港口日渐增多。 起重机上位监控系统可分为两类,类是以一些大型公司推出的成熟的上 位组态软件为工具设计而成,一类是有些公司应用各种高级语言开发的带有较 强公司色彩的上位监控系统。前者国外的组念工具有诸如美国w o n d e r w a r e 公司 的i n t o u c h 、美国i n t e l i n t i o n 公司的f i x 、德国西门子公司的w i n c c 、美国 g e 公司的c i m p l i c i t y 、美国t a e n g i n e e r i n g 公司的a i m a x 等,国内的有北京亚 控公司的组态王、北京昆仑通态公司m c g s 、哈尔滨华宫公司的c o n t r o x 2 0 0 0 、 大庆三维公司的f o r c e c o n t r o l ( 力控) 等。这些成熟的组态软件已经大量应用于 包括港口起重机控制行业在内的各个控制行业,具有界面美观、操作简单、运 行稳定等特点,但是价格普遍都高。后者种类较为繁多,主要以一些中小型企 业为主,以某些特定对象为基础专门开发的。例如常州基腾电气有限公司开发 的l c c m s ( l o c nc r a n e sc o n d i t i o nm o n i t o rs y s t e m ) 和r c c m s ( r e m o t e c r a n e s c o n d i t i o nm o n i t o rs y s t e m ) 。这种基于特定对象的起重机上位监控系统较之上面 的一些成熟组态软件,可通用性较差,但是由于其有明确的针对性,所以该种 小型起重机上位监控系统就有较大的灵活性和可操作性,能够根据不同用户的 具体要求进行包括界面控件在内的各种调整。在长时间的发展过程当中能同渐 成熟,显示出其在某一特定对象上较强的优势p j 。 应用各种组态软件为设计工具的优势在于开发周期短,控件成熟,用户操 作简单方便,可在做少量改动的基础上完成对各种起重机上位监控系统的设计 与应用,所以在国内外港口应用尤为广泛,特别是一些大型公司如g e 、a b b 、 s i e m e n s 等,由于在工控行业技术较为突出,开发出对应的组态软件具有涉及 面广、通用性强、用户学习周期短、技术支持到位等一系列特点,所以在工控 行业特别是港口起重机控制行业具有很明显的优势。但是,由于组态软件作为 成熟上位监控系统设计软件,应用格式、控件较为固定统一,用户仅能在组态 软件原有固定界面格式下做一些简单的二次开发,难以满足所有客户特别是一 武汉理工大学硕士学位论文 些有特殊需要客户的要求。另外,目前组态软件的应用成本较高,很多用户特 别是些中小型用户难以接受。鉴于此,应用各种高级语言开发港口起重机上 位监控系统成为国内外港口起重机上位监控系统的强劲势流。 应用高级语言开发起重机上位监控系统,可以根据国内外各种港口的不同需 要,即时、快捷、灵活地进行设计。较之以各种成熟组态软件为工具开发的超 重机上位监控系统,以高级语言( 如v b 、c + + 等) 开发的起重机上位监控系统有以 下特点。 1 ) 与p l c 通信方便快捷可根据不同的p l c ,开发特定的通信应用程序来 完成与p l c 的通信。另外,由于通信应用程序自行开发,对通信数据的处理灵 活多变,可以满足各种特殊处理要求,如字节位的分解、长整型( 四个字节) 的合并等; 2 ) 对于界面控件的处理,可以根据各种具体工况进行调整,以满足各种不 同机械设备的要求,如龙门吊的动态界面、桥吊的动态界面可以调用不同的制 作控件来完成; 3 ) 该方式应用成本较低,能依托少数开发能力较强的人完成大部分工作, 很多通用性源码可以以控件或者类、类模块的方式共享,只需对技术人员做简 单培训,即可完成大部分项目调试工作: 4 】以高级语言为基础自行开发监控系统,可以依托具体的项目,在项目的 具体调试过程中逐渐完善各项功能,既可以锻炼调试人员各方面能力,同时可 以大大节约开发成本。 目前,该方式越来越多地被些中小型企业所采用,并在一些中小型甚至一 些大型港口码头应用,如南通姚港7 # 门机l c c m s 、蛇口港1 5 # 桥吊l c c m s 、 连云港1 1 # 门机l c c m s ,深圳y i c t ( y i a n t i a ni n t e r n a t i o n a lc o n t a i n e r t e r m i n a l ) 的8 台富士龙门吊r c c m s 、1 2 台富士龙门吊l c c m s 。随着港口码 头的快速发展,港口起重枫上位监控系统的要求也必将越来越高,各种特殊要 求也会越来越多,如系统网络架构的动态模拟、联动台的模拟仿真等。这样也 将使得基于编程语言开发起重机上位监控系统越来越受一些用户的欢迎【6 l 【8 】。 武汉理工人学硕士学位论文 1 3 港口起重机上位监控系统常用功能介绍 各种起重机上位监控系统( 包括以常用组态软件设计开发而成的监控系统1 的功能及特点: 1 3 1 基本功能 1 ) 数据通信 作为工业控制行业的核心设备,p l c 有很强的逻辑控制能力,所以其几乎 被所有的工控行业所接受。而依托其存在的起重机上位监控系统,读取其数据 并进行处理是尤为重要的。各种起重机上位监控系统都能从设备底层( 主要是 指p l c ) 获得数据并将它们转化为可用数据形式。数据同样可以写入底层设备, 从而确立了控制设备和系统需要的双向连接。 2 ) 数据管理 一旦数据已经得到,将根据需要对它们进行处理、引导,这个过程被称为数 据管理。当从底层设备( 主要是指p l c ) 中读取数据后,要在系统中做出各种 处理,包括一些重要数据的数据库存储、重要参数的界面显示等。 1 ,3 2 其他功能 1 1 h m i ( 人机界面) 功能 各种起重机上位监控系统都具有较强的h m i 功能,这也是监控系统能完善 p l c 较弱的监视能力表现最为突出的一点。越是功能强大的监控系统,该点表 现得更为明显。 2 ) 报表功能 各种起重机上位监控系统具有创建报表和处理信息的能力。系统中任何数 据点都能以操作员规定的刷新率采样并保存在数据库中。依托各种控件及各种 数据库,起重机上位监控系统能根据需要完成各种报表的操作。 3 1 趋势曲线显示功能 趋势曲线用来显示各模拟量值的变化趋势,通过趋势图操作员可以看出各 种开关量、模拟量的实时变化情况,从而,给用户较强的视觉感受。 4 1 报警管理功能 4 武汉理工大学硕士学位论文 报警管理功能会在出现故障时提醒操作人员并显示故障信息,当故障消失 时记录至特定数据库当中,方便在某一时间段做出统计,得出相关硬件故障规 律。这点也是起重机上位监控系统重要的功能之一。 5 ) 系统安全管理功能 为了保证正常工业监控的需要,防止误操作造成作业停顿和大的经 济损失,要明确操作人员的职责范围,同时兼顾软件本身的安全性,防止操作 人员误修改源程序。对于操作人员的职责范围,可以在设计监控程序的时候分 配不同的权限给不同的操作者,保证各级控制命令的准确发送i 7 】l 。 1 4 本课题的研究内容和意义 本论文系统研究了一套起重机上位监控系统整体结构及开发该系统需要解 决的主要问题。并以高级语言v b 为开发工具,利用v b 6 0 的简单易懂、可视化 强等一系列特点,开发了一套结构简单、数据操作便捷、控件刷新方便、数据存 储完整的起重机上位监控系统。内容简练易懂,具有较强的实用性。 通过本篇论文能较为系统地了解当前工控行业对于起重机上位监控系统 的应用现状,熟悉起重机上位监控系统的应用前景,了解高级语言开发系统的过 程。同时,掌握起重机上位监控系统通信、数据处理、控件制作、控件刷新等 问题。 1 5 论文的主要工作和贡献 本论文研究和设计的内容是以港口大型起重机设备如门式起重机、轮胎式 龙门吊、轨道式龙门吊、桥吊等为研究对象,以高级开发语言v b 作为系统开发 工具,并以具体项目“南通姚港港务公司7 # 门机改造”项目为实例,来研究、 开发起重机上位监控系统。论文详细研究解决了包括上位机通信、通信数据处 理、界面控件刷新等关键技术难点,并开发了一套以v s n e t 中的a s e n e t 为 工具的远程起重机上位监控系统结构模式,主要完成的任务可综述为下面几点。 1 ) 解决了在v b 中如何完成与s i e m e n ss 7 3 0 0 4 0 0 的具体通信问题,为针 对s i e m e n s 系列p l c 的上位监控系统起着较大的作用; 武汉理工大学硕士学位论文 2 ) 完成了门式起重机各个重要机构的动态性能界面设计; 3 ) 以v b 6 ,0 的c o l l e c t i o n 为基础,完成了一套简单通过关键字来刷新通信数 据的方法; 4 ) 利用a c c e s s 数据库,完成了各种重要参数的存储以及各种故障信息的 存储; 5 ) 利用网页制作知识,完成报表的网页显示功能; 6 ) 利用v b 语言完成了与s i e m n e ss 7 3 0 0 4 0 0 的通信控件的制作; 7 ) 完成了在v sn e t 的a s e n e t 中的控件调用、通信数据处理、界面控件 的刷新,简单实现了远程起重机上位峪控功能。 武汉理工大学硕士学位论文 第2 章本地起重机监控系统( l c c m s ) 2 1 系统开发语言介绍 本论文研究的起重机上位监控系统是利用v b 6 0 开发的。v i s u a lb a s i c ( 以 下简称v b ) 是一门较为简单的可视化语言,它以操作界面简单、编程环境易懂、 调用控件多样,为广大编程爱好者特别是初级爱好者所喜爱。 v b 作为一门较早的可视化语言,继承了b a s i c 语言的“易学易用”,它把 按钮、文本框、图像存储框等控件模式化,并且每个控件部有若干属性用来控 制控件的外观,工作方法。这样使得它操作起来简单容易,如只需要双击工具 栏当中的按钮控件,一个标准按钮控件就在界面上完成了,这在别的一些编程 语言下要经过相当复杂的工作。正是因为上述的各种特点,在本论文的研究课 题当中,选用了v b 作为开发语言p 。 2 2 本地起重机上位监控系统架构 图2 1 是以s i e m e n ss 7 3 0 0p l c 为例的本地起重机上位监控系统的简单 系统结构图。基于目前变频器的快速发展,各种p l c 都开始直接与各种型号的变 频器直接进行总线网络通信,这为起重机上位监控系统读取各种具体参数如电 机电压,电流,转速等提供了更多的方便,也让起重机上位监控系统变得更为实 用【4 5 】【4 6 l 。 武汉理l 太学硕士学伊论文 图2 1 本地起重机上位监控系统结构图 起重机上位监控系统由硬件( 工控机、通信模块) 和软件( 操作系统、监控 系统应用程序) 组成,用于监控起重机各机组的运行参数,必要时可咀对p l c 发出各种控制指令,上位机可以通过r s 2 3 2 、4 8 5 串口,m p i ,以太网u 等与各种 p l c 进行通信”。 p l c 在数据采集的基础上坩相关设备发出控制指令,控制起重机各结构的安 全、经济运行。同时,p l c 将起重机各结构运行数据实时送往与之连接的上位 监控计算机即工控机中。另外,p l ca j _ 根据用户的特定设置安排接收上位计算 机的协调控制命令。例如,启动,停止运行等。 在图2 - 1 系统中主p l c 与变频器及远程i o 模块通过p r o f i b u s 总线进行通 信,完成对各电机转速、转向及各个接触器、中继器等的控制。上位机与主p l c 通过通信模块c p 5 6 1 1 卡,利用s i e m e n s 公司提供的控件w 9 5 一s 7 d l l 和 s 7 0 n l i m x d l l ,通过m p i d p 进行通信”。 2 3 本地起重机上位监控系统关键技术 起重机上位监控系统包括与p l c 的通信、通信数据的读取、通信数据的处 理、通信数据的刷新、通倍数据的存储、通信数据的分析、系统界面的设讨、 系统界面控件的刷新等很多过程,鉴于篇幅的有限,本论文着重研究解决本地 武汉理工大学硕士学位论文 监控系统与p l c 的通信,p l c 数据的读取,p l c 数据的处理,p l c 数据的刷新, p l c 数据的存储,p l c 数据报表分析以及系统界面控件的刷新等几个大块。 2 3 1 与p l c 的通信及数据读取 图2 - 2 上位机与p l c 通信示意图 s i e m e n s 的p l c 应用相当j “泛,本论文研究的是与s 7 3 0 0 和s 7 4 0 0 的通 信,如图2 2 所示,借助s i e m e n s 公司c p 5 6 1 1 卡及开放控件w 9 5s 7 d l l 和 s 7 0 n l i n x d l l 完成与p l c 的通信,实现通信的步骤及部分源码如下所示f 3 6 l 【47 1 : 1 ) 断开p l c 可能已经存在的连接: d i ml r e s u n l o a da si n t e g e r l r e s u n l o a d = u n l o a d 0 其中u n l o a d ( ) 为) 7 :放控件所带的函数。 2 ) 建立连接: ( 1 ) 定义特定的数据类型 t y p ep l c a d r t y p e a d r a sb y t e s e g m e n t i da sb y t e s l o t n 0a sb y t e r a c k n oa sb y t e e n d t y p e d i m p l c a d ra sp l c a d r t y p e h ( 2 ) 调用开放控件所带的特定函数 1 r e s l i n k = l o a d _ t o o l ( 1 ,”s 7 0 n l i n e ”,p l c a d r ) 9 武汉理工大学硕士学位论文 3 ) 初始化连接通道; 1 r e s i n i t 。n e w _ s s ( c o n l d x ) ,c o n l d x 为整形常量,数值可为1 4 ,默认值 为l 。 4 ) 读取p l c 中指定d b 区的数据,存储在字节数组v a l u eb y t e ( ) 中。 i d b n o 为读取p l c 中d b 区的区位参数,1 d b b y t e n o 为读取d b 区中数据的 起始地址,l r e a d b y t e a m o u n t 为读取p l c 中某个特定d b 区的字节长度,最长不 能高于5 1 2 字节,b y t e c o n t a i n e r 0 为一字节型的数组,用来存储从p l c 中读取到的 数据,1 r e s r e a d 为一整形变量,返回0 表示读取数据正常,非0 值表示读取数 据失败,下面为读取p l c 的v b 源码: i r e s r e a d 2 t f l e l dr e a d ( 1 d b n o ,i d b b y t e n o ,1 r e a d b y t e a m o u n t ,v a l u e _ b y t e ( o ) ) 这样,就完成了与s i e m e n s3 0 0 4 0 0p l c 的通信和数据读取,读取上来的数 据全部存储在字节数组v a l u e ()中【j。_byte 2 3 2p l c 数据的处理 与p l c 通讯是否正常 是 存储至字节数组 获取点信息及已| 经填充墅箜叁壁 衢丽丽 丽五面 、定时刷新集合中元素 继续连接 p l c 直至 与p l c 通 讯正常 完成数据 的刷新 图2 - 3 起重机上位通信数据处理流程示意 完成了p l c 数据的读取之后, 接着对读取的数据进行处理,使得 从p l c 中读取上来的数据能够按照 开发人员的要求来进行分类、拼组、 刷新等。图2 3 是数据处理的流程 示意图。 从示意图中可以看出,p l c 中传 送上来的字节数组根据配置表的内 容以不同的类型存入一个特殊的点 集合当中,通过v b 中的定时器控件, 定时刷新字节数组,从而刷新对应 的集合c o l l e c t i o n ,完成对通信数据 的定时刷新。下面对配置表、a p i 函数和集合进行介绍【l 】【2 】【3 】【4 】【3 6 1 。 1 ) 配置表的建立 首先,从p l c 中读取的一般为字节型数组。为了能准确把字节数组进行处理, 1 0 武汉理一亡大学硕士学侥论文 需要建立一张配置表。配置表的建立可以根据实际的工况条件选择不同的数据 库【1 2 】f 1 3 】。 配置表的建立,在整个起重机上位监控系统当中起着相当关键的作用,它包 含着每个具体点的信息,包括点的名称,点的位置,点的类型等。图2 - 4 是以 a c c e s s 数据库中个简单的配置表为例,来介绍配置表的具体内容。 图2 - 4 上 ! _ ) = 机数据刷新配置表图 配置表中主要有n o ,n a m e ,x y p e ,b y t e p o s i t i o n ,b i t p o s i t i o n ,v m u e ,d e s c r i p t i o n , n o m a l o p e n 九个列项,依次为点的序号,点的名称,点的类型,点所在字节位置,点所 在位位置,点的值,点的描述,点的常开常闭属性。通过配置表中的各个列值,可以 很精确地找到某个点在读取上来的一长串字节中的位置。所以,通过这张配置表, 能把从p l c 中读取到的一长串的数据跟起重机上位监控系统中需要用到的各种 类型的点一一对应起来。 上面的列值当中,点的类型( t y p e ) 是个重要概念。一个完整的上位监控系统, 它必须包括各种类型的点,其中有较多的开关量点如各种p l c 的输入输出点,还 有一些整形点如电机的电压电流等,还有一些特殊的如变频器故障代号等,这些 常常需要用到长整型。对于开关量点,需要把读取的字节型数据换算成二进制,然 后把每个开关量输入输出点与具体的位地址对应起来。下面重点解决的问题是 武汉理工大学硕士学位论文 关于模拟量如电压电流等的读取。 在与各种p l c 通信的过程当中,读取p l c 中的模拟量数值是必须的。对于 常以字节为单位读取p l c 数值的过程当中,如果读取数值为正整数时,只要熟 悉存放数值高低字节顺序,完成数值的整型转换并非难事,但是如果读取数值 是比较小的负值,并且放置的位置等于或大于两个字节时,这时的转换就显得 比较麻烦。接下来为大家阐述一下如何利用a p i 函数c o p y m e m o r y 来解决这种 问题。 2 ) a p i 函数介绍 a p i 函数的全称为w i n 3 2 应用程序编程接口,简称为w i n 3 2a p i ,是用来编程 控制w i n d o w s 操作系统的编程接口。说得更具体一些,w i n 3 2a p i 是由一组包 含在动态链接库中的函数和子程序组成,通过它们可以编程访问操作系统的功 能。事实上,w i n 3 2a p i 的目的就是实现w i n d o w s 操作系统所提供的服务( 也 可以称之为功能) 。由于本文的主要内容不是介绍a p i 函数,在这就不进行更深 入的论述了,若需进一步了解,可以参考相关的资料如a p i 在v b 6 ,0 中的应用 1 2 0 j 。 ( 1 ) c o p y m e m o r y 介绍 c o p y m e m o r y 是我们晟频繁使用的a p i 函数之一。c o p y m e m o r y 的目的是简 单地将一个内存块中的内容,一个字节一个字节地从一个内存地址复制到另外 一个内存地址中。对于c o p y m e m o r y 函数的最简单的v b 声明如下: p u b l i cd e c l a r es u bc o p y m e m o r yl i b 。 k e r n e l 3 2 a l i a s r t l m o v e m e m o r y “ ( d e s t i n a t i o na sa n y , s o u r c ea sa n y b y 、叫l e n 昏ha sl o n g ) 其中d e s t i n a t i o n 是目标内存的第一个字节地址,参数s o u r c e 是被复制内存 的第一个字节的地址,参数l e n g t h 是需要复制的字节数量。 ( 2 ) c o p y m e m o r y 应用 我们假定负整数- - 2 3 5 6 从p l c 渎取后放在v a l u e _ b y t e ( 0 ) 和v a l u e _ b y t e ( 1 ) 两 个字节当中,并且高字节在前,低字节在后,相应程序如下: p r i v a t es u bc m d o k _ c l i c k ( ) d i m i g e t i n t e g e ra si n t e g e r i g e t i n t e g e r = o e t i n t f r o m b y t e ( v a l u e _ b y t e ( 1 ) , v a l u e _ b y t e ( 0 ) i e n ds u b 武汉理l = 大学硕士学位论文 其中g e t i n t f r o m b y t e 函数定义如下: p u b l i cf u n c t i o ng e t l m f r o m b y t e ( b y v a ll o b y t ea sb y t e ,b y v a lh i b y t ea sb y t e ) a s i n t e g e r d i mi t e m pa si n t e g e r d i ma _ a r r a y ( 1 ) a sb y t e a a r r a y ( 1 ) 5l o b y t e a a r r a y ( 0 ) = h i b y t e c a l lc o p y m e m o r y ( i t e m p ,a a r r a y ( 0 ) ,2 ) g e t i n t f r o m b y t e 2 i t e m p e n df u n c t i o n 最后将合成后的一2 3 5 6 赋值给了整型变量i g e t i n t e g e r 存储在四个字节中的 负长整型值的读取方法与上面相类似,假定一7 4 5 8 6 存储在v a l u eb y t e ( 2 ) 、 v a l u eb y t e ( 3 ) 、v a l u e _ b y t e ( 4 ) 、v a l u e _ b y t e ( 5 ) 四个字节当中,依次排列,相应程序 如下: p r i v a t es u bc m d o kc l i c k ( ) d i m l g e t l o n g a sl o n g i g e t l o n g = g e t l o n g f m m b y t e ( v a l u e b y t e ( 2 ) ,v a l u e _ b y t e ( 3 ) ,v a l u eb y t e ( 4 ) , v a u e _ b y t e ( 5 ) ) e n ds u b 其中g e t l o n g f r o m b ”e 函数定义如下: p u b l i cf u n c t i o ng e t l o n g f r o m b y t e ( b y v a lb y t e f i r s ta sb y t e ,b y v a lb y t e s e c o n d a s b y t e ,b y v a lb y t e t h i r da sb y t e ,b y v a lb y t e f o r t h a sb y t e ) a sl o n g d i mi t e m pa sl o n g d i ma a r r a y ( 3 ) a sb y t e a a r r a y ( 0 ) = b y t e f i r s t a a r r a y ( 1 ) 。b y t e s e c o n d a a r r a y ( 2 ) = b y t e t h i r d a a r r a y ( 3 ) = b y t e f o r t h c a l lc o p y m e m o r y ( i t e m p ,a a r r a y ( 0 ) ,4 ) g e t l o n g f r o m b y t e 。i t e m p 武汉理工人学硕士学位论文 e n df u n c t i o n 从上面程序可以看出,通过利用a p i 函数c o p y m e m o r y , 负值的转换变得非 常简单,省去了利用补码进行判定,然后通过“与”来还原的繁琐步骤。 上面就是对数据处理及配置表的一个简单叙述。当碰上数据量较大,数据类 型要求较多时,可以相对象地增加列项值即可加强对应的数据处理能力。 3 ) v b 6 0 中的c o l l e c t i o n c o l l e c t i o n 对象是项目所组成的有序集合,可以把这个集合作为单元来引 用。c o l l e c t i o n 是包含一组相关对象的对象。只要集合中发生变化,集合中的对 象的内容就可能发生变化;因此,集合内任何特定对象的内容均可改变。 c o l l e c t i o n 对象提供了简便方法,直截了当将一组相关的项目视为单一对象来引 用。集合中的项目或成员被这样一个事实联系起来:它们都属于这个集合。集 合的成员不定都是同一种数据类型的口“。 建立集合的方法与建立其它对象的方法一样。例如:d i mxa sn e w c o l l e c t i o n 一旦建立集合之后,就可以用a d d 方法添加成员,用r e m o v e 方法 删除成员。在用f o re a c h 。n e x t 语句重复整个集合时,可以用i t e m 方法从集 合返回特定成员。 这里利用c o l f e e t i o n ,主要是为了方便对数据的刷新,只需要刷新集合,就 能刷新对应的数据。下面是根据配置表来建立集合的源代码: 首先初始化点信息,并填充点集合。 p u b l i cc s p t ( 3 0 0 ) a sn e wc s t a g p o i

温馨提示

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

评论

0/150

提交评论