사물 속성
사물 속성은 사물과 관련된 데이터 점을 설명하는 데 사용됩니다. 예를 들어, 고객에는 이름 속성과 주소 속성이 있을 수 있습니다. 트럭에는 운전자, 용량 및 위치 속성이 있을 수 있습니다.
속성은 사물의 현재 상태를 간단하고 편리하게 알 수 있는 방법입니다. 속성은 정적(예: 제조업체 및 모델 번호) 또는 동적(예: 온도)일 수 있습니다. 자산 구조, 비즈니스 프로세스 및 전달할 솔루션에 따라 속성을 설정합니다.
속성을 만들 때 다음 바인딩 종류 중 하나를 선택할 수 있습니다.
My Property
로컬 사물에 대한 속성입니다. 이는 기본 설정입니다.
Local Bound
속성을 ThingWorx 서버의 다른 사물에서 정의된 속성에 연결합니다. 이 속성을 읽기 전용으로 설정할 수 있습니다. 이렇게 할 경우에도 서버의 다른 속성에서 값을 계속 수신할 수 있습니다. 원격으로 바인딩된 속성에 대한 로컬 바인딩을 생성하지 않으면 원격 장치에는 사용할 수 없습니다.
Remote
원격 장치가 ThingWorx 서버에 처음 연결할 때 서버는 원격 장치를 해당 사물에 바인딩합니다. 원격 장치가 바인딩되면 해당 원격 장치에 정의된 각 속성과 ThingWorx 장치를 나타내는 원격 사물 간에 원격 바인딩을 만들어야 합니다. ThingWorx에서는 이 바인딩을 사용하여 활성 WebSocket 연결을 통해 각 속성 값에 대한 업데이트를 원격 장치에 보내고 받습니다.
* 
로컬 사물 및 원격 사물에 이름이 동일한 속성이 있으며 다른 속성이 원격 속성 설정에 바인딩되는 경우 원격 속성은 로컬 속성 값도 설정합니다.
* 
로컬 또는 원격 속성 바인딩 설정에 대한 자세한 내용은 속성 바인딩 관리 항목을 참조하십시오.
각 속성에는 이름, 설명 및 ThingWorx의 기본 유형이라고 하는 ThingWorx 데이터 유형이 있습니다. 기본 유형에 따라 추가 필드를 사용할 수 있습니다. 숫자 또는 문자열과 같이 간단한 스칼라 유형은 기본값과 같은 기본 필드를 추가합니다. 더 복잡한 기본 유형에는 더 많은 옵션이 있습니다. 예를 들어, 인포테이블 기본 유형에는 인포테이블의 데이터 구조를 설명하도록 데이터 셰이프를 정의하는 기능이 있습니다. 자세한 내용은 아래의 기본 유형 표를 참조하십시오.
사물 속성 값은 세 가지 특성인 값, 타임스탬프 및 품질(VTQ)로 구성됩니다. VTQ 값은 제공되거나 자동으로 설정될 수 있으며, 적용 가능한 품질 상태는 QualityStatus 클래스에 있습니다. 속성을 설정하거나 업데이트할 때마다 모든 VTQ 특성이 업데이트됩니다.
일반적으로 속성은 me.PropertyName = value를 설정하여 Composer에서 업데이트할 수 있으며, 타임스탬프에 서버의 현재 타임스탬프가 반영됩니다. 일괄 처리 기록 업데이트의 경우 특정 값, 타임스탬프 및 품질을 전달할 수 있는 UpdatePropertyValues 서비스를 사용할 수 있습니다. 속성 값은 null로 설정할 수 없습니다.
* 
사용자 정의 서비스를 작성할 때 지정된 엔티티의 동일한 속성을 동시에 수정할 수 있는 코드를 생성하지 마십시오. 예를 들어, 속성 값을 동시에 증가시키거나 감소시키면 예측할 수 없는 속성 값이 발생할 수 있습니다. 마찬가지로, 구독 내의 카운터처럼 동작하는 속성을 증가시키는 것은 부정확한 결과를 초래하는 일반적인 오용 사례입니다.
ThingWorx 8.3.13, 8.4.9, 8.5.5 이상에서는 기록 속성 값이 설정될 때 HistoricalDataLogged 이벤트가 발생합니다. 예를 들어, 엔티티의 VTQ 속성에 대해 현재 설정된 타임스탬프는 2020-02-04 20:16:20입니다. 해당 엔티티의 새 버전을 가져올 때 이전 VTQ 속성(예: 2019-12-24 19:00:45)이 설정됩니다. 이 설정을 지정하면 해당 속성에 대해 HistoricalDataLogged 이벤트가 발생하고 속성의 해당 이벤트에 대한 모든 구독이 실행됩니다.
경고
경고에 대한 자세한 내용은 경고를 참조하십시오.
속성의 측면
속성에는 다음과 같은 양상 설정이 있을 수 있습니다.
지속
선택하거나 true로 설정하면 데이터베이스에 대한 각 값 변경이 지속됩니다.
지속 속성 데이터베이스 쓰기는 교착 상태를 방지하기 위해 비동기적으로 발생합니다. 속성 값은 즉시 설정되지만 데이터베이스 쓰기는 나중에 비동기적으로 발생합니다. 데이터베이스에 지속 속성 값이 작성되기 전에 다음 유효성 검사가 발생합니다.
사물이 계속 존재해야 합니다.
사물에 ID가 있어야 합니다.
사물 ID 및 보류 중인 쓰기 ID가 일치해야 합니다.
사물이 보류 중인 쓰기와 이름이 동일한 속성을 계속 정의해야 합니다.
정의된 속성이 지속되어야 합니다.
업데이트와 재시작은 대기열 처리에 영향을 주지 않습니다.
읽기 전용
선택하거나 true로 설정하면 데이터가 정적이며 실행 시간에 쓸 수 없습니다. 값을 변경하는 유일한 방법은 기본값을 변경하는 것입니다. 이는 정적 구성 데이터에 유용합니다.
로깅됨
선택하거나 true로 설정하면 데이터 변경 시 데이터 변경 유형에 따라 속성 값이 가치 스트림에 자동으로 로깅됩니다.
* 
특정 상황에서 데이터 변경 이벤트 개시가 실패한 경우 가치 스트림 엔트리는 로깅되지 않을 수 있지만 속성 값 세트는 유지됩니다. 엔티티에 속성을 설정할 수 있지만 해당 쓰기가 포함된 대기열이 꽉 차 데이터베이스를 비울 수 없어서 해당 가치 스트림 쓰기가 삭제될 수 있습니다. 이러한 상황은 들어오는 쓰기의 양이 대기열에 대해 구성된 비우기 속도보다 많을 경우 발생할 수 있습니다. 이 값은 platform-settings.json에서 지속성 공급자별로 조정할 수 있습니다. 또한 ThingWorx에서 데이터베이스로의 연결이 끊어질 경우 대기열 백업 및 비우기가 적절한 방식으로 이루어지지 않을 수도 있습니다.
데이터 변경 정보
데이터 변경 유형
이 설정은 속성 값 변경으로 데이터 변경 이벤트가 트리거될 시점을 지정합니다. 속성의 값에 따라 다른 프로세스를 시작해야 할 경우 이 설정을 사용합니다. 각 가입자는 이전 및 새로운 속성 값이 있는 인포테이블과 함께 변경 공지를 받습니다. 예를 들어, DeliverySchedule 속성의 변경에 대해 구독을 설정할 수 있습니다. 일정이 변경되면 SMS를 통해 운전자에게 알릴 수 있습니다.
데이터 변경 유형 옵션은 다음과 같습니다.
항상 - 속성 값 변경을 위해 가입자에 대해 이벤트를 개시합니다.
없음 - 변경 이벤트를 개시하지 않습니다.
켜기 - 대부분의 값의 경우 변경은 이벤트를 트리거합니다. 인포테이블과 같이 복잡한 기본 유형의 경우에는 이벤트 규칙이 다를 수 있습니다.
끄기 - 새 값이 부울 거짓으로 평가될 경우 이벤트를 개시합니다.
- 숫자 값인 경우 새 값이 허용치 값을 넘도록 변경되면 변경 이벤트를 개시합니다. 허용치 값은 dataChangeThreshold 측면(숫자)으로 지정됩니다. 숫자 값이 아닌 경우 이 설정은 항상과 동일하게 작동합니다.
원격 바인딩 정보
다음 표에는 바인딩 옵션이 원격으로 바인딩됨으로 설정된 경우 사용할 수 있는 옵션이 나와 있습니다.
옵션
설명
원격 속성 이름
에지에 존재하는 속성의 이름입니다.
* 
속성 이름 및 바인딩된 에지 사물 속성 이름은 서로 동일하지 않아도 됩니다.
캐시 방법
캐시 방법은 바인딩된 에지 속성 값을 읽는 다음과 같은 방법을 제공합니다.
서버 캐시에서 읽기는 에지 속성 값에 대한 서버 요청을 금지합니다. 서버에서 값을 검색하기만 합니다. 서버에 의해 캐시된 에지 속성 값의 업데이트는 에지 속성의 데이터 변경 유형과 검색 속도(에지 속성 값 푸시 정의)에 따라 달라집니다. 에지 속성에서 적절하게 설정되지 않을 경우 서버에 에지 속성 값이 없거나 서버 속성의 기본값만 반환될 수 있습니다. 사용자가 바인딩하는 에지 속성의 데이터 변경 유형이 "항상" 또는 "값"인 경우 캐시 유형에서 이 설정이 기본값으로 지정됩니다.
원격 모든 읽기로부터 가져오기는 모든 요청에 대해 에지에서 에지 속성 값을 검색합니다. 이 옵션과 관련된 캐싱은 없습니다. 사용자가 바인딩하는 에지 속성의 데이터 변경 유형이 "없음"인 경우 캐시 유형에서 이 설정이 기본값으로 지정됩니다.
특정 시간에 대해 캐시됨은 에지 속성에 대한 요청 빈도를 제어합니다. 첫 번째 요청 후 서버는 해당 값에 대한 에지 속성에 액세스하고 정의된 시간(초) 동안에는 에지 속성에 대한 다른 요청을 수행하지 않습니다. 에지 속성은 해당 시간 동안 서버 값(푸시를 통해)을 업데이트할 수 있습니다.
캐시 간격
에지에서 속성 값에 대한 요청을 통해 해당 값을 검색하기 전에 서버가 에지 속성 값을 캐시하는 시간 간격(초)입니다. 값은 항상 첫 번째 요청 시 에지에서 검색됩니다.
시작 유형
사물이 시작되거나 재시작될 때 원격으로 바인딩된 속성을 초기화하는 데 사용되는 값을 지정합니다. 이 초기화된 값은 속성 변경 이벤트를 트리거하지 않습니다.
기본값 사용 - 에지 측 값에 상관없이 속성의 초기 값을 지정된 기본값으로 설정합니다. 속성이 지속되면 초기 값이 데이터베이스에 지속된 마지막 값으로 설정됩니다.
Edge 값 읽기 - 서버에서 사물이 재시작될 경우에도 서버의 값이 항상 에지의 값과 동기화되도록 현재 값에 대한 에지를 질의합니다.
푸시 유형
푸시 유형은 에지 고급 사물 속성에만 적용됩니다. 이러한 구성 요소는 해당 값 변경을 서버에 푸시할 수 있습니다. 서버 속성 바인딩을 사용하여 이 기능을 구성할 수 있습니다.
값 변경을 기준으로 푸시됨: 값 변경 허용치를 구성할 수 있습니다. 이 설정을 사용할 때 푸시 허용치 값을 설정할 수도 있습니다. 이 값은 에지에서 서버로 새 값을 푸시하기 전에 초과해야 하는 데드 밴드입니다.
푸시되지 않음
항상 푸시됨
푸시 허용치
이 옵션은 푸시 유형값 변경을 기준으로 푸시됨으로 설정된 경우 사용할 수 있습니다. 속성 값 푸시가 발생할 에지 속성 값 주변 범위(플러스 또는 마이너스)를 지정합니다. 속성 값은 지정된 값 이상으로 변경해야 합니다.
연결이 끊긴 경우
원격 사물에 대한 연결이 일시적으로 끊긴 경우 원격 속성 값 바인딩을 처리하는 방법을 지정합니다.
변경 중인 값 무시: 연결해제되어 있는 동안 수행됩니다.
모든 변경 사항을 마지막으로 변경된 단일 값으로 결합 - 연결이 복원될 때 마지막으로 변경된 값을 보냅니다.
제한 시간
속성 읽기 또는 쓰기 수행 중에 원격 사물 호출에 사용되는 제한 시간입니다.
시스템 기본값 사용 - 기본값은 30초입니다.
사용자 정의 제한 시간. 제한 시간 간격(초)에 추가합니다.
속성 기본 유형
정의된 기본 유형은 속성에 저장된 데이터에 대한 컨텍스트를 제공합니다. 다음 표에는 모든 사물 엔티티에 사용할 수 있는 기본 유형이 나와 있습니다.
기본 유형
설명
BASETYPENAME
올바른 기본 유형 이름입니다.
BLOB
바이너리 대형 객체입니다.
BOOLEAN
true 또는 false 값입니다.
DASHBOARDNAME
대시보드의 이름입니다.
DATASHAPENAME
모델의 데이터 셰이프에 대한 참조입니다. 특수 처리를 사용합니다.
DATETIME
형식 적용된 날짜 및 시간입니다.
GUID
고유한 전역 식별자입니다. GUID 속성을 생성하면 사용자가 기본값 또는 값을 설정하지 않는 경우 GUID가 자동으로 생성됩니다. 지속 및 비지속 GUID 속성에 대해 다음 동작이 수행되며, 페더레이션 시나리오에도 적용됩니다.
속성이 지속 또는 비지속으로 설정되고 사용자가 기본값 또는 값을 설정하지 않으면, 사물이 초기화될 때마다 새 GUID 값이 생성됩니다. 시스템 또는 사물이 재시작되면 새 값이 생성됩니다.
속성이 지속이며 사용자가 기본값 또는 값을 설정하면 사물 또는 시스템이 재시작될 때 새 값이 생성되지 않습니다.
GROUPNAME
사용자 그룹 이름입니다.
HTML
HTML 콘텐츠입니다.
HYPERLINK
표준 URL(예: www.ptc.com)입니다.
IMAGE
이미지로 렌더링될 수 있는 바이너리 데이터입니다.
IMAGELINK
이미지에 대한 URL 링크입니다.
INFOTABLE
SQL 결과 집합과 유사한 ThingWorx에서의 데이터의 표준 표현입니다. 인포테이블을 빌드, 사용 및 분석할 여러 기본 제공 서비스가 있습니다.
INTEGER
분수 구성 요소 없이 쓸 수 있는 숫자입니다.
JSON
JSON(Javascript Object Notation) 객체입니다.
LOCATION
표준 WGS(World Geodetic System) 84 좌표로 [경도, 위도], 고도로 표현됩니다.
LONG
INTEGER 기본 유형이 제공하는 것보다 더 긴 범위가 필요한 경우 LONG 유형을 사용해야 합니다.
MASHUPNAME
ThingWorx 매쉬업에 대한 참조입니다. 특수 처리를 사용합니다.
MENUNAME
메뉴의 이름입니다.
NUMBER
숫자입니다.
* 
지수 값이 허용됩니다. 예: 123e45
PASSWORD
마스킹된 암호 값입니다.
* 
자세한 내용은 암호를 참조하십시오.
QUERY
필터 배열이 포함된 JSON 객체입니다. 각 필터는 value, typefieldname을 포함해야 합니다.
SCHEDULE
CRON 기반 일정(일정 편집기를 사용하여 구성됨)입니다.
STRING
영숫자의 개수입니다.
TAGS
ThingWorx 태그 값입니다.
TEXT
영숫자의 개수입니다. STRING과의 차이는 TEXT는 색인화된다는 점입니다.
THINGCODE
도메인 ID와 인스턴스 ID를 포함하는 사물의 숫자 표현입니다. 예를 들면, 2:1입니다.
THINGNAME
모델의 사물에 대한 참조입니다. 특수 처리를 사용합니다.
THINGSHAPENAME
모델의 사물 형태에 대한 참조입니다. 특수 처리를 사용합니다.
THINGTEMPLATENAME
사물 템플릿의 이름입니다.
USERNAME
ThingWorx 사용자에 대한 참조입니다.
VEC2
두 숫자의 모음입니다. 예를 들어, 2D 좌표 X 및 Y입니다.
VEC3
세 숫자의 모음입니다. 예를 들어, 3D 좌표 X, Y 및 Z입니다.
VEC4
네 숫자의 모음입니다. 예를 들어, 4D 좌표 X, Y, Z 및 W입니다.
XML
XML 조각 또는 문서입니다.
* 
최소값최대값 필드에 입력된 값은 참고용으로만 제공됩니다. 지정된 값보다 작거나 큰 실제 값이 허용됩니다.
관련 링크