68
TM223 Automation Studio diagnostics

TM223 Automation Studio diagnostics · 2019-12-09 · 2 TM223 - Automation Studio diagnostics 선행 및 필요 조건 교육 자료 TM210 – Working with Automation Studio TM213

  • Upload
    others

  • View
    24

  • Download
    1

Embed Size (px)

Citation preview

TM223

Automation Studio diagnostics

2 TM223 - Automation Studio diagnostics

선행 및 필요 조건

교육 자료 TM210 – Working with Automation Studio

TM213 – Automation Runtime

소프트웨어 Automation Studio 4.4.4

Automation Runtime 4.44

하드웨어

X20 제어기와 X20 I/O 모듈 ETA210 또는

ETAL210 + ETAL690

www.br-automation.com/eta-system

TM223 - Automation Studio diagnostics 3

목차

목차

1 소개 ..................................................................................................................................................................... 4

1.1 학습 목표 ..................................................................................................................................................... 4

1.2 안전 표시와 부호 .......................................................................................................................................... 4

2 올바른 진단 툴 ..................................................................................................................................................... 5

2.1 디버깅 절차 .................................................................................................................................................. 5

2.2 체크 리스트 .................................................................................................................................................. 7

2.3 진단 툴 개요 ................................................................................................................................................. 8

3 시스템 정보 읽기 ................................................................................................................................................ 10

3.1 제어기 작동 상태 ........................................................................................................................................ 10

3.2 비교 기능 ................................................................................................................................................... 11

3.3 로거Logger 에서 에러 분석 ........................................................................................................................ 15

3.4 네트워크 분석기 Network Analyzer ............................................................................................................ 20

4 변수 값 모니터링과 분석 .................................................................................................................................... 22

4.1 변수 모니터링과 변경 ................................................................................................................................. 23

4.2 실시간 변수 기록 ........................................................................................................................................ 26

4.3 I/O 모니터와 강제할당 ................................................................................................................................ 30

5 프로그래밍 테스크 중 소프트웨어 분석 ............................................................................................................... 32

5.1 프로파일러 Profiler에서 런타임 측정 수행 ................................................................................................... 32

5.2 소스 코드에서 에러 검색 ............................................................................................................................. 40

5.3 프로그램에서 변수 사용 .............................................................................................................................. 49

5.4 소스 파일 비교 ............................................................................................................................................ 51

5.5 타겟 시스템에 소스 파일 비교 ..................................................................................................................... 53

6 서비스 지원 받기 전 준비사항 ............................................................................................................................. 55

6.1 System Diagnostics Manager (SDM) ........................................................................................................ 55

6.2 배터리 상태 조회 ........................................................................................................................................ 59

6.3 Runtime Utility Center 서비스 툴 ............................................................................................................... 60

7 요약 ................................................................................................................................................................... 65

소개

4 TM223 - Automation Studio diagnostics

1 소개

Automation Studio는 개발 중이나 추후 만나게 될 진단 상황에서 도와줄 다양한 도구를 제공합니다. 통합 형

진단 도구는 자세한 시스템 행위 기록을 포함한 시스템 개요 생성을 돕습니다. 그러므로 Automation

Studio는 프로그래밍, 시운전 및 진단에 이상적인 툴입니다.

진단은 올바른 도구를 선택으로 시작됩니다. 교육 자료는 진단 도구를

개별 또는 조합하여 사용하는 방법을 알려줍니다. 수많은 테스크의

이해를 높이고자 실제 사용한 예를 제공합니다.

Automation Runtime은 진단 정보 접근을 제공합니다. 이러한 이유로

System Diagnostics Manager에서 많은 진단 데이터를 직접 사용할

수 있습니다. 해당 기능은 웹 브라우저를 사용하여 호출 할 수 있습니다.

라이브러리 기능을 사용하여 제어 어플리케이션에서 데이터를 사용할

수 있습니다.

그림 1: Automation Studio 진단

통합 모션 제어용 진단 도구는 교육 자료 "TM410 – Working with Integrated Motion Control"에서

설명합니다. 통합 세이프티용 진단 도구는 교육 자료 "TM510 – Working with SafeDESIGNER"에서

설명합니다.

1.1 학습 목표

교육 자료는 프로그래밍, 시운전 및 서비스 중 다양한 진단 가능성을 보여주는 선택된 예제를 사용하여

참가자가 다양한 진단 테스크 방법을 배우도록 도와줍니다.

• 올바른 진단 도구를 선택 기준을 배웁니다.

• 일반적인 시스템 정보를 분석하고 기록하는 방법을 배웁니다.

• 프로세스 값을 모니터링하고 기록하는 방법을 배웁니다.

• 시스템 및 어플리케이션 진단 옵션을 학습합니다.

• Automation Runtime 설정 옵션이 어떤 진단 도구와 관련 있는지 학습합니다.

1.2 안전 표시와 부호

특별한 언급이 없으면, 안전 표시와 부호는 "TM210 – Working with Automation Studio"를 준수합니다.

TM223 - Automation Studio diagnostics 5

올바른 진단 툴

로거 Logger를 사용하여 주기 시간 위반 cycle time violation을 확인 할 수 있습니다. 그러나 주기

시간 위반의 원인 분석시 로거 사용은 좋은 진단 방법이 아닙니다.

그림 2: Logger 창에 주기 시간 위반 Cycle time violation

로거에 명시된 오류 원인은 task class #1의 주기 시간 위반(Cycle time violation)으로 표시됩니다.

백트레이스 데이터(backtrace data)는 주기 시간 위반이 발생한 테스크(task)를 알려줍니다.

2 올바른 진단 도구

올바른 진단 도구를 선택하면 문제를 빠르고 효과적으로 문제 위치를 확정 할 수 있습니다.

관련 없는 데이터를 분석하거나 검사를 위해 다른 사람에게 데이터를 보내면 문제 해결책을 찾는데 상당한

지연이 발생할 수 있습니다.

상황 1

멀티 테스킹 시스템에서 테스크는 우선 순위가 높은 테스크에 의해 중단됩니다. 이는 주기 시간 위반 cycle

time violation의 원인이 될 수 있습니다. 우선 순위 높은 테스크가 오랜 시간 동안 실행되면 구성된 사이클

타임(cycle time) + 허용 오차(tolerance)에 끝낼 수 없음이 로거에 기록됩니다.

상황 2

동일한 테스크 클래스에서 여러 테스크가 주기적으로 차례로 실행됩니다. 이전 테스크 중 하나를 완료하는

데 시간이 더 걸리면 로거에 표시된 테스크도 마찬가지로 주기 시간 위반의 원인이 되지 않습니다.

두 경우 모두 로거만으로 오류 원인을 파악하는 데 도움이 되지 않습니다. 해당 문제는 프로파일러 profiler를

사용하여 자세하게 조사 할 수 있습니다("프로파일러에서 런타임 측정 수행" 32쪽). 프로파일러는 개별

테스크 실행 시간을 시간 순서에 맞춰 그래픽으로 표시합니다.

2.1 디버깅 절차

문제 분석 방법에는 여러 가지가 있습니다. 다른 지역 및 분석 전략을 결합하면 오류를 찾는 효율성이 크게

향상 될 수 있습니다.

오류 찾는 방법론

오류를 검색 할 때 사용되는 방법론은 사용 가능한 도구를 결정하므로 매우 중요합니다. 기계 환경에서

제어까지 아우르는 연속적이고 적합한 질문이 요구됩니다. 아래 방법이 사용됩니다:

• 환경 및 구조 조건 분석

• 오류 유형 설명

• 가능성 있는 다른 오류 제거

• 데이터 측정 및 기록

올바른 진단 툴

6 TM223 - Automation Studio diagnostics

사용 방법의 결과가 문서로 작성되어 있습니다. 점검표는 중요한 정보가 손실되지 않도록데이터를

기록과 지원을 제공을 돕습니다.

완전한 개요만이 특정 영역을 격리하여 자세하게 고려할 수 있습니다.

환경 및 일반 조건

기계가 운영되는 기계 환경과 기계 제어 구조 조건에서 분석이 시작됩니다.

기계의 기본 작동 조건을 살펴보면 오류가 이미 정의되어 있을 수 있습니다. 구조 조건은 다음과 같습니다:

교대 및 배치 변경, 시간 전환, 홀 기후, 센서 교환, 작업자 행위, 장비 및 기타.

센서 및 액추에이터가 있는 기계의 환경적 오류 원인이 제외된 경우에 제어 시스템 및 어플리케이션

소프트웨어를 자세히 처리 할 수 있습니다.

일회성 또는 반복되는 오류

특정 조치에서 오류를 재현 할 수 있으면 목표 방식으로 조사 할 수 있습니다.

특정 동작이나 특정 규칙에서 발생하지 않는 오류는 찾기가 매우 어렵습니다. 오류를 조사하기 위해 오류를

재현해야 합니다.

Automation 소프트웨어를 준비하면 산발적인 오류 분석이 간소화 됩니다.

프로그램 또는 작동 오류

예를 들어서 프로세스 순서 중에 특정 일반 조건을 고려하지 않으면 런타임 오류가 발생합니다. 몇 가지 예가

있습니다:

• 영으로 나누기

• 펑션 반환 값 평가 누락

• 배열 요소에 접근시 오버플로우 (예 : Loop 카운터)

• 초기화 되지 않은 포인터에 접근

올바른 진단 툴

TM223 - Automation Studio diagnostics 7

취해진 조치가 자세히 기록되고 정보가 수집 될수록 문제를 명확하게 식별하고 해결할 수 있는

가능성이 높아집니다. 제어 환경에서 오류 검색 정보는 교육 자료 "TM 920 - Diagnostics and

Service"에서 확인할 수 있습니다.

2.2 점검표

점검표는 서비스 중 문제를 분석 할 때 도움이 되지 않습니다; 구성

중에도 매우 유용합니다.

여기서 수집된 정보는 나중에 호출된 사람에게 실제 데이터를

제공하여보다 보다 신속하게 문제를 해결하는데 도움이 될 수

있습니다.

그림 3: 점검표

중계 정보에 관한 정보

문제 분석에 도움이 필요한 경우 자세한 문제 설명을 제공해야 합니다.

• 자세한 점검표 작성

• 어떤 조치를 취했습니까?

• 어떤 환경 조건을 배제 할 수 있습니까?

• 사무실 환경에서 문제를 재현 할 수 있습니까?

• 하드웨어 및 소프트웨어 버전

• 로거 logger 파일

• 프로파일러 profiler 기록

• System Diagnostics Manager - 시스템 덤프 System Dump

중계 정보 점검표

점검표: (설치된 업그레이드를 모두 포함한) 소프트웨어 버전

소프트웨어1 버전 설명, 비고

• Automation Studio • •

• Automation Runtime • •

• mapp Services • •

• • •

표 1: 점검표: 소프트웨어 버전

1 Automation Studio, Automation Runtime, mapp Technology, Safety Release, Visual components, 등.

올바른 진단 툴

8 TM223 - Automation Studio diagnostics

사용하는 하드웨어(설치된 하드웨어와 펌웨어 버전)

모델 넘버

Model number

시리얼 넘버 Serial number

하드웨어리비전 Revision Hardware

/펌웨어 Firmware

설명, 비고

• • •

• • •

표 2: 사용중인 하드웨어

문제 유형 설명을 위한 점검 목록

• 주변 환경과 환경 조건은 어떻습니까?

• 어떤 토폴로지를 사용합니까?

• 문제를 재현 할 수 있습니까 아니면 한 번만 발생 했습니까?

• 문제 재현을 위해 어떤 조치를 취해야 합니까?

• 언제 처음 문제가 발생 했습니까?

• 문제 발생 이후로 소프트웨어 및/또는 하드웨어 구성 또는 시스템 환경 변화가 있습니까?

• 제어기 상태, 설치된 컴포넌트의 LED 상태는 어떻습니까?

• 제어기에서 불러온 정보는 무엇입니까?

예: 로거 파일 logger files, 프로파일러 데이터 profiler data, 시스템 덤프 system dump 등.

2.3 진단 도구 개요

Automation Studio는 프로그래밍, 시운전 및 서비스 동안 다룰 수

