img

康耐视移动条码SDK
通用产品

通用产品是什么?

通用产品代码(也称为UPC-A和UPC-E)可能是北美最容易识别的条形码,因为它出现在所有零售产品包装上。它既是一种条形码符号,也是一种用于其使用的标准化编号方案。与许多其他更通用的条码符号(例如,39码代码128代码25),它是为特定的数据而构建的:11位产品代码(以及后来的6位压缩产品代码)。

一个简短的历史

早在1968年,美国的杂货店就在寻找一种更快、更准确的结账方式。美国食品链协会要求设备制造商提供条形码扫描解决方案。为了应对这种情况,美国无线电公司于1969年在辛辛那提的一家超市使用了靶心式条形码。在20世纪70年代早期,统一食品杂货产品编码委员会(一个由几个食品杂货行业领导者组成的特别委员会)制定了产品条形码的指导方针和标准。该委员会向七家不同的硬件制造商征求条码符号和销售点解决方案。1973年,该委员会接受了IBM的UPC符号,并进行了少量修改。这一符号的发明归功于IBM的高级工程师乔治·劳雷尔(George Laurer)。到1976年,欧洲市场也采用了产品条形码的符号,EAN,是UPC的超集。

符号学

有两种常用的符号:UPC-A和UPC-E。两者都是数字,固定长度的符号。UPC-A是12位长(11个数据和一个校验位),而UPC-E是6位长。UPC是一种线性、一维(1D)条形码。这意味着条形码是由一组宽度不同的垂直线(黑色)和空格(白色)组成的。以下是UPC-A和UPC-E条形码的一个简单示例:

pages_UPC-A_example.pngpages_UPC-E_example.png

这两种符号进一步被描述为连续的;也就是说,相邻字符之间没有字符间空间。字符之间的空格是数据表示的一部分。每个数据字符由两个条形和两个空格组成的独特模式表示,条形/空格的宽度为1、2、3或4个模块。每个数据字符共有7个模块。

UPC-A使用开始模式,停止模式,以及中间(保护)模式。UPC-E只使用启动和停止模式。UPC-A包含一个单位数校验位。以下是上面的UPC-A代码,为清晰起见用图表表示(下面将详细讨论UPC-E代码):

UPC-A_diagramed

奇偶校验

值得注意的是,该符号对其数据字符使用了奇偶模式。这意味着,根据数字在符号中出现的位置(在中间守卫的左边或右边),用于表示该数字的模式将具有奇偶校验或偶偶校验。奇数奇偶校验意味着用于数字的黑色条的总宽度(以模块为单位)是奇数,而偶数奇偶校验意味着黑色条的总宽度是偶数。这意味着每个数字(0-9)有两个栏/空间模式:一个奇偶校验,另一个奇偶校验。在上面的例子中,我们突出显示了5位数字:一个出现在符号的左边(奇偶校验),另一个出现在符号的右边(偶校验)。注意,竖条/空格模式是不同的,即使它是相同的数字(5):

pages_UPC-A_parity.png

这种奇偶校验方法有助于确定条形码被扫描的方向,以及检测“打印”和“扫描”错误。UPC-E符号进一步使用奇数/偶数奇偶校验的特定组合来表示额外的数据(稍后讨论)。

编号

如上所述,UPC不仅仅是条形码符号;该标准还定义了条形码内产品编号的结构和控制。所有代码均为12位数字,一般结构如下:

NMMMMMPPPPPC

地点:

N为代码中使用的编号系统;也叫版本

MMMMM是一个5位的制造商代码

PPPPP是5位产品代码

C是校验位

MMMMM和PPPPP的结构和使用根据指定编号系统而改变。这里是编号方案的一个快速总结

编号

计划(年代)

描述

0 1 6 7 8

用于大多数产品,MMMMM是GS1分配的制造商代码,PPPPP是制造商分配给产品的代码。

2

用于当地商店按重量出售的物品(如熟食柜台的肉)。MMMMM是商店分配的商品编号,PPPPP是重量或价格(PPPPP的第一个数字通常表示哪一个)。

