船闸监控系统设计——WINCC监控部分_第1页
船闸监控系统设计——WINCC监控部分_第2页
船闸监控系统设计——WINCC监控部分_第3页
船闸监控系统设计——WINCC监控部分_第4页
船闸监控系统设计——WINCC监控部分_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、 淮阴工学院毕业设计说明书(论文) 第 45 页 共 45 页1 引言京杭大运河是中国古代一项伟大的水利工程,也是世界上开凿最早,里程最长的大运河。它南起浙江杭州,北至北京通县北关,全长1794公里,贯通六省市,流经钱塘江、长江、淮河、黄河、海河五大水系。因北京地势比通县高,在通惠河上修筑了五道闸门,控制水位,使南来的大船才可直达北京城内的积水潭。那时积水潭"舳舻蔽水",成为一个南北漕运的大港口,附近市场繁荣,盛况空前。 京杭大运河畅通了数百年,这对促进大江南北经济文化的交流,解决南粮北调等问题,均发挥了重要作用。1.1 课题背景京杭运河苏北段长404公里,规划等级为二级航

2、道,常年可通航2000吨级航道,水位总落差31.6米,沿河有10个航运梯级,建有20座大型船闸,另由三个枢纽正在建三线船闸。年货物通过量已超过1亿吨,货物周转量达210亿吨公里,超过全省内河货物周转量的1/3,是苏北向的能源运输大通道,不仅对江苏,而且对上海、浙江乃至华北地区的经济发展起着举足轻重的作用。苏北运河集中了20多个大型船闸,船闸平面布置不仅是双线,而且有的枢纽达到三线,这是全国乃至全世界均为少见。同时,苏北运河一线船闸的平面尺度基本是20*230*5.0米,由于船闸尺度基本相同,为船闸的维修、管理提供了极大的方便。目前,船闸管理所具体操作执行,及基本达到了制度化、规范化管理,多数船

3、闸管理所均制订了详细的船闸管理制度手册,船舶过闸费的征收每年为国家带来了大量的财政收入,这些收入也用于船闸的日常养护管理之中,保证了船闸的正常运行。随着经济的发展,货运量大, 目前京杭运河苏北段上的很多船闸均处于饱和状态,全年24小时不间断连续运行,仍难以满足船舶通过量增大的需要,给船闸的运行养护带来很大压力,一旦船闸的机电设备发生短期内无法排除突发故障,将直接导致苏北运河断航或严重堵塞,直接影响华北地区的电煤运输乃至国民经济的发展。船闸收入与养护管理投入不协调这个问题很严重,虽然征收的过闸费每年为3亿左右,但是每年用于船闸养护管理的费用微乎其微,造成船闸的维护跟不上水运事业的发展,降低了船闸

4、的使用寿命。船闸维护水平低,制约水运优势难以发挥。船舶过闸拥挤碰撞现象严重,过闸时间长,目前京杭运河苏北段的10个梯级船闸以及沿河口门航道上的船闸通过量达到或超过了船闸的设计通过能力,造成船舶过闸经常出此案拥挤状态,形成了水运效率发挥的瓶颈。分析原因主要由以下几点:(1)随着经济的发展,货运量的增大,水运基础设施的建设一直滞后水云事业的发展。(2)船舶大型化趋势明显,但是规范化、标准化程度还不够,致使船闸过闸拥挤、过闸时间长,同时降低了船闸的使用寿命。(3)收费方式落后,收费手续多,服务水平低,也是造成船闸过闸时间长的原因之一。1.2 课题任务我毕业设计的课题是以京杭运河苏北段某船闸控制为背景

5、的,运用PLC控制技术,WINCC组态软件以及PROFIBUS总线技术,构建工业控制网络,编制并调试程序,以及利用WINCC监控闸门的升降,通航灯的显示变化,闸室上下游水位的数值等动态对象,模拟实现船只顺利通过船闸的要求。1.3 课题研究思路1.3.1 课题研究的内容用Win CC监控组态软件模拟闸门通航灯、上升下降上限下限指示灯的状况及其闸室、上下游水位的状态,并用Win CC监控组态软件与PLC通信实现闸门红绿灯之间转换、闸室上下游水位变化以及闸门运用状况的监控。通过模拟画面的设计,可以让同学们在实验之前了解实验流程以及实验要求。通过实验画面的设计,让同学们更好的了解PLC内部运行过程,也