있는 적절한 도구를 제공합니다.

올바른 진단 툴을 선택해야만 정확하고 빠르게 필요한 정보에 접근할

수 있습니다.

Automation 도움말은 Automation Studio로 테스크 할 시 동반자이며

다양한 진단 도구의 자세한 정보를 제공합니다.

그림 4: Automation 도움말에서

"Diagnostics and service" 범주

올바른 진단 툴

TM223 - Automation Studio diagnostics 9

Diagnostics and service

Automation Runtime Simulation(ARsim)에서 결정적인 진단 측정 결과가 발생하지 않기 때문에

프로파일러 profiler 및 Contextual Watch 데이터 기록은 실제 하드웨어에서 수행해야합니다.

예제: 진단 도구 관련 Automation 도움말 열기

진단 도구는 "Diagnostics and service" 구획에서 다룹니다. Automation 도움말에서 해당 개요를

확인하십시오.

교육 자료에서 예제 완료를 위한 요구 사항

설명과 이미지는 TM210 (Working with Automation Studio) 또는

TM213 (Automation Runtime) 교육 자료에서 설계된 프로젝트

입니다. Automation Studio 프로젝트에서 다음 연습을 수행 할 수

있습니다.

그림 5: 콤팩트 플래시와 X20 제어기

시스템 정보 읽기

10 TM223 - Automation Studio diagnostics

Project management \ The workspace \ Status bar

Real-time operating system \ Method of operation \ Operating status

3 시스템 정보 읽기

웹 브라우저를 사용하거나 Automation Studio의 타겟 시스템에서 시스템 정보를 읽을 수 있습니다.

시스템 정보 읽기

"상태 표시 줄 Status bar" 10 쪽 연결 상태, Automation Runtime 버전 및 제어기 작동 상태 정보

"타겟 시스템 정보“ 11 쪽 제어기의 메모리 정보, 배터리 상태 및 날짜/시간 구성 옵션 표시

"비교 기능" 11 쪽 프로젝트와 제어 시스템의 소프트웨어 버전 비교; 프로젝트에서

구성되고 실제 제어기에서 인식된 모듈을 비교할 수 있음. 구성 파일과

비교 가능.

"logger에서 에러 분석" 15 쪽 런타임 중 타겟 시스템에서 발생한 이벤트 표시.

"System Diagnostics Manager

(SDM)” 55 쪽

System Diagnostics Manager(SDM)는 Automation Runtime에 직접

통합되어 있습니다. 웹 브라우저를 사용하여 타겟 시스템의 중요

정보를 읽을 수 있습니다.

"네트워크 분석기

Network Analyzer" 20 쪽

네트워크 분석기는 POWERLINK 및 X2X 네트워크의 개별 주기

시간을 계산하며 시스템 구성 제어에 사용됨.

표 3: 시스템 정보 읽기

3.1 제어기 작동 상태

Automation Studio에서 제어기 작동 상태를 평가하기 위해 다양한 옵션을 사용할 수 있습니다.

System Diagnostics Manager를 사용하여 정보는 표시하거나 시스템 덤프 파일로 만들 수 있습니다("System

Diagnostics Manager (SDM)" 55 쪽).

3.1.1 상태 표시 줄 status bar

상태 표시 줄은 Automation Studio 창 맨 아래에 있습니다.

그림 6: 상태 표시 줄 status bar

상태 표시 줄에는 다음 정보를 포함합니다:

1. 연결 설정

2. CPU 유형 및 Automation Runtime 버전

3. 컨트롤러 작동 상태

상태 표시 줄에 표시된 데이터 외에도 타겟 시스템의 라이선스 위반이 표시됩니다. 추가 정보는 Automation

도움말에서 찾을 수 있습니다.

시스템 정보 읽기

TM223 - Automation Studio diagnostics 11

진단에 결정적인 데이터를 얻으려면 제어기의 시간과 날짜가 정확해야 합니다. 날짜 및 시간은

온라인 정보 대화 상자 또는 라이브러리 기능을 사용하여 설정됩니다. 제어기는 시간 서버에

연계되는 시간 동기화 구성 옵션을 지원합니다.

Diagnostics and service \ Diagnostic tools \ Information about the target system

3.1.2 타겟 시스템 정보

온라인 연결을 활성화하면 메뉴 <Online> / <Info> 또는 Physical View에서 바로 가기 메뉴의 <Online Info...>를

사용하여 타겟 시스템 정보를 확인 할 수 있습니다.

정보 대화 상자에는 다음 요소가 포함되어 있습니다:

• 내장 백업 배터리의 상태 테스트

• 타겟 시스템 유형 및 Automation Runtime

버전

• 하드웨어 노드 번호

• 타겟 시스템에서 사용 가능한 메모리

• 타겟 시스템의 날짜 및 시간

• 날짜 및 시간 설정

그림 7: 타겟 시스템에서 날짜 및 시간 설정

예제: 시간과 날짜 설정

진단에 결정적인 데이터를 얻으려면 제어기의 정확한 시간과 날짜가 필요합니다.

1) "Online Info...(CPU Info)" 대화 상자 열기

2) PC 시간 확보(Get PC time), 타겟 시스템 시간 설정(Set Target time)

3) 로거 logger "System" 범주에서 항목 확인

"로거 logger에서 에러 분석" 15 쪽

3.2 비교 기능

개요를 얻으려면 열린 프로젝트의 하드웨어 및 소프트웨어 구성이 타겟 시스템의 하드웨어 및 소프트웨어

구성과 일치하는지 확인해야합니다. Automation Studio에서 비교 기능을 지원합니다.

시스템 정보 읽기

12 TM223 - Automation Studio diagnostics

온라인 소프트웨어 비교를 통해 프로젝트와 타겟 시스템 간에 구성 차이를 인식 할 수 있습니다.

소스 코드 수준에서 비교가 필요한 경우 추가 도구를 사용할 수 있습니다.

• 참조: “소스 파일 비교” 51 쪽

• 참조: “타겟 시스템에 소스 파일 비교” 53쪽

Diagnostics and service \ Diagnostic tools \ Monitor mode \ Online software comparison

3.2.1 온라인 소프트웨어 비교

온라인 소프트웨어 비교 online software comparison는 타겟

시스템의 테스크 상태 및 버전을 비교하고 프로젝트의 소프트웨어

구성을 비교하는데 사용됩니다.

메뉴에서 <Online> / <Compare> / <Software>를 선택하면

온라인 소프트웨어 비교가 열립니다.

그림 8: 온라인 소프트웨어 비교

online software comparison 열기

다음 정보가 분석됩니다:

• 프로젝트에 포함된 소프트웨어 객체와 타겟 시스템의

소프트웨어 객체 비교

• 소프트웨어 객체의 타겟 메모리

• 개별 테스크의 운영 상태

• 마지막 빌드 된 버전 및 타임 스탬프

온라인 소프트웨어 비교는 열 두개로 표시됩니다. 왼쪽은 소프트웨어 구성에서 형성된 요소를 나타내고

오른쪽은 타겟 시스템에서 활성화된 구성을 나타냅니다.

예제에서 타겟 시스템의 "LampTest” 테스크가 중지되었고 "Loop1” 테스크는 타겟 시스템에 없습니다.

그림 9: 온라인 소프트웨어 비교

시스템 정보 읽기

TM223 - Automation Studio diagnostics 13

Project management \ Project installation \ Execute project installation \ Transfer to target \

Differences dialog box

온라인 설치 online installation 중 소프트웨어 차이점

온라인 설치 중에 프로젝트와 타겟 시스템의 소프트웨어 구성 차이점이 확인됩니다. 전송 transfer 대화

상자에서 해당 기호를 클릭하면 차이점이 표시됩니다.

그림 10: 전송 대화 상자에 표시된 소프트웨어 차이점

3.2.2 온라인 하드웨어 비교

온라인 하드웨어 비교 Online hardware comparison를 사용하면

프로젝트의 하드웨어 구성을 실제로 런타임에 사용중인 하드웨어

구성과 비교할 수 있습니다. 메뉴에서 <Online> / <Compare> /

<Hardware>를 선택하면 온라인 하드웨어 비교를 열 수 있습니다.

그림 11: 온라인 하드웨어 비교 창 열기

창은 두 부분으로 구성됩니다. 왼쪽은 프로젝트의 하드웨어 구성을 보여줍니다. 오른쪽은 런타임에

사용되는 하드웨어 구성을 보여줍니다. 프로젝트와 타겟 시스템 간의 충돌은 빨간색으로 강조 표시됩니다.

프로젝트 또는 타겟 시스템 페이지에 추가 항목은 녹색으로 강조 표시됩니다.

시스템 정보 읽기

14 TM223 - Automation Studio diagnostics

그림 12: 온라인 하드웨어 비교

구성의 X2X 링크 버스에서 디지털 모듈 두 개가

구성되어 있으나 타겟 시스템에서 다른 유형의

모듈을 사용하고 있습니다. 식별된 다른 모듈이

프로젝트에서 구성되지 않았습니다.

3.2.3 자동화 구성 요소 온라인 비교

자동화 구성 요소 비교를 사용하여 활성화된 구성의 객체와 제어기의

객체를 비교합니다. 개요는 객체 수준의 차이점과 구성 객체 비교를

자세히 보여줍니다. 그 다음 파라미터 값이 Automation Studio

프로젝트에 적용됩니다.

메뉴에서 <Open> / <Compare> / <Automation Components>를

선택하여 자동화 구성 요소 온라인 비교를 열 수 있습니다.

그림 13: 자동화 컴포넌트 비교 열기

창은 두 부분으로 나뉩니다. 왼쪽에는 프로젝트의

자동화 구성 요소가 표시되고 오른쪽 에는

런타임에서 불러온 구성 객체가 표시됩니다.

차이점은 다른 텍스트 색상으로 표시됩니다. 완전한

구성 객체를 업로드 할 수 있습니다.

그림 14: 자동화 구성 요소 온라인 비교

Diagnostics and service \ Diagnostic tools \ Monitor mode \ Online hardware comparison

시스템 정보 읽기

TM223 - Automation Studio diagnostics 15

Diagnostics and service \ Diagnostic tools \ Monitor mode \ Online comparison of automation

components

• Overview comparison

• Detailed comparison

Diagnostics and service \ Diagnostic tools \ Logger window

• Opening the Logger window

• Operating the Logger \ Storing / Loading Logger data

• User interface description \ Backtrace

파라미터 값 적용

자세한 비교는 Automation Studio 프로젝트의 구성 객체 값과 컨트롤러의 현재 값을 보여줍니다. 선택한

파라미터 값은 파라미터 또는 전체 매개 변수 그룹 (1)을 선택하고 툴바toolbar를 통해 업로드하여

Automation Studio 프로젝트에 적용됩니다 (2).

그림 15: 세부 비교에서 파라미터 값 적용

3.3 로거 Logger 오류 분석

Automation Runtime은 어플리케이션이 실행될 때 발생하는 모든 치명적인 오류 (예 :주기 시간 위반), 경고

및 정보 메시지 (예 : warm restarts)를 기록합니다.

로그는 제어기 메모리에 저장되며 다시 시작한 후에 사용할 수 있습니다.

시스템 정보 읽기

16 TM223 - Automation Studio diagnostics

이미지에 표시된 항목은 오프라인 설치 및 컨트롤러의 후속 시작 테스크 후 Automation

Runtime에서 기록한 이벤트를 보여줍니다.

3.3.1 온라인 연결이 활성화 된 로거

로거는 메뉴에서 <Open> / <Logger> 항목을 클릭하거나 Physical View에서 제어기 선택 후 단축 메뉴

<Open Logger>를 사용하거나 키보드 단축키 <CTRL> + <L>을 사용하여 열 수 있습니다.

그림 16: 로거 창

예제: 주기 시간 위반cycle time violation 을 발생시키고 로거 항목 확인

"Loop"프로그램의 변수 모니터에서 "udEndValue"변수를 증분 시키면 주기 시간 위반(Cycle time

violation)이 발생합니다.

타겟 시스템을 다시 시작하여 Automation Studio와 타겟 시스템간에 온라인 연결이 설정되면 Logger 창을

