(系统分析与集成专业论文)plc仿真系统设计与实现及其实验应用.pdf_第1页
(系统分析与集成专业论文)plc仿真系统设计与实现及其实验应用.pdf_第2页
(系统分析与集成专业论文)plc仿真系统设计与实现及其实验应用.pdf_第3页
(系统分析与集成专业论文)plc仿真系统设计与实现及其实验应用.pdf_第4页
(系统分析与集成专业论文)plc仿真系统设计与实现及其实验应用.pdf_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 i 摘 要 摘 要 可编程控制器是自动化技术、计算机技术和通讯技术相结合的产物,具有高 性能、低成本,高工业抗干扰性等优点。长期以来,可编程控制器始终在工业自 动化控制领域起到重要作用, 为各种各样的自动化控制设备提供非常可靠的控制 应用。实现 plc 仿真具有重要的现实意义。而作为一门关键的实验课,对学校 plc 教学而言,学时和实践场地有限,如何更好地达到教学目的,满足学生的求 知欲望,提供更多机会实践和提高编程能力?本文除了分析目前 plc 实验教学 的不足,提出了以虚拟 plc 代替真实的硬件、以虚拟被控对象代替实物装置进 行实验的思想,阐述了如何利用计算机仿真技术,进行 plc 仿真,开发出一套 针对三菱 fx2n 系列的 plc 仿真软件,并为 plc 实验提供开放式实验平台,这 些将很好地解决上述问题。在实验应用方面,plc 仿真系统有着硬件 plc 不可 比拟的优越性,适应开放式数控系统的发展趋势。 本文的主要工作集中在: 1、在对可编程控制器的运行原理和语句表解释编译的详细研究基础上,实 现了对三菱 fx2n 系列 plc 指令集的解释和执行,揭示了 plc 编程语言的实现方 法。 2、在 plc 仿真平台的基础上搭建开放式实验应用平台,使学生可以轻松地 掌握 plc 的工作原理和应用方法,并可以尝试自己搭建实验模型,完成了教学的 初衷。 关键词:关键词:可编程控制器;仿真;教学实验;开放式 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 ii abstract programmable logic controller is the combination of automation technology, computer science technology and communication technology. and it has many strongpoint such as its high performance, low cost and high reliability in the industry environment. programmable logic controller, which provides reliability control application for varied automatically controller equipments, has been widely used in industry control for a long time. it has realistic significance to simulate programmable logic controller. as a key experiment class, it is limited of the studying time and practice place towards the programmable logic controller teaching. as well, how to reach the teaching goal, how to fill the students desire of knowledge, and how to provide more practice and improve the ability of program? this dissertation not only analyses the deficiency of programmable logic controller experiment teaching at present, brings forward that suppositional programmable logic controller is used to replace the real one and suppositional controlled object is used to replace the real one, expatiates how to use computer simulation technology to simulate programmable logic controller, but also develop a software for the programmable logic controller simulation which contra poses to the fx2n series from the mitsubishi company and has provide a open laboratory environment for the programmable logic controller experiment. and all of these has settle the questions above. towards the aspects of experiment, programmable logic controller simulation system has the advantages which real programmable logic controller has not, and it is adapted for the develop current of open digital controller system. this dissertation includes main aspects as follow: 1. on the basis of particular research about the run elements of programmable logic controller and the explanation and compiler of sentence table language, the dissertation realizes the explanation and compiler of the programmable logic controller repertoire towards the fx2n series from the mitsubishi company, and announces the realize method of programmable logic controller program language. 2. on the basis of programmable logic controller simulation environment, this paper makes a open experiment application flat, which makes students to control the work theory and application methods easily, and have a try on making experiment models themselves and the original intention of teaching is achieved. key words: programmable logic controller; simulation; teaching experiment; open 独创性声明独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在 文中以明确方式标明。本人完全意识到,本声明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日 学位论文版权使用授权书学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权 保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。 本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检 索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密 ,在_ _年解密后适用本授权书。 不保密 。 (请在以上方框内打“” ) 学位论文作者签名: 指导教师签名: 日期: 年 月 日 日期: 年 月 本论文属于 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 1 1 绪论绪论 1.1 可编程控制器1.1 可编程控制器 plc 简介简介 plc(programmable logic controller)可编程逻辑控制器是 20 世纪 60 年代末 期逐步发展起来的一种以计算机技术为基础的新型工业控制装置。 提出 plc 概念的是美国通用汽车公司,当时根据汽车制造生产线的需要, 希望用电子化的新型控制器代替继电器控制器,以减少汽车改型时,重新设计制 造继电器控制盘的成本和时间 1。plc 的基本设计思想是把计算机功能完善、灵 活、通用等优点和继电器控制系统的简单易懂、操作方便、价格便宜等优点结合 起来,控制器的硬件是标准的、通用的、根据实际应用对象,将控制内容编写成 软件写入控制器的用户程序存储器内 2。 什么是 plc?国际电工委员会(iec)于 1982 年 11 月和 1985 年 1 月颁布了可 编程控制器标准第一稿和第二稿,对可编程控制器作了以下的定义: “可编程控 制器是一种数字运算操作的电子系统,专为在工业环境下应用而设计。它采用可 编程的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时、计数和算术 运算等操作的命令,并通过数字式和模拟式的输入和输出,控制各种类型的机械 或生产过程。可编程控制器及其有关设备,都应按易于与工业控制系统联成一个 整体,易于扩充功能的原则而设计 3 4。 ” 世界上公认的第一台 plc 是 1969 年美国数字设备公司(dec)研制的 5。 限于 当时的元件及计算机发展水平,早期的 plc 主要由分立元件和中小规模集成电 路组成,可以完成简单的逻辑控制及定时、计数功能。20 世纪 70 年代初出现了 微处理器,人们很快将其引入可编程控制器,使 plc 增加了运算、数据传送及 处理等功能,成为真正具有计算机特征的工业控制装置。 20 世纪 70 年代中末期,可编程控制器进入了实用化发展阶段,计算机技术 已全面引入可编程控制器中,使其功能发生了飞跃。更高的运算速度、超小型的 体积、更可靠的工业抗干扰设计、模拟量运算、pid 功能以及极高的性价比奠定 了它在现代工业中的地位 6。 20 世纪 80 年代初,可编程控制器在先进工业国家中已获得了广泛的应用。 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 2 例如在美国,权威情报机构 1982 年的统计数字显示,大量应用可编程控制器的 工业厂家占美国重点工业行业厂家总数的 82%, 可编程控制器的应用数量已位于 众多的工业自控设备之首 7。这个时期可编程控制器发展的特点是大规模、 高速度、高性能、产品系列化。这标志着可编程控制器已步入了成熟阶段。 中国是 20 世纪 80 年代初引进、应用、研制、生产可编程控制器的 8。 最初在引进设备中大量使用了可编程控制器,后来在各种企业的生产设备 及产品中不断扩大了 plc 的应用。目前,中国已能够生产中小型可编程控 制器。上海东屋电气有限公司生产的 cf 系列,杭州机床电器厂生产的 dkk 及 d 系列,大连组合机床研究所生产的 s 系列,苏州电子计算机厂生产的 yz 系列等多种产品已具备了一定的规模,并在工业产品中获得了应用 9。 此外无锡华光公司、上海香岛公司等中外合资企业也是中国比较著名的可 编程控制器生产厂家。 1.2 plc、单片机、单片机、dsp 的区别的区别 单片机是一个芯片,全称单片微型计算机(microcontroller or mcu),是把一 个计算机系统集成到一个芯片上 10。而 plc 是一个系统,简单地说,plc 就是 由单片机或者其他智能芯片构建的专门用于工业控制的智能控制系统, 工业抗干 扰性强。plc 是一个电路系统,而不是单纯的一个芯片。也可以这样理解:plc 直接面向控制对象,以一定顺序和频率控制电器的通断,让所接电器按照期望顺 序通电工作。而数字信号处理器 dsp 可以说是单片机加上很多外设的集合,与 单片机很相似,但功能较强,而且由于把很多外围设备集成在一起,使用比较方 便 11。 重点阐述 plc 和单片机的区别,如下: 1、plc 是建立在单片机之上的产品,而单片机是一种集成电路。 2、单片机可以构成各式各样的应用系统,从微型、小型、中型到大型皆可, 而 plc 是单片机应用系统的一个特例 12。 3、不同厂家的 plc 有相同的工作原理,类似的功能和指标,有一定的互换 性,质量有保证,编程软件正朝着标准化的方向迈进。而单片机应用系统则是八 仙过海,各显神通,功能千差万别,质量参差不齐,学习、使用和维护都较困难。 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 3 1.3 plc 仿真概述 1.3 plc 仿真概述 离线仿真是一个比较新的课题, 就其实现对 plc 控制系统梯形图程序的离线 仿真、调试为例。该方法是对 plc 梯形图中的各个软元件的逻辑位状态安装梯 形图从左到右、从上到下的处理顺序进行处理,在处理的过程中开辟一个内存暂 存区,以存储梯形图中中间位的逻辑状态,按照堆栈的先进后出的原则来处理中 间件的逻辑关系,并最终得到输出元件的逻辑状态。还可以对所编辑的梯形图程 序进行调试,以不断修改梯形图以满足最终的用户要求。在 plc 执行过程中, 各指令逻辑操作的结果暂存在 “堆栈寄存器” 中, 并作为中间结果参与逻辑运算, 可以说,plc 指令的实现,就是通过对“堆栈寄存器”中的各个位来实现的。 由于实现离线仿真所采用的方法是利用堆栈的思想,因此我们只能观测到仿 真结果,而无法观测到各个内部元件中间变化过程,因而存在着一定的不足。则 可以以数据库为载体,从而可以实现从多个方面描述程序运行的过程和结果,弥 补上述的不足。 1.3.1 软 plc 的产生及特点 1993 年,为规范 plc 编程语言,iec 发布了 iec61131-3 标准。该标准中允 许在同一个程序中使用多种语言混合编程, 从而使编程者可根据不同的工作场合 选择合适的编程语言。由此,一项新的技术软 plc(soft plc)技术应运而生 13。 所谓软 plc 技术,就是使用 pc 机作为硬件支撑平台,利用软件实现标准 plc 硬件的基本功能 14 15。或者说,将 plc 的控制功能封装在软件内,允许于 pc 的环境中。这样的控制系统提供了 plc 的相同功能,却具备了 pc 机的各种 优点。 软 plc 具有以下优点 16: 1、开放的体系结构。软 plc 具有宽范围 i/o 端口和多种现场总线的接口, 可以支持多种硬件,用户可以自己选择合适的硬件来组成满足要求的软 plc。 2、丰富的指令集和控制模块。传统 plc 的指令集是固定的,而实际工业控 制中可能需要定义算法。软 plc 支持多种控制算法和支持用户嵌入自己的控制 算法。 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 4 3、更强的数据处理能力。能充分利用 pc 机的资源,如大容量的内存、高速 cpu 及其他硬件。 4、强大的网络通讯能力。软 plc 既可以与企业管理信息系统相连,便于企 业的整合, 也可以监控工厂的设备运行, 实现数据传输及在线监控、 编辑、 仿真、 调试等功能。 5、编程语言标准化。软 plc 技术是基于 iec61131-3 标准的,因此在掌握标 准语言后开发就比较容易。 但也不是说所有环境下,软 plc 都比硬件 plc 占有优势,比如在恶劣的工 业环境下作业, 硬件 plc 就具有高可靠性, 实物 plc 就不可被替代。 又如软 plc 实时性差,而传统 plc 是具有硬实时的,正因为如此,传统 plc 才能提供快速、 确定而且可以重复的响应。 1.3.2 国内现状 软 plc 的概念大约在 1996 年以后才被引入国内,由于技术上的不成熟,只 有在学术界少数人对此关注。 尽管 interllmtion 和 wonderware 的 hmi 和 scada 软件在我国推广都很成功, 但他们的软逻辑、软 plc 产品 p-31 和 incontrol 却少有人问津。当然,这两家公 司也不曾刻意去开发这个市场 17。 think /将 x1 的值装入栈顶; 2. ori x3; /将栈顶值取出, 与 x3 取反后的值取或, 结果存入堆栈; 3. ldi x2; /将 x2 的值取反,装入栈顶; 4. or x4; /将栈顶值取出,与 x4 的值取或,结果存入堆栈; 5. anb; /将栈顶值取出, 将其与新的栈顶值取与, 结果存入堆栈; 6. or x5; /将栈顶值取出,与 x5 的值取或,结果存入堆栈; 7. out y0; /将栈顶值输出给 y0; 8. end /一轮扫描结束,输出结果。 可以看出,指令表的操作就是对堆栈的操作,我们就可以运用堆栈的思想设 计语句表。对于一般逻辑运算电路,解释程序实现如下: 1、当plc解释程序发现ld或者ldi取指令,将该指令之前的电路块解释的结 果入栈保存在堆栈中。 2、当发现and、ani或者or、ori指令,该指令将指令所带的操作元件的状态 和当前的结果进行与、与非或者或、或非逻辑运算。 3、plc解释程序解释完一个分支块后,如果发现指令anb,说明这个分支块 和其他的常开触点、常闭触点或者一个分支块串联,此时堆栈应该出栈,当前分 支块的结果和出栈的值作逻辑与运算,将逻辑运算的结果保存堆栈的栈顶。 4、plc 解释程序解释完一个分支块后,如果发现指令 orb,说明这个分支块 和其他的常开触点、常闭触点或者一个分支块并联,此时堆栈应该出栈,当前分 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 22 支块的结果和出栈的值作逻辑或运算,将逻辑运算的结果也保存堆栈的栈顶。 plc 仿真程序用流程图如图 3-3 所示。 读一条语句表指令 读到“ld” 或“ldi” 分离操作码和操作数 将当前触点或当前触点取反 后的值存入栈顶 y 读到“and” 或“ani” 读到“or” 或“ori” 将栈顶值取出,与当前触点 或当前触点取反后的值取与 ,结果存入堆栈 将栈顶值取出,与当前触点 或当前触点取反后的值取或 ,结果存入堆栈 读到“anb” 或“orb” n n n y y 将栈顶值取出,将其与新的 栈顶值取与或取或 ,结果存入堆栈 y 读到“end” n 读一条语句表指令 y n 图 3-3 plc 仿真语句表解释流程图 对于计数器指令,暂时只是实现了 16bit 增计数器。计数器在前后两个扫描 周期输入驱动产生由 0 到 1 的跳变时,计数器的计数值增一。当计数值达到计数 器设定值时,计数器触点接通,计数器的操作停止。如果没有复位信号,触点将 保持接通状态。 计时器指令的实现是利用 cpu 的定时中断功能,系统初始化后,允许 cpu 定时器中断。 在 cpu 定时器中断处理子程序中对所有的 plc 定时器的当前值进行 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 23 扫描处理,中断周期为 plc 定时器的最小定时时间 lms,其他 10ms 和 100ms 定 时器在 lms 定时器的基础上通过计数来完成。 解释系统必须能够识别用户的程序,即能够提取基本指令进行执行,所以解 释系统的主体就是一个较为复杂的智能判断模块。 其中需要解决的关键技术问题 在于:第一,很多元件的相关指令是重合的,例如:定时器、计数器、移位寄存 器都可以使用 rst 复位指令, 解释程序执行时需要能够判断出用户是在操作哪一 种元件,这一点主要通过随后读入的元件编号来确定。同时,解释程序需要操作 相应的数据结构来实现其功能, 要做到这一点, 就需要建立完整的一套标记变量, 通过每次解释时不断的改变标记变量的值来记录当前各个元件的状态。第二,由 于解释系统通常都采用单条指令阅读, 因此在很多情况下都会出现关联指令的脱 节, 而导致执行错误。 例如移位寄存器的程序编制中, 需要依次设定外部输入端、 移位脉冲输入端、复位端,分 6 条指令实现,这 6 条指令是单独解释的,但又是 关联指令,简单的依次实现每一条指令的功能,叠加起来不但不能实现整体功能 效果,而且还会出现严重的逻辑错误。为此,在仿真时需要设定顺序关联标记变 量,来监控及完成关联指令间的数据访问。 3.5 需要注意的问题需要注意的问题 1、输入输出继电器的动作时序和响应滞后 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 24 【输入处理】输入 映象存储区读入 【输出处理】向输 出锁存区传递 【程序处理】 各软元件的映象存 储区刷新 成批获取输入端子的on/off 读取输入映象区, 根据程序运行 输出软元 件的驱动 成批输入输出方式 (刷新方式) 图 3-4 输入输出的动作时序 如图 3-4 所示,可编程控制器重复执行的处理,进行输入输出处理。 因此,在执行可编程控制器控制时,优于输入滤波与输入软元件的驱动等方面的 原因,会造成扫描周期响应滞后。 对策就是利用最新信号获得最新输出,在上述的扫描周期过程中,需要输入 的最新信息以及立即输出运算结果时,可以使用“输入输出刷新指令” 。 2、不接受宽度窄的输入脉冲信号 可编程控制器输入的 on/off 的时间宽度应比可编程控制器的循环时间长, 如图3-5所示。 若考虑输入滤波器的响应滞后为10ms, 循环时间10ms, 则on/off 的时间分别需要 20ms。因此,不能处理 1 000/(20+20)=25hz 以上的输入脉冲。 但是,若采用可编程控制器的特殊功能与应用指令,可改进这方面的情况。 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 25 程序处理程序处理程序处理程序处理 onon offoff 不能获取 输入on信号 输入处理 输出处理 扫描周期 可获取输入on信号 不能获取该输入 off信号 图 3-5 输入输出示意图 对策是可以利用高速计数器功能、输入中断功能、脉冲捕捉功能和输入滤波 器值调整功能等利于改进的方便功能,可以获取比扫描周期短的脉冲。 3、二重输出(双线圈)的动作 如图 3-6 所示,考虑在多处使用同一线圈 y3 的情况:例如,取 x1on, x2off。最初的 y3 由于 x1 为 on,其映象存储区为 on,输出 y4 也为 on。 但是,第二次的 y3,由于输入 x2 为 off,因此,其映象存储区被改写为 off。 因此,实际的外部输出为 y3off,y4on。据此可以知道,执行二重输出(使 用双线圈)时,后侧的优先动作。 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 26 输入处理 x1=on x2=off y3 y3 y4 输出处理 y3=off y4=on x1 x2 y3 图 3-6 双线圈动作示意图 对策是在触点为 or 条件下编程,或利用set、rst指令,进行输出驱动, 或利用跳转指令和步进梯形图指令。 3.6 实验应用方面的设计实验应用方面的设计 实验部分包含基本实验和综合实验两部分,基本实验又包含基本逻辑指令、 定时器指令和计数器指令实验,主要是考察学生对 plc 基本指令的掌握情况, 让学生对 plc 编程方法有初步的了解。综合实验包括电机正反转控制、十字路 口交通灯控制、无塔供水控制和小车送料控制实验,主要考察学生对各类指令的 综合掌握情况,并让学生对实际项目的开发过程有初步的了解。 实验整体框架的构思如下: 首先,必须先弄清楚每个实验的实验目的,考虑好每个实验考察了学生什么 知识点,要让学生掌握什么指令等。接着,提出相应的实验要求,让学生根据实 验要求来进行实验。只有提出合理的实验要求,才能让学生更好地、更快地完成 实验,掌握相应的知识点。可以看出,这一点对整个实验的设计来说是非常重要 的。然后,针对每条指令结合实际生活中的实例,构思出一个实验的总体框架, 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 27 如何去设计整个实验界面的总体布局,如何去表现执行元件,如何让被控对象的 动画真实地反映出被控对象等等。接着,在勾画出界面的设计、i/o 端口分配表、 时序图等辅助图表的设计。最后,编写控制程序和动画实现程序,让动画效果跟 真实的被控对象的运动轨迹尽量保持一致, 这一步将直接影响整个实验的美观程 度和直观效果。为了方便学生进行调试,还可以设计一些辅助工具,例如在线监 控系统等等。设计完成以后,要将这些编写好的实验嵌入到 plc 仿真及其实验 应用系统的主界面中去。整个构思的流程图如图 3-7 所示。 提出实验目的和实验要求 构思出实验的总体框架 勾画出界面图和各个元器件分布图 编写控制程序和动画实验程序 将编写好的程序嵌入系统 图 3-7 实验构思流程图 本章小结本章小结 本章对 plc 仿真及其实验应用系统进行了详细设计,首先,对 plc 顺序控 制程序做了简要介绍,接着分析了 plc 指令集的特点,并针对其作出 plc 语句 表指令编译模块设计。然后,提出了语句表编译时需要注意的几个问题,如双线 圈问题。最后,对基于 plc 仿真的实验应用方面提出实验构思。 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 28 4 系统的实现 4 系统的实现 4.1 语句表编辑器的实现 4.1 语句表编辑器的实现 设计目标实现: 1、允许用文本方式编辑源程序。 2、实现文本的拷贝、剪切、粘贴、删除、撤销、查找和替换等功能。 3、实现源文件创建、存储和打开等等。 4、在状态栏中显示当前光标所在的行列。 “ld”指令对应于后序表达式的一个变量, “and”/“ani”对应于后序表 达式取(取反)一个变量后与操作, “or”/“ori”指令对应于后序表达式取(取反) 一个变量后或操作, “anb”对应于与操作, “orb”对应于或操作, “out”对 应于“=”运算。后序表达式的计算方式如下: 1、建立操作数堆栈,初始化为空。 2、当表达式还未计算完 a、若读取的是操作数,则将其存入操作数堆栈。 b、若读取的是运算符,则从操作数堆栈中取出所需操作数进行计算, 并将计算结果存回堆栈。 3、当表达式读取完后,则操作数堆栈的内容为表达式的计算结果。 对语句表编辑器的具体实现用例子说明,对如下指令进行编辑: ld x0; ld x1; ani x2; or x3; ani x4; ldi x5; and x6; orb; anb; out y0; end 如上的 plc 指令解释过程如下: 1、堆栈清零,status 清零,第一条指令为“ld” ,将 status 的值压栈,将 x0 的状态保存在 status 中。下一条指令为“ld”说明又是一个电路块的开始,将 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 29 status 的值压入栈,将 x1 的状态保存在 status 中。 2、发现指令为“ani” ,将 status 和 x2 取反后的值进行逻辑与操作,逻辑运 算结果保存在 status 中。 3、下一条指令为“or” ,将 status 与 x3 进行逻辑或操作,逻辑运运算结果 保存在 status 中。 4、下一条指令为“ani” ,将 status 和 x4 取反后的值进行逻辑与操作,逻辑 运算结果保存在 status 中。 5、下一条指令为“ldi” ,说明是又一个电路块的开始,将 status 的值压入 栈,将 x5 的值取反后存入 status 中。 6、下一条指令为“and” ,将 status 和 x6 进行逻辑与操作,逻辑运算结果 保存在 status 中。 7、下一条指令为“orb” ,说明是电路块的并联,此时应将堆栈出栈,出栈 的值和 status 进行逻辑或运算,结果保存在 status 中。 8、下一条指令为“anb” ,说明是电路块的串联,此时应将堆栈出栈,出栈 的值和 status 进行逻辑与运算,结果保存在 status 中。 9、发现指令为“out” ,如果 status 为 on,则 y0 为 on,反之为 off。 10、最后一条指令为“end” ,程序扫描周期结束,将输出映像区的 on/off 状态输出,称为实际的输出,然后开始新的一轮扫描周期。 4.2 时序图 4.2 时序图 简单来说,时序图就是在某个时间范围内,把某些位寄存器的值在时间的对 应关系用矩形波的形式表现出来。下面是一个通电延时控制程序,当x0接通,定 时器t0线圈通电,t0开始延时;当2秒延时时间到后,t0的常开触点闭合使得y0 接通;断开x0,则t0线圈断电,t0常开触点被复位,y0断开。时序图如图4-1所 示。 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 30 t0 k20 y0 x0 t0 输入x0 输入y0 2s 图 4-1 时序图示例 为了能够获得在程序执行过程中,寄存器各位的状态,利用堆栈的思想,也 就是把各个监控点状态的变化按时间顺序排成变化队列, 并将他们的变化代入输 入程序所指示的逻辑关系中, 最后把他们的变化及变化对其他寄存器的影响用时 序图的形式表示出来。 在实现的过程中,关键是要捕捉哪些寄存器发生变化。捕捉的方法有两种, 第一种是在固定时间内捕捉; 第二种是设定计时原点后在每个相对时间到来时的 捕捉。在本系统,采用后一种的捕捉方法:在每个采样时间到来时,扫描各个位 寄存器的状态,把它存入每个位寄存器对应的数组中。最后,取出用户选择的位 寄存器在各个时刻的状态,画出线段。 对于在每个采样时间到来时,各个位寄存器的状态的记录方法又有两种:一 种是全记录,另一种是只记录变化。全记录就是在每个采样时间到来后,把五类 寄存器中的每一位的值(包括它的相对时间)均记录下来,x、y、t、c 的个数都 是有限的,所以这种方法是可行的。只记录变化的方法相对全记录来说,占用的 存储空间较小,但它要把每次记录下来的结果与原来保存的内容相比较,实现的 复杂性增大。 另外,在对实际的物理设备操作时,操作者能同时接通两个或以上的开关, 但利用鼠标点击各输入端对应的复选框时, 就不能做到这点。 为了解决这个问题, 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 31 需要在控制界面中运用“停止”按钮。当需要同时设定多个输入端的状态时,先 单击此按钮,系统停止运行仿真,输入端设置完毕后,再单击“仿真”按钮,系 统继续运行。 在时序图这一模块的实现中,采用的具体方法是,在运行输入的程序时,把 各个时刻各个位寄存器的状态以全记录的方式记录下来; 然后单击 “显示时序图” 后,系统每 250ms 时间分段,据此画出 x 轴的刻度,然后将所记录的数据根据各 点在各时刻的状态分别画出表示 1 的高电平线段和表示 0 的低电平线段。 4.3 引入多线程技术 4.3 引入多线程技术 当今的 windows 操作系统是真正的多任务系统, 用户可以同时打开多个应用 程序去执行。大多数应用程序就是一个进程,拥有独立的地址空间,并且至少拥 有一个主线程。操作系统就是在线程之间分配 cpu 资源,而进程是静态的概念, 只是线程的容器。 基于线程的多任务操作允许一个程序的两个或多个部分同时执 行。任何进程至少需要一个线程,该线程成为主线程。一个进程也可以启动多个 辅线程,这些线程可以执行该进程内的特殊任务。 线程对于操作系统来说是一个内核对象,而对于应用程序开发人员来说,实 际上是一个线程函数。在一个进程被初始化时,操作系统自动为其创建一个主线 程。如果应用程序还需要其他线程同时存在的话,可以调用 createthread 来启动 一个线程,并设置线程的优先级。调用 suspendthread 来挂起一个线程,调用 resumethread 来恢复线程的运行。线程的终止主要有两种方式:一种是线程函 数执行完毕,自动结束;另一种是在其他线程中调用 terminatethread 函数,强 行结束此线程。 线程被赋予许多不同的优先级,对每个线程都可以设置优先级,以确定它何 时运行以及占用多少 cpu 时间。 当所有等待被分配给 cpu 资源的线程具有相同 的优先级时, 操作系统分配相等时间片给每一个线程, 保证他们都有机会去执行。 而等待调度的线程具有不同的优先级时, 操作系统总是让优先级高的线程一直运 行下去, 只要优先级高的线程不空闲下来, 优先级低的线程是没有机会去执行的。 多线程技术有效地改善了系统的交互性,但大大增加了程序的复杂性,特别 是带来线程同步的问题,所以不宜使用太多的线程。 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 32 本章小结本章小结 本章详细介绍了 plc 仿真及其实验系统的实现方法, 分别从语句表编辑器的 实现和时序图的实现方面介绍了系统实现的重点,最后,引入多线程技术,加深 对顺控系统的时序理解。 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 33 5 系统应用实例系统应用实例 5.1 引言 5.1 引言 在前面的章节中, 我们分块对 plc 模拟实验系统的设计进行了论述, 在本章 中,我们将以交通灯控制和小车送料两个例子为例来说明本系统的具体应用。 以 plc 来控制交通灯,几乎是每个学习 plc 技术的人必学的内容,在各种 plc 的实验教材中都有把他作为典型的教学内容, 在一般的实验安排上也都有相 关的交通灯控制实验,只是一般控制要求各式各样而已。用实物搭建这样的实验 台并不是一件难事,但是,如前所述,如果让每个学生都享有实验操作机会,这 将会是一笔不小的开销。plc 控制小车送料的实验,搭建实验台就比较复杂。还 有一些其他的例子,比如机械手的 plc 控制,还存在一定的危险性,但如果我 们采用 plc 仿真及其实验应用系统,这些问题也就迎刃而解了。 plc 仿真实验必须具有的环境:装有 plc 仿真及其实验应用系统的个人计 算机一台,要求能够运行 windows 操作系统,其他不限。 5.2 利用系统进行交通灯控制实验 5.2 利用系统进行交通灯控制实验 1、界面设计 利用 plc 仿真及其实验应用系统进行模拟仿真实验的第一步是进入系统。 如 图 5-1 所示。3s 后,会自动转入仿真主界面。如图 5-2 所示。 图 5-1 进入 plc 仿真及其实验系统界面窗口 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 34 图 5-2 plc 仿真主界面 2、plc 仿真平台实现 plc 仿真界面设置了六个菜单项、一个快捷方式栏、一个输入状态栏、一个 输出显示状态栏和语句表输入栏。 如图 5-2 所示,菜单栏分为“文件” 、 “编辑” 、 “视图” 、 “项目” 、 “仿真”和 “帮助”六大项。 “文件”项下面又设有: “新建” 、 “打开” 、 “关闭打开” 、 “保存” 、 “另存为” 、 “打印”和“退出”七项功能; “编辑”项下面设有: “撤销键入” 、 “剪切” 、 “复制” 、 “粘贴” 、 “删除” 、 “查找”和“替换”七项功能; “视图”项 下面设有: “快捷方式栏” 、 “输入栏”和“输出栏”三项; “项目”项下面设有“查 看指令集” 、 “添加指令” 、 “查看元件集” 、 “添加元件”和“查看时序图”五项; “仿真”下面设有: “仿真” 、 “停止”及“电机正反转控制” 、 “十字路口交通灯” 、 “无塔供水”和“小车送料”四个演示实验项共六项; “帮助”项下面设有: “帮 助索引” 、 “如何使用帮助”和“联系我们”三项。 快捷方式栏设有: “打开” 、 “保存” 、 “打印” 、 “剪切” 、 “复制” 、 “粘贴” 、 “撤 销” 、 “仿真” 、 “停止”和“输入输出复位”十项。 输入状态栏设有 x0x15 共 16 个输入状态点,用户可以根据控制需要单击 相应的输入点,相应的方框里如果出现“”即表示相应的状态选取为 1,反之 为 0。例如:表示输入 x0 为 1。 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 35 输出状态栏设有 y0y15 共 16 个输出状态点,用户可以通过观测相应的输 出点的指示灯亮灭来获得输出结果,灯变成红色表示相应的输出点为 1,灰色表 示相应的输出点为 0。 语句表输入栏可以直接输入控制程序,并可以利用菜单项或者快捷方式栏里 面的编辑功能对语句表程序进行编辑, 也可以直接通过打开一个文档存储方式的 语句表程序直接输入控制程序。 交通灯的控制程序如下所示: ld x0; ani t4; out t1 k2500; out t2 k2000; ld t2; out t3 k500; ld x0; ani t1; out y5; ld x0; ani t2; out y0; ldi t3; and t2; and t0; out y1; ld t1; ani t4; out t4 k2500; out t5 k2000; ld t5; out t6 k500; ld t1; ani t4; out y2; ld t1; ani t5; out y3; ldi t6; and t5; and t0; out y4; ld x0; ani t8; out t0 k50; ld t0; out t8 k50; end 4、进行模拟实验 点击菜单中“项目”项下的“十字路口交通灯”项,会转入十字路口交通灯 仿真实验界面。同时会弹出控制要求界面,如图 5-3 所示。 控制要求:开关合上后,开关合上后,东西方向绿灯亮 20s,黄灯闪 5s,红 灯亮 25s,并依次循环。对应的南北方向红灯亮 25s 后,接着绿灯亮 20s 后黄灯 闪 5s。 实验平台搭建见图 5-4 所示:左上方为显示区,将控制程序输入 plc 仿真系 统仿真后,可以直接观测到交通灯的控制情况。多页面的切换,可以实时观测相 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 36 应时序图的变化。时序图见图 5-5 所示。左下方是测试区,用来测试各个灯独立 的亮灭。右上方用来参数设定,可以修改输出端口和控制要求中的控制时间。后 下方是模型仿真、停止控制。 图 5-3 交通灯 plc 控制要求显示图 图 5-4 交通灯 plc 控制模型搭建图 5、实验结果观察 交通灯 plc 控制模型界面左上是个多页面设置,很容易可以切换页面至时序 图观察实验结果,本实验设置每 250ms 观测一次,共观察了 600 个点,观察了 250*600 ms,即 150s,合算为 2.5 分钟。 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 37 图 5-5 交通灯 plc 控制时序图 图 5-6 交通灯 plc 控制时序图放大效果图 时序图观察界面如图 5-5 所示,提供了图形放大、缩小、上下左右四个方向 华 中 科 技 大 学 硕 士 学 位 论 文 华 中 科 技 大 学 硕 士 学 位 论 文 38 平移和滑动的功能,且能设置滑动的速度快慢。交通灯 plc 控制时序图放大后效 果如图 5-6 所示,更清晰明了。因为 tchart 读取数值画图的关系,时序图中栅 格间隔不均等,但不影响实验规律的观察。 5.3 利用系统进行小车送料实验 5.3 利用系统进行小车送料实验 进入系统和 plc 仿真平台设置如上例所示。小车送料的控制程序如下所示: ld x1; and x3; and x5; or m0; ani x4; ani x6; out m0; ld m0; or y0; or y2; ani x2; out m2; ld m2; ani x4; ani y1; out y0; ld m2; ani x6; ani y3; out y2; ld x4; ani y1; out t0 k1000; ld x6; ani y3; out t1 k1000; ld t0; or y1; ani x2; ani x3; ani y0; out y1; ld t1; or y3; ani x2; ani x5; ani y2;

温馨提示

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

评论

0/150

提交评论