生产非标准设备的机电企业生产所需的电气材料元件涉及种类繁多, 使得库存管理面临着非常大的压力, 例如元件出入库时寻找货架的位置十分困难, 元件库存盘点难度较大, 使得库存补充计划比较难以制定, 一部分元件库存积压而另一部分库存短缺的状况同时存在, 此外由于产品设计人员对库存情况缺乏了解, 使得一些积压的元件不能快速有效地应用到新产品开发中。基于上述情况, 利用CAN总线技术, 同时引入单片机和计算机系统就仓储管理系统进行了再塑造和再设计, 解决了元件货架管理问题, 提高了管理水平和经济效益。
某机电企业一个元件库中共有12行货架, 其中每行货架有4层, 每层又有10个货位, 其结构如图1所示。用行、层、列表示货位的位置, 该货位唯一对应所存放的货位, 为了货位查找的方便, 每个货位处设有相应的LED指示屏来显示相关信息, 产品出入库作业时显示出入库的数量, 没有出入库作业时显示货位存放货物的数量, 出入库作业时电子标签告诉相关人员该处会有存取作业等待处理, 在库存盘点时表示该处货位库存信息尚未盘点。另有一个开关按钮可以控制LED指示屏, 如果某个货位的作业处理完毕, 那就予以关闭。这样可以大幅度地提高元件出库率和货架查找率。
基于CAN总线技术的解决方案框架如图2所示。1个单片机系统负责控制1行货架, 也就是说1个单片机系统负责管理40个货位。如果这企业的仓库由于扩展需要将货架扩展到m行, 那么这m个单片机就构成了一个完整的货架管理系统。该系统通过CAN总线与上位计算机系统进行通信, 而上位计算机系统基于业务数据仓库对整个仓库进行管理, 上位计算机通过向单片机系统发送指令以完成对货架的管理。
基于CAN总线技术的单片机系统框架如图3所示。
单片机型号选择at89s51, 这个型号在同类型号中属于高档机型和功能增强型, 其主要优势是带有10KB的可以二次编程的存储器, 并且内置监控电路, 因此性价比较高, 且不用再考虑存储器的扩展问题。
使用8255芯片的a、b输出口对数据进行锁存操作, 考虑到bcd码的特性, 所以两个LED显示屏的显示可以由一个输入口进行控制, 每个LED显示屏与8255芯片安装3个74ls47译码器, 用来处理bcd码的转换及显示屏的工作驱动。
CAN总线在本质上属于串行总线式信息通讯网络, 其特征是通信可靠、灵活、性能可靠、数据传输距离远等。配合使用sja1000独立总线控制器, 同一个CAN总线网络最大可以允许来自110个节点的接入, 其有效传输距离可以长达10km, 并且CAN总线网络上的节点可以以多种方式进行工作, 允许网络上的任何节点在任何时候向任意节点发送信息, 并且节点之间可以根据ID来设置屏蔽或接受该节点的信息, 使得总线数据传输中的冲突降到了最低点。此外CAN总线网络具有较强的错误检测处理机制, 当一个节点所发送的信息遇到干扰或传送失败后可以自动重新发送, 如果发生重大错误, 则该节点将自动从网络中退出, 以免给整个网络造成更多的负担和影响。
CAN总线电路以sja1000独立总线控制器为中心, 单片机系统与实际物理CAN总线的通过82c250 CAN收发器进行连接, 使用总线式的网络拓扑结构, 该结构成本低可靠性高。sja1000独立总线控制器的最大传输速率为1mbps, 并且对于11位和29位的编码标示符具有很好的支持作用。
CAN接口卡内置在上位计算机的功能扩展槽中, 负责上位计算机与单片机系统之间的信息通讯和数据交换工作。CAN卡选择Keorei公司的单口6n137光电耦合器总线卡8110, 将该卡直接内置在上位计算机的功能扩展槽中, 从而实现上位计算机与单片机之间的数据交换。
在对仓储作业需求分析的基础上, 得到如图4所示的仓储管理系统功能模块架构。
当有电气元件物资需要入库的时候, 就需要添加入库信息, 仓管员通过系统界面将数据记录提交到系统数据库中, 然后系统界面上出现出库操作的命令, 信息录入完毕后通过CAN总线传输到下位计算机系统中。下位计算机获取上位计算机发送的信息后, 打开入库元件所要存放货位处的LED屏, 仓管作业员根据LED屏的指示进行元件入库作业, 当完成作业后关闭存放物资元件处货位的LED指示屏, 然后进行下一个批次的元件入库作业, 等所有批次的物资入库作业都结束后, 在操作系统界面上点击结束入库作业按钮以完成本批次的元件入库作业, 并根据新录入的入库作业信息对底层数据库信息进行更新。其他功能的操作与之相类似。
下位计算机的软件设计框架如图5所示。该软件框架相对简单, 下位计算机在获得CAN总线上位计算机发送来的命令后, 打开LED指示屏显示相关信息, 并将LED指示屏的状态信息反馈到上位计算机中, 使用nvidia公司的C51芯片可以很容易地实现这个功能。
visual basic语言作为企业级应用程序的开发工具, 本身的数据处理能力非常强大。现在大多数企业级的应用程序都是基于windows平台的架构, 通过开发编译activex和dll控件, 利用控件调用功能可以很容易地实现对硬件信息的读取、写入等控制, 就目前来看大部分供应商都为其产品提供了丰富的扩展控件, 以方便二次开发中的数据采集、传输、修改等操作。excel是一种最为简单实用的电子表格数据库软件, 功能强大、操作简便且能够有效负载本文所研究问题的数据处理量, 其在企业产品管理、人事信息、客户关系管理等方面广泛应用, 且后续的培训服务较为简单。
基于此本文选用visual basic和excel作为开发上位计算机软件的工具, 开发出来的上位计算机软件界面如图6所示。程序设计中上位计算机和下位计算机之间的通信通过总线CAN进行, 并且遵循了上下位计算机之间的通信协议, 在传送速率、数据格式、同步方式、纠错检错方式等方面都可以实现自动匹配。使用CAN总线接口卡的dll扩展函数进行上下位计算机之间的通信。