pro1 11e [읽기 전용]

27
Training Center for Automation and Drives ST-7PRO1 기능 및 기능 블록 페이지 1 목차 페이지 소개 ...........………… .......................................................................................................................... 2 임시 변수 ………… .......................................................................................................................... 3 로컬 데이터 스택 크기 ...… ............................................................................................................... 4 로컬 데이터 스택에 있는 블록의 바이트 요구 사항 .........…… ........................................................... 5 로컬 데이터 스택의 전체 사용 ..............................................……………… ....................................... 6 연습: 임시 변수의 사용 ......………… ..................................……………… ........................................ 7 프로세스에서의 문제를 알리는 메시지 디스플레이의 예 .... ……………… ........................................ 8 파라미터 할당 가능 블록 .................................................................... …… ........................................ 9 형식 파라미터 선언 ......................................................…………………… ....................................... 10 파라미터 할당 가능 블록 편집 ................................................…………… ........................................ 11 파라미터 할당 가능 블록 호출 .................................................. …………… ...................................... 12 블록 호출에 따른 EN/ENO 파라미터 사용 ..… … … ..................... ………… ....................................... 13 연습: 파라미터 할당 가능 FC 블록 작성 ..................................................………………… ................ 14 연습: 파라미터 할당 가능 FC 블록 호출 ......................................................……………… ............... 15 기능 블록(FB) ................................................................................................................................... 16 메시지 디스플레이를 위한 기능 블록 .... …… ................................................................................ 17 인스턴스 데이터 블록 생성 .........................................................................……………… ................ 18 멀티플 인스턴스 모델 ................................................................................ ………………… ............... 19 나중에 블록 파라미터 삽입/ 삭제 .... …………… .......................................... ……………… ................. 20 수정된 블록을 호출할 때의 변경 .... …… .......................................................……………… ............... 21 연습: 기능 블록 편집 ..................................................................................……………… ................. 22 기능 블록 호출 및 테스트 ............................................................................……………… ................ 23 소스 프로그램을 사용한 FC에서 FB로의 변환 (1) .........................................................………… .... 24 소스 프로그램을 사용한 FC에서 FB로의 변환 (2) .........................................................………… .... 25 연습: 변수 유형 인식 ...................................................................................... ………………………… 26 요약: 블록 호출 .... ………………… ...........................................................................………… .......... 27 Date: 2002-02-19 File: PRO1_11E.1 SIMATIC S7 Siemens AG 1999. All rights reserved. Information and Training Center Knowledge for Automation 기능 및 기능 블록

Upload: others

Post on 02-Jun-2022

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 1

목차 페이지소개 ...........… … … … .......................................................................................................................... 2임시 변수 … … … … .......................................................................................................................... 3로컬 데이터 스택 크기 ...… ............................................................................................................... 4로컬 데이터 스택에 있는 블록의 바이트 요구 사항 .........… … ........................................................... 5로컬 데이터 스택의 전체 사용 ..............................................… … … … … … ....................................... 6연습: 임시 변수의 사용 ......… … … … ..................................… … … … … … ........................................ 7프로세스에서의 문제를 알리는 메시지 디스플레이의 예 ....… … … … … … ........................................ 8파라미터 할당 가능 블록 ....................................................................… … ........................................ 9형식 파라미터 선언 ......................................................… … … … … … … … ....................................... 10파라미터 할당 가능 블록 편집 ................................................… … … … … ........................................ 11파라미터 할당 가능 블록 호출 ..................................................… … … … … ...................................... 12블록 호출에 따른 EN/ENO 파라미터 사용 ..… … … .....................… … … … ....................................... 13연습: 파라미터 할당 가능 FC 블록 작성 ..................................................… … … … … … … ................ 14연습: 파라미터 할당 가능 FC 블록 호출 ......................................................… … … … … … ............... 15기능 블록(FB) ................................................................................................................................... 16메시지 디스플레이를 위한 기능 블록 ....… … ................................................................… ................ 17인스턴스 데이터 블록 생성 .........................................................................… … … … … … ................ 18멀티플 인스턴스 모델 ................................................................................… … … … … … … ............... 19나중에 블록 파라미터 삽입/삭제 ....… … … … … ..........................................… … … … … … ................. 20수정된 블록을 호출할 때의 변경 ....… … .......................................................… … … … … … ............... 21연습: 기능 블록 편집 ..................................................................................… … … … … … ................. 22기능 블록 호출 및 테스트 ............................................................................… … … … … … ................ 23소스 프로그램을 사용한 FC에서 FB로의 변환 (1) .........................................................… … … … .... 24소스 프로그램을 사용한 FC에서 FB로의 변환 (2) .........................................................… … … … .... 25연습: 변수 유형 인식 ......................................................................................… … … … … … … … … … 26요약: 블록 호출 ....… … … … … … … ...........................................................................… … … … .......... 27

Date: 2002-02-19File: PRO1_11E.1

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

기능 및 기능 블록

Page 2: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 2

Date: 2002-02-19File: PRO1_11E.2

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

소개

임시 변수

•관련 블록이 실행된 후에삭제됨

•L 스택에 있는 임시 저장소

•OB / FC / FB에서 사용 가능

정적 변수

•블록이 실행된 후에도보관됨

•DB에 있는 영구 저장소

•FB에서만 사용 가능

로컬 변수 / 데이터(하나의 블록에서만 유효)

전역 변수 / 데이터

(전체 프로그램에서 유효)

