tft每日頭條

 > 生活

 > 條碼編碼的三個原則

條碼編碼的三個原則

生活 更新时间:2024-05-16 13:46:08

哈喽,大家好,前段時間給大家介紹了常見條碼的基本類型及構成方式,現在給大家介紹下,如果隻是靠在輸入框内輸入一串數字,軟件怎麼識别這些條碼是什麼類型的條碼,條碼内的數字代表什麼?為了想到辦法,小編耗費了幾十根頭發,才想到一個“馊主意”,下面直接看具體内容吧:

條碼編碼的三個原則(常用條碼編碼規則說明及示例解析)1

1、條碼解析流程

1.1. 主流程

條碼編碼的三個原則(常用條碼編碼規則說明及示例解析)2

流程描述:

Ø 通過條碼掃描器獲取到條碼内容;

Ø 系統内設定完成各種條碼的解析規則;

Ø 進入條碼解析流程;

Ø 無法解析則報錯提示重新掃描條碼;

Ø 條碼解析完成;

Ø 條碼解析結果展示;

Ø 根據掃描到的條碼到對應的業務數據庫内查詢;

1.2. 解析流程

條碼編碼的三個原則(常用條碼編碼規則說明及示例解析)3

流程描述:

Ø 先計算條碼内容的位數:默認8位為EAN-8/UPC-E碼、12位為UPC-A碼、13位EAN-13碼、14位ITF-14碼,其餘為任意位;

Ø 默認情況下判定的條碼類型後進入預設的解析規則進行解析,解析不出的話進入任意位的解析程序;

Ø 任意位的條碼判定,先判定條碼的開頭:括号為GS1-128碼、 号為HIBC碼、其餘進入校驗位解析程序;

Ø 先根據code-128碼的校驗位規則校驗,若成功,則為code-128;

Ø Code-128校驗失敗後根據code39碼的校驗位規則,校驗成功為code39碼;

Ø 校驗失敗默認為codabar碼,進行codabar碼解析;

Ø 解析失敗提示無法解析;

1.3 EAN-8條碼信息提取流程

條碼編碼的三個原則(常用條碼編碼規則說明及示例解析)4

如上圖所示為EAN-8條碼,讀取數據為69326745,條碼寬度為定長8;

EAN-8條碼的組成為,其中:

“前綴碼 商品項目代碼 校驗碼”

前綴碼:國際EAN組織分配給各國或地區的組織代碼,定長,共3位;

商品項目代碼:商品代碼,由中國編碼中心分配,或廠商自行編碼,定長,共4位;

備注:一個商品項目隻能有一個商品項目代碼,唯一性;

校驗位:檢驗編碼是否正确,定長,共1位;

信息提取流程:

由于EAN-8碼的各部分均為定長,因此,可直接按照指定寬度進行信息的提取。

首先,設備讀取數據後,截取數據的前3位,第1-3位,該數據段為即為國家代碼;

其次,截取數據段的中間4位,第4-7位,該數據段即為商品的項目代碼;

最後,校驗位,主要用于檢驗數據編碼是否正确,可不考慮。

1.4 EAN-13條碼信息提取流程

條碼編碼的三個原則(常用條碼編碼規則說明及示例解析)5

如上圖所示為EAN-13條碼,讀取數據為6952456726512,條碼寬度為定長13;

EAN-13條碼的組成為,其中:

“廠商識别代碼 商品項目代碼 校驗碼”

廠商識别代碼:不定長,7-10位,由國家代碼與廠商代碼組成,其中,

國家代碼由國際EAN組織統一分配給各國或地區的組織代碼,定長,共3位;

廠商代碼由中國物品編碼中心統一分配給生産廠商,不定長,4-7位;

商品項目代碼:商品代碼,由中國編碼中心分配,或廠商自行編碼,不定長,共2-5位;

備注:一個商品項目隻能有一個商品項目代碼,唯一性;

校驗位:檢驗編碼是否正确,定長,共1位;

信息提取流程:

由于EAN-13碼中的廠商代碼與項目代碼不定長,因此,需要多次循環處理,判斷哪種截取方式是正确的。

當設備讀取數據結束之後,并确定了數據寬度為13時:

第一步,截取數據的前7位,并将這7位數據與廠商識别代碼數據庫進行比對,

若比對成功,則表明這7位數據為正确的廠商識别代碼,

其中,前3位為國家代碼,後4位為廠商代碼;

那麼餘下的6位數據即為商品項目代碼及校驗碼,截取該數據段的前5位,即為商品項目代碼;

若比對不成功,則進入下一步;