6、可以直观的检测到自己编写程序的正确性,增强同学们对PLC学习的兴趣和他们的动手能力,从而更好的掌握PLC的知识。1.3.2课题研究步骤 按照所要设计的结构特点、控制要求和设计目标来编制各个模拟画面。同时按照从简单到复杂的顺序来编写和调试各个程序。更考虑到船只上行与下行的类似性,调试船只下行的程序,船只上行也就迎刃而解了。1)对4组通航灯显示程序的编制和调制。2)对上下游闸门运行指示灯程序的编制和调制。3)对上下游闸门运行程序的编制和调制。4)对上下游及闸室水位比较的程序编制和调制。5)对船闸运行程序的编制和调制。2 WINCC概况与简单应用2.1 WINCC组态软件概况 WINCC是在微软公司

7、windows2000和 windows XP平台上功能强大的HMI/SCADA系统。亦即操作员和控制过程之间的接口。对过程的实际控制是由自动化系统来实现。而用WINCC实现操作员和自动化系统之间的通信。2.1.1 WINCC简介 西门子视窗控制中心SIMATIC WINCC (Windows Control Center)是HMI/SCADA软件中的后起之秀。在设计思想上,SIMATIC WINCC秉承西门子公司博大精深的企业文化理念,性能最全面,技术最先进,系统最开放的HMI/SCADA软件是WINCC开发者的追求。WINCC是按世界范围内使用的系统设计的,因此从一开始就适合于世界上各个主

8、要制造商生产的控制系统。如A-B、Modicon、GE等,并且通讯驱动程序的种类还在不断地增加。 WINCC V6.0采用标准Microsoft SQL Server 2000数据库进行生产数据的归档,同时具有Web浏览器功能。 作为SIMATIC全集成自动化系统的重要组成部分,WINCC确保与SIMATIC S5、S7和505系列的PLC连接的方便和通讯的高效;WINCC与STEP7编程软件的紧密结合缩短了项目开发的周期。2.1.2 WINCC性能特点 WINCC具有以下性能特点: (1)创新软件技术的使用。WINCC是基于最新发展的软件技术。西门子公司与Microsoft公司的密切合作保证

9、了用户获得不断创新的技术。 (2)包括所有SCADA功能在内的客户机/服务器系统。即使最基本的WINCC系统仍能够提供生成复杂可视化任务的组件和函数,生成画面、脚本、报警、和报表的编辑器由最基本的WINCC系统组件建立。 (3)可灵活剪裁,由简单任务扩展到复杂任务。WINCC是一个模块化的自动化组件,即可以灵活地进行扩展,从简单的工程到复杂的多用户应用,又可以应用到工业和机械制造工艺的多服务器分布系统中。(4)强大的标准接口(如OLE,ActiveX和OPC)。WINCC提供了OLE,DDE,ActiveX,OPC服务器和客户机等接口或控件,可以很方便地与其他应用程序交换数据。 (5)使用方便

10、的脚本语言。WINCC可ANSI-C和Visual Basic脚本程序。 (6)开放API编程接口可以访问WINCC的模块。所有的WINCC模块都有一个开放的C编程接口(C-API)。这意味着可以在用户程序中集成WINCC的部分功能。 (7)具有向导的简易(在线)组态。WINCC提供了大量的向导来简化组态工作。在调试阶段还可进行在线修改。 (8)可选择语言的组态软件和在线语言切换。WINCC软件是基于多种语言设计的。这意味着可以在英语、法语、德语以及其他众多的亚洲语言之间进行选择,也可以在系统运行时选择所需要的语言。 (9)提供所有主要PLC系统的通讯通道。作为标准,WINCC支持所有连接SI

11、MATIC S5/S7/505控制器的通讯通道,还包括PROFIBUS DP,DDE和OPC等非特定控制器的通讯通道。此外,更广泛的通讯通道可以由选件和附加件提供。 (10)与基于PC的控制器SIMATIC WINAC紧密接口,软/插槽式PLC和操作、监控系统在一台PC机上想结合无疑是一个面向未来的概念。在此前提下,WINCC和WINAC实现了西门子公司基于PC的、强大的自动化解决方案。 (11)全集成自动化TIA(Totally Integrated Automation)的部件。TIA集成了西门子公司的各种产品包括WINCC。WINCC是工程控制的窗口,是TIA的控制中心部件。TIA意味着

