3.1 아날로그 데이터 레지스터 U
슬롯에 장착된 특수모듈(A/D,D/A,HSC 등)로부터 데이터를 읽어오는데 사용되는 레지스터입니다.
백플레인 컨트롤러에 의해 장착된 특수모듈의 데이터가 리프레시 영역에 자동으로 갱신됩니다.
U 영역은 한 슬롯당 32 개 워드가 할당되어 있습니다.
따라서 U 영역은 XGK 의 경우 총 4,096 워드( 8 베이스 * 16 슬롯 * 32 워드 = 4,096 워드)로 XGB 의 경우 총 256 워드( 1 베이스 * 16 슬롯 * 32 워드 = 256 워드) 로 이루어져 있습니다.
각 슬롯에 따라 사용하는 U 영역 값은 고정된 값으로, 모듈이 장착된 슬롯이건 빈 슬롯이건 상 관없이 고정된 값으로 사용됩니다.
U 영역의 기본적인 표현방법은 Uxy.z 로 표현하며 여기서 x 는 베이스번호 0~ 7 를 설정하고, y 는 슬롯번호인 0 ~ F 를 설정하며, z 는 특수모듈 내부메모리의 워드번호를 설정합니다.
U 영역 또한 비트표현이 가능하며 이때 표현 방법은 U3A.12.x (x:비트위치, 16 진수표기)
실제로 지정된 슬롯에 특수모듈이 없거나 유효한 데이터 영역을 벗어나게 지정했을 경우, 그 지 정된 영역의 값은 0 이 되고 에러는 발생하지 않습니다.
예를 들어, 3 번 베이스의 1 번 슬롯에 장착된 특수모듈의 리프레시 영역이 4 개 (0 번~3 번)의 워 드까지만 유효한 영역이라면, 4 번워드 (U31.04)는 0 으로 읽혀지게 됩니다. 따라서 D00004 에는 h00F3 이 저장됩니다.
P00052
ADD h00F3 U31.04 D00004
장착된 특수모듈의 리프레시 영역 이외의 값을 읽거나 쓰고자 할 경우에는 PUT(P), GET(P)명령을 사용하십시오. 각 모듈의 영역에 대한 정보는 해당 모듈 설명서를 참조하십시오.
장착된 모듈이 D/A 변환모듈일 경우에는 해당 모듈의 U 영역에 데이터를 쓰면 스캔 END 에서 리프레시되어 출력됩니다. 만약, D/A 변환모듈이 아닌 모듈이 장착된 위치에 데이터를 저장하는 명령어를 사용했을 경우에는 NOP 처리 합니다. 이 경우 에러가 발생하지 않습니다.
3.2 파일 레지스터 R
파일 레지스터는 내부 플래시 메모리 사용을 위한 전용 레지스터입니다. 플래시 메모리는 데이 터를 저장하는데 약간의 시간이 소요되어 스캔 프로그램 수행중에 데이터를 저장할 수 없습니 다. 이런 문제 때문에 플래시 메모리 데이터를 파일 레지스터로 옮겨서 스캔 프로그램에서 사 용하고, 데이터 저장이 필요할 경우 다시 플래시 메모리로 저장하는 방식으로 사용됩니다.
1) 특징
(1) 내부 플래시 메모리 사용을 위한 전용 레지스터로 내부 플래시의 블록 한 개를 파일 레지스 터의 블록으로 읽어오거나 쓰는데 사용됩니다.
블록 0
블록 1
R00000
R00000 R32767
R32767 ZR65535
ZR00000
~ ~
~
파일 레지스터(R, ZR) 내부 플래시 메모리
블록 0
(32K WORD)
블록 1
(32K WORD)
블록 31
(32K WORD)
~
EBREAD
EBWRITE
* EBREAD, EBWRITE는 플래시 전용명령으로 자세한 설명은 파일관련 명령어에 있습니다.
(2) 한 블록*1)의 크기는 32K 워드(XGK), 10K 워드(XGB 콤팩트형)로 내부 플래시 메모리의 블록 크기와 같습니다.
(3) 파일 레지스터의 데이터를 EBWRITE 명령을 이용해 플래시 메모리에 WRITE 하면 데이터를 영구적으로 보존할 수 있습니다.
(4) 파일 레지스터는 래치영역 1 과 동일하게 동작합니다. 즉, 리셋 스위치를 통한 Overall 리셋, D.CLR 키를 이용한 리셋, XG5000 을 통한 리셋시에 데이터가 0 으로 지워집니다.
(5) 파일레지스터의 블록을 플래시 메모리의 블록으로 READ/WRITE 하기 위해서는 여러 스캔이 걸립니다. 완료 여부는 F160(_RBLOCK_RD_FLAG), F162(_RBLOCK_WR_FLAG)의 해당 블록의 비트 로 확인할 수 있습니다.
*1) XGK-CPUS, XGK-CPUE, XGB 콤팩트형(XBC-DxxH)의 경우 파일레지스터는 1 개의 블록(블록 0)만 제공됩니다.
XGK-CPUU, XGK-CPUH, XGK-CPUA 는 2 개의 블록이 제공됩니다. 내부 플래시 메모리는 XGK 에서 32 블록,
(6) 인덱스 기능과 간접지정 모두 사용이 가능합니다. 이때, ZR 의 경우 간접지정의 범위는 ZR0
~ZR32767 워드까지만 가능하고, 인덱스 기능([Z])은 사용한 ZR 의 디바이스 번호에서 -32768~32767 범위내에서 사용 가능합니다. R 의 경우는 간접지정, 인덱스 모두 설정한 블록 범 위내에서 사용가능합니다. 해당 블록을 벗어날 경우 인덱스 초과 에러가 발생합니다.
2) 크기
구 분 XGK-CPUS/CPUE
XGK-CPUU/CPUH/CPUA XGB 콤팩트형(XBC-DxxH)
파일 레지스터 32K WORD * 1 블록 32K WORD * 2 블록 10K WORD * 1 블록
내부 플래시 메모리 32K WORD * 32 블록 32K WORD * 32 블록 10K WORD * 2 블록
3) 표현방법
R - 파일 레지스터 블록단위 표현 ( 1 블록당 32Kword 고정 ) ZR - 파일 레지스터 전체 표현(표현범위는 기종에 따라 다름 )
플래시 영역은 디바이스명이 없고, 전용명령어로 액세스할 수 있습니다.
디바이스명 비트표현
워드표현
(DW 포함)
쓰기 읽기 # [Z] 데이터 보관
R O O O O O O 래치영역 1 수
준
ZR X O O O O O 래치영역 1 수
준
내부 플래시 X X 전용명령 전용명
령 X X 영구적
XGK-CPUH 의 경우, 파일레지스터 구성 예
4) 에러 플래그
번호 크기 명칭 내용 비고
F158 Word 블럭 No.플래그 현재 사용중인 블럭 No 를 표기
F1590 BIT 플래시 블록 읽기 대표플 래그
플래시 블록 읽기 플래그가 하나라 도 ON 되어 있으면 ON
F1591 BIT 플래시 블록 쓰기 대표플 래그
플래시 블록 쓰기 플래그가 하나라 도 ON 되어 있으면 ON
F1592 BIT
플래시 블록 쓰기 에러
대표플래그
플래시 블록 쓰기 에러 플래그가 하 나라도 ON 되어 있으면 ON
F1600
~ F161F
BIT 플래시 블록 n 읽기 플래
그 블록 n 에 데이터를 읽을 때 ON 32 개
F1620
~ F163F
BIT 플래시 블록 n 쓰기 플래
그 블록 n 에 데이터를 쓸 때 ON 32 개
F1640
~ F165F BIT
플래시 블록 n 쓰기 에러
플래그
블록 n 에 데이터 쓰기를 실패했을 때 ON. 에러 발생시 해당 쓰기 플래 그 및 쓰기 대표 플래그도 ON 상태 유지
32 개
알아두기
(1) R, ZR 디바이스는 XGB 표준형에서 제공되지 않습니다.
따라서 플래시 읽기 쓰기를 지원하지 않으며 해당 에러 플래그도 지원하지 않습니다.
3.3 인덱스 레지스터 Z
특징
- 인덱스 레지스터를 사용해서 디바이스를 설정하는 방법으로 시퀀스 프로그램에서 인덱스 기능을 사용 하면, 사용되는 디바이스는 직접 지정하는 디바이스 번호에 인덱스 레지스터의 값을 더한 위치를 가지 게 됩니다. 예를 들어, P10[Z1]을 사용했을 경우, Z1 의 내용이 5 였다면, P(10+5) = P15 가 사용대상이 됩 니다.
- 인덱스 레지스터 Z0 ~ Z127 (128 개) - 지정할 수 있는 값의 범위: -32768~32767 - 워드/비트 디바이스의 인덱스 기능 - 간접지정에도 사용가능
- 인덱스 결과 영역 초과시 연산 에러 플래그 SET (F110)
사용 가능 디바이스
- 비트 디바이스: P, M, L, K, F, T, C
- 워드 디바이스: Z, U, D, R, N, T 의 현재값, C 의 현재값
사용방법
- 사용하고자 하는 오퍼랜드 뒤에 []을 이용하여 사용.
- 비트 디바이스의 경우: 해당 명령어에 사용되는 오퍼랜드의 종류(비트/워드)에 따라 비트/워드 단위로 인덱스 처리.
예 1) LOAD P10[Z1]: 만약 Z1 의 값이 5 라면 LOAD P(10+5) LOAD P15(비트)가 됩니다.
예 2) MOV P10[Z1] D10: 여기서 P10 은 워드를 의미하므로 P10[Z1]은 P(10+5) = P15 워드가 됩니다.
- 워드 디바이스의 경우: 워드 단위로만 인덱스 처리. 절대 비트 단위 인덱스 처리 불가능.
예) LOAD D10[Z1].5: 만약 Z1 의 값이 5 라면, LOAD D(10+5).5 LOAD D15.5 가 됩니다.
주의) LOAD D10.5[Z1]과 같은 표현은 사용할 수 없습니다.
- 이 인덱스 기능은 배열의 의미를 갖는 변수에서, 인덱스로 지정된 변수 값을 취하거나 인덱스로 지정 된 변수에 값을 저장할 때 유용하게 사용할 수 있습니다.