열고 SERVICE 모드로 부팅하는 원인을 찾으십시오.

1) 소프트웨어 구성(software configuration)에서 "Loop" 와치 창(Watch window) 열기.

"변수 모니터링 및 수정" 23쪽 참조.

2) 주기 시간 위반이 발생할 때까지 변수 "udEndValue" 값을 늘리십시오 (연결 상실 및 서비스

모드에서 다시 시작).

3) Physical View에서 로거 열기.

4) 서비스 모드service mode 에서 부팅 원인 찾기.

5) 항목을 선택하고 F1을 누르십시오.

시스템 정보 읽기

TM223 - Automation Studio diagnostics 17

Automation 도움말에서 선택한 오류 번호에 대한 설명이 열립니다.

그림 18: Automation Runtime 오류의 상황 별 도움말

로거에서 항목을 선택한 후 <F1>을 누르면 Automation 도움말에 자세한 오류 설명이 표시됩니다. 추가적인

오류 입력 정보는 backtrace를 사용하여 표시 할 수 있습니다.

3.3.2 로거 데이터의 오프라인 평가

로거 레코드는 제어기에 연결하지 않고도 평가할 수 있습니다.

그럼에도 불구하고 로거 데이터 자체는 Automation Studio에서 기존 온라인 연결이나 System Diagnostics

Manager를 통해 업로드합니다.

• "System Diagnostics Manager (SDM)" 55쪽 참조.

로거는 서비스SERVICE 모드에서 부팅하는 원인을 나타냅니다. Backtrace을 사용하여

문제를 일으키는 프로그램을 빠르게 식별 할 수 있습니다.

그림 17: Logger에 주기 시간 위반 Cycle time violation

시스템 정보 읽기

18 TM223 - Automation Studio diagnostics

32 비트 이벤트 ID는 다음과 같이 구성됩니다:

Programming \ Libraries \ Configuration, system information, runtime control \ ArEventLog

시스템 덤프 System dump 사용 사례

로거 데이터는 System Diagnostics Manager를

사용하여 시스템 덤프 system dump로 서비스

엔지니어가 개별적으로 저장합니다. 전송된

데이터를 Automation Studio에서 열고 분석 할 수

있습니다.

Automation Studio에서 로거 툴바에서 로거 항목을

저장하고 불러올 수 있습니다.

3.3.3 사용자 로그 데이터 생성

어플리케이션에서 로거 기능을 사용하여 특정 이벤트를 기록 할 수도 있습니다.

ArEventLog 라이브러리의 함수를 사용하여 처리합니다. 라이브러리 기능을 사용하면 32 비트 이벤트 ID를

입력 할 수 있습니다. 시스템에서 구별됩니다. Errors, warnings, information, successes 로 차별화됩니다.

사용자와 시스템의 이벤트 ID를 쉽게 구별 할 수 있습니다.

사용자는 시스템이 사용하는 이벤트 ID를 로거에 입력 할 수 없습니다. 이것을 라이브러리가 방지합니다.

Bits 31-30 Bit 29 Bit 28 Bits 27-16 Bits 15-0

Severity 1 .. Customer Reserve Facility Code

사용자 이벤트 ID는 표시된 회로도 또는 펑션 ArEventLogMakeEventID() 을 사용하여 생성됩니다.

시설facility 통해 12 비트를 사용하여 범위를 명확하게 식별 할 수 있습니다. 사용자 이벤트 Id의 시설은

아래와 같이 구별됩니다:

• 값 0 ~ 15: 고객 어플리케이션

• 값 16 ~ 4096: 장치 제조업체 및 특수 사례를 위한 범위

어플리케이션:

• 서비스 테스크 기록 (예: 배터리 교환)

• 사용자 테스크 기록 (예: 금지된 항목)

• 예외 테스크 이벤트를 검색하여 Logger에 입력

• 모듈 모니터링이 비활성화된 이벤트 로깅 (예: moduleOK = FALSE)

예제: 사용자 로거 파일 생성

기존 Automation Studio 프로젝트에서 사용자 로그 파일을 작성하십시오. "This is a user warning"라는

메시지를 로거 파일에 입력합니다. 메시지 유형은 warning입니다(severity = warning). ArEventLog

라이브러리의 예제를 설명 목적으로 사용합니다. 샘플 프로그램을 추가하고 전송 한 후에 개별 펑션은 Watch

창을 통해 활성화합니다.

그림 19: 로거 엔트리 저장

시스템 정보 읽기

TM223 - Automation Studio diagnostics 19

사용자 로거 파일 및 로거 항목을 생성 한 이후에, 해당 항목 로거에 "UsrEvLog"로거 파일이

표시됩니다.

그림 20: ArEventLog 라이브러리가 생성한 로거 항목

Programming \ Libraries \ Configuration, system information, runtime control \ ArEventLog

Programming \ Examples \ Adding examples

Programming \ Examples \ Examples - Libraries \ Configuration, system information, runtime

control \ Create and evaluate user logbook

1) "LibArEventLog_ST” 라이브러리 예제를 Logical View에 추가

2) 프로젝트 설치 수행

3) Watch 창을 사용하여 사용자 로거 파일 생성

4) Watch 창을 사용하여 사용자 로거 파일에 warning 입력

기본적으로 ArEventLog 라이브러리로 별도 프로그램을 만들 때의 순서는 다음과 같습니다:

• ArEventLogCreate ()를 사용하여 사용자 로거 파일 "UsrEvLog" 생성

• ArEventLogGetIdent ()를 사용하여 사용자 로그 북 ID 읽기

• ArEventLogMakeEventID () 함수를 사용하여 32 비트 Event ID 생성

• ArEventLogWrite ()를 사용하여 사용자 로그 북에 로거 항목 쓰기

시스템 정보 읽기

20 TM223 - Automation Studio diagnostics

하드웨어 구성에 POWERLINK 버스 커플러가 삽입되었습니다. 버스 컨트롤러의 X2X

인터페이스는 200μs 주기 시간으로 구성되었습니다. 네트워크 분석기는 계산 된 런타임이

230μs이므로이 구성에 결함이 있음을 보여줍니다.

그림 21: 네트워크 분석기 데이터 표로 보기

3.4 네트워크 분석기 Network Analyzer

네트워크 분석기Network Analyzer 는 POWERLINK 및 X2X 네트워크의 주기 시간을 계산합니다. 하드웨어

구성을 기준으로 설정된 주기 시간을 준수 할 수 있는지 확인합니다. 계산된 실행 시간과 구성된 사이클

시간을 비교됩니다. 이 방식으로 잘못된 구성을 감지 할 수 있습니다. 허브 개수와 구성된 케이블 길이도

계산에 포함합니다. 메뉴에서 <Open> / <Network Analyzer>를 선택하면 네트워크 분석기가 열립니다.

네트워크 분석기 결과 요약본도 출력 창output windows 에 표시됩니다. "Position"열에는 수정 및 확인해야

할 구성 항목이 표시됩니다.

그림 22: Output windows에 표시된 X2X cycle time 의 주기 시간 위반

계산된 결과의 표형식 표현과 출력 창 요약 외에도

System Designer에서 빨간색 삼각형 기호로 구성

문제를 표시합니다.

그림 23: System Designer에서 구성 문제 표시

시스템 정보 읽기

TM223 - Automation Studio diagnostics 21

Diagnostics and service \ I/O and network diagnostics

I/O 모듈 및 네트워크 진단에 관한 자세한 내용은 Automation 도움말에 설명되어 있습니다.

예제: 네트워크 분석기를 사용하여 주기 시간 구성 확인

언제라도 전체 시스템 로드를 설명하는 것이 유용합니다. X2X 및 POWERLINK 네트워크의 주기 시간

구성을 점검해야 합니다. 네트워크 분석기를 사용하여 프로젝트에 구성된 X2X 및 POWERLINK

인터페이스의 계산된 로드를 설정하십시오.

1) 네트워크 분석기 열기

2) 테이블 보기와 output windows에서 항목 분석

3) 설정된 주기 시간과 비교하여 계산된 주기 시간 확인

Diagnostics and service \ Diagnostic tools \ Network Analyzer

프로세스 값 모니터링과 분석

22 TM223 - Automation Studio diagnostics

4 프로세스 값 모니터링과 분석

Automation Studio에서 다양한 방법으로 프로세스 값을 모니터링, 분석 및 수정할 수 있습니다.

프로세스 값 모니터링과 분석

"변수 모니터링 및 수정" 23쪽 Watch window에서 변수 값을 모니터링하고 수정합니다.

"실시간 변수 기록” 26쪽 trace 기능을 사용하면 정의된 기간 동안 여러 값을 실시간으로 기록

할 수 있습니다. 데이터는 Automation Studio를 사용하여 업로드하고

곡선 형태로 표시 할 수 있습니다.

"I/O 모니터와 강제할당" 30쪽 I/O 모니터를 사용하면 I/O 변수 값과 I/O 모듈의 상태 정보를 읽을 수

있습니다.

표 4: 프로세스 값 모니터링과 분석

이번 장 예제의 요구 사항

기존 프로젝트에 작은 프로그램을 추가합니다. 프로그램에는 예제에 필요한 모든 프로세스 변수가 포함되어

있습니다.

예제: 프로그램 "signal” 작성

교육 자료의 다른 실습에서 변경할 수 있는 프로세스 변수가 필요합니다. 이를 위해 Structured Text

프로그래밍 언어 기반에 프로그램을 추가합니다. 그 다음 변수를 선언하고 구현합니다.

1) Logical View에서 Structured Text 프로그램 추가

2) 프로그램 이름을 "signal"로 변경

3) 프로그램을 task class #1에 할당

4) 프로그램 기능 구현

디지털 입력이 TRUE로 설정되면 매 주기마다 숫자가 증가합니다. 숫자의 데이터 유형은 USINT입니다.

프로그램이 끝날 때마다 각 주기에서 총합이 숫자 값만큼 증가합니다. 총 합의 데이터 유형은 INT입니다.

그림 24: "signal"프로그램용 변수 선언

PROGRAM _CYCLIC

(*add 1 each cylce when input is TRUE*)

IF diEnableRamp = TRUE THEN

rampSignal := rampSignal + 1;

ELSE

rampSignal := 0;

END_IF

(*add value to the sum each cycle*)

sumOverTime := sumOverTime + rampSignal;

END_PROGRAM

프로세스 값 모니터링과 분석

TM223 - Automation Studio diagnostics 23

작동 중 프로세스 변수(process variables) 덮어 쓰기는 승인 된 담당자만 수행 할 수 있습니다.

4.1 변수 모니터링과 변경

Watch 창에서 타겟 시스템의 변수 값을 표시, 모니터링 및 수정할 수 있습니다.

변수 목록은 사용중인 진단 및 기능 테스트를 위해 Watch 창에 저장되며 나중에 재사용됩니다.

예제: "signal” 프로그램 운영 및 진단

이전에 생성한 "signal” 프로그램은 Automation Studio의 Watch 창을 사용하여 작동 및 모니터링합니다.

먼저 "signal” 프로그램의 바로 가기 메뉴를 통해 watch 창을 엽니다. 그 다음 사용 가능한 모든 프로세스

변수를 watch 창에 추가합니다.

4.1.1 watch 창에 프로세스 변수 추가

현재 프로젝트 상태가 컨트롤러로 전송되었는지 확인합니다. 예를 들어 온라인 소프트웨어 구성을 통해

테스크를 수행 할 수 있습니다. 그 다음 변수 모니터가 열고 프로세스 변수 추가 및 모니터를 수행합니다.

software configuration에서 테스크 "signal"의 바로

가기 메뉴를 통해 변수 모니터 (Watch)를 엽니다.

그림 25: 변수 모니터 열기 (Watch)

툴바 toobar를 사용하거나 <Ins> 키를 눌러 사용

가능한 모든 프로세스 변수를 추가하십시오.

그림 26: 변수 삽입

프로세스 값 모니터링과 분석

24 TM223 - Automation Studio diagnostics

Watch 창을 사용하여 제어기의 변수를 모니터링하고 수정할 수 있습니다.