•PII / PIQ

•I/ O

• M / T / C

•DB areas

기호절대

액세스

일반 지금까지 bottling 플랜트의 입력 및 출력은 실질 파라미터로 어드레스되었으며, 사용자는 파라미터를 블록에 할당할 수가 없었습니다.이 절차는 예를 들어, 특수 머신에 한번만 사용된 프로그램을 만드는 데 선택할수 있습니다.

보다 큰 시스템에서 자주 반복되는 기능에 대해서는 범용적으로 사용할 수 있는파라미터 할당 가능 블록(FC, FB)을 작성합니다. 이 블록에는 블록이 호출될 때실질 파라미터가 할당되는 형식적 입력 및 출력 파라미터가 있습니다.

하드웨어에 대한 블록 기능의 조정은 블록이 호출될 때 파라미터 할당과 함께일어납니다. 이때 블록의 “내부”는 변경되지 않습니다.

로컬 변수 지금까지는 전역 변수(비트 메모리 및 데이터 블록)를 사용해서 생산 데이터를저장했습니다. 이 장에서는 로컬 변수에 데이터를 저장하는 방법에 대해 자세히설명합니다.

임시 변수 임시 변수는 블록이 실행되는 동안에만 저장되는 변수로서, 모든 블록(OB, FC, FB)에서 사용할 수 있습니다.

정적 변수 데이터가 블록이 실행된 후에도 남아 있다면 이것은 정적 변수에 저장된것입니다.정적 변수는 기능 블록에서만 사용할 수 있습니다.

Page 3: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 3

일반 임시 변수는 모든 블록(OB, FC, FB)에서 사용할 수 있습니다. 이것은 블록이실행되는 동안 임시로 정보를 저장하는 데 사용됩니다. 블록을 종료하면 데이터가손실됩니다.이 데이터는 L 스택(로컬 데이터 스택)에 저장됩니다. 이것은 CPU에서 분리된메모리 영역입니다.

선언 블록의 선언 테이블에서 이 변수를 정의합니다. “temp“라인에 변수 이름과 관련된데이터 유형을 입력합니다.

여기서 시작 값을 미리 정의할 수는 없습니다.블록을 저장하고 나면 L 스택에 있는 메모리 위치가 “Address“열에 표시됩니다.

액세스 Network 1에 있는 것은 임시 변수에 대한 기호 액세스의 예입니다.빼기의 결과는 임시 변수 “result“에 저장됩니다.절대 액세스(T LW0)를 할 수도 있습니다. 그러나 절대 액세스를 사용하면프로그램을 읽기 힘들기 때문에 사용을 피하도록 해야 합니다.

참고 특수 문자 #으로 시작하는 변수 이름은 선언 테이블에서 선언된 블록 안에서만# 유효한 로컬 변수입니다. 프로그램 편집기는 자동으로 이 특수 문자를

입력합니다.

Date: 2002-02-19File: PRO1_11E.3

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

임시 변수

Page 4: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 4

로컬 데이터 스택 로컬 데이터 스택(L 스택)은 블록의 임시 변수(SIMATIC S5에 있는 스크래치패드 대체)를 포함하는 메모리 영역입니다.

로컬 데이터 스택 운영 체제가 OB를 호출할 때 256 바이트의 L 스택 영역이 OB 및 OB가 호출한크기 블록이 실행되는 동안 열려 있습니다.

모든 우선순위 클래스에는 256 바이트가 할당됩니다.313..316 CPU의 L 스택은 전체 1536 바이트를 갖습니다(1.5kByte).

우선순위 클래스 S7-300에는 전체 8개 우선순위 클래스가 있습니다. 그러나 동시에 6개의우선순위 클래스만 활성화할 수 있습니다. 예를 들어, OB 100(우선순위 클래스27)이 활성화되면 OB 1(우선순위 클래스 1)은 활성화될 수 없습니다. 게다가시동 프로그램에 오류가 발생하면(즉, OB 100이 중단되면) 비동기 에러를 위한OB 80~87 에러가 우선순위 클래스 28을 갖습니다. 자세한 내용은“OB(Organization Block)“장을 참고하십시오.

S7-400 S7-400 CPU를 사용하면 각 우선순위 클래스에 대한 로컬 데이터 스택의 크기를결정할 수 있습니다(툴: HW Config.) 필요 없는 우선순위 클래스는 선택을 해제할 수 있습니다. 이렇게 하면 다른우선순위 클래스에서 더 많은 로컬 데이터를 사용할 수 있습니다.

Date: 2002-02-19File: PRO1_11E.4

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

실 행

로컬 데이터 스택 크기

For S7-300:

L 스택 크기우선순위 클래스

256 bytes1

27

전체 크기:

1.5 Kbyte(CPU 313..316)

전체 크기:

1.5 Kbyte(CPU 313..316)

시동(한번 실행)

주기적 실행

256 bytes

256 bytes

256 bytes12

3

2시간 제어 실행

타임 오브 데이 인터럽트

타임 딜레이 인터럽트

주기적 인터럽트

스캔 주기에 에러 처리

256 bytes16

28

26256 bytes

이벤트 방식 실행

하드웨어 인터럽트

시동할 때 에러 처리

Page 5: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 5

바이트 요구사항 블록 등록 정보에 가면 로컬 데이터 스택에 필요한 정확한 블록의 바이트 수를 볼디스플레이 수 있습니다.