12、在组态、编程、数据存储和通讯等方面的一致性。 (12)集成到MES和ERP中。标准接口使SIMATIC WINCC成为在全公司范围IT环境下的一个完整部件。这超越了自动控制过程,将范围扩展到工厂监控级,为公司管理MES(制造执行系统)和ERP(企业资源管理)提供了管理数据。2.1.3 WINCC系统的构成WINCC基本系统是很多应用程序的核心,它包括以下九大部件:1) 变量管理器变量管理器(tag management)管理WINCC中所使用的外部变量、内部变量和通讯驱动程序。*为了建立一个新的标签组,在已建立的连接处,单击鼠标右键。*在弹出菜单中,单击写入“新的组”(new group.)。

13、*在标签组属性对话框名称区域,输入组名。*单击OK按钮确定。在路径PLC下,将显示所建立的标签组。2) 图形编辑器图形编辑器(graphics designer)用于设计各种图形画面。 *调色板(color palette):使用调色板,可以将颜色分配到所选择的目标上。出了16中标准颜色外,用户还可以自定义颜色。 *目标样板(object palette):目标样板包括标准目标(多角形、椭圆、矩形等),智能目标(OLE控件、OLE单元、IO场等)以及窗口目标(按钮、检查框等)。 *格式样板(style palette):格式样板用来改变所选择目标的“表现性”。它和目标有关,通过它可以改变线条或

14、边框的类型、线条或边框的宽度、线条终端的式样或填充的格式。 *准直样板(alignment palette):准直样板允许你改变一个或多个目标的绝对位置,改变所选择目标相对于每一个其他目标的位置,或者统一若干个目标的高度和宽度。*缩放样板(zoom palette ):应用缩放样板可以对一个激活的窗口设置缩放因子。通过按钮能选择设置若干默认的所放因子。*菜单栏(menu bar):菜单条包含所有图标设计器的菜单命令。凡是当前没有被激活的命令在菜单条上将呈灰色。*工具栏(tool bar):工具条包含能快速实现的常用命令按钮。*字样样板(font palette):字体样板能用来改变文本目标的字

15、体、尺寸大小和颜色,以及标准目标的线条颜色。*分层栏(layer bar):使用分层条可以选择观察分层的图标目标,最多可达32个分层。默认的选择是9层。3) 报警记录报警记录(alarm logging)负责采集和归档报警消息。报警系统是由组态和实施运行部件组成。报警系统的组态部件是报警登录编辑器。报警登录是用来定义什么时候和什么类型的报警将被显示,以及显示的内容。为了显示报警,图形设计器提供了WINCC报警控制。4) 变量归档变量归档(tag logging)负责处理测量值,并长期存储所记录的过程值。在任何时候都能够显示当前的过程值。然而,如果要按时间进程来显示过程值,例如,通过一个图形或表

16、格来显示,则需要访问过去的过程值,这些数值存储在一个过程值归档中。过程值归档系统由组态和实时部件组成。其组态部件是标签登录编辑器。在该编辑器里可以组态过程值和压缩归档、定义采集和归档的时间周期,以及选择将要被压缩的过程值。归档系统的实时运行是对输入一个将要被归档的过程值到“过程归档”中这一进程做出响应。相反,标签登录的实时运行,是对从“过程归档”中读出一个被归档的过程值做出响应。5) 报表编辑器报表编辑器(report designer)提供许多标准的报表,也可设计各种格式的报表,并可按照预定的时间进行打印。6) 全局脚本全局脚本(global designer)是系统设计人员用ANSI-C及

17、Visual Basic编写的代码,以满足项目的需要。7) 文本库文本库(text script)编辑不同语言版本下的文本消息。8) 用户管理器用户管理器(user administrator)用来分配、管理和监控用户对组态和运行系统的访问权限。9) 交叉引用表交叉引用表(cross-reference)负责搜索在画面、函数、归档和消息中所使用的变量、函数、OLE对象和ActiveX控件。2.1.4 WINCC的实时运行通过应用实时运行软件(runtime),操作员能运行和监视一个实际的过程,实时运行软件具有以下任务:读取存储在CS数据库中的数据;显示屏幕;与自动化系统通信;对当前的实时数据,

18、例如,过程值和报警事件,进行归档;过程的实时运行,例如,制定设定值,激活、去激活过程。2.2 WINCC的应用(1) WINCC的部件WINCC的基本组件是组态软件和运行软件。WINCC的浏览器是组态软件的核心。在WINCC浏览器中显示整个项目的结构并进行项目的管理。为了开发和组态项目,提供了一组特殊的编辑器,由WINCC的浏览器访问这些编辑器。通过每一个编辑器,组态WINCC的一个特殊的子系统。应用实时运行软件,操作员能够运行和监视过程。 (2)在WINCC内开发和组态项目为了WINCC内建立一个项目,步骤如下:1)启动WINCC。*启动WINCC,单击“开始” 单击“开始”>SIMA

