基于条形码扫描技术的货物存储系统的研究与设计

2019-09-27 05:05张世综徐世许边长安
制造业自动化 2019年9期
关键词:条形码控件串口

张世综,徐世许,边长安

ZHANG Shi-zong,XU Shi-xu,BIAN Chang’an

(青岛大学自动化学院,青岛 266071)

0 引言

随着经济水平的提高以及工业生产力的迅速发展,人们对原材料、制成品的需求数量不断增加的同时,对物料储存的要求也越来越高,伴随着条码识别技术的发展及设备自动化水平的不断提高,条码技术成为信息数据自动识别、输入的重要方法和手段,现已应用到了商业、工业、交通运输业、物流、医疗卫生等国民经济各行各业。该系统将条码扫描识别技术、ACCESS数据库、NJ控制器与小型自动化仓库结合起来,使自动化立体仓库,能够按照指令自动实现货物存取,而且能够自动管理库存货物,实时对存取的货物信息进行记录和删除,并且通过查询历史货物进出流水信息对库存信息全面的掌握,进行制定合理的进出库计划。有利于企业根据所掌握的现有库存量等信息及时的对生产计划、采购计划等进行有效的调整,增强了企业在生产加工过程的灵活性,也有利于企业管理人员的决策分析。具有十分重要的社会和经济效益。

1 控制系统原理

1.1 运动控制

系统的运动控制部分采用位置控制模式,当交流伺服系统处于位置控制模式时,能够精准地控制伺服电动机的转数,进而准确的实现执行部件的移动距离,即能够对执行部件实现运动定位控制。该模式下由驱动器接收位置命令,并控制伺服电机转动,运行至目标位置。伺服控制器可以通过判断脉冲编码器传送回来的脉冲数与PLC传送来的位置命令即总的脉冲信号数量判断电机是否旋转至规定位置,即以当前伺服作为驱动的机构已经运动到了指定的位置。另外控制器输出脉冲的频率越快,电机旋转的速度也越快[1]。位置控制模式架构如图1所示。

图1 位置控制模式框架图

1.2 直线插补

直线插补是数控设备上常见的一种插补功能。数控系统中直线插补功能的主要任务是在给定行进速度的基础上在直线的起点和终点中间计算出若干个点的坐标,两点间的插补运动通过逼近直线中的点群来实现[2~4]。

系统采用直线插补的方式到达指定位置,既做到了稳定平滑也实现了精确控制。假设在平面上存在任意直线,其起点和终点分别表示为A(x0,y0)和B(x1,y1),则直线的数学表达式可表示为:y=kx。式中:

图2为从A点到B点的直线插补示意图。

图2 直线插补示意图

当k<1时,有vx>vy,则一动点D运动的方向存在两种情况:

1)仅沿x方向运动;

2)除了沿x方向运动外,同时沿y方向运动vx>vy。当k>1时,有vx<vy,此时动点D的运动方向同样也存在两种情况:仅沿y方向运动;除了沿y方向运动外,同时沿x轴方向运动且vx<vy[6,7]。

2 条形码扫码系统的组成与实现

2.1 条形码识别技术

条形码技术是在计算机发展和应用过程中产生和发展起来的自动识别的技术。识别过程主要分为读取、识别和传送三个过程,读取条形码的装置称作扫码器。本系统用到的条码标签示意图如图3所示,系统在一个周期内读取多个条形码完毕后将数据发送至串口。

2.2 系统组成

货物条形码扫描系统主要由上位机、迈斯肯MICROHAWK ID-40扫码器、欧姆龙NJ控制器、CXSupervisor组态软件、数据库程序等组成。系统结构图如图4所示。扫码器和上位机通过RS232c进行通信,遵循串口通信协议。扫码器固定在取送货物的机械手上,结构示意图如图5所示。

图3 标签示意图

图4 扫码系统结构图

图5 机械手结构示意图

2.3 系统实现

2.3.1 CX-Supervisor

CX-Supervisor是为欧姆龙系列PLC和运动控制器开发的组态软件,扫码系统采用CX-Supervisor编写程序,CX-Supervisor可实现一键模拟,点击鼠标即可实现对应用程序的模拟仿真;可实现远程维护,不需要修改应用程序就可以在任何地方查看应用程序的运行状态,只需要通过网页浏览器就可以安全访问安装的应用并对状态进行监视,这对于后期的维护提供了极大地方便;CXSupervisor3.2支持多种脚本语言,包括VBScript以及欧姆龙自己的语言,编写者可以根据自己的需要自行选择,易用性较强,缩短开发周期。CX-Supervisor常用功能如完整的项目视图、点编辑器、图形库、警报、动画、权限管理、数据库操作以及远程管理等功能[8]。对中小型系统的开发相比专业的编程软件更加简洁和便利,同时可以省去大量通讯程序的编写,大大降低开发难度,做到随调随用。

2.3.2 系统条码识别的实现

条形码扫码系统的数据管理部分由数据库管理系统ACCESS2010和CX-Supervisor共同实现。通过修改扫码器系统固件参数实现同时读取多个条形码的数据,在CX-Supervisor编写程序发打开扫码器镜头发送命令使扫码器进入预读码状态,货物入库过程中机械手夹报货物托盘入库,同时进行读码,每盒货物的多个条码读取完成后数据自动上传到扫码器的缓冲区。然后将数据存在串口缓冲区,在下次读码前进行数据提取,关掉镜头、将串口进行初始化和清空缓冲区等操作,等待下一次读取,重复执行该操作即可实现连续读码。

