데이터 종류

두 가지 유형의 변수가 있습니다.

 

메모:

 

기본 변수

다음은 기본 변수 유형 목록입니다.

데이터 종류

설명

BOOL 이 변수는 0이나 1을 저장합니다.
SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, BYTE 이 변수는 정수값을 저장합니다. 부동 소수점 유형의 변수에 비해 처리가 빠릅니다.

WORD, DWORD, LWORD

이 변수는 워드 유형 값을 저장합니다.

STRING, WSTRING

이 변수는 텍스트 문자를 저장합니다.

REAL, LREAL

이 변수는 부동 소수점 값을 저장합니다. REAL 변수는 정수 유형 변수보다 큰 값(계산값, 상수값 등)을 저장할 수 있습니다.

TIME, DATE, TIME_OF_DAY, DATE_AND_TIME

이 변수는 시간값과 날짜 값을 저장합니다.

SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, BYTE

데이터 종류

부호 있음

데이터 길이

데이터 범위

SINT

2의 보수

8비트

-128...127

USINT

-

8비트

0...255

INT

2의 보수

16비트

-32768...32767

UINT

-

16비트

0...65535

DINT

2의 보수

32비트

-2147483648...2147483647

UDINT

-

32비트

0...4,294,967,295

LINT

2의 보수

64비트

-9,223,372,036,854,775,808...9,223,372,036,854,775,807

ULINT

-

64비트

0...18,446,744,073,709,551,615

BYTE

-

8비트

0...255

WORD, DWORD, LWORD

데이터 종류 데이터 길이 데이터 범위

WORD

16비트

0...65,535

DWORD

32비트

0...4,294,967,295

LWORD

64비트

0...18,446,744,073,709,551,615

STRING, WSTRING

데이터 종류 설명

STRING

최대 512바이트의 텍스트를 저장할 수 있습니다.

외부 변수를 사용할 때 문자열 인코딩은 변수의 [문자열 인코드] 속성으로 정의됩니다.

사용 가능한 문자열 인코드 값은 UTF8, UTF16, ShiftJIS, Code Page850, GB2312, BIG5, KSC5601, CodePage1251, CodePage874, CodePage1252입니다.

메모:

  • 문자열 인코딩을 장비 속성에서도 구성할 수 있습니다. 변수 속성 설정이 장비 속성보다 우선합니다. 변수의 [문자열 인코드] 속성에서 [장비 설정 타입]을 선택하여 장비의 문자열 인코드 설정을 적용합니다.
  • [문자열 인코드] 속성은 드라이버가 문자열 인코딩을 지원하는 경우에만 표시됩니다.

WSTRING

최대 512 단어의 더블-바이트 텍스트를 저장할 수 있습니다.

외부 변수가 있는 WSTRING 데이터 형식만 사용할 수 있습니다.

문자열 인코딩은 UTF16으로 고정되어 있습니다. 변수 속성에서 [문자열 인코드] 설정을 변경할 수 없으며, 장비 속성의 인코딩은 무시됩니다.

메모:

REAL, LREAL

데이터 종류 데이터 길이 데이터 범위
REAL

32비트

+/-3.402823E38 ... +/-1.1754944E-38

LREAL

64비트

+/-4.19E-307 ... +/-1.67E308

메모:

TIME, DATE, TIME_OF_DAY, DATE_AND_TIME

데이터 종류 설명 데이터 범위

TIME

경과 시간을 날짜와 시간으로 저장할 수 있습니다. - 24 d 20 h 31 m 23 s 648 ms ... 24 d 20 h 31 m 23 s 647 ms

메모: TIME 변수의 [초기 값]과 [입력 범위] 속성에 음수 값이 설정되어 있으면, 각 시간 단위마다 음수 기호가 표시됩니다. (예제: -24d -20:-31:-23.-648)

DATE 날짜를 저장합니다.

·        SP5000 시리즈 Open Box (Windows 10 IoT Enterprise 모델) 나 IPC 시리즈 또는 PC/AT 를 사용할 때

1970/01/01 ... 2106/02/07

·        위의 모델을 제외한 모델

1970/01/01 ... 2038/01/19

TIME_OF_DAY 시간을 저장합니다. 00:00:00 ... 23:59:59

DATE_AND_TIME

DATE와 TIME_OF_DAY를 결합합니다.

·        SP5000 시리즈 Open Box (Windows 10 IoT Enterprise 모델) 나 IPC 시리즈 또는 PC/AT 를 사용할 때
1970/01/01 00:00:00 UTC ... 2106/02/07 06:28:15 UTC

·        위의 모델을 제외한 모델
1970/01/01 00:00:00 UTC ... 2038/01/19 03:14:07 UTC

메모:

SP5000 시리즈 Open Box(Windows 10 IoT Enterprise 모델), IPC 시리즈 또는 PC/AT

