รหัสแถบ (Bar code) คือ แถบเส้นดำยาวพิมพ์เรียงเป็นแถบบนตัวภาชนะสำหรับบรรจุสินค้าที่วางขายกันตามร้านค้าหรือซูเปอร์มาร์เก็ตทั่วไป สิ่งซึ่งแถบดำเหล่านี้เหมายถึงนั้นมักจะเป็น "ข้อความ" ที่ใช้บ่งบอกตัวสินค้านั้น ๆ เช่นว่า ยาสีฟัน เป็นต้น
การใช้รหัสแถบบวกกับเครื่องอ่านรหัสแถบนี้ทำให้เกิดความสะดวกรวดเร็วและความแม่นยำในการทำงานได้มาก ตัวอย่างในซูเปอร์มาร์เก็ต รหัสแถบที่ติดอยู่บนตัวสินค้า จะทำให้การคิดเงินทำได้อย่างรวดเร็วและแม่นยำ คือเมื่อพนักงานเพียงแต่ใช้ตัวอ่านรหัสแถบรูดผ่านรหัสแถบ ก็จะทราบว่าสินค้าชนิดนั้นเป็นสินค้าอะไร เมื่อบวกกับการโปรแกรมราคาสินค้าเข้ากับเครื่องคิดเงินบางประเภท ความผิดพลาดในการกดราคาสินค้าก็จะไม่เกิดขึ้นและในกรณีนี้ไม่มีความจำเป็นที่จะต้องติดราคาสินค้าลงบนสินค้าทุกตัว ทำให้สะดวกต่อการเปลี่ยนแปลงราคาสินค้าในอีกทางหนึ่ง
อีกตัวอย่างของการใช้รหัสแถบได้แก่ ศูนย์แยกจดหมายหรือสิ่งของพัสดุภัณฑ์ ในปัจจุบันการแยกแยะจดหมายอัตโนมัติโดยการให้เครื่องอ่านที่อยู่บนซองจดหมายหรือพัสดุภัณฑ์นั้นยังทำไม่ได้ถึง 100 เปอร์เซ็นต์ และอีกประการหนึ่งความรวดเร็วก็ยังไม่ได้ระดับที่น่าพอใจ ระบบแยกจดหมายจึงใช้รหัสแถบเป็นสื่อกลาง โดยก่อนที่จะมีการส่งเข้าระบบแยก เราจะทำการตีรหัสแทนที่อยู่ปลายทางลงบนตัวจดหมายก่อน จากนั้นส่วนต่าง ๆ ในระบบแยกจดหมายก็จะอาศัยการอ่านรหัส ซึ่งสามารถทำได้อย่างง่ายดาย และแม่นยำในการแยกแยะจดหมายต่อไป
/barcode02.gif)
หลักการอ่านรหัสแถบลักษณะของรหัสความแม่นยำในการอ่านรหัสในปัจจุบันรหัสแถบนี้มีบทบาทอย่างมากในการประยุกต์ใช้เพื่อการบ่งบอกวัตถุอย่างอัตโนมัติ (Automatic Identification) สืบเนื่องจากเทคนิคและอุปกรณ์สำหรับการ recognize รหัสแถบนี้อยู่ในขั้นปฏิบัติการได้อย่างแน่นอนแล้วซึ่งผิดกับการ Identification ด้วยภาพหรือเสียงที่ยังต้องค้นคว้าปรับปรุงกันอีกมาก |
|
|
สำหรับการอ่านรหัสแถบ เขาใช้หลักการที่ว่าพื้นสว่างจะสะท้อนได้มากกว่าพื้นมืด ดังนั้นเมื่อตัวอ่านถูกกวาดไปบนรหัสแถบ ลำแสงที่ถูกปล่อยออกมาจากหัวอ่านจะสะท้อนกลับมาหรือน้อยก็ขึ้นอยู่กับว่ามันได้ตกกระทบแถบขาวหรือแถบดำ แสงสะท้อนกลับเหล่านี้จะถูกดัดแปลงเป็นสัญญาณไฟฟ้าโดย Photodiode ที่ติดอยู่ที่หัวอ่าน องค์ประกอบสำคัญของตัวอ่านรหัสแถบก็คือ ขนาดของลำแสงที่ส่งออกมานั้น จะต้องสัมพันธ์กับความละเอียด (resolution) ของแถบ กล่าวคือ ขนาดของมันจะต้องไม่ใหญ่กว่าความกว้างของแถบดำหรือแถบขาวที่แคบที่สุดในทางปฏิบัติเขาใช้จุดลำแสงที่มีขนาดเส้นผ่าศูนย์กลางประมาณ 0.2 มม. |
ส่วนสำคัญอีกส่วนหนึ่งก็คือความยาวคลื่นของแสงที่ใช้ ซึ่งขึ้นกับว่าจะใช้อ่านรหัสแถบสีอะไร โดยทั่วไปเขาใช้แสงอินฟราเรด (Infrared) ที่มีความยาวคลื่นประมาณ 0.95 ไมครอน (micron) สำหรับอ่านแถบขาวดำและใช้แสงสีแดงที่มีความยาวคลื่น 0.65 ถึง 0.7 ไมครอน สำหรับอ่านรหัสแถบสีเขียวหรือสีน้ำเงินที่พิมพ์บนพื้นสีเหลืองหรือส้ม |
|
|
ในการอธิบายลักษณะของรหัสนั้น เขาจะใช้พารามิเตอร์อยู่สองสามตัวกล่าวคือ สิ่งแรกดูว่ารหัสแถบนั้นเป็นชนิด NRZ (Not Return to Zero) หรือว่าชนิดโมดูเลชัน (Modulation) ด้วยความกว้าง ในกรณีที่เป็น NRZ การรักษาระดับลอจิค (logic) ไม่จำเป็นต้องเปลี่ยนระดับสัญญาณ กล่าวคือถ้าแถบขาวแทนเลข 0 เราสามารถจะแทนเลข 0 หลายตัวที่อยู่ติดกันได้ด้วยแถบขาวยาว โดยไม่ต้องมีแถบดำสลับกันไปแต่ในกรณีที่รหัสเป็นแบบโมดูเลชันด้วยความกว้างนั้น เราจะกำหนดเอาว่า 1 คือ แถบขาวหรือแถบดำที่กว้าง และ 0 คือ แถบขาวหรือแถบดำที่แคบ ดังนั้นการแทนตัวเลขสองตัวที่เหมือนกันและอยู่ติดกันจึงต้องมีการ "สับเปลี่ยน" ตัวอย่างเช่น เลข 0 สองตัวติดกันจะต้องแทนด้วยแถบขาวและแถบดำไม่ใช่แถบดำหรือแถบขาวสองแถบติดกัน เพราะจะทำให้กลายเป็นการแทนเลข 1 หนึ่งตัว ซึ่งไม่ใช่เลข 0 สองตัวตามที่ต้องการไป เรายังมักเรียกรหัสแถบชนิดโมดูเลขันตามความกว้างว่าเป็นรหัสสองระดับ (แคบ/กว้าง) |
สิ่งที่สองที่เราพูดกันก็คือ รหัสนั้นเป็นชนิดต่อเนื่องหรือไม่ต่อเนื่อง (Discrete) กล่าวคือในชนิดไม่ต่อเนื่องจะมีการแทรกช่องว่าง (เปรียบได้กับการเว้นวรรค) ระหว่างตัวอักษร ดังนั้นรหัสแถบชนิดนี้จะกินเนื้อที่มาก เพื่อเปรียบเทียบการกินเนื้อที่มากน้อย เขาจึงได้นิยามความหนาแน่นของรหัสขึ้น โดยให้มันเท่ากับจำนวนอักษรต่อความยาวหนึ่งหน่วย (นิ้วหรือ ซม.) ความหนาแน่นนี้จะขึ้นด้วยตรงกับความกว้างของแถบขาวและแถบดำทั้งชนิดกว้างและชนิดแคบ พื้นที่ที่เป็นอักษรควบคุม (control character) และช่องไฟระหว่างอักษร |
โดยทั่วไปแล้ว สำหรับรหัสที่มีความหนาแน่นสูง ความกว้างของแถบขาวหรือดำจะต่ำกว่า 0.009 นิ้ว (0.23มม.) ซึ่งจะให้ความหนาแน่นของตัวอักษรสูงกว่า 8 ตัวอักษรต่อนิ้วโดยทั่วไป และสำหรับความหนาแน่นขนาดกลาง ความกว้างของแถบดำหรือแบบขาวจะอยู่ระหว่าง 0.009 นิ้ว ถึง 0.020 นิ้ว (0.23 มม. ถึง 0.50 มม.) ให้ความหนาแน่นอยู่ระหว่าง 4 ถึง 8 ตัวอักษรต่อนิ้วและสุดท้ายสำหรับกรณีความหนาแน่นต่ำกว่า 4 ตัวอักษรต่อนิ้ว |
|
|
สำหรับพารามิเตอร์ต่อไปนั้นเกี่ยวข้องกับความแม่นยำแน่นอนในการอ่านรหัส ซึ่งได้แก่ ความละเอียด, ความแตกต่างของความเข้ม (Contrast) และความไม่สมบูรณ์ของแถบรหัส ความละเอียดนั้นจะหมายถึงขีดความสามารถของตัวอ่านในการอ่านแถบดำหรือแถบขาวที่แคบที่สุด ดังได้กล่าวไปแล้วว่าขึ้นอยู่กับขนาดของจุดลำแสงที่ตัวอ่านใช้สำหรับความแตกต่างของความเข้มนั้น เราวัดจาก C เท่ากับ พลังงานที่สะท้อนจากแถบสว่าง ลบ พลังงานที่สะท้อนจากแถบมืด หารด้วย พลังงานที่สะท้อนจากแถบสว่าง ซึ่ง C นี้ไม่ควรต่ำกว่า 0.7 สุดท้ายความไม่สมบูรณ์ของแถบรหัส มักจะเกิดจากความบกพร่องของการพิมพ์ ซึ่งอาจทำให้เกิดการบิดเบี้ยวของแถบ, ความกว้างของแถบไม่แน่นอนหรือความคมชัดไม่ดีพอ เป็นต้น จึงจำเป็นที่เราจะต้องเลือกเครื่องพิมพ์ให้เหมาะสมกับงานและรหัสที่ใช้ |
ความหลากหลายของรหัส
|
นอกจากนี้รหัสยังมีลักษณะอื่นที่แตกต่างกันอีกเช่น เป็นรหัสแทนตัวเลข หรือรหัสแทนทั้งตัวเลขและตัวอักษร ความยาวของแถบรหัสคงที่หรือแปรเปลี่ยนได้ เป็นต้น การเลือกใช้นั้นก็ขึ้นอยู่กับลักษณะงาน โดยเราจะพิจารณาเลือกรหัสจากชุดตัวอักษรที่รหัสสามารถแทนได้ ความยากง่ายในการใส่รหัส ความแม่นยำของรหัส ความยืดหยุ่นต่อความเร็วที่ใช้ในการอ่าน และความต้านทานต่อความไม่สมบูรณ์ในการพิมพ์ เป็นต้น อย่างไรก็ตามรหัสที่ใช้กันแพร่หลายในปัจจุบันเห็นจะได้แก่ UPC (Universal Product Code), EAN (European Artich number), Codebar, "2 ใน 5" และรหัส 39 |
รหัส EAN/UPC
|
รหัส EAN/UPC เป็นรหัสแทนตัวเลขเท่านั้น แถบรหัสหนึ่งประกอบด้วยเลข 8 ตัว หรือ 13 ตัว แต่ขนาด 13ตัวเป็นแบบที่ใช้กันแพร่หลายมากที่สุด แถบรหัสจะขึ้นต้นและลงท้ายด้วยรหัส 101 เสมอ ตัวเลข 13 หลักนี้จะถูกแบ่งเป็นสามส่วน ส่วนแรกประกอบด้วยเลข 2 ตัว ซึ่งบ่งบอกประเทศ ส่วนที่สองประกอบด้วยเลข 4 ตัว บ่งบอกผู้ผลิตและส่วนสุดท้าย ซึ่งแยกจากส่วนที่สองโดยมีรหัส 01010 เป็นตัวคั่นนั้น จะบ่งบอกรหัสตัวสินค้า รหัสแต่ละตัวจะใช้แถบ 7 แถบ แต่ละแถบมีความกว้างตายตัวเท่ากัน โดยแถบดำคือ 1 และแถบขาวคือ 0 รหัส EAN/UPC นี้เป็นรหัสที่ใช้กับสินค้าอุปโภคบริโภคและเป็นที่ใช้กันแพร่หลายทั่วโลก |
รหัสตระกูล "2 ใน 5" |
/barcode03.jpg)
รหัส 39Codabarรหัสในตระกูลอื่น สำหรับรหัส "2 ใน 5" ซึ่งตามความเป็นมาแล้ว เป็นรหัสชนิดแรกที่ถูกใช้อย่างเป็นกิจจะลักษณะหนึ่งตัวรหัสจะประกอบด้วยแถบห้าแถบ ซึ่งสองในจำนวนนี้จะมีลักษณะผิดแผกจากที่เหลือ ซึ่งเราจะได้เห็นกันต่อไป รหัสในตระกูลนี้ได้แก่ "2 ใน 5อุตสาหกรรม", "2 ใน 5 แมทริกซ์" และ "2 ใน 5 สอดแทรก" ทั้งหมดเป็นรหัสแทนตัวเลข |
รหัส "2 ใน 5 อุตสาหกรรม" นั้น แถบรหัสหนึ่งจะมีความยาวระหว่าง 1 ถึง 32 ตัว ในรหัสชนิดนี้แถบดำเท่านั้นที่ถือเป็นองค์ประกอบของแถบรหัส โดยแถบดำแคบถือเป็น 0 และแถบดำกว้างถือเป็น 1 รหัส "2 ใน 5อุตสาหกรรม" นี้ เป็นรหัสที่ง่ายต่อการพิมพ์ แต่ว่าขาดความแน่นอนในการอ่าน ดังนั้นจึงมีการเติมเอาอักษรควบคุมที่ท้ายแถบรหัส รหัสชนิดนี้ใช้กันแพร่หลายในโรงงานอุตสาหกรรมต่าง ๆ บนตั๋วเครื่องบิน และเครื่องแยกจดหมาย |
สำหรับรหัส "2 ใน 5 แมทริกซ์" นั้น แถบดำและแถบขาวล้วนถือเป็นองค์ประกอบของรหัส หนึ่งตัวรหัสประกอบด้วยสามแถบดำและสองแถบขาว ระหว่างรหัสแต่ละตัวจะมีช่องไฟคั่น แถบรหัสจะขึ้นต้นและลงท้ายด้วยรหัส 10000 เสมอ การถือเอาแถบขาว ซึ่งก็คือพื้นที่ที่ใช้ในการพิมพ์รหัสเข้าเป็นส่วนหนึ่งของรหัส ทำให้รหัสชนิดนี้กินเนื้อที่น้อยกว่ารหัสชนิดแรก จาก 28 ถึง 33 เปอร์เซ็นต์ ข้อเสียคือความต้านทานต่อความผิดพลาดจะลดต่ำลง |
รหัส "2 ใน 5 สอดแทรก" นั้น อาจถือได้ว่าเป็นรหัสที่น่าสนใจที่สุดในรหัสตระกูลนี้ ในรหัสชนิดนี้แถบดำและขาวล้วนถือเป็นองค์ประกอบของรหัสเช่นเดียวกับ "2 ใน 5 แมทริกซ์" แต่จะไม่มีช่องไฟระหว่างรหัส และการใส่รหัสนั้นจะทำในลักษณะ "สอดแทรก" คือ อักษรตัวแรกจะถูกใส่รหัสด้วยรหัส "2 ใน 5 อุตสาหกรรม" โดยใช้แถบดำเป็นตัวประกอบ แต่ตัวอักษรตัวต่อมาจะถูกใส่รหัสด้วย "2 ใน 5 อุตสาหกรรม" ที่ใช้คราวนี้แถบขาวเป็นตัวประกอบ แถบขาวที่ได้มีห้าแถบด้วยกัน คือแบ่งเป็นสองแถบกว้างและสามแถบแคบ ซึ่งจะถูกแทรกเข้าสลับกับแถบดำห้าแถบที่ได้จากการใส่รหัสตัวอักษรแรก แถบรหัสของ "2 ใน 5 สอดแทรก" นี้จะขึ้นต้นด้วยรหัส 0000 และลงท้ายด้วยรหัส 100 เมื่อเทียบกับรหัส "2 ใน 5 อุตสาหกรรม" รหัสชนิดนี้ให้ความหนาแน่นมากกว่าจาก 36 ถึง 42เปอร์เซ็นต์ และจาก 10 ถึง 12 เปอร์เซ็นต์ เมื่อเทียบกับรหัส "2 ใน 5 แมทริกซ์" มันจึงเป็นที่ใช้กันอย่างแพร่หลายในวงการอุตสาหกรรม |
|
|
รหัส 39 เป็นรหัสชนิดแรกที่ใช้แทนตัวอักษรด้วย ปัจจุบันได้มีรหัสซึ่งขยายจากรหัส 39 แล้ว คือ รหัส 128รหัส 39 นั้น ประกอบด้วยสัญลักษณ์ 43 ตัว (เดิม 39 ตัว) ซึ่งแบ่งเป็นพยัญชนะ 26 ตัว ตัวเลข 10 ตัว และอักษรพิเศษที่เหลือรหัส 39 นี้สามารถถือเป็นรหัส "3 ใน 9) เพราะหนึ่งตัวรหัสประกอบด้วย 9 ตัวประกอบ โดยสามตัวในนั้นจะเป็นแถบกว้าง และอีกสองตัวจะเป็นแถบแคบ หนึ่งแถบรหัสจะมีหนึ่งถึงสามตัวอักษรเท่านั้นซึ่งตามด้วยCheck digit ดังนั้นรหัส 39 จึงมีความแน่นอนในการอ่านสูง แต่เปลืองเนื้อที่ รหัสชนิดนี้มีใช้กันมากในอุตสาหกรรมอิเล็คทรอนิค โดยใช้ในการแยกชนิดแผงวงจร |
|
|
Codabar เป็นรหัสสำหรับตัวเลขและมีความยาวของแถบรหัสจาก 1 ถึง 32 ตัว เป็นรหัสที่ใช้ในธนาคารเลือดของสหรัฐอเมริกาและในอุตสาหกรรมยาและทางการแพทย์ หนึ่งตัวรหัสประกอบด้วย 7 บิท ซึ่งแบ่งเป็น 4 แถบดำ และ 3 แถบขาว แถบดำหรือขาวที่แคบแทน 0 และแถบดำหรือขาวกว้างแทน 1 |
|
|
นอกเหนือจากรหัสที่กล่าวแล้วยังมีรหัสอื่น ๆ ที่เราสามารถพบเห็นได้ เพียงแต่ว่าไม่เป็นที่แพร่หลายเท่าพวกแรกเท่านั้น รหัสเหล่านี้ได้แก่ รหัส 128, รหัส "2 ใน 7" และรหัส 11 |
รหัส 128 เป็นรหัสที่ใหม่มาก มันประกอบด้วยชุดตัวอักษร 128 ตัวของแอสกี (ASCII) รหัสชนิดนี้เป็นรหัสต่อเนื่องและให้ความแน่นอนในการอ่านสูงมาก ส่วนรหัส "2 ใน 7" เป็นรหัสชนิดโมดูเลชัน ตามความกว้างสำหรับแทนตัวเลขและอักษรพิเศษ 6 ตัว คือ $-: /. และ + ความกว้างของแถบในรหัสชนิดนี้ไม่ได้ถูกกำหนดไว้เพียงขนาดเดียว แต่มีถึง 18 ขนาดให้เลือกใช้ สามารถให้ความหนาแน่นได้ถึง 11 ตัวอักษรต่อนิ้ว แต่ว่ามีกฎเกณฑ์ที่ซับซ้อนจึงไม่เป็นที่นิยมใช้กันมากนัก และสุดท้ายรหัส 11 เป็นรหัสตัวเลขเช่นกัน มีลักษณะใกล้เคียงกับรหัส "2 ใน 5แมทริกซ์" หนึ่งรหัสประกอบด้วย 3 แถบดำ และ 2 แถบขาว |
รหัส 11 นี้ให้ความหนาแน่นสูงมาก เนื่องจากว่ามีการออกแบบให้สัดส่วนของแถบกว้างต่อแถบแคบดีที่สุดในแต่ละรหัส แต่ผลก็คือความซับซ้อนซึ่งทำให้สู้แบบ "2 ใน 5" ไม่ได้ |
ข้อมูลจาก : ดร.สุวิทชัย คุ้มปีติ วารสารคอมพิวเตอร์ สมาคมคอมพิวเตอร์แห่งประเทศไทย ปีที่ 15 ฉบับที่ 75/2531 |