Microsoft PowerPoint - 12장_Function과 Function Block.ppt

Similar documents
<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

PRO1_09E [읽기 전용]

PRO1_02E [읽기 전용]

PRO1_04E [읽기 전용]

초급과정 목차

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

View Licenses and Services (customer)

IRISCard Anywhere 5

Microsoft PowerPoint - 07_04_s7기초기술교육_simatic_manager_operation.ppt [호환 모드]

슬라이드 1

Microsoft PowerPoint - 13장_OB 블록.ppt

Microsoft PowerPoint - 11장_데이터블록.ppt

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

ISP and CodeVisionAVR C Compiler.hwp

<4D F736F F D20C0CCBEBEC1A6BEEE5FC3A5BCD2B0B35F >

<4D F736F F F696E74202D203135C0E55FB0EDC0E5C5BDB1B8BFCD20B5F0B9F6B1EBB1E2B4C92E707074>

Windows 8에서 BioStar 1 설치하기

CFC_샘플

Studuino소프트웨어 설치

<4D F736F F F696E74202D203135C0E55FB0EDC0E5C5BDB1B8BFCD20B5F0B9F6B1EBB1E2B4C95F616C6C2E707074>

tiawPlot ac 사용방법

DBMS & SQL Server Installation Database Laboratory

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

슬라이드 1

Microsoft PowerPoint - 13장_OB 블록.ppt

<4D F736F F F696E74202D2032C0E55FC6AEB7B9C0CCB4D720C5B0C6AEB1B8BCBAC7B05F446F6E652E707074>

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

Microsoft Word - FunctionCall

Microsoft PowerPoint - chap06-2pointer.ppt

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P

OCW_C언어 기초

C# Programming Guide - Types

PRO1_16E [읽기 전용]

PRO1_18E [읽기 전용]

Chapter 4. LISTS

PowerPoint 프레젠테이션

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

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가

Microsoft Word - src.doc

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

Microsoft PowerPoint - 16장_문서화_압축_저장_Done.ppt

Microsoft Word - Armjtag_문서1.doc

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

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

JVM 메모리구조

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지

<C6F7C6AEB6F5B1B3C0E72E687770>

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

Microsoft PowerPoint - chap01-C언어개요.pptx

SBR-100S User Manual

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

RVC Robot Vaccum Cleaner

chap 5: Trees

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

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

Microsoft Word - STEP7목차

MF Driver Installation Guide

사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사

Endpoint Protector - Active Directory Deployment Guide

1 안전 기준

슬라이드 1

Frama-C/JESSIS 사용법 소개

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1

Microsoft PowerPoint - e pptx

PowerPoint 프레젠테이션

Install stm32cubemx and st-link utility

PowerPoint Presentation

C++ Programming

제 2 장 기본 사용법

Microsoft Word - logic2005.doc

(SW3704) Gingerbread Source Build & Working Guide

Microsoft PowerPoint - 3장_SIMATIC_Manager_Done.ppt

유니티 변수-함수.key

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

Chapter #01 Subject

Windows Server 2012

1

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

메뉴얼41페이지-2

Microsoft PowerPoint - CSharp-10-예외처리

Bausteinaufrufe und Multiinstanz-Modell

Microsoft PowerPoint - [2009] 02.pptx

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

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

Index 1. Intro Install Connect Scratch 1.4 (Offline Editor) Scratch 2.0 (Online Editor) Connect f

제4장 기본 의미구조 (Basic Semantics)

Microsoft Word - STL_SCL_4판_목차.doc

Microsoft PowerPoint - o8.pptx

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

목 차 1. 드라이버 설치 설치환경 드라이버 설치 시 주의사항 USB 드라이버 파일 Windows XP에서 설치 Windows Vista / Windows 7에서 설치 Windows

지도상 유의점 m 학생들이 어려워하는 낱말이 있으므로 자세히 설명해주도록 한다. m 버튼을 무리하게 조작하면 고장이 날 위험이 있으므로 수업 시작 부분에서 주의를 준다. m 활동지를 보고 어려워하는 학생에게는 영상자료를 접속하도록 안내한다. 평가 평가 유형 자기 평가

Microsoft PowerPoint - 15-MARS

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1

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

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

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

Transcription:

CALL FC 10 On_1 := I 0.1 On_2 := I 0.2 Off := Q8.0 프로그램실행 Function FC10 in On_1 BOOL in On_2 BOOL out Off BOOL...... A #On_1 A #On_2 = #Off... CALL FB5, DB5 Start :=I 0.0 Stop :=I 0.1 Motor_on :=Q8.0 Speed :=QW12 FB 5 in Start BOOL in Stop BOOL out Motor_On BOOL out Speed INT stat... Temp...... A #Start AN #Stop = #Motor_on... DB 5 0.0 Start BOOL 0.1 Stop BOOL 2.0 Motor_on BOOL 4.0 Speed INT 드라이브 File: PRO1_12E.1 차례 교육목표... 2 변수종류... 3 Temporary 변수... 4 로컬데이터스택전체사용량... 5 예 : 출력 LED 로오류신호디스플레이... 6 파라미터지정가능블록... 7 FC 20에서의형식파라미터지정... 8 파라미터지정가능블록편집... 9 파라미터지정가능블록호출... 10 연습문제 1: 파라미터지정가능 Function 편집... 11 연습문제 2: 파라미터지정가능 Function 호출... 12 Function Blocks (FB)... 13 오류디스플레이를위한 Function Block... 14 인스턴스데이터블록생성... 15 연습문제 3: Function Block 편집... 16 연습문제 4: Function Block 호출및테스트... 17 블록파라미터삽입과삭제... 18 블록 Consistency 체크... 19 수정된블록호출... 20 Functions 과 Function Blocks 의차이... 21 연습문제 5: 변수타입인식..... 22 EN/ENO 사용... 23 정리 : 블록호출... 24 페이지 1