19、TIC>WINCC>Windows Control Center 6.0菜单项,如图2-1所示:图2-1 启动WinCC2)建立一个项目。3)选择和安装通信驱动。4)定义标签。5)建立和编辑过程屏幕。6)指定WINCC的实时性质。7)在WINCC实时运行下激活屏幕。8)应用仿真器测试过程屏幕。2.3 S7-300与WINCC之间的通信2.3.1 S7-300与WINCC之间通信的实现方法SIMATIC WINCC采用了最新的32位技术的过程监控软件,具有良好的开放性和灵活性。无论是单用户系统,还是冗余多服务器/多用户系统,WINCC均是较好选择。通过ACTIVE,OPC,SQL等标

20、准接口,WINCC可以方便的与其他软件进行通信。WINCC与S7-300系列PLC的通信,可以采用MPI和PROFIBUS两种通信协议之一进行。1、软硬件要求PC机、S7-300系列PLC、CP5412 A2板卡用于带PCMCIA插槽的笔记本电脑、PROFIBUS电缆及接头、安装CP5412 A2板卡驱动程序、安装WINCC组态软件及驱动程序软件PBDP54122、组态打开SIMATIC NETCOM PROFIBUS,新建一个组态,主站为SOFTNET-DP,从站为PRIFIBUSDP。从站的地址选择与PLC通信模块的地址相一致。然后用该软件对从站进行配置:打开从站属性,在CONFIGURE

21、选项中,选择8BYITS IN8BYITS OUT。3、设置PGPC INTERFACE.在Access Point of the Application中选择CP-L2-1,在INFERFACE PARAMETER ASSIGNMENT选择CP5412 A2在属性里激活DP协议,并在DP-DATABASE参数中输入*.LDB文件的完全路径。设置完成后可以诊断配置是否正确,通信是否成功。4、WINCC设置在WINCC变量管理器中添加一个新的驱动程序,新的驱动程序选择PROFIBUSDP.CHN。选择CP5412 (A2)BOARD1,在SYSTEM PARAMETERS设置参数。5、建立变量

22、WINCC中的变量类型有IN和OUT。IN和OUT是相对于主站来说的,即IN是WINCC从S7-300系列PLC读入数据,OUT是WINCC向S7-300系列PLC读出数据。2.3.2 WINCC监控界面与S7-300 PLC程序的连接1)添加逻辑连接若要使用WINCC来访问自动化系统(PLC)的当前过程量,则在WINCC与自动化系统间必须组态一个通讯连接。通讯将由称作通道的专门的通讯驱动程序来控制。WINCC有针对自动化系统SIMATIC S7的专用通道以及与制造商无关的通道,例如PROFIBUS-DP和OPC。*添加一个通讯驱动程序,右击浏览窗口的“变量管理”,在快捷菜单中选择“添加新的驱

23、动程序”,菜单项如图2-2所示。*在“添加新的驱动程序”对话框中,选择一个驱动程序“SIMATIC S7 Protocol Suite.chn”并单击“打开”按钮,所选择的驱动程序将显示在变量管理的子目录下。*单击所显示的驱动程序前面的“+”,将显示当前驱动程序所有可用的通道单元。通道单元可用于建立与多个自动化系统的逻辑连接。逻辑连接表示与单个的、已定义的自动化系统的接口。*右击MPI通道单元,在快捷菜单中选择“新驱动程序的连接”菜单项。在随后打开的“连接属性”对话框中输入PLC作为逻辑连接名,单击“确定”。图2-2 WinCC通信驱动2)建立过程变量*单击“变量管理”>SIMATIC

24、S7 PROTOCOL SUITE>MPI前面的“+” 。展开各自节点,右击出现的节点PLC,在快捷菜单中选择“新建变量” 菜单项,如图 2-3所示。*在“变量属性”对话框中给变量命名为“Q4.0”,并选择数据类型为“二进制”。*必须给过程变量分配一个在PLC中的对应地址,地址类型与通讯对象相关。单击地址域旁边的“选择”按钮,打开“地址属性”对话框,如图2-4所示。*在过程变量的“地址属性”对话框中,选择数据列表中过程变量所对应的存储区域为“OUTPUT” 连接“Q4.0”。*单击“确定”按钮,关闭“地址属性”对话框。单击“确定”按钮,关闭“变量属性”。模拟画面中变量清单:变量名变量类型