2.3.3 数据处理

将接收的数据在程序中进行解析,判断出该物品的具体信息,如身份标识、种类、采购日期、失效日期等,然后将处理完的数据为下一步的操作做准备。数据处理与机械手的入库动作通过条件脚本结合在一起,例如在运动控制器中程序rh_sh_pos_A_back1触发时执行写库程序,如图6所示。

图6 写库触发程序图

2.3.4 数据库操作实现

ADO控件(ActiveX Data Objects,ActiveX数据对象)是Microsoft提出的应用程序接口,可以使用ADO控件在CX-Supervisor与Access数据库之间建立关联,通过ADO控件将读取解析完的数据对数据库进行读写操作,同时通过ADO控件可进行查询功能的设计[9]。

3 程序设计

3.1 扫码程序实现

3.1.1 串口设置程序

在编写扫码器读码程序前需要先对串口进行配置,以保证上位机和扫码器可以正常通信。串口1配置程序如下:

MSComm1.CommPort=1 ‘设置串口为端口1

MSComm1.Settings=“115200,N,8,1”‘设置波特率,

MSComm1.InputMode=0 ‘数据通过 Input 属性以文本形式取回

MSComm1.InputLen=0

MSComm1.InBufferCount=0 '清空接收缓冲区

MSComm1.outBufferCount=0

MSComm1.RThreshold=1 '缓冲区中接收到一个字符,就产生一次OnComm事件

MSComm1.PortOpen=True

程序中对端口、波特率、奇偶校验开始位、停止位等进行设置,同时对串口接收缓冲区进行清空,为下一次接收数据做准备,串口2和串口3的配置与串口1相同,串口配置是应用扫码器的必要条件[10]。

3.1.2 扫码器读码程序

在串口准备完毕后,打开扫码器,进入预读码状态。程序实现如下:

程序中在运动控制器的对货物进行运动扫码状态下,分别对三个串口发送16进制命令打开扫码器镜头。

3.1.3 数据接收、处理程序

扫码器扫到条形码后会将数据存储到缓冲区等待取出,编写程序取出数据并进行数据的匹配。部分程序如下:

取出数据后向扫码器发送16进制命令关闭镜头同时关闭串口,下次使用时再次打开串口、发送命令。数据匹配完成后程序上会给出货物对应的详细信息,如图7所示。

图7 扫码信息图

3.2 使用ADO控件实现对ACCESS数据库的操作

ADO Data控件是通过Microsoft ActiveX数据对象(ADO)来建立起符合OLE DB规范数据源连接的数据绑定控件。在VB6.0的环境下使用ADO控件对数据库中的数据表进行操作,具体操作步骤如下。

3.2.1 连接数据库

在CX-Supervisor编辑界面点击工具栏上的配置Active X工具栏,勾选“Microsoft ADO Data Control,version6.0”对ADO控件进行调用,然后在界面上放置ADO控件,双击控件选择要连接的数据源,如图8所示,生成连接字符串完成数据库的连接[8]。

图8 连接数据库

3.2.2 对数据库进行数据操作

在CX-Supervisor中对ACCESS数据库操作不需要编写特定的连接语句,可做到随调随用,省去了传统编程下对数据库操作时编写繁琐的连接语句。货物进库时对数据库进行写库操作,部分程序如下:

货物出库时机械手将取到的货物托盘送至窗口,同时数据库删除相应的记录[11]。程序实现如下:

3.2.3 查询历史记录

系统在实现存取操作时将货物信息记录到数据库中保存在ACCESS数据表中,设计查询界面可对当前的库存信息和流水信息就行查询和导出Excel表格,方便用户进行查看。

1)查询程序设计部分代码如下:

2)导出到Excel部分程序部分代码如下:

系统中查询历史出入记录主要借助ADO控件和Datagrid控件,用Adodc中的RecordSource属性或者Recordset对象从数据源中根据需要的数据,选择打开的记录集。用Recordset对象中的属性对记录集中的记录查询功能。将Datagrid与ADO控件进行绑定即可将数据直观的显示在程序界面中。本系统能够实现根据日期、货物种类、货物名称或货号对数据进行查询、导出到Excel等功能[12]。查询导出界面如图9所示。

图9 查询导出界面

4 结语

本文通过运动控制器配合机械手运动可做到精确存取,加入扫码器配合机械手使入库操作和出库操作做到信息自动统计,无需人工干预,真正做到自动存取、自动记录,相比传统存储过程省去了大量的人力物力,提高了存储效率。利用CX-Supervisor设计用户操作界面不仅可以减少编程人员的工作量,也令运动控制过程和用户界面更好的结合在一块,使系统更加稳定,方便调试。本文设计的系统实现自动扫码出入库,后期将沿着更加智能的方向进行设计和研究。

猜你喜欢
条形码控件串口
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
创意条形码
浅谈AB PLC串口跟RFID传感器的通讯应用
基于.net的用户定义验证控件的应用分析
基于EM9000工控板高性能双串口通信模型设计与实现
从条形码到二维码
关于.net控件数组的探讨
有趣的条形码
船舶电子设备串口数据的软件共享方法
条形码也有春天