교육목표... 파라미터를지정하는블록을이해합니다.... 파라미터를지정하는 FC 를생성하고호출합니다.... FC 와 FB 차이를이해합니다... Static 변수사용을이해합니다.... Static 변수를선언하고프로그램에적용합니다.... 파라미터를지정할수있는 FB 를생성하고호출합니다. File: PRO1_12E.2 페이지 2

변수종류 글로발변수 / 데이터 ( 전체프로그램에서사용가능 ) 로컬변수 / 데이터 ( 하나의블록에서만사용가능 ) PII / PIQ I / O Peripherals M / T / C DB areas Temporary 변수 해당블록실행후값들이오버라이트됩니다. L스택에저장됩니다 OB/FC/FB 에서사용가능 Static 변수 해당블록실행후에도값들이유지됩니다. DB에데이터저장 FB에서만사용가능 절대 심벌 엑세스 File: PRO1_12E.3 개요 로컬변수 지금까지프로그램에서는입력과출력이실제어드레스로직접할당이된채작성되었습니다. 이러한유형의프로그램은어드레스위치에고정이되기때문에반복적인프로세스에는잘맞지않습니다. 파라미터를지정하지않는블록들은반복적인프로세스가없는기계제작에적합합니다. 대형시스템에서반복적인프로세스는재사용할수있고파라미터를설정할수있는블록들 () 을사용하는것이효과적입니다. 이러한블록들은심벌입력과출력파라미터 ( 로컬심벌이름 ) 를사용하며블록이호출될때실제피연산자와함께사용됩니다. 사용자는이러한피연산자를 Function 이나 Function Block 을호출할때할당해야합니다. FC/FB 의프로그램로직은변경되지않기때문에여러번재사용할수있습니다. 지금까지는생산데이터등을저장하기위해글로벌변수 ( 비트메모리와데이터블록 ) 를사용했습니다. 이단원에서는로컬변수라는데이터저장장소를접하게됩니다. 로컬변수는그것들이생성된블록에서만읽을수있으며이로인해다른프로그램블록들의로컬변수와는데이타교환을할수없습니다. 두가지유형의로컬변수가있습니다. - Temporary 와 Static Temporary 변수 : Temporary 변수는블록이실행되는동안에만저장되는변수입니다. 모든프로그램블록 (OB, FB, FC) 에서선언될수있습니다. Static 변수 : 데이터가블록이수행이된이후에도유지가되어야한다면데이터는 Static 변수에저장이되어야합니다. Static 변수는 Function Block 에서만선언이됩니다. FB 에할당된인스턴스 DB 가이러한 Static 변수를저장하는장소로사용이됩니다. 페이지 3

Temporary 변수 Declaration Use File: PRO1_12E.4 개요선언부엑세스참조 Temporary 변수는모든프로그램블록에서사용될수있습니다. 이변수는블록이수행되는동안정보를임시로저장하기위해사용됩니다. 데이터는블록프로그램을마치고나면잃어버리게됩니다. 데이터는 L 스택 ( 로컬데이타스택 ) 에저장됩니다. 이것은 CPU 내별도의메모리영역입니다. 블록의선언테이블에서변수들을선언합니다. "TEMP" 행에서변수이름과관련데이타타입을입력합니다. 여기서는초기값 (Initial Value) 을미리선언할수없습니다. 블록을저장한후에 L 스택의메모리위치가 "Address" 컬럼에디스플레이됩니다. 네트워크 ( 렁 )1 에서 Temporary 변수에대해심벌로엑세스를하는예를볼수있습니다. 빼기의결과가 Temporary 변수 "Result" 에저장됩니다. 사용자는절대어드레스를입력할수있습니다 (T LW0). 그러나프로그램이읽기가더어렵기때문에절대어드레스를피하는것이좋습니다. # 문자로시작하는변수는로컬변수이며선언테이블에서정의된블록에서만사용할수있습니다. 프로그램편집기가자동적으로 # 글자를입력시켜줍니다. 페이지 4