활성화 1. SIMATIC Manager에서 마우스 오른쪽 버튼으로 블록을 선택한 다음 -> Object Properties를 선택하거나,

2. SIMATIC Manager에서 마우스 왼쪽 버튼으로 블록을 선택한 후 메뉴 옵션Edit -> Object Properties를 선택합니다.

참고 S7-300에서는 실행 레벨(OB)의 로컬 데이터의 합이 최대 256 바이트입니다. 모든 OB 자체는 항상 20이나 22 바이트를 차지합니다.따라서 FC 또는 FB가 최대 234 바이트를 사용할 수 있습니다.

블록에 로컬 데이터가 256 바이트 이상 정의되면 이 블록은 CPU로 다운로드할수 없습니다. “The block could not be copied(블록을 복사할 수 없습니다)“라는에러 메시지와 함께 전송이 중단됩니다. 이 에러 메시지에는 “Details“버튼이있습니다. 이 버튼을 클릭하면 “Incorrect local data length(로컬 데이터 길이가잘못되었습니다)”라는 설명이 있는 메시지 상자가 나타납니다.

Date: 2002-02-19File: PRO1_11E.5

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

로컬 데이터 스택에 있는 블록의 바이트 요구 사항

rechts

Page 6: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 6

로컬 데이터 스택의 “Reference Data“툴을 사용하여 로컬 데이터 스택에서 전체 프로그램이전체 사용 요구하는 바이트 수를 표시할 수 있습니다. “문제 해결“장에서 이 툴에 대해

자세히 알 수 있습니다.로컬 데이터 스택의 전체 사용 및 호출 경로 마다 필요로 하는 바이트 수는화면에 표시됩니다.

참조 데이터 활성화 SIMATIC Manager에서 블록 폴더를 선택하고 메뉴 옵션 Options -> Reference Data -> Display를 선택합니다.

참고 CPU에서 프로그램이 실행되는 동안 최대 로컬 데이터 수를 초과하면 CPU가Stop 모드로 갑니다. 진단 버퍼에서 에러의 원인으로 “STOP caused by error when allocating local data(로컬 데이터를 할당하는 동안 에러에 의해 STOP이발생했습니다)”가 입력됩니다.

Date: 2002-02-19File: PRO1_11E.6

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

256

Byt

es

이벤트

L 스택의사용

1

OB1

OB 1

1

운 영체 제

로컬 데이터 스택의 전체 사용

FC 2

임시 변수사용

OB1

FC2

FC1

3

3

OB1

FC1

4

4

OB1

FC1

6

6

FC 3

임시 변수사용

OB1

FC3

FC1

5

5

FC 1

임시 변수사용

2

OB1

FC1

2

7

OB1

7

Page 7: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 7

Date: 2002-02-19File: PRO1_11E.7

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

연습: 임시 변수의 사용

임시 변수"Packages„

로 변경

목적 S7 프로그램 “Fill“의 FC 19 블록에서 어떤 비트 메모리도 임시 저장소로사용되지 않습니다. 이 비트 메모리는 임시 변수 “Packages“로 교체됩니다. LAD 또는 FBD에서 이 블록에 대한 프로그램을 작성할 때 디바이더의 출력과코드 컨버터의 입력을 연결할 비트 메모리가 필요합니다. STL(여기서는 비트 메모리가 필요 없음)에서 이 블록에 대한 프로그램을 작성할때도 저장을 위해 임시 변수 “Packages“를 삽입합니다.

과정 • S7 프로그램 "FILL"에서 FC 19 블록을 엽니다. • “Packages“라는 이름으로 임시 변수를 정의하고 선언 테이블에 데이터

유형을 “Integer“로 정의합니다. • 이 임시 변수에 패키지 수를 저장합니다.

• 변경된 프로그램을 다운로드하고 이것을 테스트합니다.

결과 이제 임시 변수의 사용에 대해 배웠습니다.

Page 8: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 8

설명 문제(교란)의 발생은 오퍼레이터 콘솔에 있는 LED로 표시됩니다. 문제(I1.3)가발생하면 LED(Q8.3 또는 Q4.3)가 2Hz로 점멸합니다. 이 문제는 인지 입력 I 1.2에서 탐지됩니다. 문제가 수정되면 LED가 점멸을 멈춥니다. 문제가 지속되면문제가 수정될 때까지 LED는 일정한 등으로 전환합니다.

프로그램 짧은 시간 동안 발생한 문제도 놓치지 않기 위해 주요 집합 플립플롭(M40.0)이사용됩니다. 메시지 시그널의 RLO 에지 탐지도 실행됩니다. RLO 에지 탐지가 실행되지않으면 기존 문제가 인지될 때 이 메모리가 즉시 리셋되기 때문입니다.리포트 메모리가 설정되면(메시지는 아직 인지되지 않음) 상위 AND 논리 연산이LED를 점멸하게 합니다. 이렇게 하면 CPU에서 파라미터를 할당할 때 클럭메모리로 정의된 비트 메모리 M10.3이 게이트됩니다. 하위 AND 논리 연산은 인지되었지만 여전히 남아있는 문제를 위한 일정한 등을실행하는데 사용됩니다.

Date: 2002-02-19File: PRO1_11E.8

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

프로세스에서의 문제를 알리는 메시지 디스플레이의 예

교란

LED

인지

리포트 메모리

에지 메모리 비트

교란 입력

인지

플래시 빈도

교란 입력

디스플레이

RS

&

