(机械制造及其自动化专业论文)虚拟现实物流系统的物理模型设计.pdf_第1页
(机械制造及其自动化专业论文)虚拟现实物流系统的物理模型设计.pdf_第2页
(机械制造及其自动化专业论文)虚拟现实物流系统的物理模型设计.pdf_第3页
(机械制造及其自动化专业论文)虚拟现实物流系统的物理模型设计.pdf_第4页
(机械制造及其自动化专业论文)虚拟现实物流系统的物理模型设计.pdf_第5页
已阅读5页,还剩47页未读 继续免费阅读

(机械制造及其自动化专业论文)虚拟现实物流系统的物理模型设计.pdf.pdf 免费下载

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

文档简介

稿纸 摘要 ( 自动化立体仓库是现代化工厂物流系统的关键组成部分它的物流过程是 一个复杂的动态过程,因此在进行系统设计之前建立一个立体仓库的实体模型, 模拟和仿真实际系统的运行情况,对于指导系统的规划设计变得日益重要。广 一 本文主要研究了立体仓库的计算机控制系统,包括:堆垛机的监控、速度 及定位控制。结合物理模型,提出了实际立体仓库中挂堡垫堕量丕筮应具有的 功能、组成及实现方法,将堆垛机的状态细化编制成相应的代码,将任务本身 报文和任务启动执行报文分开,使得计算机对堆垛机的控制非常灵活,回原点 报文的设置使得安全检修故障成为可能,避免了在堆垛机故障状态下进入封闭 巷道进行检查的危险:在w i n d o w s 环境下,利用v c + + 开发了串行通讯程序, 来完成上位机与p l c 的实时通讯;在堆垛机的速度控制中提出了最佳曲线拟合 的方法,并针对近距离启动运行通过增加一挡中速来缩短作业周期,提高工作 效率;利用p l c 的多段管线功能实现了脉冲的加、减速功能,对堆垛机的速度 进行了优化。 在最后,建立了一个立体仓库的物理模型,并分析了模型的自动寻址方案。 关键词:立体仓瘴v 7 物理模型监控系统模拟与仿真 串行通讯 计算7 枷极拟 i 一 _ 文m 论吩业 、一y 毕 生究研学 , 大东 山东大学研究生毕业论嵌稿纸 a b s t r a c t a u t o m a t e dw a r e h o u s ei sa k e yp a r to f m a t e r i a lh a n d l i n gs y s t e mf o rt h em o d e m f a c t o r ya n d i t sm a t e r i a lh a n d l i n gp r o c e s si sc o m p l e xa n dd y n a m i c i tb e c o m e sm o r e i m p o r t a n tf o ri n s t r u c t i n gt h ec o n c e p t u a ld e s i g no f as y s t e mt h a tb u i l d i n ga p h y s i c a l m o d e lf o rt h r e e - d i m e n s i o n a lw a r e h o u s eb e f o r et h ed e s i g no fam a t e r i a lh a n d l i n g s y s t e m a n d s i m u l a t i n gt h er u r m i n g o far e a ls y s t e m 1 h i sa r t i c l er e s e a r c h e st h ec o m p u t e rc o n t r o ls y s t e m w h i c hc o n t a i n sm a i n l yt h e m o n i t o r i n gs y s t e mo f t h es t a c k e ls p e e dc o n t r o la n dp o s i t i o nc o n t r 0 1 a c c o r d i n gt o t h e p h 3 ,s i c a lm o d e l ,t h ef u n c t i o n ,c o m p o s i t i o n a n d r e a l i z i n g m e t h o do ft h e m o n i t o r i n gs y s t e mf o rt h es t a c k e rr r ep r e s e n t e d t h em i s s i o nm e s s a g ei ss e p a r a t e d f r o mt h es t a r t - u pm e s s a g ew h e nt h es t a t u so ft h es t a c k e ri sc o d e d ,w h i c hm a k e st h e c o n t r o lo ft h ec o m p u t e rt ot h es t a c k e rv e r yf l e x i b l e t h em e s s a g ef o rr e t u r n i n g o r i g i n a lp o i n tm a k e sr e p a i r i n gf a u l t ss a f e l yp o s s i b l ea n dt h ed a n g e ro fe n t e d n gt h e c l o s e l a n e w a y t o r e p a i r t h ef a u l ts t a c k e ri sv o i d e d i nt h ee n v i r o n m e n to f w i n d o w s as e r i a lc o m m u n i c a t i o np r o g r a mi sd e s i g n e db yu s i n gv c + + f o rt h e r e a lt i m ec o m m u n i c a t i o nb e t w e e np l ca n dp c a s p e e dc o n t r o lm e t h o d ,w h i c hi s c a l l e dt h eo p t i m u mc u r v ef i t t i n g ,i sp r e s e n t e d a c c o r d i n gt oc l o s ed i s t a n c es t a r t - u p a n d r u n n i n g ,al e v e lo f m i d d l es p e e di sa d d e d t os h o r t e n w o r k i n gc y c l ea n di m p r o v e w o r k i n ge f f i c i e n c y b yu s i n gt h em u l t i - t h r e a df u n c t i o no f t h ep l c ,t h ea c c e l e r a t i o n a n dd e c e l e r a t i o nf u n c t i o no ft h ep u l s ei sr e a l i z e da n dt h es p e e do ft h es t a c k e ri s o p t i m i z e d f i n a l l y , ap h y s i c a l m o d e li sb u i l tf o rt h r e e d i m e n s i o n a lw a r e h o u s ea n d a u t o m a t i c a d d r e s s i n gs c h e m e s a r ea n a l y z e df o rt h e p h y s i c a lm o d e l k e y w o r d s :t h r e e d i m e n s i o n a l w a r e h o u s e p h y s i c a l m o d e l m o n i t o r i n gs y s t e m s i m u l a t i o ns e r i a lc o m m u n i c a t i o n 山东大学研究生毕业论文稿纸 1 引言 1 1 自动化立体仓库的产生和发展 自动化物流系统是现代化工厂物流自动化的重要标志,而自动化物流系统 的关键是自动化立体仓库及其成套设备。立体仓库是指采用高层货架储存货 物,用起重、装卸、运输机械设备进行货物出库和入库作业的仓库,它具有许 多一般平面仓库所无法比拟的优越性:可以充分的利用空间,节约占地面积, 增加存储容量;作业迅速、准确、可靠,能提高保管效率,降低物流费用, 可随时满足用户在规定时间内把指定的物品进行自动收集和分发。因此,自动 化立体仓库正在日益受到各国、各行业的广泛重视,并以迅猛的速度发展i l “。 自从1 9 6 3 年美国建造了第一座以计算机控制的自动化立体仓库以来,德 国、英国、日本等国家的立体仓库的发展都很迅速,它已经构成了现代化工厂 的一个不可缺少的重要组成部分。它包括仓库建筑、高层货架、有轨巷道堆垛 机、转轨机、出入库系统,此外还有a g v 自动导引小车、物流监控与管理系 统。目前,自动化立体仓库最多、发展速度最快的国家是日本。据有关资料统 计,近年来日本每年约有上千座各种类型的立体仓库投入使用。另外,美国、 德国及一些西方发达国家的立体仓库发展速度也非常迅速。现在,立体仓库的 最大的起重量达2 0 吨,起升高度达4 0 米,长度达2 0 0 米,速度达2 0 0 米分1 3 j 。 我国从七十年代开始开发研制立体仓库,经过二十多年的努力,我国的立 体仓库已开始形成自己的行业,产品已步入成长期,并趋于成熟。随着改革开 放的逐步深入,国民经济的迅速发展,外资企业的不断兴建,现代企业科学管 理的迫切需要,再加上土地使用的日趋紧张,国内市场对立体仓库的需求日益 增加。 自动化立体仓库的发展趋势主要有以下几个方面1 4 j : 立体仓库进一步向系统化、自动化、无人化、大型化方向发展。 立体仓库管理向计算机化、网络化方向发展,不但追求立体仓库的经济效 益,而且将库存、生产、销售、服务等组成一个有机的整体,以提高整个企业 山东大学研究生毕业论文稿纸 的综合效益及社会效益。 立体仓库将逐步形成系列化产品。简易的、大型的、单元型的、混合型的、 特殊要求的等等,供广大用户选用。 立体仓库1 3 趋完善,尤其是在安全性、可靠性、舒适性方面考虑的越来越 周到。 立体仓库的标准化、系列化工作在国际上迅速开展起来。 1 2 课题的提出背景及意义 随着物流仓储技术的不断发展,立体仓库的自动化水平也有了很大的提 高,一般来讲,立体仓库都在向计算机三级控制和管理( 实时控制级、监控级 和管理级) 方向发展,逐步实现立体仓库的控制和管理全自动化。由于整个物 流过程是非常复杂的动态过程,在没有实际系统的情况下,对于一个复杂的物 流系统,系统设计面临的问题经常是:如何确定自动化立体仓库的货位数,堆 垛机的速度、数量、装载能力、运输路线等在这里生产能力、生产效率和系 统投资常常是设计的重要指标,而它们又是相互矛盾的,需要选择技术性和经 济性的最佳结合点【5 1 。 在物流系统的设计中,为了对众多的被选方案进行分析和比较,往往离不 开建立一定的模型。一般来讲,模型总是要比实体系统简洁的多,它能够表达 实体中因素的主要部分。有些因素在现实中要很长时间才能看出变化情况,但 用模型研究时可以很快看出变化规律,从而迅速地抓住其本质特征,有利于把 这些方案与系统评价目标联系起来,找出目标函数与各变量以及约束因素间的 基本规律。系统模型一般分为物理模型即实体模型和数学模型,数学模型一般 都是公式化的,比较抽象,但是由于物流系统中的动态因素很多,有相当一部 分问题是难以建立数学模型的。而实体模型则是按物体实物的结构放大或缩 小,它能较好地反映物体的某些特征,表达实体系统的主要结构和因素,这种 方法形象、直观、易懂”1 。 设计一套物流系统的物理模型,进行系统仿真能够准确地反映了未来物流 系统在有选择地改变各种参数时的运行效果,从而使规划与方案的实际效果更 加清楚。复杂的物流系统经常包含若干运输车辆、多种运输路线,合理地调度 运输工具、规划运输路线、保障运输路线的通畅和高效等都不是一件轻而易举 山东大学研究生毕业论文稿纸 的事;运输调度策略存在多种可能性,正确评价各种策略的合理性并选择一种 较优的调度策略是十分困难的。建立立体仓库的物理模型,动态运行此模型, 再用动画将运行状态、道路堵塞情况、物料供应情况等生动地呈现出来,这样 就可以对所执行的调度策略进行检验和评价,从而采取比较合理的调度策略 1 3 本课题的研究内容 本课题的研究内容是物流系统主要是立体仓库的物理模型的设计。要达到 的目标是:设计出一个包括机械、控制部分的完整的立体仓库的实体模型,并 且要具有通用性、可扩充性以及模拟和仿真的功能。具体内容如下: 1 建立通用的按比例缩小的立体仓库的实体模型,要求能够模拟立体仓库的 所有动作及过程,并分析模型的自动寻址方案。实体模型包括:货架、堆垛机 和控制系统,完成控制部分p l c 与步进电机之间的接口电路的硬件设计。 2 结合物理模型,提出实际立体仓库中堆垛机监控系统的组成,实现对堆垛 机的实时监控与仿真。在w i n d o w s 环境下,利用v c + + 开发串行通信程序, 来完成上位机与p l c 的实时通信。利用软件实现对堆垛机的监测、任务调度、 速度的控制,并根据所建的物理模型利用软件实现路径优化及对堆垛机进行速 度优化。 其中,第二章介绍立体仓库的计算机控制,第三章讨论了堆垛机的监控系 统,第四章研究了上位机与p l c 的实时通信,第五章是堆垛机的速度及路径 优化,第六章建立了一个物理模型并分析了自动寻址方案。 2 立体仓库物流计算机控制系统 自动化立体仓库是由计算机控制的机电一体化系统,它具有高效的仓储能 力,优化的仓库管理,快速准确的自动化仓库操作,能够节省大量的生产资源, 其应用领域相当广泛,自动化立体仓库中主要存放自动化生产过程中的毛坯、 半成品、成品、夹具、工具等物件,由计算机控制立体仓库的堆垛机来操纵货 物的自动化出入库,再经传输机械将货物传送到场地或从场地存入立体仓库, 同时对立体仓库的仓储物流数据进行计算机管理。立体仓库计算机控制系统依 据生产计划,接收立体仓库管理系统发出的i 一物流( 如毛坯、半成品、夹具 山东大学研究生毕业论文稿纸 等) 出入库调度报文命令,库存数据查询报文命令,同时对i 物流在制造单 元间的流动、e 一物流( 如成品、毛坯) 出入立体仓库进行管理。立体仓库控 制计算机则通过车间级网络与立体仓库管理系统相连接【6 1 。 立体仓库的计算机控制系统对立体仓库堆垛机和传输机械的自动控制通 过p l c 进行,它向p l c 发送控制指令,间接控制立体仓库机械动作。对立体 仓库机械进行直接控制的p l c 由一个主站和几个从站p l c 组成,分别对 p l c 间的通信、堆垛机垂直平行运动,传输机械传动进行控制。 2 1 立体仓库中的物流及信息流设计 在立体仓库的计算机控制系统设计中,物流设计是基础,立体仓库中的物 流设计主要包括两类:( 1 ) 卜物流,它是在生产制 造过程中从制造单元存入立体仓库或从立体仓库传送到制造单元 的毛坯、半成品、成品、夹具、工具等,其流向是依据立体仓库管理系统编制 的生产计划、生产工艺及具体生产情况,由立体仓 立体仓库管理系统 立体仓库结构 t 立体仓库控制系统 l lt p l c 主站 l 1 p l c 从站 图l立体仓库的计算机网络结构 库管理系统向立体仓库控制软件发出i 物流的出入库操作命令,( 2 1e 物流, 即成品、毛坯出入立体仓库,为了避免e 物流操作与必须快速响应的i 一物 流操作发生冲突,在立体仓库内建立e 物流缓冲区域( e - 一b u f f e r ) ,在i 一物流的出入库空闲时间,e 一物流从e - - b u f f e r 入库或从立体仓库出库至 e 卜b 1 3 f f e r l 6 s l 。 0 山东大学研究生毕业论文稿纸 图2 立体仓库的物流、信息流程 以立体仓库为中心的物流、信息流程( 如图2 所示) : ( 1 ) i 一物流 制造单元终端向立体仓库管理系统发出出入库的请求命令( 1 1 ) 。 立体仓库管理系统根据生产计划及工艺流程情况、库存情况向立体仓库控 制系统发出出入库报文命令( 1 2 ) ,其中包括货物分类、型号、数量、出入库申 请制造单元等信息。 立体仓库控制系统依据立体仓库数据库对( 1 2 ) 进行处理、分析确定出入库位 置、数量及从何传输机械出入最佳等,形成送往主站p l c 的操作指令组( 1 4 ) 。 p l c 执行指令,同时将执行状态( 1 5 ) 回送到立体仓库控制系统,使立体仓 库控制系统获取执行状态、机械位置、错误信息等一系列信息。 在立体仓库控制系统发送p l c 指令的同时,它打印出相应的出入库单0 3 ) 。 ( 2 ) e 一物流 山东大学研究生毕业论文稿纸 当立体仓库控制系统接收到入库命令( 1 6 ) 时,将信息登录到e - - b u f f e r 。 在物流出入库的空闲时间,由立体仓库控制系统将货物( 主要是毛坯) 送 入立体仓库。 当立体仓库控制系统接收到入库报文( 1 7 ) 时,在物流出入库的空闲时间,由 立体仓库控制系统将货物( 主要是成品) 送入e b u f f e r ,并在e - - b u f f e r 自动进行登录。 当货物从e b u f f e r 运出时,生成单据0 8 ) ,撤销该货物在e b u f f e r 的登录【9 1 。 2 2 立体仓库计算机控制系统的功能与组成 立体仓库计算机控制系统由4 大模块组成( 如图3 所示) :立体仓库管理 模块( m 1 ) ,与p l c 通信和任务调度模块( m 2 ) ,与立体仓库管理系统通信模 块( m 3 ) ,并发体管理模块( m o ) 。 立体仓库管理模块的主要功能是立体仓库数据管理,脱离上层网的指定库 位出入库,立体仓库p l c 和机构状态查询,e b u f f e r 管理,各种报表的打 印。 与p l c 通信和任务调度模块的主要功能是实施立体仓库管理计算机与 p l c 的通信,生成送往p l c 的控制立体仓库堆垛机和传输机械的指令,监控 p l c 及立体仓库机械状态。 图3 立体仓库控制系统 与立体仓库管理系统通信模块的主要功能是接受立体仓库管理系统发出 的物流出入库报文命令,回送命令的执行情况,向立体仓库管理系统汇报立体 仓库中的库存数量。 山东大学研究生毕业论文稿纸 为了实现对立体仓库管理系统的随机响应,同时实时控制p l c 对立体仓 库机械的操纵,并发体管理模块对上述3 个模块的并发运行进行管理它是采 用基于线程的等时间片任务切换方法,主要功能由线程创建,线程调度,线程 阻塞、唤醒、撤销、时钟中断的线程切换,同步互斥机制【7 1 2 1 。本文主要 研究了与p l c 通信和任务调度模块。 3 立体仓库中的堆垛机的监控 如前所述,自动化立体仓库系统主要由库存管理及控制计算机、堆垛机和 高层货架三部分组成。其中堆垛机是核心机构,它能够高效自动完成物料出入 库的具体操作。库存管理及控制计算机承担了库存账目处理、出入库命令下达、 故障报警及堆垛机状态监控的任务。如何实现计算机系统对堆垛机的有效监 控,如何实时准确地向计算机反馈堆垛机的当前状态,是立体仓库系统开发必 须解决的首要问题【1 3 1 ,下面主要就这一问题进行讨论。 3 1 堆垛机监控系统的组成 在本文物理模型所代表的这一类立体仓库中,监控系统 1 4 1 , 6 】需具有以下 主要的功能:( 1 ) 实时响应出入库的请求,自动存取物料。( 2 ) 自动管理库存账 目、货格及站台。( 3 ) 实时监控仿真堆垛机状态。( 4 ) 实时故障处理及分类、记 载。 要实现计算机对堆垛机的实时监控,实际上就是要在计算机与堆垛机间建 立实时通讯。此通讯必须是及时的、准确的、可靠的,采用了r s 4 8 5 技术来 实现。在立体仓库物理模型中采用了上下位机的主从控制结构,下位机( 堆垛 机的主控系统) 采用的是西门子$ 7 2 0 0 系列中的c p u 2 2 4 型p l c ,上位机为p c 机,主要目的是利用p l c 的高可靠性、模块化结构及编程简单等特点,将其 作为下位机完成实时采集和控制任务;利用p c 机良好的人机界面实现人机对 话和监控功能,并进行一定的辅助决策,因此上位机( 库存管理计算机) 选用 的是p c 机。由于堆垛机常处于运动状态,位置不固定,为了能够实时反馈堆 垛机的运行状态以便进行实时仿真,需要实时测得堆垛机的位置。现在一般的 堆垛机监控系统进行实时仿真时,通常采用的是计数反馈的方法,即当堆垛机 山东大学研究生毕业论文稿纸 开始运动时,就反馈给计算机一个信号,同时仿真中的模型也开始运动,当堆 垛机经过一个计数时,就反馈给计算机,动画模型就立即运动到计数位置处, 仿真不能实时反映堆垛机的运行情况,尤其是当堆垛机运动到两个计数之间而 发生故障或当系统掉电时,仿真就更不能反映出堆垛机的实际位置,并且堆垛 机的继续运行就会出现混乱而造成误操作甚至会出现更为严重的后果,因此采 用激光测距的方法来测得堆垛机的实时位置是十分必要的,把由激光测距仪测 得的堆垛机位置输入到p l c 后,计算出堆垛机相对于从原点出发的列、层的 相对位置,回送给管理计算机,以便进行实时仿真、监控。 管 理 计 算 机 图4监控系统组成 堆垛机、p l c 、管理计算机之间均采用直接电缆连接,通讯参数为:( 1 ) 波特率:9 6 0 0 b p s ;( 2 ) 字长:8 ;( 3 ) 奇偶校验:无;( 4 ) 停止位:2 。通过以上硬 件配置,从而建立了计算机与堆垛机之间的全双工通讯通道。 3 2 堆垛机状态编码及通讯报文 堆垛机状态编码及通讯报文的设计,是堆垛机监控系统开发中很重要的任 务。为了实现对堆垛机的实时监控与仿真,将堆垛机的状态细化编制成相应的 代码,并将任务本身报文和任务启动、执行报文分开,使得计算机对堆垛机的 控制非常灵活;设置了回原点报文,使得安全检修故障成为可能,避免了在堆 垛机故障状态下进入巷道进行检查的危险。具体来讲也就是:将堆垛机的三种 状态,即正常运行、待机、故障状态细化编制成相应的代码;将堆垛机操作动 作进行分解,编制成相应的动作代码。堆垛机随时将自己的当前状态代码、动 作代码编制成上行报文,通过串行通讯线路传送给计算机;计算机根据堆垛机 的当前状态及出入库请求,以下行报文的格式向堆垛机下达相应的任务指令, 山东大学研究生毕业论文稿纸 控制堆垛机进行出入库操作或进行其他操作。同时,计算机根据接收的堆垛机 上行报文,在屏幕上实时仿真堆垛机的动作,供操作人员监视堆垛机运行情况。 上行报文以及下行报文均采用a s c i i 码定长格式,代码长度为1 4 个字节。 报头( 信息开始) 为a s c i i 码1 0 0 ,报尾( 信息结束) 为a s c i i 码1 0 1 。 3 2 1 上行报文 ( 1 ) 堆垛机的待机状态报文 1 0 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,1 0 l 。 ( 2 ) 堆垛机运行状态报文 1 0 0 ,排,列,层,水平相对位置,垂直相对位置,0 ,联机,自动,执行, 前进后退,升降方向,货叉伸缩方向,1 0 1 其中: 排、列、层一表示堆垛机的当前位置距离原点最近的排、列、层。 水平相对位置、垂直相对位置一表示距离上面列、层的距离。 第五个字节0 表示无故障。 前进后退一代码1 表示前进,代码2 表示后退,代码0 表示停止。 升降方向一代码1 表示上升,代码2 表示下降,代码o 表示停止。 货叉伸缩方向一代码l 表示左伸,代码2 表示右伸,代码0 表示停止。 ( 3 ) 堆垛机故障状态报文 1 0 0 ,排,列,层,水平相对位置,垂直相对位置,故障标志,联机,自 动,执行,前进后退,升降方向,货叉伸缩方向,1 0 1 其中: 排、列、层一表示堆垛机的当前位置距离原点最近的排、列、层。 水平相对位置、垂直相对位置一表示距离上面列、层的距离。 故障标志一代码0 表示无故障,代码1 表示地址错,代码2 表示空货位取 货,代码3 表示满货位送货。 3 2 2 下行报文 ( 1 ) 计算机下达任务报文 1 0 0 , 1 ,列l ,层l , 2 ,列2 ,层2 ,0 ,0 ,0 ,0 ,0 ,0 ,1 0 1 山东大学研究生毕业论文稿纸 排1 ,列1 ,层1 一表示源货格位置。 排2 ,列2 ,层2 一表示目的货格位置。 ( 2 ) 计算机下达执行报文 1 0 0 ,2 5 5 ,2 5 5 ,2 5 5 ,2 5 5 ,2 5 5 ,2 5 5 ,2 5 5 ,2 5 5 ,2 5 5 ,2 5 5 , 2 5 5 ,2 5 5 ,1 0 1 ( 3 ) 强制堆垛机回原点报文 1 0 0 ,2 0 0 ,2 0 0 ,2 0 0 ,2 0 0 ,2 0 0 ,2 0 0 ,2 0 0 ,2 0 0 ,2 0 0 ,2 0 0 ,2 0 0 ,2 0 0 , 1 0 l 通过上述通讯报文的编制,实现了对堆垛机的灵活控制。 3 3 监控软件 为实时监控堆垛机,由堆垛机随时不停地发送当前的状态报文,控制计算 机随时以事件驱动方式接收并实时处理。当堆垛机处于待机状态时,监控计算 机下达任务报文,指挥堆垛机进行出入库操作。堆垛机任务完成后,计算机进 行账目处理,并下达下一任务。堆垛机执行任务中,如发生货位故障,监控软 件能够及时全自动记载并处理。如空货位取货时,计算机记载该故障并进行相 应账目删除,随时分配下一货格取货,直到取出所有物料为止。满货位送货时, 监控计算机将重新分配一新货格直到将物料入库为止,并将无帐物料出库供查 点。可以实时仿真堆垛机状态,并可故障报警。为了保证下达给堆垛机的操作 指令正确无误,避免堆垛机误操作,软件中采用了校验措施,保证了p l c 与 上位机之间的通信及堆垛机执行任务的正确性,提高了可靠性 _ 引。具体方 法与措施将在下一节p l c 与上位机的通信方式及通信原理中介绍。 4p l c 与上位机( 管理计算机) 的通讯方案及方法 在立体仓库中要实现监控功能必定会遇到p l c 和p c 机之间的通信问题, 由于下位机只配有一个r s 4 8 5 串行接口,而上位机使用的是r s 2 3 2 接口,因 此必须完成两个接口之间的转换来实现上下位机的通讯,下面就这一问题进行 分析及讨论。 山东大学研究生毕业论文稿纸 4 1 通信方式及通信原理 由于p l c 与p c 机的串行接口不同,我们采用了西门子公司的 r s 2 3 2 r s 4 8 5 通信电缆作为上下位机通信的转换器。由于r s 4 8 5 串口采用“平 衡差动式”数据传输,传输线上是电位差信号,不构成电荷积累,因而抗干扰 能力强,适用于高速率、远距离传输,其传输速率为9 0 k b p s 时,最长距离可 达1 2 0 0 m ,因此十分适用于活动范围大的堆垛机的使用。而r s 2 3 2 串口技术 虽然非常成熟,应用范例也很多,但是它的最大弱点是传输距离近。r s 4 8 5 只需要两根数据线t x d 和r x d ( 如图5 所示) 。这对数据线既可以发送数据也 可以接受数据,但通信双方不能同时收发( 即只能采用半双工制) 。由于只有 两根数据线而无硬件握手信号线,所以只能采用软件握手的通信方式来保持数 据传输的同步【1 6 1 9 】。 回一 图5r s 2 3 2 r $ 4 8 5 通信转换 在通信时还必须考虑到可能发生的一些异常情况,比如发送数据错误或上下位 机步调不一致等。为了保证通信的安全性,必须对于传送的数据进行校验,采 取的主要措施是:增加了一个结构检查序y u ( f c s ) 字符,它是由所发送的字节 进行异或运算形成的,把这个f c s 字符连同要发送的有效数据一起发送。接 收方收到后,同样对所接收的有效数据进行异或处理,并把处理结果与接收到 的f c s 字符相比较,如果两者不相等,就认为传输数据出错。对于检验到出 错的数据采取放弃的措施,并立即发送反馈信号给上位机要求重新发送数据。 对于上下位机在通信时步调错开,可能会出现同时发送和同时等待接收的情 况,出现同时发送还不算严重,因为此时传输数据将出错,程序会自动放弃出 错数据并要求重新发送数据。但是出现同时等待接收的情况往往会引起死循环 而造成死机,为了避免出现这种情况,在上位机的接收程序中加入了一段代码, 作为等待时间的监测,一旦超过规定的等待时问,就认为上下位机陷入了同时 山东大学研究生毕业论文稿纸 等待接收的情况。此时让上位机先发送数据打破僵局以便使通信顺利进行【2 0 1 。 上下位机的通信流程图分别如图6 和图1 0 所示。 4 2 上位机与p l c 的通信在v c + + 中用串行通讯控件开发 串行通信程序 图6 上位机通信程序流程图 由于w i n d o w s 系统本身的可视化、界面友好、易于操作等一系列优点, 现在p c 机上w i n d o w s 系统已经成为主要的操作系统,而在w i n d o w s 环境下 山东大学研究生毕业论文稿纸 编程,v i s u a lc + + 正在成为主要的开发工具。然而在w i n d o w s 下开发串行通讯 程序是一件令人十分头疼的事,不但要理解许多复杂的a p i 函数,还要掌握 多线程编程。本文中利用了v i s u a lc + + 中提供的通讯控件m s c o m m 来解决这 一难题,通过对这一控件的正确使用,可以轻松的编写出所需要的串行通信程 序。p c 机是通过r s 一2 3 2 接口与p l c 进行通信的,m s c o m m 通讯控件提供了 使用r s 2 3 2 开发串行通信软件的细则,它使用事件驱动或查询方式来解决开 发通信软件中遇到的问题。事件驱动是一种功能强大的处理问题的方法,对事 件发生的跟踪和处理在通信控件中是用o n c o m m 来实现的,它包括检测和处 理通信错误等,查询方式则要求设计者自行读取c o m m e v e n t 的值,并判断发 生何种事件,并对之进行相应的处理,此种方式不适用于复杂程序的开发。本 文中开发的这个串行通信程序可以由用户设定进行传输的通信端口及端口的 相关参数,包括波特率、数据位、停止位、奇偶校验和流量控制等,还具有发 送数据和接收数据的双重功能1 2 4 】。 4 2 1 在程序中嵌入通讯控件 本程序的通信界面部分是一个对话框,如图7 所示,主要由以下几部分组 成:p l c 的参数设定部分,包括:启停方式、操作方式、存取方式、联动方 式,数据传输部分,包括:货位号、任务完成情况等。其中,每个组合框g r o u p b o x 中的圆按钮r o u n d b u t t o n 是不可同时选定的,从而进行一种情况的选定, 货位号及任务完成情况所对应的编辑框e d i tb o x 分别进行数据的发送与接收, 清除按钮是把编辑框中的内容进行清除。在本程序中所使用的通讯控件是 a c t i v e x 控件,具体添加方法如下:单击p r o j e c t 菜单,从菜单中选择a d dt o p r o j e c t ,再单击c o m p o n e n t sa n dc o n t r o l s ,从弹出的对话框中单击r e g i s t e r e d a c t i v e xc o n t r o l s ,然后在列表框中选择m i c r o s o f tc o m m u n i c a t i o n sc o n t r o l , v e r s i o n6 0 ,单击o k ,这时会询问你是否加入c m s c o m m 类,单击o k 。返 回后就会看到控件工具条上添加了一个通讯控件,将其拖放在对话框上,同时 注意到p r o j e c t 上新增加了一个类。通过查看类m s c o m m 的源文件 m s c o m m e p p ,我们可以了解到这个控件的属性和使用方法,其中的g e t 函 数可以用来访问该属性的当前值,而s e t 函数则可以用来设置该属性的新值。 这个通讯控件有很多重要的属性,需对其中最重要的几个进行设置。表1 山东大学研究生毕业论文稿纸 图7 通信界面 中的属性设定值是本程序中所使用的值,可以根据需要进行灵活设置,至于其 他的属性可以采用缺省值,其说明可以参考联机帮助文件。通讯控件的工作原 理类似于中断方式,当有通讯事件发生时( 如发送数据、接收数据等) ,就会 触发o n c o m m 事件,在该事件的处理函数中调用g e t c o m m e v e n t 0 数,通过 返回值即可确定是那一类事件,再做出相应的处理。 4 2 2 程序的编制 在通讯界面上,每选中组合框中的一个圆按钮或货位号编辑框时就由上位 机对p l c 发送一次数据。对于每个参数的选取,其源代码大体类似,程序如 下: v o i dc p l c d l g :o n s t a r t 0 c s t r i n gs t r ; i f ( i s d l g b u t t o n c h e c k e d ( i d c _ s t a r t ) ) mm o t o r = m o t o rs t a r t ; 选中组合框中的启动按钮 i f ( ! m _ c o m m 。g e t p o r t o p e n 0 ) mc o m m 。s e t p o r t o p e n ( t r u e ) ; 打开串口 山东大学研究生毕业论文稿纸 s t l = ”a h ”;传送给p l c 的信息及信息结束字符 u p d a t e d a t a ( t r u e ) ; m _ c o m m 。s e t o u t p u t ( c o l e v a r i a n t ( s t r ) ) ; 发送数据 ) ) 在每一次任务的结束,都由p l c 回送信息给上位机,每回送一次信息都 要触发一次o n c o m m 事件,其中有一个需要注意的问题就是函数g e t i n p u t 0 返回的是v a r i a n t 型变量,而在编辑框中显示的是c s t r i n g 型变量,因此需 进行变换。先将v a r i a n t 型变量转换为c o l e s a f e a r r a y 型变量,再将其转换 为b y t e 型数组,然后将数组转换成c s t r i n g 型变量。这个转换过程看起来比 较复杂,但它可以满足用不同的变量类型来显示接收数据。其主要代码如下: v o i dc p l c d i g :o n c o m m 0 i f ( ! m _ c o m m g e t p o r t o p e n 0 ) m _ c o m m s e t p o r t o p e n ( t r u 勘; 打开串口 u p d a t e d a t a ( t r u e ) ; v a r i a n tml n p u t l ; c o l e s a f e a r r a yr e _ i n p u t 2 ; l o n gl e n g t h ,i ; b y t ed a t a 1 0 2 4 ; c s t r i n gs t r ; i f ( m _ c o m m g e t c o m m e v e n t 0 2 ) 接收缓冲区内有字符 m _ i n p u t l = m _ c o m m g e t l n p u t 0 ; ,读取缓冲区内的数据 m _ i n p u t 2 = m _ i n p u t l ; 将v a r i a n t 型变量转换为 c o l e s a f e a r r a y 型变量 l e n g t h = m _ i n p t a 2 g e t o n e d i m s i z e 0 ; 确定数据长度 f o r ( i = 0 ;i l e n g t h ;i + + 、 m _ i n p m 2 g e t e l e m e m ( & i ,d a t a + i ) ; 将数据转换为b y t e 型数组 - 1 5 山东大学研究生毕业论文稿纸 属性设定值 说明 c o m m p o n2 串口号,一般串口1 为鼠标所用,故用串 u2 i n b u f i e r s i z e1 0 2 4 接收缓冲区的大小 l n p u t l e n o从接收缓冲区读取的字节数,0 表示全部 被接收 l n p u t m o d e l接收数据的类型,0 表示文本类型,1 表 示= 进制类型 o u t b u f i e r s i z e1 0 2 4 发送缓冲区的大小 r t h r e s h o l dl 设定当接收几个字符时触发o n c o m m 事 件0 表示不产生事件,1 表示每接收一 个字符就产生一个事件。 s t h r e s h o l d0 设定在触发o n c o m m 事件前,发送缓冲区 所允许的最少的字符数,0 表示发送数据 时不产生事件,1 表示当发送缓冲区空时 产生o n c o m m 事件。 s e t t i n g s 9 6 0 0 ,n ,8 ,1串u 的参数设置,依次为波特率、奇偶校 验( n 无校验,e - 偶校验,0 - 奇校验) 、数 据位数、停止位数。 表1通讯控件的属性 f o r ( i = 0 ;i l e n g t h ;i + + )将数组转换为c s t r i n g 型变量 c h a ra - + ( c h a r + ) ( d a 切+ i ) ; s t r f o r m a t ( ”c ”,a ) ; i f ( s t r = = ”a ”1 mr e c e i v e d a t a = ”完成“: ) u p d a t e d a t a ( f a l s e ) 1 6 山东大学研究生毕业论文稿纸 在开始每次任务之前需要对两个编辑框中的数据进行清除,在这儿用的是 “清除”按钮,其程序代码如下: v o i dc p l c d l g :o n c l e a “) m _ s e n d m a r k e m p t y ( ) ;清除货位号编辑框中的数据 m _ r e c e i v e d a t a e m p t y ( ) ;清除任务完成情况编辑框中的数据 u p d a t e d a t a ( f a l s e ) ; 4 3p l c 的通信编程 $ 7 2 0 0 系列p l c 通信模式有两种:一种是点对点( p p i ) 通信协议,用于 p l c 与其编程器和西门子公司的人机接口产品之间的通信;另一种是对用户 完全开放的自由端口模式( f r e e p o r t m o d e ) ,由用户自行规定通信的协议。p p i 模式只能在p l c 停止方式( s t o p ) 下通信,自由端口模式只能在p l c 运行 方式( r u n ) 下通信,我们采用自由端口通信模式2 0 以3 1 。 卫 二工工 v b l 0 0v b l 0 1v b l 0 2v b l 0 3v b l 0 4 图8 在进行通信之前,应先对串口进行初始化。对s 7 2 0 0 p l c 的初始化是通过 向s m b 3 0 ( 端口o ) 或s m b l 3 0 ( 端口1 ) 的协议选择区置l 来实现的。对于发送, $ 7 2 0 0 系列p l c 有专门的发送指令用于发送数据,格式为:x m tt a b l e , p o r t 。t a b l e 为发送数据的字节数,即数据长度,最大为2 5 5 ,而要发送 的数据必须存在t a b l e 的后面。发送指令( x m t ) 激活发送数据缓冲区( t b l ) 中的数据,数据缓冲区的第一个数据指明了要发送的字节数,p o r t 指定了用 于发送的端口。例如,t a b l e 的存储区域为v b l 0 0 ,要发送“a b c d ”四个 字符,存储格式应为图8 所示。如果有一个中断程序连接到发送结束事件上, , 山东大学研究生毕业论文稿纸 在发送完缓冲区中的最后一个字符时,则会产生一个中断( 对端口0 为中断事 件9 ,对端口1 为中断事件2 6 ) ,也可以监视发送完成状态位s m 4 5 或s m 4 6 的变化,而不是用中断进行发送( 如向打印机发送信息) 。s m 4 5 或s m 4 6 反 映了x m t 的当前状态,因此可以通过判断s m 4 5 或s m 4 6 的状态来进行发 送后处理。 对于接收,$ 7 2 0 0 系列p l c 有专门的接收指令用于接收数据,格式为: r c v t a b l e ,p o r t 。t a b l e 为接收数据的字节数,即数据长度,最大为 2 5 5 。而要接收的数据必须存在t a b l e 的后面。可以用r c v 指令方便地接收 信息。接收指令( r c v ) 激活初始化或结束接收信息的服务。通过指定端口 ( p o r t ) 接收的信息存储于数据缓冲区( t b l ) 。数据缓冲区的第一个数据指 明了接收的字节数。如果有一个中断程序连接到接收完成事件上,在接收到缓 冲区中的最后一个字符时,则会产生一个中断( 对端口0 为中断事件2 3 ,对 端口l 为中断事件2 4 ) ,也可以监视s m b 8 6 或s m b l 8 6 状态的变化,而不是 用中断进行信息接收。当r c v 邮箱不启动或已经接收结束时,s m b 8 6 或 s m b l 8 6 不为0 :当正在接收时,它们为0 。r c v 指令允许选择信息开始和信 息结束条件,通过往s m b 8 8 ( 端口0 ) 或s m b l 8 8 ( 端口1 ) 和s m b 8 9 ( 端 口0 ) 或s m b l 8 9 ( 端口1 ) 中装入起始字符和结束字符来设置。例如,t a b l e 的存储区域为v b 2 0 0 ,要接收“1 2 3

温馨提示

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

最新文档

评论

0/150

提交评论