第二步,截取數據段的前8位,并将這8位數據與廠商識别代碼數據庫進行比對,

若比對成功,則表明這8位數據為正确的廠商識别代碼,

其中,前3位為國家代碼,後4位為廠商代碼;

那麼餘下的5位數據即為商品項目代碼及校驗碼,截取該數據段的前4位,即為商品項目代碼;

若比對不成功,則進入下一步;

第三步,繼續截取數據段的前9位或10位,直到截取數據與廠商識别代碼比對成功,然後按照對應的位置,提取相應的信息,具體操作同以上兩個步驟。

1.5 HIBC條碼信息提取流程

1. HIBC碼與其它編碼的區分

HIBC碼與其它碼有一個非常明顯的區别,就是所有HIBC碼的設備讀取數據(包括條形碼、二維碼等)的第一位都固定為“ ”,因此,在進行條碼讀取時,可以根據讀取數據的第一位字符對HIBC碼進行識别。

區分流程如下:

第一步,設備掃碼獲取條碼數據;

第二步,提取條碼數據的第1位,若該字符為“ ”,則判定該條碼為HIBC碼;

第三步,否則,判定該條碼為其它規則條碼;

判定結束!

2. HIBC主、從條碼區分

與Code-128編碼規則類似,HIBC碼也有主、從之分,其中,主條碼主要描述與産品基礎屬性相關的标簽信息,而從條碼則主要描述與産品生産、配送等相關的附加信息。

根據表1-3主、從條碼數據結構及指示符可以發現,主、從條碼間有比較明顯的相同點與不同點:

相同點:都是以“ ”作為條碼數據的起始字符;

不同點:主條碼中,“ ”之後的數據為标簽識别碼(或稱廠商代碼),其固定格式為“ 1位字母3位數字......”;

從條碼中,“ ”之後的數據為效期或系列号,其中,其格式固定為兩種,“ 數字......”和“ $......”;

由此可知,主、從條碼“ ”之後數據的第一位字符有所差異,因此,在讀取數據時,可以根據“ ”之後的第一位字符對主、從條碼進行區分。

區分流程:

第一步,設備掃碼獲取條碼數據;

第二步,提取條碼數據的第2位(即“ ”标識符後的第1位);

第三步,若該字符為字母,則判定該條碼為主條碼,然後根據主條碼的編碼規則進行信

息提取,否則,進入下一步;

第四步,若該字符為數字或$,則判定該條碼為從條碼,進一步地可根據從條碼的編碼

規則進行信息提取,否則,進入下一步;

第五步,若以上步驟均未成功,則報錯,另行處理;

判定結束!

3. 主條碼信息提取

前提:已判定該條碼為HIBC的主條碼!

條碼編碼的三個原則(常用條碼編碼規則說明及示例解析)6

如圖所示是一個HIBC的主條碼,其數據結構如下:

· “ ”,HIBC識别符,定長1位;

· “标簽識别碼”,定長4位,1位字母 3位數字;

· “産品代碼”,不定長1-18位,字母數字組合;

· “包裝代碼”,定長1位,取值0-9;

· “校驗符”,定長1位,大寫字母、數字或特殊字符;

如上所述,HIBC主條碼的數據結構比較固定,當設備讀取到條碼數據時,可直接對相應信息進行提取,流程如下(以上圖為例):

第一步,當設備讀取條碼時,得到一個字符串“ E239DD5048721-”,并傳入數據庫中;

第二步,校驗位驗證,根據表9.4,計算出校驗位的ID值,判斷該ID值是否為38,

若ID值=38,則進入第三步,否則,進入第四步;

備注:由于ID值為38時,校驗位為空格,掃碼時空格有可能不顯示。

第三步,調出字符串,并提取該字符串除第一位與空格的所有數據,假設新字符串位為M,則M為“E239DD5048721”,然後進入第五步;

第四步,調出字符串,并提取該字符串除第一位、最後一位的所有數據,假設新字符串為M,則M為“E239DD5048721”,然後進入第五步;

備注:第一位為HIBC碼标識符,最後一位為條碼校驗符,均不考慮。

本示例屬于ID值≠38的情況。

第五步,提取新字符串M的前4位,“E239”,則該字符串即為标簽識别碼(或廠商代碼),假設此時最新的字符串為N,則N為“DD5048721”,然後進入下一步;

第六步,提取最新字符串N的最後一位,“1”,則該字符即為包裝代碼,然後進入下一步;

第七步,按照以上步驟,提取完标簽識别代碼、包裝代碼,餘下的字符串“DD504872”,即為産品項目代碼;

至此,條碼信息提取結束,可按照提取數據的對應屬性将字符串傳入數據庫中,或填充到相關單據中。