해당 값 외에도 범위, 데이터 타입 및 I/O 관련 정보가 추가적으로 표시됩니다.

4.1.2 Watch 창을 사용하여 "signal"프로그램 실행

1) 프로세스 시작

"diEnableRamp” 변수를 TRUE로 설정하면 프로세스가 시작됩니다.

2) 공정 상태 확인

“rampSignal” 변수는 오버플로우로 계산된 다음 값은 0으로 다시 시작합니다.

3) 프로세스 중지

“diEnableRamp” 변수를 FALSE로 설정하면 프로세스가 중지됩니다.

“rampSignal” 변수를 0으로 설정합니다. "sumOverTime"변수는 계산된 마지막 값에서 멈춥니다.

그림 28: 툴바를 사용하여 구성 저장

변수 모니터의 변수 목록은 나중에 사용하기 위해

저장합니다. 이렇게 하면 사용된 변수 목록을

언제든지 복원 할 수 있습니다. 변수 목록은 툴바

toolbar을 사용하여 저장합니다.

변수가 변수 모니터에 삽입되면 어플리케이션의 프로세스 순서를 시뮬레이션 할 수 있습니다.

그림 27: watch 창에 변수 표시

프로세스 값 모니터링과 분석

TM223 - Automation Studio diagnostics 25

Diagnostics and service \ Diagnostic tools \ Watch window \ Archive mode

저장할 때 목록 이름을 입력합니다. 어플리케이션에 따라 여러 목록을

관리 할 수 있습니다.

그림 29: 변수리스트 저장

4.1.3 변수 값을 동시에 쓰기

watch 창에서 값을 변경하고 <Enter>를 누른 직후에 제어기로

전송됩니다. 제어기는 다음 주기에서 새로운 값을 적용합니다.

제어기로 데이터를 즉시 전송하지 않고 watch 창에 여러 값을 입력하려면 아카이브 모드archive mode가

켜져 있어야 합니다.

아카이브 모드는 툴비의 "Archive mode"아이콘을

사용하여 시작하거나 종료 할 수 있습니다.

그림 30: 아카이브 모드 활성화

수정이 필요한 변수 값을 watch 창에 입력 한 후에

툴바에서 "Write values"아이콘을 클릭하여

제어기로 전송합니다.

그림 31: 아카이브 모드에서 모든 값 변경

Diagnostics and service \ Diagnostics tool \ Variable watch

프로세스 값 모니터링과 분석

26 TM223 - Automation Studio diagnostics

다음 예제는 특정 변수 상태가 변경 될 때 다른 프로세스가 시작되는 방법을 보여줍니다. 측정

커서를 사용하여 두 곡선의 해당 값 변화를 시간 차이로 설정할 수 있습니다.

그림 32: 트레이스 기록의 예

4.2 실시간 변수 기록

Automation Studio에서 watch 창을 사용할 때 제어기의 변수를 폴링합니다.

그러나 Automation Runtime task class system에서 실제 값 변경 사항에 대한 비동기 접근 유형은 다음과

같은 제한 사항을 초래합니다.

• 테스크 클래스에 비동기적으로 표시되는 값

• 일련의 값 변경 및 해당 종속성을 확인할 수 없음

"Trace"기능을 사용하여 타겟 시스템의 값 변경 사항을 실시간으로 테스크 클래스에 동기화하여 기록 할 수

있습니다.

트레이스trace 기록을 분석하여 어플리케이션의 프로세스를 최적화하고 오류를 감지 할 수 있습니다.

예제: 다른 변수에 의존하는 곡선 기록

프로그램 "signal" 실행시 변수는 상호 의존적입니다. 변수 "diEnableRamp"를 TRUE로 설정하여

프로세스가 활성화되면 모든 변수가 영향을 받습니다. 종속성은 트레이스trace 을 사용하여 기록합니다.

1) Trace 창을 열고 변수 추가

"Trace 창 열기 및 변수 추가" 27쪽 참조.

2) "diEnableRamp" 트리거 조건 구성

"트레이스 구성" 28 쪽 참조.

3) 프로세스 시작 및 트레이스 데이터 분석

"프로세스 시작 및 트레이스 데이터 분석" 29쪽 참조.

프로세스 값 모니터링과 분석

TM223 - Automation Studio diagnostics 27

그림 36: 완료된 트레이스 구성

4.2.1 Trace 창을 열고 변수 추가

해당 테스크 단축 메뉴 <Open> / <Trace> 를

사용하여 소프트웨어 구성에서 트레이스를

시작합니다.

"Insert Trace Configuration"버튼을 사용하여

새로운 트레이스 구성을 트레이스 대화 상자에

삽입합니다.

"Insert New Variable" 푸시 버튼을 클릭하여

기록할 변수를 트레이스 구성에 추가합니다. 예제는

프로그램 "signal"에서 사용 가능한 모든 변수가

추가합니다.

그림 33: software configuration에서 trace 창 열기

그림 34: 새로운 트레이스 구성Trace configuration 삽입

그림 35: 트레이스 구성에 변수 추가

트레이스 구성은 다음과 같습니다:

프로세스 값 모니터링과 분석

28 TM223 - Automation Studio diagnostics

<Space bar>를 누르면 트리거 조건 변수를 선택하는 대화 상자가 열립니다.

트레이스 구성이 타겟 시스템에 설치되었습니다.

테스크 클래스 맥락에서 주기적으로 값이

기록됩니다. 기록의 기간과 시작 조건은 트레이스

구성 속성에서 설정 할 수 있습니다.

그림 37: 타겟 시스템에 트레이스 구성 설치

4.2.2 트레이스 구성 편집

트레이스 구성 편집 변수 "diEnableRamp"를

설정하여 어플리케이션에서 프로세스가 활성화 될

때까지 트레이스 기록을 시작해서는 안됩니다.

이를 위해 트리거 조건을 구성합니다. 트레이스 구성

바로 가기 메뉴의 "Properties"항목을 엽니다.

그림 38: 트레이스 속성

기록 버퍼는 긴 기간의 기록으로 구성됩니다. "General"속성 페이지에서 기록 버퍼 크기를 3,000 개

항목으로 설정할 수 있습니다.

트레이스 모드가 트리거 조건을 설정하도록 변경되었습니다. 녹화 시작용 트리거 조건은 "Mode"속성

페이지에서 구성 할 수 있습니다 (diEnableRamp = 1).

타겟 시스템에서 어플리케이션으로 트레이스 레코딩 시작 시간을 제어 할 수 있으려면 트레이스

구성을 수정합니다. "트레이스 구성 편집" 28쪽 참조.

프로세스 값 모니터링과 분석

TM223 - Automation Studio diagnostics 29

테스크의 Watch 구성이 "변수 모니터링 및 수정" 23쪽에 저장된 경우 자동으로 다시

열립니다.

그림 39: 트리거 조건 구성

레코딩이 구성되면 "Install"를 눌러 타겟 시스템으로 전송합니다.

트리거 조건이 충족 되자마자 녹음이 자동으로 수행됩니다.

4.2.3 프로세스 시작 및 트레이스 데이터 분석

트리거 조건 충족 여부에 따라서 트레이스 데이터가 기록됩니다.

1) Watch 창 열기

와치 창을 연 후 "signal” 프로그램에 모든 변수를 추가합니다.

2) 프로세스 시작

변수 "diEnableRamp"를 설정하면 프로세스가 시작됩니다. 이전에 구성된 트리거 조건이 충족되면

트레이스 데이터가 기록됩니다.

툴바에서 "Stop"아이콘을 클릭하면 언제든지 기록을 일시 중지 할 수 있습니다. 업로드가 완료된 후 "Show

target data"아이콘을 클릭하면 결과가 표시됩니다.

프로세스 값 모니터링과 분석

30 TM223 - Automation Studio diagnostics

Diagnostics and service \ Diagnostic tools \ Trace window

측정 커서를 사용하여 값 변경 및 차이가 정확하게 결정됩니다.

4.3 I/O 모니터와 강제 할당

Physical View에서 모듈을 두 번 클릭하면 I/O 매핑 창이 열립니다.

온라인 연결이 활성화 되어 있고 모니터 모드가 활성화되면 I/O 채널의

물리적 상태가 표시됩니다.

그림 41: 모니터 모드 켜기

채널 상태 및 상태 데이터 포인트

I/O 맵핑(I/O mapping)을 통해 I/O 모듈의 채널에 프로세스 변수를 직접 할당합니다. 채널 값 외에 추가

정보도 제공합니다. 제어 어플리케이션은 "ModuleOk” 채널을 통해 런타임 중 모듈이 감지 및 구성되었는지

여부를 평가하는데 사용할 수 있습니다. 추가 상태 입력을 통해 어플리케이션에서 I/O 채널을 진단 할 수

있습니다.

트리거 조건이 충족되면 데이터가 기록됩니다. 변수 모니터에서 필요에 따라 값을 수정할

수 있습니다. 업로드 후 기록된 변수는 개별 곡선으로 표시됩니다. 커브를 겹쳐서 다음과 같은

뷰를 만들 수도 있습니다.

그림 40: 여러 프로세스 변수가 중첩된 트레이스 데이터

프로세스 값 모니터링과 분석

TM223 - Automation Studio diagnostics 31

기계를 떠나기 전에 테스크 강제 할당 유효 여부를 확인해야 합니다. 제어 시스템을 재시작하거나

<Online> / <Force> / <Global force off> 메뉴를 사용하면 자동으로 비활성화됩니다.

Diagnostics and service \ Diagnostic tools \ Monitor Mode \ Mapping I/O channels in monitor

mode

Diagnostics and service \ Diagnostic tools \ Force

Diagnostics and service \ I/O and network diagnostics

그림 42: 아날로그 입력 모듈의 I / O 매핑; ModuleOk,

StatusInput01

"StatusInput01” 채널이 그림에 표시되어 있습니다.

여기는 모듈의 개별 채널 별 비트 정보를 포함합니다.

이를 통해 단락, 단선 및 기타 조건을 감지 할 수

있습니다. 자세한 진단 정보 분석은 사용된 I/O

모듈의 데이터 시트에 있는 레지스터 설명에

있습니다. 모듈 유형에 따라 I/O 구성에서 추가 상태

정보를 활성화 할 수 있습니다.

강제 할당 Forcing

"Force"옵션을 사용하면 실제 물리적 값에 관계 없이 I/O 데이터 포인트에 값을 지정할 수 있습니다.

"Force"기능은 I/O 데이터 포인트에 연결된 변수를 위한 I/O 맵핑(I/O mapping)과 와치 창에서

활성화됩니다.

그림 43: 모니터 모드에서 I/O mapping; I/O mapping과 watch window에서 I/O 채널 강제 실행

입력 모듈 (예: X20DI9371) 입력을 강제 할 때 사용자 프로그램은 실제 입력 상태가 아닌 "force"값으로

작동합니다.

출력 모듈 (예: X20DO9322) 출력을 강제 실행하면 해당 하드웨어의 출력에 직접 기록됩니다. 이것은

사용자 프로그램에서 계산 된 값과 무관합니다.

프로그래밍하며 소프트웨어 분석

32 TM223 - Automation Studio diagnostics

다음 테스크를 위해 software configuration, Profiler, 테스크 "Loop"와 "Loop1"의 Watch 창을

열어 두는 것이 좋습니다.

Diagnostics and service \ Diagnostics tools \ Profiler

• Recording Profiler data

• FAQs

5 프로그래밍하며 소프트웨어 분석

Automation Studio에는 어플리케이션 소프트웨어를 설계 할 때와 런타임 오류 검색을 지원하는 여러 가지

진단 도구가 있습니다.

프로그래밍하며 소프트웨어 분석

“profiler에서 런타임 측정

수행" 32쪽

프로파일러 profiler는 테스크 런타임, 시스템 및 스택 로드 유형의 중요한

시스템 데이터를 측정하고 표시하는데 사용할 수 있습니다.

"Line coverage" 42쪽 라인 커버리지 Line coverage는 현재 실행중인 소스 코드 라인을

나타냅니다.

"Contextual Watch" 43쪽 문맥상 와치 Contextual Watch는 변수 및 파라미터 값을 정확하게 정의된