=

>=1&QS

RP

리포트 메모리

리포트 메모리

솔루션 제안

작업

Page 9: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 9

소개 자주 반복되는 프로그램 섹션에 파라미터 할당 가능 블록을 사용할 수 있습니다. 이 블록은 다음과 같은 장점이 있습니다.• 프로그램을 한번만 작성하면 됩니다.• 블록을 사용자 메모리에 한번만 저장하면 원할 때 몇 번이든 호출할 수

있습니다. • 블록은 형식 파라미터(입력, 출력 또는 입/출력 파라미터)로 프로그래밍될 수

있고 블록이 호출될 때만 “real”어드레스(실질 파라미터)가 부여됩니다.

예제 블록이 실행될 때 어떤 실질 파라미터가 형식 파라미터 “Disturbance input“에할당되었는지 알기 위해 “A Disturbance input“명령을 검사합니다. 블록이호출될 때 I 1.4가 실질 파라미터로서 준비되면 명령문 “A I 1.4“가 실행됩니다.

FC / FB 파라미터 할당 가능 블록은 FC 또는 FB가 될 수 있습니다.

파라미터 할당 가능 예제에서 메시지 디스플레이가 시스템에서 10번 필요합니다. 이것은 파라미터FC20 할당 가능 FC 20 블록으로서 작성된 다음 다른 실질 파라미터로 10번

호출됩니다.

Date: 2002-02-19File: PRO1_11E.9

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

교란입력

리포트메모리

인지

에지메모리비트

디스플레이플래시 빈도

FC 20

호출

파라미터 할당 가능 블록

A I 1.2

R M 40.0

A I 1.3

FP M 40.1

S M 40.0

A M 40.0

A M 10.3

O

ANM 40.0

A I 1.3

= Q 8.3

파라미터할당 불가블록

형식 파라미터

M 40.0

M 40.1I 1.3

I 1.2A 8.3

M 10.3

실질 파라미터

A #Acknowledge

R #Report Memory

U #Disturb. input

FP #Edge mem. bit

S #Report memory

A #Report memory

A #Flashing freq.

O

AN #Reportmemory

A #Disturb. input

= #Display

파라미터 할당 가능 블록

프로그램

Page 10: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 10

Date: 2002-02-19File: PRO1_11E.10

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

형식 파라미터 선언

사용 그래픽 디스플레이

읽기 전용 블록의 왼쪽으로

쓰기 전용 블록의 오른쪽으로

파라미터 유형

입력 파라미터

출력 파라미터

입/출력 파라미터

선언

inoutIn_out 읽기/쓰기 블록의 왼쪽으로

형식 파라미터

FC 20 블록의 선언 테이블

형식 어드레스 파라미터 할당 가능 블록을 위한 프로그램을 작성하기 전에 선언 테이블에 형식파라미터를 정의해야 합니다.

파라미터 유형 그림에 있는 테이블에서 3가지의 가능한 파라미터 유형과 이들의 사용을 볼 수있습니다. 형식 어드레스에 대한 읽기 및 쓰기 액세스 권한이 있으면 입/출력파라미터를 사용하도록 하십시오.

FC20의 예제 그림 아래 부분에서 메시지 디스플레이(이전 페이지 참고)를 위한 선언 테이블을볼 수 있습니다. 리포트 메시지는 쓰기(쿼리) 뿐 아니라 읽기(설정/리셋) 액세스를해야 하기 때문에 입/출력 파라미터로서 정의해야 합니다.

참고 선언 테이블에는 모든 파라미터 유형에 대해 행이 하나밖에 없습니다. 여러 개의입력 파라미터가 필요하다면 첫 번째 행에서 입력이 끝나고 “Return“키를사용해야 합니다. 이렇게 하면 이 파라미터 유형을 위한 추가 행이 만들어집니다. 선언 행을 선택한 후에는 메뉴 옵션 Insert -> Declaration Row -> Before Selection/After Selection을 사용하여 추가 행을 삽입할 수도 있습니다.

주의! 이후에 선언 행을 삽입 또는 삭제하려면(이미 블록을 호출한 후) 블록 호출을업데이트해야 합니다.

Page 11: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 11

Date: 2002-02-19File: PRO1_11E.11

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

파라미터 할당 가능 블록 편집

여기에 파라미터할당 불가 FC와 함께 있었던 것:•절대 어드레싱: I1.3•기호 어드레싱: “End_left"

참고 형식 파라미터의 이름을 대문자로 쓰든 소문자로 쓰든 상관 없습니다. 이름 앞의“#”문자는 PG가 자동으로 삽입합니다. 이것은 이 블록의 변수 선언 테이블에정의한 것이 로컬 변수라는 것을 가리킵니다.LAD/FBD로 프로그램을 작성할 때 이 이름이 한 행에 완전히 표시되지 않을 수도있습니다. 이것은 프로그램 편집기에서 설정을 어떻게 하느냐에 따라다릅니다(Options -> Customize -> “LAD/FBD“tab -> Width of address field).

기호 1. 블록을 편집할 때 기호 이름을 사용하면 편집기가 변수 선언 테이블을탐색합니다. 이 이름이 테이블에 있으면 앞에 #이 있는 기호는 이 프로그램에서 로컬변수로 받아들여 집니다.

2. 이 이름을 로컬 변수로 찾을 수 없다면 편집기가 전역 기호를 위한 기호테이블을 탐색합니다. 이 이름이 기호 테이블에 있으면 이 기호에 인용 부호가 사용되고프로그램에 받아들여 집니다.

