Status Bit-Dependent Instructions

Similar documents
<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

상태비트의존적인인스트럭션 Date: File: PRO2_01e.1 Information and 목차 페이지 S7-CPU의레지스터및메모리영역... 2 상태워드구조 상태비트검사 상태비트인스트럭션 블록호출또는복잡한

PRO1_09E [읽기 전용]

OCW_C언어 기초

초급과정 목차

Microsoft Word - PLC제어응용-2차시.doc

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

<4D F736F F F696E74202D2032C0E55FC6AEB7B9C0CCB4D720C5B0C6AEB1B8BCBAC7B05F446F6E652E707074>

ADP-2480

Microsoft PowerPoint - chap04-연산자.pptx

IRISCard Anywhere 5

PowerPoint 프레젠테이션

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Visual Basic 반복문

Microsoft PowerPoint - chap06-2pointer.ppt

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Bausteinaufrufe und Multiinstanz-Modell

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

PRO1_02E [읽기 전용]

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - 12장_Function과 Function Block.ppt

쓰리 핸드(삼침) 요일 및 2405 요일 시간, 및 요일 설정 1. 용두를 2의 위치로 당기고 반시계방향으로 돌려 전날로 를 설정합니다. 2. 용두를 시계방향으로 돌려 전날로 요일을 설정합니다. 3. 용두를 3의 위치로 당기고 오늘 와 요일이 표시될 때까지 시계방향으로

PowerPoint 프레젠테이션

2 장수의체계 1. 10진수 2. 2진수 3. 8진수와 16진수 4. 진법변환 5. 2진정수연산과보수 6. 2진부동소수점수의표현 한국기술교육대학교전기전자통신공학부전자전공 1

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

PRO1_04E [읽기 전용]

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Studuino소프트웨어 설치

adfasdfasfdasfasfadf

Microsoft PowerPoint - chap06-5 [호환 모드]

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Frama-C/JESSIS 사용법 소개

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

Microsoft PowerPoint - chap03-변수와데이터형.pptx

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Microsoft Word - STL_SCL_4판_목차.doc

슬라이드 1

Diagnostizieren von Fehlern

슬라이드 1

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

chap 5: Trees

Microsoft PowerPoint - 13장_OB 블록.ppt

Microsoft Word - FunctionCall

Chapter #01 Subject

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

UI TASK & KEY EVENT

슬라이드 1

ISP and CodeVisionAVR C Compiler.hwp

Chapter 4. LISTS

금오공대 컴퓨터공학전공 강의자료

BY-FDP-4-70.hwp

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

1 안전 기준

17장 클래스와 메소드

Microsoft PowerPoint - a6.ppt [호환 모드]

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Indirekte Adressierung und Adre?egisteranweisungen

강의 개요

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint - es-arduino-lecture-03

Microsoft PowerPoint - [2009] 02.pptx

(b) 미분기 (c) 적분기 그림 6.1. 연산증폭기연산응용회로

네트워크 설정

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

ATmega128

Chapter 4. LISTS

Microsoft PowerPoint - hw8.ppt [호환 모드]

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

PowerPoint Presentation

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft Word - logic2005.doc

PowerPoint 프레젠테이션

RHEV 2.2 인증서 만료 확인 및 갱신

DBMS & SQL Server Installation Database Laboratory

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

Microsoft PowerPoint - ch07 - 포인터 pm0415

11장 포인터

JVM 메모리구조

BMP 파일 처리

Microsoft PowerPoint - chap10-함수의활용.pptx

온습도 판넬미터(JTH-05) 사양서V1.0

C++ Programming

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

?.,,,.. / OSHA( ) NFPA( ) ANSI/ISA( / ) TIA( ) IEC( ) CENELEC( ) IEEE( ).....?,,.. Fluke 160- FC %.,? NEC( ) 100 " / ". ( )....,,,, EMI, RFI.

사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을

Computer Architecture

PowerPoint 프레젠테이션

Using Libraries

학습목차 r 개념으로살펴보는 CPU 속의제어장치 r 마이크로연산 r 제어장치의동작 r 마이크로프로그램을이용한제어 컴퓨터구조 제어장치

Chapter ...

(1) 주소지정방식 Address Mode 메모리접근 분기주소 명령어 직접번지 Reg. 지정 Reg. 간접 Base Index 간접 Immediate 상대번지 절대번지 Long 주소 Reg. 간접 Byte Access Bit Access 내부 Data M

