|
您的位置:首页 >>快递新闻 |
|
小议美国邮政启用的智能邮件条码- 时间:2010年10月15日发表于www.yptsn.com
ECA和QNX共同为美国邮政服务提供最新式的条形码分类机 Rus Duderstadt & Christina Dahling, ElectroCom Automation L.P. 每个工作日,美国邮政服务(USPS)都要处理全国各地数以百万计的信件。由于邮件的数目庞大,USPS的600,000工人们都会利用最新式的机器来更快更有效的处理这些信件。 其中一种就是条形码分类机(DBCS),每小时可以分类25,000到40,000封信件。QNX是其中用来控制和监视机器的各种功能的最重要部分。 DBCS由位于德州阿林顿的ElectroCom Automation L.P.(ECA)设计和制造,是德国Konstanz AEG ElectroCom GmbH的合作伙伴。从1990年,ECA就获得了2个USPS制造DBCS机器价值$46000万美元的大订单。到今天,ECA已经在USPS装配了超过1700套DBCS机器。 DBCS通过识别POSTNET条形码来分类信件,一列垂直条码会预先打印在信件上或者通过其他设备添加上去。这些条形码就相当于USPS的邮编,由5、9或11个数字组成。5位数或9位数的邮编就可以识别出信件的大概位置,11位数的邮编可以识别出具体的位置。使用11位的邮编,DBCS可以将信件按照邮递员的路径进行分类。这就可以大大节省邮递员的时间。 DBCS不仅仅只做这些工作,它还可以做的更多。它可以和中央文件服务器通过TCP/IP网络进行数据交换,还有一系列的分析工具。所有这些功能都需要一个强大的、多任务的操作系统,还要有可靠的TCP/IP支持和完善的图形界面。QNX支持所有这些功能。 一、系统需求 DBCS必须在一系列的物理特性中对信件进行分类――最小和最大的限制如信件长度、高度、厚度和重量。USPS需要严格的性能需求保证分类的准确度和机械的操作。 系统必须能够和外部的串行设备通讯还要能够对用户的输入和机器事件进行及时的响应。系统必须能同步处理打印报告、打印标签、描述机器的分析数据、每秒更新图形显示同时还要进行信件分类工作。系统还必须支持modem连接到远程PC,使得技术人员能够监视机器性能并提供技术帮助。 二、模块设计 DBCS有两个最重要的部分――系统PC(运行QNX)和实际机器。系统PC控制机器和提供用户界面、目的地包检查、生成报告、支持分析和其他软件功能。 DBCS机器包括好几个模块,每个都会执行一个基本的信件处理功能: 送件机、读卡器和存储模块通常被称为“中间件模块”,因为每个都需要一个嵌入式处理器进行控制(不运行QNX)。这些处理器扫描条形码和控制分流阀门直接将信件放到目的地包中。 三、送件和读码 这些信件会被放到运送模块上并通过读和存储模块。读模块包括识别POSTNET条形码同时需要跟踪电子和机械硬件并分拣信件到各个目的地包。 DBCS包含很多目的地,允许不同的配置来满足不同的需求。当前的DBCS模型有62到302个目的地分成了四个级别。 读模块扫描条形码信息并发送邮编到PC上。PC检查邮编的目的地并发回到读模块上。读模块然后就分拣信件到相应的级别,并发送一个关联跟踪信息到第一个存储模块上。跟踪信息会一直通过剩下的所有步骤。 每个存储模块包含每个级别的四个包。邮件通过存储模块分拣到它们的目的地包中。当一个包满了,操作者就会搬走它并贴上标签。 四、网络处理器 DBCS可以被看成一个有好几种不同通讯方式的网络处理器。读模块被当作主服务通过RS-485网络与存储模块通讯。单向并行接口、描述总线、跟踪信息,都在模块间进行传输。其他类型的信息也都由RS-485网络进行发送和接收。 PC和读或存储模块之间的信息通讯都会通过一个专有的高速并行计算机接口。读模块传输PC到存储模块和存储模块到PC的信息,通过并行计算机接口和RS-485网络实现。PC也通过RS-232连接和供给模块通讯。 五、适配板卡 PC使用好几种适配板卡和不同的模块与外界进行通讯。定制的板卡可以提供读模块的并行计算机接口。邮编和目的地数据使用这个接口进行交换。第二个定制的板卡提供条形码读卡器的高速(10Mbit/sec)串口连接。这个板卡在邮件处理过程中是不被激活的。是用来下载控制代码到条形码读卡器上并处理离线条形码数据分析。 当前的DBCS模型使用Connect Tech的Dflex-8串口板与串行设备进行通讯,包括送件模块、两个热标签打印机和一个独立的数据采集计算机。内部modem用来进行远程分析和Kermit文件传输。 PC包含SMC WD8003串行以太网接口板用来进行基于TCP/IP的文件传输。USPS工作人员在VAX计算机上创造了一个分类计划文件,并把它们下载到各个DBCS PC上。分类计划包括确定目的地包所必需的数据和特定的邮编。许多USPS设备都有许多特定的分类计划,每天都在改变。 PC通过串口控制了两个Microcom M-410EC热标签打印机。操作员可以从PC菜单中批量打印标签或独立打印特定的标签。一旦打印,每个标签都对应特定的信件。 六、QNX处理信件 当前的DBCS模型是由一个有16M RAM的486/25SX PC控制的。所有基于QNX的软件――操作系统、TCP/IP,QNX窗口和我们的应用――只占用了13M的磁盘空间。试想压缩其他的系统到如此小的空间中是多么的困难! DBCS软件的设计受到QNX一个重要特点的深刻影响――非常迅速的进程间通讯。使用其他的操作系统,我们需要载入更多的功能到进程中并且重新修改我们的通讯方式。在一个像我们这样的大型系统中,分布式的工作式是帮助我们简化工作的最好方式。软件安装功能划分到各个进程组或域中,如下所述。 mc (机器控制) 这些进程提供了最少的必需软件功能来分拣信件。高级进程处理信件包裹查询和管理全部的DBCS机器状态。低级进程负责与中间件模块通讯。一个低级机器控制进程的例子是并行计算机接口的驱动。 mp (信件处理) 该过程会收集分类、运行统计和生成报告。这些报告是非常重要的,因为需要使用它们来监视机器的性能。每天都会进行统计持续45天,这些数据就会生成大量的报告。典型的报告会包括信件输出统计、条形码鉴别效率和机器性能。当完成信件分类工作后,这些数据会被添加到一个包含优先级运行统计的文件中。这样的话,只要当前正在运行的数据在机器重启或掉电的情况才会丢失。 dg (诊断) 诊断过程会接收和分析中间件模块的状态和统计数据。每个模块类型,都有超过20种不同的信息。状态信息包括像板卡、指示灯、按钮和电池的底层组件的信息。另外,发送当前状态信息到系统PC上,中间件模块会测试大多数的组件并发送结果的状态信息。 状态和统计信息可能会由中间件自动发送(例如,当发生错误的时候)或者当PC需要的时候。诊断过程检查数据并确定是否发生了错误。如果发生错误,系统就会生成一个错误信息保存到数据库中并显示在屏幕上。 大多数的统计信息在信件处理过程中会累积大量的中间件模块的数据。这些数据会被收集保存到磁盘上,会被后面的分析诊断软件使用。维护人员可能会看到某个模块在一年中的运行情况。我们使用Tilcom实时开发包软件以条状图和线条图的形式来显示分析数据。 ui (用户界面) 这个过程用于管理图形用户界面。为了简化用户界面的开发,我们使用了Klondike OWCTool 工具包。DBCS设计的窗口由几个简单的组件组成;界面不复杂而且很直观。每个屏幕上都会显示详细的在线帮助,可以用来进行机器诊断。实时显示,每秒都会更新,为操作员提供及时的反馈。 lp (标签打印) 标签打印过程控制标签的打印。这些条形码标签包括邮编范围、目的地代码、信件日前和其他一些必需的信息。标签信息会被发送到通过9600 波特率的RS-232串口连接的两个标签打印机中的一个上。打印状态会被监视,各种事件像没有纸之类的都会显示在用户界面上。 rp (远程数据采集计算机) 这些数据采集计算机的界面是通过一个9600波特率的串口进行连接的。在DBCS工作的同时,机器状态和邮编数据都会发送到此计算机上。计算机会储存所有机器的信息。 fs (文件服务) 文件服务处理以太网和软盘控制,包括用户请求从VAX文件服务器或磁盘上复制文件。QNX提供了基于以太网的TCP/IP文件传输协议。DOS和QNX的文件格式都可以被支持。 rd (远程诊断) 远程诊断允许USPS技术人员通过modem访问DBCS PC。远程PC包含一个用户界面,类似于DBCS GUI,但是有不同的功能。通过远程PC上的菜单,技术人员可以拨号连接DBCS PC,可以看到机器报告、诊断和信件处理状态。QNX modem应答呼叫并传送控制到远程诊断机器上。其他远程诊断过程会保留在PC上,其他应用会响应远程请求。使用qtalk可以进行远程登录。 de (调试) 调试共享内存中的各种读和打印内容。使用信号灯可以访问这些地方。当前的信件处理事件、信件统计、诊断数据和队列信息都会很容易的被检查,并在测试软件过程中进行验证。 st (启动和关机) 此过程用于启动DBCS软件,处理进程通告和执行软关机。 七、信息传递 DBCS软件系统中的信息传递大多都使用修改后的QNX队列管理功能,用在QUICS上。这个中间过程提供直接的、无阻塞的通信过程。我们使用这个方式来简化我们的系统集成。高优先级的进程会一直发送而不会等待和停止。软件错误会被及时记录保存。低优先级进程会等待直到有空闲资源可用。代码被加入到队列管理中,来记录和显示高危标识。这可以帮助编程人员调整队列大小从而避免瓶颈和数据的丢失。除了信息传递,队列还使用信号灯。 所有DBCS应用进程的信息都会保存到一个配置文件中。文件中的数据包括进程名称和优先级、控制标识、输入队列参数和命令行参数。 启动进程读这个文件并把信息存放到共享内存进程表中,然后启动进程创建所有的队列和其他进程。通过在应用程序启动之前创建所有的信息队列减少同步问题的发生。 无论哪个应用进程死掉启动进程都会直接通告。依赖于共享内存中的控制标识,启动进程可以记录包含死亡进程名称、推出点或出错地址和挂起信号的错误信息。一个延续进程会创建来替代死亡的进程队列。这就可以保证其他的进程顺利的运行而不会发生致命的问题。 QNX的队列函数被压缩到一个特定的应用函数集中,可以访问共享内存进程表。一个调用可以打开这个函数集并扫描表中感兴趣的进程,使用相关的队列调用函数queue_open()来调用。 进程知道各自的名称和其他进程的名称,但是所有的队列机制都被函数集所隐藏。结合这些信息传递函数可以让我们实现一些重要的特性。例如,在启动配置中设置标识,我们可以创建延续进程来读和丢弃相关输入队列中的信息。这在开发的早期和中期特别的有用。我们能够在一开始的时候就进行分类。这个成功鼓励我们将其他的应用都移植到QNX下。 八、开发和维护 DBCS软件是由一个QNX网络的软件工程师团队开发完成,包括启动服务器、热备份节点、开发工作站和集成工作站。 DBCS应用软件包含三十多个进程。由超过500个.c和.h文件组成。源代码、shell脚本、系统文件和各种配置文件通过版本控制系统(RCS)来维护。除了RCS,我们建立了一个文件名规范来管理我们的代码。 我们保留了老版本的系统二进制文件、函数库和INCLUDE文件在独立的目录中,方便后续维护和重建。QNX的前缀功能用来指定老目录。这让我们可以用已经发布的操作系统、编译器、TCP/IP或QNX Windows来编译我们的程序。 九、QNX工作 目前,ECA正在开发一个允许QNX Rundos和Microsoft Windows的多媒体专用系统。为DBCS操作者和管理者提供了在线培训。 QNX软件系统公司为我们的开发提供了极大的帮助和支持。工程师们及时准确的响应了我们的问题,QUICS保证了信息的安全性和非常容易的软件升级。 条形码分拣机是USPS使用QNX的第一个项目。USPS对于机器性能的反应是极其的肯定。基于这个成功的案例,ECA将会继续使用QNX来帮助他们完成其他的自动化项目。 |