3. 같은 기호 이름을 로컬(변수 선언 테이블에) 뿐 아니라 전역으로도(기호테이블에) 지정했다면 편집기는 언제나 로컬 변수를 삽입합니다.

그러나 전역 기호를 사용하고 싶다면 입력할 때 기호 이름에 인용 부호를사용해야 합니다.

Page 12: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 12

Date: 2002-02-19File: PRO1_11E.12

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

파라미터 할당 가능 블록 호출

Network 3: 첫번째 호출

Network 4: 두 번째 호출

교란 입력

인지

플래시 빈도

리포트 메모리

에지 메모리 비트

디스플레이

M40.1

“위치에러"

ENO

EN

“End left"

....

“Acknow.button"

M10.3

M40.0

FC20

교란 입력

인지

플래시 빈도

리포트 메모리

에지 메모리 비트

디스플레이

M40.3

Q9.4

ENO

EN

“End right"

A8.1

“Acknow.button"

M10.3

M40.2

FC20

기호

절대

어드레스

기호 로컬 기호 --> 형식 파라미터

기호 테이블

전역 기호

호출 LAD/FBD에서는 “Program Elements“브라우저에서 호출을 선택할 수 있습니다. 블록의 입력, 출력 및 입/출력 파라미터에 물음표(??.?)가 표시됩니다. 여기에원하는 실질 파라미터를 삽입합니다.

참고 파라미터 할당 가능 FC 블록을 호출할 때는 모든 블록 파라미터를 할당해야합니다(EN 및 ENO는 제외).

Page 13: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 13

표준 FC 표준 FC의 실행을 위한 다음과 같은 규칙이 있습니다.• EN=0이면 이 블록은 실행되지 않고 ENO도 0입니다. • EN=1이면 이 블록이 실행되고 에러 없이 실행될 경우 ENO도 1입니다.

블록이 실행되는 동안 에러가 발생하면 ENO는 0이 됩니다.

사용자 FC 사용자 블록이 LAD/FBD에서 호출되고 파라미터 EN 및 ENO가 추가되면 사용자블록이 LAD, FBD 또는 STL에서 작성되었는지는 중요하지 않습니다. 따라서RLO를 전달할 수 있습니다.STL에는 EN/ENO가 없지만 이들을 에뮬레이션할 수 있습니다.

프로그래밍 언어와 상관 없이 에러 평가를 프로그래밍해야 합니다.

상호 연결 LAD/FBD에서는 여러 상자가 차례로 함께 그룹화되고 EN / ENO와 논리적으로링크됩니다.

Date: 2002-02-19File: PRO1_11E.13

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

LAD/FBD STL

블록 호출에 따른 EN/ENO 파라미터 사용

CALL FC 1 NOP 0

예제

?? . ?

FC 1

EN ENO

FC 2

EN ENO

FC 3

EN ENO =

FC 1

EN ENO?? . ?무조건 호출

A I 0.1 JNB _001 CALL FC 1

_001: A BR = Q 9.0

FC 1EN ENOI 0.1 =

Q 9.0

조건 호출

Page 14: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 14

작업 메시지 디스플레이를 위한 프로그램을 파라미터 할당 가능 블록으로작성합니다. 위 그림에서 입력 및 출력 파라미터가 있는 선언 테이블과프로그램의 시작 부분을 볼 수 있습니다.

과정 • S7 프로그램 "My Program“에 FC 20 블록을 삽입합니다.• FC 20에 프로그램을 작성합니다.• FC 20을 저장합니다.

Date: 2002-02-19File: PRO1_11E.14

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

FC 20 블록의 선언 테이블

연습: 파라미터 할당 가능 FC 블록 작성

파라미터할당 불가블록

파라미터 할당 가능FC 20 블록

A I 1.2R M 40.0A I 1.3FP M 40.1S M 40.0A M 40.0A M 10.3OAN M 40.0A I 1.3= Q 9.3(Q5.3)

A #AcknowledgeR #Report memoryA #Disturb. ...::::::::

2.

1.

Page 15: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 15

작업 OB 1의 FC 20을 두 번 호출하고(다른 절대 어드레스로), 이 프로그램의 기능을테스트합니다.

과정 • S7 프로그램 "My Program“으로부터 OB 1에 두개의 네트워크를 삽입합니다.• 그림에서처럼 FC 20에 대한 호출을 두개 만듭니다.• FC20 및 OB 1 블록을 다운로드합니다.• 이 기능을 테스트합니다.

참고: HW Config 동안 클럭 메모리 바이트의 파라미터 할당에 MB10을사용했습니다. 이 동안 메모리 리셋을 실행했다면 HW 구성을 다시다운로드하여 M10.3을 점멸하게 해야 합니다.

Date: 2002-02-19File: PRO1_11E.15

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

연습: 파라미터 할당 가능 FC 블록 호출

교란 입력

리포트 메모리

인지

에지 메모리 비트디스플레이

플래시 빈도첫 번째 호출에서FC20의 파라미터 할당

M 40.0

M 40.1I 1.3

I 1.2 Q 9.3 (Q 5.3)

M 10.3

FC 20

교란 입력

리포트 메모리

인지

에지 메모리 비트디스플레이

플래시 빈도M 40.2

M 40.3I 1.4

I 1.2 Q 9.4 (Q 5.4)

M 10.3