chap x: G입력

Microsoft PowerPoint - 30.ppt [호환 모드]

쉽게 풀어쓴 C 프로그래밍

4. 다음주소지정방식중속도가가장빠른주소방식은? 가. immediate addressing mode 나. direct addressing mode 다. indirect addressing mode 라. index register. 5. 간접주소 (indirect addr

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

프로그램카운터 (Program Counter) 명령레지스터 (Instruction Register) 누산기 (AC: Accumulator) 상태레지스터 (Status Register) PSWR(Program Status Word Register) 메모리주소레지스터 (M

<C0FCC0DAB0E8BBEAB1E2B1B8C1B6347E36B0AD20B9AEC1A62BC1A4B4E42E687770>

API 매뉴얼

PRO1_14E [읽기 전용]

Transcription:

상태비트의존적인인스트럭션 File: PRO2_01e.1 Information and 목차 페이지 S7-CPU의레지스터및메모리영역... 2 상태워드구조.... 3 상태비트검사..... 4 상태비트인스트럭션........ 5 블록호출또는복잡한함수에서의 BR 비트및 ENO... 6 상태비트에의존적인점프함수... 7 조건코드에의존적인점프함수..... 8 점프분산자의프로그래밍... 9 루프인스트럭션의프로그래밍... 10 블록엔드에대한인스트럭션... 11 연습 1.1: 빼기후점프... 12 연습 1.2: 곱하기후점프..... 13 연습 1.3: 점프분산자프로그래밍..... 14 Page 1

S7-CPU 의레지스터및메모리영역 누산기 S7-400 전용 ACCU4 ACCU3 32 Bit 32 Bit 로드메모리 - 논리블록 - 데이터블록 ACCU2 32 Bit ACCU1 어드레스레지스터 32 Bit L, U, O,... 작업메모리 - 논리블록 - 데이터블록 AR1 AR2 32 Bit 32 Bit T, S, =,... I/O 영역 데이터블록레지스터개방된 DB 개방된 DI 상태워드상태비트 16 Bit 16 Bit 16 Bit 시스템메모리 - 프로세스-이미지입력표 - 프로세스-이미지출력표 - 비트메모리 - 타이머 - 카운터 - 로컬데이터스택 - 인터럽트스택 - 블록스택 S7-CPU 레지스터 S7-CPU 메모리영역 File: PRO2_01e.2 Information and 개요 S7-CPU 는효율적인프로그램실행을위해다양한레지스터및메모리영역을포함합니다. CPU 레지스터 CPU 레지스터는데이터의주소를지정하거나처리하기위해사용됩니다. 데이터는관련명령 (L, T,...) 을이용해 CPU 메모리영역과레지스터간에교환될수있습니다. 누산기 : (S7-300 을가진 ) 2 개의누산기또는 (S7-400 을가진 ) 4 개의누산기가산술, 비교, 또는다른바이트, 워드, 더블워드인스트럭션에사용됩니다. 어드레스레지스터 : 2 개의어드레스레지스터가메모리의레지스터간접어드레싱을위한포인터로사용됩니다. 데이터블록레지스터 : 데이터블록레지스터는개방된 ( 활성 ) 데이터블록번호를포함합니다. 따라서한개의 DB 는 DB 레지스터로, 다른한개의 DB 는 DI 레지스터를이용해서인스턴스 DB 로 2 개의 DB 를동시에열수있습니다. 상태워드 : 프로그램실행내에서개별인스트럭션의결과또는상태를반영하는다양한비트를포함합니다. 메모리영역 S7-CPU 의메모리는 4 개의영역으로구분될수있습니다. 로드메모리는기호어드레스할당이나설명없이사용자프로그램을저장하기위해사용됩니다. 로드메모리는 RAM 이나 FEPROM 메모리일수있습니다. 작업메모리 ( 통합 RAM) 는프로그램실행을위해필요한 S7 프로그램의해당부분을저장하기위해사용됩니다. 프로그램실행은작업메모리에서단독으로이루어집니다. I\O 영역은연결된신호모듈이나필드장치입출력에대한직접액세스를허용합니다. 시스템메모리 (RAM) 는프로세스 - 이미지입출력표, 비트메모리, 타이머, 카운터와같은영역을포함합니다. 또한로컬데이터, 블록, 인터럽트스택을포함합니다. Page 2

상태워드구조 상태워드에서비트의중요도 비트할당값중요도 0 /FC 2 0 첫번째검사 1 RLO 2 1 논리연산결과 2 STA 2 2 상태 3 OR 2 3 또는 4 OS 2 4 과잉저장 5 OV 2 5 과잉 6 CC0 2 6 결과비트 7 CC1 2 7 결과비트 8 BR 2 8 이진법결과 9...15 할당 2 9..2 10 안됨 File: PRO2_01e.3 Information and 상태워드첫번째검사논리연산결과상태비트 OR 비트 OV 비트 상태워드의개별비트는발생한오류뿐만아니라인스트럭션의결과또는상태에대한정보를줍니다. 이진법논리연산을사용하여상태비트의신호상태를직접프로그램에통합함으로써프로그램흐름을제어할수있습니다. 상태워드의비트 0 은첫번째검사비트로불립니다. /FC 비트에서의신호상태 0 은다음논리인스트럭션을내리면새논리문자열이프로그램에서시작된다는것을가리킵니다. 약어 FC 앞의대각선은 /FC 비트가반대로됨을가리킵니다. 상태워드비트 1 은 RLO 비트 (RLO= 논리연산결과 ) 입니다. 이것은이진법논리연산에서임시메모리로사용됩니다. 예를들어논리인스트럭션의문자열에서인스트럭션은접점의신호상태를검사하며부울논리의결과에따라검사 ( 상태비트 ) 의결과를 RLO 비트와결합합니다. 논리연산의결과는교대로 RLO 비트에저장됩니다. 상태비트 ( 비트 2) 는주소가지정된비트의값을저장합니다. 상태비트는스캐닝 (A, AN, O,...) 이나쓰기인스트럭션 (=, S, R,) 을위해항상주소가지정된비트의상태를보여줍니다 ( 쓰기인스트럭션의경우인스트럭션실행후의어드레스상태 ). OR 비트는인스트럭션 O 와함께 OR 논리연산이전에 AND 를실행할때필요합니다. OR 비트는이전에실행된 AND 논리연산이값 1 을배달하여그값에의해 OR 논리연산의결과가이미 1 로결정되었음을가리킵니다. OV 비트 ( 과잉 ) 는부동소수점숫자를가진수치연산인스트럭션이나비교인스트럭션의오류를나타냅니다. 이비트는실행된수치연산또는비교인스트럭션의결과에따라설정됩니다. Page 3

상태비트검사 STL에서검사 A OV 과잉디스플레이스캔 A OS 과잉저장스캔 A BR BR 플래그스캔 결과비트검사 (CC0, CC1) A ==0 결과가 0 임 A > 0 결과가 0보다큼 A <>0 결과가 0과같지않음 A =<0 결과가 0보다작거나같음 기타 A UO 연산이허용되지않음 LAD 와 FBD 에서검사 OV M 4.0 S >0 M 4.0 S File: PRO2_01e.4 Information and OS 비트 OS 비트 ( 과잉저장 ) 은 OV 비트와함께설정됩니다. OS 비트는새로운수치연산인스트럭션이실행된후에도이전설정대로남아있습니다. 즉, OS 비트는다음수치연산인스트럭션의결과에따라변경되지않습니다. 따라서프로그램의이후위치에서도숫자영역과잉이나잘못된 REAL 숫자를가진인스트럭션을평가할기회가있습니다. OS 비트는 JOS (OS = 1 이면점프 ), 블록호출, 블록엔드명령에의해서만리셋됩니다. CC1과 CC0 CC1 비트와 CC0 비트 ( 조건코드 ) 는다음결과에대한정보를줍니다. 수치연산인스트럭션의결과 또는비교인스트럭션의결과 워드논리인스트럭션또는 시프트함수에서자리이동된비트 CC1과 CC0 조건코드는다음인스트럭션에의해간접적으로검사될수 있습니다. CC1 CC0 검사 다음경우에검사완료 0 0 A ==0 Result = 0 (ACCU2 = ACCU1) 1 0 A >0 Result > 0 (ACCU2 > ACCU1) 0 1 A <0 Result < 0 (ACCU2 < ACCU1) 1 1 A AO 잘못된연산 ( 예 : 0으로나누기 ) 또한조건코드를평가해서적당한프로그램분기를허용하는점프함수가 있습니다. LAD/FBD 상태비트아래의카탈로그에서 LAD 또는 FBD 표시에대한검사를볼수있습니다. Page 4

상태비트인스트럭션 인스트럭션의미보기 SET RLO를 "1" 로설정 SET //RLO 1 비트메모리 = M 0.1 CLR RLO 를 "0" 으로설정 CLR //RLO 0 비트메모리 NOT RLO를반대로함 O 수동 O 자동 NOT; = 작동모드 = M0.0 SAVE RLO 를이진법결과로저장 I 1.0 I 1.1 I 1.2 ( 저장 ) A BR 이진법결과검사 BR Q 4.2 Q 5.0 ( ) File: PRO2_01e.5 Information and L STW/T STW 또한전체상태워드를로드해서이후검사 ( 스캔 ) 을위해저장할수있습니다. L STW 상태워드로드 T MW 114 메모리워드 114 에저장예를들어 T STW 인스트럭션을이용해상태워드를이전에저장된상태워드와함께로드할수있습니다. 0, 2, 3, 9..15 비트는이인스트럭션에영향받지않습니다. RLO 변경 STEP7 에는 RLO 에영향을주기위한많은인스트럭션이있습니다. SET 을이용해논리연산의결과를 1 로, CLR 을이용해 0 으로설정합니다. 이와유사하게상태비트 STA 도 1 또는 0 으로설정됩니다. 두개의인스트럭션모두조건과관계없이실행됩니다. SET 와 CLR 은또한상태비트 OR 과 \FC 를리셋합니다. 즉, 새검사문자열이이후에시작됩니다. 인스트럭션 NOT 는논리연산의결과를반대로합니다. BR 비트 BR 비트는 RLO 가 RLO 변경인스트럭션이전에저장될수있는내부의비트메모리를표시합니다. 이렇게함으로써이후에인터럽트된비트문자열을다시시작할때 RLO 를다시사용할수있습니다. 함수블록이나함수를쓴후 LAD 에서부르려한다면 BR 비트를제공해야합니다. BR 비트는 LAD 상자에대한작동출력 (ENO) 에대응합니다. BR 설정및 SAVE를이용해RLO를이진법결과로저장합니다 ( 레지스터 ). SAVE는신호 리셋 상태를 RLO에서상태비트 BR로전송합니다. SAVE 는모든조건과관계없이실행되며더이상의상태비트에영향을주지않습니다. Page 5

블록호출또는복잡한함수에서의 BR 비트및 ENO LAD STL 네트워크 1: 순환프로그램 I0.0 MW10 EN FC23 Step bit Step memory display M10.0 ENO ( ) QW12 네트워크 1: 순환프로그램 A I 0.0 JNB _001 CALL FC 21 Step bit memory Step display _001:U BIE = M 10.0 :=MW10 :=AW12 네트워크 2:??? I0.0 EN MUL_I 345 IN1 OUT 987 IN2 M10.0 ENO ( ) MW100 네트워크 2:??? L 345 L 987 +I T MW 100 UN OV SAVE CLR A BR = M 10.0 File: PRO2_01e.6 Information and EN = 작동입력 사용자는모든상자에있으며래더도표에서블록이나복잡한함수를호출하기위해사용되는작동입력 EN 을이용해호출을변경할수있습니다 (STEP 에서의조건적호출에대응 ). EN 이비활성되면 ( 예 : 신호상태가 0 ) 상자는그기능을실행하지않습니다. 따라서작동출력 ENO 도비활성됩니다. EN 이활성화되면 ( 예 : 신호상태가 1 ) 상자의기능이실행됩니다. ENO = 호출된블록이나복잡한함수는작동출력 ENO를이용해프로세싱이 작동출력 오류없이실행되었는지여부를알려줄수있습니다. 사용자는상태워드의 BR 비트를사용하여오류를저장할수있습니다. BR 비트는우선순위클래스를시작할때자동적으로 1 로설정됩니다. 따라서 BR 비트는시스템이아니라블록에의해서만변경됩니다. 프로세싱중에오류가발생하면사용자는 BR 비트를리셋함으로써이오류상태를 저장 할수있습니다. LAD/FBD 에서상자를프로세싱한후 BR 비트는작동파라미터 ENO 로복사됩니다. 따라서 STEP7 에서는오류상태전달을위한단일메커니즘을사용할수있습니다. 예를들어이런방식으로호출된블록은프로세싱이오류없이실행되었는지여부를호출블록에게알려줄수있습니다. 참고 EN 파라미터는참된입력파라미터가아닙니다. 만약 EN 파라미터가할당되면상자프로세싱뒤의레이블로가는한개의조건적점프를가지는 2 개의인스트럭션이자동적으로발생됩니다. 이와마찬가지로 ENO 는참된출력파라미터가아닙니다. 만약 ENO 가할당되면 BR 비트를현재의출력파라미터로복사하기위한 2 개의인스트럭션이자동으로발생됩니다. Page 6

상태비트에의존적인점프함수 JU 레이블 1) JC 레이블 1) JCN 레이블 1) JCB 레이블 1) JNB 레이블 1) JBI 레이블 1) JBNI 레이블 1) JO 레이블 1) JOS 레이블 1) 무조건점프 "RLO" 비트 =1이면점프 "RLO" 비트 = 0이면점프 "RLO" 비트 = 1이면점프그리고 RLO 저장 "RLO" 비트 = 0이면점프그리고 RLO 저장 "BR" 비트 = 1이면점프 "BR" 비트 = 0이면점프상태워드에서 "OV" 비트 =1이면점프상태워드에서 "OS" 비트 =1이면점프 1) 레이블은 4 자의영숫자로구성될수있습니다. File: PRO2_01e.7 Information and 점프함수 무조건적점프 사용자는논리제어함수를사용하여프로그램의선형프로세싱을인터럽트하고블록의또다른위치에서계속할수있습니다. 프로그램분기는조건에관계없이또는특정조건이만족될때에만실행될수있습니다. JU 점프함수는항상조건에관계없이실행됩니다. JU 는프로그램의선형프로세싱을인터럽트하고점프레이블에서다시시작합니다. JU 는점프에서나대상에서상태비트에영향을주지않습니다. RLO와 BR을가진 프로그램분기는 RLO와 BR 비트의상태에따라발생합니다. 또한 RLO 비트 점프함수 검사중에 BR 비트에서동시에이를저장할가능성이있습니다. RLO 에의존적인점프함수 (JC, JCN) 는조건이충족되었을때는물론조건이충족되지않았을때에도상태비트 STA 와 RLO 를 1 로, 비트 OR 과 /FC 를 0 으로설정합니다. RLO 저장 점프함수 (JCB, JNB) 는모든경우에 RLO 비트상태를 BR 비트에저장합니다. 나머지비트 STA, RLO, PLO, OR, /FC 는 RLO 를저장하지않는점프함수와같은방식으로처리됩니다. BR 비트에의존적인점프함수 (JBI, JNBI) 는조건이충족되었을때는물론조건이충족되지않았을때에도 STA 비트를설정하며상태비트 STA 를 1 로비트 OR 과 /FC 를 0 으로설정합니다. RLO 와 BR 비트는변경되지않습니다. Page 7