로컬데이터스택전체사용량 운영시스템 1 OB 1 2 FC 17 임시변수사용 3 4 FC 20 임시변수사용 5 FC 30 7 6 임시변수사용 결과 1 2 3 4 5 6 7 L 스택사용 FC17 FC20 FC17 FC17 FC30 FC17 FC17 256 Bytes OB1 OB1 OB1 OB1 OB1 OB1 OB1 File: PRO1_12E.5 전체사용량 모든프로그램실행이나혹은우선권등급 ( 예를들면 OB1 과그안에서호출된모든블록 ) 을위해별도의 L 스택이예비되어있습니다.(CPU 의 L 스택에할당된세그먼트크기 ) 즉, OB1 에의해호출된블록들가운데사용된로컬변수나 Temporary 변수뿐아니라 OB1 의로컬변수가 L 스택에저장이됩니다. 레퍼런스데이터기능을사용하여 S7 프로그램이 L 스택에얼마나많은부하를주고있는지를볼수있습니다. 레퍼런스데이타는 " 고장탐구 (Troubleshooting)" 단원에서더자세히다룹니다. 레퍼런스데이타 SIMATIC Manager 에서블록폴더를선택하고다음메뉴를선택합니다. Options -> Reference Data -> Display -> Program Structure 참조 프로그램실행중에최대로컬데이터가초과가되면 (L 스택오버플로우 ) CPU 가 STOP 이됩니다. 진단버퍼 (Diagnostic buffer) 에는 "STOP caused by error when allocating local data" 가에러의원인으로입력이됩니다. 페이지 5

예 : 출력 LED 로오류신호디스플레이 작업 폴트신호 인식 저장된폴트 디스플레이 솔루션제안 File: PRO1_12E.6 설명 문제 발생한문제는오퍼레이터콘솔에있는 LED 에디스플레이가됩니다. 문제가발생하면 (I 0.0), LED (Q 5.1) 이 2 Hz 로깜박거리게됩니다. 문제는입력 I1.2 에서인식이됩니다. 문제가수정이되면 LED 는깜박거리지않게됩니다. 문제가계속되면 LED 는문제가해결될때까지켜진상태로멈추게됩니다. 오류신호의 RLO 에지에대한검출이이루어지게됩니다. 이는존재하는문제가인식이되면메모리가즉시리셋이되기때문입니다. 메모리가세트가되면 ( 메시지는아직인식이되지않았습니다 ) 상부의 AND 명령어로인해 LED 가깜박거리게됩니다. 이로인해하드웨어설정에서클럭메모리 (Clock Memory) 로정의된비트메모리 M 10.3 이동작을하게됩니다. 하부 AND 명령어로인해인식은되었지만아직존재하는문제가있을때 LED 가켜진상태로멈추게됩니다. 페이지 6

파라미터지정가능블록 파라미터를지정 파라미터를지정할수있는블록사용 할수없는블록사용 FC 20 에서의프로그램 FC 20 호출 (OB 1에서호출 ) FC 20 A I 1.1 FP M 17.2 S M 17.1 A #Fault_Signal FP #Edge_Memory S #Stored_Fault I 1.1 I 1.0 Fault_ Signal Acknowledge Display Q 5.1 A I 1.0 A #Acknowledge M 10.3 Flash_Freq. R M 17.1 A M 17.1 A M 10.3 O R A A O #Stored_Fault #Stored_Fault #Flash_Freq. M 17.1 M 17.2 Stored_ Fault Edge_ Memory AN M 17.1 AN #Stored_Fault A I 1.1 = Q 5.1 A #Fault_Signal = #Display 형식파라미터 실제파라미터 File: PRO1_12E.7 어플리케이션자주반복되는프로그램에는파라미터지정블록을사용할수있습니다. - 프로그램이한번만생성이되면되기때문에프로그래밍시간을크게줄일수있습니다. - 블록이사용자메모리에한번만저장이되면되기때문에전체메모리양을크게줄일수있습니다. - 블록은사용자가원하면언제든호출될수있으며각각다른어드레스가할당이됩니다. 이를위해형식파라미터 (Formal Parameter ) 에는블록이호출될때마다다른실제어드레스 (Actual address) 가할당이됩니다. 프로그램실행위예제에서 STL 언어를볼수있으며프로그램실행을따라가기가더쉽습니다. STL 코드는이전예제와같은오류로직을수행합니다. STL 프로그래밍언어는고급과정에서더자세히다루어질예정입니다. 위에서보는블록이실행이되고 A #Acknowledge" 가수행이되면 Acknowledge 파라미터가실제파라미터로바뀌어지게됩니다. 입력 I 1.1 이 Acknowledge 파라미터의실제파라미터로주어지게되면 FC 20 프로그램블록에서보는 "A #Acknowledge" 대신에 A I 1.1 이들어가게됩니다. 파라미터설정 예 FC 나 FB 블록을파라미터지정블록으로프로그램할수있습니다. OB 블록은운영시스템에서직접호출이되기때문에파라미터를지정할수있는프로그램을생성할수없습니다. 사용자프로그램에서는 OB 블록호출이이루어질수없기때문에실제어드레스를 OB 로전달하는것이불가능합니다. 시스템에서서브루틴이두번필요하다고해도파라미터지정블록의 FC20 은한번만프로그램하면됩니다. FC 20 은두개의서로다른오류에대해호출할수있고매번다른실제어드레스를할당하게됩니다. 페이지 7

