데이터 유형

SPS의 모든 변수에는 자동으로 올바른 데이터 유형이 할당됩니다. 변환은 인터페이스에서만 설정하면 됩니다. 이 장에서는 Antcas Control의 다양한 유형을 설명합니다.

불리언 값 BOOL

이 유형은 두 가지 상태만 가질 수 있습니다. 참 또는 거짓입니다. 응용 프로그램에서 변수 대신 TRUE (참) 또는 FALSE (거짓)로 값을 정의할 수 있습니다.

또한 특수 유형인 NULL이 사용됩니다. 이 상태는 변수가 초기화될 때, 즉 기록되지 않은 경우에 설정됩니다. 또한 NULL을 사용하여 특수 기능을 수행할 수 있습니다. 예를 들어, 인터페이스와 통신할 수 없는 값이 있을 때입니다.

정수 INT (Integer)

정수는 정수입니다. 예를 들어 0 또는 26과 같습니다. 또한 값은 음수가 될 수도 있습니다. Antcas Control는 64비트 SPS를 사용하며, 매우 큰 수의 계산을 가능하게 합니다. 가장 큰 수는 상수 INT_MAX (9223372036854775807)로 정의됩니다. 가장 작은 수는 INT_MIN 또는 INT_MAX+1입니다. 부호가 1비트를 사용하기 때문입니다. 범위를 벗어난 모든 수는 지수와 함께 Float으로 적용됩니다. 이 경우 계산은 부정확합니다.

정수는 -0 값을 가질 수 있으며, 이는 FALSE와 같지 않습니다. 그러나 함수 EQ(-0,0)로 검사하면 TRUE가 됩니다. -0은 문자열 '-0'로만 정의할 수 있습니다.

Hex 값도 직접 정의할 수 있습니다. 이는 0x 또는 0X로 시작합니다. 예를 들어, 0xFF255가 됩니다.

부동 소수점 REAL (Float)

Float 또는 Real 값은 부동 소수점 수입니다. 예를 들어 0.1 또는 22.005 (소수점 사용)입니다. 지수도 지원됩니다. 예를 들어, 10E21'000 또는 10e-20.1입니다. 대소문자는 중요하지 않습니다. 숫자를 Integer로 변환하려고 시도합니다. 이는 SPS에 대해 계산이 더 쉽기 때문입니다. 큰 수의 경우 계산이 부정확해질 수 있습니다. 소수점 이하의 최대 자릿수는 성능을 높이기 위해 14개로 고정됩니다.

부동 소수점 수는 정밀도가 제한되어 있습니다. 시스템에 따라 다르지만, Antcas Control는 일반적으로 IEEE 754 Double Precision Format을 사용하며, 이는 최대 상대적 반올림 오차를 약 1.11e-16로 제공합니다. 비기본적인 산술 연산은 더 큰 오류를 발생시킬 수 있으며, 여러 연산을 조합할 경우 오류의 전파를 고려해야 합니다.

또한, 10진법을 기반으로 한 부동 소수점 수로 정확히 표현될 수 있는 유리한 숫자가 있습니다. 예를 들어 0.1 또는 0.7과 같습니다. 그러나 2진법을 기반으로 한 부동 소수점 수로 정확한 표현이 불가능합니다. 이는 내부적으로 가수부의 크기와 무관하게 사용됩니다. 따라서, 이들을 내부적인 이진 표현으로 변환할 때 약간의 정밀도 손실 없이 변환할 수 없습니다. 이는 혼란스러운 결과를 초래할 수 있습니다: FLOOR((0.1+0.7)*10)은 일반적으로 7이 되며, 예상되는 결과인 8이 아닌 7.9999999999999991118과 같은 내부 표현이 됩니다.

따라서, 부동 소수점 수의 마지막 소수점까지 신뢰하지 말고, 부동 소수점 수를 직접 동등성 검사하지 마세요.

문자열 STRING

문자열 또는 String은 단일 인용부호 ' ' 또는 이중 인용부호 " "로 정의됩니다. 예를 들어 '텍스트 1' 또는 입니다. 함수 블록 CONCAT을 사용하여 여러 문자열을 결합할 수 있습니다.

줄 바꿈 또는 새 줄은 CTRL+Enter로 생성할 수 있으며, 이는 화살표 ↵로 표시됩니다.

문자열 내에서 ' 또는 "를 지정하기 위한 이스케이프 문자는 필요하지 않습니다. 문자열을 직접 "여기에는 \" 기호가 있습니다"로 지정할 수 있습니다.

특수 문자를 직접 선언하는 것이 가능합니다. 이를 위해 문자열 내에서 이중 인용부호를 사용하여 다음 시퀀스를 지정합니다:

이스케이프 시퀀스 ASCII 약어
\\ 이스케이프 \
\n LF
\r CR
\r\n CRLF
\0 NUL
\t TAB
\e ESC
\f FORMFEED
\x## 임의 바이트

예를 들어, 임의의 바이트 126 또는 7E를 Hex 숫자로 선언하려면 다음 표현을 사용합니다: "\x7E". 이 문자열은 "~"과 같습니다.

여기서 7E는 플레이스홀더 값입니다. Hex 값 00부터 FF 사이의 모든 값을 지정할 수 있습니다. UTF-8 BOM "\xEF\xBB\xBF"은 대부분의 브라우저에서 자동으로 제거됩니다. 문자열을 마스킹하는 것이 가능합니다. 이를 위해 선행 백슬래시를 사용합니다: "\\x7E". 이는 '\x7E'과 같습니다.

주의: UTF-8 범위를 벗어난 모든 문자열은 영구적으로 저장할 수 없습니다. 라이브 뷰에서 어두운 보라색으로 표시됩니다.

또한 문자열을 숫자로 변환하기 문서를 참조하세요.

날짜 및 시간 DT (Date and Time)

DT#로 날짜와 시간을 정의합니다. 예를 들어 DT#2016-03-25-22:12:00. 시간은 1970년 1월 1일(이 값은 UTC/GMT 시존에 있음)부터 밀리초 단위로 Integer로 변환됩니다.

날짜 D (Date)

D#로 자정부터 날짜를 정의합니다. 예를 들어 D#2016-03-25. 시간은 1970년 1월 1일(이 값은 UTC/GMT 시존에 있음)부터 밀리초 단위로 Integer로 변환됩니다.

시간 T (Time)

T#로 밀리초 단위의 시간을 정의합니다. 예를 들어 T#5d3h5m11s500ms. 시간은 밀리초 단위로 Integer로 변환됩니다.

배열

배열을 직접 정의할 수 없습니다. 그러나 점으로 변수에 할당할 수 있습니다. 변수 참조.

매우 중요: 배열 내에서 값을 정의하지 마세요. 예를 들어 set과 set.p - SPS는 이 경우 충돌합니다. 그리고 실행되지 않습니다. 또한 예상치 못한 오류를 발생시킬 수 있습니다.