FC 20

두 번째 호출에서FC20의 파라미터 할당

Page 16: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 16

FB의 특수 기능 기능(FC)과는 달리 기능 블록(FB)에는 (리콜) 메모리가 있습니다. 따라서 로컬데이터 블록이 소위 인스턴스 데이터 블록이라고 하는 기능 블록에 할당됩니다. FB를 호출할 때는 자동으로 열리는 인스턴스 DB의 수도 지정해야 합니다. 인스턴스 DB는 정적 변수를 저장하는 데 사용하며, 이러한 로컬 변수는 자신의선언 테이블에서 선언된 FB에서만 사용할 수 있습니다. 블록이 종료되더라도 이변수는 보관됩니다.

파라미터 기능 블록을 호출하면 실질 파라미터의 값이 인스턴스 데이터 블록에저장됩니다.블록 호출에서 형식 파라미터에 실질 파라미터가 할당되지 않으면 이파라미터를 위해 인스턴스 DB에 저장되었던 마지막 값이 프로그램 실행에사용됩니다.모든 FB 호출로 다른 실질 파라미터를 할당할 수 있습니다. 기능 블록이 종료되면 데이터 블록에 있는 데이터는 보관됩니다.

FB 장점 • FC를 위한 프로그램을 쓸 때는 빈 비트 메모리 어드레스 영역 또는 데이터영역을 찾아서 이용자가 스스로 유지 관리해야 합니다. 한편 FB의 정적변수는 STEP 7 소프트웨어에 의해 유지관리됩니다.

• 정적 변수를 사용할 때는 비트 메모리 어드레스 영역 또는 데이터 영역을 두번 지정하는 위험을 피해야 합니다.

• FC 20의 형식 파라미터 “Report memory“및 “Edge memory marker“대신FB에서는 정적 변수 “Report memory“및 “Edge memory marker“를사용합니다. 이렇게 하면 두개의 형식 파라미터가 생략되기 때문에 블록호출이 더 간단해 집니다.

Date: 2002-02-19File: PRO1_11E.16

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

기능 블록 (FB)

FB 2

EN

교란 입력

인지 디스플레이

플래시 빈도 ENO

DB 2

OB 1

기능 블록의 선언 테이블

Page 17: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 17

메시지 디스플레이 앞의 연습에서 메시지를 표시하기 위해(문제를 나타내기 위해) 파라미터 할당가능 FC 20 블록을 만들었습니다. FC20에서 메시지 시그널 및 RLO 에지 탐지를 저장하기 위해 사용했던 비트메모리 대신 FB에서는 정적 변수라는 것을 사용할 수 있습니다. 이 변수는 FB를참조하는 인스턴스 DB에 저장됩니다.

인스턴스 DB 구조 DB가 생성되고 FB를 참조할 때 STEP7은 기능 블록을 위해 로컬 선언 테이블에지정된 구조를 사용하여 데이터 블록의 데이터 구조를 작성합니다. DB를저장하고 나면 데이터 블록이 작성되고 이것을 다시 인스턴스 DB로 사용할 수있습니다.

Date: 2002-02-19File: PRO1_11E.17

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

메시지 디스플레이를 위한 기능 블록

기능 블록의선언 테이블

인스턴스데이터 블록

Page 18: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 18

인스턴스 DB 생성 새로운 인스턴스 DB를 만드는 방법은 다음과 같은 두 가지가 있습니다. • FB를 호출할 때는 FB와 같이 작동할 인스턴스 DB를 지정합니다. 다음과

같은 메시지가 나타납니다. "Instance data block DB x does not exist. Do you want to generate it?(인스턴스 데이터 블록 DB x가 없습니다. 이것을 만드시겠습니까?)".

• 새로운 DB를 작성할 때는 옵션 “Data block referencing a function block“을선택합니다.

참고 하나의 인스턴스 DB 는 하나의 FB만을 참조할 수 있습니다. 그러나 한 FB는호출될 때마다 다른 인스턴스 DB에 의해 참조될 수 있습니다.FB를 수정할 때는 (파라미터 또는 정적 변수를 추가하여) 인스턴스 DB도 다시만들어야 합니다.

Date: 2002-02-19File: PRO1_11E.18

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

인스턴스 데이터 블록 생성

1. FB 호출을 사용한 인스턴스 DB 생성 2. 새 인스턴스 DB 작성

Page 19: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 19

멀티플 인스턴스 모델 지금까지 기능 블록을 호출할 때마다 다른 인스턴스 데이터 블록을 사용해야했습니다. 그렇지만 데이터 블록의 수가 제한되고, 그렇기 때문에 여러 FB 호출에 대해 공통된 인스턴스 DB를 사용할 수 있는 방법이 있습니다.

멀티플 인스턴스 모델은 이제 여러 호출에 대해 하나의 DB를 사용할 수 있도록합니다. 이렇게 하려면 이러한 인스턴스를 관리하기 위한 추가 FB가 필요합니다. 모든 FB 호출(FB 20)에 대해 상위 FB(FB 100)에서 정적 변수를 정의합니다. 블록 호출 Call Dist_1을 사용하면 인스턴스 DB를 지정할 필요가 없습니다.

상위 FB(FB 100)는 OB 1에서 호출되고 공통 인스턴스 DB(DB 100)는 한번만생성됩니다.

참고 멀티플 인스턴스는 고급 프로그래밍 과정에서 설명합니다.