FC 20 에서의형식파라미터정의 형식파라미터 파라미터타입 선언 사용 그래픽디스플레이 입력파라미터 출력파라미터 입 / 출력파라미터 in 읽기만해당 블록의왼쪽 out 쓰기만해당 블록의오른쪽 In_out 읽기 / 쓰기 블록왼쪽 File: PRO1_12E.8 Formal Parameter 파라미터유형인터페이스 FC 20 의예주의! 파라미터지정블록프로그램을생성하기전에먼저선언부테이블에서형식파라미터 (Formal Parameter) 를정의해야합니다. 슬라이드의테이블에서세개의다른파라미터타입이블록에사용되고있는것을볼수있습니다. 사용자는원하는대로형식파라미터에대한유형선언을할수있습니다. "in" 선언유형은서브루틴에서 " 읽기 " 선언유형이지정되어야합니다. "out" 선언유형은서브루틴에서 " 쓰기 " 선언유형이지정되어야합니다. 읽기엑세스 (A,O,L 명령어사용 ) 를위한형식파라미터과동시에쓰기엑세스 (S,R,T) 를위한형식파라미터는 "in/out" 파라미터에선언이되어야합니다. 블록의인터페이스는 IN, OUT, IN_OUT 파라미터를갖습니다. RETURN 파라미터는 IEC 61131-3 에따라특정하게지정된부가적인 OUT 파라미터입니다. 이파라미터는 FC 에서만존재합니다. TEMP 변수는블록이호출이될때눈에보이지않으며실제어드레스가호출되는블록의 TEMP 변수에전달되는것이아니기때문에블록인터페이스의요소가될수없습니다. 파라미터와 TEMP 변수를선언하려면파라미터유형이나 TEMP 변수유형이 "interface" ( 아래쪽그림참조 ) 에서선택되어야합니다. 그후오른쪽에나타나는테이블에서이름이관련데이터유형과주석과함께편집될수있습니다. 슬라이드의아래쪽부분에서 FC 블록 "Fault Signal" ( 이전페이지참조 ) 의인터페이스와선언테이블을볼수있습니다. 형식파라미터 #Stored_Fault 와 #Edge_Memory 가 FP 명령어에연결되어읽기와쓰기명령어로사용이되기때문에이러한것을 in/out 파라미터에선언을해야합니다. 선언된블록의형식파라미터 (IN, OUT, IN_OUT, TEMP 는예외 ) 는 "outside" 로의인터페이스입니다. 즉그것들은눈에보이고다른블록과연관이있기때문에그렇게부릅니다. 블록인터페이스가추후형식파라미터를삭제하거나추가를한다면호출하는것도업데이트되어야합니다. 이블록을호출하는모든블록도업데이트되어야합니다. 페이지 8

파라미터지정가능블록편집 File: PRO1_12E.9 참조형식파라미터이름이소문자로쓰여졌든지대문자로쓰여졌든지상관이없습니다. # 글자가이름앞에자동적으로삽입이됩니다. 이글자는파라미터가이블록의변수테이블에서정의된로컬변수임을가리키는데사용이됩니다. 프로그램을 LAD/FBD 에서작성을할때이름이하나의라인에모두나오지않게하는것이가능합니다. 이는프로그램편집기에서필요에맞게설정하면됩니다. (Options -> Customize -> LAD/FBD 탭 -> Address Field Width) 심벌 1. 블록을편집할때심벌이름을사용한다면편집기는가장먼저블록의변수선 언 테이블을통해그이름을찾습니다. 심벌이름이있다면심벌과이름앞에있는 # 문자가로컬변수로수용이됩니다. 소문자와대문자는심벌이선언테이블에서입력된것에맞게수정될것입니다. 2. 심벌을로컬변수에서찾을수없다면편집기는글로벌심벌테이블에서심벌 을 찾습니다. 심벌이거기있다면심벌은인용부호표시로놓여지게되고프로그램에서글 로 벌변수로수용이됩니다. 3.. 심벌테이블과로컬선언테이블에서같은심벌이름이지정이되면편집기는 언 제나로컬변수를채택합니다. 그러나글로발심벌로작업을하기원하면입력시심벌이름을인용부호표시에 넣습니다. 페이지 9

파라미터지정가능블록호출 File: PRO1_12E.10 블록호출프로그래밍참조파라미터설정파라미터전달 파라미터를지정하는블록의호출은원하는블록의심벌을복사해서호출하는블록의프로그램입력부분에입력할수있습니다. 드래그앤드롭을사용하면편리합니다. 이심벌은프로그램편집기의 "Program Element Catalog" 부분의 "FC Blocks" 혹은 "FB Blocks" 부분에서찾을수있습니다. 인용부호영역은호출된블록의각형식파라미터에자동적으로나타납니다. 파라미터를지정하는 FC 가호출이되면실제어드레스는모든형식파라미터로전송이됩니다. 예외 : LAD 와 FBD 와같은그래픽프로그램언어에서 EN 과 ENO 파라미터는편집기에의해자동적으로추가가됩니다. 여기에는형식파라미터를지정하지않으며이파라미터들을통해조건적으로블록을호출할수있게할수는있습니다. 입력하는데이타타입이호출된블록의형식파라미터에맞으면글로발어드레스혹은로컬어드레스가실제파라미터 ( 어드레스 ) 로전달됩니다. 실제파라미터는절대어드레스나전역심벌테이블에서정의한심벌이름혹은호출하는블록에서의선언테이블에서정의한심벌이름으로전달됩니다. 기본적으로 " 파라미터전송 (Passing on of parameters)" 이가능합니다. 즉호출하는블록의형식파라미터가호출된블록의실제파라미터로전달이되는것입니다. 복합데이터타입의파리미터인경우한계가있긴하지만가능합니다. 이내용은고급과정에서다루어질것입니다. 페이지 10