25、变量使用说明white1 二进制上闸首上升指示灯White2二进制上闸首下降指示灯White3二进制上闸首上限指示灯White4 二进制上闸首下线指示灯White5二进制下闸首上升指示灯White6二进制下闸首下降指示灯White7二进制下闸首上限指示灯White8二进制下闸首下限指示灯White9二进制上游(左上)通航灯White10二进制上游(右上)通航灯white11二进制下游(左上)通航灯white12二进制下游(右上)通航灯Red1二进制上游(左下)通航灯Red2二进制上游(右下)通航灯Red3二进制下游(左下)通航灯Red4二进制下游(右下)通航灯y1无符号16位数上游水位Y位置Y

26、2无符号16位数上游水位高度Y3无符号16位数闸室水位Y位置Y4无符号16位数闸室水位高度Y5无符号16位数下游水位Y位置Y6无符号16位数下游水位高度Y7无符号16位数上闸首闸位Y8无符号16位数下闸首闸位Y9无符号16位数上闸首闸门Y位置Y10无符号16位数下闸首闸门Y位置Y11无符号16位数上限20 起始值10Y12无符号16位数上限20 起始值10C1二进制中间变量C2二进制中间变量C3二进制中间变量C4二进制中间变量C5二进制中间变量C6二进制中间变量C7二进制中间变量C8二进制中间变量C9二进制中间变量3 船闸模拟画面的设计3. 1概述1)目的通过对船闸模拟界面的演示,使学生更好的

27、了解船闸运行的规律。实验界面清晰直观,清晰地体现了所编PLC程序的运行情况,为学生进一步的调试提供了条件。 2)主要流程图总体流程图:以下行为例3)下闸首控制过程流程图如图所示:4)实验步骤1)用WINCC图形编辑器组态闸门模拟运行画面和监控界面;2)用WINCC脚本系统来编辑闸门模拟运行程序和监控程序。3)本实验以上游到下游为例。a)船只在上游,上游水位与闸室水位比较,启动充水阀直到水位齐平b)启动开启上游闸门指令,直到上游闸门全开c)船只自由进入闸室,等待闸室船满。d)启动关闭上游闸门指令,直到上游闸门全关。e)船只在闸室,闸室水位与下游水位比较,启动泄水阀直到水位齐平f)启动下游闸门开启

28、电机。g)直到下游闸门全开,置通航灯为通航状态。h)船只出闸。 5)船闸监控画面的设计及注意事项 通过对船闸监控画面的设计,我学习了如何通过C语言来进行编写程序,遇到问题时候以转换思考角度解决。同时船闸监控画面的运行让我们更加直观的明白船闸的运行过程。船闸是在水位集中跌落的情况下,用以保证通航的水利工程建筑物。它利用向两端有闸门控制的航道内灌、泄水,以升降水位,使船舶能克服航道上的集中水位落差的厢形通航建筑物。由闸室、闸首、闸门、引航道及相应设备组成。当船下行时,先将闸室充水,待室内水位与上游相平时,将上游闸门开启,让船只进入闸室。随即关闭上游的闸门,闸室放水,待其降至与下游水位相平时,将下游

29、闸门开启,船只即可出闸。船只上行时,先将闸室泄水,待室内水位与下游水位齐平,开启下闸门,让船只进入闸室,随即关闭下游闸室,向闸室灌水,待闸室水位与上游水位齐平,打开上游闸门,船只驶出闸室,进入上游航道。在设计船闸画面的过程,首先要考虑的是船闸运行的情况,了解其原理,只有根据实际才能做出符合要求的画面。根据流程图,首先了解各个部件之间的前后关系。特别值得注意的地方:1)在设计闸门上升下降程序时候,必须在上游、闸室水位比较并充水使两者齐平,而后触发闸门上升。2)闸门的运动过程必须考虑指示灯,其中设置指示灯变量时要注意到默认的是1状态。3)闸门到上限后,船只到闸室的时间也必须考虑在内,我是以一变量从

30、初始值递加到上限来解决次问题的。当此值到上限值后使得船只可以通行(通航灯亮)。4)各个变量必须考虑初始值、上下限值,这样才能使程序顺利运行。5)上下闸门闸位显示是根据闸门Y位置所设计的,其中有2种情况:上升是闸门开度加上上升的高度;下降是闸门开度减下降的高度。3.2制作模拟画面过程1)建立过程画面*启动WINCC,创建新项目zc.mcp。如图3-1。图3-1建立过程项目*右击WINCC资源管理器的图形编辑器,从快捷菜单中选择“新建画面”菜单项,将建立一个名为New pdl0.pdl的画面。右击此文件,从快捷菜单中选择“重新命名”菜单项,在随后打开的对话框中输入zc.pdl。 *双击画面名称zc