Date: 2002-02-19File: PRO1_11E.19

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

멀티플 인스턴스 모델

DB10

인스턴스 모델

FB20

OB 1

Call FB20, DB10Disturb._Input:=Acknowledge:=Flash_Freq:=Display:=

DB11

FB20

Call FB20, DB11Disturb._Input:=Acknowledge:=Flash_Freq:=Display:=

DB12

FB20

Call FB20, DB12Disturb._Input:=Acknowledge:=Flash_Freq:=Display:=

멀티플 인스턴스 모델

FB 100

DB100

Call FB100, DB100

OB 1

stat Dist_1 FB20

stat Dist_2 FB20

FB20의 두 번째호출에 대한파라미터 및정적 변수

Call Dist_2Disturb._Input:=Acknowledge:=Flash_Freq:=Display:=

FB20의 첫번째호출에 대한파라미터 및정적 변수

Call Dist_1Disturb._Input:=Acknowledge:=Flash_Freq:=Display:=

Page 20: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 20

Date: 2002-02-19File: PRO1_11E.20

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

나중에 블록 파라미터 삽입/삭제

저장

문제 프로그램에서 이미 호출된 블록에 블록 파라미터를 나중에 추가할 때 블록호출도 업데이트해야 합니다. 이렇게 하지 않으면 호출에서 추가 파라미터에도 여전히 실질 파라미터를제공해야 하기 때문에 CPU가 정지되거나 블록 기능이 보장될 수 없습니다.예제에서는 추가 입력 파라미터 “Check_lights“가 삽입되었습니다.

호출 업데이트 선언 테이블이 수정되었던 장소인 블록을 저장하면 가능한 문제에 대해 경고해주는 메시지가 나타납니다.

Page 21: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 21

Date: 2002-02-19File: PRO1_11E.21

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

수정된 블록을 호출할 때의 변경

호출 블록이 열릴 때:

오른쪽 버튼으로 한번

호출 업데이트 호출 블록을 열면 “Time stamp conflict with at least one block call(타임 스탬프가적어도 하나의 블록 호출과 충돌합니다)”라는 메시지가 나타나며 이 호출이빨갛게 표시됩니다. 마우스 오른쪽 버튼을 사용하여 블록 호출을 클릭하고 메뉴옵션 “Update Call“을 선택합니다. 그러면 블록 호출이 다시 표시되고 여기에는추가 입력 파라미터 “Check_light“가 포함되어 있어 이 파라미터를 할당할 수있습니다. 기능 블록의 경우 이때 인스턴스 DB가 생성됩니다.

Page 22: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 22

Date: 2002-02-19File: PRO1_11E.22

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

연습: 기능 블록 편집

FB 20 블록의 선언 테이블1.

FB 20의 프로그램 부분A #AcknowledgeR #Report memoryA #Disturb. ...::

2.

작업 메시지를 표시하기 위한(문제를 나타내기 위한) 프로그램은 이제 기능 블록에서구현됩니다. 에지 메모리 비트 및 리포트 메모리를 저장하기 위해 FB의 인스턴스DB에 저장된 정적 변수를 사용합니다. 이렇게 하면 저장을 위한 비트 메모리가필요 없습니다.그림에서 입력 및 출력 파라미터가 있는 선언 테이블과 프로그램의 시작 부분을볼 수 있습니다.

과정 • S7 프로그램 "My Program“에 FB 20 블록을 삽입합니다.• FB 20에 프로그램을 작성합니다.• FB 20을 저장합니다.

Page 23: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 23

과정 S7 프로그램 "My Program"에서 다음과 같이 합니다.

• FC20을 호출하여 두 개 네트워크를 모두 삭제합니다.• 그림과 같이 FB 20에 대한 두 호출을 위한 프로그램을 작성합니다.• FB20, DB20, DB21 및 OB 1 블록을 다운로드합니다.• 이 프로그램의 기능을 테스트합니다.

FC -> FB 예제에서는 같은 내용을 갖는 FC20이 이미 존재하더라도 FB 20을 다시작성합니다. 이것은 어렵지 않습니다.방대한 프로그램이 있는 FC를 FB로 변환할 때는 다른 방식으로 처리해야합니다.

첫 번째 가능한 솔루션:• 새로운 FB를 삽입합니다.• FC 블록의 선언 테이블을 FB로 복사하고 조정합니다.• FC에서 FB로 네트워크를 복사합니다.• FB를 저장합니다.

두 번째 가능한 솔루션:

• FC 블록으로부터 소스 파일을 만듭니다.• 소스 파일에서 조정을 합니다.• 소스 파일로부터 새로운 FB를 만듭니다(다음 페이지 참고).

Date: 2002-02-19File: PRO1_11E.23

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

연습: 기능 블록 호출 및 테스트

(Q 5.3)

(Q 5.3)

Page 24: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 24

소개 고급 프로그래밍 언어에서와 같이 소스 프로그램(텍스트 파일)을 사용해서블록을 작성할 수도 있습니다. 이 소스 프로그램을 컴파일하면 실행 블록이만들어집니다. 마찬가지로 기존의 블록에서 소스 파일을 만들 수 있습니다.최소 작업(타이핑)으로 FC 20 블록에서 FB 20을 작성하기 위해 이 방법을사용합니다.

과정 1. 블록을 엽니다.2. LAD/STL/FBD 편집기에서 메뉴 옵션 Options -> Customize를 선택한 후