연습문제 1 : 파라미터지정가능 Function 편집 Declaring the Formal Parameter File: PRO1_12E.11 오류해석 Function 오류가발생을하면 ( 시뮬레이터의스위치동작 ) 시뮬레이터의출력 LED 가 2 Hz 로깜박거리기시작합니다. 사용자는시뮬레이터의푸시버튼을사용하여오류를인식할수있습니다. 오류가인식이되면두가지중하나의경우일것입니다. 오류가더이상존재하지않다면 ( 시뮬레이터의스위가꺼짐 ) 출력 LED 도꺼지게될것입니다. 오류가계속존재한다면 ( 시뮬레이터의스위치가계속켜짐 ) 출력 LED 는켜진상태에서멈출것입니다. 오류가더이상존재하지않으면 LED 는꺼지게됩니다. 과제오류해석프로그램을파라미터지정 FC 20 "Evaluate_Fault" 안에생성하십시오. 절차 1. FC 20 블록을 S7 블록폴더에삽입하십시오. 2. 위슬라이드에보여진것처럼형식파라미터를선언하십시오. 3. 위슬라이드에보여진것처럼프로그램을생성하십시오. 4. 블록을저장하고 CPU 로다운로드하십시오. 페이지 11

연습문제 2 : 파라미터지정가능 Function 호출 FC 20 의첫번째호출 FC 20 의두번째호출 File: PRO1_12E.12 과제 두개의프로세스에러 ( 시뮬레이터의두개의스위치 ) 가해석이되고시뮬레이터의 LED 를통해디스플레이됩니다. FC 20 을두번호출하는프로그램을작성하고위슬라이드에보여진것처럼실제파라미터를입력합니다. 절차 1. FC 20 을프로그램하십시오 - FC 17 블록에두개의새로운네트워크 ( 렁 ) 에서 호 출하십시오. 2. FC 17 을저장하고 CPU 로다운로드하십시오. 참조 HWConfig 화면에서클럭메모리 (Clock Memery) 로 MB 10 을설정하였습니다. 메모리리셋을수행한다면 M10.3 비트메모리가깜박거리게하기위해서는 HWConfig 에서생성된시스템데이터 (system data) 를다시다운로드시켜야합니다. 페이지 12

Function Blocks (FB) Function Block 의선언부 OB1 에서처럼 FB 블록호출 DB 2 FB 20 EN Fault_Signal Acknowledge Flash_Freq. Display ENO File: PRO1_12E.13 FB 의특징 FC 와는다르게 FB 에는 Recall 메모리가있습니다. 이는로컬데이타블록이 Function Block 에할당이되는것을의미합니다. 이데이타블록을인스턴스데이터블록 (Instance DB) 이라고합니다. FB 를호출할때인스턴스 DB 의번호도지정해야합니다. 인스턴스 DB 는 Static 변수를저장하기위해사용됩니다. 이러한로컬변수는 FB 의선언부에서선언을하여사용될수있습니다. 프로그램이종료가되어블록을빠져나와도데이터는남아있습니다. Exclusion 어드레스와 Termination 어드레스이옵션을사용하면속성을프로세스진단과연관되어있는 FB 파라미터와 Static 변수에할당할수있습니다. 파라미터 Function Block 이호출되면실제파라미터의값들은인스턴스 DB에저장이됩니다. 실제파라미터가블록호출에서형식파라미터에할당이되면이파라미터에대해인스턴스 DB에저장된최종값이프로그램실행시사용이됩니다. 사용자는모든 FB 호출시다른실제파라미터를지정할수있습니다. Function Block 을빠져나와도인스턴스 DB 에는데이터가남아있습니다. Static 변수 Static 로컬변수는 Function Block 에서엑세스할수없는특정데이터를저장합니다. 다시말해서변수는형식파라미터로서다른블록에입력되거나출력되지못한다는뜻입니다. FB 장점 -FC에서프로그램을할때는사용하지않은비트메모리어드레스영역과데이터영역을찾아야만합니다. FB에서의 Static 변수는 STEP 7 소프트웨어에서관리를해줍니다. -Static 변수를사용하면비트메모리영역이나데이터영역을두번지정하는일을피할수있습니다. - 형식파라미터 FC 20의 "Store Fault" 와 "Edge_Memory" 대신에 Static 변수 "Stored_Fault" 와 "Edge_Memory" 를사용할수있습니다. 이는두개의형식파라미터를삭제시킬수있기때문에블록호출이더간단해집니다. 페이지 13

