파일 검색 및 비교(File Search and Compare, FSC)

이 정보는
CompactLogix
5370,
ControlLogix
5570,
Compact GuardLogix
5370,
GuardLogix
5570,
Compact GuardLogix
5380,
CompactLogix
5380,
ControlLogix
5580,
GuardLogix
5580 및 ControlLogix 5590 컨트롤러에 적용됩니다. 컨트롤러 구분이 있을 때는 언급합니다.
FSC 명령어는 배열 내 값들을 요소마다 비교합니다.
사용 가능한 언어
래더 다이어그램
File Search and Compare (FSC) (1)_v31
펑션 블록
이 명령어는 함수 블록에서 사용할 수 없습니다.
구조화된 텍스트
이 명령어는 구조화된 텍스트에서 사용할 수 없습니다.
피연산자
중요: 다음과 같은 경우 작업 시 예외가 발생할 수 있습니다.
  • 출력 태그 피연산자가 덮어써집니다.
  • 구조 피연산자의 구성원이 덮어써집니다.
  • 지정된 경우를 제외하고 여러 명령어에서 구조 피연산자를 공유합니다.
명령어 내에서 숫자 데이터 유형을 혼합하기 위한 데이터 변환 규칙이 있습니다. 데이터 변환 항목을 참조하십시오.
래더 다이어그램
피연산자
데이터 유형
CompactLogix
5370,
ControlLogix
5570,
Compact GuardLogix
5370 및
GuardLogix
5570 컨트롤러
데이터 유형
CompactLogix
5380,
ControlLogix
5580,
Compact GuardLogix
5380,
GuardLogix
5580 및 ControlLogix 5590 컨트롤러
형식
설명
Control
CONTROL
CONTROL
태그
연산의 제어 구조
Length
DINT
DINT
즉시
CONTROL 구조 .LEN을 나타냅니다.
Position
DINT
DINT
즉시
컨트롤(CONTROL) 구조 .POS를 나타냅니다
Mode
DINT
DINT
즉시
연산 배포 방법을 보여줍니다.
INC, ALL을 선택하거나, 1 ~ 2147483647 범위의 수를 입력함
Expression
SINT
INT
DINT
REAL
STRING
SINT
INT
DINT
LINT
USINT
UINT
UDINT
ULINT
REAL
LREAL
String type
즉시
태그
태그 및/또는 연산자로 구분된 즉시 값으로 구성된 식
Length 및 Position(제어 태그의 .LEN 및 .POS에 해당)은 의사 피연산자입니다. 자세한 내용은 의사 피연산자 초기화 항목을 참조하십시오.
CONTROL 구조
니모닉
데이터 유형
설명
.EN
BOOL
활성화 비트는 FSC 명령어가 활성화되었음을 나타냅니다.
.DN
BOOL
완료 비트는 명령어가 마지막 요소에서 작업한 경우에 설정됩니다(.POS = .LEN).
.ER
BOOL
에러 비트는 수정되지 않습니다.
.IN
BOOL
금지 비트는 FSC 명령어가 참인 비교를 감지했다는 것을 나타냅니다. 검색 작업을 계속하려면 이 비트를 해제해야 합니다.
.FD
BOOL
발견 비트는 FSC 명령어가 참인 비교를 감지했다는 것을 나타냅니다.
.LEN
DINT
길이는 명령어가 작업할 배열 내 요소의 수를 지정합니다.
.POS
DINT
위치에는 명령어가 현재 액세스하고 있는 요소의 위치가 표시됩니다.
설명
FSC 명령어의 EnableIn이 거짓에서 참으로 전환되는 경우, 식의 값이 지정된 반복 모드 동안 계산됩니다.
평가 결과가 참인 경우, 명령어는 .FD 비트를 설정하며 .POS 값은 명령어가 참인 비교를 발견한 배열 위치를 반영합니다. 명령어는 .IN 비트를 설정하여 추가 반복 작업을 방지합니다.
연산 모드 선택하기
FSC 명령어의 경우, 모드는 컨트롤러에 배열 작업을 분배하는 방법을 명령합니다.
실행할 작업:
선택할 모드:
다음 명령어로 계속 실행하기 전에 지정된 배열 내 모든 요소에서 작업합니다.
모든
배열 작업을 여러 스캔에 분배합니다.
스캔당 작업할 요소의 수(1 ~ 2147483647)를 입력합니다.
숫자
EnableIn이 거짓에서 참으로 바뀔 때마다 배열 내 요소 하나를 조작합니다.
증가
전체 모드
전체 모드에서는 배열에 지정된 모든 요소가 다음 명령을 계속하기 전에 작동합니다. 작업은 명령어의 EnableIn이 거짓에서 참으로 바뀔 때 시작합니다. 제어 구조의 위치(.POS) 값은 명령어가 현재 사용하고 있는 배열 내 요소를 가리킵니다. 작업이 다음과 같은 두 가지 경우에 정지합니다. .POS 값이 .LEN 값과 같거나 이를 초과하는 경우 식이 참으로 계산될 때 AND 연산을 수행합니다.
File Search and Compare (FSC) (2)
아래 타이밍 다이어그램에서는 상태 비트와 명령어 작업의 관계를 보여줍니다. 명령어 실행이 완료되면 .DN 비트가 참입니다. EnableIn이 거짓이면 .DN 비트, .EN 비트, .POS 값이 해제됩니다. 이 경우에만 EnableIn 거짓 - 참 전환에서 명령어의 다른 실행이 트리거될 수 있습니다.
All Mode_2_v31
숫자 모드
숫자 모드는 배열 작업을 여러 스캔 작업에 분배합니다. 이 모드는 비시간 임계 데이터나 대량의 데이터를 작업할 경우에 유용합니다. 각 스캔에서 작동할 요소 수를 입력하면 스캔 시간이 단축됩니다.
EnableIn이 거짓에서 참으로 전환되면 실행이 트리거됩니다. 이 경우 명령어는 전체 배열의 작업을 완료하는 데 필요한 스캔 작업의 횟수만큼 스캔될 때마다 실행됩니다. 트리거되면 EnableIn은 명령어의 실행을 중단하지 않고도 반복해서 변경할 수 있습니다.
Numerical Mode
.DN 또는 .IN 비트가 참이 될 때까지는 숫자 모드로 작업하는 파일 명령어의 결과 사용을 피합니다.
아래 타이밍 다이어그램에서는 상태 비트와 명령어 작업의 관계를 보여줍니다. 명령어 실행이 완료되면 .DN 비트가 참입니다.
FSC_Numerical Mode
완료 시에 EnableIn이 참이면 .EN과 .DN 비트는 EnableIn이 거짓으로 전환할 때까지 참입니다. EnableIn이 거짓으로 전환되면 해당 비트와 .POS 값이 해제됩니다.
완료 시에 EnableIn이 거짓이면 .EN 비트는 즉시 지워집니다. .EN 비트가 해제된 후의 한 스캔 작업에서 .DN 비트와 .POS 값이 해제됩니다.
증분 모드
증가 모드는 명령어의 EnableIn이 거짓에서 참으로 바뀔 때마다 배열 내 요소 하나를 조작합니다.
FSC_Incremental Mode
아래 타이밍 다이어그램에서는 상태 비트와 명령어 작업의 관계를 보여줍니다. 실행은 EnableIn이 거짓에서 참으로 바뀌는 스캔에서만 진행됩니다. 이 상황이 발생할 때마다 배열 내 요소 하나만 조작됩니다. 두 번 이상의 스캔 동안 EnableIn이 참으로 유지되면 명령어가 첫 번째 스캔 중에만 실행됩니다.
Incremental Mode_2
렁-입력-조건이 참인 경우, .EN 비트가 설정됩니다. 배열 내 마지막 요소가 조작되면 .DN 비트가 설정됩니다. 마지막 요소가 조작되고 렁-입력-조건이 거짓으로 전환되면 .EN 비트, .DN 비트, .POS 값이 지워집니다.
스캔당 요소 하나의 속도에 따른 증분 모드와 숫자 모드의 차이는 다음과 같습니다.
스캔당 요소가 몇 개 있는 숫자 모드의 실행을 시작하려면 EnableIn의 거짓 - 참 전환이 하나 있으면 됩니다. 명령어는 EnableIn의 상태에 관계없이 완료될 때까지 스캔마다 지정된 개수의 요소를 계속 실행합니다.
증분 모드는 EnableIn이 거짓에서 참으로 전환되어야 배열 내 요소 하나를 조작할 수 있습니다.
포맷 식
식에서 사용하는 각 연산자에는 1 ~ 2개의 피연산자(태그 또는 즉시 값)를 제공해야 합니다. 다음 표를 사용하여 식 내의 연산자 및 피연산자 형식을 지정합니다.
연산자 작용 대상:
사용 형식:
예
피연산자 1개
연산자(피연산자)
ABS(태그)
피연산자 2개
operand_a 연산자 operand_b
tag_b + 5
tag_c AND tag_d
(tag_e**2) MOD (tag_f / tag_g)
연산 순서 정의
명령어는 식 안에 써넣은 연산을 작성 순서가 아닌 미리 규정된 순서에 따라 수행합니다. 작업 순서를 오버라이드하려면 해당 항을 모아 괄호 안에 넣음으로써 명령어가 다른 연선보다 우선 괄호 안의 연선을 수행하게 하면 됩니다.
연산 순서가 같은 경우에는 왼쪽에서 오른쪽 순으로 수행됩니다.
순서
연산
1
( )
2
ABS, ACOS, ASIN, ATAN, COS, DEG, BCD_TO, LN, LOG, RAD, SIN, SQRT, TAN, TO_BCD, TRUNC
3
**
4
- (부정), NOT, !
5
*, /, MOD
6
- (빼기), +
7
AND
8
XOR
9
OR
10
<, <=, >, >=, =, <>
11
&&
12
^^
13
||
식에 문자열 사용
식에 ASCII 문자의 문자열을 사용하려면 다음 지침을 따릅니다.
식을 통해 두 문자열 태그를 비교할 수 있습니다.
ASCII 문자는 식에 직접 입력할 수 없습니다.
아래와 같은 연산자만 허용됩니다.
연산자
설명
=
같음
<
보다 작음
<=
보다 작거나 같음
>
보다 큼
>=
보다 크거나 같음
<>
같지 않음
문자가 일치하면 문자열은 동일합니다.
ASCII 문자는 대소문자가 구분됩니다. 대문자 A($41)와 소문자 a($61)는 다릅니다.
16진수 문자값으로 한 문자열이 다른 문자열보다 작거나 큰지를 판단합니다.
두 문자열이 전화번호부와 마찬가지로 정렬된 경우 문자열의 순서로 어느 문자열이 큰지 알 수 있습니다.
FSC_use strings in an expression
연산 상태 플래그에 영향
컨트롤러
연산 상태 플래그에 영향
CompactLogix
5380,
ControlLogix
5580,
Compact GuardLogix
5380,
GuardLogix
5580 및 ControlLogix 5590 컨트롤러
아니요
CompactLogix
5370,
ControlLogix
5570,
Compact GuardLogix
5370 및
GuardLogix
5570 컨트롤러
예
주 폴트/부 폴트
메이저 폴트는 다음과 같은 경우에 발생합니다.
폴트 유형
폴트 코드
.POS < 0 또는 .LEN < 0
4
21
피연산자 관련 폴트에 대해서는 공통 속성을 참조하십시오. 배열 인덱스 폴트의 경우 배열을 통한 인덱스를 참조하세요.
실행
래더 다이어그램
조건/상태
수행한 작업
사전 스캔
N/A
렁-입력-조건이 거짓임
FSC 흐름도(렁-출력-조건이 거짓임) 참조
렁-입력-조건이 참임
FSC 흐름도(렁-출력-조건이 참임) 참조
사후 스캔
N/A
FSC 흐름도(렁-출력-조건이 거짓임)
FSC Flow Chart EnableIn is False
FSC 흐름도(렁-출력-조건이 참임)
FSC Flow Chart EnableIn is True
FSC 흐름도(FSC 보통 서브플로)
FSC Flow Chart (FSC Common Subflow)
FSC 흐름도(FSC 보통 예외 서브플로)
FSC Flow Chart FSC Common Exception Subflow
예
예 1
두 DINT 배열에서 동일하지 않은 요소 검색합니다.
래더 다이어그램
File Search and Compare (FSC)_Example1_v31
활성화된 경우 FSC 명령어는 array_1의 처음 10개의 요소를 각각 array_2의 해당 요소와 비교합니다. 동일하지 않은 요소가 발견된 경우, FD 및 IN 비트가 설정됩니다. POS는 동일하지 않은 요소의 위치를 식별합니다. 배열의 나머지 부분을 검색하려면 IN 비트를 해제합니다.
FSC_example clear the bit
예 2
STRING 배열 내의 문자열을 검색합니다.
활성화된 경우, FSC 명령어는 코드의 문자와 code_table의 10개 요소를 비교합니다.
code_table에서 코드와 일치하는 문자열이 발견되면 FD 및 IN 비트가 설정됩니다. POS는 일치하는 문자열의 위치를 식별합니다. 배열의 나머지 부분을 검색하려면 IN 비트를 해제합니다.
File Search and Compare (FSC)_Example3_v31
의견을 작성 부탁드립니다.
이 자료에 대한 문의사항이나 요청사항이 있습니까? 여기에 요청사항을 작성 부탁드립니다.
Normal