외부 장치에서 입력하는 정숫값 UTC+0
(범위: 1970/01/01 00:00:00 ... 2106/02/07 06:28:15)
UTC+9
(범위: 1970/01/01 오전 9:00:00 ... 2106/02/07 15:28:15)
0 1970/01/01 00:00:00 2106/02/07 06:28:16
1 1970/01/01 00:00:01 2106/02/07 06:28:17
: : :
32399 1970/01/01 08:59:59 2106/02/07 15:28:15
32400 1970/01/01 09:00:00 1970/01/01 09:00:00
: : :
4294967295 2106/02/07 06:28:15 2106/02/07 06:28:15


위의 모델을 제외한 모델

외부 장치에서 입력하는 정숫값 UTC+0
(범위: 1970/01/01 00:00:00 ... 2038/01/19 03:14:07)
UTC+9
(범위: 1970/01/01 오전 9:00:00 ... 2038/01/19 12:14:07)
0 1970/01/01 00:00:00 2038/01/19 03:14:08
1 1970/01/01 00:00:01 2038/01/19 03:14:09
: : :
32399 1970/01/01 08:59:59 2038/01/19 12:14:07
32400 1970/01/01 09:00:00 1970/01/01 09:00:00
: : :
2147483647 2038/01/19 03:14:07 2038/01/19 03:14:07

사용자 데이터 종류 변수

다음은 사용자 데이터 유형 변수의 유형입니다.

 

메모: 배열 표시자 및 구조체 표시자도 변수로 간주됩니다.

 

변수 배열

배열은 데이터 종류이 동일한 변수의 모음입니다. 배열의 각 변수를 요소라고 합니다.

배열 변수 작동 방식을 이해하려면 변수를 상자 하나로 생각하십시오. 다음 다이어그램에 나온 대로 변수 Number는 값 하나를 포함하는 하나의 상자입니다.

배열은 각각 숫자가 연결되어 있는 일련의 상자로 볼 수 있습니다. 다음 다이어그램에서 배열 변수 Number에는 5개의 요소 0-4가 포함되어 있습니다. 5개 상자 각각에 변수값이 저장됩니다.

배열의 각 변수를 지정하려면 변수 이름 뒤에 대괄호 [ ]로 묶인 요소 번호를 지정합니다.

(예) 요소가 5개인 배열

요소 번호는 대개 0부터 시작하지만 양수나 음수 값으로도 시작할 수 있습니다.

(예) 요소 번호 -1로 시작하여 요소가 5개인 배열

 

 

다차원 배열은 다른 배열을 포함하는 배열입니다. 예를 들어 두 개의 DINT 배열이 포함된 배열은 2차원 배열입니다.

 

각 차원의 요소 수 및 차원 설정

[프로젝트 익스플로러] 창의 [변수] → [모든 사용자 데이터 유형] → [배열]의 [치수] 열에서 배열 차원과 요소 수를 모두 설정합니다.

배열 디자인 단계는 다음을 참조하십시오.

디자인 단계 (변수, 배열, 구조체)

1차원 배열의 경우 배열의 요소만 지정합니다.

(예) 요소 수 = 3인 1차원 배열의 경우 "3"을 입력합니다.

 

 

다차원 배열의 경우 [치수] 필드에서 각 차원의 요소 수를 쉼표(,)로 구분하여 지정합니다.

(예) 첫 번째 차원에 요소가 3개(시작 번호 = 0), 두 번째 차원에 요소가 4개(시작 번호 = 0)인 2차원 배열의 경우 "3,4"를 입력합니다.

 

 

이 배열 정의는 아래와 같이 배열 변수 Var1을 만드는 데 사용됩니다.

 

 

메모: 요소의 시작 번호를 0이 아닌 다른 값으로 설정하려면 요소 수 대신 시작 및 마지막 요소 번호를 두 개의 마침표(..)로 구분하여 입력합니다. 그러면 [데이터 형 개수] 필드에서 총 요소 수가 계산됩니다.

 

(예) 첫 번째 차원에 요소 0부터 3개의 요소가 있고 두 번째 차원에 요소 3부터 4개의 요소가 있는 2차원 배열을 설정하려면 "3,3..6"을 입력합니다.

 

입력 후 "3..6"은 4개의 요소로 변환되고 배열 차원은 요소 번호 3부터 시작됩니다.

 

 

이 배열로 아래와 같이 배열 변수 Var1이 만들어집니다.

 

 

배열의 간접 주소 지정

간접 주소 지정은 배열에서 연속 값 범위 내의 변수 값에 액세스하고, 메모리 소모를 최소화하고, 값을 밀리초 내에 업데이트할 수 있는 가장 빠른 방법입니다.