오류디스플레이를위한 Function Block Function Block 의선언부 인스턴스데이터블록 File: PRO1_12E.14 오류디스플레이 인스턴스 DB 구조 이전의연습문제에서오류메시지를디스플레이하기위한파라미터지정블록 FC 20 을생성하였습니다. 비트메모리대신에오류신호와 RLD 에지검출을저장하기위해 FC 20 을사용하였고 FB 에서는이것이 Static 변수라고합니다. 그것은 FB 와연관된인스턴스 DB 에저장이되었습니다. DB 가생성이되고 FB 에연결이될때 STEP 7 은 Function Block 의로컬선언테이블에서지정된구조를사용하여데이터블록의데이터구조를생성합니다. DB 를저장한후에 DB 가생성이되고인스턴스 DB 로사용할수있습니다. 페이지 14

인스턴스데이터블록생성 1. FB 호출시인스턴스데이터블록생성 2. 별도로인스턴스데이터블록생성 In the LAD/STL/FBD Editor In the SIMATIC Manager File: PRO1_12E.15 인스턴스 DB 생성새로운인스턴스 DB 를생성하는데는두가지방법이있습니다. -FB 를호출할때어느인스턴스 DB 를 FB 에사용할것인지지정해야합니다. 다음과같은메시지가나타납니다. "The instance data block DBx does not exist. Do you want to generate it? - 새로운 DB 를생성할때 "Data block referencing a function block" 옵션을선택합니다. 참조 하나의인스턴스 DB 가하나의 FB 에연결됩니다. 그러나 FB 는호출될때마다다른여러인스턴스 DB 에연결될수있습니다. FB 를파라미터나 Static 변수를추가하여변경할때는인스턴스 DB 를다시생성해주어야만합니다. 페이지 15

연습문제 3 : Function Block 편집 File: PRO1_12E.16 과제 추가오류 ( 시뮬레이터스위치 ) 가해석되어야합니다. 이것을하기에가장쉬운방법은 FC 20 호출을또한번하는것입니다. 그러나 FB 솔루션의장점을살리기위해파라미터지정 FB 20 을프로그램하여세번째오류를해석합니다. Static 변수는 Edge Memory 와 Stored Fault 를저장하는데사용됩니다. 이러한 Static 변수는 FB 의인스턴스 DB 에저장될것입니다. 위슬라이드에서 FB 20 의선언테이블입력과출력파라미터와프로그램시작을볼수있습니다. 절차 1. FB 20 블록을 S7 블록폴더에삽입하십시오. 2. 위슬라이드에나온것처럼형식파라미터와 Static 변수를선언하십시오. 3. FB 20 의프로그램을작성하십시오. 이미생성된 FC 20 에서필요한네트워크 ( 렁 ) 을복사해서 FB 20 에붙여넣기를하십시오. 4. 새로운블록을저장하고 CPU 로다운로드하십시오. 페이지 16

연습문제 4 : Function Block 호출및테스트 현재상태 현습문제실행후상태 File: PRO1_12E.17 과제 오류 #2 의해석 ( 지금까지 FC 20 에서프로그램을하였음 ) 과새로운오류 #3 의해석이새롭게생성된 FB 20 으로구현이될것입니다. 파라미터지정블록 FB 20 이 FC 17 에서두번호출이되어야합니다. FB 20 이호출될때마다다른인스턴스 DB 가할당되어야합니다. 절차 1. FC 17 에서두번째호출된 FC 20 을삭제하십시오. 오류 #2가 FB 20 에서 구현 되기때문입니다. 2. 슬라이드와같이 FC 17 에서두개의새로운렁에 FB 20 이두번호출됩니다. 편 집기에서인스턴스 DB2 와 DB3 을생성하십시오. 3. 변경된 FC 17을오프라인에서저장하십시오. 4. 생성된 DB2 와 DB3 을 SIMATIC Manager 에서 CPU 로다운로드하십시오. 이후 변경된 FC 17 을다운로드하십시오. 5. 사용자프로그램을테스트하십시오. 과제 2 오류해석에대한 Function Block 을성공적으로테스트한후에다음프로세스신호를시뮬레이터스위치대신에오류신호로사용할수있습니다. - 비트메모리신호 M 17.0 "Conveyor belt fault condition" - 근접스위치 1 번베이와 2 번베이를자동모드로동시에동작을시키십시오. 두번째작업은다음연습문제로이어지지않습니다. 페이지 17

블록파라미터삽입과삭제 Save File: PRO1_12E.18 문제 프로그램생성중에혹은프로그램실행중에각블록의선언부나프로그램을추후에조정하거나추가하려고할때 "Time Stamp Conflict" 가발생합니다. Time Stamp Conflicts 는호출블록과호출된블록이나관련블록사이의내용이서로같지않은문제를차례로발생시킬수있기때문에많은수정작업이필요해집니다. 블록파라미터가추후에프로그램에서이미호출된블록에서추가되거나삭제될때다른블록에서의블록호출도업데이트되어야만합니다. 이것이무시되면 CPU 는 STOP 으로전환됩니다. 혹은추가적으로선언된형식파라미터가호출될때실제파라미터에적용되지않기때문에블록의기능은더이상보증할수없게됩니다. 예제에서추가적인입력파라미터 "Check_Light" 가삽입이되었고나중에모든블록호출시실제파라미터가할당이됩니다. 형식파라미터가추가되거나삭제된블록을저장할때일어날수있는경고메시지가나타납니다. 페이지 18