소스 코드 위치에 표시하는 도구입니다.

"소스 코드 디버깅" 45 쪽 디버거 debugger를 사용하면 프로그램 또는 라이브러리의 소스 코드에서

오류를 쉽게 검색 할 수 있습니다.

"event IDs, 상태 변수 및 리턴

값 평가" 48쪽

상태 변수Status variables는 사용자 프로그램에서 펑션 및 펑션 블록을

호출 할 때 상태 식별하는데 사용됩니다.

"프로그램에서 변수 사용" 49쪽 출력 창output window은 진행중인 프로세스 정보를 표시하는데

사용됩니다 예: 상호 참조 목록 작성, 다운로드, 생성, 검색 결과 표시 등.

"소스 파일 비교" 51쪽 Automation Studio 소스 파일 비교를 통해 개별 파일 (프로그램,

라이브러리, 패키지 및 데이터 객체) 또는 전체 프로젝트를 비교할 수

있습니다.

5.1 프로파일러 Profiler에서 런타임 측정 수행

Automation Runtime 은 모든 런타임 동작을 지속적으로 기록합니다. 프로파일러를 사용하여 개별 사용자

테스크의 런타임, CPU 로드 및 다른 시스템 이벤트를 기록 할 수 있습니다. 메뉴에서 <Open> /

<Profiler>을 선택하여 엽니다.

프로파일러에서 기록된 데이터를 몇가지 보기 모드로 제공합니다. 프로파일러 툴바에서 보기모드를

전환합니다. 테이블 보기, 그래픽 보기, 원시 데이터 보기를 사용할 수 있습니다. 구성 열기, 기록 시작 및

중지 같은 프로파일러에 중요한 기능도 도구 모음을 통해 제어됩니다.

그림 44: 프로파일러 창의 툴바

프로그래밍하며 소프트웨어 분석

TM223 - Automation Studio diagnostics 33

프로파일러 데이터가 타사에 의해 릴레이 된 경우 "Events"탭에 모든 이벤트를 기록하는 것이

좋습니다. 필터링은 나중에 수행 할 수 있습니다.

5.1.1 프로파일러 구성 및 기록 수행

결정적인 진단 측정 결과를 얻으려면 기록 기간과 이벤트 유형을 구성합니다. 다음 테스크는 사용자 테스크,

테스크 클래스 및 예외 실행 시간만 기록됩니다. 구성을 편집하고 데이터를 기록하는 방법을 설명하는

간단한 가이드라인이 있습니다.

1 구성을 편집하려면 현재 기록을 중지해야 합니다.

2 기존 프로파일러 구성이 타겟 시스템에서 설치 제거되었습니다.

3 구성 대화 상자를 열려면 프로파일러 툴바에서 "Configuration"아이콘을

클릭하십시오.

4

"Install"아이콘을 사용하여 변경 사항을 타겟 시스템으로 전송하십시오.

새로운 구성으로 즉시 기록이 다시 시작됩니다.

5 "stop"기호로 현재 기록이 중지됩니다.

6 프로파일러 데이터는 "upload data object” 기호를 통해 Automation

Studio에 로딩되어 표시됩니다.

표 5: 프로파일러 구성 변경 및 프로파일러 데이터 업로드에 필요한 단계 개요

다음 이미지에 표시처럼 구성하십시오:

그림 45: 프로파일러 구성: 기록 버퍼 그림 46: 프로파일러 구성: 이벤트 타입

프로그래밍하며 소프트웨어 분석

34 TM223 - Automation Studio diagnostics

유익한 프로파일러 그래프를 얻으려면 시스템에서 가장 느린 task class의 호출 수가 3 초과 여야

합니다. 프로파일러의 기록 지속 시간은 프로파일러 구성에서 버퍼 크기를 통해 설정됩니다.

Diagnostics and service \ Diagnostic tools \ Profiler \ Recording Profiler data \ Analyzing Profiler data \ Analyzing Profiler data in table form

예제: "Loop"프로그램의 실행 시간 측정

테스크 클래스(task class) #1에 할당된 테스크 "Loop"에서 "udEndValue” 변수 값을 변경하여 런타임을

증가시킨다.

프로파일러를 사용하여 테스크 런타임 동작과 사용 가능한 남은 시간을 모니터링하십시오.

1) "udEndValue” 값을 50000 으로 설정

첫 번째 단계는 "udEndValue"변수 값을 50,000으로 설정하는 것입니다.

2) 단계별로 "udEndValue” 증가

결과는 각 단계 사이에 프로파일러에서 분석합니다.

5.1.2 프로파일러 테이블 및 그래픽 뷰

프로파일러 데이터를 분석하기 위해 다양한 보기를 사용할 수 있습니다. 이전 테스크에서 업로드된

데이터가 테이블 또는 그래픽 형식으로 표시됩니다.

프로파일러 데이터를 테이블로 표시

프로파일러 데이터 테이블 보기는 적절한 필터링과 함께 각 테스크의 실행

시간과 CPU로드가 표시됩니다.

툴바 "Table"아이콘으로 열립니다.

그림 47: 프로파일러를 사용하여 CPU로드 분석

프로파일러 데이터를 시각적 표시

툴바 "visual"기호를 통해 프로파일러 데이터를 그래픽 디스플레이로

전환하십시오. 다음 이미지와 같이 표현을 표시 할 수 있습니다. 필터, 줌 및

측정 커서 기능을 통해 포괄적인 분석 옵션을 사용할 수 있습니다.

Diagnostics and service \ Diagnostic tools \ Profiler \ Preparing the Profiler

프로그래밍하며 소프트웨어 분석

TM223 - Automation Studio diagnostics 35

Diagnostics and service \ Diagnostic tools \ Profiler \ Recording Profiler data \ Analyzing Profiler data \ Show Profiler data as graph

• Navigating in the graph view

• Zooming in the graph view

그림 48: 첫 번째 프로파일러 측정 결과

5.1.3 프로파일러에서 프로그램 런타임 측정

정확한 실행 시간을 결정하려면 프로파일러 툴바 아이콘을 사용하여 "Loop"시작 부분에 참조 커서를

설정한 다음 "Loop"끝에 커서를 설정하여 시간을 볼 수 있습니다.

예제: "udEndValue"변수를 단계적 증가

이 단계에서 프로파일러를 다시 시작합니다. 단계적으로 "udEndValue" 값을 늘리십시오 (예: 10000).

"Loop” 테스크의 실행 시간을 모니터링하려면 프로파일러를 사용하십시오. 값이 변경되면 기록이 중지되고

업로드됩니다.

프로그래밍하며 소프트웨어 분석

36 TM223 - Automation Studio diagnostics

"tolerance count"값을 사용하면 테스크 클래스에서 공차 시간이 활성화 되었는지 테이블

보기table view로 확인할 수 있습니다. 다음 이미지에서 task class #1 의 middle runtime은

10.7 ms입니다. 허용 오차 수tolerance count 는 구성된 실행 시간이 271 번 초과했음을

나타냅니다.

그림 50: 프로파일러에서 파라미터 공차 수

예제는 평균 CPU 로드에 허용 오차 사용 효과를 보여줍니다. Task class # 1은 구성된 주기 시간

10ms를 초과하더라도 약 54 %의 CPU 부하를 발생시킵니다. 허용 오차가 유효하면 task class #

1이 20ms마다 다시 호출됩니다.

"Loop"테스크는 10 ms 테스크 클래스(task class)에서 작동합니다. 이미지를 자세히 살펴보면 실행

시간이 16.5 ms에 도달 하여 주기 시간 위반cycle time violation 발생 했어야 합니다.

Task class #1 속성에 10 ms로 정의된 공차tolerance 가 적용됩니다.

그림 49: 사이클 타임 초과, 공차 영향

프로그래밍하며 소프트웨어 분석

TM223 - Automation Studio diagnostics 37

그림 51: "Loop” 테스크가 "Loop1” 테스크를 중단 시킴-프로파일러의 그래픽 보기

task class #4에서 "Loop1"테스크이 실행되면 테스크가 완전히 실행될 때까지 입력 이미지를 사용할

수 있습니다.

예제: 우선 순위가 다른 테스크 클래스 기록

테스크 클래스 우선 순위를 사용하면 우선 순위가 높은 테스크 클래스의 테스크가 우선 순위가 낮은 테스크

클래스의 테스크를 오래 중단시킬 수 있습니다.

"Loop"및 "Loop1” 테스크를 기반으로 Watch 창을 사용하여 변수 "udiEndValue” 최종 값을 변경하여

"Loop” 테스크가 "Loop1” 테스크를 정확히 두 번 인터럽트 합니다. "Loop" 테스크에서 변수

"udEndValue" 시작 값을 2,000으로 설정합니다. 프로파일러 측정은 다음과 같습니다:

5.1.4 오류 후 프로파일러 데이터 읽기

레코딩을 중지 한 후 언제든지 타겟 시스템에서 프로파일러 데이터를

업로드 할 수 있습니다. 오류가 발생하면 프로파일러 데이터도

유지됩니다. 다음 예를 들어 시스템이 다시 시작된 이벤트를 확인할 수

있습니다.

재시작 후에 프로파일러 데이터가 유지되도록 프로파일러 구성을

조정합니다. 프로파일러 데이터 및 프로파일러 구성의 타겟 메모리가

"USERROM"으로 설정되어 있습니다.

그림 52: 프로파일러 데이터의 타겟

메모리 및 프로파일러 구성 설정

Diagnostics and service \ Diagnostic tools \ Profiler \

Preparing the Profiler \ General settings

프로그래밍하며 소프트웨어 분석

38 TM223 - Automation Studio diagnostics

Runtime동안 구성된 cycle time + tolerance 를 초과 한 경우 Automation Runtime이 예외를

발생시킵니다. 어플리케이션이 예외 처리하도록 설정하지 않은 경우 타겟 시스템은 SERVICE

모드에서 재시작 됩니다.

예제: 주기 시간 위반을 유발하고 프로파일러 데이터 평가

"Loop"테스크에서 변수"udEndValue" 값을 증가 시키면 주기 시간 위반이 발생할 수 있습니다.

서비스SERVICE 모드에서 타겟 시스템을 다시 시작한 후 프로파일러를 열고 타겟 시스템에서 프로파일러

데이터를 불러오십시오.

1) Watch 창에서 변수 "udEndValue” 값을 500000으로 설정하여 주기 시간 위반 발생

2) 서비스 모드로 다시 시작한 후 메뉴 <Open> / <Profiler> 를 선택하여 소프트웨어 구성에서

프로파일러를 엽니다.

프로파일러의 툴바 아이콘 "Upload data object"을 클릭하면

데이터가 업로드됩니다. 오류가 있는 경우 재시작시 새 프로파일러

파일이 생성되며 타임 스템프가 제공됩니다. 업로드 프로세스

목록에서 해당 파일을 선택할 수 있습니다.

표시되는 이벤트를 제한을 위해 프로파일러 데이터 필터링을

지원합니다. 표시 할 이벤트는 상황 자체에 따라 다릅니다.

그림 53: 프로파일러 데이터 선택

그림 54: 프로파일러 데이터 필터링

Diagnostics and service \ Diagnostic tools \ Profiler \

Recording Profiler data \ Analyzing Profiler data

프로그래밍하며 소프트웨어 분석

TM223 - Automation Studio diagnostics 39

원인을 분석하려면 이전 시점의 데이터를 관찰합니다.

데이터 분석 할 수 있는 두가지 방법은 측정 커서와 프로파일러 데이터 확대 기능입니다.

"Loop” 테스크 실행 시간

이미지는 "Loop"테스크가 일반적으로 μs (파란색

화살표) 미만으로 수행됨을 보여줍니다. 사이클 타임

위반의 경우 구성된 사이클 타임cycle time +

공차tolerance를 초과하였습니다 (빨간색 화살표).

이미지는 간단한 어플리케이션이 프로파일러에

기록되는 방법을 보여줍니다. 일반적으로 여러

테스크task가 테스크 클래스 task class에서

실행되므로 문제 원인을 실제 어플리케이션에서

감지하기가 더 어렵습니다. 필터를 설정하면 특정