조건코드에의존적인점프함수 JZ 레이블 1) JN 레이블 1) JP 레이블 1) JM 레이블 1) JPZ 레이블 1) JMZ 레이블 1) JUO 레이블 1) 상태워드에서비트 "CC1"=0 이고 "CC0"=0 이면점프 ( 결과 = 0) 상태워드에서비트 "CC1 가 "CC0 와같지않으면점프 ( 결과 <> 0) 상태워드에서비트 "CC1"=1 이고 "CC0"=0 이면점프 ( 결과 > 0) 상태워드에서비트 "CC1"=0 이고 "CC0"=1 이면점프 ( 결과 < 0) JZ 점프와 JP 점프를결합 ( 결과 >= 0) JM 점프와 JZ 점프를결합 ( 결과 <= 0) 명령되지않은 잘못된 REAL 숫자이거나 0 으로나누기면점프 1) 레이블은 4 자의영숫자로구성될수있습니다. File: PRO2_01e.8 Information and OV와 OS를가진점프함수 JO와 JOS 점프는과잉이발생할때실행됩니다. 여러개의연속적으로실행된인스트럭션을가진문자열계산에서 OV 비트의평가가모든수치연산함수이후에이루어져야합니다. 과잉의결과가허용된숫자범위에있는경우그과잉이후의수치연산인스트럭션은 OV 비트를리셋합니다. 일어날수있는숫자범위과잉을문자열계산이끝날때평가하기위해 OS 비트를검사합니다. OS 비트는 JOS 점프뿐만아니라블록호출과블록엔드에의해리셋됩니다. 상태워드의나머지비트는점프함수 JO와 JOS로변경되지않습니다. CC0과 CC1을가진 프로그램함수는상태비트 CC0와 CC1에의존해서발생할수있습니다. 따라서 점프함수 예를들어계산의결과가양수인지 0인지음수인지를검사할수있습니다. 상태비트 CC0 와 CC1 에의존하는점프함수는어떤상태비트도변경하지않습니다. 논리연산의결과를점프와함께 취해서 사용자프로그램에서후속논리연산을위해사용할수있습니다 (/FC 에는변경없음 ). 보기 정수 2개의빼기와후속평가 L MW2 L MW8 -I JZ ZERO // 결과가 "0 이면점프발생 // 결과가 "0" 이아닌경우의인스트럭션 ZERO: NOP 0 // 결과가 0 일때의반응을위한인스트럭션 Page 8