블록 Consistency 체크 블록 inconsistency File: PRO1_12E.19 사용영역 트리구조보기 Check block consistency -> Compile 기능은모든 Time stamp conflict 를제거하고블록불일치를체크합니다. 인터페이스충돌은파라미터지정블록이생성이되고다른블록에서호출이된이후추가적으로수정이될때발생합니다. 블록불일치는또한어드레스가심벌로엑세스되고그후글로발심벌테이블이나데이타블록에서심벌 <-> 절대어드레스가변경되었을때발생합니다. 슬라이드에서는일부블록들에불일치가생기고 ( 예 : 인터페이스충돌 ) 이것을가리키는심벌이나타나있습니다. ( 온라인도움말참조 ) 이러한블록들은오픈이될수있고오른쪽마우스버튼을사용하여교정이될수있습니다. ( 다음페이지참조 ) 트리구조보기는선택된블록폴더에있는블록들의연관성을보여줍니다. 트리구조보기는 View -> Reference Treee / Dependency Tree 를통해 Depency Tree 나혹은 Referece Treee 로표시될수있습니다. Reference Tree ( 레퍼런스트리 ) 레퍼런스트리는왼쪽에서오른쪽으로모든블록과호출관계를레벨별로보여줍니다. Reference Data Program Structure 처럼호출관계가왼쪽에서오른쪽으로처음호출레벨 1 번부터보여줍니다. 그러므로레퍼런스트리는각프로그램실행레벨의호출에대해전체보기를제공해줍니다. Dependency Tree ( 디펜던시트리 ) 디펜던시트리는왼쪽에서오른쪽으로모든블록과호출관계를레벨별로보여줍니다. 이경우보여지는호출관계는호출레벨 1 번부터는아니고개별적인블록에서부터보여줍니다. 따라서블록폴더에있는모든블록은왼쪽레벨에모두리스트됩니다. 다음레벨 ( 오른쪽으로 ) 은호출되는블록들혹은의존성을보여줍니다. Reference Data -Cross reference list 와같이디펜던시트리는어느블록을호출하였는가에대한정보를제공합니다. 페이지 19

수정된블록호출 Once with the right File: PRO1_12E.20 호출업데이트 일치하지않는블록호출은호출한블록에서적색으로표시됩니다. 일치하지않는호출을오른쪽마우스로클릭하고나타나는다이알로그박스에서 Update Block Call 을선택하십시오. 이전블록 ( 오류가있는블록 ) 과새로운블록 ( 슬라이드에서 "Check_Lights" 의파라미터가추가됨 ) 호출을보여주는윈도우가나타납니다. "OK" 로확인을한후빠져있는 "Check_Lights" 형식파라미터에실제파라미터를입력합니다. 인스턴스 DB 가 Function Block 에대해다시생성이됩니다. 페이지 20

의비교 CALL FC 10 On_1 := I 0.1 On_2 := I 0.2 Off := Q8.0 프로그램 Function FC10 in On_1 BOOL in On_2 BOOL out Off BOOL...... A #On_1 A #On_2 = #Off... 실행 CALL FB5, DB5 Start :=I 0.0 Stop :=I 0.1 Motor_on :=Q8.0 Speed :=QW12 FB 5 in Start BOOL in Stop BOOL out Motor_on BOOL out Speed INT stat... Temp...... A #Start AN #Stop = #Motor_on... DB 5 0.0 Start BOOL 0.1 Stop BOOL 2.0 Motor_on BOOL 4.0 Speed INT 드라이브 File: PRO1_12E.21 Functions 사용영역 Function Blocks "Memory Fuctions 은메모리가없는파라미터지정블록입니다. STEP 7 에서 Function 은필요한대로입력, 출력, 입 / 출력파라미터를가질수있습니다. Functions 는자체적으로결과를저장하는데이터영역을가지고있지않기때문에메모리가없습니다. Function 을실행하면서발생하는중간결과는로컬데이터스택의 Temporary 변수에저장이되면됩니다. Function 은기존의방법대로프로세서의명령어군을확장합니다. Functions 는블록을호출하면서 Function 값이다시돌아올때주로사용합니다. ( 수학적 Function 이나이진로직이있는개별제어와같은 Function) Function Blocks (FB) 은사용자프로그램블록이며 IEC 61131-3 을따르고있는메모리가있는로직블록입니다. OB, FB,FC 에서호출될수있습니다. Function Blocks 는필요한대로 Static 변수, Temporary 변수를비롯입력, 출력, 입출력변수를가질수있습니다. FC 와는다르게 FB 는메모리가있습니다. 즉, 하나의 FB 는자체데이터영역을가지고있습니다. 그래서프로세스상태를하나의호출에서다음호출까지기억할수있습니다. 가장단순한형태로이자체데이터영역이 DB 안에있게되며이 DB 를인스턴스 DB 라고부릅니다. Function Blocks 의선언테이블에서사용자는 Static 변수를선언하고처음호출에서다음호출까지이정보를기억합니다. 이것이 Function 과주로다른점입니다. 페이지 21