프로세스를 대상으로 할 수 있습니다.

그림 56: 사이클 티임 위반 결정

특정 시점에서 테스크 완료에 소요되는 시간이 구성된 주기 시간 cycle time 및 허용 오차

tolerance를 초과합니다. 이 예외 이벤트는 적절한 아이콘으로 표시됩니다.

그림 55: 프로파일러 데이터 예외

프로그래밍하며 소프트웨어 분석

40 TM223 - Automation Studio diagnostics

예제:

task class #1에서 작동하는 테스크 두 개는 일반적으로 구성된 테스크

클래스 사이클 이내에서 완료됩니다.

그림 57: 타이밍 다이어그램-task class # 1의

실행 시간

그림 58: 타이밍 다이어그램-task class # 1의

실행 시간이 구성된 주기 시간을 초과 함

첫 번째 테스크를 완료하는 데 시간이 더 걸리고 (다이어그램에서 n

+ 30ms 이상) 두 번째 테스크 완료 시간이 구성된 주기 시간과 허용

오차를 초과하면 두 번째 테스크가 에러 원인으로 입력됩니다.

실제 주기 시간 위반은 아니지만 오류가 발생합니다.

윈시 데이터를 평가하여 이벤트 순서를 시간 순으로 분석 할 수 있습니다(툴바 아이콘 "Output data").

"Loop” 테스크 호출의 시작과 끝이 목록에 입력됩니다. 시간 순서가 계속되면 테스크가 시작되었지만

종료되지 않은 것으로 판단 할 수 있습니다.

그림 59: 프로파일러 기록을 위한 원시 데이터

5.2 소스 코드에서 오류 검색

소프트웨어 관련 통계에 따르면 일반적으로 코드 1,000 줄마다 약 2~3개 오류가 포함되어 있습니다.

Automation Studio는 프로그램 오류의 원인을 찾기 위한 다양한 진단 도구를 제공합니다.

프로그래밍하며 소프트웨어 분석

TM223 - Automation Studio diagnostics 41

5.2.1 프로그램 편집기의 모니터 모드 Monitor mode

프로그래밍 편집기 툴바에서 "Monitor” 아이콘을 선택하면 모니터

모드Monitor mode 가 시작됩니다.

모니터 모드는 각 프로그래밍 언어에 사용할 수 있으며 여러 가지

방법으로 변수를 관찰 할 수 있습니다.

그림 60: 모니터 모드 monitor mode 활성화

텍스트 기반 프로그래밍 언어에서 툴팁

모든 텍스트 기반 및 그래픽 프로그래밍 언어에서

변수 값은 툴팁tooltip 으로 표시됩니다.

그림 61: 소스 코드의 툴팁

그래픽 프로그래밍 언어에서 값 표시

그래픽 프로그래밍 언어에서 변수 이름 옆에 값이 표시됩니다.

그림 62: 모니터 모드에서 그래픽

프로그래밍 언어

와치 창 Watch window

모니터 모드가 활성화 되면 소스 코드 옆에 와치 창 watch window이

표시됩니다. 소프트웨어 구성의 테스크 바로 가기 메뉴 또는 온라인

소프트웨어 비교에서 watch 창을 열 수도 있습니다.

그림 63: 와치 윈도우 보기 Watch window view

프로그래밍하며 소프트웨어 분석

42 TM223 - Automation Studio diagnostics

변수 "Switch"에 접촉 조건이 충족되면 코일 "Lamp"가 설정되고 신호 경로에 색상이 지정됩니다.

그림 65: 래더 다이어그램에서 사용 가능한 Power Flow

Diagnostics and Service \ Diagnostic tools \ Monitors mode \ Programming languages in monitor mode \ Powerflow

5.2.2 파워플로우 Powerflow

신호 경로는 래더 다이어그램과 같은 그래픽

프로그래밍 언어로 표시 될 수 있습니다. 신호

경로는 "Powerflow"를 선택하여 활성화됩니다. 신호

흐름 표시를 활성화 할 때 사이클 타임 모니터링

비활성화 메시지를 확인합니다.

그림 64: 사이클 타임 모니터링 비활성화 메시지

예제: 래더 다이어그램에서 Power Flow

연습의 목적은 "LampTest” 프로그램에서 Powerflow를 활성화하는 것입니다.

변수 "Switch" 값을 변경하여 watch 창에서 신호 경로를 변경할 수 있습니다.

1) 온라인 연결 후 "LampTest” 프로그램 열기

2) 모니터monitor 모드 활성화

3) 변수 "Switch"및 "Lamp”를 watch 창에 추가하기

4) 변수 "Switch" 설정

5) 결과 관찰

5.2.3 라인 커버리지 Line coverage

라인 커버리지 Line coverage는 툴바 "Line coverage"아이콘을 통해

활성화됩니다.

프로그래밍하며 소프트웨어 분석

TM223 - Automation Studio diagnostics 43

그림 66: 사이클 타임 모니터링 비활성화 메시지

활성화된 라인 커버리지를 통해 어느 시점에 어떤

회선이 실행되고 있는지 정확하게 볼 수 있습니다.

텍스트 기반 프로그래밍 언어에서 라인 커버리지가

활성화 된 경우 표시기는 현재 실행중인 코드 라인을

나타냅니다.

라인 커버리지를 활성화 할 때 사이클 타임 모니터링

비활성화 메시지가 확인해야합니다.

그림 67: Structured Text에서 Line coverage

5.2.4 문맥적 와치 Contextual Watch

문맥적 와치 Contextual Watch는 정의 된 소스 코드 위치에 변수 값을 표시하는 도구입니다. 타겟 시스템의

실시간 기능에는 영향을 미치지 않습니다.

Contextual Watch는 디버거 툴바를 통해 활성화 된 모니터 모드에서

활성화됩니다. Contextual Watch의 해당 표시는 출력 창의

일부입니다.

Diagnostics and service \ Diagnostics tool \ Monitors \ Programming languages in monitor mode \ Line coverage

프로그래밍하며 소프트웨어 분석

44 TM223 - Automation Studio diagnostics

그림 68: Contextual Watch 활성화 메시지

그림 69: 변수 "udCnt”가 있는 소스 코드; 색상으로 표시된

소스 코드 라인에 Contextual Watch가 삽입됨

그림 70: ContextualWatch에서 두가지 "udCnt" 값 표시

Contextual Watch가 활성화 되면 확인 메시지가

나타납니다. 툴팁 값은 Contextual Watch 값과

동기화되지 않습니다. 또한 Contextual Watch는 각

task class 마다 추가 런타임이 필요합니다.

Contextual Watch로 진단하는 동안 사이클 타임

위반이 발생하지 않도록 하는 것이 중요합니다.

Contextual Watch가 활성화 되면 드래그 앤

드롭으로 변수를 출력 창에 드래그 할 수 있습니다.

예제에서는 프로그램 여러 지점에서 사용되는 변수

"udCnt"를 Contextual Watch에 삽입하였습니다.

변수 값이 소스 코드 위치에 따라 다르다는 것을 알

수 있습니다.

예제: Contextual Watch에서 "Loop"프로그램 준수

변수 모니터에서 "Loop"프로그램을 관찰하면 변수 값이 프로그램 끝에 표시됩니다. 목적은 Contextual

Watch와 그 값으로 상황에 따라 여러 번 사용되는 변수를 표시하는 것입니다.

1) "Loop” 프로그램 끝에서 프로그램하여 다음 줄을 확장하십시오.

udCnt;

Diagnostics and service \ Diagnostics tools \ Contextual Watch

프로그래밍하며 소프트웨어 분석

TM223 - Automation Studio diagnostics 45

2) 프로그램을 타켓 시스템으로 전송합니다.

3) 모니터 모드 Monitor mode 활성화

4) Contextual Watch 활성화

5) Contextual Watch에 "udCnt"변수 삽입

6) 결과 확인

5.2.5 소스 코드 디버깅

디버거는 프로그래머에게 중요한 도구로 프로그램의 소스 코드나 라이브러리 오류를 쉽게 찾을 수 있습니다.

Automation Studio에서 디버깅 가능성

• Auto-watch 창에서 프로그램 라인 별 실행 및 변수 병렬 모니터링

• 중단점breakpoint 을 사용하여 어플리케이션 중지

• 호출 된 펑션으로 스테핑(예 : 소스가 있는 라이브러리 펑션 / 펑션 블록에서)

예제: Debugger 를 사용하여 Structured Text 프로그램에서 오류 찾기

"dbgTest” 이름에 Structured Text 프로그램을 작성하십시오.

길이가 10 인 USINT 배열 "AlarmBuffer"와 UINT 변수 "index"를 "dbgTest.var"파일에 추가하십시오.

프로그램의 순환 부분(cyclic)에서 배열은 임의의 값으로 초기화됩니다 (예: 112).

결함이 있는 다음 프로그램 코드에는 가장 일반적으로 발생하는 오류 중 하나가 포함되어 있습니다.

프로그램 코드

표 6: 결함이 있는 프로그램 서브루틴

PROGRAM _CYCLIC

FOR index :=0 TO 10 DO

AlarmBuffer[index] := 112;

END_FOR

END_PROGRAM

프로그래밍하며 소프트웨어 분석

46 TM223 - Automation Studio diagnostics

디버거 정보와 watch 창에서 변수 (및 해당 값)는 오류 상황을 분석하는 데 사용됩니다.

툴바에서 Monitor mode 및 debugger

모니터 모드Monitor mode 는 프로그램 편집기가 열려있는 경우에만 활성화

할 수 있습니다.

그림 72: 모니터 모드 활성화

메뉴 표시 줄에서 디버거

Debugger를 켜거나 끌 수 있습니다.

그림 73: 디버거 켜기 / 끄기

Watch window에 변수 추가

모니터 모드를 활성화하면 변수 "AlarmBuffer”가 watch 창에 추가됩니다.

프로그램이 시작될 때, 값 112는 10개 배열 요소 각각에 기록되고; 프로그램이 작동하는 것

같습니다.

오류 개요: 인덱스index 0-10에 쓰기 접근 권한이 있습니다. 배열 요소는 10 개만 있습니다 (인덱스

0~9). 이러한 유형 오류는 한 눈에 감지하기 어렵고 프로그램이 다음 메모리 위치를 덮어 씁니다.

그림 71: 모니터 모드에서 watch 창

프로그래밍하며 소프트웨어 분석

TM223 - Automation Studio diagnostics 47

중단점breakpoint 설정

• FOR Loop 첫 번째 줄로 커서를 이동하십시오.

• 메뉴 <Debug> / <Toggle Breakpoint>을 사용하거나 <F9> 키를 눌러 중단점을

설정하십시오.

디버거debugger 활성화

메뉴에서 디버거 및 설정된 중단점을 활성화합니다.

디버거가 중단점에 도달하면 활성 라인은 노란색으로

표시됩니다.

그림 75: 디버거에서 활성 라인

"단계별” 디버깅

먼저 배열 "AlarmBuffer”의 요소는 watch 창에서

값을 0으로 수동 변경합니다.

"Step Into"명령 또는 <F11>을 사용하여 한 번에 한

줄씩 프로그램 코드를 실행할 수 있습니다. 활성화된

라인은 노란색 화살표와 함께 표시됩니다.

그림 76: 노란색으로 표시된 활성 단계

왼쪽 창에는 프로그램 코드가 표시되고 watch 창은 오른쪽에 표시됩니다.

그림 74: 프로그램 편집기의 모니터 모드 Monitor mode

중단점에 도달하면 타겟 시스템에서 실행

중인 전체 애플리케이션이 중지됩니다.

프로그래밍하며 소프트웨어 분석

48 TM223 - Automation Studio diagnostics

이 유형의 오류는 IEC Check library에서 감지 할 수 있습니다.

• 48 쪽 "IEC Check library" 참조.

Diagnostics and service \ Diagnostics tool \ Debugger

Programming \ Libraries \ IEC Check library

5.2.6 IEC Check library

IEC Check 라이브러리에는 나누기 테스크, 범위 위반, 적절한 배열 접근 및 메모리 위치 읽기 또는 쓰기

확인을 위한 기능이 포함되어 있습니다.

