欢迎来到天天文库
浏览记录
ID:32935608
大小:57.44 KB
页数:6页
时间:2019-02-17
《立体仓库串行通信控制系统设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、立体仓库串行通信控制系统设计摘要:堆垛机控制系统是自动化立体仓库的核心部分,主要完成货物的出入库以及货物位置的自动分配,系统中采用西门子PLC作为下位机控制其他设备,为实现远程监控,上位监控计算机以组态王6.5设计监控及操作界面,以ACCESS设计数据库进行实时数据采集,并通过PPI协议实现与下位机PLC的串行通信。在上位机进行监控程序及画面的设计,并完成画面的运行。由于组态软件对控制系统的集中管理,并且形成了很好的人机界面,大大提高了工作效率。关键词:堆垛机,PPI协议,串行通讯中图分类号:E96
2、5文献标识码:A0引言随着自动化技术的不断发展,越来越多的生产设备配备了与计算机进行数据交换的接口,利用计算机强大的处理能力对检测到的数据进行处理。串行通信因为其诞生时间早,使用简单方便,成本低廉,可以适应大规模长距离传输等多种原因,在工业自动化领域一直得到广泛的应用,大量的设备采用串行通信方式进行连接[1-4]o在此基础上,也发展出了多种规格不同的串行通信标准。自动化立体仓库主要由高层货架、巷道堆垛机、出入库系统等硬件设备以及计算机管理与控制系统等软件设备组成。自动化立体仓库中最重要设备是巷道堆垛
3、机,巷道堆垛机是实现整个仓库系统“自动”功能的关键设备。巷道堆垛机自动控制系统由通讯接口、传感检测系统、速度、位置控制系统、控制软件等组成。速度、位置检测控制系统是堆垛机自动控制系统中的关键部分,其中的传感检测系统采用旋转编码器或激光测距仪等。而速度、位置控制采用变频器调速控制。各机构采用了闭环控制系统,实现对堆垛机的高速、高精度定位控制。本文中SIEMENSS7-200系列PLC(CPU226)的RS-485串行接口与上位机的RS-232串行接口之间采用西门子公司的PC/PPI电缆连接,组成小型的
4、集散控制系统。SIEMENSS7-200PLC的编程通讯接口,内部固化的通讯协议为PPI协议,如果上位机遵循PPI协议来读写PLC,就可以省略编写PLC的通讯代码[5-7]o本文的主要工作就是使用PPI协议完成上位机与下位机的通讯。在此基础上编写相应的监控程序,对立体仓库的货物存取进行现场的实时监控;编写动态监控画面。1总体方案1.1总体功能的介绍堆垛机控制系统有手动及自动两种工作模式。手动模式一般用于检修和一些特殊场合,在控制柜中完成,自动模式则是无须人工的作业。上位机的C0M1口通过PPI电缆直
5、接与PLC相连。下位机PLC检测堆垛机的当前位置,将检测到的当前排、当前层、当前列的参数发送给上位机。上位机决定是取货还是存货后,向下位机发出取货目的位置或存货目的位置对应的目的排、目的层、目的列。PLC控制1#变频器和2#变频器,使行走电机、升降电机和伸叉电机动作,堆垛机按照路程最优化的原则到达目的位置,完成货物的存取。1.2PPI的介绍与设置网络的连接PPI网络通信的连接非常简单,只要用一根PPI电缆将PLC设备的RS-485端口与上位机的RS-232端口直接连接即可。(2)站地址及存储区的安排
6、按照网络读及网络写指令的要求,根据主站及从站的不同需要在各站中指定足够数量的存储单元,并明确它们的用途,如发送数据区、接收数据区或其他数据区[8]。为网络中所有通信设备指定唯一的站地址,S7-200支持的网络地址从0〜126。对于有两个通讯口的S7-200,每一个通讯口都要安排一个站地址。2监控程序与运行堆垛机控制系统通过上位机监控程序对下位的现场设备进行动态实时监控,上位机,下位机发出指令,使下位机来控制堆垛机系统执行入货、出货或在高层货架上自动进行货物调配。上位机监控系统主要由组态王和ACCES
7、S数据库两大部分组成。组态王数据库技术的关键是:首先利用ACCESS构建一动态数据库,然后在系统ODBC数据源中连接该数据库。创建记录体,记录体用来连接数据库表格的列和组态王数据词典中的变量。通过组态王SQL访问管理器建立与该数据库的联系,在组态王中的适当位置调用SQL函数实现各种操作。这些函数用来创建表格,插入、删除记录,编辑已有的表格,清空、删除表格,查询记录等操作。2.1ACCESS数据库表格的设计在"开始"菜单中打开MicrosoftAccess,点击新建数据库后,选择“空数据库”。点击确定
8、,保存数据库名为cc.mdb,进入数据库。在“cc.mdb数据库中"双击"使用设计器创建表”进入表格设计。给表格设计出2个字段,表名称设定为“作业表1”。2.2监控程序的设计“主画面”中其他各按扭在弹起时的命令语言如下:CtrlOOOl.FetchDataO;CtrlOOOl.RefreshDataO;CtrlOOOl.FetchEnd();SQLSelect(DevicelD,"取货”,“zl”,"",““);第一条记录:SQLFirst(DevicelD);最后一
此文档下载收益归作者所有