점프분산자의프로그래밍 레이블 : 레이블 _1: 레이블 _n: 작동모드 점프번호로드 JL 레이블 JU 레이블 _1. JU 레이블 _n ACCU1 > n 인인스트럭션 ACCU1 = 1 인인스트럭션. ACCU1 = 1 인인스트럭션 보기 : 3개항목을가진점프분산자 L Recipe no// 레시피를로드하지않음 JL OVER // 3개항목을가진점프분산자 JU Rec0 // 레시피 0번으로점프 (ACCU1 = 0) JU Rec1 // 레시피 1번으로점프 (ACCU1 = 1) JU Rec2 // 레시피 2번으로점프 (ACCU1 = 2) OVER:JU ERROR // ACCU1 > 2면점프... Rec0: L DBW4... Rec1: L DBW6... Rec2: L DBW8... ERROR: CLR... File: PRO2_01e.9 Information and 점프분산자 참고 점프분산자 JL 은점프번호에의존하는블록에서프로그램부분으로대상이지정된점프를허용합니다. JL 인스트럭션은 JU 점프함수목록과함께작동합니다. 이목록은 JL 바로뒤에나오며최고 255 개의입력을포함할수있습니다. JL 의경우목록의끝, 즉목록후의첫번째인스트럭션을가리키는점프레이블이있습니다. JU 인스트럭션만이 JL < 점프레이블 > 과 < 점프레이블 >: < 인스트럭션 > 사이에올수있습니다. 0 이 ACCU1-L-L 에위치하면첫번째인스트럭션이실행되고 1 이위치하면두번째인스트럭션이실행됩니다. 숫자가목록길이보다크면 JL 은목록의끝으로분기합니다. 인스트럭션 JL 은모든조건에관계없이실행되며 JL 의경우상태비트를변경하지않습니다. 점프는전체블록길이이내에서 ( 심지어네트워크경계를넘어서 ) 발생할수있습니다. 이런이유로점프레이블의이름은한블록내에서고유해야합니다. 점프거리가점프레이블에의해서점프에할당될수있기때문에한프로그램블록내에서의점프만이가능합니다. 점프레이블의길이는영숫자 4 자로제한되어있으며따라서첫번째글자는문자여야합니다. 점프레이블에서는대문자와소문자를가립니다. 인스트럭션은. 으로구분되어점프레이블후에반드시와야만합니다. 최대점프거리는프로그램코드의 -32768 워드또는 +32767 워드입니다. 점프할수있는실제최대명령문숫자는프로그램에사용되는명령문의혼합에달려있습니다 ( 한단어, 두단어, 세단어명령문 ). Page 9

