File: PRO1_15E.1 차례... 2 교육목표... 3 에러의종류..... 4 STEP7 디버깅툴... 5 시스템진단... 6 CPU 메시지디스플레이... 7 "Module Information 기능... 8 Module Information 탭 : "Diagnostic Buffer" ( 진단버퍼 )... 9 Diagnostic Buffer( 진단버퍼 ) 에서의에러메시지... 10 에러블록열기... 11 I 스택, B 스택, L 스택진단... 12 B 스택... 13 I 스택... 14 L 스택... 15 하드웨어진단디스플레이... 16 연습문제 0: STOP 에러찾기와제거하기... 17 연습문제 1: 잘못된프로그램복사와트러블슈팅준비... 18 연습문제 2: STOP 트러블슈팅...... 19 "Monitor/Modify Variable" 기능... 20 "Monitor/Modify Variable" 트리거포인트... 21 변수테이블열기와 CPU 연결... 22 "Monitor" 기능... 23 "Block Debug > Monitor 정보... 24 Reference Data ( 레퍼런스데이터 )... 25 Program Structure ( 프로그램구조 )... 26 페이지 1
File: PRO1_15E.2 차례 Cross Reference ( 크로스레퍼런스 )... 27 Cross Reference ( 크로스레퍼런스 ) 필터링... 28 Cross Reference ( 크로스레퍼런스 ) 를통한블록수정... 29 Go To Location 기능... 30 Reference Data ( 레퍼런스데이터 ) 에서의찾기기능... 31 I, Q, M, T, C 어사인먼트 ( 사용상태 )... 32 Unused Symbol ( 사용하지않은심벌 )... 33 Compare Block ( 블록비교 ) (1)... 34 Compare Block ( 블록비교 ) (2)... 35 Enable Peripheral Ouput (STOP 상태에서의출력값수정 )... 36 연습문제 3: 모터조그테스트... 37 연습문제 4: 수량디스플레이테스트... 38 연습문제 5: 폴트평가테스트 3... 39 Force 기능... 40 추가내용... 41 Process 모드와 Test 모드... 42 블록모니터링을위한트리거조건 (1)... 43 블록모니터링을위한트리거조건 (2)... 44 Breakpoint 를통한프로그램테스트 (1)... 45 Breakpoint 를통한프로그램테스트 (2)... 46 고장탐구를위한솔루션... 47 STOP 상태에대한고장탐구... 48-51 페이지 2
교육목표... 시스템에서인식하는에러와기능적인에러를이해합니다.... Display CPU messages 기능을이해합니다... Diagnostic buffer 의해석과고장탐구활용을이해합니다.... I 스택, B 스택, L 스택을이해합니다.... 하드웨어를진단합니다.... "Monitor / Modify Variable" 테스트기능을사용합니다.... LAD/STL/FBD 편집기에서 "Monitor" 화면의해석과고장탐구활용을이해합니다.... 레퍼런스데이터를해석하고고장탐구에활용합니다.... "Force" 기능을이해합니다. File: PRO1_15E.3 페이지 3
에러의종류 시스템에서체크되는에러 PLC 에러에대한기록, 해석, 통보 ( 일반적으로 CPU는 STOP 상태가됨 ) 모듈고장 신호케이블쇼트 스캔타임초과 프로그래밍에러 ( 존재하지않는블록엑세스 ) 기능적인에러 원하는기능이이루어지지않거나정확하지않게실행됨 프로세스폴트 ( 센서 / 엑추에이터, 케이블고장 ) 논리적인프로그래밍에러 ( 생성과처음구동중에는체크되지않음 ) File: PRO1_15E.4 모니터링기능 진단은기계나시스템운전시매우중요합니다. 진단은보통발생한문제로인해공장이멈추거나정확한기능을내지않을때필요합니다. 공장이멈추거나고장으로인해비용손실이계속발생하기때문에관련문제의원인이빨리밝혀지고제거되어야합니다. 에러의분류 에러는그것들이 PLC 에의해인식이되는가그렇지않은가에따라두가지로나누어질수있습니다. -PLC 운영시스템에의해인식되는에러는보통 CPU 를 STOP 상태로만듭니다. - 기능적인에러는 CPU 가프로그램을실행하다가원하는기능이실행되지않거나정확하지않게실행될때발생합니다. 두가지유형의에러가있습니다. - 프로세스오류 ( 전기와이어링오류같은에러 ) 센서 / 액추에이터까지의케이블이나혹은센서액추에이터자체의고장과같이프로세스제어에직접영향을미치는모듈이고장날때발생하는오류 - 논리적인프로그래밍에러 ( 어드레스이중할당같은에러 ) 초기프로그램이생성되고구동이될때는발견되지않다가아주간혹발생하는프로그램상의에러입니다. 페이지 4
STEP7 디버깅툴 Fehler 시스템에서체크되는에러 : 일반적으로 CPU 는 STOP 상태가됨 ( 존재하지않는 DB 를엑세스할때 ) (I/O 모듈의진단인터럽트 ) 디버깅툴 : Module Information - 진단버퍼 - I 스택 - B 스택 - L 스택 하드웨어진단 에러원인과상관없이다음을사용할수있습니다 Force 기능 Enable peripheral outputs 기능 ( 출력변경시 ) Set breakpoints 기능 기능적인오류 : 일반적으로 CPU 는 RUN 상태를유지 ( 와이어브레이크같은프로세스오류 ) ( 메모리중복지정등논리적인프로그래밍에러 ) 디버깅툴 : Monitor / Modify Variable 프로그램온라인모니터링 레퍼런스데이터기능 - 크로스레퍼런스 - I/Q/M/T/C 어사인먼트상태 - 프로그램구조 - 심벌지정이안된어드레스 - 사용하지않는심벌 File: PRO1_15E.5 Test Functions... 를사용 STEP 7 에는발생한에러타입에따라몇가지고장탐구를위한테스트기능이있습니다. CPU 가 STOP 상태가되었을때시스템에의해에러가인식되었을때진단버퍼 (Diagnostic Buffer), I 스택, B 스택, L 스택등의테스트기능등은에러가발생한프로그램부분과에러원인에대한자세한정보를보여줍니다. 프로그래밍에러 OB(Orgarnization Block 참조 ), 발생한에러정보들은 CPU 가 STOP 으로스위치되는것을막을수있게해줍니다. CPU 가 STOP 이되면프로세스이미지데이타를읽거나쓸수없으며프로그램을더이상실행할수없기때문에 Monitor/Modify varaible 이나 Monitor Blocks 같은테스트기능들은사용할수없게됩니다. CPU 가 RUN 상태가되었을때 CPU 가 RUN 상태일때는 I 스택, B 스택, L 스택과같은테스트기능은사용할수없는데이는프로그램실행이멈추지를않았고이로인해시스템은발생한에러에대해어떤정보도제공할수없기때문입니다. Module information 테스트기능은단지과거에발생한에러혹은 CPU 운전모드에대한일반적정보를제공합니다. 기능적인에러는다음과같이진단이될수있습니다. 프로세스오류 ( 전기와이어링오류와같은에러 ) - 입력와이어링테스트 : Monitor Variable - 출력와이어링테스트 : Enable Peripheral Output (CPU 가 STOP 상태일때만 ) 논리적인프로그래밍에러 ( 어드레스이중할당과같은에러 ) - Enable Peripheral Output 기능을제외한모든테스트기능이논리적인프로그램에러를찾기위해사용될수있습니다. Force Breakpoints 프로그램로직과상관없이어드레스를강제로제어합니다. 싱글스텝별로프로그램을실행시킵니다. 위두기능이프로그램설계중에가장많이사용되는기능입니다. 페이지 5
시스템진단 CPU 진단기능이시스템에러체크 CPU 진단기능이사용자프로그램에서에러체크 CPU 진단인터럽트 I/O 모듈 진단기능이있는모듈에서에러감지및진단인터럽트발생 에러 OB 진단버퍼 시스템상태리스트 CPU messages File: PRO1_15E.6 시스템진단 시스템반응 CPU Message PLC 모듈들이올바로작동하고있는가에대한모니터링기능이시스템진단하에같이그룹화되어있습니다. 모든 S7 CPU 는고기능진단시스템을내장하고있습니다. 시스템진단을통해진단데이터를보는것은별도의프로그램이필요가없습니다. 그프로그램은 CPU 의운영시스템과진단기능이장착된모듈에내장되어있으며자동적으로실행이됩니다. CPU 는진단버퍼 (Dignostic buffer) 에발생된에러들을저장함으로써서비스요원이빠르게에러진단을할수있게해줍니다. 간헐적으로발생하는에러에대해서도진단이가능합니다. 운영시스템은에러를감지하거나 CPU가 STOP 이되는상황이발생했을때다음과같이동작합니다. - 발생한에러및관련메시지를날짜와시간과함께진단버퍼 (Diagnostic buffer) 에저장합니다. 진단버퍼 (Diagnostic buffer) 는에러를 FIFO 형식으로저장합니다. 진단버퍼 (Diagnostic buffer) 의크기는 CPU 에따라다릅니다. (314 CPU 의경우 100 개에러를저장할수있습니다 ) FIFO 버퍼구조에서는가장최근에발생한메시지가가장오래된메시지를오버라이트 (Overwrite) 합니다. 진단버퍼 (Diagnostic buffer) 는 CPU 메모리리셋에의해삭제되지않습니다. - 모듈의시스템상태에대한정보를주는시스템상태리스트 (System Status List) 를업데이트시킵니다. - 이에러와관련된 OB 가호출됩니다. 에러 OB 를통해에러발생시필요한조치를할수있게합니다. CPU 가 STOP 이될때는정지된원인을관련디스플레이기기 (PG 나 OP) 에알리기위해하드웨어구성의 "Diagnostic /Clock" CPU 속성에있는 "Report Cause of STOP" 기능이동작합니다. 페이지 6
CPU 메시지디스플레이 File: PRO1_15E.7 CPU Message Module 이기능을사용하면프로그래밍로더 (PG) 나 HMI 기기에서시스템이가지고있는에러메시지를즉시로디스플레이할수있습니다. CPU 진단기능이에러를감지하는즉시로더 (PG) 나 OP 상에메시지윈도우가나타나게됩니다. 사용자가지정한형식의메시지도 SFC 52 WR_USMSG 시스템기능으로디스플레이시킬수있습니다. 윈도우윗부분끝에서 SIMATIC Manager 에서 PLC -> CPU Message 메뉴로호출된모든 CPU 가리스트에입력됩니다. 이리스트는네개의부분으로나누어집니다. 1. 첫번째란에서는외부기기에의해인터럽트되었는지를보여줍니다. 2. W 란에서는시스템진단과사용자진단메시지를활성화시키거나 / 비활성화시킵니다. 3. A 란에서는인터럽트메시지를활성화시키거나 / 비활성화시킵니다. 4. "Module" 란에서는모듈의이름이나 S7 프로그램의패스가입력됩니다. 입력이되는메시지 (Incoming message) 다음옵션들이 View 메뉴를통해선택될수있습니다. - Place on Top : 메시지를받으면 "CPU Message" 윈도우가윗쪽에팝업으로나타나고메시지가디스플레이되며동시에메시지아카이브에입력이됩니다. - Leave in the background : 메시지가백그라운드로들어오게됩니다. 메시지는윈도우에나타나지만윈도우는백그라운에남아있습니다. 메시지는아카이브되고필요할때디스플레이될수있습니다. - Ignore Message : 메시지가디스플레이되지않고아카이브도되지않습니다. Archive 다음설정을통해아카이브크기 (40 에서 2000 개메시지 ) 를설정하거나아카이브를삭제할수있습니다. Options -> Customize -> Customize - CPU Messages 페이지 7
"Module Information" 기능 SIMATIC Manager LAD/STL/FBD 편집기 Module Information File: PRO1_15E.8 개요 Module Information CPU 는프로그램없이빠르게에러를감지하고처리하며제거하도록관련정보를제공해줍니다. 고장탐구에필요한정보를다음메뉴를통해볼수있습니다. PLC -> Diagnostic/Setting ->Module Information 사용자는 SIMATIC Manager 나 LAD/STL/FBD 편집기에서이기능을사용할수있습니다. Module Information 기능은연결된모듈에서가장중요한데이터를직접읽어옵니다. Module Information 의각탭에서자세한정보를볼수있습니다. General : 모듈에관한일반적인정보, 하드웨어와펌웨어버전을보여줍니다. Diagnostic Buffer : 발생된순서대로모든진단이벤트를보여줍니다. 모든이벤트가일반적인텍스트로발생한순서대로디스플레이됩니다. Memory : EPROM 로드메모리, 램로드메모리, 워크메모리의크기와사용된양을보여줍니다. Scan Cycle Time : 현재의스캔타임, 가장짧은스캔, 가장길었던스캔타임을보여줍니다. Time System : 리얼타임클록과내장되어있는런타임미터 (Run-time meter) 를보여줍니다. Performance : 사용가능한어드레스영역, 내장된시스템블록, 사용가능한 OB 블록을보여줍니다. Communication : 통신인터페이스와통신연결에대한 Performance 데이터를보여줍니다. Stacks : I 스택, B 스택, L 스택의내용을보여줍니다. 이를보려면 CPU 가 STOP 상태가되거나혹은브레이크포인트에있어야합니다. 페이지 8
Module Information 탭 : "Diagnostic Buffer" ( 진단버퍼 ) File: PRO1_15E.9 Diagnostic Buffer Details on Event Help on Event Open Block 진단버퍼 (Diagnostic Buffer) 는 FIFO 형식의버퍼이며 CPU 의배터리로백업이됩니다. 진단버퍼 (Diagnostic buffer) 는발생한순서대로에러와이벤트를저장합니다. 메모리리셋시지워지지않습니다. 사용자는로더를통해발생된에러와이벤트를일반적인텍스트형식으로볼수있습니다. 하나의이벤트를선택하면다음과같은추가적인정보가다음과같이 "Details on Event" 박스에생성됩니다. - 이벤트 ID 와이벤트번호 - 발생된블록타입과번호 - 이벤트가발생된명령어의 STL 어드레스 ( 예를들면모듈어드레스 80) 와같은추가적인정보 버튼을클릭하면리스트에서선택된 Help on Event 가나타납니다. 위슬라이드에서는프로그래밍에러가발생되었음을볼수있으며에러 OB(OB 121) 가 CPU 에프로그램되지않았습니다. 버튼을클릭하면인터럽트가발생한블록이온라인으로오픈됩니다. ( 위예에서는 FC 18) Module Information 사용자는 SIMATIC Manager 나프로그램편집기에서 PLC -> Diagnostic/Setting -> Module Information -> Diagnostic buffer 메뉴로오픈할수있습니다. 페이지 9
Diagnostic Buffer ( 진단버퍼 ) 에러메시지 File: PRO1_15E.10 개요 에러해석 리스트의가장윗쪽에는최종입력된에러가나타납니다. 시간을통해어느에러메시지가같은그룹에포함이되는지를알수있습니다 ( 슬라이드의이벤트번호 1번과 2 번 ). 위예에서재시동 (Warm Restart) 은에러가발생하기전에이루어졌습니다 ( 이벤트번호 3번에서 5번 ). 재시동이후에러가발생을하고이벤트 1번과 2번을발생시켰습니다. 이벤트 1번 : CPU 에관련에러OB (OB 121) 가로드되지않았기때문에CPU가 STOP 상태로전환됩니다. "Details" 는이벤트발생지역을보여줍니다. 즉 OB1, 관련블록, 에러가발생한명령어의어드레스 (FC 80, 블록어드레스 80번 ) 를보여줍니다. 이벤트 2번 : 에러의원인을볼수있습니다 (BCD 변환에러 ). "Detail" 로들어가면잘못된 BCD 번호가어큐뮬레이터 1 에저장이되었음을볼수있습니다. 또한에러 OB (OB 121) 가이에러발생시 CPU 운영시스템에의해호출되었음을볼수있습니다. 에러 OB 에러처리를위해다음과같은에러 OB 가사용됩니다. - OB 81 : 전원공급장치오류 ( 백업배터리오류 ) - OB 82 : 자긴진단인터럽트 ( 배선끊김혹은모듈그라운드오류등 ) - OB 84 : CPU 하드웨어오류 (MPI 인터페이스에서의정확하지않은신호레벨, S7-400 만해당 ) - OB 85 : 프로그램실행에러 ( 프로세스이미지업데이트에러 ) - OB 86 : 분산랙혹은 DP 슬레이브오류 - OB 87 : 통신에러 ( 정확하지않은프레임 ID) - OB 121 : 프로그래밍에러 (BCD 변환에러, 호출된블록이없음등 ) - OB 122 : 엑세스에러 (Move 명령어에서존재하지않거나고장난 I/O 로데이터를 Move 했을경우등 ) OB 블록은각해당단원에서다루어집니다. 페이지 10
에러블록열기 File: PRO1_15E.11 블록열기 동기화 (synchronous) 에러, 즉사용자프로그램에서잘못된명령어에의해발생한에러는 "Open Block" 버튼을클릭함으로써해당블록을오픈할수있습니다. STL 언어에서는커서가에러를발생시킨명령어앞으로이동합니다. LAD/FBD 에서는에러가발생된네트워크 ( 렁 ) 번호가보여줍니다. 위예에서 IW2 섬휠스위치에서읽어진데이터가 BCD 정수로변환됩니다. 이것은올바른 BCD 숫자가아니기때문에어큐뮬레이터 1 상에서정수로변환이될수없습니다. 이경우 I 스택을보게되면올바른 BCD 숫자가무엇이어야하는지알수있습니다 ( 다음페이지를참조하십시오 ). 에러는 FC 18 블록, 5 번네트워크 ( 렁 ) 에서발생했습니다. 페이지 11
Program structure( 프로그램구조 ) I 스택, B 스택, L 스택진단 에러가발생한블록 인터럽트발생지점 B 스택은인터럽트가걸리기전까지실행되었던블록들을보여줍니다 인터럽트발생지점 I 스택에서인터럽트발생당시의어큐뮬레이터, 레지스터, 상태워드등을볼수있습니다 L 스택에서인터럽트가발생할당시의임시변수값을볼수있습니다 File: PRO1_15E.12 개요 B 스택 동기화 (synchronous) 에러의경우환경에따라다르지만스택에담긴내용 (I 스택, B 스택, L 스택 ) 을통해에러원인에대한추가정보와에러의발생한위치를보여주는것이가능합니다. 이경우 CPU 가 STOP 이될때어큐뮬레이터에어떤값이저장이되었는가를확인함으로에러원인을찾아낼수있습니다. 블록은프로그램시여러번호출될수있습니다. 이경우에러가발생된블록과명령어, 호출관계가명확하지않을수있습니다. B 스택은 STOP 이되었을당시호출은되었으나프로그램수행을마치지못한모든블록을보여줍니다. I 스택 I 스택은인터럽트가발생될때의레지스터내용을보여줍니다. - 어큐뮬레이터와어드레스레지스터의내용 - 오픈된데이터블록 - 상태워드내용 - 프로그램실행레벨 (OB1 이나혹은 OB10) - 인터럽트된블록의네트워크 ( 렁 ) 번호와명령어번호 - 실행될다음블록 L 스택 L 스택은블록의 temporary 변수값을보여줍니다. 이러한데이터는일반텍스트가아닌 16 진수이기때문에해석하는데에경험이필요합니다. 페이지 12
B 스택 File: PRO1_15E.13 스택스택정보가나타나려면다음과같은이유로 CPU 가 STOP 상태가되어야합니다. - 프로그램에러 -STOP 상태가되도록프로그램되었을때 - 브레이크포인트에있을때 B 스택 Open Block 블록스택 (B 스택 ) 은호출단계를그래픽으로보여줍니다. 에러가발생하는지점까지의호출단계가나타납니다. B 스택은오픈된 DB, 에러 OB, 모든인터럽트된블록리스트를보여줍니다. 블록에서인터럽트된프로그램블록이리스트아래쪽에나타납니다. 슬라이드에서는 FC 18 블록에서인터럽트가발생했음이보여집니다. 파라미터를지정할수있는블록이여러번호출될때는프로그램실행이인터럽트된블록호출후의정보가고장탐구에관련이있게됩니다. 왜냐하면인터럽트의원인이잘못된실제 (actual) 파라미터를전달하면서발생하기때문입니다. 블록을온라인에서오픈하려면 B 스택리스트에서블록을선택하고 "Open Block" 버튼을클릭합니다. 블록을오픈한후에프로그램을수정할수있습니다. 커서가인터럽트를발생시킨명령어에위치하게되고 LAD/FBD 에서는인터럽트된네트워크 ( 렁 ) 가표시가됩니다. 페이지 13
I 스택 File: PRO1_15E.14 I Stack (I 스택 ) 인터럽트스택 (I 스택 ) 은항상실행레벨을참조합니다. I 스택을열기전에관련된 OB 블록이 B 스택에서선택되어야만합니다. Register ( 레지스터 ) 인터럽트된시점의관련레지스터내용이 I 스택화면에나타납니다. - Accumulator ( 어큐뮬레이터 ) "Display format" 리스트에서어큐뮬레이터의내용을디스플레이하기위한포맷를선택할수있습니다. - Address Register ( 어드레스레지스터 ) "Display format" 리스트에서어드레스레지스터의내용을디스플레이하기위한포맷을선택할수있습니다. - Status word ( 상태워드 ) 상태워드 0 에서 7 번까지의비트가디스플레이됩니다. Point of Interruption ( 인터럽트포인트 ) "Point of Interruption" 영역은다음과같은정보를제공합니다. - 인터럽트블록 (Interrupted Block). 그것을직접오픈하는옵션 ( 커서는오류명령어앞으로직접이동합니다 ) 버튼 -OB 의우선권등급 (Priority Class). 어느실행레벨이인터럽트되었는가보여줌 - 오픈된데이터블록, 데이터블록번호와크기도보여줌 에러예제 예제에서 16 진수값 0000 11C7 이어큐뮬레이터 1 에저장되어있는것을볼수있습니다. 이것은올바른 BCD 값이아니며이런이유로변환에러가 BCD 에서정수로변환이될때발생했습니다. (BTI 명령어 ) 이에러는섬휠스위치를작동하다가발생했습니다 ( 기계적인결함 ). 에러를제거하려면임시접점스위치를사용하여설정된값을확인하고변환이이루어지도록프로그램을해야합니다. 페이지 14
L 스택 File: PRO1_15E.15 L Stack 에러예제 어플리케이션예 인터럽트가발생할당시프로그램을마치지못한블록들의임시변수 (Temporary Variable) 값들이 L 스택에저장됩니다. CPU 가 STOP 로전환되었을때프로그램을마치지못한블록들이블록스택 (B 스택 ) 에리스트됩니다. L 스택윈도우에나타난로컬데이타는 B 스택에서선택된블록번호와같습니다. 위예제에서임시변수 (Temporary Variable) #Setpoint 는 FC 18 블록에서정수로선언되었습니다. 따라서이 L 스택에서 2 바이트를차지합니다. FC 블록의변수선언테이블에서 L 스택변수의초기어드레스가 "Address" 란에디스플레이됩니다. #Setpoint 변수는 L 스택의바이트 0 과 1 을차지하며따라서 CAFE(hex) = - 13570 (dec) 값을갖게됩니다. 특별한추가정보가 OB 의임시변수 (Temporary Variable) 에저장이됩니다. 위예에서 OB 121 를통해예상되는에러가 BCD 변환에러임을알수있습니다. 해당자료를 "OB 121_SW_FLT" 변수에서찾을수있고해당식별코드가프로그래밍관련에러에대해입력이됩니다. 페이지 15
하드웨어진단디스플레이 twice File: PRO1_15E.16 하드웨어진단 이기능은온라인으로엑세스할수있는스테이션을보여주며해당모듈의동작모드상태를나타내줍니다. 사용자는진단심벌을통해관련모듈의상태나 CPU 동작모드에대한정보를볼수있습니다. 심벌을더블클릭하면세부화면이나타나고더자세한내용을볼수있습니다. 위에서보여진예제에서아나로그입력모듈 ( 슬롯 7) 이진단인터럽트를발생시켰고그결과 CPU 는 STOP 상태로전환되었습니다. 따라서 CPU 와아나로그두모듈에는진단심벌이주어지게되었습니다. CPU 를더블클릭하면진단버퍼 (Diagnostic buffer) 를볼수있습니다. 아나로그모듈을더블클릭하면진단관련데이타를볼수있습니다. 위예에서는아나로그모듈의외부전압장치에고장이났음을알수있습니다. 진단화면열기다음과같이 Function 을호출할수있습니다. - SIMATIC Manager 에서 - PLC -> Diagnostic/Setting -> Hardware Diagnostic 메뉴를클릭합니다. - 스테이션의 Hardware 아이콘을더블클릭하여나타나는 Online view 메뉴를선택합니다. - HW Config 에서 Online 아이콘을누름으로써스테이션을엽니다. Customerizing Setting SIMATIC Manager 에서 Options -> Customize -> View 메뉴를선택하고 "Display Quick View when Diagnostic Hardware" 체크박스를동작을시키면전체 "Diagnosing Hardware" 화면대신에오류가생긴모듈리스트가디스플레이됩니다. 참조 사용자는 아나로그데이터값처리 단원에서이테스트기능에대한실제적인어플리케이션예를볼수있습니다. 페이지 16
연습문제 0 : STOP 에러찾기와제거하기 단계 1 2 작업 CPU 에서지금까지생성한사용자프로그램을삭제합니다. ( 메모리리셋이아닙니다!) CPU 와 PG 사이를 MPI 로연결합니다.. 결과 CPU 에있던사용자프로그램이삭제됩니다. CPU 하드웨어구성이그대로있습니다. MPI 로 CPU 에접근할수있습니다. 3 4 "TIA_PRO1_Participant" 프로젝트의모든블록을다운로드합니다. "Error program" 프로그램을 CPU 로다운로드합니다. 웜재기동을수행합니다. CPU 를 STOP 시킨에러원인을찾아서제거합니다. 오류프로그램이다운로드되고웜재기동을시키면 CPU 가 STOP 상태가됩니다 CPU 가 RUN 상태를유지합니다. File: PRO1_15E.17 과제 절차 "TIA_PRO1_Participant" 라고부르는 S7 프로그램에서 "Error program" 이라는 S7 프로그램은기본적으로는사용자가지금까지프로그램한것과같은것입니다. 여기에사용자가찾고제거해야할세가지 STOP 에러가있고에러들을제거한후에는 CPU 가 RUN 상태로돌아와야합니다. 모든 STOP 에러를제거한후에는 CPU 를재기동 (Warm restart) 시켜야합니다. 제기동후에 CPU 가다시 STOP 으로돌아간다면또다른 STOP 에러가존재하는것입니다. 참조터치패널 TP 170B 와 Micromaster 420 에는에러가없습니다. 페이지 17
연습문제 1: 잘못된프로그램복사와트러블슈팅준비 1 2 File: PRO1_15E.18 작업 잘못된 S7 프로그램은작성되었습니다. 그것은현재완료된 S7 프로그램의기능을정확하게실행합니다. 그러나, 프로그램은다음연습문제에서찾아내고수정하게될에러 (3 개의 STOP 오류와 3 개의논리오류 ) 를포함합니다. 방법잘못된프로그램의복사 : ( 위의그림을참고하십시오 ) 1. "My_Program" S7 프로그램사본을생성하고 "Backup_Copy 로이름을바꾸십시오. 2. "PRO1_B 프로젝트의 S7 프로그램 Ch14_Fault 를당신의프로젝트의 SIMATIC 스테이션 CPU 에직접복사하십시오. 트러블슈팅을위한준비 : 3. S7 프로그램 "Ch14_Fault 는지금 CPU 에할당되었고, 시스템데이터는존재하지않습니다. SIMATIC 스테이션과의 HW Config 를열어서시스템데이터를재생성합니다. Save and Compile 을사용해서시스템데이터를재생성할수있습니다. 4. 온라인에서 CPU 의모든블록을삭제합니다. SIMATIC Manager CPU 의 Blocks folder 를선택 온라인보기로변경 모든블록선택 삭제 5. CPU 메모리리셋을실행하십시오. 6. 메모리가 CPU 에서리셋된후에는 PROFIBUS 인터페이스의파라미터설정은더이상유효하지않습니다. CPU 로잘못된프로그램을다운로드하기위하여 PG 인터페이스를 MPI 로바꾸고 CPU 의 MPI 인터페이스에 PG 케이블을연결하십시오. 7. S7 프로그램 "Ch14_Fault 의모든블록을 CPU 에다운로드 ( 시스템데이터포함 ) 하고 warm restart 를실행하십시오. ( 프로그램에러로인한 CPU goes/remains 의중지 ) 8. 시스템데이터다운로드를통하여, CPU 의 PROFIBUS 인터페이스는다시한번파라미터설정됩니다. PG 인터페이스를 PROFIBUS 로다시설정하고,CPU 의 PROFIBUS 인터페이스에 PG 케이블을연결하십시오. 페이지 18
연습문제 2: STOP 트러블슈팅 방법모든 STOP 에러수정후에, CPU warm restart 를해야합니다. Warm restart 후에, CPU 가다시 STOP 상태가되는경우에, 다른 STOP 에러가여전히존재합니다. 에러수정중에, 발생하는에러에관하여다음질문에답하십시오 : 첫번째STOP 확정에러 : 인터럽트블록 :....... 에러 :...... 수정 : ( 이전명령어 새로운명령어 )........ 비록트러블슈팅을하지않더라도 : ISTACK으로부터인터럽트시간에 DB Register 1을통해열려진데이터블록을결정합니다. DB Register 1 을통해열려진데이터블록..... 두번째STOP 확정에러 : 인터럽트블록 :........ 에러 :...... 수정 : ( 이전명령어 새로운명령어 ).... 비록트러블슈팅을하지않더라도 : BSTACK으로부터 FC 20블록이호출된블록과실제통과된오류연산자를결정하십시오. 호출된블록 :.... 세번째STOP 확정에러 : 인터럽트블록 :........ 에러 :...... 수정 : ( 이전명령어 새로운명령어 ).... 당신이이미해결책을알고있다고하더라도 : SIMATIC 스테이션의 HW config를열고정확한주변장치주소확인해야합니다. Note 게다가, 이오류는 (STOP 에러 ) 시스템에의해서검출될수있습니다. 또한, STOP 에러가사라진후프로그램은아직성립되지않는프로그램수정을위하여논리오류 (RUN 에러 ) 를포함합니다. 논리에러는다음연습문제에서삭제될것입니다. 페이지 19
"Monitor/Modify Variable" 기능 File: PRO1_15E.20 사용영역변수테이블작성변수테이블저장참조 VAT(Variable Address Table) 은지정된데이터형식으로 CPU 메모리어드레스의값을보고 (Monitor), 변경 (Modify) 하는데사용됩니다. "Monitor/Modify Varaible" 기능은 SIMATIC Manager 나 LAD/STL/FBD 편집기에서호출할수있습니다. 사용자가보고자하는변수를변수테이블 (VAT) 에입력합니다. 로컬, 임시변수 (Temporary Variable) 외에모든변수와어드레스값을조회할수있습니다. 보기화면에서디스플레이되는변수테이블의형식을선택할수있습니다. 각컬럼은다음과같은의미를가지고있습니다. Address ( 어드레스 ) : 변수의절대어드레스 Symbol ( 심벌 ) : 변수의심벌이름 Symbol Comment ( 심벌주석 ) : 디스플레이되는심벌의주석 Display Format ( 데이터형식 ) : 마우스클릭으로데이터형식 ( 이진수나십진수 ) 을지정할수있고변수의내용이이곳에디스플레이됩니다. Status Value( 현재값 ) : 변수의현재값을선택된데이터형식으로보여줌 Modify Value ( 변경값 ) : 변수에지정하고자하는값 Table -> Save 혹은 Table -> Save As... 메뉴를사용하여변수테이블을저장할수있습니다. 변수테이블이처음으로저장될때는 Save AS... 다이알로그윈도우가오픈됩니다. Save As... 윈도우에서변수테이블을저장할블록폴더를선택합니다. 저장패스는사용자가현재오픈시킨프로젝트 / 프로그램이디폴트패스가되지않습니다. 사용자는변수테이블에원하는이름을부여할수있습니다. 이름은심벌테이블에심벌이름으로입력됩니다. 사용자는저장된변수테이블을다시불러내어모니터링하거나수정할수있기때문에변수를다시입력할필요가없습니다. 입력, 출력변수를체크하기위해 ( 사용자프로그램과상관없이 ) HWConfig 화면에서직접 VAT (Monitor/Modify Variable) 화면을호출할수있습니다. (HWConfig 장을참조하시기바랍니다 ) 페이지 20
"Monitor/Modify Variable" 트리거포인트 PII 트리거포인트 "Beginning of Scan Cycle" ( 스캔시작 ) 트리거설정 트리거설정에따른 Monitor / Modify Update Status / Modify Values ( 일회 monitor / modify 작업 ) 반복프로그램 트리거포인트 "Transition to STOP" (STOP 으로전환 ) 트리거포인트 "End of Scan Cycle" ( 스캔마지막 ) PIQ File: PRO1_15E.21 트리거포인트 트리거조건 Variable -> Set Trigger... 메뉴를사용하거나혹은왼쪽에보여지는아이콘을누르면 Monitoring 과 Modifying 을위한트리거포인트를설정할수있습니다. "Trigger point for Monitoring" 은모니터링되고있는변수값을언제업데이트시킬것인가를지정합니다. "Trigger Point for Modifying" 은수정하고자하는값이언제해당변수에입력되는지를지정합니다. "Trigger Condition for Monitoring" 은트리거포인트가도달했을때한번업데이트할것인지혹은매스캔시 ( 트리거포인트가도달할때 ) 업데이트할것인지를지정합니다. "Trigger Condition for Modifying" 은주어진수정값이한번만변수에설정될것인지혹은매스캔시 ( 트리거포인트에도달할때 ) 설정하게될것인지를지정합니다. 사용영역여러테스트에적합한트리거포인트와조건을사용할수있습니다. - 입력의와이어링체크 (HWConfig 에서도가능합니다 ) > Monitor Variable 트리거포인트 : 스캔시작, 트리거조건 : 매스캔시 - 입력상태시뮬레이션 ( 사용자지정, 프로세스와무관 ) > Monitor Variable 트리거포인트 : 스캔시작, 트리거조건 : 매스캔시 - 하드웨어 / 소프트웨어차이에러 ( 프로세스에서동작되어야할엑추에이터가제어되지않습니다 ) > Monitor Variable, 관련출력을모니터링하기위함트리거포인트 : 스캔마지막, 트리거조건 : 매스캔시 ( 출력상태 = '1' > 프로그램로직 OK > 프로세스에러 ( 하드웨어 ) ( 출력상태 = '0' > 프로그램로직에러 ( 데이타를두번할당하는에러 ) - 제어출력 ( 프로그램로직과무관 ) > Modify Variable 트리거포인트 : 스캔마지막, 트리거조건 : 매스캔시 페이지 21
변수테이블열기와 CPU 연결 엑세스가가능한 CPU 직접 CPU 로연결 Station 1 구성 CPU ("Station 2" 의 VAT) Station 2 Station 3 PG File: PRO1_15E.22 사용영역 Configured CPU Direct CPU Accessible CPU S7 프로그램의블록폴더에저장되어있는변수테이블을테스트기능을위해다시열수있습니다. 그러나 Monitor 와 Modify 기능을시작하기전에 CPU 와의온라인연결이먼저이루어져야합니다. PLC -> Connect to... 메뉴를통해세가지방법으로연결할수있습니다. Configured CPU, Direct CPU, Accessible CPU 등세가지입니다. Configured CPU 혹은 Direct CPU 에연결하기위한아이콘이툴바에있습니다. 변수테이블이하드웨어구성시생성된 S7 프로그램의블록폴더에저장되어있다면 ( 하드웨어구성시생성된 CPU 아랫단에있다면 ) MPI 어드레스와더불어 PLC 스테이션에연결이되어있습니다. 이스테이션은 HWConfig 을통해서더높은레벨의 CPU 에할당이되어있습니다. 변수테이블이하드웨어와무관하게생성된 S7 프로그램폴더의블록폴더에저장이되어있다면 ( 프로젝트루트디렉트리에직접연결되어있다면 ) 하드웨어와무관하게생성된 S7 프로그램의 MPI 어드레스가 SIMATIC Manager 온라인상에서프로그램폴더의속성메뉴를통해연결설정을이룰수있습니다. 이메뉴는현재활성화된변수테이블과 MPI 케이블이프로그램로더 (PG) 에서연결되어있는 CPU 간의온라인연결이이루어지게합니다. PG 가 MPI 케이블을통해어느 PLC 로연결되었는지를확인할수있습니다. 이메뉴는활성화된변수테이블과사용자가선택한 CPU 간의온라인연결을설정합니다. 사용자프로그램이 CPU 에이미링크되어있다면이메뉴는 CPU 를바꾸는데이용됩니다. 다이알로그박스에서어느 CPU 로온라인연결을설정할지선택하십시오. Configured CPU 와 Accessible CPU 사이에선택할수있습니다. 페이지 22
"Monitor" 기능 File: PRO1_15E.23 개요 Monitor Block 테스트기능은블록내에서의프로그램이제대로실행이되는지확인하는데사용됩니다. 이를위해서블록에서의어드레스상태나값이프로그램수행시에화면에디스플레이됩니다. Monitor LAD/STL/FBD 편집기에서열려있는블록에대해안경표시아이콘이나 Debug -> Monitor 메뉴를선택하여 "Monitor" ("Block Status") 테스트기능을활성화시킬수있습니다. 테스트기능을시작할때모니터하고자하는블록이편집기에서온라인되어있는지오프라인으로열려있는지는중요하지않습니다. 오프라인에서열린블록이 CPU 에저장되어있는블록과일치하지않으면 CPU 에저장된블록을오픈시키든지아니면오프라인에서열린블록을 CPU 로다운로드한후에모니터링을해야합니다. 테스트모드에서 LAD/FBD 명령어들과어드레스의상태는다른색으로디스플레이됩니다. 이러한색은 Option -> Customize 메뉴옵션으로바꿀수있습니다. 예 : - Status fulfilled ( 조건에만족하는상태 ) -> " 명령어들이초록색으로디스플레이됩니다 " - Status not fulfilled ( 조건에만족하지않는상태 ) -> " 명령어들이푸른색으로디스플레이됩니다. 참조 디스플레이색의변화는 CPU 가 RUN 상태일때만활성화되며진행되고있는명령어가모니터링되고있습니다. 페이지 23
"Block Debug > Monitor" 정보 LAD/STL/FBD 편집기 -> Options ->Customize 혹은운전상태에서오른쪽마우스클릭 File: PRO1_15E.24 개요 STL 언어에서블록을모니터링할때어떤정보가디스플레이될것인지를선택할수있습니다. 디폴트로 RLO, STATUS, STANDARD(Accumulator) 정보가디스플레이됩니다. - 어느정보가미리설정이되어야하는지혹은디폴트로디스플레이되어야하는지는 Options -> Customize -> STL 메뉴에서선택할수있습니다. - 테스트기능이진행되고있는동안언제든테이블에진행되고있는정보들의컬럼을오른쪽마우스버튼을이용해서보이게하거나안보이게할수있습니다. 디스플레이될수있는정보 - RLO : Result of Logic Operation - STAT : 이진어드레스의상태 - Default : 어큐뮬레이터 1 의내용 - AR1 : 어드레스레지스터 1, 레지스터간접어드레스에대해서만의미가있습니다. - AR2 : 어드레스레지스터 2, 레지스터간접어드레스에대해서만의미가있습니다. - DB Register 1 : 방금오픈된글로벌데이터블록혹은첫번째 DB, - DB Register 2 : 방금오픈된글로벌데이터블록혹은두번째 DB. - Indirect : 메모리간접어드레싱에사용되는 MD..., DBD..., LD... 의내용 ( 예를들면 L IW [MD 100]) - Status Word : 상태비트의상태 (OV, OS, BR...) 디스플레이포맷 레지스터내용이디스플레이될때오른쪽마우스버튼을사용하여데이터디스플레이형식 ( 십진수, 16 진수...) 을선택할수있습니다. 이를위해서레지스터컬럼을오른쪽마우스버튼으로클릭을하여데이터포맷을변경합니다. 페이지 24
Reference Data ( 레퍼런스데이터 ) File: PRO1_15E.25 개요 레퍼런스데이타 내용이긴프로그램에서는고장탐구시어느어드레스가어디에할당이되어있는지, 어느입력과출력이실제로사용되고있는지혹은전체사용자프로그램이어떤방식으로계층을이루고호출이되고있는지전체적인보기를볼수있는것이필요합니다. " 레퍼런스데이터 (Reference Data)" 화면은사용된어드레스뿐아니라사용자프로그램의구조에대해서도전체적인보기를할수있습니다. 레퍼런스데이터는오프라인에서조회가되고이미저장되어있는사용자프로그램에대해생성됩니다. 기능적인에러, 예를들어어드레스가이중으로할당될때프로그램에러를추적해들어갈수있는에러의경우 " 레퍼런스데이터 (Reference Data)" 화면과더불어 "Program Status" 화면을사용하여에러를찾을수있습니다. 메모리비트가세트가안되어로직동작이동작하지않는경우에도 " 레퍼런스데이터 (Reference Data)" 기능을통해어디에해당메모리비트가할당이되었는지를확인할수있습니다. SIMATIC Manager ("Blocks" 폴더가오프라인에서선택이되었을때 ) 나혹은 LAD/STL/FBD 편집기에서 Options -> Reference Data -> Display 나 Filter 메뉴를통해레퍼런스데이타를생성하고디스플레이할수있습니다. 레퍼런스데이터는 Options 메뉴에서 "Display" 혹은 "Filter and Display" 메뉴가선택이되었든안되었든무관하게데이터를필터링함으로여러가지리스트를디스플레이할수있습니다 ( 위슬라이드에서 Customize 부분을참조하십시오 ). "Display Reference Data 를선택한후에 Customize 메뉴를사용하여어떤리스트가디스플레이될것인가를선택할수있습니다. 그후에다른리스트도선택할수있습니다. 페이지 25
Program structure ( 프로그램구조 ) File: PRO1_15E.26 프로그램구조프로그램구조는 S7 사용자프로그램의모든호출계층구조를설명해줍니다. Filter ( 필터 ) 필터의설정에따라프로그램은트리구조나 "Parent / Child 구조 " 로디스플레이됩니다. ( 각경우에있어호출하는블록과호출된블록이디스플레이됩니다 ) 심벌다음과같은심벌이트리구조디스플레이에서사용됩니다. - 최대로필요한로컬데이타메모리가트리구조의루트에나타납니다. ( 바이트로나타납니다 ). - 최대로필요한로컬데이타메모리가모든프로그램트리의마지막블록에표시됩니다 ( 바이트로나타납니다 ). 심벌 의이 호출된블록 (CALL FB10) 조건적으로호출된블록 (CC FB10) 무조건적으로호출된블록 (UC FB10) 데이터블록 (CALL DB10, L DB10.DBW0) 반복 (Recursion) 반복 (Recursion) 그리고조건적으로호출됨반복 (Recursion) 그리고무조건적으로호출됨호출되지않은블록 페이지 26
Cross Reference ( 크로스레퍼런스 ) File: PRO1_15E.27 개요 크로스레퍼런스리스트는어느어드레스가어느블록에어떻게사용되었는지에대한정보를제공합니다. 그러므로전체사용자프로그램중어디에서메모리비트가이중으로할당이되었는지등을찾을수있습니다. 오른쪽마우스버튼으로 View -> Cross Reference 를선택하거나왼쪽에보이는아이콘을클릭함으로해당윈도우를열수있습니다. 모든입력, 출력, 비트메모리, 타이머, 카운터, 블록 (OB 블록제외 ), Peripheral 입력과출력에대한크로스레퍼런스리스트를디스플레이할수있습니다. 각어드레스에대한크로스레퍼런스크로스레퍼런스리스트에서어드레스를선택할때오른쪽마우스버튼으로 View -> Cross Reference for Address 메뉴를사용하면새로운윈도우가열리게됩니다. 이윈도우에는하나의어드레스에대한크로스레퍼런스를볼수있습니다. 구조 크로스레퍼런스리스트는테이블로나타납니다. 이리스트는다음과같은컬럼영역을갖습니다. - 오퍼런드 ( 피연산자 ) 의절대어드레스 - 어드레스가사용되는블록 - 읽기전용 (R) 혹은쓰기전용 (W) 엑세스 - 블록을생성한프로그램언어 - 어드레스를사용하는네트워크 ( 렁 ) 와명령어 페이지 27
Cross Reference ( 크로스레퍼런스 ) 필터링 File: PRO1_15E.28 크로스레퍼런스필터링사용자는 Filter 기능을사용하여각각의어드레스나혹은어드레스영역을디스플레이할수있습니다. 사용자는 View 메뉴를통해 Filter reference data 다이알로그박스를엑세스할수있습니다. -Object 적절하게체크박스를활성화시킴으로어느어드레스타입이리스트되는지를확인합니다. - with number 필터영역은디스플레이되는어드레스영역을지정합니다. 여러영역을또한지정할수있습니다. 필터영역입력 "10-50; 70; 100-130" 은어드레스 70 과어드레스영역 10 에서 50, 100 에서 130 이디스플레이되는것을의미합니다. - Display absolutely and symbolically 이옵션이활성화되면위슬라이드와같은어드레스가심벌과함께디스플레이됩니다. 옵션이활성화가안되면절대어드레스만나타납니다. - Access Type 디폴트설정에서는모든엑세스타입이디스플레이됩니다. "Selection" 이라는옵션을사용할수도있는데이경우에는체크박스를클릭하여엑세스타입을선택하거나 ( 예를들면 W 는쓰기전용엑세스 ) 혹은 "Only multiple assignment wth operation = " 를선택해야만합니다. - Default setting 설정이이루어지면 "Display Reference Data" 어플리케이션이구동이되고 "Save as default setting" 체크박스를활성화시켜야합니다. 기본설정이나사용자가저장한디폴트설정은 "Load Default Setting" 버튼을이용하여복원해야합니다. 페이지 28
Cross Reference ( 크로스레퍼런스 ) 를통한블록수정 2x File: PRO1_15E.29 개요 참조 크로스레퍼런스리스트에서어드레스를더블클릭하면 LAD/STL/FBD 편집기가구동을하고선택된어드레스가사용되는블록을열어줍니다. 커서는 LAD/FBD 의네트워크 ( 렁 ) 에위치하게되고어드레스가사용된 STL 라인에가있게됩니다. 레퍼런스데이터는오프라인상에서이미저장되어있는블록들가운데서생성이됩니다. 이러한이유로고장탐구를위해서는온라인에서저장된블록과오프라인에서저장된블록이동일해야합니다. SIMATIC Manager 에서 Options -> Compare Blocks 를사용하여이것을체크할수있습니다. 페이지 29
Go To Location 기능 File: PRO1_15E.30 페이지 30
Reference Data ( 레퍼런스데이터 ) 에서의찾기기능 File: PRO1_15E.31 Find 참조 레퍼런스데이터가나타나면디스플레이된리스트에서해당어드레스에대한찾기를시작할수있습니다. 검색기능은순수한텍스트로검색되며검색어입력시모든도트 (.) 와대쉬 ( - ), 그리고스페이스를제외시켜야합니다. 부가적인정보는다음과같습니다. - 어드레스, 심벌, 블록혹은언어에대한찾기 -Search 용어로입력되는문자스트링은전체문자열이나혹은워드의일부분입니다. - 대문자 / 소문자구별이고려될수도있고무시될수도있습니다. - 검색범위와검색방향이지정될수있습니다. 페이지 31
I, Q, M, T, C 어사인먼트 ( 사용상태 ) File: PRO1_15E.32 개요 View -> Assignment 메뉴를선택하거나관련아이콘을클릭함으로써 I/Q/M/T/C 어사인먼트윈도우를엽니다. 이어사인먼트리스트는어느비트가입력 (I), 출력 (Q), 비트메모리 (M), S5 타이머, S5 카운터의바이트메모리를사용하였는지에대한전체보기를제공해줍니다. 읽기혹은쓰기등의타입은디스플레이되지않습니다. 입력 (I), 출력 (Q) 과비트메모리 (M) 는라인에서바이트별로디스플레이됩니다. X 라고식별자가붙은비트혹은이진어드레스 ( 위슬라이드에서는 I 1.0, Q4.3, 혹은 M 10.3) 는프로그램에서사용이되었다는의미입니다. 색깔이있는바이트, 워드, 더블워드의식별자가있는어드레스 ( 위슬라이드에서는입력바이트 IB50, 입력워드 IW2, 혹은출력더블워드 QD 6) 가사용자프로그램에서사용이되었습니다. 어드레스를확보하는부분 ( 바이트, 워드혹은더블워드 ) 은수직라인의 "B" ( 바이트 ), "W" ( 워드 ), "D" ( 더블워드 ) 로표시합니다. 색깔이표시되고동시에 X 라고표시된비트는사용자프로그램에서이진수로사용이되고또한바이트, 워드더블워드어드레스로도사용이된다는것을의미합니다. 예 ( 슬라이드참조 ) Q 8.4 는이진어드레스 ("X") 로사용이되고또한더블워드 QD 6 으로사용이되었습니다.( 수직라인의 "D" 컬럼, 출력바이트 QB 6,7,8,9 가색이칠해져있습니다 ) 필터 "Filter" 를선택하면메모리영역을리스트할수있고개별어드레스영역을제한시킬수있습니다. 크로스레퍼런스리스트일때와동일한규칙이적용됩니다 페이지 32
Unused symbol ( 사용하지않은심벌 ) File: PRO1_15E.33 Unused Symbal ( 사용되지않은심벌 ) View ->Unused Symbal 메뉴옵션을선택하거나관련아이콘을클릭하면어드레스리스트가나타납니다. 이러한어드레스들은심벌테이블에서정의가되었지만 S7 프로그램에서는사용되지않은것들입니다. 오른쪽마우스버튼을클릭하여 -> Delete Symbol 을선택하면심벌테이블에서어드레스나심벌을삭제할수있습니다. Addresses without Symbal ( 심벌이없는어드레스 ) View -> Address without Symbol 메뉴를선택하거나관련아이콘을클릭하면어드레스리스트가나타납니다. 이러한어드레스는 S7 프로그램에서사용이되었지만심벌테이블에서는정의가되지않았습니다오른쪽마우스버튼을클릭하여 -> Edit Symbol 을선택하면심벌을정의할수있고이후어드레스에적용시킬수있습니다. Filter ( 필터 ) "Filter" 기능을사용하면사용하지않은심벌들의자세한정보를선택해서볼수있습니다. 페이지 33
Compare Blocks ( 블록비교 )(1)...see next page File: PRO1_15E.34 개요 온라인이나오프라인의블록들을비교하거나프로그램로더 (PG) 의하드디스크안에있는두개의사용자프로그램의블록들을비교할수있습니다. 이기능으로프로그램수정이 CPU 에서이루어졌는지, 블록에서어느네트워크 ( 렁 ) 가다른지를확인할수있습니다. 사용법 1. 오른쪽마우스버튼으로 S7 프로그램의블록폴더를선택하십시오. 2. Compare Blocks 메뉴옵션을선택하십시오. 3. 온라인 / 오프라인에서블록을비교할것인지, 두개의오프라인프로그램을비교할것인지를선택하고 OK 버튼을누르십시오. 4. 다음에나오는화면에서블록들이리스트됩니다. 5. 다르다고확인된라인을선택하고 "Detail" 버튼을누르십시오. 6. "Compare Blocks - Details" 윈도우에서블록이언제수정이되었는지, 블록길이가바뀌었는지확인할수있습니다. 7. "Go To..." 버튼을누르면내용이다른블록이온라인과오프라인두윈도우에서열리고가장먼저다르다고확인된네트워크가디스플레이됩니다. 참조프로그램수정은오프라인윈도우에서만이루어집니다. 페이지 34
Compare Blocks ( 블록비교 )(2) Q5.4 Q5.1 File: PRO1_15E.35 차이 "Go To..." 버튼을선택한후에 ( 이전페이지참조 ) 프로그램편집기는두개의윈도우가양옆으로열리고첫번째로다르다고확인된네트워크 ( 렁 ) 가디스플레이됩니다 LAD/STL/FBD 편집기에서 STL 로블록이열리도록설정이되었다면프로그램로더 (PG) 의커서는내용이다르다고확인된첫번째명령어라인에있게될것입니다. 디스플레이되는블록이여러지역에서다르다면 "Previous" 와 "Next" 버튼을이용하여다른프로그램위치사이를이동할수있습니다. 예 위슬라이드에서오프라인에서저장된 FC 17 블록 ( 슬라이드에서왼쪽 ) 은 FC 20 블록을호출합니다. 형식파라미터 "Display" 에 Q 9.4 가실제파라미터로주어지고온라인에서는 Q9.2 가주어졌습니다. 이는블록이 CPU 에다운로드된이후에오프라인이나온라인에서프로그램이변경되었음을의미합니다. "Compare Blocks - Results" 화면의타임스탬프를확인하면어느블록이마지막으로수정되었는지를확인할수있습니다. 페이지 35
Enable Peripheral Output (STOP 상태에서의출력값변경 ) File: PRO1_15E.36 개요 CPU 가 STOP 되었을때모든디지털출력은스위치오프가되고아나로그출력은 0 혹은최종값등이전에정의된값을출력시키게됩니다. "Enable Peripheral Output 은 CPU 가 STOP 이되었을때출력을변경시켜주는기능을합니다. "Enable Peripheral Output" 기능은주로 Peripheral 출력와이어링을체크할때사용됩니다. 그외에에러가발생하여 CPU 가 STOP 이되었을때프로세스에서엑추에이터를지속적으로제어할필요가있을때사용됩니다. 사용법 Peripheral 출력을활성화시키려면다음과같이하십시오. 1. 변수테이블 (VAT) 를열고테스트하거나수정하기원하는 Peripheral 출력변수를입력하십시오. (Peripheral 데이타를바이트별로, 워드별로, 더블워드별로지정을하십시오. 각각의비트로는수정할수없습니다 ) 2. PLC -> Connect to... 메뉴옵션을선택하여원하는 CPU에연결을시킵니다. 3. CPU를 STOP 으로전환시킵니다. 4. 변수테이블의 Modify Value 란에수정하기원하는 Peripheral 출력값을입력합니다. 예 : PQB 7 변경값 2#01000011 PQW 2 W#16#0027 5. Variable -> Enable Peripheral Output 메뉴를사용하여변경된출력값을입력시킵니다. 6. Variable -> Activate Modify Values 메뉴를사용하여 Peripheral 출력값을변경시킵니다. 7. 새로운변경값을할당하기위해이값들을입력하고Variable -> Activate Modify Values 를활성화시킵니다. "Enable Peripheral Output" 은 Variable -> Enable Peripheral Output 메뉴로비활성화시키거나 ESC 키를눌러비활성화시킬때까지활성화된채남아있습니다. 참조 CPU 운전모드를 STOP 에서 RUN 으로전환을시킬때 Enable Peripheral Output 은비활성화되고메시지가나타납니다. 페이지 36
"Force" 기능 File: PRO1_15E.37 개요 Forcing Force 기능을사용하면사용자프로그램과는별개로변수에원하는값을오버라이팅 (Overwriting) 할수있습니다. 하나의 CPU 당하나의 Force 윈도우를열수있습니다. S7-300 은프로세스이미지입력과출력만을 Force 시킬수있습니다. S7-400 에서는비트메모리와 Peripheral 도 Force 시킬수있습니다. -Force 기능을구동시키기전에동일한 CPU 에서동시에이기능을수행하는작업자가없어야합니다. -Force 작업취소는 Variable -> Stop Forcing 메뉴로만가능합니다. - Forcing 을 Edit -> Undo 기능으로작업을취소할수없습니다. - Force Value 윈도우를닫거나 Monitor/Modify Variable 어플리케이션을닫는다고해서 Force 작업이취소되지는않습니다. Force 기능 1. SIMATIC Manager 에서 Force 기능을구동시키기위해 Force 시킬 CPU를선택하십시오. 2. PLC -> Display Force Value 메뉴옵션을선택하십시오. Monitor/Modify Variable 윈도우가현재 Force 되고있는어드레스,Force 값, Force Values 를보여주는새로운윈도우를열어줍니다. 상태바가 CPU 에서 Force 작업이걸린시간과날짜를보여줍니다. CPU에 Force 된어드레스가없다면윈도우는비어있게됩니다. 3. "Address" 컬럼영역에서변수를입력하고 "Force Values" 컬럼영역에서원하는값을입력합니다. 4. Variable -> Force 메뉴로 Forcing 작업을시작하십시오. 5. Variable -> Stop Forcing 메뉴로 Forcing 작업을마치십시오. 페이지 37
연습문제 3: 모터조그테스트!!! File: PRO1_15E.38 작업 기능시험 No. 1: 이과정에서복사된 S7 프로그램 " Ch14_Fault 는지금까지작성된프로그램과같이정확히동일한기능실행하기위한것입니다. 마지막연습문제에있는 STOP 오류를삭제한후에, 바로논리오류를삭제해야합니다. 첫번째논리오류에대한검색에서네트워크에서사용된변수를모니터하기위한 LAD/FBD/STL 에디터의 "Operand Info" 기능에익숙해질것입니다. 수동모드 ("L_MAN" = 1 ) 를켜고, 터치패널스크린 Conv 에있는 "Jog right" 버튼과 "Jog left" 버튼을사용하여컨베어모터를오른쪽 ("K_Conv_RIGHT") 그리고왼쪽 ("K_Conv_LEFT") 으로조그되는지를확인하십시오. 방법 : 1. CPU warm restart 을수행합니다. 2. 터치패널의수동모드를실행시킵니다. 3. FC 16 블록을열고, 모니터블록 테스트기능으로컨베이어모터의조그가프로그램된네트워크를모니터합니다. ( 슬라이드참조 ) 4. 에디터에서 "Operand Info" 기능을실행합니다.( 슬라이드참조 ) 5. 아래와같이중복된할당을검색, 수정할수있습니다. 오른쪽마우스클릭후 K_Conv_RIGHT Go to Location 클릭 페이지 38
연습문제 4: 수량디스플레이테스트 File: PRO1_15E.39 작업 기능테스트 No. 2 논리에러에대한검색에서, 여러기능중특히 Monitor Data Block 테스트기능을사용할수있습니다. FC19 에서프로그램에서전송된파트수량의카운트그리고디스플레이는 "DB_Parts 의 ACT_Quantity (DB19.DBW0) 변수가증가함으로써현재의수량이결정됩니다. 전송된파트의수량이정확히기록되고시뮬레이터 BCD 디지털디스플레이혹은터치패널에서디스플레이되는것을확인하십시오. 방법 : 1. 첫번째로 DB 19 열고,"ACT_Quantity" (DBW 0) 변수값을모니터하십시오. 2. FC 19 block 이 DB_Parts".ACT_Quantity 변수로정확한수량을저장하지않는것이나타난다. 그러므로, 마찬가지로 FC 19 를열고 Monitor Block 으로이것을모니터한다. 참조 : FC 19 와 DB 19 를동시에모니터하는것은, 두블록을다열고, 양쪽다 "Monitor" 기능을시작하고그후에윈도우를정렬하십시오. Window arrange 3. FC 19 를수정하고기능을한번더테스트하십시오. 페이지 39
연습문제 5: 폴트의평가테스트 3 File: PRO1_15E.40 작업 테스트기능 No. 3 마지막논리오류를위한검색에서, 각기블록호출트리거함으로써 Monitor Block 테스트기능을사용하십시오. 시뮬레이터 LED Q 5.3 이 Fault 3( 시뮬레이터에 switch I 1.3) 가발생했을때점멸하는지와시뮬레이터 I 1.0 의입력하여인지되었을때점멸하는 LED 가점등상태로바뀌는지를확인하십시오. 방법 1. Fault 3 이발생한후에왜 LED 가점멸이되지않는지를트러블슈팅하기위하여, Fault 3 평가에대한호출이있을때에디터에서 FB20 을모니터합니다. FC17 블록온라인열기 "Evaluate Fault 3 을호출하는 FB20 선택 마우스오른쪽버튼을클릭하여 "Called Block" 실행 "Monitor with call-up path IN 파라미터 #Flash_frequency 는 0 으로일정한상태이기때문에 FB 20 의모니터링은점멸하는것을표시하지않을수있습니다. 당신이파라미터를다룬후부터, FB 20 에서자체에에러는위치하지않으나호출된블록에서실제파라미터는 FB 20 을통과합니다. 2. 호출된블록에서, 수정한 FB 20 을호출하고폴트평가기능을한번더테스트합니다. 참조 "Monitor with Call-up Path" 기능은 2002 년 10 월이후의 S7-300 만가능하며 CPU 속성 보호 HW Config 의 "Test Mode" 가설정된경우에만사용가능합니다. 페이지 40
추가내용 File: PRO1_15E.41 페이지 41
Process 모드와 Test 모드 File: PRO1_15E.42 테스트모드 Setting ( 설정 ) Test Operation Process Operation 테스트모드에는두가지타입이있으며사용자프로그램의스캔타임에영향을준다는면에서서로다릅니다. - Test Operation (LAD/STL/FBD 편집기 ) Test Mode ( 하드웨어구성에서 ) - Process Operation (LAD/STL/FBD 편집기 ) Process Mode ( 하드웨어구성에서 ) 보통하드웨어구성에서 CPU 파라미터를설정할때 Process Operation 혹은 Test Operation 으로설정합니다. CPU ->Protection -> Process Mode/Test Mode 이전버전의 CPU 에서는 LAD/STL/FBD 편집기에서직접 Debug -> Operation -> Process Operation / Test Operation 에들어가설정할수있었습니다. Test operation 에서모든테스트기능은제한없이사용될수있습니다. 프로그램되어있는루프기능을매번실행될때마다볼수있습니다. 프로그램상태에대한테스트기능으로인해스캔타임이상당히증가할수있고이로인해 CPU 가 STOP 될수있습니다. Process Operation 에서테스트기능은스캔타임이 CPU 파라미터에서설정한값을초과하지않도록제한이되어있습니다. 또한프로그램루프의상태 ( 어큐뮬레이터 1, 어큐뮬레이터 2 등 ) 가첫번째실행에대해서만디스플레이됩니다. 다음과같은테스트기능은 Process operation 에서는선택될수없습니다. - Break Point (STL 편집기 : Debug -> Set BreakPoint 등 ) 프로그램을특정위치 (breakpoint) 에서프로그램실행을멈춥니다. 그리고사용자의지시에따라서실행을계속합니다 ( 예를들면각프로그램루프를테스트하기위해명령어스텝별로프로그램을실행시킵니다 ) - 모니터블록에대한트리거포인트사용자프로그램에서여러번호출되는블록들의호출을모니터링합니다. 페이지 42
블록모니터링을위한트리거조건 (1) File: PRO1_15E.43 개요 Call-Up Path Open Data Blocks 사용자프로그램에서여러번호출이되고호출이될때마다다른값을실제파라미터에할당하는블록 (FC,FB) 들을모니터하기위해 Debug -> Call Environment 메뉴를사용할수있습니다. Call 환경에서어느호출을모니터링할것인지혹은블록의어느부분을모니터할것인지를지정할수있습니다. 모니터할블록이이미 LAD/STL/FBD 편집기에서열려져있고특별호출을활성화하거나블록모니터링을위한 Call Environment 를정의하는데있어는 Call-up path 와 Open Data Block 두가지방법이있습니다. Call-Up Path 를사용하여 (B 스택을사용하여트리거시킴 ) 모니터하고자하는블록까지의프로그램패스를지정할수있습니다. Call-Up Path 는 3 단계까지네스팅되고 3 개블록까지지원됩니다. 3 번째블록은모니터링하고자하는블록 ( 상태블록 ) 을호출하고, 2 번째블록은 3 번재블록을호출합니다. 예 ( 슬라이드의왼쪽 ) FC 70 (3 번째블록 ) 에서호출이되면 FC 99 ( 상태블록 ) 가모니터링이됩니다. 그리고 FC 70 은 FC 60 (2 번째블록 ) 에서호출이됩니다. 호출시특정데이타블록이사용가능하거나오픈이되어있을때 Open Data Blocks 트리거조건을가지고모니터하고자하는블록을지정할수있습니다. 이를위해서글로발 DB 번호 (DB 레지스터 1) 나인스턴스 DB 번호 (DB 레지스터 2) 를사용하여트리거시킬수있습니다. 예 ( 슬라이드의오른쪽 ) FB 12 ( 상태블록, 슬라이드에서는보이지않습니다 ) 가인스턴스데이터블록 DB 7 과함께호출되면모니터링이됩니다. 참조 - Test Mode (Operation) 가설정되어있어야합니다. - 가장먼저주어진트리거조건을만족하는블록호출이모니터링이되는블록호출입니다. 페이지 43
블록모니터링을위한트리거조건 (2) File: PRO1_15E.44 개요 위예에서, FC 99 는 FC 80 에서 3 번호출을받습니다. 즉 3 번의 FC 99 호출에대해 Call-Up Path 가같습니다. 따라서 Call-Up Path 를트리거조건으로정의함으로특별하게 FC 99 호출중의하나를특별하게호출하는것은불가능합니다. Open Data Blocks 을사용하여트리거하는것도인스턴스 DB 나글로발 DB 가 FC 99 호출과관련이없기때문에불가능합니다. 사용법하나의 FC 호출에대해특정모니터링을하려면다음과같이하십시오. - 온라인으로모니터링을하고자하는블록 ( 예 : FC 99) 을호출하는블록에서오픈합니다 ( 예 : FC 80). - 오른쪽마우스버튼으로모니터링하고자하는블록의호출을클릭하십시오. (LAD/FBD 에서의호출박스혹은 STL 에서의호출라인 ) - 다이알로그박스가나타나면아래와같이선택하십시오. Called Block -> Monitor with Call-Up Path 모니터링하고자하는블록이온라인에서열리고 Monitor Block 을테스트하는기능이활성화됩니다. 참조 설명한기능은 S7-400 에서만가능하며 S7-300 에서는 Compact 제품에서가능합니다. 페이지 44
Breakpoint 를통한프로그램테스트 (1) File: PRO1_15E.45 Breakpoints 이테스트기능을사용하면눈으로보고있는 STL 프로그램을스텝별로테스트할수있습니다. 또한관련레지스터내용을비롯하여실행되는명령어의순서를따라가며테스트할수있습니다. 여러개의 Breakpoint 를설정할수있습니다. 가능한 Breakpoint 의수는사용되는 CPU 에따라다릅니다. 참조이러한테스트기능을수행하려면다음조건을만족해야합니다. - "Test operation" 모드가선택이되어있어야합니다. - 테스트되는블록은온라인에서오픈되어야만합니다. - LAD/FBD/STL 편집기는 View -> STL 로설정되어야합니다. - 블록은노하우프로젝트가걸려있어서는안됩니다. (Know_How_Protect) Breakpoint 기능 breakpoint 기능은프로그램편집기에서 "Test" 메뉴옵션을선택하거나 Breakpoint 바를통해선택할수있습니다. breakpoint 바는프로그램편집기에서 View -> Breakpoint Bar 메뉴옵션을선택함으로활성화할수있습니다. 주의프로그램실행중 breakpoint 를만나면 CPU 는 RUN 에서 HOLD 모드로전환됩니다. 이모드에서 STOP LED 에불이들어오고동시에 RUN LED 가깜박거립니다. 안전상의이유로출력은활성화되지않습니다.. 페이지 45
Breakpoint 를통한프로그램테스트 (2) Breakpoint Next statement File: PRO1_15E.46 Breakpoint 바설정 / 삭제 Breakpoint Breakpoints 실행 (on/off) 다음 Breakpoint 보기 실행명령 모든 Breakpoint 삭제재시작다음명령문 Set/Delete Breakpoint "Set/Delete Breakpoint" 는프로그램실행이어디서멈추었는지를보여줍니다. breakpoint 된명령은실행되지않았습니다. Breakpoints Active "Breakpoints Active" 는이미 Set 되었거나 Set 될모든 breakpoint 를활성화시킵니다. Show Next breakpoint "Show Next breakpoint" 는편집기가프로그램을실행하지않고다음선택된 breakpoint 로점프합니다. Resume "Resume" 기능으로다음 breakpoint 까지프로그램을실행시킵니다. Next Statement Execute Call "Next Statement" 는스텝별로프로그램을실행시킵니다. 블록호출에도달하면 "Next Statement" 로블록호출다음의첫번째명령어로갑니다. Execute Next Statement 와 Execute Call 메뉴옵션은내부구현을위해자유로운 breakpoint 가필요합니다. 블록호출에도달하면 "Execute Call" 을통해블록안으로들어갑니다. 블록끝에도달하면블록호출후에나오는명령문으로점프되어돌아갑니다. 페이지 46
고장탐구를위한솔루션 File: PRO1_15E.47 페이지 47
STOP 상태에대한고장탐구 Stop 에러 페이지 48
STOP 상태에대한고장탐구 Stop 에러 페이지 49
STOP 상태에대한고장탐구 Stop 에러 페이지 50
STOP 상태에대한고장탐구 페이지 51