해당 검사 기능은 각 테스크를 수행하기 전에 프로그램 (IEC 61131-3 언어 또는 Automation Basic 지원)에 의해

호출됩니다.

IEC Check 라이브러리를 사용하면 동적 변수를 사용하여 범위를 벗어난 오류, 잘못된 메모리 접근이

발생하는 경우, 0으로 나눌 때 발생하는 상황을 확인할 수 있습니다.

5.2.7 event ID, 상태 변수status variables 및 리턴 값 평가

펑션 및 펑션 블록의 반환 값과 상태 값은 사용자 프로그램에서 평가합니다. "상태 status"및 "이벤트 ID

event ID" 용어는 문맥상 동의어로 이해합니다.

<F11> 키를 여러 번 누르면 Loop가 반복 될 때마다 배열 요소 값이 변경됩니다. 배열의 마지막

요소에 새로운 값이 할당 될 때까지 <F11> 키를 사용하여 각 단계를 계속 수행하십시오.

그림 77: 단계별로 변수에 값 쓰기

변수 "index”는 값 9를 수신하며 배열의 상한 ([0..9])에 해당합니다.

<F11>을 사용하여 단계별로 계속 반복하면 Loop는 배열 외부 인덱스로 한 번 더 반복됩니다.

프로그래밍하며 소프트웨어 분석

TM223 - Automation Studio diagnostics 49

다음 예제는 호출된 펑션 블록을 보여줍니다. 펑션은 호출 중에 오류가 발생했는지 여부를 판별하는데

사용할 수 있는 상태를 리턴합니다. 상태 값 또는 이벤트 ID 목록은 사용 된 라이브러리 설명에 문서화되어

있습니다.

그림 78: 펑션 블록의 상태 평가

5.3 프로그램에서 변수 사용

Logical View 다른 프로그램에서 올바른 변수 사용은 상호 참조 목록 cross-reference list를 작성하거나

알려진 변수 이름을 명시 적으로 검색하여 확인할 수 있습니다.

5.3.1 상호 참조 목록 cross-reference list 생성

상호 참조 목록은 프로젝트의 어느 시점에서 어떤 프로세스 변수, 펑션

및 펑션 블록을 사용할 수 있는지 나타냅니다.

상호 참조 목록은 선택 사항이며 프로젝트가 컴파일 (built) 될 때 생성

될 수 있습니다. 그러면 결과가 출력 창의 "Cross Reference"탭에

표시됩니다.

상호 참조 목록을 생성하려면 <Project> / <Settings> 메뉴 옵션을

사용하여 활성화시킵니다. 또는 상호 참조 목록은 <Project> / <Build

cross-reference> 메뉴 항목을 통해 생성됩니다.

cross-reference list을 통해 빈번한 테스크 검색을 쉽게 처리 할 수

있습니다.

그림 79: 빌드 중 상호 참조 목록

작성 cross-reference list 가능

예제: cross reference list 생성

열린 프로젝트의 cross-reference list을 작성하십시오.

1) 프로젝트 설정에서 cross-reference list을 활성화시킵니다.

2) 프로젝트 빌드

3) 출력 창에서 cross-reference list 확인

프로그래밍하며 소프트웨어 분석

50 TM223 - Automation Studio diagnostics

Project management \ Workspace

• General project settings

• Output window \ Cross reference

• Main menu \ Menu - Project

Project management \ Workspace \ Find in files

5.3.2 파일에서 검색

이름, 제품 ID 또는 설명과 일치하는 항목을 찾으려면 프로젝트 파일에서 검색 할 수 있습니다. 변수 variable

를 검색하려면 <Edit> / <Find and Replace – Find in Files>를 사용하거나 <CTRL> + <Shift> + <F>를

누르십시오.

대화 상자에 검색 어를 입력합니다. 검색 결과는 출력 창 "Find in Files"탭에 표시됩니다.

그림 81: 파일에서 검색

출력 창에서 결과를 더블 클릭하면 해당 소스 파일이 열리고 커서가 해당 위치에 놓입니다.

출력 창에서 변수 및 해당 속성의 상호 참조를 분석 할 수 있습니다.

왼쪽에서 변수를 선택하면 해당 사용법 및 접근 유형이 소스 코드 또는 오른쪽 I/O 할당에

표시됩니다.

그림 80: cross-reference list에 표시

프로그래밍하며 소프트웨어 분석

TM223 - Automation Studio diagnostics 51

5.4 소스 파일 Source file 비교

Automation Studio 소스 파일 비교를 통해 개별 파일, 폴더 요소

(프로그램, 라이브러리, 패키지 및 데이터 객체) 또는 전체 프로젝트를

비교할 수 있습니다.

로컬 소스 파일 비교 중에 현재 열려 있는 프로젝트 또는 전체

프로젝트의 요소는 항상 데이터 저장 장치의 다른 요소 또는

프로젝트와 비교합니다.

그림 82: 소스 파일 비교 열기

개요 비교

소스 파일 비교를 연 후 먼저 전체 비교를 수행합니다. 두 프로젝트 구조를 비교합니다. 예를 들어 필터를

통해 특정 객체만 표시됩니다.

그림 83: 두 프로젝트 개요 비교-차이점만 표시됨.

프로그래밍하며 소프트웨어 분석

52 TM223 - Automation Studio diagnostics

Project management \ Automation Studio source file comparison

• Overview comparison

• Detailed comparison

자세한 비교

객체를 더블 클릭하면 두 소스 파일이 세부적으로 비교되어 열립니다. 편집기는 해당 텍스트 기반 또는 표

형식 기반으로 차이점을 표시합니다.

그림 84: 자세한 비교에서 Structured text 프로그램

프로그래밍하며 소프트웨어 분석

TM223 - Automation Studio diagnostics 53

5.5 타겟 시스템에 소스 파일 비교

타겟 시스템에서 소스 파일을 비교하면 로컬

프로젝트의 소스 파일과 타겟 시스템의 파일을

비교할 수 있습니다. 이를 수행하려면 마지막으로

구성을 전송 할 때 타겟 시스템에서 소스 파일

비교가 활성화되어 있어야 합니다.

그림 85: Configuration View의 바로 가기 메뉴를 사용하여 속성

대화 상자를 엽니다.

그림 86: "Comparison” 탭에서 타겟 시스템에 대한 소스 파일 비교 활성화

이 기능은 각 구성의

"Comparison"탭에서 활성화합니다.

대안으로, 타겟 시스템에서 저장된

소스 파일에 암호를 걸 수 있습니다.

프로젝트를 제어기로 전송 한 후

타겟 시스템의 소스 파일과 비교

가능합니다

프로그래밍하며 소프트웨어 분석

54 TM223 - Automation Studio diagnostics

Project management \ Automation Studio source code file comparison \ Source code file com-

parison on the target system

Automation Studio 프로젝트의

소스 파일과 타겟 시스템의 소스

파일 비교는 바로 가기 메뉴를 통해

열립니다.

그림 87: 타겟 시스템의 소스 파일 비교 열기

타겟 시스템과 프로젝트 소스 파일이 서로 병렬로 표시됩니다. 차이점이 표시됩니다.

예를 들어 툴바를 사용하여 변경 사항을 필터링하고 프로젝트로 전송할 수 있습니다.

그림 88: 프로젝트 및 타겟 시스템의 소스 파일 표시

서비스 지원 받기 전 준비사항

TM223 - Automation Studio diagnostics 55

Diagnostics and service \ Diagnostics tools \ System Diagnostics Manager

System Diagnostics Manager 사용시 자동화 런타임의 구성 요소 중에 웹 서버 서비스가

필요합니다.

6 서비스 지원 받기 전 준비사항

어플리케이션 구성, 시운전, 테스트하는 동안 발생할 수 있는 서비스를 위해 기계 또는 시스템을 준비합니다.

6.1 System Diagnostics Manager (SDM)

System Diagnostics Manager(SDM)의 도움으로 표준 웹 브라우저를

통해 제어 진단을 수행 할 수 있습니다.

이러한 진단의 유일한 요구 사항은 제어기와의 이더넷 연결입니다.

다음 기능을 제공합니다:

• 일반 시스템 개요

• 로거 파일 표시 및 저장

• 설치된 소프트웨어 객체 개요

• 하드웨어 모듈 및 I/O 상태

• 모션 컨트롤 진단

• 시스템 덤프 생성 그림 89: SDM 시작 화면

6.1.1 SDM 활성화

새 프로젝트를 만들 때 SDM이

자동으로 활성화됩니다.

SDM 구성은 Physical View에서

제어기 바로 가기 메뉴

<Configuration> 옵션을 사용하여

엽니다.

그림 90: 구성, SDM 및 웹 서버 설정 열기

서비스 지원 받기 전 준비사항

56 TM223 - Automation Studio diagnostics

새 Automation Studio 프로젝트 또는 Configuration View에 configuration을 새로 생성하면

System Diagnostics Manager가 자동으로 활성화됩니다.

타겟 시스템 IP 주소는 제어기의 이더넷 구성 Ethernet configuration에서 확인합니다. 제어기에

활성화된 연결이 있으면 메뉴 <Tools> / <System Diagnostics Manager>을 사용하여

SDM을 열 수 있습니다.

그림 93: 제어기의 이더넷 구성에서 네트워크 설정을 확인하십시오.

1 단계 - PC와 제어기를 연결 2 단계 - 웹 브라우저에서 SDM보기

그림 92: 웹 브라우저를 통해 SDM 접근

그림 91: 네트워크 케이블을 통해 PC와 제어기 연결

예제: System Diagnostics Manager 구성 점검

Automation Runtime 구성에서 웹 서버 및 System Diagnostics Manager가 사용 가능한지 확인하십시오.

1) Physical View에서 제어기 바로 가기 메뉴를 통해 Automation Runtime configuration 열기

2) 웹 서버Web Server 및 시스템 진단 요소System Diagnostics components 사용

6.1.2 SDM 접근

SDM 연결은 제어기의 IP 주소 또는 호스트 이름hostname 을 통해 이루어집니다.

"http://ip-address/SDM"링크를 통해 웹 브라우저를 사용하여 접근합니다.

표 7: 개요 – "SDM 연결 설정"

서비스 지원 받기 전 준비사항

TM223 - Automation Studio diagnostics 57

System Diagnostics Manager에서 "Parameters + Data Files” 옵션을 사용하여 시스템 덤프가

생성 된 경우 Automation Studio Logger를 사용하여 직접 시스템 덤프를 열고 표시 할 수 있습니다.

예제: 웹 브라우저를 사용하여 SDM 접근

SDM에 접근하기 위한 URL을 입력하십시오 예 : http://10.0.0.2/SDM

1) 웹 브라우저 시작

2) SDM 접근을 위해 URL을 입력하십시오.

예제: SDM 및 Automation Studio에서 Logger 평가

가정: 시스템이 명백한 이유 없이 서비스 모드service mode로 부팅되었습니다. 불행하게도 현장에서

Automation Studio를 사용할 수 없습니다. 로거 파일 "$arlogsys"은 SDM을 사용하여 읽은 다음

Automation Studio에서 열어야 합니다.

1) SDM에 연결하고 "Logger"페이지로 이동하십시오.

2) "$arlogsys"모듈을 업로드하십시오.

3) 파일 확장명 .br 을 사용하여 파일을 저장하십시오.

4) Automation Studio에서 로거Logger를 엽니다.

5) 확장자가 .br 인 로거 파일을 로드합니다.

6) 로거에서 오류 항목을 강조 표시하고 <F1> 키를 눌러 자세한 정보를 확인합니다

그림 94: Automation Studio에서 파일 확장자가 .br 인 파일

형식을 선택하십시오.

Diagnostics and service \ Diagnostics tools \ System Diagnostics Manager

서비스 지원 받기 전 준비사항

58 TM223 - Automation Studio diagnostics

추가 보충 정보 없이 SDM 로거에 항목이 표시됩니다. Automation Studio에서만 표시 됩니다.

그림 95: System Diagnostics Manager의 로거 항목

온라인 데이터는 Automation Studio Logger에서 선택 해제합니다. 그렇지 않으면 온라인 항목이

불러온 파일 항목과 함께 표시됩니다.