31、.pdl,打开图形编辑器编辑画面。将出现下如图3-2图3-2 图形编辑器2) 编辑画面打开已重新命名的画面zc.pdl,在打开的画面中编辑船闸画面。在画面中创建以下对象:上闸首下闸首闸位显示(输入输出域)、上升下降上限下限各4个指示灯、上游下游各2个通航灯、闸室4个通航灯、主回路电压显示(输入输出域)、主回路电流显示(输入输出域)、上闸首下闸首各1个。在画面上组态上下闸首、上下游及闸室水位、四组交通灯、四组指示灯、输入输出口、文本框。 选择菜单“对象选项板” >“标准对象”,显示标准对象中的对象目录。双击“标准对象”中的“线”和“圆”,在绘画区绘制上下游闸首、上下游闸首上升下降上限下限指

32、示灯、上下游通航灯、闸室通航灯。 选择菜单“对象选项板” >“标准对象”,显示标准对象中的对象目录。双击“标准对象”中的“静态文本框”。 在菜单中选择“全局库”,选择对象。如图3-3 图3-3 全局库 选择“智能对象”中的“输入/输出域”,放置在如图3-4位置 改变画面中各对象的属性*右击画面中各个灯泡,从快捷菜单中选择“属性”,并定义各自名称为:white1,white2,white3,white4,white5,white6,white7,white8,white9,white10,white11,white12,red1,red2,red3,red4。同时把它们的颜色改变为白红和名

33、称相对应。* 右击各个闸门,将上下游闸门分别命名为c1,c2。* 右击文本以及输入/输出域,改变它们属性中的颜色和文本以及名称。*单击保存 图3-4 船闸模拟画面图3-5 上闸首监控画面图3-6 上闸首立体图编辑脚本运用C语言编辑器编辑脚本*右击上闸门运行指示灯,在菜单中选择属性,命名指示灯为“white1”。*右击上闸门运行指示灯,在菜单中选择属性>”几何”>“位置Y”,编辑程序如下:图3-7 C语言编辑器*船闸运行部分程序说明:(1)当前船只在上游,上游通航灯为红,禁止通行。首先进行上游及闸室水位的比较,根据水位的Y位置与高度的改变来处理此问题。#include "a

34、pdefap.h" long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)int y1,y3;y1=GetTagWord("NewTag-20");/Return-Type: WORD y3=GetTagWord("NewTag-22");/Return-Type: WORD if(y3!=y1);y3=y3-2;SetTagWord("NewTag-22",y3);/Return-Type: BOOL return y3

35、;#include "apdefap.h" long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)int y2,y4;y2=GetTagWord("NewTag-21");/Return-Type: WORD y4=GetTagWord("NewTag-23");/Return-Type: WORD if(y4!=y2)y4=y2;SetTagWord("NewTag-23",y4);/Return-Type:

36、BOOL return y4;(2)两者水位齐平后,闸门的上升是一个难题。因为必须有闸门运行的指示灯配合,当然也大大加大了编程的难度。上升下降指示灯根据闸门Y位置变化而运行,上限下限根据闸门Y位置上下限来执行。当然闸门的下降就必须建立一个中间变量,当变量上升到设定值时,闸门下降,期间变量变化时间就是船只进入闸室的时间。#include "apdefap.h"long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)BOOL c2,c3;int c1,y1,y3,y9;y1=G

