Skip to Main Content
Cognex 지원 허브
Logo

인쇄할 수 없는 문자에 대한 DataMan 스크립트

이 문서에서는 인쇄 불가능한 문자를 리더의 출력 문자열에서 제거하는 방법에 대해 설명합니다.

2024. 11. 29.

상세정보…

일부 경우, 특히 데이터 관리 또는 공급망과 관련된 애플리케이션에서 RS, GS 및 EOT와 같은 특정 제어 문자가 DataMatrix 코드에 나타날 수 있습니다. 이러한 문자는 기술 및 서식 지정 목적으로 사용됩니다.

그 의미는 다음과 같습니다.

  1. RS(기록 분리기):
    RS 문자(ASCII 30)는 데이터 시퀀스에서 레코드를 분리하는 데 사용됩니다. DataMatrix 코드에서는 동일한 코드 내에서 다른 데이터 단위 또는 필드를 분리하는 데 사용할 수 있습니다. 이렇게 하면 애플리케이션에서 코드를 판독하여 데이터 섹션을 올바르게 구분하고 올바르게 처리할 수 있습니다.
  2. GS(그룹 구분자):
    GS 문자(ASCII 29)는 데이터 그룹을 분리하는 데 사용됩니다. 계층적으로 구성되거나 여러 수준의 정보를 포함하는 DataMatrix 코드 내의 데이터 하위 집합을 구분하는 데 사용할 수 있습니다. 예를 들어, 제품 라벨 표시에서 코드에는 제품 자체, 포장, 제조 날짜 등과 관련된 정보가 포함될 수 있으며, GS 문자는 이러한 세부 정보를 구별되는 그룹으로 구분합니다.
  3. EOT(전송 종료):
    EOT 문자(ASCII 4)는 데이터 스트림의 끝을 표시합니다. DataMatrix 코드의 맥락에서는 암호화된 데이터 문자열의 끝을 나타내는 데 사용할 수 있습니다. 이를 통해 애플리케이션에서 코드를 판독하여 처리할 데이터가 더 이상 없다는 것을 알 수 있고 판독 프로세스를 중지할 수 있습니다.

DataMatrix 코드에 사용되는 이유는 무엇입니까?

  • 구조 제어: 이러한 제어 문자는 데이터가 코드 내에서 어떻게 구성되는지 나타냅니다. 이는 여러 유형의 정보를 동일한 코드로 인코딩해야 하거나 복잡한 데이터를 논리적 부분으로 분리해야 할 때 특히 유용합니다.
  • 자동 처리 시스템과의 호환성: 이러한 문자는 구분 기호 및 메시지 끝 표시기(예: 재고 관리, 추적 시스템 또는 물류)가 필요한 시스템과 DataMatrix 코드를 호환하기 위해 사용됩니다.

요약하면, DataMatrix 코드의 RS, GS 및 EOT 문자는 암호화된 데이터를 논리적으로 구성 및 구조화하는 데 사용되므로 자동화된 시스템 내에서 해석 및 처리가 더 쉬워집니다.

다음은 기본 설정과 함께 DataMan 설정 도구의 결과입니다. 

플레이스홀더

DataMan 설정 도구는 아래 에 따라 '활성화됨' 상자를 선택하여 인쇄할 수 없는 문자를 번역할 수 있습니다.

플레이스홀더

결과는 다음과 같습니다. 

플레이스홀더

이러한 문자(<RS>, , <GS><EOT>)는 스크립트를 사용하여 출력 문자열에서 제거할 수 있습니다.

  • 데이터 포맷으로 이동하여
  • 'Basic'으로 이동하고
  • 스크립트 기반 포맷 확인란을 선택합니다.
  • 파란색 텍스트인 \"스크립트 기반 포맷\"을 클릭하여 \"데이터 포맷 스크립트\"를 엽니다. 

    플레이스홀더

아래 스크립트를 '데이터 압축' 스크립트로 사용하십시오. 

var RS = 가\\x1E 가 됨;
var RSN = 가루 <RS>가루;
var GS =\\x1D가 됨;
var GSN = 가 <GS>가루;
var EOT =\\x04’;
var EOTN = 가 <EOT>가루;
var res = 가 가 고;

onResult 기능(디코드 결과, readerProperties, 출력)
{
   (decodeResults[0].decoded)인 경우
   {                
       var convert = decodeResults[0].content.replace(새로운 RegExp(RS,'g'),RSN).replace(새로운 RegExp(GS,'g'),GSN).replace(새로운 RegExp(EOT,'g'),EOTN); 
   }
  
  res = convert.replace(/<RS>|<EOT>/g, '');
  res = res.교체(/<GS>/g, '-');
   
  output.content = res; // 캐리지 리턴 없음     
  //output.content = res + -\\r\\n- ; // 캐리지 리턴 포함
}

플레이스홀더

결과는 다음과 같습니다. 

플레이스홀더