배열의 간접 주소 지정의 경우 변숫값이나 개체의 속성값으로 배열 요소 번호를 지정하여 배열의 요소를 동적으로 지정합니다.

메모:

배열 요소 번호를 개체의 속성값으로 간접적으로 지정할 때는 개체 이름 앞에 "$GraphicalObject"를 입력합니다.
입력 지원 기능에 따라 입력 또는 소스 속성 필드에 "$"를 입력한 후 옵션 목록에서 "$GraphicalObject"를 선택하면 문자열을 쉽게 입력할 수 있습니다.

 

배열의 간접 주소 지정은 다음을 지원합니다.

 

구조체 변수

구조체는 여러 변수 모음을 저장하는 변수입니다. 구조체의 각 변수를 요소라고 합니다. 요소의 데이터 종류은 어떠한 타입이든 가능합니다.

다른 구조체 또는 배열을 요소로 추가하여 중첩된 구조체를 생성할 수 있습니다.

구조체는 요소마다 각각의 상자와 연결되어 있는 일련의 상자로 볼 수 있습니다.

다음 다이어그램에서 배열 변수 DATA에는 3개의 요소가 들어 있습니다. 3 개 상자 각각에 변수값이 저장됩니다.

입력값이 입력 범위를 벗어난 경우의 동작

변수에 저장할 값이 범위(최소/최대값)를 벗어나면 다음과 같이 처리됩니다.

 

메모:

 

값이 외부 장치에서 범위를 초과할 경우

데이터 종류 설명

STRING, WSTRING

맞출 수 있는 문자를 저장합니다.
위의 사항 이외

입력 범위를 초과하는 부분의 값은 입력 범위의 맨 아래부터 계산되어 저장됩니다.

예) 부호 없는 8비트 변수(값 범위: 0...255)

예 1: 256을 저장하려고 시도할 경우 0이 변수에 저장됩니다. (상한값이 1을 초과하면 하한값 0이 저장됩니다.)

예 2: 257을 저장하려고 시도할 경우 1이 변수에 저장됩니다. (상한값이 2를 초과하면 두 번째 하한값 1이 저장됩니다.)

 

값 변경 작업 [Loop]으로 인해 값이 범위를 초과할 경우

입력 범위를 초과하는 부분의 값은 입력 범위의 맨 아래부터 계산되어 저장됩니다.

(예): 부호 없는 8비트 변수(값 범위: 0...255)

예 1: 256을 저장하려고 시도할 경우 0이 변수에 저장됩니다. (상한값이 1을 초과하면 하한값 0이 저장됩니다.)

예 2: 257을 저장하려고 시도할 경우 1이 변수에 저장됩니다. (상한값이 2를 초과하면 두 번째 하한값 1이 저장됩니다.)

값 변경 작업 [Stop]으로 인해 값이 범위를 초과할 경우

데이터 종류 설명

STRING, WSTRING

맞출 수 있는 문자를 저장합니다.
위의 사항 이외

다음은 상한값이나 하한값으로 반올림됩니다.

  • BOOL
    1/0
  • SINT
    127/-128
  • USINT, BYTE
    255/0
  • INT
    32767/-32768
  • UINT, WORD
    65535/0
  • DINT
    2147483647/-2147483648
  • UDINT, DWORD
    4294967295/0
  • LINT
    9223372036854775807/-9223372036854775808
  • ULINT, LWORD
    18446744073709551615/0
  • REAL, LREAL
    속성 설정에 따라 다릅니다.
  • TIME
    2147483647/-2147483648
  • DATE/TIME_OF_DAY, DATE_AND_TIME
    4294967295/0

 

값 변경 [Set] 작업, 간접적으로 지정된 값 또는 표현식 컨버터 작업으로 인해 값이 범위를 초과할 경우

값이 정의되지 않았습니다.

레시피로 인해 값이 범위를 초과할 경우

데이터 종류 설명

BOOL, REAL, LREAL

값이 정의되지 않았습니다.

LINT, ULINT, LWORD

다음은 상한값이나 하한값으로 반올림됩니다.

  • LINT
    9223372036854775807/-9223372036854775808
  • ULINT, LWORD
    18446744073709551615/0

STRING, WSTRING

맞출 수 있는 문자를 저장합니다.
위의 사항 이외

입력 범위를 초과하는 부분의 값은 입력 범위의 맨 아래부터 계산되어 저장됩니다.

(예): 부호 없는 8비트 변수(값 범위: 0...255)

예 1: 256을 저장하려고 시도할 경우 0이 변수에 저장됩니다. (상한값이 1을 초과하면 하한값 0이 저장됩니다.)

예 2: 257을 저장하려고 시도할 경우 1이 변수에 저장됩니다. (상한값이 2를 초과하면 두 번째 하한값 1이 저장됩니다.)