“Editor“탭을 선택합니다. “View" 상자에서 옵션 "Symbolic representation“을선택합니다.

3. LAD/STL/FBD 편집기에서 메뉴 옵션 File -> Generate Source File...을선택합니다.

4. “New“창에서, 생성될 소스 파일에 대해 원하는 이름을 “Object name“상자에입력할 수 있습니다.

5. “Unselected Blocks“창에서 차례로 컴파일될 프로그램 블록을 이때나타나는 “Generate Source File“창에서 선택합니다.

6. “OK“를 클릭하여 블록을 소스 코드로 컴파일합니다. 컴파일된 블록은 S7 프로그램의 “Source Files“폴더에서 이전에 이름 붙인 소스 파일에 있습니다.

Date: 2002-02-19File: PRO1_11E.24

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

소스 프로그램을 사용한 FC에서 FB로의 변환 (1)

Page 25: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 25

소스의 용도 • 기호를 사용한 자동 리와이어링(Rewiring)

• 블록 보호와 같은 블록 속성 지정

• 전체 프로그램의 데이터 보호

• 더 자유로운 블록의 편집 및 프로세싱- 블록 유형 수정- 네트워크 분리 장치의 삽입/삭제- 프로그램 요소 및 주석을 새로운 블록으로 병합- PC에 STEP7을 설치할 필요 없이 다른 텍스트 편집기(WORD,

WordPad)로 프로그램 소스 작성- 구문 검사가 없는 완전 기호 프로그래밍 등.

소스 프로그램 그림 왼쪽에 FC20 블록에 대한 소스 프로그램이 있고 오른쪽에는 FB 20과 같은프로그램을 위한 소스 파일이 표시됩니다. 여기서 기능 블록과 관련된 키워드가입력됩니다. 또한 리포트 메모리 및 에지 메모리 마커를 위한 정적 변수도정의됩니다.컴파일 실행 후에 실행 가능한 FB 20이 한 번 더 존재합니다.

참고 키워드를 모를 경우 메뉴 옵션 Insert -> Block Template -> FB를 사용하여 블록템플릿을 삽입할 수 있습니다.

“Source Files"에 대해서는 고급 프로그래밍 과정에서 자세히 설명합니다.

Date: 2002-02-19File: PRO1_11E.25

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

소스 프로그램을 사용한 FC에서 FB로의 변환(2)

::

::

Page 26: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 26

Date: 2002-02-19File: PRO1_11E.26

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

연습: 변수 유형 인식

절대 기호 임시 정적 파라미터L #Number_1

T #Max_value

T MW 40

명령문

L #Number_2

L #Intermediate_resultL “Number_1"

T #Number_2

전역 로컬

목적 변수의 다양한 유형 간의 차이점을 알게 됩니다.

과정 테이블에서 관련된 데이터 유형에 X 표시를 합니다.

다음 질문에 답하십시오.명령문 T#Number_2에서 틀린 것은 무엇입니까?

.................................................................................

결과 변수의 유형을 인식하고 사용할 수 있습니다.

Page 27: PRO1 11E [읽기 전용]

Training Centerfor Automation and Drives

ST-7PRO1기능 및 기능 블록페이지 27

CALL “CALL“명령어는 RLO 또는 다른 어떤 조건에 관계없이 프로그램 블록(FC, FB, SFC, SFB)을 호출하는 데 사용됩니다. “CALL“명령어로 FB 또는 SFB를 호출할 때는 관련 인스턴스 DB도 지정해야합니다.프로그램 블록에 절대 이름 또는 기호 이름을 사용할 수 있습니다.

예제: "CALL FB2, DB2" 또는 "CALL valve, level“"CALL" 연산은 반환 어드레스를 저장하고, MCR에 대한 종속을 해제하고, 호출된 블록에 대한 로컬 데이터 영역을 작성합니다.

UC "UC" 명령어는 파라미터 할당이 없는 FC 또는 FB 유형 블록에 대한 무조건호출입니다.이런 점을 제외하면 "UC“는 "CALL“과 동일합니다.

CC "CC" 명령어는 RLO = 1일 때 파라미터가 없는 FC 또는 FB 유형의 블록을호출합니다.이런 점을 제외하면 "CC“는 "CALL“과 동일합니다.

파라미터 선언 테이블에서 선언된 파라미터는 “형식 파라미터”라고 하고, 호출에 지정된어드레스 또는 값은 “실질 파라미터”라고 합니다.

정적 변수 및 임시 변수는 호출에 지정되지 않습니다.

Date: 2002-02-19File: PRO1_11E.27

SIMATIC S7Siemens AG 1999. All rights reserved.

Information and Training CenterKnowledge for Automation

요약: 블록 호출

• CALL FC1• UC FC1• CC FC1

STL

LAD

FBDFC1

EN

ENO

FC1EN ENO

FC1

( CALL )

FB

파라미터와 인스턴스 DB 없음

• UC FB1• CC FB1

FB1EN

ENO

FB1EN ENO

CALL

파라미터 있음

• CALL FC2Par1: ...Par2: ...Par3: ...

FC2EN ENO

Par3

Par1

Par2

FC2EN

ENO

Par1

Par2

Par3

파라미터와 인스턴스 DB 있음

• CALL FB2, DB3Par1: ...Par2: ...Par3: ...

FB2EN ENO

Par3

Par1

Par2

DB3

FB2EN

ENO

Par3

Par1

Par2

DB3

파라미터 없음언어

FC

FC1