연습문제 5 : 변수타입인식 Statement L #Number_1 L #Number_2 T #Maximum_value L "Number_1" TMW 40 TMW #Number_2 40 Global Local Absolute Symbolic Static Parameter File: PRO1_12E.22 과제 슬라이드의명령문영역에서여러변수들을볼수있습니다. 아래테이블에서는해당속성을변수에할당시킵니다. 절차테이블에서관련데이터유형을 X 자로표시하십시오. 다음질문에답하십시오. 명령문 T #Number_2 에서무엇이틀렸습니까?......... 페이지 22

EN/ENO 사용 LAD/FBD STL FC 1 무조건적인호출... EN ENO CALL FC 1 NOP 0 조건적인호출 I 0.1 FC 1 EN ENO Q5.0 = A I 0.1 JNB _001 CALL FC 1 _001: A BR = Q 5.0 예 ADD_I MUL_I DIV_I Q 5.1... EN ENO EN ENO EN ENO = File: PRO1_12E.23 표준 FC 표준 FC 를실행할때다음과같은규칙이있습니다. - EN =0 이면블록은실행을하지않으며 ENO = 0 입니다. - EN =1 이면블록은실행을하며에러없이실행이되면 ENO 도 1 입니다. 블록이실행되는동안에러가발생하면 ENO 는 0 가됩니다. 사용자 FC 내부연결 사용자블록이 LAD/FBD 로작성이되었는지 STL 로작성이되었는지는문제가되지않습니다. LAD/FBD 에서호출이될때는 EN 과 ENO 가추가가됩니다. EN/ENO 는 STL 프로그램에서는존재하지않습니다. 그러나에뮬레이션을할수는있습니다. 프로그램언어와상관없이에러처리에프로그램은작성되어야합니다. LAD/FBD 에서여러개의박스가그룹이지어질수있으며 EN/ENO 를통해논리적으로링크될수있습니다. 페이지 23

정리 : 블록호출 언어 파라미터가없는경우 FC 파라미터가있는경우 파라미터, Static 없는경우 FB 파라미터, Static 있는경우 STL CALL FC1 UC FC1 CC FC1 CALL FC2 Par1:... Par2:... Par3:... UC FB1 CC FB1 CALL FB2, DB3 Par1:... Par2:... Par3:... LAD FC1 ( CALL ) FC1 EN ENO FC2 EN ENO Par1 적용되지않음 DB3 FB2 EN ENO Par1 Par2 Par3 Par2 Par3 FBD FC1 CALL FC1 EN ENO FC2 EN Par3 Par1 Par2 ENO 적용되지않음 DB3 FB2 EN Par3 Par1 ENO Par2 File: PRO1_12E.24 CALL UC CC 절차파라미터 CALL 명령은프로그램을호출할때사용합니다. 그래픽프로그래밍언어인 LAD 와 FBD 에서블록호출은 CALL 박스의 EN 입력을사용하여 RLO 의조건에따라실행되도록이루어질수있습니다. STL 프로그래밍언어에서블록호출은 RLO 와상관없이이루어집니다. FB 혹은 SFB 를 CALL 명령어로호출하면연관되는인스턴스 DB 를지정해야만합니다. 이블록을절대이름이나심벌이름으로사용할수있습니다. 예 : "CALL FB2, DB2" 혹은 "CALL valve, level "UC" 명령은 FC,FB 블록을무조건적으로호출하는것입니다. UC 는호출된 FC 나 FB 가파라미터지정블록이아닌경우에만사용됩니다. 또한 UC 로호출되는 FB 에서는 Static 변수가선언될수없습니다. "CC" 명령은 FC 혹은 FB 블록을조건적으로호출할때사용됩니다. CC 는호출된 FC 혹은 FB 가파라미터지정블록이아닌경우에만호출됩니다. 또한 CC 로호출되는 FB 에서는 Static 변수가선언될수없습니다. UC 와 CC 명령은래더와 FBD 로변환되지않습니다. 또한프로그램편집기에서파라미터지정블록에서 UC 나 CC 호출을허용합니다. 그러나이프로그램이다운로드가되면 "AREA ERROR when Reading" 이라는시스템오류가발생합니다. 블록의선언테이블에서선언된형식파라미터는블록의인터페이스입니다. 파라미터지정 FC 가호출되면실제파라미터는반드시모든형식파라미터에할당되어야합니다. FB 가호출이될때는이러한파라미터는반드시입력이되어야하는것은아닙니다. Static 변수와 Temporary 변수는파라미터가아닙니다. 그리고블록인터페이스의일부분이아닙니다. 그결과블록호출에서 Static 이나 Temporary 변수로입력되어야하는파라미터는없습니다. 페이지 24