37、etTagWord("NewTag-20");/Return-Type: WORD y3=GetTagWord("NewTag-22");/Return-Type: WORD y9=GetTagWord("NewTag-18");/Return-Type: WORD c1=GetTagWord("NewTag_27");/Return-Type: WORD c2=GetTagBit("NewTag_28");/Return-Type: BOOL c3=GetTagBit("NewTag

38、_29");/Return-Type: BOOL if(c2=0)if (y1=y3)y9=y9-2;if(y9<320) &&(y9>280)SetTagBit("NewTag-10",TRUE);/Return-Type: BOOL if(y9<=280)SetTagBit("NewTag-12",TRUE);/Return-Type: BOOL if(y9=280)SetTagBit("NewTag-10",FALSE);/Return-Type: BOOL if(y9=280)Set

39、TagBit("NewTag",TRUE);/Return-Type: BOOL if(y9=280)SetTagBit("NewTag_1",FALSE);/Return-Type: BOOL else if(c2=1) if(c1=350)y9=y9+10;if(y9>=370)y9=370;if(y9>280)&&(y9<370)SetTagBit("NewTag-11",TRUE);/Return-Type: BOOL if(y9!=280)SetTagBit("NewTag-12&

40、quot;,FALSE);/Return-Type: BOOL if(y9=370)SetTagBit("NwTag-13",TRUE);/Return-Type: BOOL if(y9=370)SetTagBit("NewTag-11",FALSE);/Return-Type: BOOL if(y9=370)SetTagBit("NewTag-13",TRUE);/Return-Type: BOOL SetTagBit("NewTag_1",TRUE);/Return-Type: BOOL SetTagBit(&

41、quot;NewTag",FALSE);/Return-Type: BOOL SetTagBit("NewTag_29",TRUE);/Return-Type: BOOL SetTagWord("NewTag-18",y9);/Return-Type: BOOL return y9;(3)上游闸门闸位显示闸位的显示利用输入/输出域,其中设定一个预设值,表示闸门的开度,而后根据闸门的Y位置改变数值。闸门上升时候闸位是预设值加闸门的改变值,而下降时候是预设值减去闸门的改变值。#include "apdefap.h" double

42、 _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)int y7,y9,y19;y7=GetTagWord ("NewTag-8");/Return-Type: BOOL y9=GetTagWord("NewTag-18");/Return-Type: WORD y19=GetTagWord("NewTag_26");/Return-Type: WORD if (y19=10)if (y9>=320)y7=32-(y9-320)/1

43、0;else if(y7<=320)y7=32+(320-y9)/10;else if(y7=36)y19=y19+1;SetTagWord("NewTag-8",y7);/Return-Type: BOOL return y7;SetTagWord("NewTag_26",y19);/Return-Type: BOOL return y19;3) 调试结果利用组态软件WinCC基本能模拟船闸的运行过程,当船停留在上游时,上游通航灯为红色,此时闸室的水位与上游水位进行比较,并使闸室的水位与上游水位齐平,然后上闸门慢慢上升,闸门的运行状态通过4个指示

44、灯指示。闸门的开度到达上限,外部通航灯变成绿色,船只进入闸室,此时闸室的水位又与下游水位比较并放水齐平,而后下闸门缓缓上升,运行的过程也由指示灯显示,当下闸门达到上限,船只出闸,最后下闸门关闭。模拟画面中的缺点是船只在闸室中,为了使闸室水位与下游水位齐平,闸室放水时,船只的下降与闸室水位的下降没有完全同步。下闸门的下限指示灯没有办法正常显示。结 论 本设计是船闸监控系统设计WINCC监控部分。经过两个多月的努力,我完成了船闸监控画面,并模拟实现了船闸的运行过程。通过对课题的理解,设计,调试,提高了我的思维能力及方式,更促进我的软件设计能力。在接到任务书之后,我不断搜集相关材料,利用WINCC监

45、控船闸的画面简单易行,更加容易被人理解。通过直观显示的模拟画面,增强了同学们学习PLC的兴趣,并为以后学习PLC创建了一个良好的实例。在一次次调试中,实验的结果基本与现实船闸的运行相符合,但是在调试过程中闸门的开度等变量都是预先设定的,而现实中是运用传感器测定水位的;还有闸门的运行问题,都是到上下限停止的。这是本次设计中的毛病。致 谢在刘斌主任的带领下,本次的毕业设计,就要划上句号了。此次的毕业设计对于我来讲,并不代表着一次设计,更多的培养了我的思考能力和团队合作的精神。从设计中我学到了许多课本学不到的知识,也让我明白了实践的重要性。在过去的两个多月的学习和努力中,在各个老师的耐心指导下,使我

46、的思维能力和知识水平有了质的改变。在此次毕业设计中,非常感谢电信系对毕业生的照顾,系里为我们毕业生提供了良好的实验坏境,这为我们更好的完成设计提供了好的条件。同时,各个学生毕业设计的进展,刘主任总是时刻关心着,每个礼拜都抽出自己宝贵的时间详细询问每个学生的情况,遇到难题总是详尽的讲解和指导。通过这次设计,使我懂得了实践的重要性,也让我明白多一分耕耘就多一分收获。在此,我衷心的感谢在本次毕业设计中给我热忱帮助的老师和同学。特别是我的指导老师刘主任,才使我顺利的完成了毕业设计工作。 参 考 文 献1 苏昆哲.深入浅出西门子WINCC V6.北京:北京航空航天大学出版社,20042 深入浅出西门子W