4. 從條碼信息提取

前提:已判定該條碼為HIBC的從條碼!

條碼編碼的三個原則(常用條碼編碼規則說明及示例解析)7

如圖所示是一個HIBC的從條碼,其主要數據結構如下:

· “ ”,HIBC識别符,定長1位;

· “$$3”,不定長0-3位,用于指示數據結構的标識符;

· “産品效期”,位于效期标識符之後,不定長4-8位,其是否會出現、及出現的格

式均由其标識符決定;

· “LOT”,産品代碼,不定長0-18位,字母數字組合;

· “系列号”,不定長,1-18位,字母數字組成;

· “校驗符”,定長1位,大寫字母、數字或特殊字符;

如上所述,HIBC從條碼的數據結構并不固定,其數據結構完全由表9.3數據指示符決定,當設備讀取到條碼數據時,可根據指示符所對應的編碼結構對相應信息進行提取,

流程如下(同樣以上圖為例):

第一步,當設備讀取條碼時,得到一個字符串“ $$3170930509104X509110”,并傳入數據庫;

第二步,校驗位驗證,根據表9.4,計算出校驗位的ID值,判斷該ID值是否為38,

若ID值=38,則進入第三步,否則,進入第四步;

備注:由于ID值為38時,校驗位為空格,掃碼時空格有可能不顯示。

第三步,調出字符串,并提取該字符串除第一位與空格的所有數據,假設新字符串位為M,則M為“$$3170930509104X509110”,然後進入第五步;

第四步,調出字符串,并提取該字符串除第一位、最後一位的所有數據,假設新字符串為M,則M為“$$3170930509104X509110”,然後進入第五步;

備注:第一位為HIBC碼标識符,最後一位為條碼校驗符,均不考慮。

本示例屬于ID值=38的情況。

第五步,确定字符串數據結構,提取該字符串M的前3位,“$$3”,參照表9.3确定該字符串的數據結構如下,然後進入下一步;

“$$ 效期(YYMMDD) 系列号LOT”

備注:若前3位對照不成功,則可繼續提取1-2、4-5、8-9位,與表9.3進行對照,直到找到對應的數據結構;

第六步,在數據結構确定的基礎之上,剔除判别标識符“$$3”,假設新字符串為N,則N為“170930509104X509110”,然後進入下一步;

備注:HIBC标識符、校驗符、判别标識符已剔除,數據結構已确定,則下一步就可以直接進行信息提取。

第七步,根據上一步确定的數據結構格式,提取字符串N的前6位(備注:根據數據結構格式,提取的位數不固定,一般為4-8位,參見表3效期格式),“170930”,則該字符串即為産品有效期,根據格式YYMMDD,将其翻譯為:“産品有效期為2017年9月30日”,然後進入下一步;

第八步,根據數據結構格式,提取完效期後,餘下的字符串“509104X509110”,即為産品的系列号;

至此,條碼信息提取結束,可按照提取數據的對應屬性将字符串傳入數據庫中,或填充到相關單據中。

注意:本節中僅描述了其中一種數據結構格式($$ 效期(YYMMDD) 系列号)的信息提取流程,其它數據結構格式的條碼提取流程同上。

5.主、從合并條碼信息提取

條碼編碼的三個原則(常用條碼編碼規則說明及示例解析)8

如上圖所示,為主、從條碼合并的情況,主、從條碼以“/”分隔開,則該情況的條碼信息提取流程如下:

第一步,當設備讀取條碼時,得到一個字符串如下,并傳入數據庫中;

“ E239DD5048721/$$3170930509104X509110U”

第二步,識别條碼數據中的“/”符号,并以此将條碼數據分割為兩部分,其中,

前半段假設為字符串M,則M為“ E239DD5048721”;

後半段假設為字符串N,則N為“$$3170930509104X509110U”,

然後進入下一步;

第三步,根據主條碼信息提取流程對字符串M“ E239DD5048721”中的信息進行提取,然後進入下一步;

第四步,根據從條碼信息提取流程對字符串N“$$3170930509104X509110U”中的信息進行提取;

備注:注意此時從條碼字符串中沒有“ ”HIBC标識符。

最後,按照以上流程即可完成主、從合并條碼的信息提取。

結語

今天先介紹這幾種條碼的解析方法,下面還會繼續介紹一種物流行業常用的條碼類型,GS1-128碼,我們平時都見過的SSCC碼,具體内容可關注少年負壯氣(snfzq0315),或者掃描下方二維碼識别。

條碼編碼的三個原則(常用條碼編碼規則說明及示例解析)9

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved