인터럽트 프로그램에서 인덱스 레지스터 보호

컴파일러 작업은 인터럽트 프로그램 또는 인터럽트 프로그램에서 호출된 펑션 또는 펑션블럭에서 사용된 인덱스 레지스터를 덮어쓰지 않도록 합니다.

아래 예에서는 이 동작을 보장하기 위한 PLC의 코드 생성 개념(인터럽트의 인덱스 레지스터: 프로그램 코드, 오른쪽에 있는 프로그래머 코멘트)을 보여줍니다.

인덱스 레지스터 뱅크가 있는 PLC(FP2SH 및 FP10SH)

INT0
ST R9010
F411_CHGB K1	Index register bank set to 1

ST R9010
F0_MV	DT458, I5	Actual program code
F0_MV	K5, I5DT455

ST R9010
F412_POPB		Index register bank reset

인덱스 레지스터 뱅크가 없는 PLC

INT0
ST R9010
F0_MV	I5, DT461	Protecting the current content

ST R9010
F0_MV	DT458, I5	Actual program code
F0_MV	K5, I5DT455
ST R9010F0_MV DT461, I5	Rewriting the current content
IRET

최종 수정일: 2019-04-30이 페이지에 대한 피드백Panasonic 직통 전화