47、INCC V6.0西门子(中国)有限公司自动化与驱动集团北京航空航天大学出版社 ,20043 崔坚,李佳.西门子工业网络通信指南.第1版.北京:机械工业出版社,20044 倪伟,工厂电气控制技术与PLC(PLC篇) 自编教材5 陈忠华,可编程控制器与工业自动化系统第1版北京:机械工业出版社,20066 Gilles Michel,Programmable Logic Controllers Architecture and Application .John Wiley & Sons Ltd.,19907 SIMATIC HMI WINCC V6 Getting Started Man

48、ual.西门子公司产品手册,20038 陈忠华机电一体化技术手册(上册,第3篇第6章)北京:机械工业出版社,19949 Manfred Popp.the rapid way to PROFIBUS-DP,1997(PNO Order No.:4.072)10 Lenze PROFIBUS communication manual.伦茨公司产品手册,2003附录:船闸模拟画面程序清单#include "apdefap.h" long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyNam

49、e)int y1,y3;y1=GetTagWord("NewTag-20");/Return-Type: WORD y3=GetTagWord("NewTag-22");/Return-Type: WORD if(y3!=y1);y3=y3-2;SetTagWord("NewTag-22",y3);/Return-Type: BOOL return y3;#include "apdefap.h" long _main(char* lpszPictureName, char* lpszObjectName, char

50、* lpszPropertyName)int y2,y4;y2=GetTagWord("NewTag-21");/Return-Type: WORD y4=GetTagWord("NewTag-23");/Return-Type: WORD if(y4!=y2)y4=y2;SetTagWord("NewTag-23",y4);/Return-Type: BOOL return y4;#include "apdefap.h" long _main(char* lpszPictureName, char* lpszOb

51、jectName, char* lpszPropertyName)BOOL x1;int y1,y3,y9,y19;y1=GetTagWord("NewTag-20");/Return-Type: WORD y3=GetTagWord("NewTag-22");/Return-Type: WORD y9=GetTagWord("NewTag-18");/Return-Type: WORD y19=GetTagWord("NewTag-26");/Return-Type: WORD if(y1=y3) if(y9&g

52、t;280)y9=y9-2;if(y19=20)y9=y9+10;SetTagWord("NewTag-18",y9);/Return-Type: BOOL return y9;#include "apdefap.h" long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)BOOL y11;int y9;y11=GetTagBit("NewTag-10");/Return-Type: BOOL y9=GetTagWord("

53、;NewTag-18");/Return-Type: WORD if( (y9<=320)&&(y9>280) )SetTagBit("NewTag-10",true);/Return-Type: BOOL else if(y9=280)SetTagBit("NewTag-10",FALSE);/Return-Type: BOOL #include "apdefap.h" long _main(char* lpszPictureName, char* lpszObjectName, char* l

54、pszPropertyName)BOOL y12;int y9;y12=GetTagBit("NewTag-11");/Return-Type: BOOL y9=GetTagWord("NewTag-18");/Return-Type: WORD if(y9>=320)&&(y9<350)SetTagBit("NewTag-11",true);/Return-Type: BOOL else if (y19=20)&&(y9<=350)&&(y9>280)SetTa

55、gBit("NewTag-11",true);/Return-Type: BOOL #include "apdefap.h" long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)BOOL y13;int y9;y13=GetTagBit("NewTag-12");/Return-Type: BOOL y9=GetTagWord("NewTag-18");/Return-Type: WORD if(y9<=

56、280)SetTagBit("NewTag-12",true);/Return-Type: BOOL #include "apdefap.h" long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)BOOL y14;int y9;y14=GetTagBit("NewTag-13");/Return-Type: BOOL y9=GetTagWord("NewTag-18");/Return-Type: WORD i

57、f(y9>=350)SetTagBit("NewTag-13",true);/Return-Type: BOOL #include "apdefap.h" double _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)int y7,y9,y19;y7=GetTagWord ("NewTag-8");/Return-Type: BOOL y9=GetTagWord("NewTag-18");/Return-Type: WORD y19=GetTagWord("NewTag_26");/Return-Type: WORD if (y19=10)if (y9>=320)y7=32-(y9-320)/10;else if(y7<=320)y7=32+(320-y9)/10;else if(y7=36)y19=y19+1;SetTagWord("NewTag-8&quo

温馨提示

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

评论

0/150

提交评论