루프인스트럭션의프로그래밍 레이블 : 작동모드 루프카운터초기화 루프카운터로전송 여러번실행될코드절 보기 : 4 개의스캔을가진루프인스트럭션 L +4 // 루프카운터로드 다음 : T MW10 // 루프의시작. // 코드. // 코드 ACCU1 에서루프카운터로드. // 코드 L MW10 // 다시루프카운터로드 예 루프 ( 점감 ACCU1 ACCU1 <> 0?) 아니오 계속 LOOP NEXT // 루프카운터가 -1 이면 // NEXT 점프로점프 // Accu 1> 0 이면레이블 File: PRO2_01e.10 Information and 루프인스트럭션루프인스트럭션 LOOP 는단순화된루프프로그래밍을허용합니다. 루프인스트럭션을프로그래밍하기위해실행될루프스캔의원하는회수를 ACCU1-L 에로드합니다. LOOP 는 ACCU1 의오른쪽워드를 0 에서 65535 까지의부호없는 16 비트숫자로해석합니다. LOOP 인스트럭션을실행할때마다 ACCU1-L 의값은 1 만큼감소합니다. 이후에값은 0 과비교됩니다. 값이 0 과같지않으면 LOOP 인스트럭션에서지정된점프레이블로점프가발생합니다. 값이 0 이면점프는발생하지않고대신에바로뒤에오는인스트럭션이처리됩니다. 참고 루프카운터가 0 으로초기화되면안됩니다. 0 으로초기화되면루프가 65535 번실행됩니다. Page 10