3.

表示国家药品代码,由FDA指定用于人用药品的唯一标识符。NDC是一个10位编码,由产品供应商(标签代码)、剂量/配方指标(产品代码)和包装尺寸信息(包装代码)组成。

4

预留给当地商店使用;通常用于忠诚计划/卡和商店优惠券。

5、9

用于制造商优惠券。像产品代码一样,MMMMM是GS1分配的制造商代码,而PPPPP表示优惠券:前3位是家庭代码(用于验证消费者是否购买了优惠券产品),后2位是价值代码(由GS1定义的标准折扣代码)。

制造商代码由美国GS1(以前的统一代码委员会,或UCC)发布。

UPC-E

UPC- e(也称为零抑制UPC)是一种特殊的8位UPC代码,主要用于小包装标签,其中完整的UPC- a可能不适合(例如一包口香糖)。UPC- e的工作原理是在UPC数字中“抑制”零。这意味着并非所有的UPC-A数字都可以表示为UPC-E。当一个UPC- e被扫描时,它通常被销售点(POS)系统扩展成完整的12位UPC代码。

将UPC-A转换为UPC-E的方法如下:

  1. 当厂商码以000、100或200结尾时,UPC-E编码由厂商码前2个字符、产品码后3个字符和厂商码第三个字符组成。产品代码必须是00000到00999。
  2. 如果制造商代码以00结尾,但不符合上面的#1,则UPC-E代码由制造商代码的前三个字符,产品代码的后两个字符,后跟数字“3”组成。产品代码必须为00000 ~ 00099。
  3. 如果制造商代码以0结尾,但不符合上面#1或#2的质量,则UPC-E代码由制造商代码的前四个字符、产品代码的最后一个字符和数字“4”组成。产品代码必须为00000 ~ 00009。
  4. 如果厂商码不以零结尾,则UPC-E码由整个厂商码和产品码的最后一位组成。注意,产品代码的最后一位数字必须在5到9之间(因为0-4用于表示上面1-3的制造代码)。产品代码为00005 ~ 00009。

此外,UPC-E仅适用于使用编号系统0和1的代码。

本讨论中使用的样本UPC-A是专门为演示如何将其转换为UPC-E而选择的。UPC-A代码的号码是012345000058;编号方案为0,厂商码为12345,产品码为00005。此代码满足上述规则4;因此,123455将被编码在UPC-E条形码中。

UPC-E使用与UPC-E相同的启动模式(防护),但使用不同的停止模式(UPC-A的中间防护和末端防护组合)。UPC-E不计算自己的校验位;使用对应UPC-A的校验位。

pages_UPC-E_diagramed.png

注意,UPC-E符号并不显式地存储数字系统,并将数字检查为数据字符。相反,该信息由所使用的数据字符的奇偶性表示。不像UPC-A对左手字符使用奇数奇偶校验,对右手数字使用偶数奇偶校验,对每个字符使用的奇偶校验是基于数字系统和校验数字的。

谁使用通用产品?

UPC被用于世界各地数以百万计的消费品,但主要是在北美、英国、澳大利亚和新西兰。在这些国家,几乎所有的零售商店都使用它来扫描产品并在结帐时给产品定价。

移动设备和应用程序的爆炸式增长也带来了许多额外的、消费者面对它们的使用:

  • 比较购物
  • 产品评论
  • 详细的产品和制造商信息
  • 有竞争力的产品推荐
  • 安全和召回信息
  • 详细的成分列表
  • 过敏原信息
  • 和更多!

我们如何帮助开发人员使用UPC?

Cognex移动条形码扫描器SDK支持UPC检测,使开发人员能够收集相关的工作流和应用数据。您可以通过注册康耐视移动条码免费下载SDK开发者网络.此外,条形码扫描器SDK支持广泛的象征学满足您日益增长的发展需求。包装上有消费品条形码EANGS1 DatabarPDF417,二维码, SDK消费者开发许可(CDL)让您能够快速、轻松地交付强大的零售体验。