邓 滨, 张 瑾, 钟沁锐, 乐任天, 童 新
(1.芜湖职业技术学院 电气工程学院,安徽 芜湖 241006; 2.西安文理学院 信息工程学院,西安 710065)
随着国家近几年来对职业教育的重视,各院校加大了对学生技能能力的培养,鼓励学生参加各类技能大赛.训练和参赛期间经常采买电子元器件,但在使用过程中,出现了各种问题,如每次采买人不同、种类多、数量不定,纸质领用记录混乱不利于查询,可反复利用的高端器件、传感器等无法及时回收等,造成了资源的浪费.本文设计一个小型元器件智能仓储管理系统[1-3],管理人员通过该系统可集中管理元器件出入库,及时掌握元器件的存储情况,按需购买元器件,提高元器件流通性及利用率.
图1 智能仓储管理系统设计方案
本系统设计方案见图1所示,上位机采用C#进行出入库信息处理,实现整机联调,上位机与各储存单元之间采用低成本高可靠性的LIN总线进行通讯,主节点用于控制LIN总线,从节点在主节点的命令下通过从LIN总线发送数据,本系统最多可扩展至15×15=225个存储单元.
电子元器件总类繁杂,大小不一,为方便存储,采用不同大小的存储盒.每个独立的盒子配有从机模块、灯光提示和开锁机构,方便取件人取件.因为采用LIN总线进行通讯,这些存储盒可以根据场地任意需求堆叠,方便摆放.
图2 单元模块供电电路
智能仓储系统采用成品开关电源,将220 V转12 V安全电压给每个单元进行供电.在每个模块中利用12 V给门锁机构和LIN总线供电,利用电源转换效率较高LM256构成的DC/DC降压电路,将12 V降至5 V给LIN芯片供电,再利用稳定性较好的ASM1117线性稳压芯片将5 V降至3.3 V给各单元模块主核心供电(图2).
本智能仓储系统的核心为LIN网络,为了保证LIN网络的稳定性、可靠性、有效性,采用了专业的LIN总线物理层收发器TJA1020来搭建LIN网络驱动电路进行实验(如图3).
图3 TJA1020集成芯片构成的LIN通信电路
LIN网络[4]在理论上可以进行无限级联,但在调试过程中发现,受到LIN网络的节点内阻的影响,最大只能级联15个.为了开辟更多的节点,设计了“LIN网络终端控制器”,其主要的作用是:
(1)实现网络与网络之间的连接,用一个母网络的节点控制一个子网络;理论上只要终端控制器的处理能力足够大,我们可以无限制地扩充节点.
(2)实时访问“智能仓储管理系统”的数据库并进行上传和下载.
(3)对子网络中所有的仓盒的数据监管和转存.
(4)另外终端控制器上设有两个指示灯,一个是对LIN网络的状态进行显示,方便后期维护.另一个灯是开门指示,用于提示器件盒位置.
因其处理的数据量大,采用128 kb Flash的STM8S208RB单片机[5]为主核心(图4).
仓盒控制部分是系统最基本的部分,其作用是通过节点向数据库上传当前仓盒中的器件型号、库存量、所在位置等数据,接收节点上的控制信号来完成开闭锁、故障提示、门开提示等功能.仓盒控制部分需要处理的数据量较小,该控制电路采用成本低廉的STM8S103F3P6单片机为核心(图5).
图4 LIN网络终端控制器设计
图5 仓盒控制部分电路设计
本项目中所有的调式功能均基于C#[6]上位机实现.在搜索界面输入想要的器件名称点击查询即可查看到器件的数量且器件所在的器件盒会打开,在管理界面可以实现器件录入、库存检查、领取人员查看以及库存器件不足提示,因此在单片机模块部分程序主要是进行通信网络的建立.部分程序如下:
定义系统核心变量程序
∥#definemaster_lin ∥作为主机模式串口设置.
∥#defineautomatic_resynchro∥是否确定为从同步模式.#define rec_version_1_x
u8master_lin_fg=0; ∥实现主机还是从机的选择宏.(0为主机)
u8master_send_fg=0; ∥发送标志位
u8send_linorder_fg=0; ∥主节点命令选项.
u8 slave_3_send_fg=0;∥从机端.从机作为发布节点.
u8slave_nodereply_fg=0;∥从机节点回复选项.
从机端定义发送从机节点数据部分程序
case 0x34:
version_num=0x00;∥LIN协议
data_send[0]=0x01;∥发送第一位数据内容
data_send[1]=0x02;
data_send[2]=0x03;
data_send[3]=0x04;
data_send[4]=0x05;
data_send[5]=0x06;
data_send[6]=0x07;
data_send[7]=0x08;
break;
发送LIN数据,把LIN通信协议集合起来,进行发送.
void serial_3_send(void)
{
u8i=0;
UART3_SendBreak();∥发送断开符
sync_field();∥发送同步数据信号
protected_field(ID_data);
for(i=0;i { UART3_SendData8(data_send[i]);∥发送串口数据 while(UART3_GetFlagStatus(UART3_FLAG_TC)==RESET);∥等待发送完成 } if(version_num==0x01)∥根据LIN版本操作校验和数据值,是在运行的事情确认的 { data_send_check_2_x();∥发送校验和场} else { data_send_check(); ∥发送校验和场} 基于Blend for Visual Studio 2013平台开发智能仓储管理系统[7],负责与LIN网络管理终端的数据交互,采买元器件先完成入库操作,使用者完成出库操作,系统记录信息.管理人员可以查询库存及出入库记录,及时掌握元器件存储情况,按需购买元器件,提高元器件的使用率.上位机界面见图6~图9. 图6 上位机操作界面 图7 入库信息表 图8 出库信息表 图9 库存信息表 基于LIN总线的智能仓储管理系统,散乱不易整理的元器件可存储在大小不同的存储盒里,方便用户取用,上位机的设计方便管理人员查看单元格内的元器件种类、数量、出入库情况,为元器件采购和追回提供依据.采用单元任意堆叠和级联的方式,可根据需要随时添加减少存储盒,提高了系统的机动性. [参 考 文 献] [1] 符川页.电子元器件仓储建设项目管理的研究与实施[D].上海:复旦大学,2009. [2] 沈雯.浅析如何开展实验室耗材管理工作[J].中外企业家,2013(35):54+65. [3] 于海燕.电子元器件的使用管理与控制[J].科技信息,2010(18):388-389. [4] 佟为明,孙凡金,赵志衡.LIN 总线技术[J].低压电器,2004(2):26-29. [5] 刘海成,叶树江,郭强.STM8 单片机原理与实践[M].北京:北京航空航天大学出版社,2013. [6] 陈钟,刘强,张高.C# 编程语言程序设计与开发[M].北京:清华大学出版社,2003. [7] 申晓杰,翁惠辉.基于C# 的串口通信上位机的设计与应用[J].电子世界,2014(3):155.4 上位机系统设计
5 结语