블록엔드에대한인스트럭션 BE 블록엔드 BEU 무조건적블록엔드 ( 한블록이내 ) BEC 조건적블록엔드 (RLO 에의존 ) (RET) LAD 디스플레이에서 RET FBD 디스플레이에서 File: PRO2_01e.11 Information and 블록엔드 논리연산의결과에의존적인 BEC나조건에관계없는 BE로블록의프로세싱을 함수 끝낼수있습니다. BE BE 인스트럭션은현재의프로그램블록에서프로그램프로세싱을끝냅니다. BE 는항상블록의마지막인스트럭션입니다. BE 는블록이저장될때 PG 에의해자동적으로만들어집니다. 따라서 BE 는별도로입력될필요가없습니다. 운영시스템은호출블록으로다시분기해서프로그램호출이후첫번째인스트럭션으로프로그램프로세싱을다시시작합니다. 현재예약된로컬데이터영역은다시한번사용가능해집니다. BEU BEC BEU 인스트럭션은 BE 처럼현재의프로그램블록에서프로그램프로세싱을끝냅니다. BE 인스트럭션과는달리사용자는한블록이내에서반복하여 BEU 를프로그램할수있습니다. BEU 이후의프로그램부분은점프함수로점프될때에만처리됩니다. 블록은 RLO 비트값에따라끝납니다. RLO=1 이면프로그램프로세싱은현재의블록에서끝나프로그램호출이후첫번째인스트럭션으로호출블록에서다시시작됩니다. 현재예약된로컬데이터영역은다시한번사용가능해집니다. RLO=0 이면 BEC 인스트럭션은실행되지않습니다. CPU 는 RLO 를 1 로설정하며 BEC 이후의인스트럭션을처리합니다. Page 11

