서브루틴으로 이동(Jump to Subroutine, JSR), 서브루틴(Subroutine, SBR) 및 반환(Return, RET)

이 정보는
CompactLogix
5370,
ControlLogix
5570,
Compact GuardLogix
5370,
GuardLogix
5570,
Compact GuardLogix
5380,
CompactLogix
5380,
ControlLogix
5580,
GuardLogix
5580 및 ControlLogix 5590 컨트롤러에 적용됩니다.
JSR 명령어는 다른 루틴을 호출합니다. 해당 루틴이 완료되면 실행이 JSR 명령어로 돌아갑니다.
SBR 명령어는 JSR에 의해 전달된 입력 매개 변수를 수신합니다.
RET 명령어는 반환 매개 변수를 JSR에 다시 전달하고 서브루틴의 스캔을 종료합니다.
사용 가능한 언어
래더 다이어그램
JSR_LD_avail_v31
SBR_LD_avail_v31
RET_LD_avail_v31
펑션 블록
JSR_FB_avail_v31
SBR_FB_avail_v31
RET_FB_avail_v31
순차 펑션 차트
SBR_RET_FC_avail_v31
구조화된 텍스트
JSR(RoutineName,InputCount,InputPar,ReturnPar);
SBR(InputPar);
RET(ReturnPar);
피연산자
중요: 다음과 같은 경우 예기치 않은 작업이 발생할 수 있습니다.
  • 출력 태그 피연산자를 덮어썼습니다.
  • 구조 피연산자의 구성원을 덮어썼습니다.
  • 지정된 경우를 제외하고 여러 명령어에서 구조 피연산자를 공유합니다.
주의: SBR 또는 RET 명령어의 각 매개 변수에 JSR 명령어의 해당 매개 변수와 같은 데이터 유형(모든 배열 차원 포함)을 사용합니다. 다른 데이터 유형을 사용하면 예기치 않은 결과가 발생할 수 있습니다.
래더 다이어그램
JSR 명령어
피연산자
데이터 유형
CompactLogix
5370,
ControlLogix
5570,
Compact GuardLogix
5370 및
GuardLogix
5570 컨트롤러
데이터 유형
CompactLogix
5380,
ControlLogix
5580,
Compact GuardLogix
5380,
GuardLogix
5580 및 ControlLogix 5590 컨트롤러
형식
설명
Routine Name
ROUTINE
ROUTINE
이름
실행할 서브루틴
Input Par
BOOL
SINT
INT
DINT
REAL
structure
BOOL
SINT
INT
DINT
LINT
USINT
UINT
UDINT
ULINT
REAL
LREAL
structure
DT
LDT
TIME32
TIME
LTIME
즉시
태그
배열 태그
이 루틴에서 서브루틴의 태그에 복사할 데이터.
  • 입력 매개 변수는 옵션임
  • 필요한 경우 입력 매개 변수를 최대 40개까지 입력합니다.
Return Par
BOOL
SINT
INT
DINT
REAL
structure
BOOL
SINT
INT
DINT
LINT
USINT
UINT
UDINT
ULINT
REAL
LREAL
structure
DT
LDT
TIME32
TIME
LTIME
태그
배열 태그
이 루틴에 서브루틴의 결과를 복사하도록 태그를 설정합니다.
  • 반환 매개 변수는 옵션임
  • 필요한 경우 반환 매개 변수를 최대 40개까지 입력합니다.
SBR 명령어
피연산자
데이터 유형
CompactLogix
5370,
ControlLogix
5570,
Compact GuardLogix
5370 및
GuardLogix
5570 컨트롤러
데이터 유형
CompactLogix
5380,
ControlLogix
5580,
Compact GuardLogix
5380,
GuardLogix
5580 및 ControlLogix 5590 컨트롤러
형식
설명
Input Par
BOOL
SINT
INT
DINT
REAL
structure
BOOL
SINT
INT
DINT
LINT
USINT
UINT
UDINT
ULINT
REAL
LREAL
structure
DT
LDT
TIME32
TIME
LTIME
태그
배열 태그
  • 이 루틴의 태그이며, 이에 JSR 명령어의 해당 입력 파라미터(최대 40개)를 복사.
RET 명령어
피연산자
데이터 유형
CompactLogix
5370,
ControlLogix
5570,
Compact GuardLogix
5370 및
GuardLogix
5570 컨트롤러
데이터 유형
CompactLogix
5380,
ControlLogix
5580,
Compact GuardLogix
5380,
GuardLogix
5580 및 ControlLogix 5590 컨트롤러
형식
설명
Return Par
BOOL
SINT
INT
DINT
REAL
structure
BOOL
SINT
INT
DINT
LINT
USINT
UINT
UDINT
ULINT
REAL
LREAL
structure
DT
LDT
TIME32
TIME
LTIME
즉시 태그
배열 태그
JSR 명령어의 해당 반환 파라미터(최대 40개)에 복사할 이 루틴의 데이터.
연산 상태 플래그에 영향
아니요
주 폴트/부 폴트
메이저 폴트는 다음과 같은 경우에 발생합니다.
폴트 유형
폴트 코드
JSR 명령어는 SBR 명령어보다 입력 파라미터 수가 적음
4
31
JSR 명령어가 폴트 루틴으로 이동
4
990 또는 사용자 제공
RET 명령어는 JSR 명령어보다 반환 매개 변수 수가 적음
4
31
주 루틴에는 RET 명령어가 포함
4
31
연산
중요: 어떤 루틴이든 JSR 명령어를 포함할 수 있지만 JSR 명령어는 주 루틴을 호출(실행)할 수 없습니다.
JSR_SBR_RET
JSR 명령어는 지정된 루틴(서브루틴이라 함)의 실행을 시작합니다.
  • 서브루틴은 스캔될 때마다 실행합니다.
  • 서브루틴이 실행한 후 로직 실행은 JSR 명령어를 포함한 루틴으로 돌아가서 JSR 다음의 명령어를 사용하여 계속합니다.