그림 96: 온라인 로거 항목 비활성화

서비스 지원 받기 전 준비사항

TM223 - Automation Studio diagnostics 59

서비스 지침의 machine/system에서 배터리 교체를 참조하십시오. 배터리 수명은 사용중인 제어기

설명서에 명시되어 있습니다.

6.2 배터리 상태 조회

사용 된 타겟 시스템에 따라 배터리가 데이터 버퍼링에 사용됩니다.

자세한 내용은 사용 된 제어기 데이터 시트에서 확인할 수 있습니다.

실시간 클럭 및 애플리케이션에서 사용되는 비휘발성 변수(보존,

영구)를 위한 백업 배터리는 애플리케이션 자체에서 모니터링 할 수

있습니다.

배터리 상태는 여러 가지 방법으로 수집 할 수 있습니다:

• 어플리케이션 AsHW 라이브러리

• 제어 I/O 맵핑

• 온라인 정보 대화 상자

• System Diagnostics Manager

I/O 할당은 Physical View에서 제어기의 바로가기 메뉴 <I/O

Allocation>을 사용하여 열립니다. "BatteryStatusCPU"에 연결된

변수는 어플리케이션에서 필요에 따라 평가할 수 있습니다.

그림 99: 제어기의 I/O 맵핑에서 배터리 상태 조회

그림 98: 제어기의 I/O 맵핑 열기

제어기 I/O 맵핑에서 상태 데이터

포인트 값은 모니터 모드를

사용하여 모니터링 할 수 있습니다.

참조: "I/O 모니터와 강제할당" 30

그림 97: "4A0006.00-000" 리튬 배터리

서비스 지원 받기 전 준비사항

60 TM223 - Automation Studio diagnostics

Runtime Utility Center는 도움말 문서를 제공합니다. 도움말 문서는 윈도우 시작 메뉴에서

“Runtime Utility Center Help”를 선택하여 볼 수 있습니다. Runtime Utility Center 사용에 필요한

정보를 확인 할 수 있습니다.

Runtime Utility Center \ Start page

Runtime Utility Center \ Operation \ The Workspace

Runtime Utility Center \ Operation \ Commands \ Establish connection, etc.

Runtime Utility Center \ Operation \ Commands \ PLC Info \ Logger

6.3 Runtime Utility Center 서비스 툴

Runtime Utility Center는 B&R 제어기 진단과 서비스를 위한 다양한 유틸리티를 제공하는 시스템 툴입니다.

Runtime Utility Center 설치 프로그램은 Automation Studio 설치 프로그램에 포함되어 있고 B&R

웹사이트에서 별도로 다운받을 수 있습니다.

그림 100: Runtime Utility Center - 시작 페이지

가장 중요한 기능:

• 제어기와 온라인 연결 후 서비스 기능 수행

• 프로세스 변수 백업과 복원

• 테스트와 설치 절차를 위한 각 명령어 목록(instruction list) 작성

• CompactFlash/CFast 카드 백업과 복원

• CompactFlash/CFast 카드에 오프라인 제어 프로젝트 설치(offline installation)

• USB 설치 용 project installation package 생성

• 사용자 정의 유저 인터페이스를 생성할 수 있는 맞춤형 모드

서비스 지원 받기 전 준비사항

TM223 - Automation Studio diagnostics 61

Runtime Utility Center 다운로드

Runtime Utility Center는 "PVI Development Setup"의 일부이며

B&R 웹사이트에서 다운로드 할 수 있습니다: www.br-automa-

tion.com→Downloads → Download "PVI Development Setup"

그림 101: 다운 받는 곳:

"Software→Automation NET/PVI” 로

필터

6.3.1 Runtime Utility Center packet

Runtime Utility Center 추출 생성하기

Runtime Utility Center 추출은 Automation Studio의 Project

메뉴에서 실행할 수 있습니다. 저장할 폴더를 선택하면, 필요한

데이터가 *.zip 파일로 추출됩니다.

추출한 파일은 Runtime Utility Center에서 사용합니다.

그림 102: Automation Studio에서

Runtime Utility Center(RUC) 추출

Project management \ Project installation \ Performing project installation \ Export RUC

서비스 지원 받기 전 준비사항

62 TM223 - Automation Studio diagnostics

Runtime Utility Center \ Creating a list / data medium \ Project installation

• Offline installation

• Create a project installation package

Runtime Utility Center 추출 패키지 불러오기

Runtime Utility Center export package를 불러오기 위하여 "Open project (*.zip, *.pil)”를 선택합니다. 다음

기능이 사용 가능합니다:

그림 103: RUC 추출 파일울 불러온 Runtime Utility Center 시작 페이지

• Offline installation 수행

CompactFlash/CFast 카드로 전송 수행을 위한 기능입니다.

• Project installation package 생성하기

project installation package 생성 기능입니다(예: USB installation).

예제: USB 플래시 드라이브를 사용한 컨트롤러 재설치

Automation Studio를 사용하지 않고 컨트롤러를 다시 설치해야 합니다. 프로젝트를 빌드 후 Automation

Studio에서 Runtime Utility Center export가 생성됩니다.

내보내기 파일Export file은 Runtime Utility Center에서 열립니다. 그 다음 프로젝트 설치 패키지project

installation package 가 생성됩니다.

1) Runtime Utility Center export 생성하여 내보내기

2) Runtime Utility Center 시작

3) 추출한 파일 열기 (* .zip)

4) Project installation package 생성하기

6.3.2 변수 값 백업 및 복원

Runtime Utility Center의 기능 중 하나는 제어기에서 변수 값을 불러오고 나중에 복원하는 것입니다.

서비스 지원 받기 전 준비사항

TM223 - Automation Studio diagnostics 63

Diagnostics and service \ Service tools \ Runtime Utility Center \ Operation \ Commands \ List

functions

Diagnostics and service \ Service tools \ Runtime Utility Center \ Operation \ Commands \ Es-

tablish connection, wait for reconnection

Diagnostics and service \ Service tools \ Runtime Utility Center \ Operation \ Menus \ Start

"Loop” 테스크의 변수 값은 지정된 파일에 백업됩니다.

예제: 변수 값 저장

시스템의 기계적 손상으로 인해 CPU를 교체해야 합니다. 레시피 변수 또는 기타 프로세스 데이터가 손실된

경우 런타임 유틸리티 센터를 사용하여 CPU에 필요한 정보를 업로드 한 다음 새로운 CPU로 전송할 수

있습니다.

"Loop” 테스크에 변수 값을 저장하는 Runtime Utility Center list을 작성하십시오.

1) Automation Studio에서 Runtime Utility Center를 실행합니다.

2) 메뉴 옵션 "Create, edit and execute projects (*.pil)"실행

3) <Command> / <Connection>을 선택하여 연결 설정 명령을 삽입합니다

연결 설정에서 타겟 시스템의 IP 주소를 입력합니다.

4) <Command> / <Process variable functions> / <Variable list>를 선택하여 변수 목록 로드

명령을 삽입하십시오.

이 예제에서는 "Loop” 테스크 변수만 백업합니다. 목록은 모든 디렉토리에 저장할 수 있습니다.

5) <F5>로 기능을 실행합니다.

예제: 변수 값 복원

마지막 테스크에서 백업된 변수 값은 Runtime Utility Center를 사용하여 제어기로 전송해야 합니다.

변수 값 복원하는 Runtime Utility Center 목록list 을 작성합니다.

1) Automation Studio에서 Runtime Utility Center를 엽니다. 메뉴에서 <File> / <New>를 선택하여 새

목록list을 만듭니다.

2) <Commands> / <Connection>을 선택하여 연결 명령을 삽입합니다.

3) 연결 설정에서 타겟 시스템의 IP 주소를 입력합니다.

4) <Command> / <Process variable functions> / <variable list to PLC>를 선택하여 변수 목록

작성 명령을 삽입합니다.

마지막 테스크에 저장된 변수 목록은 <Browse> 대화 상자에서 선택할 수 있습니다.

서비스 지원 받기 전 준비사항

64 TM223 - Automation Studio diagnostics

파일에 저장된 변수 값은 "Loop” 테스크의 해당 변수에 기록됩니다.

모든 테스크의 변수가 백업 된 후 제어기로 다시 전송하면, 순차적으로 변수가 쓰이면서

프로세스에서 예기치 않은 동작이 발생할 수 있습니다.

이 기능이 필요한 경우 먼저 제어기를 서비스 모드service mode로 설정하는 것이 좋습니다.

5) <F5>로 기능을 실행합니다.

요약

TM223 - Automation Studio diagnostics 65

7 요약

Automation Studio는 문제 및 오류를 지역 화하기 위한 여러 가지 도구를 제공합니다.

분석적 사고와 함께 현명하게 사용해야합니다. 이러한 진단 도구를 효과적으로 사용하려면 상황에 대한

개요를 얻고 일반적인 조건을 명확하게 하고 특정 거리에서 이러한 조건을 검사해야 합니다.

그림 104: 진단

상황을 정리하고 상세하게 분석 할 수 있습니다. 가능한 오류 원인의 수를 배제하고 줄임으로써 잠재적

오류에 대한 포괄적인 개요를 얻을 수 있으므로 발생할 수 있는 오류를 훨씬 쉽게 수정할 수 있습니다.

Automation Academy에서 제공하는 것

66 TM223 - Automation Studio diagnostics

Automation Academy에서 제공하는 것

우리는 고객뿐만 아니라 직원을 대상으로 한 교육 과정을 제공합니다.

Automation Academy에서, 당신이 필요한 능력을 즉시 향상시킬 수 있습니다.

자동화 엔지니어링 분야에서 필요한 지식 향상을 위해 세미나가 준비되어 있습니다. 한번 이수하면, 당신은 B&R

기술을 이용하여 능률적인 자동화 솔루션을 개발하는 위치에 있을 것입니다. 이를 통해 귀하와 귀사는 끊임 없이

변화하는 시장 수요에 보다 빠르게 대응할 수 있게 됨으로써 결정적인 경쟁 우위를 확보 할 수 있습니다.

세미나

품질 및 관련 성은 세미나의 필수 구성 요소입니다. 특정 세미나의 페이스는

엄격하게 코스 참가자가 직면한 요구 사항과 경험에 근거합니다. 그룹

스터디와 자율 학습에 조합은 학습 경험을 극대화하는데 필요한 높은 수준의

유연성을 제공합니다.

각 세미나는 숙련된 경험이 풍부한 강사 중 한 명이 진행합니다.

교육 자료(Training modules)

교육 자료는 세미나 뿐만 아니라 자율 학습을 위한 기초로 제공합니다.

콤팩트 모듈은 일관된 교육 개념에 의존합니다. 상향식 구조는 복잡하고

상호 연관된 주제를 효율적이고 효과적으로 배울 수 있습니다. 광범위한

도움말 시스템이 가장 좋은 보완책입니다. 교육 자료는 다운받을 수

있으며 인쇄된 버전을 주문할 수 있습니다.

카테고리 주제:

➯ 제어 기술

➯ 모션 제어

➯ 세이프티 기술

➯ 화면작화

➯ 프로세스 컨트롤

➯ 진단 및 서비스

➯ POWERLINK 와 openSAFETY

ETA system

더 알아보기!

ETA 시스템(ETA system)은 훈련, 교육 및 실험실에서 사용하기 위해

실제와 같은 구조를 제공합니다. 두가지 이상의 다른 기구 구조가 선택될 수

있습니다. ETA light system은 높은 자유도, 공간 절약 및 연구소 테스크에

적합합니다. ETA standard system은 튼튼한 기구 구조와 사전에

와이어링된 센서와 액츄에이터를 포함합니다.

추가 교육이 필요하시나요? B&R Automation Academy가 제공하는 것에 흥미가 있으신가요? 잘

찾아오셨습니다.

상세한 정보는 아래 링크에서 확인하실 수 있습니다:

www.br-automation.com/academy

Automation Academy에서 제공하는 것

TM223 - Automation Studio diagnostics 67

V2.3.0.1 ©2018/05/23 by B&R, All rights reserved.

All registered trademarks are the property of their respective owners.

We reserve the right to make technical changes.