연습 1.1: 빼기연산후점프 푸시휠스위치 1 2 3 4 시뮬레이터에서스위치토글 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 DINT 로변환 BTD 2 15 2 7 BTD DINT로변환 2 0 -D 양수결과 (>=0) 음수결과 [JM 레이블 ] 디스플레이삭제 디스플레이에 IW 0 값쓰기 데케이드스위치 : 토글스위치 : S7-300: IW4 (IW2, 32-Bit Mod.) 디스플레이 : S7-300: QW12 (QW6, 32-Bit Mod.) S7-400: IW30 S7-400: QW38 S7-300: IW0 (IW0) S7-400: IW28 File: PRO2_01e.12 Information and 개요 연습목적 문제정의 점프함수에의해프로그램의선형프로세싱은인터럽트되어또다른위치에서계속될수있습니다. 특히그런점프는조건 ( 결과 ) 에의존하여발생합니다. 빼기의결과에따라실행되는점프함수의프로그래밍에익숙해지기 프로젝트 PRO2 를만든후연습이란이름을붙여 S7 프로그램컨테이너를만들고다음기능을가진 FC 11 을만듭니다. 1. 데케이드스위치와토글스위치의입력워드를누산기의 BCD 코드값으로로드합니다. 2. 얻어진값을 DINT 로전환합니다. 전환을위해 BTD 명령 (BCD_TO_DINT) 을사용합니다. 이명령을사용하면읽은값이양의 4 자리십진수로해석됩니다. 3. 데케이드스위치의 값 에서토글스위치의 값 을뺍니다. 4 그결과에따라다음행동을취합니다. 결과 < 0: 시뮬레이터의디스플레이를삭제합니다. 즉, 디스플레이로 0 을전송합니다. 결과 >= 0: 데케이드스위치의 BCD 코드값을디스플레이에출력합니다. 참고 : 사례구분을위해점프명령 "JM [Label] 을사용합니다. 숫자설정중의전환오류를숨기기위해인스트럭션 NOP 0 과함께 OB121 을프로그램합니다. 5. OB1 에서 FC11 을호출하여 S7-CPU 에서블록 (OB1, OB121, FC11) 을다운로드합니다. 6. 프로그램을테스트합니다. Page 12