서브루틴에 대한 이동을 프로그래밍하려면 다음 지침을 따릅니다.
JSR
  • 서브루틴의 태그에 데이터를 복사하려면 입력 파라미터를 입력합니다.
  • 서브루틴의 결과를 이 루틴의 태그에 복사하려면 반환 파라미터를 입력합니다.
  • 필요에 따라 입력을 40개까지 입력하며 반환 매개 변수를 40개까지 입력합니다.
SBR
  • JSR 명령어가 입력 파라미터를 포함한 경우 SBR 명령어를 입력합니다.
  • SBR 명령어를 루틴의 첫 번째 명령어로 놓습니다.
  • JSR 명령어의 각 입력 매개 변수에 대해 데이터를 복사할 태그를 입력합니다.
RET
  • JSR 명령어가 반환 파라미터를 포함한 경우 RET 명령어를 입력합니다.
  • RET 명령어를 루틴의 마지막 명령어로 놓습니다.
  • JSR 명령어의 각 반환 매개 변수에 대해 JSR 명령어에 전송할 반환 매개 변수를 입력합니다.
  • 래더 루틴에서는 필요한 경우 다른 입력 조건을 기반으로 서브루틴을 종료하기 위해 추가 RET 명령어를 놓습니다(함수 블록 루틴은 RET 명령어를 한 개만 허용).
최대 40개의 매개 변수를 서브루틴에 전달하고 최대 40개의 매개 변수가 서브루틴에서 반환되는 상태에서 중첩된 서브루틴을 25개까지 호출합니다.
JSR_ex
팁: 가변 피연산자를 추가 및 제거하려면
편집 > 래더 요소 편집(Edit > Edit Ladder Element)
메뉴를 선택합니다. JSR 및 SBR 명령어의 경우 입력 매개 변수를 추가합니다. JSR 및 RET 명령어의 경우 출력 매개 변수를 추가합니다. 3개 명령어 모두에 대해 명령어 매개 변수를 제거합니다.
실행
래더 다이어그램
조건/상태
수행한 작업
사전 스캔
렁은 거짓으로 설정됩니다.
컨트롤러가 모든 서브루틴을 실행합니다. 서브루틴의 모든 렁이 사전 스캔되도록 하기 위해 컨트롤러가 RET 명령어를 무시합니다(즉, RET 명령어가 서브루틴을 종료하지 않음).
입력 및 반환 매개 변수는 전달되지 않습니다.
같은 서브루틴이 여러 번 호출되면 한 번만 사전 스캔됩니다.
렁-입력-조건이 (JSR 명령어에 대해) 거짓임
N/A
렁-입력-조건이 참임
파라미터가 전달되고 서브루틴이 실행됩니다.
사후 스캔
사전 스캔과 같은 조치
펑션 블록
조건/상태
수행한 작업
사전 스캔
래더 다이어그램 표의 사전 스캔을 참조하십시오.
EnableIn이 거짓임
N/A
EnableIn이 참임
파라미터가 전달되고 서브루틴이 실행됩니다.
명령어 최초 실행
N/A
명령어 최초 스캔
N/A
사후 스캔
래더 다이어그램 표에서 사후 스캔 섹션을 참조하십시오.
구조화된 텍스트
조건/상태
수행한 작업
사전 스캔
래더 다이어그램 표의 사전 스캔을 참조하십시오.
정상 실행
파라미터가 전달되고 서브루틴이 실행됩니다.
사후 스캔
래더 다이어그램 표에서 사후 스캔 섹션을 참조하십시오.
예
예 1
래더 다이어그램
JSR_SBR_RET_LD_ex_v31
구조화된 텍스트
루틴
프로그램
주 루틴
JSR(routine_1,2,value_1,value_2,float_value_1);
서브루틴
SBR(value_a,value_b);
<statements>;
RET(float_a);
예 2
래더 다이어그램
주 루틴
JSR_LD_ex_v31
subroutine_1
RET_LD_ex.png_v31
예 3
펑션 블록
L5K_JSR_SBR_RET_FB_ex_v31.png
의견을 작성 부탁드립니다.
이 자료에 대한 문의사항이나 요청사항이 있습니까? 여기에 요청사항을 작성 부탁드립니다.
Normal