연습 1.2: 곱하기연산후점프 푸시휠스위치 1 2 3 4 시뮬레이터의토글스위치 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 DINT 로변환 BTD 2 15 2 7 BTD DINT로변환 2 0 *I 과잉없음 과잉 [JO 레이블 ] 디스플레이삭제 DTB 결과를 BCD 로변환 결과를디스플레이에출력 데케이드스위치 : 토글스위치 : S7-300: IW4 (IW2, 32-Bit Mod.) 디스플레이 : S7-300: QW12 (QW6, 32-Bit Mod.) S7-400: IW30 S7-400: QW38 S7-300: IW0 (IW0) S7-400: IW28 File: PRO2_01e.13 Information and 연습목적 곱하기결과에따라실행되는점프함수의프로그래밍에익숙해지기 문제정의다음기능을가진 FC 12 를만듭니다. 1. 데케이드스위치와토글스위치의입력워드를누산기의 BCD 코드값 ( 부호없이 ) 으로로드합니다. 2. 얻어진값을 DINT 로전환합니다. 전환을위해 BTD 명령 (BCD_TO_DINT) 을사용합니다. 이명령을사용하면읽은값이양의 4 자리십진수로해석됩니다. 3. 16 비트곱하기를실행합니다. 4. 과잉 이되었는지계산결과를검사하고다음행동을취합니다. 과잉 : 디스플레이를삭제합니다. 과잉없음 : 대응하는양의 BCD 숫자로결과를전환하고그결과 ( 적어도 4 자리수 ) 를디스플레이에출력합니다. 참고 : 점프명령 "JO [Label] 를사용하여 과잉 여부를테스트합니다. 자릿수설정중의전환오류를숨기기위해인스트럭션 NOP 0 과함께 OB121 을프로그램합니다. 5. OB1 에서 FC12 를불러 S7-CPU 에서프로그램 (OB1,OB121, FC12) 을다운로드합니다. 6. 프로그램을테스트합니다. Page 13

연습 1.3: 점프분산자프로그래밍 함수 : 푸시휠스위치 1 [JL 레이블 ] 1 2 3 4 5 Motor_let run to the right Motor_let run to the left Motor off Horn on Horn off 레이블 : Jump To List를통해점프 어드레스 : S7-300 (16-Bit) S7-300 (32-Bit) S7-400 Motor_right: Q20.5 Q8.5 Q40.5 Motor_left: Q20.6 Q8.6 Q40.6 Horn: Q20.7 Q8.7 Q40.7 File: PRO2_01e.14 Information and 연습목적 목록을이용해점프의사용에익숙해지기 문제정의다음기능을가진 FC 13 을만듭니다. 1 에서 5 까지중한숫자가 INT 데이터종류에서입력파라미터 Select 를통해전달될수있습니다. 전달된숫자에따라다음행동이실행됩니다. 1: 컨베이어벨트가최종어셈블리로이동합니다. 2: 컨베이어벨트가반대방향으로이동합니다. 3: 컨베이어벨트가중지합니다. 4: 경적이켜집니다. 5: 경적이꺼집니다. 다른숫자는모두오류로해석됩니다. 즉, 출력파라미터 ENO 는 FALSE 로설정됩니다. 절차 1. 위에설명된기능을가진 FC13 을만듭니다. 목록으로점프를실행할때오직절대점프만이사용될수있음에주의합니다. 2. 128.0 에의존하는 OB1 에서 FC13 을호출합니다. 누산기의데케이드스위치를이용해서전달될입력파라미터 Select 값을조정하며, 이값은상승에지로 128.0 에적용됩니다. 4. 오류가발생하면, 즉 Select 의값이 5 보다크거나 1 보다작으면 Q36.0 이파라미터 ENO 를통해 OB1 에설정됩니다. 5. OB1 과 FC13 을다운로드하고프로그램을테스트합니다. Page 14