환영합니다.!

Agilent VEE Pro의 도움말에 오신 것을 환영합니다. 참조하고자 하는 주제를 찾기 위해서는, 목차 또는 색인 탭을 누릅니다.

이제는 Agilent VEE Pro의 도움말이 한국어로도 제공됩니다. 설치 디렉토리에 있는 vee.chm 파일을 veeEnglish.chm 파일로 변경하고, 한국어 버전 파일을 vee.chm으로 변경하여 사용하십시오. 예를 들면, veekorea.chm 파일을 vee.chm으로 변경합니다.

Agilent VEE Pro 8.0 새로운 기능

8.0 버전에서 수정된 에러들

Microsoft®, MS-DOS®, Windows®, MS Windows®, Windows NT®, Excel®, Word®, .NET®, Outlook®, ActiveX®, Visual Basic®, Visual C# ® 은 미국 그리고/또는 다른 나라에 있는 Microsoft Corporation의 상표 또는 등록상표 입니다.

PostScript®은 Adobe Systems Incorporated의 상표 입니다..

MATLAB®은 MathWorks, Inc의 등록상표 입니다.

National Instruments®, NI®, LabVIEW® 및 SCXI®은 National Instruments Corporation의 등록상표 입니다.

PXI®은 PXI System Alliance의 등록상표 입니다.

IVI® and IVIplug&play®은 IVI Foundation의 등록상표 입니다.

Pentium®은 Intel Corporation의 미국 등록상표 입니다.

Arial® 및Times New Roman®은 Monotype Corporation 의 미국 등록상표 입니다.

Copyright (c) 1991-2007 Agilent Technologies, Inc.


Agilent VEE Pro 8.0 New Features

Agilent VEE Pro 8.0의 새로운 기능

Watch Window 기능

Watch Window는 사용자가 디버깅할 때 변수와 터미날의 값을 관찰하면서 편집할 수 있는 기능입니다. 프로그램은 변경된 값을 사용하여 계속 실행됩니다.

툴바에서 [image] 버튼을 클릭하거나 메뉴 View [image] Watch Window를 선택하면, Watch Window 대화상자가 다음과 같이 나타납니다.

자세한 정보는 Watch Window 를 참조하십시오.

사용예

Datatype.vee, Globals.vee, Terminals.vee

코드 자동완성 및 코드 인싸이트 기능

코드 자동완성 기능 및 코드 인싸이트 기능은 Formula 오브젝트에서 키보드 입력을 줄이고 간략한 메모나 외부의 관련 문서를 제공합니다. 현재 작업중인 컨텍스트에서 외부의 필요한 정보를 찾고, 공식에 단어 앨리먼트를 직접 입력하며, 심지어는 Agilent VEE가 코드 자동완성 기능을 사용하여 입력을 마무리합니다. 자세한 정보는 코드 자동완성 기능 사용하기 및 코드 인싸이트 기능 를 참조하십시오.

구문에 색상표시

1. 주석은 녹색으로 표시되고, 상수 스트링은 짙은 적색으로, 키워드는 푸른색으로 표시됩니다.

2. 오류가 있는 연산식은 적색 물결선으로 표시됩니다.

3. 대괄호는 회색 프레임으로 표시됩니다.

코드 자동완성 기능 및 코드 인싸이트 기능이 제공되는 오브젝트

Objects Supported

코드 자동완성

  • .NET 오브젝트

  • 네임드 오브젝트

  • COM 오브젝트

  • 기본제공 상수

  • 기본제공 함수

  • 레코드

코드 인싸이트

  • .NET 및 COM 오브젝트의 멤버함수

  • 로컬UserFunctions

  • 임포팅된UserFunctions

  • 기본제공 함수

  • 임포팅된 리모트 함수

  • 임포팅된 컴파일 함수

프로그램 실행 중 속성 변경하기

프로그램 실행 중 속성 변경하기 기능으로 더 나은 GUI를 더 빠르게 생성할 수 있습니다. 이것은 프로그램 실행 중에 VEE 오브젝트, .NET 오브젝트 및 COM 오브젝트의 속성을 가져오고/설정할 수 있는 기능입니다. 이 기능에 대한 데모는 ProgrammaticPropertyDemo.vee 를 참조하십시오.

다음 표는 프로그램상에서 설정하고/가져올 수 있는 속성들을 나타냅니다. 자세한 정보는프로그램 상에서 속성을 설정하고 가져오기 및 오브젝트의 Declare Name 또는 Declare Scope 변경하기를 참조하십시오.

사용예

ProgrammaticPropertyDemo.vee DemoTabIndexChangeDemo.vee

Minimap 기능

Minimap은 적색 사각형 박스를 사용하여 현재 보이는 부분을 표시하는 전체 디테일뷰의 윤곽을 나타내는 맵입니다. Minimap을 열기 위해서는, 툴바의 [image] 버튼이나 메뉴 View [image] Minimap을 선택합니다. Minimap의 사용예는 다음과 같습니다.

적색 사각형 박스는 전체 디테일뷰에서 현재 보이는 부분의 상대적인 위치를 나타냅니다. Minimap을 한번 클릭하면, 디테일뷰에 있는 다른 위치로 빠르게 이동할 수 있습니다. 자세한 정보는 Minimap을 참조하십시오.

Home 버튼

Agilent VEE 8.0에서는, 프로그램의 좌측 상단을 컨텍스트(메인, UserFunctions, 또는 UserObjects)의 좌측 상단으로 이동시키는 새로운 툴바 버튼 Home [image] 을 추가하였습니다.

새로운 실행모드와 데이터 타입

8.0 버전부터는, Agilent VEE는 2개의 새로운 데이터 타입- Int64 및 Boolean과, 새로운 실행모드 – VEE 8을 지원합니다.

5.0 버전부터 사용자가 상수로 TRUE와 FALSE를 사용할 수 있었지만, 이 TRUE와 FALSE는 실제 부울 상수는 아니었습니다. 이들은 Int32 타입의 데이터였습니다. Agilent VEE 8.0부터는, 이 2개의 상수가 실제 부울대수 타입으로 제공됩니다. Agilent VEE 8.0에서 지원되는 논리연산은 AND, OR, NOT, XOR, ==, 및 != 입니다. Agilent VEE 8.0은 컴파일된 함수에서도 부울대수를 지원합니다. 사용자는 컴파일된 함수의 리턴 타입과 파라미터 타입으로 VEE_BOOL를 사용할 수 있습니다. VEE_BOOL은 부울대수로 처리됩니다. 자세한 정보는 Boolean를 참조하십시오.

새로운 메뉴항목과 Boolean이 추가된 기본제공 함수:

  • Data => Constant => Boolean

  • Data => Constant => Boolean Array

  • Data => Alloc Array => Boolean

  • asBoolean(x)

Int64는 정수를 표시하는데 있어 가장 긴 정밀도를 제공합니다. Agilent VEE는 int64의 최대값과 최소값을 표시하기 위하여 2개의 기본제공 숫자 상수를 제공합니다: MaxInt64 및 MinInt64. 다른 실행모드에 있는 상수는 다른 타입으로 표현됩니다. 자세한 정보는 Int64를 참조하십시오.

새로운 메뉴항목과 Int64가 추가된 기본제공 함수:

  • Data => Constant => Int64

  • Data => Constant => Int64 Array

  • Data => Alloc Array => Int64

  • asInt64(x)

VISA 형식 디바이스의 표준화

I/O 디바이스를 선언하고/사용할 때 동일 표준의 접근방식(VISA)을 제공하기 위하여 오래되어 잘 맞지 않는 I/O 디바이스(SICL & VISA가 혼용된)를 점차 제거하고 있습니다. 사용자들에게 새로운 형식의 계측기를 사용할 것을 “권장” 하지만, 이전 버전에 대한 역 호환성은 유지됩니다. 자세한 정보는 여기를 참조하십시오.

그래프 오브젝트에서 하나의 입력핀을 통하여 복수의 트레이스를 디스플레이

이 기능은 사용자가 얼마나 많은 트레이스가 필요한지 인지할 필요없이 Agilent VEE 그래프 오브젝트에 복수의 트레이스(트레이스 어레이)를 디스플레이할 수 있도록 합니다.

새로운 Boolean Graph 속성이 디테일뷰에 'MatrixInput'라는 이름으로 추가되었습니다. Agilent VEE 그래프 오브젝트에서 MatrixInput 속성을 True로 설정하면, 입력 데이터로 2D 어레이(12행 까지)를 사용할 수 있고 동시에 복수의 트레이스를 디스플레이합니다. 데이터 컨테이너는 하나의 입력핀을 통하여 그래프로 입력됩니다. 그래프는 트레이스 개수(최대 12)와 트레이스 레전드를 표시하고, 입력된 포인트(컬럼)를 그래프로 표시합니다. 이 새로운 속성은 프로그램 실행중에는 토글할 수 없습니다. 이 새로운 그래프를 어디에 적용해야 하는가를 판단하여 새로운 Agilent VEE 프로그램에 적용하십시오.

자세한 정보는, 예제 프로그램 2dXyTrace.vee, MatrixInputStripChart.vee 를 참조하십시오.

복수의 트랜잭션 기능향상

Agilent VEE 8.0에서는, 트랜잭션을 사용하는 모든 오브젝트(예, Direct I/O 오브젝트, To/From 오브젝트)에 대하여 새로운 기능들이 많이 추가되었습니다. 특별히 복수의 트랜잭션에 실행할 수 있는 여러 동작들을 지원합니다.

향상된 주요기능은 다음과 같습니다:

* 복수의 트랜잭션을 임의로 선택, 삭제, 복사하고 붙여넣기

* Undo/Redo Add/ Insert/ Delete/ Cut/ Paste/ Edit/ Move up/ Move down 동작

* 모든 윈도우-표준 단축키

CTRL+X --- 선택한 트랜잭션을 "cut-and-paste" 버퍼로 잘라냅니다.

CTRL+C --- 선택한 트랜잭션을 "cut-and-paste" 버퍼로 복사합니다.

CTRL+V --- 트랜잭션을 포인터가 있는 곳으로 붙여 넣습니다.

Delete --- 리스트에서 선택한 항목을 삭제합니다.

Insert --- 트랜잭션을 현재 선택한 항목 앞에 삽입합니다.

CTRL+Z --- 마지막 동작을 실행취소 합니다.

CTRL+Y --- 마지막 동작을 재실행합니다.

CTRL+Up --- 선택한 트랜잭션을 위로 이동합니다(하나의 트랜잭션에 대해서만)

CTRL+Down --- 선택한 트랜잭션을 아래로 이동합니다(하나의 트랜잭션에 대해서만)

CTRL+ 마우스 왼쪽 버튼 --- 복수의 트랜잭션을 선택합니다.

레코드 활용도 향상

Agilent VEE 8.0는 레코드의 활용도를 3가지 측면에서 향상하였습니다:

1. Declare Variable은 레코드 데이터 타입에 대하여 Generate 컨텍스트 메뉴를 제공합니다. 사용자는 Record Constant 오브젝트, Build Record 오브젝트, 및 Unbuild Record 오브젝트를 생성할 수 있습니다.

2. Record Constant 오브젝트는 레코드 데이터 타입에 대하여 새로운 Generate 컨텍스트 메뉴를 제공합니다. 사용자는 Declare Variable 오브젝트 또는 Unbuild Record 오브젝트를 생성할 수 있습니다.

3. 새로 추가된 기본제공 함수: buildRecord (fieldNameTextArray, field1, field2, fieldN)

사용자는 실행 전 까지는 필드이름과 값을 알 수 없는 레코드를 생성하기 위하여 buildRecord()를 사용할 수 있습니다. 첫번째 파라미터는 필드이름에 대한 스트링 어레이입니다. 다음에 오는 파라미터는 각 필드에 대한 값이고, 이 파라미터의 숫자는 어레이 길이와 동일해야 합니다. 2개의 사용예는 다음과 같습니다:

buildRecord(fieldNameList2Long, field1, field2);

builldRecord(fieldNameList8Long, field1, field2, field3... field8);

자세한 정보는 buildRecord()를 참조하십시오.

NIDAQmx 드라이버 추가로 NIDAQ 지원 향상

Agilent VEE 8.0는 새로운 NI의 데이터 수집드라이버인 NIDAQmx을 지원합니다. 이 지원기능은 라이브러리에 있는 모든 함수와 각 함수에 대한 온라인 도움말을 제공합니다. Instruments Manager는 NIDAQmx 드라이버를 가진 계측기도 자동으로 찾을 수 있습니다.

패널뷰에서 자동 스크롤

패널뷰가 모든 오브젝트를 디스플레이 하기에 충분히 크지 않을 때는 자동으로 스크롤바가 설정 됩니다. 이 기능은 "ScrollbarsEnabled" 속성을 변경하여 ON 또는 OFF 할 수 있습니다. 디폴트 값은 OFF 입니다. 자세한 정보는 여기를 참조하십시오.

계측기 예제 추가

16개의 새로운 계측기 예제를 examples\instrumentIO\InstrumentManagerIntegrated폴더에 추가하였습니다.

많은 계측기 예제를 업데이트 하였습니다.

관련정보

버전정보, 8.0 버전에서 수정된 에러들


VEE 설치하기

VEE와 I/O 라이브러리 설치

VEE의 평가판을 다운로드하거나 주문할 수 있습니다. VEE의 평가판은 기능상으로는 정품과 차이가 없습니다. 이것을 설치하면, 제품키를 인용부호 없이 “eval”을 입력하라는 프롬프트가 나타납니다.

제품을 구매하여 인증키를 입력하면 평가판을 전체적으로 활성화할 수 있습니다. 메일로 제품키를 받은 다음에는, 메인 메뉴 Help [image] Product Key에서 제품키를 입력합니다. 제품의 풀버전은 주문하거나 다운로드할 수 있습니다. 제품키 증명서는 제품과 함께 제공됩니다. 인터넷에서 구매한 경우에는 경우에는 제품키 증명서가 별도 발송됩니다.

VEE는 다음 운영체제에서 사용할 수 있습니다.: Windows 2000 SP4 및 Windows XP.SP1

• CD-ROM으로 VEE 설치하기. 관리자의 권리를 가진 사용자로 로그인 해야 합니다. CD-ROM 드라이브에 CD-ROM을 삽입합니다. 설치는 자동으로 시작됩니다. 그렇지 않는 경우에는, 시작메뉴에서 실행을 선택하고 다음을 입력합니다.

[CD-ROM 드라이브 명]:\setup.exe

• WWW에서 다운로드하여 VEE 설치하기. 스스로 추출되는 VEE 프로그램을 다운로드 하십시오. 다운로드된 파일은 지정한 다운로드 디렉토리에 저장됩니다. VEE 설치 파일은 자체-추출 실행에 의해 추출됩니다. 파일은 선택한 디렉토리에 추출됩니다. 이 디렉토리에서 setup.exe를 실행합니다.

보안 요건을 지원하기 위해서, PC의 모든 사용자를 위해 설치할 것인지 또는 한 명의 사용자를 위하여 설치할 것인지를 프롬프트 합니다. 보안 요건에 적합한 옵션을 선택합니다.

I/O 라이브러리에 대한 정보는 함께 받은 설치 자료를 참조하십시오. (I/O 라이브러리는 계측기와 통신하기 위하여 VEE에 의해 사용됩니다.)

Installing and Distributing VEE Pro RunTime (Help [image] Contents and Index Installing and Distributing VEE Pro RunTime)에서는 VEE Pro RunTime 버전을 설치하고 배포하는 방법을 설명합니다. RunTime 버전은 VEE 소프트웨어가 설치되지 않은 PC에서 VEE 프로그램을 실행하기 위해 사용됩니다. 런타임 환경에 대한 자세한 정보는 온라인 도움말을 참조하십시오. Help [image] Contents and Index, Installing and Distributing Agilent VEE Pro RunTime을 차례로 선택합니다.

관련정보

Agilent VEE 설정하기


Agilent VEE 설정하기

윈도우용 VEE는 환경 정보를 저장하기 위하여 윈도우의 레지스트리를 사용합니다. 사용자는 VEE의 다양한 윈도우 속성들을 Default Preferences 대화상자(File [image] Default Preferences)에서 변경할 수 있습니다. 이 속성들은 디폴트로 다음의 디렉토리에 VEE.RC 파일로 저장됩니다:

%userprofile%\LocalSettings\Application Data\Agilent\VEE Pro

또는

정의된 경우에는, %HOME% 에 저장됩니다.

색상 및 폰트 설정

사용자는 색상과 폰트를 File [image] Save As를 선택하여 저장할 수 있습니다.

색상 및 폰트에 대해서는, 변경한 설정만 디폴트 파일인 VEE.RC에 저장됩니다.

비트맵 파일을 이용하여 아이콘 커스터마이징

사용자는 아이콘화된 오브젝트를 디스플레이하는 아이콘에 비트맵 또는 픽스맵(pixmap)을 사용할 수 있습니다. 이 이미지는 VEE는가 제공하는 이미지를 사용하거나 직접 생성할 수 도 있습니다. 윈도우용 VEE는 24비트 컬러의 .BMP 비트맵 파일, .GIF87, .GIF98a, .PNG (Portable Network Graphics), .WMF (Windows Meta Files), 그리고 .ICN 아이콘 파일을 지원합니다. 오브젝트의 아이콘을 선택하려면, 오브젝트의 IconPicture 속성을 클릭하고 속성창에서 Icon 탭을 사용하십시오.

사용자는 그림판 등의 편집기를 사용하여 VEE가 제공하는 그래픽 포맷으로 비트맵을 생성한 후, 오브젝트의 아이콘으로 사용할 수 있습니다. 아이콘으로 사용할 파일은 48x48 픽셀 정도의 크기를 가지는 것이 좋습니다. 너무 클 경우 VEE의 프로그램 영역을 많이 차지할 수 있으며, 너무 작을 경우 아이콘을 알아보기 힘들게 됩니다. 사용자는 또한 Print Screen 키와 같은 스크린 캡쳐 도구와 그림판을 사용할 수도 있습니다.

패널뷰에서 사용할 비트맵 선택

사용자는 패널뷰의 배경으로 사용할 아이콘을 선택할 수 있습니다. 이것은 UserObject와 VEE 프로그램에서 디스플레이되는 패널뷰에 적용됩니다. 패널뷰의 아이콘은 반드시 VEE에서 지원하는 포맷을 사용해야 합니다. 또한 이것은 앞에서 언급한 바와 같이 사용자가 생성하여 사용할 수 있습니다.

패널뷰에서 사용할 아이콘을 선택하려면, 패널뷰를 인에이블하여 타이틀바에 있는 패널과 디테일 버튼이 나타나도록 합니다(오브젝트를 패널에 추가하여). 오브젝트 메뉴를 클릭하고 Properties를 클릭합니다. 비트맵을 선택하기 위하여 속성창에 있는 Panel 탭을 사용합니다.

관련정보

디폴트 색상 변경하기, 디폴트 폰트 변경하기


VEE 예제 프로그램 사용하기

VEE는 VEE가 동작하는 원리를 이해하는데 도움을 주기 위하여 다수의 예제 프로그램을 제공하고 있습니다. 예제 파일들은 VEE 설치시 하드디스크에 저장됩니다.

예제 프로그램 폴더

윈도우용 VEE의 예제 프로그램 폴더는 디폴트로 아래의 경로에 위치합니다:

C:\Program Files\Agilent\VEE Pro 8.0\examples\

예제 프로그램 실행

사용자는 다음과 같은 방법으로 도움말 메뉴에서 프로그램을 불러온 후 실행할 수 있습니다:

1. 메뉴바에서 Help [image] Open Example 를 클릭하면, 유사한 예제들을 모아놓은 하위 폴더의 리스트가 나타납니다. (또는 File Open 메뉴에서 VEE 가 설치된 폴더의 Example 폴더로 직접 이동하여 파일을 열어 볼 수 있습니다.)

2. 열고자 하는 하위 폴더를 더블클릭 합니다.

3. 열고자 하는 파일이 나타날 때까지 스크롤합니다.

4. 예제파일의 이름을 클릭하고 프로그램을 열기 위하여 OK 버튼을 클릭합니다.

5. 프로그램을 실행하려면 툴바의 Run 버튼을 클릭합니다


Agilent VEE 시작하기

Agilent VEE 실행하기

동일한 PC에서 복수의 VEE를 실행할 수 있습니다. 2개의 VEE가 동일한 시스템 리소스(예를 들어, I/O 인터페이스)를 동시에 사용하려 하는 경우에는, 예측하지 못하는 결과가 발생할 수 있습니다.

프로그램을 실행하기 위하여 VEE Pro RunTime을 사용하는 방법은 프로그램 수정 방지 또는 어플리케이션 아이콘 생성하기를 참조 하십시오.

윈도우즈 시작버튼 사용

1. 시작 버튼을 클릭하고, 모든 프로그램 [image] Agilent VEE Pro 8.0을 선택합니다.

윈도우즈 바탕화면에서 시작

1. 윈도우즈 탐색기를 사용하여 바탕화면에 있는 VEE 애플리케이션 파일의 바로가기 아이콘을 생성하기 위해 다음 방법을 따르십시오.

디폴트로 VEE는 다음 디렉토리에 설치됩니다:

C:\Program Files\Agilent\VEE Pro 8.0\vee.exe

프로그램을 다른 디렉토리에 설치하지 않는 한 이곳에 설치됩니다.

2. 바로가기 아이콘을 바탕화면에 생성한 다음에, 바로가기 아이콘을 더블 클릭하여 Agilent VEE를 시작합니다.

관련정보

도스 명령어 옵션을 사용하여 agilent VEE 실행하기


도스 명령어 옵션을 사용하여 Agilent VEE 실행하기

명령창에서 VEE또는 VEE Pro RunTime을 실행하면서 사용할 수 있는 여러가지 옵션이 있습니다. 예를 들어, VEE를 시작할 때, 파일을 지정하여 VEE 실행과 함께 열리도록 할 수 있습니다. 또한 지정된 프로그램이 VEE Pro RunTime에서 로딩되고 실행되도록 할 수도 있습니다.

VEE 또는 VEE Pro RunTime 실행 시 도스 명령어(command-line)

1. 윈도우의 시작 버튼, 실행…을 차례로 클릭합니다.

2. vee 또는 veerun를 입력 후, 옵션을 입력하고 Enter키를 누릅니다. veerun 을 실행하는 경우에는 프로그램 파일명도 기입해야 합니다.

또는

1. MS-DOS 창을 엽니다.

2. start vee.exe 또는 start veerun.exe를 입력 후, 옵션을 입력하고 Enter키를 누릅니다. veerun 을 실행하는 경우에는 프로그램 파일명도 기입해야 합니다.

사용할 수 있는 옵션과 예제에 대한 내용이 아래에서 설명되고 있습니다.

팁

데스크탑에서 VEE 단축아이콘을 생성하였을 경우, 이 단축아이콘의 속성을 수정하여 명령줄 옵션이 포함되도록 할 수 있습니다.

사용할 수 있는 옵션과 예제에 대한 내용이 아래에서 설명되고 있습니다.

사용할 수 있는 옵션

아래의 표에는 VEE 또는 VEE Pro RunTime을 사용 할 때 어떤 플랫폼에서 어떤 옵션을 사용할 수 있는 지 표시되어 있습니다. 각각의 옵션에 대한 설명은 표의 하단에서 설명되고 있습니다.

옵션 | Windows
 | VEE | VEE Runtime
-d directory | X | X
-disallowclose |  | X
-enablewarnings |  | X
filename | X | X
-geometry | X | X
-help | X | X
-iconic | X | X
-ioconfig |  | X
-maximize | X | X
-noerrdisp | X |
-nologo | X |
-preconfig |  | X
-r filename | X |
-secure ProgramName | X |
-stderr:filename ProgramName | X | X
-stdout:filename ProgramName | X | X
-veeio path to filename | X | X

옵션 설명

-d directory

-d 옵션을 이용하여 VEE를 실행하면, VEE가 설치된 폴더가 아닌 –d 옵션에서 지정한 디렉토리에 있는 인스트루먼트 드라이버 등의 파일을 사용할 수 있습니다.

-disallowclose

프로그램이 실행하는 동안 사용자에 의해 VEE Pro RunTime 창이 닫히지 않도록 합니다.

-enablewarnings

VEE Pro RunTime으로 프로그램을 로딩할 때, 에러 및 경고 대화상자를 디스플레이 할 수 있도록 합니다. 이 옵션을 사용하지 않으면, 프로그램 로딩시 VEE Pro RunTime이 모든 일반적인 에러 및 경고 대화상자를 출력하지 않습니다. 일반적인 에러 디스플레이를 비활성화 한 상태에서 로딩에 실패하면 “File format is invalid.”와 같은 일반적인 메시지만을 표시합니다. –enablewarnings 옵션을 사용하면 해당 문제 발생원인에 대한 더욱 명확한 내용을 볼 수 있습니다.

filename

vee 명령에 대해서는 사용하거나 사용하지 않아도 되지만, veerun 명령을 실행시에는 반드시 사용해야 합니다. vee 명령은 VEE를 실행하고, filename에 의해서 지정된 VEE 프로그램을 작업영역에 불러옵니다. veerun 명령은 VEE Pro RunTime을 실행하고 filename에 의해서 지정된 VEE 프로그램을 실행합니다. filename이 공백이 포함되어 있으면, 파일명에 인용부호(“”)를 사용하고, 경로를 포함할 때 역시, 경로 양끝에 인용부호(“”)를 사용해야 합니다.

-geometry widthXheight+/-xoffset+/-yoffset
or
-geometry +/-xoffset+/-yoffset (to use default window size)

디폴트 윈도우 대신 사용할 초기 윈도우의 크기 및 위치를 지정할 수 있습니다. Geometry 의 단위는 픽셀입니다. +옵셋은 화면의 좌측-상단 모서리를 기준으로 창의 좌측-상단 모서리까지의 상대적인 거리입니다. –옵셋은 화면 우측–하단을 기준으로 창 우측-하단 모서리까지의 상대적인 거리입니다.

옵셋 +0+0은 화면 좌측-상단 모서리를 의미합니다.

예제 : -geometry 640X480+20+20은 화면의 좌측 상단 모서리를 기준으로 아래로 20픽셀, 오른쪽으로 20픽셀만큼 옮긴 지점에 가로 640픽셀, 세로 480픽셀 크기의 VEE창을 띄워서 실행합니다.

-help

VEE 명령줄 옵션을 보여줍니다. (VEE 내부에서 제공되는 VEE온라인 도움말 체계와 혼동하지 마십시오.)

-iconic

-inconic 옵션은 창 대신에 작업표시줄에 아이콘으로 VEE 실행이 표시됩니다. 아이콘을 더블 클릭하면 창이 활성화 됩니다.

-ioconfig

이 옵션을 사용하면 VEE Pro RunTime 창에서 Instrument Manager 대화상자를 불러와서 vee.io 파일을 변경할 수 있도록 합다. 이 옵션을 사용할 때는 프로그램 파일명을 함께 사용하지 마십시오; 여기서 사용된 파일명은 무시됩니다.

VEE 창이 너무 작아서 Instrument Manager 대화상자를 모두 표시할 수 없으면, -geometry 옵션을 사용하여 VEE 또는 VEERun창을 크게 만들 수 있습니다.

-maximize

이 옵션은 VEE 창을 최대화하여 실행합니다.

-noerrdisp

이 옵션은 –r과 함께 사용할 수 있습니다. –r 옵션을 함께 사용하였는데, 지정한 파일에 에러가 포함되어 있어서 실행할 수 없다면, VEE는 에러메시지를 디스플레이 하지 않고 즉시 종료합니다.

-nologo

이 옵션은 VEE가 실행하기 전에 표시하는 시동 정보를 보여주지 않습니다. 윈도우에서는, 시동 정보상자가 나타나지 않습니다.

-prefconfig

이 옵션은 VEE Pro RunTime에서 Default Preferences 대화상자를 불러와서 기본 설정을 변경할 수 있도록 합니다. 이 옵션을 사용할 때는 프로그램 파일명을 함께 사용하지 마십시오; 여기서 사용된 파일명은 무시됩니다.

VEE 창이 너무 작아서 Default Preferences 대화상자를 모두 표시할 수 없으면, -geometry 옵션을 사용하여 VEE 또는 VEERun창을 크게 만들 수 있습니다.

-r filename

이 –r 옵션은 VEE를 시동하고 filename으로 지정한 VEE 프로그램을 실행합니다. 프로그램을 중지하면, VEE는 즉시 종료합니다. 그러나 프로그램 실행중 에러가 발생하면, VEE 종료 전에 에러메시지를 디스플레이 합니다. 지정한 파일이 없을 경우엔 VEE는 -r옵션을 무시합니다. filename 에 공백이 포함되어 있으면, 경로를 포함한 파일이름 전체를 인용부호(“”)로 묶어야 합니다. 일반적으로 –r 옵션을 사용하는 것 보다는 veerun명령을 사용하는 것이 더 유용합니다.

-secure ProgramName

소스파일 ProgramName의 보호된 프로그램(secured program)을 생성합니다. 아래의 명령은 소스파일과 동일한 디렉토리에 myProg.vxe 파일을 생성합니다:

vee -secure myProg

-stderr:filename ProgramName

표준 에러로그 파일filename을 생성합니다. ProgramName 을 로딩하고 실행하는 동안 VEE(에러를 발생한다면)가 발생한 에러정보를 filename에 로깅합니다. filename에 디렉트로 경로를 포함할 수 있습니다.

-stdout:filename ProgramName

표준 출력 파일 filename을 생성합니다. ProgramName을 불러와서 실행하는 동안 VEE(어떠한 것이 발생한다면)에 의해 발생되는 정보를 filename에 기록합니다. filename 에 디렉토리의 경로를 포함할 수 있습니다.

-veeio path to filename

VEE는 여러 개의 I/O 설정파일(vee.io)을 가질 수 있습니다. VEE를 기동할 때 어떠한 파일을 사용할 것인지 지정할 수 있습니다.

예제 : 파일명을 사용하여 윈도우용 VEE 시작하기

윈도우용 Agilent VEE를 구동하고 프로그램 myprog.vee을 자동으로 불러오기:

1. 윈도우의 시작 버튼을 클릭하여, 실행…을 클릭합니다.

2. vee myprog.vee를 입력하고 엔터키를 누릅니다. 파일명이 공백이 있으면 파일명 양쪽 끝에 인용부호(“”)를 함께 기입하십시오.

또는

1. MS-DOS 창을 띄웁니다.

2. vee myprog.vee를 입력하고, 엔터키를 누릅니다. 프로그램이 현재 디렉토리에 없다면 경로를 지정하십시오. 파일명에 공백이 있으면 파일명 양쪽 끝에 인용부호(“”)를 함께 기입하십시오.

예제 : -disalolwclose 옵션을 사용하여 VEE RunTime 실행하기

윈도우용 VEE RunTime에서 myprog.vee 프로그램을 실행하고, 우측상단의 창 종료버튼으로 종료하는 것을 막으려 할 경우 :

1. 윈도우의 시작 버튼을 클릭하여, 실행…을 클릭합니다.

2. veerun -disallowclose myprog 을 입력하고 엔터키를 누릅니다. 파일명에 공백이 있으면 파일명 양쪽 끝에 인용부호(“”)를 함께 기입하십시오.

또는

1. MS-DOS 창을 띄웁니다.

2. start veerun -disallowclose myprog 를 입력하고 엔터키를 누릅니다. 프로그램이 현재의 디렉토리에 없으면 경로를 지정하십시오. 파일명에 공백이 있으면 파일명 양쪽 끝에 인용부호(“”)를 함께 기입하십시오.

관련정보

어플리케이션 아이콘 생성하기, Agilent VEE 실행하기


Agilent VEE 기본적인 사용법

여기서는 VEE 그래픽 프로그래밍 언어를 사용할 수 있는 운영시스템, 마우스와 메뉴 사용법, 도움말을 얻는 방법, VEE를 시작하는 방법 및 VEE 윈도우에서 작업하는 방법 등에 대해서 설명합니다.

사용 가능한 운영시스템

이 VEE 버전은 다음의 운영시스템에서 지원됩니다:

• Windows 2000 SP4 또는 그 이상, Windows XP SP1 또는 그 이상.

또한, 다음의 소프트웨어가 추가로 필요합니다:

• Agilent IO Libraries Suite 14.2 또는 그 이상 및/또는 NI Libraries version 3.0.

마우스 및 메뉴

컴퓨터의 마우스와 마우스와 키보드로 제어하는 풀-다운 메뉴, 툴바 그리고 대화상자와 같은 메뉴 인터페이스에 매우 익숙할 것입니다. VEE는 컴퓨터의 인터페이스를 사용합니다. 마우스를 사용하여 메뉴, 아이콘, 버튼 및 오브젝트를 실행할 수 있도록 다음과 같은 일반적인 기술을 따릅니다:

• 아이템을 “클릭” 하기 위해서는, 원하는 아이템 위에 마우스 포인터를 놓고, 마우스 왼쪽 버튼을 눌렀다가 놓습니다.

• 아이템을 “더블-클릭” 하기 위해서는, 원하는 아이템 위에 마우스 포인터를 놓고 마우스 왼쪽 버튼을 두 번 클릭합니다. 빠르게 클릭해야 성공합니다.

• 아이템을 “드래그” 하기 위해서는, 원하는 아이템 위에 마우스 포인터를 놓고, 마우스 왼쪽 버튼을 누른 채로 있습니다. 그리고 원하는 장소에 아이템을 옮깁니다. 원하는 장소에서 마우스 버튼을 놓습니다.

주의사항

마우스 오른쪽 버튼은 자주 사용하지 않습니다. 도움말이 필요할 경우, 마우스 오른쪽 버튼을 사용합니다. 마우스의 가운데 버튼을 가지고 있을지라도, VEE에서는 사용하지 않습니다

Agilent VEE 윈도우

VEE를 설치하고 실행하면 다음 그림과 같은 VEE 윈도우가 나타납니다.

VEE 윈도우의 각 부분 명칭과 기능은 다음과 같습니다.

구성요소

설명

타이틀바

VEE 아이콘, 창 이름, 최소화, 최대화, 닫기 버튼을 가지고 있는 윈도우의 최 상단 줄. 타이틀바를 드래그하여 윈도우를 이동합니다. 윈도우 메뉴를 표시하기 위해서 VEE 아이콘을 클릭합니다.

메뉴바

VEE 명령과 오브젝트를 제공하는 각 메뉴 아이템을 포함하고 있는 두 번째 줄

툴바

가장 일반적으로 사용하는 메뉴 명령들을 직접 접근 (또는 단축아이콘) 할 수 있는 버튼 및 아이콘을 가지고 있는 세 번째 줄. (마우스 포인터를 버튼 위에 놓으면, 이 버튼의 기능이 표시됩니다.)

작업영역

Main, UserObject 또는 UserFunction과 같이 오브젝트를 배치하고 선을 서로 연결할수 있는 프로그래밍(편집)창에 있는 하나의 영역.

프로그램 탐색기

VEE 창 왼쪽 옆에 있는 부분으로 VEE 프로그램의 구조를 보여줍니다. 맨 위 코너에는 myprog.vee 같은 프로그램 이름을 보여주거나, 또는 Untitled를 디스플레이 합니다.

프로그램 탐색기는 프로그램 창들 중에서 다른 곳으로 옮겨갈 수 있게 도와줍니다. 프로그램 탐색기의 사이즈 조정은 오른쪽 경계선에서 마우스 커서가 일반 적인 화살표에서 상하로 분리된 커서로 변하게 됩니다 . 이 때 클릭하여 이동 합니다.

메인 윈도우

VEE 프로그램을 개발하고 수정할수 있는 작업공간을 가지고 있는 윈도우. UserObject와 같은 다른 개발/수정 윈도우가 될 수도 있습니다.

상태바

아랫쪽 라인은 우측 모서리에 4가지 상태 지시자를 포함하는 VEE의 상태에 관한 메시지를 디스플레이합니다. 지시자는 (왼쪽에서 오른쪽 순으로) 다음과 같이 나타냅니다:

The execution mode

The state of the profiler

MOD appears when the program has been modified

Web server is enabled.

도움말

VEE는 개발환경에 대한 온라인 도움말과 각각의 오브젝트 또는 특정 주제에 대한 온라인 도움말을 제공합니다. 또한 컴퓨터 및 운영체제에 부수적으로 포함되는 문서의 도움말을 참조할 수도 있습니다. PC의 온라인 도움말은 다음과 같은 정보를 제공합니다:

  • 메뉴 바에서 명령을 선택하는 방법

  • 메뉴 아이템 선택과 해제

  • 툴바 사용법

  • 타이틀바와 상태바에 대한 이해

  • 아이콘과 버튼 클릭

  • 대화상자에서의 작업

  • 다양한 타입의 윈도우에서 작업

  • 온라인 도움말 사용법

Help [image] Welcome을 선택하여 시작하면, VEE Multimedia Tutorials을 사용할 수도 있습니다. Welcome 화면은 아래와 같이 나타납니다.

VEE 온라인 도움말은 사용자의 운영체제에 맞도록 설계되었습니다. Help를 클릭하면 다음과 같은 메뉴가 제공됩니다. 도움말에는 목차와 인덱스가 있으며, Welcome 메뉴(Tutorials이 제공되는)는 인스트루먼트 드라이버, 웹사이트 안내, 예제 및 버전이 제공됩니다.

자가-트레이닝을 완료하기 위하여 VEE 안내서를 사용할 필요가 없더라도, 독특한 특징이나 개념에 관한 세부적인 사항에 대하여 참고할 수는 있습니다. 필요한 VEE 주제를 도움말 시스템에서 찾는 데 사용할 수 있습니다. 도움말 시스템은 관련 주제로 “점프” 할 수 있습니다.

VEE 도움말을 보기 위해서는"Contents and Index" 를 클릭합니다.

도움말 목차 탭은 다음의 내용을 제공합니다.

항목 | 설명
따라하기 ... | 일반적인 작업에 대한 “사용 방법” 정보 제공
개념 이해하기... | VEE 개념 설명
Agilent VEE 예제 프로그램 가이드 | VEE와 함께 제공되는 예제 프로그램 요약
참조 | 모든 함수와 오브젝트에 대한 참고사항 제공
Agilent VEE 지원 | VEE에 대한 지원을 받기 위한 정보 제공
Agilent VEE Pro Runtime설치및 배포 | VEE Pro 런타임 환경을 배포하는 방법 설명

주의사항

키보드의 F1버튼을 누르면, 오브젝트 또는 대화상자에 대한 도움말이 제공됩니다. 오브젝트 메뉴의 Help를 클릭하면, 선택한 오브젝트에 대한 정보가 제공됩니다.

프로그램을 개발하면서, 특정한 온라인 도움말 항목을 사용하는 방법에 대한 자세한 정보는 온라인 도움말 사용법을 참조하십시오.


오브젝트 사용법

VEE 프로그램은 오브젝트를 연결하여 완성됩니다. 프로그램을 작성하기 위하여 Flow, Data 및 Display와 같은 VEE 메뉴에서 오브젝트를 선택합니다. 라인을 이용하여 오브젝트들을 연결합니다. (자세한 정보는 "핀과 터미날 사용"을 참조하십시오.) 여러 개의 오브젝트를 서로 연결하여 프로그램을 생성합니다.

이 섹션은 프로그램에서 오브젝트를 선택하고 사용하는 방법을 설명합니다.

1  VEE를 실행합니다. 윈도우에서 시작 [image] Programs [image] Agilent VEE Pro를 실행합니다.

2 다음의 절차를 따라서 오브젝트를 실습합니다.

작업영역에 오브젝트 추가

적절한 메뉴를 풀다운하여 원하는 오브젝트를 선택합니다. 오브젝트를 선택한 후 작업영역에 드래그하여 오브젝트를 배치하고 클릭합니다. (외곽 테두리가 사라지고 오브젝트가 나타날 것입니다.)

1    예를 들어, Function Generator 오브젝트를 작업영역에 추가 하려면, Figure 5와 같이 Device   [image] Virtual Source [image] Function Generator를 차례로 선택합니다. 오브젝트의 외곽 테두리가 작업영역에 나타납니다.

주의사항

Virtual Source 메뉴의 오른쪽에 있는 화살표는 서브 메뉴가 있음을 나타냅니다. 메뉴항목에서 3개의 점(...)을 가진 메뉴를 실행하면 하나 이상의 대화상자가 표시됩니다. 예, File [image] Save As ...은 이러한 방법으로 동작합니다.

2 Function Generator를 클릭하여 작업영역의 임의의 위치(여기서는 작업영역의 가운데)로 이동하고, 오브젝트를 배치하기 위하여 클릭합니다. 작업영역에 다음과 같이 Function Generator가 생성됩니다.

일단 작업영역에 오브젝트를 생성시킨 다음부터는 일반적인 윈도우와 같이 타이틀 바를 드래그하여 오브젝트를 이동 시킬 수 있습니다

주의사항

이 온라인 도움말에서는, 명령실행 절차를 표기를 통일하였습니다. 예를 들면, Function Generator 오브젝트를 선택하고자 할 때는 다음 포맷을 사용합니다 : Device [image] Virtual Source [image] Function Generator

주의사항

화면에서 조금 더 넓은 공간이 필요할 때는 View [image] Program Explorer을 클릭합니다. 프로그램 탐색기를 선택하지 않으면 화면에서 사라집니다. 체크마크가 디스플레이 되었다면 "선택"된 것 입니다

오브젝트 표시형태 변경

VEE는 “아이콘뷰” 또는 “오픈뷰” 상태로 오브젝트를 디스플레이합니다.

오픈뷰 오픈뷰

오브젝트를 아이콘하면 작업 공간을 확보하고 가독성을 높일 수 있습니다. 오픈뷰 상태에서 오브젝트의 특성을 변경하거나 설정할 수 있습니다.

1 오픈뷰 상태의 오브젝트를 아이콘화하려면 Minimize 버튼(오브젝트 타이틀 바의 우측 상단에 있는 작은 박스)을 클릭합니다.

2 오픈뷰 상태로 돌아가려면, 아이콘뷰 상태의 오브젝트를 더블 클릭합니다 (오브젝트상의 어느곳이나)

모든 오브젝트는 동일한 구조 및 요소로 구성되어 있습니다. 오픈뷰에서는 오브젝트를 수정할 수 있고, 아이콘뷰로 저장을 할 수 있습니다.

주의사항

오브젝트 메뉴는 Minimize 와 Restore 선택항목을 가지고 있습니다. 오브젝트 메뉴를 표시하기 위해서는, 타이틀 바의 좌측에 있는 오브젝트 메뉴를 클릭하거나 커서를 오브젝트 위에 올리고 마우스의 오른쪽 버튼을 클릭합니다.

오브젝트 메뉴 선택

각각의 VEE 오브젝트는 Clone, Size, Move 및 Minimize와 같이 사용자가 오브젝트의 동작을 제어할 수 있는 오브젝트 메뉴를 가지고 있습니다. 대부분의 오브젝트는 유사한 속성을 가지고 있으나 오브젝트의 기능에 따라 고유한 속성을 가지기도 합니다.

1 오브젝트 메뉴를 선택하기 위하여 오브젝트 메뉴 버튼을 한번 클릭합니다. (모든 오브젝트 메뉴는 같은 방법으로 열 수 있습니다.) 다음과 같이 오브젝트 메뉴가 나타납니다. (오브젝트 메뉴 버튼을 더블클릭 하지 않도록 주의합니다. 오브젝트 메뉴 버튼을 더블클릭하면 오브젝트가 삭제됩니다.)

2 오브젝트 메뉴중 하나를 클릭하여 원하는 기능을 실행할 수 있습니다. 메뉴를 취소하기 위해서는 메뉴 외곽의 빈 부분을 한번 클릭합니다.

또한 오브젝트 위에 커서를 올려 놓은 상태에서 마우스의 오른쪽 버튼을 클릭하여 오브젝트 메뉴를 열수도 있습니다.

오브젝트 이동

1 Function Generator 오브젝트를 옮기려면, 오브젝트 메뉴에서 Move를 클릭하고, 마우스 왼쪽 버튼을 클릭한 채로 유지합니다. 오브젝트의 외곽 테두리가 보이게 됩니다.

2 마우스 버튼을 클릭한 채로 옮기려는 위치로 외곽 테두리를 옮깁니다. 마우스 버튼을 떼면, 오브제트는 새로운 위치로 이동됩니다.

다음과 같이 오브젝트를 옮길 수도 있습니다:

• 오브젝트의 오픈뷰상태에서 타이틀 바를 클릭합니다. 옮기려는 위치로 드래그 합니다.

• 오브젝트의 입력 필드, 핀, 터미날 또는 오브젝트의 크기를 조절하는 4 개의 모서리, 버튼을 제외한, 오브젝트의 오픈뷰의 일부분을 클릭합니다. 옮기려는 위치로 드래그 합니다.

• 오브젝트의 크기를 조절하는 네 모서리 근처를 제외한 오브젝트 아이콘뷰의 일부분을 클릭합니다. 옮기려는 위치로 드래그 합니다.

주의사항

오브젝트 위치 정보는 상태바(VEE 하단)에서 확인할 수 있고, 작업공간 좌측 상단부터, 오브젝트 외곽 테두리의 좌측 상단까지의 거리, X와 Y 를 픽셀단위로 표시됩니다. 오브젝트를 정확한 위치로 옮기려면, 선택한 오브젝트를 마우스 왼쪽버튼을 클릭합니다. 위치는 상태바에서 볼 수 있습니다. 이 기능을 사용하면, 정확한 위치에 오브젝트를 배치할 수 있습니다.

오브젝트 복제(클론)

클론 기능은 정확하게 크기조절 또는 명칭 재설정과 같이 사용자가 변경한 사항까지 모두 포함해서 동일한 오브젝트를 생성합니다. 클론은 잘라내고 붙여넣기에 대한 단축키입니다.

1 오브젝트 메뉴를 열고 Clone을 선택합니다. 복사된 오브젝트의 외곽 테두리가 나타납니다.

2 원하는 위치에 외곽 테두리를 옮기고, 클릭하여 오브젝트를 배치를 완료합니다. 원본 오브젝트는 남아있는 채로 클론된 오브젝트가 생성됩니다. 다음 그림에서 Function Generator는 이미 한번 클론되었습니다

오브젝트 복사

복사할 오브젝트를 선택한 상태에서 단축키 Ctrl-C(복사)를 누른 후 단축키 Ctrl-V(붙여넣기)를 입력하면 MS Paint 나 MS Word같은 다른 프로그램에 붙여넣기 위해 클립보드로 복사됩니다.

원하는 오브젝트를 클릭해서 하이라이트 시킨 후, Edit [image] Copy를 클릭합니다.

-또는-

원하는 오브젝트를 클릭해서 하이라이트 시킨 후, Ctrl-C를 누릅니다.

오브젝트 삭제

오브젝트 메뉴의 Delete 항목을 선택하거나, 키보드의 Delete 키, 메뉴 바의 Edit [image] Delete 선택, 또는 오브젝트 메뉴버튼을 더블 클릭하여 오브젝트를 삭제할 수 있습니다. 예를 들어, Function Generator에 대한 오브젝트 메뉴를 불러온 후 Delete를 클릭합니다. 오브젝트는 작업공간에서 사라지지만, 버퍼에는 저장되어 있습니다.

오브젝트 메뉴를 열고, Delete를 선택합니다.

-또는-

오브젝트를 선택(클릭으로)하고 Ctrl-X를 누릅니다.

-또는-

마우스 커서를 오브젝트 메뉴 위에 놓고 더블클릭 합니다.

주의사항

오브젝트 메뉴 버튼을 더블클릭하여 우연히 오브젝트가 삭제될 수 있으므로 주의해야 합니다. 이럴 경우엔 Undo 툴바 버튼(또는 Edit [image] Undo)을 실행하여 오브젝트와 모든 연결들을 복구 할 수 있습니다.

오브젝트 붙여넣기

아래의 단계를 따라서, 작업영역에서 복사된 오브젝트를 붙여넣습니다.

오브젝트를 복사 또는 삭제한 후,

Edit ⇒Paste를 클릭합니다. 오브젝트의 외곽 테두리가 나타납니다. 원하는 위치에 오브젝트를 배치하고 마우스 버튼을 놓습니다.

-또는-

Ctrl-V를 누릅니다.

오브젝트 크기 변경

오브젝트를 선택하였을 때 주변에 나타나는 작은 사각형을 클릭하여 드래그 하거나, 오브젝트 메뉴의 Size 항목을 선택하여 오브젝트의 크기를 변경할 수 있습니다. 다음 그림은 크기조정 화살표를 사용하여 오브젝트 크기를 조정하고 있는 모습을 나타냅니다.

-또는-

오브젝트 메뉴를 열어 Size를 클릭합니다. 마우스 포인터가 "하단 -우측-모서리" 브라켓으로 변합니다. 우측 하단 모서리의 위치를 원하는 곳에 놓고, 클릭하면 크기가 조정 됩니다.

오브젝트 명칭(제목) 변경

1 오브젝트 메뉴를 열어, Properties...를 선택합니다. 사용자 화면 왼쪽에 속성창이 나타납니다. Title 속성을 클릭하고 원하는 값으로 속성을 변경 합니다.

2 타이틀 영역에 새로운 명칭이 표시됩니다. 오브젝트를 아이콘화하면, 아이콘에 새로운 명칭이 표시됩니다.

-또는-

오브젝트 타이틀바를 더블클릭하면 즉시 속성창 대화상자가 활성화됩니다.

주의사항

일반적인 키보드와 마우스를 사용한 편집 테크닉을 사용하여 프로그램 작성시간을 절약할 수 있습니다. 예를 들어, 속성대화상자 타이틀 필드에서 편집창의 좌측을 클릭하면, 타이틀 입력창으로 커서가 이동합니다. 이 기능을 이용하면 기존에 입력된 타이틀을 삭제하지 않고 새로운 타이틀을 한번에 입력할 수 있습니다.

오브젝트 선택 및 해제

1 오브젝트를 선택하려면 오브젝트를 클릭합니다. 주위에 나타나는 그림자로 선택 여부를 알 수 있습니다. 예를 들어, 다음 그림에서, For Count 오브젝트가 선택되어 있는 것을 볼 수 있습니다.

2 오브젝트를 선택해제 하려면, 마우스 포인터를 다른 영역에 놓고 클릭합니다. 다음 그림에서, Formula 오브젝트는 선택이 해제 되어 있습니다.

주의사항

단어 "select"는 항상 메뉴 아이템 선택을 지시하는것으로 사용했습니다.

복수의 오브젝트 선택

일반적인 방식으로 마우스를 클릭하면, 하나의 오브젝트만 선택할 수 있습니다. 다른 오브젝트를 다시 클릭한다면, 이전 오브젝트는 선택이 해제되고, 그 오브젝트의 그림자는 사라집니다. 여러 개의 오브젝트를 삭제하는 등의 기능을 수행하기 위하여 복수의 오브젝트를 선택하기 위해서는, 다음의 단계를 따라하십시오:

Ctrl 버튼을 누른 상태에서 다른 오브젝트를 클릭합니다. Ctrl 버튼을 뗀 후에도 선택했던 모든 오브젝트는 하이라이트 됩니다.

-또는-

Ctrl 키를 누른 상태에서 선택할 오브젝트 주위를 직사각형으로 드래그합니다. 선택된 오브젝트에 그림자가 표시됩니다.

모든 오브젝트 선택/선택해제

1 모든 오브젝트를 선택하려면 Edit [image] Select All을 선택하거나 단축키 Ctrl-A를 누릅니다.

2 모든 오브젝트를 선택 해제 하려면, 작업영역의 다른 공간을 클릭합니다.

복수의 오브젝트 복사

오브젝트에서 커서를 이동하여 선택된 오브젝트를 복사합니다 . Ctrl을 누른 채로 왼쪽 마우스 버튼으로 특정 오브젝트를 드래그합니다. 오브젝트의 복사본이 원하는 위치에 생성됩니다.

-또는-

복사할 여러 개의 오브젝트를 선택한 후 Edit [image] Copy를 선택하여 복사한 후, Edit [image] Paste를 선택하여 붙여 넣기 합니다. 다음 그림은 복사하는 동안의 오브젝트 상태입니다.

주의사항

VEE에서, 복사되거나 잘라낸 오브젝트는 클립보드에 저장됩니다. 저장된 오브젝트는 윈도우 클립보드를 지원하는 다른 어플리케이션에서 사용할 수 있습니다.

오브젝트 편집

VEE에서 아래와 같이 여러 가지 방법으로 오브젝트 편집할 수 있습니다:

VEE 메뉴 바의 Edit를 클릭한 후, 원하는 메뉴를 선택합니다. 이 명령은 VEE의 모든 오브젝트에 동일하게 적용됩니다.

-또는-

VEE 툴 바의 아이콘을 클릭합니다. VEE 툴 바는 Cut, Copy, Paste 등의 자주 사용되는 아이콘을 가지고 있습니다.

-또는-

오브젝트 메뉴 버튼을 클릭한 후, 원하는 명령을 선택합니다. 오브젝트 메뉴는 각각의 오브젝트에 따라 다른 내용의 메뉴를 가지고 있습니다. 예를 들어, Device ⇒ Formula 오브젝트와 I/O [image] To [image] File 오브젝트를 비교하면, 서로 다른 메뉴를 가지고 있음을 알 수 있습니다.

-또는-

마우스 포인터를 작업공간 내의 빈 공간에 위치시키고, 마우스의 오른쪽 버튼을 클릭하면 편집 메뉴가 나타납니다.

주의사항

활성화 되어 있지 않은 메뉴 항목은 활성화 된 항목보다 그림자안에 나타납니다(이들은 "회색"으로 나타납니다.). 경우에 따라서는 오브젝트가 작업공간에서 활성화 될 때까지 편집 메뉴의 Cut, Copy, Clone 메뉴는 그림자 안에 나타납니다.

오브젝트간의 데이터 라인 생성

1 다음 그림과 같이 오브젝트의 데이터 출력핀을 클릭한 후, 다른 오브젝트의 데이터 입력핀을 클릭합니다. (하나의 핀에서 다른 핀으로의 라인이 나타납니다.)

2 버튼을 놓으면 VEE는 2 개의 오브젝트 사이에 라인이 생성됩니다. 오브젝트를 이동하면 오브젝트 사이의 라인도 따라서 움직입니다.

자세한 내용은, "Understanding Pins 및 Terminals"을 참조하십시오.

오브젝트간의 데이터 라인 삭제

Shift-Ctrl을 누른 상태에서 삭제하고자 하는 라인을 클릭합니다.

-또는-

Edit [image] Delete Line 을 선택하고 삭제하고자 하는 라인을 클릭합니다.

전체 작업영역 이동

(작업영역 내에 최소한 하나 이상의 아이콘이 있어야 합니다.) 작업영역의 빈 공간에서 마우스의 왼쪽 버튼으로 드래그하면 전체 작업영역이 이동됩니다.

프로그램이 작업영역 보다 더 넓을 경우 다음과 같이 스크롤바가 나타납니다.

주의사항

터미날 또는 라인, 근처를 클릭하면 라인 또는 “연결선”이 나타납니다. 이럴 경우에는 작업영역의 빈 공간을 더블클릭 합니다.

작업영역 초기화

Edit [image] Select All 을 선택한 후, 툴 바의 Cut 버튼을 클릭합니다. 이 잘라내기 작업은 활성된 윈도우 상의 모든 오브젝트를 Cut 버퍼로 옮깁니다.

-또는-

File [image] New를 선택하거나 툴 바의 New 버튼을 클릭합니다. VEE는 현재의 작업을 저장할 지를 물어봅니다.

-또는-

각각의 오브젝트를 클릭하여 활성화 한 후, 툴 바의 Cut 버튼을 클릭하여 삭제합니다.

디폴트 설정 변경

Default Preference 대화상자에서 VEE 환경의 디폴트 설정을 변경합니다.

툴 바의 Default Preferences 버튼을 클릭합니다.

-또는-

File [image] Default Preference를 클릭합니다. 그림과 같이 Default Preferences 대화상자가 나타납니다.

이 대화상자에는 각각의 옵션을 편집할 수 있는 탭이 있습니다.

탭 | 설명
General | Default Preference 대화상자가 나타날 때의 디폴트 탭. 사용자는 Environment 와 Execution Mode 등을 변경할 수 있습니다.
Colors | VEE 환경의 색상 변경
Fonts | VEE 환경의 글꼴 변경
Number | 디폴트 숫자 형식 변경
Printing | 프린터 파라미터 변경
Web Server | 내장 웹서버 설정

자세한 정보는, VEE 메뉴 바의 Help [image] Contents and Index를 선택한 후, How Do I..., Tell Me About..., 또는 Reference를 찾아 참조하십시오.

관련정보

오브젝트가 동작하는 방법, Agilent VEE 프로그램 동작법

Copyright (c) 1991-2006 Agilent Technologies, Inc.


핀과 터미날 사용

VEE 프로그램은 작업영역에서 오브젝트와, 오브젝트를 연결하는 라인으로 구성되어 있습니다. VEE의 오브젝트를 연결하는 라인은 오브젝트 핀에 연결되어 있습니다. 각각의 오브젝트에는 몇 개의 핀이 있습니다. 다음 그림은 Formula 오브젝트의 예를 사용 하였습니다. 다른 오브젝트를 사용해도 무방합니다.

핀 종류 | 설명
데이터 입력핀 | 오브젝트의 왼쪽에 위치한 핀
데이터 출력핀 | 오브젝트의 오른쪽에 위치한 핀
시퀀스 입력핀 | 오브젝트의 위쪽에 위치한 핀
시퀀스 출력핀 | 오브젝트의 아래쪽에 위치한 핀

데이터를 전달하기 위해서는 오브젝트 사이의 데이터 입력핀과 출력핀을 연결합니다. 디폴트로, 핀은 위에서 아래로 실행됩니다. 시퀀스 핀의 연결은 선택사항 입니다. 시퀀스 핀이 연결되어 있으면 연결 순서에 따라 실행됩니다.

자세한 정보는, 오브젝트 간의 실행순서를 참조하십시오.

오브젝트의 오픈뷰에서, 데이터 입력과 출력핀은 입력과 출력 터미날로 나타납니다. (오브젝트가 아이콘뷰 상태라면 더블 클릭하여 오픈뷰로 만듭니다.) 터미날은 터미날의 이름 및 데이터의 형태, 값 등의 자세한 정보를 전달합니다. 터미날의 라벨은 오픈뷰 이면서, Show Terminals 속성이 True일 경우에만 나타납니다. (오브젝트 메뉴의 Properties를 참조 하십시오.)

예를 들어, 다음 그림에는 두 개의 Formula 오브젝트가 있는데, 왼쪽의 오브젝트는 터미날 이름이 각각 A 와 Result로 표시되어 있지만, 오른쪽의 오브젝트는 ShowTerminals 옵션이 False로 되어 있어, 터미날이 보이지 않습니다.

Show terminals on 상태 Show terminals off 상태

Show Terminals ON과 OFF는 오브젝트 메뉴의 속성에서 설정 할 수 있습니다. 속성창은 VEE화면의 왼쪽에 있습니다. Show Terminal 속성을 True로 설정하면 오브젝트의 터미날이 보이게 됩니다.

속성창에서 ShowTerminals의 속성을 False로 설정합니다. 다시 ShowTerminals의 속성을 True로 설정합니다.

터미날 추가

사용자는 오브젝트에 터미날을 추가할 수 있습니다. 예를 들어, 두 번째 데이터 입력핀을 Formula 오브젝트에 추가할 수 있습니다.

오브젝트 메뉴를 열고 Add Terminal [image] Data Input을 선택합니다

-또는-

Show Terminals이 ON된 상태에서, 마우스 포인터를 오브젝트의 “터미날 영역”(오브젝트 오픈뷰에서 왼쪽 여백)에 위치시킨 후, 키보드의 단축키 Ctrl+A를 누릅니다. (Ctrl과 A키를 동시에 누릅니다.)

다음 그림은 오브젝트의 두 번째 입력 터미날을 추가하기 위해 오브젝트 메뉴를 연 모습과 이미 두 개의 입력을 가진 Formula 오브젝트를 보이고 있습니다. 새로운 터미날의 이름은 B 입니다. 인스트루먼트 드라이버와 같이 특정 함수에 데이터 입력을 추가하면, 함수의 메뉴가 주어집니다. 일반적인 경우에는 터미널의 이름은 A,B,C...와 같이 생성됩니다.

터미날 정보 변경

터미날의 정보를 보기 위하여 라벨 영역을 더블클릭 합니다. 예를 들어, 터미날 B를 더블클릭 하면 다음과 같은 대화상자가 나타납니다.

터미날은 수정할 수 없습니다. 대화상자는 다음과 같이 3 가지의 필드를 가지고 있습니다:

필드 종류 | 설명
입력 필드 | 화살표 없는 흰 배경색을 가진 필드. 이 필드를 클릭 하면 입력 필드가 됩니다. 예를 들어, 사용자가 Name 필드에 B를 입력하면 터미날의 이름이 B가 됩니다
상태 필드 | 회색의 배경을 가지는 수정이 불가능한 필드. Mode 필드는 변경이 불가능합니다.
선택 필드 | 오른쪽에 화살표를 가진 흰 배경색의 필드. 필드나 화살표를 클릭하면 드롭다운 메뉴가 나타납니다. 예를 들어, Required Type 필드의 Any(또는 화살표)를 클릭하여 다음에 보이는 것과 같이 다른 데이터 타입을 선택할 수 있습니다.

데이터 입력 터미날에서 Any가 아닌 다른 종류를 선택한다면, 오직 지정한 데이터 종류만을 받아 들이거나, 터미날에서 입력 받을 수 있는 데이터종류로 변환된 데이터만을 받아들일 수 있습니다. 받아들이는 데이터 종류 중 가장 좋은 것은 Requirde Type 필드와 Required Shape 필드를 Any로 설정하는 것입니다. VEE 메뉴바에서 Help [image] Contents and Index를 선택하고, How Do I..., Tell Me About..., Reference에서 자세한 사항을 참고 할 수 있습니다.

터미날 삭제

오브젝트 메뉴를 열고 Delete Terminal [image] Input... 또는 Delete Terminal [image] Output을 선택한 후, 삭제하고자 하는 입력 또는 출력 터미날을 선택합니다. 그리고 OK를 클릭합니다. 예를 들어, 다음 그림은 Delete Terminal [image] Input... 을 선택했을 때 나타나 는 대화상자입니다.

-또는-

마우스 포인터를 삭제하고자 하는 터미날에 올려놓고 단축키 Ctrl-D를 누릅니다.

터미날 삭제 작업을 취소하려면, 태스크바에서 Undo 버튼을 선택합니다.

관련정보

오브젝트를 연결하여 프로그램 생성


오브젝트의 메뉴 위치 찾기

오브젝트의 메뉴 위치를 찾고, 오브젝트에 대한 정보를 디스플레이 하기 위하여 Help => Contents and Index를 선택하고 색인(Index) 탭을 클릭합니다. 오브젝트의 이름을 입력하고 항목보기(Display)를 클릭합니다.

예를 들어, Collector를 찾으려면, Help => Contents and Index를 선택하고 색인(Index)탭을 클릭한 후, Collector를 입력하고, 항목보기(Display)를 클릭합니다.


예제 프로그램 파일 열기

팁

VEE Help 에 있는 다음 항목은 예제 프로그램에 대한 세부 설명 및 해당 프로그램을 새로운 VEE 윈도우로 로딩하기 위한 링크를 제공합니다.

VEE 예제 프로그램 소개

Agilent VEE

몇가지의 예제가 VEE와 함께 제공됩니다. 이들 예제는 아래의 서브 디렉토리에서 제공합니다.

C:\Program Files\Agilent\VEE Pro 8.0\examples.

예를 들면, VEE manuals 와 온라인 Help에 있는 예제가 이 서브 디렉토리에 있습니다.

C:\Program Files\Agilent\VEE Pro 8.0\examples\MATLAB

VEE 툴바에 있는 Open 버튼을 클릭하면 예제를 포함하여 어떤 프로그램이든 열수 있습니다. 더욱 편리하게 사용하기 위하여 Help에서 예제 프로그램 파일을 열수 있습니다:

1. Help [image] Open Example를 선택합니다. Open File 대화상자가 나타나며, 디렉토리는예제 디렉토리가 “지정되어” 있습니다.

2. 서브 디렉토리 이름을 더블 클릭합니다.

3. 열어서 사용하고자 하는 예제 프로그램의 파일 이름을 클릭하고, ‘열기’를 클릭합니다.


VEE 프로그램 파일 열기

1. VEE 툴바에 있는 Open 버튼을 클릭합니다. Open File 대화상자가 나타납니다.

Open File 대화상자는 열기 위한 프로그램 파일을 디폴트 디렉토리에서 찾습니다.
C:\Documents and Settings\[사용자 이름]\My Documents\VEE Programs.
(디폴트로, Save을 클릭하면 해당 디렉토리에 작성한 프로그램이 저장됩니다.)

Open 버튼

Save 버튼

2. 열고자 하는 프로그램의 파일 이름을 클릭하고 ‘열기’를 클릭합니다. 또는 파일 이름 필드에 파일 이름을 직접 입력하고 ‘열기’를 클릭합니다.


라이브러리 파일에서 오브젝트와 프로그램 병합하기

VEE는 일부 라이브러리 오브젝트(기본제공 UserObjects) 및 VEE 프로그램에 병합할 수 있는 라이브러리 프로그램을 제공합니다.

1. 메뉴에서 File [image] Merge를 선택하면, Merge 대화상자가 나타납니다.

디폴트로, Merge 대화상자는 C:\Program Files\Agilent\VEE Pro 8.0\lib 디렉토리에서 라이브러리 오브젝트와 프로그램을 찾습니다.
디렉토리를 변경하여 VEE 프로그램을 작업영역으로 병합할 수도 있습니다.

2. 사용하고자 하는 라이브러리 파일 이름을 클릭하고, Open 버튼을 클릭합니다. 해당 오브젝트가 작업영역으로 병합되고, VEE 오브젝트와 연결할 수 있습니다.


VEE 프로그램 시작하기

Agilent VEE는 프로그램을 실행하기 위해 몇 가지 실행모드를 제공합니다. 제공되는 실행모드는 VEE 3, VEE 4, VEE 5, VEE 6 및 VEE 8입니다. Default Preferences를 사용하여 모드를 설정합니다. VEE 8.0으로 작성된 프로그램은 디폴트로 VEE 8 실행모드에서 실행됩니다. VEE 7.X 또는 VEE 6.0으로 작성된 프로그램은 디폴트로 VEE 6 실행모드에서 실행됩니다. VEE 5.0으로 작성된 프로그램은 디폴트로 VEE 5 실행모드에서 실행됩니다. VEE 4.x로 작성된 프로그램은 디폴트로 VEE 4 실행모드에서 실행되고 이전 버전의 프로그램은 VEE 3 실행모드에서 실행됩니다. 신규 버전의 실행모드에서는 이전 버전의 프로그램을 실행 할 수 있으나, 작성한 대로 실행되지 않을 수도 있어서 교정이 필요할 수도 있습니다. VEE 3 모드의 프로그램은 VEE 5 이상의 모드에서 실행하기 전에 반드시 VEE 4 모드에서 실행하기 위해 필요한 만큼 적절히 교정되어야 합니다.

프로그램에 있는 모든 쓰레드를 포함하는 전체 VEE 프로그램을 시작하기 위해서는, VEE 툴바에 있는 Run 버튼을 클릭합니다.

Run 버튼

작업영역에 있는 모든 쓰레드는 쓰레드가 Start 오브젝트를 가지고 있는지는 상관 없이 시작됩니다.

프로그램에 있는 각각의 쓰레드를 독립적으로 시작할 수 있도록 하기 위해서는, Start 오브젝트(Flow 메뉴 아래)를 쓰레드에 추가합니다. Start 오브젝트 버튼을 클릭할 때, Start를 포함하는 쓰레드 만이 실행됩니다.

쓰레드가 피드백을 가지고 있는 경우에는, VEE 4 이상의 실행모드에서는 쓰레드는 피드백 사이클 안에 Junction 오브젝트를 포함해야 합니다. 이것은 Junction 오브젝트가 꼭 필요한 경우에 해당합니다. 피드백은 있지만 Junction 오브젝트가 없는 쓰레드를 포함하는 프로그램을 실행할 경우에는, 에러가 발생합니다.

사용예: Start 오브젝트를 가진 2개의 쓰레드

상단에 있는 쓰레드 만을 실행 하고자 하는 경우에는, 해당 Start 버튼을 클릭합니다. 쓰레드가 실행되고, 그림에서 보는 바와 같이 AlphaNumeric 오브젝트에 "Now is the time"을 디스플레이 합니다. 그러나 하단에 있는 쓰레드는 실행되지 않습니다.

하단에 있는 Start 버튼을 클릭한 경우에는, 해당 쓰레드가 실행되지만 하단에 있는 쓰레드는 실행되지 않습니다.

Run 버튼을 클릭한 경우에는, 프로그램에 있는 2개의 쓰레드가 실행됩니다. 각 쓰레드에서는 데이터의 전달이 Start 오브젝트부터 시작됩니다.

단축키

VEE 프로그램을 시작하기 위해서 키보드에 있는 CTRL+G를 누릅니다.

관련정보

Default Preferences 대화상자


프로그램 내에서 분기하기

VEE 프로그램 내에서 실행흐름을 분기하기 위해서는, Flow 메뉴의 If/Then/Else 오브젝트 또는 Conditional [image] objects를 사용합니다.

If/Then/Else 오브젝트를 사용하여 조건분기를 설정하기

1. (Flow 메뉴의) If/Then/Else 오브젝트를 작업영역에 추가합니다.

2. 조건 테스트 표현식을 필요에 따라서 변경하십시오. 예를 들어, 값을 테스트하기 위해서 그 값들이 “0.5 보다 크거나 같고 0.6보다 작음”의 범위에 있어야 한다면, .5<=A AND A<.6 와 같이 표현식을 작성합니다.(If/Then/Else 오브젝트의 입력창에는 UserFunctions 을 호출하거나 전역변수를 사용하는 할 수 있을 뿐만 아니라 VEE에서 지원하는 모든 논리연산자 및 관계연산자를 사용할 수 있습니다.)

3. 표현식에서 필요하다면 입력터미날을 추가하십시오. 디폴트 상태에서는, 입려터미날(A) 하나만 생성됩니다. A의 값을 B의 값과 비교해야 한다면(예, A<=B) 이름이 B인 입력터미날을 추가하십시오.

4. 테스트될 데이터소스를 데이터 입력터미날에 연결하십시오.

5. 마지막으로, Then 및 Else 출력을, 필요하다면, 활성화시킬 다른 오브젝트나 서브쓰레드에 연결하십시오.

예제: If/Then/Else 오브젝트 사용

Random Number 오브젝트의 출력값은 .5<=A AND A<.6 표현식으로 테스트됩니다. 값이 지정한 범위 안에 들면, Then 출력터미날이 상단의 AlphaNumeric 오브젝트를 활성화시킵니다. 이 AlphaNumeric은 위의 그림에서 처럼 랜덤숫자를 표시합니다. 값이 지정한 범위에 들지 않으면, Else 출력터미날이 하단의 AlphaNumeric을 활성화시킵니다. 이 오브젝트에는 Try Again 이 표시됩니다. 이 예제는 간단한 예제를 설명합니다. 이러한 방식으로 Then 및 Else 터미날을 이용하여 프로그램의 임의의 부분을 활성화할 수 있습니다. 이 프로그램은 매뉴얼 예제 폴더에 manual01.vee 로 저장되어 있습니다. (Help [image] Open Example)

조건 오브젝트를 사용하는 방법

Flow [image] Conditional [image] (If A == B, If A ~= B, If A != B, If A < B, If A > B, If A <= B, and If A >= B) 에서 제공되는 오브젝트는 If/Then/Else 오브젝트에 다른 연산자를 미리 작성한 것입니다. 이들에는 각각 2 개의 입력터미날(A 및 B)이 제공되며, A의 값을 B의 값으로 미리 설정된 테스트를 실행합니다. Then 및 Else 출력터미날은 If/Then/Else 오브젝트의 Then 및 Else 오브젝트와 동일한 방식으로 동작합니다. 사실은, 터미날을 더하거나 삭제할 수 있으며, If/Then/Else 오브젝트에서 처럼 표현식을 변경할 수 있습니다. 예를 들어, If A == B 오브젝트에 C 터미날을 추가하고 표현식을 A == B OR B <= C 으로 변경할 수 있습니다.

예제: Else If 조건 추가하기

If/Then/Else 오브젝트 및 Conditional 오브젝트는 또 다른 기능-- Else If 조건을 가지고 있습니다. 하나 이상의 Else If 조건(오브젝트 메뉴 [image] Add Else/If)을 추가할 수 있습니다. 이전 조건이 만족되지 않으면 각 Else If 조건이 테스트됩니다. 예를 들어, 다음의 If/Then/Else 오브젝트는 2 개의 Else If 조건을 가집니다.:

이 오브젝트는 다음과 같이 동작합니다.:

1. 표현식 0<=A AND A<10 가 연산됩니다. 연산결과가 참이면 결과가 Then 터미날로 출력됩니다.(연산결과가 0 이 아닌 값이면 표현식은 참 입니다.)

2. 연산결과가 참이 아니면, A<20 이 실행되며, 표현식이 참이면 결과는 해당 Else If 터미날로 출력됩니다.

3. A<20 거짓이면, 표현식 A<30 이 연산됩니다. A<30 이 참이면 결과가 해당 Else If 터미날로 출력됩니다. 연산결과가 거짓이면 결과는 Else 터미날로 출력됩니다.

관련정보

If/Then/Else


VEE 프로그램의 일부분을 반복하기

다음에 설명한 반복 오브젝트를 사용하여 VEE 프로그램의 일부분을 반복할 수 있습니다. Next 또는 Break 오브젝트를 이 오브젝트에 의해 “호스팅된” 루프 안에 추가할 수 있습니다. 반복 오브젝트는 Flow [image] Repeat 메뉴에서 제공됩니다.

프로그래밍 예제를 보기 위하여 계속 스크롤 하십시오.

반복 오브젝트의 요약

For Count

0부터 시작하고 입력필드에서 지정하는 숫자만큼 반복하는 카운트를 출력합니다. 디폴트 값은 10이며, 0부터 9까지 10번 반복하는 카운트 입니다.

For Range

From 값부터 시작하여 Step 값만큼 반복하여 증가하는 값을 데이터 출력핀을 통해서 반복하여 출력합니다. For Range는 Step 값이 양수인 경우에 출력값이 Thru 값보다 클 때까지 반복하든지, Step 값이 음수인 경우에 출력값이 Thru 값보다 작을 때까지 반복합니다.

For Log Range

For Range와 비슷하나, 로그 스케일로 반복합니다. 초기 출력값은 From이고 nth 값은 From*exp10(n/(/Dec))입니다. For Log Range는 /Dec 값이 양수인 경우에 출력값이 Thru 값보다 클 때까지 반복하든지, /Dec 값이 음수인 경우에 출력값이 Thru 값보다 작을 때까지 반복합니다.

For Each

VEE 에서는, For Each는 어레이가 어떤 차원(1-10)을 가지든, 어떤 차원의 크기 또는 형태를 가지든 상관없이 어레이를 처리합니다. COM 에서는, For Each는 열거되거나 루핑될 수 있는 어떤 COM (ActiveX) 오브젝트도 처리합니다. 이 타입의 오브젝트는 필요하지는 않지만 콜렉션이라는 것을 나타내기 위하여 "Count" 속성과 "Item()" 메서드를 가집니다. COM/ActiveX는 VEE 실행모드 5 이상에서 사용할 수 있습니다. .NET 에서는, For Each는 예를 들어 스트링 콜렉션에서 열거되거나 루핑될 수 있는 어떤 .NET 오브젝트도 처리합니다. 이 타입의 오브젝트는 필요하지는 않지만 콜렉션이라는 것을 나타내기 위하여 "Count" 속성과 "Item()" 메서드를 가집니다. .NET 오브젝트는 VEE 실행모드 6&7 이상에서 사용할 수 있습니다.

Until Break

쓰레드에 있는 Break 오브젝트가 동작할 때까지 데이터 출력핀을 계속 활성화 합니다.

On Cycle

쓰레드에 있는 Break 오브젝트가 동작할 때까지 현재의 시간 값을 주기(디폴트 주기는 1초입니다)적으로 출력합니다.

Next

현재의 루프가 다음 반복을 즉시 시작하도록 합니다.

Break

루핑를 즉시 종료하도록 합니다.

예제: For Count 루프

다음 예제에서는, For Count 오브젝트는 Random Number 오브젝트가 10회 동작하도록 합니다. For Count 시퀀스 출력핀은 For Count 오브젝트가 동작을 완료(루핑이 반복하는 것을 완료)했을 때 활성화 됩니다. Collector는 10개의 랜덤 값을 어레이에 수집하고, For Count 의 시퀀스 출력핀이 Collector의 XEQ 핀을 활성화 하기 전까지는 어레이를 출력하지 않습니다.

예제: 매 초마다 읽은 값 가져오기

다음 예제에서는, On Cycle 오브젝트는 매 초마다 실행하여 HP 34401A 멀티미터의 인스트루먼트 패널 오브젝트가 매 초마다 읽은 값을 출력하도록 합니다. 이 프로그램은 HP 34401A의 live mode가 OFF로 설정되어 있으므로, 시뮬레이션된 값을 제공합니다. 읽어들인 각 값은 Logging AlphaNumeric 디스플레이 오브젝트와 If/Then/Else 오브젝트로 출력됩니다. 여기서 If/Then/Else 오브젝트는 입력값이 7보다 크거나 같으면 루핑을 정지하는 Break를 동작하기 위해 사용합니다. Logging AlphaNumeric 디스플레이 오브젝트에서 If/Then/Else 오브젝트로 연결된 시퀀스 출력 라인은 루핑이 정지하기 전에 마지막으로 읽은 값을 디스플레이하기 위해서 사용합니다. Time Stamp 포맷으로 설정된 AlphaNumeric 오브젝트는 매번 읽은 시간을 디스플레이 합니다. 이 예제는 manual examples 디렉토리(메뉴 Help [image] Open Example).에 manual02.vee 로 저장되어 있습니다.

예제: 병렬 또는 네스팅된 루프

다음 예제에서는, 프로그램이 동시에 실행되는 병렬 루프와 네스팅된 루프를 포함하고 있습니다. Thread 1 과 Thread 2는 병렬 루프입니다. Subthread 1a는 Thread 1에 네스팅되어 있습니다. 복수의 레벨로 네스팅될 수 있습니다.

루프를 사용할 때, 잘못 전송되어 예측하지 못한 결과를 가져올 수 있는 다음의 상황은 파하도록 합니다. VEE 4 이상의 실행모드에서 다음과 같은 프로그램을 실행하면 에러가 발생합니다.

1. 병렬 루프에서는 크로스로 연결하지 마십시오.

2. 루프를 병합하지 마십시오(예, JCT 또는 Math 오브젝트로)

관련정보

메뉴 Help [image] Open Example...의 manual 예제 디렉토리에 있는

manual03.vee 또는 manual04.vee


VEE 프로그램 중지하기

VEE 프로그램을 시작한 다음에는, 프로그램은 데이터 전달 규칙을 따라 실행하고 데이터 전달이 끝나면 프로그램은 정지합니다.

데이터 전달이 끝나기 전에 VEE 프로그램을 중지하는 방법

VEE 툴바에 있는 Stop 버튼을 클릭합니다.

Stop 버튼

프로그램을 잠깐 일시 정지하기 위하여 Pause 버튼을 클릭합니다. 프로그램을 계속 실행하기 위해서는 Resume 버튼을, 프로그램을 중지하기 위해서는 Stop 버튼을 클릭합니다.

Pause 버튼

Resume 버튼

Stop 및 Exit Thread 오브젝트를 사용합니다. 프로그램을 끝내야 할 때를 지정하기 위하여 프로그램에 Stop 또는 Exit Thread 오브젝트를 추가할 수 있습니다. 예를 들어, Stop 또는 Exit Thread 오브젝트로 조건부로 분기하기 위하여 If/Then/Else 오브젝트를 사용할 수 있으며, Stop 버튼을 누르게 되면 프로그램은 정지합니다.

Raise Error 오브젝트를 사용합니다. 에러가 발생하면 Raise Error 오브젝트를 사용하여 프로그램을 중지합니다.

단축키

키보드에 있는 CTRL+P를 눌러 프로그램을 일시 정지(중지 가 아님)합니다.

키보드에 있는 CTRL+G를 눌러 프로그램을 다시 실행합니다.

주의사항

VEE 4 이상의 실행모드에서는, Default Preferences 대화상자에 있는 Disable Debug Features 항목이 on된 경우에는 Pause 명령은 디스에이블 됩니다.

관련정보

Default Preferences 대화상자, Exit Thread, Stop 메뉴항목, 에러 검출하기


디폴트 색상 변경하기

VEE 프로그램을 위하여 디폴트 색상을 변경할 수 있습니다.

1. VEE 툴바에 있는 Default Preferences를 클릭하고, 대화상자에서 Color 탭을 선택합니다.

Default Preferences 버튼

2. Screen Element 항목이나 옆의 화살표를 클릭합니다. 스크린 앨리먼트를 선택하기 위한 드롭다운 리스트가 디스플레이 됩니다.

3. 리스트에서 변경하고자 하는 스크린 앨리먼트를 클릭합니다. 드롭다운 리스트가 사라지고, 선택한 스크린 앨리먼트를 위한 색상이 Color Value 항목에 표시됩니다.

4. Color Value 버튼을 클릭합니다. Select Color 대화상자는 선택 가능한 색상 파레트를 디스플레이 합니다. 스크린 앨리먼트에 선택된 현재의 색상이 파레트상에 하이라이트되어 표시됩니다. 또한 색상은 Preview 영역에 표시됩니다.

5. 새로운 색상을 선택하기 위해서는, 파레트에 있는 다른 색상을 클릭하고 OK 버튼을 클릭하여 Default Preferences 대화상자로 되돌아 옵니다.

6. 선택 내용을 저장하기 전에 필요한 만큼 다수의 스크린 앨리먼트를 위한 색상을 선택하십시오.

7. 스크린 앨리먼트를 위해 새로 선택한 색상을 저장하기 위한 방법을 선택하십시오.

a. 선택한 색상을 디폴트 색상으로 저장하기 위해서는 Save 버튼을 클릭합니다. 이것은 vee.rc 파일에 새로운 디폴트 색상으로 저장합니다. 새로 저장된 색상은 향후 VEE 프로그램을 사용할 때 디폴트 색상이 됩니다. (다시 디폴트를 변경하기 전까지)

b. 선택한 색상을 현재의 VEE 프로그램( File [image] New, Open 또는 Exit을 선택하기 전까지)에서 만 사용하기 위해서는 OK 버튼을 클릭합니다.

c. 새로운 선택한 색상을 VEE 프로그램과 함께 저장하기 위해서는 OK버튼을 클릭합니다. 그리고 File [image] Save As...를 선택하고, option 영역에서 Save colors and fonts with program 박스를 체크합니다.

d. 새로운 색상 선택을 취소하고자 할 때는 Cancel 버튼을 클릭합니다.

e. 현재 설정한 내용을 무시하고, 설정값을 vee.rc 파일에 있는 디폴트 값으로 되돌아 가기 위해서는 Reset 버튼을 클릭합니다.

관련정보

Default Preferences 대화상자, 색깔 사용법, 색상 선택 방법


디폴트 폰트 변경하기

VEE 작업영역에 있는 스크린 앨리먼트를 위한 디폴트 폰트를 변경할 수 있습니다.

주의사항

1. VEE 툴바에 있는 Default Preferences를 클릭하고, 대화상자에서 Fonts 탭을 선택합니다.

Default Preferences 버튼

2. Screen Element 항목이나 옆의 화살표를 클릭합니다. 스크린 앨리먼트를 선택하기 위한 드롭다운 리스트가 디스플레이 됩니다.

3. 리스트에서 변경하고자 하는 스크린 앨리먼트를 클릭합니다. 드롭다운 리스트가 사라지고, 선택한 스크린 앨리먼트를 위한 폰드가 Font Value 항목에 표시됩니다.

4. Font Value 버튼을 클릭합니다. Select Font 대화상자가 나타납니다.

5. 적절한 필드 또는 2개의 드롭다운 리스트에서 폰트 이름과 사이즈를 선택합니다. 또한 체크박스를 선택하여 Bold와 Italic을 선택할 수도 있습니다. OK 버튼을 클릭하여 Default Preferences 대화상자로 되돌아 옵니다.

폰트 리스트에서는 시스템에 설치된 어떤 폰트도 선택할 수 있습니다.

6. 선택 내용을 저장하기 전에 필요한 만큼 다수의 스크린 앨리먼트를 위한 폰트를 선택하십시오.

7. 스크린 앨리먼트를 위해 새로 선택한 폰트를 저장하기 위한 방법을 선택하십시오.

a. 선택한 폰트를 디폴트 폰트로 저장하기 위해서는 Save 버튼을 클릭합니다. 이것은 vee.rc 파일에 새로운 디폴트 폰트로 저장합니다. 새로 저장된 폰트는 향후 VEE 프로그램을 사용할 때 디폴트 폰트가 됩니다. (다시 디폴트를 변경하기 전까지)

b. 선택한 폰트를 현재의 VEE 프로그램(File [image] New, Open 또는 Exit을 선택하기 전까지)에서 만 사용하기 위해서는 OK 버튼을 클릭합니다.

c. 새로운 선택한 폰트를 VEE 프로그램과 함께 저장하기 위해서는 OK버튼을 클릭합니다. 그리고 File [image] Save As...를 선택하고, option 영역에서 Save colors and fonts with program 박스를 체크합니다.

d. 새로운 폰트 선택을 취소하고자 할 때는 Cancel 버튼을 클릭합니다.

e. 현재 설정한 내용을 무시하고, 설정값을 vee.rc 파일에 있는 디폴트 값으로 되돌아 가기 위해서는 Reset 버튼을 클릭합니다.

관련정보

Default Preferences 대화상자, 폰트의 사용


오브젝트 폰트 변경하기

모든 오브젝트는 오브젝트 메뉴를 통해서 제공되는 속성창이 있습니다. 속성창을 사용하여특정한 오브젝트의 폰트를 변경할 수 있습니다.

주의사항

1. 오브젝트에서 마우스 오른쪽 버튼을 클릭하여 오브젝트 메뉴를 엽니다. 오브젝트 메뉴에서 Properties를 선택하고, 변경하고자 하는 Font 속성을 선택합니다.

오브젝트의 클래스에 따라 폰트를 변경할 수 있습니다. Title 텍스트와 Object 텍스트의 폰트를 변경할 수 있습니다.

2. 변경하고자 하는 텍스트의 속성을 선택하면, Select Font 대화상자가 나타납니다.

3. 2개의 드롭다운 리스트에서 일치하는 필드를 선택하거나 폰트 이름과 글자 크기를 선택하기 위하여 화살표를 선택합니다. 컴퓨터에 설치된 폰트를 선택할 수 있는 폰트 리스트가 제공됩니다. 체크 박스를 클릭하여 Bold 또는 Italic을 선택할 수도 있습니다.

Default Preferences에 디폴트로 설정된 폰트를 사용하기 위해서는, Default 체크박스를 클릭하십시오.

OK 버튼을 클릭하여 속성창으로 되돌아 갑니다.

디폴트로 정해진 폰트 대신에 새로 선택한 폰트가 오브젝트에 나타납니다. 이러한 폰트 변경은 선택한 오브젝트에만 적용되고, 프로그램 저장시에 같이 저장됩니다.

단축키

속성창을 표시하기 위해서는 해당 오브젝트의 타이틀 바를 더블 클릭합니다.

관련정보

폰트의 사용


오브젝트 제목 바꾸기

1. 오브젝트 메뉴에서 Properties를 선택하면, 속성창이 나타납니다.

2. Appearance 영역에 있는 Title 항목을 선택하여 새로운 제목을 입력합니다.

단축키

오브젝트의 타이틀바를 더블 클릭하면 속성창이 바로 나타납니다.

주의사항

메인 윈도우의 오브젝트 메뉴에 있는 Properties를 사용하여 메인 윈도우의 제목을 변경할 수도 있습니다. 메인화면의 패널뷰가 먼저 생성되어 있어야 합니다. 여기서 작성한 제목은 Program Explorer 창에서 프로그램 이름으로 사용됩니다. 패널뷰 생성에 대한 자세한 내용은 How Do I … Build an Operator Interface를 참조하십시오.


재실행 하기

Edit 메뉴에서 Redo를 선택하여 재실행할 수 있습니다.

사용법

Undo 명령은 실행결과를 되돌려 놓습니다. Redo 명령을 사용하여 Undo하여 실행 취소한 상태를 되돌릴 수 있습니다.

주의사항

Redo는 Undo의 의해 실행된 동작에만 사용할 수 있습니다. 다른 동작에는 회색으로 표시됩니다.

모든 동작을 Undo하고 새로운 동작을 시작할 때마다, Redo 목록이 초기화됩니다.

redo 스택 한계나 알려진 예외에 대해서는 실행 취소하기를 참조하십시오.

오브젝트 위치

오브젝트 Properties 메뉴에서, Redo를 선택합니다.

메인 메뉴에서, Edit [image] Redo 또는 CTRL+Y

툴바에서,

관련정보

실행 취소하기


실행 취소하기

VEE에서 실행한 동작을 되돌리기 위해 사용하는 Edit 메뉴의 선택항목. 모든 실행이 취소 되지는 않습니다.

사용법

디테일뷰에 대하여, 메인 화면, User Objects, 및 User Functions에서 다음의 실행 동작들은 실행을 취소할 수 있습니다:

  • 연결선을 잘라낸 경우

  • 터미날을 추가/삭제/수정한 경우

  • UserObject 또는 UserFunction에서 터미날을 추가/삭제한 경우

  • 오브젝트를 이동하거나 정렬한 경우

  • 오브젝트를 대체한 경우

  • 오브젝트를 복사/붙여 넣은 경우

  • 자동으로 스크롤한 경우

패널뷰에 대하여, 다음의 오브젝트들은 메인, User Objects, 또는 User Functions 패널에서 다음의 실행 동작들은 실행을 취소할 수 있습니다:

  • 오브젝트를 정렬한 경우

  • 오브젝트를 삭제한 경우

주의사항

Undo는 일부의 실행 동작에서만 사용할 수 있습니다. 아이콘이 회색으로 바뀐 경우에는, 실행을 취소할 것이 없거나, 실행취소 기능이 지원되지 않는 실행동작입니다.

Undo는 위치에 따라 실행됩니다. 예를 들어, Formula 오브젝트의 삭제를 실행 취소할 수 있습니다. 공식을 입력하고 공식의 일부를 삭제한 경우에는, 필요한 경우 이 삭제 행위를 실행 취소할 수 있습니다. 오브젝트의 실행 행위를 취소할 수 있을뿐 아니라 오브젝트 내에서 텍스트에 대한 실행 행위도 취소할 수 있습니다.

Undo는 툴팁 ( [image]) 을 제공하여 사용자가 어떤 실행취소를 할 수 있는지를 알 수 있도록 합니다.

모든 실행 동작이 취소되고 새로운 동작을 실행한 경우에는, 가장 최근에 실행한 동작만 실행 취소할 수 있습니다. 이 경우 최근 실행 이전의 모든 실행내용은 더 이상 실행취소 할 수 없습니다.

현재의 디테일뷰나 패널뷰의 실행취소 스택이 무시되는 실행행위

대응되는 뷰를 가진 디테일 뷰에서 오브젝트를 삭제하거나 잘라내는 경우에는, 패널뷰의 실행취소 스택은 무효화 됩니다.

디테일 뷰에서 선택한 오브젝트의 UserFunction을 생성하는 경우에는, 디테일 뷰의 실행취소 스택은 무효화 됩니다. 디테일뷰와 관련된 패널뷰가 있는 경우에는, 패널뷰의 실행취소 스택은 무효화 됩니다.

디테일 뷰에서 선택한 오브젝트의 UserObject를 생성하는 경우에는, 디테일 뷰의 실행취소 스택은 무효화 됩니다. 디테일뷰와 관련된 패널뷰가 있는 경우에는, 패널뷰의 실행취소 스택은 무효화 됩니다.

UserObject를 디테일뷰로 언팩하는 경우에는, 해당 디테일뷰의 실행취소 스택은 무효화 됩니다.

UserFunction을 UserObject로 변환하는 경우에는, 해당 디테일 뷰(UserObject가 배치된 곳)의 실행취소 스택은 무효화 됩니다. UserFunction과 관련된 패널뷰가 있는 경우에는, 패널뷰의 실행취소 스택은 남아 있습니다.

UserObject에서 UserFunction을 만드는 경우에는, 소오스 디테일 뷰(UOCarrier의 위치)의 실행취소 스택은 무효화 됩니다. UserObject와 관련된 패널뷰가 있는 경우에는, 패널뷰의 실행취소 스택은 남아 있습니다.

하나의 컨텍스트에서 다른 컨텍스트로 오브젝트를 이동하는 경우에는, 소오스 디테일 뷰와 목표 디테일뷰의 실행취소 스택은 무효화 됩니다. 소오스 컨텍스트와 관련된 패널뷰가 있거나 이동된 오브젝트중의 하나가 패널에 있는 경우에는, 소오스 패널뷰의 실행취소 스택 또한 무효화 됩니다.

복수의 오브젝트를 생성하는 것인 패널 드라이버에 출력을 추가하는 경우에는, 관련된 컨텍스트의 실행취소 스택은 무효화 됩니다.

입력 터미날이나 출력터미날을 변경(터미날을 추가, 제거, 이름이나 타입 및 형태를 수정하는 어떤 경우라도)경우에는, UserObject의 UOCarrier를 가지는 해당 컨텍스트의 뷰에 대한 실행취소 스택은 무효화 됩니다.

예외사항

Declare Variable, ActiveX Control 또는 XYGraph 타입의 오브젝트를 디테일 뷰에 배치하고 이 오브젝트를 클론합니다. 오브젝트중의 하나를 삭제합니다. 남아 있는 오브젝트 이름을 방금 전에 삭제한 오브젝트의 이름과 동일한 이름으로 변경합니다. Undo 버튼을 누릅니다. 다시 복구된 오브젝트는 사용하고자 하는 이름이 이미 존재하기 때문에 오브젝트는 다른 이름을 갖게 됩니다. 새로운 이름을 오브젝트에 할당합니다.

하나의 컨텍스트에서 오브젝트를 복사하여 다른 컨텍스트에 오브젝트를 붙여 넣은 경우에는, 실행취소 행위가 등록되지 않습니다. 다른 컨텍스트에 드래그-클론을 수행할 때도 동일하게 적용됩니다.

오브젝트 위치

Edit [image] Undo 또는 CTRL+Z

툴바 -

관련정보

재실행하기 또는 Paste 메뉴항목


텍스트 검색을 이용하여 오브젝트 찾기

Find 대화상자 (Edit [image] Find)는 오브젝트를 찾을 때 사용합니다. Find는 많은 개수의 오브젝트를 사용하는 커다란 프로그램에서 오브젝트를 쉽게 찾을 수 있도록 합니다. 사용자는 검색기준으로 텍스트를 지정할 수 있고, 검색 제한 조건을 설정할 수 있습니다. Find는 또한 툴바 버튼을 사용할 수도 있습니다.

Find 버튼

1. Find 대화상자 (Edit [image] Find 또는 툴바 버튼 이용)를 열면 대화상자가 나타납니다.

2. Find: 편집필드에, 찾고자 하는 텍스트를 입력합니다.

3. General 탭에서, 텍스트 검색의 제한조건을 설정할 수 있습니다.

4. 제한조건을 입력한 후에 Find를 클릭하면, 검색이 시작됩니다.

검색중에 검색을 중지하기 위하여 Stop 버튼을 클릭합니다. 현재까지 검색된 결과를 디스플레이 합니다.

5. 검색이 완료되면, Find 대화상자가 닫히고 Find Results 대화상자가 나타납니다. Find Results는 검색 기준에 매칭이 되는 오브젝트 리스트를 제공합니다. 리스트에 있는 오브젝트를 보기 위한 자세한 사항은 Find 실행의 결과 보기을 참조하십시오.

다음 그림은 텍스트 ‘upper’를 찾기 위해 설정하는 Find 대화상자를 나타냅니다. General 탭에 설정된 옵션은 네스팅된 UserObjects에 있는 모든 오브젝트를 포함하여 검색하는 것을 보여줍니다. 텍스트 스트링 어디에 라도 upper를 포함하면 모두 검색하라는 것을 보여줍니다.

단축키

Find 대화상자를 열기 위해서는 키보드에 있는 CTRL+F를 누릅니다.

주의사항

Search in 필드에 있는 리스트와 같이 검색의 영역을 제한하기 위해서는, Program Explorer에서 컨텍스트 메뉴를 사용하십시오. 컨텍스트 메뉴를 표시하기 위하여 UserObject, function, 또는 폴더 이름에서 마우스 오른쪽 버튼을 클릭하고, Find를 클릭합니다. Search in 필드에 해당 컨텍스트 이름이 표시되는 Find 대화상자가 나타납니다.

Find는 다음 항목들은 찾을 수 없습니다:

패널 또는 패널에 있는 오브젝트

라인 또는 라인 값

터미날 값

관련정보

프로그램 구조 탐색하기

속성 검색을 이용하여 오브젝트 찾기

Find 실행의 결과 보기

Find 메뉴항목

Find Results 메뉴항목


속성 검색을 이용하여 오브젝트 찾기

Find 대화상자 (Edit [image] Find)는 오브젝트를 찾을 때 사용합니다. Find는 많은 개수의 오브젝트를 사용하는 커다란 프로그램에서 오브젝트를 쉽게 찾을 수 있도록 합니다. 검색기준으로 텍스트나 오브젝트 속성을 지정할 수 있고, 검색 제한 조건을 설정할 수 있습니다. Find는 또한 툴바 버튼을 사용할 수도 있습니다.

Find 버튼

1. Find 대화상자 (Edit [image] Find 또는 툴바 버튼 이용)를 열면 대화상자가 나타납니다.

2. Find: 편집필드에, 찾고자 하는 텍스를 입력합니다. 오브젝트 속성을 이용한 검색을 하려면 이 필드를 비워 놓습니다.

3. General 탭에서, 검색을 제한하기 위하여 Search nested UserObjects를 설정합니다. 이전 단계에서 텍스트를 입력하였다면, 텍스트 검색을 위한 다른 검색 조건을 설정합니다.

4. Advanced 탭에서, 3개의 properties 와 values를 설정할 수 있습니다. 이 제한조건은 지정하는 properties 와 values를 가진 오브젝트를 검색합니다.

a. property name을 설정하기 위하여 Property 아래에 있는 버튼을 클릭합니다. 모든 사용 가능한 오브젝트 properties를 표시하는 Property Name 대화상자 나타납니다.

리스트를 스크롤하여 원하는 이름을 클릭하여 property를 선택합니다. property name이 버튼에 표시됩니다.

b. Value 아래에 있는 버튼은 선택한 property와 관련이 있는 모드로 변경합니다. Value 선택 방법은 다음과 같습니다:

드롭다운 리스트에서 value를 선택합니다.

대화상자에서 value를 선택합니다.

칼라 파레트에서 색상을 선택합니다.

텍스트나 숫자값을 입력합니다.

c. 필요시, 하나의 디폴트 설정값인 Property (Object Type) 와 Value (All Types)로 되돌아 가기 위해서 Reset 버튼을 클릭합니다.

5. 검색 기준을 설정한 후에 Find를 클릭하면, 검색을 시작합니다.

검색이 진행 중에 검색을 중지하기 위해서는 Stop을 클릭합니다. 현재까지 찾아진 결과를 디스플레이 합니다.

6. 검색이 완료되면, Find 대화상자가 닫히고 Find Results 대화상자가 나타납니다. Find Results는 검색 기준에 매칭이 되는 오브젝트 리스트를 제공합니다. 리스트에 있는 오브젝트를 보기 위한 자세한 사항은 To View Results of a Find Operation 를 참조하십시오.

다음 그림은 텍스트 ‘upper’를 찾기 위해 설정하는 Find 대화상자를 나타냅니다. Advanced 탭은 특정한 property values를 가지는 오브젝트만을 검색하는 것을 보여줍니다. 우측 상단에 있는 Adv는, 검색을 위하여 property values를 포함하고 있을 때 하이라이트 됩니다.

단축키

Find 대화상자를 열기 위해서는 키보드에 있는 CTRL+F를 누릅니다.

주의사항

Search in 필드에 있는 리스트와 같이 검색의 영역을 제한하기 위해서는, Program Explorer에서 컨텍스트 메뉴를 사용하십시오. 컨텍스트 메뉴를 표시하기 위하여 UserObject, function, 또는 폴더 이름에서 마우스 오른쪽 버튼을 클릭하고, Find를 클릭합니다. Search in 필드에 해당 컨텍스트 이름이 표시되는 Find 대화상자가 나타납니다.

Find는 다음 항목들은 찾을 수 없습니다:

패널 또는 패널에 있는 오브젝트

라인 또는 라인 값

터미날 값

관련정보

프로그램 구조 탐색하기

텍스트 검색을 이용하여 오브젝트 찾기

Find 실행의 결과 보기

Find 메뉴항목

Find Results 메뉴항목


Find 실행의 결과 보기

지정하는 텍스트나 속성을 포함하는 오브젝트를 찾기 위하여 Find를 사용한 다음에는, 매칭된 정보를 표시하는 Find Results 대화상자가 나타납니다. Find Results는 검색된 오브젝트를 보기 위한 방법을 제공합니다. 필요시 Find Results (Edit [image] Find Results)를 열거나 닫을 수 있는 Find를 새로 실행하기 전까지는 검색 결과가 유지됩니다.

Find Results 버튼

다음 그림은 upper라는 텍스트를 포함하는 오브젝트의 리스트를 표시하는 Find Results 예제를 나타냅니다.

Find Results 대화상자의 사용

목록에 있는 오브젝트, UserObject, 또는 UserFunction을 작업영역으로 가져오기 위해서는 목록에서 해당 라인을 더블 클릭합니다. UserObject, 또는 UserFunction의 편집화면이 열립니다; 해당 오브젝트가 하이라이트 됩니다.

목록의 순서를 정렬하기 위해서는 컬럼 필드를 클릭합니다.

Keep Visible 버튼의 디폴트 설정은 항목을 보기 위해 선택하면 열리는 Find Results 대화상자를 유지합니다. 항목을 선택할 때 Find Results를 닫기 위해 현재의 상태를 토글하는 버튼을 클릭합니다.

Keep Visible 버튼은 Find Results를 열린 상태로 유지하기 위해 설정합니다.

Keep Visible 버튼은 Find Results를 닫기 위해 설정합니다.

이전 또는 다음 항목을 뷰로 가져가기 위하여 왼쪽 또는 오른쪽 화살표 버튼을 클릭합니다.

Previous 및 Next 버튼

Find 대화상자를 열기 위하여 Find 버튼을 클릭하고, 새로운 검색을 시작합니다. 이것은 Find Results를 닫고, 대화상자에 있는 내용을 초기화 합니다.

Find 버튼

Adv 상태 표시자는 Find 대화상자의 Advanced 탭에서 지정한 속성을 검색할 때 하이라이트 됩니다.

단축키

Find Results 대화상자를 열기 위해서 키보드에 있는 CTRL+R를 누릅니다.

주의사항

Find Results 메뉴 항목과 툴바 버튼은 Find가 실행을 완료할 때까지는 회색으로 표시됩니다.

이전의 Find 실행으로 표시된 Find Results의 내용은 Find 대화상자를 다시 열 때마다 초기화됩니다.

관련정보

속성 검색을 이용하여 오브젝트 찾기

텍스트 검색을 이용하여 오브젝트 찾기

Find 메뉴항목

Find Results 메뉴항목


프로그램 구조 탐색하기

프로그램의 전체 구조를 탐색하기 위하여 VEE Program Explorer (View [image] Program Explorer)를 사용합니다. Program Explorer는 정보를 확인하고, 프로그램을 네비게이션하고, 프로그램의 내용을 변경할 때 유용합니다. 툴바에 있는 버튼을 사용하여 Program Explorer를 쉽게 열고 닫을 수 있습니다.

Program Explorer 버튼

프로그램 구조 보기

1. Program Explorer를 엽니다. VEE 작업영역의 왼쪽에 윈도우가 열립니다.

2. 트리뷰를 확장하고 축소하기 위하여 컨트롤(+ 및 -)를 클릭합니다. 프로그램 내용에 따라, Program Explorer는 다음에 나열한 항목을 표시합니다.

메인 UserObject에서 시작하는 UserObject의 계층구조

로컬 UserFunction들

임포트된 UserFunction Libraries 및 관련 함수들

임포트된 Compiled Libraries 및 관련 함수들

임포트된 Remote UserFunction Libraries 및 관련 함수들

선언되거나 선언되지 않은 전역변수(global variables)

해당 컨텍스트 아래에 존재하는 선언된 지역변수들(local variables)

해당 라이브러리 아래에 존재하는 선언된 라이브러리 전역변수들(library global variables)

아래 그림과 리스트는 다양한 컨텍스트와 변수들을 표시하기 위해 Program Explorer에서 사용하는 아이콘들입니다.

1. 전체 프로그램을 표시.

2. UserObjects를 표시

3. 로컬, 임포트된 또는 리모트 UserFunctions을 표시

4. Compiled Functions을 표시

5. 선언 되거나 선언되지 않은 전역변수(Global Variables) 및 선언된 라이브러리 변수(Library Variables)를 표시

6. 지역변수를 표시

7. 라이브러리 이름, 글로벌(Globals) 및 UserFunctions같은 항목을 포함하는 컨테이너를 표시

컨텍스트 메뉴 사용하기

Program Explorer의 컨텍스트 메뉴는 프로그램에 있는 오브젝트나 정보에 접근할 수 있도록 합니다. 리스트에 있는 항목에서 마우스 오른쪽 버튼을 클릭하여 컨텍스트 메뉴를 열고, 메뉴에서 항목을 선택하여 클릭합니다. 메뉴의 내용은 항목에 따라 다릅니다.

프로그램 정보를 보거나 문서화 하기 위해서는, 컨텍스트 메뉴에서 사용할 수 있는 다음의 메뉴를 사용하십시오. 프로그램 구조 및 관련 항목의 위치에 따라서 문서화와 관련된 메뉴의 종류가 변경됩니다.:

Print는 프로그램, UserObject, 또는 함수를 인쇄합니다. ( Print Program 또는 Print Objects 메뉴항목을 참조하십시오.)

Document는 프로그램, UserObject, 또는 함수의 문서를 저장합니다. ( Save Documentation 메뉴항목를 참조하십시오)

Calls는 이 항목이 호출한 UserObjects을 찾습니다.

Called By는 이 항목을 호출한 UserObjects이나 함수를 찾습니다.

View는 변수의 현재 값을 대화상자로 표시합니다.

프로그램의 내용을 변경하기 위해서는, 컨텍스트 메뉴에서 사용할 수 있는 다음의 메뉴를 사용하십시오.

Open은 해당 항목의 편집윈도우를 작업영역에 표시합니다. 이것은 해당 항목을 더블클릭하는 것과 동일합니다.

Find는 Find 대화상자를 제공합니다. (Find 메뉴항목를 참조하십시오.) 전체 프로그램이 아닌, 현재 선택된 항목에서만 찾기를 수행합니다.

Generate [image] 는 UserFunction의 이름을 표현식에 사용하는 다음 오브젝트들 중의 하나를 생성할 수 있도록 합니다. 프로그램의 다른 부분에 생성한 오브젝트를 배치할 수 있습니다. (Call, Formula, If/Then/Else, ShowPanel, HidePanel를 참조하십시오.)

Cut을 실행하면 해당 항목을 삭제할 것인지 확인하는 대화상자를 표시합니다. 이 대화상자에서 Yes 를 선택하면 해당 항목이 삭제됩니다.

Description을 실행하면 해당 항목의 Description 대화상자를 표시합니다. (Description 메뉴항목을 참조하십시오.)

Properties는 해당 항목의 속성창을 표시합니다. 속성창 (오브젝트)을 참조하십시오.)

References는 해당 변수를 사용한 오브젝트를 찾습니다.

단축키

UserObject, UserFunction 또는 작업영역에 있는 다른 컨텍스트를 보기 위해서는, Program Explorer에 있는 컨텍스트 이름을 더블클릭합니다.

변수의 현재 값을 보기 위해서는, 변수이름을 더블클릭합니다. 변수의 종류, 형태, 데이터에 대한 정보를 표시하는 대화상자가 나타납니다.

팁

VEE를 시작할 때 매번 사용하는 Program Explorer의 디폴트 값을 설정하기 위해서는 Default Preferences를 사용합니다. Program Explorer를 항상 열거나 닫기 위해서는, 원하는 상태를 설정하기 위하여 Program Explorer 툴바 버튼을 클릭합니다. 그 상태에서 Default Preferences 대화상자를 열고 Save 버튼을 클릭하여 저장합니다.

Program Explorer 버튼

관련정보

Default Preferences 대화상자


Minimap 메뉴항목

Minimap 윈도우를 ON 또는 OFF하는 View 메뉴항목. Minimap은 디테일뷰의 전체 내용을 작은 윈도우에 표시하는 기능입니다. 이 미니맵에는 빨간색 사각형이 제공되고, 미니맵에서 이 빨간색 사각형으로 선택한 부분이 디테일뷰의 전체 화면에 표시됩니다. 빨간색 사각형 박스는 전체 디테일뷰에서 현재 보이는 부분의 상대적인 위치를 나타냅니다.

사용법

Minimap은 전체 디테일뷰를 표시하고, 미니맵 안에서 빨간색 사각형으로 선택한 부분을 디테일뷰에 표시합니다.

Minimap을 사용하면, 디테일뷰의 특정 위치로 빠르게 이동할 수 있습니다. 디테일뷰의 특정 위치로 이동하기 위해서는,

  • Minimap에서 해당위치를 클릭,

- 또는 -

  • Minimap에서 적색 사각형 박스를 해당위치로 드래그.

컨텍스트 메뉴

Print... -- 전체 디테일뷰의 비트맵을 인쇄합니다. Minimap 윈도우는 비트맵의 인쇄 크기로 변경하기 위하여 재조정할 수 있습니다.

Print Auto Fit ... -- 전체 디테일뷰의 비트맵을 한 페이지 크기로 자동으로 조정하여, 비트맵을 인쇄합니다. 조정된 비트맵의 넓이는 페이지의 넓이이고, 비트맵의 높이는 넓이에 비례합니다.

Copy To Clipboard ... -- 전체 디테일뷰의 비트맵을 클립보드로 복사합니다.

Send By Email ... --- 전체 디테일뷰의 비트맵을 첨부하여 이메일로 전송합니다.

Save To File ... -- 전체 디테일뷰의 비트맵을 비트맵 파일로 저장합니다.

주의사항

Minimap은 디테일뷰에서 만 사용할 수 있습니다. 이것은 패널뷰에 또는 실행시에는 자동으로 숨겨집니다.

사용예

단축키

툴바에 있는 [image] 버튼을 누릅니다.

오브젝트 위치

View [image] Minimap

관련정보

윈도우를 선택하고 작업영역 스크롤하기


온라인 도움말 사용법

다음은 VEE 프로그램 도움말 사용방법입니다.

1 Help [image] Welcome 메뉴에서 제공하는 멀티미디어 튜토리얼 (Multimedia Tutorial)을 실행합니다. 튜토리얼은 VEE의 여러 가지 주요 기능을 시연하면서, 프로그램 작성, 실행, 설명에 대한 스크린 데모를 제공합니다. 또한 VEE를 효과적으로 사용할 수 있는 핵심 개념을 설명합니다.

2 VEE의 사용법에 익숙해지면 오브젝트 메뉴의 도움말(Help) 항목을 살펴봅니다. 사용자는 오브젝트들이 동작하는 방법을 이해할 때까지 실습해 볼 수 있습니다. 오브젝트에 관한 자세한 정보는 오브젝트 메뉴에서 가장 명확하게 제공 받을 수 있습니다.

3 도움말의 목차, 색인, 검색을 사용하고자 할 경우는 VEE의 메뉴 바에서 도움말을 실행합니다.

주의사항

도움말을 사용하는 방법에 대한 도움말은 도움말을 참조하십시오.

도움말 기능 사용

온라인 도움말은 다음의 정보를 제공합니다:

• 메뉴 항목 및 단축키

• 계측기 드라이버 정보

• 자주 실행되는 작업 및 예제 프로그램

• VEE 용어 정의

• 도움말 기능 사용법

• VEE 버전

키워드 인덱스, 관련된 주제에 관한 하이퍼링크 또는 검색을 사용하여 탐색할 수 있습니다. VEE 프로그램을 개발하면서 사용할 수 있는 도움말을 제공합니다.

주의사항

프로그램을 개발하고 디버깅하는데 유용한 라인 프로브 등의 기능도 제공합니다. 자세한 내용은 "Debugging Programs in Agilent VEE"를 참조하십시오.

오브젝트의 도움말 디스플레이

오브젝트 메뉴 버튼을 클릭하고 도움말(Help)을 클릭하면 오브젝트의 도움말을 사용할 수 있습니다.

• Flow [image] Repeat [image] For Count 를 선택하여 For Count 오브젝트를 생성합니다. 오브젝트 메뉴의 도움말(Help)를 클릭하면 For Count에 대한 도움말을 참조할 수 있습니다.

• Device [image] Formula를 선택하여 Formula 오브젝트를 생성합니다. 오브젝트의 메뉴를 클릭하고 Help를 선택합니다. Formula 오브젝트에 대한 도움말이 나타납니다.

• Device [image] Function & Object Browser를 선택합니다. 임의의 조합을 선택하고 Help를 클릭합니다. 선택된 오브젝트에 대한 도움말이 나타납니다.

오브젝트의 메뉴 위치 찾기

오브젝트의 메뉴 위치를 찾고, 오브젝트에 대한 정보를 디스플레이 하기 위하여 Help [image] Contents and Index를 선택하고 색인 (Index) 탭을 클릭합니다. 오브젝트의 이름을 입력하고 항목보기(Display)를 클릭합니다.

예를 들어, Collector를 찾으려면, Help [image] Contents and Index를 선택하고 색인(Index)탭을 클릭한 후, Collector를 입력하고, 항목보기(Display)를 클릭합니다.

기타 도움말 기능 연습

• 오브젝트를 삭제하는 단축키 조사

Help [image] Contents and Index [image] How Do I... Use the Keyboard Shortcuts [image] Editing Programs [image] To Cut an Object or Text.

• “terminal” 단어 조사

Help [image] Contents [image] Reference [image] Glossary [image] Terminal.

• VEE 버전 조사

Select Help [image] About VEE Pro.

• 현재 버전의 Agilent VEE에 새로 추가된 기능

Select Help [image] Contents and Index [image] What’s New in Agilent VEE Pro.


Agilent VEE 프로그램 문서화

File [image] Save Documentation...를 실행하여 프로그램을 문서화 할 수 있습니다. VEE의 문서에는 모든 오브젝트의 핵심 설정사항, 디폴트 및 사용자 이름, 해설 및 네스팅 등을 나열합니다. 예를 들어, UserObject 내의 오브젝트들은 메인 VEE 프로그램으로부터 한 단계 둘러 싸여져 있고, 이 단계는 숫자로 표시됩니다.

또한 각각의 오브젝트들을 Description을 사용하여 문서화 할 수 있습니다.

Description 대화상자를 이용한 오브젝트 문서화,

문서 자동 생성


Description 대화상자를 이용한 오브젝트 문서화

모든 오브젝트는 오브젝트 메뉴에 Description 항목(특정한 오브젝트의 문서자료를 입력할 수 있는 대화상자를 제공합니다.)을 가지고 있습니다. 이 섹션에서 사용자는 Description 대화상자를 추가할 것입니다.

1 Random.vee 프로그램을 엽니다.

2 그림과 같이 Description의 모든 템플릿 정보를 제거합니다.

3 Description 대화상자는 RTF(Rich Text Format) 입니다. RTF 포맷은 RTF 파일을 생성하는 모든 프로그램에서 이 파일을 사용할 수 있습니다.

4 메인 윈도우의 오브젝트 메뉴에서 Description을 클릭하고 대화 상자에 ("Random.vee 프로그램은 랜덤 넘버를 생성합니다.”)를 입력하고 OK 버튼을 클릭합니다.

주의사항

Description 대화상자의 엔트리는 오브젝트 메뉴를 통하여 접근하지 않고서는 사용자에게 표시되지 않으며, 대화상자에 파일을 삽입할 수 있습니다.

관련정보

문서 자동 생성


문서 자동 생성

프로그램의 문서화 파일은 다음과 같이 생성합니다:

1 Random.vee. 파일을 엽니다. File [image] Save Documentation...을 클릭하고 *.txt 접미사를 가진 파일이름을 입력합니다. (예를 들어, Random.txt) 이 파일은 디폴트로 프로그램(Random.vee)이 저장되어 있는 폴더 C:\My Documents\VEE Programs 에 저장됩니다.

2 파일을 보거나 인쇄하려면 텍스트 에디터로 이 파일을 엽니다. 다음 그림은 Windows에 내장된 메모장으로 문서 파일을 연 상태입니다.

첫 번째 그림은 파일의 정보, 수정날짜, 시스템 I/O 설정 사항을 나타내는 파일의 시작부분입니다.

문서 파일의 시작 부분은 다음과 같습니다.

Source file:"C:\\ My Documents \\ VEE Programs \\ Random.vee

Date documented: Wed Sep 27 10:31:08 2006

VEE revision: 8.0

Execution Mode: VEE 8

Convert Infinity on Binary Read: no

I/O Configuration

My Configuration (C:\vee.io)

문서 파일의 중간 부분은 다음과 같습니다.

M: Main

Device Type : Main

customHelpMenuName :

customHelpMenuDescription:

customHelpMenuHelpLink :

Declared Name : Main

Declared Scope : Local to Context

Context is secured : off

TrigMode : Degrees

PopupPanelTitle : Untitled

PopupMoveable : on

Delete Globals at Prerun : off

위쪽 그림의 내용은, VEE 오브젝트들의 설정사항입니다. 각 오브젝트 이름 앞의 숫자는 오브젝트의 위치 및 추가된 순서를 나타내고 있습니다. 예를 들어 메인의 첫 번째 오브젝트는 M1으로 등록되어 있습니다. 아래쪽 그림은 문서 파일의 나머지 내용입니다.

문서 파일의 나머지 부분은 다음과 같습니다.

M.0: Main/Int32

Device Type : Constant

Output pin 1 : Int32

customHelpMenuName :

customHelpMenuDescription:

customHelpMenuHelpLink :

Declared Name :

Declared Scope : Local to Context

Wait For Input : off

AutoExecute : off

InitializeAtPrerun : off

InitializeAtActivate : off

InitialValue : 0

EnableStepping : off

DetentSize : 1

DataShape : Scalar

ArraySize : 10

ArraySizeFixed : off

ShowArrayIndices : on

EnableEditing : on

Int32 Value : 0

M.1: Main/Int32

Device Type : Constant

Output pin 1 : Int32

customHelpMenuName :

customHelpMenuDescription:

customHelpMenuHelpLink :

Declared Name :

Declared Scope : Local to Context

Wait For Input : off

AutoExecute : off

InitializeAtPrerun : off

InitializeAtActivate : off

InitialValue : 0

EnableStepping : off

DetentSize : 1

DataShape : Scalar

ArraySize : 10

ArraySizeFixed : off

ShowArrayIndices : on

EnableEditing : on

Int32 Value : 1

M.2: Main/random(low,high)

Device Type : Formula

Input pin 1 : low (Any, Any)

Input pin 2 : high (Any, Any)

Output pin 1 : Result

customHelpMenuName :

customHelpMenuDescription:

customHelpMenuHelpLink :

Declared Name :

Declared Scope : Local to Context

Formula : random(low,high)

M.3: Main/AlphaNumeric

Device Type : AlphaNumeric

Input pin 1 : Data (Any, Any)

customHelpMenuName :

customHelpMenuDescription:

customHelpMenuHelpLink :

Declared Name :

Declared Scope : Local to Context

ClearAtPrerun : on

ClearAtActivate : on

ShowArrayIndices : on

M.4: Main/Note Pad

Device Type : Note Pad

customHelpMenuName :

customHelpMenuDescription:

customHelpMenuHelpLink :

Declared Name :

Declared Scope : Local to Context

Note Contents : {\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Times New Roman;}}\r\n{\\colortbl ;\\red0\\green0\\blue0;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs24 This program , Random, generates a real number between 0 및 1, then displays the results.\\par\r\n}\r\n

주의사항

Save Documentation 명령을 실행 후, File => Print Program 명령을 실행하면서 오브젝트를 식별하는 번호를 부여하면, 텍스트 문서는 프린터 출력과 매칭시킬 수 있습니다.

관련정보

Description 대화상자를 이용한 오브젝트 문서화


Agilent VEE 프로그램 병합하기

현재 작성하고 있는 시스템에 이미 작성되어 있는 프로그램을 병합하여 손쉽게 활용할 수 있습니다.

File [image] Merge... 명령어를 실행하여 임의의 파일을 선택하면 현재 작성중인 작업창으로 기존 오브젝트나 프로그램이 병합됩니다. 디폴트로, File [image] Merge…는 VEE에서 제공되는 프로그램의 디렉토리를 디스플레이 합니다. 이것은 Bar Chart Display 및 사용자 입력(ID 번호 같은)을 위한 키패드 입력창 같은 일반적으로 필요한 프로그램을 포함합니다.

관련정보:

실습 9-4: Bar Chart Display 프로그램 병합


Library 오브젝트 사용하기

VEE는 사용자의 프로그램으로 “병합”할 수 있는 오브젝트 라이브러리를 제공합니다. 라이브러리 오브젝트는 VEE 설치시 다음의 경로에 저장됩니다:

C:\Program Files\Agilent\VEE Pro 8.0\Lib\

대부분의 라이브러리 오브젝트들은 개별의 오브젝트들을 은익화하는 UserObject입니다. 사용자는 UserObject들을 생성하고 다음 위치에 저장하여 라이브러리도 사용할 수 있습니다. :

C:\Program Files\Agilent\VEE Pro 8.0\Lib

Formula 오브젝트

사용자의 프로그램에도 Formula 오브젝트를 병합할 수 있습니다. 이러한 오브젝트들은 degrees를 radians로 변환하는 것과 같은 유용한 변환함수를 수행합니다.

윈도우 시스템에서 이러한 파일들은 아래 경로에 저장되어 있습니다:

C:\Program Files\Agilent\VEE Pro 8.0\Lib\convert\


키보드 단축키 사용

공통적인 VEE 작업을 수행하기 위하여 키보드 단축키를 사용할 수 있습니다. 키보드 단축키는 대소문자를 구분하지 않습니다.

파일 컨트롤

작업영역 지우기
VEE 프로그램 파일 열기
VEE 프로그램을 파일에 저장하기
VEE 프로그램을 새로운 파일에 저장하기
VEE 윈도우 인쇄 또는 복사하기
VEE에서 빠져 나오기

프로그램 편집

VEE 메뉴 네비게이션 하기
Function & Object Browser 불러오기
오브젝트 선택하기
Edit 메뉴 팝업하여 표시하기
오브젝트 메뉴 팝업하여 표시하기
Formula 오브젝트의 표현식 편집하기
트랜잭션 편집하기
텍스트 커서 이동하기
입력항목에서 편집 취소하기
대화상자에서 편집 취소하기
오브젝트나 텍스트를 복사 또는 클론하기
오브젝트 또는 텍스트 잘라내기
오브젝트에 데이터 입력터미날 추가하기
오브젝트에 데이터 출력터미날 추가하기
오브젝트의 터미날 삭제하기
연결선 삭제하기
VEE 윈도우 리프레쉬 하기

프로그램 네비게이션

메인 윈도우 보기
윈도우를 선택하고 작업영역 스크롤하기
Find 대화상자 나타내기
Find Results대화상자 나타내기
사용자 인터페이스 패널 네비게이션 하기 패널뷰에서 스크롤바 인에이블하기

프로그램 디버깅

VEE 프로그램을 실행, 일시정지, 단계별실행 또는 다시실행 하기
연결선에 있는 데이터 보기
오브젝트의 연결상태 보기
브레이크포인트 설정 토글하기
오브젝트나 대화상자에서 도움말 불러오기


작업영역 지우기

CTRL+N을 누릅니다. 현재의 프로그램에 변경된 내용을 저장할건지를 물어보는 대화상자가 나타납니다. (툴바의 New버튼이나, 메뉴바의 File [image] New의 단축키)


VEE 프로그램 파일 열기

CTRL+O를 누릅니다. 열고자 하는 파일이름을 선택하는 대화상자가 나타납니다. (툴바에 있는 open 버튼 및 File [image] Open의 단축키).


VEE 프로그램을 파일에 저장하기

CTRL+S를 누릅니다. 프로그램은 현재의 파일에 다시 저장되거나 파일이름을 입력하도록 요청됩니다(툴바에 있는 Save 버튼 및 File [image] Save의 단축키).

주의

저장된 파일은 낮은 버전과는 호환되지 않습니다. 5 버전 파일을 VEE 6 버전으로 불러와 저장하면 더 이상 VEE 5 버전과는 호환하지 않습니다.


VEE 프로그램을 새로운 파일에 저장하기

CTRL+W를 누릅니다. 새로운 파일이름을 입력하도록 요청을 받게 되며, 프로그램은 입력한 파일이름으로 저장됩니다(File [image] Save As의 단축키).

주의

저장된 파일은 낮은 버전과는 호환되지 않습니다. 5 버전 파일을 VEE 6 버전으로 불러와 저장하면 더 이상 VEE 5 버전과는 호환하지 않습니다.


VEE 윈도우 인쇄 또는 복사하기

VEE 윈도우를 MS Windows 클립보드로 복사하기 위해서는, VEE 윈도우가 활성화된 상태에서 Alt+Print Screen을 누릅니다. (툴바에 있는 Print Screen 버튼 및 메뉴 File [image] Print Screen의 단축키). 클립보드에서, VEE 윈도우를 클립보드를 사용할 수 있는 다른 윈도우 어플리케이션으로 붙여 넣을 수 있습니다.

이들 단축키를 이용하여 대화상자가 표시되어 있을때 VEE 스크린을 캡쳐할 수 있습니다.


VEE에서 빠져 나오기

VEE에서 빠져 나오기 위하여 CTRL+E (File [image] Exit의 단축키)를 누릅니다..


오브젝트에 데이터 입력터미날 추가하기

입력터미날이 있는 영역에 마우스 커서를 놓고 Ctrl+A를 누르면 커서가 있는 위치에 또 다른 입력터미날이 추가로 생성됩니다. (object menu [image] Add Terminal [image] Data Input의 단축키). 오브젝트내의 입력영역에서 수정을 하고 있었다면, 마우스의 왼쪽 버튼을 클릭하고 나서 Ctrl+A를 누르십시오.

Ctrl+A를 이용하여 터미날을 추가하기 위해서는 오브젝트 속성창의 Show Terminals 항목이 True로 선택되어 있어야 하며, 오브젝트의 출력터미날 영역 위에 마우스 커서가 있어야 합니다.


오브젝트에 데이터 출력터미날 추가하기

데이터 출력터미날이 있는 영역에 마우스 커서를 놓고 CTRL+A를 눌러 마우스 커서 위치에 데이터 출력터미날을 추가합니다. (오브젝트 메뉴 [image] Add Terminal [image] Data Output의 단축키).오브젝트내의 입력영역에서 수정을 하고 있었다면, 마우스의 왼쪽 버튼을 클릭하고 나서 Ctrl+A를 누르십시오.

Ctrl+A를 이용하여 터미날을 추가하기 위해서는 오브젝트 속성창의 Show Terminals 항목이 True로 선택되어 있어야 하며, 오브젝트의 출력터미날 영역 위에 마우스 커서가 있어야 합니다.


입력항목에서 편집 취소하기

입력항목에서 편집을 취소하기 위해서는 Esc키를 누르십시오.


대화상자에서 편집 취소하기

대화상자에서 편집을 취소하기 위해서는 Esc키를 누르십시오. (Cancel 버튼을 누르는 것과 동일)


오브젝트나 텍스트를 복사 또는 클론하기

복사하고자 하는 오브젝트나 텍스트를 선택하고, CTRL+C를 누릅니다. 이것은 오브젝트나 텍스트를 cut-copy-paste버퍼에 저장하는 것입니다. (Edit [image] Copy의 단축키는 툴바에 있는 Copy 버튼입니다.) 주의: 텍스트는 툴바 버튼이나 메뉴선택으로는 복사가 안되고, CTRL+C로만 복사됩니다.

복사된 오브젝트를 작업영역에 붙여넣기 위해서는 CTRL+V를 사용합니다. (Edit [image] Paste의 단축키는 툴바에 있는 Paste 버튼입니다.) 오브젝트를 배치하고자 하는 위치에 마우스를 놓고 클릭하십시오. 만약 라인으로 연결된 오브젝트들이 있다면 연결된 상태로 복사됩니다. 주의: 텍스트는 툴바 버튼이나 메뉴선택으로는 붙여 넣을 수 없고, CTRL+V로만 붙여 넣을 수 있습니다.

선택한 오브젝트를 클론하기 위해서는 CTRL키를 누른 상태에서 마우스 왼쪽 버튼을 클릭하고 드래그하여 복제된 오브젝트를 새로운 위치에 배치합니다.

한 작업영역에서 오브젝트나 텍스트를 복사하여, 다른 작업영역에 붙여 넣을 수도 있습니다. 또한, 윈도우에서 VEE 인스턴스를 복사하여 다른 VEE 인스턴스로 붙여 넣을 수 있습니다. 오브젝트와 텍스트는 클립보드를 사용하는 다른 윈도우 어플리케이션으로 복사할 수도 있습니다.


오브젝트 또는 텍스트 잘라내기

잘라내고자 하는 오브젝트나 텍스트를 선택하고, CTRL+X를 누릅니다. 이것은 오브젝트나 텍스트를 cut-copy-paste 버퍼로 옮깁니다. (툴바의 Cut 버튼 및 메뉴 Edit [image] Cut의 단축키). 주의: 텍스트는 CTRL+C 만을 사용하여 잘라낼 수 있고, 툴바 버튼이나 메뉴 선택항목으로는 잘라낼 수 없습니다.

실수로 잘라낸 오브젝트는 CTRL+V를 사용하여 재 배치할 수 있습니다. (툴바의 Paste 버튼 및 메뉴 Edit [image] Paste의 단축키). 오브젝트를 배치하고자 하는 위치에서 마우스를 클릭합니다. 오브젝트와 연결선들이 복원됩니다. 메인메뉴에서 Edit > Undo를 사용하여 잘라내기를 취소할 수도 있습니다. 주의: 텍스트는 CTRL+C만을 사용하여 붙여 넣을 수 있고, 툴바 버튼이나 메뉴 선택항목으로는 붙여 넣을 수 없습니다.

하나의 작업영역에서 잘라낸 오브젝트와 텍스트는 다른 작업영역으로 붙여 넣을 수 있습니다. 하나의 VEE 인스턴스에서 잘라낸 오브젝트와 텍스트는 다른 VEE 인스턴스로 붙여 넣을 수도 있습니다. 오브젝트와 텍스트는 클립보드를 사용할 수 있는 다른 윈도우 어플리케이션으로 붙여 넣을 수 있습니다.


연결선 삭제하기

Shift+CTRL를 누른 상태에서, 삭제 하고자 하는 연결선 위나 근처에서 마우스 왼쪽 버튼을 클릭합니다. (툴바에 있는 Delete Line 버튼과 메뉴바의 Edit [image] Delete Line의 단축키). 이 실행에 대해 Undo를 사용할 수 있습니다.


오브젝트의 터미날 삭제하기

삭제 하고자 하는 터미날위에 마우스 포인터를 놓고 CTRL+D를 누릅니다. (단축키: 오브젝트 메뉴 [image] Delete Terminal [image] Input 또는 오브젝트 메뉴 [image] Delete Terminal [image] Output.) 오브젝트의 필드를 방금 수정했다면, 먼저 마우스 왼쪽 버튼을 클릭하고 나서 CTRL+D를 눌러야 합니다.

CTRL+D를 사용하여 터미날을 삭제하기 위해서는, 오브젝트의 속성창에 있는 Show Terminals 항목이 활성화(True) 되어야 하고, 마우스 포인터를 삭제하고자 하는 터미날 위에 놓아야 합니다.

CTRL+Z를 눌러서 삭제를 취소할 수도 있습니다.


파일 I/O 트랜잭션 편집하기

Formula 오브젝트의 표현식 편집하기

다음은 Formula 오브젝트에 입력한 표현식을 편집하는 방법입니다. 일반적으로 RTF 문서에서 편집할 수 있는 내용이면, Formula 오브젝트에서도 입력할 수 있습니다.

캐리지 리턴을 삽입하기 위하여 Enter키를 누르면, 커서가 다음 라인으로 이동합니다. 라인의 중간에서 Enter키를 누르면, 라인을 자르고 커서 다음의 문자들을 다음 라인에 삽입합니다. 라인의 시작부분에서 Enter키를 누르면 라인 위에 빈 라인을 삽입합니다.

라인의 오른쪽 끝에서 Delete키를 누르면, 다음 라인을 현재의 라인으로 합칩니다. 현재의 커서 위치를 유지하고 있습니다.

라인의 왼쪽 끝에서 Backspace키를 누르면, 현재의 라인이 위에 있는 라인으로 합쳐집니다. 현재의 커서 위치를 유지하고 있습니다.

위/아래 화살표는 커서를 위로 또는 아래로 이동시키고, 커서의 수평위치는 유지됩니다. 커서가 마지막 라인에 있을 때는 아래 화살표를 눌러 새로운 라인을 추가합니다. 좌/우 화살표는 커서를 왼쪽 또는 오른쪽으로 이동시킵니다.

라인의 왼쪽 끝에서, Shift End키를 누르면 라인 전체를 하이라이트합니다. 라인의 오른쪽 끝에서, Shift Home키를 누르면 라인 전체를 하이라이트합니다.

Pageup과 Pagedown키은 일반적인 페이지 앞으로 이동, 페이지 뒤로 이동기능입니다.

단어를 더블클릭하면 단어를 하이라이트합니다. 라인에서 세 번 클릭하면 전체 라인을 하이라이트합니다.

관련정보

코드 자동완성기능 사용하기, 코드 인싸이트 기능


트랜잭션 편집하기

트랜잭션을 제공하는 오브젝트(예를 들어, Sequencer 또는 To File 오브젝트)에 포커싱이 되었을 때, 다음의 단축키를 사용할 수 있습니다:

CTRL+X는 선택한 트랜잭션을 잘라내어 "cut-and-paste" 버퍼에 저장합니다. (오브젝트 메뉴 [image] Cut Trans)

CTRL+V는 "cut-and-paste"버퍼에 저장된 트랜잭션을 마우스 포인터가 있는 위치에 붙여 넣습니다. (오브젝트 메뉴 [image] Paste Trans).

CTRL+C는 선택한 트랜잭션을 "cut-and-paste"버퍼에 저장합니다. (오브젝트 메뉴 [image] Copy Trans).

Delete는 선택한 트랜잭션을 리스트에서 삭제합니다. (오브젝트 메뉴 [image] Delete Trans).

Insert는 선택한 트랜잭션 위에 트랜잭션을 삽입합니다. (오브젝트 메뉴 [image] Insert Trans).

CTRL+Z 는 마지막 실행동작을 취소합니다.

CTRL+Y 는 마지막 실행동작을 재실행합니다.

CTRL+Up은 선택한 트랜잭션을 위로 이동합니다. (오브젝트 메뉴 [image] Move Trans Up).

CTRL+Down 은 선택한 트랜잭션을 아래로 이동합니다. (오브젝트 메뉴 [image] Move Trans Down).

Shift+Up/Down은 복수의 트랜잭션을 선택합니다.

주의사항

이동(Move) 명령은 단일 트랜잭션에서만 지원됩니다.

트랜잭션에 대한 자세한 정보는, Help 메뉴 아래에 있는 Tell me about... I/O Transactions in Contents and Index를 참조하십시오.


텍스트 커서 이동하기

문자와 숫자 입력창(예, Note Pad 오브젝트)에서, 커서를 화살표 방향으로 이동하기 위하여 화살표 키(위 화살표, 아래 화살표, 왼쪽 화살표, 오른쪽 화살표)를 사용합니다.


VEE 메뉴 네비게이션 하기

키보드 메뉴 엑셀러레이터를 사용하여 VEE 메뉴를 네비게이션할 수 있습니다. 각 메뉴 항목은 Alt 키와 결합하여 액셀러레이터처럼 사용하는 밑줄 친 문자를 가집니다. 키보드 액셀러레이터 문자는 대소문자를 구분하여 표시됩니다. 밑줄 친 문자가 대문자일지라도, 소문자를 액셀러레이터로 사용할 수 있습니다. 예제는 다음과 같습니다.

Device 메뉴에서는 D가 밑줄이 쳐져 있고 Data 메뉴에서는 t가 밑줄이 쳐져 있습니다;

PC 에서 Device 메뉴를 선택하기 위해서는 Alt+d를 누르고, Data 메뉴를 선택하기 위해서는 Alt+t를 누릅니다.

각 서브메뉴는 메뉴에서 아래로 네비게이션하기 위해 사용할 수 있는 각각의 액셀러레이터를 가집니다. 예를 들어, Data [image] Continuous [image] Real64 Slider를 선택하기 위해서:

PC에서, Alt+t를 누르고, Alt+i를 누르고, Alt+r를 누릅니다.


Function & Object Browser 불러오기

CTRL+H 또는 Backspace키(툴바에 있는 fx 버튼 및 메뉴 Device [image] Function & Object Browser의 단축키)를 누릅니다.


Edit 메뉴 팝업하여 표시하기

메인 윈도우의 작업영역에 있는 빈 공간에 포인터를 놓고 마우스 오른쪽 버튼을 누릅니다. (UserObject 및 UserFunction의 작업영역에서도 사용합니다.)


오브젝트 메뉴 팝업하여 표시하기

오브젝트에 포인터를 놓고 마우스 오른쪽 버튼을 누릅니다.


VEE 윈도우 리프레쉬 하기

VEE 윈도우를 리프레쉬 하기 위해서는 CTRL+Q를 누릅니다.


오브젝트 선택하기

하나의 오브젝트를 선택하기 위해서는, 오브젝트에 포인터를 놓고 마우스 왼쪽 버튼을 클릭합니다. 선택된 오브젝트는 그림자로 하이라이트 됩니다.

오브젝트를 선택하고 선택을 해제 하기 위해서는, CTRL키를 누른 상태에서 오브젝트에 포인터를 놓고 마우스 왼쪽 버튼을 클릭합니다. 오브젝트가 선택되지 않은 경우에는 오브젝트가 선택됩니다. 오브젝트가 선택된 경우에는 오브젝트의 선택이 해제 됩니다.

복수의 오브젝트를 선택하는 방법은 3가지가 있습니다.

  • CTRL키를 누른 상태에서, 선택하고자 하는 각각의 오브젝트에 포인터를 놓고 마우스 왼쪽 버튼을 클릭합니다.

  • CTRL키를 누른 상태에서 마우스 왼쪽 버튼을 클릭한 채로 드래그하여 선택하고자 하는 오브젝트를 둘러싸는 박스를 만듭니다. 오브젝트의 선택은 토글로 동작합니다.

  • 현재의 오브젝트 선택 여부와 상관없이 작업영역(메인 윈도우, UserObject, 또는 UserFunction)에 있는 모든 오브젝트를 선택하기 위해서는 CTRL+A를 누릅니다. (메뉴 [image] Select All의 단축키)


메인 윈도우 보기

CTRL+M (View [image] Main의 단축키)을 누릅니다.


윈도우를 선택하고 작업영역 스크롤하기

VEE 작업공간에 열려있는 윈도우들을 이동하기 위해서는:

열려있는 윈도우들 사이에서 맨 위에 열려있는 윈도우를 아래로 이동시키기 위해서는CTRL+Tab 또는 CTRL +F6를 누릅니다.

열려있는 윈도우들 사이에서 맨 위에 열려있는 윈도우를 아래로 이동시키기 위해서는CTRL+Tab 또는 CTRL +F6를 누릅니다.

포인터가 메인 윈도우, UserObject 또는 UserFunction 윈도우의 작업영역내에 위치한 경우:

작업영역을 화살표 방향으로 스크롤하기 위해서는 Press Shift+up-화살표, Shift+down- 화살표, Shift+left- 화살표, 또는 Shift+right- 화살표를 누릅니다.

작업영역을 한 화면만큼 아래로 스크롤하기 위해서는 Page Down을 누릅니다.

작업영역을 한 화면만큼 위로 스크롤하기 위해서는 Page Up을 누릅니다.

작업영역을 한 화면만큼 왼쪽으로 스크롤하기 위해서는 Shift+Page Down을 누릅니다.

작업영역을 한 화면만큼 오른쪽으로 스크롤하기 위해서는 Shift+Page Up을 누릅니다.

프로그램의 좌측 상단을 작업영역의 좌측 상단으로 이동하기 위해서는 Home을 누릅니다.

프로그램의 우측 하단을 작업영역의 우측 하단으로 이동하기 위해서는 Shift+Home을 누릅니다.


Find 대화상자 나타내기

CTRL+F (툴바에 있는 Find 버튼과 메뉴 Edit [image] Find의 단축키)를 누릅니다.


Find Results대화상자 나타내기

CTRL+R(툴바에 있는 Find Results버튼과 메뉴 Edit [image] Find Results의 단축키)를 누릅니다. 이 명령은 Find 실행을 완료한 후에 사용할 수 있습니다.


사용자 인터페이스 패널 네비게이션 하기

VEE 프로그램에서 사용자 인터페이스 패널을 생성한 경우에는, 다음 키를 이용하여 패널을 네비게이션할 수 있습니다:

사용자 인터페이스 패널에 있는 하나의 필드에서 다음 필드로 이동하기 위해서 Tab 및 Shift+Tab을 누릅니다. Tab 키는 필드에서 필드로 포커싱을 앞으로 이동하고 Shift+Tab 키는 포커싱을 뒤로 이동합니다. 입력 필드가 포커싱(역상으로 하이라이트 되는 것으로 지정) 되었을 때, 이 필드를 편집할 수 있습니다. 버튼이 포커싱(대시 윤곽선으로 지정) 되면, 다음에 설명한 바와 같이 버튼을 “누르기” 할 수 있습니다.

현재 포커싱된 버튼을 “누르기” 위해서는 스페이스 바를 누릅니다.

현재 포커싱된 입력 필드를 편집하기 위해서는 적절한 문자나 숫자 키를 사용합니다. 편집을 완료하기 위해서는 Enter 또는 Return 키를 누르고, 편집에서 빠져 나오기 위해서는 Esc 키를 누릅니다.

프로그래머에 의해 키가 지정된 경우에는, 사용자 인터페이스 패널에서 디폴트 버튼을 “누르기” 위해서 Enter 또는 Return 키를 누릅니다.

사용자 인터페이스 패널뷰와 사용법에 대한 자세한 정보는 VEE Help 아래에 있는 How Do I... Build an Operator Interface를 참조하십시오.


패널뷰에서 스크롤바 인에이블하기

속성창에서, 패널뷰의 스크롤바를 인에이블하기 위하여 ScrollBarsEnabled을 True로 설정합니다. ScrollBarsEnabled의 디폴트 값은 False입니다. ScrollBarsEnabled은 디테일뷰에서는 사용할 수 없습니다.

관련정보

윈도우를 선택하고 작업 영역 스크롤하기, Minimap, 사용자 인터페이스 패널 네비게이션 하기


VEE 프로그램을 실행, 일시정지, 단계별실행 또는 다시실행 하기

VEE 프로그램을 시작하기 위해서는 CTRL+G (또는 F5)를 누릅니다 (툴바에 있는 Run 버튼 그리고 메뉴 Debug [image] Run/Resume의 단축키).

VEE 프로그램의 실행을 일시 정지하기 위해서는 CTRL+P를 누릅니다 (툴바에 있는 Pause 버튼 그리고 메뉴 Debug [image] Pause의 단축키). (프로그램을 중지하기 위해서는, 툴바에 있는 Stop 버튼을 클릭합니다.)

일시 정지된 VEE 프로그램을 단계별로 실행하기 위해서는 F10키를 누릅니다 (툴바에 있는 Step Over 버튼 그리고 메뉴 Debug [image] Step Over의 단축키).

일시 정지된 VEE 프로그램을 단계별로 실행하기 위해서는 CTRL+T (또는 F11)를 누릅니다 (툴바에 있는 Step Into 버튼 그리고 메뉴 Debug [image] Step Into의 단축키).

일시 정지된 VEE 프로그램을 단계별로 실행하기 위해서는 Shift-F11을 누릅니다 (툴바에 있는 Step Out 버튼 그리고 메뉴 Debug [image] Step Out의 단축키).

일시 정지된 VEE 프로그램을 취소하기 위해서는 CTRL+G를 누릅니다 (툴바에 있는Resume 버튼 그리고 메뉴 Debug [image] Run/Resume의 단축키).


연결선에 있는 데이터 보기

보고자 하는 연결선에 포인터를 놓고 마우스 왼쪽 버튼을 클릭합니다. (Debug [image] Line Probe의 단축키). 연결선에 있는 최근의 데이터 컨테이너에 대한 정보를 디스플레이 합니다.


오브젝트의 연결상태 보기

Shift 키를 누른 상태에서, 관찰하고자 하는 오브젝트 위에 마우스 포인터를 놓고 마우스 왼쪽 버튼을 클릭합니다 (Debug [image] Object Probe의 단축키). 관찰하는 오브젝트에 연결된 모든 연결선과 오브젝트가 하이라이트 됩니다.


브레이크포인트 설정 토글하기

하나 이상의 오브젝트를 선택하고, CTRL+B를 누릅니다 (툴바에 있는 Toggle Breakpoint 버튼 및 메뉴 Debug Toggle Breakpoint의 단축키).

선택된 오브젝트에 대한 브레이크포인트는 반대 상태로 전환됩니다.


오브젝트나 대화상자에서 도움말 불러오기

오브젝트가 선택 되었을 때, 오브젝트에 대한 도움말을 열기 위하여 F1키를 누릅니다. (원래 경로: 오브젝트 메뉴 [image] Help).몇개의 오브젝트가 선택 되었을 때는, 가장 먼저 선택된 오브젝트에 대한 도움말이 열립니다. 오브젝트가 선택 되지 않았을 때는, 메인 윈도우의 도움말이 열립니다:

Default Preferences 같은 대화상자가 열려 있을 때, F1키를 누르면 대화상자에 대한 도움말이 열립니다. (Help 버튼을 누르는 것에 대한 단축키)


프린터 설정 변경하기

VEE에서 프로그램을 인쇄할 때 설정되어 있는 디폴트 값을 변경할 수 있습니다.

메뉴바의 File >Default Preferences를 선택하여 Default Preferences 대화상자를 디스플레이하고, Printing 탭을 클릭합니다.

설정된 내용을 변경하고, 변경된 값을 어떻게 저장할건지를 선택합니다.

a. 변경된 값을 새로운 디폴트 값으로 저장하기 위해서는 Save를 클릭하십시오. 이것은 vee.rc 파일에 새로운 값을 저장합니다. 이 설정은 이후 VEE를 사용할 때 디폴트 값이 됩니다. (다시 설정값을 변경할 때까지 유효함)

b. 현재 사용중인 VEE에 새로운 설정값을 사용하기 위해서는 OK 버튼을 클릭하십시오. (File [image] New, Open 또는 Exit을 선택할 때까지 유효함)

c. 디폴트 값으로 되돌아 가기 위해서는 Reset을 클릭하십시오.

d. 변경된 내용을 취소하기 위해서는 Cancel을 클릭하십시오.

프린터 팔레트 변경하기

1. Screen Element 또는 B&W Printer Darkness 항목은 드롭다운 리스트를 제공합니다. 디테일뷰의 어두운 정도(그레이 스케일 값)를 변경하기 위해서는 B&W Printer Darkness 항목(또는 화살표)을 클릭하십시오.

2. 원하는 어두운 정도를 클릭하십시오. 만약 디테일뷰의 배경을 흰색으로 설정하고 싶다면, 0%(White)를 클릭하십시오. (대부분의 VEE 앨리먼트는 디폴트 값에 의해 Automatic grayscale로 설정됩니다. 화면에 나타나는 색상은 자동으로 회색으로 음영처리 됩니다.)

인쇄출력 변경하기

1. Print Magnification 값을 변경하기 위해서는 Print Magnification 항목을 클릭하여 값을수정합니다. (디폴트 값은 75%입니다. 인쇄 이미지의 크기를 변경하기 위하여 100보다 크거나 작은 값을 설정할 수 있습니다.)

2. 보고서를 작성하기 위한 다른 인쇄옵션을 선택합니다.

Print Header and Index Page는 각 페이지의 상단에 머리말을 인쇄합니다. 각 페이지는 파일위치, 날짜 및 시간, 페이지 번호가 추가된 인덱스 리스트를 제공합니다.

Print Program Explorer는 Program Explorer의 펼쳐진 상태를 인쇄합니다.

Print Cover Page는 프로그램의 파일명, 수정일자, 저장 파일포맷, VEE 버전을 포함하는 표지를 인쇄합니다.

Print I/O Configuration은 계측기의 설정상태를 확장된 트리형태로 인쇄합니다. 계측기 설정상태는 I/O [image] Instrument Manager...에서 확인할 수 있습니다.

관련정보

디폴트 폰트 변경하기


프린터 설정하기

VEE는 프로그램을 인쇄하기 위하여 HP LaserJet, HP DeskJet, 및 대부분의 PostScript™ 프린터를 지원합니다. 또한, VEE는 대부분의 HP-GL 호환 플로터를 지원합니다.

VEE를 인쇄하기 위하여 프린터의 설정을 변경하기 위해서는, 다음 단계를 따르십시오. (대부분의 경우 디폴트 프린터 설정상태에서 인쇄합니다.)

1. 메뉴 File [image] Print Setup를 선택하면 인쇄설정 대화상자가 나타납니다.

2. 표준 Microsoft Windows 인쇄 방법을 사용하는 인쇄설정 대화상자에서 필요한 프린터 설정을 선택합니다.

3. 세부적인 인쇄 옵션을 설정하기 위해서는 속성을 클릭하거나, 현재 선택된 내용을 적용하기 위하여 확인버튼을 누릅니다.


VEE 작업공간 인쇄하기

현재 VEE 윈도우에 디스플레이된 작업공간을 인쇄할 수 있습니다.

1. 작업공간을 즉시 인쇄하기 위해서는 툴바에 있는 Print Screen 버튼을 클릭합니다.

Print Screen 버튼

또는,

1. 메뉴 File [image] Print Screen를 사용합니다. 인쇄 대화상자가 나타납니다.

2. 인쇄 설정이 맞으면, OK 버튼을 눌러 VEE 작업공간을 인쇄합니다. 또는 인쇄 설정을 변경하고 OK 버튼을 누릅니다. 툴바와 상태바를 포함하여 작업공간이 인쇄됩니다.

팁

Print Screen 오브젝트를 사용하여 작업공간 전체를 프로그램상에서 인쇄할 수 있습니다.

단축키

이 단축키는 대화상자가 디스플레이 되어 툴바 버튼이나 메뉴를 사용할 수 없을 때도 VEE 화면을 캡쳐할 수 있습니다.

Alt+Print Screen을 눌러 VEE 윈도우를 MS Windows 클립보드로 캡쳐합니다. (프로그램이 실행중일 때는 프로그램이 잠깐 일시 정지됩니다.) 이미지를 Microsoft Paint 또는 다른 윈도우 그래픽 어플리케이션으로 붙여 넣을 수 있습니다.

관련정보

Print Screen 오브젝트


VEE 프로그램 인쇄하기

현재 VEE 윈도우에 열려있는 프로그램의 표시 내용을 인쇄할 수 있습니다. 전체 프로그램 또는 프로그램의 일부분을 인쇄할 수 있습니다.

전체 프로그램 인쇄하기

1. 메뉴 File [image] Print Program를 선택합니다. Print Options 대화상자가 나타납니다. 이 옵션은 인쇄할 프로그램의 레벨을 제어할 수 있습니다.

Print Nested UserObjects는 프로그램내에 포함된 모든 UserObjects에 있는 내용을 인쇄합니다.

Print Object Views는 유용한 정보를 포함하고 있는 오브젝트의 오픈뷰를 인쇄합니다.

나머지 옵션은 프린트 설정 변경하기에 설명된 default preferences에 의해 설정됩니다. 프로그램을 인쇄할 때마다 이 옵션을 변경할 수 있습니다.

2. OK 버튼을 클릭합니다. 인쇄 대화상자가 나타납니다. 필요한 경우 인쇄 설정을 변경합니다.

3. OK 버튼을 다시 한번 클릭하여 프로그램의 표시내용을 인쇄합니다.

Program Explorer에서 인쇄하기

Program Explorer 에서 전체 프로그램 또는 프로그램의 일부분을 인쇄할 수 있습니다.

1. Program Explorer를 디스플레이 하기 위하여, 툴바에 있는 Program Explorer 버튼(또는 View [image] Program Explorer를 사용합니다.)을 클릭합니다.

Show/Hide Program Explorer 버튼

2. 마우스 오른쪽 버튼을 사용하여, Program Explorer에서 인쇄하고자 하는 컨텍스트 이름을 클릭합니다. 전체 컨텍스트 이름을 보기 위해서는 Program Explorer의 계층구조를 확장할 필요가 있습니다.

전체 프로그램을 인쇄하기 위해서는 프로그램이나 상단에 있는 파일 이름을 클릭합니다.

메인, UserObject, 또는 UserFunction 같은 프로그램에 있는 하나의 컨텍스트를 인쇄하기 위해서는 해당 컨텍스트 이름을 클릭합니다.

3. 표시된 컨텍스트 메뉴에서 Print를 클릭합니다. Print Options 대화상자가 나타납니다. 이 옵션에 대한 내용은 위에서 설명하였습니다.

4. 필요한 옵션을 설정하고, OK를 클릭합니다.

5. 인쇄 대화상자가 나타납니다. 필요한 경우 인쇄설정을 변경합니다.

6. OK 버튼을 클릭하여 프로그램을 인쇄합니다.

다음 그림은 UserObject를 인쇄하기 위하여 Program Explorer에서 컨텍스트 메뉴를 선택한 것을 보여줍니다.


VEE 프로그램에서 오브젝트 인쇄하기

VEE 프로그램에서 선택한 오브젝트를 인쇄할 수 있습니다.

1. 프로그램에서 하나 이상의 오브젝트를 선택합니다. 오브젝트를 클릭하여 선택합니다. 여러개의 오브젝트를 선택하기 위해서는, CTRL 키를 누른 상태에서 오브젝트를 선택하거나 또는 마우스를 사용하여 오브젝트 주위에 사각형을 그려서 오브젝트들을 선택합니다.

2. 메뉴 File [image] Print Objects를 선택합니다. 인쇄 대화상자가 나타납니다. 필요한 경우 인쇄 설정을 변경합니다.

3. OK 버튼을 클릭하여 선택한 오브젝트를 인쇄합니다.

팁

해당 오브젝트에 Print 컨트롤핀을 추가하여 프로그램상에서 오브젝트를 인쇄할 수도 있습니다. 이것은 그래픽 XY 디스플레이 오브젝트를 인쇄할 때 유용합니다.


프린터로 데이터 전송하기

VEE 프로그램에서 직접 프린터로 데이터를 전송 할 수 있습니다.

1. To Printer 오브젝트를 프로그램에 추가하고 (I/O [image] To [image] Printer) 데이터 입력핀을 인쇄하고자 하는 데이터 소오스 오브젝트에 연결합니다.

2. 데이터를 출력하는 I/O 트랜잭션을 포함하는 오픈뷰를 디스플레이 하기 위하여 To Printer 아이콘을 더블 클릭합니다.

3. 디폴트 출력 트랜잭션은 WRITE TEXT a EOL입니다. 필요시, 다른 형식으로 출력하기 위해 트랜잭션을 변경할 수 있습니다.

4. 프로그램을 실행합니다. To Printer 오브젝트가 실행될 때, 데이터가 프린터로 출력되고 현재의 인쇄 설정을 사용하여 데이터를 인쇄합니다.

팁

To Printer 오브젝트는 헤더를 추가하고 폰트를 변경하는 윈도우 프린터 드라이버를 통해서 데이터를 출력합니다. VEE에서 ASCII 텍스트를 프린터로 출력하기 위해서는, 파일 이름을 LPT1(또는 사용하는 프린터 포트)으로 설정하여 To File 오브젝트를 사용합니다.

관련정보

파일 I/O 트랜잭션 편집하기

데이터를 파일에 쓰기


±×·¡ÇÁ ÀÎ¼âÇÏ±â

그래프 인쇄하기

XY Plot 또는 Waveform (Time) 등의 오브젝트의 그래프의 내용을 프린트할 수 있습니다..

해당 그래프 오브젝트의 오브젝트 메뉴에서 Print 명령을 실행하십시오.


인스트루먼트 드라이버 로딩하기

Agilent VEE는 인스트루먼드 드라이버와 다이렉트 I/O를 사용하여 계측기를 제어합니다. 인스트루먼트 드라이버는 Panel Drivers (Panel Driver 와 Component Driver 오브젝트를 통해서 컨트롤되는), VXIplug&play Drivers (Plug&play Driver 오브젝트를 통해서 컨트롤되는) 및 IVI-COM Drivers (IVI-COM Driver 오브젝트를 통해서 컨트롤되는)를 제공합니다. Direct I/O 오브젝트는 계측기와의 로우-레벨 트랜잭션을 제공합니다.

인스트루먼트 드라이버를 사용하기 전에, 적절한 인스트루먼트 드라이버 파일이 설치되어 있어야 합니다. 계측기와의 통신을 위한 인스트루먼트 드라이버는, 반드시 Agilent I/O Libraries가 설치되어 있어야 합니다.

Agilent VEE에는 많은 Panel Drivers가 제공됩니다. Agilent VEE를 설치할 때, 설치하고자 하는 드라이버 그룹을 선택할 수 있습니다. 몇몇 드라이버는 일부 예제 프로그램을 실행하기 위하여 디폴트로 설치됩니다. 드라이버를 추가 설치하기 위해서는, VEE setup.exe 프로그램을 실행하고 필요한 드라이버 옵션을 선택합니다.

주의사항

VXIplug&play Drivers는 계측기를 제공한 제조사에서 제공받을 수 있습니다. 애질런트는 많은 종류의 애질런트 계측기용 VXIplug&play Drivers를 제공합니다. 새로운 또는 업데이트된 계측기 드라이버는 수시로 제공됩니다. 이들은 애질런트의 홈페이지에서 간단하게 다운로드 받을 수 있습니다. 파일을 다운로드하기 위한 방법은 계측기 드라이버 다운로드하기를 참조하십시오.


USB 또는 TCP/IP 계측기 추가하기

VEE 8.0 버전부터는, USB와 LAN을 사용하는 계측기를 추가하기 위하여, VISA 앨리어스를 USB 계측기로 변경하지 않는 한 Agilent의 I/O Libraries Suite를 설치할 필요가 없습니다.

Agilent의 IO Libraries Suite는 USB 디바이스용 VISA 어드레스가 길고 번거로운 작업이기 때문에, USB를 통하여 연결한 계측기에 대하여 UsbDevice1, UsbDevice2 등과 같은 앨리어스를 제공합니다. 이들 앨리어스 이름은 탐색기 뷰에 있는 앨리어스 노드를 선택하고 Change... 버튼을 클릭하여 변경할 수 있습니다. 다음 그림은 Agilent의 IO Libraries Suite에서 앨리어스를 설정하는 방법을 나타냅니다.

계측기 설정을 추가하는데 있어 자세한 정보는 계측기 설정추가를 참조하십시오.


계측기 설정 추가하기

일단 계측기가 Instrument Manager의 목록에 설정되면 계측기 컨트롤 오브젝트를 사용하기 쉽습니다.

자동으로 계측기 추가하기

Auto Discovery기능으로 IEEE-488.2 및 SCPI 계측기를 추가하고 설정할 수 있습니다. 계측기가 컴퓨터에 연결되어 있고 전원이 켜져 있으면 이 방식을 사용하는 것이 좋습니다.

1. Select I/O [image] Instrument Manager...를 선택하면, Instrument Manager 대화 상자가 표시되며, 대화상자의 Instrument List 영역에는 현재 설정되어 있는 계측기 목록이 나타납니다.

2. Settings를 클릭하면 Auto Discovery Settings 대화 상자가 나타납니다.

3. Detect, identify, and configure drivers...가 있는 radio 버튼을 클릭하고 OK 버튼을 클릭합니다.

4. Find Instruments버튼을 클릭합니다.

Auto Discovery프로세스가 실행되면서 자동 찾기 상태가 화면에 표시됩니다. 자동 찾기 기능이 끝나면 “newInstrument”로 명명된 계측기 목록이 최근 설정으로 갱신됩니다. 이 목록에는 해당 계측기의 모델명 및 주소가 포함되어 있습니다. Save를 클릭하여 변경한 설정 내용을 저장하거나 새로운 계측기 entry의 세부 사항을 편집할 수 있습니다. (대부분 계측기의 이름을 변경하여 사용합니다.) 계측기 설정 편집하기를 참조하십시오..

5. Save 버튼을 클릭하여 대화 상자를 닫거나 새로운 설정 내용을 저장합니다.

수동으로 계측기 추가하기

1. Select I/O [image] Instrument Manager...를 선택하면, Instrument Manager 대화 상자가 표시되며, 대화상자의 Instrument List 영역에는 현재 설정되어 있는 계측기 목록이 나타납니다.

2. Add... 를 클릭하면 Instrument Properties대화 상자가 나타납니다. 대화 상자는 새로운 계측기에 필요한 기본적인 설정 정보를 입력할 수 있게 합니다.

3. 디폴트 Name을 사용하거나, Instrument Manger에서 사용하지 않은 새로운 이름을 입력합니다.

4. Interface를 바꾸려면 지원되는 인터페이스들의 목록을 표시하는 인터페이스 이름을 클릭합니다. 계측기에 연결된 인터페이스를 선택합니다.

5. Address 필드를 클릭하고 계측기 주소를 설정합니다. 각 계측기의 주소는 해당 계측기의 매뉴얼을 참조하십시오.

6. 계측기가 네트웍을 통하여 원격컴퓨터에 연결되어 있으면 Gateway hostname을 변경해야 합니다.

7. 선택사항: 속성을 추가로 설정하려면 Advanced... 버튼을 클릭하십시오. 고급 설정에 대한 정보는 계측기 설정 편집하기를 참조하십시오. (새로운 계측기의 설정을 추가하거나 기존의 계측기 설정을 변경할 때 "Instrument Properties" 대화 상자와 "Advanced Instrument Properties" 대화 상자는 동일한 방식으로 사용됩니다.)

8. Save 버튼을 클릭하여 대화 상자를 닫거나 새로운 설정 내용을 저장합니다.

주의사항

시스템에 사용되는 인터페이스 카드들을 추가하거나 삭제 하기 위해서는, Agilent Connection Expert를 실행하여 I/O_config 파일을 갱신해야 합니다. 인터페이스 설치 및 설정에 대한 정보는 온라인 도움말에서 the Agilent I/O Libraries Suite를 참조하십시오.

관련정보

인스트루먼트 드라이버 로딩하기

계측기 설정 편집하기

Instrument Manager 대화상자

계측기 매뉴얼


설정된 계측기 삭제하기

Instrument Manager 대화상자에 있는 계측기를 삭제할 수 있습니다.

1. 메뉴바에서 I/O [image] Instrument Manager...를 선택하고, Instrument List에서 삭제하고자 하는 계측기 이름을 클릭하여 선택하십시오.

2. Remove 버튼을 클릭하여 선택한 계측기를 제거합니다.

3. Save 버튼을 클릭하여 새로운 구성을 저장하고 대화상자를 닫습니다.

주의사항

시스템에서 사용중인 인터페이스 카드를 제거하거나 추가하기 위해서는 Agilent Connection Expert를 실행하여 I/O_config 파일을 업데이트해야 합니다. 인터페이스를 설치하고 설정하는 방법은 Agilent I/O Libraries Suite의 온라인 도움말을 참조하십시오.

관련정보

계측기 설정 편집하기

Instrument Manager 대화상자


계측기 설정 편집하기

현재의 Instrument List 영역에 표시되어 있는 계측기의 설정을 편집할 수 있습니다.

1. I/O [image] Instrument Manager...를 선택하면 Instrument Manager 대화상자가 디스플레이되고, Instrument List 영역에는 현재의 계측기 설정상태가 디스플레이됩니다.

2. Instrument List에서 설정하고자 하는 계측기를 더블클릭합니다. Instrument Properties 대화상자가 디스플레이되고, 다음에 설명하는 바와 같이 다양한 속성들을 변경할 수 있습니다.

기본적인 계측기 속성 편집하기

Instrument Properties 대화상자에서는 4개의 기본적인 속성을 지정할 수 있습니다.

Name: 계측기를 쉽게 찾을 수 있도록, 어떤 이름도 입력할 수 있습니다. 계측기 이름은 문자로 시작하고 띄어 쓰지 않고 붙여서 쓰는 것을 권장합니다.

VISA Alias: VISA 주소를 위한 별칭을 입력합니다.

VISA Address: 계측기의 VISA 주소를 입력합니다.

Interface: 계측기와 연결하는 인터페이스 타입을 선택합니다.

Address: 계측기의 I/O 어드레스를 입력합니다. 어드레스 번호는 계측기의 타입에 따릅니다. 예를 들어, RS-232 계측기는 단지 논리번호를 사용합니다. 반면에 GPIB 계측기는 논리적 단위와 계측기 버스 어드레스로부터 생성한 번호를 사용합니다.

Board Number:  인터페이스 보드를 위한 보드 번호를 입력합니다. 보드 번호는 인덱스가 0부터 시작하며, 디폴트값은 0입니다.

Gateway: 로컬 인터페이스를 위해서는 This host를 선택합니다. LAN 게이트웨이 인터페이스를 위해서는 리모트 게이트웨이의 hostname(또는 IP sddress)을 입력합니다.

"Name"을 제외한 모든 속성은 계측기나 인터페이스 하드웨어의 물리적인 특성을 반영하여 정확하게 입력해야 합니다. 예를 들어, VISA Address 필드에 다른 번호를 입력하여 계측기의 GPIB 버스 어드레스를 변경할 수는 없습니다. 계측기의 버스 어드레스는 계측기의 스위치나 버튼을 이용하여 변경해야 합니다. 새로운 어드레스가 VEE의 Instrument Properties 대화상자에 있는 VISA Address 필드에 입력됩니다.

1. Instrument Properties 대화상자에서 원하는 필드를 클릭하십시오. 새로운 값을 입력(또는 선택)합니다. 필요시 다른 필드도 수정합니다.

2. Save 버튼을 클릭하여 새로운 설정을 저장하고 대화상자를 닫습니다.

세부적인 계측기 속성 편집하기

1. Instrument Properties 대화상자에서 Advanced... 버튼을 클릭하면, Advanced Instrument Properties 대화상자가 나타납니다. 이 대화상자는 선택하는 인터페이스 타입에 따라 다양한 속성탭들을 제공합니다. 다음 표는 각 인터페이스 타입에 대한 Advanced Instrument Properties 대화상자에서 제공하는 탭을 나타냅니다.

Tab Interface | General Driver | Direct I/O Driver | Plug&play Driver | IVI-COM Driver | Panel Driver | serial Driver | A16 Space Driver | A24/A32 Space Driver
GPIB | Yes | Yes | Yes | Yes | Yes | No | No | No
ASRL | Yes | Yes | No | No | Yes | Yes | No | No
TCP/IP | Yes | Yes | Yes | Yes | Yes | No | No | No
USB | Yes | Yes | Yes | Yes | Yes | No | No | No
NIDAQ | No Advanced Dialog box
VXI | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes
GPIO | Yes | Yes | No | No | Yes | No | No | No

2. 탭을 클릭하고 필요한대로 디폴트 설정을 변경합니다. 설정을 변경하기 위해서는 필드에 새로운 값을 입력하거나, 설정상태를 변경하기 위하여 버튼을 클릭합니다. 계측기나 Panel Driver, Plug&play Driver 또는 Direct I/O와 같은 사용하고자 하는 계측기 컨트롤 오브젝트의 타입에 맞게 설정을 변경해야 합니다.

계측기 드라이버를 사용하기 위해서는, Panel Driver 또는 Plug&play Driver 탭에 있는 드라이버 파일을 확인해야 합니다. 또한, 컴퓨터가 드라이버 파일을 가지고 있어야 합니다.

다양한 설정방법에 대한 자세한 정보는 대화상자에 있는 Help 버튼을 클릭하십시오.

3. Save 버튼을 클릭하여 새로운 설정을 저장하고 대화상자를 닫습니다.

주의사항

NIDAQ 인터페이스에 대해서는, Instrument Properties 대화상자에서 드라이버 타입을 선택할 수 있습니다.

관련정보

계측기 설정 추가하기

Instrument Manager 대화상자


임베딩된 I/O 설정 및 병합하기

VEE Pro는 임베딩된 I/O 설정을 포함하는 프로그램에서 프로그램 앨리먼트를 병합하고 임포트할 수 있습니다. 반면에 임베딩된 I/O 설정은 스스로 병합되거나 임포트될 수는 없습니다. 병합(임포트)하는 오브젝트가 설정된 계측기를 필요로 한다면, 계측기를 포함하기 위한 로컬 I/O 설정을 추가해야 합니다.

다른 방법은, 현재의 I/O설정에 계측기를 추가하고 메인 프로그램과 함께 저장하는 것입니다. (즉, 모든 병합된 앨리먼트를 포함하는 프로그램 파일 또는 Import Library 오브젝트를 실행하는 프로그램 파일). 또 다른 방법은 모든 필요한 계측기를 프로그램이 실행되는 컴퓨터에 있는 글로벌 I/O 설정 파일(vee.io)에 포함시키는 것입니다.

VEE는 다음과 같이 글로벌 I/O 설정파일을 찾습니다.

1. HOME 이라는 이름의 환경변수가 있다면, VEE는 항상 거기에서 I/O 설정 파일을 찾습니다. (만약 %HOME% 디렉토리에 파일이 없다면, 비어있는 I/O 설정파일이 생성됩니다.)

2. HOME 환경변수가 정의되어 있지 않다면, VEE는 I/O 설정파일을 다음에서 찾습니다:

<%USERPROFILE%>\Local Settings\Application Data\Agilent\VEE Pro

예를 들어, 만약 JohnDoe가 로그가 ON되고 VEE 프로그램이 실행되면, VEE는 I/O 설정파일을 찾습니다:

C:\Document and Settings\JohnDoe\Local Settings\Application Data\Agilent\VEE Pro\vee.io


VEE에서 Dynamic I/O 오토메이션 서버를 사용하는 방법

이전 버전의 VEE에서는, VEE I/O 설정 파일에 있는 계측기의 주소는 변경할 수 없었습니다. 6.0버전에서는 Dynamic I/O Automation Server를 이용하여 계측기를 찾고 인식할 수 있습니다. 이 기능을 이용하여, 계측기를 모두 찾을 수 있고, Direct I/O 오브젝트를 설정하기 위해 내부에서 계측기 속성을 사용합니다.

사용법

VEE에서 Dynamic I/O Automation Server from VEE:

ActiveX Automation References 대화상자를 디스플레이 하기 위해 Device [image] ActiveX Automation References를 선택합니다. VEE DynamicIO 1.0 Type Library를 체크하고 OK 버튼을 클릭합니다.

Function & Object Browser 대화상자를 디스플레이 하기 위해 Device [image] Function & Object Browser를 선택합니다. Library로 DYNAMICIOLib를 디스플레이 하기 위해 Type: ActiveX Objects를 선택합니다.

사용예

VEE 예제는 Help [image] Open Example... InstrumentIO 디렉토리에서 제공합니다.

관련정보

이 기능은 단독실행 ActiveX automation server 이므로, C++ 또는 Visual Basic같은 다른 어플리케이션에서 사용될 수 있습니다.


Direct I/O 오브젝트 사용하기

다이렉트 I/O 오브젝트를 추가하기 위해서는, Instrument Manager 대화상자를 사용합니다. 예제로 HP 34401A Multimeter 설정이 사용됩니다.

1. 메뉴 I/O [image] Instrument Manager...를 선택하면 설정된 계측기의 목록을 표시하는 대화상자가 나타납니다.

2. 작업영역에 추가 하고자 하는 계측기를 클릭합니다. 예를 들어, dmm(hp34401a@(NOT LIVE))를 클릭합니다.

3. Properties 버튼을 클릭합니다; Instrument Properties 대화상자에서, Advanced… 버튼을 클릭합니다. General 탭에 있는 Advanced Instrument Properties 대화상자에서, Live Mode를 ON으로 설정합니다. OK 버튼을 클릭하여 Manager로 되돌아 옵니다.

4. Direct I/O 버튼을 클릭합니다. 다이렉트 I/O 오브젝트의 외곽 테두리가 나타납니다. 외곽 테두리를 작업영역의 필요한 곳에 배치하고, 마우스 버튼을 클릭합니다. 오브젝트의 타이틀 바는 계측기의 설정 이름을 표시합니다.

5. 계측기에 명령어를 입력하기 위하여 트랜잭션 영역을 더블 클릭합니다.

관련정보

Direct I/O를 이용한 데이터 읽기

Direct I/O

MultiDevice Direct I/O

실습 3-3: Direct I/O 사용법


Direct I/O를 이용한 데이터 읽기

이 처리순서는 HP 34401A 멀티미터에서 데이터를 읽기 위해 Direct I/O 오브젝트를 사용하는 방법을 제시합니다.

1. Direct I/O 오브젝트 사용하기에서 설명한 바와 같이 어드레스를 722로 설정한 Direct I/O 오브젝트를 작업영역에 추가합니다.

2. Direct I/O 오브젝트는 계측기와 통신하기 위하여 트랜잭션을 사용합니다. 오브젝트에 있는 "비어있는" 트랜잭션(하이라이트된 필드)을 더블 클릭합니다. 변수 a가 하이라이트된 I/O Transaction 대화상자가 나타납니다. 변수가 있는 자리에 "MEAS:VOLT:DC?"(인용부호 포함) 스트링을 입력합니다. OK 버튼을 클릭하여 WRITE TEXT "MEAS:VOLT:DC?" EOL 트랜잭션을 생성합니다.

3. 두번째 트랜잭션을 추가하기 위하여, 오브젝트 메뉴에서 Add Trans을 선택하거나 비어있는 다음 트랜잭션을 더블 클릭합니다. 트랜잭션 대화상자에서 동작은 READ로 인코딩 방식은 TEXT로 변경하고 OK 버튼을 클릭합니다.

4. Direct I/O 오브젝트에는 2개의 트랜잭션이 됩니다:

a. WRITE TEXT "MEAS:VOLT:DC?" EOL은 명령어 스트링 "MEAS:VOLT:DC?"을 어드레스 722에 있는 계측기에 기록합니다. HP 34401A 멀티미터에서, 명령어 스트링 "MEAS:VOLT:DC?"는 "읽은 DC 전압을 출력하라"는 의미입니다.

b. READ TEXT x REAL64는 어드레스 722에 있는 계측기에서 실수 형태의 텍스트 데이터를 읽어 들이고, 읽은 데이터를 x 데이터 출력 터미날로 출력합니다.

5. 프로그램을 완료하기 위하여, AlphaNumeric 디스플레이 오브젝트를 작업영역에 추가하고, 다음과 같이 연결합니다. (HP 34401A 멀티미터를 어드레스 722에 있는 GPIB로 연결한 경우에는 이 프로그램을 실행할 수 있습니다.)

관련정보

Direct I/O

MultiDevice Direct I/O

실습3-3: Direct I/O 사용하기

Help [image] Contents and Index [image] Tell Me About... I/O Transactions

해당 계측기의 프로그래밍 매뉴얼을 참조하십시오.


Plug&play Driver 오브젝트 사용하기

VXIplug&play Driver 오브젝트를 작업영역에 추가하기 위해서는 Instrument Manager 대화상자를 사용합니다.

주의사항

VXIplug&play Driver 오브젝트는 동일한 프로그램에서 동일한 계측기와 통신하기 위하여 다른 인스트루먼트 컨트롤 오브젝트 (Panel Driver, Component Driver, 또는 Direct I/O)와 같이 사용할 수는 없습니다.

1. 메뉴 I/O [image] Instrument Manager...를 선택합니다. 대화상자는 Instrument List 영역에 설정된 계측기 목록을 디스플레이 합니다.

2. 작업영역에 추가하고자 하는 계측기를 클릭합니다. 이 계측기가 VXIplug&play Driver 를 사용하여 설정된 경우에는, Plug&play Driver 버튼이 활성화 됩니다.

3. Plug&play Driver 버튼을 클릭하여, 작업영역에 To/From VXIplug&play 오브젝트를 배치합니다.

4. 빈 트랜잭션을 더블 클릭합니다 (또는 오브젝트 메뉴에서 Add Trans 또는 Insert Trans를 선택합니다.). Select a Function Panel 대화상자가 나타납니다. 이것은 논리적인 카테고리로 그룹화된 패널을 디스플레이 합니다. 카테고리는 드라이버에 따라 다릅니다.

[+] 및 [-]아이콘을 클릭하면, 폴더와 함수의 계층구조가 확장되고 축소됩니다.

[f(x)]아이콘을 클릭하면 사용하고자 하는 패널이 선택됩니다.

5. Select a Function Panel 대화상자에서 OK를 클릭합니다. Edit Function Panel 대화상자가 나타납니다.

6. Edit Function Panel에 있는 설정을 필요한 값으로 편집합니다. 특정한 인스트루먼트 드라이버에 대한 자세한 내용은 Help 버튼을 사용합니다.

7. OK를 클릭합니다. 계측기에 대한 다른 함수를 설정하기 위해서는, To/From VXIplug&play 오브젝트에서 다음 트랜잭션을 더블 클릭합니다.

관련정보

To/From VXIplug&play


VEE에서 NI 데이터수집 사용법

PXI 브리지는 동시에 하나만 지원되고 PCI 버스 번호는 0에서 9사이에서 사용하여야 합니다.

VEE에서는 다음과 같은 6개의 National Instruments 드라이버 라이브러리가 지원됩니다: niDMM, niSCOPE, niDAQ, niDAQmx, niSWITCH, 및 niFGEN.

라이브러리 | 개정 번호
NI-DAQ | 7.3 이상(rev. 7.4.1까지 테스트 됨)
NI-DMM | 2.3.1 이상 (rev. 2.5 까지 테스트 됨)
NI-SCOPE | 2.7 이상 (rev. 3.0 까지 테스트 됨)
NI-FGEN | 2.2.1 이상 (rev. 2.4 까지 테스트 됨)
NI-SWITCH | 2.3 이상 (rev. 3.1 까지 테스트 됨)
NI-DAQmx | 8.1 이상

이 라이브러리를 사용하여 지정된 계측기는 지원되는 다른 계측기처럼 Instrument Manager를 사용하여 설정되고 검색됩니다.

1 I/O [image] Instrument Manager를 실행합니다.

2 Add를 선택하고 계측기용 이름을 입력합니다. Interface 드롭다운 박스를 사용하여 “NIDAQ”을 선택합니다.

3 계측기 이름을 선택하고 드롭다운 리스트에서 드라이버 타입을 선택합니다.

4 계측기의 주소를 지정하고, Live Mode로 설정합니다.

• SCXI에 대해서는, 주소는 SCXI{Cage #}::Slot Number로 부여 합니다.

• PXI에 대해서는, 주소는 PXI{Cage #}::Slot Number로 부여 합니다.

• 전통적인 NIDAQ에 대해서는, 주소는 1부터 64사이에서 부여 합니다.

이들 드라이버 라이브러리에서 함수를 호출하면 아래와 같이 컴퓨터에 설치된 NI 라이브러리를 직접 호출합니다.

각 라이브러리에 있는 모든 함수에 대한 NI 도움말이 제공됩니다. NI 함수 호출을 사용하는 복잡한 작업을 단순화 하기 위해 제공되는 일부 상위 레벨 Agilent 함수도 제공됩니다.

SCXI 지원

현재, 시스템에서 동시에 하나의 SCXI 카드만 지원되고, 샤시 번호는 NI-MAX 에서의 설정처럼 1부터 5 사이의 번호를 사용하여야 합니다.

VEE와 관련된 SCXI 모듈은 2개의 타입이 있습니다. 이들 타입은 SCXI 카드가 시스템에 연결된 방법에 따라 구분됩니다. Instrument Manager에서 ‘Find Instruments’를 실행한 다음에는, NI-DAQ 디바이스로 표시된 SCXI 모듈은 NI-DAQ Driver를 사용하게 됩니다. 이 모듈에 대한 드라이버에서는 SCXI_xxxx 트랜잭션만 사용할 수 있습니다. 다른 트랜잭션(Analog In, Analog Out, Digital In, 등과 같은)을 사용하면 다음과 같은 에러가 발생합니다:

NI-SWITCH 디바이스로 표시된 SCXI 모듈은 NI-SWITCH Driver를 사용하게 됩니다. 일부 SCXI 모듈은 NI-DAQ 및 NI-SWITCH 타입으로 나타나게 됩니다. 이들 모듈은 NI-DAQ 디바이스 및/또는 NI-SWITCH 디바이스로 사용될 수 있는 옵션을 제공합니다. 필요한 기능을 기준으로 드라이버를 선택합니다.

NI-DAQ 비동기성

VEE가 To/From Plug&Play 오브젝트에서 비동기 트랜잭션을 처리할 수 없기 때문에, DAQ_Start(), SCAN_Start() 및 Lab_ISCAN_Start()의 사용은 자제해야 합니다. 대표적으로 대응되는 트랜잭션, DAQ_Op(), SCAN_Op() 및 Lab_ISCAN_Op() 등을 사용하여 동기식으로 동등한 기능을 수행할 수 있습니다. Lab_ISCAN_Op() 및 SCAN_Op()의 경우에, SCAN_Setup()와 같은 추가적인 설정 및 설정 트랜잭션은 XXX_Op() 트랜잭션을 앞에 사용합니다.

테스트한 계측기들

다음 계측기들은 VEE를 사용하여 함수를 테스트되었습니다:

  • PXI-5411 Arbitrary Waveform Generator (NI-FGEN)

  • PXI-5112 100MHz Digital Oscilloscope (NI-SCOPE)

  • PXI-2503 Relay Multiplexor (NI-SWITCH)

  • NI-4050 PCMCIA 5 ?Digit DMM (NI-DMM)

  • PXI-4060 5 ?Digit Multimeter (NI-DMM)

  • PXI-4070 6 ?Digit FlexDMM (NI-DMM)

  • PXI-6025E Multifunction I/O (NI-DAQ)

  • PCI-MIO-16XE-10 Multifunction I/O (NI-DAQ)

  • PCI-6503 Digital I/O (NI-DAQ)

  • NI SCXI-1100 32-chan +-10V Analog Input Module (NI-DAQ)

  • NI SCXI-1163 32-chan Digital Output Module (NI-DAQ)

  • NI SCXI-1161 Relay Module (NI-DAQ)

  • NI SCXI-1161 Relay Module (NI-DAQmx)

  • PCI-MIO-16XE-10 Multifunction I/O (NI-DAQmx)

  • PXI-2503 Relay Multiplexor (NI-DAQmx)

  • PXI-6025E Multifunction I/O (NI-DAQmx)

  • PCI-6503 Digital I/O (NI-DAQmx)

일부 장비들은 하나 이상의 드라이버를 사용하는 VEE에 의해서 통신될 수 있으므로 여러 번 나타날 수 있습니다.

주의사항

새로운 PXI/CompactPCI 카드는 National Instruments VISA가 프라이머리 VISA로 설치되어야만 VEE에서 사용할 수 있습니다.

  • • NI VISA와 NI-VISA를 사용하는 NI-DMM, NI-SCOPE, NI-FGEN, NI-SWITCH 등을 제거합니다.

  • • NI VISA, NI-DMM, NISCOPE, NI-FGEN, NI-SWITCH 등을 다시 설치 합니다. 설치 마법사는 Agilent VISA가 이미 설치되었다고 표시됩니다. 설치를 계속하면 Agilent VISA DLL이 visa32.Agilent Technologies.dll로 이름이 변경됩니다.

관련정보

To/From NIDAQ, NI-FGEN, NI-SCOPE Fetch/Read 함수, NI-DAQmx 드라이버


IVI-COM과 Instrument Manager

IVI는 IVI Foundation에서 개발되고 있는 새로운 인스트루먼트 드라이버 표준입니다. IVI Foundation은 계측기를 프로그램 규격을 향상시키기 위하여 설립된 컨소시엄입니다. 이 규격은 여러 가지 이익을 제공하지만, 기본 목표는 계측기 교환사용을 단순화하는 것입니다. IVI Foundation에 대해서는 웹사이트 http://www.ivifoundation.org/를 참조하십시오.

2개의 제조사가 DMM용 IVI-COM 드라이버를 제공하고 있다고 가정합니다. IVI 표준을 충족하기 위하여, 기본 드라이버는 상호 호환되어야 합니다. 시스템에서 어떤 드라이버를 사용해도, 다른 제조사가 생산한 DMM이 동작해야 합니다. 생성한 코드도 재사용할 수 있습니다.

VEE는 IVI-COM 드라이버를 사용하는 4 가지 방법을 제공합니다. 모든 경우에서, 사용하고자 하는 계측기에 대한 IVI 드라이버를 먼저 다운로드하고 설치해야 합니다. 다음의 4개의 시나리오 중에서 한 가지를 적용합니다:

1 이 시나리오는 계측기의 상호호환성이 중요하지 않고, 디바이스 드라이버를 사용하는 것으로도 충분한 경우에 사용합니다.

Instrument Manager를 실행하고 계측기를 추가합니다. 계측기를 더블 클릭하여 해당 속성 페이지를 열어서 Advanced를 선택합니다. IVI-COM Driver 탭을 선택하고 해당 계측기의 IVI 드라이버 이름을 선택합니다. 해당 계측기에 대한 인스트루먼트 지정 드라이버가 설정되었습니다. 인스트루먼트 지정 드라이버는 동일한 클래스의 다른 인스트루먼트 드라이버와는 다른 제조사 기능을 가지고 있습니다.

여기에서, Instrument Manager로 되돌아 갈 수 있으며, 계측기를 선택하고 To/From 오브젝트를 생성하기 위하여 IVI-COM Driver 버튼을 누를 수도 있습니다.

2 이 시나리오는 계측기의 상호 호환성이 중요하고, 디바이스 드라이버를 사용하는 것으로도 충분한 경우에 사용합니다.

Instrument Manager를 실행하고 계측기를 추가합니다. 계측기를 더블 클릭하여 해당 속성 페이지를 열어서 Advanced를 선택합니다. IVI-COM Driver 탭을 선택하고 해당 계측기의 IVI 드라이버 이름을 선택합니다. Instrument Interchangeability라고 표시된 박스에서, Use Class Compliant Interface라고 표시된 체크박스를 체크합니다. 이 박스를 체크하는 것은 VEE가 인스트루먼트 드라이버의 클래스 호환 인터페이스 만을 사용하여 계측기와 통신하겠다는 것을 의미합니다. 이것은 DMM 또는 Scope와 같은 클래스의 다른 계측기를 사용하여 계측기의 호환성을 유지하도록 합니다.

3 이 시나리오는 계측기의 상호호환성이 중요하지 않고, IVI 세션 이름을 사용하는 것이 중요한 경우에 사용합니다

Instrument Manager를 실행하고 계측기를 추가합니다. 계측기를 더블 클릭하여 해당 속성 페이지를 열어서 Advanced를 선택합니다. IVI-COM Driver 탭을 선택하고 해당 계측기의 IVI 세션 이름을 선택합니다. IVI 세션 이름은 IVI Config Store에서 계측기의 설정 정보를 가져오게 되어, 해당 리소스 스트링이 회색으로 변경됩니다.

지정된 세션이 없는 경우에는, Instrument Interchangeability 박스에서 Configure IVI Driver Session라고 표시된 버튼을 선택합니다. Use Class Compliant Interface 체크박스는 선택하지 않습니다. 나타나는 어플리케이션은 IVI Config Store 정보를 관리하기 위해 사용됩니다. 좌측 상단에 있는 아이콘은 컴퓨터에 직접 연결된 계측기를 검색하고 IVI Config Store에 인식된 다른 계측기를 읽습니다.

계측기가 검색된 다음에는, 세션을 추가 하고자 하는 계측기의 오른쪽을 클릭하고 Add Instrument Session을 선택합니다. 이 설치 마법사를 실행하기 전에 컴퓨터에 IVI 드라이버가 설치되어 있어야 합니다. 설치 마법사가 끝나면, 방금 생성된 세션 이름을 선택할 수 있습니다.

IVI 세션 이름을 사용하여 인스트루먼트 지정 드라이버를 사용할 수 있습니다.

4 이 시나리오는 계측기의 상호호환성과 IVI 세션 이름을 사용하는 것이 중요한 경우에 사용합니다.

Instrument Manager를 실행하고 계측기를 추가합니다. 계측기를 더블 클릭하여 해당 속성 페이지를 열어서 Advanced를 선택합니다. IVI-COM Driver 탭을 선택하고 해당 계측기와 매칭되는 IVI 세션 이름을 선택합니다.

지정된 세션이 없는 경우에는, Instrument Interchangeability 박스에서 Configure IVI Driver Session라고 표시된 버튼을 선택합니다. Use Class Compliant Interface 체크박스는 선택하지 않습니다.

나타나는 어플리케이션은 IVI Config Store 정보를 관리하기 위해 사용됩니다. 좌측 상단에 있는 아이콘은 컴퓨터에 직접 연결된 계측기를 검색하고 IVI Config Store에 인식된 다른 계측기를 읽습니다.

계측기가 검색된 다음에는, 세션을 추가 하고자 하는 계측기의 오른쪽을 클릭하여 Add Instrument Session을 선택합니다. 이 설치 마법사를 실행하기 전에 컴퓨터에 IVI 드라이버가 설치되어 있어야 합니다. 설치 마법사가 끝나면, 방금 생성된 세션 이름을 선택할 수 있습니다.

IVI 세션 이름을 사용하여 클래스 호환 드라이버를 사용할 수 있습니다.

관련정보

.NET 과 IVI Drivers, IVI Driver 예제


Panel Driver 오브젝트 사용하기

Panel Driver 오브젝트를 작업영역에 추가하기 위하여, Instrument Manager 대화상자를 사용합니다. 예제로 HP 34401A Multimeter의 설정을 사용하여 설명합니다.

1. 메뉴 I/O [image] Instrument Manager...를 선택합니다. 대화상자는 Instrument List 영역에 설정된 계측기 목록을 디스플레이 합니다.

2. 작업영역에 추가하고자 하는 계측기를 클릭합니다. 이 계측기가 인스트루먼트 드라이버 파일을 사용하여 설정된 경우에는, Create I/O Object 영역에 있는 Panel Driver 버튼이 활성화 됩니다. dmm(hp34401a@(NOT LIVE))를 클릭합니다.

3. Panel Driver 버튼을 클릭하면, 인스트루먼트 패널 오브젝트의 외곽 테두리가 나타납니다. 작업영역의 필요한 위치에 외곽 테두리를 배치하고 마우스 버튼을 클릭합니다.

4 라이브 모드를 OFF(디폴트)하면, hp34401a 인스트루먼트 패널은 가상의 데이터를 생성합니다. 디스플레이 필드에서 ?를 클릭합니다. 시뮬레이션된 가상의 데이터가 생성됩니다. 라이브 모드는 Panel Drivers에서만 사용할 수 있습니다.

라이브 모드를 OFF하면, 계측기가 없는 경우에도 I/O 프로그램을 실행할 수 있습니다. 프로그램을 작성하고 계측기를 연결한 다음에는, 라이브 모드를 ON으로 설정할 수 있습니다.

5. Function, Range 등을 선택할 수 있는 Measure Panel 패널이 디폴트로 표시됩니다. Function 설정을 변경하기 위해서는, DC Volts로 표시된 Function을 클릭합니다.

6. function을 DC Amps로 변경하기 위해서는, 리스트에 있는 DC Amps를 더블 클릭합니다. DC Volts로 다시 변경하기 위해서는, Function 버튼을 클릭합니다. DC Amps로 표시되고 목록에서 DC Volts를 더블 클릭합니다.

라이브 모드가 OFF인 경우에는, 계측기가 컴퓨터에 연결되어 있을지라도 위에서 변경한 내용은 계측기에 반영되지 않습니다. 그러나, 라이브 모드가 ON 상태이고 HP 34401A Multimeter가 GPIB로 연결되어 있는 경우(적절한 주소로 설정된 경우)에는, VEE 인스트루먼트 패널 오브젝트에서 계측기의 상태를 변경할 수 있습니다.

7. Measure Panel은 선택할 수 있는 여러개의 패널중 하나입니다. 오브젝트의 우측 상단에 있는 Measure Panel 버튼을 클릭합니다.

8. 리스트에서 Status Panel을 더블 클릭하면, Status Panel이 나타납니다.

9. Measure Panel로 되돌아 가기 위해서는, Status Panel 버튼을 클릭하고 Measure Panel을 더블 클릭합니다.

인스트루먼트 패널 오브젝트에 있는 다양한 패널은 계측기에 있는 대부분의 기능을 컨트롤할 수 있습니다. 인스트루먼트 패널을 효과적으로 사용하기 위해서는 해당 계측기에 익숙해져야 합니다. 자세한 내용은 계측기의 매뉴얼을 참조하십시오. 인스트루먼트 패널 오브젝트에 대한 자세한 내용은 오브젝트 메뉴에서 Help를 선택합니다.

관련정보

Panel Driver 오브젝트를 이용하여 데이터 읽기


Panel Driver 오브젝트를 이용하여 데이터 읽기

이 처리순서에서는, HP 34401A 멀티미터용 인스트루먼트 패널 오브젝트에서 읽은 가상의 전압을 디스플레이 하는 간단한 프로그램을 생성합니다.

1. HP 34401A용 인스트루먼트 패널 오브젝트를 추가합니다.( I/O [image] Instrument Manager...)

2. 인스트루먼트 패널의 오브젝트 메뉴에서 Component [image] Select Output Component를 클릭하고 Add Terminal을 선택합니다.

3. HP 34401A 디스플레이를 클릭합니다. Reading 터미날이 출력으로 추가됩니다.

4. AlphaNumeric 오브젝트를 작업영역에 추가하고, 다음과 같이 연결한 다음에 프로그램을 실행합니다. 라이브 모드가 OFF이므로, Simulated Data 라벨(또는 타이틀 바에 있는 (NOT LIVE) 표시)이 지칭 하는 바와 같이 데이터는 가상으로 생성됩니다.

5. 라이브 모드를 ON하기 위해서는, I/O [image] Instrument Manager...를 선택하고, 리스트에서 dmm (hp34401a @ (NOT LIVE))를 선택하고(하이라이트 되지 않은 경우에), Properties를 클릭합니다. HP 34401A 멀티미터를 설정할 수 있는 Instrument Properties 대화상자가 나타납니다.

6. 표시되는 어드레스(디폴트 값은 722입니다.)가 계측기의 어드레스와 동일하지 않으면, 정확한 어드레스를 입력합니다. (계측기에 어드레스를 부여하는 방법에 대해서는, 계측기 매뉴얼을 참조하십시오.)

7. Advanced...버튼을 클릭합니다. Live Mode의 오른쪽에 있는 버튼을 클릭합니다. 버튼은 OFF에서 ON으로 토글 됩니다. OK 버튼을 클릭하여 Instrument Manager 대화상자로 되돌아 옵니다.

8. Save 버튼을 클릭합니다. 인스트루먼트 패널이 라이브 모드 ON 상태로 변경되었습니다.

새로운 타이틀 hp34401a (@ 722)은 라이브 모드가 ON이고, 인스트루먼트 패널이 GPIB 어드레스 722를 통해서 HP 34401A 멀티미터와 통신하도록 설정되었다는 것을 나타냅니다. HP 34401A가 어드레스 722로 컴퓨터에 연결되어 있을지라도 이 프로그램은 타임아웃 됩니다.

HP 34401A 멀티미터를 가지고 있는 경우에는, 계측기를 연결하여 프로그램을 실행할 수 있습니다. 아닌 경우에는, Advanced Instrument Properties 대화상자 (I/O   [image] Instrument Manager...에서, Properties를 클릭하고, Advanced…를 클릭합니다.)를 사용하여, 라이브 모드를 OFF로 되돌릴 수 있습니다.


Component Driver 오브젝트 사용하기

컴포넌트 드라이버 오브젝트를 사용하는 경우에는 프로그램 실행속도 측면에서 약간 향상될 수 있습니다. 예제로 HP 34401A Multimeter의 설정을 사용하여 설명합니다.

1. 메뉴 I/O [image] Instrument Manager...를 선택합니다. 대화상자는 Instrument List 영역에 설정된 계측기 목록을 디스플레이 합니다.

2. 작업영역에 추가하고자 하는 계측기를 클릭합니다. 이 계측기가 인스트루먼트 드라이버 파일을 사용하여 설정된 경우에는, Create I/O Object 영역에 있는 Component Driver 버튼이 활성화 됩니다. dmm(hp34401a@(NOT LIVE))를 클릭합니다.

3. Component Driver 버튼을 클릭하고, 작업영역에 오브젝트를 배치합니다.

4. Component Driver 오브젝트는 아이콘으로 나타납니다. 아이콘을 클릭하여 오브젝트의 오픈뷰를 디스플레이 합니다.

5. Reading 터미날을 Component Driver 오브젝트에 추가합니다 (오브젝트 메뉴 [image] Add Terminal [image] Data Output).

관련정보

manual 예제 디렉토리에 있는 manual22.vee
Help [image] Open Example...

컴포넌트 드라이버


사용방법 선택

이 절에서는 Panel Driver 오브젝트와 Component Driver 오브젝트를 대화식으로 또는 프로그램 안에서 사용하는 몇 가지 기술을 소개합니다.

Panel Driver 오브젝트를 대화식으로 사용하기

Panel Driver 오브젝트의 오픈뷰에서는 측정 상태를 대화식으로 설정할 수 있는 그래픽 컨트롤 패널이 제공됩니다. 해당 계측기를 컴퓨터에 연결하고 Live Mode를 On으로 설정하면, 계측기 상태를 설정하는 것과 같이 계측기를 대화식으로 제어할 수 있습니다.

개별 설정을 변경하기 위해서는, 그래픽 컨트롤 패널에서 해당 필드를 클릭하여 표시되는 대화상자에서 필요한 내용을 입력합니다. 측정을 하고 측정결과를 보기 위해서는, 숫자 또는 XY 디스플레이의 디스플에이 영역을 클릭합니다. XY 디스플레이가 업데이트되기 위해서는 약간의 시간이 소요될 수 있습니다.

Panel Driver 오브젝트를 프로그램 안에서 사용하기

Panel Driver 오브젝트를 프로그램에 추가하십시오.:

1 I/O [image] Instrument Manager.... 를 클릭하면 Instrument Manager 대화상자가 표시됩니다.

2 필요한 계측기를 클릭하여 하이라이트시키고, Panel Driver 버튼을 클릭합니다.

주의

Panel Driver 파일과 함께 계측기가 설정되어 있지 않으면, Panel Driver 버튼은 회색으로 비활성화됩니다. 설정 절차를 참조하십시오.

3 오브젝트의 외곽선이 표시되면, 커서를 오브젝트에 올려놓고 작업영역의 필요한 위치로 이동하여 클릭하면, 오브젝트가 배치됩니다.

프로그램 안에서 Panel Driver 오브젝트를 사용할 때는, 컴포넌트의 입력터미날과 출력터미날을 사용해야 합니다. 각 입출력 터미날은 드라이버 안의 컴포넌트에 대응됩니다. 터미날은 다음과 같이 2 가지 방식으로 추가합니다.

• Panel Driver 오브젝트의 오브젝트 메뉴에서 Add Terminal [image] Data Input or Add Terminal [image] Data Output을 실행합니다. 아직 터미날로 사용되지 않는 모든 유효한 드라이버 컴포넌트가 표시됩니다. 터미날을 추가할 컴포넌트를 이 목록에서 더블클릭하여 선택합니다.

• Panel Driver 오브젝트의 오브젝트 메뉴에서 Add Terminal by Component [image] Select Input Component 또는 Add Terminal by Component Select Output Component 를 실행합니다. 이렇게 선택한 후, 그래픽 제어 패널에서 필드나 디스플레이 영역을 클릭하면, 해당 컴포넌트에 터미날이 추가됩니다.

일반적으로, 사용하려고 하는 컴포넌트의 이름을 추측할 필요가 없으므로, 위의 첫 번째 방법을 사용하는 것이 편리합니다. 그러나, 그래픽 제어 패널에서 볼 수 없는 일부 컴포넌트도 있습니다. 이러한 컴포넌트는 2 번째 방법으로 접근해야 합니다.

Component Driver 오브젝트를 프로그램 안에서 사용하기

Component Driver를 프로그램에 추가하기 위해서는:

1 I/O [image] 를 실행합니다. 설정된 계측기 목록이 표시됩니다.

2 사용할 계측기를 선택하여 하이라이트 시키고, Component Driver 버튼을 클릭합니다.

주의

계측기가 Panel Driver 파일로 설정되어 있지 않으면, Panel Driver 버튼은 회색으로 비활성화됩니다. 설정 절차를 참조하십시오.

3 오브젝트의 외곽선이 표시되면, 커서를 오브젝트에 올려놓고 작업영역의 필요한 위치로 이동하여 클릭하면, 오브젝트가 배치됩니다.

Component Driver 오브젝트는 일반적으로 일부 컴포넌트를 변경하면서 반복하여 계측기 제어 오브젝트를 실행할 때 사용합니다. Component Driver 오브젝트는 지정한 컴포넌트에만 쓰거나 읽고 다소 실행속도가 빠르므로, 이러한 상황에서는 Panel Driver 보다 더 많이 사용됩니다.

다음 그림은 이러한 상황에 대한 예제 프로그램입니다. 이 프로그램은 fgen이 제공하는 입력주파수를 스위핑하고 dvm을 이용하여 응답을 측정하여, 필터의 주파수 응답을 측정합니다. For Log Range에 종속된 서브쓰레드는 반복하여 실행되므로, 컴포넌트 드라이버는 실행속도를 향상하기 위해서 사용되었습니다. 여기서도 fgen 및 dvm의 초기값을 설정하는데 Panel Driver 오브젝트를 사용할 수 있습니다.

이 프로그램은 예제 폴더에서 manual15.vee 파일로 제공됩니다.

Panel Driver의 도움말

Panel Driver의 도움말은 해당 Panel Driver 오브젝트 또는 Component Driver 오브젝트의 오브젝트 메뉴에서 Help를 실행하면 도움말 대화상자가 표시됩니다. 이 대화상자에서 적절한 내용을 선택하십시오.

관련정보

Panel Driver-기반 I/O가 동작하는 방법, Panel Drivers 사용법, Panel Driver 동작


PC 플러그인 보드 사용하기

VEE는 PC 플러그인 보드를 2 가지의 방법으로 제어합니다:

1 Data Translation사의 Visual Programming Interface(VPI 어플리케이션은 Data Translation사가 제공합니다.)

2 ComputerBoard사 또는 Meilhaus사와 같은 PC 보드 제작사에서 제공하는 동적 링크 라이브러리(DLL및 DLL 사용법은 DLL 사용을 참조하십시오.)

Data Translation사의 VPI(Visual Programming Interface)

Data Translation의 VPI는 PC 플러그인 보드를 이용하여 데이터 수집기능을 구현하기 위해서 VEE와 함께 사용됩니다. Data Translation사의 Open Layer 표준에서 제공하는 유연성을 이용하여 50개 이상의 데이터 수집 보드를 사용할 수 있습니다.

VPI는 채널 수가 많지 않은 ISA, PCI 및 USB 기반의 데이터 수집 카드에서 직접 사용할 수 있습니다. VPI는 메뉴 선택 및 특정 PC 플러그인 데이터 수집 아이콘을 VEE에 추가합니다.

Amplicon

Amplicon은 200 종류의 다양한 아날로그 및 디지털 I/O PC 플러그인 보드를 제공하며, 이들은 모두 VEE에서 지원됩니다.

소프트웨어 인터페이스는 Amplicon사의 AmpDIO 드라이버 패키지의 일부분입니다. AmpDIO 드라이버 패키지는 윈도우용 멀티스레드 DLL을 포함하는 32-비트 API이며, 인터럽트 방식으로 데이터를 수집합니다. AmpDIO 드라이버 패키지는 100 개 이상의 호출을 제공하므로 효과적이며 유연한 프로그램을 작성할 수 있고, VEE의 정의파일을 사용하는 것과 같은 방법의 컴파일된 함수를 제공합니다. 하나의 프로그램에서 최대 8개의 보드를 이용할 수 있습니다.

Amplicon사는 자사의 직렬통신 장치 등의 플러그인 보드뿐만 아니라 다른 제조사의 데이터 수집, 시리얼 통신 및 GPIB 플러그인 보드를 제공합니다.

다음 그림은 PC에서 동시에 입력과 출력 신호를 제공하는 VEE 런타임 소프트웨어 구현 예제입니다. (이 소프트웨어는 Amplicon사의 PCI224와 PCI234 아날로그 출력보드, PCI230 및 PCI260 아날로그 입력보드와 함께 무료 제공됩니다.)

ComputerBoards 사의 PC 플러그인 보드

ComputerBoards사는 VEE와 호환되는 저가형 강력한 PC 플러그인 보드를 제공합니다. (VEE 호환 PC 플러그인 카드를 공급하는 제조사 리스트는 VEE 자료를 참조하십시오.)

보드와 I/O 라이브러리는 쉽게 설치할 수 있으며 제조사가 제공하는 프로그램을 사용하여 보드를 설정할 수 있습니다. 장치에 보드를 연결하려면 각각의 사용설명서를 참조합니다. VEE에서 라이브러리를 임포트하면 ComputerBoard사의 I/O 라이브러리 측정 함수를 호출할 준비가 완료됩니다.

위의 그림은 100KHz A/D 보드를 사용한 데모 프로그램의 패널뷰이며, 다음 그림은 데이터 수집 함수를 호출하는 ComputerBoards의 I/O 라이브러리를 임포팅하는 VEE 오브젝트 입니다.

Meilhaus Electronic 사의 ME-DriverSystem

CD롬에 수록되어있는 윈도우용 ME-DriverSystem은 Meihaus Electronic에서 제공하는 모든 데이터 수집 보드에서 사용합니다. ME-DriverSystem은 설치시 VEE 메뉴에 등록되어 사용됩니다.

ME-DriverSystem for VEE를 설치한 후에 드라이버 함수는 VEE의 풀다운 메뉴를 통해서 접근되며, 다음 그림은 VEE의 ME Board 메뉴를 사용하는 사례입니다.

두 번째 메뉴레벨은 아날로그 입/출력, 디지털 입/출력 및 특정 보드만 제공하는 함수 등의 기능그룹을 가집니다. 다음 그림은 ME-3000 데이터 수집보드의 사용자 인터페이스 예제입니다.

세 번째 메뉴에는 me3000AISingle등의 실질적인 기능이 제공 됩니다. 다음 그림은 디테일뷰의 예제입니다.


GPIB 계측기 폴링하기

GPIB 계측기는 가끔 서비스 요청신호("SRQ")를 버스에 전송합니다. Agilent VEE에서는 어떤 계측기가 서비스를 요청했으며, 무슨 문제인지 확인할 수 있는 2 개의 오브젝트를 제공합니다. 이들 오브젝트는 I/O Advanced I/O에서 제공됩니다.

Interface Event 오브젝트는 전체 버스에 대한 이벤트를 보고합니다. 예를 들어, Interface Event가 hpib7에 대한 SRQ를 보고하도록 설정되었으면, 논리주소 7 인 인터페이스에 연결된 모든 계측기가 이벤트를 유발할 수 있습니다. 또한 직렬 또는 VXI 인터페이스의 이벤트를 검출하는데 Interface Event 오브젝트를 사용할 수도 있습니다.

Instrument Event 오브젝트는 특정 계측기로 부터의 상태 바이트를 리턴합니다. GPIB의 경우에는, 버스상의 개별 계측기를 폴링하는데 Instrument Event 오브젝트를 사용합니다.

사용예

다음 그림에서는 GPIB 서비스 요청을 프로세스하기 위해서 Interface Event 및 Instrument Event 오브젝트를 사용하는 방법을 설명합니다.:

이 프로그램에서 Interface Event 오브젝트는 hpib7에서 이벤트가 발생하는 것을 대기합니다, 즉, 논리주소가 7 인 GPIB 인터페이스. 그러나 Interface Event 오브젝트는 버스상의 어떤 계측기가 이벤트를 발생했는지는 표시하지 못합니다.

Interface Event 오브젝트의 event 출력은 2 개의 Instrument Event 오브젝트를 활성화시킵니다. 이들 오브젝트는 각각 GPIB 계측기를 폴링합니다.(HP 34401A 및 HP 54600A) 각 Instrument Event 오브젝트는 각각의 행위가 Any로 설정되고 마스크는 #H10로 설정되었습니다. Any로 설정하면 그 오브젝트는 이벤트가 발생할 때 까지 기다리며, 이벤트가 발생하여 리턴된 값에 #H10를 마스크하여 논리 AND 연산을 실행합니다. #H10는 상태바이트의 비트 4(DAV, "data available”)을 나타냅니다. 이 결과는 status 출력터미날로 전송됩니다.

관련정보

Instrument Event

인터페이스 이벤트


버스 메시지 모니터링 하기

Agilent VEE는 연속되는 메시지를 이용하여 계측기와 통신합니다. GPIB에서, 버스 메시지는 IEEE-488 표준을 따릅니다. 보통의 경우에는 이 메시지를 볼 수 없습니다. 그러나, I/O 프로그램을 디버깅할 때는 버스에 있는 메시지를 모니터링해야 할 필요가 있습니다. I/O 버스를 모니터링하기 위해서는, Bus I/O Monitor 오브젝트를 프로그램에 추가 하십시오. 이 오브젝트를 VXI나 serial 인터페이스의 메시지를 모니터링 할 수도 있습니다.

주의사항

Bus I/O Monitor는 VXIplug&play 드라이버에서 전송된 I/O 메시지는 나타낼 수 없습니다.

Bus I/O Monitor 오브젝트 추가하기

1. I/O [image] Bus I/O Monitor를 선택하십시오. Select I/O Channel 대화상자가 나타납니다.

2. hpib7와 같은 인터페이스를 선택하고 OK 버튼을 클릭합니다.

3. 작업영역에 오브젝트를 배치하십시오.

사용예

다음 예제 프로그램은 버스를 모니터링하기 위한 Bus I/O Monitor를 나타냅니다.

프로그램을 실행할 때마다, 버스 메시지의 시퀀스가 기록됩니다. 프로그램이 정지하면, 메시지를 스크롤할 수 있습니다. 디폴트 값으로 Bus I/O Monitor 오브젝트는 버퍼에 256라인의 정보를 저장할 수 있습니다. 버퍼의 크기를 변경할 수도 있습니다.

Bus I/O Monitor 오브젝트는 프로그램의 속도를 저하 시키며, 일반적으로 진단을 목적으로 사용합니다. 많은 프로그램이 계측기를 컨트롤하기 위하여 패널 드라이버나 컴포넌트 드라이버를 생성하게 되고, Bus I/O Monitor는 계측기와의 통신에 사용된 명령어나 메시지를 "캡쳐"하기 위해 사용합니다. 이들 명령어나 메시지는 향상된 I/O를 제공하는 다이렉트 I/O를 사용하는 계측기와 통신하기 위해 사용합니다.

관련정보

Bus I/O Monitor


숫자 입력하기

다음의 예제에서 보여주는 규칙을 적용하여 VEE 프로그램의 숫자 입력필드에 숫자를 입력할 수 있습니다. 하이픈(-)은 마이너스 기호로 사용되고, 마침표(.)는 십진법의 포인트로 사용됩니다. 필요시 숫자 입력 필드에 더하기 기호 (+)를 사용할 수 있습니다. 콤마(,)는 구분자로 사용할 수 없습니다. (텍스 입력필드는 임의의 문자 스트링을 사용할 수 있습니다.)

통상적인 숫자 입력

1001

1020768 (1,020,768은 아님)

12.12

-1.223

지수 입력

1.23E3 (1.23x10^3 또는 1230과 동일)

6.0225E23 (6.0225x10^23과 동일)

6.6256E-27 (6.6256x10^-27과 동일)

ISO 약자를 사용한 숫자 입력

1.23k (1.23x10^3 또는 1230과 동일)

3.61M (3.61x10^6과 동일)

2.3n (2.3x10^-9과 동일)

다음 표는 VEE에서 인식하는 숫자 입력을 위한 ISO 약자입니다.

약자 표기

X exa 10^18

P peta 10^15

T tera 10^12

G giga 10^9

M mega 10^6

k or K kilo 10^3

m milli 10^-3

u micro 10^-6

n nano 10^-9

p pico 10^-12

f femto 10^-15

a atto 10^-18

VEE는 입력한 숫자의 형식을 다른 형식으로 변경할 수도 있습니다. 예를 들면:

+1.23는 1.23로 변경됩니다. (더하기 기호가 생략됩니다.)

6.3E-9는 6.3n로 변경됩니다.

6.0225E23는 602.25E21로 변경됩니다. (standard number format에서)

관련정보

숫자 형식 변경하기


숫자 형식 변경하기

숫자를 디스플레이하는 모든 오브젝트에 사용되는 VEE의 디폴트 글로벌 숫자형식을 변경할 수 있고, 숫자를 디스플레이하는 특정한 오브젝트의 숫자형식을 변경할 수도 있습니다.

글로벌 숫자형식 변경하기

1. File 메뉴에서 Default Preferences를 선택하고, 대화상자에서 Number 탭을 선택하십시오.

2. 선택항목을 변경하여 원하는 숫자형식을 선택하십시오.

a. Integer는 정수의 숫자 기준을 설정합니다: Decimal, Octal, Hexadecimal 또는 Binary.(항목이나 화살표를 클릭하면, 드롭다운 리스트가 나타납니다.)

b. Real은 실수의 숫자 기준을 설정합니다: Standard, Fixed, Scientific 또는 Engineering. (항목이나 화살표를 클릭하면, 드롭다운 리스트가 나타납니다.)

c. Significant digits는 표시하고자 하는 자리수를 설정합니다. (한계는 18입니다). 원하는 자리수를 입력하십시오.

3. 변경내용을 저장하는 방법을 선택하십시오.

a. vee.rc에 새로운 디폴트값으로 변경된 내용을 저장하기 위해서는 Save 버튼을 클릭합니다.

b. 현재의 VEE 세션을 위해 변경된 내용을 저장하기 위해서는 OK 버튼을 클릭합니다. (이것은 File [image] New, Open 또는 Exit를 선택할 때까지 유효합니다.)

특정 오브젝트의 숫자 형식 변경하기

다음의 오브젝트들을 위해 독립적으로 숫자형식을 설정할 수 있습니다. 선택된 숫자형식은 오브젝트에 적용된 Global Format 대신에 사용됩니다. 지정된 오브젝트에만 적용됩니다.

Data [image] Continuous 메뉴에 있는 Slider나 Knob 오브젝트

Data [image] Constant 메뉴에 있는 Constant 오브젝트

Display 메뉴에 있는 AlphaNumeric 오브젝트

Display 메뉴에 있는 Logging AlphaNumeric 오브젝트

Display [image] Indicator 메뉴에 있는 Fill Bar, Meter, Tank 및 Thermometer 오브젝트

Display 메뉴에 있는 XY 그래픽 디스플레이 오브젝트

1. 오브젝트의 오브젝트 메뉴에서 Properties를 선택하고, 속성창에서 Number Format 항목을 클릭하십시오.

2. 대화상자에서, Global Format 체크박스를 선택하여 Global Format 적용을 해제하십시오. 숫자형식 항목(또는 화살표)을 클릭하여 드롭다운 리스트를 표시합니다.

3. 오브젝트에서 사용하고자 하는 숫자형식을 선택하고 OK 버튼을 클릭하십시오.


Trig Mode 변경하기

VEE에서는 삼각함수 값은 trig mode의 설정에 의해서 degree, radian 또는 gradian으로 입력되고 디스플레이됩니다.

새로 설정한 trig mode는 현재 작업중인 VEE에만 적용됩니다. 만약 VEE를 재 시작하면 trig mode는 디폴트 값(degree)으로 복귀합니다. 각각의 컨텍스트(Main, UserObject 및 UserFunction)는 각각의 trig mode 설정값을 갖습니다.

1. Main, UserObject 또는 UserFunction 윈도우의 오브젝트 메뉴에서 Properties를 선택합니다.

2. 속성창의 Trig Mode 항목에서 원하는 설정값(Degree, Radian 또는 Gradian)을 선택합니다.

주의사항

VEE 내부에서의 계산은 radian에서 이루어집니다. 따라서 trig mode를 Radian으로 설정하면, 프로그램이 조금 더 빠르게 실행됩니다. VEE는 계산하고자 하는 숫자를 라디안으로 변환하여 계산하고, 출력값을 다시 재 변환해야 하기 때문입니다.

단축키

Main, UserObject 또는 UserFunction 윈도우의 타이틀바를 더블 클릭하면, 바로 속성창이 디스플레이 됩니다.


상수 데이터 사용하기

VEE에서는 몇가지 타입의 상수 데이터를 제공합니다. 스칼라 상수 테이터를 사용하기 위해서는:

1. 상수 데이터 오브젝트 (Data [image] Constant [image])를 선택합니다. 선택 항목은 Text, UInt8, Int16, Int32, Real32, Real64, Coord, Complex, PComplex, Date/Time, 또는Record가 있습니다.

2. 상수 오브젝트 중에서 적절한 데이터 타입을 선택합니다. 가장 일반적인 타입은 Text, Int32, 및 Real64 상수 오브젝트 입니다.

a. Text 상수에서는, 텍스트 스트링을 입력할 수 있습니다. (최대 길이는 32,767 문자입니다.)

b. Int32 상수에서는, 32-bit 2의 보수 정수를 입력할 수 있습니다. (범위는 -2147483648에서 +2147483647까지 입니다.)

c. Real64 상수에서는, 64-bit 실수를 입력할 수 있습니다. (범위는 ±1.7976931348623157E308입니다.)

다음 예제에서는, Text, Int32, 및 Real64 상수 오브젝트가 VEE 프로그램 쓰레드에 연결되어 있습니다. 데이터 타입은 데이터를 전송 받은 오브젝트에 의해 필요한 타입으로 자동으로 변환됩니다. 이 예제에서 정수 3은 실수로 변환되고 6.24와 더하여 실수값으로 9.24를 출력합니다.

관련정보

상수 어레이 생성하기

데이터 슬라이더 및 노브 오브젝트 사용하기

데이터 선택 오브젝트 사용하기

데이터 입력 대화상자 사용하기

입력터미날에 있는 데이터종류 변환


데이터 슬라이더 및 노브 오브젝트 사용하기

VEE는 4가지 타입의 데이터 슬라이더 및 노브 오브젝트를 제공합니다: Real64 Slider, Int32 Slider, Real64 Knob 및 Int32 Knob. 이들 오브젝트는 선형 슬라이더 또는 원형 노브를 이동하여 프로그램에서 값을 입력할 수 있도록 합니다.

Real64 Slider 또는 Int32 Slider 사용하기

1. 메뉴 Data [image] Continuous [image] Real64 Slider 또는 Int32 Slider를 선택하여 작업영역에 오브젝트를 배치합니다. 디폴트로, Real64 Slider 오브젝트는 0에서 1사이의 범위를 가집니다; Int32 Slider의 범위는 0부터 100까지 입니다.

2. 다음의 3가지 방법을 사용하여 현재의 값(상단에 있는 필드에 표시됩니다)을 변경합니다:

a. 슬라이더 노브를 클릭한 상태에서 마우스를 위 또는 아래로 이동합니다.

b. 값 옆에 있는 스핀 필드 화살표를 클릭합니다.

c. 값을 클릭하고 새로운 값을 입력합니다.

3. 범위를 변경하기 위해서는, 상단 또는 하단 한계값을 클릭하고 값을 입력합니다.

Real64 Knob 또는 Int32 Knob 사용하기

1. 메뉴 Data [image] Continuous [image] Real64 Knob 또는 Int32 Knob를 선택하여 작업영역에 오브젝트를 배치합니다. 디폴트로, Real64 Knob 오브젝트는 0에서 1 사이의 범위를 가집니다; Int32 Knob 범위는 0부터 100까지 입니다.

2. 다음의 3가지 방법을 사용하여 현재의 값(하단에 있는 필드에 표시됩니다)을 변경합니다:

a. 원형 노브를 클릭한 상태에서 마우스를 노브 주위로 회전합니다.

b. 값 옆에 있는 스핀 필드 화살표를 클릭합니다.

c. 값을 클릭하고 새로운 값을 입력합니다.

3. 범위를 변경하기 위해서는, 상단 또는 하단 한계값을 클릭하고 값을 입력합니다.

관련정보

Int32 Knob

Int32 Slider

Real64 Knob

Real64 Slider


데이터 선택 오브젝트 사용하기

VEE는 6개 타입의 데이터 선택 오브젝트를 제공합니다: Radio Buttons, Cyclic Button, List, Drop-Down List, Pop-Up List, 및 Slider List.

데이터 선택 오브젝트 사용하기

(이 프로시져는 Radio Buttons 오브젝트를 설명하고 있으며, 모든 6개 타입의 데이터 선택 오브젝트에도 적용할 수 있습니다.)

1. 메뉴 Data [image] Selection Control [image] Radio Buttons을 선택하고, 작업영역에 오브젝트를 배치합니다. 디폴트 라디오 버튼 선택은 Item 1, Item 2, and Item 3입니다.

2. 디폴트 선택항목을 변경하기 위해서는, 오브젝트 메뉴에서 Edit Enum Values을 선택합니다. Edit Enum Values 대화상자가 나타납니다.

3. 필요한 대로 값을 편집합니다. 앞으로 이동하기 위해서는 탭키(또는 아래 화살표)를 사용하고, 뒤로 이동하기 위해서는 Shift+Tab(또는 위 화살표)키를 사용합니다. 각 필드에 있는 텍스트를 변경할 수 있고, 필드를 추가하기 위해서는 마지막 필드에서 탭키를 누르고 추가하고자 하는 텍스트를 입력합니다.

4. 필드 편집을 완료하고, OK를 클릭합니다.

데이터 선택 오브젝트 타입 변경하기

1. 오브젝트 메뉴에서 Properties를 선택하면 속성창이 나타납니다.

2. Appearance 영역의 Format 항목에서 사용하고자 하는 타입을 선택합니다.

관련정보

Selection Control


데이터 입력 대화상자 사용하기

메뉴 Data [image] Dialog Box 아래에 있는 3가지 타입의 기본 제공되는 대화상자 오브젝트는 프로그램에서 데이터를 입력할 수 있도록 알려줍니다. 제공되는 오브젝트는 Text Input, Int32 Input, 및 Real64 Input입니다.

(다음의 프로시져는 Real64 Input 대화상자를 설명하고 있으며, Int32 Input 및 Text Input 오브젝트에도 유사하게 적용합니다.)

1. Real64 Input 대화상자 오브젝트를 작업영역에 추가합니다 (Data [image] Dialog Box [image] Real64 Input).

Real64 Input 오브젝트가 실행되면, 사용자에게 실수 입력을 요구하는 팝업 대화상자를 디스플레이 합니다. 다음의 항목을 설정할 수 있습니다:

a. Prompt/Label은 대화상자에 디스플레이 되는 메시지를 입력합니다.

b. Default Value는 대화상자에 디스플레이 되어야 하는 디폴트 값을 입력합니다.

c. Value Constraint는 입력되는 값이 반드시 매칭되어야 하는 범위 또는 다른 테스트를 입력합니다.

d. Error Message는 사용자가 입력한 데이터가 Value Constraint를 만족하지 않는 경우에 디스플레이 되어야 하는 에러 메시지를 입력합니다.

2. Prompt/Label 필드를 Please enter a real value로 변경합니다.

3. 프로그램을 실행하면 팝업 대화상자가 나타납니다.

4. 대화상자에 11을 입력하고 OK를 누르면 에러 메시지가 나타납니다.

5. 에러 메시지 박스에 있는 OK를 클릭합니다. Real64 Input 대화상자에 0에서 10사이의 범위에 있는 숫자를 입력하고 OK를 클릭합니다. 숫자가 입력되고 Value 터미날로 출력됩니다.

관련정보

Dialog Box 메뉴항목

기본 제공되는 Dialog Box 오브젝트에 대하여


공식 입력하기

VEE에서 기본적인 수학연산 오브젝트는 Formula 오브젝트입니다:

작업영역에 배치해 보면, 오브젝트는 미리 입력된 표현식과 하나의 데이터 입력터미날 A를 가지고 있습니다. 표현식에 있는 변수 A 는데이터 입력터미날 A에 대응됩니다.

표현식에 있는 각 변수는 변수와 같은 이름을 가진 입력터미날에 있는 데이터로 대체됩니다. 변수 이름과 터미날 이름은 대소문자를 구분하지 않습니다. a+1이라는 표현식에서, 변수 a는 터미날 A의 값으로 대체합니다.

표현식에 있는 변수는 입력터미날과 대응되어야 하고, 아닌 경우에는 에러가 발생합니다. 만약 전역변수를 사용한다면 대응되는 터미날이 필요하지 않습니다.

Formula 오브젝트 사용하기

1. 작업영역에 Formula 오브젝트를 추가합니다. (Device [image] Formula).

2. Formula 오브젝트에 있는 표현식을 클릭하여 원하는 대로 표현식을 수정합니다. 예를 들어, 2*A+abs(B)+sin(C)+6라는 표현식을 입력합니다. Enter키를 눌러 복수의 라인에서 하나이상의 표현식을 입력할 수 있습니다.

3. 필요한 만큼 데이터 입력터미날을 추가합니다. (데이터 입력터미날 영역에 마우스 포인터를 놓고 CTRL+A를 누릅니다.) 사용하지 않는 데이터 입력터미날을 삭제합니다. (데이터 입력터미날 영역에 마우스 포인터를 놓고 CTRL+D를 누릅니다.)

4. 모든 데이터 입력터미날을 적절한 데이터 출력 오브젝트에 연결합니다. Result 데이터 출력터미날을 디스플레이 오브젝트에 연결하여 프로그램을 완료합니다.

VEE 8.0 부터는, Formula 오브젝트에서 Code Completion 및 Code Insight를 사용할 수 있습니다.

사용예

다음 프로그램은 표현식을 실행하고 결과를 디스플레이하기 위하여 Formula 오브젝트를 사용합니다.

관련정보

변수 생성하기

Formula

데이터 처리

코드 자동완성기능 사용하기

코드 인싸이트 기능


수학 연산자 및 함수 사용하기

VEE에서는 150개 이상의 기본 제공 수학연산 오브젝트가 연산자 와 함수 형태로 제공됩니다. 이 오브젝트들은 설명 형식의 이름, 표현식, 적절한 데이터 입력 터미날로 설정된 Formula 오브젝트입니다. 이 연산자나 함수를 사용하기 위해서는, 메뉴 Device   [image] Function & Object Browser 또는 툴바 버튼을 사용합니다.

Function & Object Browser 버튼

수학연산 오브젝트는 다음과 같이 수정할 수 있습니다:

1. 표현식은 유효한 VEE 표현식으로 변경합니다.

2. 새로 입력한 표현식을 설명하기 위하여 이름을 변경합니다.

3. 필요한 대로 데이터 입력터미날을 추가하거나 제거합니다.

팁

1. 표현식을 “연결”하기 위하여 여러개의 formula 오브젝트를 사용하지 말고, 하나의 오브젝트에서 수학 연산자와 함수를 하나의 표현식으로 병합하여 사용하십시오. VEE 프로그램은 오브젝트를 적게 사용할수록 빨리 실행됩니다.

이렇게 사용하지 마십시오:

대신에 이렇게 사용하십시오:

2. 표현식을 변경할 때는, 변수 이름에 대응하는 입력터미날을 사용해야 합니다.

3. 데이터 입력터미날의 이름을 변경할 때는, 표현식에 있는 변수 이름에 대응하여 변경해야 합니다.

4. 오브젝트를 아이콘으로 축소하기 전에, 새로운 표현식이 하는 일을 설명하는 이름으로 변경해야 합니다. 이것은 매번 오브젝트 이름을 변경해야 하는 프로그래밍에 있어 좋은 연습이 됩니다.

관련정보

데이터 처리


표현식에서 혼합된 데이터 타입 사용하기

VEE는 필요한 대로 데이터 타입을 자동으로 변환하기 때문에, 혼합된 데이터 타입을 가지는 표현식을 사용할 수 있습니다. 수학 연산 오브젝트에 표현식을 입력하고 데이터 입력터미날에 데이터 소오스를 연결합니다.

사용예

다음 프로그램에서는, Formula 오브젝트는 입력터미날 A에는 파형 데이터를, 입력터미날 B에는 실수 데이터를 전송 받습니다. Formula 오브젝트는 실수값 0.75를 파형에 있는 256개의 각 포인트에 대하여 절대값으로 더하는 표현식 abs(A)+B를 연산합니다.

관련정보

데이터 처리


If/Then/Else 오브젝트에서 표현식 사용하기

VEE는 수학 표현식을 연산하고 결과에 따라 프로그램의 흐름을 분기합니다. 기본적인 조건문 오브젝트는 If/Then/Else 오브젝트입니다.

If/Then/Else 오브젝트에 있는 디폴트 트랜잭션을 다른 조건 표현식으로 변경할 수 있으며, 메뉴 Flow [image] Conditional 아래에서 제공하는 오브젝트를 사용할 수 있습니다. Conditional 오브젝트는 표현식, 설명 형식의 이름 및 데이터 입력터미날로 미리 설정된 If/Then/Else 오브젝트 입니다.

If/Then/Else 오브젝트 사용하기

1. If/Then/Else 오브젝트를 작업영역에 추가합니다 (Flow [image] If/Then/Else).

2. If/Then/Else 오브젝트에 있는 표현식 필드를 클릭하고, 필요한대로 표현식을 수정합니다. 예를 들어, 표현식 A==B OR B>=C를 입력합니다.

3. 필요시 입력터미날을 추가합니다. (입력터미날 영역에 포인터를 위치하고 Ctrl+A를 누릅니다.) 사용하지 않는 입력터미날은 제거합니다. (터미날 위에 포인터를 놓고 Ctrl+D를 누릅니다.)

4. 모든 데이터 입력터미날을 연결하고, 하나 또는 2개의 출력터미날을 연결하여 프로그램을 완료합니다. 표현식이 “참”인 경우에는, 표현식의 결과(일반적으로 1)는 Then 터미날로 출력됩니다. 표현식이 “거짓”인 경우에는, 0이 Else 터미날로 출력됩니다.

5. 필요시, 오브젝트에 Else If 조건문을 추가합니다.

사용예

다음 프로그램에서는, 표현식 A==B OR B*C==50이 참인 경우에는, Then 출력터미날은 UserObject1을 활성화합니다. 표현식이 거짓인 경우에는, Else 출력터미날은 UserObject2를 활성화합니다.

관련정보

프로그램 내에서 분기하기

Conditional 메뉴

If/Then/Else

데이터 처리


트랜잭션에서 표현식 사용하기

VEE 수학 표현식은 연산되고, To File 또는 From File 오브젝트 같은 I/O 트랜잭션에 사용할 수 있습니다.

To File 트랜잭션에서의 표현식 연산 예제

1. To File 오브젝트를 작업영역에 추가합니다 (I/O [image] To [image] File).

2. WRITE TEXT a EOL 트랜잭션을 더블 클릭하면, I/O Transaction 대화상자가 나타납니다.

3. 디폴트 표현식을 클릭하고, a를 a+sin(b)로 표현식을 변경합니다:

4. OK 버튼을 클릭하여 새로운 트랜잭션(WRITE TEXT a+sin(b) EOL)을 저장합니다.

5. 데이터 터미날 B를 오브젝트에 추가하고, 데이터 입력터미날을 연결합니다.

다음 프로그램 에서는, To File 오브젝트는 a (1)의 값을 sin(b)의 값에 더하고(사인 30도는 0.5입니다.), 결과값 1.5를 myFile 이라는 이름을 가진 파일로 출력합니다.

관련정보

Formula, From File, To File

데이터 처리


스트링의 길이 찾기

1. Function & Object Browser를 사용하여 strLen(str) 오브젝트를 작업영역에 추가합니다. – 툴바에서 [image] 를 클릭합니다.

2. 스트링 데이터를 출력하는 오브젝트를 str 데이터 입력터미날에 연결합니다. Result 출력터미날은 원하는 대로 연결합니다.

3. 프로그램을 실행합니다. strLen(str)오브젝트가 실행되면, 스트링의 길이가 Result 터미날로 출력됩니다.

사용예

strLen(str)오브젝트는 스트링의 길이를 한 개의 바이트 Int32 숫자로 출력합니다. str이 1차원 스트링 어레이인 경우에는, strLen(str)는 어레이에 있는 각 앨리먼트의 길이를 나타내는 어레이를 출력합니다:

관련정보

strLen(str)


서브 스트링 추출하기

2개의 함수는 서브 스트링을 추출할 수 있습니다.

strFromThru(str,from,thru)
strFromLen(str,from,len)

여기서:

str은 원래의 스트링입니다.

from은 서브 스트링이 시작하는 위치입니다.

thru은 서브 스트링이 끝나는 위치입니다.

len은 서브 스트링의 길이입니다.

스트링에 있는 모든 문자의 위치는 0부터 시작합니다. 즉, 첫번째 문자는 0의 위치에 있습니다.

strFromThru(str,from,thru)를 사용하여 서브 스트링 추출하기

1. Function & Object Browser를 사용하여 strFromThru 오브젝트를 작업영역에 추가합니다.

툴바에서 [image] 를 클릭하여 아래 내용을 살펴 봅니다.
Type: Built-in Functions
Category: String
Member: strFromThru

2. 스트링 데이터 소오스를 str 입력 터미날에 연결합니다.

3. from 및 thru 값을 지정합니다:

a. 데이터를 from 및 thru 입력터미날에 연결하십시오.

또는

b. from 및 thru를 지정하도록 표현식을 변경하십시오. 예를 들어, 표현식 strFromThru(str,0,5)는 str에 있는 스트링에서 0부터 5 위치(첫 6개의 문자)에 있는 문자를 출력합니다. 이렇게 하는 것은 from 및 thru 터미날을 삭제하기 위한 것입니다.

사용예

다음 예제는 스트링의 첫 6개의 문자를 출력합니다:

관련정보

strFromLen (str,from,len)

strFromThru (str,from, thru)


스트링 연결하기

더하기(+) 연산자와 곱하기(*) 연산자를 이용하여 스트링을 연결할 수 있습니다.

사용예

2 개의 스트링을 연결하는 경우:

하나의 스트링과 하나의 숫자를 연결하는 경우(숫자가 스트링으로 변환됨):

숫자와 스트링을 곱하면 스트링이 곱한 숫자 만큼 반복됩니다.:

관련정보

Accumulator

Concatenator


스트링 비교하기

예제

다음 프로그램은 conditional 오브젝트를 사용하여 2개의 스트링이 동일한지를 비교합니다. 만약 2개의 스트링이 정확하게 동일(스페이스 포함)하다면, 1 이 Then 터미날로 출력되고, 2 개의 스트링이 다른 경우에는 0 이 Else 터미날로 출력됩니다. 이 비교는 대소문자를 구분합니다. (Now는 now와 동일하지 않습니다.)

관련정보

Conditional 메뉴

strPosStr (str1,str2)


숫자를 스트링으로 변환하기

To String 오브젝트를 사용하여 숫자를 스트링으로 변환할 수 있습니다. 다음 순서는 초단위의 현재 시간을 타임스탬프를 가진 스트링으로 변환하는 방법입니다.

1. 작업영역에 To String 오브젝트(I/O [image] To [image] String)를 추가하십시오. 오브젝트 아이콘을 더블클릭하여 오픈뷰 상태로 만듭니다.

2. 트랜잭션 필드를 더블클릭하면, I/O Transaction 대화상자가 디스플레이 됩니다. 디폴트 트랜잭션은 WRITE TEXT a EOL입니다.

3. DEFAULT FORMAT 항목을 클릭하면 드롭다운 메뉴가 나타납니다. TIME STAMP FORMAT를 선택하고 OK 버튼을 클릭합니다.

4. Function & Object Browser를 사용하여 now() 오브젝트를 To String 오브젝트의 왼쪽에 추가하십시오.

툴바에서, [image] 를 클릭하고 아래와 같이 선택합니다.
Type: Built-in Functions
Category: Time & Date
Member: now

now() 오브젝트를 To String 오브젝트의 데이터 입력터미날로 연결하고, AlphaNumeric 디스플레이 오브젝트를 To String 오브젝트의 오른쪽에 배치합니다. To String 오브젝트의 출력핀을 AlphaNumeric 디스플레이 오브젝트의 입력핀으로 연결합니다.

5. 프로그램을 실행합니다. 실행결과를 보면, now() 오브젝트는 초단위의 시간을 출력하고, 이 값은 To string 오브젝트에 의해 time stamp format으로 변환되고, 디스플레이 됩니다.

관련정보

intToChar(a)

To String

VEE Advanced Techniques; 메뉴얼 : "Using Transaction I/O" 참조


스트링을 숫자로 변환하기

숫자로 판독이 가능한 숫자정보를 포함하는 스트링은 From String을 사용하여 숫자를 추출할 수 있습니다.

1. 작업영역에 From String 오브젝트(I/O [image] From [image] String)를 추가하십시오. 오브젝트 아이콘을 더블클릭하여 오픈뷰 상태로 만듭니다. 트랜잭션 필드를 더블클릭하면, I/O Transaction 대화상자가 디스플레이 됩니다. 디폴트 트랜잭션은 READ TEXT x REAL64입니다. 텍스트 스트링을 읽어서 가능한 실수를 출력합니다.

2. . Text 상수 오브젝트를 From String 오브젝트 왼쪽에 추가하고, Text 오브젝트의 데이터 출력터미날을 From String 오브젝트의 데이터 입력터미날로 연결합니다. AlphaNumeric 디스플레이 오브젝트를 추가하고, From String 오브젝트의 데이터 출력터미날을 AlphaNumeric 오브젝트의 데이터 입력터미날로 연결합니다.

3. Text 오브젝트에 Item number: A1222 스트링을 입력하고 프로그램을 실행합니다. 실수값 1222가 출력됩니다.

관련정보

charToInt(a)

From String

Help =>Contents and Index => Tell Me About... => I/O Transaction


상수 어레이 생성하기

Text, Int32 또는 Real64같은 Constant 오브젝트를 사용하여 1차원 어레이를 생성할 수 있습니다. 1차원 어레이의 각 값을 수동으로 설정할 때 사용합니다.

9개의 앨리먼트를 가진 1차원 텍스트 어레이 생성하기

1. 작업영역에 텍스트 상수 오브젝트를 추가하십시오 (Data [image] Constant [image] Text).

2. 오브젝트 메뉴에서 Properties를 선택 하십시오. 속성창을 살펴보면, Text 상수 오브젝트는 디폴트 값에 의해서 DataShape 항목이 Scalar로 설정되어 있습니다.

3. 어레이 사이즈를 설정하기 위해서는, Data Shape Configuration 영역의 DataShape 항목에 있는 Scalar를 클릭하여 나타나는 리스트에서 Array 1D 어레이를 선택하고, ArraySize 항목에 9를 입력합니다.

4. 앨리먼트의 숫자를 고정하여 사용하기 위해서는 ArraySizeFixed 항목을 True로 변경합니다. 만약 어레이에 앨리먼트를 추가하고자 한다면, ArraySizeFixed 항목을 False로 변경하십시오.

5. Text 상수 오브젝트는 앨리먼트가 0000:부터 0008:까지 디스플레이되며, 각 앨리먼트 값은 0(Zero)입니다.

6. 각 앨리먼트의 값을 설정하기 위해서는 0000:의 오른쪽에 있는 입력영역을 클릭 또는 더블 클릭하여 필요한 텍스트 스트링을 입력하십시오. Tab(아래화살표 키)이나 Shift+Tab(위 화살표 키)키를 이용하면, 위 아래의 입력영역으로 쉽게 이동할 수 있습니다.

9개의 앨리먼트를 가진 1차원 텍스트 어레이 사용예

관련정보

Constant 메뉴항목

어레이 배치하기

표현식으로 어레이 생성하기


어레이 배치하기

어레이를 생성하고 어레이의 값을 셋팅 하고자 할 때 어레이를 배치하여 사용할 수 있습니다.

메뉴바의 Data [image] Allocate Array 메뉴 아래에서 사용하고자 하는 데이터 종류에 따라 적절한 오브젝트 찾아서 사용하십시오. 이들 오브젝트는 텍스트 어레이를 위한 Alloc Text와 숫자 어레이를 위한 Alloc Boolean, Alloc UInt8, Alloc Int16, Alloc Int32, Alloc Int64, Alloc Real32, Alloc Real64, Alloc Coord, Alloc Complex 또는 Alloc PComplex 오브젝트등이 있습니다.

팁

모든 VEE 어레이 인덱스의 기준은 0(Zero)입니다. 첫번째 앨리먼트는 어떤 차원에서든지 인덱스 0을 가집니다.

배치된 어레이는 1부터 10차원까지가 될 수 있습니다. 일반적으로 되풀이 되는 초기값으로 채워집니다.

어레이의 값은 하나의 데이터 컨테이너로써 오브젝트에서 오브젝트로 전달됩니다.

1차원 정수와 실수 어레이는 값의 선형 혹은 로그 스케일 분할로 초기화 됩니다.

어레이를 배치하기 위해 필요한 메모리는 차원 수, 차원의 크기, 데이터 종류에 의해서 결정됩니다.

아래의 순서는 여러 종류의 어레이를 어떻게 배치하는지를 보여줍니다.

1차원 실수 어레이 배치하기

1. 작업영역에 Alloc Real64 오브젝트를 추가하십시오. (Data [image] Allocate Array [image] Real64).

2. Alloc Real64 오브젝트는 디폴트에 의해서 선형 균등 분할된 1차원 어레이로 배치됩니다. Lin Ramp 항목(혹은 화살표)을 클릭하면 드롭다운 메뉴가 나타납니다.

3. Init Value, Lin Ramp, 또는 Log Ramp를 선택할 수 있으며, 값의 로그 스케일 균등분할을 선택하기 위하여 Log Ramp를 클릭하십시오.

4. Display 메뉴에서 XY Trace 오브젝트를 생성하여, Alloc Real64 오브젝트에 연결하고 프로그램을 실행하십시오.

2차원 이상의 실수 어레이 배치하기

1. 작업영역에 Alloc Real64 오브젝트를 추가하십시오. (Data [image] Allocate Array [image] Real64).

2. Alloc Real64 오브젝트는 디폴트에 의해서 선형 균등 분할된 1차원 어레이로 배치됩니다. Num Dims항목(혹은 화살표)을 클릭하면 드롭다운 메뉴가 나타납니다.

3. 2에서 10사이에서 차원을 선택하십시오. 오브젝트가 새로운 형태로 조정됩니다.

4. Dim 사이즈 항목에서 첫 번째를 4로, 두 번째를 3으로 변경하십시오. 그리고 Display 메뉴에서 AlphaNumeric 오브젝트를 생성하여 Alloc Real64 오브젝트의 출력핀에 연결하십시오.

5. 프로그램을 실행합니다. 만약 Num Dims을 2로 설정하였으면 AlphaNumeric 오브젝트를 전체 어레이가 보이도록 사이즈를 크게 조정하십시오. 만약 Num Dims가 2보다 크다면, VEE는 2차원보다 큰 경우는 디스플레이 할 수 없기 때문에 AlphaNumeric 오브젝트는 어레이 사이즈를 디스플레이 합니다.

2차원보다 큰 경우에는, 데이터의 분석을 위한 PV-WAVE로 데이터를 출력하기 위하여 To File 오브젝트의 CONTAINER를 사용해야 합니다.

큰 어레이를 사용하면 컴퓨터의 메모리가 많이 필요합니다. 5차원을 넘어서면, 컴퓨터가 적정한 메모리 용량을 가지고 있더라도 좀더 작은 사이즈의 파라미터로 설정하는 것이 필요합니다. 만약 어레이가 너무 크다면 VEE는 메모리 용량을 초과하게 되어 에러가 발생합니다.

관련정보

표현식으로 어레이 생성하기

어레이의 값 변경하기

상수 어레이 생성하기

데이터로 어레이 생성하기

Allocate Array 메뉴항목

To File


Trig Mode 변경하기

어레이의 값 변경하기

a[2]=b 에서와 같이 지정연산자를 이용하여 어레이의 값을 변경할 수 있습니다. 표현식이나 터미날을 수정하여 어레이의 특정 앨리먼트에 새로운 값을 할당할 수 있습니다. 그리고 출력값은 프로그램의 다른 부분에서 사용할 수 있습니다.

1차원 실수 어레이에 새로운 값 설정하기

1. Allocate Array 오브젝트 (Data [image] Allocate Array [image])를 생성하여 배치하고, Function & Object Browser를 이용하여 assignment 연산자 a[2]=b를 추가하십시오.

툴바에서, [image] 를 클릭하고 아래와 같은 해당 항목을 찾으십시오.
Type: Operators
Category: Assignment
Member: a[2]=b

2. assignment 연산자의 공식을 a[b]=c로 변경하고, 데이터 입력터미날을 추가하십시오.

3. 아래와 같이 오브젝트의 핀을 연결하십시오.

a. Allocate Array 오브젝트의 Array 데이터 출력핀을 assignment 연산자 오브젝트의 a 데이터 입력핀에 연결합니다.

b. 어레이의 위치를 지정하기 위하여 하나의 값을 b 데이터 입력핀에 연결합니다. Int32같은 오브젝트는 이 입력값을 제공할 수 있습니다.

c. 하나의 값을 c 데이터 입력핀에 연결합니다. 이것은 어레이의 위치에 할당하고자 하는 새로운 값입니다.

완성된 프로그램은 아래 그림과 같습니다. assignment 연산자는 입력핀 a로 어레이 데이터를 전송 받고, 입력핀 b에서 지정한 위치에, 입력핀 c로 입력된 실수값을 할당합니다.

관련정보

manual example 디렉토리에 있는 manual06.vee 및 manual07.vee를 참조하십시오.
Help [image] Open Example...

어레이 배치하기

Set Values

참조 예제

Manual06.vee 또는 Manual07.vee


어레이에서 값 추출하기

Get Values 오브젝트는 어레이에서 값을 추출하기 위해 사용합니다.

1. 작업영역에 Get Values 오브젝트 (Data [image] Access Array [image] Get Values)를 추가합니다. 아이콘을 더블클릭하여 오브젝트를 오픈뷰로 전환합니다.

2. 어레이를 출력하는 오브젝트를 Get Values에 있는 Ary 데이터 입력 터미날에 연결합니다. Get Values가 실행되면, SubAry 터미날은 Get Values의 표현식 필드에 의해 서브 어레이를 출력합니다. 디폴트 표현식은 본래의 어레이 전체가 출력되는 Ary입니다.

나머지 데이터 출력 터미날은 Ary 터미날에 있는 본래의 어레이에 대한 정보를 제공합니다.

a. Type은 어레이의 데이터 타입을 출력합니다.

b. NumDims은 어레이의 차원수를 출력합니다.

c. DimSizes는 각 차원의 사이즈(앨리먼트의 수)를 리스팅한 1차원 어레이를 출력합니다.

d. Totsize는 어레이의 전체 크기(전체 앨리먼트 개수)를 출력합니다.

관련정보

manual08.vee

표현식에서 어레이 생성하기

표현식에서 어레이나 어레이 앨리먼트 사용하기

Get Values


데이터로 어레이 생성하기

Collector 오브젝트는 데이터로 어레이를 생성합니다. 다음의 순서는 Collector 오브젝트를 사용하는 예제 프로그램입니다. 1D 어레이로 데이터를 생성하기 위하여 Sliding Collector 오브젝트를 사용합니다.

1. 작업영역에 Collector 오브젝트 (Data [image] Collector)를 추가하십시오. 오브젝트 아이콘을 더블클릭하여 아이콘뷰를 오픈뷰로 전환합니다.

2. For Count, random 및 AlphaNumeric 오브젝트를 작업영역에 추가하고, 오브젝트의 핀을 아래 프로그램과 같이 연결합니다.

3. 프로그램을 실행하십시오. (전체 어레이를 볼수 있도록 AlphaNumeric 오브젝트의 크기를 조정하십시오.)

Sliding Collector (Data [image] Sliding Collector)오브젝트는 Collector 오브젝트와 다음과 같은 2가지 측면에서 다릅니다.

1. 출력은 항상 1차원 어레이입니다.

2. XEQ 터미날이 없으며, 대신에 지정하는 트리거 값 마다 트리거를 발생합니다.

관련정보

표현식으로 어레이 생성하기

Collector

Sliding Collector

참조 예제

Manual09.vee


표현식으로 어레이 생성하기

표현식으로 다른 어레이의 일부를 지정하여 어레이를 생성할 수 있습니다. 지정하는 서브 어레이는 같은 차원이어야 하고 각 차원에 있는 값의 개수는 동일해야 합니다.

B가 5-by-5매트릭스(2차원 어레이)라고 가정하면,

 | 0: | 1: | 2: | 3: | 4:
0: | 0 | 0.2 | 0.4 | 0.6 | 0.8
1: | 1 | 1.2 | 1.4 | 1.6 | 1.8
2: | 2 | 2.2 | 2.4 | 2.6 | 2.8
3: | 3 | 3.2 | 3.4 | 3.6 | 3.8
4: | 4 | 4.2 | 4.4 | 4.6 | 4.8

표현식 [B[1,1],B[2,2],B[0,0],B[2,3]]는 아래의 1차원 어레이를 출력합니다.

0: 1.2

1: 2.4

2: 0

3: 2.6

또한, 표현식으로 어레이 상수를 생성할 수도 있습니다. 표현식 [1.1,1.3,1.2]는 3개의 앨리먼드의 1차원 실수 어레이를 생성합니다.

0: 1.1

1: 1.3

2: 1.2

관련정보

어레이에서 값 추출하기

표현식으로 어레이나 어레이 앨리먼트 사용하기


표현식에서 어레이나 어레이 앨리먼트 사용하기

어레이에서 값 추출하기는 서브 어레이를 지정하기 위해 사용하는 Get Values 오브젝트를 사용했을 때 어떻게 표현식을 표현하는지를 설명합니다. 이번 장에서는 Formula 오브젝트 같이 표현식을 입력할 수 있는 VEE 오브젝트에서 어레이나 서브 어레이를 지정하는 방법을 설명합니다.

표현식에서, 아래와 같은 문법을 이용하여 어레이를 사용할 수 있습니다.

대괄호 [ ]는 서브 어레이를 지칭하기 위한 파라미터를 입력하기 위해 어레이 이름 뒤에 사용합니다. 예를 들어 B가 2차원 어레이라면, B[0,0]는 어레이의 첫 번째 앨리먼트를 지칭합니다.

쉼표 (,): 2차원 이상의 어레이는 쉼표(,)를 이용하여 구분합니다. 각 서브 어레이는 각 어레이 차원에 대해서 하나의 정확한 정의을 가져야 합니다.

콜론 (:)은 어레이 차원에서 앨리먼트의 범위를 나타냅니다.

별표 (*)는 특정한 어레이 차원에서 모든 앨리먼트를 지칭할 때 사용하는 와일드카드 입니다.

모든 VEE 어레이 인덱스는 0(Zero)부터 시작합니다. 첫번째 앨리먼트는 어느 차원에서든지 인덱스 0(zero)입니다.

사용예

A가 1차원 어레이 이고 10개의 앨리먼트를 갖는 경우입니다.

0: 100m

1: 0.2

2: 0.3

3: 0.4

4: 0.5

5: 0.6

6: 0.7

7: 0.8

8: 0.9

9: 1

아래의 표현식들은 A어레이의 부분들을 추출하는 경우입니다.

A 혹은 A[*]는 A 어레이 전체를 출력합니다.

A[1]는 A 어레이에서 2번째 앨리먼트(인덱스1)인 스칼라 값을 출력합니다.

0.2

A[1:1]는 A 어레이에서 2번째 앨리먼트(인덱스1)를 1차원 어레이 값으로 출력합니다.

   0: 0.2

A[0:5]는 A 어레이에서 순서대로 6개의 앨리먼트(인덱스0에서 5까지)를 가진 1차원 어레이 값으로 출력합니다.

0: 100m

1: 0.2

2: 0.3

3: 0.4

4: 0.5

5: 0.6

A[2:*]는 A 어레이에서 3번째 앨리먼트부터 마지막 앨리먼트까지를 가진 1차원 어레이 값으로 출력합니다. 이 경우에 인덱스 2부터 인덱스 9까지의 앨리먼트 입니다.(출력되는 서브 어레이는 인덱스는 0부터 7까지 재구성됩니다.)

0: 0.3

1: 0.4

2: 0.5

3: 0.6

4: 0.7

5: 0.8

6: 0.9

7: 1

B가 2차원 어레이 이고 5 by 5 매트릭스 앨리먼트를 갖는 경우입니다.

 | 0: | 1: | 2: | 3: | 4:
0: | 0 | 0.2 | 0.4 | 0.6 | 0.8
1: | 1 | 1.2 | 1.4 | 1.6 | 1.8
2: | 2 | 2.2 | 2.4 | 2.6 | 2.8
3: | 3 | 3.2 | 3.4 | 3.6 | 3.8
4: | 4 | 4.2 | 4.4 | 4.6 | 4.8

다음의 표현식은 어레이B의 일부분을 추출합니다:

B 혹은 B[*,*] 는 B 어레이 전체를 출력합니다.

B[*] 는 에러를 발생합니다. 이 표현식은 1차원을 지칭하고 있으나, B는 2차원이기 때문입니다.

B[1,2] 는 2번째줄(인덱스 1)의 3번째 앨리먼트(인덱스 2)에 있는 스칼라 값을 출력합니다.

1.4

B[1,*] 는 2번째줄(인덱스 1)의 모든 앨리먼트를 1차원 어레이로 출력합니다.

0: 1

1: 1.2

2: 1.4

3: 1.6

4: 1.8

B[1,1:*] 는 1번째줄(인덱스 1)의 1번째 앨리먼트(인덱스 0)를 제외한 모든 앨리먼트를 1차원 어레이로 출력합니다.

0: 1.2

1: 1.4

2: 1.6

3: 1.8

관련정보

어레이에서 값 추출하기

표현식으로 어레이 생성하기


측정결과를 저장하기 위해 어레이 사용

데이터 타입은 두 가지 방법으로 저장됩니다:

• 스칼라 값(9 또는 (32,@10)와 같은 단일 숫자)

-또는-

• 1부터 10 차원까지의 어레이.

주의사항

VEE 데이터 타입의 개요는 데이터 종류(Type)에서 설명되었습니다.

VEE에서 어레이의 인덱스는 0부터 시작하며, 대괄호([])는 어레이의 앨리먼트를 인덱싱하는데 사용됩니다. 예를 들어, 어레이 A가 [4,5,6]으로 구성되어 있다면,

A[0] = 4, A[1] = 5, 및 A[2] = 6 이 됩니다,

어레이의 문법은 다음과 같습니다:

문법 | 설명
콜론 | 앨리먼트의 범위를 나타내는데 사용됩니다. 예를 들어, 위의 어레이에서 A[0:1] = [4,5] 가 됩니다.
애스터리스크(*) | 와일드카드(*)는 어레이의 모든 앨리먼트를 가리킵니다. A[*]은 어레이 A의 모든 앨리먼트를 리턴합니다.
콤마 | 2 차원 이상의 어레이에서 앨리먼트의 위치를 지시하는데 사용합니다. 만일 B가 3개의 앨리먼트를 가진 2차원 어레이라면 B[1,0]은 두 번째 행의 첫 번째 앨리먼트를 가리킵니다.

Formula 오브젝트나 To/From File 오브젝트의 표현식에서 각 어레이의 앨리먼트에 접근하기 위한 명령어를 사용합니다.

관련정보

실습 5-1: 측정결과 저장을 위한 어레이 생성

실습 5-2: 어레이에서 측정결과 추출


For/Each 오브젝트

For/Each 오브젝트는 어레이를 반복하기 위해 사용합니다. 이것은 레코드에는 사용할 수 없습니다. 다음 예제는, For/Each 오브젝트를 사용하지 않고 1차원 어레이가 반복 실행하는 프로그래입니다.

For/Each 오브젝트를 사용하면 위의 프로그램을 단지 3개의 오브젝트만 사용하여 작성할 수 있습니다.

어레이 차원이 높아질수록, 기존의 방법은 점점 복잡하여 관리가 어렵게 됩니다. 이와 비교하여, For/Each 오브젝트는 10차원을 지원하여 VEE의 어레이 구조의 한계까지 쉽게 확장하여 사용할 수 있습니다.


어레이 함수 연산

VEE에 있는 log(), sin() 또는 cos()등의 대부분의 기초적인 수학 함수는, 어레이를 인자로 사용하고 어레이를 리턴할 수 있습니다. 일부 함수는 어레이 연산을 수행하고 처리하는데 편리합니다. 다른 함수들은 어레이와 같이 사용할 수 없습니다. 어레이에서 사용할 수 있는 함수는 다음과 같습니다:

• ramp()는 “루프” 카운트를 생성하기 위해 사용합니다.

• concat()은 2개의 어레이를 연결하여 1차원 어레이를 리턴하기 위해 사용합니다.

• totSize()는 어레이에 있는 앨리먼트의 전체 숫자를 제공합니다.

• signof()는 값의 부호( -1 if < 0, 0 if = 0, 1 if > 0)를 검출합니다.

• abs(x)는 절대값을 설정합니다.

• rotate()는 어레이에 있는 앨리먼트를 로테이션 합니다.

• sum()은 어레이에 있는 모든 앨리먼트를 합산 합니다.

• sort()는 어레이를 정렬합니다.

• randomize()는 랜덤 숫자의 어레이를 생성합니다.

• min()는 데이터셋의 최소값을 찾습니다.

• max()는 데이터셋의 최대값을 찾습니다.

• clipUpper()는 주어진 최대값의 아래의 숫자를 클립합니다.

• clipLower()는 주어진 최소값의 위의 숫자를 클립합니다.

Formula 오브젝트에 있는 유용한 기능은 표현식을 어레이로 지정할 수 있는 것입니다. 어레이 앨리먼트 사이에 콤마를 삽입해야 하는 것에 주의 하십시오. 다음 표현식은 B라는 입력의 두배, 반값, 제곱 및 자연로그를 포함하는 어레이를 생성합니다:

[2*B, 1/B, B*B, log(B)]

다음 예제는 Formula 오브젝트에 있는 표현식을 사용하여 어레이를 처리하기 위한 방법을 나타냅니다. 어레이를 포함하고 있는 오브젝트를 Formula 오브젝트의 입력핀으로 연결하십시오.

사용예

기존에 생성된 어레이를 사용하고, 지정 표현식을 이용하여 선택한 앨리먼트에서 수학 연산을 수행합니다. 다음 예제는 2차원 어레이의 한 행에 있는 값을 변경합니다. Formula 오브젝트에 있는 표현식은 입력 어레이 A=[1,2,3,4]에서 해당 태스크를 수행합니다. 여기서, 0행은 1과 2를 포함하고, 1행은 3과 4를 포함합니다.

표현식은 두번째 행에 있는 앨리먼트에 4를 곱하고, 결과를 어레이 A로 지정합니다. Result 터미날은 단지 변경된 값을 출력하고 A 터미날은 새로운 값을 가지는 전체 어레이를 출력합니다.

관련정보

큰 어레이 분할하기, 어레이 병합하기, 벡터를 행렬로 곱하기, 어레이에 앨리먼트 삽입하기, 벡터를 행렬로 변환하기


어레이 연산 방법

VEE는 어레이 수학 연산을 위해 최적화되어 있습니다. 이번 장에서는 어레이 연산을 수행하기 위하여 Formula 및 다른 오브젝트를 사용하는 방법을 설명합니다.

주의사항

시간이 많이 소요되는 반복루프의 사용을 최소화 하기 위하여 예제를 적절히 변경하거나 지정 연산자를 사용할 수 있습니다. 이러한 방법은 명확하지 않으므로, 이들을 사용하는데 주의하고 작성한 프로그램을 문서화 하십시오.

이번 장에서는 어레이 연산 비교, 표현식에서 어레이 사용, 어레이 연산, 표현식에서 변수를 사용하는 등의 어레이 연산 방법을 설명합니다.

어레이 연산 비교

다음 2개의 그림에 있는 프로그램 세그먼트는 0부터 360도에 대한 사인과 코사인 값을 가지는 어레이를 생성하기 위한 방법을 비교합니다. 이들 방법을 실행 한 경우에는, 첫 번째 방법이 시간이 더 걸린다는 것을 알 수 있습니다.

이 오브젝트 시리즈에 포함된 로직을 수학 연산으로 변환하면, 표현식에 있는 결과는 다음 그림에 있는 Formula 오브젝트에 나타납니다. 이 방법은 적은 시간에 동일한 연산을 수행합니다:

이 방법이 더 빠르더라도, 동일한 연산을 수행하는지에 대해서는 명확하지 않습니다. 다음은 표현식의 연산에 대한 설명입니다:

1 ramp() 함수는 0부터 359까지의 값을 가지는 360개의 앨리먼트를 가지는 어레이를 생성합니다.

2 2개의 ramp 함수는 동일한 어레이를 생성하며, 각각은 sin() 과 cos() 삼각함수에 의해 연산됩니다. 대부분의 VEE 함수는 파라미터로 어레이를 사용하고 리턴할 수 있는 스칼라 값을 사용하고 리턴합니다.

3 Formula 오브젝트가 2개의 연산식을 가지고 있지만, 연산식이 대괄호 내에 있기 때문에 오브젝트의 출력은 어레이 형태로 변환됩니다.

이 방법은 모든 프로그램에 있어 최선의 선택은 아닙니다. 사인과 코사인 연산은 생성된 각각의 값에서가 아니라 ramp() 함수에 의해 생성된 전체 어레이에서 수행됩니다. 프로그램이 생성된 각각의 값에서 연산되어야 하는 경우에는, 전체 어레이에서 연산하는 표현식 대신에 루프 구조를 사용하십시오.

표현식에서 어레이 접근하기

표현식에 있는 어레이는 스칼라처럼 사용할 수 있습니다. 이름을 사용하여 참조합니다. 어레이 상수는 표현식( [1,2,3]같이)에 직접 입력할 수 있습니다. VEE에서는 어레이 앨리먼트 사이에 콤마를 삽입하는 것이 필요합니다.

주의사항

어레이 인덱스는 0-기준 입니다. 인덱스는 0부터 시작하고 n-1까지 계속됩니다. 여기서 n 은 해당 차원에 있는 앨리먼트의 숫자입니다.

어레이의 일부분을 접근하는 표현식을 사용할 수 있습니다. 표현식에서 서브-어레이를 지정하면, 서브-어레이를 출력하거나 다른 표현식 연산에서 이것을 사용할 수 있습니다.

각 어레이에서는 연속되는 서브-어레이만을 사용할 수 있습니다. 서브-어레이를 접근하기 위해서는, 어레이에 있는 각 차원에 대한 파라미터를 지정해야 합니다. 어레이 파라미터를 지정하기 위해서는 다음 문자를 사용하십시오:

• 콤마 “,” 는 어레이 차원을 분리합니다. 각 서브-어레이 연산은 각 어레이 차원에 대한 하나의 정확한 규격을 가지고 있어야 합니다.

• 콜론 “:” 은 하나의 어레이 차원에서 앨리먼트의 범위를 지정합니다.

• 애스터리스크 “*”는 해당 어레이 차원에서 모든 앨리먼트를 지정하기 위한 와일드카드 입니다.

주의사항

웨이브폼 타임 스팬, 스펙트럼 주파수 스팬 및 어레이 매핑은 서브-어레이에 있는 포인트의 수에 따라 조정됩니다. 예를 들어, 256 포인트의 웨이브폼(WF)을 가지고 있으면서 WF[0:127]을 요청한 경우에는, 올드 스팬의 반인 파형 및 타임스팬의 반을 갖게 됩니다.

예제: 어레이에서 리턴된 값

다음 표현식은 A가 1차원 어레이이며 10개의 앨리먼트를 가지는 값을 리턴하는 것을 나타냅니다.

• A[1]는 A에 있는 두번째 앨리먼트를 접근하여 스칼라를 출력합니다.

• A[0:5]는 A의 첫 6개 앨리먼트를 가지는 1차원 서브-어레이를 리턴합니다.

• A[1:1]는 A의 두번째 앨리먼트인 하나의 앨리먼트를 가지는 1차원 서브-어레이 앨리먼트를 리턴합니다. 이것과 첫 번째 예제, A[1] 사이의 차이점에 주의 하십시오.

• A[2:*]는 A의 세 번째부터 열 번째 까지의 앨리먼트를 가지는 1차원 서브-어레이를 리턴합니다.

• A 또는 A[*]는 전체 어레이 A를 리턴합니다.

• A[1,2]는 이것이 2차원 어레이에 대한 파라미터를 지정하기 때문에 에러를 리턴합니다.

• B는 5x5 행렬(Array 2D)입니다.

• B[*]는 이것이 하나의 파라미터를 지정하고 B가 2차원 어레이 이기 때문에 에러를 리턴합니다.

• B[1,2]는 두 번째 행, 3번째 앨리먼트에 있는 스칼라 값을 리턴합니다.

• B[1,*]는 모든 행을 Array 1D로 리턴합니다.

• B[1,1:*]는 첫 번째 앨리먼트를 제외한 모든 행을 Array 1D로 리턴합니다.

• B[4,1:4]는 4개의 앨리먼트를 가지는 Array 1D를 리턴합니다: 4행에 있는 두번째부터 다섯 번째 값.

• B[5,5]는 어레이가 0(zero)-기준이기 때문에 에러를 리턴합니다. 어레이는 B[4,4]를 통해서만 접근할 수 있습니다.

• B[1 1]는 콤마를 사용하여 차원 지정자를 분리해야 하기 때문에 에러를 리턴합니다.

표현식에서 어레이 생성

다른 어레이나 서브-어레이의 앨리먼트에서 어레이를 생성할 수 있습니다. 표현식에 있는 각 앨리먼트는 차원과 동일한 숫자를 지정해야 하고 각 차원에 있는 값과 동일한 값을 가져야 합니다.

예를 들어, 다음 표현식은 A가 10개의 앨리먼트를 가지는 1차원 어레이(Array 1D)와 B가 5x5 행렬인 값을 리턴하는 것을 보여줍니다.

• [1,2,3]는 값 1, 2 및 3을 가지는 3차원 Real Array 1D를 리턴합니다.

• [A[0], A[5:7], A[9]]는 2개의 스칼라와 Array 1D 앨리먼트가 지정되었기 때문에 에러의 원인이 됩니다.

• [A[0:4], B[0,*]]는 첫번째 행으로 A에서 처음 5개의 앨리먼트를, 두번째 행으로 B에서 첫 행을 가지는 10 앨리먼트 Array 2D (2 by 5 크기)를 리턴합니다.

• [A[0], A[1], B[2,3], A[5]]는 A의 첫번째와 두번째 앨리먼트, B의 세번째 행과 네번째 컬럼에 있는 앨리먼트 및 A의 여섯번째 앨리먼트를 가지는 4 앨리먼트 Array 1D를 리턴합니다.

어레이 연산

어레이에서 수학연산은 다른 간단한 규칙을 사용합니다. 어레이에서 기초적인 스칼라 산술연산은 어레이에 있는 각 앨리먼트에서 해당 연산을 수행합니다:

• A*2는 어레이에 있는 각 앨리먼트에 2를 곱합니다.

• A-4는 어레이에 있는 각 앨리먼트에서 4를 뺍니다.

• sin([1,2,3])와 같이 함수에 사용된 어레이는 어레이의 각 앨리먼트에 적용하기 위한 사인 함수를 가집니다.

동일한 크기와 차원을 가지는 2개의 어레이 사이에서 수학연산은 어레이의 일치하는 앨리먼트 사이에서 연산을 수행합니다:

• A*B는 어레이 A의 각 앨리먼트에 어레이 B에 일치하는 앨리먼트를 곱합니다. 이것은 행 곱하기 컬럼의 상대적으로 복잡한 곱셈과 결과값이 스칼라인 합산인 “행렬 곱셈”을 연산하지 않습니다. VEE는 이것을 수행하기 위하여 matMultiply(A,B)라고 부르는 기본제공 행렬함수를 제공합니다.


어레이 병합하기

다음은 다차원 어레이를 연결하는 예제입니다. concat(x,y) 함수는 이것이 1차원 출력만을 생성지만, Formula 오브젝트에 다차원 어레이를 생성할 때 사용하면 편리합니다. 그러나, 행과 컬럼의 숫자가 고정(연습할 때 자주 보았던 구속조건)인 경우에만 사용할 수 있습니다. Formula 오브젝트에는 2개의 컬럼을 가지는 어레이 쌍을 연결하는 표현식이 작성되어 있습니다:

다음은 다차원 어레이를 연결하는 예제입니다. concat(x,y) 함수는 이것이 1차원 출력만을 생성지만, Formula 오브젝트에 다차원 어레이를 생성할 때 사용하면 편리합니다. 그러나, 행과 컬럼의 숫자가 고정(연습할 때 자주 보았던 구속조건)인 경우에만 사용할 수 있습니다. Formula 오브젝트에는 2개의 컬럼을 가지는 어레이 쌍을 연결하는 표현식이 작성되어 있습니다:

관련정보

벡터를 행렬로 변환하기, 큰 어레이 분할하기, 벡터를 행렬로 곱하기, 어레이에 앨리먼트 삽입하기, 벡터를 행렬로 변환하기


큰 어레이 분할하기

2048-앨리먼트 어레이의 앨리먼트를 16세트의 128 앨리먼트로 분할하여 표시할 수 있습니다. 이것을 생성하는 것보다 데이터의 디스플레이가 문제가 된다면, 어레이를 분할하는 것이 편리합니다.

아래의 프로그램은 효율적인 디스플레이를 위하여 어레이를 분할하는 예제입니다.

ramp() 함수는 0부터 2047까지의 값을 가지는 2048 개의 앨리먼트를 가지는 어레이를 생성합니다. Formula 박스가 카운트에서 생성된 인덱스를 사용하여 적절한 어레이를 선택하지만, For Count 오브젝트를 이용하여 16개의 개별 어레이를 생성합니다.:

A[0:127], A[128:255], A[256:384], ..., A[1920:2047]

여기서는, 어레이의 크기, 서브어레이의 개수 및 서브어레이의 크기가 고정되어 있다고 가정했습니다. 이들 중의 하나가 만족되지 않으면, 에러가 발생합니다.

관련정보

어레이 함수 연산, 어레이 병합하기, 벡터를 행렬로 곱하기, 어레이에 앨리먼트 삽입하기, 벡터를 행렬로 변환하기


벡터를 행렬로 곱하기

다음 예제는 벡터를 곱하는 예제입니다.

[ X1, X2, X3, X4 ]

의 행렬에

[[ y11, y12, y13, y14 ],

[ y21, y22, y23, y24 ],

...

[ y51, y52, y53, y54 ]]

의 행렬을 곱하면, 다음 행렬이 생성됩니다.

[[ X1*y11, X2*y12, X3*y13, X4*y14 ],

[ X1*y21, X2*y22, X3*y23, X4*y24 ],

...

[ X1*y51, X2*y52, X3*y53, X4*y54 ]]

VEE는 스칼라 횟수로 벡터를 곱하여 행렬 곱셈을 수행합니다. 스칼라 곱셈은 행렬에 있는 각 앨리먼트를 스칼라로 곱하므로, 원래와 동일한 크기의 행렬 결과를 얻습니다. 행렬 곱셈은 스칼라를 생성하는 MxN 행렬과 NxM 행렬의 연산입니다.

여기서 실행한 연산은 행렬의 각 행을 벡터의 각 앨리먼트로 곱하는 스칼라 곱셈입니다. 어레이 곱셈 방법을 사용하여 구현합니다. 다음 형식의 벡터 V로 이루어진 데이터가 있다고 가정하겠습니다.

[ 1, 2, 3, 4 ]

그리고 다음 형식의 행렬 M

[ [1, 2, 3, 4, 5, 6, 7, 8 ],
[10, 20, 30, 40, 50, 60, 70, 80 ],
[100, 200, 300, 400, 500, 600, 700, 800 ],
[1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000 ] ]

이면, 이들의 곱셈 결과는 다음과 같이됩니다.

[ [1, 2, 3, 4, 5, 6, 7, 8 ],
[20, 40, 60, 80, 100, 120, 140, 160 ],
[300, 600, 900, 12K, 15K, 18K, 21K, 24K ],
[4000, 8000, 12K, 16K, 20K, 24K, 28K, 32K ] ]

아래 Formula 오브젝트의 표현식은 곱셈을 실행합니다. 행렬 어레이는 터미날 M으로 연결되고 벡터 어레이는 터미날 V로 연결됩니다. 이 연산은 동일한 어레이의 스칼라 곱셈보다 실행속도가 약 50% 느립니다.

관련정보

어레이 함수 연산, 큰 어레이 분할하기, 어레이 병합하기, 어레이에 앨리먼트 삽입하기, 벡터를 행렬로 변환하기


어레이에 앨리먼트 삽입하기

다음 예제는 하나 이상의 데이터 앨리먼트를 기존의 어레이에 삽입하는 표현식을 나타냅니다. 입력은 다음과 같습니다.

A 는 인덱스 값입니다.
B 는 새로운 데이터 입니다.
C 는 기존 어레이 입니다.

변경된 어레이는 Result로 출력됩니다.

A에 있는 인덱스 값은 새로운 데이터가 시작해야 하는 인덱스를 나타냅니다. A가 0 이거나 0보다 작은 경우에는, B에 있는 새로운 데이터는 C에 있는 기존 어레이의 시작부분에 연결됩니다.

A가 기존 어레이의 길이보다 크거나 동등한 경우에는, 새로운 데이터는 기존 어레이의 마지막에 연결됩니다. A가 사이에 어떤 값인 경우에는, 기존 어레이는 인덱스 값에서 분할되고, 이 분할된 위치에 새로운 데이터가 삽입됩니다.

다음 예제는 이전 예제와 유사합니다. 이것은 어레이 연산을 사용하여 데이터 큐를 생성합니다. 큐는 고정된 길이의 어레이 입니다. 새로운 앨리먼트는 큐의 마지막에 추가되고, 기존 숫자는 각각 반대편으로 하나씩 이동하고, 처음 숫자는 사라져 없어집니다.

ramp() 표현식은 초기의 10개의 앨리먼트를 가진 빈 어레이를 큐로 사용합니다. On Cycle 루프(사이클은 1초로 설정)가 시작되고 랜덤 숫자를 큐의 첫 부분으로 매초마다 전송합니다. Formula: 큐는 OldData 입력의 마지막 9개 앨리먼트를 취하고 이것을 NewData 입력에 있는 새로운 랜덤 숫자를 사용하여 연결합니다. Result에 있는 어레이 출력은 OldData의 다음셋으로 피드백되어 다음 프로그램 세그먼트로 전송됩니다. 새로운 랜덤 숫자는 다음 사이클에 있는 NewData로 전송됩니다.

관련정보

어레이 함수 연산, 큰 어레이 분할하기, 어레이 병합하기, 벡터를 행렬로 곱하기, 벡터를 행렬로 변환하기


벡터를 행렬로 변환하기

트랜잭션 오브젝트에서 어레이 함수를 사용하여 필요한 결과를 얻을 수 있습니다. 아래의 예제는 벡터(1차원 어레이)를 행렬(2차원 어레이)로 변환하기 위하여 From String 오브젝트를 사용합니다. From String에서 벡터를 실행하고 다음 프로그램에 보이는 출력과 같은 어레이 형식을 지정합니다. 실수와 텍스트 데이터 타입에서의 변환은 VEE에서 자동으로 이루어집니다.

예를 들어, 1차원 9-앨리먼트 어레이를 3x3 2차원 어레이로 변환하도록 합니다:

ramp() 함수로부터의 벡터 출력은 다음과 같습니다.

0,1,2,3,4,5,6,7,8

From String 트랜잭션은 이것을 행렬-차순정리 행렬입니다.

0,1,2
3,4,5
6,7,8

컬럼-차순정리 행렬이 필요한 경우에는, 다음 결과를 얻기 위하여 transpose()(전치행렬) 함수를 사용합니다.

0,3,6
1,4,7
2,5,8

벡터를 행렬로 변환하는 다른 방법은 공식 생성 어레이 문법을 사용하는 것입니다. 문법 [1,2,3]은 3개의 앨리먼트를 사용하여 1차원 어레이를 생성합니다. a가 10개의 앨리먼트를 가진 1차원 어레이인 경우에는, 문법[a]는 1x10 2차원 어레이를 생성합니다. 10x1 행렬이 필요한 경우에는, transpose()를 사용합니다.

관련정보

어레이 함수 연산, 큰 어레이 분할하기, 어레이 병합하기, 벡터를 행렬로 곱하기, 어레이에 앨리먼트 삽입하기


여러 개의 앨리먼트를 하나의 어레이로 병합하기

이 프로그램은 몇 개의 어레이에서 각각 최대값을 추출하여, 이 최대값으로 이루어진 어레이를 생성하는 예제입니다:

이 프로그램은 Noise Generator를 사용하여 입력데이터를 시뮬레이션 합니다. 이것은 초기 데이터셋을 가져와 이것을 전역변수 sumdata로 지정하고 새로운 데이터를 획득하거나 프로그램을 종료하기 위한 루프를 입력합니다.

Get Data 버튼을 누르면 Noise Generator에서 새로운 파형을 가져오고, Get Variable 오브젝트를 사용하여 sumdata에 데이터를 복원합니다; 이 2개의 파형은 Formula 오브젝트로 합산됩니다. 이 Formula 오브젝트는 이것들을 처리하여 Set Variable 오브젝트를 사용하여 sumdata에 결과를 입력합니다.

Formula 오브젝트는 핀 A에는 새로운 어레이 데이터를 핀 B에는 어레이 sumdata를 사용합니다. 표현식 cliplower(a,b)는 A > B인 경우에는 A의 값을 다른 경우에는 B의 값을 가지는 어레이를 출력합니다. clipUpper를 사용하는 경우에는, 최소값을 얻게 됩니다.

관련정보

2개의 어레이 비교하기, 대체 표현식 사용하기, 효율적인 방법 선택하기


2개의 어레이 비교하기

이 예제는 2개의 랜덤 숫자 어레이를 비교하여 첫 번째 어레에이에 있는 얼마나 많은 숫자가 두 번째 어레이에 있는 숫자보다 큰지를 연산합니다. 값에서의 비교는 관계형 연산자(==, != 또는 <= 같은)와 삼항 연산자(A < B ? C : D)를 사용하지만, 이것들만을 사용하면 어레이 출력을 얻을 수 없습니다. 이들은 어떤한 데이터 형태도 입력할 수 있지만, 결과를 스칼라 형태로만 리턴합니다. 어레이 결과를 생성하는 다른 수단으로 관계형 연산을 수행할 수 있습니다.

randomSeed() 함수는 시간에 따라 다양하게 바뀌는 씨드(seed)를 사용하는 랜덤-숫자 생성기의 근본이 됩니다. 이것은 다른 프로그램의 실행에서 데이터가 다양하게 바뀔 수 있도록 합니다. 2개의 randomize() 함수는 0에서 1사이의 범위에서 1000개의 랜덤 숫자 어레이를 각각 생성합니다. 마지막으로 Formula 오브젝트에 있는 표현식이 합산을 수행합니다.

sum(clipLower(0,signof(A-B)))

다음은 표현식의 각 부분이 어떻게 동작하는지를 나타냅니다:

1 A-B는 어레이를 제공합니다. 여기서, 값은 A > B인 경우에는 양수, A == B인 경우에는 0(zero), A < B인 경우에는 음수입니다.

2 signof(A-B)는 양수를 1로, 음수는 -1로 변환하고, 0은 0으로 남겨 놓습니다.

3 clipLower(0,signof(A-B))는 어레이에서 -1을 추출하여 A > B인 경우에는 1, 다른 경우에는 0인 어레이를 출력합니다.

4 sum()는 1씩을 더하여 A > B의 비교 숫자를 출력합니다.

관련정보

여러 개의 앨리먼트를 하나의 어레이로 병합하기, 대체 표현식 사용하기, 효율적인 방법 선택하기


대체 표현식 사용하기

전통적인 관계형 연산자는 다른 방법을 사용하여 어레이 연산에 적용할 수 있습니다.:

• A == B: (1-abs(signof(A-B)))

• A != B: abs(signof(A-B))

• A > B: clipLower(0,signof(A-B))

• A < B: clipLower(0,-signof(A-B))

• A >= B: (1-clipLower(0,-signof(A-B)))

• A <= B: (1-clipLower(0,signof(A-B)))

1에서 1과 0으로 구성된 어레이의 뺄셈은 어레이에서 NOT을 수행합니다. 다른 어레이보다는 스칼라 값을 비교하는데 유사한 방법을 사용할 수 있습니다. 1과 0들로 이루어진 어레이 결과에서 부울 연산을 수행할 수도 있습니다.

예를 들어, A1과 A2가 두 개의 유사한 어레이라고 가정하면, 다음 논리연산은 다음과 같이 연산됩니다:

• NOT A1: 1 - A1

• A1 AND A2: A1 * A2

• A1 OR A2: signof(A1 + A2)

• A1 XOR A2: 1 - abs(signof((A1 + A2) - 1))

이러한 곱셈기능을 어레이 값의 마스킹에 적용할 수 있습니다. 마스킹을 실행하면 0인 값들은 제거되고 1인 값들만 남아있게 됩니다.

관련정보

여러 개의 앨리먼트를 하나의 어레이로 병합하기, 2개의 어레이 비교하기, 효율적인 방법 선택하기


효율적인 방법 선택하기

이전의 방법을 적용하면 복잡한 논리연산을 가지는 Formula 오브젝트를 사용하게 되어 프로그램 유지보수가 어렵게 됩니다. 관리하기 어려운 복수의 오브젝트를 Formula 오브젝트로 대체하여 루프를 제거하거나 줄일 수 있지만, UserFunctions을 사용할 수도 있습니다. 효율적인 어레이-처리 방법을 이해하면 복잡한 논리연산을 쉽고 간단한 로직으로 프로그램을 작성할 수 있습니다.

다음의 예제는 어레이를 처리하는데 있어서 선택할 수 있는 항목을 나타냅니다. I/O 디바이스에서 받은 부호가 없는 8-비트 어레이가 VEE에 의해 32-비트 부호가 있는 정수 데이터로 변환되고 실수값을 취한다고 가정합니다. 리턴되는 어레이의 각 값에 256을 더하는 하나의 표현식에서 이것을 수행할 수 있습니다:

(A + (clipLower(-1,clipUpper(0,A))) * (-256))

이 표현식은 다음의 연산을 수행합니다:

1 clipUpper(0,A)는 모든 양수 값을 0(zero)으로 변환합니다.

2 clipLower(-1,clipUpper(0,A))는 모든 음수 값을 -1(입력이 실수가 아닌 정수라는 것을 상기하십시오.)로 변환합니다. 이것은 각 음수 값에 대해서는 -1을, 다른 경우는 0을 가지는 어레이를 생성합니다.

3 clipLower(-1,clipUpper(0,A)) * (-256)는 각 음수 값에 대해서는 256을, 다른 경우는 0을 가지는 어레이를 생성하는 1256을 어레이에 곱합니다. 이 어레이는 모든 음수 값을 “참” 양수 값으로 옵셋하기 위하여 원래의 어레이에 더해집니다.

다른 방법은 이전에 설명한 것과 같이 관계형 연산을 사용하는 것입니다. 그러나, 이 방법은 직접적인 해결방안 보다 훨씬 더 복잡해 집니다.

어레이 처리에 대한 아주 유용한 오브젝트는 지정하는 표준을 만족하는 어레이 앨리먼트를 추출할 수 있는 Comparator입니다. 다음의 데이터 스트림에서 트랜잭션을 연산하는 것을 전제합니다:

0 0 0 0 1 1 0 0 1 1 0

다음 그림은 어레이 앨리먼트의 값이 0에서 1로 또는 그 반대로 변환된 앨리먼트의 인덱스를 찾는 예제입니다.

프로그램에서 Comparator오브젝트도 사용하지만, 가장 중요한 역할을 하는 오브젝트는 연산식을 가지고 있는 Formula 오브젝트입니다.

A[1:(totSize(A)-1)] - A[0:(totSize(A)-2)]

연산과정을 확인하기 위해서, 어레이 인덱스를 데이터 스트림에 추가합니다:

B0:0 1:0 2:0 3:0 4:1 5:1 6:0 7:0 8:1 9:1 10:0

어레이 인덱스는 변환이 발생하는 곳에 표시됩니다. 위의 연산식의 내용은 입력어레이에서 입력어레이의 뺄셈입니다. 이 뺄셈의 2 번째 어레이는 첫 번째 어레이의 각 비트를 우측으로 이동시킨 어레이 입니다. 이것의 연산결과는 다음과 같습니다.;

0:0 1:0 2:0 3:0 4:1 5:1 6:0 7:0 8:1 9:1 10:0

- 0:0 1:0 2:0 3:0 4:1 5:1 6:0 7:0 8:1 9:1 10:0

0:0 1:0 2:0 3:1 4:0 5:-1 6:0 7:1 8:0 9:-1

Comparator는 어떤 앨리먼트가 0과 동일한지를 보기 위하여 Result 어레이를 체크합니다. 테스트가 fail인 어레이 앨리먼트는 인덱싱되고 실패한 값과 인덱스를 나타내는 X-Y 좌표 어레이로 Failures 터미날에서 리턴됩니다. 인덱스 값만을 가져오기 위해서, Unbuild Coord 오브젝트는 X와 Y 값을 분리합니다. X 인덱스 값은 엇갈려서 뺄셈하는 영향을 제거하기 위하여 1씩 증가합니다.

뺄셈에서 얻어진 데이터는 트랜잭션의 인덱스뿐만이 아니라 이것의 방향도 지칭합니다: 양수 변환에는 1을, 음수에 대해서는 -1. 이 연산은 차이를 연산하는 차이-방정식 입니다.

관련정보

여러 개의 앨리먼트를 하나의 어레이로 병합하기, 2개의 어레이 비교하기, 대체 표현식 사용하기


레코드 상수 생성하기

아래의 예제를 실행하는 것이 레코드 상수를 생성하는 법을 이해하는 가장 좋은 방법입니다.

단일 레코드 생성하기

1. (Data [image] Constant [image] Record)를 클릭하여 작업 창에 Record 상수 오브젝트를 생성합니다.

2. Record 상수 오브젝트는 다른 상수 오브젝트와 다른 형태를 가집니다. Record 상수 오브젝트는 이름을 가진 2 개의 버튼(필드)와 이들 필드의 값을 입력할 수 있는 입력창를 가지고 있습니다. (디폴트 필드 이름은 각각 A와 B) A 버튼을 클릭하면 Record Field Attributes 대화 상자가 표시됩니다.

3. A 대신에 새로운 필드이름을 입력할 수 있습니다. 필드 이름만 Name으로 변경하고, 데이터 종류는 Text로, Num Dims은 상수 0을 그대로 유지하고 OK버튼을 클릭합니다.

4. 박스 B버튼을 클릭하여 필드 이름을 Empl_No로 바꾸고, Real64를 클릭하여 드롭다운 메뉴를 엽니다.

5. 드롭다운 목록에서 Int32를 클릭하고 Num Dims은 0으로 유지한 상태에서 OK버튼을 클릭합니다.

6. 아래 그림과 같이 Name필드의 값에 John Doe를 입력하고, Empl_No필드의 값에는 111222를 입력합니다. AlphaNumeric오브젝트를 생성하고 Record Constant오브젝트의 출력 핀을 AlphaNumeric오브젝트의 입력에 연결합니다. 프로그램을 실행합니다.

레코드 어레이 생성하기

1. 이전 프로그램에서 계속하여, Record 상수 오브젝트를 클릭하여 Record 상수 오브젝트의 Properties 창이 활성화되도록 합니다.

2. 레코드를 배열 형태로 사용하기 위해 DataShape항목을 클릭하여 scalar값을 1D Array 변경합니다. ArraySize항목을 3으로 설정합니다. 이 오브젝트는 1차원 Array 형태로 변환됩니다.

3. First, Prev, Next 또는 Last 버튼으로 Record 상수 오브젝트의 행을 옮겨가면서 내용을 입력할 수 있습니다. 어레이 안의 각 레코드의 내용을 변경하기 위해서:

a. Next버튼을 클릭하여 두 번째 행으로 이동합니다. 이름을 Sue Smith, 값을 111223으로 입력합니다.

b. 다시 Next버튼을 클릭하여 세 번째 행으로 이동합니다. . 이름을 Richard Roe, 값을 111224으로 입력합니다.

4. 프로그램을 실행하면 AlphaNumeric 오브젝트에 전체 레코드 어레이의 값이 출력됩니다.

관련정보

레코드에 데이터 추가하기

Record Constant


혼합된 데이터 타입을 저장하기 위해 레코드 사용하기

레코드 데이터 타입은 하나의 데이터 컨테이너에 다른 데이터 타입을 저장할 수 있습니다. 레코드는 어떤 타입의 VEE 데이터도 추가할 수 있습니다. 데이터는 스칼라 또는 어레이 형태를 가질 수 있습니다. 하나의 데이터 구조에 테스트 이름, 타임 스탬프 및 실수 어레이를 저장할 수 있습니다.

• 레코드에 있는 각각의 앨리먼트는 필드로 저장되고 점(.) 기호를 이 용하여 접근할 수 있습니다. 예를 들어, Rec.Name은 Rec라는 레코드에 있는 Name이라는 필드를 접근합니다. 레코드 어레이에서, Rec[2].Name은 어레이에 있는 3번째 레코드의 Name 필드를 의미합니다. 모든 어레이는 인덱스가 0부터 시작합니다.

레코드 데이터 타입을 사용하여 테스트 데이터를 구성하면 몇 가지 장점이 제공됩니다:

• 하나의 컨테이너에서 혼합된 데이터 타입의 논리적인 그룹을 만들 수 있습니다. 이것은 프로그램을 쉽게 개발하고 관리할 수 있도록 합니다. 예를 들어, 테스트 데이터를 저장하는 레코드에 대한 필드를 다음과 같이 사용할 수 있습니다: 테스트 이름, 리턴되는 값, pass 또는 fail 지시자, 타임 스탬프, 명목상의 값, 상한값, 하한값 및 테스트에 대한 설명.

• 8개의 분리된 데이터 컨테이너 보다는 하나의 데이터 컨테이너를 관리하는 것이 용이합니다.

• VEE에서 데이터셋으로부터 레코드를 추출하고 저장할 수 있습니다. 데이터셋은 레코드를 저장하기 위하여 생성된 특별한 파일입니다. 데이터셋에서 레코드를 추출할 때, 데이터 타입을 인지할 필요가 없습니다. VEE는 데이터셋에 저장된 정보를 추출하고, 정렬하고, 검색할 수 있는 오브젝트를 제공합니다.

관련정보

실습 5-4: 레코드 사용법

레코드 상수 사용하기

레코드에 데이터 추가하기

레코드에서 필드 추출하기

레코드에서 필드 변경하기

프로그램에서 레코드 생성하기

레코드 접근하기

레코드 컨테이너 이해하기


레코드에 데이터 추가하기

Build Record (Data [image] Build Data [image] Record) 오브젝트는 레코드 어레이를 생성합니다. 이번 장에서는 예제 프로그램을 통해서 오브젝트를 사용하는 방법을 알려줍니다.

사용예

1. manual10.vee 를 열어서 프로그램을 실행하십시오.

Build Record 오브젝트는 입력터미날로 입력된 데이터를 가지고 레코드를 생성하고, Record 출력터미날로 레코드를 출력합니다. 프로그램은 아래와 같이 동작합니다.

입력터미날 A에 연결된 Text 어레이는 이름 리스트입니다.

입력터미날 B에 연결된 Int32 어레이는 사원번호 리스트입니다.

Build Record 오브젝트는 출력형식을 Scalar로 설정했기 때문에 출력데이터는 2개의레코드 필드를 가진 스칼라 레코드 {<Text Array 1D>, <Int32 Array 1D>}를 출력합니다. 각 필드는 1차원 어레이 데이터입니다. 첫 번째 레코드 필드는 이름 어레이이고, 두 번째 레코드 필드는 사원번호 어레이 입니다. 입력되는 어레이는 사이즈가 동일할 필요는 없습니다.

2. 디폴트값이 Scalar 이지만 출력형식을 변경할 수 있습니다.

a. Scalar를 클릭하면 Array 1D로 변경됩니다.

b. 프로그램을 실행하면, 레코드 어레이가 출력됩니다.

Build Record 오브젝트는 Record 터미날로 출력될 수 있도록 어레이 레코드의 각 레코드를 이름과 사원번호로 매칭시킵니다. 출력형식이 Array 1D로 설정되어 있으면, 입력 어레이는 동일한 사이즈를 가져야 합니다.

관련정보

Build Record


레코드에서 필드 추출하기

rec.field 오브젝트 (Data [image] Access Record [image] Get Field)는 레코드에서 필드를 추출하기 위해 사용하며, UnBuild Record 오브젝트 (Data [image] UnBuild Data [image] Record)는 모든 필드를 추출하기 위해 사용합니다. 오브젝트 사용방법에 대해서는 예제 프로그램을 사용하여 설명합니다.

Get Field 사용예

manual examples 디렉토리 (Help [image] Open Example...)의 manual11.vee 프로그램을 열어서 프로그램을 실행합니다.

Build Record 오브젝트는 필드A (waveform) 와 필드B (scalar)를 가지는 레코드를 생성합니다.

상단의 rec.field 오브젝트는 “rec 레코드의 A 필드”(waveform)의 값을 추출하기 위해서 표현식 rec.A을 사용했으며, 그 결과는 Waveform 오브젝트에 표시되었습니다.

하단의 rec.field 오브젝트는 “rec 레코드의 B 필드”(time)의 값을 추출하기 위해서 표현식 reb.B 를 사용했으며, 그 결과는 타임스탬프 포맷으로 AlphaNumeric 에 표시되었습니다.

UnBuild Record 오브젝트 사용예제

manual 예제 디렉토리(Help [image] Open Example...)의 manual12.vee 프로그램을 열어서 프로그램을 실행합니다.

Build Record 오브젝트는 필드 A(웨이브폼)와 필드 B(스칼라)로 구성된 레코드를 생성합니다.

UnBuild Record 오브젝트는 레코드에서 필드A 와 필드B를 추출합니다. 데이터는 해당 핀으로 출력됩니다.

관련정보

표현식에서 레코드 사용하기

Get Field

SubRecord

UnBuild Record


레코드의 필드 변경하기

assignment 연산자 오브젝트(Data [image] Access Record [image] Set Field)는 레코드로 이루어진 어레이에서 레코드의 필드를 변경할 수 있습니다.

레코드의 필드변경 예제

manual13.vee 프로그램을 열어서 프로그램을 실행합니다.

Set Name Field 오브젝트의 표현식은, Rec 레코드의 Name 필드의 값을 A 값으로 지정한다는 의미입니다. 표현식에서 사용한 Rec 레코드는 입력터미날 rec에서 제공된 레코드입니다.

Set Empl_no Field 오브젝트의 표현식은, Rec 레코드의 Empl_no 필드의 값을 입력터미날 A로 입력되는 값으로 지정한다는 의미입니다.

레코드는 필드의 값이 변경되면서 맨 마지막단의 AlphaNumeric까지 전달되고 있습니다.

레코드 어레이의 필드 변경 예제

다음 프로그램에서, 표현식 Rec[5].Name = A는 Rec 레코드의 Name 필드에 있는 어레이 앨리먼트 5를 입력터미날 A로 입력되는 데이터로 대체하도록 되어 있습니다.

관련정보

Set Field


표현식에서 레코드 사용하기

레코드 구문 Rec.Field를 사용할 수 있습니다. 여기서 Field는 VEE 표현식 필드에 있는 Rec 레코드에 있는 필드 이름입니다. 다음 프로그램에서는, (A.High + A.Med)/A.Low 표현식은 A 레코드의 High 필드와 Med 필드를 더한 결과를 Low 필드로 나눕니다.

팁

혼동을 피하기 위하여, 레코드 필드에 기능설명 형식의 이름을 사용합니다.

레코드 필드에서 어레이 앨리먼트를 사용하기 위하여 레코드 구문을 어레이 구문과 조합할 수 있습니다.

관련정보

메뉴 Help [image] Open Example...의 manual 예제 디렉토리에 있는 manual14.vee

데이터 처리


레코드 컨테이너 이해하기

Record, Build Record, Unbuild Record, Merge Record, SubRecord, Set Field 및 Get Field 등을 이용하여 레코드를 생성하고 관리할 수 있는 VEE 오브젝트들이 있습니다. 이 오브젝트들은 Data 메뉴에서 제공됩니다.

레코드 데이터 타입의 컨테이너는 데이터를 표시하는 지정된 필드를 가지고 있습니다. 레코드에서는 많은 지정된 필드를 필요한 만큼 추가할 수 있습니다. 레코드의 각 필드는 다른 레코드, 스칼라 또는 어레이를 가질 수 있습니다.

Record 오브젝트 안에서 각 필드의 값을 직접 입력하여 수작업으로 레코드를 생성할 수 있습니다. 오브젝트 메뉴에서 접근할 수 있는 속성창을 사용하여 Record 오브젝트의 DataShape 속성 값을 Scalar(어레이 앨리먼트= 0)또는 Array(어레이 앨리먼트= 0이 아닌 값)로 설정합니다.

다음의 Record 오브젝트는 4 개의 앨리먼트를 가진 레코드 어레이로 설정되었습니다. 이 레코드는 5 개의 필드를 가집니다: 텍스트 필드(Name, Address 및 City)와 Int32 필드(EmplNo 및 Zip). Record 오브젝트에 있는 First, Prev, Next, Last 버튼을 클릭하여 레코드간을 이동할 수 있고, 해당 레코드를 편집할 수 있습니다.

프로그램이 실행되면, 전체 레코드 내용이 Record 오브젝트의 출력핀으로 출력됩니다. AlphaNumeric 디스플레이에 출력된 바와 같이, 이 레코드는 4 개의 어레이 앨리먼트(0부터 3까지)를 가지고 있으며, 각 앨리먼트는 5 개의 레코드 필드를 “{}”로 묶어서 구성되었음을 확인할 수 있습니다.

관련정보

Build Record

레코드 접근하기

프로그램에서 레코드 생성하기


레코드 접근하기

다음 2가지 예제 프로그램은 레코드에 접근하여 각각의 필드를 추출하는 방법입니다.

레코드에서 개별 필드를 추출할 때는 Get Field 오브젝트를 사용합니다. Get Field 오브젝트는 메뉴 [image] Access Record 아래에 있습니다. 예를 들어, 첫 번째 프로그램에서는, 전체 Name과 EmplNo 필드를 추출하기 위해서 Get Field 오브젝트를 사용했습니다: Get Field 오브젝트는 디폴트 표현식이 rec.field 인 Formula 오브젝트입니다.

레코드의 각 필드에 접근할 때는 Rec[*].Name 또는 Rec[*].EmplNo 등과 같이 “.”(dot 문법) 을 이용합니다. 이 문법은 일반적인 개념에서 설명하였습니다.

Rec[*].Name은 “Rec 입력 핀으로 제공된 레코드 어레이의 모든 앨리먼트에서 Name 필드”를 의미합니다. 이 문법은 Formula 오브젝트의 표현식 또는 실행중 연산되는 모든 다른 표현식에서 사용될 수 있습니다. 예를 들어, To String 오브젝트의 트랜잭션에 이 문법을 사용할 수도 있습니다.

두 번째 앨리먼트(“앨리먼트 1”)을 추출할 때는 다음과 같이 Rec[1].Name 또는 Rec[1].EmplNo 표현식을 사용합니다.

하나의 레코드에서 여러 개의 필드를 추출할 때는 다음과 같이 UnBuild Record 오브젝트를 사용합니다.

UnBuild Record 오브젝트에는 레코드가 가지는 필드에 대응하는 출력을 추가할 수 있으며, 기본적으로 Name List와 Type List 출력을 제공합니다. Name List와 Type List는 각각 레코드 각 필드의 이름과 타입을 출력합니다.

프로그램은 예제 디렉토리의 manual38.vee 파일에 저장되어 있습니다.

주의사항

데이터는 Record 데이터 타입으로 또는 Record 데이터 타입에서 데이터로 자동변환되지 않습니다. 예를 들어, Record 데이터를 실수(Real) 입력 터미날로 보내기 위해서는 UnBuild Record 오브젝트를 이용하거나 Rec.A 문법과 Get Field 오브젝트를 이용해서 Record로부터 해당 필드를 추출하여야 합니다.

관련정보

Build Record


프로그램에서 레코드 생성하기

Record 오브젝트는 간단한 레코드를 생성하거나 편집은 편리하지만 큰 용량의 레코드 생성에는 적합하지 않습니다. 기존 데이터로부터 레코드를 생성할 수도 있으며, 이 경우에는 Build Record를 사용합니다.

Build Record 오브젝트를 이용해서 개별 데이터 컴포넌트로부터 레코드를 생성할 때에는 출력하는 Record 컨테이너의 데이터 형태(Output Shape)를 정의해야 합니다. Build Record 오브젝트에서는 Scalar와 Array 1D의 두 가지의 Output Shape을 선택할 수 있습니다. Scalar가 디폴트 데이터 형이며, 대부분의 경우 Scalar가 출력 데이터 형태(Output Shape)로 사용됩니다.

다음 예제는 2개의 입력 어레이에서 생성된 출력 레코드에서의 Scala와 Array 1D의 차이점을 보여줍니다:

위의 프로그램에서, Scalar를 선택하면 출력되는 레코드는 두 개의 필드를 가지는 스칼라 레코드가 되며, 이들 필드는 각각 입력 어레이입니다. 한편, 동일한 입력에 대해서 Array 1D를 Output Shape로 선택하면 출력 레코드는 두 개의 입력 어레이와 동일한 개수의 앨리먼트를 가진 레코드 어레이가 됩니다.

두 개의 입력 어레이의 앨리먼트의 개수가 다른 경우에는, 출력 형태로로 Scalar 만을 사용할 수 있습니다. Array 1D 출력 레코드를 생성하기 위해서는 모든 입력 어레이가 동일한 개수의 앨리먼트를 가져야 합니다. 그러나 다음 예제에서 보는 바와 같이 Build Record 오브젝트의 입력을 혼합하여 사용할 수 있습니다.

이 경우, Array 1D가 선택되면 실수 스칼라값 1이 5 회 반복되어 사용됩니다.

관련정보

Build Record


데이터셋 사용하기

데이터셋에서 하나 이상의 레코드를 추출할 수 있습니다. VEE 오브젝트는 레코드를 언팩 합니다. 파일 대신에 데이터셋에 레코드를 저장하기 때문에, 데이터 타입을 기억할 필요가 없습니다. 데이터에서는 정렬하고 검색할 수 있으며, 고유한 테스트 데이터베이스를 생성할 수 있습니다.

웨이브폼을 포함하여 VEE의 데이터를 레코드로 생성하고 향후 추출할 수 있습니다. 또한 레코드를 파일로 저장할 수 있으며, 이것을 데이터셋(DataSet)이라 합니다. To DataSet 오브젝트와 From DataSet 오브젝트를 이용해서 레코드를 데이터셋으로 저장하고 추출합니다. 이들 오브젝트는 IO 메뉴에서 제공합니다.

데이터셋은 파일로 저장되어 향후 추출할 수 있는 레코드의 집합입니다. To DataSet 오브젝트는 자신의 입력 핀에서 Record 데이터를 수집하고, 지정된 파일(DataSet) 에 데이터를 저장합니다. 다음 예제를 참조하십시오.

2개의 파형, 사인 웨이브와 노이즈 웨이브가 Build Record 오브젝트로 입력되어 레코드를 형성합니다. 이 레코드는 다시 To DataSet 오브젝트로 전달되어 지정된 파일, myData로 저장됩니다. Clear File at PreRun 체크박스가 체크되어 있으므로 새로운 데이터가 저장될 때 이전 데이터는 삭제됩니다.

데이터가 데이터셋으로 저장되어 데이터셋에서 레코드를 추출할 때는 From DataSet 오브젝트를 사용합니다. 추출된 레코드는 필요시 언빌드할 수 있습니다. 다음 프로그램을 참조하십시오.

From DataSet 오브젝트는 myData에서 레코드를 추출하고, 추출한 데이터를 Unbuild Record 오브젝트로 보냅니다. Unbiuld Record 오브젝트에서는 레코드를 사인 웨이브와 노이즈 데이터로 분리합니다. 이 예제에서는, 사인 웨이브, 노이즈 웨이브폼 및 이들을 합한 웨이브폼이 각각의 XY Trace 오브젝트에 출력되었습니다.

최신의 예제 프로그램은 예제 디렉토리에 manual40.vee 및 manual41.vee 파일로 저장되어 있습니다.

간단한 테스트 데이터베이스 커스터마이징

테스트 이름, 타임 스탬프, 테스트 파라미터, 테스트 값, pass 또는 fail 지시자 및 테스트 설명과 같은 정보에 대한 데이터셋을 검색하고 정렬할 수 있습니다. 데이터셋 레코드는 테스트 데이터베이스처럼 동작합니다. 정보를 검색하기 위해서는, From Data Set 오브젝트를 다음과 같이 사용할 수 있습니다:

• From Data Set 오브젝트에 있는 표현식 필드는 검색실행을 위해 사용됩니다.

• sort() 함수는 지정한 필드를 이용하여 레코드를 정렬하기 위해 사용됩니다.

관련정보

실습 5-5: 데이터셋 사용법

실습 5-6: 데이터셋을 이용한 검색 및 정렬기능


변수 생성하기

선언되거나 선언되지 않은 변수를 지역변수나 전역변수로 생성할 수 있습니다. 선언되지 않은 변수는 사용자가 Formula오브젝트처럼 한 오브젝트에 값을 할당할 때 혹은 Set Variable 오브젝트를 사용할 때 생성됩니다. 그러나, 실제 변수를 사용하기 전에 변수를 선언하면, 선언되지 않은 형태로 사용하는 변수와 비교하여 몇 가지 장점이 있습니다. 즉, 사용범위를 지정할 수 있으며, 실행속도가 빠르고, 데이터의 형태와 종류를 미리 지정할 수 있습니다.

선언하지 않은 지역변수 생성하는 법

선언하지 않은 지역변수는 오브젝트의 데이터 입력터미날이 표현식으로 사용될 때 생성됩니다. 이 변수는 그 오브젝트의 지역변수로 동작합니다. 표현식에서 사용하는 변수의 이름은 입력되는 터미널 핀의 이름과 동일해야 합니다. 아래 그림에서는 Real64 오브젝트에 값을 지정하고 Formula오브젝트를 연결하였습니다. Formula 오브젝트의 표현식에 사용된 변수 A, B, C의 값은 입력 터미날 핀(A, B, C)을 통해 입력되고, 이들 변수는 Formula 오브젝트 내에서 지역변수로 사용됩니다. Formula 오브젝트에 출력 터미널 핀을 생성하면(Result핀 이외의 추가 터미날) 출력 터미널 핀은 Formula 오브젝트에서 값을 지정하지 않은 지역변수로 사용됩니다.

선언하지 않은 전역변수 생성하는 법

1. 메뉴 바에 Data [image] Variable [image] Set Variable를 클릭하여 Set Variable 오브젝트를 작업 창에 생성합니다.

2. Name 필드를 클릭하여 globalA대신 사용할 수 있는 새로운 변수 이름을 지정할 수 있습니다.

3. Set Variable 오브젝트에 Data 터미널 핀에 데이터 오브젝트를 연결합니다. 변수는 생성되거나 데이터 값을 지정할 수 있습니다. 이 선언하지 않은 전역변수는 프로그램 내의 임의의 위치에서 사용할 수 있습니다.

선언한 지역변수와 전역변수를 생성하는 법

1. 우선 전역 변수로 사용할 것인지 지역 변수로 사용할 것인지를 결정합니다. 지역변수로 사용하려면 변수를 사용할 라이브러리나 컨텍스트(UserObject 오브젝트 나 UserFunction 오브젝트)를 엽니다.

전역 변수는 프로그램 내의 임의의 위치에서 생성되고 사용할 수 있습니다. 지역 변수는 특정 컨텍스트나 라이브러리에만 지정하고 쓰여야 합니다.

2. Data [image] Variable [image] Declare Variable 를 클릭하고 Declare Variable 오브젝트를 작업 창에 생성합니다.

3. Name 필드를 클릭하고 변수 이름을 입력합니다. 여기 입력되는 변수 이름은 다른 변수의 이름과 다른 이름을 사용해야 합니다.

4. Scope 필드를 클릭하여 변수의 범위를 설정합니다.

Scope 필드를 Global로 선언하면 해당 변수는 Declare Variable 에 의해서 변수가 생성된 위치에 관계없이 프로그램 내의 임의의 위치에서 사용할 수 있습니다.

Scope 필드를 Local to Context로 선언하면 Declare Variable 오브젝트가 있는 UserObject 오브젝트나 UserFunction오브젝트(그들 내부의 오브젝트들도 포함)에서만 해당 변수를 사용할 수 있습니다.

Scope 필드를 Local to Library로 설정하면 Declare Variable 오브젝트가 있는 UserFunction(로컬 또는 임포팅된)의 라이브러리 에서만 해당 변수를 사용할 수 있습니다.

5. Type 필드를 클릭하여 변수의 데이터 종류를 설정합니다. 프로그램 실행하는 동안 이 변수에 할당된 데이터 값의 종류는 할당한 데이터 종류와 동일해야 합니다. 그렇지 않으면 에러가 발생합니다.

6. Num Dims 에디터 필드를 클릭하여 다차원 어레이 변수를 설정합니다.

팁

값을 지정한 변수는 사용되기 전에 Set Variable 오브젝트나 지정연산자를 사용하여 초기화 되어야 합니다.

전역 변수와 지역 변수가 같은 이름을 가져서 충돌이 발생되면 지역 변수를 우선으로 선택하여 사용합니다.

변수이름은 대소문자를 구분하지 않습니다.( globalA 는GlobalA와 동일한 변수입니다.)

records및 기타 종류의 데이터를 사용하여 선언하지 않은 변수를 설정할 수 있습니다.

툴바의 View Variables 버튼을 클릭하여 프로그램에 쓰인 변수의 목록에 볼 수 있습니다. 선언된 변수들은 프로그램을 열 때 목록에 나타나며 선언되지 않은 전역 변수들은 프로그램이 실행될 때 목록에 나타납니다. 변수목록에서 변수 이름을 클릭하여 현재의 변수에 지정된 내용을 볼 수 있습니다. Program Explorer 창에서도 변수목록이 표시됩니다.

View Variables 버튼

Program Explorer 버튼

관련정보

변수 삭제하기

변수 사용하기

글로벌 어레이 사용하기

Default Preferences 대화상자 (PreRun시 변수 삭제)

Set Variable

View Variables 메뉴항목

WatchWindow 메뉴항목


변수 삭제하기

1. Data [image] Variable [image] Delete Variable을 클릭하고, Delete Variable 오브젝트를 작업영역에 배치합니다.

2. 변수를 지정하여 삭제할 건지, 모든 변수를 삭제할 건지를 선택하십시오.

변수 이름을 지정하여 삭제하기 위해서는, By Name(디폴트)을 체크하고 텍스트 입력필드를 클릭하여 변수 이름을 입력합니다.

모든 변수를 삭제하기 위해서는, All Variables를 체크합니다.

팁

Delete Variable은 선언된 변수의 데이터 컨테이너에 있는 값들을 초기화 하기 위하여 리셋합니다; 이것은 변수 이름을 삭제하지는 않습니다.

Delete Variable은 선언되지 않은 변수의 값과 이름을 삭제합니다.

변수 이름은 대소문자를 구분하지 않습니다. (globalA는 GlobalA와 동일합니다.)

Delete Variable 오브젝트는 이름에 의해 참조되는 변수가 없을 경우에는 에러가 발생합니다.

Name 필드는 Delete Variable 오브젝트의 컨트롤 입력으로 추가할 수 있습니다.

관련정보

변수 생성하기

Delete Variable


변수 사용하기

초기화된 변수를 사용하기 위해 Get Variable 오브젝트(Data [image] Variable [image] Get Variable)를 사용하거나, 표현식에 변수 이름을 사용합니다. 이들 방법은 UserObject 또는 UserFunction에서 유용하게 사용됩니다. Get Variable 오브젝트는 변수가 지역 변수 또는 전역 변수로 선언되었는지에 따라 적절한 컨텍스트에서 사용해야 합니다.

팁

이전 프로그램을 실행할 때 사용했던 데이터를 다시 사용하는 것을 방지하기 위하여, 프로그램을 실행할 때 PreRun시에 모든 변수값이 삭제됩니다. Delete Variables at PreRun을 off하기 위해서는, 툴바에 있는 Default Preferences 버튼(File [image] Default Preferences)을 클릭합니다.

Default Preferences 버튼

PreRun시에 변수값이 삭제된 경우에는, Set Variable 오브젝트의 시퀀스 출력핀을 변수를 사용하는 오브젝트의 시퀀스 입력핀으로 연결해야 합니다. 아닌 경우에는, 변수가 정의 되지 않았기 때문에 에러가 발생합니다.

표현식을 사용하는 오브젝트에서 변수를 사용할 수 있습니다. 그러나 Get Variable 오브젝트의 name 필드에는 표현식을 포함할 수 없습니다.

VEE 프로그램의 메인 컨텍스트에서 전역변수를 정의하면, UserObject 또는UserFunction 컨텍스트에서 변수를 사용할 수 있습니다. 이것은 UserObject 또는 Call 오브젝트에 시퀀스 입력핀의 연결이 필요합니다.

예제 프로그램 manual18.vee s는 변수를 선언하고, 초기화하고, 메인 또는 UserObject 컨텍스트에서 사용하는 방법을 나타냅니다. 이 프로그램은 manual 예제 디렉토리(Help [image] Open Example)에서 제공됩니다.

관련정보

변수 생성하기

Get Variable

WatchWindow


글로벌 어레이 사용하기

변수를 글로벌 어레이로 선언할 수 있습니다. 이것은 VEE 프로그램 어디에서나 이 어레이를 사용할 수 있기 때문에 쉽게 어레이를 관리할 수 있습니다. 본 장에서는 예제를 사용하여 이 오브젝트를 사용하는 방법을 제시합니다.

사용예

1. manual 예제 디렉토리(Help [image] Open Example...)에서 manual19.vee 프로그램을 열고, 프로그램을 실행합니다.

2개의 Formula 오브젝트는 글로벌 어레이의 앨리먼트를 가져오기 위하여 어레이 구문을 사용합니다. 예를 들어, 표현식 globalA[3]는 글로벌 어레이 globalA에서 숫자 0003 앨리먼트(4번째 앨리먼트)를 가져옵니다. 이 방법은 레코드와 함께 사용할 수 있습니다.

관련정보

변수 생성하기


변수 초기값 설정하기

변수에 접근하기 전에 변수의 초기값이 설정되어야 합니다. 그렇지 않으면 에러가 발생합니다. 변수 예제는 다음과 같습니다:

Get Variable에 의해서 변수가 사용되기 전에 Set Variable에 의해서 변수가 설정되어야 합니다. 이 순서를 확실히 하기 위해서 Set Variable 오브젝트의 시퀀스 출력이 Get Variable 오브젝트의 시퀀스 입력에 연결되어 있습니다. 이와 같이 시퀀스 입출력에 의해서 변수 설정과 변수 사용순서가 지정되어 있지 않으면, Get Variable 은 존재하지 않는 전역변수에 접근을 시도하고 이로 인해 에러가 발생합니다.

주의사항

Delete Variable at PreRun 속성을 설정되지 않으면, 에러를 발생하지는 않지만, 현재의 데이터가 아닌 이전 데이터를 가져옵니다.

선언된 변수가 생성될 때, 이들은 초기화되지 않으므로, Get Variable 오브젝트 또는 표현식을 통해서 접근되기 전에 이들 변수에 값이 설정되어야 합니다. 변수에 값 설정은 Set Variable이나 Formula 오브젝트를 사용합니다.

변수가 어레이 또는 레코드이면, Formula 오브젝트에서 이 변수들을 사용하기 전에, 이들 어레이 또는 레코드의 전체 앨리먼트의 값이 설정되어야 합니다. 다음 예제는 Formula 오브젝트에서 어레이 변수를 설정하는 두 가지 방법입니다.

관련정보

변수 생성하기

변수 사용하기


변수 사용하기

일단 변수이름이 생성되면, 프로그램 안에서 횟수에 관계없이 그 변수의 값을 가져올 수 있습니다. 변수의 값은 여러 가지 방법으로 가져올 수 있습니다. 다음 예제에서, 전역변수 globalA에 저장된 값은 Get Variable 오브젝트에 의해서 한번 사용되고, Formula 오브젝트의 표현식에서 globalA를 포함하여 두 번째로 사용되고, To File 오브젝트의 트랜잭션에 globalA를 포함하는 것에 의해서 세 번째로 사용됩니다:

주의사항

Formula 오브젝트의 표현식 또는 실행시 사용되는 다른 표현식에서도 어떤 전역 변수의 이름을 포함할 수 있습니다.

관련정보

변수 사용하기

Copyright (c) 1991-2007 Agilent Technologies, Inc.


라이브러리에서 변수 사용하기

라이브러리가 임포트될 때는 UserFunction 만 로드되므로, Declare Variable 오브젝트를 사용하는 경우에는, Declare Variable 오브젝트를 그 라이브러리의 Main 윈도우 안이 아닌, UserFunction들 중의 하나의 UserFunction 안에 넣어야 합니다.

변수가 Global로 설정되면, 이 변수는 로컬 프로그램 안에서만 사용될 수 있습니다. 호출되는 원격 함수에서는 사용될 수 없습니다.

  • 라이브러리가 임포트되는 경우에는, 임포트되는 UserFunction 안에서 (Declare Variable 오브젝트에 의해서) 선언된 모든 변수들은 범위제한이 정의되는 순간에 정의됩니다. 예를 들어, 변수의 제한범위가 Global로 정의되면, 해당 라이브러리가 제거될 때까지 그 프로그램 안에서 사용될 수 있습니다. 라이브러리가 제거되면, 그것의 UserFunction 안에서 선언되었던 모든 변수들도 제거됩니다

관련정보

변수에 대하여, 프로그램에서 UserFunction 호출하기


Agilent VEE의 데이터 분석기능

VEE는 일반적인 수학 연산과 수백 개의 함수를 제공할 뿐만 아니라, MATLAB 스크립트도 내장하고 있습니다. VEE에 내장된 MATLAB 스크립트는 MathWorks사의 정품 MATLAB의 서브 셋이며, 신호처리, 고급수학, 데이터 분석, 과학 및 공학 그래픽 기능 등을 포함하여 VEE에 수학처리 기능을 추가 제공합니다. MATLAB 스크립트 기능은 VEE에 통합되어 있어서 어떠한 VEE 프로그램에서도 MATLAB 스크립트 오브젝트를 사용할 수 있습니다.

사용자가 필요로 하는 수학 함수가 VEE 또는 MATLAB 스크립트에서 제공되지 않으면, Formula 오브젝트를 사용하여 필요한 함수를 생성하거나(이 내용은 이 단원의 후반부에서 설명됩니다.), C 언어와 같은 컴파일된 프로그램언어에서 함수를 생성해서 VEE에 링크하거나, 또는 VEE로부터 다른 소프트웨어 응용프로그램과 통신하여 필요한 함수의 기능을 수행하도록 할 수 있습니다.

관련정보

Formula 오브젝트에서 표현식 생성

VEE에 내장된 수학연산 오브젝트

VEE에 내장된 MATLAB 스크립트


Formula 오브젝트에서 표현식 생성

Formula 오브젝트는 VEE에서 수학적 표현식을 입력할 때 사용할 수 있습니다. 표현식에서 사용하는 변수들은 데이터 입력핀의 이름이나 전역변수이어야 합니다. 표현식의 결과는 Formula 오브젝트의 출력핀으로 출력됩니다.

다음 그림은 Formula 오브젝트입니다. 표현식의 입력필드는 오브젝트의 중앙에 있습니다. 디폴트 표현식 (2*A+3)이 있는 위치가 공식을 입력하는 위치입니다. 다른 표현식을 입력하기 위해서는 단지 필드를 더블클릭하고 입력하면 됩니다.

주의사항

Formula에 하나 이상의 표현식을 입력할 수 있습니다. Formula 표현식이 하나의 Return을 가지고 있으면, 여러 줄로 이루어진 하나의 표현식으로 간주됩니다. 그러나 Formula 표현식이 세미콜론(;)으로 나누어져 있으면, 나누어진 개수만큼의 표현식으로 간주됩니다.

Formula 박스는 RTF(Rich Text Format) 박스이고, Formula 안의 표현식을 일반적인 편집기능을 이용하여 수정할 수 있습니다. 예를 들어 하이라이트된 부분을 Ctrl-C로 복사하여 Ctrl-V로 붙여 넣을 수 있습니다. 마찬가지로 End, Insert, Delete, Backspace 등을 사용할 수 있습니다.

주의사항

모든 함수는 Devices [image] Function & Object Browser에서 생성됩니다. 내장함수는 표현식을 이미 가지고 있는 오브젝트입니다. 이것들은 함수 결합하거나 입력 추가(또는 삭제)하여 본래의 기능을 수정할 수 있습니다. 사용자는 Formula 오브젝트에 여러 줄을 입력할 수 있고, 출력 터미날의 값을 배정할 수 있습니다.

Formula 오브젝트에서 표현식 사용

이 예제에서는 표현식 2*A^6-B(A=2, B=1)의 값을 구합니다. ( ^는 거듭제곱 입니다.)

주의사항

변수 이름은 대소문자를 구분하지 않습니다.

1 Device [image] Formula를 선택하고 입력필드에 2*A^6-B를 입력합니다.

2 마우스 포인터를 입력 영역에 놓고 Ctrl-A를 눌러 입력핀을 추가합니다.

주의사항

라벨명(입력 데이터핀의 이름)은 디폴트로 B 이지만, 이 이름을 고칠 수 있습니다.

3 Data [image] Constant [image] Int32를 선택하고 오브젝트 메뉴의 클론을 선택하여 클론하고 두 개의 Int32 오브젝트를 Formula 입력 A와 B에 연결합니다.

4 A Int32 입력 필드에 2를 입력하고 B Int32 입력 필드에 1을 입력합니다.

5 Display [image] AlphaNumeric을 선택하고 Formula의 출력에 연결한 다음 프로그램을 실행합니다. 127 이 출력됩니다

오브젝트에서 Agilent VEE 함수 사용

이 예제는 Formula 오브젝트를 사용하여 코사인 파형을 발생하고 표준편차 및 평균제곱근(Root Mean Square)을 계산합니다.

1 Function Generator, Formula, AlphaNumeric 오브젝트를 선택하고 각각의 데이터 핀을 서로 연결합니다.

2 오브젝트 메뉴를 열어 Clone을 선택하여 Formula 오브젝트를 클론하고, 기존의 오브젝트 아래에 배치합니다. Function Generator의 데이터 출력핀을 두 번째 Formula 오브젝트에 연결합니다.

3 AlphaNumeric 디스플레이를 클론하고 두 번째 Formula 오브젝트에 연결합니다.

4 첫 번째 Formula 오브젝트에 sdev(A)를 입력하고 두 번째 Formula 오브젝트에는 rms(A)를 입력합니다.

sdev(A)와 rms(A)는 Device [image] Function & Object Browser 대화상자에서 제공되는 수학 함수입니다. 이들은 함수 또는 독립적인 오브젝트 형태로 호출할 수 있으며, 어떠한 방법을 사용하든 동일한 결과를 생성합니다.

5 프로그램을 실행시킵니다. 그림과 같이 함수들을 Formula 오브젝트를 사용하였을 때와 각각 독립된 오브젝트를 사용할 때 모두 같은 결과를 디스플레이 합니다.

이제 표준 편차와 평균 제곱근을 하나의 Formula 오브젝트를 사용하여 계산합니다. Formula는 배정된 출력에 따라 여러 개의 출력핀을 가질 수 있습니다.

6 오브젝트 메뉴를 더블클릭 하여 하나의 Formula 오브젝트를 제거합니다.

7 남은 하나의 Formula 오브젝트의 표현식을 아래와 같이 변경합니다.
B=sdev(A);
C=rms(A)

주의사항

Formula 오브젝트가 여러 줄의 표현식을 가지고 있을 경우 다음의 표현식과 구분하기 위하여 표현식의 끝에 세미콜론을 입력해야 합니다. 예를 들면, 공식 B=sdev(A); 의 세미콜론은 표현식의 끝을 나타냅니다.

주의사항

사용자는 Formula 오브젝트의 어떠한 위치이든 줄바꿈을 입력할 수 있습니다. 표현식이 아무리 길더라도 세미콜론이 없으면 하나의 표현식으로 간주됩니다. 예를 들어, 다음과 같이 표현하더라도 하나의 표현식으로 간주됩니다.

B=sdev
(A)

또한 읽기의 편의성을 위해 공백을 추가할 수 있습니다.

8 Formula 오브젝트에 출력 터미날을 추가합니다. 출력 터미날의 이름을 각각 B와 C로 변경합니다. 출력터미날 B를 AlphaNumeric 오브젝트에 연결하고 출력터미날 C를 다른 AlphaNumeric 오브젝트에 연결합니다.

9 프로그램을 실행합니다. 실행 결과는 다음과 같습니다.

자습

다음의 예제를 따라 하고 다음 그림과 결과를 비교합니다.

1 Built-in Functions의 Generate 카테고리의 ramp 오브젝트를 사용하여 1부터 2048까지의 숫자 어레이를 생성합니다. 이 어레이의 표준편차를 계산하고 화면에 출력합니다.

2 ramp 오브젝트 대신 Formula 오브젝트에 ramp()함수를 입력합니다. 이전 단계에서 설명한 것과 같은 예제를 수행합니다.

3 두 개의 오브젝트만을 사용하여 위에서 설명한 동일한 예제를 수행합니다.

두 번째와 세 번째 예제에서 에러 메시지가 발생하면 Formula 오브젝트의 입력 터미날 A를 제거해야 합니다. 이 예제에서는 Formula 오브젝트의 입력터미날을 사용하지 않는데, Formula 오브젝트가 입력터미날을 가지고 있으면, 이들 오브젝트가 실행되기 전에 이들이 가지고 있는 입력터미날에 데이터를 제공해야 하기 때문입니다.

관련정보

Formula

Copyright (c) 1991-2006 Agilent Technologies, Inc.


VEE에 내장된 수학연산 오브젝트

VEE의 Device [image] Function & Object Browser에서, VEE 및 MATLAB의 내장함수를 사용할 수 있습니다.

VEE에 내장된 연산자와 함수에 접근하는 방법

VEE가 제공하는 연산자와 함수를 호출하기 위해서 Device [image] Function & Browser를 선택합니다. 예를 들어, 랜덤숫자 생성 함수는 Type: Built-in Functions, Category: Probability & Statistics, Functions: random을 차례로 선택하여 사용할 수 있습니다.

Function & Object Browser는 현재 선택한 함수에 대한 간단한 설명을 제공합니다. 또한 Help 버튼을 클릭하면 현재 선택한 함수에 대한 자세한 설명과 함수 정의, 사용법, 문법 및 예제들을 참조할 수 있습니다.

MATLAB 연산자와 함수에 접근하기 위해서는 Device [image] Function& Object Browser를 선택하고 Type: MATLAB Functions을 선택합니다. 예를 들어, 루트를 다항식으로 변환하는 함수는 Type: MATLAB Function, Category: Interpolation & Polynomials, Functions: poly를 선택합니다.

VEE 내장함수에서와 마찬가지로, 현재 선택된 함수에 대한 간단한 설명이 Function & Object Browser에 표시되며 Help 버튼을 클릭하면 자세한 설명을 참조할 수 있습니다. MATLAB 런타임 엔진과 스크립트는 "Agilent VEE에 내장된 MATLAB 스크립트"에서 설명합니다.

예제: 표준편차 계산

주파수 1kHz, 진폭 1V, 시간 스팬 20ms, 256 포인트의 코사인 파형을 발생시키고 이것의 표준편차를 구하고, 화면에 표시합니다.

1. Device [image] Virtual Source [image] Function Generator를 선택합니다. 주파수를 설정하고 아이콘화 합니다.

2. Device [image] Function & Object Browser를 선택하고 Built-in Function, Probability & Statistics, sdev를 각각 선택하고 Create Formula를 클릭합니다.

주의사항

툴바의 fx 아이콘을 누르거나 Ctrl-I를 실행하여 Function & Object Browser 대화상자를 열 수 있습니다.

3. sdev()의 오브젝트 메뉴를 열어 도움말을 참조합니다.

주의사항

sdev(x) 오브젝트는 x값의 변화에 따른 제곱근으로 정의되어 있고, x는 UInt8, Int16, Int32, Real32, Real64, Coord, 또는 Waveform의 타입이 될 수 있습니다. Function Generator는 Waveform 데이터 타입을 출력합니다.

4. Function Generator와 sdev(x)를 연결합니다.

5. Display [image] AlphaNumeric을 선택하고 sdev(x)와 연결합니다.

6. 프로그램을 실행합니다. 최종 결과는 다음과 같습니다.


스칼라 값 디스플레이하기

AlphaNumeric 오브젝트는 스칼라 값을 디스플레이하기 위하여 사용합니다. 오브젝트는 매번 실행될 때마다 내용을 초기화하고, 전송 받은 새로운 데이터를 디스플레이 합니다.

1. AlphaNumeric 디스플레이 오브젝트를 작업영역에 추가하십시오. (Display [image] AlphaNumeric).

2. AlphaNumeric 오브젝트의 데이터 입력핀을 스칼라 데이터를 출력하는 오브젝트(예를 들어, Real64 상수 오브젝트)에 연결하십시오.

3. 데이터를 디스플레이하기 위하여 프로그램을 실행하십시오.

사용예

관련정보

연속되는 값을 로그하여 디스플레이하기

AlphaNumeric


어레이 값 디스플레이하기

어레이를 표시하기 위해서 AlphaNumeric 오브젝트를 사용합니다. 이 오브젝트는 실행할 때 마다 초기화하고 입력된 새로운 데이터를 화면에 표시합니다.

1. 작업 영역에 AlphaNumeric 오브젝트를 생성합니다. (Display [image] AlphaNumeric).

2. 데이터를 어레이로 제공하는 오브젝트(예를 들어, Alloc Real64 오브젝트)를 AlphaNumeric 오브젝트 데이터 입력 핀에 연결합니다.

3.프로그램을 실행하고 AlphaNumeric 오브젝트에 표시된 데이터를 확인합니다.

4. AlphaNumeric 오브젝트의 크기를 조정하고 표시된 전체의 어레이를 확인합니다.

사용예

1차원 어레이는 10개의 앨리먼트로 구성된 단일 데이터 컨테이너입니다.

관련정보

AlphaNumeric


연속되는 값을 로그하여 디스플레이하기

Logging AlphaNumeric 오브젝트는 연속되는 값을 로그하여 디스플레이 하는데 사용합니다. 오브젝트는 데이터를 받은 순서대로 로그합니다.

1. Logging AlphaNumeric 오브젝트를 작업영역에 추가하십시오. (Display [image] Logging AlphaNumeric).

2. Logging AlphaNumeric 오브젝트의 데이터 입력핀을 데이터를 반복하여 출력하는 오브젝트(예를 들어, For Count 오브젝트)에 연결하십시오.

3. 로그된 데이터를 디스플레이하기 위하여 프로그램을 실행하십시오.

사용예

Logging AlphaNumeric 오브젝트는 For Count 오브젝트에서 전송된 10개의 스칼라 값을 로그하여 디스플레이합니다.

관련정보

데이터를 아날로그 디스플레이로 나타내기

Logging AlphaNumeric


데이터를 아날로그 디스플레이로 나타내기

Indicator 오브젝트는 스칼라 데이터를 아날로그 인디케이터로 디스플레이 하기 위해 사용합니다. 이들 오브젝트는 3가지 색상의 범위를 가지고 값을 지시합니다.

Fill Bar는 컬러바를 사용하여 값을 디스플레이 합니다.

Meter는 아날로그 미터에 값을 디스플레이 합니다.

Tank는 그래픽 탱크에 컬러바를 사용하여 값을 디스플레이 합니다.

Thermometer는 그래픽 온도계에서 “수은”을 사용하여 값을 디스플레이 합니다.

다음에 설명한 프로스져는 Thermometer를 사용하였습니다. 다른 Indicator 오브젝트에서도 기능을 유사하게 사용할 수 있습니다.

온도계에 데이터 디스플레이 하기

1. Thermometer 오브젝트를 작업영역에 추가합니다 (Display [image] Indicator [image] Thermometer).

2. Int32 Slider 오브젝트를 Thermometer의 데이터 입력핀에 연결합니다. 값을 선택하기 위하여 슬라이더를 이동하고, 프로그램을 실행합니다. 슬라이더를 범위내에서 다른 값으로 설정하고 프로그램을 실행합니다.

“수은” 레벨과 색상이 슬라이더 값에 따라 변경됩니다. 값은 Thermometer의 하단에 디스플레이 됩니다.

3. Thermometer의 눈금 범위를 변경해 봅니다. 하위 범위 필드(0)를 클릭하고 새로운 값을 입력합니다. 상위 범위 필드(100)도 동일한 방법으로 값을 변경합니다. 온도계의 눈금이 새로운 범위에 맞게 변경됩니다.

Thermometer 오브젝트 설정하기

1. Thermometer의 오브젝트 메뉴에서 Properties를 클릭하면, Thermometer 속성창이 나타납니다.

2. 일부 파라미터를 변경해 봅니다.

a. 온도계의 수직배치(디폴트) 또는 수평배치를 선택할 수 있습니다. 디지탈 디스플레이를 on하고 off할 수도 있습니다.

b. 각 범위(low, mid, 및 high)에 대한 색상을 선택할 수 있습니다. 선택할 수 있는 색상을 보기 위해서는 color 버튼을 클릭합니다. 해당하는 색상의 범위가 시작하는 위치를 지정하기 위해 하위 및 상위 한계 값을 설정할 수 있습니다.

3. 속성창에서 항목을 변경하면 바로 적용됩니다.

관련정보

Color Alarm 표시하기

Fill Bar

Meter

Tank

Thermometer


Color Alarm 표시하기

Color Alarm 오브젝트는 사용자가 지정할 수 있는 색상 인디케이터와 데이터 입력핀에 있는 값에 따른 텍스트 스트링을 디스플레이 합니다.

Color Alarm 사용하기

1. Color Alarm 오브젝트를 작업영역에 추가합니다(Display [image] Indicator [image] Color Alarm).

2. Real64 Slider 오브젝트를 Color Alarm의 데이터 입력핀에 연결합니다. 값을 선택하기 위하여 슬라이더를 이동하고, 프로그램을 실행합니다. 슬라이더를 범위내에서 다른 값으로 설정하고 프로그램을 실행합니다.

Color Alarm에 디스플레이 되는 색상과 텍스트는 변경된 슬라이더의 위치에 따라 변경됩니다.

Color Alarm 설정하기

1. Color Alarm 오브젝트의 오브젝트 메뉴에서 Properties를 클릭하면, 속성창이 나타납니다.

2. 일부 파라미터를 변경해 봅니다:

a. 속성창의 Layout 영역에서는, Color Alarm의 모양을 원형(디폴트) 또는 사각형으로 선택할 수 있습니다. 디지탈 디스플레이와 “3차원” 테두리를 on 또는 off할 수도 있습니다.

b. 속성창의 Limit 영역에서는, 각 범위(low, mid, 및 high)에 대한 색상을 선택할 수 있습니다. 선택할 수 있는 색상을 보기 위해서는 color 버튼을 클릭합니다. 각 범위에 대한 텍스트를 변경할 수 있으며, 해당하는 색상의 범위가 시작하는 위치를 지정하기 위해 하위 및 상위 한계 값을 설정할 수 있습니다.

3. 속성창에서 항목을 변경하면 바로 적용됩니다.

관련정보

데이터를 아날로그 디스플레이로 나타내기

Color Alarm


XY값 디스플레이 하기

XY Trace와 X vs Y Plot 오브젝트는 그래프를 표시하는데 가장 적합합니다.

연속되는 값을 그래프로 표시하기

1. XY Trace 오브젝트를 작업영역에 추가합니다. (Display [image] XY Trace).

2. 데이터를 출력하는 오브젝트를 XY Trace 오브젝트의 데이터 입력핀으로 연결합니다. 데이터는 끊임없이 생성되는 연속적인 포인트일 수도 있고, 파형일 수도 있습니다. Function Generator 오브젝트(Device [image] Virtual Source)는 좋은 예제가 됩니다.

3. 프로그램을 실행합니다.

사용예

다음 프로그램에서는, For Range 오브젝트가 37번 반복하여 1, 10, 20등의 연속되는 값을 360까지 생성합니다. Formula 오브젝트는 각 값의 사인값을 연산하고 결과를 XY Trace로 출력합니다. 그래프는 다음과 같이 표시됩니다.

X값에 대비되는 연속되는 Y값 디스플레이하기

1. X vs Y Plot 오브젝트를 작업영역에 추가합니다. (Display [image] X vs Y Plot).

2. XData 와 YData1 데이터 입력터미날을 적절한 데이터 출력 오브젝트에 연결합니다. X 포인트에 대비되는 연속되는 Y값을 그래프로 디스플레이 할 수 있습니다. 또는 파형에 대비되는 파형을 디스플레이할 수도 있습니다. 반면에 데이터 형태를 혼합할 수는 없습니다.

3. 프로그램을 실행합니다.

사용예

I다음 프로그램에서는 For Log Range 오브젝트는 14회 반복하여, 로그스케일로 연속되는 Y 데이터 포인트를 생성합니다. Counter 오브젝트는 For Log Range 오브젝트가 YData1 입력터미날로 로그스케일 값을 출력하는 동안에 XData 입력터미날로 입력된 횟수를 출력합니다. X vs Y Plot 오브젝트는 결과 그래프를 디스플레이 합니다.

관련정보

파형 디스플레이하기

X vs Y Plot

XY Trace


파형 디스플레이하기

Waveform (Time) 디스플레이 오브젝트 또는 XY Trace 오브젝트는 파형 데이터를 디스플레이합니다. X vs Y Plot 오브젝트는 다른 파형에 대비되는 하나의 파형을 디스플레이합니다. 다음의 예제는 파형을 디스플레이하는 방법입니다.

주의사항

layout, grid type 또는 markers 같은 디스플레이 오브젝트의 속성을 변경하기 위해서는, 타이틀바를 더블클릭하거나 오브젝트 메뉴에 있는 Properties를 클릭하십시오. trace나 scale 라벨을 클릭하면, 이들의 속성을 직접 변경할 수 있습니다.

XY Trace 오브젝트에서 사인파 디스플레이 하기

1. XY Trace 오브젝트를 작업영역에 추가하십시오. (Display [image] XY Trace).

2. Function Generator 오브젝트를 작업영역에 추가하십시오. (Device [image] Virtual Source [image] Function Generator). Function Generator의 Func 출력핀을 XY Trace 오브젝트의 데이터 입력핀에 연결하십시오.

3. 50Hz 사인파를 출력하도록 아래와 같이 Function Generator의 설정을 변경하십시오. 프로그램을 실행 합니다.

다음의 프로그램에서는, XY Trace 오브젝트는 시간영역에서 파형을 디스플레이 합니다. 파형의 크기는 파형의 시간 범위와 매칭하는 0에서 20m(20 milliseconds)사이에서 시간 스케일에 따른 그래프가 디스플레이 됩니다. XY Trace 오브젝트는 입력데이터가 파형일 경우 자동으로 처리되나, 다른 경우에는 X 축은 단순히 포인트를 디스플레이 합니다.

X vs Y Plot 오브젝트에서 다른 파형에 대비되는 파형 디스플레이하기

1. X vs Y Plot 오브젝트를 작업영역에 추가하십시오. (Display [image] X vs Y Plot).

2. 2개의 Function Generator 오브젝트를 작업영역에 추가하십시오.

3. Function Generator의 Func 출력핀을 X vs Y Plot 오브젝트의 XData 입력핀으로 연결하십시오. 이 Function Generator의 설정을 Phase가 0도인 50Hz 사인파를 출력하도록 변경하십시오.

4. 다른 Function Generator의 Func 출력을 X vs Y Plot 오브젝트의 YData1 입력으로 연결하십시오. 이 Function Generator의 설정을 Phase가 45도인 50Hz 사인파를 출력하도록 변경하십시오.

5. 프로그램을 실행합니다.

다음의 프로그램에서는, Function Generator오브젝트가 위상차가 45도인 2개의 50Hz 사인파를 생성합니다. 이 파형들은 서로 대비되는 파형을 리사쥬 패턴으로 디스플레이합니다.

Waveform(Time) 오브젝트에서 두개의 파형 디스플레이 하기

1. Waveform (Time)오브젝트를 작업영역에 추가하십시오. (Display [image] Waveform (Time)).

2. 오브젝트 메뉴에서 Add Terminal [image] Data Input...를 클릭하여 2번째 터미날을 생성하십시오.

3. 2개의 Function Generator 오브젝트를 작업영역에 추가하십시오.

4. Function Generator의 Func 출력을 Waveform 오브젝트의 Trace1 입력핀에 연결하십시오. Function Generator의 설정을 Phase가 0도인 50Hz 사인파를 출력하도록 변경하십시오.

5. 다른 Function Generator의 Func 출력을 Waveform 오브젝트의 Trace2 입력핀에 연결하십시오. Function Generator의 설정을 DcOffset이 -0.8이고 Phase가 0도인 50Hz 사인파를 출력하도록 변경하십시오.

6. 프로그램을 실행하십시오.

다음의 프로그램에서는, Function Generator오브젝트는 2개의 50Hz 사인파를 생성합니다. 2번째 파형은 -0.8의 DC 옵셋을 가집니다. Waveform (Time)오브젝트는 Trace 1 과 Trace 2로 2개의 파형을 디스플레이합니다. Trace의 라인스타일 속성을 변경하기 위해서는 Trace 라벨을 클릭하여 대화상자에서 Line Type 및 Point Type을 변경합니다.

주의사항

XY Trace, X vs Y Plot 및 Waveform (Time)등의 오브젝트는 계측기로부터의 파형을 그래프로 디스플레이하는데 사용합니다.

관련정보

Trace 추가하기

Trace 라인 및 포인트 타입 변경하기

Waveform (Time)

X vs Y Plot

XY Trace


폴라데이터 디스플레이 하기

Polar Plot 오브젝트는 폴라데이터를 그래프로 표시합니다. 다음의 순서는 오브젝트를 사용하는 방법입니다.

1. Polar Plot 디스플레이 오브젝트를 작업영역에 추가하십시오. (Display [image] Polar Plot).

2. For Range 오브젝트와 Formula 오브젝트를 추가하십시오. 다음 프로그램과 같이 오브젝트를 연결합니다. Formula 오브젝트에 삼각함수를 사용하여 공식을 입력하고 프로그램을 실행합니다.

공식 1-(sin(360-A)/3)-cos(A)는 심장모양의 그래프를 생성합니다. 어떤 공식이라도 입력이 가능합니다. For Range 오브젝트는 0도에서 360도를 1도 단위로 전송합니다. Polar Plot 오브젝트는 각도에 대한 삼각함수 데이터를 그래프로 표시합니다.

관련정보

Polar Plot


Trace 추가하기

그래프(XY) 디스플레이 오브젝트에 Trace를 추가할 수 있습니다.

1. 디스플레이 오브젝트의 오브젝트 메뉴에서 Terminal [image] Data Input를 선택하십시오.

2. 적절한 명칭과 함께 오브젝트에 새로운 입력이 추가됩니다.

3. 터미널의 명칭을 보기 위해서는, 오브젝트 메뉴에서 Properties를 선택하고 Show Terminal 항목에서 True를 선택합니다.

4. 원하는 터미널을 추가 하였으면, 데이터 소스를 터미널에 연결하십시오.

관련정보

Trace 색상 변경하기

Trace 라인 및 포인트 타입 변경하기

프로그램 실행 중 그래프에 트레이스 추가하기


Add traces to Graphs Programmatically

프로그램 실행 중 그래프에 트레이스 추가하기

XY Trace, X vs Y Plot, Polar Plot, 및 Strip Chart는 입력 데이터로 2D 어레이를 사용할 수 있고, 최대 12개의 트레이스를 동시에 디스플레이할 수 있습니다. 복수의 트레이스를 그래픽 오브젝트에 프로그램 실행 중에 추가할 수 있습니다.

복수의 트레이스를 그래프로 표시하기

다음 예제는 그래프 오브젝트에서 복수의 트레이스를 디스플레이하는 방법을 나타냅니다.

1. 다음과 같이 프로그램을 생성합니다.

2. 오브젝트의 오브젝트 메뉴에서 Properties를 선택하면, 속성창이 나타납니다.

3. Behavior 영역 아래에 있는 MatrixInput를 클릭합니다. MatrixInput은 디폴트로 False이며, 이 항목을 True로 변경합니다.

4. MatrixInput을 설정한 다음에 프로그램을 실행합니다. XY Trace 그래프에 2개의 트레이스가 디스플레이됩니다.

다른 사용예: 2dXyTrace.vee, MatrixInputStripChart.vee.

주의사항

MatrixInput 속성은 Next Curve 컨트롤핀이 없고 XY Trace가 단 하나의 데이터 입력핀을 가지고 있는 경우에만 True로 설정할 수 있습니다. 이와 유사하게 Matrix-Input 그래프에 데이터 입력을 추가할 수 있습니다.

MatrixInput 속성은 패널뷰에서는 사용할 수 없고, 실행중에 프로그램상으로 토글할 수도 없습니다.

모든 트레이스에 있는 각각의 트레이스 속성(색상, 포인트-스타일등)은 실행중에 설정할 수 있습니다.

관련정보

Trace 추가하기, XY Trace, X vs Y Plot, Polar Plot, Strip Chart


Trace 색상 변경하기

그래픽 디스플레이(XY) 오브젝트에 있는 Trace의 색상을 변경할 수 있습니다.

1. 디스플레이 오브젝트의 오픈뷰에 있는 Trace이름을 클릭하십시오.

2. 편집대화상자에서 Color 항목의 옆에 있는 버튼을 클릭하고, 표시되는 대화상자에서 새로운 색상을 선택하고 OK 버튼을 클릭하십시오.

3. Trace의 색상을 변경하였으면, 작업영역으로 되돌아가기 위해 편집대화상자의 OK 버튼을 클릭하십시오. 새로 선택한 색상이 적용된 것을 볼 수 있습니다.

4. 각 Trace의 색상을 변경하기 위해서는 위의 단계를 반복하십시오.

또한, 속성창에서도 이들 값을 수정할 수 있습니다. XY Display 오브젝트의 관련 메뉴에서 속성들을 선택할 수 있습니다. 속성창에서 Design 영역에 있는 Trace항목의 왼쪽에 있는 ‘+’를 클릭하여 나타나는 속성들을 수정할 수 있습니다.

관련정보

Trace 라인 및 포인트 타입 변경하기


Trace 라인 및 포인트 타입 변경하기

그래픽 디스플레이(XY) 오브젝트에 있는 Trace의 라인 및 포인트 타입을 변경할 수 있습니다.

1. 디스플레이 오브젝트의 오픈뷰에 있는 Trace이름을 클릭하십시오.

2. 편집대화상자에서 라인 및 포인트 타입을 변경할 수 있습니다.

a. 라인 타입을 변경하기 위해서는 Line Type 항목의 옆에 있는 버튼을 클릭하십시오: --, 매번 클릭할 때 마다 라인 타입이 변경됩니다. 원하는 타입의 라인을 찾을 때까지 계속 클릭하여 선택합니다.

b. 포인트 타입을 변경하기 위해서는 Point Type 항목의 옆에 있는 버튼을 클릭하십시오: --, 매번 클릭할 때 마다 라인 타입이 변경됩니다. 원하는 타입의 라인을 찾을 때까지 계속 클릭하여 선택합니다.

3. 변경을 완료하면, OK 버튼을 눌러 작업영역으로 되돌아옵니다.

4. 라인과 포인트의 변경이 필요한 각 Trace에 대해서 위에 설명한 단계를 반복합니다.

또한, 속성창에서도 이들 값을 수정할 수 있습니다. XY Display 오브젝트의 관련 메뉴에서 속성들을 선택할 수 있습니다. 속성창에서 Design 영역에 있는 Trace항목의 왼쪽에 있는 ‘+’를 클릭하여 나타나는 속성들을 수정할 수 있습니다.

관련정보

Trace 색상 변경하기


디스플레이를 크게 또는 작게 줌하기

그래픽(XY) 디스플레이 오브젝트에서 디스플레이를 크게 또는 작게 줌할 수 있습니다. 다음 프로시져는 예제 프로그램을 사용하여 줌을 사용하는 방법을 보여줍니다.

1. manual 예제 디렉토리 (Help [image] Open Example...)에서 manual23.vee 프로그램을 로딩합니다. 트레이스를 디스플레이하기 위하여 프로그램을 실행합니다.

2. 디스플레이 오브젝트의 오브젝트 메뉴에서 Zoom [image] In을 선택합니다.

3. 줌하고자 하는 영역의 우측 상단 방향으로 포인터를 이동합니다. 영역을 지정하기 위하여 마우스 왼쪽 버튼을 누르고 외곽 테두리를 드래그합니다.

4. 마우스 버튼을 놓습니다. 줌이 적용된 영역이 디스플레이 됩니다.

5. 본래의 디스플레이로 되돌아 가기 위하여 Auto Scale 버튼을 클릭합니다.

6. 디스플레이 오브젝트의 오브젝트 메뉴에서 Zoom [image] Out 2 X를 선택합니다.

7. 디스플레이가 본래 크기의 두배로 줌되는 것을 봅니다. 본래의 디스플레이로 되돌아 가기 위하여 Auto Scale 버튼을 클릭합니다.

단축키

마우스 왼쪽 버튼을 누르고 줌하고자 하는 영역으로 외곽 박스를 드래그 하고, 마우스 버튼을 놓습니다.


그리드 타입 변경하기

그래픽 디스플레이(XY) 오브젝트의 그리드 타입을 변경할 수 있습니다.

1. 오브젝트 메뉴의 Properties를 선택하면, 속성창이 나타납니다.

2. Grid Type 항목에서 원하는 그리드 타입을 선택하십시오. (디폴트 값은 Lines입니다.)

3. 속성창에서 변경된 내용은 즉시 반영됩니다.


디스플레이에서 마커 설정하기

피크(peak)와 골(valley)의 위치를 인식하기 위해 그래픽(XY) 디스플레이 오브젝트에 마커를 설정할 수 있습니다.

1. 오브젝트 메뉴에서 Properties를 선택하면, 속성창이 나타납니다.

2. Markers 영역아래에서 NumMarkers를 선택합니다:

a. None은 마커를 off합니다. (디폴트)

b. One은 하나의 마커를 표시합니다. 마커 위치는 오브젝트 하단에 디스플레이 됩니다.

c. Two는 2개의 마커를 표시합니다. 각 마커의 위치는 오브젝트 하단에 디스플레이 됩니다.

d. Delta는 2개의 마커를 표시합니다. 각 마커의 위치 및 2개의 마커의 차이가 오브젝트의 하단에 디스플레이 됩니다.

MarkerInterpolate를 True로 설정한 경우에는, 디스플레이된 데이터 포인터를 따라 마커를 위치시킬 수 있습니다. (마커 위치는 선형 보간법에 의해 연산됩니다.)

3. 마커를 설정한 다음에는, 마우스를 이용하여 클릭하거나 드래그하여 트레이스를 따라 이동할 수 있습니다.

사용예

마커를 포함한 프로그램이 Manual 예제 디렉토리 (Help [image] Open Example...)에 manual24.vee 로 저장되어 있습니다.

1. XY Trace 오브젝트에 파형을 디스플레이 하기 위하여 프로그램을 로딩하고 실행합니다.

2. 마커를 이동합니다. XY Trace 오브젝트의 하단에 있는 위치 데이터를 주목하여 살펴봅니다.

관련정보

마커의 속성을 설정하거나 가져오기, 프로그램 실행 중 속성 변경


마커의 속성을 설정하거나 가져오기

그래픽(XY) 디스플레이 오브젝트에 있는 마커의 값을 프로그램상으로 설정하고 가져올 수 있습니다.

1. 마커를 가진 XY 디스플레이 오브젝트가 있다면, 오브젝트 메뉴에서 Properties를 선택합니다. 해당 오브젝트의 속성창이 디스플레이 됩니다.

2. Declared Name 필드에 이름을 입력합니다. 이 XY 디스플레이는 주어진 이름과 함께 오브젝트 타입이 Local-to-Context 변수가 됩니다. 다른 선언된 변수들처럼, 어떤 Formula 오브젝트나 표현식에서 주어진 이름을 사용하여 이 XY 디스플레이를 참조할 수 있습니다.

3. Formula 오브젝트 (Device [image] Formula)를 생성합니다.

4. Formula 오브젝트에 원하는 표현식을 입력합니다. 오브젝트 이름과 주기를 가진 마커의 속성을 분리하여 사용합니다. 예를 들어: myGraph.marker1X

5. Formula 오브젝트에서 입력핀을 사용하지 않는다면, 디폴트 입력핀을 삭제하십시오.

공식을 직접 입력하는 것에 대한 대안으로 Function & Object Browser를 사용할 수 있습니다. 먼저 XY 디스플레이에 대한 Name이 지정되어 있어야 합니다.

1. Device [image] Function & Object Browser를 선택하십시오.

2. 가장 왼쪽에 있는 필드에서 VEE Objects를 선택하고, XYDevice 영역을 선택하면, Member 컬럼(가장 오른쪽)에 사용할 수 있는 마커 속성들의 리스트가 나타납니다.

3. 마커 속성을 선택하고 Create Formula 버튼을 클릭합니다. 디폴트 이름인 "XYDevice"를 변경하기 위하여 자동으로 생성되어 있는 표현식을 수정합니다.

관련정보

디스플레이에서 마커 설정하기, 프로그램 실행 중 속성 변경


자동으로 디스플레이 크기 조정하기

여러가지 방법을 이용하여 그래픽(XY) 디스플레이의 크기를 재조정할 수 있습니다. 오브젝트의 속성창에서, Scale 항목을 클릭하여 Scale 대화상자를 보면 Automatic Scaling 항목이 디폴트 값에 의해서 ‘ON’으로 되어 있습니다. 이것은 데이터를 전송 받은 후에 자동으로 디스플레이를 재조정하는 것입니다. 또한 속성 창에서 Layout 영역의 ShowAutoScaleButton 항목을 True로 변경하면, Automatic Scaling 항목을 ‘Off’로 설정한 경우에, ‘디스플레이 오브젝트에 Auto Scale 버튼이 생성되어 디스플레이를 수동으로 재조정할 수 있습니다. 또한, 오브젝트 메뉴에는 Auto Scale 항목이 있습니다. 일반적으로 최선의 방법은 Automatic Scaling을 ‘ON’하는 것입니다.

프로그램에서 디스플레이 오브젝트에 컨트롤핀을 추가하여 Automatic Scaling을 ON하거나 OFF 할 수 있습니다.

1. 디스플레이 오브젝트의 오브젝트 메뉴에서 Add Terminal [image] Control Input 을 선택합니다.

2. Select input to add 대화상자에서 Scale을 선택합니다.

3. Data 메뉴에서 Record Constant object (Data [image] Constant [image] Record)를 생성합니다.

4. Record 오브젝트의 오브젝트 메뉴에서 Add Field 항목을 선택하여 Scale 파라미터를 컨트롤하기 위한 적절한 항목을 생성하고 값을 입력합니다. Record 오브젝트의 출력핀을 디스플레이 오브젝트의 Scale 컨트롤 입력핀에 연결합니다. Scale 파라미터에 대한 정보는 각각의 디스플레이 오브젝트에 있는 VEE Help에서 제공합니다.

아래 그림은 이것에 대한 예를 보여줍니다. Record Constant가 X 스케일의 최고값과 최소값, Automatic Scaling을 Off로 설정한 것입니다. 이들 설정값은 데이터를 디스플레이 오브젝트로 보내기 전에 전송되어야 하므로, Record Constant의 시퀀스 출력핀을 Function Generation의 시퀀스 입력핀으로 연결해야 합니다.

관련정보

Record Constant

XY Trace


측정결과 표시 커스터마이징

측정결과를 다양한 방법으로 디스플레이할 수 있습니다. 일반적인 오브젝트와 마찬가지로 라벨링, 이동, 크기를 변경할 수 있을 뿐만 아니라, 그래픽 디스플레이는 x/y 스케일, trace, 마커 등도 변경 할 수 있으며, 줌 기능도 사용할 수 있습니다.

다음 예제에서 디스플레이의 커스터마이징 기능을 설명합니다. Noise Generator를 사용하여 파형을 발생시키고, Waveform(Time) 디스플레이로 표시합니다. 이 예제에서는 x축의 스케일을 변경하고, 파형을 줌인(zoom-in)하며, 파형의 각 포인트들 간의 간격을 측정하기 위해서 마커를 사용하는 방법을 설명합니다. 여기서 사용한 디스플레이의 커스터마이징 기능은 모든 그래픽 디스플레이 오브젝트에서 동일한 방법으로 사용할 수 있습니다.

파형 표시

1 Device [image] Virtual Source [image] Noise Generator를 선택합니다..

2 Display [image] Waveform (Time)을 선택합니다.

3 Noise Generator의 출력 데이터를 Waveform(Time)의 입력에 연결하고 프로그램을 실행합니다.

X축과 Y축 스케일 변경

1 화면에 속성창이 없으면 Waveform(Time)의 타이틀 바를 더블클릭합니다. 속성창에서 Scales 속성을 선택합니다. Scales 폴더 오른쪽의 버튼을 눌러 대화상자를 열어서 20m로 되어 있는 X 컬럼의 Maximum 필드에 1m를 입력합니다.

시간 축 스팬이 20ms에서 1ms로 변경됩니다.

2 Maxmum 필드에 -0.5를 입력한 후 OK 버튼을 누릅니다. X축/Y축 스케일이 변경됩니다.

파형 줌인

1 Waveform(Time)오브젝트 메뉴를 열어 Zoom ⇒ In을 클릭합니다.

커서가 작은 삼각형모양으로 변경됩니다. 드래그앤 드롭기능을 이용하여 확대하고자 하는 그래프 영역에 사각형을 그릴 수 있습니다.

2 임의의 영역을 선택한 후 마우스 버튼을 놓습니다.

디스플레이는 파형의 선택된 영역을 확대합니다. x축과 y축의 스케일이 자동으로 변화된 것을 볼 수 있습니다.

디스플레이에 델타 마커 추가

1 Noise Generator를 Open View 상태로 변경합니다. (오브젝트 메뉴의 Restore를 클릭합니다.)

a Num Points 설정을 16으로 바꾸고 프로그램을 실행합니다.

b Waveform(Time) 오브젝트 메뉴를 열고 Properties를 선택합니다. (또는 타이틀 바를 더블클릭 합니다.) NumMarkers에서 Delta를 선택합니다.

주의사항

프로그램 실행시 마커값을 읽거나 설정할 수 있습니다. 자세한 정보는 Contents and Index [image] How Do I... Display Data에서 온라인 도움말을 참조합니다.

파형(편의상 색상 변경)에 각각 위쪽과 아래쪽을 향하고 있는 삼각형 화살표 형태로 마커가 2개 생성되었습니다. 또한 디스플레이의 하단에 마커들의 x와 y 좌표가 표시되어 있습니다. 두 피크 사이의 좌표 거리를 측정하려면 측정하려는 피크에 화살표를 클릭한 후 드래그 하면 됩니다. 마커를 이동할 때 마다 이 마커의 위치와 마커 사이의 거리가 디스플레이 하단에 계속 업데이트됩니다.

Waveform 오브젝트의 MarkerInterpolate 속성을 True로 변경하면 마커를 파형상에서 자유롭게 움직일 수 있습니다. (이 속성이 False이면 파형의 피크 값으로만 이동할 수 있습니다.)

트레이스 색상 변경

1 타이틀 바를 더블 클릭하여 속성창을 엽니다.

Trace 속성의 하위속성에서 Color, LineStyle, Name 및 PointStyle 속성을 변경할 수 있습니다.

2 이제 트레이스가 새로운 색깔로 표시됩니다. GridType등의 디스플레이 특성들도 비슷한 방법으로 커스터마이징 할 수 있습니다.

주의사항

디스플레이 오브젝트 메뉴에서 Plot을 추가하여, 나머지 프로그램을 인쇄하지 않고 디스플레이 상에서 측정결과를 그래프로 그릴 수 있습니다.

관련정보

프로그램 실행 중 그래프에 트레이스 추가하기, 측정 결과 표시


디스플레이 지우기

그래픽(XY) 디스플레이 오브젝트에서 디스플레이된 내용을 지우기 위해서는 다음의 방법중의 하나를 사용하십시오.

디스플레이 오브젝트의 속성창에서, Behavior 영역에 있는 ClearAtPreRun 항목을 True로 변경하십시오.

오브젝트 메뉴에서 Clear Control [image] Display을 선택하십시오.

오브젝트에 Clear 컨트롤 입력핀을 추가하십시오. 오브젝트 메뉴에서 Add Terminal [image] Control를 선택하고, 대화상자에서 Clear를 선택하고 OK 버튼을 클릭합니다. Clear 터미날이 다른 오브젝트의 시퀀스출력에 의해서 활성화될 때마다 그래프가 지워집니다.


데이터를 파일에 쓰기

데이터를 파일에 쓰기 위해서 To File 오브젝트를 사용합니다.

데이터 파일 생성

1. 프로그램에 To File 오브젝트를 추가합니다.(I/O [image] To [image] File).

2. To File 오브젝트의 데이터 입력핀을 파일로 출력하려는 데이터 소스에 연결합니다.

3. 목적파일의 이름을 변경하기 위해서는, To File 버튼을 클릭하여 대화상자에 새로운 이름을 입력하고, OK 버튼을 클릭합니다.

To File 오브젝트는 파일에 데이터를 쓸 때 Write 트랜잭션을 사용합니다. 파일이 없으면 파일이 생성됩니다.

파일에 데이터 쓰기

여기서는 파일에 데이터를 쓰고 읽는 단순한 프로그램을 생성합니다. 프로그램에서 다른 기능을 요구하는 경우에는 이것을 가이드로 사용하십시오.

1. 프로그램에 To File 오브젝트를 추가합니다.(I/O [image] To [image] File). Clear File At PreRun & Open 체크박스를 클릭하여 활성화합니다.(체크박스에 체크가 표시됩니다.)

일반적으로, Clear File At PreRun & Open을 체크한 상태로 사용하여, 해당 파일에 이전데이터를 지우고 새로운 데이터의 내용만 저장합니다.

2. <Double-Click to Add Transaction> 을 더블클릭하여 I/O Transaction 대화상자를 표시합니다.

3. DEFAULT FORMAT 필드(또는 이것의 화살표)를 클릭합니다. 드롭다운 목록이 표시됩니다.

4. STRING FORMAT을 선택하고 OK 버튼을 클릭합니다. 트랜잭션이 WRITE TEXT a STR EOL 으로 변경되었습니다. 이 트랜잭션은 변수 a(입력터미날 a의 데이터)의 내용을 스트링 포맷으로 myFile에 저장합니다.

5. <Double-Click to Add Transaction> 을 더블클릭하여 2번째 트랜잭션을 To File(오브젝트 메뉴 [image] Add Trans…) 오브젝트에 생성합니다. I/O Transaction 대화상자가 표시됩니다.

6. 변수필드(디폴트 상태에서는 a)를 b로 변경합니다.

7. DEFAULT FORMAT 필드(또는 그것의 화살표)를 클릭합니다. 드롭다운 메뉴가 표시됩니다.

8. REAL64 FORMAT 을 선택하고, OK 버튼을 클릭합니다. 2 번째 트랜잭션 WRITE TEXT b REAL64 STD EOL이 생성되었습니다. 이 트랜잭션은 변수 b의 내용을 REAL64 STD 포맷으로 myFile에 저장합니다.

9. Text 상수 오브젝트를 터미날 a 에, Real64 상수 오브젝트는 터미날 b 에 연결합니다. 완성된 프로그램은 아래 그림과 같습니다.:

프로그램을 실행하면, 데이터 2 라인이 myFile에 작성됩니다. 각 라인의 끝에는 라인종료문자(carriage-return/line-feed)가 붙습니다. 파일의 첫 번째 라인에는 String data가, 2 번째 라인에는 3.142가 작성됩니다.

관련정보

파일에서 데이터 읽어오기

파일 I/O 트랜잭션 편집하기

프로그램상으로 파일이름 선택하기

To DataSet

To File


To/From File 오브젝트 사용

To File 과 From File 오브젝트는 I/O 트랜잭션을 사용하여 파일에 데이터를 기록하거나 파일로부터 데이터를 읽어옵니다. 이 오브젝트들은 다음과 같은 특징을 가지고 있습니다:

• 처음 실행되는 READ 또는 WRITE 트랜잭션을 통해 데이터 파일이 열리며, VEE 프로그램이 종료될 때 열려있는 모든 파일이 자동으로 닫힙니다.

• 파일에 액세스하고 있는 오브젝트의 수에 관계없이 파일당 하나의 읽기 포인터와 하나의 쓰기 포인터를 가집니다. 읽기 포인터는 다음에 읽을 데이터 항목을 가리키고 있고, 쓰기 포인터는 다음에 쓰여질 데이터 항목의 위치를 가리키고 있습니다.

• To/From File 오브젝트는 존재하는 파일에 데이터를 첨가하거나 덮어 쓸 수 있습니다. To File 오브젝트의 오픈뷰에 Clear File at PreRun & Open 항목이 체크되어 있으면, 쓰기 포인터가 파일의 시작부분에 위치하여 파일의 이전의 내용을 삭제하고 새로운 내용을 씁니다. Clear File at PreRun & Open 항목이 체크되어 있지 않으면, 포인터가 파일의 끝부분에 위치하여, 기존 내용의 맨 마지막에 새로운 내용을 첨가합니다. EXECUTE CLEAR 트랜잭션을 실행하면, 쓰기 포인터는 파일의 시작부분으로 이동하고 내용을 삭제합니다.

• 읽기 포인터는 파일의 시작 부분부터 READ 트랜잭션이 지정한 위치까지 파일의 내용을 읽습니다. From File 오브젝트에서 EXECUTE REWIND를 실행하여 현재 데이터의 내용에 영향을 끼치지 않고 읽기 포인터를 파일의 시작부분으로 옮길 수 있습니다.

관련정보

I/O 트랜잭션 이해

실습 5-3: To/From File 오브젝트 사용법

실습 2-3: 데이터 파일 사용법


파일에서 데이터 읽어오기

From File 오브젝트는 파일에서 데이터를 읽기 위해 사용합니다.

이 프로시져는 데이터를 파일에 쓰기의 프로시져와 대칭됩니다. 데이터를 저장하는 처리순서에 따라 생성된 파일에서 스트링과 실수 데이터를 읽는 방법을 제시합니다. 작성하는 프로그램이 아래에 표시되는 것과 다른 경우에는, 다음의 순서를 따르십시오.

1. From File 오브젝트를 프로그램에 추가합니다. (I/O [image] From [image] File).

2. I/O Transaction 대화상자를 사용하여 디폴트 트랜잭션을 READ TEXT x STR로 변경합니다.

3. 두번째 트랜잭션 READ TEXT y REAL64를 추가합니다.

4. AlphaNumeric 디스플레이를 2개의 출력(X 와 y)에 연결합니다.

5. To File 오브젝트의 시퀀스 출력핀을 From File 오브젝트의 시퀀스 입력핀으로 연결합니다. 이것은 From File 오브젝트가 파일에서 데이터를 읽기 전에 myFile에 데이터를 저장하기 위한 것입니다. 완료된 프로그램은 다음과 같습니다:

관련정보

파일 I/O 트랜잭션 편집하기

프로그램상으로 파일이름 선택하기

데이터를 파일에 쓰기

From DataSet

From File


파일 I/O 트랜잭션 편집하기

To File 오브젝트는 지정하는 데이터 파일에 트랜잭션을 기록하는데 사용합니다. 디폴트 트랜잭션은 WRITE TEXT a EOL이며, 입력터미날 A로 입력된 데이터를 텍스트로 변환하고, 맨 뒤에 end-of-line 문자(carriage-return/line-feed 문자)를 첨부하여 기록합니다. From File 오브젝트는 파일로부터 데이터를 읽는 것과 유사한 트랜잭션들을 사용합니다. I/O Transaction 대화상자를 사용하여 트랜잭션을 수정할 수 있습니다.

트랜잭션 편집하기

1. To File 또는 From File 오브젝트에 있는 트랜잭션 필드를 더블클릭합니다.

2. 첫 번째 필드에서, WRITE 또는 READ를 클릭하여 수행작업을 선택합니다.

3. 두 번째 필드에서, TEXT를 클릭하여 인코딩 형태를 선택합니다.

일반적으로, From File를 사용하여 VEE에서 데이터를 재사용하고자 하는 경우에는 컨테이너 인코딩이 유용합니다. 그러나 스프레드시트 프로그램 같은 외부의 어플리케이션에서 데이터 파일을 사용하고자 하는 경우는 예외입니다.

선택하는 내용에 따라, 트랜잭션 대화상자의 선택할 수 있는 옵션 항목으로 입력필드가 자동으로 변경됩니다.

4. 데이터 형식, EOL(end-of-line) 문자등과 같은 다양한 옵션을 설정하기 위하여 다른 입력필드를 필요한 만큼 변경합니다. 그리고 OK 버튼을 클릭합니다.

5. 다른 트랜잭션을 추가하기 위하여, 마지막 트랜잭션 아래에 있는 빈 라인을 더블클릭합니다.

관련정보

From File

To File

I/O 트랜잭션 이해


파형을 저장하고 가져오기

파형 데이터는 데이터 컨테이너 형식에 저장하고 가져오기에 가장 좋습니다. 기본적인 프로시져는 다음과 같습니다:

1. 파형 데이터를 파일에 저장하기 위하여 To File 오브젝트에서 WRITE CONTAINER 트랜잭션을 사용합니다.

2. 파일에서 파형 데이터를 다시 읽기 위하여 From File 오브젝트에서 READ CONTAINER 트랜잭션을 사용합니다.

사용예

manual 예제 디렉토리에 있는 manual20.vee 프로그램은 파형 데이터를 사용하는 방법을 제시합니다. 프로그램은 다음과 같이 동작합니다:

1. Function Generator에 있는 파형은 To File 오브젝트에서 WRITE CONTAINER a 트랜잭션을 사용하여 wavedata 파일에 저장됩니다.

2. From File 오브젝트에서 READ CONTAINER x 트랜잭션을 사용하여 데이터를 파형 컨테이너 형태로 wavedata 파일에서 다시 읽어 옵니다. 데이터는 X 터미날로 출력되고 Waveform (Time) 디스플레이에 의해 디스플레이 됩니다.

3. 시퀀스 핀의 연결은 From File 오브젝트가 파형을 읽기 전에 파형을 파일에 저장하도록 합니다.

대표적인 경우로, 하나의 VEE 프로그램이 파형 데이터를 파일에 저장하고, 두번째 VEE 프로그램이 그 데이터를 VEE로 읽어 와서 분석하고, 파형을 디스플레이 합니다.

관련정보

데이터를 파일에 쓰기

파일에서 데이터 읽어오기

파일 I/O 트랜잭션 편집하기

From File

To File


프로그램상으로 파일이름 선택하기

프로그램에서 From File 또는 To File 같은 오브젝트를 사용하여 데이터를 읽거나 저장하는 경우에는, 실행중에 파일 이름을 입력하기 위한 프로그램을 설정할 수 있습니다. 다음 예제는 이런 경우에 어떻게 동작하는지를 보여주기 위하여 To File 오브젝트와 함께 File Name Selection 대화상자 오브젝트를 사용합니다.

1. To File object (I/O [image] To [image] File)를 추가합니다.

2. Clear File At PreRun & Open을 클릭합니다. <Double-Click to Add Transaction>를 더블 클릭하고 OK 버튼을 누릅니다.

3. To File 오브젝트에 File Name 컨트롤 입력 터미날을 추가합니다. (오브젝트 메뉴 [image] Add Terminal [image] Control Input을 선택하고, OK 버튼 클릭합니다.)

4. 작업영역에 File Name Selection 오브젝트(Data [image] Dialog Box [image] File Name Selection)를 추가하고, 오브젝트의 File Name 출력을 To File 오브젝트의 File Name 컨트롤 핀으로 연결합니다. Stop 오브젝트를 추가하여 Cancel 출력핀으로 연결합니다.

5. File Name Selection 오브젝트의 시퀀스 출력핀을 To File 오브젝트의 시퀀스 입력핀으로 연결합니다. 이것은 To File 오브젝트가 파일 이름이 선택되기 전까지는 동작하지 않도록 합니다.

6. File Name Selection 오브젝트에서, Select File For 필드를 Writing으로 변경합니다. 이렇게 하면 사용자가 기존에 존재하는 파일을 덮어쓸 때는 경고창이 나타나게 됩니다.

7. Text 오브젝트를 추가하고, To File 오브젝트의 a 핀으로 연결합니다.

예제 윈도우

프로그램을 실행할 때, 프로그램 이름을 입력 하도록 하는 Enter File Name 대화상자가 나타납니다. 새로운 파일 이름을 입력하거나 기존에 존재하는 파일이름을 클릭합니다. 아래 그림에서, 저장할 파일이 프로그램이 아니기 때문에 파일 형식 항목을 All Files (*.*)로 변경합니다. 저장을 클릭합니다.

관련정보

File Name Selection

From File

To File


스프레드시트 프로그램용 데이터 저장

마이크로소프트 엑셀이나 로터스 1-2-3 등의 스프레드시트 프로그램에 제공할 데이터 파일을 VEE File I/O를 이용하여 생성할 수 있습니다. 일반적으로 다음 단계를 따라서 생성합니다:

1. 스프레드시트 프로그램이 어떤 데이터 파일 포맷을 사용하는지 결정합니다. 예를 들어, 열과 행이 어떻게 구분되는 포맷 등을 확인해야 합니다.

2. 데이터를 수집하는 VEE 프로그램을 작성합니다. 이 프로그램은 적절한 구분자를 이용하여 ASCII 텍스트 포맷으로 된 데이터를 파일로 출력합니다. 일반적으로 이러한 일에는 To File 오브젝트가 가장 적합합니다.

사용예

매뉴얼 예제 폴더의 manual21.vee 프로그램은 10 개의 전압과 타임스탬프를 수집하여, 마이크로소프트 엑셀에 저장할 데이터를 출력합니다. 다음과 같은 방식으로 동작합니다:

1. For Count 오브젝트와 Delay 오브젝트는 매 10초마다 다음 이벤트를 발생합니다:

a. Counter 오브젝트는 1 씩 증가합니다.

b. Now 오브젝트는 현재 시간(1초이내)을 출력합니다. 이 시간은 To String 오브젝트에 의해서 Time Stamp 포맷으로 변환됩니다.

c. dmm (hp34401a @ (NOT LIVE)) 계측기 패널은 HP 34401A 멀티미터에서 데이터를 읽는 것처럼 시뮬레이션합니다.

2. Build Record 오브젝트는 매번 데이터를 읽을 때마다(매 10초 마다) 다음과 같이 레코드를 생성합니다.: Cnt 필드는 카운트 또는 테스트 숫자이며, Tm 필드는 데이터를 읽는 시간(hh:mm:ss 포맷), Vlts 필드는 계측기 패널 오브젝트에 의해서 생성되는 시뮬레이션된 전압값입니다.

3. To File 오브젝트는 데이터를 텍스트 포맷으로 파일에 기록합니다. WRITE TEXT a.Cnt," ",a.Tm," ",a.Vlts EOL 트랜잭션에서

a.Cnt 는 "레코드 a의 Cnt 필드" (카운트),

" " 는 공백(구분자 역할),

a.Tm 은 "레코드 a의 Tm 필드" (시간),

" " 는 공백(구분자 역할),

a.Vlts 는 "레코드 a의 Vlts 필드" (읽은 데이터), 및

EOL 은 마지막라인 문자(carriage-return/line-feed)을 삽입합니다.

따라서, 각 레코드는 스트링 포맷으로 변환되어 (공백과 구분자를) 가진 포맷으로 출력합니다:

1 11:29:06 5.687753697513882

프로그램이 종료되면, myfile 파일은 다음과 같이 10개의 열을 가진 데이터가 저장됩니다. 예를 들어:

1 11:29:06 5.687753697513882

2 11:29:16 6.437091378803515

3 11:29:26 7.064658105870967

4 11:29:36 7.439572075814199

5 11:29:46 7.465490768920665

6 11:29:56 7.135229243023529

7 11:30:06 6.53525004955898

8 11:30:16 5.795432812581498

9 11:30:26 6.154398687554457

10 11:30:36 6.844467171462198

각 행에서는, 1 번째 필드(카운트) 다음에는 공백(구분자), 2 번째 필드(시간), 공백, 3 번째 필드(읽은 데이터) 및 라인끝 문자가 차례로 표시됩니다.

출력파일의 포맷은 윈도우 ADCII 파일 포맷이며, 이 포맷을 마이크로소프트 엑셀에서 직접 읽을 수 있습니다. 엑셀에서 이 파일을 열고, 질문이 있으면, 데이터가 구분자로 구분되어 있으며, 그 구분자는 공백이라고 응답하면 됩니다.

데이터는 엑셀 스프레드시트에서 다음과 같이 표시됩니다.:

적절한 구분자를 사용하면 다양한 스프레드시트 프로그램에서 읽을 수 있는 파일을 생성할 수 있습니다.

ActiveX 오토메이션과 컨트롤 또는 DDE(Dynamic Data Exchange)을 이용하여 프로세스를 자동화할 수 있습니다. VEE에서 다른 어플리케이션을 제어할 때 ActiveX는 DDE보다 더욱 강력합니다. ActiveX 와 DDE를 사용하는 방법에 대해서는 Using ActiveX Automation in VEE, Using an ActiveX Control in VEE, and Communicating With Programs을 참조하십시오.

관련정보

레코드에 데이터 추가하기

Build Record

To DataSet

To File


UserObject 작업영역에 오브젝트 추가하기

UserObject의 편집화면에서 작업영역에 생성한 오브젝트는 UserObject의 한 부분이 됩니다. 방법은 다음과 같습니다.

메뉴에서 적당한 오브젝트를 선택하여 UserObject의 작업영역에 배치합니다.

메인 작업영역에 있는 오브젝트를 UserObject의 작업영역으로 이동합니다.

메인 작업영역에서 선택한 오브젝트를 잘라내기/복사하기/붙여넣기를 이용하여 UserObject 작업영역으로 배치합니다.

메인 작업영역에 있는 오브젝트를 복제(Clone)하여 UserObject의 작업영역으로 복제합니다.

관련정보

UserObject


UserObject에 입력터미날 및 출력터미날 추가하기

일반적으로 UserObject에 입력터미날 및 출력터미날을 추가할 수 있습니다. UserObject의 수정화면에서 터미날을 추가하면 UserObject의 아이콘뷰에도 추가된 터미날이 나타납니다.

오브젝트 메뉴를 이용하여 추가하기

오브젝트 메뉴에서 Add Terminal을 선택하고 추가하고자 하는 터미날의 종류(Data Input, Control Input, Data Output, 또는 Error Output)를 선택합니다. 이 방법은 UserObject의 아이콘뷰나 수정화면에서 터미날을 직접 추가할 수 있습니다.

마우스와 키보드를 이용하여 추가하기

데이터 입력터미날을 추가하기 위해서는 데이터 입력터미날이 있는 영역에 마우스 커서를놓고 Ctrl+A를 누릅니다. 데이터 입력터미날은 Ctrl+A를 매번 누를 때마다 생성이 됩니다.

데이터 출력터미날을 추가하기 위해서는 데이터 출력터미날이 있는 영역에 마우스 커서를놓고 Ctrl+A를 누릅니다. 데이터 출력터미날은 Ctrl+A를 매번 누를 때마다 생성이 됩니다.

주의사항

터미날을 삭제하기 위해서는 터미날 위에 마우스 커서를 놓고 Ctrl+D를 누릅니다.

관련정보

UserObject


ÇÁ·Î±×·¥ »ó¿¡¼ UserObject »ý¼ºÇÏ±â

프로그램 상에서 UserObject 생성하기

다음 예제에서 간단한 VEE UserObject를 생성하는 방법과 UserObject를 다른 오브젝트와 연결하는 방법을 설명합니다. UserObject안에서 여러 개의 오브젝트들이 모여서 하나의 특정 작업을 수행하게 됩니다.

1. Main 작업창 (Device [image] UserObject)에서 하나의 UserObject를 생성합니다. 생성된 UserObject 아이콘을 더블클릭하여 UserObject의 작업창을 띄웁니다.

2. UserObject 작업창에서 필요한 만큼 오브젝트들을 추가하고 터미날을 서로 연결합니다.

3. UserObject의 입력과 출력 터미날을 생성하고 연결하는 방법은 다음과 같습니다:

a. UserObject 작업창에서 왼쪽 회색 영역에 마우스를 올려놓고 Ctrl+A를 누릅니다. 데이터 입력 터미날이 UserObject 작업창 왼쪽과 UserObject 아이콘의 왼쪽에 나타납니다.

b. UserObject 내부와 외부를 연결하기 위해 UserObject 작업창에서 생성한 입력 터미날 핀을 사용자가 생성한 오브젝트의 입력 터미날로 연결합니다.

c. 마우스를 UserObject 작업창의 오른쪽 영역에 올려놓고 Ctrl+A를 누릅니다. 데이터 출력 터미날이 UserObject 작업창의 오른쪽과 UserObject 아이콘의 오른쪽에 생성됩니다.

d. UserObject 내부와 외부를 연결하기 위해 UserObject 작업창에서 생성한 출력 터미날 핀을 사용자가 생성한 오브젝트의 출력 터미날로 연결합니다.

e. Main 작업 창에서 생성된 UserObject에 데이터를 보내기 위해서 사용자가 Main work area에서 생성한 오브젝트의 터미날과 UserObject 아이콘상의 왼쪽 입력 터미날을 연결합니다.

f. Main 작업 창에서, UserObject 아이콘의 오른쪽 출력 터미날과 외부 오브젝트를 연결합니다.

4. Main 작업 창에서 UserObject 아이콘을 클릭하여, UserObject의 속성창을 활성화하고 title 항목을 더블 클릭하여 UserObject의 이름을 임의로 입력합니다.

5. 프로그램을 실행하여 UserObject의 동작을 확인합니다.

아래 그림은 실제 UserObject의 사용 예제입니다.

관련정보

UserObject에 입력터미날 및 출력터미날 추가하기

UserObject 패널 생성하기

 UserObject


여러 개의 오브젝트를 묶어서 UserObject로 생성하기

작성한 VEE프로그램의 일부를 UserObject로 생성하여 사용할 수 있습니다. 다음은 프로그램 영역에 작성된 오브젝트를 UserObject로 생성하는 예입니다.

1. VEE의 Help [image] Open Example...를 클릭하여 manual13.vee 를 엽니다. 이 프로그램에서는 Record constant 오브젝트의 필드의 내용을 변경합니다.

2. Set Name Field오브젝트와 Set Empl_no Field오브젝트를 선택합니다.

Ctrl 키를 누른 상태에서 왼쪽 마우스 버튼을 누른 상태에서 드래그하여 오브젝트들을 선택합니다. 선택될 때, 오브젝트 주변에 그림자가 표시됩니다.

3. 오브젝트들을 선택한 후, 작업 창에서 마우스 오른쪽 버튼을 클릭하거나 메뉴 바에서 Edit [image] Create UserObject을 클릭합니다. 생성된 UserObject의 Properties 대화 상자에서 title항목을 ChangeRecordFields로 변경합니다. UserObject의 title 항목에는 공백이 포함될 수 없습니다.

생성된 UserObject는 Main 작업 창에 아이콘으로 나타나고 UserObject 내부에 모든 오브젝트들을 연결하는 터미널 핀이 포함되어 있습니다. UserObject 작업창 내의 내용들은 사용자가 임의로 바꿀 수 있습니다.

4. 프로그램을 실행하여 UserObject의 동작을 확인합니다.

다음은 UserFunction 오브젝트로 생성하여 실행한 예제입니다.

관련정보

UserObject 패널 생성하기

UserObject


UserObject에서 빠져 나오기

일반적으로, UserObject (또는 UserFunction)는 내부에 있는 모든 오브젝트의 실행이 완료되기 전까지는 실행을 완료하지 않고, 자신의 출력터미날로 데이터를 전송하지 않습니다; 반면에 UserObject내에 있는 모든 오브젝트가 실행을 완료하기 전에 UserObject를 빠져 나올 수 있는 2개의 오브젝트가 있습니다.

Exit UserObject가 활성화 되면 UserObject 컨텍스트의 밖(예를 들어, 메인 프로그램)으로 즉시 빠져나옵니다.

Raise Error는 사용자가 정의한 에러박스를 생성하고 UserObject를 빠져나옵니다. (Error 출력핀이 있는 경우를 제외하고는 UserObject에서 출력되는 데이터는 없습니다.)

사용예

다음의 순서는 예제 프로그램을 이용한 Exit UserObject를 사용하는 방법을 나타냅니다:

1. manual examples 디렉토리(Help [image] Open Example...)에 있는manual26.vee 프로그램을 엽니다. Add Random Number 오브젝트를 더블 클릭하여 UserObject 편집화면을 열고, 모든 오브젝트를 볼 수 있도록 메인화면과 편집화면을 재정렬합니다.

2. 전달 순서를 보기 위하여, 툴바에 있는 Show Data Flow 버튼과 Show Execution Flow 버튼을 클릭합니다.

3. 프로그램을 실행합니다. Add Random Number에서 보면, 프로그램이 실행될 때 OK 와 Cancel 2개의 버튼이 활성화되고, UserObject에 있는 실행은 일시정지됩니다. (Cancel 버튼은 이름만 변경한 OK 버튼입니다.) 버튼을 눌렀을 때 발생되는 동작은 다음과 같습니다.

OK: UserObject에 있는 상위 쓰레드가 실행을 완료합니다. A+B 오브젝트는 2개의 입력을 더하여 그 결과를 출력터미날 X로 전달하게 되고, Exit UserObject가 활성화됩니다. 터미날 X에 있는 결과는 AlphaNumeric 디스플레이 오브젝트로 출력됩니다.

Cancel: 하위 쓰레드에 있는 Exit UserObject가 실행됩니다. 이것은 상위 쓰레드가 실행되지 않고 UserObject에서 빠져 나오게 됩니다. 출력되는 데이터는 없습니다.

관련정보

Exit UserObject

Raise Error

UserObject


UserObject 라이브러리를 생성하여 사용하기

다른 프로그램에서 사용하기 위하여 하나 이상의 UserObject를 파일에 저장할 수 있습니다.

UserObject 라이브러리 생성하기

1. 작업영역에 UserObject를 생성하십시오.

2. UserObject를 선택하십시오.

3. 메뉴바에서 File [image] Save을 선택하십시오. UserObject를 저장하기 위해 파일이름을 입력할 수 있는 대화상자가 나타납니다.

UserObject 라이브러리 사용하기

1. 메뉴바에서 File [image] Merge를 선택하십시오. 파일이름 입력을 위한 대화상자가 나타납니다.

2. 라이브러리로 사용하기 위하여 파일이름을 선택하십시오. 파일에 있는 UserObject가 작업영역으로 합병됩니다. 프로그램에서 원하는 위치에 배치하십시오.

관련정보

UserObject 작업영역에 오브젝트 추가하기

UserObject에 입력터미날 및 출력터미날 추가하기

프로그램 상에서 UserObject 생성하기

여러 개의 오브젝트를 묶어서 UserFunction로 생성하기


UserObject 보안처리 하기

UserObject를 생성한 다음에, 이것에 대한 보안 처리된 버전을 저장할 수 있습니다. 다른 사용자들은 보안처리된 UserObject를 추가할 수는 있으나, UserObject의 내용을 보거나 변경할 수는 없게 됩니다. 이러한 경우 원래의 UserObject에 미치는 영향은 없습니다.

1. UserObject의 편집화면에서, 오브젝트 메뉴에 있는 Save Secured Version을 선택합니다.

2. 보안처리된 UserObject를 저장하기 위한 파일이름을 입력하는 대화상자가 나타납니다. 파일이름을 입력합니다. .vee 확장자가 자동으로 추가됩니다..

3. 저장 버튼을 클릭합니다.

프로그램에서 보안 처리된 UserObject를 사용하기 위해서는, 메뉴에서 File [image] Merge를 선택합니다. Merge 대화상자에서 파일이름을 입력합니다.

팁

UserObject가 패널뷰를 가지고 있지 않은 경우에, 보안 처리된 버전은 아이콘으로 디스플레이 됩니다. 아이콘은 오픈뷰로 복귀할 수는 있으나, 내부에 있는 내용은 보이지 않습니다(터미날 제외). 누구도 내용을 보거나 편집할 수 없습니다.

UserObject가 패널뷰를 가진 경우에, 보안 처리된 버전은 아이콘으로 디스플레이 됩니다. 아이콘은 오픈뷰로 복귀할 수 있으나, 패널뷰와 터미날만 볼 수 있습니다. 디테일뷰는 볼 수 없으며, 패널뷰도 수정할 수 없습니다.


ÇÁ·Î±×·¥ »ó¿¡¼ UserFunction »ý¼ºÇÏ±â

프로그램 상에서 UserFunction 생성하기

다음 예제에서 간단한 VEE UserFunction을 생성하는 방법과 UserFuntion을 다른 오브젝트와 연결하는 방법을 설명합니다. UserFunction안에서 여러 개의 오브젝트들이 모여서 하나의 특정 작업을 수행하게 됩니다.

1. Main 작업창 (Device [image] UserFunction)에서 하나의 UserFunction을 생성합니다. 생성된 UserFunction 아이콘을 더블클릭하여 UserFunction 편집 윈도우를 엽니다.

2. UserFunction 작업영역에서 필요한 만큼 오브젝트들을 추가하고 터미날을 서로 연결합니다. UserObject 작업영역에 오브젝트 추가하기 에서 설명된 방식으로 UserFunction에 오브젝트를 추가할 수 있습니다.

3. UserFunction 전체의 입력과 출력 터미날을 생성하고 연결하는 방법은 다음과 같습니다.

a. UserFunction 작업창에서 왼쪽 회색 부분에 마우스 커서를 위치시키고 Ctrl+A를 누릅니다. 데이터 입력 터미날이 UserFunction 편집 윈도우 왼쪽과 UserFunction 아이콘상의 왼쪽에 나타납니다.

b. UserFunction 내부와 외부를 연결하기 위해 UserFunction 작업창에서 생성한 입력 터미널 핀을 사용자가 생성한 오브젝트의 입력 터미널로 연결합니다.

c. 마우스 커서를 UserFunction 작업창 오른쪽 회색 부분에 위치시키고 Ctrl+A를 누릅니다. 데이터 입력 터미널이 UserFunction 작업창 오른쪽과 UserFunction 아이콘상의 오른쪽에 나타납니다.

d. UserFunction 내부와 외부를 연결하기 위해 UserFunction 작업창에서 생성한 출력 터미널 핀을 사용자가 생성한 오브젝트의 출력 터미날로 연결합니다.

4. UserFunction 제목을 프로그램에서 쉽게 알아볼 수 있도록 기능을 설명하는 이름으로 변경합니다. UserFunction의 편집화면에서 타이틀 바를 더블클릭 합니다. 속성창에서 새로운 제목을 입력합니다. 제목에는 스페이스는 입력할 수 없습니다.

5. 프로그램 영역에서 Call 오브젝트를 생성합니다. UserFunction 오브젝트 메뉴에서 Generate [image] Call을 클릭합니다. 이전에 생성한 UserFunction 와 동일한 이름과 터미날을 가진 오브젝트가 생성됩니다.

UserFunction의 오브젝트 메뉴의 Generate메뉴에서 사용 목적에 따라서 이 UserFunction를 여러 가지 방식으로 호출하여 사용할 수 있습니다.

6. Call object에 입력 터미날과 출력 터미널을 연결선으로 연결합니다.

7. UserFunction이 바르게 동작하는지 프로그램을 실행합니다.

아래 그림은 UserFunction의 사용 사례입니다.

관련정보

UserFunction 패널 생성하기

프로그램에서 UserFunction 호출하기

여러 개의 오브젝트를 묶어서 UserFunction으로 생성하기

UserFunction 편집하기

UserFunction

Help => Contents and Index => Tell me about...=> User-Defined Functions를 참조하십시오.


여러 개의 오브젝트를 묶어서 UserFunction로 생성하기

VEE프로그램을 작성하고 프로그램의 일부분을 UserFunction으로 지정하여 사용할 수 있습니다. 다음은 프로그램 영역에 작성된 오브젝트를 UserFunction으로 생성하는 예입니다.

1. VEE의 Help [image] Open Example...를 클릭하여 manual13.vee 를 엽니다. 이 프로그램에서는 Record constant 오브젝트의 필드의 내용을 변경합니다.

2. Set Name Field오브젝트와 Set Empl_no Field오브젝트를 선택합니다.

Ctrl 키를 누른 상태에서 왼쪽 마우스 버튼을 누른 상태에서 드래그하여 오브젝트들을 선택합니다. 선택될 때, 오브젝트 주변에 그림자가 표시됩니다.

3. 오브젝트들을 선택한 후, 작업 창에서 마우스 오른쪽 버튼을 클릭하거나 메뉴 바에서 Edit [image] Create UserFunction을 클릭합니다. 생성된 UserFunction 의 Properties 대화 상자에서 title항목을 ChangeRecordFields로 변경합니다. UserFunction의 title 항목에는 공백이 포함될 수 없습니다.

프로그램에서 2 가지 변화가 발생합니다. 선택했던 오브젝트들이 UserFunction 안으로 모아져서, UserFunction 의 작업영역에 나타납니다. 이들 오브젝트를 변경할 수 있습니다. UserFunction의 title 항목에는 공백이 포함될 수 없습니다.

4. 프로그램을 실행하여 UserFunction의 동작을 확인합니다.

다음은 UserFunction 오브젝트로 생성하여 실행한 예제입니다.

관련정보

UserFunction 패널 생성하기

프로그램에서 UserFunction 호출하기

프로그램 상에서 UserFunction 생성하기

UserFunction 편집하기

UserFunction

Help => Contents and Index => Tell me about...=> User-Defined Functions을 참조하십시오.


UserFunction 편집하기

UserFunction을 편집하기 위해서는, VEE 프로그램에서 UserFunction이 열려있어야 합니다. UserFunction 편집 윈도우에서 UserFunction의 동작을 변경할 수 있습니다.

UserFunction 편집하기

1. 편집하고자 하는 UserFunction이 포함된 VEE 프로그램을 엽니다.

2. Edit [image] Edit UserFunction을 선택합니다. Edit UserFunction 대화상자가 나타나고, 프로그램내에 있는 모든 UserFunction 리스트가 표시됩니다.

3. 편집하고자 하는 UserFunction을 선택하고 OK 버튼을 클릭합니다. UserFunction 편집 윈도우가 나타납니다.

4. 편집 윈도우의 작업영역에서 내용을 변경합니다.

5. 편집윈도우를 닫습니다. 변경된 내용은 호출하는 모든 UserFunction에 적용됩니다.

단축키

작업영역의 빈 공간에 마우스 포인터를 놓고 마우스 오른쪽 버튼을 클릭하여 Edit [image] Edit UserFunction 메뉴를 선택합니다.

Call 오브젝트의 오브젝트 메뉴에서 Edit UserFunction을 선택합니다. 이것은 호출된 UserFunction의 편집 윈도우를 엽니다.

Program Explorer에서 UserFunction의 이름을 더블클릭하여 편집 윈도우를 엽니다.

관련정보

프로그램에서 UserFunction 호출하기

프로그램 상에서 UserFunction 생성하기

여러 개의 오브젝트를 묶어서 UserObject로 생성하기

UserFunction

표현식에서 UserFunction 호출하기

UserFunction 라이브러리 생성하기


프로그램에서 UserFunction 호출하기

일단 UserFunction이 생성되면, VEE 프로그램내에서 여러 번 호출하여 사용할 수 있습니다. 이번 장에서는 예제 프로그램을 이용하여 UserFunction을 호출하는 방법을 보여줍니다.

매뉴얼 예제(Help [image] Open Example...) 디렉토리에 있는 manual51.vee 프로그램을 오픈 하십시오. 이 프로그램은 RandomArray UserFunction을 포함하고 있으며, UserFunction을 세(3)번 호출하여 사용합니다.

Call 오브젝트는 RandomArray를 호출하여 어레이를 출력합니다.

Formula 오브젝트는 표현식 ‘1+RandomArray()’에서 RandomArray를 호출합니다. 이 표현식은 어레이의 각 앨리먼트에 1을 더합니다.

To File 오브젝트는 트랜잭션 ‘WRITE CONTAINER RandomArray()’에서 RandomArray를 호출합니다. 이 트랜잭션은 myFile이라는 파일에 RandomArray를 하나의 컨테이너로써 어레이로 저장합니다. From File 오브젝트는 데이터 파일을 읽어서 디스플레이 오브젝트로 출력값을 전송합니다.

팁

RandomArray UserFunction은 프로그램에서 원하는 만큼 호출하여 사용할 수 있습니다.

각기 호출된 UserFunction은 독립적입니다. (이 예제에서는, RandomArray를 호출하여 각기 다른 랜덤숫자를 생성하였습니다.)

Call 오브젝트에서는 호출하고자 하는 기능의 이름(예: RandomArray)만을 지정하였습니다. 반면에 표현식에서 UserFunction을 호출한다면, 표현문법(예: RandomArray())을 사용해야 합니다.

UserFunction의 이름은 경우에 따라 다릅니다.

UserFunction의 이름은 중복되어서는 안됩니다.

If/Then/Else, To File 또는 Sequencer등의 오브젝트에서 표현식을 사용하여 UserFunction의 이름을 호출할 수 있습니다.

관련정보

프로그램 상에서 UserFunction 생성하기

여러 개의 오브젝트를 묶어서 UserFunction으로 생성하기

UserFunction 편집하기

UserFunction

Help => Contents and Index => Tell me about...=> User-Defined Functions


표현식에서 UserFunction 호출하기

Formula 오브젝트의 표현식이나 ToFile 오브젝트 같이 실행시 사용되는 표현식에서 UserFunction을 호출할 수 있습니다. 이 프로그램은 UserFunction을 호출하는 여러가지 방법을 소개합니다.

프로그램에서, Call 오브젝트는 noiseUF UserFunction을 호출하고 노이즈가 추가된 사인파를 리턴합니다. 첫 번째 Formula 오브젝트에 있는 표현식 abs(noiseUF(Y))는 noiseUF가 리턴하는 웨이브폼의 절대값을 리턴합니다. 따라서 이 값을 사용하는 그래프(가운데 그래프)는 양의 방향으로 정류되어 있습니다.

두 번째 Formula 오브젝트에 있는 표현식abs(noiseUF(Y))-1.5는 동일한 UserFunction을 호출하여 음의 dc 옵셋을 파형에 더했습니다. UserFunction이 전역변수를 사용하므로, 각 오브젝트 간에는 시퀀스 입출력을 사용하여 실행순서를 명확히 했습니다.

이 프로그램은 예제 디렉토리에 manual43.vee 파일로 저장되어 있습니다.

관련정보

UserFunctions에 대하여, 표현식에서 UserFunction 호출하기, UserObjects 와UserFunctions 변환하기, UserFunction 라이브러리 생성하기, UserFunction 임포팅 및 호출하기, 함수 라이브러리 사용하기


UserObjects 와UserFunctions 변환하기

UserObject의 오브젝트 메뉴에서 Make UserFunction을 실행하면 해당 UserObject가 UserFunction으로 변환됩니다. UserObject의 윈도우는 동일한 입출력 터미날을 가진 UserFunction의 윈도우로 변경되며, UserObject 오브젝트는 UserFunction Call 오브젝트로 변경됩니다.

변경된 UserFunction을 UserObject로 재변환 하기 위해서는, UserFunction 윈도우의 오브젝트 메뉴에서 Make UserObject를 실행하면 됩니다. UserFunction을 호출했던 것은 그대로 남아있게 되지만(이것은 사용자가 수동으로 삭제해야 합니다.), UserFunction은 UserObject로 자동변환 됩니다.

관련정보

UserFunctions에 대하여, 표현식에서 UserFunction 호출하기, UserObjects 와UserFunctions 변환하기, UserFunction 라이브러리 생성하기, UserFunction 임포팅 및 호출하기, 함수 라이브러리 사용하기


VEE 메뉴 커스터마이징 하기

VEE 개발환경에 있는 메뉴를 커스터마이징 할 수 있습니다. customMenu.mnu 파일은 자주 사용하는 특별한 오브젝트나 함수를 메뉴에 추가하는 방법을 설명합니다. 또한 개발하고 있는 프로그램을 위한 사용자 지정 Help를 연결할 수 있는 새로운 내장기능 help()의 사용방법도 설명합니다.

customMenu.mnu 파일은 VEE 폴더의 Lib 폴더 아래에 있습니다. 이 파일은 ASCII 텍스트 에디터를 이용하여 열수 있습니다.

관련정보

help()


함수 라이브러리 사용하기

VEE 프로그램에서 사용자정의함수(user-defined function)을 생성하는 방법과 그것을 사용하는 방법은 서로 비슷합니다. 이러한 함수들은 Call 오브젝트 또는 Sequencer 나 Formula 오브젝트의 표현식을 이용하여 호출됩니다. 라이브러리 안에 들어있는 3 종류의 사용자정의함수(함수 라이브러리)를 다음과 같은 과정을 거쳐서 이용할 수 있습니다:

1 라이브러리 임포트 합니다.

Device [image] Import Library 오브젝트를 사용합니다. Library Type(UserFunction, Compiled Function, 또는 Remote Function)을 선택하고 라이브러리 이름(Library Name 필드)과 파일이름(File Name 필드)을 입력합니다. 여기서 사용하는 각 필드들에 대한 설명이 이 장의 나머지 부분에서 설명됩니다.

2 안에 들어있는 하나 이상의 함수를 호출합니다.

Device 메뉴의 하위 메뉴에서 Call, Formula, 또는 Sequencer 오브젝트를 사용합니다. If/Then/Else 또는 To File 오브젝트처럼 실행시 표현식을 호출하는 오브젝트를 사용할 수도 있습니다. 함수로부터 여러 개의 값을 리턴 받아야 하는 경우에는 Call 오브젝트를 사용해야 합니다.

3 라이브러리를 제거합니다.

사용하고 있는 컴퓨터의 메모리 또는 프로그램 실행속도에 민감한 프로그램이면 Device [image] Delete Library를 실행하여 프로그램으로 라이브러리를 메모리에서 제거합니다. 이 오브젝트를 실행하지 않으면 사용된 라이브러리는 VEE를 종료할 때까지 메모리에 남아있게 됩니다.

표현식에서 UserFunction을 호출하는 방식은 유용하게 사용됩니다. 특히, 그러한 표현식을 Sequencer 오브젝트의 트랜잭션에서 사용할 때는 더욱 유용합니다. 표현식에서 사용자함수를 호출하는 방식에 대한 자세한 설명은 Help => Contents and Index => How do I => Use Sequencer Objects를 참조하십시오.

관련정보

UserFunction 라이브러리 생성하기, 컴파일된 함수 개요, 리모트 함수

UserFunctions에 대하여, 표현식에서 UserFunction 호출하기, UserObjects 와UserFunctions 변환하기, UserFunction 라이브러리 생성하기, 컴파일된 함수 임포팅 및 호출하기, 함수 라이브러리 사용하기


UserFunction 라이브러리 생성하기

동일한 프로그램 안에서 생성하고 사용하는 로컬 UserFunctions을 제외한, 여러 개의 UserFunction을 외부에 저장하고 향후 프로그램으로 임포트하여 사용할 수 있습니다.

빈 공간의 VEE 작업영역에서 UserFunction을 생성하고 이를 파일로 저장하여 UserFunctions 라이브러리를 생성합니다. 예를 들어, 2개의 UserFunction, myRand1 과 myRand2(랜덤 숫자를 입력하는 것)에 대한 라이브러리를 생성하기 위해서는, 다음과 같이 2개의 UserFunction을 생성합니다.

UserFunction 라이브러리를 생성하기 위해서는, 이 파일이 라이브러리라는 것을 인식할 수 있는 이름으로 프로그램을 저장합니다. 예를 들어, .vee 대신에 .vlb라는 확장자를 사용합니다.

주의사항

일반적으로 라이브러리는 UserFunction 만을 포함하고 있어야 합니다. 프로그램(예, 메인)안에 다른 오브젝트가 들어있더라도 라이브러리가 임포트될 때, 다른 오브젝트들은 무시됩니다. Declare Variable 오브젝트를 사용할 필요가 있으면, 이 오브젝트는 라이브러리 안의 UserFunction 안에서 사용되어야 합니다. 다른 영역에서 이 오브젝트가 사용되면 이 오브젝트는 라이브러리 임포트시 무시됩니다.

관련정보

UserFunctions에 대하여, 표현식에서 UserFunction 호출하기, UserObjects 와UserFunctions 변환하기, UserFunction 라이브러리 생성하기, UserFunction 임포팅 및 호출하기, 함수 라이브러리 사용하기


UserFunction 임포팅 및 호출하기

Import Library 오브젝트를 실행해서 UserFunction 라이브러리를 프로그램 안으로 임포트 합니다. 다음 프로그램에서는 user_func_lib 파일에서 라이브러리를 임포트하고 사용자함수 myRand1과 myRand2를 호출합니다.

Import Library 오브젝트에서는 Library Type을 선택할 수 있습니다: 선택할 수 있는 Library Type은 User Function, Compiled Function 및 Remote Function 입니다. 라이브러리 타입으로 User Function을 선택한 경우에는 Library Name과 File Name도 함께 설정해야 합니다.

Library Name 필드는 프로그램 안에서만 사용할 라이브러리 이름을 지정합니다. Delete Library 오브젝트에서 이 이름을 사용하여 프로그램에서 라이브러리를 제거할 수 있습니다. Import Library 에서는 user_func_lib 파일로부터 임포트된 라이브러리를 myLib 라는 지역 라이브러리 이름을 지정했습니다.

File Name 필드에는 라이브러리를 제공하는 파일 이름을 지정합니다. 이 경우에는 라이브러리를 제공할 파일이 user_func_lib 이다. File Name 필드를 클릭하면 라이브러리를 제공할 파일을 선택할 수 있습니다.

이 프로그램은 간단하므로 UserFunction 라이브러리를 사용 후 굳이 제거할 필요는 없습니다. 그러나 대용량 라이브러리를 호출하는 큰 프로그램에서는, 해당 라이브러리를 더 이상 사용하지 않을 때는 그것을 삭제하여 프로그램 메모리를 더 효율적으로 사용할 수 있습니다.

주의사항

Device [image] Import Library 오브젝트를 사용하여 임포트한 UserFunction은 편집할 수 없지만, 내용을 보거나 디버깅을 위한 브레이크포인트는 설정할 수 있습니다. 임포트된 UserFunctions은 프로그램 탐색기를 사용하여 볼 수 있습니다.

File [image] Merge Library 오브젝트를 사용하여 UserFunctions을 프로그램과 머지(merge)할 수 있습니다. 일단 라이브러리가 프로그램 안으로 머지되면 Edit [image] Edit UserFunction 메뉴를 이용하여 각각의 UserFunctions을 편집할 수 있습니다.

관련정보

UserFunctions에 대하여, 표현식에서 UserFunction 호출하기, UserObjects 와UserFunctions 변환하기, UserFunction 라이브러리 생성하기, UserFunction 임포팅 및 호출하기, 함수 라이브러리 사용하기


컴파일된 함수 사용

컴파일된 함수는 다음과 같은 절차를 거쳐서 사용합니다:

1 외부 프로그램을 작성합니다.

2 DLL과 정의파일을 생성합니다.

3 VEE에서 라이브러리를 임포트하고 함수를 호출합니다.

4 함수를 더 이상 사용하지 않으면 VEE 메모리에서 라이브러리를 제거합니다.

컴파일된 함수 라이브러리를 임포팅하고 함수를 호출하는 방법은 UserFunction 라이브러리에서 사용했던 방법과 유사합니다. Import Library 오브젝트는 DLL을 VEE 프로세스에 추가하고 정의 파일의 선언을 파싱합니다.

정의파일은 외부 라이브러리와 VEE 사이에서 전달되는 데이터의 타입을 지정합니다. (이 파일은 이번 장의 후반부에서 설명합니다.) 컴파일된 함수는 Call 오브젝트 또는 Formula 및 If/Then/Else 같은 오브젝트를 사용하여 호출할 수 있습니다.

관련정보

컴파일된 함수 개요, 정의파일(Definition File), 컴파일된 함수 임포팅 및 호출하기, C 함수 생성하기, DLL 생성, DLL 사용


C 함수 생성하기

다음의 C 함수는 실수 어레이를 받아서 어레이의 각 앨리먼트에 1을 더합니다. 변경된 어레이는 Array 터미날을 통해서, 어레이의 크기는 Ret Value 터미날을 통해서 VEE로 리턴됩니다. 이 함수는, 일단 VEE에 링크되면, 다음과 같이 VEE에서 호출한 컴파일된 함수가 됩니다.

/*

     manual49.c 파일의 C 코드

*/

#include <stdlib.h>

#ifdef WIN32

# define DLLEXPORT __declspec(dllexport)

#else

# define DLLEXPORT

#endif

/* myFunc 함수의 오브젝트 메뉴에서 "Show Description" 을 선택할 때 프로그램 탐색기에 나타나는 설명입니다. Function Selection 대화상자가 박스의 바닥에 작은 윈도우로 나타납니다.

*/

DLLEXPORT char myFunc_desc[] = "This function adds 1.0 to the array passed in";

DLLEXPORT long myFunc(long arraySize, double *array) {

   long i;

   for (i = 0; i < arraySize; i++, array++) {       *array += 1.0;    }

   return(arraySize);

}

이 파일의 정의 파일은 다음과 같습니다:

   /*

   manual49.c의 정의 파일

   */

   long myFunc(long arraySize, double *array);

(This definition is the same as the ANSI C prototype definition in the C file.)

(이 정의 내용은 C 파일에서 ANCI C 프로토타입 정의와 같습니다.)

해당 루틴이 참조하는 헤더파일은 반드시 포함시켜야 합니다. 라이브러리는 호출하는 시스템을 해석하는데 필요한 다른 시스템 라이브러리에 연결해야 합니다.

예제 프로그램은 ANSI C 함수 프로토타입을 사용합니다. 함수 프로토 타입은 VEE에서 함수로 사용해야 하는 데이터 타입을 선언합니다.

어레이는 포인터 값으로 선언되었습니다. VEE는 터미날에 있는 Call 데이터에 나타나는 정보의 주소를 이 변수로 배치합니다. 이 어레이 크기는 기다란 정수로 선언 되었습니다. VEE는 어레이의 사이즈 값(주소가 아닌)을 이 변수로 배치합니다. 2개의 데이터 입력 터미날의 위치와 변수 선언이 중요합니다. 데이터 입력핀(위에서 아래로)으로 제공된 데이터 항목의 주소는 함수 프로토타입으로 좌에서 우로 변수에 배치됩니다.

C 함수에 있는 하나의 변수(Call 오브젝트에 있는 하나의 데이터 입력 터미날과 일치하여)는 어레이의 크기를 지정하기 위해 사용됩니다. arraySize 변수는 데이터가 어레이의 마지막을 넘어서 기록되는 것을 방지하기 위해 사용됩니다. 어레이의 범위를 덮어쓴 경우에는, 결과는 사용하는 언어에 의존합니다. 범위를 체크하는 파스칼에서는, 런-타임 에러가 발생하고 VEE가 정지합니다. 범위 체크를 하지 않는 C와 같은 언어에서는, 결과는 예측할 수 없게 되고, 간헐적인 데이터 중단이 예상됩니다.

이 예제는 포인터를 어레이로 통과시켰기 때문에 정보를 사용하기 전에 데이터를 역참조해야 합니다.

arraySize 변수는 값으로 통과 되었기 때문에 데이터 출력 터미날로 나타나지 않습니다. 반면에, 함수의 리턴값은 출력 어레이의 크기를 VEE로 리턴하기 위해 사용하였습니다. 이 방법은 입력 어레이보다 적은 수의 앨리먼트를 가지는 어레이를 출력할 때 유용합니다.

다음 예제는 C 프로그램 예제서 생성된 컴파일된 함수를 호출합니다.:

위의 예제는 예제 디렉토리에 manual49.vee 파일로 저장되어 있습니다. C 파일은 manual49.c로 저장되어 있고, 정의 파일은 manual49.h로, 공유 라이브러리는 manual49.sl로 저장되어 있습니다.

관련정보

컴파일된 함수 개요, 정의파일(Definition File), 컴파일된 함수 사용, 컴파일된 함수 임포팅 및 호출하기, DLL 생성, DLL 사용


DLL 생성

VEE는 Call 오브젝트 또는 Formula 오브젝트를 통하여 DLL을 사용할 수 있습니다.

주의사항

이번 장에서는 DLL을 작성하는 방법이 아니라, DLL을 호출하는 방법을 설명합니다. VEE 3.2 버전과 그 이상의 VEE 에서 32-비트 DLL을 호출할 수 있습니다. 16-비트 DLL은 호출할 수 없습니다.

DLL 생성

VEE 프로그램을 작성하기 전에 DLL을 생성합니다. C 타입의 서브셋만이 허용되는 것을 제외하고는, 다른 DLL을 생성하는 것처럼 DLL을 생성합니다. ( " 정의 파일 생성"을 참조하십시오)

DLL 함수 선언 Microsoft Visual C++ 2.0 버전 이상을 사용하는 경우에는, 함수의 정의는 다음과 같아야 합니다:

   __declspec(dllexport) long myFunc (...);

이 정의는 DLL에서 함수를 전송하기 위한 .DEF 파일의 필요성을 제거합니다. DLL을 컴파일하고 링크하기 위하여 다음의 명령어 라인을 사용합니다:

   cl /DWIN32 $file.c /LD

/LD은 DLL을 생성합니다. /Zi는 디버깅 정보를 생성하기 위해 사용합니다.

MS 링커는 디폴트로 C 멀티-쓰레드 런타임 라이브러리를 연결합니다. GetComputerName()와 같은 함수를 사용하는 경우에는, Kernel32.lib에 대비되는 링크가 필요합니다. 컴파일/링크 명령은 다음과 유사합니다:

   cl /DWIN32 file.c /LD /link Kernel32.lib

DLL 함수 생성 VEE를 사용하여 작업하기 위해서는, DLL 함수는 Microsoft C++ 2.0 버전 이상을 사용하여 __declspec(dllexport) 처럼 선언될 수 있습니다. 이것은 .DEF 파일의 필요성을 제거합니다. 예를 들어, 일반적인 함수는 다음과 같이 생성됩니다:

__declspec(dllexport) long genericFunc(long a) {return (a*2); }

Microsoft Visual C++을 사용하지 않는 경우에는, .DEF 파일은 다음을 포함합니다:

   EXPORTS genericFunc

그리고 함수 정의는 다음과 같은 형태입니다:

   long genericFunc(long a);

정의 파일 생성 정의 파일은 임포팅된 함수의 프로토타입 리스트를 포함합니다. VEE는 Call 오브젝트를 설정하기 위해서 이 파일을 사용하고, 파라미터를 DLL 함수로 전송하는 방법을 결정하기 위하여 이 파일을 사용합니다. 이 프로토타입에 대한 형식은 다음과 같습니다:

<return type> <modifier> <function name> (<type> <paramname>, <type> <paramname>, ...) ;

여기서:

• <return type>은 다음이 될 수 있습니다: byte, int, short, long, int64, float, double, char*, VEE_BOOL, 또는 void.

• <function name>은 알파벳 문자로 이루어진 스트링이 될 수 있습니다. 최대 512 문자까지.

• <modifier>는 _cdecl, _pascal, 또는 _stdcall이 될 수 있습니다.

• <type>는 다음이 될 수 있습니다: byte, int, short, long, int64, float, double, VEE_BOOL, byte*, int*, char*, short*, long*, int64*, float*, double*, char**, VEE_BOOL*, 또는 void.

• <paramname>는 알파벳 문자로 이루어진 스트링이 될 수 있습니다. 최대 512 문자까지. 파라미터 이름은 선택사항 이지만, 추천하지는 않습니다. 파라키터가 참조값에 의해 전송된 경우에는, 파라미터 이름은 인디렉션 기호(*)가 선행되어야 합니다.

예를 들어:

4개의 파라미터를 전송하면, long을 리턴합니다:

   long aFunc(double *,long param2,long *param3, char *);

입력 파라미터가 없으면, double을 리턴합니다:

   double aFunc();

스트링을 전송하면, long을 리턴합니다:

   long aFunc(char *aString);

스트링 어레이를 전송하면, long을 리턴합니다

   long aFunc(char **aString);

파라미터 제한

VEE에서 호출된 DLL 함수는 스택에서 최대 144바이트를 전송합니다. 이로 인해서 함수에 의해 사용된 파라미터의 숫자가 제한됩니다. 파라미터의 어떠한 조합도 144-바이트를 초과하지 않으면 사용할 수 있습니다. long은 4바이트를 사용하고, double은 8 바이트를 사용하고 pointer는 4바이트를 사용합니다. 예를 들어, 함수는 36 long 또는 18 double 또는, 20 pointer 및 8 double을 가질 수 있습니다.

Import Library 오브젝트

DLL 함수를 실행하기 위하여 Call 오브젝트 또는 Formula 오브젝트를 사용하기 전에, Import Library 오브젝트를 통하여 함수를 VEE 환경으로 임포팅 해야 합니다. Import Library 오브젝트에서, Library Type 아래에서 Compiled Function을 선택합니다. Definition File 버튼을 사용하여 정의 파일 이름을 입력합니다. Library Name 버튼은 함수를 설정하기 위하여 변경이 필요하지 않는 논리적인 이름을 지정합니다.

Call 오브젝트

Call 오브젝트를 이용하여 DLL 함수를 사용하기 전에, Call 오브젝트를 설정해야 합니다. 가장 빠른 방법은 DLL 파일을 VEE 환경으로 로딩하기 위하여 Import Library 오브젝트 메뉴에서 Load Lib를 선택합니다. 그리고 Call 오브젝트 메뉴에서 Function을 선택합니다.

VEE는 정의 파일에 있는 모든 함수 리스트를 가진 대화상자를 표시합니다. 함수를 선택하면, VEE는 적절한 입력 및 출력 터미날과 함수를 이름을 가진 Call 오브젝트를 자동으로 설정합니다.

함수이름을 수정하고 적절한 입력과 출력 터미날을 추가하여 수동으로 Call 오브젝트를 설정할 수도 있습니다:

1 함수로 전송된 파라미터에 있는 것과 동일한 숫자의 입력 터미날을 설정합니다. 맨위의 입력 터미날은 함수로 전송된 첫번째 파라미터입니다. 위에서 아래 방향의 다음 터미날이 두번째 파라미터입니다, 등등.

2 출력 터미날을 설정하여 참조값에 의해 전송된 파라미터가 Call 오브젝트에서 출력 터미날로 나타납니다. 값에 의해 전송된 파라미터는 출력 터미날로 지정되지 않습니다. 맨위의 출력 터미날은 함수에 의해 리턴된 값입니다. 아래 방향의 다음 터미날은 참조값에 의해 전송된 파라미터입니다, 등등.

3 Function Name 필드에 적절한 DLL 함수 이름을 입력합니다.

예를 들어, DLL 함수의 이름은 다음과 같이 정의합니다:

long foo(double *x, double y, long *z);

x, y, 및 z에 대한 3개의 입력 터미날과 3개의 출력 터미날이 필요합니다. 하나는 리턴값용이고 두개는 x와 z용 입니다. Function Name 필드는 foo를 가질 수 있습니다. 입력과 출력 터미날의 숫자가 함수에 있는 파라미터의 숫자와 동일하지 않는 경우에는, VEE는 에러를 발생합니다.

DLL 라이브러리가 로딩된 상태에서 Function Name 필드에 함수 이름을 입력한 경우에는, 터미날 이름을 설정하기 위하여 Call 오브젝트 메뉴에서 Configure Pinout 선택을 사용할 수도 있습니다.

Delete Library 오브젝트

프로그램이 굉장히 큰 경우에는, 라이브러리를 사용한 다음에 라이브러리를 삭제할 수도 있습니다. Import Library 오브젝트 메뉴에서 Delete Lib 선택을 이용했던 것처럼 Delete Library 오브젝트는 라이브러리를 메모리에서 삭제합니다.

관련정보

컴파일된 함수 개요, 정의파일(Definition File), 컴파일된 함수 사용, 컴파일된 함수 임포팅 및 호출하기, C 함수 생성하기, DLL 사용


DLL 사용

PC에서는 VEE가 DLL(Dynamic Link Libraries) 형태로 제공되는 컴파일된 함수를 호출하여 사용할 수 있습니다. DLL은 사용자 자신이 작성하거나, 구입 또는 웹에서 다운로드 받을 수 있습니다.

주의사항

VEE는 “_cdecl”과 “_stdcall” 호출 규정을 모두 지원합니다. 대부분의 사용자-작성 DLLs는 _cdec1 규정을 사용합니다. 대부분의 Win32 API는 _stdcall을 사용하여 호출합니다. VEE는 두 가지의 규정을 모두 지원하므로 상용으로 제공되는 DLLs 뿐만 아니라 사용자가 가지고 있는 DLLs도 사용할 수 있습니다.

DLL을 Agilent VEE 프로그램에 통합하는 방법

여기서는 VEE 프로그램에서 DLL을 임포팅하는 방법을 설명합니다. 직접 작성한 DLL 또는 구입한 DLL 이든 다음의 절차를 거쳐 DLL을 사용합니다:

1 Device [image] Import Library를 선택합니다.

Library Type은 UserFunction, Compiled Function, Remote Function을 선택할 수 있습니다. Library Type 필드를 Compiled Function으로 변경합니다(디폴트는 UserFunction). 그림과 같이 Import library 오브젝트에는 컴파일된 함수의 Definition File 필드가 제공됩니다.

각 필드의 기능은 다음과 같습니다:

필드 | 설명
Library Name | VEE가 라이브러리를 식별하는 이름. 일반적으로, 프로그램에서 사용된 라이브러리를 삭제할 때 사용됩니다.
File Name | 공유 라이브러리를 가지고 있는 파일
Definition File | 함수의 프로토타입을 가진 inlcude 파일. 보통 *.h 파일

주의사항

오브젝트 메뉴에서 Load Lib를 실행하여 개발단계에서 수동으로 라이브러리를 로딩 할 수 있습니다.

2 Device [image] 을 선택합니다.

Import Library 오브젝트로 라이브러리를 임포팅하고, Device [image] Call을 선택하여 Call 오브젝트를 생성합니다. Call 오브젝트 메뉴에서 Select Function을 선택하여, 리스트 박스에 출력된 함수들 중에서 필요한 함수를 선택하여 컴파일된 함수를 호출합니다. 예를 들어, Call 오브젝트는 myLib 라이브러리 안의 함수이름이 myFunction이고, 변수이름이 arraySize와 array인 컴파일된 함수를 호출합니다.

VEE는 Call 오브젝트의 함수 이름과 필요한 개수만큼의 입/출력핀을 자동으로 설정합니다. 두 번째, 세 번째 등의 출력핀은 함수로 참조된 전달 파라미터로 매핑됩니다. 함수이름을 입력하였을 경우, 오브젝트 메뉴의 Configure Pinout을 선택하여 입출력핀을 설정할 수 있습니다.

주의사항

로딩된 라이브러리를 표현식 필드에 입력하여 DLL 함수를 호출할 수 있습니다. 이 방법을 사용할 때는 함수 이름 뒤의 괄호 안에 변수를 입력해야 하고, 함수는 반환 값만을 돌려줍니다. 참조값으로 전달되는 파라미터는 Call 오브젝트를 사용해야 합니다. 예를 들어, Formula 오브젝트에 아래와 같은 표현식을 입력했을 때,

2 * yourfunc(a,b)

a 와 b 는 Formula 오브젝트의 두 입력핀에 전달 되고, yourFunc의 결과를 2배 한 값이 출력핀으로 출력합니다.

3 (선택사항) Click Device [image] Delete Library를 클릭합니다..

VEE 소오스 프로그램 개발시에는 오브젝트 메뉴의 Delete Lib를 선택하여 라이브러리를 프로그램적으로 삭제할 수 있습니다. 사용이 끝난 라이브러리를 삭제하면 프로그램 로드 시간을 줄이고 메모리를 절약할 수 있습니다.

DLL 사용 예제

이 실습에서 DLL을 임포트 하고 DLL 내의 함수를 호출합니다. 여기서 사용하는 DLL은 윈도우용 VEE에 포함되어 있습니다. (같은 프로그램이 모든 플랫폼 상에서 동작하도록 설계 되어 있습니다.)

manual49.vee 파일을 엽니다. 이 파일은 다음 디렉토리 아래에 있습니다:

<설치 디렉토리>\EXAMPLES\MANUAL\MANUAL49.

이 예제를 실행합니다.

상기 프로그램의 구성요소

구성요소 | 설명
Import Library | Call Function에서 컴파일된 함수를 호출하기 전에, Import Library 오브젝트(Device Menu안에 있음)에 의해 해당 DLL이 로딩되어 있어야 합니다.
Call Function | MANUAL49는 컴파일된 함수 myFunc을 호출합니다. MyFunc은 VEE의 Int32 역할을 하는 C의 long형 데이터 타입을 사용하며, 이 숫자는 어레이의 크기를 지정합니다. 두 번째 입력 파라미터는 실수 어레이를 가리키는 파라미터입니다. 정의 파일(Definition 파일)은 MANUAL49.H이며, C 코드가 들어있는 원본 파일은 MANUAL49.C입니다. myFunc은 어레이의 모든 앨리먼트에 1씩을 더합니다.
Function Generator | Function Generator는 Call myFunc 오브젝트의 array 핀으로 출력되는 파형을 생성하기 위하여 사용되었습니다.
totSize | totSize 오브젝트(Math & Functions에 위치)는 Call myFunc 오브젝트의 arraySize입력핀으로 출력되는 파형의 크기를 지정하기 위하여 사용되었습니다.
XY Trace | XY Trace 오브젝트는 원래의 파형과 새로운 파형을 디스플레이 합니다.
Formula | Ret Value라고 라벨된 Call 오브젝트의 출력핀은, 반환되는 어레이의 크기를 저장하고 있으며, Formula 오브젝트의 B[0:A-1] 표현식은 디스플레이 오브젝트로 입력되는 어레이를 가리킵니다.

프로그램을 실행시키면 두 번째 트레이스가 파형의 모든 지점에서 처음의 트레이스 보다 1만큼 큰 것을 확인할 수 있습니다.

이 프로그램에서 또 다른 키 포인트는 모든 VEE 플랫폼으로 이식할 수 있는 방법이 사용되었다는 점입니다. Windows98, Windows2000, Windows NT 4.0 그리고 Windows XP는 동일한 Microsoft 32-비트 컴파일러를 사용합니다. 이 DLL은 모두 *.dll 확장자를 사용하여 표현됩니다.

다음과 같이, 이름이 Shared Library Name 인 UserObject는 사용하고 있는 운영체제를 인식하고, 라이브러리 이름을 Import Library 오브젝트에 전송합니다.

whichos() 함수는 운영체제를 인식하여 운영체제에 따라서 다른 값을 If/Then/Else 오브젝트로 출력합니다. (whichos() 함수는 Formula 오브젝트의 이름을 바꾸어서 사용되었습니다.) If/Then/Else 오브젝트는 whichos() 함수의 출력을 검사하여, 해당 운영체제에서 사용하는 확장자를 텍스트(text constant)로 출력합니다. Formula 오브젝트에서 MANUAL49 파일명 뒤에 이 파일명 확장자가 추가됩니다. (Formula 오브젝트의 입력 터미날의 이름도 ext로 변경되었습니다.)

Import Library 오브젝트에서 파일이름을 받아들이는 컨트롤핀(File Name)이 추가되었습니다. 이 컨트롤에 연결되는 선은 점선(UserObject 와 Import Library 사이)으로 나타납니다.

주의사항

데이터베이스로 데이터를 전송하는 경우와 같이 복합된 환경에서 데이터를 공유할 때에는 To/From Socket 오브젝트를 사용합니다. 예제에서 제공되는 Battleship과 Euchre은 다중 VEE 프로세스와 통신하기 위해 소켓을 사용합니다.

오브젝트에서 DLL 함수 사용

Formula 오브젝트에 DLL 함수를 사용할 수도 있습니다. Formula 오브젝트를 사용하면, 리턴 값은 공식에서만 사용됩니다. 참조된 파라미터는 사용할 수 없습니다. 예를 들어, 위에서 정의된 DLL함수는 다음과 같은 공식이 될 수 있습니다:

4.5 + foo(a, b, c) * 10

여기서, a는 Formula 오브젝트의 제일 위에 있는 입력 터미날이고, b는 다음이고, c는 마지막입니다. foo를 호출하는 것은 정확한 번호의 파라미터를 가져야 하며, 그렇지 않으면 VEE는 에러를 발생합니다.

관련정보

컴파일된 함수 개요, 정의파일(Definition File), 컴파일된 함수 사용, 컴파일된 함수 임포팅 및 호출하기, C 함수 생성하기, DLL 생성


컴파일된 함수 임포팅 및 호출하기

Import Library 오브젝트를 사용하여 DLL을 VEE 프로그램으로 임포트하고, Call 오브젝트로 컴파일된 함수를 호출할 수 있습니다. 이 과정은 UserFunction 라이브러리를 임포트하고 함수를 호출하는 과정과 거의 동일합니다.

컴파일된 함수 라이브러리를 임포트하기 위해서, Import Library 오브젝트의 Library Type 필드에서 Compiled Function을 선택합니다.

UserFunction에서와 마찬가지로, Library Name 필드에는 VEE 프로그램에서 사용할 이름을 입력하고, File Name 필드에는 임포트할 라이브러리를 선택합니다. Library Type 필드에서 Compiled Function을 선택하는 경우에는 다음과 같이 Import Library 오브젝트에 Definition File(정의 파일) 필드가 출력됩니다.

정의 파일은 외부 프로그램과 VEE 간에 주고받는 데이터 타입을 정의하며, 함수의 프로토타입을 가지고 있습니다.

Import Library 오브젝트를 이용하여 라이브러리를 임포팅한 후에는, Call 오브젝트에 함수이름을 지정하여 컴파일된 함수를 호출할 수 있습니다. 예를 들어 Call 오브젝트는 이름이 myFunction인 컴파일된 함수를 호출합니다.

Call 오브젝트의 Select Function 또는 Function & Object Browser(Device [image] Function & Object Browser 아래)에서 호출 하고자하는 함수를 선택하거나, Call 오브젝트의 Function Name 필드에 직접 함수이름을 입력합니다.

VEE가 함수를 찾으면 Call 오브젝트의 입출력 터미날을 자동으로 설정합니다.(필요한 정보는 정의파일에서 제공됩니다.) Call 오브젝트의 입출력 터미날은 Call 오브젝트의 오브젝트 메뉴에서 Configure Pinout을 실행하여 재설정할 수 있습니다.

VEE는 함수에 제공해야 하는 입력 터미날과 함수로부터 출력되는 리턴 값을 가져올 Ret Value 출력터미날을 설정합니다. 또한 참조에 전달되는(passed by reference) 각 입력에 대응하는 출력터미날도 설정합니다.

Formula 오브젝트의 표현식이나 실행시 호출되는 표현식으로부터 컴파일된 함수를 호출할 수 있습니다. 예를 들어, 컴파일된 함수를 Sequencer 또는 ToFile 오브젝트의 트랜잭션에서 함수이름을 사용하여 이들을 호출할 수 있습니다.

그러나 컴파일된 함수의 리턴 값(Call 오브젝트의 Ret Value 출력)은 표현식에서 만 사용할 수 있습니다. 함수에서 다른 변수 값을 얻기 위해서는 Call 오브젝트를 사용해야 합니다.

관련정보

컴파일된 함수 개요, 정의파일(Definition File), 컴파일된 함수 임포팅 및 호출하기, C 함수 생성하기, DLL 생성, DLL 사용


대용량 프로그램에서 함수를 찾는 방법

VEE의 Edit의 서브메뉴에 Find 기능이 있어서 오브젝트나 텍스트를 찾을 수 있습니다. Examples\Games 폴더의 Solitaire.vee에서 makeamove를 입력(makeamove 사용자함수는 Solitaire.vee 프로그램에서 사용되고 있습니다.)하고 Find 버튼을 클릭합니다.

그림과 같이 makeamove(Solitaire.vee 프로그램에 있는 UserFunction)라고 입력합니다. makeamove 이름을 가진 사용자함수와 이름에 makeamove를 포함하는 프로그램이 검색됩니다.

이 찾기 기능은 사용자함수를 찾을 때뿐만 아니라, 변수, 제목, 오브젝트의 설정 등 일반적인 텍스트와 오브젝트를 찾기 위해서도 사용할 수 있습니다. 찾기 대화상자에 검색된 내용을 더블클릭하면 해당 내용에 접근할 수 있습니다.

주의사항

프로그램 탐색기에서 오브젝트에 마우스를 올려놓고 오른쪽 버튼을 클릭하여 생기는 Find 메뉴를 거쳐도 Find 기능은 사용할 수 있습니다. 그러나 이 방법은 검색범위가 특정 UserFunction 또는 UserObject로 제한됩니다.

관련정보

사용자 정의 함수의 개요


패널이란 무언인가?

패널뷰(패널이라고도 부름)는 프로그램에 대한 사용자 인터페이스입니다. 일반적으로 프로그램에 대한 기능적인 부분을 작성한 다음에 생성합니다. 디테일 뷰(프로그램 개발 영역)와 패널뷰는 메인 윈도우에 표시되는 동일한 프로그램에 대한 2개의 뷰입니다; 머리와 꼬리가 동일한 동전의 두 면인 것처럼. 일반적으로 디스플레이와 데이터 입력 오브젝트를 패널에 복사할 수 있습니다. 오브젝트만(연결선이나 핀은 제외) 디스플레이 됩니다. 프로그램을 각각의 뷰에서 실행할 수 있습니다.

프로그램에 대한 패널뷰를 생성한 다음에, 프로그램은 VEE 작업공간에 있는 분리된 실행 윈도우에서 실행할 수도 있습니다. 실행 윈도우는 패널뷰용으로 지정한 모든 설정을 가지고 프로그램을 실행합니다. 메인 윈도우의 속성인 Show On Execute 항목을 사용하여 실행 윈도우의 사용을 컨트롤할 수 있습니다. 실행 윈도우는 디테일 뷰와 패널뷰에서 동시에 프로그램을 관찰할 수 있도록 하고, 실행이 끝난 프로그램은 VEE 런타임에서 프로그램을 실행하는 것처럼 보입니다. 프로그램의 수정을 방지하기 위하여 실행 윈도우가 열린 경우에는 메뉴 항목에 대한 서브셋 만을 사용할 수 있습니다. 그러나 프로그램을 보안 처리하여 VEE 런타임에서 프로그램을 실행하는 것은 완료된 프로그램을 사용자에게 배포하는 최선의 방법입니다. 다음의 3가지 그림은 디테일 뷰, 대응하는 패널뷰 및 실행 윈도우에서 일시 정지된 프로그램을 나타냅니다.

디테일 뷰

패널뷰

실행 윈도우

VEE는 3가지 타입의 패널을 제공합니다; 모든 패널은 생성하고, 수정하고 사용하는 방법에 있어서는 유사합니다.:

메인 패널 – 메인 컨텍스트와 관련이 있는 패널. 오브젝트가 메인 작업영역에 있는 경우에는, 오브젝트를 선택하여 메인 패널에 추가할 수 있습니다. 메인 패널을 생성하는 방법은 패널에 오브젝트 추가하기 와 패널에서 오브젝트 삭제하기에 설명되어 있습니다..

UserObject 패널- 각 UserObject는 자신의 패널을 가질 수 있습니다. 이 패널은 자체로 사용할 수도 있고 메인 패널을 포함하여 다른 패널에 추가할 수도 있습니다. 이 패널은 항상 보이게 할 수도 있고, UserObject가 실행될 때 Show Panel on Execute 속성이 체크되어 있으면 팝업(대화상자처럼) 시킬 수도 있습니다. UserObject 패널을 생성하는 방법은 UserObject 패널 생성하기에 설명되어 있습니다.

UUserFunction 패널- 각 UserFunction은 자신의 패널을 가질 수 있습니다 (UserObject 처럼). 이 패널은 UserFunction이 실행될 때, Show Panel on Execute 속성이 체크되어 있거나 showPanel()함수의 호출을 통하여 지정하면 팝업(대화상자처럼) 시킬 수도 있습니다. UserFunction 패널을 생성하는 방법은 UserFunction 패널 생성하기에 설명되어 있습니다.


패널에 오브젝트 추가하기

메인 패널은 사용자 인터페이스를 만드는 것입니다. 어떤 종류의 패널을 생성하든지 메인 패널을 생성하는 것과 동일합니다.

1. 오브젝트를 오픈뷰 상태로 전환합니다. 대부분 패널에서는 오픈뷰를 사용합니다; 패널에 있는 오브젝트는 아이콘뷰 혹은 오픈뷰로 전환할 수 없습니다.

2. 패널에 추가하고자 하는 오브젝트를 선택합니다. CTRL을 누른 상태로 각각의 오브젝트에서 마우스 왼쪽버튼을 눌러 오브젝트를 선택할 수 있습니다. 혹은 CTRL을 누른 상태로 마우스 왼쪽버튼을 눌러 드래그하여 여러 오브젝트를 선택할 수도 있습니다.

3. 툴바의 Add to Panel 버튼을 클릭합니다. ( 혹은 use Edit [image] Add To Panel).

Add to Panel 버튼

메인화면에 패널뷰가 나타납니다. 패널뷰에는 스크롤바가 없습니다. 메인화면의 타이틀바 왼쪽에 있는 패널과 디테일 버튼을 눌러 패널뷰와 디테일뷰로 전환할 수 있습니다. 언제라도 패널에 오브젝트를 추가할 수 있으며, 디테일뷰 부터 시작하고 위의 순서대로 작업합니다.

주의사항

메인화면에서 디테일뷰나 패널뷰의 크기를 조절할 수는 있지만 패널뷰에는 스크롤바가 없습니다. 디테일뷰에서 선택한 오브젝트는 패널에 추가할 때 같은 위치에 배치됩니다. 만약 화면의 크기를 바꾸면 패널뷰 오브젝트를 다시 배치할 필요가 있습니다.

관련정보

실습 11-1: 메뉴 사용

실습 11-3: 경고 표시 생성


패널에서 오브젝트 삭제하기

1. 먼저, 패널뷰 상태로 전환하십시오.

2. 오브젝트 메뉴에 있는 Delete를 선택하여 오브젝트를 삭제합니다.

패널뷰에서 오브젝트를 삭제했더라도, 오브젝트는 디테일뷰에 남아 있습니다.

디테일뷰에서 오브젝트를 삭제(잘라내기)하면, 패널뷰에서도 자동으로 오브젝트가 삭제됩니다.

주의사항

디테일뷰에서 오브젝트를 잘라내고(Cut) 붙여넣는(Paste) 다면, 패널뷰에 있는 관련 오브젝트가 삭제되기 때문에 패널에 다시 추가해야 합니다. Copy와 Paste 대신에 사용합니다.

주의사항

프로그램이 실행 중일때는 디테일뷰, 패널뷰 또는 실행 윈도우에서 Delete 같은 오브젝트 메뉴를 사용할 수 없습니다. 사용하기 위해서는 프로그램을 일시정지 하거나 정지해야 합니다.


ÆÐ³Î ¸ð¾ç º¯°æ ¼Ò°³

패널 모양 변경 소개

일반적으로 패널에 있는 오브젝트의 모양은 디테일 뷰에 있는 모양과는 같지는 않습니다. 예를 들어 패널 뷰에서 오브젝트의 색상을 변경하더라도, 디테일 뷰의 해당 오브젝트의 색상은 변경되지 않습니다.(그 반대의 경우도 마찬가지 입니다.) 그러나, 디스플레이 되는 데이터와 실행관련 내용이 서로 연관되어 있다면, 한쪽 뷰에서 데이터가 변경되면, 다른 쪽 뷰에서도 변경내용이 적용됩니다. 패널 뷰에서의 변경된 내용은 다음 번 프로그램 실행 시에도 변경된 값으로 나타납니다.

패널 뷰나 디테일 뷰에 있는 오브젝트가 Default Preferences에 설정된 디폴트 속성값을 따랐다면(이 경우 색상이나 글자체 속성을 사용자가 변경하지 않아야 합니다.), 이들 속성은 디폴트 값을 변경했을 때 변경이 됩니다. 이들 속성값은 패널 뷰와 디테일 뷰 간에 서로 연결되어 있지는 않습니다. 예를 들면 패널 뷰에 있는 오브젝트가 황금색으로 설정될 수 있지만, 디테일 뷰에 있는 오브젝트 색상은 디폴트 색상으로 남아 있습니다.

패널뷰와 디테일뷰간에 관련이 없는 속성

Show Title Bar (오브젝트가 오픈뷰에 디스플레이되는 경우)

Layout 영역:

Horizontal

Vertical

Show Digital Display

Show Tic Marks

Rectangular

Circular

Show Digital Display

Show 3-D Border

Scaled

Show Caption

Show Traces Legend

Show Scales Legend

Show Scale Labels

Show Scroll Bars

Show Auto Scale Button

Enable Trace/Scale Editing

Grid Type

Markers

Color 속성들: 모든 색상

Font 속성들: 모든 글자체

Traces: 트레이스 이름을 제외한 모든 속성들

Scales: 모든 속성들

Label 조정 속성들

Editing Enabled 속성 (Note Pad 오브젝트에서)

Format 속성들:

Radio Buttons | Cyclic Button | List | Drop-Down List | Pop-Up List | Slider List

Button | Check Box | Vertical Paddle | Horizontal Paddle | Vertical Rocker | Horizontal Rocker | Vertical Slide | Horizontal Slide

Limits 영역의 속성들:

High Color

Mid Color

Low Color

Sub-Range Configuration 영역의 속성들:

Colors

Icon appearance 영역의 탭 속성들:

Picture file 및 display mode

Show Title

Layout 영역의 속성들(패널뷰에서만 가능):

Size & Position (X, Y, Width, Height)

Border

다른 모든 속성들은 패널뷰와 디테일뷰간에 연결이 되어 있습니다. (한쪽뷰에서의 변경은 양쪽뷰에 반영됩니다.)


오브젝트의 경계표시 변경하기

패널뷰에서 경계표시 스타일을 선택하여 오브젝트의 모양을 변경할 수 있습니다.

1. 오브젝트 메뉴에서 Properties를 선택하십시오.

2. Appearance 영역으로 이동하여

3. Border 항목(None, Flat, Sunken 또는 Raised)에서 적절한 타입을 선택하십시오.

다음 그림은 각기 다른 경계 스타일의 모양을 보여줍니다.

경계 스타일

주의사항: Border항목이 None으로 설정될 때

오브젝트의 경계가 None으로 설정되고 오브젝트 색상이 배경색과 동일할 때는, 오브젝트 색상이 확산되어 정확한 오브젝트 구분이 어렵습니다. 오브젝트를 이동하거나 크기를 조정할 때, 또는 오브젝트의 색상을 배경색과 다르게 변경했을 때는 오브젝트의 경계를 구분할 수 있습니다.

오브젝트의 경계를 설정했더라도 오브젝트의 크기는 바꾸지 않습니다. 예를 들어 OK 오브젝트를 경계가 없이 생성하고 나서, 경계를 갖도록 설정하면 오브젝트의 텍스트가 경계에 가려서 판독이 불가능 할 수도 있습니다. 다음 그림은 2개의 오브젝트가 같은 크기입니다. 왼쪽에 있는 오브젝트는 Border가 None으로 설정된 경우이고, 오른쪽에 있는 오브젝트는 Border가 Flat으로 설정된 것입니다.

경계의 폭에 대한 예

Copyright (c) 1991-2007 Agilent Technologies, Inc.


¶óº§ Ãß°¡ÇÏ±â

라벨 추가하기

패널에 텍스트를 추가하기 위해서는 Label 오브젝트를 사용합니다.

1. 디테일뷰에서, Display [image] Label를 선택합니다.

2. Label의 오브젝트 메뉴에서, Properties를 선택합니다.

3. Title을 원하는 라벨 텍스트로 변경합니다.

4. Label 오브젝트를 선택하고, Edit [image] Add To Panel를 선택합니다. 원하는 위치에 라벨을 배치합니다.

Label 오브젝트의 디폴트 색상은 패널뷰의 색상과 동일합니다. (File [image] Default Preferences에서 설정) 라벨의 배경색은 패널뷰로 보이지 않게 혼합됩니다.

디테일뷰나 패널뷰에서 속성창을 통하여 타이틀의 텍스트를 변경하여 라벨의 텍스트를 변경합니다. 또는 데이터 입력 터미날을 추가하여 라벨의 텍스트를 프로그램 실행시에 프로그램상에서 변경합니다. 속성창을 통하여 Left, Right, 또는 Center justification을 지정하여 텍스트를 조정할 수 있습니다.


오브젝트 정렬하기

패널뷰에 오브젝트를 추가하면, 오브젝트의 좌측상단 코너가 사용자가 수정 가능한 그리드에 정렬됩니다. 그러나 오브젝트의 크기는 바뀌지 않습니다. 패널뷰에서 오브젝트를 이동하면, 오브젝트의 좌측상단 코너가 가장 가까운 그리드로 정렬됩니다. 오브젝트의 크기를 재조정하려면, 커서를 오브젝트의 우측하단 코너로 이동하면 크기 조정 커서가 나타나고, 클릭하여 크기를 조절하십시오. 만약 크기 조정 커서의 사용이 어려우면 오브젝트 메뉴의 Size 항목을 사용하십시오.

오브젝트를 정렬하는 방법에는 몇 가지가 있습니다.

1. 오브젝트를 선택하고, 메뉴바의 Edit [image] Align or Distribute를 사용하십시오.

2. 오브젝트를 선택하고, Properties 창의 Layout 항목에서 모든 오브젝트의 크기를 설정할 수 있습니다.


그리드 크기 변경하기

1. 메인 윈도우의 패널뷰를 생성하고, 메인 윈도우의 오브젝트 메뉴에서 Properties를 선택하십시오.

2. Panel 영역을 선택하십시오.

3. PanelGridSize 항목을 가장 작은 크기인 2로 설정하십시오.

4. PaneDrawGrid 항목을 True로 설정하여 그리드가 보이도록 하십시오.

그리드 크기를 변경할 때, 패널에 있는 오브젝트가 자동으로 그리드에 정렬되지는 않습니다. 오브젝트를 클릭하여 이동하면, 오브젝트의 좌측 상단이 가장 가까운 그리드 포인트로 정렬됩니다. 오브젝트의 코너를 클릭하여 크기를 조정하면, 오브젝트는 가장 가까운 그리드 포인트로 정렬됩니다. 오브젝트의 이동이나 크기 조정은 현재의 그리드 크기를 기준으로 정렬됩니다.

오브젝트를 클릭한 상태에서 Shift 키를 누르고 크기를 조정하면 그리드의 포인트와 상관없이 조정할 수 있습니다.

주의사항

각 패널은 각각의 그리드를 가지고 있습니다. UserObject 또는 UserFunction의 그리드 크기를 조정하기 위해서는 각각의 오브젝트 메뉴에서 Properties를 선택하고, 위에 설명한 단계를 따라 합니다.


동일한 크기의 오브젝트 만들기

패널뷰에 있는 오브젝트의 크기를 다른 오브젝트의 크기와 같게 만들 수 있습니다.

여기에는 몇 가지 방법이 있습니다:

1. 메뉴에서 View [image] Properties를 선택하여 체크합니다. 모든 오브젝트를 선택하고 속성창의 Layout 영역에서, 크기를 설정합니다.

2. 모든 오브젝트를 선택합니다. 마우스를 사이즈 커서(좌우 화살표)가 나타날 때까지 하나의 오브젝트의 오른쪽 하단부로 이동합니다. CTRL 키를 누른 상태에서 마우스 왼쪽 버튼을 누릅니다. 마우스를 드래그하여 원하는 크기로 변경합니다. 원하는 크기로 변경되지 않았을 때는 Undo를 사용하십시오.

관련정보

프로그램상에서 속성 변경하기


패널에 그림 추가하기

패널뷰에 비트맵 같은 그래픽 이미지를 추가하는 방법에는 두가지가 있습니다. 이들 방법은 메인화면에 적용이 되며, UserObject나 UserFunction에도 사용이 됩니다.

패널뷰 배경에 이미지 추가하기

이 방법을 사용하기 위해서는 패널뷰가 먼저 생성되어 있어야 합니다. 메인화면의 오브젝트메뉴에서 Create Panel을 선택하여 패널뷰를 빠르게 생성할 수 있습니다.

1. 메인화면의 오브젝트 메뉴에서 Properties를 선택합니다.

2. Panel 영역으로 이동합니다. 패널을 생성하고 패널뷰 화면으로 이동해야만 Panel 영역 탭이 나타납니다.

3. Panel BackgroundPicture항목을 선택하고 그림파일을 선택합니다.

4. 표시모드(Actual, Centered, Scaled, 혹은 Tiled)를 선택하고 Preview에 나타나는 그림을 확인합니다.

5. OK 버튼을 클릭합니다.

패널뷰에 이미지 배치하기

1.디테일뷰에서 Display [image] Picture를 선택합니다. 메인 작업영역에 Picture 오브젝트가 생성됩니다.

2. Picture 오브젝트의 오브젝트 메뉴에서 Properties를 선택합니다.

3. Picture 항목에서 원하는 파일을 선택합니다.

4. 표시모드(Actual, Centered, Scaled, 혹은 Tiled)를 선택하고 Preview에 나타나는 그림을 확인합니다.

5. OK 버튼을 클릭합니다.

6. Picture 오브젝트를 선택합니다.

7. Edit [image] Add To Panel을 선택합니다.

팁

Picture 오브젝트에 데이터 입력터미널을 추가하여 패널뷰에 디스플레이 되는 이미지를 프로그램상에서 변경할 수 있습니다.

현재 지원되는 그래픽 포맷은 다음과 같습니다:

비트맵 (*.BMP)

GIF87a (*.GIF)

Windows MetaFile (*.WMF)

Portable Network Graphics (*.PNG)

그림 디스플레이 모드

Actual - 그림이 실제 사이즈로 디스플레이됩니다. 오브젝트나 패널은 실제 그림의 사이즈로 재조정됩니다.

Centered - 그림이 실제 사이즈로 디스플레이됩니다. 그림은 오브젝트나 패널의 중앙에 디스플레이됩니다. (동일한 크기로 남아 있습니다.)

Scaled - 오브젝트나 패널의 현재 사이즈로 그림이 스케일 됩니다. 이 항목을 선택한 다음에는, 스케일 하는데 약간의 시간이 필요합니다.

Tiled - 그림은 실제 사이즈로 남아있으며, 오브젝트나 패널 전체를 채울 때까지 수평 혹은 수직으로 반복합니다.

다음 그림은 각기 다른 디스플레이 모드를 나타냅니다.

다른 디스플레이 모드를 사용한 Picture 오브젝트

주의사항

실행속도를 높이기 위해서, VEE는 그래픽 이미지를 캐싱합니다. 이미지를 VEE로 로딩하여 이미지를 포함한 파일로 변경한 경우에는, 다른 이미지 파일을 선택하는 것이 필요하면 원래의 이미지 파일을 다시 선택합니다. 다른 이미지를 선택한 다음에는 새로운 이미지가 사용됩니다.

관련정보: 실습 11-2: 비트맵 파일을 패널 그림으로 사용


UserObject 패널이란 무엇인가?

UserObject 패널은 메인 윈도우의 패널과 아주 유사합니다. 각 패널은 자신의 컨텍스트를 가지며, 자신의 패널뷰 뿐만이 아니라 자신의 Trig Mode 와 Edit 메뉴를 가집니다. UserObject 패널은 패널을 디스플레이 하는 방법에 있어서는 메인 패널보다 더 유연합니다.

UserObject 패널을 디스플레이 하는 3가지 방법

독립적인 패널: UserObject에 있는 패널.

이 방법은 다른 사용자들이 사용할 수 있도록 UserObject를 번들로 제공하거나, 다른 사용자들이 메인 패널을 생성하지 않고 사용할 수 있도록 프로그램을 단순화 할 때 유용합니다.

팝업 패널: Show Panel on Execute 속성을 지정한 UserObject 패널.

이 방법은 정보를 요청하고 가져가는 사용자 지정 대화상자를 사용할 때 유용합니다. 이 타입의 패널은 VEE 윈도우의 어디에도 팝업 시킬 수 있습니다.

메인 패널에 있는 패널: 메인 패널에 추가된 UserObject에 있는 패널.

이 방법은 패널을 기능적으로 그룹화할 때 사용합니다. 패널을 다른 패널에 네스팅 시킬 수도 있습니다.

다음 그림은 다른 타입의 UserObject 패널을 보여줍니다.

UserObject 패널을 디스플레이 하는 3가지 방법

Copyright (c) 1991-2007 Agilent Technologies, Inc.


UserObject 패널 생성하기

1. UserObject의 편집화면에서 Ctrl 키를 누른 상태에서 마우스 왼쪽버튼을 클릭하여 오브젝트(들)를 선택하십시오.

주의
UserObject 패널에 추가하고자 하는 오브젝트는 반드시 UserObject의 디테일뷰에 있어야 합니다. UserObject의 경계를 벗어나거나 네스팅된 경로에 있는 UserObject에 있는 오브젝트는 선택할 수 없습니다.

2. UserObject의 편집화면에서 오브젝트를 선택한 상태에서 메뉴바의 Edit 메뉴에서 Add to Panel을 선택하십시오.

메인 패널과는 별개로 UserObject 패널이 생성되었습니다. 편집화면의 타이틀바 왼쪽에 있는 패널뷰 버튼과 디테일뷰 버튼을 이용하여 패널뷰와 디테일뷰를 변경할 수 있습니다. UserObject 패널에 다른 오브젝트를 추가하고자 할 때는 디테일뷰에서 위의 단계를 따라 추가하십시오.


ÆË¾÷ ÆÐ³Î »ý¼ºÇÏ±â

팝업 패널 생성하기

UserObject 패널을 생성한 다음에, UserObject가 실행될 때 팝업되는 패널을 만들기 위해서는 다음의 단계를 따라 하십시오:

1. UserObject의 오브젝트 메뉴에서 Properties를 선택합니다.

2. UserObject의 오브젝트 메뉴에서 Properties를 선택합니다.

3. OK 버튼을 클릭합니다.

프로그램이 실행되는 동안에, UserObject가 실행되면 UserObject 패널이 팝업되고 메인 윈도우의 디테일뷰와 패널뷰(생성된 경우)에 나타납니다. 메인 윈도우의 속성 ShowPanelOnExecute이 on 되어 있으면, UserObject 패널은 실행 윈도우에서만 팝업됩니다.

주의사항

팝업 패널의 디스플레이 여부를 변경하기 위해서는, 속성창의 Pop-Up Panel 영역에 있는 ShowPopUpPanelTitle 및 ShowPopUpPanel Border 속성을 설정합니다.

패널뷰의 배경색을 변경하기 위해서는, 속성창의 Appearance 영역에 있는 BackColor 속성을 변경합니다.

주의사항

고유한 대화상자를 생성할 때 팝업 패널을 사용합니다. 자세한 내용은 사용자 지정 대화상자 만들기 를 참조하십시오.

간단한 대화상자가 필요한 경우에는, 팝업 패널을 생성할 필요가 없습니다. Dialog Box 오브젝트중의 하나를 사용합니다. 자세한 내용은 기본 제공되는 Dialog Box 오브젝트 소개를 참조 하십시오.


디스플레이된 팝업 패널 유지하기

팝업 패널을 생성하여 실행하면, 패널은 팝업되고 즉시 사라집니다. 이러한 동작은 UserObject의 실행이 일시 정지 기능을 가지고 있지 않기 때문입니다. 그러므로 팝업 패널을 볼 수 없고, 정보에 응답할 수 없게 됩니다. 버튼을 누르기 전까지는 UserObject의 실행 상태를 유지하기 위하여 OK 버튼을 추가하는 방법은 다음과 같습니다.

1. Flow [image] Confirm (OK)를 선택하십시오.

2. UserObject의 디테일뷰에 OK 오브젝트를 배치하십시오.

3. OK 오브젝트를 선택하십시오.

4. UserObject의 Edit 메뉴에서 Add To Panel을 선택하십시오.

프로그램을 실행하면, UserObject의 패널이 팝업되고 OK 버튼을 누르기 전까지 유지됩니다.

OK와 Cancel 버튼을 사용하고 고유한 대화상자를 생성하기 위한 자세한 방법은 사용자 지정 대화상자 만들기를 참조하십시오.


팝업패널의 크기 변경하기

팝업패널의 크기는 UserObject의 패널뷰 크기입니다. 크기를 변경하기 위해서는 다음 단계를 따르십시오.

1. UserObject의 타이블 바의 왼쪽에 있는 패널 버튼을 눌러 UserObject의 편집 화면을 패널뷰로 변경합니다.

2. 패널을 필요한 크기로 조정합니다.

오브젝트 메뉴에서, Size를 선택합니다. 또는 커서를 오브젝트의 모서리에 놓고 모서리를 드래그하여 크기를 조정합니다.

UserObject의 패널을 재 조정할 때, 타이틀과 경계선 부분의 크기도 포함됩니다.


팝업 패널의 위치 변경하기

프로그램을 실행하면, 팝업 패널이 VEE 작업영역의 중앙에 디스플레이 됩니다. 프로그램이실행되는 동안에 패널을 적당히 배치하여 팝업 패널의 위치를 변경합니다.

1. Run버튼을 누릅니다.

2. 패널이 팝업되면, 패널을 원하는 위치로 이동합니다.

프로그램이 실행될 때는 언제나 그 위치에서 팝업됩니다. 팝업 패널은 어떤 위치에도 배치할 수 있고, 이때 그리드는 위치에 영향을 주지 않습니다. 메인 패널의 속성중에 Show on Execute 항목이 off되면, UserObject 팝업 패널을 VEE 작업영역의 어디에나 배치할 수 있습니다. Show on Execute 항목이 on되면, 팝업 패널은 실행 윈도우 테두리 내에서만 배치할 수 있습니다.

주의사항

전체 팝업 패널의 좌측 상단 위치는 Pop-Up Panel 속성, Show Title Bar 또는 Show Border 항목의 선택여부와 상관없이 동일한 장소에 배치됩니다. 예를 들어, 팝업 패널의 위치를 설정하고 Show Title Bar 항목을 off하면, 팝업 패널의 좌측상단이 팝업 패널의 타이틀바의 좌측상단이 있었던 위치로 이동됩니다.


메인패널에 UserObject 패널 추가하기

UserObject 편집화면에서 패널뷰를 생성하고, 아래의 단계를 따라 메인패널에 패널을 추가합니다.

1. 메인화면의 디테일뷰에서, 마우스 커서를 UserObject 아이콘 위에 놓고 마우스 오른쪽 버튼을 누르고, Restore를 선택합니다.

UserObject 아이콘이 UserObject 편집화면에서 생성한 패널뷰 화면으로 확장됩니다.

2. UserObject를 선택합니다.

3. 메인메뉴에서 Edit [image] Add To Panel를 선택합니다.

메인화면의 패널뷰에 UserObject 패널이 디스플레이 되는 것을 확인할 수 있습니다.

위와 같은 단계를 이용하면, 상위의 UserObject 패널에 UserObject 패널도 끼워 넣을 수도 있습니다. 단, 상위 UserObject화면의 Edit 메뉴를 사용해야 합니다.

메인패널에 UserObject를 추가 하였으면, 사이즈, 위치등을 변경합니다. 관련되는 내용은 패널 모양 변경하기을 참조하십시오.

주의사항

다른 패널에 패널을 끼워 넣는다는 것은 원본의 복사본을 만드는 것이고, 이 복사본을 원본에 연결하는 것입니다. 반면에 복사본은 수정이 불가능합니다; 패널을 수정하기 위해서는 원본의 UserObject 패널에서 수정을 해야 합니다. 끼워 넣어진 패널에서 오브젝트를 삭제하거나 추가하는 경우 또는 원본의 UserObject 패널을 수정하는 경우에 복사본은 변경됩니다.


네스팅된 UserObject 패널에 오브젝트 추가하기

메인 패널(혹은 상위의 UserObject 패널)에 추가된 UserObject 패널에도 오브젝트를 추가할 수 있습니다. 반드시 해당되는 UserObject 패널에 오브젝트를 추가해야 하고 오브젝트와 패널의 사이즈와 위치를 조정해야 합니다.

1. 메인화면의 타이틀바 왼쪽에 있는 디테일뷰 버튼을 눌러 메인 화면을 디테일뷰로 전환 합니다.

2. UserObject 편집화면으로 들어 가십시오.

만약 UserObject가 아이콘뷰 상태에 있다면 아이콘을 더블 클릭 합니다.

만약 UserObject가 Restore된 뷰 상태라면, 오브젝트 메뉴의 Edit UserObject를 선택합니다.

3. 타이틀바의 왼쪽에 있는 디테일뷰 버튼을 눌러 UserObject의 편집화면을 디테일뷰로 전환합니다.

4. UserObject의 디테일뷰 화면에 필요한 오브젝트를 추가합니다.

5. 패널에 추가하고자 하는 오브젝트를 선택합니다. UserObject의 편집메뉴(마우스 커서를 편집화면의 빈 공간에 놓고 마우스 오른쪽 버튼 클릭)에서 Add to Panel을 선택합니다.

6. UserObject 패널뷰에 있는 오브젝트를 보기 좋게 다시 배치합니다. 패널의 사이즈를 재조정합니다.

7. 메인화면에서 UserObject 패널이 보이도록 패널뷰 버튼을 클릭합니다. 모든 오브젝트가 보이도록 패널의 사이즈를 재조정 합니다.


네스팅된 UserObject 패널에서 오브젝트 삭제하기

1. 메인 윈도우의 타이틀바 왼쪽에 있는 디테일뷰 버튼을 클릭하여 메인 윈도우의 디테일뷰로 되돌아 갑니다.

2. UserOBject의 편집화면으로 전환합니다.

UserObject가 아이콘뷰 상태에 있다면, 아이콘을 더블클릭하십시오.

UserObject가 restored뷰 상태에 있다면, 오브젝트 메뉴에서 Edit UserObject 선택하십시오.

3. UserObject의 편집화면을 UserObject의 타이틀바에 있는 왼쪽의 패널뷰 버튼을 클릭하여 패널뷰로 전환합니다.

4. 네스팅된 UserObject 패널에서, 오브젝트 메뉴가 제공하는 Delete를 선택하여 오브젝트를 삭제합니다.

UserObject의 디테일뷰에는 오브젝트가 존재하고 있습니다. 만약 프로그램에서 오브젝트를 삭제하고자 한다면, 디테일뷰에서 오브젝트를 삭제합니다. 이는 패널뷰에서도 오브젝트를 삭제하게 됩니다.

5. UserObject 패널뷰에 있는 오브젝트들을 보기 좋게 재정리하십시오. 필요시 패널의 크기를 재조정 합니다.

6. 메인 윈도우에서, 편집된 UserObject 패널뷰를 보기 위해서 패널뷰 버튼을 클릭합니다. 필요시 패널의 크기를 재조정 합니다.


메인 패널에서 UserObject 패널 삭제하기

1. 메인 윈도우에서, 타이틀바 왼쪽에 있는 패널뷰 버튼을 눌러 패널뷰로 전환합니다.

2. 오브젝트 메뉴에서 Delete를 선택하거나 오브젝트 메뉴 버튼을 더블클릭하여 UserObject 패널을 삭제합니다.

UserObject 패널은 아직 존재하지만, 메인 윈도우의 패널뷰에서는 더 이상 존재하지 않습니다.


UserFunction 패널 소개

UserFunction 패널은 UserObject 패널과 동일한 방법으로 생성되고 실행됩니다. UserFunction 패널은 UserFunction이 실행될 때(팝업패널) 나타나거나, showPanel()를 통하여 프로그램상으로 디스플레이 합니다. UserFunction 패널은 메인패널(또는 상위의 UserFunction 또는 UserObject 패널)에는 추가할 수 없습니다.


UserFunction 패널 생성하기

UserFunction이 있는 상태에서 이 UserFunction에 대한 패널을 생성하고자 하는 경우에는, 다음 단계를 따르십시오.

1. UserFunction의 편집화면에서 CTRL키를 누른 상태에서 마우스 왼쪽 버튼을 클릭하여 오브젝트를 선택합니다.

Note

UserFunction 패널에 있는 오브젝트는 UserFunction의 디테일뷰에 있어야 합니다. UserFunction 밖에서 오브젝트를 선택할 수는 없습니다. UserFunction 내에서 네스팅된 UserObject 패널은 UserFunction 패널에 추가할 수 있습니다. 이렇게 하기 위해서는 To Add a UserObject Panel to the Main Panel을 참조하십시오.

2. UserFunction의 Edit 메뉴에서 Add To Panel를 선택합니다.

UserFunction 패널이 생성됩니다. UserFunction의 타이틀 바의 좌측 상단에 있는 버튼을 클릭하여 패널뷰와 디테일뷰를 전환할 수 있습니다.

3. 편집이 끝나면 UserFunction의 편집화면을 닫습니다.

패널에 오브젝트를 추가할 필요가 있을 때는, UserFunction의 디테일뷰 상태에서 위에서 설명한 단계를 따라 하면 됩니다.

주의사항

UserObject 패널이 생성되어 있고 이 UserObject를 UserFunction으로 만든 경우에는, UserFunction 패널은 자동으로 존재하게 됩니다. UserObject 패널이 메인 패널뷰에 추가된 경우에는, UserFunction 패널은 메인 패널뷰에 존재할 수 없기 때문에 메인 패널에 있는 UserObject 패널은 제거 됩니다.


UserFunction 팝업패널 생성하기

1. 메뉴바에서 Edit [image] Edit UserFunction를 선택하십시오.

2. UserFunction 이름을 선택하십시오.

3. UserFunction의 오브젝트 메뉴에서 Properties를 선택하십시오.

4. Pop-Up Panel영역에서 ShowPanelOnExecute항목을 True로 변경하십시오.

UserFunction 팝업패널은 팝업 패널 생성하기에서 설명한 UserObject 팝업패널과 같은 방법으로 동작합니다..

주의사항: Status 패널 생성하기

Status패널은 showPanel()에 의해서 팝업됩니다. 자세한 내용은 상태 패널 생성을 참조하십시오.


UserFunction 팝업패널의 크기 변경하기

1. 메뉴바에서 Edit [image] Edit UserFunction를 선택하십시오.

2. UserFunction 이름을 선택하십시오.

3. 화면을 UserFunction의 패널뷰로 전환하십시오.

4. 패널의 크기를 원하는 크기로 변경하십시오.

오브젝트 메뉴에서 Size를 선택하든지, 마우스 커서를 오브젝트의 테두리에 놓고 드래그하여 크기를 변경할 수 있습니다.

UserFunction 패널을 재조정할 때, 제목이나 경계가 포함되도록 전체 UserFunction 영역을 재조정합니다.


UserFunction 팝업패널의 위치 변경하기

팝업 패널의 위치 변경하기에서 설명한 UserObject 패널의 위치 변경하기를 따라 하십시오.


키보드로 네비게이션하는 패널 소개

키보드만을 이용하여 패널뷰의 오브젝트를 실행해야 하거나, 마우스를 사용할 수 없는 환경에서 컴퓨터를 사용해야 하는 경우도 있습니다. 이러한 경우에는 키보드만을 사용하여 패널뷰의 오브젝트를 선택하여 실행하도록 패널을 생성합니다.

일반적으로, 프로그램을 실행하기 위해 키보드를 사용할 때, 먼저 오브젝트가 포커싱되어야 오브젝트의 값이나 상태를 변경할 수 있습니다.

정의

포커싱(Focus)은 명령을 수행할 수 있는 위치를 가리키는 용어입니다. VEE에서는, 포커싱된 오브젝트나 필드는 점으로 이루어진 사각형으로 둘러 싸이거나, 입력 필드에 대해서는 수직 교정기호가 나타나고 오브젝트가 탭 키로 선택된 경우에는 기존에 있는 텍스트가 역상(텍스트가 선택됨)으로 나타납니다; 오브젝트가 클릭된 경우에는, 오브젝트가 포커싱은 되나 기존의 텍스트는 변경되지 않습니다.

키보드를 이용한 네비게이션시 주의해야 할 사항은 다음과 같습니다:

사용자의 입장에서는 패널뷰의 오브젝트가 실행되었는지 확인하기 어렵습니다.(OK 버튼의 경우에는 OK 버튼이 실행되었으면 회색의 디스에이블된 상태로 전환되므로 실행여부를 확인할 수 있습니다.) 오브젝트가 실행되었는지 사용자에게 알리도록 하거나, 변경이 완료되었을 때 표시되도록 프로그램을 작성하십시오.(예를 들어, OK 버튼을 누르는 것)

마우스 없이는, 사용자는 오브젝트의 오브젝트 메뉴(디스플레이 오브젝트에서 Zoom이나 Auto Scale 같은 메뉴 선택항목을 제공하여 유용합니다.)를 사용할 수 없습니다. 사용자가 이러한 항목을 사용할 수 있도록 하려면, 이들 항목에 대한 컨트롤 입력핀을 추가할 수 있습니다.

패널뷰에서 탭의 순서를 지정할 수 있습니다. 방법은 패널뷰 네비게이션 기술에서 설명하였습니다.

오브젝트마다 키보드를 통한 사용방법이 다릅니다. 키보드를 이용하여 오브젝트를 제어할 때 각 키의 역할을 사용자에게 설명해야 합니다.; 자세한 내용은 패널뷰에서 선택하는 방법를 참조하십시오.


오브젝트나 패널에 포커싱 하기

포커싱(focus)에 대한 정보

패널에 있는 오브젝트들의 탭 순서를 설정할 수 있습니다. 각 오브젝트에서 TabIndex 와TabStop 속성을 설정합니다.

오브젝트에 있는 데이터는 오브젝트가 포커싱될 때만 수정할 수 있습니다.

패널이 팝업될 때, 패널이 닫힐 때까지는 팝업 패널에 있는 오브젝트만 포커싱할 수 있습니다.

데이터 필드, 버튼 또는 선택영역을 가진 오브젝트만이 포커싱될 수 있습니다. 각각의 데이터 필드, 버튼 또는 선택영역은 내부에서 탭을 사용할 수 있습니다.

예를 들어, 패널에 Slider가 배치되어 있다면(다음 그림과 같이); 첫번째 탭은 MinValue 필드로 포커싱됩니다.

패널에 배치된 Slider

이들 필드를 통해서 탭키를 이용하여 값을 변경하는 것을 방지하기 위해서는, MinValue 및 MaxValue와 같은 필드를 위해 입력터미날을 추가하십시오.

Selection Control, Toggle Control 또는 Slider 오브젝트는 Wait for Input 속성이 설정되어 있더라도 프로그램이 실행되는 즉시 실행됩니다. 이 속성은 오브젝트가 포커싱되고, 값이 변경되거나 선택된 후에 실행될 수 있도록 합니다.

Esc 키나 Enter키가 OK 버튼으로 할당되어 있는 상태에서 할당된 키를 누르게 되면, OK 버튼은 포커싱되고 포커싱을 유지합니다.

function 키가 OK 버튼으로 할당된 상태에서 OK 버튼을 누를 경우에는, function 키를 누르기 전에 포커싱 되었던 오브젝트가 포커싱을 계속 유지합니다.

주의사항

다른 오브젝트를 포함하는 키보드 입력방식의 패널에서는 VEE에서 기본 제공되는 대화상자 오브젝트를 사용하지 마십시오. 대화상자 오브젝트가 실행을 멈춘 후에는, 다른 오브젝트를 포커싱할 수 없게 되어 키보드를 이용하여 다른 오브젝트를 네비게이션할 수 없게 됩니다. 대화상자 오브젝트에 대한 자세한 내용은 기본 제공되는 Dialog Box 오브젝트에 대하여를 참조하십시오.


엔터키나 ESC키에 OK버튼 할당하기

패널을 생성할 때, Confirm(OK) 버튼을 키보드의 엔터키나 ESC키에 할당하여 사용할 수 있습니다. 작성한 프로그램을 누가 사용하더라도, 지정한 키보드 키를 누르면 Confirm(OK) 버튼을 누르는 것과 동일하게 실행됩니다. 그렇지 않은 경우, 사용자는 탭키를 이용하여 이동하고 스페이스바를 눌러야 합니다. 이 방법은 팝업 패널로부터 만들어지는 사용자 정의 대화상자에서만 사용할 수 있습니다. 사용자 정의 대화상자에 대한 자세한 정보는 사용자 지정 대화상자 만들기를 참조하십시오.

이들 키보드 키를 Confirm(OK)로 할당하는 방법은 다음과 같습니다:

1. 메뉴바에서 Flow [image] Confirm (OK)를 선택하여 OK 버튼을 생성하십시오..

2. 패널에 Confirm (OK)버튼을 추가하십시오.

3. OK 버튼의 오브젝트 메뉴에서 Properties를 선택하십시오.

4. 속성창에서 Assign to Enter Button 항목을 True로 그리고/혹은 Assign to Escape Button 항목을 True로 변경하십시오.

주의사항
엔터키는 컨텍스트 마다 하나의 OK 버튼에만 할당할 수 있고, Escape 키도 컨텍스트 마다 하나의 OK 버튼에만 할당할 수 있습니다. 만약 이들 키를 컨텍스트 마다 하나 이상의 OK버튼을 할당하면, 이전에 할당한 내용은 자동으로 할당이 해제됩니다.

5. 변경된 내용은 즉시 반영됩니다.

프로그램을 실행할 때, Enter 키로 할당된 OK 버튼은 이름이 굵은 글자로 나타납니다. 이것은 이 버튼이 디폴트 버튼이라는 것을 나타냅니다.

주의사항
프로그램(혹은 UserObject/UserFunction)의 패널뷰에서, 엔터키와 ESC 키는 각각 단 하나의 Confirm(OK) 버튼을 할당할 수 있습니다. 다른 키에 Confirm(OK) 버튼을 할당하기 위해서는 기능키에 버튼 할당하기를 참조하십시오.


기능키에 버튼 할당하기

패널을 생성할 때, Confirm(OK) 버튼을 키보드의 기능키(키보드 상단에 있는 F1, F2, F3등)에 할당하여 사용할 수 있습니다. 작성한 프로그램을 누가 사용하더라도, 지정한 키보드 키를 누르면 Confirm(OK) 버튼을 누르는 것과 동일하게 실행됩니다. 그렇지 않은 경우, 사용자는 탭키를 사용하여 이동하고 Space바를 눌러야 합니다. 키보드 기능키를 Confirm(OK)로 할당하는 방법은 다음과 같습니다:

1. 메뉴바에서 Flow [image] Confirm (OK)를 선택하여 OK 버튼을 생성합니다.

2. 패널에 Confirm (OK) 버튼을 추가합니다.

3. OK 버튼의 오브젝트 메뉴에서 Properties를 선택합니다.

4. 속성창에서 Assign to Function Key 항목의 드롭다운 메뉴를 선택합니다.

5. OK 버튼을 할당하고자 하는 기능키(Function Key 1 ~ Function Key12)를 선택합니다. 일부 키보드는 단지 8개의 기능키를 가지고 있습니다. 그러한 경우에도 VEE는 플랫폼의 제한에 상관없이 사용할 수 있습니다. 더 많은 정보는 일반적인 팁을 참조하십시오. 윈도우에서 F10 키는 ‘Alt’와 같은 기능을 하도록 할당되어 있습니다.

주의사항
지정한 기능키를 여러 개의 OK 버튼에 할당할 수도 있습니다. 그래서 기능키를 누르면, 활성화 되어 있는 모든 관련 버튼들이 동작합니다.

OK 버튼의 표시 이름은 기능키 할당을 반영하여 자동으로 변경됩니다. 따라서 기능키 정보를 제외하고 이름을 변경할 수 있습니다.

주의사항
OK 버튼을 누르기 위한 기능키는 패널뷰 뿐만이 아니라 디테일뷰에서도 사용할 수 있습니다. 만약 메인화면의 속성창에서 ShowPanelonExecute 항목을 True로 설정하면, 윈도우가 실행될 때도 기능키가 동작합니다.


패널뷰에서 네비게이션하는 방법

패널뷰에서 오브젝트간의 이동시, 앞으로 이동하기 위해서는 Tab키를 사용하고 뒤로 이동하기 위해서는 Shift+Tab키를 사용합니다.

이전 버전의 경우

VEE 8.0 버전부터는, 패널에 있는 오브젝트의 탭 순서를 디자인-타임에 영향을 주지 않고 프로그램상으로(실행중에) 설정할 수 있습니다. 프로그램상으로 탭 순서를 설정하는데 있어 자세한 정보는 프로그램상에서 속성 변경하기를 참조하십시오.

VEE 7.0 버전부터는, 패널에 있는 오브젝트의 탭 순서를 설정할 수 있습니다. 속성창을 통해서, 패널에 있는 각 오브젝트에 대한 TabIndex 및 TabStop을 설정할 수 있습니다. 이 기능은 신규 VEE 버전과 7.0 버전으로 임포팅된 7.0 이전 버전의 프로그램에서도 사용할 수 있습니다.

주의: VEE 7.0 및 이후 버전으로 로딩된 7.0 이전 버전의 프로그램은 패널에 있는 각 오브젝트의 TabIndex 속성을 “Tab Order in Programs created in VEE 6.2 and earlier” 아래에 있는 알고리즘에 따라 설정합니다. 그래서 이전 프로그램이 이전 버전의 VEE에 있는 것처럼 7.0에서 실행됩니다.

7.0으로 로딩된 프로그램은 패널에 있는 오브젝트의 TabIndex 값을 설정할 수 있습니다. TabIndex 속성이 0으로 설정된 오브젝트는 패널이 팝업될 때 첫번째 탭 오브젝트입니다. 주의: 동일한 패널에 있는 복수의 오브젝트는 동일한 TabIndex 값을 가질 수 있습니다. (이들 오브젝트의 탭순서는 z 축 순서로 결정됩니다). 이 방법은 사용할 수는 있지만 권장하지는 않습니다.

TabStop은 탭 순서에서 오브젝트를 제거하기 위해 사용합니다. AlphaNumeric 디스플레이같은 사용자의 입력을 허용하지 않는 일부 오브젝트는 TabStop을 false로 설정합니다. 패널에 나타나지만 사용자가 탭 키를 이용할 수 없게 하고자 하는 경우에는 이 속성을 false로 설정할 수 있습니다.

VEE 7.0 이상에서 프로그램을 편집할 때, 패널에 추가된 새로운 오브젝트는 디폴트로 TabStop 속성이 패널에 있는 가장 높은 TabStop 값보다 1단계 높게 설정됩니다. 예를 들어, 패널에 TabStops이 0, 1, 2로 설정된 3개의 오브젝트가 있는 경우에, 다른 오브젝트를 추가하면, 새로운 오브젝트는 디폴트로 TabStop 속성을 3으로 설정합니다.

패널이 실행될 때, TabIndex가 0(또는 가장 낮은 값)인 오브젝트가 최초에 포커싱됩니다. 0부터 최대의 TabIndex 값 순서로 처리하게 되어, 다음의 TabIndex 값을 가진 오브젝트로 탭이 이동합니다.

이전의 버전(6.2 및 그 이전 버전)에 대해서는, 오브젝트 및 패널의 순서는 다음과 같습니다:

Run을 누르고 나면, VEE는 패널을 오브젝트 그룹으로 나눕니다. 첫번째 그룹은 최상위 오브젝트(가장 낮은 y 좌표 값)에 의해 결정되고 최상위 오브젝트에 가까운 y 좌표를 가진 모든 오브젝트를 제공합니다. 포커싱되기 위한 첫번째 오브젝트는 그룹에서 맨 왼쪽의 오브젝트입니다. 탭은 포커싱 오브젝트에서 오른쪽으로 이동합니다.

주의사항
맨 왼쪽의 오브젝트가 Auto Execute로 설정된 경우에는, 이 오브젝트는 첫째로 포커싱되지는 않으나 탭으로 오브젝트를 선택할 수는 있습니다.

오브젝트나 패널의 y 위치는 좌측 상단의 위치에 의해 결정됩니다.

포커싱이 첫번째 그룹에서 오른쪽으로 이동하고 나면, 다음 그룹에 있는 맨 왼쪽의 오브젝트로 이동합니다.

다음 그룹은 이전 그룹에 속하지 않은 최상위 오브젝트에 의해 결정됩니다. 탭은 다음 그룹에 있는 맨 왼쪽의 오브젝트부터 시작하고 오른쪽으로 이동합니다. 이 순서는 패널에서 반복됩니다.

다음 그림은 대표적인 오브젝트의 그룹화를 보여줍니다.

VEE 6.2 이전에서 생성된 프로그램의 탭 순서 예제

다음 그림은 더욱 복잡한 오브젝트 그룹을 보여줍니다. 첫번째 그룹에 포함되어야 하는 Third Text가 나타납니다. 그러나 첫번째 그룹은 Second Text 오브젝트에 의해 결정되므로, Third Text 오브젝트는 첫번째 그룹으로 포함하기에는 멀리 떨어져 있습니다.

세번째 그룹은 Fifth Text 오브젝트에 의해 결정됩니다. Fourth 및 Sixth 오브젝트는 그룹에 충분히 가까이 있습니다.

복잡한 탭 순서 예제

주의
OK 버튼은 활성화될 때만 탭 됩니다.(텍스트가 회색이 아닐 때)

오브젝트가 복수의 필드를 가진 경우에, 탭은 다음 오브젝트로 이동하기 전에 모든 필드를 탭으로 가집니다.

다른 패널에 네스팅된 UserObject 패널에서는, 탭은 UserObject 패널 밖에 있는 다음 오브젝트로 이동하기 전에 UserObject에 있는 모든 오브젝트를 탭으로 가집니다.

팝업 패널(UserObject 또는 UserFunction)에서는, 실행을 마치기 전까지는 팝업 패널내에서 만 탭 할 수 있습니다.

오브젝트의 실행에 상관없이 오브젝트로 탭 할 수 있습니다. (OK 오브젝트 제외)


패널뷰에서 선택하는 방법

마우스를 사용할 때, 항목을 선택하거나 값을 변경하기 위하여 마우스를 클릭합니다. 키보드를 사용할 때는, 탭키를 사용하여 오브젝트를 포커싱하고 다음의 방법을 사용하여 항목을 선택하고 값을 변경합니다:

Radio Buttons 및 List:

항목을 선택하기 위해서는 [image] 또는 [image] 를 누릅니다.

현재의 항목을 선택하기 위해서는 스페이스 바를 누릅니다.

Cyclic Button:

선택 항목을 변경하기 위해서는 스페이스 바를 누릅니다.

Drop-Down List:

리스트를 나타내기 위해서는 [image] 를 누릅니다.

항목을 선택하기 위해서는 [image] 또는 [image] 를 누릅니다.

선택한 항목을 입력하기 위해서는 스페이스 바나 엔터키를 누릅니다.

선택을 취소하기 위해서는 Esc키를 누릅니다.

Pop-Up List:

리스트를 나타내기 위해서는 스페이스 바를 누릅니다.

항목을 선택하기 위해서는 [image] 또는 [image] 를 누릅니다.

선택한 항목을 입력하기 위해서는 스페이스 바나 엔터키를 누릅니다.

선택을 취소하기 위해서는 Esc키를 누릅니다.

모든 토글 컨트롤 오브젝트:

값을 변경하기 위해서는 스페이스 바를 누릅니다.

모든 편집 필드 (예, Constant 오브젝트):

새로운 값을 입력합니다.

다음 필드로 이동하기 위해서는 탭키나 엔터키를 누릅니다.

변경된 내용을 취소하기 위해서는 Esc키를 누릅니다.

Start 및 OK 버튼:

버튼을 선택하기 위해서는 스페이스 바를 누릅니다.

복수의 필드를 가진 오브젝트 (예, Function Generator):

필드의 타입에 따라 위에서 설명한 방법중의 하나를 사용하여 항목을 선택하거나 값을변경하고 다음 필드로 이동합니다.

주의사항

Esc키나 엔터키를 OK 오브젝트에 할당하고 편집 필드에서 Esc나 엔터키를 누른 경우에는, 편집 필드에 데이터가 입력된 후에 OK 버튼이 눌러집니다.

Data   [image] 아래에 있는 오브젝트가 Wait For Input이 설정된 경우에는, 위에서 설명한 방법으로 항목이 선택되거나 값이 변경되었을 때 오브젝트가 실행됩니다. Data [image] 아래에 있는 오브젝트가 Auto Execute이 설정된 경우에는 위에서 설명한 방법으로 항목이 선택되거나 값이 변경되었을 때 쓰레드의 실행이 시작됩니다. Wait for Input에 대한 예제를 보기 위해서는, 스스로 변경되는 패널 생성하기를 참조하시기 바랍니다..

주의사항

오브젝트에서 Wait For Input 또는 Auto Execute를 설정한 경우에 오브젝트가 동작하기 위해서는 Data [image] Constant 또는 Data [image] Slider 오브젝트에 있는 데이터가 변경되어야 합니다. 동일한 문자로 대체하는 것은 변경된 것으로 인식합니다.


중요 사항

본 장에서는 우수한 사용자 인터페이스를 개발하기 위한 인터페이스 디자인 정보와 가이드라인을 제공합니다. 이 정보는 사용자로부터의 Human Factors 도움이나 코멘트를 대신하지는 않습니다.

Human Factors 엔지니어 또는 그래픽 디자이너 같은 사용자 인터페이스 전문가로부터 조언을 받으십시오. 여기에 있는 정보는 단지 개괄적인 가이드라인을 제공합니다. 사용자 인터페이스 디자이너와 협의하여, 패널뷰를 보여주고 코멘트를 받으십시오.

사용자로부터 피드백을 받으십시오. 생성한 패널을 사용자에게 보여주고, 사용자가 필요한 정보를 찾을 수 있는지를 물어 봅니다. 사용자가 해야 할 일을 인지할 수 있도록 합니다. 색상이나 폰트가 유용한지 그리고 오랫동안 사용하기에 편리한지를 검증하십시오.

일반적인 사용자 인터페이스 디자인 가이드라인

사용자와 사용자의 환경을 고려하십시오.

사용자에게 프로그램의 기본적인 특징을 컨트롤할 수 있도록 하십시오. 사용자가 시스템을 사용하기 위해 배워야 하는 규칙을 최소화 하십시오.

사용자 인터페이스, 데이터 표현 및 배치를 일관성 있게 하십시오. 디스플레이 하고자 하는 정보를 그룹화하고 순서대로 정리 하십시오.

처음 사용자나 가끔 사용하는 사람들을 위해서는 디폴트 값, 도움말 또는 템플릿을 사용하고, 고급 사용자나 빈번히 사용하는 사람에게는 엑셀러레이터나 단축키를 제공하여, 각기 다른 레벨의 사용자들에게 편의를 제공하도록 하십시오.

사용자의 신뢰를 얻도록 하십시오. 사용자들이 실패 없이 빠르게 업무를 처리하도록 도와주십시오. ‘user error’ 같은 직접적인 단어의 사용을 자제하십시오.

사용자에게 피드백을 제공 하십시오. 사용자들이 데이터 입력을 확인하고 그 결과를 직접 볼 수 있도록 하십시오.

사용자의 입장에서 생각 하십시오. 사용자에게 프로그램의 현재 상태를 이해할 수 있는 충분한 정보와 각 상황에 대해 대응할 수 있는 방법을 제공 하십시오.

에러 복구가 가능하도록 설계 하십시오. 사용자가 실수를 범한 경우에, 이것을 복구할 수 있는 방법이 필요합니다.

프로그램 실제 사용자와 디자인을 검증하십시오.


Using Colors

색깔 사용법

패널에서 색깔을 사용할 때, 색깔의 한계와 특별한 사용에 대해서 고려할 필요가 있습니다.

색깔에 관한 사실

나이가 많은 사람들은 종종 색깔에 덜 민감하므로 밝은 색을 사용해야 하기도 합니다. 푸른색의 그림자를 식별할 능력도 감소할 것입니다. 그러나, 젊은 사용자들은 밝은 색을 오히려 피곤하게 느끼는 경우도 있습니다.

남성의 8 퍼센트와 여성의 0.5 퍼센트가 색깔에 대한 일종의 결함을 가지고 있습니다. 가장 일반적인 결함은 빨간색과 초록색을 구별하지 못하는 적녹색맹입니다.

색깔을 인지하는데 개인마다 차이가 있습니다. 모니터에 따라서, 주변 빛에 따라서, 문화적인 직업적인 의미, 색깔에 대한 개인적인 선호도가 색깔을 보고, 구별하고, 인지하는데 영향을 미칩니다.

문화에 따라서 동일한 색깔이 다른 의미를 가지기도 합니다.; 여러 문화에서 중립적으로 인식되는 색깔을 사용하는 것이 좋습니다.

주의: 과도한 역할

위에서 언급한 이유로 인해서, 색깔을 부가적인 형태의 통신수단으로만 사용하십시오. 예를 들어, Stop 버튼과 Go 버튼을 구별하기 위해서, 빨간색을 초록색으로 변경하지 마십시오.; 또한 변화에 대한 설명문장을 사용하는 것을 잊지 마십시오. 색깔이 과도하게 사용되는 것을 방지하기 위해서는 먼저 색깔없이 패널을 생성하고, 나중에 필요시 색깔을 추가하는 것이 좋습니다.

가능한 적은 종류의 색깔을 사용하십시오. 하나의 화면에 4 또는 5 개의 서로 다른 색깔을 사용하거나 전체 사용자 인터페이스에 7 종류의 색깔을 사용하면 오히려 주의를 끌기 어렵고 혼란스러워집니다.

색깔은 프로그램의 이미지에 영향을 미칩니다. 밝은 색은 프로그램을 장난감 수준으로 인식하게 할 수 있습니다. 절제되고 미묘한 색깔은 정밀하고 전문화된 인상을 제공합니다.

배경색과 텍스트(전경색)을 혼합하여 사용할 때는, 서로 명암이 많은 색을 사용하십시오. 그러나 원형색깔표의 반대쪽에 있는 색깔의 사용은 피하십시오.(예, 노란색과 파랑색) 명암은 좋지만 경계선이 명확하지 않게 됩니다. 아래 그림이 원형색깔표 입니다.

원형 색깔표

일반적으로 받아들여지는 색깔을 사용하십시오. 긍정에 대해서는 초록색, 중지 또는 긴급상황에 대해서는 빨간색. 색깔의 선택은 문화적 또는 직업적인 기준에 따라서 달라지게 됩니다.

고객이 프린트를 해야 하는지 고려하십시오. 사용자가 칼라프린트에 칼라화면을 프린트해야 한다면, 프린트되는 색깔은 프린터의 한계로 인해서 스크린의 색깔과 일치하지 않게 됩니다. 스크린의 내용을 흑백 프린터로 프린트하는 경우에는, 색깔이 흑백으로 적절하게 변환되도록 해야 합니다. Default Preferences 속성 대화상자에서, Printing 탭의 Screen Element 항목의 설정내용은 디폴트 색깔에서 변경된 색깔에는 적용되지 않습니다. 디폴트에서 변경된 색깔은 프린트시 흑백으로 프린트됩니다.

색깔을 사용하는 이유

미적인 감각을 향상시키기 위해서. 편안한 느낌의 색깔은 장시간 동안 운영하고 보는데 편합니다.

시각적으로 오브젝트를 그룹화하기 위해서.

네비게이션 및 인식하는 것을 돕기 위해서.

가독성을 향상하기 위해서.

유사한 것과 다른 것을 표시하기 위해서. 색깔이 다른 그룹은 다른 정보를 가졌다는 것을 나타냅니다.

오브젝트나 이벤트에 주의를 끌기 위해서. 다른 색깔을 사용하면 정보를 찾기 쉽습니다.

정보 인코딩을 강조하기 위해서. 색깔정보는 이해에 도움을 줍니다. 특히 주의해야 할 경우에는 노란색, 위험이나 실패에는 빨간색, 물이나 추위에는 파란색등을 사용하는 것이 이해하기 쉽습니다.

기본적으로 전반적인 기조를 유지하십시오. 유사한 기능에는 동일한 색깔을 사용하고 필요시에만 대비되는 색깔을 사용하십시오.


색상 선택 방법

여기에서는 패널에 대한 가용성이나 가독성을 향상 시키기 위하여 색상을 선택하는 가이드라인을 제시합니다.

일반적으로 배경색으로 중간색을 사용합니다. 흰색이나 회색이 가장 적당합니다. 반면에 옅은 색상의 배경색은 화면의 깜박거림(깜박거림의 정도는 모니터에 따라 다릅니다.)이 증가합니다. 배경(오브젝트 및 패널)에 푸른색 그림자를 적용하는 것도 아주 좋습니다.

배경색을 너무 옅게 하면, 3-D 오브젝트의 테두리 하이라이트가 보이지 않을 수도 있습니다. 배경색을 너무 진하게 하면, 오브젝트의 테두리 그림자가 보이지 않을 수도 있습니다.

텍스트를 디스플레이할 때는, 배경색과 대비되는 색상을 선택합니다. 예를 들어, 배경색이 흰색인 경우에, 다음의 색상들은 가장 좋은 경우와 가장 나쁜 경우의 예입니다:

Black - 좋음

Blue - 좋음

Red - 좋음

Yellow - 나쁨(낮은 대비)

Cyan - 나쁨(낮은 대비)

배경색이 검정색인 경우에, 다음의 색상들은 가장 좋은 경우와 가장 나쁜 경우의 예입니다:

Yellow - 좋음

White - 좋음

Green - 좋음

Blue - 나쁨

Red - 나쁨(배경색으로 번질 수 있음)

Magenta - 나쁨(배경색으로 번질 수 있음)

VEE 디스플레이 오브젝트(X vs Y와 같은)에서, 그래프의 디폴트 배경색은 검정색입니다. 그래프의 그리드 라인의 색상을 더 좋은 색으로 선택할 수도 있고, 그래프의 트레이스를 확연히 구분 되도록 트레이스 라인이나 포인트 타입을 변경할 수도 있습니다.

다음의 그림은 색상을 사용하는 방법을 제시합니다:

다른 텍스트 색 보기

이 프로그램은 manual 예제 디렉토리에 colors.vee 파일로 저장되어 있습니다. 이 예제 프로그램을 열어서 모니터에 나타나는 색상을 관찰하십시오.

배경색에 상관없이, 디스플레이 되는 텍스트의 색상은 동일한 수준의 밝기와 좋은 대비색을 가져야 합니다. 오브젝트의 배경색과 텍스트에 대한 가이드라인은 패널의 배경과 패널에 배치된 오브젝트에도 적용됩니다.

일반적으로, 푸른색 그림자는 배경처럼 아주 좋은 작용을 합니다. 텍스트 색으로 푸른색을 사용하기 위해서는 녹색을 띤 푸른색(청록색)을 사용하십시오.


Using Fonts

폰트의 사용

폰트에 대한 사실

사용자들은 종이 보다는 컴퓨터 화면에서 텍스트를 읽기 위해서는 25% 이상의 시간을 투자합니다. 내용에 대한 이해도는 거의 동일합니다. 따라서 패널에 많은 양의 텍스트를 사용하는 것은 사용자들의 속도를 느리게 합니다.

비례폰트(proportional font)와 비례하지 않는 폰트(non-proportional font)가 있습니다. 비례폰트는 문자마다 다른 넓이를 사용합니다; 예를 들어, 글자 w를 인쇄하기 위해 사용한 스페이스는 글자 i를 인쇄하기 위해 사용한 스페이스 보다 넓습니다. 비례폰트는 일반적으로 읽기가 쉽고 보기에도 좋습니다. 일반적으로 다음과 같은 폰트들이 비례폰트를 사용합니다.: Lucida*, Arial*, 및 Time New Roman*.

비례하지 않는 폰트는 모든 문자에 동일한 넓이를 사용하여, 표에서 수직정렬이 필요할 때 사용합니다. 일반적으로 비례하지 않는 폰트(mono-spaced fonts라고도 부릅니다.)를 사용하는 Courier 와 Courier New입니다.

VEE에서 사용할 수 있는 폰트는 컴퓨터에 설치된 폰트에 달려 있습니다.

폰트의 사이즈는 문자의 높이를 지정하며, 넓이와는 상관없습니다. 폰트 타입을 변경한 경우에는, 폰트 사이즈는 동일하게 가져가기 때문에, 텍스트의 넓이를 맞추기 위해 오브젝트의 크기를 조정해야 할 수 도 있습니다.

일반적으로 읽기 편한 텍스트 폰트로 12-포인트를 사용합니다. 좀더 큰 폰트나 강조하기위해 굵은 폰트(bold)를 사용할 수도 있습니다. 종이에 인쇄된 폰트 사이즈가 절대 사이즈(인치 또는 센티미터 같은) 일지라도, 컴퓨터 화면에 있는 폰트는 모니터의 해상도에 따라 변하는 논리적인 폰트 사이즈를 기준으로 합니다. 그래서 어떤 사이즈의 폰트를 사용하더라도, 화면에서 폰트를 읽을 수 있도록 만들어야 합니다. 다음 그림은 다른 폰트 사이즈를 나타냅니다.

폰트 사이즈

연구에 의하면, 사용자에게 sans serif 폰트보다 serif 폰트가 훨씬 빨리 읽을 수 있도록 합니다. 이것이 사용자에게 어떤 영향을 미치는지를 고려할 필요가 있습니다. 다음 그림은 serif 폰트와 sans serif 폰트를 나타냅니다.

Serif 및 Sans Serif 폰트

텍스트를 오른쪽 여백을 맞추지 않는 좌정렬한 경우에 훨씬 빠르게 텍스트를 읽을 수 있습니다.

사용자의 이해를 돕기 위하여 일관성 있게 폰트를 사용하십시오. 일반적으로 큰 텍스트가 가장 중요합니다.

화면에서 좀더 쉽게 텍스트를 정렬하고 맞추기 위해 폰트 타입과 폰트 사이즈를 일관성 있게 사용하십시오.

푸른색은 텍스트 색상으로는 부적합합니다 – 사람의 눈은 푸른색에 제일 민감하지 않습니다.

프로그램에 사용한 폰트를 사용자와 함께 읽기 쉬운지를 검증하십시오.

* Arial 및 Times New Roman 폰트는 Monotype Corporation 회사의 제품입니다.
Lucida 폰트는 Bigelow & Holmes, Inc 회사 제품입니다.


배치 관련 팁

패널의 내용이 변경되어도 기존의 배치는 그대로 유지합니다. 예를 들어, 화면의 바닥에 메시지박스, 측면에 디스플레이 영역, 상단에 상태 영역이 있다면; 이 배치 상태를 그대로 사용하십시오. 프로그램을 실행할 때 앨리먼트를 이동하지 마십시오.

그룹관련 내용.

사용 가능한 화면영역을 통한 균형 정보

패널을 더욱 쉽게 사용하기 위해 공간(오브젝트가 없는 빈 공간)을 남겨 놓습니다. 화면이 오브젝트 사이에 공간이 없을 정도로 가득 차면, 사용자가 필요한 정보를 찾기 어렵습니다.

각 패널의 동일한 위치에 네비게이션 컨트롤을 배치합니다.

관련 그룹끼리 오브젝트를 정렬하고 크기를 정리하여 동일한 사이즈를 가지도록 합니다. 오브젝트를 수평 혹은 수직으로 정렬하여, 오브젝트를 인지하고 살피는 것을 방해하는 가장자리로 배치하지 않습니다. 오브젝트 사이의 간격을 일정하게 합니다.

자주 사용하지 않는 기능은 대화상자를 사용합니다. 이것은 사용자가 이 정보를 이용하여 작업하도록 하고, 메인 패널에서 혼란스러움을 줄입니다.


오브젝트 강조하기

모니터 화면에서 특정 부분을 강조하기 위하여 시각적인 속성을 사용합니다.

오브젝트 크기를 사용하여 강조하십시오. 사람의 눈은 큰 오브젝트에 끌리게 되어 있습니다. 오브젝트가 크다는 것을 그만큼 중요하다는 의미입니다. 크기를 가지고 중요도를 구분한다면, 중요도에 따라서 서로 다른 크기의 오브젝트를 사용하십시오.

오브젝트를 눈에 띄게 하려면 외곽테두리를 사용하십시오. 움푹 들어간 곳은 진한 색을 사용하고, 솟아 오른 부분은 연한 색을 사용하십시오. 다른 테두리 스타일에 대해서는 오브젝트의 경계표시 변경하기 항목을 참조하십시오.

중요도의 순서를 나타내기 위해 다른 색을 사용하십시오. 패널에는 최고 4 혹은 5가지의 다른 색을 사용해야 하고, 전체 사용자 인터페이스를 위해서는 최고 7가지의 다른 색을 사용하십시오. 만약 더 많은 색을 사용하기로 했다면 각 색의 사용목적이나 의미를 설명하는 범례를 제공하십시오.

작은 글씨로 작성한 세부설명이나 작은 영역에는 검정색, 희색, 회색을 사용하는 것이 사용자가 읽기 쉽습니다.

밝은 색이 어두운 색보다 더 주의를 끌 수 있습니다 (예를 들어, 청회색, 황금색, 연한 빨간색 대신에 푸른색, 노란색, 빨간색을 사용합니다.). VEE에서는 최고 5단계의 밝음(휘도)을 구분하여 사용할 수 있습니다.

연한 색상과 따뜻한 색상(빨간색 같은)은 사용자에게 어필하는 색상입니다. 어두운 색상과 차가운 색상(푸른색 같은)은 눈에 잘 띄지 않습니다.

글자체의 크기를 사용하십시오. 상대적인 중요성을 표시하기 위해 서로 다른 크기의 글자체를 사용하십시오.

굵은 글자체(Bold) 또는 이태릭체(italics)와 같은 글자체의 스타일을 사용 하십시오. 이태릭체는 글자를 천천히 읽기 때문에, 빨리 읽어야 하는 텍스트에는 사용하지 마십시오.

깜박이는 것(blinking)이나 번쩍이는 것(flashing)은 주의를 끌기 위한 최고의 방법입니다. VEE에서는 팝업 패널, Picture 오브젝트에서 비트맵 변경, Color Alarm 오브젝트에서 색상이나 테스트의 변경, Dialog Box 오브젝트를 사용하는 등의 직접적인 주의 끌기 위한 다양한 방법을 제공합니다.

마지막으로 주의를 끌기 위해서 소리를 사용할 수 있습니다. PC의 하드웨어(스피커)가 지원된다면 Beep 오브젝트로 청각효과를 사용할 수 있습니다.

강조를 위한 각 속성들은 작성하는 프로그램상에서 일관성 있게 사용이 되어야 합니다.


기본 제공되는 Dialog Box 오브젝트 소개

별도의 대화상자를 생성하여 사용할 수도 있지만, VEE에서 제공되는 Dialog Box 오브젝트(Data 메뉴 아래에 위치함)가 프로그램의 요구사항을 충족시킨다면, 이것을 직접 사용하여 더 편리하고 간단히 프로그램을 작성할 수 있습니다.

Dialog Box 오브젝트와 Pop-Up 패널(사용자 정의 대화상자를 만드는데 사용됨)의 차이점은:

Dialog Box 오브젝트는 패널을 추가할 필요 없이 자동으로 팝업됩니다. 다음 그림들은 Message Box 오브젝트와 생성되는 패널을 보여줍니다.

Message Box 오브젝트

Dialog Box 오브젝트는 오브젝트당 하나의 동작(사용자의 입력을 요구하는 동작)을 수행합니다. 한번에 사용자 요구사항을 여러 개 처리해야 하거나, 데이터를 디스플레이하기 위해서는 사용자정의 대화상자를 생성해야 합니다.

Dialog Box 오브젝트는 팝업되는 동안에는 나머지 프로그램이 정지하는 모달(modal)입니다. 이것이 Pop-Up 패널과 다른 점입니다; Pop-Up 패널이 팝업되는 동안에는 나머지 프로그램은 실행을 계속합니다.

Dialog Box 오브젝트는 키보드로 제어하는 패널로는 사용할 수 없습니다. 실행을 완료한 후에는 키보드를 통해서 다른 오브젝트로 네비게이션할 수 없습니다.

Dialog Box 오브젝트에는 많은 기능이 제공됩니다. 조건을 체크하고 타임아웃을 설정하는 등의 프로그램을 작성할 필요가 없습니다. Dialog Box 오브젝트에서 기본 제공되는 기능의 종류는 다음 테이블과 같습니다:

Dialog Box 오브젝트의 특징

_________________________________________________________________________________________________

Dialog Box Object

Constraint Checking

Password Masking

Timeout

Custom Button Text

Formatting Options

_________________________________________________________________________________________________

Text Input Gets text input | X | X | X | X | X Field Width
Int32 Input Gets integer input | X | X | X | X | X Field Width
Real64 Input Gets real input | X | X | X | X | X Field Width
Message Box Displays information | n.a. | n.a. | X | X | X Multiple Line Messages
List Box Allows single or multiple selection from a list | n.a. | n.a. | X | X | X List Height
File Name Selection Allows file name selection | X[1] | n.a. | n.a. | n.a. | n.a.

_________________________________________________________________________________________________

1 기존 파일을 덮어쓸 경우에는 경고메시지를 표시하고, 존재하지 않는 파일은 열수가 없습니다.

Dialog Box 오브젝트는 부가적인 색상과 폰트 속성을 가지고 있으며, 팝업패널의 모양을 쉽게 제어할 수 있습니다. 다음 그림은 이러한 속성을 보여줍니다.

메시지 박스의 색상 및 폰트 속성

Dialog Box 오브젝트는 마우스 없이 사용할 수 있습니다. 디폴트 버튼을 누르기 위해서는 Enter키를 누르고, 마우스 오른쪽 버튼(일반적으로 Cancel)을 누르기 위해서는 Esc키를 누릅니다. Tab과 Shift+Tab키는 입력필드나 버튼을 이동하기 위해서 사용합니다. 현재 선택된 버튼을 누르기 위해서는 Space키를 누릅니다. 키를 이용하여 버튼을 이동하는 방법에 대해서는 키보드로 네비게이션하는 패널 만들기를 참조하십시오.

자세한 사항은 Dialog Box 메뉴항목 또는 타임아웃될 때 지정하는 값 출력하기을 참조하십시오..


타임아웃될 때 지정하는 값 출력하기

Dialog Box 오브젝트에서 Timeout을 설정하고(속성창을 통해서), 지정한 타임아웃 시간이 지나면, Timeout 데이터 출력핀으로 1을 출력합니다. 타임아웃 시간이 끝났을 때 어떤 값(디폴트 값으로)을 출력하고자 하는 경우가 있습니다; 이렇게 하기 위해서는, 다음 단계를 따릅니다; Text Input 대화상자를 사용합니다:

1. Timeout을 설정합니다.

오브젝트 메뉴에서 Properties를 선택합니다. TimeoutEnabled 항목을 True로 설정합니다. Pop-Up Timeout 항목의 시간을 설정합니다.

2. Default Value 데이터 입력핀을 추가합니다.

3. 디폴트 값을 입력하기 위하여 메뉴 Data [image] Constant [image] Text를 선택합니다. (디폴트값을 입력하기 위하여 메뉴 Data [image] Constant 오브젝트를 선택합니다.)

4. Text 오브젝트에 디폴트 값을 입력합니다.

5. Text 데이터 출력을 Default Value 데이터 입력핀으로 연결합니다.

6. Flow [image] Gate를 선택합니다.

7. Text의 데이터 출력핀을 Gate의 데이터 입력핀으로 연결합니다.

8. Timeout 데이터 출력핀을 Gate 의 시퀀스 입력핀으로 연결합니다. 타이아웃 시간이 지나면, 디폴트 값이 Gate를 통해 출력됩니다.

다음 그림은 타임아웃이 발생한 경우에 입력한 값이나 디폴트 값을 출력하기 위해 JCT를 사용한 프로그램을 나타냅니다. 이 프로그램은 manual 예제 디렉토리에 timeout.vee로 저장되어 있습니다.

타임아웃될 때 디폴트 값 출력

Copyright (c) 1991-2007 Agilent Technologies, Inc.


사용자 지정 대화상자 생성 소개

기본적으로 제공되는 대화상자가 사용자의 요구에 맞지 않을 때는, 사용자가 원하는 대로 대화상자를 생성할 수 있습니다. 다음의 내용은 팝업 패널에서 대화상자를 생성하는 방법을 설명합니다. 대화상자를 생성하고 나면, 필요한 대로 컨트롤, 디스플레이, 다른 오브젝트들을 추가할 수 있습니다. 만약 아래에 있는 다음 단계를 따르는 프로그램의 생성을 원하지 않는 경우에는, 예제 파일(Help [image] Open Example)을 열어서 제공되는 대화상자를 요구사항에 적합하도록 수정하여 사용하십시오.

팝업패널을 생성하기 위해서는, UserObject 패널 생성하기에 있는 단계를 따르십시오. UserObject나 UserFunction으로부터 팝업패널을 만들 수 있습니다. 다른 경우를 지정하지 않는 한, 여기에서 설명하는 내용은 UserObject를 사용하는 것을 전제로 합니다.


기본적인 대화상자 생성하기

1. 먼저, 디스플레이된 팝업 패널 유지의 단계를 두번 따라하여 팝업 패널을 생성하십시오. 첫 번째는 사용자가 그들의 선택을 확인할 수 있도록 OK 오브젝트를 추가하는 것이고, 두 번째는 그들의 선택을 취소 할 수 있도록 Cancel 버튼용으로 OK 오브젝트를 추가하는 것입니다.

2. 키보드의 Enter키는 OK 버튼으로, ESC 키는 Cancel버튼으로 할당하십시오.

첫번째 OK 오브젝트의 속성창에서 Assign To Enter Button 항목을 True로 선택하십시오.

두번째 OK 오브젝트(Cancel용)의 속성창에서 Title을 Cancel로 바꾸고, Assign To Escape Button 항목을 True로 선택하십시오.

이제 OK 버튼은 Enter키(디폴트 키)로, Cancel버튼은 ESC 키는 할당되었습니다.

3. 메뉴바에서 Flow [image] Exit UserObject를 선택하여 UserObject의 디테일뷰에 Exit UserObject를 배치하십시오.

4. Cancel 버튼의 데이터 출력핀을 Exit UserObject의 시퀀스 입력에 연결하십시오.

5. 메뉴바에서 Data [image] Constant [image] Text를 선택하여 Text 오브젝트를 UserObject의 디테일뷰에 배치하십시오. (이것은 사용자 입력을 위한 오브젝트입니다.)

6. OK 버튼의 데이터 출력핀을 Text 오브젝트의 시퀀스 입력핀에 연결하십시오.

7. UserObject에 데이터 출력터미널을 생성하십시오.

8. Text 오브젝트의 데이터 출력핀을 UserObject의 데이터 출력핀으로 연결하십시오.

9. 메뉴바의 Flow [image] Exit UserObject를 선택하십시오.

10. Text 오브젝트의 시퀀스 출력핀을 Exit UserObject의 시퀀스 입력핀에 연결하십시오.

만약 OK(혹은 Enter 키) 버튼을 누르면 대화상자가 나타나고, Cancel(혹은 ESC 키) 버튼을 누르면 아무것도 나타나지 않습니다.

다음 그림은 이들 단계를 이용하여 생성한 프로그램입니다.

기본적인 커스텀 대화상자

이 프로그램을 Manual 예제 디렉토리에 dialog1.vee 로 저장되어 있습니다.

예제에 대한 상세 설명

OK 버튼은 Text 오브젝트에 연결되어야 합니다. 만약 그렇지 않으면 Text 오브젝트는 UserObject가 실행되자마자 디폴트 데이터를 UserObject의 데이터 출력핀으로 전달할 수 있습니다. OK 버튼은 Text 오브젝트에 연결한 경우에는, 사용자가 Text 오브젝트에 데이터를 입력한 후 OK 버튼을 누를 때까지 Text 오브젝트의 실행을 차단하고 있습니다.

OK 나 Cancel과 함께 사용한 쓰레드는 반드시 Exit UserObject에 연결되어야 합니다. 만약 그렇지 않으면, OK와 Cancel 버튼을 둘 다 눌러야 UserObject로부터 출력을 할 수 있습니다. 왜냐하면, UserObject는 오브젝트 내부의 모든 작업을 완료할 때까지 자신의 출력데이터를 전달하지 않기 때문입니다.

이러한 실행의 주요 데모는 다음단계를 따라 하십시오.

1. 툴바의 Show Execution Flow버튼을 클릭하십시오.

2. UserObject의 편집화면(디테일뷰)을 관찰하십시오.

3. 프로그램을 실행합니다.


타임아웃 설정하기

대화상자가 일정 시간이 지나면 사라지도록 하기 위해서는, 타임아웃을 설정하십시오. 기본적인 대화상자 생성하기에서 생성한 대화상자에 타임아웃을 추가하기 위해서는 다음 단계를 따라 하십시오.

1. 메뉴 Flow [image] Delay를 선택하고 생성된 오브젝트를 UserObject의 디테일뷰에 배치합니다.

2. Flow [image] Exit UserObject를 선택합니다.

3. Delay 오브젝트의 시퀀스 출력핀을 Exit UserObject의 시퀀스 입력핀으로 연결합니다.

4. Delay오브젝트의 편집 필드에 팝업시간(초단위)을 지정합니다. 지정된 시간이 지나면 팝업패널은 사라집니다.

5. UserObject에 두번째 출력터미날을 추가합니다.

6. 메인 컨텍스트에서 사용할 수 있도록 Delay 오브젝트의 데이터 출력핀을 두번째 데이터 출력핀으로 연결합니다.

타임아웃 설정시간이 지나면, 텅빈 컨테이너가 이 터미날로 출력됩니다.

다음 그림은 위에서 설명한 단계로 생성한 프로그램입니다.

타임아웃이 설정된 대화상자

이 프로그램은 manual 예제 디렉토리에 dialog2.vee 로 저장되어 있습니다.

예제 dialog2.vee에서 타임아웃 시간이 지나면, UserObject에서는 어떤 값도 출력되지 않습니다. 다음 그림과 같이 타임아웃이 될 때 UserObject가 디폴트 값을 출력하고자 하는 경우도 있습니다.

타임아웃 설정시간이 지나면 디폴트 값 출력하기

이 예제 프로그램은 manual 예제 디렉토리에 dialog3.vee 로 저장되어 있습니다.


유효 데이터 체크하기

다음 그림은 값을 출력하기 전에 일부 구속조건에 대하여 입력된 값을 체크하는 프로그램을 보여줍니다. 만약 값이 구속조건을 충족하지 못하면, 사용자에게 알리기 위해 별도의 대화상자가 디스플레이됩니다.

구속조건을 체크하는 대화상자

이 프로그램은 manual 예제 디렉토리에 dialog4.vee 로 저장되어 있습니다.

이 예제에서 중요한 포인트는:

Until Break 오브젝트는 Error Pop-Up 패널이 실행된 후에 숫자를 다시 입력하도록 하거나, Enter a number… 오브젝트가 한번 실행되었더라도 다시 숫자를 입력하도록 합니다.

Error Pop-Up Panel은 메시지를 디스플레이하고, Enter나 Esc에 응답하기 위한UserObject의 팝업패널입니다. 이 팝업패널은 5초후에 사라집니다.


스스로 변경되는 패널 생성하기

사용자의 이전 선택을 기준으로 사용자에게 선택을 표시하는 패널을 제공하기 위해서는, 스스로 변경되는 패널을 생성합니다.

다음 그림은 Radio Buttons 오브젝트에서 선택한 항목을 기준으로 Drop-Down List 에 있는 선택항목을 변경하는 프로그램을 보여줍니다. 팝업패널은 아래 그림의 우측상단에 있습니다.

스스로 변경되는 패널

이 프로그램은 manual 예제 디렉토리에 dialog5.vee 로 저장되어 있습니다.

이 예제의 중요한 측면은 다음과 같습니다:

Select a Product (Radio Buttons) 오브젝트는 속성창에서 Wait for Input 설정을 가지고 있습니다.

Phantom Tests, Beetle Tests, 및 Viper Tests는 Enum Values 컨트롤 입력핀을 통해서 Select the test to run, Drop-Down List 오브젝트를 입력하기 위한 테스트의 리스트를 가지는 텍스트 어레이입니다.

Select the test to run은 제품 선택후에 테스트 번호가 선택되기 전까지는 Gate로 데이터를 전송하는 것을 붙잡기 위하여 속성창에서 Wait for Input 설정을 가지고 있습니다.


상태 패널 생성 소개

프로그램을 실행하고 현재의 테스트 데이터를 업데이트하는 동안에 상태 패널을 디스플레이하기 위해서는, UserFunction 패널을 사용합니다. showPanel 오브젝트를 사용하여 패널을 디스플레이하고 Call 오브젝트를 사용하여 실행합니다.

showPanel을 사용할 때, Show Panel On Execute (UserFunction의 속성창에서)항목은 사용할 수 없습니다. 다음의 표는 showPanel과 Show Panel On Execute 실행에 대한 차이점을 설명합니다.

showPanel과 Show Panel On Execute의 차이점

_________________________________________________________________________________________________

showPanel

Show Panel On Execute

_________________________________________________________________________________________________

패널은 hidePanel 오브젝트가 실행되거나 프로그램이 중지할 때까지 유지됩니다. | 패널은 UserFunction이 실행을 종료하거나 프로그램이 중지할 때까지 유지됩니다.
Call을 사용하여 UserFunction이 실행되면, showPanel 을 사용하여 패널이 디스플레이 됩니다. 패널이 디스플레이 되는 동안에는 UserFunctin은 여러번 실행될 수 있습니다. | UserFunction이 실행되면 Call을 사용하여 패널이 디스플레이됩니다. UserFunction이 호출될 때마다 패널은 자동으로 디스플레이됩니다; UserFunction이 실행을 종료하면 패널은 자동으로 숨겨집니다.
디스플레이 되는 위치는 실행중에 프로그램상에서 설정할 수 있습니다. | 디스플레이 되는 위치는 개발시에 설정합니다.
디스플레이 되는 패널 사이즈는 패널뷰의 사이즈와 다르게 설정할 수 있습니다. | 디스플레이 되는 패널 사이즈는 패널뷰와 동일한 사이즈입니다.
패널이 디스플레이 된 경우에는 패널을 이동할 수 없습니다. | 패널이 디스플레이 되었을 때 이동할 수 있습니다.

_________________________________________________________________________________________________

관련정보:

실습11-5: 상태 패널 생성


상태패널 생성하기

UserFunction 패널 생성하기에서 설명한 바와 같이 UserFunction 패널을 이용하여 상태패널을 생성합니다. UserFunction의 편집화면에 있는 속성창에서 ShowPanelOnExecute 항목이 False로 되어있어야 합니다.

관련정보

실습 11-5: 상태 패널 생성


상태패널 나타내기

showPanel 오브젝트는 상태패널을 나타내기 위해 사용합니다.

1. Device [image] Function & Object Browser를 선택합니다. Function & Object Browser 대화상자에서, Type: Built-in Functions를 선택하고 Member: showPanel를 선택합니다.

showPanel 오브젝트는 5개의 파라미터를 포함하는 공식과 UserFunction 이름, 위치 및 사이즈용 터미날과 함께 제공됩니다. 데이터를 제공하는 오브젝트를 입력 터미날에 연결할 수 있으며, 또한 파리미터를 편집할 수 있고 입력핀을 삭제할 수도 있습니다.

2. UFname 터미날을 대체하여 인용부호 사이에 UserFunction 이름을 직접 입력할 수도 있습니다.

3. 패널의 위치를 지정하기 위해서는, VEE 윈도우에서 UserFunction 패널의 좌측 상단 코너 위치를 지정하기 위하여 x와 y 좌표를 입력합니다. VEE 윈도우의 좌측 상단 코너의 좌표는 0,0입니다. showPanel에 있는 편집 필드는 다음과 같습니다: showPanel(MyFunc,300,300).

위치를 지정하지 않으면, 패널은 화면의 중앙에 디스플레이 됩니다.

4. 디스플레이 되는 패널의 사이즈를 지정하기 위해서는, 위치를 지정해야 합니다. 패널의 width 및 height를 픽셀 단위로 지정하십시오.

이 사이즈가 기존의 UserFunction 패널뷰보다 작은 경우에는, 패널의 좌측 상단 부분이 디스플레이됩니다. 지정하는 사이즈가 기존의 패널뷰보다 큰 경우에는, 패널은 하단부 오른쪽에 영역이 추가되어 디스플레이 됩니다.

배경 이미지가 있는 경우에는, 지정된 사이즈내에서 디스플레이 되고, 이미지의 디스플레이 모드에 따라 나타납니다. 예를 들어, 디스플레이 모드가 Scaled인 경우에는, 배경 이미지는 showPanel 오브젝트에서 지정하는 사이즈로 스케일됩니다.

위치와 사이즈를 지정한 경우에는, showPanel 오브젝트에 있는 편집 필드는 다음과 같습니다: showPanel(MyFunc,300,300,100,100).

각 UserFunction에 대해서는 단 하나의 패널을 디스플레이할 수 있습니다. 두번째 showPanel을 실행한 경우에는, 첫번째 패널은 숨겨지고 두번째 showPanel 호출에서 지정하는 패널이 나타납니다.

관련정보: 실습 11-5: 상태 패널 생성


상태 패널 숨기기

프로그램이 실행을 마치면, showPanel에 의해 디스플레이 되었던 모든 패널은 더 이상 디스플레이되지 않습니다. 프로그램이 실행되는 동안에 패널을 숨기기 위해서는, 다음 단계를 따라 하십시오:

1. 메뉴에서 Device [image] Function & Object Browser를 선택합니다. Function & Object Browser에서 Type: Built-in Functions, 그리고 Member: hidePanel를 선택합니다.

2. UFname 대신에 인용부호(“ ”)와 함께 UserFunction 이름을 입력합니다. 해당 오브젝트가 실행될 때 지정된 패널이 디스플레이 되지 않습니다.


상태패널 업데이트 하기

showPanel 오브젝트는 단지 패널을 디스플레이 합니다; 이 오브젝트는 UserFunction을 실행하지 않습니다. 새로운 데이터를 상태패널로 전송하고 디스플레이를 업데이트 하기 위해서는 Call 오브젝트(메뉴 Device   [image] Call)를 사용합니다. Formula 또는 Sequencer 오브젝트 안에 있는 표현식처럼 어떤 표현식 에서도 UserFunction을 호출할 수 있습니다.

Formula 또는 Sequencer 오브젝트 안에 있는 표현식처럼 어떤 표현식 에서도 showPanel을 사용할 수 있습니다. 예를 들어, Sequencer의 첫번째 트랜잭션에서 표현식으로 showPanel을 사용합니다. 프로그램을 실행할 때마다, 상태패널에 있는 데이터가 업데이트 됩니다. Sequencer의 마지막 트랜잭션에 hidePanel을 사용합니다.

새로운 데이터를 Call 오브젝트를 통해서 전송한 다음에는, showPanel을 다시 호출할 필요가 없습니다; 디스플레이된 패널의 내용들은 자동으로 업데이트 됩니다.


상태 패널 사용예

다음 그림은 정보가 업데이트된 간단한 상태 패널을 나타냅니다. List Box 오브젝트에서 항목을 선택하면, 해당 테스트와 관련된 데이터가 패널에 디스플레이 됩니다.

상태 패널

다음 그림은 상태 패널을 디스플레이하는 프로그램을 나타냅니다. 이 프로그램은 manual 예제 디렉토리에 status.vee로 저장되어 있습니다.

상태 패널 예제 프로그램

이 예제에서 제시하는 중요한 내용은 다음과 같습니다:

Record 상수는 테스트 결과에 대한 레코드를 설정합니다. 이것은 테스트 함수에서 길게 출력할 수 있습니다.

Until Break 오브젝트는 여러번 테스트 정보를 선택할 수 있게 합니다.

Get Field 오브젝트는 List Box를 마지막 반복에서 선택된 값으로 리셋합니다.

List Box에서 Done 버튼을 누른 경우에, 상태 패널은 숨겨지고 Until Break 루프가 완료됩니다.

패널뷰를 포함하는 UserFunction은 UserFunction이 호출될 때마다 업데이트 됩니다.

apps 예제 디렉토리에 있는 mfgtest.vee 프로그램은 Sequencer 오브젝트와 함께 상태 패널을 사용하는 보다 완성된 프로그램입니다.

관련정보: 실습11-5: 상태 패널 생성


To Animate Pictures

애니메이션 만들기

애니메이션을 만들기 위해서는 showPanel 또는 hidePanel을 사용합니다. 아래의 순서를 따라 간단한 애니메이션 프로그램을 작성해 보십시오.

1. 메인 화면에서 Create Panel(메인화면의 오브젝트 메뉴)을 이용하여 패널뷰를 생성합니다.

2. 메인화면의 속성창에서 PopupPanelTitle 항목을 Title을 A Simple Animation으로 변경하고, ShowPanelonExecute 항목을 True로 설정합니다.

Appearance 속성에서 메인 패널의 배경색(BackColor)을 선택합니다.

이 색상은 애니메이션 파일의 배경색으로 같이 사용하기 때문에 중요합니다.

3. 움직이고자 하는 이미지의 그래픽 파일을 생성합니다.

4. 메뉴바의 Device [image] UserFunction를 선택하여 UserFunction 편집화면을 엽니다.

5. 메뉴바에서 Display [image] Picture를 선택하여 UserFunction 화면에 그림 오브젝트를 배치 합니다. 오브젝트의 속성창에서 Picture 항목을 이용하여 원하는 그래픽 파일을 지정합니다.

6. Picture 오브젝트를 UserFunction 패널에 추가합니다. 그리고 Picture 오브젝트의 오브젝트 메뉴에서 Properties를 선택합니다.

7. 속성창에서 Border를 None으로, ShowTitleBar를 False로 변경하고, Picture 오브젝트를 UserFunction 패널의 좌측상단 코너에 배치합니다.

8. UserFunction 오브젝트 메뉴에서 Properties를 선택합니다.

9. Title을 Picture로 변경하고, Popup Panel 영역에서 ShowPopupPanelTitle을 False로 ShowPopupPanelBorder를 False로 변경합니다.

10. 패널뷰에서 패널뷰의 배경색을 메인 패널의 배경색과 동일하게 변경합니다.

11. UserFunction의 패널 사이즈를 그림에 맞게 적당히 줄이십시오.

12. 메인화면의 디테일뷰에서 Device [image] Function & Object Browser를 선택하고, built-in function에서 Panel 영역의 showPanel을 선택하여 디테일뷰에 해당 오브젝트를 배치합니다.

13. 오브젝트의 편집창에서 UFName 대신에 따옴표와 함께 Picture(UserFunction Name)를 입력하고, width와 height를 삭제합니다.

14. 위치 파라미터인 x와 y를 제외한 모든 입력터미널(UFName, width, height)을 삭제 합니다.

15. 오브젝트의 편집창에는 동일한 터미널 이름을 사용해야 합니다. 그래서 편집창의 내용은 showPanel(“picture”,x,y)입니다.

16. 메뉴바에서 Flow [image] Repeat [image] For Range를 선택합니다.

17. x,y 좌표값으로 사용하기 위하여, For range 오브젝트에서 From 항목에 -20, Thru 항목에 500, Step 항목에 10을 입력합니다.

18. Flow 메뉴에서 Gate와 Delay 오브젝트를 선택하여 추가하고 Delay 값을 0.5로 변경합니다.

19. For Range 오브젝트의 출력핀을 Gate 오브젝트의 입력핀으로 연결하고, Gate 오브젝트의 출력핀을 ShowPanel 오브젝트의 입력핀 x및 y로 연결합니다.

20. Gate 오브젝트의 시퀀스 출력핀을 Delay 오브젝트의 입력핀으로 연결하고, Delay 출력핀을 ShowPanel 오브젝트의 시퀀스 입력핀으로 연결합니다.

21. 패널뷰 버튼을 눌러 패널뷰 상태를 디스플레이 합니다.

22. 프로그램을 실행하고 그림이미지가 패널뷰에서 이동하는 것을 확인합니다.

다음 그림은 위의 단계를 사용하여 UserFunction 패널을 추가하여 생성한 프로그램을 나타냅니다.

간단한 애니메이션

이 프로그램은 Manual 예제 폴더에 animate.vee 로 저장되어 있습니다.

경주: 간단한 애니메이션

아래 그림은 VEE의 간단한 애니메이션 기능을 이용한 프로그램에 대한 패널뷰 일부입니다.

이 프로그램은 Game 예제 폴더에 Race.vee 로 저장되어 있습니다. Game 예제 폴더에 있는 Wheel.vee 와 Slots.vee 프로그램은 좀더 복잡한 애니메이션의 데모 입니다.

다양한 이미지 사용하기

Picture 오브젝트에 데이터 입력터미널을 추가하고 파일 이름을 입력터미널을 통해 입력하면, 실행시에 다양한 이미지를 이용한 애니메이션 생성이 가능합니다. Picture display mode를 Scaled로 선택하면, Centered 혹은 Actual을 선택하는 것 보다 이미지를 더 크게 디스플레이 할 수 있습니다.


영문 이외의 언어로 패널 생성하기

영문 이외의 다른 언어로 패널을 생성하기 위해서는, 영문 이외의 문자를 표시하도록 설정되어야 합니다. VEE에서 표시하는 영문을 다른 언어로 변경할 수 없는 일부 항목이 있습니다.

일부 오브젝트는 영문 텍스트를 제공합니다. 예를 들어, Data [image] Selection Control [image] Pop-Up List. 리스트가 팝업될 때, 팝업의 이름은 Make Selection 입니다. 버튼은 OK와 Cancel입니다.

패널뷰에 있는 Open, Save, 또는 Save As와 같은 메뉴 선택항목은 대화상자에서처럼 영문입니다.

오브젝트 메뉴 선택항목은 영문입니다.

환경을 다른 언어로 디스플레이 하도록 설정한 후에는, VEE에서 다른 언어를 입력할 수 있고 어떤 위치에도 입력할 수 있습니다. 예를 들어, Labels, Constant 오브젝트, 오브젝트에 있는 이름, Confirm (OK)버튼 및 대화상자 오브젝트(및 제공되는 버튼)입니다.


프로그램 수정 방지 소개

프로그램을 다른 컴퓨터에서 실행하기 위하여 배포할 때, 일반적으로 사용자들이 프로그램을 수정하는 것을 원하지 않습니다. 단지 프로그램의 실행을 관찰하고 컨트롤 동작만을 하기를 원합니다. 프로그램의 수정을 방지 하기 위하여 2가지 방법이 있습니다.

File [image] Create RunTime Version - 이 명령을 사용하면, 현재의 프로그램에 어떠한 변경도 없이 프로그램의 보안처리된 버전을 파일이름.vxe 파일로 저장합니다. 사용자는 VEE 런타임 환경에서 보안 처리된 버전을 실행할 수 있습니다. 반드시 메인 패널뷰를 생성해야 하며, 사용자는 프로그램 실행수단으로 패널을 볼 수 있습니다. 이 선택은 작성한 소오스 프로그램에 대한 어떠한 접근도 방지할 수 있습니다.

주의
보안 처리된 프로그램(.vxe)을 보안 해제 하는 방법은 없습니다; 작성한 소오스 프로그램의 보안 해제된 버전(.vee)을 꼭 저장해야 합니다.

veerun 파일이름 – 이 명령어는 본래 보안 처리된 VEE 프로그램을 실행하기 위해 사용합니다. 그러나, 이 명령어를 보안이 해제된 프로그램에도 사용할 수 있습니다. VEE를 시작하면, 이 명령어는 파일이름을 가진 프로그램을 로딩하고, VEE 런타임 환경에서 프로그램을 실행합니다. 프로그램이 실행되자 마자 런타임 윈도우는 닫힙니다. 메인 패널뷰를 생성해야 하고, 그래서 사용자가 프로그램 실행 수단으로 패널을 볼 수 있습니다. 이것은 2개의 파일(소오스 파일과 보안 처리된 파일)을 유지하기를 원하지 않는 경우에 유용한 선택입니다.

주의사항

프로그램을 실행하기 위해 사용하는 VEE 런타임 버전은 프로그램을 개발하기 위해 사용했던 VEE 버전과 동일하거나 높아야 합니다.


프로그램 수정 방지하기

다음의 리스트는 프로그램을 배포하기 위한 준비를 할 때 사용할 수 있는 몇가지 방법을 제시합니다.

패널뷰에 추가된 Note Pad 오브젝트에 있는 텍스트를 사용자가 편집하는 것을 방지하기 위해서는, Note Pad의 편집 속성을 off합니다. Note Pad 오브젝트를 가진 패널뷰에서, Note Pad 속성을 편집합니다; Appearance 영역에 있는 EditEnabled 속성을 False로 변경합니다.

Slider, Meter, Thermometer, Fill Bar, 또는 Tank와 같은 오브젝트에 있는 최대값과 최소값의 변경을 사용자로부터 방지하기 위해서는, MaxValue 및 MinValue 컨트롤 핀을 추가합니다.

사용자가 UserObject 또는 UserFunction의 팝업 패널을 이동하는 것을 방지하기 위해서는, 해당 패널의 오브젝트 메뉴에 있는 PopupMoveable 속성을 사용합니다. UserFunction 패널을 사용할 수 있고 showPanel 오브젝트를 이용하여 프로그램상에서 이 패널을 디스플레이 합니다. showPanel에 대한 자세한 내용은 상태 패널 생성을 참조하십시오.

VEE 그래픽 디스플레이 오브젝트에 있는 스케일을 사용자가 변경하는 것을 방지하기 위해서는, 오브젝트가 있는 패널뷰에서, 해당 오브젝트의 오브젝트 메뉴에서 Properties를 선택합니다; Layout 영역에 있는 Enable Trace/Scale Editing를 off 합니다.

목표 시스템에 있는 디폴트 색상이나 폰트가 VEE 프로그램에 사용되는 것을 방지하기 위해서는, VEE를 디폴트 색상이나 폰트와 함께 저장하십시오.

1. 메뉴 File [image] Save As...를 선택합니다.

2. Save colors and fonts with program 체크박스를 선택합니다.

3. Save를 클릭합니다. 프로그램에서 사용한 모든 색상과 폰트가 프로그램에 저장됩니다.


프로그램에 보안처리 하기

주의: 보안 처리된 프로그램(.vxe)을 보안을 해제하는 방법은 없습니다; 소오스 프로그램(.vee)을 보관해야 합니다.

작성한 프로그램을 배포하기 전에 보안 처리된 프로그램을 생성하는 경우에는, 다음의 단계를 따르십시오:

1. 메뉴에서 File [image] Create RunTime Version를 선택합니다.

2. Create RunTime Version 대화상자에서, 프로그램 이름을 입력합니다. .vxe가 자동으로 추가되기 때문에 파일이름의 확장자를 입력할 필요는 없습니다.

3. Default Preferences대화상자에서 선택한 모든 디폴트 색상과 폰트를 프로그램에 저장하기 위해서 Save colors and fonts with program를 선택합니다. 이것은 어떤 사용자가 프로그램을 실행하든 간에 디폴트로 지정했던 색상과 폰트를 사용하게 됩니다. 이 옵션을 선택하지 않으면, 프로그램에서 설정한 색상과 폰트가 프로그램에 저장됩니다. 이것은 이 프로그램을 사용하는 다른 사용자에게 그들이 지정한 디폴트 색상과 폰트를 사용하도록 합니다. 기존의 프로그램을 로딩한 경우에는, 옵션은 초기에 프로그램을 저장했던 방법에 따라 설정됩니다.

Save I/O configuration with program 항목은 디폴트로 인에이블 됩니다. I/O 설정을 임베딩하지 않을 경우에는, 이 항목을 체크하지 않으면 됩니다. VEE에서는 프로그램 자체에 I/O 설정 정보를 임베딩할 수 있습니다. I/O 설정을 저장하는 자세한 방법은 Instrument Manager 대화상자를 참조하십시오.

프로그램을 보안처리 하는 경우에 소오스 프로그램에 미치는 영향은 없습니다. 보안 처리된 프로그램은 파일 이름이 다르게 저장됩니다. 예를 들어, 보안 해제된 프로그램 prog.vee는 보안 처리된 프로그램 prog.vxe로 저장됩니다.

VEE 런타임에서 보안 처리된 프로그램을 실행할 수 있으며, 이 프로그램은 VEE 버전에서만 실행됩니다. 작성한 프로그램과 VEE 런타임은 무한대로 배포할 수 있습니다.

주의사항

프로그램이 실행될 때 사용자가 프로그램을 주시하고 조작해야 하는 경우에는, 메인 패널뷰 또는 팝업 패널의 형태로 패널뷰를 생성해야 합니다. 사용자 조작 없이 프로그램을 실행하고자 하는 경우에는, 패널뷰는 필요치 않습니다. 그러나 프로그램의 진행상태라도 표시하는 패널뷰라도 있다면 프로그램 사용에 도움이 될 것 입니다.


프로그램을 다시 보안처리 하기

사용자에게 보안 처리된 프로그램을 배포할 때, 본래의 프로그램을 변경할 때마다 다시 보안 처리하여 저장하고, 재 배포하십시오. 프로그램에 보안처리 하기를 참조하십시오.


UserObject 보안처리 하기

다른 사용자들이 사용할 수 있도록 UserObject를 배포할 때, UserObject의 수정을 방지하기 위해 보안 처리된 버전을 만들 수 있습니다. 사용자는 단지 아이콘뷰나 UserObject의 패널뷰만 사용할 수 있습니다. 사용자가 UserObject를 조작해야 하는 경우에는 반드시 패널뷰를 생성해야 합니다.

1. UserObject의 편집화면을 엽니다. 오브젝트 메뉴에서 Save Secured Version을 선택합니다.

2. Save Secured Version 대화상자에서 UserObject의 파일이름을 입력합니다. .vee 확장자는 자동으로 추가됩니다.

  프로그램이 이미 저장된 UserObject를 가지고 있거나 UserObject를 메뉴 File   [image] Save Objects를 사용하여 저장한 경우에는, UserObject를 다시 저장하지 않을 수도 있습니다. 보안 처리된 버전을 저장하고자 하는 경우에는, 다른 파일이름을 사용하십시오.

3. 다른 사용자들이 보안 처리된 UserObject를 사용할 때는, 메뉴에서 File   [image] Merge를 선택하고 보안 처리된 UserObject의 파일이름을 입력합니다. 보안 처리된 UserObject는 다른 오브젝트들처럼 프로그램에서 사용합니다.


배포용 패키지 생성하기

개발한 프로그램을 다른 PC로 배포할 때에는 VEE 프로그램에서 설정했던 계측기의 설정 상태를 포함시켜야 합니다. 대부분의 경우는 I/O 설정상태를 포함시키는 것이 최선의 방법입니다. 만약 I/O 설정상태를 포함시키지 않았을 경우에는 타겟 PC에서 수정할 수도 있습니다; VEE Pro RunTime 설정하기를 참조하십시오.

프로그램에 포함시켜야 할 파일들은 아래와 같습니다. (사용했을 경우)

데이터 파일.

개발시 작성한 계측기의 드라이버 파일(*.cid)

배포하여 설치하고자 하는 PC에 설치되어 있지 않은 계측기 드라이버(*.cid)

VXIplug&play 계측기 드라이버.

IVI-COM 드라이버.

생성했던 그래픽 파일.

호출하여 사용했던 DLL 이나 컴파일된 함수.

추가적으로, .NET 프레임웍 재배포 패키지(dotnetfx.exe)를 포함해야 하며 런타임을 설치하기 전에 이 패키지를 반드시 설치해야 합니다. .NET 프레임웍이 설치되지 않은 경우에는, VEE Pro 런타임 제품은 설치되지 않습니다.

필요한 모든 파일을 포함시킨 다음에는, 프로그램을 다른 시스템으로 복사하여 사용할 수 있습니다. 프로그램이 계측기를 컨트롤 하는 경우에는, Agilent I/O Libraries Suite 버전 14이상을 반드시 설치해야 합니다.

배포용 미디어에 모든 파일 저장하기

VEE Pro를 포함하는 배포용 미디어를, 작성한 프로그램을 포함하여 생성할 수 있습니다.

1. 작성한 모든 파일과 지원 파일을 디스크로 복사합니다.

2. VEE CD-ROM에서 VEE 런타임 셋업 파일을 CD-R 또는 Zip 디스크로 복사합니다. VEE CD-ROM에 있는 파일은 runtime 서브 디렉토리에 있는 파일입니다.

3. Agilent I/O Libraries Suite (버전 14이상)을 다른 CD-R로 복사합니다. (프로그램이 계측기를 컨트롤 하는 경우)

4. 프로그램에 대한 문서(사용법)를 준비합니다.

배포용 디스크에 있는 모든 파일을 설치하는 방법에 대하여 최종 사용자나 고객에게 설치순서를 설명할 책임이 있습니다. VEE Pro 런타임에 대해서는, runtime 서브 디렉토리에는 제품을 설치할 수 있는 setup.exe 파일과 .NET 프레임웍을 설치할 수 있는 dotnetfx.exe 파일을 포함하고 있습니다.

VEE Pro 런타임에 대한 자세한 정보는 VEE Pro RunTime 제품에 대하여를 참조하십시오.


어플리케이션 아이콘 생성하기

프로그램 아이콘을 더블클릭하여 VEE 프로그램을 간편하게 실행할 수 있습니다. 다음 단계를 따라서 아이콘을 생성할 수 있습니다. 아이콘 작성에 대한 자세한 내용은 MS 윈도우 문서나 온라인 도움말을 참조하십시오.

컴퓨터 바탕화면에 또는 태스크바의 시작메뉴에 프로그램의 실행을 위한 단축키를 배치할 수 있습니다. 단축키 생성단계는 보안 처리된 프로그램과 보안 처리되지 않은 프로그램에서 유사합니다. 그러나, 보안처리가 되지 않은 프로그램을 실행하는 단축키에서는 veerun 명령어를 사용해야 합니다. 이렇게 프로그램을 실행하면 소오스 프로그램에 접근할 수 없습니다.

바탕화면에서 바로가기

1. 윈도우 탐색기에서, 프로그램의 파일이름에서 마우스 오른쪽 버튼을 클릭하고 ‘바로가기 만들기’를 선택합니다. 파일이름이 ‘파일이름의 바로가기’인 파일이 생성됩니다.

2. 바로가기 파일이름을 바탕화면으로 드래그합니다. 바로가기 아이콘이 나타납니다.

3. 보안처리가 안된 프로그램(.vee)의 경우에는 대상 명령어에 veerun을 포함하기 위하여 바로가기 명령어를 변경합니다. 보안처리된 프로그램(.vxe)은 자동으로 veerun을 사용합니다; 단, 어떤 veerun 옵션을 사용하고자 한다면, 명령어를 변경하는 것이 필요합니다.

a. 바로가기 아이콘에서 마우스 오른쪽 버튼을 클릭하고 속성을 선택합니다. 등록정보 대화상자가 나타납니다.

b. 바로가기 탭에서 대상을 다음과 같이 변경합니다:

"C:\Program Files\Agilent\VEE Pro RunTime 8.0\veerun.exe" MyApp.vee

인용부호(“ ”)와 필요한 veerun 옵션을 포함해야 합니다. 도스 명령어에 대한 옵션 리스트는 도스 명령어 옵션을 사용하여 Agilent VEE 실행하기를 참조하십시오.

실행을 위한 경로가 정확할 때는 대상에 프로그램의 경로를 지정할 필요는 없습니다.

c. OK를 클릭합니다.

4. 바로가기 아이콘의 표시이름을 변경하기 위해서는, 아이콘을 클릭하고 표시이름을 클릭하십시오. 새로운 이름을 입력합니다. 프로그램을 실행하기 위하여 바로가기 아이콘을 더블클릭합니다.

시작메뉴에서 바로가기

1. 윈도우 태스크바에서 시작 [image] 설정 [image] 태스크바를 클릭합니다.

2. 태스크바 대화상자에서, 시작메뉴 프로그램 탭에서 추가를 클릭합니다. 바로가기 생성 대화상자가 나타납니다.

3. 프로그램을 실행하기 위하여 명령어를 입력합니다. 명령어를 입력할 경우에는 인용부호(“ ”)를 사용하십시오.

보안처리가 안된 프로그램(.vee)의 경우에는, veerun과 파일 경로와 함께 프로그램의 파일이름을 포함시키십시오. 보안처리된 프로그램(.vxe)은 자동으로 veerun을 사용합니다. 따라서 명령어는 프로그램 파일이름과 경로를 포함시킵니다. 보안처리가 안된 프로그램을 위한 명령어는 다음과 같아야 합니다.

"C:\Program Files\Agilent\VEE Pro RunTime 8.0\veerun.exe" "C:\Document and Settings\[username]\My Documents\VEE Programs\MyApp.vee"

필요한 veerun 옵션을 포함시킵니다. 보안처리된 프로그램에서는, 옵션을 사용하기 위해 명령어에 veerun을 포함시키는 것이 필요합니다. 도스 명령어의 옵션 리스트는 도스 명령어 옵션을 사용하여 Agilent VEE 실행하기를 참조하십시오.

Next를 클릭하면, 프로그램 폴더 선택 대화상자가 나타납니다.

4. 바로가기를 배치하고자 하는 폴더를 선택합니다. 기존에 있는 폴더를 선택하거나 새로운 폴더를 생성할 수 있습니다. Next를 클릭하면, 프로그램 폴더 선택 대화상자가 나타납니다.

5. 프로그램의 바로가기를 위한 이름을 입력합니다. 이 이름은 시작메뉴에 표시됩니다. 종료를 클릭합니다.

6. OK를 클릭합니다. 바로가기를 사용하기 위하여 시작 [image] 모든 프로그램을 선택합니다.

관련정보

도스 명령어 옵션을 사용하여 Agilent VEE 실행하기


예제: Sequencer 트랜잭션

오픈뷰 상태에 있는 Sequencer 오브젝트는 시퀀스 트랜잭션의 리스트를 나타냅니다. 각 트랜잭션은 다른 타입의 트랜잭션과 유사합니다. 아래 프로그램은 Sequencer에서 표현식을 실행하고 함수를 호출하기 위하여 트랜잭션을 사용하는 방법입니다.

이 프로그램은 백그라운드에 있는 2개의 UserFunctions을 나타내지는 않습니다: 2개의 UserFunctions은 0부터 1까지의 랜덤 숫자를 입력값으로 추가하는 myRand1 과, 0부터 100까지의 랜덤 숫자를 입력값으로 추가하는 myRand2입니다. UserFunctions을 생성하고 사용하는데 대한 자세한 정보는 Help [image] Contents and Index [image] How Do I... 커스텀 오브젝트 및 함수생성 [image] UserFunctions생성 및 사용”을 참조하십시오.

트랜잭션을 클릭하면, 대화상자는 트랜잭션을 “확장”하여 보고 편집할 수 있도록 합니다. 아래의 대화상자는 첫 번째 트랜잭션, test1를 나타냅니다:

시퀀스 트랜잭션은 TEST 트랜잭션 또는 EXEC 트랜잭션이 될 수 있습니다. 이 트랜잭션에서, 타입은 TEST입니다: name 필드는 test1, 명목 규격은 1.25, RANGE: 규격이 사용되었고. 범위는 1 <= ... <= 1.5입니다.

1부터 1.5까지의 값 만이 테스트를 pass합니다. 표현식 myRand1(A)는 UserFunction을 호출하고, Sequencer의 A 입력 터미날에 있는 값을 입력 파라미터로 사용합니다.

트랜잭션은 로깅이 인에이블되어 Test1라는 이름의 지역변수가 자동으로 생성되어 이 테스트 결과에 대한 레코드를 로깅합니다. 이 로그 레코드는 Log 출력 터미날의 일부분으로 사용될 수도 있습니다. IF PASS 와 IF FAIL 조건은 THEN CONTINUE를 설정합니다. 이것은 test1이 다음 트랜잭션, test2를 실행하고 test2가 실행되었을 때, pass 또는 fail이 실행되는 것을 의미합니다.

DESCRIPTION 필드는 이 테스트에 대한 주석 영역입니다.

주의사항

SPEC NOMINAL 값은 “문서화” 목적을 제외하고는 RANGE 또는 LIMIT 테스트용으로 사용되지 않습니다. 그러나, TOLERANCE 또는 %TOLERANCE 값에 근거한 테스트를 사용한 경우에는, 공차는 SPEC NOMINAL 값에 비례하여 연산됩니다.

두번째 트랜잭션, test2 또한 TEST 트랜잭션입니다.

이 두 번째 테스트는 첫 번째와 유사합니다. UserFunction myRand2는 표현식 myRand2(A)를 사용하여 호출됩니다. 결과 값은 명목 규격 26을 사용하여 1부터 51의 범위에 있는지가 테스트됩니다. pass 또는 fail을 반복하고, Sequencersms 다음 트랜잭션을 계속합니다.

세 번째 트랜잭션은 EXEC 트랜잭션입니다:

EXEC 트랜잭션은, TEST 트랜잭션과는 유사하지 않고, 함수 결과를 구격 또는 범위와 비교하지 않고 수행합니다. EXEC 트랜잭션은 pass/fail 테스트가 필요하지 않는 동작을 수행하기 위해 사용합니다.

예를 들어, EXEC 트랜잭션은 TEST 트랜잭션이 수행되기 전에 외부의 설정을 설정하기 위한 루틴을 호출할 수 있고, 또는 연속적인 테스트 다음에 파워 다운을 실행할 수도 있습니다. (EXEC 트랜잭션은 “항상 pass” 테스트 조건을 지정하기 위한 단축키 입니다.)

이 예제에서, finish라는 이름의 트랜잭션은 B의 값을 Sequencer 오브젝트의 Return 출력 터미날로 리턴합니다. 테스트가 수행되지 않으면, EXEC 트랜잭션에 대한 로깅은 수행하지 않습니다.

DESCRIPTION 필드는 어떤 트랜잭션을 간략히 설명하기 위하여 사용할 수 있습니다.

프로그램을 실행하면, 3개의 트랜잭션이 아래와 같이 시퀀스에서 실행됩니다.

로그된 테스트 결과는 Log 출력 터미날로 출력되고 디스플레이 됩니다. 결과는 레코드의 레코드인 Record 데이터 타입으로 로그됩니다. 이 경우에, test1은 값 1.396을 사용하여 pass되고, test2는 값 85.05를 사용하여 fail됩니다. 세 번째 트랜잭션은 B 입력으로 값, 스트링 Done!을 리턴합니다.

각 트랜잭션은 로깅이 인에블되어 트랜잭션 이름으로 로그 레코드를 생성합니다. 이 예제에서, 로깅은 먼저 3개의 테스트에 대하여 인에이블되어 Test1 과 Test2라는 이름의 지역변수가 해당 트랜잭션에 대한 로그 레코드를 갖게 됩니다.

로그 레코드에 포함된 필드들은 Properties 대화상자에서 지정됩니다. Sequencer의 오브젝트 메뉴에 있는 Properties를 클릭하고, Logging 탭을 클릭합니다. 디폴트로, 로그 레코드는 Name, Result, 및 Pass 필드를 가지고 있습니다.

Test1과 Test2 지역변수 이름은 현재 또는 이전에 실행된 트랜잭션의 결과를 접근하기 위하여 Sequencer 오브젝트에 있는 표현식에 사용할 수 있습니다. 예를 들어, Test3은 첫번째 테스트의 결과를 pass하기 위한 파라미터로 Test1.Result를 사용하여 함수를 호출할 수 있습니다. 또는, Test2.Past는 Test2가 pass된 경우에는 1, Test2가 fail인 경우에는 0을 평가하기 위한 표현식으로 사용할 수 있습니다.

로깅 레코드를 접근할 수 있는 하나의 지역변수, thisTest가 더 있습니다. thisTest의 값은 항상 현재 실행 중인 트랜잭션에 대한 레코드와 동일합니다. 이것은 각 트랜잭션에 이름을 사용하지 않고 많은 트랜잭션에서 사용할 수 있는 트랜잭션 표현식을 사용할 수 있도록 합니다.

Sequencer에 있는 Log 출력 터미날에 의해 생성된 데이터 구조는 아래에 나타낸 바와 같이 레코드의 레코드입니다.

Log 출력핀에 의해 생성된 레코드는 로깅이 인에이블된 각 트랜잭션, 예제에서 Test1 및 Test2에 대한 필드를 포함합니다. 각 필드는 필드 Name, Result, 및Pass를 포함하는 지정된 트랜잭션에 대한 로그 레코드입니다.

이 레코드의 레코드는 Log 출력핀에서 사용할 수 있고 레코드 “점(.)” 문법을 사용하여 다른 오브젝트에 사용할 수 있습니다. 예를 들어, 표현식 Log.Test1.Result는 위의 그림에서 나타낸 바와 같이 값 1.396을 리턴합니다. 마찬가지로, Log.Test1.Name은 test1을 리턴하고 Log.Test1.Pass는 1을 리턴합니다.

Log 출력핀에 있는 로그된 데이터는 맨 마지막에 실행된 각 트랜잭션에서 온 데이터입니다. 각기 실행된 트랜잭션의 결과를 로그하기 위해서는, Logging Mode를 Log Each Transaction To로 설정합니다: Sequencer Properties 대화상자의 Logging 탭에서. 이 옵션은 트랜잭션이 완료되는 시점에 지정한 함수(또는 표현식)를 호출합니다.

이 옵션은 Sequencer가 완료될 때까지 기다리지 않고 발생할 때마다 테스트 결과를 파일 또는 프린터로 로그하고자 하는 경우에는 유용하게 사용됩니다. 지역변수 thisTest는 방금 완료된 트랜잭션의 로그 레코드를 전송하기 위하여 함수를 로그하기 위한 파라미터로 사용할 수 있습니다.


예제: 테스트 결과 로깅(Logging)

다음 그림은 테스트 결과를 로깅하는 예제를 나타냅니다. 여기서 반복자는 Sequencer가 계속해서 테스트를 반복하여 결과를 로깅하도록 사용합니다.

이 예제에서, For Count 오브젝트는 Sequencer가 4회의 연속적인 테스트(이전 예제의 test1 및 test2)를 수행하도록 하기 위해 사용합니다. 예로써, 4개의 "어떤 부품"이 어셈블리 라인에서 테스트되고 있는 경우에는, Sequencer의 각 실행은 하나의 부품을 테스트합니다.

Log 출력 터미날에서 출력되는 연속되는 레코드는 Collector에 의해 수집되고 레코드 어레이로 디스플레이 됩니다. WRITE CONTAINER I/O 트랜잭션을 사용하여 이 어레이를 파일로 출력하기 위하여 To File 오브젝트를 사용하거나 Dataset을 사용할 수 있습니다.

이 예제에서 Collector의 출력은 다음과 같이 레코드에 대한 레코드 어레이로 생각할 수 있습니다.

각 어레이 앨리먼트(Log[0], Log[1], 등.)는 sequencer의 하나의 반복자로 표현되는 레코드의 레코드입니다. 로깅된 출력은 표현식에서 분석을 위해 사용됩니다. 이 경우에는, Log[*].Test1.Result는 어레이에서 "core sample" 입니다. 사실은, Log[*].Test1.Result은 값(예제 결과인, 1.396, 1.353, 1.319, 및1.016)의 어레이를 출력합니다.

주의사항

로깅된 어레이는 3차원 어레이는 아니지만, 레코드에 대한 레코드 어레이입니다. 이것은 레코드의 각 필드가 다른 데이터 타입이라는 것이 중요합니다. Name 필드가 텍스트인 경우에는, Result 필드는 파형 등이 될 수 있습니다. 또한, Test2.Result 필드는 Test1.Result 필드가 실수 값인 경우에는 파형이 될 수도 있습니다.

반면에, 각 필드는 어레이에 일치하는 데이터 타입이어야 합니다. 예를 들어, 필드 Test1.Result는 Log[0]에 대해서는 실수값 및 Log[1]에 대해서는 파형이 될 수 없습니다.

아래의 예제는 위의 예제를 Sequencer 의 반복을 10회 하도록 확장하였고 로깅된 데이터를 분석하는 것을 몇개 추가하였습니다. Formula 오브젝트에 있는 표현식 log[*].test1.result는 test1의 결과를 가지는 10개의 앨리먼트를 가진 실수 어레이를 리턴합니다. 이 어레이는 min(x), max(x), mean(x), 및 sdev(x) 오브젝트의 평균에 의해 적절히 분석됩니다.

이 예제는 예제 디렉토리에 Manual44.vee 파일에 저장되어 있습니다.


예제: DataSet에 로깅(Logging)

로그된 테스트 결과를 저장하기 위하여 DataSet을 사용할 수 있습니다. 아래의 프로그램에서, Sequencer 오브젝트의 Log 출력 터미날은 To DataSet 오브젝트에 연결되어 있습니다.

For Count 오브젝트가 실행을 마치면, 저장된 DataSet (myDataSet)을 가져오기 위하여 From DataSet 오브젝트를 사용합니다. From DataSet은 myDataSet에서 모든 레코드를 가져오기 위해 설정되지만, 조건문 Rec.test1.pass AND Rec.test2.pass에 대한 각 레코드를 테스트하기 위한 것은 아닙니다. test1 및 test2가 레코드를 pass한 경우에만 특정한 레코드는 가져오게 됩니다.

가져온 레코드에서, 표현식 Rec[*].test1.result는 test1.result의 모든 레코드 필드를 리턴하고, 만족 여부가 분석됩니다. (이 프로그램은 레코드가 표현식 Rec.test1.pass AND Rec.test2.pass을 만족하지 않는 경우에는 에러를 리턴합니다.)

이 예제는 예제 디렉토리에 Manual45.vee 파일로 저장되어 있습니다.


예제: Bin Sort

다음 예제는 카본 저항의 저항 값을 측정합니다.

먼저, 카본 저항은 부정확한 프로세스로 제조되고, 테스트, 정렬, 표시되었습니다. 표준 저항값(220, 270 및 330?)은 10%의 공차로 일치되도록 선택하여서 각 저항은 사용할 수 있습니다. 저항값이 220?보다더 큰 경우에는 270옴?저항으로?표시합니다?

다음 그림은 Sequencer가 저항값을 리턴하는 UserFunction을 호출하는 프로그램을 나타냅니다. Sequencer는 저항값과 저항의 공차를 결정하기 위한 연속적인 테스트를 실행합니다. 이것은 "bin sort" 문제입니다. 즉, sequencer는 저항을 집어넣기 위한 bin을 지정하는 결과를 리턴하는 것입니다.

UserFunction을 호출하기 위해 Sequencer를 사용하는 장점 중의 하나는, 다른 UserFunctions이 대체될 수 있다는 것입니다. 이 예제로, 개발하는 동안에 예상 범위에서 랜덤 저항값을 리턴하는 UserFunction (simResist)를 사용합니다. 인스트루먼트 I/O를 실행하고 실제 저항값을 리턴하는 다른 UserFunction을 대체할 수 있습니다.

문제에 대한 간단한 해결책은 명목상의 값과 공차에 대한 저항값을 테스트하는 연속적인 시퀀스 트랜잭션을 사용하는 것입니다.

이 예제에서, 첫 번째 시퀀스 트랜잭션(test1)은 표현식 simResist()을 사용하여 UserFunction simResist을 호출합니다. (이UserFunction은 입력이 필요치 않습니다.) 이것이 첫 번째 시퀀스 트랜잭션입니다.

test1은 simResist가 명목상의 값 330W의 ±2%내에서 리턴되는 저항값 인지를 보기 위해 테스트합니다. 명목값 안의 값인 경우에는, 2개의 앨리먼트를 가진 Real 어레이 [330 2]가 Return 출력 터미날로 리턴되고, To String 오브젝트는 이 값을 330 옴, 2%라는 스트링으로 변환합니다. 테스트가 fail인 경우에는, Sequencer는 다음 테스트로 넘어갑니다.

두 번째 트랜잭션, test2는 FUNCTION 필드가 표현식 test1.result를 포함하는 simResist를 다시 사용하는 것을 제외하고는 test1과 유사하게 동작합니다. 이것이 두 번째 시퀀스 트랜잭션입니다.

주의사항

로깅이 인에이블된 트랜잭션은 test와 동일한 이름을 가진 "local" Record 변수를 생성합니다. 이 레코드는 레코드를 로깅하기 위한 지정된 필드를 포함합니다. 트랜잭션 test1에 대해서는, 표현식 test1.result는 test1에서 호출된 함수에 의해 리턴되는 값을 리턴합니다.

이 예제에서 표현식 test1.result를 사용하는 2가지 이유가 있습니다. 첫째로, 트랜잭션 test2부터 test9에서 test1.result을 사용함에 따라, 이후에 test1을 다른 함수를 호출하도록 변경한다 할지라도 각 트랜잭션이 동일한 함수 결과를 사용하도록 합니다.

이 예제에서 더욱 중요한 것은, 매번 UserFunction을 호출하는 것은 새로운 저항값이 리턴되도록 합니다. 새로운 값 대신에, 명목상의 값과 공차에 대한 원래의 저항값을 테스트를 계속 진행하고자 합니다. 그래서, 트랜잭션 test2부터 test9 사이의 모든 트랜잭션이 FUNCTION 필드에 표현식 test1.result을 포함합니다. 이들 트랜잭션은 pass인 경우에 어레이([330 5], [330 10], [270 2], 등.)를 출력하는 첫 번째와 유사하게 동작합니다.

첫 번째 8개의 테스트는 fail인 경우에는 다음 테스트로 넘어갑니다. 반면에, 모든 테스트가 fail인 경우에는 표시가 필요합니다. 따라서, test9에는 configured IF FAIL THEN ERROR을 설정합니다. Error 출력 터미날은 Error Condition이라는 제목의 AlphaNumeric 디스플레이를 실행하도록 하고 텍스트 Out of Range를 디스플레이 하도록 합니다.

이렇게 하는 것이 간단한 방법이지만, 그렇게 효율적이지는 않습니다. 매 경우 3개의 공차를 가진 몇 개의 저항값을 테스트하기 위해 조금 많은 숫자의 시퀀스 트랜잭션을 생성할 필요가 있습니다. 다음 그림은 "bin sort" 예제의 향상된 버전을 나타냅니다.

이 예제 프로그램은 예제 디렉토리에 Manual46.vee 파일로 저장되어 있습니다.

이 프로그램에서 몇 개의 중요한 사항은 다음과 같습니다:

• 이 프로그램은 2개의 Sequencer 오브젝트를 사용합니다. 첫 번째 오브젝트(Test Bounds로 표시된)는 두 번째 오브젝트(Test Value & Tolerance로 표시된)에 있는 테스트에 “재사용” 됩니다.

• 프로그램의 좌측 상단에 있는 Real64 어레이는 각각의 표준 저항값을 표시하는 5개의 앨리먼트를 가지고 있습니다. 값 리스트는 이 예제에서 확장할 수 있습니다. 앨리먼트의 숫자와 상관없이, TotSize(x) 함수는 그 숫자를 리턴하게 되어 For Count 오브젝트가 정확한 횟수를 반복하게 됩니다. Formula 오브젝트에 있는 표현식 R[i]는 인덱스를 취급합니다.

• Test Bounds라는 이름의 Sequencer에서는, 첫번째 트랜잭션(test1)은 표현식 simResist() 을 가진 UserFunction simResist을 다음과 같이 호출합니다.

시뮬레이션된 저항 테스트값은 어레이에서 가장 낮은 값(150?)의 90%인지를 리턴하고 테스트합니다. (시퀀스 트랜잭션에 있는 임의의 값 필드는 min(a)*.9와 같은 표현식을 가질 수 있습니다.)

두번째 트랜잭션(test2)는 값(test1.result)이 어레이에서 가장 높은값(330?)의 110%와 동일하거나 작은지를 테스트합니다. 다음 그림은 이 트랜잭션을 나타냅니다.

각각의 테스트가 fail인 경우에는, 에러가 발생합니다.

• 에러가 발생한 경우에는, Error Condition이라는 이름의 UserObject는 Out of Range: LOW 또는 Out of Range: HIGH를 디스플레이하기 위해 확인하기 위한 삼항 표현식을 사용합니다. UserObject은 Show Panel on Exec로 설정되어, 에러 조건이 발생한 경우에는 에러를 보이기 위하여 "pops up"을 디스플레이 합니다. 이것은 UserFunction simResist 이 100-400 범위에서 랜덤 값을 리턴하기 때문에 프로그램을 실행할 때 가끔 발생합니다. (계속 진행하기 위해서는, 팝업 박스에서 OK를 누릅니다.)

• 첫번쨰 Sequencer에 있는 트랜잭션 test1은 UserFunction simResist를 호출하는 유일한 트랜잭션입니다. (test2는 표현식 simResist 대신에 test1.result를 포합합니다.) 이것은 하나의 저항값에 대하여 복수의 테스트를 실행해야 하기 때문에 이 경우에 필요합니다. 다른 경우에는, 새로운 값이 UserFunction이 호출 될 때마다 매번 리턴됩니다. 거기에는 다른 이유가 있습니다.

UserFunction simResist가 한번 호출된 다음에는, 이것은 호출하여 다른 UserFunction으로 대체할 수 있습니다. 예제(manual46.vee)는 measResist 라 불리는 두번째 UserFunction을 포함하며, 이것은 저항 측정을 위하여 설정되는 HP 3478A Digital Voltmeter를 호출하기 위하여 Panel Driver를 사용합니다. HP 3478A 미터를 가진 경우에는, GPIB를 통하여 이 계측기를 연결하고 test1에 있는 FORMULA 필드를 표현식 measResist()로 변경하고 프로그램을 실행합니다.

• 시뮬레이션된 또는 측정된 저항값을 가지든 상관없이, Test Bounds 리턴값은 디스플레이 되고, 전역변수(globalOhms)로 설정됩니다. 예를 들어, Test Value & Tolerance로 표시된 Sequencer에 있는 3개의 트랜잭션은 표현식 globalOhms을 사용하여 매번 이 전역변수를 호출합니다. 다음 그림은 확장된 첫 번째 트랜잭션을 나타냅니다.

테스트가 pass된 경우에는, 적절한 실수 어레이(예, [220 2])가 출력됩니다. To String 오브젝트는 데이터를 스트링(예, 220 Ohm, 2%)으로 변환 합니다. Sequencer는 Bin Sort 결과가 찾아질 때까지 필요한 만큼 여러 번 실행됩니다.

• 각각의 Sequencer에서 Log 출력 터미날을 사용하지 않았기 때문에, 빠른 실행을 위하여 터미날을 삭제 하였습니다.

• 이 프로그램의 흐름 순서를 보기 위해서는, Show Execution Flow 와 Show Data Flow를 ON한 상태에서 프로그램을 여러 번 실행합니다.

Sequencer를 사용하는 몇개의 다른 예제를 보기 위해서는, 예제 디렉토리를 참조하십시오.


VEE Execute Program 오브젝트 이해하기

VEE에서는 다른 프로그래밍 언어로 작성된 프로그램을 실행시키는 2가지 방법이 있습니다. (ActiveX Automation 기술을 사용하는 방법을 포함하여 3가지):

1 Execute Program 오브젝트를 사용하여 VEE를 빠져나가 다른 프로그램, 응용프로그램, 또는 운영체제 명령어를 사용합니다. 이 방법은 기능이 많고 사용하기에 가장 편리합니다.

2 DLL(Dynamic Link Librarie)을 이용하여 다른 프로그래밍 언어에서 컴파일된 함수를 VEE에 링크 시킵니다. 이 방법은 실행하기에 조금 더 어렵긴 하지만, 성능이 우수합니다. 자세한 정보는 DLL 사용을 참조하십시오.

Execute Program 오브젝트는 I/O 메뉴에 있다. Execute Program 오브젝트는 다른 프로그램과 통신하기 위해서 트랜잭션 I/O를 사용하지 않습니다. 따라서 컴파일된 프로그램으로 입력되는 데이터에 입/출력핀을 추가할 필요가 없습니다.

관련정보

Execute Program, 쉽게 이식할 수 있는 프로그램 작성, 실습 8-6: 시스템 명령어 사용, 쉽게 이식할 수 있는 프로그램 작성.


Execute Program 오브젝트 사용하기

다음 그림은 PC용 Execute Program 오브젝트를 나타냅니다.

VEE 에서 다음과 같은 형태의 프로그램을 실행하기 위해서 Execute Program 오브젝트를 사용합니다:

• 다른 프로그래밍 언어로 작성된 컴파일된 프로그램

• *.BAT 또는 *.COM 파일

• MS DOS 시스템 명령어(예, dir)

• 알려진 확장자를 가진 문서 또는 URL. “open” 동작은 파일 내에 선언됩니다. 디폴트 동작이 파일에 선언되어 있으면 “open” 동작이 나타나지 않습니다. (URL의 예: http://www.agilent.com/find/vee)

Execute Program 오브젝트의 필드들은 아래의 표와 같습니다:

필드 이름 | 설명
Run Style | 윈도우 크기를 지정합니다. Normal은 표준윈도우를, Minimized는 아이콘화를, Maximized는 최대크기를 각각 지정합니다. Working directory에는 관련 파일이 저장된 폴더를 지정합니다.
Wait for prog exit | 시퀀스핀을 활성화할 시기를 지정합니다. • Yes로 설정하면, 프로그램을 완료할 때까지 시퀀스핀이 활성화되지 않습니다. • No로 설정하면, 시퀀스핀은 프로그램이 완료되기 전에 활성화됩니다. 문서 또는 URL이 실행 중 일 때, 문서 또는 웹사이트가 응용프로그램으로 로딩되어 있을 경우(이미 실행된 상태), VEE는 응용프로그램이 종료될 때 가지 기다리지 않습니다.
Prog with params | 이 필드에는 도스 상에서 입력하는 명령어를 입력합니다. 예를 들어, C로 작성된 프로그램을 실행하기 위해서는 실행파일 이름을 입력합니다. myprog.exe (.exe 확장자를 생략할 수 있습니다.) • 프로그램이 파라미터를 가지고 있다면, 실행파일이름 뒤에 myprog.exe –param1 –param2와 같이 하이픈과 함께 파라미터를 입력합니다. • Windows 2000, 및 Windows XP에 대해서는, 명령어 cmd /c <system command>를 입력합니다. 이 옵션은 명령어 해석기가 /c 옵션 다음의 문자열을 시스템 명령어로 읽도록 합니다.

관련정보

Execute Program, 실습 8-6: 시스템 명령어 사용, 쉽게 이식할 수 있는 프로그램 작성


시스템 명령어 사용법

다른 프로그래밍 언어로 컴파일된 프로그램을 호출하려면, Execute Program 오브젝트에 실행파일 이름과 파라미터를 입력합니다.

그러나, MS DOS 시스템 명령을 실행하려면 먼저 DOS 명령어 해석기를 먼저 실행해야 합니다. 실습 8-6: 시스템 명령어 사용을 참조하십시오.

관련정보

Execute Program, Execute Program 오브젝트 사용하기, 쉽게 이식할 수 있는 프로그램 작성


쉽게 이식할 수 있는 프로그램 작성

VEE는 Function & Object Browser [image] System Information 안에서 시스템 정보와 관련된 함수를 제공합니다. 이 오브젝트들은 함수로 사용될 수 있습니다.

Function & Object Browser에 들어있는 시스템 정보 함수들은 일반적으로 프로그램 이동과 관련된 기능을 제공합니다:

함수 이름 | 설명
installDir | VEE가 설치된 폴더를 지정합니다.
whichOS | 운영제체를 체크하고 다음의 문자열 중 하나를 전송 합니다: Windows_98, Windows_2000, Windows_NT, Windows_ XP. 다른 프로그램 언어로 작성된 프로그램을 통합할 때, 프로그램은 이 결과를 바탕으로 분기할 수 있습니다. 예를 들어, example\manual 폴더의 manual49.vee 의 경우, 라이브러리의 올바른 타입의 임포트를 확실히 하기 위해 whichOS() 함수를 사용합니다. PC에서는, DLL(Dynamic Link Librar)을 임포팅 할 수 있습니다.
whichplatform | VEE가 실행되고 있는 하드웨어 시스템을 체크하고 플랫폼을 가리키는 문자열을 리턴합니다.
whichVersion | VEE의 버전을 출력합니다. VEE 버전은 프로그램 유지보수와 디버깅시 유용하게 사용됩니다.

관련정보

Execute Program, Execute Program 오브젝트 사용하기, 시스템 명령어 사용법


MATLAB 스크립트 오브젝트 사용

VEE 프로그램에서 MATLAB 오브젝트는 VEE의 Formula 오브젝트처럼 보입니다. VEE프로그램에 MATLAB 오브젝트를 두 가지 방법으로 추가할 수 있습니다:

1 Device [image] MATLAB Script를 선택하고 클릭하여 프로그램에 디폴트 MATLAB 오브젝트를 생성합니다. 이 MATLAB 스크립트 오브젝트는 편집할 수 있습니다.

2 Device [image] Function & Object Browser를 실행하고, Type: MATLAB Functions를 선택합니다. 기본 제공된 MATLAB 함수를 선택하고 Create Formula를 클릭합니다(또는 Functions 그룹 상자에 있는 함수를 더블 클릭합니다). 다음 그림은 MATLAB 스크립트의 내장함수의 사례입니다.

MATLAB 스크립트는 MATLAB Script<function name> 형식의 이름을 가지고 있어 일반 VEE Formula 오브젝트들과 쉽게 구별할 수 있습니다. MATLAB 스크립트에는 이미 함수들이 입력되어 있고, 일반적으로 사용되는 입/출력핀도 생성되어 있습니다. 그러나 일반적인 VEE 오브젝트와 마찬가지로 MATLAB 스크립트 오브젝트도 수정하여 사용할 수 있습니다.

주의사항

MATLAB 함수에 대한 더욱 자세한 내용은 VEE의 메인 윈도우에서 Help [image] MATLAB Script [image] Help Desk를 실행합니다.

관련정보

To Work with Data Types Agilent VE E에 내장된 MATLAB Script MATLAB Script.

Copyright (c) 1991-2006 Agilent Technologies, Inc.


데이터 타입에 대한 고려

VEE 데이터 타입의 일부 데이터 타입만을 MATLAB 오브젝트의 입력과 출력핀으로 사용할 수 있습니다.

VEE 함수와 MATLAB 함수를 동시에 사용하는 프로그램에서 사용할 수 있도록, VEE는 1차원 어레이를 자동으로 변환합니다. 예를 들어, VEE의 1차원 텍스트 어레이는 MATLAB 스크립트 오브젝트로 입력될 때 자동으로 2차원 텍스트 어레이로 변환되고, MATLAB 스크립트 오브젝트로부터 출력될 때 1차원 텍스트 어레이를 자동으로 텍스트 스칼라로 변환합니다.

주의사항

VEE와 MATLAB간의 데이터 타입의 자동변환에 관한 정보는 MATLAB Script를 참조하십시오.

또한 아래의 예제와 같이, 입력터미날 데이터 타입에 제한하여 다른 오브젝트로부터 입력되는 데이터가 자신이 사용할 수 있는 타입으로 자동변환 되도록 할 수 있습니다.

1 Data [image] Constant [image] Int32를 클릭하여 오브젝트를 배치합니다. 값을 7로 변경합니다. 오브젝트를 클론하여 두 번째 Int32 오브젝트를 원본의 아래에 배치합니다. 값을 20으로 변경합니다.

2 Device [image] MATLAB Script를 선택하고 오브젝트를 Constant 오브젝트의 오른쪽에 배치합니다.

3 Display [image] AlphaNumeric을 선택하고 MATLAB 스크립트 오브젝트의 오른쪽에 배치합니다.

4 위쪽의 Int32 오브젝트 출력핀을 MATLAB 스크립트 오브젝트의 A 입력에 연결하고, 아래쪽의 Int32 오브젝트 출력핀을 입력 B에 연결합니다. MATLAB 스크립트 오브젝트의 출력을 AlphaNumeric 오브젝트의 입력핀에 연결합니다.

프로그램을 실행시킵니다. “사용할 수 있는 입력은 Real64, Complex, Waveform 또는 Text 이지만, Int32가 입력 되었다”는 내용의 VEE 런타임 에러가 발생합니다.

이와 같은 에러 발생을 막으려면, MATLAB 스크립트 오브젝트에 있는 입력 터미날의 데이터 타입을 변경합니다

5 터미날 A를 더블클릭 하여 Input Terminal Information 대화상자를 엽니다. 그림과 같이 Required Type: 항목을 클릭하여 드롭다운 메뉴에서 Real64를 선택합니다. 동일한 방법으로 터미날 B를 더블클릭 하여 Real64 타입으로 변경합니다.

6 프로그램을 실행합니다. Int32 데이터 타입은 MATLAB으로 입력되기 전에 자동으로 Real64 타입으로 변경됩니다.

관련정보

W orking with Data Types Using MATLAB Script in Agilent VEE MATLAB Script.


ActiveX Automation 사용하기

ActiveX Automation 타입 라이브러리 검색

VEE에서 Devices [image] ActiveX Automation References를 실행하면 ActiveX Automation References 대화상자가 출력되며, 여기서 사용자의 컴퓨터에 설치된 Automation 오브젝트를 검색 할 수 있습니다.

주의사항

ActiveX Control References에 대해서는, Help 메뉴 아래에 있는 Contents and Index에서 How do I ... build an Operator Interface를 참조하십시오. 또한, “콜러블 VEE ActiveX Automation 서버” 도 참조합니다.

Automation Server가 될 수 있는 어플리케이션 소프트웨어나 ActiveX 컴포넌트들은 타입 라이브러리를 컴퓨터에 스스로 등록합니다. 따라서 위에서 언급한 Devices [image] ActiveX Automation References 메뉴를 실행하여 VEE에서 이들을 검색, 선택하여 사용할 수 있게 됩니다. 또한 이들 오토메이션 서버들은 AcitveX 클라이언트가 오토메이션 서버에 접속하여 사용할 수 있도록 자신들이 제공하는 기능에 관한 정보를 제공합니다. (VEE에서 Excel을 호출하는 경우, Excel이 ActiveX Automation Server이며, VEE가 Client가 됩니다.)

타입 라이브러리는 일반적으로 클래스로 구성됩니다. 일부 클래스는 프로그래머에 의해 생성될 수 있지만, 대부분의 클래스는 어플리케이션이나 컴포넌트에 의해 생성됩니다. 또한 이들 클래스는 일반적으로 특성, 메서드 및 이벤트로 구성되지만 이들의 일부만을 가지기도 합니다. 타입 라이브러리는 ActiveX 인터페이스를 사용하는 어플리케이션 및 컴포넌트를 사용하는데 필요한 정보를 프로그래머와 VEE 환경에 제공합니다.

ActiveX Automation Reference 대화상자에서 선택된 타입 라이브러리는 VEE 프로그램에서 라이브러리 오브젝트로 사용할 수 있습니다. 예를 들어, 다음 그림에서는 Microsoft Excel 9.0을 선택했습니다. (ActiveX Automation Reference 대화상자에 출력되는 목록은 현재 사용자가 사용하는 컴퓨터에 설치된 어플리케이션의 종류 및 버전에 따라 다릅니다.)

Agilent VEE에서 ActiveX프로그램 생성과 사용

VEE가 ActiveX 프로그램과 통신하기 위해서 사용하는 데이터 타입은 오브젝트입니다. 오브젝트 데이터 타입을 가진 VEE 오브젝트는 Automation Server가 소유하고 있는 것 또는 데이터를 가리키는 포인터입니다. 예를 들어, 오브젝트 데이터 타입을 가진 VEE 오브젝트는 MS Excel의 워크시트 또는 워크시트 내부의 셀을 가리킬 수 있습니다. (기술적으로 오브젝트는 MS Excel 또는 Server에 의해 리턴되는 IDispath 인터페이스를 가리킵니다.)

예를 들어, 사용자가 Data [image] Variable [image] Declare Variable을 선택하고, 이름을 App로, 데이터 타입을 Object로 정의하면, 변수 App를 사용하여 Excel Automation Server등의 ActiveX Automation 오브젝트를 가리킬 수 있습니다. 다음 그림은 오브젝트의 데이터 타입을 오브젝트로 설정하는 방법입니다.

ActiveX 표현식 실행

Excel 등의 ActiveX Automation Server와 통신하기 위해서는, VEE의 Formula 오브젝트에 ActiveX 명령을 입력합니다. 예를 들어, 다음 예제는 이름이 Set up Excel Worksheet인 VEE의 Formula 오브젝트인데, 여기에 작성된 명령어는 측정결과를 셀에 표시하기 이전에 엑셀 워크시트를 설정하는 내용입니다.

VEE는 ActiveX Automation 통신시 Microsoft Visual Basic 표준 문법을 사용하며, 여기서 사용하는 명령어는 3 가지로 분류됩니다. (get properties: 속성읽기, set properties: 속성쓰기 및 call methods: 메서드 호출)

• Get property 구문은 데이터 타입을 얻을 때 사용합니다. <object>.<property>의 형식으로 되어 있습니다. (예, sheet.application은 sheet 오브젝트의 application 속성값을 읽어옵니다.)

• Set property 구문은 데이터의 타입을 설정할 때 사용합니다. <object>.<property>= <property type>의 형식으로 되어 있습니다. (예, object.property = MaxSize는 property 속성값을 MaxSize로 설정합니다.)

• Call methods는 메서드를 호출합니다. 메서드는 전달되는 변수와 리턴되는 변수를 가지며, <object>.<method>(parameters)의 형식으로 되어있습니다.

주의사항

Object 데이터 타입을 가진 오브젝트에서 사용하는 문법은 VEE 문법(레코드 필드를 얻을 때 사용하는 rec.field 또는 UserObject를 호출할 때 사용하는 myLib.func() 등)과 유사하게 보입니다. 따라서 변수의 기능을 쉽게 이해할 수 있도록 변수의 이름을 지정하는 것이 좋습니다.

CreateObject 및 GetObject

이전 섹션에 있는 Set up Excel Worksheet 오브젝트에서 CreateObject() 구문을 사용하여 함수를 호출하고 있습니다. 이 명령어는 VEE가 사용하는 ActiveX 오브젝트의 포인터를 가져옵니다.

예를 들어, CreateObject(“Excel.Sheet”) 명령어는 Excel을 시작하고 Excel 안의 workbook의 참조를 리턴합니다. (Microsoft 구문 “sheet”는 workbook를 리턴합니다.) 실행되고 있는 Excel에서 데이터를 가져오던가, 또는 실행되고 있는 Excel에 파일을 로드할 때는 GetObject() 명령을 사용합니다.

CreateObejct와 GetObject는 Device [image] Function & Object Browser의 Built-in Functions, ActiveX Automation에서 제공됩니다. 다음 그림은 CreateObject 와 GetObject의 사용 사례입니다

.

관련정보

실습 6-1: Agilent VEE 데이터를 MS Excel로 전송

실습 6-2: 측정결과를 MS Excel 템플릿으로 전송하는 Agilent VEE 프로그램 생성

실습 6-3: MS Word를 이용한 Agilent VEE 보고서 작성


VEE Excel Library 소개

Agilent는 2005년 5월에 PASS Technologies Inc로부터 Vxl 제품을 확보하였습니다. 현재 Excel Library라는 명칭으로 사용되고 있으며, Microsoft Excel과 VEE를 연결해주는 링크를 생성하는 UserFunctions의 라이브러리입니다. 과거에는 Microsoft Excel을 제어하기 위하여 ActiveX를 사용했지만, 현재는 Excel Library를 사용하여 간단히 VEE와 Microsoft Excel사이에서 데이터를 주고 받고, Microsoft Excel 차트를 사용하고, Microsoft Excel 데이터로 변경할 수 있습니다.

VEE Excel Library는 Microsoft Office 2000 이상에서 실행할 수 있습니다.


VEE Excel Library 초기화하기

VEE Excel Library를 사용하기 전에 이것을 초기화하는 UserFunctions 라이브러리가 임포팅 되어야 합니다.

오브젝트 위치

VEE 메인 메뉴에서 Excel [image] Initialize Excel Library


VEE Excel 라이브러리 세션을 디폴트로 설정하기

Settings 사용자 오브젝트를 통해서 VEE Excel 라이브러리 세션을 디폴트 값으로 설정합니다. Settings 사용자 오브젝트에는 Call xlLib.Settings 오브젝트 및 Record 오브젝트의 2 개 의 오브젝트가 있습니다.

오픈뷰 항목

Record 오브젝트는 설정값을 정의하고 xlLib.Settings 오브젝트를 호출합니다. xlLib.Settings 오브젝트는 설정을 구현하는 사용자함수를 호출합니다. Record 오브젝트의 오픈뷰 항목은 다음과 같습니다.

  • Visible -- 마이크로소프트 엑셀을 시각적으로 보이게 합니다. 이것을 False로 설정하면 해당 순간에는 사용자의 관심을 VEE 프로그램으로 끌어들일 수 있습니다. 이 항목의 디폴트 설정은 True 입니다. Print 항목을 Preview로 설정해도 Excel 을 보이게 합니다.

  • WindowMode -- 마이크로소프트 엑셀 프로그램 윈도우에 관련한 항목입니다. 이 항목을 Normal(마이크로소프트 엑셀 윈도우가 열려있지만, 창의 크기가 최대가 아닌 상태), Minimized 또는 Maximized로 설정할 수 있습니다. 디폴트 값은 Normal 입니다.

  • BookWindowMode -- 마이크로소프트 엑셀의 활성화된 워크북 윈도우에 관련한 항목입니다. 이 항목을 Normal(워크북 윈도우가 열려있지만, 창의 크기가 최대가 아닌 상태), Minimized 또는 Maximized로 설정할 수 있습니다. 디폴트 값은 Normal 입니다.

  • ArrangeWindows -- 여러 개의 워크북을 사용하는 상태에서, 이 기능을 사용하면 워크북의 디스플레이 형태를 정렬할 수 있습니다. Cascade, Horizontal, Tiled, 또는 Vertical을 선택할 수 있습니다. 이 항목은 BookWindowMode 항목이 Normal 로 설정된 경우에만 사용할 수 있습니다. 디폴트 값은 Normal 입니다.

  • Error Action -- 이 항목은 VEE Excel 라이브러리가 어떻게 관리하는지 결정합니다. 디폴트 값은 RaiseError 입니다. 각 항목의 내용은 다음과 같습니다.:

  • RaiseError -- VEE Excel 라이브러리가 에러 핸들러 내부에서 에러를 발생합니다. 이 설정을 사용하도록 권장합니다.

  • Quit -- VEE Excel 라이브러리가 모든 워크북을 닫습니다; 이 에러가 발생하기 이전에 워크북이 저장되지 않은 데이터는 손실됩니다. VEE Excel 라이브러리가 엑셀세션을 언로딩합니다.

  • OKCancel -- 타임아웃이 30초인 대화상자를 표시합니다. 이 항목을 OK로 설정하면, 에러가 무시됩니다. 이 항목을 Cancel로 설정하면, 에러가 발생합니다. 타임아웃이 종료된 경우에는 에러가 발생합니다.

  • Ignore -- 에러가 무시됩니다. 에러가 다시 발생할 가능성이 있습니다. 따라서 사용자가 중간에 개입할 필요가 있을 때 이 설정을 사용하면 좋습니다.

  • DisplayAlerts -- 디폴트 설정값은 True 입니다. 마이크로소프트 대화상자가 표시되어야 할 상황에서 이들 대화상자를 표시합니다. 대화상자가 자주 표시되는 것을 방지하기 위해서는 이 항목을 False로 설정하십시오. 주의 : DisplayAlerts 을 False로 설정하면 마이크로소프트 엑셀이 실행정지 상태에 빠질 수 있습니다. 마이크로소프트 엑섹이 기존 파일의 내용 덮어쓰기에 대해서는 'Save Workbook As' 오브젝트를 참조하십시오.

주의사항

이 설정은 Select Workbook오브젝트를 사용시 활성화된 워크북에 적용됩니다.

이 설정내용은 Open Workbook 또는 New Workbook를 실행하여 열린 워크북에는, 이들에 Settings의 내용을 적용하였을 때는, 적용되지 않습니다. Settings가 Open 이나 New의 설정을 따를 때와 현재 사용중인 워크북에만 영향을 미칩니다.

프로그램을 작성하여 디버깅하는 동안에는, Settings 오브젝트의 Visible 속성을 True로 설정할 필요가 있습니다. 사용자가 작성한 프로그램이 정상적으로 동작하지 않거나, 마이크로소프트 엑셀 세션으로 정상적으로 종료하지 못하면, 작업관리자에 여러 개의 엑셀 세션이 남아있게 됩니다. 이들 세션들은 많은 양의 메모리를 사용하게 되어 엑셀에서 다른 에러를 발생하게 할 수 있습니다. 이렇게, 비정상적으로 많은 수의 엑셀세션이 남아있는 경우에는 컴퓨터의 작업관리자에서 이들을 삭제하시기 바랍니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Settings


추가된 VEE 엑셀 라이브러리 종료하기

Call xlLib.QuitExcelLibrary 오브젝트는 모든 워크북을 닫고, 마이크로소프트 엑셀세션을 언로딩하고, 추가된 VEE 엑셀 라이브러리를 제거하는 UserFunction을 호출합니다.

주의: 엑셀 라이브러리를 종료할 때, 워크북을 자동으로 저장하지는 않습니다. 내용을 수정하여 변경된 엑셀 워크북을 저장하기 위해서는 Save All Workbooks 또는 Save Workbook As를 호출해야 합니다.

주의사항

엑셀 라이브러리가 제거되지 않은 경우에는, 마이크로소프트 엑셀 프로세스가 실행중인 채로 남아있습니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Quit Excel Library

ActiveX 참조 종료를 참조하십시오.


새로운 워크북 열기

Open New Workbook 메뉴항목은 Microsoft Excel 워크북을 생성하기 위해 사용합니다.

사용법

Call xlLib.NewWorkbook 오브젝트는 새로운 Excel 워크북을 생성하기 위한 UserFunction을 호출합니다. 워크북은 예를 들어 Book8과 같은 디폴트 이름을 가집니다. 워크북이 적절한 이름을 가지도록 하려면, xlLib.NewWorkbook 오브젝트를 SaveWorkBookAs와 함께 사용하든지, 프로그램에 있는 워크북을 선택하기 위한 SelectWorkbook을 사용하고 SaveWorkBookAs를 사용하십시오.

오브젝트 위치

메인메뉴에서 Excel [image] New WorkBook

관련정보

워크북을 새로운 이름, 포맷 또는 위치에 저장하기, 기존에 존재하는 워크북 열기

실습 8-1: WorkBook을 이용한 작업


기존에 존재하는 워크북 열기

Open Workbook은 마이크로소프트 엑셀 워크북 파일을 엽니다.

오픈뷰 항목

Open Workbook 메뉴 항목은 File Name Selection 오브젝트와 OpenWorkbook UserObject를 가지고 있습니다. OpenWorkBook UserObject 내에는, Open Workbook 오브젝트와 UserFunction을 호출하기 위한 Call xlLib.OpenWorkbookRW 오브젝트가 있습니다.

File Name Selection 오브젝트는 Data Dialog File Name Selection에서 제공하는 표준 오브젝트입니다. 이 오브젝트에 대한 자세한 내용은 VEE의 온라인 도움말을 참조하십시오.

Open Workbook 오브젝트의 오픈뷰 항목은 다음과 같습니다:

  • ReadOnly -- 이것은 파일이 읽기전용 또는 저장가능 형식으로 열리는 것을 설정합니다. 입력할 수 있는 값은 True 또는 False입니다. 디폴트 값은 False입니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Open Workbook

관련정보

새로운 워크북 열기 또는 File Name Selection

실습 8-1: WorkBook을 이용한 작업


워크북 저장하기

Save Workbook 메뉴 항목은 기존의 워크북을 덮어씌워 저장합니다.

사용법

TCall xlLib.SaveWorkBook UserFunction은 워크북을 저장합니다. 기존의 워크북을 덮어씌웁니다.

주의사항: 이것은 '모든 워크북 저장하기’ 함수가 아닙니다. 이것은 단지 활성화된 워크북 만을 저장합니다.

주의: 메뉴 Excel [image] Settings [image] DisplayAlert이 False로 설정된 경우에는, 기존의 파일을 덮어씌울 때 확인하는 대화상자가 나타나지 않습니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Save Workbook

관련정보

실습 8-1: WorkBook을 이용한 작업


워크북을 새로운 이름, 포맷 또는 위치에 저장하기

이 기능은 활성화된 워크북을 새로운 이름, 새로운 포맷 또는 새로운 위치에 저장할 수 있습니다.

사용법

SaveWorkbookAs UserObject는 워크북을 새로운 이름, 새로운 포맷 또는 새로운 위치에 저장하기 위해 사용합니다. Save Workbook As를 호출할 때 Select Workbook도 함께 사용합니다. Save Workbook As는 활성화된 워크북에서만 동작합니다.

SaveWorkbookAs의 입력핀에는, 전체 경로와 파일이름(파일 이름 확장자 포함)을 제공하는 텍스트 상수 또는 공식을 설정합니다. 이것은 새로운 파일 이름이 됩니다.

주의: Settings 오브젝트에서 DisplayAlerts이 False로 설정된 경우에는, 마이크로소프트 엑셀에서는 경고하는 대화상자가 나타나지 않고 기존 파일을 덮어쓸 수도 있습니다.

오픈뷰에는 사용할 수 있는 2개의 오브젝트가 있습니다: Call xlLib.SaveWorkbookAs 및Workbook Type.

Workbook Type 레코드는 Workbook Type 버튼을 가집니다. Workbook Type 옵션은 다음과 같습니다:

  • Normal -- Normal은 마이크로소프트 2000 버전 이상으로 파일을 저장하기 위해 사용합니다.

  • CSV -- CSV(데이터가 컴마로 분리된) 파일 포맷으로 저장합니다. 이 파일은 콤마 구분문자는 콤마로 처리하는 것을 제외하고는 텍스트 파일과 동일한 특징을 가집니다.

  • MSDOSCSV -- MS-DOS CSV 파일 포맷으로 저장합니다.

  • WINDOWSCSV -- Windows CSV 파일 포맷으로 저장합니다.

  • Text -- 활성화된 워크시트의 셀에 디스플레이된 텍스트와 값을 텍스트 파일 포맷으로 저장합니다. 컬럼 데이터는 탭으로 구분되고, 각 행 데이터는 캐리지 리턴에서 끝납니다. 콤마를 포함하는 셀은 인용부호(“ ”)로 표시합니다. 모든 포맷, 그래픽, 오브젝트 및 텍스트가 아닌 워크시트 내용들은 무시됩니다. 행에 있는 모든 데이터와 셀에 있는 모든 문자들은 저장됩니다. 셀이 공식은 있지만 값이 없는 경우에는, 공식은 텍스트로 저장됩니다. 유로 심볼은 물음표로 변환됩니다.

  • TextPrinter -- 프린터로 텍스트 파일을 출력합니다. 새로운 텍스트 파일에서는, 데이터는 스프레드시트에 있었던 위치와 같은 위치를 가집니다. 다른 모든 규칙은 Text 출력에서 설명한대로 적용됩니다.

  • Excel9795 -- 스프레드시트 데이터를 Excel 97/95 호환 포맷으로 출력합니다.

  • xlHTML -- xlHTML은 엑셀 스프레드시트 데이터를 HTML로 변환합니다.

주의사항

동일한 파일 이름으로 저장하려고 하는 경우에는, 대화상자가 나타납니다. 아니오를 선택한 경우에는, VEE 런타임 에러가 발생합니다. 이러한 에러를 방지하기 위하여 다른 이름을 사용하거나 I/O 메뉴 아래에 있는 VEE To File 오브젝트를 사용하십시오. 에러를 방지하고 사용자의 입력이 필요한 대화상자가 나타나는 것을 방지하기 위하여 To File 오브젝트에서 Execute Delete 트랜잭션을 사용합니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Save Workbook As

관련정보

실습 8-1: WorkBook을 이용한 작업


워크북 선택하기

이 UserObject는 현재 열려있는 워크북에서 마이크로소프트 워크북을 선택합니다.

사용법

Save Workbook As 오브젝트를 뒤에 사용하는 Open Workbook 또는 New Workbook 오브젝트를 사용하여 워크북을 엽니다. 다음으로는 프로그램에서, 작업하고자 하는 워크북을 선택하기 위하여 SelectWorkbook 오브젝트를 사용합니다. 입력핀에는, 선택하고자 하는 워크북의 전체 이름을 가지는 텍스트 상수 또는 공식을 연결합니다. 워크북 이름은 열린 워크북의 전체 경로이름 또는 워크북 이름(.xls 확장자를 포함하는) 또는 "Book1" 같은 추가된 워크북의 워크북 이름이 될 수 있습니다. 선택한 워크북이 활성화된 워크북이 됩니다.

주의사항

TVEE Excel Settings은 선택한 워크북에 적용됩니다.

디버깅을 목적으로, 워크북을 나열할 수도 있습니다. 이 기능은 현재 열린 워크북을 리스트로 나열합니다. Enumerations [image] Enumerate Workbooks을 참조하십시오.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Select Workbook

관련정보

실습 8-1: WorkBook을 이용한 작업


워크북 닫기

Close Workbook 과 Close All Workbooks은 열려있는 하나 또는 모든 마이크로소프트 엑셀 워크북을 닫기 위해 사용합니다.

사용법

Close Workbook은 현재 선택된 워크북을 닫기 위해 사용하지만, Close All Workbooks은 열린 모든 워크북 세션을 끝내기 위해 사용합니다.

주의: Close Workbooks을 사용할 때, 워크북을 자동으로 저장하지는 않습니다. 수정하여변경된 엑셀 워크북을 저장하기 위해서는 Save All Workbooks 또는 Save Workbook As를 호출해야 합니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Close Workbook or Excel [image] Close All Workbooks.

관련정보

워크북을 새로운 이름, 포맷 또는 위치에 저장하기 또는 워크북 저장하기

실습 8-1: WorkBook을 이용한 작업


새로운 워크시트 열기

New Sheet 메뉴 항목은 선택한 워크북에 새로운 워크시트를 생성하기 위해 사용합니다.

사용법

시트의 새로운 이름이 포함된 텍스트 상수나 공식을 생성합니다 (이름에 * % $ # @ !는 사용하지 마십시오). 이 오브젝트를 NewWorksheet 오브젝트의 입력핀으로 연결합니다. 엑셀에서 자동으로 생성되는 시트 이름을 사용하기 위하여 빈 스트링("")을 전송할 수도 있습니다.

새로운 워크시트는 자동으로 활성화되어, 워크시트를 선택할 필요가 없습니다.

주의사항

NewWorksheet는 활성화된 워크북에서만 동작합니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] New Sheet


시트 선택하기

워크시트를 선택하기 위하여 Sheet 메뉴항목을 사용합니다.

사용법

시트 이름을 제공하기 위하여 입력핀에 텍스트 상수나 공식을 사용합니다. 이 시트는 열린 워크북에서 활성화된 시트가 됩니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Select Sheet


Microsoft Excel 워크북, 워크시트등을 Enumerate하기

메인 메뉴 옵션인 Enumerations은 4개의 선택항목을 가집니다: Workbooks, Worksheets, Charts 및 Names. 이 오브젝트들은 리스트를 생성하고 이들 아이템을 카운트하는데 사용합니다.

사용법

모든 enumeration 오브젝트는 동일한 구조를 가집니다. 이것들은 2개의 출력핀을 가진UserFunction을 호출합니다. 위의 핀은 오픈된 아이템의 이름을 1차원 어레이로 출력하는데 사용합니다. 아래 핀은 위의 출력핀에 있는 어레이의 사이즈를 제공합니다.

모든 enumeration 오브젝트는 동일한 구조를 가집니다. 이것들은 2개의 출력핀을 가진UserFunction을 호출합니다. 위의 핀은 오픈된 아이템의 이름을 1차원 어레이로 출력하는데 사용합니다. 아래 핀은 위의 출력핀에 있는 어레이의 사이즈를 제공합니다.

Enumerations은 또한 영문 버전이외의 Microsoft Excel 버전을 사용할 때 유용합니다. Microsoft Excel은 다른 언어에서는 다른 워크시트의 이름을 사용합니다. Worksheets를 이뉴머레이션하면, 워크시트의 이름을 가져옵니다. examples\ExcelLibrary\Charts\BarChart.vee에 있는 예제 BarChart.vee 를 참조하고, "Localize..." UserObject를 자세히 관찰하십시오.

오브젝트 위치

VEE 메인메뉴에서 Excel [image] Enumerations [image] Enumerate Workbooks
VEE 메인메뉴에서 Excel [image] Enumerations [image] Enumerate Worksheets
VEE 메인메뉴에서 Excel [image] Enumerations [image] Enumerate Charts
VEE 메인메뉴에서 Excel [image] Enumerations [image] Enumerate Names

관련정보:

실습 8-2: Workbook 열거형을 이용한 작업


텍스트 포맷 지정하기

Format Text 메뉴 항목은 셀, 범위, 지정된 범위, 행, 열에 대한 텍스트의 형식을 지정하기 위해 사용합니다.

사용법

FormatText UserObject는 형식을 지정할 영역을 캡쳐하기 위해 사용하는 입력핀을 가지고 있습니다. 이 입력핀을 통해 셀, 행, 열, 지정된 범위 또는 범위를 FormatText UserObject로 전송할 수 있습니다. 셀은 a9로, 범위는 a9:j22와 같은 형식(대소문자 구분 안함)으로 지정됩니다.

FormatText UserObject는 UserFunction xlLib.FormatText 와 the Text Format Settings 오브젝트를 호출합니다. Text Format Settings 오브젝트는 셀에 있는 데이터의 모양을 관리하기 위해 사용합니다. 예를 들어 폰트, 굵게, 이태릭체등 과 좌우정렬등 입니다. 더 자세한 내용은 오픈뷰 항목을 참조하십시오.

배경색, 그리드 라인, 숫자 형식등과 같은 셀 배경 파라미터의 형식을 지정하기 위해서는 셀의 포맷 지정하기를 참조하십시오.

오픈뷰 항목

Text Format Settings 레코드 오브젝트의 오픈뷰 항목은 다음과 같습니다:

  • FontName -- 디폴트 폰트는 Courier New입니다. 시스템에서 지원하는 모든 폰트를 설정할 수 있으며 FontName 필드에 폰트의 이름을 입력합니다.

  • ForeColor -- 디폴트 전경색깔은 black입니다. 46개의 색상을 지정할 수 있습니다.

  • Bold -- true나 false로 설정되며, 디폴트 값은 True입니다.

  • Italic -- true나 false로 설정되며, 디폴트 값은 False입니다.

  • Underlined -- true나 false로 설정되며, 디폴트 값은 False입니다.

  • Size -- 8부터 72까지의 글자 크기를 지정할 수 있으며, 디폴트 값은 14 point입니다.

  • HorizontalAlignment -- 사용할 수 있는 정렬방식은 left, center, right, justify, 또는 general입니다. 디폴트 값은 left입니다. General 형식으로 지정하면 입력한 그대로 디스플레이 됩니다. 반면에 셀이 전체 숫자를 표시하기에 좁은 경우에는 General 형식은 숫자를 반올림하고 아주 큰 수에 대해서는 과학 표기법을 사용합니다.

  • VerticalAlignment -- 사용할 수 있는 정렬방식은 top, bottom, 또는 center입니다. 디폴트 값은 bottom입니다.

  • WordWrap -- 셀 안에서 텍스트 값 감추기. 텍스트는 근처에 있는 비어있는 셀로 넘어가서 디스플레이 되지는 않습니다. Wordwrap은 텍스트 값에만 적용됩니다.

  • ShrinkToFit -- 텍스트를 셀에 맞추기 위하여 텍스트의 폰트사이즈를 줄입니다. 이것은 WordWrap이 off되어 있을 때나 셀이 현재의 텍스트 폰트를 디스플레이 하기에는 현저히 적을 때만 동작합니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Formatting [image] Format Text

관련정보

셀의 포맷 지정하기 및 예제 FormatTextAllColors.vee


셀의 포맷 지정하기

엑셀에 셀 포맷 정보를 제공할 때 Format Cells 오브젝트를 사용합니다.

사용법

Format Cells 사용자오브젝트는 셀 포매팅 정보를 엑셀에 전달합니다. 포맷할 셀을 하나의 셀, 행, 열, 이름을 가진 범위, 또는 셀의 범위로 지정할 수 있습니다.

포맷할 셀 또는 여러 개의 셀의 위치는 하나의 입력핀으로 제공합니다.

이 사용자오브젝트는 xlLib.FormatCells를 호출하는 오브젝트와 Cell Settings오브젝트로 구성되어 있습니다. Cell Settings은 하나의 셀 또는 여러 개의 셀에 적용할 모든 목록을 제공합니다.

셀을 포맷하는 전경색, 폰트 및 정렬 등의 전경인자에 대해서는 텍스트 형식 지정하기를 참조하십시오.

오픈뷰 항목

  • BackColor -- 셀의 배경색. 46 가지의 색깔을 선택할 수 있습니다. 디폴트 색깔은 SeaGreen입니다.

  • NumberFormat -- 숫자에만 적용되는 항목입니다. 상단부터 지수표현방식, 값이 선택사항인 마스크(###.0), 해당 위치에 표시할 0 의 개수, 퍼센트, 환율, General 및 Custom(사용자지정) 항목이 순서데로 나열되어 있습니다. General로 포맷을 선택하면, 사용자가 입력한 형태로 값이 입력됩니다. 셀이 전체 숫자를 표시할 수 있을 정도로 크지 않으면, 큰 숫자를 General 포맷으로 설정한 경우에는 숫자를 반올림하여 공학표시 방법으로 표기합니다. 영문이외의 마이크로소프트 오피스를 사용할 때는 아래 주의사항을 참조하십시오.

  • CustomNumberFormat -- 사용자 고유의 숫자 표시방법.

  • BorderEdges -- 셀의 경계를 표시하는 방법.

  • Grid -- Grid를 선택하면 셀의 상단, 하단 및 좌변, 우변의 경계선이 표시됩니다.

  • GridThickThin -- GridThickThin은 셀을 기존 경계선의 굵기를 무시하고 가는 경계선으로 포맷합니다.

  • Outline -- 각 셀에 엑셀 스프레드시트 셀 상하좌우변의 레이아웃을 적용합니다.

  • LeftRight -- 셀의 좌변과 우변에 경계선을 설정합니다.

  • TopBottom -- 셀의 상변과 하변의 경계선을 설정합니다.

  • Top -- 셀의 상변에 경계선을 설정합니다.

  • Bottom -- 셀의 하변에 경계선을 설정합니다.

  • Right -- 셀의 우변에 경계선을 설정합니다.

  • Left -- 셀의 좌변에 경계선을 설정합니다.

  • BorderThickness -- 경계선에 3 종류의 굵기를 적용할 수 있습니다.: Thin, Medium 및 Thick. Thin은 엑셀의 Page Setup 메뉴를 통해서 Print Grid Line를 선택할 때보다 셀의 경계선이 어둡습니다.

  • Pattern -- 셀의 배경을 설정합니다, 셀을 여러가지 다른 방식으로 표시할 수 있습니다.

  • Solid -- 셀의 배경을 Solid 로 만듭니다.

  • LightDots -- 셀의 배경에 점이 표시되고, 점의 크기는 Thin 경계선과 같습니다.

  • MediumDots -- 셀의 배경에 점이 표시되고, 점의 크기는 Thin 경계선과 같습니다. 점의 밀도는 LightDots의 경우보다 높습니다.

  • Checkered -- 셀의 배경을 Checkered로 설정합니다. 사선으로 평행선을 서로 교차시킨 무늬입니다.

  • Grid -- 셀의 배경을 Checkered로 설정합니다. 셀의 경계선과 평행한 평행선을 서로 교차시킨 무늬입니다.

  • VerticalBars -- 셀의 배경을 셀의 좌우변 경계선과 평행한 수직바 무늬로 설정합니다.

  • HorizontalBars -- 셀의 배경을 셀의 상하변 경계선과 평행한 수평바 무늬로 설정합니다

  • CrissCross -- 셀의 배경을 X 문자를 연속으로 연결한 형태의 무늬로 설정합니다. Checkered와 비슷한 형태이지만, 이 설정이 Checkered의 밀도보다 높습니다.

주의사항

영문버전 이외의 일부 버전의 엑셀에서는 NumberFormat의 설정을 적용할 수 없습니다. 특히, 러시아 버전의 오피스 2003에서는 General 이외의 다른 설정은 적용되지 않습니다. 일본버전, 독일버전, 스페인버전 및 스위스버전 등의 다른 비영문 버전에서는 정상적으로 실행되므로, 이 문제는 러시아 버전의 엑셀의 문제인 것으로 보입니다. Formula 오브젝트에서 NumberFormat을 사용하는 연습을 실행하십시오. 예를 들어, 각 나라별 숫자 자리수 및 소수점 구분기호를 사용하여 'aRange.NumberFormat = "0,00" 등의 명령을 실행해 보십시오.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Formatting [image] Format Cells

관련정보

FormatCellsAllColors.vee를 참조하십시오.

실습 8-3: 셀 서식 지정


자동으로 컬럼 맞추기

Auto Fit Columns은 숫자나 짧은 텍스트 문장에 대하여 컬럼 넓이를 조정하기 위해 사용합니다. 입력핀에는 셀, 셀 범위 또는 지정된 범위를 입력할 수 있습니다. 이것은 짧은 텍스트에 사용하도록 설계되어 있으나 긴 설명 문장에 적용하는 것은 부적절합니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Formatting [image] Auto Fit Columns


상대적인 셀 주소로 이동하기

셀의 상대주소로 이동하기

현재 액티브 셀 주소에서 시작 포인트에 비례하는 주소로 이동합니다.

사용법

Cell Relative는 3개의 입력핀이 있습니다. 위에 있는 핀은 액티브 셀 주소이고, 중간에 있는 핀은 셀 포인터를 위로 또는 아래로 이동하고자 하는 거리를 위한 핀입니다. 아래에 있는 핀은 왼쪽으로 또는 오른쪽으로 이동하고자 하는 거리를 위한 핀입니다.

디폴트로, 양수는 셀 포인터를 오른쪽과 아래로 이동합니다. 셀 포인터를 위로 또는 왼쪽으로 이동하기 위해서는 음수를 사용합니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Navigation [image] Cell Relative

관련정보

셀의 절대주소로 이동하기


셀의 절대주소로 이동하기

CellAbsolute 오브젝트는 활성화된 셀 주소를 스프레드시트에 있는 특정한 위치로 이동합니다. 이 위치는 다른 위치에 상대적이지 않으며, CellAbsolute 오브젝트에서 직접 지정됩니다.

사용법

CellAbsolute 오브젝트는 2개의 입력핀을 가지고 있습니다. 상단에 있는 핀은 스프레드시트에 있는 컬럼과 일치하며 하단에 있는 핀은 스프레드시트에 있는 행과 일치합니다. 2개의 핀은 숫자값이 입력되어야 합니다.

오브젝트에는 하나의 출력핀이 있습니다. 이 핀은 AlphaNumeric 오브젝트와 함께 사용되거나, DataToCells 오브젝트에 있는 address 핀과 같은 입력핀으로 데이터를 전송하기 위해 사용됩니다.

오브젝트 위치

VEE 메인메뉴 Excel [image] Navigation [image] Cell Absolute

관련정보

셀의 상대주소로 이동하기


비어있는 첫번째 행 찾기

FindFirstEmptyRow 오브젝트는 제공하는 범위에서 비어있는 첫번째 행을 찾습니다.

사용법

입력핀은 하나가 있습니다. 이 핀은 비어 있는 행을 찾기 위하여 범위를 지정하기 위해 사용합니다. 예를 들어, "A1:H60"는 첫번째로 비어있는 행을 찾기 위하여 1행부터 60행 사이에서 검색합니다.

지정한 범위에 비어있는 행이 존재하는 경우에는, 행의 숫자가 출력됩니다. 다른 경우에는, FindFirstEmptyRow 오브젝트는 -1을 출력합니다.

엑셀 스프레드시트에서 지정해 놓은 지정된 범위를 입력 파라미터로 사용할 수도 있습니다. 이것은 VEE 실행모드 6 이상에서만 지원됩니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Navigation [image] Find First Empty Row

관련정보

비어있는 첫번째 컬럼 찾기


비어있는 첫번째 컬럼 찾기

FindFirstEmptyColumn 오브젝트는 제공하는 범위에서 비어있는 첫번째 컬럼을 찾습니다.

사용법

T입력핀은 하나가 있습니다. 이 핀은 비어 있는 컬럼을 찾기 위하여 범위를 지정하기 위해 사용합니다. 예를 들어, "A1:H60"는 첫번째로 비어있는 컬럼을 찾기 위하여 A컬럼부터 H컬럼 사이에서 검색합니다.

지정한 범위에 비어있는 컬럼이 존재하는 경우에는, 컬럼의 숫자가 출력됩니다. 다른 경우에는, FindFirstEmptyColumn 오브젝트는 -1을 출력합니다. 유효한 행/열의 주소를 생성하기 위하여 사용하는 FindFirstEmptyColumn에 의해 출력되는 컬럼 주소를 변환하기 위해 Excel [image] Navigation [image] Alpha Column from Numeric Column를 사용합니다.

엑셀 스프레드시트에서 지정해 놓은 지정된 범위를 입력 파라미터로 사용할 수도 있습니다. 이것은 VEE 실행모드 6 이상에서만 지원됩니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Navigation [image] Find First Empty Column

관련정보

비어있는 첫번째 행 찾기, 숫자에서 알파벳 컬럼으로 변환하기


숫자에서 알파벳 컬럼으로 변환하기

컬럼 숫자가 입력되면, 대응하는 엑셀 컬럼에 대한 알파벳 참조값으로 변환합니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Navigation [image] Alpha Column from Numeric Column

관련정보

셀의 행과 컬럼값 숫자화 하기


셀의 행과 컬럼값 숫자화 하기

엑셀 형식의 셀 주소 입력과 일치하는 행과 컬럼에 대한 숫자값을 출력합니다. 범위가 입력된 경우에는, 좌측 상단에 있는 셀만이 사용됩니다.

오브젝트 위치

VEE 메인메뉴 Excel [image] Navigation [image] Numeric Row and Column from Cell

.


데이터 설정 전송하기

Send Data Settings은 DataToCells을 호출할 때, 어레이의 방향을 컨트롤하고 다차원의 어레이를 처리합니다.

오픈뷰 항목

이 UserObject는 xlLib.SendDataSettings UserFunction을 호출하는 것과 SendDataSettings 오브젝트로 이루어져 있습니다. SendDataSettings 오브젝트는 3개의 항목을 가지고 있습니다.

  • Orientation -- 이것은 어레이에서 데이터의 흐름 순서에 대한 방향입니다. 2개의 옵션, Vertical 또는 Horizontal이 있습니다. 예를 들어, 1차원 어레이 에서의 수평방향은 하나의 행을 가진 데이터를 생성하고 또는 2차원 어레이 에서의 수직 방향은 2개의 열을 가진 데이터를 생성합니다. 디폴트 값은 Vertical입니다.

  • ThreeDArrays -- 이것은 엑셀 라이브러리와 DataToCells이 3차원 어레이를 처리하는 방법을 컨트롤합니다.

  • CreateNewSheets -- Z 차원 마다 새로운 어레이인 3차원 어레이를 위한 새로운 워크시트를 생성합니다. 각각의 워크시트는 2차원 어레이의 워크시트를 가집니다.

  • CopyStartingSheet -- 3차원 어레이 프로세스에서, 시작하는 워크시트의 포맷을 복사하여 새로 생성되는 워크시트에 적용합니다. 이것은 셀 형식, 차트 등을 포함합니다.

  • UseSingleSheet -- 각각의 2차원 어레이를 빈 행으로 분리하여 모든 3차원 데이터를 하나의 시트에 배치합니다.

  • ZLabel -- 3차원 어레이의 부분으로 표시되는 각 2차원 어레이에 라벨로 사용됩니다.

주의사항

모든 3차원 설정에 대해서는, 2차원 어레이가 인쇄될 때 마다, 3차원 어레이에서 현재 앨리먼트의 값을 가지는 열이 먼저 프린트됩니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Send Data [image] Send Data Settings

관련정보

셀에 데이터 보내기


셀에 데이터 보내기

Data to Cells은 VEE에서 Excel로 데이터를 전송할 때 사용합니다.

사용법

전송되는 데이터는 스칼라부터 3차원까지의 어레이입니다. 다음의 데이터 타입은 전송할 수 없습니다: Complex, PComplex, Spectrum, Coordinate, Waveform, Object, 및 Record. 레코드를 Excel로 전송하기 위해서는 Send Data [image] Record to Named Ranges를 사용합니다. 위에서 언급된 데이터 타입은 DataToCells UserObject에 의해서 직접 전송할 수는 없지만, 모든 데이터를 전송하는 방법을 설명하는 예제가 제공됩니다. \Program Files\Agilent\VEE Pro 8.0\Examples\ExcelLibrary\SendingData 디렉토리를 참조하십시오.

DataToCells은 2개의 입력을 가집니다. 상단의 핀은 전송할 데이터를 입력하고 하단의 핀은 셀의 위치를 입력합니다. 범위나 선택된 범위를 지정할 수 있지만, 이것들은 무시되고 지정된 범위의 좌측 상단이 워크시트에서 데이터의 시작 위치로 사용됩니다. 예를 들어, C4:K22는 C4부터 데이터를 디스플레이 하지만, 마지막 범위인 K22는 무시됩니다.

범위의 마지막 위치는 무시되기 때문에, DataToCells 오브젝트는 경계가 고정적이지 않습니다. 10개의 앨리먼트를 가진 어레이를 Excel의 범위 B4:B8로 전송한 경우에는 DataToCells은 B8을 지나 다음 5개의 셀에 데이터를 기록합니다. 범위에서 첫번째 값은 중요하나 2번째 값은 영향을 주지 않습니다.

DataToCells 함수는 SendDataSettings 오브젝트에 의해 어레이를 수평 또는 수직으로 배치합니다. 셀의 범위는 무시되고 단지 범위의 첫번째 값만 사용되기 때문에, "A1:A11" 또는 "A1:J1"라고 지정하더라도 데이터의 행 또는 열 방향은 변경되지 않습니다. 이러한 방향을 지정하기 위해서는 SendDataSettings 오브젝트를 사용하십시오.

2차원과 3차원 어레이에서의 실행에 대한 예제는 Examples\ExcelLibrary\SendingData 디렉토리에 있습니다.

오브젝트 위치

VEE 메인메뉴 Excel [image] Send Data [image] Data to Cells

관련정보

데이터 설정 전송하기 또는 레코드를 이름지정 범위로 전송하기


레코드를 이름지정 범위로 전송하기

VEE 레코드를 마이크로소프트 엑셀에 있는 이름지정 범위로 전송합니다.

사용법

Call SendRecord UserFunction은 하나의 입력핀과 2개의 출력핀을 가지고 있습니다.

입력핀은 VEE 레코드를 Call SendRecord UserFunction으로 전송하기 위해 사용합니다. UserFunction은 필드 값을 워크북을 선택한 VEE 엑셀 라이브러리의 지정된 범위에 배치합니다. 예를 들어, VEE 필드 이름이 reading 이면, 이 필드의 값은 reading으로 지정된 마이크로소프트 엑셀 워크시트 셀에 저장됩니다.

마이크로소프트 엑셀의 네임드 범위를 생성하기 위해서는, 셀 그룹을 하이라이트 시키고, 삽입 [image] 이름 [image] 정의를 실행합니다. 범위의 이름을 입력하고 추가버튼을 누릅니다. 이름정의 대화상자의 좌측하단의 아이콘 ( [image]) 을 사용하여, 셀 지정 대화상자와 이름정의 대화상자를 토글할 수 있습니다.

2개의 출력핀은 지정된 이름을 추적하고 몇 개나 찾을 수 없는지를 계산합니다. Missing Names은 VEE 필드에 지정된 이름이 마이크로소프트 엑셀 워크시트에 있는 지정된 범위와 일치하지 않을 때 활성화됩니다. VEE 레코드가 완전하지 않거나 마이크로소프트 엑셀 워크시트가 부적절하게 정의된 경우에는, 이 핀으로 값이 출력됩니다. 두 번째 Size 핀은 Missing Names의 수를 제공합니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Send Data [image] Record to Named Ranges

관련정보

셀에 데이터 보내기 또는 데이터 설정 전송하기

실습 8-4: Using Send Record 사용법


Line Chart 생성하기

VEE에서 제공되는 데이터를 이용하여 Microsoft Excel의 Line chart를 생성합니다.

필드

CreateLineChart 오브젝트는 xlLib.CreateLineChart(Data,Settings) 호출, 하나의 record 오브젝트 및 Line Chart Settings 오브젝트로 구성된 UserObject 오브젝트입니다. Line Chart Settings 오브젝트는 아래와 같은 여러 개의 필드로 구성됩니다.:

  • Title -- 그래프의 이름을 지정합니다. 이름은 차트 테두리의 중앙에 나타납니다.

  • TitleFont -- 제목의 폰트를 지정합니다.  VEE에서 지원되는 모든 폰트를 사용할 수 있습니다. VEE 폰트 목록에 나타나는 폰트의 이름을 입력하십시오.

  • TitleFontSize -- 메뉴에서 제공되는 사이즈를 선택하거나 Autosize 항목을 선택합니다. Autosize를 선택하면 Excel에 의해서 타이틀폰트의 크기가 자동으로 결정됩니다.

  • Type -- 차트의 종류를 설정합니다.

  • Line -- 표준 연결선 차트입니다.

  • Line with Markers -- 각각의 데이터 포인트에 마커를 표시하는 연결선 차트입니다.

  • 3D Line -- 3차원 연결선 차트를 표현합니다.

  • Logarithmic -- 데이터에 0 이나 음수가 포함되어 있으면, Excel Library에서 553 에러가 발생합니다. 영문버전 이외의 마이크로소프트 오피스를 사용하는 경우에는 아래 주의사항을 참조하십시오

  • NumericMarkers -- 데이터 포인트 옆에 표시되는 데이터 포인터의 값입니다.

  • FillEffects -- 그래프의 배경을 설정합니다. None의 값은 회색 배경입니다. 반면 Two Color의 값은 파란 색과 흰색이 혼합된 배경입니다. Logarithmic 스케일로 설정된 라인챠트나 3 차원 라인챠트는 이 값에 의해서 영향을 받지 않습니다.

  • Names -- 챠트에 작성된 그래프의 데이터로 사용된 어레이 데이터의 이름이 각각의 그래프의 이름으로 적용됩니다. 예를 들어 Sine 값의 어레이, cosine 값의 어레이 및 구형파 값의 어레이가 있다면, 이들의 그래프 이름에 각각의 파라미터의 이름을 지정할 수 있습니다. 10개 이상의 어레이를 사용한다면 그래프 이름을 그 만큼 더하면 됩니다.

  • XaxisLabel -- 차트에 X좌표의 이름을 입력합니다. spectrum 오브젝트 및 waveform 오브젝트의 경우 값을 입력하지 않습니다. VEE Excel Library에서 X좌표의 범위 및 주파수 정보로 혼합된 X 좌표 이름을 생성합니다.

  • YaxisLabel -- 차트에 Y좌표의 이름을 입력합니다.

  • ChartSheet -- 챠트를 표시하고자 하는 시트의 이름을 입력합니다. 영문버전 이외의 마이크로소프트 오피스를 사용하는 경우에는 사용문자와 관련하여 아래 주의사항을 참조하십시오.

  • DataCell -- 데이터 블록을 시작하는 셀을 설정합니다.

  • DataSheet -- 데이터를 표시하고자 하는 시트의 이름을 입력합니다. 마이크로소프트 오피스를 사용하는 경우에는 사용문자와 관련하여 아래 주의사항을 참조하십시오.

  • PlotBy -- 행 또는 열을 선택합니다. 이 항목의 값에 따라서, 챠트가 열을 기준으로 생성되는지, 행을 기준으로 생성되는지 결정됩니다.( Excel [image] Send Data [image] Send Data Settings)

  • Width -- 챠트의 폭을 입력합니다.

  • Height -- 챠트의 높이를 입력합니다.

  • MoveRight -- Microsoft Excel은 차트를 항상 워크시트의 같은 위치에 생성합니다. 이 항목의 값만큼 원래 생성되는 위치에서 챠트가 오른쪽으로 이동하여 생성됩니다. 값이 음수이면 챠트가 왼쪽으로 이동됩니다. 이동 단위는 픽셀입니다.

  • MoveDown -- Microsoft Excel은 차트를 항상 워크시트의 같은 위치에 생성합니다. 이 항목의 값만큼 원래 생성되는 위치에서 챠트가 아래쪽으로 이동하여 생성됩니다. 값이 음수이면 챠트가 왼쪽으로 이동됩니다. 이동 단위는 픽셀입니다.

주의사항

Line Chart 에 값이 설정되면, ChartSheet 에 설정된 값은 무시되며, 시트의 가장 왼쪽에 챠트를 배치합니다. 이것은 디폴트 조건입니다.

ChartSheet와 DataSheet의 값은 디폴트로 Sheet1으로 설정됩니다. 그러나 영문버전 이외의 대부분의 마이크로소프트 오피스에서는 다른 이름으로 설정됩니다. 마이크로소프트 엑셀 독일버전에서는 디폴트 값이 “Tabelle1” 입니다. 이것들의 값을 바꾸면 시트의 이름이 변경됩니다. 디폴트 이름을 사용하고자 한다면, 이들의 값을 지역화하는 쉬운 방법이 있습니다.

LineChartSettings 오브젝트와 Call xlLib.CreateLineChart 오브젝트 사이의 연결선을 지우고, LocalizeChartSettings 오브젝트의 좌측 하단의 출력과 Call xlLib.CreateLineChart오브젝트 입력을 연결하십시오. 이것은 ChartSheet 및 DataSheet 필드의 ChartSettingsRecord 값을 어떤 버전의 엑셀을 사용하던, 현재 사용중인 마이크로소프트 엑셀의 첫 번째 워크시트의 이름으로 변경합니다.

Logarithmic 차트 종류는 대부분의 영문버전 이외의 마이크로소프트 오피스에서 지원되지 않습니다. Logarithmic 차트를 만들려면 첫째로 Excel을 열고 Insert [image] Chart 를 클릭하고 차트 마법사 대화 상자에서 두 번째 탭에 사용자 지정을 선택합니다. Logarithmic 차트의 사용자 지정의 이름을 주의하십시오. 예를 들어 독일 버전은 Logarithmisch입니다.

다음은 Create Line Chart 오브젝트로 이동하여, 이 오브젝트를 엽니다. 이 오브젝트의 좌측상단에 xlApp.ActiveChart.ApplyCustomType(xlBuiltIn, "Logarithmic” 라고 작성된 표현식이 있습니다.

엑셀은 마이크로소프트 오피스에서 지역화된 Chart Custom Type 스트링 만을 허용합니다. 그러나 엑셀에서는 아직 지역화된 이름을 제공하지는 않습니다. 그러므로 Excel Library에서 이것을 할 수 있는 방법은 없습니다.

오브젝트 위치

VEE 메인 메뉴 [image] Excel [image] Create Chart [image] Create Line Chart

관련정보

Bar Chart 생성하기, Pie Chart 생성하기, XY Chart 생성하기, CreateObject(ProgID)


XY Chart 생성하기

VEE가 제공하는 데이터를 이용하여 마이크로소프트 엑셀에서 XY 챠트를 생성합니다.

필드

CreateXYChart 는 xlLib.CreateXYChart(Data,Settings)를 호출하는 함수와 하나의 XY Chart Settings 레코드 오브젝트로 구성되어 있습니다. XY Chart Settings오브젝트는 다음과 같은 여러 개의 필드로 구성됩니다:

  • Title -- 그래프의 이름. 챠트 테두리의 중심에 표시됩니다.

  • TitleFont -- 타이틀에 적용되는 폰트. VEE에서 지원되는 모든 폰트를 사용할 수 있습니다. VEE 폰트 목록에 표시되는 폰트의 한 가지를 입력합니다.

  • TitleFontSize -- 드롭다운 메뉴에서 제공되는 폰트 크기 중에서 하나 또는 AutoSize 를 선택합니다. AutoSize를 선택하면 엑셀이 폰트의 크기를 자동 변환합니다.

  • Type -- 챠트의 종류.

  • XYScatter -- 표준 XY 챠트.

  • XYScatterLines -- 각 데이터포인트를 연결하는 라인을 가진 XY 챠트. 데이터포인트에는 마커가 있습니다.

  • XYScatterLinesNoMarkers -- 각 데이터포인트를 연결하는 라인을 가진 XY 챠트. 데이터포인트에는 마커가 없습니다.

  • XYScatterSmooth -- 각 데이터포인트를 연결하는 부드러운 라인을 가진 XY 챠트. 데이터포인트에는 마커가 있습니다.

  • XYScatterSmoothNoMarkers -- 각 데이터포인트를 연결하는 부드러운 라인을 가진 XY 챠트. 데이터포인트에는 마커가 없습니다.

  • XGridLines -- Major 또는 Minor를 선택할 수 있습니다. Major는 그리드 라인의 개수가 적고, Minor는 그리드 라인의 개수가 많습니다.

  • YGridLines -- Major 또는 Minor를 선택할 수 있습니다. Major는 그리드 라인의 개수가 적고, Minor는 그리드 라인의 개수가 많습니다.

  • Names -- 이름목록에 있는 각 이름이 챠트안의 어레이에 적용됩니다. 싸인 값을 가진 어레이와 코사인 값을 가진 어레이, 구형파 값을 가진 어레이가 있으면, names 항목을 이용하여 레전드에 이들을 라벨링합니다. 10 개 이상의 어레이가 있으면 names 목록에 값을 추가하십시오.

  • Scale -- Linear 또는 Logarithmic를 선택할 수 있습니다. Linear 는 직선입니다. Logarithmic은 Y-축에만 적용됩니다. 0 이나 음수를 사용하면 에러가 발생합니다.

  • FillEffects -- 그래프의 배경에 영향을 미칩니다. None으로 설정하면 배경색이 회색이 되며, Two Color를 선택하면 혼합된 파랑/흰 배경색이 됩니다. 로그스케일 또는 3 차원 챠트는 이 속성에 영향받지 않습니다.

  • XaxisLabel -- 챠트의 X-축 값에 라벨을 입력합니다.

  • YaxisLabel -- 챠트의 Y-축 값에 라벨을 입력합니다.

  • ChartSheet -- 챠트를 표시할 기존 시트의 이름을 입력합니다. 영문버전 이외의 마이크로소프트 오피스에서 스트링을 입력하는 경우에는 아래 주의사항을 참조하십시오.

  • DataCell -- 데이터 블록이 시작하는 셀

  • DataSheet --데이터를 표시할 기존 시트의 이름을 입력합니다. 영문버전 이외의 마이크로소프트 오피스에서 스트링을 입력하는 경우에는 아래 주의사항을 참조하십시오.

  • PlotBy -- 행과 열을 선택합니다. 챠트가 행의 데이터를 기준으로 생성되는지 열의 데이터를 기준으로 생성되는지 결정합니다. 이 항목은 VEE 메인 메뉴의 Excel [image] Send Data [image] Send Data Settings에서도 설정할 수 있습니다.

  • Width -- 표준크기의 챠트의 폭을 스케일 합니다.

  • Height -- 표준크기의 챠트의 높이를 스케일 합니다.

  • MoveRight -- 마이크로소프트 엑셀은 항상 워크시트의 동일한 위치에 챠트를 생성합니다. 이 항목을 이용하여 시트를 오른쪽으로 이동할 수 있습니다. 챠트를 왼쪽으로 이동하기 위해서 여러 가지 숫자를 입력해 보십시오. 챠트 이동단위는 픽셀입니다.

  • MoveDown -- 마이크로소프트 엑셀은 항상 워크시트의 동일한 위치에 챠트를 생성합니다. 이 항목을 이용하여 시트를 아래쪽으로 이동할 수 있습니다. 챠트를 위쪽으로 이동하기 위해서 여러 가지 숫자를 입력해 보십시오. 챠트 이동단위는 픽셀입니다.

주의사항

ChartSheet 및 DataSheet의 값은 디폴트로 “Sheet1”으로 설정됩니다. 그러나 영문버전이외의 마이크로소프트 오피스에서는 항상 “Sheet1”으로 설정되지는 않습니다. 예를 들어, 마이크로소프트 엑셀의 독일어 버전에서는 디폴트 값이 "Tabelle1”입니다. 시트의 이름을 변경하기 위해서는 이들 2 개의 값을 변경하면 됩니다. 디폴트 이름을 그대로 사용하기 위해서는, 이들을 쉽게 지역화할 수 있는 방법이 있습니다.

“XY Chart Settings" 오브젝트와 "Call xlLib.CreateXYChart" 오브젝트 사이의 라인을 삭제하고, “Localize..." 오브젝트의 좌측하단의 출력을 "Call xlLib.CreateXYChart"오브젝트의 입력에 연결하십시오. 이렇게 하면 ChartSheet 및 DataSheet의 필드에 대한 ChartSettingsRecord 레코드의 값이 모든 버전의 마이크로소프트 엑셀의 첫 번째 워크시트의 이름과 일치하게 됩니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Create Chart [image] Create XY Chart

관련정보

Bar Chart 생성하기, Line Chart 생성하기, Pie Chart 생성하기


Bar Chart 생성하기

VEE가 제공하는 데이터를 이용하여 마이크로소프트 엑셀에서 Bar 챠트를 생성합니다.

필드

CreateBarChart 는 xlLib.CreateBarChart(Data,Settings)를 호출하는 함수와 하나의 Bar Chart Settings레코드 오브젝트로 구성되어 있습니다. Bar Chart Settings 오브젝트는 다음과 같은 여러 개의 필드로 구성됩니다:

  • Title -- 그래프의 이름. 챠트 테두리의 중심에 표시됩니다.

  • TitleFont -- 타이틀에 적용되는 폰트. VEE에서 지원되는 모든 폰트를 사용할 수 있습니다. VEE 폰트 목록에 표시되는 폰트의 한 가지를 입력합니다.

  • TitleFontSize -- 드롭다운 메뉴에서 제공되는 폰트 크기 중에서 하나 또는 AutoSize 를 선택합니다. AutoSize를 선택하면 엑셀이 폰트의 크기를 자동 변환합니다.

  • Type -- 챠트의 종류.

  • ColumnClustered -- PlotBy 가 열이고 데이터를 동일한 열에서 가져올 때 서로 근접하여 표시되는 수직바. PlotBy가 행이면, 어레이의 앨리먼트가 서로 근접한 수직바로 표시됩니다.

  • ColumnStacked -- PlotBy 가 열이고 데이터를 동일한 열에서 가져올 때 서로 근접하여 표시되는 수평바. PlotBy가 행이면, 어레이의 앨리먼트는 각 앨리먼트의 컬러 밴드를 가진 수직 행으로 표시됩니다.

  • Stacked100 -- PlotBy가 열일 때 어레이 앨리먼트를 하나의 수직바로 표시합니다. 어레이 앨리먼트는 서로 더해지고, 각 앨리먼트는 전체 합의 퍼센트로 표시됩니다. PlotBy가 컬럼이면, 각 앨리먼트에 대한 컬러 밴트를 가진 수직 컬럼으로 표시됩니다.

  • 3DColumn -- PlotBy가 열일 때, 첫 번째 앨리먼트를 가진 3 차원 수직바가 앞에 표시되고 이후의 어레이 앨리먼트는 뒤에 표시됩니다. PlotBy가 행이면, 각 어레이 앨리먼트는 자신의 고유한 열과 행을 가집니다.

  • 3DColumnClustered -- PlotBy가 열이고 앨리먼트를 동일한 열에서 가져오면, 3 차원 수직바가 서로 근접하여 표시됩니다. 이 챠트의 프론트 열은 어레이 앨리먼트입니다. PlotBy가 행이면, 각 어레이는 행의 개수와 같은 앨리먼트를 가진 행 클러스터로 표시됩니다.

  • 3DColumnStacked -- PlotBy가 열이고 데이터를 동일한 열에서 가져올 때 3 차원 수평바가 근접하여 표시됩니다. PlotBy가 행이면, 각 어레이에 대한 컬럼과 각 어레이 앨리먼트에 대한 컬러 밴드가 있습니다.

  • 3DStacked100 -- PlotBy가 열일 때, 3 차원 단일 수직바에 데이터를 표시합니다. 앨리먼트를 서로 더해지고, 각 앨리먼트는 전체 합의 퍼센트로 표시됩니다. PlotBy가 행이면, 각 어레이에 대한 행과 각 어레이 앨리먼트에 대한 컬러 밴드가 있습니다.

  • BarClustered -- PlotBy 가 열이고 데이터를 동일한 열에서 가져올 때 서로 근접하여 표시되는 수평바. PlotBy가 행이면, 어레이의 각 앨리먼트에 대한 수평바가 있으며, 이들 바는 클러스터됩니다.

  • BarStacked -- PlotBy가 열이고 데이터를 동일한 열에서 가져오면 수평바가 스택된 상단에 표시됩니다. PlotBy가 행이면 각 어레이 앨리머튼에 대해서 컬러 밴드를 가진 각 어레이에 대한 수평 바가 있습니다.

  • BarStacked100 -- PlotBy가 열이 면 하나의 수평바에 데이터를 표시합니다. 어레이 앨리먼트는 서로 더해지고, 각 어레이 앨리먼트는 전체 데이터 포인트 앨리먼트의 합의 퍼센트로 표시됩니다. PlotBy가 행이면 형태는 동일합니다.

  • 3DBarClustered -- PlotBy가 행이고 데이터를 동일한 열에서 가져오면, 3 차원 수평바가 근접하여 표시됩니다. PlotBy가 행이면, 각 어레이 앨리먼트는 단일 수평바로 표시되고, 어레이는 클러스터됩니다.

  • 3DBarStacked -- PlotBy가 열이거나 행이고, 앨리먼트를 동이한 열에서 가져오면 3 차원 수직바가 스택의 상단에 표시됩니다. PlotBy 가 행이면, 각 어레이는 단일 수평바로 표시되고, 어레이 앨리먼트는 밴드되고 스택됩니다.

  • 3DStacked100 -- PlotBy가 열일 때, 데이터를 3차원 단일 수평바에 표시합니다. 어레이 앨리먼트는 서로 더해지고, 각 앨리먼트는 전체 합의 퍼센트로 표시됩니다. PlotBy가 행이면, 각 어레이는 단일 수평바로 표시되고, 각 어레이 앨리먼트는 밴드되며 스택됩니다.

  • Numeric Markers -- 앨리먼트의 값을 챠트의 마커 옆에 표시합니다.

  • FillEffects -- 그래프의 배경에 영향을 미칩니다. None으로 설정하면 배경색이 회색이 되며, Two Color를 선택하면 혼합된 파랑/흰 배경색이 됩니다. 로그스케일 또는 3 차원 챠트는 이 속성에 영향받지 않습니다.

  • XaxisLabel -- 챠트의 X-축 값에 라벨을 입력합니다.

  • YaxisLabel -- 챠트의 Y-축 값에 라벨을 입력합니다.

  • ChartSheet -- 챠트를 표시할 기존 시트의 이름을 입력합니다. 영문버전 이외의 마이크로소프트 오피스에서 스트링을 입력하는 경우에는 아래 주의사항을 참조하십시오.

  • DataCell -- 데이터 블록이 시작하는 셀

  • DataSheet -- 데이터를 표시할 기존 시트의 이름을 입력합니다. 영문버전 이외의 마이크로소프트 오피스에서 스트링을 입력하는 경우에는 아래 주의사항을 참조하십시오.

  • PlotBy -- 행과 열을 선택합니다. 챠트가 행의 데이터를 기준으로 생성되는지 열의 데이터를 기준으로 생성되는지 결정합니다. 이 항목은 VEE 메인 메뉴의 Excel   [image] Send Data [image] Send Data Settings에서도 설정할 수 있습니다.

  • Width -- 표준크기의 챠트의 폭을 스케일 합니다.

  • Height -- 표준크기의 챠트의 높이를 스케일 합니다.

  • MoveRight -- 마이크로소프트 엑셀은 항상 워크시트의 동일한 위치에 챠트를 생성합니다. 이 항목을 이용하여 시트를 오른쪽으로 이동할 수 있습니다. 챠트를 왼쪽으로 이동하기 위해서 여러 가지 숫자를 입력해 보십시오. 챠트 이동단위는 픽셀입니다.

  • MoveDown -- 마이크로소프트 엑셀은 항상 워크시트의 동일한 위치에 챠트를 생성합니다. 이 항목을 이용하여 시트를 아래쪽으로 이동할 수 있습니다. 챠트를 위쪽으로 이동하기 위해서 여러 가지 숫자를 입력해 보십시오. 챠트 이동단위는 픽셀입니다.

주의사항

ChartSheet 및 DataSheet의 값은 디폴트로 “Sheet1”으로 설정됩니다. 그러나 영문버전이외의 마이크로소프트 오피스에서는 항상 “Sheet1”으로 설정되지는 않습니다. 예를 들어, 마이크로소프트 엑셀의 독일어 버전에서는 디폴트 값이 "Tabelle1”입니다. 시트의 이름을 변경하기 위해서는 이들 2 개의 값을 변경하면 됩니다. 디폴트 이름을 그대로 사용하기 위해서는, 이들을 쉽게 지역화할 수 있는 방법이 있습니다.

“Bar Chart Settings" 오브젝트와 "Call xlLib.CreateBarChart" 오브젝트 사이의 라인을 삭제하고, “Localize..." 오브젝트의 좌측하단의 출력을 "Call xlLib.CreateBarChart"오브젝트의 입력에 연결하십시오. 이렇게 하면 ChartSheet 및 DataSheet의 필드에 대한 ChartSettingsRecord 레코드의 값이 모든 버전의 마이크로소프트 엑셀의 첫 번째 워크시트의 이름과 일치하게 됩니다.

오브젝트 위치

VVEE 메인 메뉴 Excel [image] Create Chart [image] Create Bar Chart

관련정보

Line Chart 생성하기, Pie Chart 생성하기, 생성하기, XY Chart 생성하기.


Pie Chart 생성하기

VEE가 제공하는 데이터를 이용하여 마이크로소프트 엑셀에서 파이챠트를 생성합니다.

필드

CreatePieChart 는 xlLib.CreatePieChart(Data,Settings)를 호출하는 함수와 하나의 Pie Chart Settings레코드 오브젝트로 구성되어 있습니다. Pie Chart Settings 오브젝트는 다음과 같은 여러 개의 필드로 구성됩니다:

  • Title -- 그래프의 이름. 챠트 테두리의 중심에 표시됩니다.

  • TitleFont -- 타이틀에 적용되는 폰트. VEE에서 지원되는 모든 폰트를 사용할 수 있습니다. VEE 폰트 목록에 표시되는 폰트의 한 가지를 입력합니다.

  • TitleFontSize -- 드롭다운 메뉴에서 제공되는 폰트 크기 중에서 하나 또는 AutoSize 를 선택합니다. AutoSize를 선택하면 엑셀이 폰트의 크기를 자동 변환합니다.

  • Type -- 챠트의 종류.

  • Pie -- 여분이 없는 표준 파이챠트.

  • Pie Exploded -- 각 세그먼트가 중앙을 중심으로 분리된 파이챠트, 따라서 이것들을 분리하여 볼 수 있습니다.

  • 3DPie -- 여분이 없는 3차원 파이챠트.

  • 3DPieExploded -- 각 세그먼트가 중앙을 중심으로 분리된 3차원 파이챠트, 따라서 이것들을 분리하여 볼 수 있습니다.

  • PieOfPie -- 파이챠트의 파이챠트. 일반적으로 1 단계 파이챠트의 가장 큰 부분이 2 단계 파이챠트로 표시됩니다.

  • NumericMarkers -- 각 데이터포인트의 실제 값을 보여주는 마커

  • None -- 마커를 사용하지 않습니다.

  • Label - 파이의 세그먼트를 표시하기 위해서 각 어레이 앨리먼트가 사용됩니다.

  • Value -- 각 파이세그먼트가 파이세그먼트의 값으로 라벨링합니다.

  • Percent - 각 파이세그먼트가 파이세그먼트의 퍼센트로 라벨링합니다.

  • LabelAndPercent - 각 파이세그먼트가 파이세그먼트의 값과 퍼센트로 라벨링합니다.

  • NumericMarkersMore

  • LegendKey - 파이의 각 앨리먼트 옆에 설명용 라벨을 배치합니다.

  • LeaderLines - 각 파이 앨리먼트에 대한 라벨이 너무 복잡하게 되면, 리더 라인을 선택할 수 있습니다. 리더라인은 파이 앨리먼트를 설명라벨로 연결하는 라인입니다.

  • LegendKeyAndLeaderLines - 자동적으로 리더라인과 설명라벨의 함께 표시합니다.

  • None - 레전드 정보를 제공하지 않습니다.

  • FillEffects -- 그래프의 배경에 영향을 미칩니다. None으로 설정하면 배경색이 회색이 되며, Two Color를 선택하면 혼합된 파랑/흰 배경색이 됩니다. 로그스케일 또는 3 차원 챠트는 이 속성에 영향받지 않습니다.

  • ChartSheet -- 챠트를 표시할 기존 시트의 이름을 입력합니다. 영문버전 이외의 마이크로소프트 오피스에서 스트링을 입력하는 경우에는 아래 주의사항을 참조하십시오.

  • DataCell -- 데이터 블록이 시작하는 셀

  • DataSheet -- 데이터를 표시할 기존 시트의 이름을 입력합니다. 영문버전 이외의 마이크로소프트 오피스에서 스트링을 입력하는 경우에는 아래 주의사항을 참조하십시오.

  • PlotBy -- 행과 열을 선택합니다. 챠트가 행의 데이터를 기준으로 생성되는지 열의 데이터를 기준으로 생성되는지 결정합니다. 이 항목은 VEE 메인 메뉴의 Excel [image] Send Data [image] Send Data Settings에서도 설정할 수 있습니다.

  • Width -- 표준크기의 챠트의 폭을 스케일 합니다.

  • Height -- 표준크기의 챠트의 높이를 스케일 합니다.

  • MoveRight -- 마이크로소프트 엑셀은 항상 워크시트의 동일한 위치에 챠트를 생성합니다. 이 항목을 이용하여 시트를 오른쪽으로 이동할 수 있습니다. 챠트를 왼쪽으로 이동하기 위해서 여러 가지 숫자를 입력해 보십시오. 챠트 이동단위는 픽셀입니다.

  • MoveDown -- 마이크로소프트 엑셀은 항상 워크시트의 동일한 위치에 챠트를 생성합니다. 이 항목을 이용하여 시트를 아래쪽으로 이동할 수 있습니다. 챠트를 위쪽으로 이동하기 위해서 여러 가지 숫자를 입력해 보십시오. 챠트 이동단위는 픽셀입니다.

주의사항

ChartSheet 및 DataSheet의 값은 디폴트로 “Sheet1”으로 설정됩니다. 그러나 영문버전이외의 마이크로소프트 오피스에서는 항상 “Sheet1”으로 설정되지는 않습니다. 예를 들어, 마이크로소프트 엑셀의 독일어 버전에서는 디폴트 값이 "Tabelle1”입니다. 시트의 이름을 변경하기 위해서는 이들 2 개의 값을 변경하면 됩니다. 디폴트 이름을 그대로 사용하기 위해서는, 이들을 쉽게 지역화할 수 있는 방법이 있습니다.

“the Chart Settings" 오브젝트와 "Call xlLib.CreatePieChart" 오브젝트 사이의 라인을 삭제하고, “Localize..." 오브젝트의 좌측하단의 출력을 "Call xlLib.CreatePieChart"오브젝트의 입력에 연결하십시오. 이렇게 하면 ChartSheet 및 DataSheet의 필드에 대한 ChartSettingsRecord 레코드의 값이 모든 버전의 마이크로소프트 엑셀의 첫 번째 워크시트의 이름과 일치하게 됩니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Create Chart [image] Create Pie Chart

관련정보

Bar Chart 생성하기, Line Chart 생성하기, XY Chart 생성하기.


패널 이미지를 그림으로 전송하기

VEE 그래픽을 마이크로소프트 엑셀로 전송합니다.

사용법

Panel Image to Picture는 4개의 입력핀을 가진 UserFunction입니다.

  • userFunctionName은 그래픽 이미지가 이 UserFunction에서 생성되고, 마이크로소프트 엑셀로 이미지 형태로 전송됩니다.

  • upperLeftCell은 마이크로소프트 엑셀 워크시트에서 그래픽 이미지의 시작점입니다.

  • relativeSizeX 및 relativeSizeY는 그래픽의 높이와 넓이를 지정합니다. 2개의 핀에 있는 값이 1인 경우에는 원래 사이즈의 100%로 그래픽 이미지가 배치됩니다. 값이 1보다 작을 경우에는 그래픽은 축소되고 1보다 큰 경우에는 사이즈가 확대됩니다.

주의사항

이 UserFunction은 VEE에서 기본 제공되는 함수인 SavePanelImage()를 호출합니다. BMP 파일은 사이즈가 큽니다. .jpg 그래픽 파일을 사용하는 것을 권장합니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Send Panel Image [image] Panel Image to Picture

관련정보

패널 이미지 설정하기

실습 8-5: 패널 이미지를 이용한 Excel 그림 생성


패널 이미지 설정하기

패널 함수로 전송하기 위한 색상의 수와 파일 타입을 생성합니다.

사용법

Image Settings 오브젝트는 2개의 파라미터를 가지고 있습니다.

NumberColors – VEE에서 지원하는 가장 높은 색상 수인 256이 디폴트 값으로 설정되어 있습니다.

FileSpecifier – 이것은 그래픽을 엑셀로 전송하기 위해 사용하는 임시 파일입니다. 파일의 절대 경로를 지정합니다. 파일 이름은 확장자와 함께 입력되어야 합니다. 확장자는 파일 포맷을 지정합니다. 엑셀 라이브러리에서 .jpg 포맷을 사용하기 위해서는 이 필드를 빈 상태로 놓습니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Send Panel Image [image] Image Settings

관련정보

패널 이미지를 그림으로 전송하기


셀에서 데이터 임포트하기

엑셀 스프레드시트에 있는 데이터를 VEE로 임포트합니다.

사용법

Get Data는 2개의 핀을 가지고 있습니다. 입력핀은 셀, 셀 범위, 지정된 범위가 입력되고 엑셀에서 임포팅 되어야 할 셀을 지정하기 위해 사용합니다. 출력핀은 임포팅된 데이터를 받습니다. 예를 들어, 이 출력핀은 임포팅된 값을 표시하기 위하여 alphanumeric 오브젝트를 연결합니다.

셀이 상수를 포함하고 있는 경우에는, 이 상수 값이 출력됩니다. 셀이 비어있는 경우에는, 빈 스트링이 출력됩니다. 셀이 공식을 포함하고 있는 경우에는, 공식이 스트링으로 출력됩니다; 공식 창에 디스플레이 되어 보이는 형식(이퀄 표시’=’ 포함) 그대로 출력됩니다.

ActiveX 서버에서 가져온 데이터에 대해서는 VEE 실행모드 5와 실행모드 6에서 차이가 있습니다. 실행모드 6에서 어레이 데이터를 가져올 때 데이터 타입변환이 개선되었습니다. 실행모드 5와 실행모드 6에서 DataFromCells을 호출하는 경우에는 다른 결과가 발생합니다. 자세한 내용은 VEE 6.0 버전의 새로운 기능에서 Variant to VEE Data type Conversion - Improved Array Handling를 참조하십시오.

주의사항

Get Data는 Microsoft Excel Object Library의 한계 때문에 1024 캐릭터를 넘어서는 스트링을 포함하는 셀은 처리할 수 없습니다.

이러한 셀에서 데이터를 가져오는 것이 필요한 경우에는, 해경방안으로 공식에 “xlApp.Range(Cell).Value”를 사용하십시오.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Get Data [image] Data from Cells


셀에 있는 공식 연산하기

셀에 있는 공식의 결과값을 제공합니다.

사용법

하나의 셀 주소를 제공하면, Evaluate Cell Formula는 셀에 있는 공식의 결과값을 출력합니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Get Data [image] Evaluate Cell Formula


어레이 검색하기

VEE 엑셀 라이브러리는 Search Array라 불리는 유틸리티를 제공합니다. 1차원 어레이에 대해서는, Search Array는 주어진 Search Array 값의 인덱스를 출력합니다.

2차원 어레이에 대해서는, 엑셀 라이브러리는 인덱스 값으로 제공한 값을 사용하고 대응하는 [n,1]앨리먼트를 출력합니다. 예를 들어, [0,22], [1,24], [2,26] 값을 가지는 2차원 어레이에서는, search array 2는 24를 출력합니다. 24는 어레이에 있는 두번째 앨리먼트입니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Utilities [image] Search Array


스트링 대체하기

스트링의 일부를 다른 스트링의 일부로 대체하기 위해 사용합니다. 스트링 대체시 대소문자를 구분하는 것을 컨트롤 할 수 있습니다.

사용법

stringReplace는 워크북을 열 필요는 없습니다. stringReplace UserObject에는 4개의 입력이 있습니다.

  • string - 변경해야 할 스트링.
  • outSubString - 제거할 서브 스트링.
  • inSubString - utSubString을 대체할 서브 스트링.
  • caseSensitive -대소문자를 무시하기 위해서는 0을 사용합니다. inSubString 과 outSubStringUse 사이에서 대소문자를 구분하기 위해서는 1을 사용합니다. 스트링이 매칭되지 않는 경우에는 대체는 완료되지 않습니다. 성능을 향상 시키기 위하여, 기능할 때는 대소문자를 구분하지 않고 대체하는 것보다는 대소문자를 구분하는 대체를 사용하십시오.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Utilities [image] String Replace


Print Settings 설정하기

이 UserObject는 인쇄를 위해 프린터를 설정하는데 사용합니다.

오픈뷰 항목

PrintSettings UserObject는 PrintSettings UserFunction 또는 Print Settings object로 이루어져 있습니다. Print Settings 레코드 오브젝트는 프린터를 설정하는데 필요한 모든 오픈뷰 항목을 제공합니다.

  • PrintCopies -- 인쇄 매수를 설정합니다. 1매 이상을 인쇄해야 합니다.

  • ActivePrinter -- 프린터 이름을 입력합니다. 입력하지 않으면 디폴트로 설정된 프린터로 인쇄하거나 최근에 엑셀에서 인쇄한 프린터를 사용합니다. 예를 들어, \\servername\printername으로 입력합니다.

  • PrintFromPage -- 이 항목에서 지정한 페이지부터 인쇄합니다. 디폴트 페이지는 1 입니다.

  • PrintToPage -- 이 항목에서 지정한 페이지까지 인쇄합니다. 디폴트 페이지는 32767 입니다.

주의사항

영문 이외의 Office 버전을 가진 사용자는 디폴트 용지크기를 알아야 합니다. 엑셀 2002는 Application.MapPaperSize 속성을 추가하여 크기를 조정합니다. 엑셀 라이브러리를 사용하는 VEE 프로그램에서는, "xlApp.MapPaperSize"를 사용할 수 있습니다. 이 속성이 참으로 설정되면, 엑셀 2002 이상의 버전은 나라별로 표준용지 크기를 자동으로 조정합니다. 애질런트의 테스트에 의하면, 엑셀 2002와 2003에서 MapPaperSize 속성이 디폴트로 참으로 설정되지만, 디폴트값은 저장되지 않습니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Printing [image] Print Settings

관련정보

워크북이나 워크시트 인쇄하기, 인쇄 미리보기 또는 ActiveX 참조 종료


인쇄 미리보기

활성화된 워크시트를 엑셀의 인쇄 미리보기 화면으로 가져옵니다.

주의사항

인쇄 미리보기 화면에서 인쇄 버튼을 선택하고 뒤에 프로그램에서 동일한 워크시트에 대해 Print Worksheet 오브젝트를 배치한 경우에는, 워크시트가 두번 인쇄됩니다.

Print Preview는 자동으로 마이크로소프트 엑셀이 보이도록 합니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Printing [image] Print Preview

관련정보

워크북이나 워크시트 인쇄하기 또는 Print Settings 설정하기


워크북이나 워크시트 인쇄하기

현재 활성화된 워크북이나 워크시트를 인쇄합니다.

사용법

Print UserObject는 Print 레코드 오브젝트를 제공하거나 xlLib.Print UserFunction를 호출합니다.

Print 오브젝트는 워크북이나 워크시트를 선택할 수 있는 드롭다운 메뉴를 제공합니다.

오브젝트 위치

VEE 메인 메뉴 Excel [image] Printing [image] Print Workbook or Worksheet

관련정보

Print Settings 설정하기 또는 인쇄 미리보기


Excel Library FAQ

질문: Excel Library와 함께 ActiveX Automation을 사용할 수 있습니까?

답변: 사용할 수 있습니다. VEE Excel Library가 제공하는 기능에 더하여, VEE 어플리케이션의 기능을 향상시키기 위하여 Microsoft Excel 어플리케이션 오브젝트를 직접 사용할 수 있습니다. VEE Excel Library를 일단 초기화하면, VEE 프로그램에서는 Excel 어플리케이션인 전역변수인 xlApp 오브젝트를 사용할 수 있으며, 엑셀관련 프로그램 작성을 여기서부터 시작할 수 있습니다. 예를 들어, 기본 프린터 이름을 검색하기 위해서 Formula 오브젝트에 xlApp.ActivePrinter를 입력할 수 있습니다. 현재 선언된 변수 이름인 'xlApp'의 이름을 변경해야 하거나, 범위를 지역변수로 변경해야 합니다.

질문: VEE Excel Library에서 직접 user functions을 호출할 수 있습니까?

답변: 이 기능은 지원하지 않습니다. 아직은 적용되지 않았고, VEE Excel Library 인터페이스는 VEE Excel Library 메뉴 선택을 통해서만 제공됩니다.

질문: 실행할 때, 때로는 VEE가 이미 실행중인 Excel 인스턴스를 사용합니다. 때로는 VEE가 또 다른 인스턴스를 생성합니다. 왜 그렇게 하는지요?

답변: Excel 인스턴스가 존재한다면, 사용할 때 VEE Excel Library는 다시 사용하려는 시도를 합니다. Excel이 편집모드에서 셀이 편집중이고 사용자가 아직 Enter키를 누르지 않았다면, VEE Excel Library는 Excel 인스턴스와 통신할 수 없습니다. 이런 경우 Excel은 ActiveX Automation에 응답하는 것을 정지합니다. 그래서 VEE Excel Library는 다른 Excel 인스턴스를 로드합니다. 이것은 VEE 프로그램에 있는 VEE Excel Library를 실행하는 동안에 엑셀을 중복하여 사용하는 것을 방지하는 최선의 방법입니다.

질문: 왜 Excel이 실행될 때 보이지 않습니까?

답변: Excel은 xlLib.Initialize이 호출될 때 보이지 않도록 설정되어 있습니다. 왜냐하면, 대부분의 Automation 어플리케이션은 사용자의 어떤 행위가 필요치 않기 때문입니다. 사용자가 셀을 편집중에 있고 아직 Enter키를 누르지 않은 상태라면, 이러한 상태가 계속되는 것으로부터 VEE Excel Library를 막을 수 있습니다. Excel을 보이도록 하기 위해서는, xlLib.Settings 오브젝트를 사용하고, Visible을 True로 설정합니다.

질문: VEE Excel Library안에서 발생한 에러를 검출하기 위한 에러 핸들러는 어떻게 생성합니까?

답변: 에러를 처리하기 위한 UserFunctions을 원하는 만큼 생성합니다. 전역 텍스트 변수로 'userErrorHandler'를 선언하고, 여기에 에러 핸들러 UserFunction의 이름을 설정합니다. 'userErrorHandler'가 선언되고 호출할 수 있게 되면, VEE Excel Library 안에서 발생할 수 있는 대부분의 에러에 대하여 VEE Excel Library의 에러 핸들러의 실행을 차단합니다.

에러 핸들러 UserFunction은 ErrorMessage 과 ErrorNumber가 전송될 수 있도록 2개의 데이터 입력을 가져야 합니다. 에러 핸들러 UserFunction은 어떤 데이터 출력도 하지 않습니다. 또한 VEE 프로그램에서 VEE Excel Library Settings 오브젝트를 사용해야 하고(Excel 에러를 생성하기 전에), 호출되는 에러 핸들러 UserFunction를 위하여 ErrorAction을 RaiseError로 설정해야 합니다.

질문: 영문버전이 아닌 Excel을 사용중인데, 차트를 생성할 때 VEE Excel Library가 에러를 표시합니다. 어떻게 해야 합니까?

답변: Microsoft Excel은 사용중인 언어버전에 따라 다른 워크시트 이름을 가집니다. VEE Excel Library는 디폴트로 영문버전을 사용합니다. 이 문제에 대해서는 간단한 해결방법이 있습니다. examples\ExcelLibrary\BarChart.vee에 있는 BarChart.vee 예제를 참조하십시오.

질문: Excel이 Excel Library의 컨트롤을 받고 있는 동안에 셀에 몇개의 텍스트를 입력하였습니다. 임의로 이상한 에러들이 발생합니다.

답변: Microsoft Excel은 원격으로 컨트롤되고 있는 동안에는 입력할 수 없습니다. Excel이 Excel Library의 컨트롤을 받고 있을 때 무언가를 입력하게 되면 임의의 이상한 결과를 출력합니다.

ActiveX 참조 종료를 참조하십시오.


Vxl 변경

이번 장에서는 기존 Vxl 2.0 환경에서 사용하던 프로그램이 VEE 7.5/8.0의 Excel Library에서는 어떤 영향을 받는지에 대해서 설명합니다.

Vxl을 사용하여 작성된 프로그램에는 영향을 미치지 않는 변경 내용:

A. Excel Library UserFunction 파일의 복사본(ExcelLibrary.vxe)은 과거 Vxl 2.0 이 있던 위치(~installDir\lib\vxl\vxlLibrary.vxe)에 설치됩니다. Vxl 2.0 프로그램은 동일한 위치에서 새로운 라이브러리를 사용하게 되므로, 이전처럼 동작합니다. 새로운 위치에 있는 라이브러리를 사용하도록 프로그램을 업그레이드 하시기 바랍니다.(~installDir\lib\ExcelLibrary\ExcelLibrary.exe)

B. 아래 테이블에서 설명된 바와 같이 7개의 함수의 이름이 변경되었습니다. 그러나 과거의 함수이름을 대체하는 기능이 제공되었으므로, 이것들의 패널에는 더 이상 사용되지 않는 기능이라고 표시되었습니다.

C. Vxl 1.0 에서 사용하던 함수 중에서 Open 함수도 변경되었습니다. Vxl 1.0 에서 작성된 프로그램은 변경하지 않고 사용할 수 있습니다. Vxl 1.0 에서 제공되던 Open 파일이 Vxl 2.0에서는 OpenRW 으로 변경되었으며, Excel Library 에서는 OpenWorkbookRW 파일로 다시 변경되었습니다.

D. 메뉴의 일부 항목이 변경되었습니다. 예를 들어, Data From Cells 는 Get Data로 변경되고, Initialize Vxl 은 Initialize Excel Library로 변경되었습니다.

E. 메뉴가 메뉴 오브젝트를 생성하기 위해서 사용하는 .vee 확장자를 가진 파일의 이름이 변경되었습니다. 이 변경은 기존 프로그램에 영향을 미치지 않습니다. 예를 들어, Save.vee 가 SaveWorkbook.vee로 변경되었습니다.

F. 일부 메뉴 항목이 내부에서 이동하였습니다. 예를 들어, 메뉴의 하단에 있던 About Vxl 메뉴가 메뉴의 상단으로 이동되었습니다.이 메뉴의 명칭도 What is this menu?로 변경되었습니다).

G. ~installDir\examples\Vxl\ 에 설치되어 있던 Vxl 예제 파일이 ~installDir\Examples\ExcelLibrary\ 폴더로 이동되었습니다.

H. UserFunction Library 에 있던 private UserFunctions 의 이름이 변경되었습니다. 이 파일들은 메뉴 항목에서 직접 호출되지는 않고, 내부에서 사용하는 다른 라이브러리에서만 호출됩니다. 이와 관련하여 변경된 함수들의 이름은 문서로 제공하지는 않습니다. 이들 private 함수들의 이름은 zzInternal 로 시작하여 직접 호출할 수 없다는 표시를 하였습니다.

I. 삭제된 예제 파일은 없습니다. VEE 프로그램이 아니었던 FourInARow.xls 게임만 삭제되었습니다. 모든 예제 파일은 word와 관련된 내용을 지운 내용을 반영하기 위해서 이름이 변경되었습니다. 또한 일부 프로그램은 역할을 더욱 분명히 하기 위해서 명칭이 변경되었습니다.

기존 Vxl 프로그램과 호환되지 않는 변경 내역:

1. Initialize Vxl [image] Import Library [image] Library. vxl 가 xlLib로 변경되었습니다. 이것은 모든 라이브러리를 호출에 적용됩니다. 예를 들어, vxl.Initialize 를 호출하는 대신 xlLib.Initialize를 호출합니다. 이 문서에서 설명하는 변경내역을 적용하기 위해서 프로그램을 변경하였다면, 이 라이브러리 이름의 변경이 프로그램에 영향을 미치지 않으며, 이미 작성된 프로그램을 VEE7.5에서 그대로 사용할 수 있습니다. 그러나, Excel 메뉴에서 다른 오브젝트를 추가하여 프로그램을 변경하면, 새로운 오브젝트와 관련된 프로그램을 동작하지 않습니다. 이전 vxl 이름을 사용하기 위해서 Excel 메뉴에서 생성된 모든 새로운 오브젝트를 변경하던가, 새로운 xlLib 이름을 사용하기 위해서 프로그램을 변경해야 합니다.

2. 임포트된 전역변수 xl 이 xlApp로 변경되었습니다. Excel 메뉴의 어떤 메뉴도 이 xlApp를 직접 사용하지 않았으므로(즉, 사용자 프로그램에서 이 변수를 직접 호출할 기회가 없었으므로), 이전에 작성된 프로그램에 영향을 미치지 않습니다. 그러나, 일부 예제에서는 이것을 사용하고, 메인메뉴 항목 Settings 에 대한 Notepad에서 이것을 어떻게 직접 사용하는지 설명하고 있습니다.(예, set xl.DisplayAlerts=False) 프로그램에서 이것을 사용하였으면, xlApp.DisplayAlerts=False 와 같이 변경해야 합니다.

3. Vxl 메뉴를 커스터마이징 했다면, VEE 7.5/8.0 에서 그 작업을 다시 해야 합니다. 위의 (E)에서 설명한 이유 때문입니다.

4. 라이브러리에서 private UserFunctions 을 호출한다면, 위 (H)에서 설명한 이유로 인해서 작성한 프로그램이 실행되지 않습니다.

변경 내역

변경된 내역은 노란색으로 하이라이트 표시하였습니다.

Vxl 메뉴에서 제공되는 메뉴 | Excel 메뉴에서 제공되는 메뉴 | Vxl UserFunction 이름 | VEE 7.5 Excel Library UserFunction 이름 | 설명
 | QuickStart / ShortCuts |  |  | New in 7.5
Initialize Vxl | Initialize Excel Library | Initialize | Initialize | See Breaking Change (1)
Open Workbook | Open Workbook | OpenRW | OpenWorkbookRW | UserFunction 이름 변경
Navigation -> Alpha Column From Numeric Column | Navigation -> Alpha Column From Numeric Column | vxlData2CellsAlpha ColFromNumericCol | AlphaColFrom NumericCol | UserFunction 이름 변경
Navigation -> Numeric Row and Column From Range | Navigation -> Numeric Row and Column From Range | vxlData2CellsNumeric RowColFromRange | NumericRowCol FromCell | UserFunction 이름 변경
Send Data -> Data To Cells | Send Data -> Data To Cells | Data2Cells | DataToCells | UserFunction 이름 변경
Send Panel Image -> Panel Image to Picture | Send Panel Image -> Panel Image to Picture | PanelImage2Picture | PanelImageToPicture | UserFunction 이름 변경
Data From Cells -> Evaluate Cell Formula | Get Data -> Evaluate Cell Formula | EvalScalar | EvalCellFormula | UserFunction 이름 변경
Quit Vxl | Quit Excel Library | QuitVxl | QuitExcelLibrary | UserFunction 이름 변경
Utilities -> Iterate Record | Utilities -> Iterate Record | <none> | <none> | New in 7.5

관련정보

ActiveX 참조 종료


Agilent VEE에서 디버깅

VEE는 프로그램을 개발하고 실행하면서 상황에 따라서 다음과 같은 주의(Caution), 에러(Error) 및 정보 메시지(Information)를 출력합니다:

• 프로그램을 실행 시, 주의메시지 박스의 타이틀은 황색으로 표시됩니다.

• 프로그램을 실행 시, 에러메시지 박스의 타이틀은 붉은색으로 표시됩니다.

• 프로그램을 작성시, 사용자가 Int16 상수 오브젝트에 33000 값을 입력하여 입력범위 초과 에러가 발생하면, 진한 청색 제목을 가진 에러 메시지 박스를 출력합니다.

• 이러한 에러와 주의에 관한 정보는 VEE 윈도우의 하단의 상태 바에서 표시됩니다.

관련정보

데이터 흐름과 프로그램 실행흐름 보기

브레이크포인트 컨트롤하기

프로그램 단계별로 실행하기

콜스택 보기

연결선이 있는 데이터 보기

터미널 관찰

Alphanumeric 디스플레이를 사용한 디버깅

라인의 끝 포인트 찾기

에러 검출하기

에러 해결

에러 발생위치로 가기 위한 Go To 버튼 사용

최근 에러 보기

오브젝트 내부의 이벤트 발생순서

오브젝트간의 실행순서

복잡한 프로그램에서 오브젝트 찾기


데이터 흐름과 프로그램 실행흐름 보기

VEE 프로그램이 실행되는 동안에 프로그램의 디테일 뷰에서 데이터 흐름과 프로그램 실행흐름을 볼 수 있습니다. 데이터 흐름과 프로그램 실행흐름은 메인 윈도우, UserObject 및 UserFunction 편집 윈도우에서 볼 수 있습니다.

데이터 및 실행흐름 보기

1. 원하는 컨텍스트의 디테일 뷰로 전환합니다.

2. 툴바에 있는 Show Data Flow 와 Show Execution Flow 버튼을 클릭합니다.

Show Data Flow 버튼

Show Execution Flow 버튼

3. 데이터와 실행흐름을 보기 위하여 프로그램을 실행합니다.

데이터 흐름은 연결선을 따라 이동하는 작은 사각 마커를 이용하여 표시됩니다. 이 마커는 데이터 컨테이너를 표시합니다. 마커의 이동속도를 변경하기 위해서는, 아래 내용을 참조하십시오.

실행흐름은 실행하는 오브젝트를 하이라이트 하는 것으로 표시됩니다. 하이라이트는 실행하는 오브젝트를 둘러싸는 연한 녹색 테두리입니다. 하이라이트는 오브젝트가 실행한 다음에는 진한 녹색으로 변경됩니다.

데이터 흐름 속도 변경하기

1. File에서 Default Preferences를 선택합니다.

2. General 탭의 Debug 그룹에서, Data Flow Rate 화살표를 클릭하여 드롭다운 리스트를 디스플레이 합니다. 1(가장 느림)부터 10(가장 빠름)까지 비율을 설정할 수 있습니다.

3. 변경된 내용을 새로운 디폴트 VEE.RC로 저장하기 위해서는, Save 버튼을 클릭합니다. 변경된 내용을 현재의 VEE 세션에만 (File [image] New, Open, 또는 Exit을 선택하기 전까지). 적용하기 위해서는 OK 버튼을 클릭합니다.

팁

데이터 흐름과 실행흐름은 한번에 하나씩을 눌러 개별적으로 볼 수도 있습니다.

이 기능은 실행중에는 on 하거나 off 할 수 없습니다.

이 기능이 필요하지 않을 때는 off 하십시오. 이 기능은 프로그램의 실행을 느리게 합니다.

Show Data Flow 와 Show Execution Flow 명령은 Debug 메뉴에 있습니다. 명령어 옆에 체크마크가 표시되면 해당 기능이 on되어 있는 것을 나타냅니다.

VEE 4 이상의 실행모드에서는, Disable Debug Features 설정이 on되어 있는 경우에는 이 기능은 디스에이블 됩니다.

관련정보

Default Preferences 대화상자

콜스택 보기


브레이크포인트 컨트롤하기

프로그램에서 오브젝트에 브레이크포인트를 설정한 경우에는, 프로그램은 오브젝트가 실행되기 직전에 일시 정지됩니다. 그 상태에서 각 연결선에 있는 데이터 컨테이너를 보기 위해서 Line Probe를 사용할 수 있고, 프로그램의 실행을 Step 또는 Resume할 수 있습니다. 이 명령어는 선택한 오브젝트의 브레이크포인트 설정을 토글하고, 전체 프로그램에 대한 브레이크포인트를 컨트롤하는데 사용할 수 있습니다.

브레이크포인트 토글하기

1. 브레이크포인트 설정을 변경하고자 하는 오브젝트를 선택합니다. 오브젝트를 선택하기 위해서는 CTRL키를 누른 상태에서 오브젝트에서 마우스 왼쪽 버튼을 클릭합니다.

2. 툴바에 있는 Toggle Breakpoint 버튼(Debug [image] Toggle Breakpoint)을 클릭합니다. 선택한 오브젝트에서 브레이크포인트 설정이 토글됩니다. 이전에 브레이크포인트가 설정된 경우에는 초기화되고, 오브젝트의 하이라이트된 테두리가 사라집니다. 이전에 브레이크포인트가 초기화된 경우에는 설정되고, 오브젝트는 하이라이트된 테두리를 디스플레이 합니다.

Toggle Breakpoint 버튼

3. 프로그램을 실행합니다. 프로그램은 브레이크포인트가 설정된 오브젝트 직전에서 일시 정지합니다.

4. 계속 진행하기 위하여, 다음의 프로그램 컨트롤 버튼중의 하나를 클릭합니다:

Resume 버튼을 누르면 프로그램이 다시 실행됩니다.

Step Into 버튼은 UserObject 또는 UserFunction내에서 단계별로 실행됩니다.

Step Over 버튼은 오브젝트 단위로 단계별로 실행됩니다.

Step Out 버튼은 UserObject 또는 UserFunction 밖으로 나와서 단계별로 실행됩니다.

Stop 버튼은 프로그램을 중지합니다.

모든 브레이크포인트 활성화 하기

1. 메뉴 Debug [image] Activate Breakpoints를 클릭합니다.

체크 마크가 표시되면 프로그램을 실행할 때 설정된 모든 브레이크포인트가 활성화됩니다. (디폴트)

모든 브레이크포인트 초기화하기

1. 메뉴 Debug [image] Clear All Breakpoints를 클릭합니다.

프로그램에 있는 모든 브레이크포인트가 초기화되고 오브젝트에 있는 하이라이트된 테두리가 사라집니다.

단축키

브레이크포인트를 토글하기 위해서는 CTRL+B를 누릅니다.

팁

오브젝트 메뉴에 있는 Properties를 사용하여 오브젝트의 브레이크포인트를 컨트롤할 수도 있습니다. 오브젝트의 브레이크포인트를 설정하거나 초기화하기 위해서, Behavior 영역에 있는 BreakpointEnabled 항목을 True 또는 False로 변경합니다.

VEE 4이상의 실행모드에서, Default Preference에 있는 Disable Debug Features가 on되는 경우에는 디버깅 항목이 디스에이블 됩니다.

관련정보

콜스택 보기

Default Preferences 대화상자


프로그램을 단계별로 실행하기

프로그램을 한번에 하나의 오브젝트씩 실행하기 위해 툴바에 있는 다른 프로그램 컨트롤 버튼과 함께 3개의 Step 버튼을 사용합니다.

Step Into 버튼

Step Over 버튼

Step Out 버튼

Run/Resume 버튼

Pause 버튼

Stop 버튼

프로그램 컨트롤 버튼의 작용

정지된 프로그램에서, 맨 처음 Step 버튼을 누르면 프로그램은 PreRun됩니다. Step Into 버튼은 누를 때 마다 각각의 오브젝트를 실행합니다. 노랑색 테두리를 가진 오브젝트는 다음에 실행됩니다.

Step Into 버튼

브레이크포인트가 인에이블된 상태에서 프로그램을 실행한 경우에는, 프로그램은 PreRun 하고 브레이크포인트를 만날 때까지 실행합니다. 브레이트포인트에서 버튼을 누를 때마다 오브젝트를 실행하기 위하여 Step Into 버튼을 사용합니다.

Step Into 버튼

프로그램을 단계별로 실행하는 동안에 어느 지점에서든, 프로그램을 계속 실행하기 위해서 Resume 버튼을 클릭할 수 있습니다. 프로그램을 일시 정지하기 위해서는, Pause 버튼을 누릅니다. 그래서 프로그램이 정지된 경우에는, 다시 시작했을 때 PreRun을 통해서 계속 진행할 수 있습니다.

Resume 버튼

Pause 버튼

UserObject 또는 UserFunction에서의 단계별 실행

3개의 Step 버튼은 UserObject 또는 UserFunction 같은 프로그램에 있는 다른 컨텍스트에서 프로그램을 단계별로 실행할 수 있도록 합니다.

Step Into는 컨텍스트 안으로 들어가 오브젝트를 단계별로 실행하기 위하여 오브젝트의 디테일뷰에서 편집화면을 엽니다.

Step Over는 전체 컨텍스트를 실행하고 프로그램에 있는 다음 오브젝트로 넘어갑니다.

Step Out은 컨텍스트에 남아있는 모든 오브젝트를 실행하고 컨텍스트를 빠져 나와서 프로그램에 있는 다음 오브젝트로 넘어갑니다.

팁

VEE 4 이상의 실행모드에서는, default preference 대화상자에 있는 Disable Debug Features 항목이 on 되어 있는 경우에는 이 디버깅 기능은 디스에이블됩니다.

관련정보

콜스택 보기

Default Preferences 대화상자


콜스택 보기

U일시 정지된 프로그램에서 다음에 실행해야 할 오브젝트와 호출할 컨텍스트를 보기 위하여 Call Stack 대화상자(View [image] Call Stack)를 사용합니다. Call Stack은 프로그램을 단계별로 실행중이거나 브레이크포인트를 사용할 때 유용합니다. 프로그램이 일시 정지나 중지되어 있는 동안에 메뉴나 툴바 버튼에서 Call Stack을 열고 닫을 수 있습니다.

Call Stack 버튼

Call Stack 대화상자는 다음에 실행할 오브젝트 및 입력변수를 포함하는 UserObjects 또는 UserFunctions을 호출하기 위한 목록을 상태 라인에 디스플레이 합니다. 다음 그림은 샘플 데이터를 사용하여 Call Stack을 보여줍니다. 다음에 실행할 오브젝트는 UserObject Gen Sine Waves를 가지고 있으며 메인 프로그램에 포함되어 있는 Function Generator입니다. Gen Sine Waves는 3개의 입력으로 Freq1, Freq2, 및 Phase를 가지고 있습니다.

프로그램에서의 사용

Call Stack이 열려 있을 때, 이것은 프로그램이 일시 정지되어 있을 때만 정보를 제공합니다. 프로그램이 실행중이거나 정지되어 있을 때는 정보를 제공하지 않습니다.

프로그램이 일시 정지될 때마다, Call Stack은 프로그램 실행 흐름에 맞추어 자동으로 업데이트합니다.

Call Stack은 다음 방법에 의해 일시 정지될 때 정보를 디스플레이 합니다:

Pause을 누를 때

Step Into, Step Over, 또는 Step Out 버튼을 사용할 때

브레이크포인트 설정

프로그램 실행 에러

콜스택 내용의 사용

프로그램이 일시 정지되고 Call Stack이 열리면, 현재의 컨텍스트가 디스플레이 되고 다음에 실행할 오브젝트가 하이라이트 됩니다.

현재의 Call Stack 목록에 있는 컨텍스트를 사용하기 위해서는, 컨텍스트 이름을 더블 클릭하면 해당 컨텍스트가 디스플레이 됩니다.

관련정보

데이터 흐름과 프로그램 실행흐름 보기

브레이크포인트 컨트롤하기

프로그램을 단계별로 실행하기


연결선에 있는 데이터 보기

VEE 데이터 연결선에서 통과된 데이터 컨테이너를 보기 위하여 Line Probe 명령어(Debug [image] Line Probe)를 사용합니다. 프로그램은 일시 정지되거나 정지되어 있어야 합니다.

연결선을 빠르게 프로브하기 위해서는, 마우스 포인터를 연결선 위로 이동합니다. 포인터는 모양이 변하고 데이터를 요약한 라인 팁이 나타납니다. 다음에 그림에서 보는 바와 같이 Line Value 대화상자를 보기 위해서는 연결선을 클릭합니다:

통과된 데이터가 없는 연결선(또는 “핑”이 전달된 시퀀스 핀)을 프로브하는 경우에는, Line Value 대화상자는 Nil (비어있는) 컨테이너를 디스플레이 합니다.


터미날 관찰

터미날을 관찰하기 위해서, 오픈뷰 내의 터미날을 더블클릭 합니다. 오브젝트가 아이콘뷰의 상태인 경우에는 마우스 포인터를 터미날 위에 올리면, VEE가 자동으로 터미날의 이름을 팝업시킵니다.


Alphanumeric 디스플레이를 사용한 디버깅

프로그램의 여러 지점에 AlphaNumeric 또는 Logging AlphaNumeric 디스플레이를 추가하여 데이터의 흐름을 추적할 수 있습니다. 프로그램이 정확하게 동작하면 이들 오브젝트를 삭제합니다. AlphaNumeric은 단일 데이터 컨테이너(스칼라 값, 1차원 어레이, 또는 2차원 어레이)를 디스플레이 하고 Logging AlphaNumeric(스칼라 또는 1차원 어레이)은 히스토리 또는 이전의 값과 같은 연속적인 입력을 디스플레이 합니다. 또한 오브젝트가 실행된 횟수는 Counter를 사용하여 조회할 수도 있습니다.


라인의 끝 포인트 찾기

Line Probe 명령 (Debug [image] Line Probe)은 라인 및 라인의 끝 포인트를 추적하는데 사용합니다. 프로그램은 일시 정지 되거나 중지되어야 합니다.

라인을 빠르게 추적하기 위해서는, 원하는 라인위로 마우스 포인터를 이동합니다. 포인터의 모양이 변경되고 라인의 끝 포인트와 함께 라인이 하이라이트 됩니다. 데이터 컨테이너를 보기 위해서는 라인을 클릭하십시오.


에러 검출하기

일반적으로 모든 VEE 에러는 Error Message 대화상자를 통해서 표시됩니다. 오브젝트에 Error 출력핀을 추가하여 특정한 오브젝트에 의해 발생한 에러를 검출할 수 있습니다.

오브젝트에 Error 출력 터미날을 추가하기 위해서는, 오브젝트 메뉴에서 Add Terminal [image] Error Output을 선택합니다.

Error 출력 터미날이 있는 오브젝트에 에러를 발생한 경우에는, 일반적으로 사용되는 VEE Error Message 대화상자는 나타나지 않습니다. 대신에, Error 출력 터미날이 프로그램에 의해 처리되어야 하는 에러 번호를 출력합니다.

Error 출력 터미날을 사용하는 다양한 방법은 다음과 같습니다:

Error 출력은 Raise Error 같은 다른 오브젝트를 활성화하기 위해 사용합니다.

If/Then/Else는 에러 번호를 기준으로 실행을 처리하기 위하여 사용합니다.

errorInfo()는 최근에 검출된 에러에 대한 에러 정보를 표시하기 위해 사용합니다.

사용예

manual 예제 디렉토리(Help [image] Open Example...)에 있는 manual37.vee 프로그램을 엽니다. 이 프로그램은 에러를 검출하는 방법을 제시합니다.

관련정보

errorInfo()

Error Output 메뉴항목 (오브젝트 메뉴)

Raise Error


에러 해결

프로그램을 실행하면서 에러가 발생하면 에러가 발생한 오브젝트에 붉은색의 외곽선을 나타냅니다.

사용자가 에러를 수정하여 외곽선을 제거하거나, Stop 버튼을 클릭하여 붉은색의 외곽선을 제거한 다음 에러를 수정할 수 있습니다. 사용자가 Stop 버튼을 클릭했으면, 실행을 재개 하기 전에 View [image] Last Error를 이용하여 에러를 다시 볼 수 있습니다.


에러 발생위치로 가기 위한 Go To 버튼 사용

다음 그림은 런타임 에러 메시지의 사례입니다. 이 프로그램이 실행되면 VEE는 Run Time Error를 디스플레이 하고 UserObject AddNoise 주위에 붉은색의 외곽선이 나타납니다. Go To 버튼을 누르면, VEE는 UserObject AddNoise 열고 A 입력핀이 연결 되지 않은 A+B 오브젝트에 붉은색의 외곽선을 표시합니다. 규모가 큰 프로그램에서 Go To 기능은 에러가 발생한 오브젝트를 신속히 찾기 위해 유용하게 사용할 수 있습니다.


최근 에러 보기

VEE 에러는 Error Message 대화상자에 의해 표시됩니다. 에러가 표시되면, 프로그램에 있는 문제의 오브젝트를 접근하기 위해 에러 대화상자를 닫을 수도 있습니다. 에러 메시지를 다시 보기 위해서는, 메뉴 View [image] Last Error를 클릭합니다.

오브젝트에 있는 Error 출력 터미날에 의해 처리된 에러는 이 명령어를 사용하여 표시할 수 없습니다.

Last Error 버퍼는 프로그램이 다시 실행되거나 새로운 프로그램이 로딩된 경우에는 초기화 됩니다.


오브젝트 내부의 이벤트 발생순서

다음 그림은 오브젝트 내부의 이벤트 발생순서를 나타냅니다.

핀은 다음과 같이 동작합니다:

1 | 시퀀스 입력핀이 연결되어 있다면, 오브젝트는 실행 메시지 (VEE 용어로 “ping”)를 수신할 때까지 동작하지 않습니다. 그러나 시퀀스 입력핀은 반드시 연결할 필요는 없습니다.
2 | 오브젝트가 동작하기 위해서는 모든 데이터 입력핀에 데이터가 제공되어야 합니다. (거의 모든 오브젝트에서 데이터 입력/출력 핀을 추가할 수 있습니다. 오브젝트 메뉴에서 Add/Delete Terminal 메뉴를 클릭하면 추가된 오브젝트를 발견할 수 있습니다.)
3 | 오브젝트는 필드의 내용을 실행합니다. 위의 그림의 경우에는 A 와 B에 더해져서 출력핀으로 전달됩니다.
4 | 데이터 출력핀으로 데이터가 출력됩니다. 이 오브젝트는 다음 오브젝트가 데이터를 수신 완료했음을 알리는 신호를 받을 때까지 자신의 연산을 완료하지 않습니다. (이 오브젝트는 자신의 데이터를 수신하는 오브젝트가 데이터를 수신했음을 알리는 신호를 보내야만 자신의 연산을 완료한 것으로 간주합니다.) 따라서, 이 오브젝트는 자신의 데이터 출력핀과 연결된 모든 오브젝트가 자신의 데이터를 받았을 때까지 시퀀스 출력핀으로 시퀀스 데이터를 출력하지 않습니다.
5 | 시퀀스 출력핀으로 시퀀스 신호가 출력됩니다.

오브젝트의 이벤트는 다음과 같은 상황에서 일반적인 이벤트 발생순서를 따르지 않습니다:

• 사용자는 오브젝트 내부의 에러를 추적하기 위하여 에러 출력핀을 추가할 수 있습니다. 에러 출력핀은 오브젝트의 일반적인 행동보다 우선합니다. 오브젝트가 실행하는 동안 에러가 발생하면, 에러 핀은 메시지를 출력하지만 데이터 출력핀은 데이터를 출력하지 않습니다.

• 오브젝트에 컨트롤 입력핀을 추가할 수 있으며, 컨트롤 입력핀에 신호가 인가되면 오브젝트가 즉시 실행합니다. 예를 들어 Waveform(Time) 디스플레이의 Title 또는 Autoscale과 같은 오브젝트 종속함수를 제어 입력으로 사용할 수 있습니다. 오브젝트에 연결된 컨트롤 선은 점선으로 나타납니다.

다음 그림은 Waveform(Time) 디스플레이의 커스텀 타이틀을 설정하는 컨트롤 선을 사용하는 예제입니다. 일반적으로 하나의 오브젝트가 실행되기 위해서는 그 오브젝트의 모든 입력핀에 데이터가 인가되어야 합니다. 즉, 이 예제에서는 커스텀 타이틀 설정을 위한 컨트롤 입력핀과 그래프에 표시될 데이터 입력핀을 가지고 있습니다. 일반적인 경우라면 이들 2개의 입력에 모두 데이터가 인가되어야만 Waveform(Time) 오브젝트가 실행됩니다. 그러나 이 경우에는 커스텀 타이틀 설정을 위해서 사용되는 컨트롤 입력핀에 데이터가 인가되면 데이터 입력핀의 데이터에 관계없이 Waveform(Time)의 타이틀이 먼저 실행 됩니다. 컨트롤 라인에 인가된 데이터가 먼저 실행되는 것을 관찰하기 위해서 Show Data Flow를 클릭하고 프로그램을 실행합니다.


오브젝트간의 실행순서

VEE 프로그램의 오브젝트는 다음의 순서에 따라 실행됩니다:

1 Start 오브젝트가 가장 먼저 동작합니다.

다음 그림은 2 개의 쓰레드를 가진 VEE 프로그램입니다. Start 오브젝트(Flow [image] Start에서 제공됩니다.)는 각각의 쓰레드를 동작시키기 위하여 사용되었습니다. 프로그램이 Start 오브젝트를 포함하고 있으면 이들이 가장 먼저 실행됩니다.

2 데이터 입력핀이 없는 오브젝트가 먼저 동작합니다. Data [image] Constant 메뉴에서 제공되는 오브젝트들이 여기에 해당합니다.

3 입력핀을 가지고 있는 오브젝트는 입력핀에 데이터가 모두 입력되어야 실행됩니다.


복잡한 프로그램에서 오브젝트 찾기

대규모의 프로그램에서 특정 오브젝트를 찾으려면, Edit [image] Find를 실행합니다. 오브젝트 또는 함수의 이름을 팝업 대화상자에 입력하면 프로그램 내부의 오브젝트나 함수의 모든 인스턴스와 위치를 디스플레이 합니다. (자세한 정보는 " 대용량 프로그램에서 함수를 찾는 방법" 을 참조하십시오.)


프로그램을 모듈화하기

아래의 팁은 VEE 프로그램을 모듈화하는 방법입니다.

1. VEE 프로그램이 수행한 내용을 분석합니다. 특별한 기능을 수행한 오브젝트 그룹들을 확인할 수 있습니까? 그 오브젝트들을 하나의 UserObject로 생성합니다.

2. 프로그램중에서 여러 차례 수행하는 기능이 있습니까? 만약 그렇다면, 이 기능을 수행할 UserFunction을 생성하고 필요할 때 UserFunction을 호출하여 사용하십시오.

3. UserObject와 UserFunction을 이용하여 계층구조를 만들고 프로그램을 통해서 처리하십시오.

4. 만약 하나의 데이터 컨테이너를 몇 개의 오브젝트에 연결하여 사용했다면, 데이터 컨테이너 대신에 전역변수를 사용하는 것을 고려하십시오.

관련정보

프로그램 상에서 UserObject 생성하기

프로그램 상에서 UserFunction 생성하기

UserObject

UserFunction


프로그램을 문서화하기

다음의 여러 가지 방법을 사용하여 프로그램을 좀더 쉽게 사용하고, 수정하고, 관리할 수 있습니다.

1. 프로그램이름을 기능 설명형식의 이름으로 사용합니다. 프로그램을 저장할 때, 기능을 설명하는 형식으로 파일이름을 사용합니다. 이 이름은 Program Explorer창의 상단에 나타납니다. 만약 메인 윈도우가 패널뷰를 가지고 있다면, 속성창을 이용하여 관련된 실행 윈도우의 이름을 입력하십시오. 이 이름은 Program Explorer에 있는 파일이름을 대체합니다. 그리고 프로그램이 실행될 때, 실행 윈도우의 타이틀바에 나타납니다. 이들 이름은 프로그램 문서화 항목인 Save Documentation에서 사용됩니다.

2. 오브젝트 이름을 더욱 의미있는 이름으로 변경하십시오. 예를 들어, Repeat 100x는 For Count보다 훨씬 더 유용합니다. (오브젝트의 속성창에서 Title항목을 변경하십시오)

3. 입력터미날과 출력터미날의 이름을 좀더 설명적인 이름으로 변경하십시오. 예를 들어, 만약 터미날 A가 flow rate를 입력한다면, 이름을 Flow_Rate로 변경할 수도 있습니다. (터미날 영역을 더블클릭하여 나타나는 대화상자에서 이름을 변경합니다.) 일부 터미날 이름은 변경할 수 없습니다.

4. 중요한 오브젝트나 함수에는 오브젝트 메뉴에 있는 Description을 사용하여 설명을 추가하십시오. 입력할 수 있는 정보에는, 특정한 오브젝트를 사용한 이유, 입력과 출력에 대한 상세내용, 오브젝트에서 사용했던 옵션들입니다. 프로그램 사이즈를 최소화 하기 위하여 가능한 짧게 설명합니다.

5. Note Pad 디스플레이 오브젝트 (Display [image] Note Pad)를 사용하여 주의사항을 추가합니다. 포함할 수 있는 정보로는:

프로그램 작성자, 전화번호, 작성일자

프로그램의 용도

프로그램을 수정한 날짜 및 수정한 내용

6. 기능을 설명할 수 있는 비트맵을 사용하여 UserObject의 아이콘을 수정합니다.

7. 프로그램을 인쇄하기 위하여 인쇄 명령어를 사용합니다. 인쇄 명령어는 File 메뉴, 메인 윈도우와 UserObject/UserFunction의 편집화면에 있는 오브젝트 메뉴, Program Explorer에 있습니다. (이름에서 마우스 오른쪽 버튼을 클릭하십시오.)

관련정보

VEE 아이콘에 비트맵 추가하기

패널에 그림 추가하기

Description 메뉴항목

Save Documentation 메뉴항목


VEE 아이콘에 비트맵 추가하기

아이콘화된 VEE 오브젝트에 비트맵을 추가할 수 있습니다.

일반 비트맵 추가하기

1. 오브젝트메뉴에서 Properties를 선택하고, 좌측의 Properties창에서 Icon Appearance 항목의 IconPicture를 선택합니다.

2. VEE의 비트맵 디렉토리에 있는 사용할 수 있는 비트맵들이 디스플레이 됩니다. 리스트에서 원하는 파일명을 선택합니다. 예를 들어, beep.icn을 선택하면 beep.icn이 Preview창에 나타납니다. 다른 디렉토리를 찾고자 하면 Browse버튼을 클릭하고, Select File 창이 나타나면 원하는 비트맵 파일을 찾을 수 있습니다.

3. 아래그림은 Beep 비트맵을 가진 UserObject입니다.

사용자지정 비트맵 추가하기

사용자지정 비트맵을 추가하는 순서는 일반적인 비트맵 추가하기와 동일합니다. 단, 비트맵을 미리 생성해야 합니다. 사용자지정 비트맵을 생성하기 위해서는 적절한 비트맵 에디터(예를 들면, Microsoft Paint 프로그램)를 사용해야 합니다. 아래는 지원 가능한 파일포맷 입니다.

BMP, ICN 혹은 GIF

디폴트 비트맵은 다음 디렉토리에서 제공합니다:

C:\Program Files\Agilent\VEE Pro 8.0\bitmaps

관련정보

패널에 그림 추가하기


실행 파라미터 프로파일 하기

프로그램에 대한 실행정보를 수집하기 위하여 Profiler (메뉴 View [image] Profiler)를 사용합니다. Profiler는 포로그램이 실행되는 동안에 각 컨텍스트(메인, UserObject, 또는 UserFunction)가 사용한 컴파일러 시간에 관한 실행 파라미터를 측정합니다. 이 정보는 효율성을 최대화하기 위하여 프로그램을 수정하거나, 실행속도를 향상시키고자 할 때 유용합니다. 메뉴 또는 툴바 버튼으로 Profiler를 열고 닫을 수 있습니다.

Profiler 버튼

Profiler에 있는 데이터는 각 컨텍스트가 실행하기 위해 사용한 컴파일러 시간을 디스플레이 합니다. 다음 그림은 프로그램이 실행되면서 사용된 각 컨텍스트에 대한 실행 횟수, 시간 백분율 및 초 단위 시간프로파일의 예입니다.

프로그램 프로파일 하기

1. 프로그램을 엽니다.

2. . Profiler (View [image] Profiler 또는 툴바 버튼 사용)를 엽니다.

필요한 경우, 어떤 데이터를 디스플레이하고 파일에 저장할 건지를 변경하기 위해서는 Options을 클릭합니다.

3. Profiler에 있는 Start Profiling 버튼을 클릭합니다. VEE 윈도우의 상태바에 있는 PROF가 하이라이트 됩니다. Profiler를 열거나 닫은 상태로 놓습니다; Profiler 를 시작하고 나면; Profiler가 열려 있는 것과 상관없이 데이터를 수집합니다.

4. 프로그램을 실행합니다.

5. Profiler를 열고 Refresh 버튼을 클릭하면 디스플레이를 업데이트 합니다.

프로그램의 어떤 상태에서도 디스플레이를 업데이트할 수 있습니다; 실행 중, 일시 정지 상태 또는 정지 상태. 새로운 데이터는 Profiler가 실행되는 동안에 계속 수집되지만, 새로운 데이터를 디스플레이하기 위해서는 업데이트해야 합니다. 데이터는 Clear 버튼을 누르거나, 다른 프로그램을 열거나 또는 File [image] New를 클릭하기 전까지는 유지됩니다.

디스플레이된 데이터를 열로 정렬하기 위해서는, 역순으로 데이터를 재 정렬하기 위해서 열 항목을 클릭합니다.

6. 프로파일 데이터를 파일에 저장하기 위해서는 Save 버튼을 클릭합니다. 최신 데이터를 저장하기 위해서는 Save 버튼을 클릭하기 전에 Refresh 버튼을 반드시 클릭해야 합니다. 저장된 파일은 계산된 총 %Time 및 Time(sec)을 포함합니다.

7. 데이터 수집을 중지하기 위해서는 Stop Profiling 버튼을 클릭합니다.

팁

메인 윈도우, UserObject, 또는 UserFunction을 VEE 작업공간으로 가져오기 위해서는, Profiler에 디스플레이된 컨텍스트 이름을 더블 클릭 하십시오.

관련정보

Profiler


프로그램의 성능 장애요소 제거하기

다음은 프로그램의 실행속도를 향상하기 위하여 사용할 수 있는 일반적인 방법입니다.

VEE 4 이상의 실행모드를 사용하고 Default Preferences 대화상자에서 debug features를 디스에이블 시키십시오. 이 모드는 컴파일된 실행모드에서 프로그램을 실행합니다.

UserObjects 및 UserFunctions에서, 데이터 입력 터미날에 필요한 특정한 데이터 타입과 형태를 선택하십시오; 이들을 Any로 설정하지 마십시오. 이렇게 파라미터를 지정하면 VEE 4 이상의 실행모드에서 프로그램을 빠르게 실행합니다. 다른 오브젝트들은, 데이터 타입과 형태를 Any로 설정하십시오. VEE는 필요 시에만 데이터 타입을 변환하여 실행시간을 절약합니다. 입력터미날에 있는 데이터종류 변환를 참조하십시오.

필요하지 않은 경우에는 디스플레이에 있는 Clear at PreRun 또는 Clear at Activate 항목을 off 하십시오.

디폴트로 설정된 컨트롤 핀 대신에 데이터 오브젝트에 있는 Initialize at PreRun 또는 Initialize at Activate를 사용하십시오.

그래픽 디스플레이용 데이터는 각각의 스칼라 포인트마다 디스플레이 하기 보다는 어레이로 모아서 전체 어레이를 한번에 그래프로 출력하십시오. 디스플레이되는 x 값이 일정한 간격인 경우에는, X vs Y Plot 오브젝트 보다는 XY Trace 오브젝트를 사용하십시오.

패널뷰에서 프로그램을 실행 하십시오. 패널뷰에 오브젝트가 적게 있은 경우에는, 프로그램은 빨리 실행됩니다.

그래픽 디스플레이는 최대한 단순하게 설정하십시오. 가장 빠른 업데이트를 제공하는 설정은, Grid Type [image] None 과 모든 Layout 항목을 디스에이블 시키는 것입니다. Auto Scale 컨트롤 입력은 프로그램의 속도를 저하 시키기 때문에, 꼭 필요한 경우에만 사용하십시오.

Fill Bar, Meter, Tank, 또는 Thermometer 오브젝트 같은 indicators 오브젝트에 있는 불필요한 디지털 디스플레이는 off 하십시오.

끊임없이 디스플레이를 업데이트하는 오브젝트들(Timer, Counter, Accumulator, AlphaNumeric, 또는 그래픽 디스플레이 오브젝트 같은)은 아이콘화 하십시오.

Strip Chart 디스플레이를 사용한 경우에는, 버퍼 사이즈를 최대한 작게 설정하십시오.

처리하기 위한 데이터는 어레이로 모아서, 데이터를 어레이로 처리하십시오.

표현식에서 PComplex 보다는 복소수를 사용하십시오. 대부분의 수학 라이브러리는 PComplex를 복소수로 변환하고, 결과값을 연산하고, 복소수를 다시 PComplex로 역 변환합니다.

PComplex 데이터를 디스플레이하기 위해서는, Trig Mode (File [image] Default Preferences 아래에서)를 Radians으로 설정하십시오. VEE는 내부에서 PComplex 값을 라디안으로 저장합니다.

함수 라이브러리를 임포팅한 경우에는(Device [image] Import Library), 더 이상 라이브러이가 필요하지 않은 시점에 그들을 삭제(Device   [image] Delete Library)합니다.

빠른 실행이 필요한 프로그램 부분에 대해서는, 텍스트 프로그래밍 언어를 사용하여 컴파일된 함수를 생성하십시오.

일반적으로, 실행하기 위한 오브젝트가 적을수록, 프로그램은 더 빨리 실행됩니다. 가능한 많은 함수를 각 오브젝트에서 실행시키십시오.

관련정보

프로그램에서 오브젝트 수 줄이기


프로그램에서 오브젝트 수 줄이기

많은 VEE 오브젝트들이 여러 개의 함수를 수행할 수 있습니다. 다음에 제시하는 방법을 이용하는 경우에는, 프로그램을 더욱 압축하고, 쉽게 유지 보수할 수 있고, 빠르게 실행할 수 있습니다:

상수 오브젝트나 단순한 수학 함수 오브젝트를 Formula 오브젝트에 있는 입력 터미날로연결하는 대신에 Formula 오브젝트에서 방정식을 입력하십시오. Formula 오브젝트에 함수들을 네스팅할 수 있습니다. 예를 들어, (sin(ramp(100, 0, 360))) 표현식을 입력할 수 있습니다.

여러 개의 If/Then/Else 또는 Conditional 오브젝트를 사용하는 대신에 복수의 조건문(예를 들어, A == B OR A<=C AND A>D)을 가진 하나의 If/Then/Else 오브젝트를 사용하십시오.

1차원 어레이 데이터를 입력하기 위해서는, 각각의 Constant 오브젝트가 각기 다른 값을 생성하여 어레이를 구성하는 대신에 어레이로 설정된 Constant 오브젝트를 사용하십시오.

파일에서 “나머지” 데이터를 모두 읽기 위해서는, From File 오브젝트에서 ARRAY 1D TO END:(*) 트랜잭션을 사용하십시오. 이것은 하나의 앨리먼트를 읽고 읽은 결과를 어레이로 수집하는 루핑보다 단순하고 빠릅니다.

여러 개의 UserFunctions의 실행순서를 컨트롤하기 위해서 Sequencer를 사용하십시오.

Sequencer 오브젝트를 사용할 때, Log 레코드가 필요한 트랜잭션에 대해서만 로그를 인에이블 시킵니다. Log 출력 터미날을 사용하지 않은 경우에는, 실행속도를 조금 빠르게 하기 위해 터미날을 삭제 하십시오.

관련정보

Sequencer


I/O 성능 향상하기

일반적으로 다이렉트 I/O는 가장 빠른 I/O 성능을 제공합니다. VEE 프로그램의 I/O 성능을 극대화하기 위해서는:

1. 계측기와 통신하기 위해서는 인스트루먼트 패널(또는 컴포넌트 드라이버)을 사용하여 프로그램을 생성하십시오. 프로그램과 계측기의 설정을 테스트하고 디버깅합니다.

2. Bus I/O Monitor 오브젝트를 추가하십시오. 인스트루먼트 패널이나 컴포넌트 드라이버를 사용하여 프로그램을 실행하고 계측기로 전송된 메시지를 “캡쳐” 하고, 계측기로부터 메시지를 전송 받습니다.

3. “캡쳐된” 메시지를 사용하여 계측기와 통신하기 위한 Direct I/O 오브젝트를 사용하여 프로그램을 다시 작성하십시오. 이것은 최종 프로그램에서 I/O 성능을 향상 시킵니다. 긴 스트링의 계측기 명령어에 대해서는, Direct I/O 오브젝트의 데이터 입력핀으로 연결된 Text 오브젝트에 계측기 명령어를 저장하십시오.

4. 계측기 I/O 함수를 수행하는 컴파일된 함수를 사용하면 가장 빠른 I/O 속도를 구현할수 있습니다.

관련정보

Bus I/O Monitor

Direct I/O

Direct I/O 오브젝트 사용하기

컴파일된 함수 사용


To Change Properties Programmatically

프로그램상에서 속성을 설정하고 가져오기

속성의 디자인-타임에 영향을 주지 않고 VEE 오브젝트의 속성을 실행시에 설정하고 가져올 수 있습니다.

속성을 프로그램상에서 가져오기/설정하기

VEE 오브젝트의 속성창으로 이동합니다. Design 영역아래에서, Declared Name 필드에 값을 입력합니다. Declared Name의 값은 오브젝트 변수를 ‘local to 디스플레이의 컨텍스트’로 무조건 선언합니다. Declared Name을 선언한 다음에는, VEE 오브젝트의 속성을 가져오고/설정할 수 있습니다. 예를 들어, 오브젝트의 배경색, 크기, 위치 및 제목 등을 변경할 수 있습니다. 다음 표는 프로그램상에서 가져오고/설정할 수 있는 오브젝트와 속성을 나타냅니다.

속성 | 오브젝트
배경색, 전경색, 제목, 크기, 위치 및 보이기 속성 | 모든 VEE 오브젝트
값 | Toggle Controls, Constants, Continuous Controls
EnumValue, EnumValues, EnumIndex | Selection controls
EnableOnPing | Confirm (OK) 오브젝트
EnableEditing 속성 | "Enable/Disable Editing" 컨트롤 입력핀을 가진 VEE Data 오브젝트
크기 및 위치 | Main, UserFunctions 및 UserObjects
Size 및 Location | Main 또는 UserFunctions의 팝업패널
탭 인덱스 | 패널뷰에 있는 VEE 오브젝트
배경색 | UserFunction/UserObject 패널뷰와 메인 패널뷰

상기 표에 있는 모든 속성들은 런-타임 속성이라 부릅니다. 다른 VEE 오브젝트는 다른 런-타임 속성을 가집니다.

주의사항

VEE 오브젝트의 속성을 프로그램상에서 가져오고/설정하기(Title 속성, EnableEditing 속성, EnableOnPing, EnumValue, EnumValues, 값 및 EnumIndex 제외) 위해서는, 먼저 VEE 오브젝트가 패널뷰에 추가 되어야 합니다.

Declare Variable 오브젝트에 대해서는, 오브젝트의 Declared Name을 설정하거나 Variable Scope를 변경할 수는 없습니다.

일반적으로, VEE 오브젝트의 속성을 설정하기 위해서, 다음과 같이 사용할 수 있습니다: Declared Name. 속성= 속성의 값. 예를 들어, DeclaredName.BackColor = "Blue".

UserFunction에 대해서는, Declared Name을 설정하거나 Variable Scope를 변경할 수는 없지만, Declared Name 대신에 오브젝트의 Title을 사용하여 속성을 설정할 수 있습니다.

사용예: X_Y Trace 오브젝트의 전경색 설정

1. 메뉴 Device [image] Virtual Source [image] Noise Generator를 선택합니다..

2. 메뉴Display [image] Waveform (Time)을 선택합니다. 오브젝트의 Declared Name을 waveform1으로 설정하고 오브젝트를 패널뷰에 추가합니다.

3. Noise Generator의 데이터 출력핀을 Waveform (Time)의 데이터 입력핀으로 연결하고 프로그램을 실행합니다.

4. 메뉴 Device [image] Formula를 선택합니다. waveform1.BackColor = "blue"라고 입력합니다.

5. Select Flow [image] Confirm (OK)을 선택합니다. 이 오브젝트를 패널뷰에 추가합니다. Waveform의 시퀀스 출력을 Confirm (OK) 오브젝트의 시퀀스 입력핀으로 연결합니다.

6. 프로그램을 실행하면, Waveform의 배경색이 푸른색으로 변경됩니다.

주의사항

Confirm (OK) 버튼에 대해서는, EnableOnPing 속성이 디폴트로 True이며, 이것은 핑 되었을 때 Confirm 버튼이 인에이블 된다는 것을 의미합니다. EnableOnPing 속성이 False로 설정된 경우에는, Confirm 버튼은 핑 되었을 지라도 누를 수 없게 됩니다.

다음 사용예 에서는, OK1이 Confirm 오브젝트이고 초기에는 디스에이블 되어 있습니다. Formula 오브젝트에서는, OK1의 EnableOnPing 속성을 TRUE로 설정합니다. OK 버튼을 누르면 OK1 버튼을 핑 하기 때문에, OK1 버튼은 OK 버튼을 누른 다음에 인에이블됩니다.

OK1의 EnableOnPing 속성이 False로 설정된 경우에는, OK1 버튼은 OK 버튼을 누른 다음 일지라도 인에이블 되지 않습니다.

관련정보

프로그램 실행 중 속성변경, 오브젝트의 Declared Name 및 Scope 변경하기

ProgrammaticPropertyDemo.vee, DemoTabIndexChangeDemo.vee


To Change Object's Name 및 Scope

오브젝트의 Declared Name 또는 Declared Scope 변경하기

VEE 8.0부터는, 속성창에서 Design 탭 아래에 2개의 새로운 항목을 제공합니다. 이 항목은 Declared Name 과 Declared Scope입니다.

VEE 오브젝트의 속성창에서 Declared Name 필드에 이름을 입력하면, 해당 VEE 오브젝트에 대한 변수를 무조건 선언하게 됩니다. 변수는 오브젝트의 데이터 타입이고, 이것은 ‘local to 오브젝트가 있는 컨텍스트’가 됩니다.

VEE 오브젝트의 속성을 실행중에 변경하기 위해서는, 먼저 VEE 오브젝트에 대한 Declared Name을 설정해야 합니다.

주의사항

메인, Declared Variable, 및 UserFunctions을 제외한 모든 VEE 오브젝트에 대해 Declared Name를 설정할 수 있습니다.

VEE 오브젝트의 Declared Name을 설정한 다음에, 해당 오브젝트에 대한 속성창으로 다시 들어가서, 해당 오브젝트의 Declared Scope을 변경할 수 있습니다. 디폴트로 Declared Scope는 Local to Context 입니다. 이 값은 Global, 또는 UserFunction 내에 있는 경우에는 Local to Library로 변경할 수 있습니다. 이러한 기능은 선언된 VEE 오브젝트를 다른 컨텍스트에서 사용할 수 있도록 합니다.

.NET 오브젝트와 COM 오브젝트는 디폴트로 Declared Name을 제공하기 때문에, Declared Names을 설정하지 않고 이들의 Declared Scopes를 변경할 수 있습니다.

사용예

다음 사용예는 UserFunction에서 XY Trace 오브젝트를 지정하고, 메인에서 XY Trace의 배경색을 녹색으로 변경합니다.

1. UserFunction에서 XY Trace 오브젝트를 지정하고 Function Generator를 XY Trace의 입력핀으로 연결합니다;

2. XY Trace의 Declared Name을 xy_uf로 설정하고 Declared Scope를 Global로 변경합니다; 디폴트로, Declared Scope는 Local to Context이며, 이것은 UserFunction 밖에서는 이 오브젝트를 사용할 수 없다는 것을 의미합니다.

3. Formula에서 XY Trace의 배경색을 적색으로 설정합니다; 그리고 XY Trace를 패널뷰에 추가합니다.

4. 메인에서, 먼저 UserFuncion을 호출합니다. 5초의 지연 후에, XY Trace의 배경색을 녹색으로 변경하도록 합니다.

5.프로그램을 실행하면, XY Trace가 먼저 적색으로 나타나고, 다시 녹색으로 바뀌는 것을 볼 수 있습니다.

관련정보

프로그램상에서 속성 설정하고 가져오기, 프로그램 실행 중 속성 변경


애질런트 VEE 프로그래밍 소개

Agilent VEE는 무엇인가?

애질런트 VEE Pro를 선택해 주셔서 감사합니다. 애질런트 VEE는 전자 계측기를 사용할 수 있도록 최적화된 그래픽 기반 프로그램 개발환경입니다. VEE의 가치를 가장 간단히 표현하는 말은 “더 정확한 측정을 더 빠르게”입니다. 기초언어를 사용하는 것보다 VEE를 사용하여 훨씬 빠르게 소프트웨어를 작성할 수 있으며, 측정데이터를 분석하는데 사용할 수 백개의 강력한 함수가 제공됩니다.

Agilent VEE 빌딩 블록

애질런트 VEE는 작업영역에 그래픽 오브젝트를 배치하고 이들을 선으로 연결하여 프로그램을 생성합니다. 이러한 그래픽 뷰가 프로그램입니다. 전처리, 컴파일, 또는 링킹과 같이 복잡하고 에러수정이 어려운 과정을 거칠 필요가 없습니다. 단지 블록 다이어그램을 만들어서 실행버튼을 누르면 됩니다.

VEE에서는 프로그램에서 사용하는 빌딩블럭을 “오브젝트”라고 합니다. VEE 오브젝트는 숫자를 더하는 것부터 논리적인 연산, 파일을 읽고, 마이크로웨이브 스펙트럼을 표시하고, 계측기를 제어하는 등의 매우 광범위한 태스크를 수행합니다. VEE 오브젝트를 2 가지 방법으로 간단히 생성할 수 있습니다: VEE의 Function & Object Browser 와 VEE의 드롭다운 메뉴에서 VEE 오브젝트를 간단히 생성할 수 있습니다.

Function & Object Browser 에서 200 개 이상의 VEE 함수가 “Trig", "Matrix" 및 "Data Filtering" 등의 그룹으로 구분되어 제공됩니다. 이 브라우저에서 제공되는 오브젝트는 선택한 함수로 미리 작성된 Formula 오브젝트입니다. 이 브라우저에서는 500 여 개의 MATLAB 함수도 제공됩니다.

툴바의 [image] 버튼을 누르면 Function & Object Browser를 간단히 열수 있습니다. 사용할 Type, Category 및 Function을 차례로 선택합니다. 여기서 Create Formula 버튼을 클릭하면 선택한 오브젝트가 작업영역에 배치됩니다.

5 개의 드롭다운 메뉴에서 450 여개의 VEE 오브젝트가 제공됩니다. 메인메뉴를 클릭하고, 적절한 서브메뉴를 따라서(제공되는 경우에만) 필요한 오브젝트를 클릭하여, 작업영역에 배치합니다. 드롭다운 오브젝트 메뉴의 간단한 요약은 다음과 같습니다:

Flow 이들 오브젝트는 프로그램 흐름을 제어합니다. 조건 분기 및 루핑 등의 일반적인 실행을 제어하는 오브젝트와 지연 및 게이트 등의 프로그램 이나 데이터 타이밍 변경 등의 연산기능을 제공하는 오브젝트로 구성됩니다.

Device 다양한 오브젝트의 모음입니다. Virtual Sources 및 ActiveX Controls 등의 서브메뉴도 제공됩니다. 카운터, 타이머, 비교자 등의 간단한 유틸리티 오브젝트도 제공됩니다. Import Library 오브젝트와 Sequencer 오브젝트도 이 메뉴에 있습니다.(사용해야 할 오브젝트를 찾지 못했으면, Device 메뉴에서 찾는 것도 한 가지 방법이 될 수 있습니다.)

I/O VEE 어플리케이션 외부의 소프트웨어 및 하드웨어와 통신하는 오브젝트를 제공합니다. 계측기, 파일, 프린터, 다른 프로세스 등과 통신하는 오브젝트를 가집니다. 가장 많이 사용하게 될 메뉴는 Instrument Manager 입니다.

Data 이 메뉴의 오브젝트는 데이터를 선언하고, 생성하며, 데이터를 제공하고 받아오는 기능을 제공합니다. 그래픽 입력 오브젝트(푸시버튼, 노브 슬라이더 등), 모든 데이터 타입의 상수, 전역변수와 Unbuild Array, Merge Record, Concatenator 등의 간편한 함수가 제공됩니다.

Display 이들 오브젝트는 데이터를 표시하는데 사용합니다. 그래픽 인디케이터(미터, 온도계 등), 숫자 표시기, 웨이브폼(오실로스코우프) 그래프, 다양한 X-Y 그래프, 극좌표 스펙트럼 그래프 등을 제공합니다.

모든 VEE함수 및 오브젝트를 알파벳 순서로 검색하기 위해서는 이 도움말 파일의 Contents 에서 "Reference" 섹션을 클릭하십시오.

애질런트 VEE 프로그래밍 기초

VEE 오브젝트, 프로그램 빌딩블록은 작업영역에서 직사각형 박스로 표시됩니다. 이들 박스가 프로그램을 실행하며, 선으로 연결됩니다. 이들 선으로 데이터가 전달됩니다. 데이터는 오브젝트의 오른편(출력핀)으로 출력되고, 다음 오브젝트의 왼편(입력핀)으로 들어갑니다. 데이터는 항상 왼쪽에서 오른쪽으로 흐릅니다.

오브젝트는 모든 입력핀에 데이터가 전달되면 연산을 시작합니다. 연산을 완료한 후, 데이터를 모든 출력핀으로 전송합니다. 모든 오브젝트가 자신의 행동을 완료할 때까지 이 과정을 반복합니다. VEE 프로그램 흐름에 대한 상세한 내용은 데이터 전달의 이해을 참조하십시오.

VEE 데이터전달 과정의 프로그램 방식은 C 등의 텍스트 기반에서의 프로그램 흐름과는 다릅니다. 전통적인 프로그램에서는 프로그램 작성자가 프로그램 하위 수준까지 실행순서를 결정해야 합니다. 변수에 값을 지정하여 덧셈을 연산하는 간단한 경우를 예로 들겠습니다:

a = 2;
b = 3;
c = a + b;

C 구문에서는 “a” 가 먼저 지정되어야 하는가 또는 “b”가 먼저 지정되어야 하는가를 프로그래머가 결정해야 합니다. 그러나, 사실은 어느 것이 먼저 지정되어도 문제되지는 않습니다. 이들 2 개가 더해지기 전에 각각 “a”와 “b”에 데이터만 제공되면 됩니다. VEE를 처음 사용하는 프로그래머는 데이터 흐름을 섬세하게 제어할 수 있는 기능이 충분하지 않다고 생각할 수 있습니다. 그러나 숙달된 VEE 프로그래머는 이러한 상세한 부분까지 직접 제어할 필요가 없으므로 더욱 효율적으로 프로그램을 작성하게 됩니다.

오브젝트는 모든 데이터를 받을 때까지 자신의 기능을 실행할 수 없으므로, 모든 입력핀을 외부의 데이터제공자에 연결해야 합니다. 이것과 관련된 VEE의 중요한 특성이 있습니다: 데이터 종류/형태는 입력터미날에 의해서 자동으로 처리됩니다. 예를 들어, 오브젝트가 부동소숫점 데이터를 받아들여야 하는데, 정수가 입력되면, 이 정수는 입력터미날에서 필요한 타입으로 자동변환됩니다. VEE는 데이터 타입을 체크하는 기능을 제공하지만, 이러한 입력터미날의 기능을 사용하면 타입확인과 타입변환에 대한 프로그래밍을 줄일 수 있습니다. 데이터 형태에 대해서도 마찬가지입니다. 입력핀으로 어레이 또는 스칼라값을 받을 수 있으며, 오브젝트가 자동으로 적절한 행위를 합니다. VEE 자동데이터변환에 대한 자세한 내용은 입력터미날에 있는 데이터종류 변환를 참조하십시오.

애질런트 VEE와 계측기

VEE 프로그램은 전자 계측과 측정을 강력히 지원합니다. 프로토타입 프로그램 개발단계에서는, VEE가 제공하는 시뮬레이션 데이터 소스와 디스플레이를 사용할 수 있습니다. 외부 하드웨어 없이 프로그램 흐름과 데이터 프로세싱을 체크할 수 있습니다. 더 자세한 내용은 Virtual Source 메뉴항목 또는 Waveform 디스플레이을 참조하고, 다른 시뮬레이션 장치에 대해서는 이들의 링크에서 참조하십시오.

실제 데이터를 사용하는 경우에는, 외부 계측기를 검색, 설정 및 관리하기 위해서 Instrument Manager 와 Dynamic I/O Server를 사용할 수 있습니다. VEE는 여러 가지 형태의 인스트루먼트 드라이버를 지원하므로, 계측기의 특성이나 프로그램 선호에 따라서 가장 적합한 드라이버를 선택하여 사용할 수 있습니다. 계측기가 연결되어 있지 않으면, Instrument Manager 에서 해당 계측기를 “off line” 상태로 전환하여 프로그램 개발을 지속할 수 있습니다. 더 자세한 정보는:

Instrument Manager 대화상자를 참조하십시오.

도움말 파일의 Contents 에서 "How Do I..." [image] "Control Instruments" 를 선택하십시오.

도움말 파일의 Contents and Index 에서 "Tell Me About..." "Instrument Control Fundamentals""를 선택하십시오.

애질런트 VEE 프로그래밍 힌트

애질런트 VEE는 다른 어플리케이션에서는 찾아볼 수 없는 특성을 제공하는 프로그램 개발환경입니다. VEE에 익숙하지 않다면, 이러한 대부분의 특성이 유쾌한 충격이 될 것입니다. 그렇다 하더라도 다음 힌트가 VEE에 익숙하지 않은 프로그래머에게 도움이 될 것입니다.

프로그램 흐름을 제어하는 툴바의 버튼:
(실행), [image] (일시정지), [image] (중지), 및 [image] (단계).

실수로 메인 윈도를 닫아서, 그것을 다시 열기 위해서는 View [image] Main (또는Ctrl-M)를 실행합니다.

연결되지 않은 입력핀이 있으면 VEE 프로그램을 실행되지 않습니다. 해당 오브젝트 입력핀을 연결하지 않을 것이면, 그 오브젝트를 삭제하십시오.

다른 오브젝트를 선택했으면, Esc 키를 클릭하여 오브젝트 선택을 취소할 수 있습니다. 작업창이 열리지 않은 상태에서 오브젝트를 선택한 경우에도 동일한 방법으로 취소하면 됩니다. Esc 키를 실행하여 오브젝트를 취소하고 일반적인 마우스 형태로 전환합니다.

VEE 윈도우의 하단에는 상태바가 제공됩니다. 하단의 상태바에서 제공하는 상태정보와 도움말을 참조하는 습관을 가지십시오.

애질런트 VEE의 더 많은 내용 배우기

VEE의 상세한 기능을 배울 수 있는 여러 가지 자료가 제공됩니다. 예를 들어:

온라인 학습서
VEE를 처음 배우는 프로그래머에게 도움이 되는 멀티미디어 학습서를 VEE에서 제공합니다. VEE의 Welcome 윈도우에서 "Tutorials"를 실행하면 이들을 볼 수 있습니다. VEE가 이미 실행되어 있으면, VEE 메인 메뉴바에서 Help [image] Welcome을 실행하여 VEE의 Welcome 윈도우를 띠울 수 있습니다.

예제 프로그램
다양한 개념의 예제로 100 개 이상의 실행되는 프로그램을 제공합니다. Welcome 윈도우에서 "Example Programs"를 선택하여 이들 프로그램을 검색할 수 있습니다. 도움말 파일의 Contents 에서 "Guide to Agilent VEE Example Programs"을 선택해도 이들 프로그램을 검색할 수 있습니다.

온라인 도움말
이 도움말 파일에서는 특정 정보에 다양하게 접근할 수 있습니다. Contents 탭에서는 알파벳 순서로 “참조”하고, 개념에 대해서는 "Tell Me About..." 섹션을, 태스크 및 기타 유용한 정보에 대해서는 "How Do I..." 를 참조하십시오. Index 탭에서는 특정 주제를 쉽게 찾을 수 있으며, Find 탭에서는 (Index에서는 정확한 위치를 찾을 수 없을 때) 전체 텍스트 찾기 기능을 제공합니다.

인쇄된 매뉴얼
VEE는 휴대할 수 있는 2 종류의 매뉴얼을 제공합니다. VEE User's Guide (VEE 사용자 가이드)은 VEE의 주요 기능을 이해하기 쉽도록 설명합니다. 내용이 실습위주로 제공되므로 VEE를 처음 배우는 프로그래머에게 적당합니다. VEE Advanced Techniques (VEE 고급 기술) 매뉴얼은 이미 VEE에 숙달된 프로그래머가 참조할 만한 VEE의 강력한 기능에 대해 설명합니다.

교육
애질런트는 고객이 참석할 수 있는 여러 개의 교육 프로그램을 제공합니다. 다음을 실행하면 자세한 내용을 참조할 수 있습니다 :Help [image] Agilent VEE on the Web [image] Education/Training

관련정보

Agilent VEE 사용의 장점


테스트 시스템 개발에 있어서 Agilent VEE 사용의 장점

Agilent VEE는 테스트 및 측정 어플리케이션, 사용자 인터페이스 프로그램을 개발하는데 사용하는 최적화된 그래픽화된 프로그래밍 언어입니다. Agilent VEE는 복잡한 테스트와 측정 시스템을 생성해야 하는 것이 엔지니어를 위한 소프트웨어입니다.

VEE는 테스트시스템을 개발하는데 있어서 다음과 같은 많은 장점을 제공합니다:

• 생산성을 극적으로 향상시킵니다. 고객들이 프로그램의 개발시간을 80%까지 줄였다고 보고 되었습니다.

• 기능 테스트, 디자인 검증, 교정, 데이터수집 및 컨트롤 등의 다양한 어플리케이션에서 VEE를 사용합니다.

• GPIB, VXI, Serial, GPIO, PC 플러그-인 카드, 및 LAN 등의 계측기제어용 입출력 인터페이스를 사용할 수 있습니다. 이러한 하드웨어 표준 인터페이스 상에서 “패널 드라이버”, VXIplug&play 드라이버, “Direct I/O” 또는 여러 제조사가 제공하는 라이브러리를 임포트하여 사용합니다.

• ActiveX 오토메이션 및 컨트롤을 사용하여, 보고서 생성, 데이터 디스플레이 및 분석, 향후 사용을 위하여 테스트 결과를 데이터베이스에 입력 등을 위해서, MS Word, Excel, 및 Acces등의 다른 어플리케이션 소프트웨어를 제어합니다.

• 계측기 관리하는데 있어서, 처리량을 증대하고, 프로그램을 쉽게 생성하고, 더욱 유연하게 할 수 있습니다. VEE는 크고 복잡한 전문적인 프로그램에 개발 환경에 적합한 컴파일러를 제공하고, 고급 계측기 관리 기능을 제공합니다.

• VEE는 Visual Studio.NET어셈블리를 지원하며, 이것은 VEE가 Visual Studio .NET을 지원하는 텍스트기반 언어를 지원한다는 것을 의미합니다.

• VEE가 C/C++, Visual Basic, Pascal, 및 Fortran등의 텍스트베이스 언어를 추가적으로 지원하기 때문에 텍스트베이스 언어에 좀더 투자할 수도 있습니다.

VEE는 메뉴에서 오브젝트를 선택하여 이들을 서로 연결하여 프로그래밍 합니다. 따라서 VEE 프로그래밍은 이해하기 쉬운 데이터 흐름 다이어그램과 비슷하므로, 기존 텍스트기반 코드 보다 쉽게 사용할 수 있습니다. VEE를 사용하면 힘들게 편집-컴파일-링크-실행 사이클을 수행할 필요가 없습니다.

다음 2개의 그림은 텍스트베이스 언어(ANSI C)를 이용한 프로그램과 VEE를 이용한 간단한 프로그램을 비교합니다. 함수는 10개의 랜덤 숫자 어레이를 생성하고, 최대값을 찾고, 어레이와 최대값을 디스플레이 합니다.

다음 그림은 ANSI C 텍스트 기반 언어로 작성된 “Random”라는 프로그램입니다:

/* Program to find maximum element in array */

# include <math.h>

main( )

{

double num[10], max;

int i;

for (i=0;i<10;i++){

num[i]=(double) rand( )/pow(2.0,15.0);

printf("%f/n", num[i]);

}

max=num[0];

for (i=0;i<10;i++){

if (num[i]>max) max = num[i];

}

printf("/nmax; %f/n", max);

}

다음 그림은 VEE로 작성한 동일한 프로그램입니다:

VEE에서는 오브젝트를 이용하여 프로그램을 작성합니다. I/O 오퍼레이션, 분석 및 디스플레이 같은 다양한 기능을 수행합니다. 위의 그림에서와 같이, 오브젝트와 오브젝트들의 모든 연결상태를 표시한 상태를 디테일뷰라고 합니다. 디테일뷰는 텍스트 기반 언어에 있는 소오스 코드와 유사합니다.

VEE에서, 오브젝트와 오브젝트 사이의 데이터 이동은 다음과 같은 규칙을 가지고 이동합니다: 데이터 입력은 왼쪽으로, 데이터 출력은 오른쪽으로, 시퀀스 핀은 위와 아래에 있습니다.

오브젝트는 프로그램을 형성하기 위하여 서로 연결됩니다. 프로그램은 왼쪽에서 오른쪽으로 실행됩니다. 위의 “Random” 프로그램에서, 랜덤 숫자는 Collector에 누적됩니다 - Create Array 오브젝트는 10번 실행되어, 어레이를 생성합니다. 이후, 이 어레이에서 최대값을 찾고, Max Value 와 Array Values를 디스플레이 합니다.

VEE 프로그램을 각 기능별로 모듈화하여 프로그램을 개발하는 시간을 줄일 수 있으며, 생산성을 크게 향상시킬 수 있습니다.

주의사항

위의 그림에서, 일부 오브젝트는 열려진 상태로, 다른 일부 오브젝트는 이름만 디스플레이되고 있습니다. 열려진 상태의 오브젝트를 오픈뷰라고 합니다. 오픈뷰 상태에서는 오브젝트의 상세내용을 볼 수 있습니다. 공간을 절약하고 프로그램 실행 속도를 향상시키기 위하여, 오브젝트를 아이콘화 하거나, 이들을 축소하여 이름만 디스플레이 할 수 있습니다.

위의 그림에서, Random Number로 표시된 오브젝트는 아이콘처럼 표시되었습니다. Create Array 오브젝트는 오픈뷰 상태입니다. 오픈뷰에서는 더 많은 내용을 관찰할 수 있습니다.

Agilent VEE에서 사용자 인터페이스 생성

VEE 프로그램의 또 다른 장점은 사용자 인터페이스를 생성하는 시간을 크게 단축했다는 것입니다.

위의 “Random” 프로그램에서, 사용자가 관찰하고자 하는 오브젝트를 선택하여 패널뷰에 배치합니다. 패널뷰에는 사용자가 프로그램을 실행하고 결과 데이터를 관찰하는데 필요한 오브젝트만을 배치합니다. 다음 그림은 위의 “Random” 프로그램의 패널뷰를 생성한 것입니다.

주의사항

사용자 인터페이스는 작성한 프로그램을 다른 형태로 표시한 것입니다. VEE에서 윈도우 타이틀바에 있는 디테일뷰 버튼과 패널뷰 버튼을 클릭하여 하나의 뷰에서 다른 뷰로 전환할 수 있습니다. 프로그램(디테일뷰)을 편집하거나 업데이트하면 사용자 인터페이스(패널뷰)는 자동으로 갱신 됩니다. 사용자 인터페이스를 생성하여 사용하면, 소오스 프로그램이 변경되지 않도록 보호된 상태로 사용할 수 있습니다.

사용자 인터페이스에 대한 자세한 내용은 "패널뷰(사용자 인터페이스) 생성"를 참조하십시오.

텍스트 기반언어를 사용하여 오랜 시간 동안 작성해야 하는 프로그램을, VEE를 사용하면 짧은 시간 작성할 수 있습니다.

• 화려하고 직관적인 사용자인터페이스를 생성합니다.

• 키보드와 마우스, 또는 키보드만 사용할 수 있는 사용자 인터페이스를 생성합니다.

• 다양한 사용자입력과 데이터 디스플레이 항목을 선택할 수 있습니다.

• 화면공간을 절약하고 더 많은 관심을 유도하기 위하여 팝업패널을 사용합니다.

• 예기치 상황으로부터 프로그램을 보호합니다.

• 라벨을 사용하고, 색상과 폰트를 선택하고, 다양한 형식으로 제공되는 비퍼, 노트패드, 버튼, 스위치를 추가합니다.

• 사용자 입력이나 데이터를 디스플레이하기 위하여 시중에서 판매되는 표준 ActiveX Controls을 사용합니다.

Agilent VEE에서 기존 테스트 프로그램 활용

지원되는 모든 운영체제에서, VEE는 사용 프로그램뿐만이 아니라 전통적인 테스트 프로그램을 연결하는 메커니즘을 제공합니다. 예를 들어, C, C++, Visual Basic, Fortran, 또는 Pascal (또는 운영체제에서 지원하는 컴파일된 언어 또는 인터프리터) 에서 기존의 테스트 프로그램을 순차적으로 실행하는데 VEE를 사용할 수 있습니다. 또한 Visual Studio.NET을 지원하는 어떤 언어도 사용할 수 있습니다.

VEE는 데이터베이스 또는 스프레드시트 등의 상용 어플리케이션과 데이터를 공유하도록 프로세스 간의 통신기능을 제공합니다. VEE는 ActiveX Automation and Controls, 및DLL들을 사용할 수 있는 표준 통신방식을 지원합니다.

Agilent VEE를 사용한 계측기 컨트롤

VEE는 계측기와의 통신 및 컨트롤을 위한 많은 옵션을 제공합니다.

• 여러 제조사에서 제공되는 450개 이상의 계측기용 패널 드라이버 (인스트루먼트 드라이버)와 Windows 2000, 또는 Windows XP에서 VXIplug&play와 호환되는 다양한 제조사의 모든 드라이버를 사용할 수 있습니다.

• 원격 테스트를 위하여 GPIB (IEEE - 488), GPIO, RS 232, VXI, 또는 LAN-기반 계측기와 표준 인터페이스상에서 계측기 명령어 스트링을 전송하는데 VEE의 Direct I/O를 사용합니다.

• DLL(Dynamic Link Library)을 지원하는 PC 플러그-인 보드를 컨트롤합니다.

• 임베딩된 PC 또는 워크스테이션을 사용하여 VXI 백플레인을 직접 컨트롤합니다.

• 사용하기 쉽고, 조직화된 계측기 관리 기능을 사용하여 다양한 타입의 계측기를 컨트롤합니다.

Agilent VEE를 사용한 테스트 성능 향상

VEE 제품은 다음의 항목과 장점을 제공합니다:

• 그래픽화된 프로그램을 사용하여 개발시간 및 유지보수 시간을 줄입니다.

• C, C++, Visual Basic, Pascal, 및 Fortran등의 전통적인 언어를 통합하였습니다.

• 편리하고 유연한 사용자 인터페이스 기능

• 대부분의 대중화된 테스트 플랫폼을 지원

• ActiveX Automation 및 Controls의 사용

• Agilent Technologies의 최상의 지원

• 쉽고 강력한 문서화 툴

• 보고서 생성을 위하여 표준 스프레드시트 및 워드 프로세서에 대한 테스트 데이터의 손쉬운 포팅

• 관계형 데이터베이스 또는 통계분석 패키지 등의 다른 어플리케이션을 연결하기 위한 내부처리 통신 툴(6.0 버전이상)

• 방대하고 복잡한 프로그램을 효율적으로 개발하고 유지 보수할 수 있는 디버깅 툴

• 제품에 포함된 강력한 테스트 실행 툴(6.0 버전 이상)

• VEE의 웹 모니터링 기능을 사용한 원격 테스트 기능(6.0 버전이상)

• 작성한 프로그램의 배포를 위한 무제한 런타임(6.0 버전이상)

• 적은 비용의 사이트 라이센스(6.0 버전이상)

관련정보

애질런트 VEE 프로그래밍 소개, VEE 설치하기

Copyright (c) 1991-2006 Agilent Technologies, Inc.


실행모드 (Execution Modes)

실행모드 (Execution Modes) 이해

실행모드 변경으로 인한 효과

관련 참조자료

실행모드 변경 : VEE 3 에서 VEE 4 로

실행모드 변경 : VEE 4 에서 VEE 5 로

실행모드 변경 : VEE 5 에서 VEE 6&7로

실행모드 변경: VEE 6&7에서 VEE 8로


실행모드 이해

실행모드(Execution Mode) 이해

실행모드란 무엇인가?

각각의 VEE 버전은 몇 개의 실행모드를 가집니다. (이전 버전에서는 "Compatibility Modes"라고 사용되었습니다.) 이 모드는 이전 VEE 버전에서 생성한 프로그램을, 이전 버전의 VEE에서 실행하던 것과 동일한 방식으로, 새로운 버전의 VEE에서 실행할 수 있게 합니다. 이것은 “이전 버전 호환”이라 하며, VEE의 모든 버전은 실행모드를 사용하여 100% 이전 버전 호환 됩니다.

예를 들어, VEE 4.0버전은 2개의 실행모드를 가지고 있었습니다: VEE 3.x와 VEE 4 2가지 모드입니다. 이것은 VEE 3.0버전(또는 이전버전)으로 생성된 프로그램을 VEE4.0 버전에서, VEE 3.0 버전에서 실행하던 동일한 방식으로 실행할 수 있게 합니다. 컴파일된 모드에서 VEE3 프로그램을 실행하고자 한다면, 모드를 전환하면, VEE4는 Compiler에서 프로그램을 실행합니다.

같은 의미로, VEE5.0버전은 3개의 실행모드를 가집니다: VEE 3.x, VEE 4, 및 VEE 5. VEE6.0 버전에서는 VEE6 실행모드가 추가됩니다. VEE 프로그램은 어떤 버전의 VEE를 사용하여 프로그램을 생성했고, 어떤 실행모드가 사용되었는지를 인식합니다. 프로그램을 로딩하면, VEE는 일치하는 실행모드를 적용하여 이전 버전의 VEE에서 동작했던 것과 똑같이 프로그램이 정확하게 실행됩니다.

프로그램이 작성되어 실행모드와 함께 저장되고 나면, 사용자에 의한 변경을 제외하고는 프로그램은 그 실행모드를 유지합니다. 예를 들어, 5.0버전에서 개발하고 저장했다고 가정합니다. 이 프로그램은 실행모드 VEE 5로 저장됩니다. 만약 이 프로그램을 6.0버전에서 로딩하고 저장하더라도, 프로그램은 Execution Mode VEE 5를 유지하고 있습니다. 실행모드를 변경하는 것을 제외하고는, 어떤 버전의 VEE로 프로그램을 로딩하더라도 실행모드는 변경되지 않습니다.

VEE 6 실행모드는 VEE7에서 동작합니다. 또한, 때로는 이전 버전의 VEE에서 신규 버전의 VEE에서 생성한 프로그램도 실행됩니다. 이것은 프로그램이 어떤 기능을 사용했느냐에 달렸습니다. 반면에, VEE 7에서 작성된 프로그램은 이전 버전에서는 실행되지 않습니다.

왜 실행모드를 변경해야 하는가?

기존의 프로그램에 새로운 기능을 추가했다면, 실행모드를 변경해야 합니다. 예를 들어, 5.0버전으로 작성한 프로그램(실행모드 VEE 5를 가지고 있는)이 있다고 가정합니다. 6.0버전에서 가능한 새로운 기능을 추가하기 위해서는 실행모드를 VEE6올 변경해야 합니다. 실행모드를 변경하지 않고 프로그램을 변경하면, 프로그램에 추가된 새로운 기능은 적절하게 동작하지 않을 수도 있습니다.

언제 실행모드를 변경해야 하는가?

대부분의 경우, 이전 버전에서 작성된 프로그램은 실행모드를 변경하지 않고도 새로운 버전에서 100% 실행됩니다. 반면에, 최근의 실행모드를 사용하지 않으면 새로운 기능을 추가할 수 없습니다.

다음의 표는 다양한 버전과 실행모드에서 실행할 수 있는 프로그램의 조합을 나타냅니다. 이전에 작성된 프로그램은 실행모드가 변경되지 않는 한 어떤 버전에서도 실행됩니다. 단지 실행모드가 변경될 때는 문제가 발생할 수도 있습니다.

실행모드에서 생성된 프로그램:

Running in VEE | VEE 4 | VEE 5 | VEE 6&7 | VEE 8
Version VEE 4 | runs | CNA | CNA | CNA
Version VEE 5 | runs | runs | CNA | CNA
Version VEE 6 | runs | runs | runs | runs
Version VEE 7 | runs | runs | runs | runs
Version VEE 7.5 | runs | runs | runs | runs
Version VEE 8.0 | runs | runs | runs | runs

CNA(Compatibility Not Assured)는 호환을 보장할 수 없다는 의미입니다. 이후 버전에서만 사용할 수 있는 어떤 기능을 포함하고 있지 않다면, 이후 버전에서 생성한 프로그램은 이전 버전의 VEE에서 로딩되고 실행될 수 있습니다. 프로그램에 추가된 새로운 기능은 이전버전의 VEE에서는 바르게 동작하지 않을 수도 있습니다. 그리고 일부 경우에는 프로그램이 이전버전에서 로딩되지 않을 수도 있습니다. 실행모드는 기존의 프로그램이 새로운 버전의 VEE에서 실행될 수 있도록 합니다. 새로운 기능은 이전 버전의 VEE에서 동작하는 것을 보장하지 않습니다.

실행모드 전환에 대한 안내

새로운 프로그램을 개발할 때는 최신의 실행모드를 사용해야 합니다.

기존의 VEE 프로그램은 적절한 실행모드(VEE 3.x 프로그램에서는 VEE 3을, VEE 4.x 프로그램에서는 VEE 4를, VEE 5.x 프로그램에서는 VEE 5를)를 선택하여 실행할 수 있습니다. 이전 버전의 프로그램을 위한 적절한 모드가 프로그램이 로딩될 때 자동으로 설정됩니다.

VEE 5 또는 이전 버전의 실행모드로 설정된 프로그램을 로딩하고, VEE 6 실행모드로 전환한다면, 이전 프로그램은 바르게 동작할 수도 있고 아닐 수도 있습니다. 대부분의 프로그램은 바르게 동작합니다. 프로그램이 다르게 동작할 수 있는 원인이 될 수 있는 "오류 수정" 에 대해서는 다음 예제를 참조하십시오.

예를 들어, WRITE BINARY BYTE 트랜잭션을 수행하는 To File 오브젝트를 사용하는 5.0 프로그램(실행모드 VEE 5)이 있다고 가정하면, 5.0버전(또는 이전버전)에서 "300"을 전송하면 "44"라는 값을 파일에 저장합니다. (이것은 기능적인 버그로 "300"이 바이트로 적절히 대치되지 않기 때문입니다.)

VEE 5 실행모드에서는 프로그램간의 호환을 유지하기 위하여 "44"값을 갖도록 했습니다. 반면에, VEE 6 실행모드에서는 ‘VEE cannot convert 300 to a UInt8 (out of range)’라는 에러 메시지를 표시하도록 했습니다.

오브젝트 위치

File [image] Default Preferences [image] Execution Mode

관련정보

실행 모드 (Execution Modes)


실행모드 변경으로 인한 효과

이번 예제에서는 프로그램의 실행모드를 최신 버전으로 업그레이드하면, 속도가 얼마나 향상되는지를 관찰합니다. 편의상 여기서는 Instrument IO는 고려하지 않고, 프로그램의 실행속도만 관찰하기로 합니다.

1 examples\Applications 서브 디렉토리에 있는 chaos.vee 프로그램을 엽니다.

이 프로그램은 폭발적인 인구증가를 시뮬레이션하고 있습니다. 다음과 같이 결과를 체크하기 위하여 Timer 오브젝트를 추가할 수 있습니다. 이 예제는 300MHz Pavillion PC와 Windows 98을 사용하여 2개의 다른 대용량 어플리케이션을 가지고 동시에 실행하였습니다.

이 프로그램은 디스플레이를 열고 VEE 3 실행모드에서 실행속도를 측정하였습니다.

다음은 디스플레이만 아이콘화 한 상태에서 동일한 프로그램을 실행하는데 소요되는 시간을 실행속도를 확인하였습니다. 이전의 경우보다 실행시간이 약 1/6로 줄어 들었습니다.

마지막으로, 이번에는 디버깅 기능을 사용하지 않고, 컴파일러를 사용하는 상태에서 프로그램을 실행합니다. 프로그램에 더 이상의 오류가 없고, 필드에서 사용해야 할 시점에서는 이 경우와 같이 디버깅 기능을 비활성화시키고 사용하는 것이 실행시간 향상에 도움이 됩니다. 디버깅 기능은 File [image] Default Preference에서 Disable Debug Features를 체크하면 비활성화 됩니다.

디버깅 기능은 Show Execution Flow 및 Active Breakpoints등의 툴을 활성화시킵니다. Disable Debug Features를 체크하면, 메모리를 더 많이 사용할 수 있으며, 프로그램 실행속도가 향상됩니다. 보는 바와 같이 프로그램은 약 12배 빨리 실행됩니다. 이들 3개의 그림은 컴파일러를 사용하여 조합하는 최적화 방법으로 최고의 속도를 내는 방법을 나타내고 있습니다.

다음 2개의 프로그램에서는, 반복연산을 포함하는 프로그램에서 VEE 컴파일러가 미치는 영향을 검토하였습니다. 이들 프로그램에서는 스칼라 값의 제곱근을 연산합니다. (루트 연산결과는 표시하지 않았습니다.) 컴파일러를 사용한 경우가 VEE3 실행모드를 사용하는 경우보다 실행시간이 약 107배 빠릅니다.

이전 버전의 VEE에는 현재 버전에서는 더 이상 제공되지 않는 기능들이 있을 수 있으며(이들 기능은 현 버전에서는 에러 발생합니다), 사용자가 이러한 기능을 사용해야 하는 경우에 대비해서, 현 버전의 VEE에 이전 버전의 실행모드를 선택할 수 있게 제공하고 있습니다. 특히, ActiveX Automation 과 ActiveX Control 기술의 발달로 인해서, VEE 4 및 VEE 5 실행모드에서 실행되던 프로그램에 사용한 ActiveX 관련 프로그램을, VEE 6모드에서도 사용하기 위해서는 프로그램의 일부를 수정해야 합니다. 실행모드간의 차이점에 대한 상세한 내용에 대해서는, Help 메뉴 아래에 있는 Contents and Index에서 Tell Me About.... Execution Mode Changes를 참조하십시오.

관련정보

실행모드 (Execution Modes)


실행모드 변경 : VEE 3 에서 VEE 4 로

VEE 4.0 이전의 버전에서 작성된 프로그램은 VEE 3 모드에서 실행하는 것과 동일하게 실행됩니다. 이를 보장하기 위하여 구 버전에서 작성된 프로그램을 로딩할 때 인터프리터가 자동으로 활성화 됩니다. 이 절에서는 VEE 버전 4.0 (또는 VEE 4 실행모드)의 새로운 함수 및 향상된 점들을 기술합니다.

컴파일러 모드에서 라인 색상

컴파일러 모드에서 VEE는 라인을 통과하는 데이터의 타입에 따라 오브젝트에 연결된 데이터 라인의 색상을 다르게 표시합니다. 디폴트 색상은 색상 속성의 이름에 따라 다음과 같이 나열됩니다. 이 색상들은 Default Preference 대화상자에서 변경할 수 있습니다. Screen Element 박스에서 변경하고자 하는 라인을 선택한 후 Color Value 박스를 클릭하여 색상 팔레트를 클릭한 다음 원하는 색상을 선택합니다. 선택한 라인 타입의 새로운 컬러를 저장하려면 OK 버튼을 클릭하면 됩니다.

  • Dark Sky Blue: 숫자 (Integer 또는 Real 타입)

  • Dark Sky Blue: 복소수 (Complex 또는 PComplex 타입)

  • Med Orange: 문자열 (String 타입)

  • Med Dark Gray: 시퀀스 출력 (nil 값, 일반적으로 Sequence 출력 라인)

  • Magenta : 강조

  • Black : 알려지지 않거나 최적화 되지 않은 타입(예, Record 타입)

데이터의 타입이 어레이일 경우 VEE는 라인을 두껍게 표시합니다. 프로그램의 실행속도를 증가시키려면 프로그램의 라인 색상을 확인합니다. 검은색이 아닌 색상의 라인이 많을수록 프로그램이 빠르게 실행됩니다.

실행모드 변경 사용시 발생가능 문제

VEE 4.0 이전의 버전에서 작성된 프로그램은 자동으로 VEE 3 모드에서 실행됩니다. VEE 4.x 버전에서 작성된 프로그램은 자동으로 VEE 4 모드에서 실행됩니다. VEE 5.X 버전에서 작성된 프로그램은 자동으로 VEE 5 모드에서 실행됩니다. 그러나, 프로그램의 실행모드는 언제나 변경할 수 있습니다.

호환성 문제는 기존 프로그램의 실행모드를 VEE 3에서 VEE 4로 변경할 때 특정한 영역에서 발생할 수 있습니다. 다음의 문단에서 실행모드를 변경할 경우에 발생할 수 있는 문제점을 설명합니다. 이전 버전의 VEE를 사용하는 것에 관한 정보는 인터프리터 모드나 VEE 3을 사용할 때와 동일합니다.

UserFunction의 시간 분할

VEE 4.0 이전의 버전에서, UserFunction은 프로그램의 다른 부분과 시간 분할을 하지 않습니다. 컴파일러 모드에서 UserFunction은 분리된 스레드로부터 호출되었을 때, 시간 분할을 행할 것입니다. 병렬 실행이 필요하지 않을 경우 Call 오브젝트 간의 시퀀스 핀을 사용하도록 합니다.

UserFunction은 Call, Formula, If/Then/Else, 또는 Sequencer 오브젝트(Function 영역에서 호출되었을 때 만) 에 의해 호출 되었을 경우에만 시간 분할을 합니다. UserFunction 내부의 Breakpoint들은 Call 오브젝트나 위에서 나열한 오브젝트들에 의해 호출될 경우 동작합니다.

UserFunction은 Breakpoint가 동작 중 이거나, To File, To String 또는 유사한 오브젝트에 의해 호출되었거나, Formula가 컨트롤 핀을 통해 입력될 경우 시간 분할을 수행하지 않을 것입니다.

UserFunction이 실행되고 프로그램의 다른 부분에서 다시 호출되었을 경우, 이 호출은 이전의 호출에 대한 반환값이 출력될 때까지 블로킹됩니다.

UserObjects

UserObject은 VEE 4.0 이전의 버전에서 항상 시간 분할을 수행했으나, 컴파일러 모드에서는 분리된 스레드에서 호출되는 경우만 시간 분할을 수행합니다.

함수의 우선순위

Formula 오브젝트로부터 호출된 함수의 우선순위는 다음과 같이 변경되었습니다:

1. 내부 함수 (sin() 및 totSize()와 같은)

2. 로컬 UserFunction

3. 임포트된 UserFunction

4. 컴파일된 함수

5. 원격 함수

VEE 3 실행모드에서 내부 함수들은 가장 낮은 우선순위를 가집니다. 이는 totSize() 또는 fft()와 같은 내부 함수를 재정의 하여 사용할 수 있도록 합니다.:

자동 실행과 시작

특정 오브젝트에서 Auto Execute 속성을 사용할 때 동작에서의 미묘한 변화가 존재합니다. 컴파일러 모드에서는 오브젝트가 Start 오브젝트에 바로 연결되어 있으며 이 Start 버튼이 눌려 졌을 때와 동일하게 동작합니다. 이 변화는 대부분의 프로그램에 영향을 미치지 않습니다.

OK 버튼과 입력 대기(Wait for Input)

OK 오브젝트 또는 Wait for Input 속성이 활성화 되어있는 오브젝트들과 같은 대부분의 비동기식 오브젝트는 컴파일러 모드에서 다음과 같이 두 가지 사항에 대하여 우수한 성능을 제공합니다.

단계별 실행: 이전 버전에서는 특정 오브젝트에 대한 Step Over 기능이 때때로 프로그램을 종료시켰습니다. 컴파일러 모드에서는 Step Over 기능이 정상적으로 실행됩니다.

CPU 사용률: 이전 버전에서 특정 오브젝트를 실행함에 따라 CPU의 사용률이 증가되었습니다. 컴파일러 모드에서는 CPU가 유휴상태를 유지합니다.

데이터가 없는 Collector 오브젝트

이전 버전에서는 데이터가 입력된 적이 없는 Collector 오브젝트의 XEQ 핀에 실행 신호가 입력되면 nil 컨테이너를 출력했습니다. 컴파일러 모드에서는 컴파일 시에 알려지지 않은 데이터 타입이 존재할 경우 원소가 0인 배열 데이터를 얻게 됩니다. 다시 말해서, 사용자는 정수 타입의 0 앨리먼트 어레이 형태의 데이터를 결과로 얻게 됩니다.

이러한 변화는 데이터 타입의 충돌에 대한 모순을 줄여주고 Collector 오브젝트에 대한 보다 좋은 p-code 다운스트림을 작성할 수 있게 합니다. nil의 totSize()는 1을, 0 어레이의 앨리먼트 totSize()는 0임을 주의하십시오.

데이터가 없는 Sample & Hold 오브젝트

이전 버전에서는 데이터가 입력된 적이 없는 Sample & Hold 오브젝트의 XEQ 핀에 실행 신호가 입력되면 nil 컨테이너를 출력했습니다. 컴파일러 모드에서는 다음의 에러가 발생됩니다. (에러번호 937):

Sample & Hold was not given any data.

이러한 변화는 데이터 타입의 충돌에 대한 모순을 줄여주고 Sample & Hold 오브젝트에 대한 보다 좋은 p-code 다운스트림 작성을 가능합니다.

Timer 오브젝트

이전 버전에서 Timer 오브젝트는 Time1 핀에 데이터가 입력되기 전에 Time2 핀(아래쪽의 데이터입력 핀)에 데이터가 입력될 경우 정의되지 않은 결과를 출력하였습니다. 컴파일러 모드에서는 두 핀의 실행순서가 올바르지 않을 경우 에러를 발생시킵니다.

피드백 사이클

컴파일러 모드에서는 피드백 사이클 내부에 Junction 오브젝트가 필요합니다. Start 오브젝트는 더 이상 필요하지 않습니다. Junction 오브젝트를 사용하지 않은 상태에서 피드백을 시도했을 때 다음의 에러(에러 번호 935)가 발생됩니다:

피드백 사이클 내부에 Junction 오브젝트가 필요합니다. 2개의 예제가 있습니다.

VEE 4.0 또는 그 이상의 버전에서는 대부분의 오브젝트에서 하나의 오브젝트 입력핀을 같은 오브젝트의 출력핀에 연결되거나 시퀀스 입력핀을 시퀀스 출력핀에 연결되는 것과 같은 유효하지 않은 연결이 허용되지 않습니다.

병렬 스레드

VEE 3 실행 모드에서 독립적인 스레드간에 라운드-로빈방식으로 우선순위를 할당합니다. 이는 하나의 스레드에서 하나의 오브젝트가 실행 완료된 후에 다른 스레드에서 하나의 오브젝트가 실행되는 방식을 말합니다. 컴파일러 모드에서는 이러한 우선순위가 보장되지 않습니다.

루프 바운드

루프 성능을 증가시키기 위하여 반복의 바운드 (For Range 오브젝트의 Step 필드와 같은)는 매번 반복할 때마다 검사되지 않고 최초의 실행시에 한번만 검사됩니다. 오브젝트가 실행되는 동안 필드들은 값을 변경할 수 없음을 보여주기 위하여 회색으로 변합니다. 루프가 실행되는 동안 변경되는 데이터 입력은 무시됩니다.

예를 들어, 루프가 실행되는 도중에 데이터 입력핀을 통하여 For Range 오브젝트의 Step 필드의 값이 변경될 경우 VEE 4 또는 그 이상의 실행모드에서는 변경된 값이 무시됩니다. 이전 버전에서는 매 반복시 마다 Step 값이 체크됩니다.

XEQ 핀을 가진 UserObject와 Calls 오브젝트

VEE 4.0 이전의 버전에서 사용자는 UserObject나 UserFunction으로 모든 데이터가 입력되기 전에 이를 실행시키도록 하기 위하여 UserObject 또는 Call 오브젝트에 XEQ 핀을 추가할 수 있었습니다. UserObject와 UserFunction 내부에 있는 데이터 입력이 정해지지 않은 오브젝트의 동작은 정의되지 않았습니다. VEE 4 또는 그 이상의 실행 모드에서, 이는 허용되지 않습니다. 이러한 오브젝트에 존재하는 XEQ 핀은 에러를 발생시킬 것입니다. 이러한 오브젝트에 더 이상 XEQ 핀을 추가할 수 없습니다.

XEQ 핀을 가진 OK 버튼

VEE 4.0 이전의 버전에서, XEQ 핀을 가진 OK 오브젝트는 OK 버튼이 눌려지거나 XEQ 핀으로 데이터가 입력되었을 때 한번만 실행됩니다. VEE 4 또는 그 이상의 실행 모드에서는 OK 버튼은 XEQ 핀으로 데이터가 들어올 때마다 동작합니다. OK 오브젝트에 더 이상 XEQ 핀을 추가할 수 없습니다.

EOF 핀을 가진 From File 오브젝트

VEE 4.0 이전의 버전에서 From File 오브젝트의 데이터 출력 핀은 VEE내의 다른 데이터 출력 핀과 다르게 취급되었습니다. 루프 내에 From File 오브젝트가 존재할 경우, EOF 데이터 출력 핀이 실행될 때, 데이터 출력핀은 유효한 값을 유지하게 됩니다.

VEE 4 또는 그 이상의 실행모드에서 From File 오브젝트의 데이터 출력 핀은 (다른 오브젝트와 마찬가지로) 루프가 실행될 때마다 무효화 됩니다. 그러므로 EOF 핀이 실행되고 나면 데이터 출력은 이미 무효가 되고 전파될 수 없습니다.

다음 예제는 이러한 상태를 보여줍니다. VEE 4.0 이전의 버전에서는 다른 루프의 반복이 실행되는 동안이라도 Formula 오브젝트의 입력 핀 A는 유효한 데이터를 유지하게 됩니다. Formula 오브젝트의 B 핀으로 공급되는 유효한 데이터를 얻기 위해서 EOF 핀이 실행되고 나서 Formula 오브젝트가 실행됩니다.

.

VEE 4 이상의 실행 모드에서 A 핀으로 입력되는 데이터는 다음 반복루프가 실행되자마자 무효화 됩니다. Formula 오브젝트는 반복되는 루프마다 유효한 입력을 받을 수 없기 때문에 결코 실행되지 않습니다.

병렬로 연결된 Junction 오브젝트

VEE 4.0 이전의 버전에서 Junction 오브젝트들에 병렬로 연결되는 구속되지 않은 오브젝트를 가지고 있다면, 라인을 연결한 순서가 실행 순서에 영향을 줍니다. 이와 같이VEE 4 또는 그 이상의 실행 모드에서 연결 순서는 영향을 끼치지 않습니다.

교차 루프

VEE 4.0 이전의 버전에서는, 오브젝트를 교차 반복 실행 시킬 수 있습니다. 실행 순서는 정의되지 않으나 오브젝트를 연결한 순서에 의해 영향을 받습니다. VEE 4 또는 이상의 실행모드에서 하나의 Junction 오브젝트를 통하여 교차되는 루프만이 허용됩니다. 다른 교차 루프는 에러 번호 938을 발생시킵니다. VEE는 프로그램 중의 이 부분을 컴파일 할 수 없습니다. 다음 예제를 참조하십시오.

Junction 오브젝트를 사용한 교차 루프

VEE 4.0 이전의 버전에서, 예제는 Int32 오브젝트를 가장 먼저 실행시킵니다. 프로그램이 Break 오브젝트를 만나게 되면, 프로그램이 중지됩니다. VEE 4 또는 그 이상의 실행모드에서 아래의 예제는 Break가 프로그램을 중지시키지 않기 때문에 Int32 오브젝트를 실행 시킨 후에 For Count 오브젝트를 실행시킵니다.

오픈 뷰 오브젝트 변경

VEE 4.0 이전의 버전에서 프로그램이 실행되거나 일시 중지 되었을 때, 오브젝트의 오픈뷰 필드의 데이터를 변화시킬 수 있었습니다. 이러한 변화는 프로그램의 동작에 영향을 끼쳤으며, 실행 결과가 보장되지 않았습니다. VEE 4 또는 그 이상의 실행모드에서, 많은 오브젝트들은 프로그램이 실행중이거나 일시 중지 상태일 경우 이러한 형태의 수정을 허용하지 않습니다. (입력 필드는 회색으로 변하여 편집할 수 없는 상태가 됩니다.) 이러한 오브젝트에는 다음과 같은 것들이 있습니다:

  • Formula 와 If/Then/Else 오브젝트

  • Collector

  • 트랜잭션을 가진 모든 오브젝트들의 트랜잭션 영역

  • Get Mappings 및 Set Mappings 오브젝트

  • Get Values 및 Set Values 오브젝트

  • Scalar 또는 Array 1D, Wait for Input, 또는 Auto Execute 와 같은 상수 오브젝트들의 속성들

  • Clear at PreRun 등과 같은 속성 설정

  • UserObject 및 UserFunction의 트리거 모드

  • 대화상자 속성

오브젝트의 입력 및 출력 터미널을 추가 또는 제거하는 메뉴는 (프로그램이 중지되었을 때를 제외하고) 프로그램이 실행 중일 경우 비활성화 됩니다. 만일 프로그램의 실행이 일시 중지된 상태에서 이러한 작업을 수행하였을 경우 프로그램은 중지됩니다. (VEE 4.0 이전의 버전과 동일)

표현식의 배열 문법

표현식에 [1 2 3] 과 같이 배열의 인덱스 구분을 컴마 없이 입력했을 경우, 프로그램이 다시 로드 되었을 때 자동으로 [1, 2, 3]을 사용한 것으로 재 해석합니다. 이것은 VEE 3 및 VEE 4 실행모드에서 적용됩니다.

관련정보

실행모드 변경 : VEE 4 에서 VEE 5 로, 실행모드 변경 : VEE 5 에서 VEE 6&7로, 실행모드 변경: VEE 6&7에서 VEE 8로


실행모드 변경 : VEE 4 에서 VEE 5 로

VEE 5.0 에서는, VEE 4와 VEE 3 실행모드는 VEE 4에서 설정한 호환성을 계속 유지합니다. 여기에는 기존의 프로그램을 원래의 실행모드(VEE 3 또는 VEE 4)에서 실행하는 것에 영향을 미치지 않는 약간의 변화가 있습니다. 그러나 프로그램을 구 버전의 실행모드에서 새로운 실행모드로 변경하려고 할 때 알아두어야 할 중요한 사항이 있습니다

VEE 5 실행모드에 대하여

VEE 5 실행모드는 VEE 4모드의 슈퍼셋 입니다. VEE5 모드에서는 프로그램 호환성에 영향을 주는 중요한 변경에 대해 설명한 컴파일러 기능을 유지합니다. 대부분의 변경은 ActiveX Automation와 Controls을 사용할 수 있습니다.

비록 ActiveX를 사용하더라도, 이 절에서 설명하는 기능 중의 일부를 사용하면, 다른 변경 사항들이 사용자의 프로그래밍 기술에 영향을 미칠 것입니다. VEE에서 ActiveX를 사용하는 방법에 대해서는 VEE에서 ActiveX Automation 사용법를 참조하십시오.

프로그램을 VEE 5 실행모드로 변환

구 버전에서 작성된 프로그램은 자동으로 프로그램이 작성된 버전의 실행모드에서 열립니다. 프로그램의 실행 모드를 새로운 버전으로 변경하고자 한다면, File 메뉴에서 Default Preferences 대화상자에서 수동으로 변경해야 합니다. 사용자가 프로그램의 실행모드를 VEE 5로 변경했을 경우, 에러가 발생할 수 있습니다. 문제점을 설명하는 리스트가 나타납니다. 사용자는 VEE 6.0이 VEE 5 실행모드를 수용하기 전에 이러한 에러를 수정할 필요가 있습니다. VEE 6.0은 에러를 수정하기 위한 자동 수정을 행하지 않습니다.

VEE 5 실행모드 변경 내역

에러를 수정하기 위한 방법을 알려주기 위하여, VEE 5 실행모드의 호환성 변경사항을 다음에 설명합니다.

주의사항

VEE 3.x 버전의 프로그램을 VEE 5 실행모드로 변경하려면 VEE 4 모드에서 먼저 실행을 확인하고 VEE 5 실행모드로 변경해야 합니다. 이것에 대한 정보는 "실행모드 변경 : VEE 3 에서 VEE 4 로"를 참고하십시오.

메뉴 변화

VEE 5.0의 Device 메뉴에 ActiveX를 지원하는 부분이 약간 수정되었습니다. 이 메뉴는 다음과 같이 추가되었습니다:

ActiveX Automation References...

ActiveX Control References...

ActiveX Controls

또한, Select Function 대화상자를 여는 Math & Functions 메뉴 아이템이 Function & Object Browser 로 변경되고, 이 메뉴는 Function & Object Browser 대화상자를 엽니다. 사용자는 프로그램에 수학 연산자와 함수를 추가하는 방법과 동일한 방법으로 AcitveX의 기능을 사용할 수 있습니다.

표현식

다음의 변경사항은 Formula 오브젝트와 같이 표현식을 가지고 있는 오브젝트에 영향을 줍니다:

  • ActiveX Automation을 사용하는데 필요한 새로운 키워드로 SET 과 ByRef가 추가되었습니다. 이 키워드들은 VEE에 예약되어 있으므로, 터미널 이름으로 사용될 수 없습니다.

  • ActiveX Automation을 지원하기 위해서 다음과 같은 문법이 추가되었습니다.

  • excel.worksheets(1).cells(1,2) = 2.

  • VEE 3과 VEE 4 실행모드에서 [1 2 3]과 같이 컴마를 사용하지 않는 배열 문법을 가진 표현식은 프로그램이 로드되었을 때 자동으로 재 해석되었습니다. VEE 5 및 그 이상의 실행모드에서 위와 같은 컴마를 사용하지 않는 배열 문법은 Formula 오브젝트가 실행될 때, 에러를 발생합니다.

  • 1과 같은 값은 Int32 형태로, 1.0과 같은 값은 Real64 형태로 반환됩니다. 이 전에는 두 값이 모두 Real64로 반환되었습니다.

  • ActiveX Automation을 위한 새로운 내장함수가 두 개 추가되었습니다. 이 내장함수는 CreateObject() 와 GetObject 입니다

  • ActiveX Automation용 새로운 내장함수가 두 개 추가되었습니다. 이 내장함수는 true와 false 입니다.

변수

다음의 변경사항이 변수에 영향을 미칩니다:

  • Default Preferences 에서 Delete Variables at PreRun 옵션이 켜져 있을 경우, ActiveX Controls를 참조하는 전역 변수는 삭제되지 않습니다.

  • Declare Variable 오브젝트는 ActiveX Automation에서 사용되는 개체를 호출하는 새로운 변수 형태를 가집니다.

  • Required Type필드에 입력으로 사용할 수 있는 데이터타입이 설정되어 있어도, 새로운 오브젝트 변수 타입이 입력 터미널에 사용될 수 있습니다.

전역 네임스페이스

변수, 함수, 및 라이브러리의 이름으로 사용할 수 있는 전역 네임스페Required Type필드에 입력으로 사용할 수 있는 데이터 타입이 이스 규칙이 다음과 같이 변경되었습니다:

  • 설정되어 있어도, 새로운 오브젝트 변수 타입이 입력 터미널에 사용될 수 있습니다. 이것은 이름의 인스턴스를 하나 이상 포함하고 있을 경우 기존의 프로그램에 영향을 끼칩니다. 예를 들어, UserFunction과 선언된 전역변수의 이름을 동일한 이름으로 사용할 수 없습니다. 이는 VEE 5 실행모드로 변경한 프로그램을 실행할 경우 에러를 발생시킬 수 있습니다.

  • 라이브러리에서, 로컬 UserFunction, Local to Library 로 사용하는 Declared Variable 오브젝트는 동일한 네임스페이스를 사용하며, 유일한 이름을 가져야 합니다. 이는 VEE 5 실행모드로 변경 한 후 프로그램을 실행시키거나 VEE 5 모드의 프로그램으로 임포팅한 라이브러리의 이름이 충돌할 경우 에러를 발생시킬 수 있습니다.

  • 모든 실행 모드에서 다음과 같은 새로운 Formula의 문법을 허용합니다.

    lib.func(a,b) = RightHandExpr

    이는 모든 실행모드에서 올바르게 해석됩니다. 그러나, VEE 5 또는 그 이상의 실행모드에서 올바르게 실행되며, VEE 3 또는 VEE 4 모드에서 실행시에 에러를 발생시킵니다.

변경된 전역 네임스페이스 규칙은 VEE 5 또는 그 이상의 모드에서 Formula 에 사용된 변수와 함수 이름을 검색하는 우선순위를 다음과 같은 순서로 변경시킵니다:

1 로컬 입/출력 터미널

2 Local to Context 로 선언된 변수들

3 UserFunction에 네스팅된 UserObject의 내부에 선언된 Local to Library 변수들

4 유일한 이름을 가진 전역 Declare Variable, Undeclare Variable, 로컬 UserFunction 및 라이브러리 이름

5 sin() 과 totsize()와 같은 내장 함수

6 Device [image] ActiveX Automation References… 또는 AcitveX Control References… 에서 참조되는 라이브러리에 따른 ActiveX Control 및 Autoamtion 상수들. 예를 들어, 엑셀의 automation 라이브러리에는 xlMaximized 등의 많은 상수가 제공됩니다.

7 임포트된 UserFunction, 컴파일된 함수, 및 원격 함수들은 임의의 순서로 참조됩니다. 원하는 함수를 사용하기 위하여 myLib.func()와 같이 임포트된 라이브러리의 이름을 포함한 함수명을 사용합니다

이 새로운 순서는 이전 프로그램에서 sin이라는 이름의 데이터 입력 터미날을 가지며 표현식 sin(90)을 포함하는 Formula 오브젝트에서 에러가 발생하는 원인이 됩니다.

VEE 3 과 VEE 4 실행모드에서 VEE는 입력 터미널의 이름을 무시하고 내장 함수 sin()을 호출합니다.

그러나 VEE 5 및 그 이상의 실행모드에서는 함수와 변수 명을 찾기 위해 새로운 절차를 이용합니다. 따라서 VEE 6.0은 터미널의 이름을 찾고, 입력으로 ActiveX 개체를 가지고 있다고 가정한 후, 개체의 디폴트 매서드를 호출하려고 시도합니다. cells(1,1) 과 같은 AcieveX 개체의 디폴트 매서드를 호출하는 표현식은 sin(90) 과 유사합니다. ActiveX에 관한 정보는 VEE에서 ActiveX Automation 사용법를 참조하십시오.

READ TEXT 트랜잭션

VEE 3 과 VEE 4 실행모드에서 EXCLUDE CHAR 형태의 TOKEN 포맷을 사용하는 READ TEXT 트랜잭션에서 지정하는 문자를 배제하기 위해서 읽기 포인터를 앞으로 이동하지 않습니다. 다음은 VEE 4 실행모드에서의 예제입니다:

이는 예상하지 못한 결과입니다. 예상했던 결과는 VEE 5모드에서 나타낸 바와 같이 입력되는 스트링을 “*” 문자로 분리하고, 분리된 구문을 각각의 AlphaNumeric 오브젝트에 표시하는 것이었습니다.

To/From File과 To/From DataSet 오브젝트간의 상호동작

VEE 3 과 VEE 4 실행모드에서 같은 데이터 파일에 접근하는 EXECUTE REWIND 트랜잭션을 사용하는 To File 또는 From File 오브젝트를 사용하는 프로그램은 To DataSet 또는 From DataSet 오브젝트를 사용하는 경우와 마찬가지로 예상치 못한 상호동작을 야기시킬 수 있습니다. 좀더 세부적으로 말하자면, 프로그램이 EXECUTE REWIND 트랜잭션을 사용하는 From File 오브젝트를 사용하여 파일로부터 데이터를 읽어온 다음, To DataSet 오브젝트를 이용하여 동일한 파일에 데이터를 기록할 경우, 올바르지 않은 데이터가 기록될 수 있습니다.

From Data Set과 To File 오브젝트를 사용할 경우 위와 유사한 현상이 발생할 수 있습니다. VEE 5 또는 그 이상의 실행모드에서 이러한 예상치 못한 현상이 수정되어 파일에 올바른 데이터가 기록됩니다. 그러나 같은 파일로의 To/From File 오브젝트와 To/From DataSet 연산을 혼용하는 것은 여전히 권장하지 않습니다.

관련정보

실행모드 변경 : VEE 3 에서 VEE 4 로 , 실행모드 변경 : VEE 5 에서 VEE 6&7로, 실행모드 변경: VEE 6&7에서 VEE 8로


실행모드 변경 : VEE 5 에서 VEE 6&7로

VEE 6.0 에서는, VEE 5, VEE 4와 VEE 3 실행모드는 VEE 5.0에서 설정된 호환성 지정을 계속 유지합니다. 여기에는 기존의 프로그램을 원래의 실행모드(VEE 3 또는 VEE 4, VEE 5)에서 실행하는 것에 영향을 미치지 않는 약간의 변화가 있습니다. 그러나 프로그램을 구 버전의 실행모드에서 새로운 실행모드로 변경하려고 할 때 알아두어야 할 중요한 사항이 있습니다. 내용은 다음과 같습니다.

VEE 6&7 실행모드에 대하여

VEE 6&7 실행모드는 VEE 5모드의 슈퍼셋 입니다. VEE 6&7 모드는 호환성에 영향을 미치는 중대한 변경을 소개하고 이전에 설명한 컴파일러 기능을 유지합니다. 대부분의 변경은 ActiveX Automation와 Controls을 사용할 수 있습니다.

비록 ActiveX를 사용하지 않더라도, 이 절에서 설명하는 기능 중의 일부를 사용한다면, 다른 변경 사항들이 사용자의 프로그래밍 기술에 영향을 미칠 것입니다. VEE에서 ActiveX 를 사용하는 방법은 VEE에서 ActiveX Automation 사용법를 참고하십시오.

새로운 데이터 타입

Int16, Real32, Variant 및 UInt8 은 VEE 6.0에 새롭게 추가된 데이터 타입입니다. 새로운 데이터 타입은 WRITE TEXT INT16과 같은 새로운 트랜잭션이 모든 실행모드에서 추가됩니다. 그러나 새로운 트랜잭션은 구 버전의 실행모드에 맞는 방식으로 실행됩니다.

예를 들어, VEE 5 모드에서 WRITE BINARY INT16 트랜잭션은 실제적으로 WRITE BINARY INT32로 실행되며, 데이터를 INT16으로 변환시키지 않을 것입니다. VEE 6 실행모드에서는 WRITE BINARY INT16의 데이터를 Int16으로 변환시킵니다. VEE 실행모드에 따라 프로그램의 동작이 변화하는 것에 관한 정보는 데이터 전달의 이해을 참고하십시오.

데이터 타입 변환의 변경 – 어레이 취급의 개선

엑셀과 같은 AciveX Automation Server 또는 ActiveX Control 로부터 데이터가 반환 되었을 경우, VEE는 Automation 데이터 타입을 VEE 데이터 타입으로 변환해야 합니다. VEE 5.0에서 Vairants의 어레이는 VEE의 Record 타입으로 변환되었다. VEE 6&7 실행모드의 VEE 6.0 버전에서 Vairants의 어레이는 모든 원소가 같은 데이터 타입을 가지는 VEE의 어레이로 변환됩니다. (데이터의 타입이 혼합 되었을 경우 VEE 5.0에서는 변환되지 않습니다.)

어레이의 모든 앨리먼트가 동일한 데이터 타입이면, Variant 데이터 타입은 아래와 같이 VEE의 어레이 데이터 타입으로 매핑됩니다.

주의사항

이러한 기능은 VEE 6&7 실행모드에서만 제공됩니다.

Variant 어레이 멤버 타입 | VEE 7.0 데이터 타입
VT_UI1 VT_BOOL VT_I2 VT_UI2 VT_I4 VT_UI4 VT_R4 VT_R8 VT_DATE VT_CY VT_BSTR VT_DISPATCH | UInt8 Int16 Int16 Int16 Int32 Int32 Real32 Real64 Real64 Real64 Text Object

그러나, 새로운 VEE 6&7 데이터 타입과 ActiveX Automation Server의 호환성에는 여전히 몇 가지의 차이점이 존재합니다:

  • Boolean(VT_BOOL), Date(VT_DATE), Currency(VT_CY), Error(VT_ERROR 등에 대응되는 VEE의 데이터 타입은 제공되지 않습니다. ActiveX의 “ByRef”를 사용하는 데이터 타입은 다음에서 설명하는 Set 함수 와 Query 함수와 함께 사용해야 합니다.

  • Empty(VT_EMPTY), NULL(VT_NULL)과 같은 몇몇의 특별한 Variant 값은 VEE에서 대체할 수 있는 데이터 타입을 제공하지 않으며 유일하게 식별될 수 없습니다.

Set 함수

Set 함수들은 ActiveX Automation의 연산 과정 중에 함수에 의해 반환되는 컨테이너가 특별한 처리를 하지 않을 것이라는 것을 VEE에게 알려줍니다. Set 함수들은 다음과 같습니다:

asVariantBool()

asVariantCurrency()

asVariantDate()

asVariantError()

asVariantEmpty()

asVariantNull()

Query 함수

Query 함수들은 Automation 메서드와 속성들의 반환 값으로부터 생성된 컨테이너에 사용됩니다. Query 함수들은 다음과 같습니다:

isVariantBool()

isVariantCurrency()

isVariantDate()

isVariantError()

isVariantEmpty()

isVariantNull()

업데이트된 함수

다음의 함수들이 VEE 6.0에서 업데이트 되었습니다.

whichOS() — “Windows_98” 및 “Windows_2000”의 값을 반환할 수 있도록 업데이트 되었습니다.

createObject() — 원격 호스트 컴퓨터의 이름을 지정할 수 있는 두 번째의 파라미터를 부가적으로 지정할 수 있도록 업데이트 되었습니다.

관련정보

실행모드 변경 : VEE 3 에서 VEE 4 로, 실행모드 변경 : VEE 4 에서 VEE 5 로, 실행모드 변경: VEE 6&7에서 VEE 8로


실행모드 변경: VEE 6&7에서 VEE 8로

Agilent VEE 8.0에서, VEE 6&7, VEE 5, VEE 4, 및 VEE 3 실행모드는 기존 호환성을 유지합니다. VEE 8.0에 적용된 변경사항은 기존의 프로그램이 원래의 실행모드에서 실행하는데 영향을 주지 않습니다. 그러나 이전 모드의 프로그램을 새로운 모드의 프로그램으로 변경할 경우에는 알아야 할 중요사항입니다. 다음 내용을 참조하십시오.

VEE 8 실행모드에 대하여

VEE 8 실행모드는 VEE 6&7 모드의 슈퍼셋 입니다. VEE 8.0에는 2개의 데이터 타입이 추가되었습니다.

새로운 데이터 타입

Int64 와 Boolean이 Agilent VEE 8.0에 새로운 데이터 타입으로 추가 되었습니다.

Int64는 -9223372036854775808부터 9223372036854775807까지의 값을 표시하고, 22-비트 데이터 정밀도를 가집니다.

Boolean은 값으로 True 또는 False만을 가집니다.

WRITE TEXT INT64 와 WRITE TEXT BOOLEAN이 모든 실행모드에서 새로운 트랜잭션 포맷으로 추가 되었습니다. 각 실행모드에서, 입력데이터는 Int64 또는 Boolean으로 변환됩니다. VEE 실행모드에 따라서 프로그램의 동작이 변경되는 것에 대해서는 데이터 전달의 이해를 참조하십시오.

Integer 상수 연산

Integer 상수 연산은 VEE 8모드에서 다른 데이터 타입을 리턴할 수 있습니다.

연산 | 데이터 타입
MaxInt32+1 | Int64
MaxInt32-1 | Int32
MaxInt64+1 | Data Overflow #514 에러
MaxInt64-1 | Int64
MinInt32-1 | Int64
MinInt32+1 | Int32
MinInt64-1 | Data Overflow #514 에러
MinInt64+1 | Int64

내장 숫자 상수

True 와 False는 VEE 8 실행모드에서 Boolean 데이터 타입 입니다. 이것은 .NET 또는 COM 오브젝트의 속성을 직접 설정하기 위해 사용할 수 있습니다. 예를 들어, 다음과 같이 공식에서 TreeView의 ShowLine 속성을 설정할 수 있습니다:

TreeView.ShowLines = true;

MaxInt64 와 MinInt64는 최대 Int64 상수 또는 최소 Int64 상수입니다.

.NET 오퍼레이션 빌더는 Boolean 데이터 타입에 대하여 VEE 6&7에 있는 asVariantBool( ) 대신에 VEE 8 모드에서는 True/False를 사용합니다.

Variant를 Agilent VEE 데이터 타입으로 변환 - VT_I8 추가

Variant 어레이 멤버 타입 | Agilent VEE 8.0 데이터 타입
VT_UI1 VT_BOOL VT_I2 VT_UI2 VT_I4 VT_I8 VT_UI4 VT_R4 VT_R8 VT_DATE VT_CY VT_BSTR VT_DISPATCH | UInt8 Boolean (Agilent VEE 8.0에 새로 추가됨) Int16 Int16 Int32 Int64 (Agilent VEE 8.0에 새로 추가됨) Int32 Real32 Real64 Real64 Real64 Text Object

2개의 새로운 기본제공 타입변환 함수

asBoolean()

asInt64()

관련정보

실행모드 변경 : VEE 3 에서 VEE 4 로, 실행모드 변경 : VEE 4 에서 VEE 5 로, 실행모드 변경 : VEE 5 에서 VEE 6&7로


관련 참조자료

매뉴얼에서 설명한 계측기 컨트롤에 대한 자세한 내용은 다음의 서적을 참조하십시오.

• Tutorial Description of the Hewlett-Packard Interface Bus (Hewlett-Packard Company, 1987), part number 5021-1927.

이 자료는 IEEE 488.1 과 IEEE 488.2에 대한 중요한 설명을 제공합니다. IEEE 488.1 인터페이스에 익숙하지 않은 사용자인 경우에는, 이 자료를 참조하는 것이 최상의 방법입니다.

• IEEE Standard 488.1-1987, IEEE Standard Digital Interface for Programmable Instrumentation (The Institute of Electrical and Electronics Engineers, 1987).

이 표준은 GPIB (IEEE 488.1) 인터페이스를 디자인하고 생성하는데 필요한 세부적인 기술을 정의합니다. 이 표준은 대부분의 프로그램에서 필요한 프로토콜에 대한 전기적인 사양 및 정보를 제공합니다.

• IEEE Standard 488.2-1987, IEEE Standard Codes, Formats, Protocols, and Common Commands For Use with ANSI/IEEE Std 488.1-1987 (The Institute of Electrical and Electronics Engineers, 1987).

이 자료는 SCPI(Standard Commands for Programmable Instruments)를 수행하는 계측기에서 사용하는 메시지 포맷 및 데이터 타입을 설명합니다.

• IEEE Standard 728-1982, IEEE Recommended Practice For Code and Format Conventions For Use with ANSI/IEEE Std 488-1978, etc. (The Institute of Electrical and Electronics Engineers, 1983).

• VMEbus Extensions for Instrumentation, including: "VXI-0, Rev. 1.0: Overview of VXIbus Specifications" and "VXI-1, Rev. 1.4: System Specification," VXIbus Consortium, Inc., 1992.

• HP VISA User's Guide (Hewlett-Packard Company, 1998), part number E2090-90035.

이 자료는 고유한 VXIplug&play 드라이버를 생성하고자 하는 사용자에게 유용하며, VXIplug&play 드라이버에 주소를 부여하고 사용하는 방법에 대한 추가적인 정보를 제공합니다.


컴파일러에 대하여

컴파일러와 내장된 ActiveX Automation 과 Controls를 사용하기 위해서는 실행모드를 VEE 6&7 이상으로 설정해야 합니다. VEE 3에서 작성된 프로그램을 VEE 8 모드로 변경하려면, 각각의 실행모드에 따라 프로그램이 다르게 실행될 수 있으므로 VEE 4, VEE 5 와 VEE 6&7에서 올바르게 수행되는지를 먼저 확인해야 합니다.

주의사항

컴파일러를 사용하기 위하여 이 절의 내용을 이해할 필요는 없습니다. 이 절에서는 컴파일러를 이해하기 위한 개념을 설명합니다. 컴파일러에 대한 정보는 몇 가지의 부수적인 변경사항을 제외하고 VEE 4와 그 이상의 실행모드에서 적용됩니다.

컴파일러는 VEE 4, VEE 5, VEE 6&7 또는 VEE 8 실행모드의 프로그램에서 사용됩니다. VEE 컴파일러는 프로그램을 p-code로 변환시키지만, 기계어나 실행파일을 생성하지는 않습니다.

VEE 컴파일러는 다음을 제공합니다.:

• (실행시 오브젝트의 실행순서를 예상하는 대신) 컴파일 시 오브젝트의 실행순서를 예상합니다.

• 특정 데이터 라인을 통해 흐르는 테이터 타입을 결정합니다.

• 코드 생성을 최적화 합니다.

• 주어진 VEE 오브젝트에 대한 가장 최적화된 p-code를 생성하고 실행합니다.

VEE 프로그램은 사용자가 Run 버튼을 누르면 컴파일을 시작합니다. Show Execution Flow(실행 흐름 보기), Show Data Flow(데이터 흐름 보기), Line Probe와 함께 단계별 실행과 브레이크 포인트가 완벽히 지원됩니다.

수정하지 않은 프로그램을 재 실행할 경우에는 다시 컴파일하지 않습니다. 프로그램이 수정 되었을 때만 다시 컴파일 됩니다. 대부분의 프로그램은 비록 실제의 결과가 변경된다 하더라도 컴파일러를 사용함으로써 이득을 얻습니다. 예를 들면, 많은 입출력이나 스크린 업데이트를 수행하는 것보다 다단계의 네스팅된 루프를 사용하는 프로그램에서 더욱 큰 속도향상을 볼 수 있습니다(예, 디스플레이).

컴파일러 모드는, 반복구문과 연산식의 실행시간을 줄이는데 가장 효과적입니다. 컴파일러를 사용하지 않는 구 버전의 VEE에서 작성된 프로그램은 컴파일러를 사용하는 VEE 와 동일한 방법으로 실행하지 않을 수도 있습니다. 프로그래밍 기술, 증명되지 않은 부수적인 영향, 심지어는 증명된 문서로 표시된 작은 변화들에 의해서도 이전 프로그램이 현 VEE에서 다르게 동작할 수 있습니다.


계측기 제어 소개

VEE는 계측기 통신용으로 여러 종류의 오브젝트를 제공합니다.

다음 테이블에서는 이들 계측기 제어용 오브젝트간의 차이점에 대해서 설명합니다.

VEE 오브젝트 | 계측기 접근 | 주요 장점 | 지원하는 인터페이스
Direct I/O | 모든 계측기와 직접 통신합니다. | 입출력 속도가 빠름. 모든 계측기를 제어할 수 있음 | GPIB, Serial, GPIO, VXI, 및 LAN.
To/From VXIplug&play | 계측기 제조사로부터 VXIplug&play 드라이버가 각 플랫폼별로 제공되어야 함. VISA가 설치되어 있어야 함 | 입출력 속도가 빠름. 드라이버가 여러 종류의 어플리케이션에서 사용될 수 있음 | GPIB, VXI, USB, LAN 및 Serial.
IVI-COM Driver | IVI 드라이버가 설치된 계측기와 통신 | 계측기 교환사용 | GPIB, VXI, LAN, USB, Serial
NIDAQ Driver | 여러 종류의 인터페이스를 통해서 내쇼날인스트루먼트의 카드와 통신함 | NI의 계측기를 사용하기 쉬움 | NI-DAQmx, NI-DMM, NI-SCOPE, NI-FGEN, NI-SWITCH 및 기존NI-DAQ
Multi-Instrument Direct I/O | 여러 개의 계측기와 직접 통신 | 입출력 속도가 빠름. 모든 계측기를 제어할 수 있음 | GPIB, Serial, GPIO, VXI, 및 LAN.
Panel Driver | VEE와 함께 제공되는 계측기용 패널드라이버가 필요함.b | 사용이 편리함 | GPIB 및 VXI.
Component Driver | VEE와 함께 제공되는 계측기용 패널드라이버가 필요함 | 패널드라이버보다 입출력속도가 빠름 | GPIB 및 VXI.
PC Plugin Card Driverc | 계측기 제조사가 제공하는 ODAS 드라이버가 필요함 | 입출력속도가 빠름. 드라이버가 여러 종류의 어플리케이션에서 사용될 수 있음 | PC 플러그인 슬롯

b. 패널드라이버를 “VEE 드라이버”라고도 함

c. VEE 8.0 부터는 더 이상 PC 플러그인 카드를 지원하지 않음

To/From VXIplug&play, Panel Driver, Component Driver,IVI-COM Driver, NIDAQ Drive 및 Plug&Play Driver 오브젝트를 이용하면 계측기의 명령어나 구문을 이해하지 않고도 계측기를 제어할 수 있습니다. 기초 명령어를 이용하여 계측기와 통신하여야 하거나, 해당 계측기용 드라이버가 제공되지 않으면, Direct I/O 오브젝트를 사용하면 됩니다.

주의

VEE 프로그램 안에서 이들 드라이버를 복합 사용하여 서로 다른 계측기와 통신할 수 있습니다. 그러나, 동일한 프로그램에서 동일한 계측기에 VXIplug&play 드라이버와 다른 통신방식으로 복합하여 사용하지 마십시오. – 예기치 않은 에러가 발생할 수 있습니다.

관련정보

Direct I/O 소개, 패널 드라이버 및 컴포넌트 드라이버 소개, VXIplug&play 소개


Direct I/O 소개

파일에서 데이터를 읽거나 쓰는 것과 마찬가지 방식으로 Direct I/O 오브젝트를 사용하여 임의의 계측기에서 데이터를 읽거나 쓸 수 있습니다. 이 기능을 이용하여 임의의 계측기의 프로그램할 수 있는 기능을 제어할 수 있습니다. 계측기 드라이버는 필요하지 않지만, 계측기의 프로그램 명령어를 상세히 알고 있어야 합니다. Direct I/O를 이용하여 GPIB, VXI, 또는 씨리얼 계측기와 통신하기 위해서는 I/O 라이브러리가 설치되어 있어야 합니다.

Direct I/O 오브젝트에서는 런 스트링(Learn string)을 편리하게 사용할 수 있습니다. 런 스트링은 일부 계측기에서 지원하는 특별한 기능으로 실제 계측기의 전면판에서 측정 상태를 설정할 수 있습니다. 일단 계측기가 설정되면, 간단히 Direct I/O 오브젝트에서 Upload를 선택하여 계측기의 전체 상태를 VEE로 업로드할 수 있습니다. 프로그램에서 다시 Direct I/O를 이용하여 이전에 업로드한 런스트링을 계측기로 다운로드하여 계측기의 복구할 수 있습니다.

Direct I/O 예제

다음 그림은 HP 34401A 멀티미터에서 식별자 스트링을 받아오기 위해서 Direct I/O 오브젝트를 설정하는 예제입니다.

Direct I/O 오브젝트의 첫 번째 트랜잭션은 GPIB 주소 722에 있는 HP 34401A 에 *IDN? 텍스트 스트링을 씁니다. 이 명령어를 받으면 HP 34401A은 식별자 스트링을 전송하며, 이 스트링을 두 번째 트랜잭션으로 읽어서, AlphaNumeric 오브젝트로 출력합니다.

Direct I/O를 사용하기 위해서 VEE를 설정하는 방법에 대해서는 Direct I/O 오브젝트 설정을 참조하십시오. Direct I/O오브젝트를 사용하는 방법에 대한 자세한 내용에 대해서는 Direct I/O 오브젝트의 사용를 참조하십시오.

MultiInstrument Direct I/O

MultiInstrument Direct I/O 오브젝트는 하나의 오브젝트에서 direct I/O 트랜잭션을 이용하여 여러 개의 계측기를 제어할 수 있는 기능입니다. 이 오브젝트는 각 트랜잭션이 서로 다른 계측기를 지칭한다는 것을 제외하고는, Direct I/O 오브젝트와 동일한 형태입니다.

이 오브젝트는 표준 트랙잭션 오브젝트이며, VEE가 지원하는 모든 인터페이스를 사용할 수 있습니다. MultiInstrument Direct I/O 오브젝트는 하나의 계측기만을 제어할 필요가 없으므로, 이 오브젝트의 타이틀에는 계측기 이름, 주소 또는 라이브모드가 표시되지 않습니다.

MultiInstrument Direct I/O 오브젝트를 사용함으로써, 계측기마다 사용해야 하는 Direct I/O 의 개수를 줄일 수 있습니다. 이로 인한 성능향상은 VXI 인터페이스에서는 매우 중요합니다. 계측기 제어에 있어서 VXI 인터페이스는 GPIB보다 더 빠릅니다.

다음 그림은 MultiInstrument Direct I/O 오브젝트와 이것의 트랜잭션 대화상자입니다. 이 오브젝트는 HP E1413B, HP E1328, 및 HP 3325와 통신하도록 설정되어 있습니다.

MultiInstrument Direct I/O를 사용하는 더 자세한 내용에 대해서는 "MultiInstrument Direct I/O 오브젝트 사용법"를 참조하십시오.


VXIplug&play 소개

VXIplug&play 는 여러 제조사가 서로 호환되는 하드웨어 및 소프트웨어를 제공하도록 하는 인터페이스 규격입니다. VXIplug&play 드라이버는 특정 계측기를 제어하기 위한 함수의 라이브러리입니다. 이 드라이버는 하드웨어 제조사에 의해서 작성되고 계측기와 함께 제공됩니다.

VXIplug&play 드라이버는 VXI 계측기가 아닌 계측기에 대해서도 사용할 수 있습니다.

VEE 버전 3.0 부터 VEE 6.0 까지는 WIN95/98, 또는 WINNT, VXIplug&play 규격 3.0과 호환되는 드라이버를 지원합니다. VEE 7.0은 HP-UX 또는 Windows 95를 지원하지 않습니다. VEE 8.0은 Windows XP 및 Windows 2000를 지원합니다. Windows 98과 Windows NT는 VEE 8.0 에서 지원되지 않습니다.

시작하기

VXIplug&play를 사용하기 전에, 다음 단계를 실행해야 합니다.:

1 인터페이스(GPIB 또는 VXI)를 설치합니다.

2 VISA를 설치합니다. Agilent의 인터페이스 카드를 사용하고 있으면 VEE와 함께 제공되는 VISA를 설치하십시오. 상세한 내용은 Agilent I/O Libraries(윈도우용 VEE)를 참조하십시오. 이외의 경우에는 인터페이스 카드와 함께 제공되는 VISA를 설치하십시오.

3 각 하드웨어 인터페이스에 대한 VISA를 설정하십시오. Agilent 인터페이스 카드를 사용하고 있으면 Installing the Agilent I/O Libraries의 내용에 따라서 설치하십시오. 이외의 경우에는 인터페이스 카드와 함께 제공되는 VISA를 설치하십시오.

주의

VISA (Virtual Instrument Software Architecture)는 VXIplug&play 드라이버가 계측기를 제어하기 위해서 사용하는 I/O 라이브러리입니다. VISA는 VXIplug&play 를 위해서 반드시 필요하며, VXIplug&play 드라이버가 호출하는 VISA 함수를 제공합니다.

사용자가 필요한 것

각 VXIplug&play 드라이버에 대해서 다음 4 개의 파일이 필요합니다.

• 라이브러리 파일

• 함수 패널 파일

• 헤더 파일

• 도움말 파일

각 VXIplug&play 드라이버와 함께 설치되는 파일은 항상 이들 파일을 포함하고 있습니다. 다른 파일들도 함께 설치됩니다.

주의

모든 VXIplug&play 드라이버가 모든 프레임워큭(플랫폼)을 지원하지는 않습니다. 또한, VISA의 일부 버전은 모든 프레임워크에서 지원되지 않을 수도 있습니다. VISA 버전에 따른 프레임워크 지원여부에 대해서는 해당 제조사에 문의해야 합니다.

VXIplug&play 드라이버 소프트웨어 설치

각 드라이버에 대해서 필요한 파일을 설치하기 위해서는, 계측기 제조사가 제공하는 드라이버에 포함된 안내서를 참조하십시오.

파일의 위치

VXIplug&play 파일은 WINNT\ 폴더에 설치됩니다. 이 폴더의 위치는 루트폴더에 대한 상대경로이며, 이 폴더의 경로는 VISA 설치시 레지스트리에 저장됩니다. 루트 드라이버 및 폴더에 대한 디폴트 경로는 C:\Program Files\VISA\. 입니다.

다음 테이블에서는 VEE에서 사용되는 VXIplug&play 드라이버 파일의 목록입니다.

파일명a | 위치 | 목 적
PREFIX_32.DLL | BIN | 인스트루먼트 드라이버 라이브러리
PREFIX.FP | PREFIX | 인스트루먼트 드라이버 전면패널 파일
PREFIX.H | INCLUDE | 인스트루먼트 드라이버 헤더 파일
PREFIX.HLP | PREFIX | 인스트루먼트 드라이버 도움말 파일

a a. PREFIX 는 HPE1410 등의 계측기 이름을 지칭합니다.

용어 요약

VEE에서 VXIplug&play 드라이버를 사용하는 방법은 다른 I/O를 사용하는 방법과 다릅니다. 서로 다른 부분에 대한 요약은 다음과 같습니다.

• VEE 프로그램은 VXIplug&play 함수를 호출합니다.

• (함수 패널을 통해서 설정되는 변수를 가지는) 함수는 VXIplug&play 드라이버의 일부입니다. 이들 함수는 VISA 소프트웨어를 통해서 계측기와 통신합니다.

• 계측기는 VISA와 함수의 변수를 통해서 데이터를 회신합니다.

VXIplug&play 예제 프로그램

다음 그림은 HP E1410A 멀티미터에 전압측정을 구동하고 결과를 읽기 위해서 the To/From VXIplug&play 오브젝트를 사용하는 예제 입니다.

추가 정보

VXIplug&play를 이용하기 위해서 VEE를 설정하는 방법에 대한 자세한 내용은 VXIplug&play 드라이버 설정을 참조하십시오. VEE에서 VXIplug&play를 사용하는 자세한 방법에 대해서는 VEE 프로그램 실행 및 Call 오브젝트에서 VXIplug&play 함수 사용을 참조하십시오.


프로그램 호환성

이전 버전의 VEE는 VXIplug&play 드라이버를 지원했습니다. VEE3.2는 To/From VXIplug&play 오브젝트를 제공했습니다. 이 오브젝트를 사용한 VEE3.2 프로그램은 이 후 버전의 VEE에서도 실행할 수 있습니다.

VEE3.1 에서는 VXIplug&play 드라이버를 직접 호출하는 기능만 제공했습니다. VEE 3.1에서 VXIplug&play 드라이버를 제어하기 위해서 Call 오브젝트를 사용한 프로그램은, 드라이버를 32 비트 버전에서 사용할 수 있도록 일부 내용만 수정하여, 이 후 버전의 VEE에서 실행할 수 있습니다.

VXIplug&play 드라이버가 설치되어 있어야 하며, VXIplug&play 드라이버 파일의 새로운 위치를 사용하기 위해서 Import 오브젝트를 변경해야 합니다. VXIplug&play 드라이버에 접근하기 위해서 Call 오브젝트를 사용하는 내용에 대해서는 Call 오브젝트에서 VXIplug&play 함수 사용를 참조하십시오.

VXIplug&play 드라이버를 계측기와 통신하도록 설정하기 위해서는, 적절한 VXIplug&play 드라이버 파일과 VISA I/O 라이브러리를 설치해야 합니다. VISA 설치에 대해서는 VXIplug&play 소개를 참조하십시오. 또한 VXIplug&play 드라이버 설정에서 설명된 바와 같이 계측기에 대해서 VEE를 설정해야 합니다.

다음 절에서 설명된 바와 같이, To/From VXIplug&play 드라이버를 사용하는 것이 VEE에서 VXIplug&play드라이버와 통신하는 것이 기본적인 방법입니다. 또한 VEE Call 오브젝트에서 VXIplug&play 함수를 호출할 수 있습니다.( Call 오브젝트에서 VXIplug&play 함수 사용.참조). 두 번째 방법은 VEE 3.1 버전을 호환시키기 위해서 제공되었습니다.


VEE 프로그램 실행

To/From VXIplug&play 오브젝트에 작성된 트랜잭션은 위에서부터 실행됩니다. 이 절에서는 To/From VXIplug&play 오브젝트가 실행될 때 무엇이 발생하는지 설명합니다.

드라이버 초기화 및 닫기

프로그램을 로딩하거나 생성하고 처음 실행하면, To/From VXIplug&play 오브젝트로 각 계측기를 초기화하기 위해서 프로그램 실행이 약간 지연됩니다. 이 초기화 과정에서는 계측기가 지정된 초기 상태로 설정됩니다. 이 후부터는 프로그램을 실행해도 초기 상태를 설정하지 않고 정상적인 속도로 실행됩니다.

프로그램으로 제어되는 각각의 계측기는 VEE 세션 동안 한번은 초기화되어야 합니다. VXIplug&play 자원관리자(Resource Manager)는 계측기가 해당 주소에 연결되어 있는지 확인하고 지정된 상태로 설정하기 위해서 "instrument find"를 실행합니다. 이 과정에 소요되는 정확한 시간은 알 수 없지만, 계측기 당 약 10초 정도의 시간이 소요됩니다. 이러한 지연은 해당 계측기에 To/From VXIplug&play 오브젝트를 처음 실행할 때만 발생합니다.

각 VEE 세션에 한번만 초기화되므로, 프로그램이 실행될 때마다 계측기를 지정된 상태로 설정하기 위해서는 clear 또는 reset 등의 기능을 실행해야 합니다. 다른 프로그램을 로딩하거나 VEE를 종료하면, VXIplug&play 드라이버는 자동으로 닫힙니다.

고급 초기화 정보

이 절에서는 VEE VXIplug&play 초기화 과정에서 발생되는 비교적 상세한 내용을 설명합니다. VXIplug&play 드라이버를 사용하는 VEE 프로그램을 작성하기 위해서는 여기서 설명한 내용을 반드시 이해해야 하는 것은 아닙니다.

각 VXIplug&play 드라이버는 PREFIX_init() 및 PREFIX_close() 함수를 가져야 합니다. 이들 함수는 VEE에 의해서 자동으로 호출됩니다.

init() 함수의 목적은 계측기를 지정된 상태로 설정하고 "세션 핸들"을 얻는 것입니다. VEE Name으로 지정된 각 계측기는, 설정되었을 때, 그것이 프로그램에서 처음 실행될 때 지정된 유일한 세션 핸들을 가집니다. 아 세션 핸들은 프로그램에서 계측기를 유일하게 식별하기 위해서 사용됩니다.

(동일한 VEE Name을 가지는) 동일한 계측기와 통신하는 모든 To/From VXIplug&play 오브젝트는 동일한 세션핸들로 식별됩니다. 세션핸들은 펑션 패널의 Panel 탭의 좌측하단에 있는 vi 필드에 표시됩니다. 여러 개의 To/From VXIplug&play 오브젝트간에 이 세션 핸들을 주고 받는 것을 VEE가 자동으로 관리합니다.

init()는 일반적으로 실행되는데 약간의 시간이 소요되므로, 필요할 때만 호출하는 것이 좋습니다. To/From VXIplug&play가 처음 실행되면, 관련된 init() 함수가 호출됩니다. init()가 호출되면, 드라이버 설정에 따라서, Identification Query 및/또는 Reset을 실행합니다.

close() 함수는 세션 핸들을 닫고, 계측기 연결을 끊고, 그 계측기와 관련된 모든 데이터를 지우고, 필요시 계측기 특정 기능을 실행합니다. VEE는 다음의 경우에 close()를 호출합니다.:

• New, Open 또는 Exit 이 선택된 후.

• 하나의 VEE Name(예 dvm)에 대해서 모든 To/From VXIplug&play 오브젝트가 삭제될 때.

• VXIplug&play Instrument Properties 대화상자에서 Address 또는 init()의 인자값이 변경될 때. 이 경우에는, close()가 호출되어 새로운 값을 가지는 init()가 호출됩니다.

에러체크 및 주의체크

각 트랜잭션이 실행되면, 함수가 상태값을 VEE로 리턴하며, VEE가 이 값을 자동으로 체크합니다. 함수가 성공적으로 실행되었는지 값을 읽어서 확인하고, 성공적이면 다음 트랜잭션을 실행합니다.

에러체크 상태값이 에러를 나타내는 값이면, VEE는 프로그램 실행을 중지하고 에러를 보고합니다. 에러를 잡을 Error 출력핀이 있으면, 프로그램이 중단되지 않고 이 에러 출력핀으로 프로그램이 흐릅니다. errorInfo() 오브젝트를 이용하면 에러 메시지에 대한 자세한 정보를 얻을 수 있습니다.

VEE는 자동으로 PREFIX_error_message() 함수를 호출하여, 제조사가 제공하는 가능한 많은 에러 정보를 얻습니다. 이 정보는 VEE 에러 메시지 또는 errorInfo() 오브젝트로부터 출력됩니다.

주의

에러가 발생하면, 계측기는 알려지지 않은 상태로 전환됩니다. 프로그램의 시작 부분에서 특정 리셋 또는 클리어 함수를 호출하지 않으면, 프로그램을 다음 실행시 계측기의 상태를 알 수 없습니다.

주의체크 리턴된 값의 내용이 주의를 나타내는 값이면, 프로그램이 일시정지되고 주의 대화상자를 표시합니다. 주의 대화상자는 계측기 제조사가 제공하는 정보를 가지고 있으며, 프로그램을 중지할 것인지 계속 실행할 것인지를 선택할 수 있습니다.

주의 메시지는 자동으로 잡을 수 없습니다. 그러나, 드라이버가 제공하는 일반적인 주의 메시지를 알고 있으면, 주의 메시지를 VEE 프로그래 안에서 관리할 수 있습니다. 예를 들어, 계측기에서 데이터를 읽기 위한 준비가 되지 않았다는 주의 메시지를 받으면, 읽기를 다시 시도하기 위해서 루프에 Delay 오브젝트 또는 To/From VXIplug&play 오브젝트를 넣을 수 있습니다.

VEE 프로그램에서 알려진 주의 상태를 관리하기 위해서, 주의 메시지 대화상자가 표시되지 않도록 해야 하는 경우도 있습니다. 이렇게 하기 위해서는, To/From VXIplug&play 오브젝트의 속성 대화상자에서 Ignore Cautions Returned의 값을 체크합니다.

주의

프로그램 내부에서 주의 상태를 어떻게 관리하는지 확신할 수 없으면, 일반적으로 (Ignore Cautions Returned 체크상자를 체크하여) 주의 메시지를 무시하지 않는 것이 좋습니다.

인자 전달

VXIplug&play 규격에 따라서, 드라이버가 데이터를 요청하기 전에 메모리를 할당하여 드라이버에 제공해야 합니다. 일부 VXIplug&play 함수는 읽은 데이터를 어레이에 저장합니다. 대부분의 이들 VXIplug&play 함수는 전송된 어레이의 크기를 지정하는 인자를 가지며, 어레이가 충분히 크지 않으면 에러가 발생합니다. 이 경우에는, 어레이를 임의의 크기로 지정하고 함수로 그것의 크기를 전달해야 합니다. 이것을 전달받은 함수는 지정된 크기만큼만 데이터를 어레이로 씁니다.

경고

다른 VXIplug&play 함수는 크기에 관계없이, 데이터를 읽거나 쓰기에 어레이가 충분히 크다고 간주합니다. 특별히 Text 스트링의 경우에는 일반적입니다. 메모리가 충분하지 않게 할당되면, 메모리에 중복하여 쓰게되고 General Protection Fault 또는 Segmentation Violation 에러가 발생합니다. VXIplug&play DLL은 VEE로 직접 링크되므로, VEE가 크래시되어 종료될 수 있습니다.

주의

어레이 또는 스트링 데이터 입력에 대해서 가장 직접적으로 메모리를 할당하는 방법은 Auto-Allocate 기능을 이용하는 것 입니다. "To/From VXIplug&play 오브젝트 사용법"를 참조하십시오. 할당할 크기를 지정해야 하지만, 일단 크기를 지정하면, 메모리를 자동으로 할당됩니다.

드라이버의 도움말을 참조하여 얼마만큼의 메모리를 할당해야 하는지 확인하십시오. To/From VXIplug&play 오브젝트에서 Instrument Help를 실행하십시오. 이 도움말 파일에는 얼마나 큰 어레이가 사용되어야 하는지 설명되어 있습니다.

Auto-Allocate 기능을 이용하지 않으면, 메모리를 할당할 오브젝트를 생성하여, 이 오브젝트를 To/From VXIplug&play 오브젝트의 데이터 입력터미날에 연결해야 합니다.:

• 어레이 입력에 대해서는, 적절한 타입의 Alloc Array 오브젝트를 사용하여, 크기를 적절하게 설정합니다.

• 스트링 입력에 대해서는, Formula 오브젝트를 사용합니다. Formula 오브젝트에서 데이터 입력터미날을 삭제하고 256*"a" 형태의 표현식을 입력합니다. 이 표현식은 “a”로 채워진 256 문자 길이(더하기 널 바이트)의 스트링을 생성합니다. 대부분의 VXIplug&play 함수는 Text 인자고 256 문자 이상을 쓰지는 않습니다. 그러나, Text 입력을 사용하는 함수에 대해서는, 각 함수의 도움말 패널을 참조하여 필요한 스트링의 길이를 확인하는 것이 좋습니다.

예제 프로그램

다음 그림은 HP E1410A VXI 멀티미터와 통신하는 To/From VXIplug&play 오브젝트를 사용하는 간단한 예제입니다.

VXIplug&play의 제한사항

VEE에서 VXIplug&play 드라이버를 사용하는데 몇 가지 제한사항이 있습니다.

• Bus I/O Monitor 오브젝트는 VEE로 들어오거나 나가는 입출력만 표시하므로, VXIplug&play 드라이버로 입출력되는 내용을 표시할 수 없습니다. VXIplug&play 드라이버는 VEE로 링크된 C 프로그램입니다. 필요한 경우에는 하드웨어 버스 모니터를 사용할 것을 권장합니다.

• callback 등과 같이 VXIplug&play 규격에서 요구되지 않는 일부 선택기능은 지원되지 않습니다.

• (Interface Operations, Instrument Event (SPOLL) 및 Interface Event)를 포함하여 I/O Advanced I/O에서 제공되는 고급 입출력 오브젝트는 VXIplug&play 에서 지원되지 않습니다.

• VXIplug&play는 LIVE MODE/NOT LIVE MODE의 개념을 지원하지 않습니다. 프로그램을 실행하기 위해서는, 프로그램에서 사용된 모든 계측기가 컴퓨터에 연결되어 있어야 합니다. 그러나, 계측기가 연결되어 있지 않아도 프로그램은 열수 있습니다. 또한, VXIplug&play 드라이버가 설치되어 있는 한 To/From VXIplug&play 오브젝트를 사용하여 함수호출을 지정할 수 있습니다.

• 동일한 프로그램에서 동일한 계측기와 통신하기 위해서 VXIplug&play 드라이버를 VEE의 다른 제어방법(Direct I/O, Panel Driver, 또는 Component Driver)과 혼용할 수 없습니다. 그러나, 동일한 프로그램에서도, 하나의 계측기에 대해서만 VXIplug&play 드라이버를 사용하고, 다른 계측기에는 다른 제어방법을 적용할 수는 있습니다.

주의

VXIplug&play 규격은 지속적으로 업데이트 및 향상되고 있습니다. VEE 버전이 변경되는 동안 새로운 기능이 VXIplug&play 규격에 추가될 수 있습니다. VXIplug&play 규격에서는 버전 정보를 드라이버 라이브러리 안에 명시하도록 강요하지 않으므로, VEE는 드라이버의 호환성을 확인할 수 없습니다. 그러므로, 특정 드라이버가 현재 지원되는 VXIplug&play 규격에 호환되는지는 드라이버를 제공하는 계측기 제조하에 문의하여야 합니다.


Call 오브젝트에서 VXIplug&play 함수 사용

다음과 같은 경우에는, VEE Call 오브젝트를 이용하여 VXIplug&play를 호출해야 합니다.:

• 기존 프로그램 호환성: VEE3.1 버전에서 VXIplug&play를 이용하여 작성된 프로그램을 약간만 변경하여 사용할 수 있습니다. 그러나, 이 프로그램을 계속하여 사용해야 한다면, "Plug&play 드라이버 사용하기"에서 설명된 바와 같이 To/From VXIplug&play 오브젝트에서 표준 함수 패널접근을 사용하여 프로그램을 재작성하는 것이 좋습니다.

• 이전 버전의 드라이버 접근 : 비-HP VXIplug&play 드라이버(1995 이전)의 초기 버전은 초창기의 VXIplug&play 규격으로 작성되었습니다. 이들 드라이버들은 VEE Call 오브젝트를 사용하여 접근해야 합니다.

위의 상황 이외의 경우에는, "Plug&play 드라이버 사용하기"에서 설명한 방법으로 VXIplug&play 드라이버를 사용해야 합니다.

VEE에서 DLL 또는 공유 라이브러리 사용

이 절에서는, 필요한 파일이 설치된 후, VXIplug&play 드라이버를 로딩하는 단계를 설명합니다.

VXIplug&play 드라이버를 VEE에서 사용하기 위해서는, 다음을 실행합니다.:

1 라이브러리를 임포트합니다.

2 라이브러리를 사용하는 루틴을 실행합니다.

3 프로그램이 완료되면 라이브러리를 삭제합니다.

이 과정에는 3 개의 오브젝트, Import Library, Call 및 Delete Library 오브젝트가 관련되어 있습니다.

Library 임포팅

드라이버를 실행하기 위해서 Call 오브젝트(또는 Formula 오브젝트)를 사용하기 전에 Import Library 오브젝트를 통해서 VEE로 함수를 임포트해야 합니다.

Import Library 오브젝트에서, Library Type으로 Compiled Function을 선택합니다. Definition File 버튼을 이용해서 PREFIX.h의 경로와 이름을 입력합니다. VXIplug&play 소개을 참조하십시오.

File Name 버튼을 이용하여 PREFIX_32.DLL의 경로와 이름을 선택합니다. Library Name 버튼은 함수의 집합에 논리이름을 지정합니다. 이름은 HP E1410등과 같이 계측기의 이름을 지칭하는 PREFIX를 사용하기 바랍니다.

Call 오브젝트로 드라이버를 사용하기 전에, Call 오브젝트를 설정해야 합니다. Call 오브젝트를 설정하는 가장 간단한 방법은 Import Library 오브젝트에서 Load Lib를 선택하여 VEE로 드라이버 파일을 로드하는 것입니다. Device 메뉴에서 Call 오브젝트를 클릭하여 오브젝트를 생성합니다. Call 오브젝트의 오브젝트 메뉴에서 Select Function을 실행합니다. VEE는 드라이버 파일에서 익스포트된 헤더 파일 목록에 있는 모든 함수가 이 대화상자에 표시됩니다.

VEE에서 VXIplug&play 드라이버 호출

VXIplug&play 드라이버를 호출하기 위해서 Call 오브젝트를 사용합니다.

호출 순서 VXIplug&play 드라이버를 위한 호출순서는 매우 중요합니다. 순서는:

1 초기화 함수를 호출합니다.(이 함수는 세션 핸들을 리턴합니다.)

2 초기화 함수에 의해서 리턴된 핸들을 이용하여 드라이버를 호출합니다.

3 닫는 함수를 호출합니다.

함수 초기화 초기화 함수 PREFIX_init에는 3 개의 입력핀과 2 개의 출력핀이 있습니다.

3 개의 입력필드는:

• 계측기 주소

VXIplug&play 어드레싱에 대한 추가 정보는 " VXIplug&play 드라이버 설정" 를 참조하십시오..

• 식별 검증 플래그

검증 플래그가 1 이면, 초기화 함수는 계측기를 식별합니다. "*IDN?" 쿼리 또는 계측기 제조사가 제공하는 다른 방법을 이용하여, 제조사 ID, 모델 번호을 체크하여 계측기를 식별합니다. 이 플래그를 0 으로 설정하면, 계측기를 식별하지 않습니다.

• 리셋 플래그

리셋 플래그를 1로 설정하면 초기화 함수가 미리 지정된 상태로 계측기를 초기화합니다. 리셋을 하지 않으려면 0으로 설정해야 합니다.

2 개의 출력필드는:

• 리턴 값

VXIplug&play는 실행된 동작의 상태가 VXIplug&play 드라이버로부터 리턴되도록 규정하고 있습니다. 리턴된 정수는 별도의 오브젝트로부터 PREFIX_error_query를 호출하여 의미있는 메시지로 번역될 수 있습니다. 리턴 값이 0 이면, init() 호출이 성공했음을 의미합니다.

• VXIplug&play 함수용 핸들

초기화 함수로부터의 리턴값이 0 이면, 출력 인자는 계측기 핸들을 가집니다. 계측기 핸들은 단순히 이 초기화 함수호출과 관련된 숫자입니다.

각 초기화는 출력터미날 인자 vi로 유일한 핸들을 리턴합니다. 이 인자는, 세션핸들(session handle) 등의 여러 가지 다른 이름으로 사용되지만, 항상 init()에서 리턴되는 가장 마지막 인자입니다.

VXIplug&play 함수 호출 Call 오브젝트를 이용하여 다른 함수를 호출할 수 있습니다. 호출된 각 함수에 대해서, PREFIX_init 함수에서 리턴된 핸들을 Call 오브젝트의 instrID 입력핀으로 제공해야 합니다.

VXIplug&play 함수 호출 Call 오브젝트를 이용하여 다른 함수를 호출할 수 있습니다. 각 함수 호출에 대해서, PREFIX_init 함수로부터의 핸들이 Call 오브젝트의 instrID 입력핀으로 제공되어야 합니다.

다른 일반적인 VXIplug&play 함수 사용 PREFIX_init 및 PREFIX_close 함수 이외에 VXIplug&play 드라이버는 다를 일반적인 드라이버 함수를 구현할 수 있습니다. PREFIX_reset, PREFIX_self_test, PREFIX_revision_query, PREFIX_error_query, 및 PREFIX_error_message 함수가 이것에 해당됩니다.

어레이를 인자로 사용 VXIplug&play는 호출자가 어레이 또는 텍스트 인자용 공간을 할당하도록 규정하고 있습니다. 이것은, 예제에서 설명된 바와 같이 VXIplug&play 함수로 어레이나 텍스트를 인자로 전달하기 전에 VEE가 공간을 할당해야 함을 의미합니다.

Close 함수 사용 닫기 함수 PREFIX_close는 하나의 입력을 가지고 출력인자는 가지지 않습니다. 입력변수는 PREFIX_init에서 리턴되는 인자입니다. PREFIX_close 를 실행하면 계측기와의 연결이 끊어지고 해당 계측기 핸들과 관련된 모든 데이터가 삭제됩니다. 계측기에 따라서는 계측기를 닫을 때 다른 함수가 추가될 수 있습니다. 여기서 닫힌 계측기 핸들은 계측기 함수에 의해서 다시 사용될 수 없습니다. 새로운 핸들을 얻기 위해서는 PREFIX_init 루틴이 다시 호출되어야 합니다.

Library 삭제

VXIplug&play 드라이버 사용을 완료한 후에는, 로딩된 각 드라이버에 대해서 Delete Library 라이브러리가 호출되어야 합니다. 라이브러리가 일단 언로드 되었으면, 그 드라이버를 다시 사용하기 위해서는 Import Library 오브젝트를 이용하여 그 라이브러리가 다시 로드되어야 합니다.

간단한 프로그램

다음은 VEE에서 VXIplug&play 드라이버를 사용하는 예제입니다. 이 프로그램은 라이브러리를 임포트하고, 계측기를 초기화하며, 계측기를 닫고, 라이브러리를 삭제합니다.(각 프로그램 쓰레드는 Start 버튼에 의해서 독립적으로 실행됩니다.)

보다 완성된 프로그램

다음 그림은 VXIplug&play 드라이버를 사용하고 출력 인자로 사용할 어레이를 할당하는 보다 완성도가 높은 프로그램입니다.

힌트

핸들 추적 PREFIX_init에 의해서 리턴되는 핸들은 이후의 드라이버 함수에 의해서 사용됩니다. 이 핸들을 사용하는 방법은 2 가지 입니다.

• 핀 연결

핸들의 값은 PREFIX_init 루틴 데이터 출력핀에서 각 함수 상의 데이터 입력핀으로 전달될 수 있습니다.

• 핸들의 트랙을 유지

핸들을 전역변수에 저장할 수 있습니다. PREFIX_init 루틴으로 부터의 핸들을 Set Global 오브젝트에 연결합니다. 이 핸들을 사용해야 하는 함수는 Get Global 함수를 이용하여 핸들을 가져 옵니다.

제어 흐름 드라이버는 특정 순서로 동작을 실행할 수 있습니다.(초기화, 함수호출, 닫기) VEE 프로그램은 핸들을 이용해야 할 모든 함수에 대해서 핸들이 유효하도록 프로그램을 작성해야 합니다.


To/From VXIplug&play 오브젝트 사용법

VXIplug&play 계측기를 VEE 계측기 설정에 포함시켰으면, 프로그램 안에서 VXIplug&play 드라이버를 사용할 수 있습니다. 드라이버가 제공하는 함수를 이용하여 계측기에 접근합니다. To/From VXIplug&play 오브젝트를 통해서 To/From VXIplug&play 함수패널에 접근할 수 있습니다.

To/From VXIplug&play를 생성하기 위해서는:

I/O [image] Instrument Manager를 실행합니다. Instrument Manager 대화상자에 (다른 방법으로 설정된 계측기 포함하여) 현재 설정된 모든 VXIplug&play 계측기가 표시됩니다.

통신할 계측기를 선택하고, plug&play Driver 버튼을 클릭합니다. 오브젝트의 윤곽이 표시됩니다.

To/From VXIplug&play 오브젝트의 윤곽을 작업영역의 임의의 위치에 배치하고 마우스를 클릭합니다. 오브젝트가 다음과 같이 생성됩니다.

함수선택

To/From VXIplug&play 오브젝트에서 VXIplug&play 함수를 선택합니다.

1. 빈 트랜잭션을 더블클릭하거나 오브젝트 메뉴에서 Add Trans 또는 Insert Trans를 실행합니다. Select a Function Panel 대화상자가 표시됩니다. 이 대화상자에는 Measure 또는 Configure 등과 같이 논리적으로 기능이 구분된 함수 패널이 표시됩니다. 드라이버 마다 다르게 기능이 분류되어 있습니다.

• [+] 아이콘을 클릭하면 함수 패널이 계층구조로 표시됩니다.

• [-] 아이콘을 클릭하면 함수 패널의 계층구조를 닫습니다.

• [f(x)] 아이콘을 클릭하여 함수패널을 선택합니다. 이 대화상자의 하단에서 함수패널의 기능이 간략히 표시됩니다.

트리를 완전히 확장하기 위해서는, 확장할 항목을 선택하고 * 키를 누릅니다.

일반적으로, VXIplug&play 3.x 버전에 호환되는 함수와 VEE가 허용하는 함수만 표시됩니다.

주의

접근시 VEE가 자동으로 init()를 호출할 수 있습니다. 그러나, 목록에는 init_all(), init_next(), 또는 init_first() 등의 다른 초기화 함수가 제공될 수 있습니다. 이들 함수는 VXIplug&play 규격에서 정의되어 있지 않으며, VEE에서도 지원되지 않습니다.

이들 함수를 선택하지 마십시오. 이들 함수를 이용해야 한다면, " Call 오브젝트에서 VXIplug&play 함수 사용"에서 설명한 방법으로 프로그램을 작성하여 Call 오브젝트에서 VXIplug&play 드라이버를 호출해야 합니다.

PREFIX_init() 또는 PREFIX_close()는 항목에서 선택할 수 없습니다. 이들은 VEE가 자동으로 실행합니다.

2 Select a Function Panel 대화상자에서 OK 버튼을 클릭하십시오.

3 Edit a Function Panel 대화상자에서 함수패널에 대한 인자를 지정할 수 있습니다.

함수패널 인자 편집

Edit a Function Panel 대화상자에서 VXIplug&play 드라이버의 함수로 전송할 컨트롤과 변수를 설정할 수 잇습니다. 이 대화상자에는 Panel 탭과 Configuration 탭이 제공됩니다.

Panel 탭. Panel 탭에서는 함수로 전달할 상수(컨트롤) 값을 지정합니다.

• 컨트롤 - 이 대화상자의 상단에는 상수 인자를 지정하는 컨트롤이 제공됩니다. 이 컨트롤의 이름은 함수 패널 파일에서 지정된 라벨입니다.

• vi – 해당 계측기의 유일한 "virtual instrument" 핸들("session handle" 이라고도 함)을 표시합니다. 드라이버 버전에 따라서 이 필드의 이름이 다를 수 있습니다. 그러나, 이것의 위치는 항상 함수패널의 좌측하단입니다.

• Error – 이 함수 패널을 실행하여 에러가 발생하면 0 이 아닌 값을 출력합니다. 드라이버 버전에 따라서 이 필드의 이름이 다를 수 있습니다. 그러나, 이것의 위치는 항상 함수패널의 우측하단입니다.

• Function call - 이 대화상자의 하단에는 드라이버로 전송되는 C 함수와 인자가 표시됩니다. 이 명령은 이 오브젝트의 오픈뷰의 트랜잭션에도 표시됩니다.

VXIplug&play 함수패널 도움말

Panel의 바탕에서 마우스 오른쪽 버튼을 클릭합니다. 해당 함수의 설명을 제공하는 대화상자가 표시됩니다.

인자에 대한 설명은 해당 컨트롤(라벨이 아님)에서 마우스 오른쪽 버튼을 클릭하면 표시됩니다.

To/From VXIplug&play 오브젝트의 오브젝트 메뉴에서 Instrument Help를 클릭하면, VXIplug&play 드라이버에 대한 전체 도움말이 표시됩니다.

Configuration 탭

Configuration 탭에서는 함수에 전달할 변수를 지정할 수 있습니다. 이 변수는 프로그램 실행 중에 지정할 수 있습니다.

변수의 값은 기능별로 그룹화되어 있습니다. 각 그룹의 이름은 VXIplug&play 함수패널에서 지정된 변수의 라벨이름입니다. 위의 그림에서 Function 이나 reading은 라벨입니다. 각 그룹은 다음 정보를 가지고 있습니다.

• Parameter Type – 이것은 변수 데이터 타입과 변수가 입력용, 입출력용, 또는 출력용인지에 대한 정보를 제공합니다.

• Parameter Value - Constant가 선택되면, 인자가 Panel 탭 상에 설정된 상수값으로 전달됩니다. Variable로 설정되면, 이 인자가 변수로 전달됩니다. 인자의 값은 프로그램 실행중 변경할 수 있습니다. 읽기용 출력과 같은 일부 필드는 항상 변수입니다.

Name - Parameter Type이 Variable로 설정되면, 이 필드를 편집할 수 있습니다. 디폴트로, 변수의 이름은 그것의 라벨이름으로(또는 유효한 유사한 변수이름) 설정됩니다. 이 변수이름은 VEE에서 사용할 수 있는 유효한 변수이름으로 변경할 수 있습니다. 변수가 입력 변수이면, 이 필드에 표현식, 함수 호출, 또는 전역변수를 넣을 수 있습니다.

Create Terminal - Parameter Type이 Variable로 설정되면, 이 필드를 편집할 수 있습니다. 체크박스가 체크되고 터미날 이름에 Name이 없으면, OK를 누르면, 대화상자로 표시된데로, 입력, 출력, 또는 입출력으로 터미날(Name에 지정된 이름으로)이 생성됩니다. 일단 생성된 터미날을 지우기 위해서는, 오브젝트에서 Delete Terminal을 실행해야 합니다.

Name이 변경되고 Create Terminal이 체크되면, 새로운 터미날이 추가됩니다.

Name이 유효하지 않은 터미날 이름으로 설정되면, Create Terminal은 회색으로 비활성화됩니다.

• Auto-Allocate Input – 이것은 Constant가 아닌 Variable로 설정된 Input/Output로 표시됩니다. 다음 절에서 더 자세한 정보가 제공됩니다.

이 대화상자에서 보이는 가장 최신의 설정으로 저장하고 이 트랜잭션을 “no operation”으로 만들기 위해서는 NOP 버튼을 누릅니다.

Help 버튼을 클릭하면 To/From VXIplug&play 오브젝트의 도움말이 출력됩니다.

Instr Help 버튼을 클릭하면 드라이버 개발자가 제공한 해당 계측기의 도움말이 출력됩니다.

자동할당(Auto-Allocate) 기능(어레이 및 스트링 전달)

일부 VXIplug&play 함수는 어레이 또는 Text 스트링으로 데이터를 리턴하려고 합니다. VXIplug&play 함수는 할당된 메모리를 리턴할 수 없으므로 VXIplug&play 규격에서는 어플리케이션(VEE)이 어레이 또는 스트링용 메모리를 할당하도록 하고 있습니다. VEE는 메모리를 할당해야 하며, 함수는 그 메모리에 쓸 수 있습니다.

자동할당 기능이 제공되므로, VEE가 쉽게 메모리를 할당할 수 있습니다. VEE는 필요한 양만큼 올바른 데이터타입과 형태를 할당합니다.

함수에 대한 인자가 어레이나 Text 스트링을 필요로 하는 변수이면, Parameters 탭에 추가필드가 표시됩니다.: Auto-Allocate 입력. 예를 들어, 다음 대화상자에서, readings은 어레이를 입력할 수 있습니다. Parameters 탭에는 Auto-Allocate 입력이 선택되어 있음이 표시되어 있습니다.

Auto-Allocate 입력이 선택되면, Size 필드가 비활성화됩니다. 디폴트 사이즈틑 5000 이지만, 입력 데이터를 할당하기 위해서 적절한 사이즈를 입력할 수 있습니다. 전달될 어레이나 스트링의 크기는 사용자가 결정해야 합니다. 이 인자에 대해서는 입력 터미날이 생성되지 않으며, VEE가 인자용 메모리를 자동으로 할당합니다.

어레이에 대해서는, Size는 어레이의 앨리먼트의 개수를 의미합니다. 텍스트 스트링에 대해서는, Size는 문자의 개수(바이트)를 나타냅니다. 함수가 요구하는 어레이 또는 스트링의 크기에 대해서는 계측기 도움말을 참조하거나 Panel의 배경 또는 인자에서 마우스 오른쪽 버튼을 클릭합니다.

주의

Auto-Allocate 입력 기능을 사용하면, 그 함수에 대한 데이터 입력 터미날이 생성되지 않습니다. 이미 데이터 입력 터미날이 있으면, 그 터미날을 To/From VXIplug&play에서 제거해야 합니다.

Auto-Allocate 입력을 선택(“체크”)하지 않으면, 해당 함수에 대한 입출력 터미날이 디폴트로 생성됩니다. 올바른 타입, 형태 및 메모리 양을 할당하도록 오브젝트를 생성해서, 그것을 입력터미날에 연결해야 합니다. 입력용으로 필요한 메모리를 수동으로 할당하는 방법에 대해서는 인자 전달을 참조하십시오.

함수가 리턴하려고 하는 모든 값에 대해서 충분할 메모리를 할당해야 합니다. 메모리가 충분히 할당되지 않으면, 메모리가 중복으로 쓰이게 되어, General Protection Fault 또는 Segmentation Violation이 발생하게 됩니다. VXIplug&play DLL은 VEE로 직접 링크되어 있으므로, 이러한 상황이 발생하면 VEE가 크래시되어 종료됩니다.

VXIplug&play Driver에 대한 도움말

To/From VXIplug&play 오브젝트의 오브젝트 메뉴에서 Instrument Help를 클릭하면, 계측기 제조사가 제공하는 도움말을 참조할 수 있습니다. 이 도움말에는 인자에 필요한 데이터 타입을 포함하여 VXIplug&play 드라이버를 사용하는 정보가 제공됩니다.

각 함수에 대한 도움말은 VXIplug&play 패널 도움말을 참조하십시오.


패널 드라이버 및 컴포넌트 드라이버 소개

Panel Driver 오브젝트 및 Component Driver 오브젝트는 특정 계측기를 지원하는 드라이버 파일이 있는 경우 그 계측기용으로만 사용할 수 있습니다. VEE를 위한 설치과정에서 어떤 드라이버를 설치할 지 선택할 수 있습니다. 특정 계측기에 대해서 어떤 드라이버를 선택하고 설정하는 가에 대해서는 Help [image] Tell Me About ....에서 계측기 설정 부분을 참조하십시오. I/O 라이브러리는 반드시 설치되어야 합니다.

패널 드라이버

VEE에서 다음과 같은 2 가지 목적으로 패널 드라이버를 사용합니다.:

• 계측기의 모든 기능에 대한 상태를 지정할 수 있습니다. Panel Driver 드라이버가 동작하면, 해당 계측기는 패널 드라이버에서 설정된 내용으로 자동적으로 프로그램 됩니다.

• 패널 드라이버는 계측기를 대화형으로 제어하는 계측기 제어 패널처럼 사용할 수 있습니다. 이 기능은 프로그램 개발과 디버깅시 유용합니다. 또한 계측기가 물리적은 패널을 가지고 있지 않은 경우에도 편리하게 사용할 수 있습니다.

이 계측기 제어 소개에서 설명하는 바와 같이, 패널 드라이버의 오픈뷰에는 해당 계측기의 그래픽 컨트롤 패널이 들어있습니다. 계측기가 컴퓨터에 정상적으로 연결되어 있으면, 그래픽 컨트롤 패널에서 필드를 클릭하여 계측기를 제어할 수 있습니다. 또한 숫자와 XY 디스플레이를 클릭하여 측정을 하고 결과를 디스플레이할 수 있습니다.

계측기가 컴퓨터에 연결되어 있지 않아도, 측정상태를 설정하기 위해서 그래픽 패널을 사용할 수 있습니다. 이 기능은 계측기를 구매하기 전에 또는 계측기를 사용하지 못할 때 프로그램을 개발할 수 있다는 점에서 큰 장점입니다.

예를 들어, 2 개의 서로 다른 신호를 출력하는 HP 3325B 펑션 제너레이터를 프로그램한다고 가정하겠습니다.:

1 주파수가 20 kHz이고 진폭이 20mV인 구형파형

2 주파수가 50 kHz이고 진폭이 50mV인 사인파형

다음 그림은 위의 파형을 생성하는 패널 드라이버 입니다.

컴포넌트 드라이버

계측기 드라이버에서, 계측기의 각 기능과 측정값을 컴포넌트라고 합니다. 컴포넌트는 기능설정과 측정값을 저장하는 드라이버 안에서 변수의 역할을 합니다. 따라서, Component Driver는 사용자가 입력터미날과 출력터미날로 지정한 컴포넌트만을 읽고 쓰는 오브젝트입니다. 패널 드라이버는 많거나 모든 컴포넌트에 대해서 자동으로 값을 쓰므로, 이 기능은 패널 드라이버와 대비됩니다.

Component Drivers는 프로그램의 실행 속도를 향상하기 위해서 제공됩니다. 컴포넌트 드라이버는 속도만이 패널 드라이버에 비해서 장점입니다. 프로그램의 실행속도는 일반적으로 계측기 제어 오브젝트가 반복하여 실행될 때 가장 큰 영향을 받습니다. 이러한 경우에는, 한 개 또는 두 개의 컴포넌트만이 변경되는 것이 일반적이며, 컴포넌트 드라이버가 가장 적절히 사용될 수 있는 경우입니다.

컴포넌트 드라이버에 의한 프로그램 속도향상 정도는 상황에 따라서 크게 다를 수 있습니다. 속도향상은 어떤 드라이버 파일을 사용했는가에 가장 많은 영향을 받습니다. 실행속도가 얼마나 향상되는지 정확하게 예측할 수 있는 쉬운 방법은 없습니다.

예를 들어, 다음 기능을 제공하기 위해서 HP 3325B 펑션 제너레이터를 프로그래밍 한다고 가정하겠습니다.

1 초기 주파수가 10 kHz 이며, 진폭은 사용자가 입력으로 제공하는 사인파형을 출력.

2 주파수 출력을 10 kHz 부터 1 MHz 까지 5 단계로 스윕.

이 경우, 초기 설정을 위해서는 패널드라이버를 사용하고, 반복하여 출력 주파수를 설정하는 부분에서는 컴포넌트 드라이버를 사용하는 것이 합리적입니다. 다음과 같이 프로그램할 수 있습니다.

추가 정보

VEE를 설정하는 방법에 대한 정보는 Help [image] Tell Me About ... 의 계측기 설정부분을 참조하십시오. Panel Driver 및 Component Driver 오브젝트를 사용하는 방법에 대한 추가.정보는 Panel Drivers 사용법 및 Panel Driver 동작을 참조하십시오.

레지스터-기반 VXI 계측기 지원

VXI 백플레인 상의 VXI 계측기를 직접 지칭하기 위해서 계측기 제어 오브젝트를 사용할 때, 어떤 계측기가 메시지 기반인지 또는 레지스터 기반인지 알아야 합니다. VEE는 SCPI (Standard Commands for Programmable Instruments)를 통해서 메시지 기반 계측기와 통신합니다.

VEE는 또한 대부분의 휴렛패커드 및 애질런트의 레지스터-기반 계측기에 해석된 SCPI(I-SCPI)를 지원합니다. I-SCPI 드라이버는 레지스터-기반 계측기와도 메시지-기반 계측기와 통신하는 것처럼 통신할 수 있습니다. 이것은, 특정 계측기용 I-SCPI 드라이버가 제공되는 경우에는, VEE가 표준 SCPI 메시지를 사용해서 레지스터-기반 계측기와 통신할 수 있음을 의미합니다. 레지스터-기반 계측기에 대해서 I-SCPI 드라이버가 제공되지 않는 경우에는, VEE는 그 계측기의 레지스터를 통해서 직접 계측기에 접근해야 합니다.

I-SCPI 드라이버가 제공되면 프로그래머가 선호하는 모든 계측기 제어용 오브젝트를 사용할 수 있는 유연성을 확보할 수 있습니다. 쉽게 프로그래밍하기 위해서 패널드라이버를 사용하거나, 빠른 실행속도를 위해서 Direct I/O 안에 SCPI 명령어를 사용할 수도 있습니다. SCPI 메시지를 사용하여 레지스터-기반 계측기와 통신하도록 프로그램 하면, VEE는 필요한 I-SCPI 드라이버가 없다고는 경고를 띠웁니다. 이 경우에는, Direct I/O 또는 MultiInstrument Direct I/O를 이용하여 계측기의 레지스터에 직접 접근해야 합니다.


Panel Drivers 사용법

VEE Panel Driver 오브젝트 및 Component Driver 오브젝트를 사용하기 위해서는 해당 Panel Driver ("ID")라 있어야 하고, 그 드라이버에 해당 계측기를 설정해야 합니다. 이들 계측기 드라이버를 "VEE drivers" 또는 "Instrument Drivers"라고 합니다. Panel Driver 파일(.cid 파일)이 제공되고 Panel Driver 또는 Component Driver 오브젝트를 사용하도록 설정되어야 합니다. 그러나, 이들 파일을 Direct I/O 또는 VXIplug&play 동작에는 사용할 수 없습니다.

Panel Driver 파일

각 Panel Driver 는 특정 계측기의 유일한 퍼스낼리티를 나타냅니다. Panel Driver 오브젝트 및 Component Driver 오브젝트를 이용하여 계측기를 제어하기 위해서는 드라이버 파일이 필요합니다.

Panel Driver 파일(.cid 파일)은 VEE를 설치할 때 선택하여 설치할 수 있습니다. 각 드라이버 파일은 기본적으로 2 가지 정보를 가지고 있습니다.:

• 계측기의 기능과 계측기를 설정하고 쿼리하는데 사용하는 명령에 대한 설명

• Panel Driver 오브젝트의 오픈뷰에서 제공되는 그래픽 컨트롤의 형태와 동작에 대한 설명

컴포넌트(Components)

내부적으로는, Panel Driver 오브젝트 및 Component Driver 오브젝트는 각 계측기 기능을 컴포넌트(component)형태로 가지고 있습니다. 컴포넌트의 이름은 프로그램 언어에서 보여지는 이름과 유사합니다.; 컴포넌트는 계측기의 기능설정 값이나 측정값을 저장하는데 사용됩니다.

다음 테이블은 HP 3478A 전압계의 일부 컴포넌트 입니다.:

컴포넌트 이름 | 계측기 기능
ARANGE | 자동 범위 설정을 On 또는 Off
FUNCTION | 측정기능을 전압, 전류 또는 저항으로 설정
TRIGGER | 트리거 소오스를 내부, 외부, 빠르게 또는 단일로 설정
READING | 가장 최근에 측정된 값

컴포넌트는 대화식으로 또는 프로그램을 통해서 접근할 수 있습니다. 대화식으로 접근하기 위해서는, Panel Driver의 오픈뷰에서 버튼이나 디스플레이를 클릭합니다. 프로그램을 통해서 접근하기 위해서는, 아래 예제에서와 같이, 컴포넌트를 입력이나 출력 터미날로 추가합니다. 컴포넌트를 사용하는 자세한 절차에 대해서는 "사용방법 선택" 및 "Component Driver를 프로그램에서 사용하기"를 참조하십시오.

상태(State)

계측기의 상태(state)는 특정 드라이버에서 컴포넌트의 값으로 표시됩니다. 전압계 드라이버에서 모든 컴포넌트를 AC 전압을 측정하도록 설정할 수 있습니다. DC 전류를 측정하기 위해서는 다른 설정 값을 사용할 수 있습니다. 이 경우에는 전압계가 2 가지 상태로 설정된 경우입니다. 다음 그림은 이들 설정에 대한 예제입니다.

VEE에서, Panel Driver의 각 인스턴스는 개별 측정상태를 나타냅니다. (Panel Driver 오브젝트를 "상태드라이버(state drivers)"라고 부르기도 합니다.) 하나의 프로그램 안에서 2 개 이상의 Panel Driver를 가질 수 있습니다. 각 Panel Driver는 동일한 실제 계측기를 유일한 특정 측정상태로 프로그래밍합니다.

계측기 Name이 동일하게 설정된 Panel Driver 오브젝트는 동일한 계측기와 통신합니다.

관련정보

Panel Driver-기반 I/O가 동작하는 방법, Panel Driver 동작, 사용방법 선택


Panel Driver-기반 I/O가 동작하는 방법

Panel Driver 또는 Component Driver 오브젝트를 프로그램에 배치하면, VEE는 메모리에 상태 레코드를 생성합니다. 이 상태 레코드는 계측기 Name에 따라서 달라집니다. Name는 "이름의 중요성"에서 상세히 설명되었습니다.

특정 Name을 참조하는 모든 드라이버-기반 오브젝트는 하나의 상태 레코드를 공유합니다. 상태 레코드는 계측기의 각 콤포넌트의 현재 값을 반영합니다. Panel Driver 또는 Component Driver 오브젝트를 이용하여 콤포넌트에 쓰면, VEE는 물리적인 계측기와 상태 레코드를 업데이트합니다.

Direct I/O 오브젝트를 이용하여 계측기에 쓰면, 상태 레코드는 더 이상 실제 계측기의 상태와 일치하지 않으므로 VEE는 상태 레코드가 유효하지 않다고 표시합니다. 그러나, 다시 Panel Driver 또는 Component Driver 오브젝트를 이용하면, VEE가 계측기의 상태를 복구하게 되어서 실제 계측기의 상태를 상태 레코드의 값과 동기화시킵니다.

Panel Driver 오브젝트와 Component Driver 오브젝트가 동작할 때는 중요한 차이가 발생합니다.

관련정보

Panel Drivers 사용법, Panel Driver 동작, 사용방법 선택


Panel Driver 동작

Panel Driver는 실제 계측기의 상태를 패널뉴에서 설정한 상태로 일치시키는데 필요한 명령만 계측기로 전송합니다.

필요하다면, Panel Driver는 리셋명령어를 보내서 해당 계측기의 모든 설정을 업데이트하기도 합니다. 이러한 내용은 Advanced Instrument Properties 대화상자: Panel Driver 탭에서 설명된 Incremental Mode의 설정에 따라서 실행됩니다.

Incremental Mode를 ON으로 설정하면, VEE는 현재 상태를 Panel Driver의 상태와 비교하여 어떤 컴포넌트가 변경되어야 하는지 결정합니다. VEE는 영향 받은 컴포넌트를 업데이트하기 위해서 필요한 명령만을 전송합니다.

Incremental Mode를 OFF로 설정하거나, 현재 상태가 유효하지 않으면, VEE는 변경할 상태와 실제 계측기의 상태의 동기를 보장하기 위해서, 각 컴포넌트를 업데이트하는 명령어를 명시적으로 보냅니다.

Panel Driver는 시퀀스 입력핀이 활성화되거나 오픈뷰에서 제어용버튼 중의 하나를 클릭하면 실행을 시작합니다.

Component Driver 동작

Component Driver가 동작하면, 입력터미날로 설정된 컴포넌트에만 쓰기를 하고, 출력터미날로 나타나는 컴포넌트로부터만 읽기를 합니다. 이런 이유로 Component Driver가 일반적으로 Panel Driver 오브젝트보다 빠르게 실행됩니다. Panel Driver는 특정 상태를 수집하기 위해서 여러 개의 컴포넌트에 쓰기를 합니다. 그러나, Component Driver는 지정된 컴포넌트에만 쓰기를 합니다.

컴포넌트는 터미날에 배치된 순서로 읽기 및 쓰기를 합니다. 다른 컴포넌트의 값에 따라서 컴포넌트의 값이 변경되어야 하는 경우에는 실행순서에 주의해야 합니다. 이러한 교차점을 커플링이라고 합니다. 컴포넌트 드라이버를 사용할 때는 이러한 커플링을 매뉴얼로 실행해야 합니다.

Multiple Driver 오브젝트

다음과 같이 여러 개의 오브젝트를 사용하는 상황에서는 혼란이 발생할 수 있습니다.:

• 동일한 계측기 이름을 사용

• 동일한 계측기주소를 사용

• 동일한 드라이버 파일을 사용

이름의 중요성 Instrument Properties 대화상자의 Name 필드는 각 계측기 오브젝트를 실제 계측기의 주소 및 다른 설정 정보에 논리적으로 매핑시킵니다. 각 오브젝트의 오브젝트 메뉴에서 Show Config를 클릭하여 계측기 오브젝트의 Name을 지정합니다. 오브젝트의 타이틀이 Name과 동일할 필요는 없습니다.

일반적으로, 하나의 Name만이 특정 계측기를 참조해야 합니다. 여러 개의 Name이 동일한 계측기를 참조하면 Panel Driver 오브젝트를 사용하는 프로그램에서 예기치 못한 상황이 발생할 수 있습니다. 계측기 상태를 가지는 VEE 내부 레코드는 Name으로 구성됩니다. 서로 다른 이름을 가지는 2 개의 Panel Driver 오브젝트는 맹목적으로 동일한 주소에 쓰게되므로, 다른 오브젝트가 쓴 상태레코드가 유효하지 않게 됩니다.

Direct I/O를 포함한 일부 경우에, 물리적으로 동일한 계측기에 대해서 2 개 이상의Name이 필요한 경우가 있습니다. Advanced Instrument Properties 대화상자의 Direct I/O 탭에서 특정 설정내용이 입출력 동작에 따라서 변경되어야 하면 동일한 계측기에 대해서 2 개 이상의 Name이 필요하게 됩니다.

예를 들어, 오실로스코우프로에 EOI를 활성화하여 명령을 전송해야 하기도하며, EOI 없이 명령을 보내야하기도 한다면, 하나의 계측기에는 Scope_EOI으로 Name을 지정하고, 다른 계측기에는 Scope으로 Name을 설정할 수 있습니다. Scope와 Scope_EOI가 동일한 주소로 설정되지만 END on EOL에 대해서는 다르게 설정될 수 있습니다.

메뉴에서 계측기 오브젝트를 선택하면 설정된 Name이 계측기 오브젝트의 타이틀에 디폴트로 표시됩니다. 타이틀을 편집해도 Name과 관련된 기능에는 영향을 주지 않습니다.

또한 Name은 계측기를 포함하는 프로그램을 저장하거나 열 때도 영향을 미칩니다. 프로그램을 저장하면, 각 프로그램 안의 계측기 오브젝트의 Name이 저장됩니다. 프로그램을 열면, VEE는 로딩될 각 계측기의 Name에 대한 I/O 설정을 참조합니다.

예를 들어, My_Scope 이름을 가지는 Direct I/O 오브젝트를 포함하는 프로그램을 저장하기 위해서는, 현재 I/O 설정에 My_Scope로 지정된 계측기가 있어야 합니다. Panel Driver 또는 Component Driver를 사용할 예정이라면, 현재 I/O 설정에 지정된 ID Filename(드라이버 파일)이 저장된 프로그램에서 사용된 이름과 일치해야 합니다.

Name은 대소문자를 구별하지는 않지만 공백을 포함한 스펠링이 정확히 일치해야 합니다.

드라이버 파일 재사용

동일한 드라이버 파일을 사용하는 서로 다른 이름을 가지는 여러 개의 오브젝틀 사용할 수 있습니다.(일반적이지는 않습니다.) 예를 들어, 서로 다른 주소를 가지지만 동일한 hp665x.cid 드라이버를 사용하는 3 개의 전원공급기에 각각 Supply1, Supply2, 및 Supply3 이름을 부여하여 측정시스템을 작성할 수 있습니다. Name이 다르므로, 각 이름에 대해서 별도의 상태 레코드를 관리합니다. Supply1 용 Panel Driver는 Supply2 또는 Supply3에 영향을 미치지 않습니다.

관련정보

Panel Driver-기반 I/O가 동작하는 방법, Panel Drivers 사용법, 사용방법 선택


계측기 설정 개요

계측기를 설정하기 위해서는, I/O [image] Instrument Manager를 실행하거나, 툴바의 Instrument Manager 버튼 [image] 을 실행합니다.

Instrument Manager 대화상자는 다음과 같이 표시됩니다. 계측기를 검색하여 추가할 때까지는 목록에 계측기가 없습니다.

Instrument Manager는 4 개의 그룹으로 구분되어 있습니다.:

• Auto Discovery 그룹에서는 계측기를 찾고 계측기 드라이버를 설정합니다. Find Instruments 버튼을 클릭하면, VEE는 자동으로 이미 설정된 모든 계측기를 업데이트하고 컴퓨터에 접속된 다른 계측기를 표시합니다. Settings 버튼을 클릭하면, Auto Discovery Settings 대화상자를 표시합니다.

• Instrument List에서는 현재 설정된 계측기를 표시합니다. 이 설정은 I/O 설정파일에 의해서 정의됩니다.(자세한 내용은 "I/O 설정 기술"을 참조하십시오.) 디폴트 설정은 공란(Blank)입니다.

• Instrument 그룹에서는 계측기 설정을 변경할 수 있습니다.

• Create I/O Object 그룹에서는 Direct I/O, Plug&play Driver, NI-DAQ Driver, IVI-COM Driver, Panel Driver, 및 Component Driver를 선택하여, 프로그램 작업영역에 배치할 수 있습니다.

관련정보

Auto Discovery, Instrument List, 계측기 설정, 계측기 이름변경


Auto Discovery

Auto Discovery 영역에는 3 개의 버튼이 제공됩니다.: Find Instruments, Configure Drivers 및 Settings.

• Find Instruments 버튼은 기존 계측기 설정을 업데이트하고 컴퓨터에 연결되었으나 설정되지 않은 계측기를 Instrument List에 추가합니다.

• Configure Drivers 버튼은 이미 발견되어 Instrument List에 표시되는 계측기에 대한 드라이버를 설정합니다.

• Settings 버튼은 어떻게 계측기와 드라이버가 검출되고 설정되는지 설정할 수 있습니다.

Instrument List에서 My Configuration을 하이라이트한 상태에서, Find Instruments를 클릭하면 모든 기존 계측기 설정을 업데이트하고 설정되지 않은 계측기를 이 목록에 추가합니다. 검출되고 전원이 인가된 계측기의 Live 모드는 On으로 설정됩니다.(설정된 계측기가 검출되지 않으면, Live 모드를 On 및 Off로 전환할 수 없습니다.)

Settings를 클릭하면, 계측기와 드라이버가 검출되고 설정되는지 설정하는 대화상자가 표시됩니다. 이 대화상자에는 2 개의 그룹이 있습니다.: Find Instruments 및 Instrument Identification

Find Instruments 그룹에는 2 개의 라디오 버튼이 제공됩니다.:

• Detect only

• Detect, identify, and configure drivers for each instrument.

"Detect only" 가 체크되면, Find Instruments를 클릭할 때, VEE는 모든 라이브 버스 주소를 검출합니다. "Detect, identify, and configure drivers for all instruments"를 체크하면, VEE는 모든 라이브 버스를 검출하고, 검출된 모든 계측기에 "*IDN?"을 전송하여, 각 계측기의 드라이버 설정을 시도합니다.

하단의 그룹은 Configure Drivers 버튼을 제어합니다. “Ask before sending "*IDN?" to each instrument?" 체크박스가 체크되면, 각 드라이버를 설정하기 전에, 설정을 계속할 지 문의하기 위해서 VEE가 중단됩니다. 이 체크박스를 체크하지 않으면, VEE는 각 드라이버를 자동으로 설정합니다.

관련정보

계측기 설정 개요, Instrument List, 계측기 설정, 계측기 이름변경


Instrument List

Find Instruments 버튼을 클릭하여 컴퓨터에 연결된 하나의 계측기를 찾았다면, Instrument Manager는 다음과 같이 표시됩니다. 이 예제에서는, Find Instruments 버튼을 실행하여 2 개의 계측기를 찾았다고 가정하겠습니다. 하나는 ASRL 인터페이스로 연결되어 있으며, 다른 하나는 GPIB 인터페이스를 통해서 연결되어 있습니다. 가장 최근에 발견된 계측기는 "newInstrument", "newInstrument1", 등으로 명명됩니다. 다음에서 설명하는 바와 같이, 좀더 알기 쉬운 이름을 제공할 수 있습니다.

Instrument Manager를 사용하기 위해서, GPIB0 인터페이스 선택항목을 클릭하십시오. 이 항목이 하이라이트 되면서, Properties 버튼이 활성화됩니다. GPIB0 앞의 [-] 아이콘을 클릭하여, 이것에 연결된 모든 항목을 축소합니다. 다음 그림은 축소된 설정입니다.

선택된 항목을 “확장”하기 위해서는, GPIB0 앞의 [+] 아이콘을 클릭합니다. (전체 트리를 확장하기 위해서는, My configuration을 선택하고 *키를 클릭합니다.) “newInstrument1” 이나 "instrument"를 클릭하면 대화상자는 아래와 같은 상태로 됩니다.

관련정보

계측기 설정 개요, Auto Discovery, 계측기 설정, 계측기 이름변경


계측기 설정

Instrument List에서 계측기를 하이라이트하면, Instrument 그룹 안의 Properties버튼을 포함하여 모든 버튼이 활성화됩니다. 이것은 기존 계측기의 설정을 삭제, 편집 또는 매뉴얼로 설정하거나 목록에 새로운 계측기를 추가할 수 있다는 것을 의미합니다.

또한, Create I/O Object 그룹의 버튼 중의 1개도 활성화되었습니다. 이것은 해당 계측기에 대해서 Direct I/O Object를 사용할 수 있음을 의미합니다. 다른 계측기에 대해서는 어떤 드라이버를 설치했는가에 따라서, Plug&play Driver, NI-DAQ Driver, IVI-COM Driver, Panel Driver, 및 Component Driver 버튼이 활성화될 수 있습니다.

Configure Drivers 버튼을 클릭하여 계측기 설정을 업데이트합니다. Identify Instrument 대화상자가 표시되고 계측기에 *IDN?(식별)메시지를 보낼 것인지 질의합니다. 다음 그림은 Identify Instrument 대화상자입니다.

Yes를 클릭합니다. GPIB 인터페이스에 연결된 계측기에 전원이 인가되어 있으면 계측기가 응답합니다. 이 예제에서 사용하는 계측기는 AG 33220a이고 전원이 인가되어 있습니다. 다음 그림은 이 시점에서 Instrument List에 표시되는 내용을 설명하고 있습니다.

다음 2 가지 내용이 변경되었습니다.:

1 계측기 식별자가 newInstrument(ag33220a@GPIB0::10::INSTR)로 변경되었습니다.

2 newInstrument(ag33220a@GPIB0::10::INSTR) 앞의 "instrument" 아이콘이 변경되어서 계측기가 컴퓨터에 연결되었음을 나타냅니다.

(계측기에 전원이 인가되지 않았으면, 식별내용과 아이콘이 변경되지 않습니다.)

관련정보

계측기 설정 개요, Auto Discovery, Instrument List, 계측기 이름변경


계측기 이름변경

계측기가 식별되면, Instrument List 안에 표시되는 계측기에 보다 의미있는 이름을 부여할 수 있습니다. Properties 버튼을 클릭하면 계측기의 이름을 변경할 수 있습니다. Properties 대화상자가 표시되면, Name 필드를 클릭하여 임의의 이름을 입력합니다. 다음 그림은 ag33220a 계측기에 할당된 "newInstruments"를 "Funcgen"로 변경하는 사례입니다.

OK 버튼을 클릭하여 변경을 적용합니다. 다음 그림은 새로운 이름 ag33220a를 부여한 상태의 Instrument List 입니다.

계측기 설정 추가

계측기를 추가하기 위해서는 Add...버튼을 클릭합니다. Instrument Properties 대화상자가 다음과 같이 표시됩니다.

디폴트로, 새로 추가되는 계측기에는 newInstrument 이름이 부여됩니다. 새로운 이름, 예를 들어 dmm을 입력할 수 있습니다. Interface 필드에는 GPIB가 설정을 유지하십시오. (인터페이스 타입을 변경하기 위해서는, GPIB 오른쪽의 삼각형을 클릭하여 드롭다운 목록을 표시합니다.) VISA Address 필드를 클릭하여 GPIB::20::INSTR와 같이 주소를 입력합니다. 다음 그림은 이러한 변경이 반영된 Instrument Properties 대화상자입니다.

주의

대화상자에서 필드와 필드 사이를 이동하기 위해서는 해당 필드를 클릭하거나, Tab 키를 이용합니다. Enter 또는 Return을 누르면 대화상자를 빠져나갑니다.

Advanced... 버튼을 클릭하여 Advanced Instrument Properties 대화상자를 표시합니다.

이 대화상자의 General 탭에서는 타임아웃 시간, 라이브 모드를 On 또는 Off, 바이트 순서 선택 및 설명을 입력할 수 있습니다. Description 필드를 클릭하여 ag34401를 입력하십시오.

주의

Instrument Properties 대화상자 및 Advanced Instrument Properties 대화상자의 개별필드에 대한 자세한 내용은 "Properties 대화상자의 상세내용"를 참조하십시오.

Advanced Instrument Properties 대화상자에 표시되는 탭 및 필드는 선택한 인터페이스에 따라서 달라집니다.

IVI-COM Driver 탭을 선택하여 대화상자를 표시합니다. IVI-COM Driver/Session Name 드롭다운 목록에서 Agilent33220을 선택합니다. 이 드라이버를 미리 설치하지 않았으면 여기서 . IVI-COM Driver를 선택할 수 없습니다.

각 대화상자에서 OK 버튼을 클릭하여 Instrument Manager로 돌아갑니다.

여기서 Save 버튼을 클릭하여 새로운 설정을 저장합니다.

관련정보

계측기 설정 개요, Auto Discovery, Instrument List, 계측기 설정


Direct I/O 오브젝트 설정

다음 예제는 Direct I/O 오브젝트를 설정하는 방법을 설명합니다. 이 예제에서, 논리주소가 1인(COM1) 씨리얼 계측기와 직접 입출력하기 위해서 설정합니다.

1 My Configuration 선택하십시오.

2 Find Instruments를 클릭하십시오.

3 Find Instruments가 완료되면 newInstrument(@ASRL1::INSTR)를 하이라이트하고, Instrument 그룹 안의 Properties를 클릭하십시오.

4 대화상자가 다음과 같이 출력됩니다.

Instrument Properties 대화상자에서는 새로운 계측기의 이름과 주소를 설정할 수 있습니다. 이름을 Serial1으로 변경하십시오.

Advanced...를 클릭하면 Advanced Instrument Properties 대화상자가 표시됩니다. 이중에서 2 개의 탭의 내용을 변경해야 합니다.

Serial 탭에서는 보드 레이트 등의 씨리얼 인자를 지정합니다. 개별 인자 및 필드 등에 대한 추가 내용은 "Properties 대화상자의 상세내용" 을 참조하십시오. 대부분의 어플리케이션에서 이들 항목의 디폴트 값을 이용할 수 있습니다.

Direct I/O 탭에서는 EOL 문자를 포함하여 직접 입출력에 필요한 여러 가지 인자를 설정할 수 있습니다. 대부분의 어플리케이션에서 이들 항목의 디폴트 값을 이용할 수 있습니다.

주의

Direct I/O 탭에 표시되는 필드의 종류는 선택한 인터페이스의 종류에 따라서 변경됩니다. 또한, VXI의 경우에는, 2 개의 탭, A16 Space 및 A24/A32 Space이 추가됩니다.

이들 탭에서는 Direct I/O 오브젝트의 WRITE 트랜잭션이나 READ트랜잭션에서 VXI 계측기의 레지스터를 설정할 수 있습니다. 각 탭에 표시되는 여러 필드에 대한 자세한 내용은 "Properties 대화상자의 상세내용" 를 참조하십시오.

각 대화상자에서 OK(변경을 취소하기 위해서는 Cancel)을 클릭하면 Instrument Manager 대화상자로 리턴됩니다. 이 예제에서는, 새로운 계측기, Serial1가 ASRL1 인터페이스에 설정되었습니다. Direct I/O 버튼을 클릭하여 작업영역에 Direct I/O 오브젝트를 추가하면 다음 그림과 같이 표시됩니다.

주의

Direct I/O 오브젝트는 계측기와 통신하기 위해서 인스트루먼트 드라이버 없이 트랜잭션-기반 입출력시스템을 사용합니다. Direct I/O 오브젝트의 사용을 참조하십시오.


VXIplug&play 드라이버 설정

To/From VXIplug&play 오브젝트를 설정하는 절차는 Direct I/O 오브젝트 설정절차와 매우 유사합니다. 그러나, VXIplug&play 소개에서 설명한 바와 같이 먼저 VXIplug&play 드라이버 파일을 설치해야 합니다.

주의

윈도우 운영시스템을 사용하고 있으면, VISA Assistant 유틸리티가 VXIplug&play 드라이버에 대한 유용한 정보를 제공합니다. 이 정보를 이용하여 VXIplug&play 드라이버 설정에 필요한 유효한 주소를 결정할 수 있습니다. 윈도우 시작 메뉴에서 Program Files Agilent I/O Libraries VISA Assistant를 클릭하면 VISA Assistant가 실행됩니다.

예를 들어, ag33250a Function Generator에 대한 VXIplug&play 드라이버를 추가하려고 합니다. I/O Instrument Manager를 실행하고 Add...를 클릭하면 Instrument Properties 대화상자가 표시됩니다. 이름을 gpibDevice로 변경하고 인터페이스 타입으로는 GPIB를 선택합니다. VISA Address를 클릭하여 계측기의 VISA 주소를 입력합니다. GPIB::22::INSTR 등의 형태로 입력합니다.

Advanced... 를 클릭하여 Advanced Instrument Properties 대화상자를 출력하고, Plug&play Driver 탭을 선택합니다.

다음은, Plug&play Driver Name 드롭다운 목록에서 AG33250A를 선택합니다. 이전에 VXIplug&play 드라이버를 설치하지 않았으면, 드라이버를 선택할 수 없습니다.

주의

VXIplug&play 드라이버를 설정하기 위해서는 Plug&play Driver 탭만 사용하면 됩니다. General, Direct I/O, Panel Driver, A16 Space, 및 A24/A32 Space 탭은 VXIplug&play 설정에 영향을 미치지 않습니다. 예를 들어, VXIplug&play 계측기는 항상 연결되어 있다고 간주되므로, General 탭의 Live Mode 설정은 무시됩니다.

계측기를 설정하였으면, 각 대화상자에서 OK 버튼을 클릭하여 Instrument Manager로 리턴합니다. 추가된 계측기가 다음과 같이 표시됩니다.

Plug&play Driver 버튼을 클릭하여 To/From VXIplug&play 오브젝트를 추가합니다.

To/From VXIplug&play 오브젝트를 사용하는 방법에 대해서는 "To/From VXIplug&play 오브젝트 사용법"를 참조하십시오.


Properties 대화상자의 상세내용

이 절에서는 Instrument Properties 대화상자, Advanced Instrument Properties 대화상자, Interface Properties 대화상자의 상세 내용을 설명합니다.

Instrument Properties 대화상자

Instrument Properties 대화상자는 Instrument Manager에서 계측기를 선택하고 Add... 버튼이나 Properties 버튼을 클릭하면 표시됩니다. 다음 그림은 이 대화상자의 사용사례입니다.

다음 절에서는 각 필드가 설명됩니다.

Name 필드

VEE 계측기 제어 오브젝트에서는 각 계측기 설정을 유일하게 식별하는 Name 필드가 제공되어야 합니다. 계측기 Name은 계측기 제어 오브젝트와 계측기 설정을 이름으로 연결하는 링크 심볼입니다. 일반적으로, 이 필드에는 계측기에 의미를 부여할 수 있는 이름을 사용합니다. 예를 들어 Oscilloscope 또는 Power_Supply등과 같이 입력합니다.

이 속성을 프로그램에서 get/set하기 위해서는 Name은 VEE의 유효한 변수 이름을 사용해야 합니다. 즉, 이름변수는 영문 알파벳으로 시작하고 숫자나 언더스코어를 포함할 수 있습니다.

Names은 반드시 유일해야 합니다. 예를 들어, 동일한 이름을 가지는 계측기를 설정할 수 없습니다. 동일한 계측기에 서로 다른 2 개의 이름을 부여할 수는 있지만, 동일한 프로그램에서 Panel Drivers와 VXIplug&play에 같은 이름을 사용하면 문제가 발생할 수 있습니다.

계측기 제어 오브젝트에 표시되는 타이틀과 계측기의 Name필드의 내용을 혼동하지 마십시오. 계측기 제어 오브젝트의 디폴트 타이틀은 이름입니다. 그러나 타이틀을 변경할 수 있으며, 타이틀을 변경하더라도 Name 필드의 내용에는 영향이 없습니다. 계측기 제어 오브젝트의 특정 인스턴스의 Name을 지정하기 위해서는 계측기 제어 오브젝트 메뉴(예, Direct I/O, MultiInstrument I/O)에서 Properties을 선택합니다.

주의

Names을 정확히 사용하는 것은 중요합니다. 이 절에서는 일반적인 상황만 설명합니다. VEE가 Names을 사용하는 것에 대한 더 상세한 내용은 Panel Driver 동작을 참조하십시오.

Board Number, VISA Alias, VISA Address, 및 Advanced.. 필드의 자세한 내용에 대해서는 Instrument Properties 대화상자를 참조하십시오.

관련정보

Advanced Instrument Properties 대화상자: General 탭, 논리주소 및 I/O 어드레싱, I/O 설정 기술


Advanced Instrument Properties 대화상자: General 탭

다음 그림은 Advanced Instrument Properties 대화상자의 General 탭 설정예제입니다.

다음 절에서는 각 필드가 설명됩니다.

주의

General 탭에서 설정한 인자는 Direct I/O, Panel Driver 및 Component Driver 오브젝트에는 적용되지만, To/From VXIplug&play 오브젝트에는 적용되지 않습니다.

Timeout (sec) 필드

Timeout 필드는 계측기로부터 응답을 하지 않아서 에러를 발생하기 까지 기다리는 시간을 지정합니다. 디폴트 값은 5 초이며, 대부분의 어플리케이션에서 잘 적용됩니다.

일반적으로, 이 필드의 값을 0 으로 설정해서는 안됩니다. 이 필드를 0 으로 설정하면, VEE는 타임아웃을 감지하기 않습니다. 레지스터 또는 메모리로 접근하는 VXI 계측기에 대한 일부 Direct I/O 트랜잭션은 타임아웃을 지원하지 않습니다.

Live Mode 필드

Live Mode 필드는 지정된 주소의 계측기와 통신할 것인지 그렇지 않을 것인지를 지정합니다. 현재 사용중인 컴퓨터에 연결된 계측기와 통신하기 위해서는 Live Mode를 ON으로 설정해야 합니다.

Live Mode가 OFF이면, 계측기와 쓰기 및 읽기를 하는 Panel Drivers, Component Drivers, 또는 Direct I/O 오브젝트를 가지는 프로그램을 실행할 수 있습니다. 그러나, 실제 계측기와 통신을 하지는 않습니다. 계측기를 사용할 수 없는 상황에서 프로그램을 개발하거나 디버깅 할 때 이 기능을 유용하게 사용할 수 있습니다.

Byte Ordering 필드

계측기가 바이너리 데이터를 읽거나 쓰는 순서를 지정하기 위해서 이 필드를 이용합니다. 바이트 스와핑이 필요하면 VEE가 이 필드를 사용합니다. 이 필드를 클릭하여 MSB (가장 중요한 바이트를 먼저 전송) 와 LSB (가장 중요하지 않은 바이트를 먼저 전송)를 선택합니다. 모든 IEEE 488.2-호환 계측기는 디폴트로 MSB 입니다. 자세한 내용은 각 계측기의 매뉴얼을 참조하십시오.

Description (선택항목) 필드

일반적으로 Description 필드는 제조사의 모델번호를 기록하는데 사용합니다. 예를 들어, HP 54504A 오실로스코우프에 대한 Description은 hp54504a로 작성할 수 있습니다. 이 필드는 단지 편리성을 위해서 제공되며, VEE가 사용하지는 않습니다.


Advanced Instrument Properties 대화상자: Direct I/O 탭

다음 그림은 Advanced Instrument Properties 대화상자의 Direct I/O 탭 설정예제입니다.(GPIB 인터페이스를 사용하는 경우에 대해서 표시되어 있습니다.)

다음 절에서는 각 필드가 설명됩니다.

주의

VXI계측기를 VXI 백플레인에서 직접 접근할 때, 해당 계측기에 대한 I-SCPI 드라이버가 제공되면, 레지스터-기반 계측기를 제어하는데 SCPI 메시지를 이용할 수 있습니다. 필요한 I-SCPI 드라이버가 제공되지 않으면 VEE는 해당 드라이버가 없음을 표시합닏.

I-SCPI 드라이버가 제공되지 않으면, 계측기 레지스터 또는 메모리에 직접 읽기/쓰기 접근 방식으로 레지스터-기반 계측기를 제어해야 합니다. 자세한 내용은 "Advanced Instrument Properties 대화상자: A16 Space (VXI Only) 탭" 또는 "Advanced Instrument Properties 대화상자: A24/A32 Space (VXI 용) 탭"를 참조하십시오.

Read Terminator 필드

Read Terminator 필드는 READ 트랜잭션을 종료하는 문자를 지정합니다. 이 필드에 입력되는 내용은 더블인용부호로 감싼 하나의 문자입니다. “더블인용부호”는 ASCII 34 십진수 입니다. VEE는 모든ASCII 문자 뿐만 아니라 이스케이프 문자를 Read Terminator로 사용할 수 있습니다.

계측기에서 사용하는 종료문자와 동일한 문자를 여기서 지정해야 합니다. 대부분의 GPIB 계측기는 컴퓨터로 데이터를 보낸 후 Newline을 전송합니다. 자세한 내용은 각 계측기의 프로그래밍 매뉴얼을 참조하십시오.

Escape 문자 | ASCII 코드 (십진수) | 의미
\n | 10 | 새로운 라인
\t | 9 | 수평 탭
\v | 11 | 수직 탭
\b | 8 | 백스페이스
\r | 13 | 엔터
\f | 12 | 폼피드
\" | 34 | 더블 인용부호
\' | 39 | 단일 인용부호
\\ | 92 | 백슬래시
\ddd |  | 3 자리 8 진수 ddd에 대응되는 ASCII 문자

Write EOL Sequence 필드

EOL Sequence 필드는 EOL ON를 사용하는 WRITE 트랜잭션의 끝에 전송되는 문자입니다. 이 필드의 입력값은 더블인용부호로 감싼 0 개 이상의 문자이어야 합니다. “더블인용부호”는 ASCII 34 십진수 입니다. VEE는 모든ASCII 문자뿐만 아니라 위 테이블의 이스케이프 문자를 Read Terminator로 사용할 수 있습니다.

Write Multi-field As 필드

Multi-field As 필드는 WRITE TEXT 트랜잭션용 다중-필드 데이터 타입에 대한 포맷 스타일을 지정합니다. VEE에서 다중-필드 데이터 타입은 Coord, Complex, PComplex, 및 Spectrum입니다. 다른 데이터 타입과 다른 포맷은 이 설정에 의해서 영향 받지 않습니다.

(...)의 형태로 다중-필드 포맷을 지정할 때는 각 필드를 괄호로 감싸야 합니다. Data Only형태로 지정하면 괄호를 사용하지는 않지만, 구분 콤마는 사용해야 합니다. 예를 들어, 복소수 2+2j 는 (...) 구문을 사용하여 (2,2)로 표시하거나 Data Only 구문을 사용하여 2,2로 표시할 수 있습니다.

Write Array Separator 필드

Array Separator 필드는 WRITE TEXT 트랜잭션에 의해서 작성된 어레이 앨리먼트를 구분하는 문자 스트링을 지정합니다. 이 필드에서 입력되는 내용은 더블인용부호로 감싼 하나의 문자이어야 합니다. “더블인용부호”는 ASCII 34 십진수 입니다. VEE는 모든ASCII 문자뿐만 아니라 위 테이블의 이스케이프 문자를 Read Terminator로 사용할 수 있습니다.

어레이를 쓰는 Direct I/O 오브젝트에서 WRITE TEXT STR 트랜잭션은 특별한 경우입니다. 이 경우에는, Array Separator 필드의 값은 무시되고, 어레이의 앨리먼트를 구분하기 위해서 사용하는 문자는 라인피드 문자(ASCII 10 십진수)입니다. 이것은 대부분의 계측기에서 적용됩니다.

VEE는 다중-필드 데이터타입을 허용합니다. 예를 들어, Complex 데이터의 어레이를 생성할 수 있습니다. 이 경우, Multi-Field 포맷이 (...) 구문으로 설정되어 있으면, 어레이는 다음과 같이 작성됩니다.:

   (1,1)array_sep(2,2)array_sep ...

여기서 array_sep은 Array Separator 필드에서 지정한 문자입니다.

Write Array Format 필드

Array Format 필드는 다중어레이가 작성되는 방법을 지정합니다. 예를 들어, 수학에서는 매트릭스를 다음과 같이 씁니다.:

   1 2 3 4 5 6 7 8 9

VEE는 동일한 매트릭스를, Array Format설정에 따라서, 다음 2 가지 방법중에서 한가지로 씁니다. 다음 예제에서 EOL Sequence는 "\n" (새로운 라인)으로 Array Separator는 " " (공백)으로 설정되었습니다.

   1 2 3 블록 어레이 포맷

   4 5 6

   7 8 9

1 2 3 4 5 6 7 8 9 선형 어레이 포맷

이들 어레이 포맷은 어레이 앨리먼트를 Array Separator 문자로 구분합니다. Block Array Format은 EOL 문자를 이용하여 어레이 안의 각 열을 구분하기 위해서 추가 단계를 취합니다.

더욱 일반적인 경우(어레이가 2 차원 이상인 경우)에는, Block Array Format은 가장 우측의 서브스크립트 대신 각 서브스크립트가 변경될 때마다 EOL 문자를 출력합니다. 다음 트랜잭션을 이용하여 Block array format으로 3 차원 어레이 A[x,y,z]를 쓰면:

   WRITE TEXT A

x 또는 y가 값을 변경할 때마다 EOL 문자가 출력됩니다. A가 2 차원이면, 각 앨리먼트는 다음 순서로 작성됩니다.:

   A[0,0,0] A[0,0,1]<EOL 문자>

A[0,1,0] A[0,1,1]<EOL 문자>

<EOL 문자>

A[1,0,0] A[1,0,1]<EOL 문자>

A[1,1,0] A[1,1,1]<EOL 문자>

A[0,1,1]가 작성된 다음, x와 y는 동시에 변경되며, 따라서 2 개의 <EOL 문자>가 작성됩니다.

Write END (EOI) On EOL 필드(GPIB 만)

END on EOL는 EOI(End Or Identify)의 행위를 제어합니다. END on EOL가 YES이면, EOI 라인은 다음 상황에서 마지막 데이터 바이트가 쓰일 때 버스에서 활성화됩니다.:

1 EOL ON으로 설정된 WRITE 트랜잭션이 실행될 때.

2 WRITE 트랜잭션이 Direct I/O 오브젝트에서 맨 마지막을 실행될 때

3 하나 이상의 WRITE 트랜잭션이 EOI를 활성화하지 않고 실행되고, READ등의 WRITE 이외의 트랜잭션이 그 다음에 실행될 때.

대부분의 계측기가 EOI 또는 newline을 메시지 종료문자로 사용합니다. 일부 블록전송에서는 EOI를 사용해야 합니다. 자세한 사항은 각 계측기 매뉴얼을 참조하십시오.

Conformance 필드

Conformance는 계측기가 IEEE 488.1 또는 IEEE 488.2 표준과 호환되는지 정의합니다. 현재 사용중인 계측기가 어떤 표준에 호환되는지 각 매뉴얼을 참조하여 이 필드를 적절하게 설정하십시오.

이들 표준은 GPIB 인터페이스에 대한 통신 프로토콜을 지정합니다. 그러나, IEEE 488.2은 IEEE 488.1에서 확정되지 않았던 블록헤더와 런스트링 규칙을 지정합니다. I-SCPI 드라이버에 의해서 지원되는 레지스터-기반 VXI 계측기 뿐만 아니라 모든 메시지-기반 VXI 계측기는 IEEE 488.2 호환입니다.

Conformance를 IEEE 488(IEEE 488.1를 의미)로 지정하면, 다음 절에서 설명하는 바와 같이, 블록 헤더 및 런스트링에 대해서 추가 설정해야 합니다.

Binblock 필드

Binblock 필드는 WRITE BINBLOCK 트랜잭션에서 사용하는 블록데이터 포맷을 지정합니다. Binblock에서는 IEEE 728 #A, #T, 또는 #I를 지정할 수 있습니다. Binblock이 None이면, WRITE BINBLOCK은 IEEE 488.2 Definite Length Arbitrary Block Response Data 블록을 씁니다.

IEEE 728 블록 헤더는 다음 형태입니다.:

#A<Byte_Count><Data>

#T<Byte_Count><Data>

#I<Data><END>

여기서:

<Byte_Count>는 <Data>의 바이트의 개수를 표시하는 16-비트 부호 없는 정수입니다.

<Data>는 임의의 바이트의 스트림입니다.

<END>는 마지막 바이트가 전송되면서 활성화되는 EOI를 나타냅니다.

State (Learn String) 필드

State 필드는 계측기가 런스트링을 업로드 또는 다운로드하도록 설정되었는지 나타냅니다. State 필드가 Not Config'd로 되어 있는 상태에서 Not Config'd을 클릭하면, Upload String 필드 및Download String 필드가 표시됩니다. State 필드가 Not Config'd이면, Upload String 필드 및Download String 필드는 널스트링입니다.

Upload String 필드

Upload String 필드는 Direct I/O 오브젝트 메뉴에서 Upload State를 선택할 때 계측기로 전송되는 명령어를 지정합니다. 계측기가 런스트링을 출력하는 명령어를 지정하십시오. 자세한 내용은 각 계측기 매뉴얼을 참조하십시오. 입력 내용을 더블인용부호로 쌓아야 합니다.

Download String 필드

Download String 필드는 Direct I/O 오브젝트에서 WRITE STATE 트랜잭션의 결과로서 런스트링 바로 전에 계측기로 전송되는 스트링을 지정합니다. 이 필드는 런스트링을 다운로드할 때 접두명령어가 필요한 계측기를 지원하기 위해서 제공됩니다. 자세한 내용은 각 계측기의 프로그래밍 매뉴얼을 참조하십시오.


Advanced Instrument Properties 대화상자: Plug&play Driver 탭

다음 그림은 Advanced Instrument Properties 대화상자의 Plug&play Driver 탭 설정예제입니다.(GPIB 인터페이스를 사용하는 경우에 대해서 표시되어 있습니다.)

Plug&play Driver 탭은 VXIplug&play 드라이버 설정에만 적용됩니다.

다음 절에서는 각 필드가 설명됩니다.

Plug&play Driver Name 필드

이 필드는 VXIplug&play 드라이버의 이름을 지정합니다. 드롭다운 목록을 클릭하면 설치된 모든 드라이버가 표시됩니다. 이 목록에 해당 드라이버가 표시되지 않으면, VXIplug&play 드라이버를 설치하지 않았거나, 레지스트리 또는 환경변수가 적절히 설치되지 않은 경우입니다.

Parameters to init() call 필드

Address

계측기를 식별하는 주소를 입력합니다. 주소 포맷은 계측기가 연결된 인터페이스의 종류에 따라서 달라집니다.:

  • VXI 주소 스트링 (임베디드 VXI, VXLink, 또는 MXIbus 컨트롤러).

    임베디드 VXI, VXLink, 또는 MXIbus 컨트롤러는 다음 형태의 주소를 가집니다.

    VXI[board]::VXI 논리주소[::INSTR]

    예를 들어, 논리주소가 24이면 주소는 VXI::24::INSTR 입니다.

    첫 번째 보드에 대해서 board 번호는 선택사항입니다. (VXI::24::INSTR는 VXI0::24::INSTR와 동일합니다). 그러나, 이 후의 보드에 대해서는 board 번호를 사용해야 합니다.(VXI1, VXI2, 등).

  • • GPIB-VXI 주소 스트링 (명령 모듈).

    명령 모듈에 연결된 GPIB로부터 제어되는 VXI 계측기의 주소 스트링은 다음과 같은 형태입니다.:

    GPIB-VXI[board]::VXI 논리주소 [::INSTR]

    예를 들어, VXI 논리주소 24인 계측기의 주소 스트링은GPIB-VXI::24::INSTR (또는 GPIB-VXI0::24::INSTR) 입니다.

  • • GPIB 주소 스트링 (GPIB 계측기).

    GPIB 카드로부터 제어되는 VXI이외의 계측기의 주소 스트링은 다음과 같습니다.:

    GPIB[board]::GPIB 1차 주소::[GPIB 2차 주소][::INSTR]

    1차 주소가 23인 GPIB 계측기의 주소 스트링은 GPIB::23::INSTR (또는 GPIB0::23::INSTR) 입니다. (선택항목인 2차 주소는 거의 사용하지 않습니다.)

Perform Identification Query

이 드라이버의 기능 패널이 처음 실행될 때 계측기 식별명령어를 쿼리하도록 하기 위해서는 이 체크상자를 체크합니다. 이 기능을 지원하지 않는 계측기를 사용하는 경우를 제외하고는 이 체크상자를 체크하여 사용하는 것이 좋습니다.

Perform Reset

이 드라이버의 기능 패널이 처음 실행될 때 계측기 리셋 명령어를 전송하도록 하기 위해서는 이 체크상자를 체크합니다. 이 기능을 지원하지 않는 계측기를 사용하는 경우를 제외하고는 이 체크상자를 체크하여 사용하는 것이 좋습니다. 모든 VXI 계측기는 이 기능을 지원합니다.

Download Drivers

드라이버가 필요하거나 드라이버를 업데이트하기 위해서는 Advanced Instrument Properties 대화상자에서 URL 을 클릭하십시오.


Advanced Instrument Properties 대화상자: Panel Driver 탭

다음 그림은 Advanced Instrument Properties 대화상자의 Panel Driver 탭 설정예제입니다.

주의

VXI 계측기가 I-SCPI 드라이버만 지원하면 레지스터-기반 VXI 계측기를 메시지-기반으로 설정할 수 있습니다.

이 탭은 Panel Driver 및 Component Driver 오브젝트를 설정하는데 사용합니다. 다음 절에서는 각 필드가 설명됩니다.

ID Filename 필드

ID Filename 필드는 사용할 Panel Driver를 가지고 있는 파일을 지정합니다. 이 필드를 클릭하면 Read from what Instrument Driver? 대화상자가 출력되어, 하나의 파일을 선택할 수 있습니다. 계측기 모델명으로 파일이름이 작성되어 있습니다.

사용하려는 계측기 모델과 일치하는 이름을 선택하십시오. hp3325a.cid 및 hp3325b.cid 등에서는 파일이름이 혼동될 수 있습니다.

Sub Address 필드

Sub Address 필드는 데이터수집 시스템이나 스위치등의 카드케이지 타입의 계측기에서 플러그 인 모듈을 식별하는데 사용하는 서브어드레스를 지정합니다. 이들 플러그인 모듈을 설정하지 않을 것이면, 필드에 “”(널 스트링)을 입력하십시오.

주의

대부분의 드라이버가 서브어드레스를 이용하지 않으므로, 대부분의 경우 이 필드를 “”(널 스트링)으로 설정하여 사용하면 됩니다.

이 필드를 플러그인 모듈을 사용하도록 설정하려면, 서브어드레스가 사용되는지 및 어떻게 설정하는지에 대해서는 해당 계측기 드라이버의 온라인 도움말을 참조하십시오.

주의

서브어드레스를 GPIB 계측기의 2차 주소와 혼동하지 마십시오. 서브어드레스는 드라이버 설정의 일부분입니다. 하드웨어 주소의 일부가 아닙니다.

Error Checking 필드

Error Checking 필드는 컴포넌트 값을 설정 후에 에러에 대해서 VEE가 계측기로 쿼리할지 그렇지 않은 지를 설정합니다. 실행속도가 문제되지 않는다면 이 필드를 ON으로 설정하여 사용하십시오.

Incremental Mode 필드

Incremental Mode 필드는 Panel Driver 드라이버 오브젝트와 인크리멘털 상태 리콜이 사용되는지 그렇지 않은지를 지정합니다.

주의

대부분의 상태에서 Incremental Mode는 ON입니다.

Incremental Mode이 ON으로 설정되면, VEE는 자동으로 계측기의 상태를 변경하기 위해서 전송하는 명령어의 개수를 최소화합니다. 이것을 위해서는, VEE는 계측기의 현재 상태를 Panel Driver에서 지정한 새로운 상태와 비교합니다.

VEE는 어떤 컴포넌트 설정이 다른지 비교하고, 컴포넌트 변경에 필요한 명령만을 전송합니다. 이 Incremental Mode를 ON으로 설정한 상태에서 가장 빠른 실행속도를 제공하므로, 대부분의 경우에서 Incremental Mode를 ON으로 설정해야 합니다.

Incremental Mode가 OFF로 설정되면, VEE는 Panel Driver가 실행될 때, 각 컴포넌트의 값을 명확하게 설정합니다. VEE가 저장하고 있는 계측기 상태가 실제 상태와 일치하지 않을 때 이 모드를 사용합니다.

Incremental Mode 설정은 Panel Driver 오브젝트의 동작에 영향을 미치지만, Component Driver 오브젝트에는 영향을 미치지 않습니다. 다음의 상황에서 Incremental Mode를 OFF로 설정하는 것이 좋습니다.:

• VEE 프로그램이 계측기를 제어하고 있는 상태에서 계측기의 전면판에서 동작을 허용하는 경우.

• VEE 프로그램이 계측기를 제어하고 있는 상태에서 VEE 이외의 환경에서 C 프로그램이나 쉘 명령어로 계측기 설정을 변경하는 경우

Component Drivers, Panel Drivers, 및 Direct I/O 오브젝트를 혼합하여 사용하는 경우라도 Incremental Mode를 OFF로 설정할 필요는 없습니다.


Advanced Instrument Properties 대화상자: Serial 탭

다음 그림은 Advanced Instrument Properties 대화상자의 Serial 탭 설정예제입니다.(씨리얼 인터페이스에 대해서만 제공됩니다.)

씨리얼(RS-232) 인터페이스에 대해서 다음 필드를 설정할 수 있습니다.:

• Baud Rate – 디폴트 값은 9600 (초당 비트 수)입니다.

• Character Size – 디폴트 값은 8 (비트)입니다. 허용되는 값은 5, 6, 7, 8, 및 None입니다.

• Stop Bits – 디폴트 값은 1. 허용되는 값은 1 및 2입니다.

• Parity – 디폴트 값은 None입니다. 허용되는 값은 None, Odd, Even, Mark, 및 Space입니다.

• Handshake – 디폴트 값은 None입니다. 허용되는 값은 None 및 Xon/Xoff 입니다.

• Receive Buffer Size – 디폴트 값은 4096 (바이트)입니다.


Advanced Instrument Properties 대화상자: GPIO 탭

다음 그림은 Advanced Instrument Properties 대화상자의 GPIO 탭 설정예제입니다.(GPIO 인터페이스를 사용할 때만 표시됩니다.)

GPIO 탭은 Data Width필드 하나만 제공합니다. Data Width필드는 GPIO 인터페이스를 통해서 병렬전송되는 데이터의 비트 개수를 지정합니다. 이 필드에서는 8 비트 또는 16비트로 설정합니다. 이 필드로 인해서 설정해야 하는 하드웨어 스위치는 없습니다.


Advanced Instrument Properties 대화상자: A16 Space (VXI 용) 탭

다음 그림은 Advanced Instrument Properties 대화상자의 A16 Space 탭 설정예제입니다. 이 탭은 인터페이스가 VXI인 경우에만 표시되며, 레지스터-기반 Direct I/O 트랜잭션에서만 사용됩니다.

다음 절에서는 각 필드가 설명됩니다.

Byte Access (D8) 필드

Byte Access 필드는 VXI 계측기가 8-비트 메모리 접근을 지원하는지 지정합니다. 이 필드에서는 다음 항목을 선택할 수 있습니다.:

• NONE - 계측기가 바이트 접근을 지원하지 않습니다.

• ODD ACCESS - 계측기가 바이트 접근을 지원합니다. 그러나 홀수 바이트 경계(D08(O))에서만 지원합니다.

• ODD/EVEN ACCESS - 계측기가 모든 경계에서 바이트 접근을 지원합니다.(D08(EO))

Word Access (D16) 필드

Word Access 필드는 편집할 수 없습니다. 모든 VXI 계측기는 16-비트 접근(D16)을 지원해야 합니다.

LongWord Access (D32) 필드

LongWord Access 필드는 VXI 계측기가 32-비트A16 메모리 접근을 지원하는지 지정합니다. 이 필드에서는 다음 항목을 선택할 수 있습니다.:

• NONE - 계측기가 32-비트 접근을 지원하지 않습니다.

• D32 ACCESS - 계측기가 32-비트A16 메모리 접근을 지원합니다.

Add Register 필드

Add Register 필드를 클릭하면, 대화상자에 열을 추가합니다. 이들 필드에서 계측기의 A16 메모리 접근을 설정할 수 있습니다. 4 개의 필드가 제공됩니다.:

• Name - 레지스터의 심볼이름이며, Direct I/O 오브젝트에서 READ REGISTER 또는 WRITE REGISTER 트랜잭션을 이용하여 특정 레지스터를 지칭하는데 사용합니다.

• Offset - 계측기 A16 메모리의 상대 기본 레지스터에서 설정될 레지스터까지의 바이트 옵셋

• Format - 설정될 메모리에 쓰거나 읽을 데이터 포맷. 읽기나 쓰기는 Offset 필드에서 설정된 바이트에서 발생합니다. 가능한 포맷은 다음과 같습니다.:

• BYTE - 하나의 바이트를 읽거나 씁니다. 계측기는 위에서 설명한 BYTE 필드를 사용하여 8-비트 접근을 허용하도록 설정되어 있어야 합니다. BYTE 필드가 ODD 이면, Offset 필드에서 지정한 바이트의 위치도 홀수 이어야 합니다.

• WORD16 - 16-비트 워드를 읽거나 씁니다. 16-비트는 2의 보수 정수로 표시됩니다. 모든 VXI 계측기는 반드시 이 포맷을 지원합니다.

• WORD32 - 32-비트 워드를 읽거나 씁니다. 32-비트는 2의 보수 정수로 표시됩니다. LongWord Access 필드가 NONE(모든 32비트를 읽거나 쓰기 위해서 2 개의 D16 접근을 사용하여)으로 지정되어도 VEE는 이 포맷을 지원합니다. LongWord Access 필드가 D32 ACCESS로 설정되어 있으면, 모든 32비트를 지원합니다.

• REAL32 - 32-비트 워드를 읽거나 씁니다. 32-비트는 IEEE 754 32-비트 부동소수점 숫자로 표시됩니다. LongWord Access 필드가 NONE(모든 32비트를 읽거나 쓰기 위해서 2 개의 D16 접근을 사용하여)으로 지정되어도 VEE는 이 포맷을 지원합니다. LongWord Access 필드가 D32 ACCESS로 설정되어 있으면, 모든 32비트를 지원합니다.

• Mode - 해당 레지스터가 지원할 I/O 모드를 지정합니다. 다음 항목을 선택할 수 있습니다.:

• READ - READ REGISTER 트랜잭션에서만 이 레지스터를 선택할 수 있도록 표시됩니다.

• WRITE - WRITE REGISTER 트랜잭션에서만 이 레지스터를 선택할 수 있도록 표시됩니다.

• READ/WRITE - 이 레지스터는 READ REGISTER 트랜잭션 및 WRITE REGISTER 트랜잭션 모두에서 선택할 수 있습니다.

Delete Register 필드

Delete Register 필드를 클릭하면, 현재 설정된 레지스터의 심볼이름 목록을 표시합니다. 선택된 레지스터는 이 대화상자에서 제거됩니다.

예제

다음 그림은 HP E1411B VXI Multimeter의 A16 Space 탭에서의 레지스터 설정예제입니다. Add Registe에 의해서 레지스터가 추가되면 레지스터의 목록은 스크롤됩니다.

주의

확장메모리(A24/A32 Space) 설정은 비슷하지만, “registers” 대신 위치(“locations”)로 구성됩니다.

Offset 필드는 계측기 A16 메모리의 상대 기본 레지스터부터 설정될 레지스터까지의 바이트 옵셋으로 설정됩니다. 상태 레지스터(위 그림에서의 Name: = stat)은 4-바이트 옵셋으로 설정되고 READ 모드로 설정됩니다.

이 그림에서 제어 레지스터는 표시되지 않았지만, 일반적으로 WRITE 모드에서 4-바이트 옵셋에 대해서 설정됩니다. 2 개의 분리된 레지스터의 위치는 동일한 모드이더라도 Name 필드는 유일해야 합니다. 그러나, 바이트 위치 4에 있는 레지스터에 대해서는 READ/WRITE 모드를 가진 상태제어 이름으로 명명될 수 있습니다.


Advanced Instrument Properties 대화상자: A24/A32 Space (VXI 용) 탭

다음 그림은 Advanced Instrument Properties 대화상자의 A24/A32 Space 탭 설정예제입니다. 이 탭은 인터페이스가 VXI인 경우에만 표시되며, 레지스터-기반 Direct I/O 트랜잭션에서만 사용됩니다.

다음 절에서는 각 필드가 설명됩니다.

주의

"extended memory"는 VXI 계측기에서 A24 또는 A32 메모리를 의미합니다.(VXI 계측기는 A24 또는 A32 메모리를 구현하지만, 이들 모두를 구현할 수 없습니다.)

Byte Access (D8) 필드

Byte Access 필드는 VXI 계측기가 8-비트 메모리 접근을 지원하는지 지정합니다. 이 필드에서는 다음 항목을 선택할 수 있습니다.:

• NONE - 계측기가 바이트 접근을 지원하지 않습니다.

• ODD ACCESS - 계측기가 바이트 접근을 지원합니다. 그러나 홀수 바이트 경계(D08(O))에서만 지원합니다.

• ODD/EVEN ACCESS - 계측기가 모든 경계에서 바이트 접근을 지원합니다.(D08(EO))

Word Access (D16) 필드

Word Access 필드는 편집할 수 없습니다. 모든 VXI 계측기는 16-비트 접근(D16)을 지원해야 합니다.

LongWord Access (D32) 필드

LongWord Access 필드는 VXI 계측기가 32-비트A16 메모리 접근을 지원하는지 지정합니다. 이 필드에서는 다음 항목을 선택할 수 있습니다.:

• NONE - 계측기가 32-비트 접근을 지원하지 않습니다.

• D32 ACCESS - 계측기가 32-비트A16 메모리 접근을 지원합니다.

QuadWord Access (D64) 필드

QuadWord Access 필드는 VXI 계측기가 64-비트 확장 메모리 접근을 지원하는지 지정합니다. 이 필드에서는 다음 항목을 선택할 수 있습니다.:

• NONE - 계측기가 64-비트 접근을 지원하지 않습니다.

• D64 ACCESS - 계측기가 64-비트메모리 접근을 지원합니다.

Agilent I/O Libraries G.02.02는 일부 VXI I/O 계측기의 메모리 영역에 64-비트 접근을 허용합니다. 이 모드를 지원하는 VXI 계측기에 대해서, 이 기능으로 VEE가 64-비트 단위로 메모리를 읽거나 쓸수 있습니다. G.02.02 버전이 설치되어 있으면, Advanced Instrument Configuration 대화상자의 A24/A32 Space 탭에서 이 접근모드를 활성화하도록 설정할 수 있습니다.

이 모드를 활성화하기 위해서는, 먼저 QuadWord Access(D64)를 활성화하고, WORD32*2, 또는 REAL64 포맷을 선택합니다. WORD32*2를 선택하면 INT32 어레이의 2 개의 근접한 숫자로 64-비트 값이 읽힙니다.

오브젝트 위치: I/O [image] Instrument Manager [image] (VXI 계측기를 선택) [image] Edit Instrument [image] Advanced I/O Config... A24/A32 Space 탭.

Add Location 필드

Add Location 필드를 클릭하면, 대화상자에 열을 추가합니다. 이들 필드에서 계측기의 확장 메모리 접근을 설정할 수 있습니다. 4 개의 필드가 제공됩니다.:

• Name - 레지스터의 심볼이름이며, Direct I/O 오브젝트에서 READ MEMORY 또는 WRITE MEMORY 트랜잭션을 이용하여 특정 레지스터를 지칭하는데 사용합니다.

• Offset - 계측기 확장 메모리의 상대 기본 레지스터에서 설정될 위치까지의 바이트 옵셋

• Format - 설정될 위치에 쓰거나 읽을 데이터 포맷. 읽기나 쓰기는 Offset 필드에서 설정된 바이트에서 발생합니다. 가능한 포맷은 다음과 같습니다.:

• BYTE - 하나의 바이트를 읽거나 씁니다. 계측기는 위에서 설명한 BYTE 필드를 사용하여 8-비트 접근을 허용하도록 설정되어 있어야 합니다. BYTE 필드가 ODD 이면, Offset 필드에서 지정한 바이트의 위치도 홀수 이어야 합니다.

• WORD16 - 16-비트 워드를 읽거나 씁니다. 16-비트는 2의 보수 정수로 표시됩니다. 모든 VXI 계측기는 반드시 이 포맷을 지원합니다.

• WORD32 - 32-비트 워드를 읽거나 씁니다. 32-비트는 2의 보수 정수로 표시됩니다. LongWord Access 필드가 NONE(모든 32비트를 읽거나 쓰기 위해서 2 개의 D16 접근을 사용하여)으로 지정되어도 VEE는 이 포맷을 지원합니다. LongWord Access 필드가 D32 ACCESS로 설정되어 있으면, 모든 32 비트를 지원합니다.

• REAL32 - 32-비트 워드를 읽거나 씁니다. 32-비트는 IEEE 754 32-비트 부동소수점 숫자로 표시됩니다. LongWord Access 필드가 NONE(모든 32비트를 읽거나 쓰기 위해서 2 개의 D16 접근을 사용하여)으로 지정되어도 VEE는 이 포맷을 지원합니다. LongWord Access 필드가 D32 ACCESS로 설정되어 있으면, 모든 32비트를 지원합니다.

• WORD32*2 - 2 개의 32-비트(2 개의 Int32) 워드로 64-비트 워드를 읽거나 씁니다. QuadWord Access가 활성화되어 있어야 합니다.

• REAL64 - REAL64로 64-비트 워드를 읽거나 씁니다. QuadWord Access가 활성화되어 있어야 합니다.

• Mode - 해당 위치가 지원할 I/O 모드를 지정합니다. 다음 항목을 선택할 수 있습니다.:

• READ - READ REGISTER 트랜잭션에서만 이 위치를 선택할 수 있도록 표시됩니다.

• WRITE - WRITE REGISTER 트랜잭션에서만 이 위치를 선택할 수 있도록 표시됩니다.

READ/WRITE - 이 위치는 READ REGISTER 트랜잭션 및 WRITE REGISTER 트랜잭션 모두에서 선택할 수 있습니다.

Delete Location 필드

Delete Location 필드를 클릭하면, 현재 설정된 레지스터의 심볼이름 목록을 표시합니다. 선택된 위치는 이 대화상자에서 제거됩니다.


I/O 트랜잭션 이해

I/O 트랜잭션은 VEE가 계측기, 파일, 문자열, 운영체제, 인터페이스, 다른 응용프로그램, 및 프린터 등과 통신할 때 사용됩니다. 예를 들어, 아래의 To File 오브젝트를 검토하겠습니다.

To File 오브젝트의 경우에는 myFile로 데이터를 전송합니다. 이 오브젝트는 프로그램으로부터 데이터를 수신하는 transactions 이라는 입력을 가지고 있습니다. 예를 들어, To File 오브젝트는 WRITE TEXT a EOL 트랜잭션을 포함하고 있습니다. 트랜잭션을 더블 클릭하면, 트랜잭션 문장을 구성할 수 있는 I/O Transaction 대화상자가 나타납니다.

트랜잭션 대화상자는 오브젝트에 따라 다른 형태를 가지고 있으나, “action”, “encoding”, “expression list”, “format” 및 “end-of-line”(EOL)는 모든 트랜잭션 대화상자에서 사용되는 공통 필드입니다.


I/O 트랜잭션 포맷

데이터를 기록하기 위한 I/O 트랜잭션은 다음과 같은 포맷을 가집니다:

<action> <encoding> <expression list> <format> <EOL>

다음은 가장 일반적인 동작입니다: READ, WRITE, EXECUTE, 및WAIT.

동작 | 설명
READ | 지정된 인코딩 및 포맷을 이용하여 지정된 소오스로부터 데이터를 읽습니다.
WRITE | 지정된 인코딩 포맷을 이용하여 지정된 목표(파일, 계측기등)에 데이터를 기록합니다.
EXECUTE | 지정된 명령어를 실행합니다. 예를 들어, EXECUTE REWIND : 내용을 삭제하지 않고 읽기 및 쓰기 포인터를 파일의 시작부분에 위치시킵니다. EXECUTE CLOSE 트랜잭션은 열려있는 파일을 닫습니다.
WAIT | 다음 트랜잭션을 실행하기 전에 지정된 시간(초)만큼 대기합니다.

주의사항

메뉴의 I/O [image] Advanced I/O 에서는 이들 이외의 여러 가지 동작이 사용됩니다.

인코딩과 포맷은 데이터가 패키징 되고 전송되는 방법에 따라 달라집니다. 예를 들어, TEXT 인코딩은 데이터를 ASCII 문자로 전송합니다. TEXT 인코딩은 여러 가지 형태로 포맷될 수 있습니다. 예를 들어, 문자와 숫자로 구성된 스트링을 파일에 전송할 때, WRITE TEXT STRING 트랜잭션을 사용하면 문자와 숫자를 모두 ASCII 문자로 포맷하여 전송합니다. 그러나 WRITE TEXT REAL 트랜잭션을 사용하면 동일한 스트링에서 실수만 추출하여 이들을 ASCII 문자로 전송합니다. 다음은 I/O 트랜잭션에서 사용하는 인코딩에 관하여 설명되어 있습니다.

인코딩 | 설명
TEXT | 사람이 읽을 수 있는 형태(ASCII)로 모든 데이터를 읽거나 기록합니다. ASCII 포맷이므로 다른 어플리케이션 소프트웨어에서도 쉽게 사용하거나 편집할 수 있습니다. VEE의 숫자 데이터는 TEXT로 자동 변환됩니다.
BYTE | 숫자 데이터를 2진 정수로 변환하고 LSB(Least Signifi-cant Byte)를 전송하거나 수신합니다.
CASE | 열거형 값(Enumerated Value)이나 정수 값을 스트링으로 매핑하고, 그 스트링을 읽거나 씁니다. 예를 들어, 에러 번호를 수신하면 이 에러번호 대신 이 에러번호와 매핑된 에러메시지를 출력할 수 있습니다.
BINARY | 2진 포맷의 모든 데이터 타입을 처리합니다.
BINBLOCK | 2진 파일 내의 모든 VEE 데이터 타입을 가진 일정한 길이의 IEEE 488.2 블록 헤더를 사용합니다.
CONTAINER | 모든 데이터 타입의 VEE 텍스트 포맷을 사용합니다.

쓰기 트랜잭션에서, 표현식들은 다른 오브젝트로 전송할 데이터를 생성하기 위해서 단지 콤마로 분리된 여러 개의 표현식입니다. 쓰기 트랜잭션에서의 표현식은 연산식, 데이터 입력터미날 이름, 스트링, VEE 함수, 사용자함수, 전역변수 등으로 구성됩니다. 읽기 트랜잭션에서의 표현식은 여러 개의 출력 터미날 이름으로 구성되며, 이들 출력 터미날 이름은 콤마로 분리됩니다. 출력터미날 이름은 데이터가 저장될 장소를 나타냅니다.

계측기에서 데이터를 읽는 방법과 데이터 포맷은 "개요" 에 설명되어 있습니다. 대부분의 이들 포맷은 모든 I/O 트랜잭션에 적용됩니다.

EOL (end-of-line sequence of characters)은 ON 또는 OFF 할 수 있으며, I/O [image] To objects에 있는 대부분의 오브젝트 메뉴를 열어서 Properties...를 클릭한 다음, Data Format을 선택하고 Separator Sequence 항목 아래를 변경하여 EOL 시퀀스를 지정할 수 있습니다.


트랜잭션 생성 및 읽기

여기서 설명되는 모든 오브젝트는 트랜잭션을 가지고 있습니다. 트랜잭션은 어떻게 데이터를 읽고 쓰는가 등의 기초 입출력 동작을 지정합니다. 각 트랜잭션은 I/O 오브젝트의 오픈뷰에서 텍스트 한 줄로 표시됩니다. To String 오브젝트를 생성하는 I/O [image] To [image] String를 클릭하여 일반적인 트랜잭션 사용법을 설명하도록 하겠습니다.

트랜잭션을 추가하기 위해서, 오브젝트를 더블클릭합니다.

다음 그림은 트랜잭션이 어떻게 동작하는지 설명하기 위해서 To String 오브젝트를 사용하는 간단한 프로그램입니다. 이 프로그램은 2 개의 트랜잭션을 사용합니다. 하나는 스트링 문자를 쓰고, 다른 하나는 고정소수점 십진수 포맷의 숫자는 쓰는 트랜잭션입니다.

일반적으로 트랜잭션-기반 오브젝트에서는 최소한 2 가지 작업을 해야 합니다.:

1 필요한 만큼의 트랜잭션을 추가합니다.

2 입력터미날과 출력터미날을 추가합니다. 트랜잭션을 추가하고 편집함에 따라서 - 대부분의 터미날은 자동으로 추가됩니다.

관련정보

트랜잭션 편집하기, 터미날 추가하기, 트랜잭션 편집하기, 트랜잭션 데이터 읽기, 트랜잭션 개발을 위한 제안


트랜잭션 편집하기

마우스와 키보드를 이용한 편집

다음 테이블에서는 마우스를 이용하여 트랜잭션을 편집하는 방법을 간략하게 설명합니다.

이것을 실행하기 위해서는… | 이것을 클릭…
트랜잭션의 마지막에 다른 트랜잭션을 추가 | 오브젝트에서 더블클릭하거나 오브젝트 메뉴에서 add Trans를 클릭
다른 트랜잭션으로 하이라이트바를 이동 | 하이라이트되지 않은 다른 트랜잭션을 클릭
현재 하이라이트된 트랜잭션의 위에 트랜잭션을 삽입 | 오브젝트 메뉴에서 Insert Trans을 클릭
하이라이트된 트랜잭션을 컷(삭제)하여 “cut-and-paste”에 저장 | 오브젝트 메뉴에서 Cut Trans을 클릭
현재 하이라이트된 트랜잭션을 “cut-and-paste”에 복사하여 저장 | 오브젝트 메뉴에서 Copy Trans을 클릭
현재 버퍼에 있는 트랜잭션을 현재 하이라이트된 트랜잭션의 위에 붙여넣기 | 오브젝트 메뉴에서 Paste Trans을 클릭
여러 개의 트랜잭션을 선택 | Ctrl + 마우스 왼쪽버튼을 클릭
트랜잭션을 편집 | 트랜잭션을 더블클릭

다음 테이블에서는 키보드를 이용하여 트랜잭션을 편집하는 방법을 간략하게 설명합니다.

이것을 실행하기 위해서는… | 다음 키를 누르십시오...
여러 개의 연속되는 트랜잭션을 선택 | Shift + UP/Down Arrow
하이라이트 바를 다음 트랜잭션으로 이동 | Down Arrow
하이라이트 바를 이전 트랜잭션으로 이동 | Up Arrow
하이라이트 바를 다른 트랜잭션으로 이동 | Home, End, Up/Down Arrow
현재 하이라이트된 트랜잭션의 위에 트랜잭션을 삽입 | Insert
현재 하이라이트된 트랜잭션을 삭제 | Delete
현재 하이라이트된 트랜잭션을 “cut-and-paste”에 복사하여 저장 | CTRL+C
현재 버퍼에 있는 트랜잭션을 현재 하이라이트된 트랜잭션의 위에 붙여넣기 | CTRL+V
하이라이트된 트랜잭션을 컷(삭제)하여 “cut-and-paste”에 저장 | CTRL+X
이전 실행을 취소하기 | CTRL + Z
이전 실행이 재실행 하기 | CTRL + Y
하나의 트랜잭션을 위 또는 아래로 이동 | CTRL + Up/Down Arrow

트랜잭션 안의 필드를 편집하기 위해서는, 트랜잭션을 더블클릭하여 I/O Transaction 대화상자를 다음과 같이 표시합니다.

I/O 동작의 타입에 따라서 I/O Transaction 대화상자에서 표시되는 필드의 종류가 달라집니다. 필드의 내용을 변경하기 위해서는, 화살표를 클릭하여 표시되는 목록에서 선택합니다. 화살표가 없는 필드는 직접 텍스트를 입력합니다. OK를 클릭하여 선택사항을 저장하고 I/O 오브젝트로 돌아갑니다.

NOP를 클릭하면 이전에 저장했던 내용을 저장하며, 해당 트랜잭션을 "no operation" 또는 "no op."로 표시됩니다. 이것은 텍스트 기반 프로그램에서 해당 라인의 코드를 주석처리하는 것과 같습니다.

입출력 터미날은 자동으로 추가됩니다. 오브젝트 메뉴를 이용하여 터미날을 추가하거나 삭제할 수 있습니다.

데이터 필드 편집

데이터 필드에는 텍스트를 입력합니다. 다음 그림은 READ 트랜잭션과 데이터 필드에 무엇을 입력해야 하는지에 대한 예제입니다.

다음 그림은 WRITE 트랜잭션과 데이터 필드를 입력하는 예제입니다.

WRITE 트랜잭션에서는 표현식 목록(변수, 상수 및 연산자)을 지정할 수 있지만, READ 트랜잭션에서는 변수만 지정할 수 있습니다. 데이터 필드에서 사용하는 일반적인 항목은 다음과 같습니다.:

데이터 필드 항목

의미

X

A

(READ) 데이터를 읽어서 변수 X에 저장.

(WRITE) 변수A의 값을 씁니다.

X,Y

A,B

(READ) 데이터를 읽어서 변수 X에 저장하고, 데이터를 읽어서 변수 y에 저장.

(WRITE) 변수A의 값을 쓰고, 변수B의 값을 씁니다.

null

A,A*1.1

(READ only) 지정된 값을 읽어서 버립니다. null은 VEE에 의해서 정의된 특별한 변수입니다.

(WRITE only) A의 값을 쓰고, A의 값에 1.1을 곱해서 씁니다.

"hello\n"

(WRITE) hello 문자와 새로운 줄(newline)문자를 씁니다.

"FR ",Fr," MHZ"

(WRITE) Text 문자와 숫자의 조합을 씁니다. 트랜잭션이 WRITE TEXT REAL 이며, Fr이Real 값 1.234을 가지면, VEE는 FR 1.234 MHZ를 씁니다.

다음 테이블에서 설명되는 이스케이프 문자를, 더블인용부호로 묶인 스트링을 입력으로 사용할 수 있는, 모든 필드에 포함할 수 있습니다.

주의사항

READ 트랜잭션에서는 null 변수를 데이터 필드에 사용할 수 있습니다. null 변수에 데이터를 넣으면 데이터는 버려집니다. 필요 없는 데이터를 제거할 때 편리하게 사용할 수 있습니다.

Escape 문자 | ASCII Code (십진수) | 의미
\n | 10 | 새로운 라인
\t | 9 | 수평 탭
\v | 11 | 수직 탭
\b | 8 | Backspace
\r | 13 | Carriage Return
\f | 12 | Form Feed
\" | 34 | 더블 인용부호
' | 39 | 단일 인용부호
\\ | 92 | Backslash
\ddd |  | 3 자리 8진수 값 ddd와 일치하는 ASCII 문자

관련정보

트랜잭션 생성 및 읽기, 터미날 추가하기, 트랜잭션 편집하기, 트랜잭션 데이터 읽기, 트랜잭션 개발을 위한 제안


터미날 추가하기

VEE는 자동으로 입출력 터미날을 필요한 만큼 추가합니다. 터미날을 수동으로 추가하기 위해서는, 오브젝트 메뉴에서 "Add Terminal"을 클릭하거나, 키보드 단축키 CTRL+A를 이용합니다.

WRITE 트랜잭션은 VEE에서 오브젝트와 관련된 목적지로 데이터를 전송하며, 데이터 입력 터미날을 필요로 합니다. WRITE 트랜잭션은 또한 "abs(globalA)" 등의 전역변수 또는 표현식으로부터 데이터를 쓸 수도 있습니다.

READ 트랜잭션은 오브젝트와 관련된 소오스로부터 VEE로 데이터를 전송하며 데이터 출력터미날을 가지고 있습니다.

터미날에 표시되는 변수이름은, 다음 그림과 같이, 트랜잭션에서 사용하는 변수이름과 일치해야 합니다.

터미날 변수 이름을 편집하기 위해서는, 다음과 같이 실행합니다.:

1 터미날을 더블클릭하여 Terminal Information 대화상자를 표시합니다.

2 이 대화상자에서 Name 필드를 편집합니다.

VEE에서 사용하는 변수이름은 대소문자를 구별하지 않습니다. 따라서, s는 S와 같고, signal 은 Signal과 같습니다.

관련정보

트랜잭션 생성 및 읽기, 트랜잭션 편집하기, 트랜잭션 편집하기, 트랜잭션 데이터 읽기, 트랜잭션 개발을 위한 제안


트랜잭션 데이터 읽기

데이터를 변수로 읽어 들이기 위해서는, VEE는 데이터의 개수 또는 종결 문자가 무엇인지 알아야 합니다. READ 트랜잭션에는 데이터의 개수 또는 end-of-file (EOF)을 지정해야 합니다. 이것은 I/O 트랜잭션 대화상자의 맨 마지막 필드에 지정합니다.

지정된 데이터 개수를 읽는 트랜잭션

트랜잭션 대화상자의 맨 마지막 필드는 디폴트로 SCALAR가 설정되어 있습니다. 이것이 SCALAR로 지정되면 READ 트랜잭션이 하나의 앨리먼트만 읽습니다. SCALAR 필드를 클릭하여 드롭다운 목록에서 필요한 항목을 선택하여 변경할 수 있습니다.

이 목록에서 표시되는 항목은 READ 트랜잭션에 대한 차수를 나타냅니다. 예를 들어, SCALAR는 0 차원을, ARRAY 1D는 1 차원을, ARRAY 2D는 2 차원을 나타냅니다.

차수를 선택할 때, 트랜잭션 대화상자에는 각 차수에 지정된 입력필드가 표시됩니다. 아래 그림은 바이너리 정수로 된 3차원 데이터를 matrix 변수로 읽어 들이는 트랜잭션 대화상자의 예제입니다. SIZE: 다음의 3 개의 필드는 해당 차원에 있는 정수의 개수를 나타냅니다.(이 경우에는, 각 차원에는 2 개의 앨리먼트를 가집니다.)

1 차원 이상으로 지정되면, 우측 끝 또는 “가장 내부”의 차수가 먼저 채워집니다. 이 예제에서는, 앨리먼트는 다음의 순서로 읽힙니다.:

   matrix[0,0,0] 가장 먼저 읽음

   matrix[0,0,1]

   matrix[0,1,0]

   matrix[0,1,1]

   matrix[1,0,0]

   matrix[1,0,1]

   matrix[1,1,0]

   matrix[1,1,1] 가장 마지막에 읽음

이 트랜잭션 대화상자에서 OK 버튼을 클릭하면, ARRAY:와 지정된 차수를 가지는 트랜잭션이 다음과 같이 표시됩니다. 예를 들어:

   READ BINARY matrix INT32 ARRAY:2,2,2

스칼라 값을 읽도록 설정되었으면, 트랜잭션의 형태는 다음과 같습니다:

   READ BINARY x INT32

어레이의 차원을 프로그램에서 지정하기 위해서 SIZE: 필드에서 변수를 사용할 수 있습니다. 예를 들어, 다음 트랜잭션은 3차원 매트릭스를 읽습니다.:

   READ BINARY matrix INT32 ARRAY:xsize,ysize,zsize

이 경우, xsize, ysize, 및 zsize은 동일 오브젝트의 이전 트랜잭션에서 지정한 입력터미날이나 출력터미날의 이름이 될 수 있습니다.

Read-To-End 트랜잭션

일부 VEE 트랜잭션에서는 파일의 끝까지(EOF) 데이터를 읽는 READ 트랜잭션을 제공합니다. 이 기능을 이용하면 한 번의 트랜잭션으로 파일의 전체 내용을 읽을 수 있습니다. 이러한 트랜잭션을 read-to-end 트랜잭션이라고 합니다. 다음 VEE 오브젝트가 read-to-end 트랜잭션을 지원합니다.

  • From File

  • From String

  • To/From DDE

다음 트랜잭션은 From File 오브젝트의 트랜잭션 대화상자 입니다. 이 오브젝트는 read-to-end로 설정되어 있으며, 바이너리 정수로 된 3 차원 어레이를 읽습니다.

Read-to-end 트랜잭션은 스칼라 타입에 대해서는 지원되지 않습니다. Read-to-end 으로 설정되기 위해서는 트랜잭션은 최소한 1 차원 이상으로 설정되어야 합니다. VEE가 read-to-end를 지원하면, SIZE: 필드가 트랜잭션 대화상자의 하단에 표시됩니다. SIZE: 필드를 클릭하면 read-to-end를 인에이블되고, 필드는 TO END:로 표시됩니다.

1 차원 어레이를 read-to-end로 설정하여 읽으면, 어레이의 앨리먼트의 개수는 EOF를 찾을 때 까지 알 수 없습니다. 어레이의 크기를 알지 못하는 경우 트랜잭션에서 어레이의 크기는 애스터리스크(*)로 표시합니다.

다차원 어레이를 read-to-end로 읽을 때는, 가장 왼쪽이나 “외부” 차수를 제외한 각 차원의 앨리먼트의 개수가 제공되어야 합니다. 위의 예제에서는 트랜잭션에서 크기 대신 (*)으로 크기를 제공하고 있습니다. read-to-end 트랜잭션이 완료될 때까지 이 차원의 크기를 알 수 없습니다.

3 차원 어레이는 여러 개의 2 차원 어레이를 하나로 묶은 것입니다. 2 차원 어레이는 “열”과 “행”의 차원을 가집니다. 2 차원 어레이를 (카드처럼) 쌓으면, 3 차원 어레이의 “깊이”가 됩니다.

3 차원 어레이의 read-to-end 트랜잭션에서, “열”과 “행”의 개수는 지정되지만, “깊이”는 EOF를 만날 때까지 알 수 없습니다. 이것은 모든 차원의 read-to-end 트랜잭션에서 마찬가지 입니다. 어레이가 n 차원이면, 이들의 n-1 차원까지는 크기가 제공되어야 합니다. 단지 1 개 차원(가장 왼쪽)만 크기를 알지 못하는 차원이어야 합니다.

ARRAY 1D 보다 차수가 큰 어레이의 read-to-end 트랜잭션에서, 읽은 앨리먼트의 전체 개수는 알려진 차원의 곱으로 균등하게 나눌 수 있어야 합니다. 예를 들어, 16개의 앨리먼트를 가지는 파일에서 3 차원 어레이로 read-to-end 트랜잭션으로 데이터를 읽는 경우, 트랜잭션은 “열”과 ”행”을 각각 2로 동일하게 지정하므로, 트랜잭션은 4 개의 2-by-2 어레이를 읽습니다. 따라서, 알지 못하는 차원의 크기, 즉, “깊이”는 읽기가 완료된 후4가 됩니다.

파일이 18개의 앨리먼트를 가지고 있으면, 2-by-2 어레이 중의 한 개는 완료되지 못하며, 2 개의 앨리먼트만 가지게 됩니다. 이 경우, “열”과 ”행”의 크기를 각각 2 로 지정하고 read-to-end 로 설정하여 읽으면 에러가 발생합니다.(읽은 데이터가 없습니다.) 그러나, “열”의 개수를 1로, “행”의 개수를 3 으로 지정하면 파일의 내용을 읽을 수 있습니다. 이 파일을 read-to-end 로 읽으면 “깊이”는 6이 됩니다.

파일 안의 앨리먼트의 개수를 알지 못하는 경우에는, ARRAY 1D로 설정하고 read-to-end로 읽을 수 있습니다.

주의

개수를 알지 못하는 앨리먼트를 리턴하는 쉘 명령어를 사용하는 프로그램에서 Execute Program 오브젝트와 함께 read-to-end 트랜잭션을 사용하면 편리합니다.

관련정보

트랜잭션 생성 및 읽기, 트랜잭션 편집하기, 터미날 추가하기, 트랜잭션 편집하기, 트랜잭션 개발을 위한 제안


트랜잭션 개발을 위한 제안

필요한 트랜잭션을 개발하기 위한 최선의 방법은 시행착오를 거치면서 개발하는 것입니다. I/O 트랜잭션에 의해서 취급되는 데이터의 대부분은 텍스트(바이너리 데이터의 반대 개념)입니다. TEXT 타입으로 쓰인 데이터는 사람이 직접 읽을 수 있으므로 즉시 결과를 확인해야 하는 경우에는 매우 유용합니다. TEXT 타입이 가장 컴팩트하거나 실행속도가 빠르지는 않지만, 모든 경우에 이 타입을 사용할 수 있습니다.

텍스트를 쓰는 다른 I/O 오브젝트의 출력 형태를 정확하게 시뮬레이션 하기 위해서도 To String 오브젝트를 사용할 수 있습니다. 다음 그림은 이 과정에 대한 예제입니다.

관련정보

트랜잭션 생성 및 읽기, 트랜잭션 편집하기, 터미날 추가하기, 트랜잭션 편집하기, 트랜잭션 데이터 읽기


올바른 트랜잭션을 선택하는 방법

이 절에서는 다양한 I/O 오브젝트와 이들 오브젝트에서 지원하는 트랜잭션을 요약합니다. 또한 올바른 오브젝트와 트랜잭션을 선택하는 방법을 제안합니다. 트랜잭션의 인코딩과 포맷에 대한 자세한 내용에 대해서는 I/O 트랜잭션 포맷을 참조하십시오.

다음 테이블은 VEE에서 제공하는 트랜잭션-기반 오브젝트와 이것들이 지원하는 동작에 대한 요약입니다.

테이블 1:

오브젝트 | 설명
To File From File | 파일에 데이터를 씀. 파일에서 데이터를 읽음
To String From String | VEE 컨테이너에 텍스트를 씁니다. VEE 컨테이너에서 텍스트를 읽습니다.
To Printer | VEE 텍스트 프린터로 텍스트를 씁니다.
To StdOut To StdError From StdIn | VEE 표준 출력으로 데이터를 씁니다. VEE 표준 에러로 데이터를 씁니다. VEE 표준 입력에서 데이터를 읽습니다.
Direct I/O MultiInstrument Direct I/O Interface Operations | GPIB, VXI, serial, 또는 GPIO 계측기와 직접 통신합니다. 동일한 오브젝트에서 GPIB, VXI, serial, 또는 GPIO 계측기와 직접 통신합니다. . GPIB 또는 VXI 인터페이스 상에 기초 버스 명령어와 데이터 바이트를 전송합니다.
To/From DDE | 마이크로소프트 윈도우에서 실행되는 프로그램 간에 데이터를 동적으로 교환합니다.

테이블 2:

동작 | 설명
EXECUTE | 트랜잭션-기반 오브젝트와 관련된 파일, 계측기 또는 인터페이스를 제어하는 기초 명령어를 실행합니다. 이 동작은 파일 포인터를 조정하고, 버퍼를 지우며, 파일과 파이프를 닫고, 하드웨어 인터페이스의 기초 명령어를 제공합니다.
WAIT | 다음 트랜잭션을 실행하기 전까지 대기하는 시간을 지정합니다. GPIB에 대한 Direct I/O, 메시지-기반 및 I-SCPI-지원 레지스터 기반 VXI 계측기에 대해서는, WAIT는 지정된 씨리얼 폴 응답에 대해서 대기할 때도 사용됩니다.
READ | 관련 오브젝트에서 데이터를 읽습니다.
WRITE | 관련 오브젝트에 데이터를 씁니다.
SEND | GPIB 인터페이스로 IEEE 488-정의 버스 메시지(명령 및 데이터)를 전송합니다.

올바를 오브젝트와 트랜잭션의 선택

1 I/O 동작의 소오스와 목적지 및 전송할 데이터의 형태를 결정합니다.

2 위의 테이블1을 이용하여 소오스 또는 목적지를 지원하는 오브젝트의 타입을 결정합니다.

3 위의 테이블2를 이용하여 트랜잭션 타입을 결정합니다.

4 인코딩 및 포맷 등의 트랜잭션의 나머지 규격을 결정하기 위해서는 WRITE 트랜잭션, READ 트랜잭션를 참조하십시오.

예제: 오브젝트와 트랜잭션 선택

예를 들어, 3 개의 행으로 구성된 텍스트 데이터를 읽어야 한다고 가정하겠습니다. 각 열은 타임스탬프와 실수가 공백으로 구분되어 있습니다, 각 라인은 새로운 줄(new line) 문자로 끝납니다. 이 파일의 일부 내용은 다음과 같습니다.:

   14:18:00 1.001

   14:18:30 -2.002

14:19:00 1.0E-03 . . .

오브젝트 및 트랜잭션 선택에 대한 이전 내용을 바탕으로 이 문제를 다음과 같은 과정을 거쳐서 해결합니다.:

1 소오스는 텍스트 파일입니다. 데이터는 24-시간 시-분-초 방식으로 표시된 타임스탬프와 공학포맷의 부호를 가진 십진수 실수로 구성되어 있습니다.

2 테이블1에서, 이 파일을 읽기 위해서 사용해야 할 오브젝트는 From File입니다.

3 테이블2에서, 이 파일을 읽기 위해서 사용해야 하는 트랜잭션은 READ입니다.

4 필요한 트랜잭션은 다음과 같습니다.:

        READ TEXT x TIME

       READ TEXT y REAL

To String 오브젝트와 From String 오브젝트 사용법

To String 오브젝트를 사용하여 포맷된 텍스트를 생성할 수 있습니다. 텍스트는 VEE 컨테이너에 쓰입니다.

From String 오브젝트를 이용하여 VEE 컨테이너에서 포맷된 텍스트를 읽을 수 있습니다.

하나의 To String 오브젝트에서 모든 트랜잭션에 의해서 하나의 스트링만 생성되면, 출력 컨테이너는 Text 스칼라가 됩니다. 하나의 To String 오브젝트에서 트랜잭션에 의해서 2 개 이상의 스트링이 생성되면, 출력은 Text의 1 차원 어레이가 됩니다.

EOL ON을 사용하는 WRITE 트랜잭션은 항상 현재 출력 스트링을 종료합니다. 이것은 출력 컨테이너에서 다음 트랜잭션은 다음 어레이 앨리먼트에서 쓰기를 시작하도록 합니다.

EOL OFF로 종료하는 WRITE 트랜잭션은 출력스트링을 종료하지 않아서, 다음 WRITE 트랜잭션에서 출력하는 문자는 현 스트링의 끝에 첨부하게 됩니다. To String 오브젝트의 마지막 트랜잭션은 트랜잭션의 EOL 설정에 관계없이 항상 현 스트링을 종료합니다.

대부분의 경우, To String 오브젝트와 함께 사용할 수 있는 적절한 트랜잭션은 WRITE TEXT 입니다. TEXT 이외의 인코딩에 대한 자세한 내용은 WRITE 트랜잭션, READ 트랜잭션를 참조하십시오.

From String 오브젝트는 READ TEXT 트랜잭션의 설정에 따라서 Text 스칼라 또는 어레이를 읽을 수 있습니다. READ TEXT는 EOL을 만날 때 읽기를 종료하거나 EOL을 버리고 읽기를 계속합니다. 이것은 포맷에 따라서 결정됩니다. 자세한 내용은 WRITE 트랜잭션, READ 트랜잭션를 참조하십시오.

주의

READ 와 WRITE 호환성

일반적으로, 데이터를 올바르게 읽기 위해서는 그 데이터가 어떻게 작성되었는지 알아야 합니다. 특히, 포맷을 직접 확인할 수 없는 바이너리 포맷의 경우에는 반드시 어떤 포맷인지 미리 확인되어야 합니다. 데이터가 작성된 포맷과 동일한 포맷으로 읽어야 합니다.


트랜잭션-기반 오브젝트 사용법

이 절에서는 실행규칙과 오브젝트 설정을 포함하여 트랜잭션-기반 오브젝트를 사용하는 방법을 설명합니다.

실행규칙

트랜잭션 I/O 오브젝트는 VEE 프로그램의 일반적인 데이터전달 규칙을 따릅니다. 또한, 트랜잭션 자체적으로 적용되는 몇 가지 규칙이 있습니다.

  1. 가장 위쪽의 트랜잭션이 먼저 실행되고, 순차적으로 아래 쪽의 트랜잭션이 실행됩니다.

  2. 각 트랜잭션이 완전히 실행된 후 다음 트랜잭션이 실행됩니다. 하나의 오브젝트 안의 트랜잭션은 오버랩되어서 실행되지 않습니다. 마찬가지로, 하나의 트랜잭션 오브젝트만이 한 순간에 특정 소오스 또는 타겟에 접근할 수 있습니다.

  3. 동일한 소오스 또는 타겟에 접근하는 트랜잭션-기반 I/O 오브젝트가 동일한 프로그램 내의 다른 쓰레드 또는 동일한 쓰레드에 존재할 수 있습니다.

파일관련 오브젝트의 경우에는, 각 파일에 대해서 하나의 읽기 포인터와 하나의 쓰기 포인터가 제공됩니다. 특정 파일에 접근하는 모든 오브젝트가 동일한 포인터를 공유합니다.

오브젝트 설정

대부분의 일반적인 경우, 2 가지 사실에 의해서 트랜잭션 결과가 결정됩니다.:

  • 트랜잭션 안의 설정

  • 오브젝트 메뉴의 Properties에서 설정한 내용.

대부분의 경우 디폴트 값을 사용할 수 있으므로 Properties 설정에 크게 주의하지 않아도 됩니다.

데이터를 쓰는 트랜잭션-기반 I/O 오브젝트(Direct I/O오브젝트는 제외)는 Properties 대화상자에서 추가탭을 제공하고 여기서 데이터 포맷을 편집할 수 있습니다. 이 대화상자에서 다양한 설정을 조회하고 편집할 수 있습니다.

주의

Direct I/O 오브젝트의 오브젝트 메뉴에는 Show Config 기능을 제공하여 설정 내용을 조회할 수 있습니다.(편집할 수는 없습니다.) Direct I/O 오브젝트의 설정을 편집하기 위해서는 I/O [image] Instrument Manager를 이용해야 합니다.

트랜잭션 I/O 오브젝트의 타이틀바를 더블클릭하면 다음과 같이 Properties 윈도우가 표시됩니다.

Properties 윈도우는 Data Format 탭을 가지고 있으며, WRITE 트랜잭션에 의해서 쓰이는 데이터에 영향을 미칩니다. End Of Line (EOL)은 EOL이 ON으로 설정된 모든 WRITE 트랜잭션에 영향을 미칩니다. Data Format의 다른 필드는 WRITE TEXT 트랜잭션에만 영향을 미칩니다.

다음 절에서는 Data Format 탭의 필드에 대해서 자세히 설명합니다.

End Of Line (EOL) 필드

End Of Line (EOL) 필드는 EOL ON을 사용하는 WRITE 트랜잭션의 끝에 전송되는 문자입니다. 이 필드의 값은 더블인용부호로 묶은 0 개 이상의 문자로 입력되어야 합니다. “더블 인용부호”는 ASCII 34 십진수를 의미합니다. 트랜잭션 편집하기에서 설명하는 이스케이프 문자를 포함하여 모든 ASCII 문자를 End Of Line (EOL)로 사용할 수 있습니다.

Array Separator 필드

Array Separator 필드는 WRITE TEXT 트랜잭션으로 작성된 어레이의 앨리먼트를 분리하는데 사용하는 문자를 지정합니다. 이 필드의 값은 더블인용부호로 묶어야 합니다. “더블 인용부호”는 ASCII 34 십진수를 의미합니다. 트랜잭션 편집하기에서 설명하는 이스케이프 문자를 포함하여 모든 ASCII 문자를 Array Separator로 사용할 수 있습니다.

어레이를 쓰는 Direct I/O 오브젝트 안의 WRITE TEXT STR 트랜잭션은 특별한 경우입니다. 이 경우, Array Separator 필드의 값은 무시되고, 라인피드 문자(ASCII 10 십진수)가 어레이의 앨리먼트를 구분하기 위해서 사용됩니다.

Multi-Field Format 필드

Multi-Field Format 필드는 WRITE TEXT 트랜잭션용 다중-필드 데이터 타입에 대한 포맷 스타일을 지정합니다. VEE에서 다중-필드 데이터 타입은 Coord, Complex, PComplex, 및 Spectrum입니다. 다른 데이터 타입과 다른 포맷은 이 설정에 의해서 영향 받지 않습니다.

(...)의 형태로 다중-필드 포맷을 지정할 때는 각 필드를 괄호로 감싸야 합니다. Data Only형태로 지정하면 괄호를 사용하지는 않지만, 구분 콤마는 사용해야 합니다. 예를 들어, 복소수 2+2j 는 (...) 구문을 사용하여 (2,2)로 표시하거나 Data Only 구문을 사용하여 2,2로 표시할 수 있습니다.

VEE는 다중-필드 데이터타입을 허용합니다. 예를 들어, Complex 데이터의 어레이를 생성할 수 있습니다. 이 경우, Multi-Field 포맷이 (...) 구문으로 설정되어 있으면, 어레이는 다음과 같이 작성됩니다.:

   (1,1)array_sep(2,2)array_sep ...

여기서 array_sep은 Array Separator 필드에서 지정한 문자입니다.

Array Format 필드

Array Format 필드는 다중어레이가 작성되는 방법을 지정합니다. 예를 들어, 수학에서는 매트릭스를 다음과 같이 씁니다.:

   1 2 3

   4 5 6

   7 8 9

VEE는 동일한 매트릭스를, Array Format설정에 따라서, 다음 2 가지 방법중에서 한가지로 씁니다. 다음 예제에서 EOL Sequence는 "\n" (새로운 라인)으로 Array Separator는 " " (공백)으로 설정되었습니다.

   1 2 3 블록 어레이 포맷

   4 5 6

   7 8 9

1 2 3 4 5 6 7 8 9 선형 어레이 포맷

이들 어레이 포맷은 어레이 앨리먼트를 Array Separator 문자로 구분합니다. Block Array Format은 EOL 문자를 이용하여 어레이 안의 각 열을 구분하기 위해서 추가 단계를 취합니다.

더욱 일반적인 경우(어레이가 2 차원 이상인 경우)에는, Block Array Format은 가장 우측의 서브스크립트 대신 각 서브스크립트가 변경될 때마다 EOL 문자를 출력합니다. 다음 트랜잭션을 이용하여 Block array format으로 3 차원 어레이 A[x,y,z]를 쓰면:

WRITE TEXT A

x 또는 y가 값을 변경할 때마다 EOL 문자가 출력됩니다. A가 2 차원이면, 각 앨리먼트는 다음 순서로 작성됩니다.:

A[0,0,0] A[0,0,1]<EOL 문자>

A[0,1,0] A[0,1,1]<EOL 문자>

<EOL 문자>

A[1,0,0] A[1,0,1]<EOL 문자>

A[1,1,0] A[1,1,1]<EOL 문자>

A[0,1,1]가 작성된 다음, x와 y는 동시에 변경되며, 따라서 2 개의 <EOL 문자>가 작성됩니다.


파일과 통신

이 절에서는 파일 포인터를 사용하는 방법과 데이터를 임포팅하는 방법을 포함하여 파일과 통신하는 방법을 설명합니다.

파일 포인터 사용법

VEE는 얼마나 많은 오브젝트가 해당 파일에 접근하는가에 관계없이 하나의 파일에 대해서 하나의 읽기 포인터와 하나의 쓰기 포인터를 관리합니다. 읽기 포인터는 다음 읽을 데이터의 위치를 나타냅니다. 마찬가지로, 쓰기 포인터는 다음 데이터를 써야할 위치를 나타냅니다. 다음 테이블은 오브젝트와 소오스/목적 파일을 나타냅니다.

소오스 또는 목적물 | 오브젝트
데이터 파일 | To File, From File
표준 입력 | From StdIn
표준 출력 | To StdOut
표준 에러 | To StdErr

이들 포인터의 위치는 다음에 의해서 영향받습니다.:

• READ, WRITE, 또는 EXECUTE 동작

• To File 오브젝트의 오픈뷰에서의 Clear File at PreRun & Open 설정

동일한 파일에 접근하는 오브젝트는, 이들 오브젝트가 다른 쓰레드 또는 다른 컨텍스트에 있어도, 동일한 읽기 포인터와 쓰기 포인터를 공유합니다.

다음 상황중의 한 가지를 만나면 파일이 읽히거나 쓰이기 위해서 열리게 됩니다.:

• 특정 파일에 접근하는 첫 번째 오브젝트가 PreRun 이후 처음 실행될 때. 이것이 가장 일반적인 경우입니다.

• 파일 이름을 지정하는 컨트롤 입력터미날에 새로운 데이터가 도착할 때. 이것은 덜 자주 발생합니다.

읽기 포인터

From File 오브젝트가 파일을 열면, 읽기 포인터는 파일의 시작점을 지시하고 있습니다. 다음 READ 트랜잭션은 READ에서 지정한 만큼 파일 포인터를 전진시킵니다. From File 오브젝트에서 EXECUTE REWIND 트랜잭션을 실행하여 읽기 포인터를 파일의 맨 앞부분으로 강제로 이동할 수 있습니다. 이 명령으로 파일 안의 데이터는 영향 받지 않습니다.

쓰기 포인터

쓰기 포인터의 처음 위치는 To File 오브젝트의 Clear File at PreRun & Open 의 설정에 따라서 달라집니다. Clear File at PreRun & Open을 체크하여 활성화한 상태에서는, 파일이 열릴 때, 파일의 내용이 지워지고 쓰기 포인터는 파일의 맨 처음을 지시합니다. Clear File at PreRun & Open 이 체크되지 않은 경우에는, 쓰기 포인터는 파일의 끝을 지시하며, 데이터는 이 위치에 첨부됩니다.

EXECUTE REWIND 또는 EXECUTE CLEAR 트랜잭션을 실행하여 임의의 시간에 쓰기 포인터를 파일의 맨 앞부분으로 강제로 이동할 수 있습니다. REWIND를 실행해도 파일의 내용은 변경되지 않습니다. 그러나, 새로운 데이터는 이전 데이터에 중복 쓰기를 합니다. CLEAR는 파일의 이전 내용을 지웁니다.

주의

To DataSet 및 From DataSet 오브젝트도 To File 이나 From File 오브젝트와 마찬가지로 하나의 파일당 하나의 읽기 포인터와 하나의 쓰기 포인터를 공유합니다. 그러나, 동일한 파일에 To DataSet 및 From DataSet를 To File 및 From File 오브젝트와 혼합하여 사용하는 것은 권장하지 않습니다.

파일 닫기

To File 오브젝트에 의해서 쓰여지는 데이터는 마지막 트랜잭션이 실행을 완료하고 모든 출력터미날이 활성화될 때 운영시스템으로 쓰이도록 실행됩니다.

VEE는 PostRun시 모든 파일을 닫습니다. 모든 활성 중인 쓰레드가 실행을 종료될 때 PostRun이 실행됩니다.

To File 이나 From File 오브젝트에서 EXECUTE CLOSE 트랜잭션을 실행하여 파일을 프로그램에서 닫을 수 있습니다. 이렇게 파일을 닫으면, 다른 프로세스가 이 파일에 지속적으로 읽기나 쓰기를 할 수 있습니다.

EXECUTE DELETE 트랜잭션을 실행하여 파일을 프로그램 상에서 삭제할 수 있습니다. 이 기능은 임시파일을 삭제할 때 유용하게 사용할 수 있습니다.

EXECUTE CLOSE 사례가 다음 그림에 설명되어 있습니다. 이 프로그램은 예제 디렉토리에서 manual48.vee 파일로 제공됩니다.

Execute Program은 날짜와 시간을 생성하여 파일(\tmp\dateFile)에 쓰는 쉘 명령어(데이터)를 실행합니다. 동일한 쓰레드 안에서, From File 오브젝트는 READ TEXT x STR 트랜잭션을 이용하여 파일에서 데이터를 읽습니다. For Count에 의해서 서브쓰레드가 여러 번 실행되므로 EXECUTE CLOSE 트랜잭션이 필요합니다.

Execute Program를 연속하여 실행하면 파일에 중복쓰기를 합니다. 그러나 From File오브젝트 만이 파일을 한 번만 열게 되므로, From File 오브젝트를 2 번째 실행하면 읽기 포인터의 위치는 정확하지 않게 됩니다. Execute Program가 파일을 재생성 했으므로, 이 읽기 포인터는 더 이상 파일을 지시하지 않습니다. 에러가 발생하게 됩니다.

From File은 데이터를 읽은 다음에는 EXECUTE CLOSE 트랜잭션을 실행하여 파일을 닫아야 합니다. EXECUTE CLOSE 트랜잭션을 실행하였으면, From File을 실행시 파일을 다시 열리게 됩니다.

이 예제에서는, EXECUTE CLOSE 트랜잭션을 NOP로 주석처리 하였으므로 에러가 발생하게 됩니다. 파일의 끝이거나 데이터가 없다는 에러의 내용이 발생합니다. NOP를 제거하면 프로그램이 정상적으로 실행됩니다.

EOF 데이터 출력

From File 오브젝트는 터미날 이름이 EOF (end-of-file)인 유일한 데이터 출력을 제공합니다. 이 터미날은 파일의 끝을 지나서 읽으려고 할 때 마다 활성화됩니다. EOF 터미날은 길이를 알지 못하는 파일을 읽을 때 유용하게 사용할 수 있습니다.

트랜잭션 데이터 읽기도 길이를 알지 못하는 파일을 읽을 때 사용합니다. 그러나, 파일의 내용은 VEE의 하나의 컨테이너로 들어가야 합니다. 한번에 하나의 앨리먼트를 읽으면서, 각 앨리먼트를 별도의 컨테이너에 넣어야 하는 경우에는 EOF 터미날을 이용하는 것이 좋습니다.

다음은 EOF를 사용하는 전형적인 예제입니다. 읽으려고 하는 파일은 알 수 없는 길이의 X-Y 데이터를 가지고 있습니다. 다음은 읽으려고 하는 파일의 내용입니다.:

   1.0

   5.5

   2.1

   8

   .

   .

.

데이터 임포팅

VEE는 데이터를 분석하고 디스플레이 할 수 있는 편리한 환경을 제공하므로, 다른 프로그램에서 데이터를 VEE로 임포트하여 처리해야 하는 경우가 발생합니다. 다른 소프트웨어에서 데이터를 임포트하기 위해서 사용하는 일반적인 절차는:

1 데이터를 텍스트 파일(ASCII 파일)로 저장합니다.

2 텍스트 편집기를 사용하여 데이터의 포맷을 확인합니다.

3 From File 오브젝트에서 READ TEXT 트랜잭션을 사용하여 파일에서 데이터를 읽습니다.

X-Y 값 임포팅

가장 일반적으로 발생하는 문제는 개수를 알 수 없는 X 및 Y 값을 가지는 파일에서 데이터를 읽어서 그래프로 그리는 것입니다. 이 문제는 다음 프로그램을 이용하여 해결할 수 있습니다.

위 프로그램은 예제 디렉토리에서 manual29.vee 파일로 제공됩니다.

READ TEXT REAL64 트랜잭션으로 부호, 십진수 및 지수 등을 사용하는 Y 값의 모든 표기 방식을 쉽게 처리할 수 있습니다. 다음은 이 데이터 파일의 일부 내용입니다.:

   .

   .

   .

   8 8.555555

   9 9e0

   10 1.05e+01

   11 +11.

   12 12.5

13 1.3E1

웨이브폼 임포팅

다른 소프트웨어는 텍스트 파일로 웨이브폼을 저장하기 위해서 여러 가지 다른 표시법을 사용합니다. 일반적으로, 파일은 웨이브폼의 속성과 Y 값을 1 차원 어레이로 가지는 여러 개의 값으로 구성됩니다. 이 절에서는 다른 포맷으로 저장된 웨이브폼을 임포트하는 방법을 설명합니다.:

• 헤더가 고정된 포맷인 경우. 파일의 시작 부분에 웨이브폼 속성이 저장되어 있으며, 그 아래에 Y 데이터를 값을 나타내는 1 차원 어레이가 있습니다.

• 헤더 포맷이 변경되는 경우. 파일의 시작 부분에 개수가 일정하지 않은 웨이브폼 속성이 저장되어 있으며, 그 아래에 Y 데이터를 값을 나타내는 1 차원 어레이가 있습니다. 이것들의 위치는 특별한 텍스트 토큰으로 표시되어 있습니다.

헤더가 고정된 포맷인 경우

헤더가 고정된 포맷인 경우, 데이터의 일부분은 다음과 같습니다.:

   NAME Noise1

   START_TIME 0.0

   STOP_TIME 1.0E-03

   SAMPLES 32

   DATA

                        .243545

                       .2345776

   .

   .

   .

이것은 헤더가 고정되어 있으므로, NAME 및 SAMPLES 등의 라벨은 서로 관계가 없습니다. 웨이브폼 속성은 항상 동일한 위치에 표시됩니다. 다음은 위 웨이브폼 데이터를 읽는 예제입니다.:

위 프로그램은 예제 디렉토리에서 manual30 .vee 파일로 제공됩니다.

From File 오브젝트 안의 트랜잭션이 대부분의 일을 처리합니다. 각 트랜잭션이 하는 일은 다음과 같습니다.:

1 첫 번째 트랜잭션은 NAME 라벨을 벗겨 버립니다. 웨이브폼의 이름을 읽기 위해서는 이것을 반드시 실행해야 합니다. 그렇지 않으면, NAME 이나 Noise1가 데이터 스트링과 함께 읽히게 됩니다.

2 두 번째 트랜잭션은 웨이브폼의 스트링 이름을 읽습니다.

3 세 번째부터 다섯 번째 트랜잭션 까지는 지정된 개수의 숫자를 읽습니다. VEE는 숫자를 생성하는데 필요없는 모든 데이터는 읽어서 버립니다.

4 여섯 번째 트랜잭션은 이전 트랜잭션에서 결정된 ARRAY SIZE를 이용하여 1 차원 Y 데이터를 읽습니다. 이 트랜잭션에서 사용될 Samples는 출력터미날로 나타납니다.

헤더 포맷이 변경되는 경우

다음은 헤더 포맷이 변경되는 데이터 파일의 일부분입니다.:

   파일의 첫 번째 라인

   <MARKER1> 1 2 3

   <MARKER2> A B C

   <DATA>

   1 1.1

   2 2.2

   3 2.9

   .

   .

.

이 경우에는, 파일에서 데이터의 정확한 내용과 위치를 알지 못합니다. 한 가지 파일에 대해서 알고 있는 사실은 <DATA> 마커 다음에 XY 값이 저장되어 있다는 것 입니다.

프로그램 내용이 간단하도록, 이 프로그램에서는 <DATA> 마커와 관계된 데이터만을 찾습니다. 다른 모든 마커를 찾도록 프로그램을 작성할 수도 있지만 여기서는 생략합니다.

이 프로그램은 예제 디렉토리에서 manual31.vee 파일로 제공됩니다.

From File #1은 <DATA>를 찾기 위해서 토큰(공백으로 구분된 단어)을 한번에 한 개씩 읽습니다. 일단 <DATA>를 찾으면, From File 오브젝트는 파일의 끝에 도달할 때까지 XY 데이터 쌍을 읽습니다.

관련정보

실습 5-3: To/From File 오브젝트 사용법


프로그램과 통신

이 절에서는 다음과 같은 기술을 이용하여 프로그램과 통신하는 방법을 설명합니다.:

• Execute Program 오브젝트를 사용

• Dynamic Data Exchange (DDE) 기술을 사용

This table shows programs and related objects.

이 테이블은 프로그램 종류에 따라서 사용해야 하는 오브젝트입니다.

프로그램의 종류 | 사용하는 오브젝트
MS-DOS 명령 | Execute Program
Windows Application¨ | Execute Program To/From DDE
C 프로그램 | Execute Program Import Library Call Function Formula

¨ VEE는 ActiveX 오토메이션을 지원하므로, VEE에서 다른 윈도우 어플리케이션 프로그램을 제어할 수 있습니다. 이 기능을 사용하는 방법은 Help [image] Content 및 Index [image] Tell me about [image] Active X를 참조하십시오.

Execute Program 오브젝트 사용법

운영시스템의 명령줄에서 사용할 수 있는 타스크를 Execute Program 오브젝트에서 실행할 수 있습니다. 다음은 Execute Program 오브젝트의 사용예제입니다.

Execute Program 오브젝트에서 다음을 포함한 모든 실행파일을 실행할 수 있습니다.:

• 컴파일된 C 프로그램

• 모든 MS-DOS 프로그램(*.EXE 또는 *.COM 파일)

• .BAT 파일

• dir 등의 MS-DOS 시스템 명령어

Execute Program 오브젝트

다음 절에서는 Execute Program 오브젝트의 오픈뷰에 표시되는 필드를 설명합니다.

Run Style

프로그램을 윈도우에서 실행해야 하는 경우에는, Run Style에서 윈도우 스타일을 지정합니다.:

• Normal은 프로그램을 표준 윈도우 상태로 실행합니다.

• Minimized는 프로그램을 윈도우가 최소화된 상태로 실행합니다.

• Maximized는 프로그램을 위도우가 최대화된 상태로 실행합니다.

Wait for Prog Exit

Wait for prog exit 필드는 언제 VEE가 Execute Program 오브젝트의 실행을 완료하고 데이터 출력을 활성화하는가를 지정합니다. Wait for prog exit가 Yes로 설정되면, VEE는 다음의 동작을 실행합니다.:

1 Execute Program 오브젝트에서 지정된 명령을 실행합니다.

2 Execute Program 오브젝트의 출력핀을 활성화하기 전에 프로세스가 종료될 때까지 기다립니다.

Wait for prog exit 이 No로 설정되면, VEE는 다음의 동작을 실행합니다.:

1 Execute Program 오브젝트에서 지정된 명령을 실행합니다.

2 Execute Program 오브젝트의 데이터 출력핀을 활성화시킵니다.

이외의 내용은 모두 같습니다. Execute Program은 Wait for prog exit가 No로 설정되어 있을 때 더 빠른 속도로 실행됩니다.

Prog With Params

Prog with params 필드는 다음 중 한가지를 지정합니다.:

1 실행파일과 명령줄 인자의 이름

2 MS-DOS로 전송되어 해석될 명령어

AUTOEXEC.BAT 파일의 PATH 변수에 적절한 경로를 지정하였으면, Prog with params 필드에 경로를 지정할 필요가 없습니다. 다음과 같은 형태로 Prog with params 필드에 값을 입력합니다.:

MS-DOS 명령어를 실행하기 위해서는:

COMMAND.COM /C DIR *.DAT

컴파일된 C 프로그램을 실행하기 위해서는:

MyProg -optionA -optionB

브라우저에서 URL 을 열기 위해서는:

http://www.agilent.com/find/vee

문서를 열기 위해서는:

D:\path\word.doc

Working Directory

Working directory 필드는 프로그램을 실행할 폴더를 지정합니다. 예를 들어, c:\progs\cprog1 폴더에서 makefile를 이용하여 nmake 프로그램을 실행하기 위해서는:

1 Prog with params: 필드에 nmake 을 입력하고

2 Working directory: 필드에는 c:\progs\cprog1를 입력합니다.

Dynamic Data Exchange (DDE) 사용법

주의

DDE는 오래된 기술입니다.(아직도 사용되기는 합니다.) 윈도우용 VEE는 ActiveX Automation 기술을 지원합니다. 이 기술을 이용하여 다른 윈도우 어플리케이션 프로그램을 제어할 수 있습니다. 이 기술을 이용하는 내용은 Help [image] Content and Index [image] Tell me about [image] Active X을 참조하십시오. Agilent는 DDE 대신 ActiveX Automation 기술을 사용할 것을 권장합니다.

Dynamic Data Exchange (DDE)는 윈도우 어플리케이션 간의 통신을 위한 메시지-기반 프로토콜을 정의한 것입니다. 이 기술을 사용하면 DDE 클라이언트와 DDE 서버간에 통신이 됩니다. DDE 클라이언트는 DDE 서버에 통신을 요청합니다. DDE 서버는 데이터를 전송하거나 프로시져를 실행하여 응답합니다.

DDE를 지원하는 윈도우 어플리케이션은 클리이언트나 서버 또는 양쪽 모두 처럼 동작합니다. VEE는 클라이언트 기능만 제공합니다. DDE 기능은 To/From DDE 오브젝트를 통해서 구현됩니다.

To/From DDE 오브젝트는 다음 4 종류의 트랜잭션을 사용합니다.:

READ(REQUEST) | DDE 전송으로부터 데이터를 읽습니다.
WRITE(POKE) | DDE 전송에 데이터를 씁니다(pokes).
EXECUTE | VEE가 통신하는 DDE 서버에 데이터를 전송합니다. 이 서버는 그 명령을 실행합ㄴ다.
WAIT | 지정된 시간 동안 기다립니다.(초 단위)

To/From DDE 오브젝트는 DDE 동작을 시작 및 종료시키는 내장된 기능을 가지고 있습니다. 사용자는 명시적으로 기능을 시작하고 종료시킬 필요 없습니다.

다음 그림과 같이, To/From DDE 오브젝트는 3 개의 메인 필드, Application, Topic, 및 Timeout을 가지고 있습니다.

Application 필드에는 통신하고자 하는 윈도우 어플리케이션 프로그램의 DDE 어플리케이션 이름을 입력합니다. DDE 어플리케이션 이름은 각 어플리케이션의 매뉴얼을 참조하십시오.

Topic 필드는 데이터 종류의 어플리케이션 식별자를 지정합니다. 예를 들어, 워드 프로세서의 토픽은 문서의 이름입니다.

Timeout 필드는 어플리케이션이 응답하지 않을 때 VEE가 기다리는 시간을 지정합니다. 디폴트 값은 5초입니다.

마지막 필드에는 다름 어플리케이션과 통신할 트랜잭션을 작성합니다. READ(REQUEST) 및 WRITE(POKE) 트랜잭션에 대해서는, 트랜잭션에 Item 이름을 넣어야 합니다. Item 이름은 각 데이터에 대한 어플리케이션 식별자 입니다. 예를 들어, 스프레드시트 데이터 항목에 대해서는 셀 위치이거나, 워드 프로세스 아이템에 대해서는 북마크 등이 될 수 있습니다.

MS 윈도우의 Program Manager와 통신하는, 아래 그림의 To/From DDE 오브젝트는 프로그램 그룹을 생성하고, 그 그룹에 아이템을 추가하고, 5 초 동안 표시한 후, 프로그램 그룹을 삭제합니다.

서버 DDE 어플리케이션이 실행되고 있지 않으면, VEE는 그 어플리케이션을 시작시키려고 시도합니다. 이 경우에는 Application 필드의 이름과 어플리케이션의 실행파일의 이름이 동일한 경우에만 그 어플리케이션을 시작시킬 수 있습니다. 실행파일의 폴더도 PATH에 정의되어 있어야 합니다. VEE는 Timeout 필드에 지정된 시간 동안만 그 어플리케이션을 시작시키려고 시도합니다.

PATH에 실행파일의 폴더가 지정되어 있지 않으면, 다음과 같이 To/From DDE 오브젝트를 실행하기 전에 Execute Program오브젝트를 사용하십시오.

다음 예제는 To/From DDE 오브젝트에서 입출력 터미날을 사용하는 예제입니다.

DDE 예제

다양한 윈도우 소프트웨어 어플리케이션과 통신하는 예제입니다. 이 예제와 관련된 중요한 정보를 Note Pad에서 읽는 내용입니다.

Lotus 123 DDE 예제:

Excel DDE 예제:

Reflections DDE 예제:

윈도우용 워드 DDE 예제:

WordPerfect DDE 예제:


Direct I/O 오브젝트와 Interface Operations오브젝트에서 트랜잭션 사용

I/O 트랜잭션을 이용하여 계측기와 통신하기 위해서 VEE는 3 개의 오브젝트를 제공합니다.:

• Direct I/O 오브젝트는 GPIB, VXI, serial, 및 GPIO 인터페이스와 LAN 연결을 통해서 계측기로 데이터를 전송하거나 받을 수 있습니다.

• MultiInstrument Direct I/O 오브젝트로는 하나의 오브젝트에서 여러 대의 계측기와 직접 I/O 트랜잭션을 실행할 수 있습니다.

• Interface Operations 오브젝트로는 기초 GPIB, VXI 메시지, 명령어 및 데이터를 전송할 수 있습니다.

이들 오브젝트 중에서 어떤 오브젝트를 사용하더라도, 메시지는 “생성되고” I/O 트랜잭션을 통해서 전송됩니다.

주의사항

레지스터-기반 VXI 계측기는 I-SCPI 드라이버가 제공되어야만 메시지-기반으로 사용할 수 있습니다.

Direct I/O, MultiInstrument Direct I/O, 및 Interface Operations 오브젝트를 사용하기 전에 VEE가 계측기와 통신할 수 있도록 적절히 설정되어 있어야 합니다. 자세한 내용은 Instrument Manager 대화상자를 참조하십시오.


Direct I/O 오브젝트의 사용

Direct I/O 오브젝트로는 계측기의 내장 명령어를 사용하여 계측기를 직접 제어할 수 있습니다. Direct I/O로 계측기를 제어하기 위해서 VEE 인스트루먼트 드라이버(ID) 또는 VXIplug&play를 설치할 필요가 없습니다.

명령어 전송

Direct I/O 오브젝트에서 계측기로 명령을 전송하기 위해서는 WRITE 트랜잭션을 사용합니다. GPIB, 메시지-기반 VXI, I-SCPI를 지원하는 레지스터-기반 VXI 및 씨리얼 계측기에 데이터를 전송하는데 사용하는 가장 중요한 WRITE 트랜잭션은 다음과 같습니다.:

WRITE TEXT

WRITE BINBLOCK

WRITE STATE

GPIO 계측기로 명령을 전달할 때 사용하는 Direct I/O 트랜잭션은 WRITE BINARY 와 WRITE IOCONTROL뿐 입니다.

메시지-기반 VXI 및 일부 레지스터-기반 VXI 계측기에 명령을 전송하기 위해서 사용하는 Direct I/O 트랜잭션은 WRITE REGISTER 과 WRITE MEMORY 입니다. 이들 트랜잭션들 만이 I-SCPI를 지원하지 않는 레지스터-기반 VXI 계측기와 통신할 수 있는 수단입니다.

WRITE TEXT 트랜잭션

WRITE TEXT 트랜잭션은 Direct I/O 오브젝트가 필요로 하는 대부분의 상황에 대해서 계측기를 설정할 수 있습니다. 대부분의 GPIB, 메시지-기반 VXI 및 씨리얼 계측기는 사람이 읽을 수 있는 텍스트 스트링을 프로그램 명령으로 사용합니다. 그러한 명령은 WRITE TEXT 트랜잭션을 이용하여 쉽게 계측기로 전송될 수 있습니다.

예를 들어, IEEE 488.2에 호환되는 모든 계측기는 *RST를 리셋 명령어로 인식합니다. 그러한 계측기를 리셋시키기 위해서 다음 트랜잭션을 사용할 수 있습니다.:

   WRITE TEXT "*RST" EOL

계측기는 종종 구문에 “구두점”을 사용하는 경우가 있습니다. 각 명령어 뒤에 또는 명령어 그룹의 뒤에 특별한 문자를 보내야 하는 경우에 사용합니다. 또한, GPIB 계측기는 End-Or-Identify (EOI) 신호선을 사용하는 방법이 다릅니다.

이것에 대한 추가 자료는 Advanced Instrument Properties 대화상자의 Direct I/O 탭에서 END(EOI)on EOL 과 EOL을 참조하시기 바랍니다. Advanced Instrument Properties 대화상자: Direct I/O 탭. 참조. 현재 사용중인 계측기에 대한 적절한 구문은 해당 계측기의 프로그래밍 매뉴얼을 참조하십시오.

  • Direct I/O 에서는 해당 계측기에서 필요로 하는 경우, TEXT 인코딩 이외의 인코딩을 WRITE 트랜잭션에서 사용할 수 있습니다. TEXT 인코딩 이외에 자주 사용하는 인코딩은 BINBLOCK과 STATE 입니다.

WRITE BINBLOCK 트랜잭션

BINBLOCK 인코딩은 IEEE-정의 블록 포맷으로 데이터를 계측기로 전송합니다. 이들 블록 포맷은 오실로스코우프나 스펙트럼 분석기로부터 트레이스 데이터와 같이 많은 분량의 데이터를 전송할 때 사용합니다. 일반적으로 BINBLOCK 데이터를 받기 위해서는 이 명령어 이전에 여러 개의 명령을 실행해야 합니다. 자세한 내용은 해당 계측기의 프로그램 명령을 참조하십시오.

BINBLOCK 트랜잭션을 사용하기 위해서는, Advanced Instrument Properties 대화상자의 Direct I/O 탭에서 Conformance 필드(BINBLOCK과 함께)를 적절하게 설정해야 합니다. Advanced Instrument Properties 대화상자: Direct I/O 탭을 참조하십시오.

WRITE STATE 트랜잭션

일부 GPIB 및 메시지-기반 VXI 계측기는 런스트링 기능을 제공합니다. 이 기능을 이용하면 계측기의 모든 설정을 업로드 할 수 있습니다. 향후에, WRITE STATE 트랜잭션을 이용하여 런스트링을 다운로드하여 계측기의 측정 상태를 복구할 수 있습니다. 런스트링은 계측기 드라이버가 제공되지 않을 때 측정상태를 다운로드하여 사용할 수 있게 하는 유용한 기능입니다.

주의

WRITE STATE 트랜잭션은 GPIB 계측기와 메시지-기반 VXI 계측기에 대해서만 사용할 수 있습니다.

런스트링을 사용하는 전형적인 절차는 다음과 같습니다.:

1 필요한 측정 상태로 계측기를 설정하십시오. 일반적으로 이 과정은 계측기의 전면판을 이용해서 실행됩니다.

2 해당 계측기용으로 설정된 Direct I/O 오브젝트의 오브젝트 메뉴에서 Upload State를 클릭합니다. 이제는 계측기의 상태가 Direct I/O 오브젝트의 이 인스턴스에 연결되었습니다.

3 Direct I/O 오브젝트에 WRITE STATE 트랜잭션을 추가합니다.

  • • WRITE STATE가 사용되는 경우에는, 일반적으로 Direct I/O에서 첫 번째 트랜잭션으로 사용됩니다. WRITE STATE는 업로드된 런스트링을 계측기에 쓰고, 계측기의 모든 기능이 동시에 설정됩니다. 이후의 트랜잭션에서 개별적으로 계측기의 설정을 변경할 수 있습니다

GPIB 및 메시지-기반 VXI 계측기에 대한 Upload 및 WRITE STATE 동작은 Direct I/O 탭에서의 Conformance 및 State (Learn String) 설정에 의해서 영향 받습니다.

Conformance가 IEEE 488.2 이면, VEE가 IEEE 488.2 *LRN?를 이용하여 자동으로 런스트링을 관리합니다. Conformance가 IEEE 488이면, Upload String에서 상태를 쿼리하는데 사용하는 명령을 지정하고, Download String에서는 상태를 다운로드할 때 선행되는 명령을 지정합니다.

메시지-기반 VXI 계측기와 I-SCPI 를 지원하는 레지스터-기반 VXI 계측기는 IEEE 488.2 호환입니다.

Direct I/O 오브젝트에서 Upload State를 클릭하면 다음 결과가 발생됩니다.:

런스트링은 즉시 업로드됩니다.

런스트링은 Direct I/O가 존재하는 한, 다음 Upload시까지, Direct I/O에 저장되어 있습니다. 런스트링은 프로그램과 함께 저장됩니다.

Direct I/O 오브젝트를 클론하면, 런스트링도 함께 클론됩니다.

Learn String 예제

예를 들어, 런스트링을 이용하여 HP 54100A 디지타이징 오실로스코우프를 프로그램해야 하는 경우. 오실로스코우프에 대해서 다음의 사실을 미리 알고 있어야 합니다.:

이 오실로스코우프는 IEEE 488에 호환되며, IEEE 488.2에는 호환되지 않습니다.

오실로스코우프의 런스트링을 쿼리하는데는 SETUP? 명령어를 사용합니다.

계측기로 다운로드될 SETUP 명령을 런스트링 앞에 써야 합니다. SETUP의 P 문자와 다운로드된 런스트링의 첫 문자사이에 공백이 들어가야 합니다.

오실로스코우프를 적절히 설정하기 위해서는 Instrument Manager를 이용해야 합니다. 런스트링을 위한 설정은 다음과 같습니다.

오실로스코우프에서 런스트링을 업로드하기 위해서는, 이 오실로스코우프를 제어하는 Direct I/O 오브젝트의 오브젝트 메뉴에서 Upload를 클릭합니다. 런스트링을 다운로드하기 위해서는 다음 트랜잭션을 사용합니다.:

   WRITE STATE

데이터 읽기

Direct I/O를 이용하여 계측기로부터 데이터를 읽기 위해서는, READ 트랜잭션을 사용합니다.

주의

계측기는 다양한 포맷으로 데이터를 리턴합니다. 일반적으로, VEE로 무슨 종류의 데이터를 얼마나 많이 읽어야 하는지 알고 있어야 합니다. 데이터의 종류에 따라서 데이터 인코딩과 포맷을 트랜잭션에서 지정해야 합니다. 읽고 있는 데이터의 양에 따라서 트랜잭션 대화상자에서 SCALAR 또는 ARRAY 를 지정합니다.

Direct I/O 오브젝트를 GPIB, 메시지-기반 VXI 및 씨리얼 계측기와 사용할 때 가장 많이 사용하는 트랜잭션은 다음과 같습니다.:

READ TEXT

READ BINBLOCK

GPIO 계측기에서 Direct I/O 오브젝트로 데이터를 읽을 때는 READ BINARY 또는 READ IOSTATUS 트랜잭션만 사용합니다.

레지스터-기반 및 일부 메시지-기반 VXI 계측기에서 Direct I/O 오브젝트로 데이터를 읽을 때는 READ REGISTER 또는 READ MEMORY 트랜잭션을 사용합니다. 이들 트랜잭션은 I-SCPI를 지원하지 않는 레지스터-기반 VXI 계측기와 통신할 수 있는 유일한 수단입니다.

주의

계측기로부터 데이터를 읽는데 문제가 있으면, Bus I/O Monitor를 이용하여 데이터 포맷을 관찰하십시오.

READ TEXT 트랜잭션

종종, 쿼리를 이용하여 계측기로부터 읽은 데이터는 텍스트로 포맷된 단일 숫자입니다. 예를 들어, 전압계는 각각의 읽은 값을 1.234E+00와 같이 지수형식의 단일 값으로 리턴합니다. 전압계에서 값을 읽는 트랜잭션은 다음과 같습니다.:

   "READ TEXT a REAL"

일부 계측기는 쿼리에 대해서 측정값을 문자와 복합하여 리턴합니다. 일반적으로, READ TEXT REAL 트랜잭션이 앞에 붙어있는 문자를 제거하고 숫자만을 뽑아내므로 문제가 되지는 않습니다.

주의

계측기에서 숫자 데이터를 읽을 때는, 계측기 데이터의 데이터 타입이, 필요에 따라 인스트루먼트 I/O 데이터 종류 변환에서 정의된 규칙에 따라서 자동적으로 변환됩니다.


MultiInstrument Direct I/O 오브젝트 사용법

MultiInstrument Direct I/O 오브젝트(I/O [image] Advanced I/O [image] MultiInstrument Direct I/O)로는 하나의 오브젝트에서 여러 대의 계측기와 직접 I/O 트랜잭션을 실행할 수 있습니다. 이 오브젝트는 VEE가 지원하는 모든 인터페이스와 동작하는 표준트랜잭션입니다.

MultiInstrument Direct I/O의 각 트랜잭션에 각각의 계측기를 지정할 수 있다는 것을 제외하곤ㄴ Direct I/O 오브젝트와 유사한 형태입니다. MultiInstrument Direct I/O는 Direct I/O 오브젝트가 하는 것 처럼 특정 계측기를 제어할 필요가 없으므로, 이 오브젝트의 타이틀에는 계측기 이름, 주소 또는 라이브 모드 상태가 표시되지 않습니다.

MultiInstrument Direct I/O를 사용하여, 계측기마다 사용해야 하는 Direct I/O 오브젝트의 개수를 줄일 수 있어서, 각각의 오브젝트를 해석하는 시간을 줄일 수 있습니다. 이로 인한 성능의 향상은 VXI 인터페이스를 사용하는 경우에 매우 중요합니다. VXI 인터페이스 속도는 계측기 제어에서 GPIB 인터페이스 보다 속도가 빠릅니다.

다음 그림은 4개의 계측기와 통신하도록 작성된 MultiInstrument Direct I/O 오브젝트와 트랜잭션 대화상자입니다.

Transaction 대화상자

I/O Transaction 대화상자는 2 개의 추가 필드를 가지는 것 이외에는 Direct I/O오브젝트의 I/O Transaction 대화상자와 유사합니다. 다른 필드는 동일한 방식으로 동작합니다. 다음 절에서는 2 개의 추가 필드에 대해서 설명합니다.

계측기 필드

계측기 필드에는 현재 설정된 계측기 이름이 출력됩니다. 이 필드를 드롭다운하면 사용할 수 있는 현재 설정된 계측기 목록이 표시됩니다. 각 트랜잭션에서 서로 다른 계측기를 선택할 수 있습니다.

Address 필드

Address 필드는 계측기 필드에서 선택된 계측기의 주소를 지정합니다. Address 필드는 2 개의 모드를 가집니다.: Default Address와 Address

Default Address는 계측기가 원래 설정될 때 지정된 주소를 사용합니다. Address:로 설정하면 다른 주소를 입력할 수 있는 입력창이 표시됩니다.

특정 숫자, 변수명 이나 표현식을 주소창에 입력할 수 있습니다. 유효한 주소를 입력해야 합니다. Address:에 입력된 값은 오브젝트가 실행될 때 계측기의 주소를 변경합니다. 주소 제어 핀과 같이 동작합니다. 다음 그림은 Address: 를 사용하는 I/O 트랜잭션 대화상자의 사례입니다.

트랜잭션 편집

I/O 트랜잭션 대화상자에서 트랜잭션을 편집할 때, 해당 계측기의 타입에 의해서 허용되는 트랜잭션만 사용할 수 있습니다. 예를 들어, Instrument Field의 계측기가 VXI 백플레인을 통해서 제어되는 VXI 계측기로 설정되어 있으면, REGISTER 또는 MEMORY 접근 트랜잭션을 설정할 수 있습니다.

I/O Transaction 대화상자가 특정 타입의 트랜잭션으로 설정되어 있는 상태에서, Instrument Field 이름을 변경하면, 그 트랜잭션은 다른 계측기에 대해서도 정확하게 유지되어야 합니다. 그 트랜잭션이 정확하지 않으면, I/O Transaction 대화상자의 입력항목은 그 계측기 타입에 대한 최종 유효 트랜잭션으로 변경됩니다. VXI 계측기에 대해서, Instrument Field 이름을 VXI 이외의 계측기로 변경하면, REGISTER 접근 트랜잭션은 정확하기 않게 됩니다.

오브젝트 메뉴

MultiInstrument Direct I/O 오브젝트의 오브젝트 메뉴는 Direct I/O 오브젝트의 오브젝트 메뉴와 유사합니다. MultiInstrument Direct I/O 에서는 Show Config... 또는 Upload State 메뉴를 제공하지 않습니다. 이들 메뉴는 특정 계측기 설정에만 사용됩니다. 계측기의 설정을 조회하거나 계측기의 설정을 업로드 하기 위해서는 Direct I/O 오브젝트를 사용하십시오.

트랜잭션에서 계측기의 라이브모드를 표시하는 기능이 없습니다. 특정 계측기에 대한 라이브모드를 제어하기 위해서는 I/O [image] Instrument Manager...,를 클릭하여, 해당 계측기의 설정을 변경하십시오.


Interface Operations 오브젝트 사용법

Interface Operations 오브젝트(I/O [image] Advanced I/O [image] Interface Operations) 로는 기초 명령어를 사용하여 GPIB, VXI, 및 씨리얼 계측기를 제어할 수 있습니다. Interface Operations 오브젝트는 기초제어를 제공하는 2 타입의 트랜잭션을 지원합니다.: EXECUTE 및 SEND

EXECUTE 트랜잭션

EXECUTE 트랜잭션은 다음 형태입니다.:

   EXECUTE Command

여기서 Command는 EXECUTE 명령어 요약(Interface Operations 오브젝트)의 명령어 중의 1 개 입니다. 이 테이블에서 설명된 명령어들은 Direct I/O 오브젝트에서 설명된 명령어와 동일한 이름을 가지지만 다음과 같은 차이점이 있습니다.

• Direct I/O EXECUTE 명령어는 명령을 받을 계측기를 지정합니다.

• Interface Operations EXECUTE 명령어는 여러 개의 계측기를 지정할 수 있습니다. GPIB에 대해서는 계측기가 리스너로 지정되어야 합니다.

EXECUTE 명령어 요약(Interface Operations 오브젝트):

명령어 | 설명
ABORT | IFC (Interface Clear) 라인을 활성화하여 GPIB 인터페이스를 클리어합니다. VXI 인터페이스를 클리어 및 리셋트하기 위해서는 CLEAR 명령을 사용하십시오.
CLEAR | DCL (Device Clear)을 전송하여 모든 GPIB 계측기를 클리어합니다. VXI의 경우에는, 인터페이스를 리셋하고 Resource Manager를 실행합니다.
TRIGGER | GPIB에 대해서, GET (Group Execute Trigger)을 전송하여 리스너로 지정된 모든 계측기를 트리거합니다. VXI의 경우에는 TTL, ECL, 또는 외부 트리거를 트리거합니다.
REMOTE | GPIB의 경우, REN (Remote Enable) 라인을 활성화합니다. VXI의 경우에는 이 기능이 없습니다.
LOCAL | GPIB의 경우, REN (Remote Enable) 라인을 해제합니다. VXI의 경우에는 이 기능이 없습니다.
LOCAL LOCKOUT | GPIB의 경우, LLO (Local Lockout) 메시지를 보냅니다. LLO가 전송되는 순간에 원격모드로 있는 계측기는 전면판 기능이 사용중지됩니다. VXI의 경우에는 이 기능이 없습니다.
LOCK INTERFACE | 공유자원을 가지는 다중-프로세스 시스템에서, 다른 프로세스가 자신이 사용할 자원을 사용하지 못하도록, 프로세스가 공유자원을 락(Lcok) 시킵니다.
UNLOCK INTERFACE | 공유자원을 가지는 다중-프로세스 시스템에서, 다른 프로세스가 자신이 사용할 자원을 사용하지 못하도록 락(Lcok) 시켰던 공유자원을 해제시킵니다.
PASS CONTROL | 특정 주소의 GPIB 계측기가 액티브 컨트롤러가 될 수 있는 경우, 그 계측기에게 제어권을 넘깁니다. VXI의 경우에는 이 기능이 없습니다.

SEND 트랜잭션

SEND 트랜잭션은 다음 형태입니다.:

SEND BusCmd

여기서 BusCmd는 SEND 버스 명령어에서 설명된 버스 명령어 중의 1 개 입니다. 이들 명령어는 IEEE 488.1에서 상세하게 정의되어 있습니다. BusCmd는 GPIB 버스에서만 사용됩니다. VXI에는 이들 기능이 지원되지 않습니다.

SEND 버스 명령어:

명령어 | 설명
COMMAND | ATN을 참(True)으로 설정하고, 지정된 데이터 바이트를 전송합니다. ATN이 참으로 설정되면 데이터가 버스 명령어임을 나타냅니다.
DATA | ATN을 거짓(False)으로 설정하고, 지정된 데이터 바이트를 전송합니다. ATN이 거짓으로 설정되면 데이터가 계측기 관련 정보임을 나타냅니다.
TALK | 토크(talk)할 계측기의 1 차 주소(0-30)를 지정합니다.
LISTEN | 리슨(listen)할 계측기의 1 차 주소(0-30)를 지정합니다.
SECONDARY | TALK 또는 LISTEN 명령 다음에 2 차 버스 주소를 지정합니다. 2 차 주소는 일반적으로, 카드케이지가 1차 주소로 설정되고, 각 플러그인 모듈은 2 차 주소로 지정되는 카드케이지 계측기에서 사용됩니다.
UNLISTEN | 모든 계측기가 리스닝(listening)을 중지하도록 합니다.; UNL을 전송합니다.
UNTALK | 모든 계측기가 토킹(talking)을 중지하도록 합니다.; UNT를 전송합니다.
MY LISTEN ADDR | VEE를 실행하고 있는 컴퓨터가 리슨(listen)하도록 지정합니다.; MLA를 전송합니다.
MY TALK ADDR | VEE를 실행하고 있는 컴퓨터가 토크(talk)하도록 지정합니다.; MTA를 전송합니다.
MESSAGE | 다중-라인 메시지를 전송합니다. 자세한 내용은 IEEE 488.1를 참조하십시오. VEE가 지원하는 다중-라인 메시지는 다음과 같습니다.: DCL Device Clear SDC Selected Device Clear GET Group Execute Trigger GTL Go To Local LLO Local Lockout SPE Serial Poll Enable SPD Serial Poll Disable TCT Take Control


I/O 설정 기술

이 절에서는 VEE를 이용하여 계측기를 설정하는 방법에 대한 정보를 제공합니다.

I/O 설정 파일

각 프로그램에서 사용하는 I/O 설정은 프로그램에 임베드(권장함)되거나 별도의 파일로 저장될 수 있습니다. 별도의 파일로 저장된 경우에는 VEE.IO 파일로 저장됩니다. 이 파일은 다음 경로에 저장됩니다.:

%userprofile%\Local Settings\Application Data\Agilent\VEE Pro 8.0

임베드된 설정을 가지지 않는 새로운 프로그램에서 계측기를 설정하면, 새로운 설정은 나머지 프로그램 세션 동안 메모리에 저장되고, 프로그램 종료시 VEE.IO 또는 .veeio 파일에 저장됩니다.

I/O 설정이 프로그램과 함께 저장되면, Instrument Manager의 Save 버튼이 디스에이블 됩니다. 설정을 유지하기 위해서는 OK 버튼을 클릭하여 프로그램을 저장해야 합니다. 이 기능을 사용하면 변경된 설정을 프로그램과 함께 저장합니다.

I/O 설정이 Name과 일치되는 계측기를 가지고 있지 않으면 계측기 제어 오브젝트를 가지고 있는 프로그램을 열수 없습니다. 여기서 Name은 오브젝트의 타이틀바의 텍스트가 아닌 Instrument Properties 대화상자의 Name 필드의 값 입니다.

오브젝트가 Panel Driver 또는 Component Driver 이면, ID Filename이 설정과 일치해야 합니다. Name 및 ID Filename 이외의 설정 내용은 이들 프로그램을 여는 것과 상관없습니다. 이들 이외의 설정은 프로그램이 어떻게 실행되는 가에는 영향을 미칠 수 있습니다.

설정파일 변경

일반적으로, VEE는 VEE.IO 파일을 관리합니다. 그러나, VEE 이외의 환경에서 이 파일을 지우거나, 업데이트하고 복사해야 하는 경우가 있습니다.

다른 사람이 개발한 계측기 제어 프로그램을 실행해야 하는데, I/O 설정이 프로그램에 임베드되어 있지 않으면, 프로그램에서 사용해야 하는 I/O 설정이 있어야 합니다. 이것을 2 가지 방식으로 얻을 수 있습니다.:

1 Instrument Manager와 설정 대화상자를 이용해서 프로그램에 모든 계측기를 수동으로 추가합니다.

2 해당 프로그램의 VEE.IO 파일을, 이 절의 시작부분에서 제공한 경로를 이용하여 실행할 컴퓨터의 Agilent 폴더로 복사합니다.

파일을 직접 복사하는 경우에는 기존 VEE.IO 파일을 다른 이름(예, VEEIO.OLD)으로 백업하여 향후 다시 사용할 수 있도록 합니다.

3 임베드된 설정을 프로그램과 함께 저장합니다. Save As 옵션을 사용하고 “Save I/O configuration with program" 항목이 체크되어 있어야 합니다.

주의

임베드된 I/O 설정이 프로그램과 함께 저장되면, I/O 설정을 스스로 가지게 됩니다. 외부 I/O 설정파일에 의존할 필요가 없습니다.

프로그램 상에서 I/O 설정

계측기 설정을 프로그램에서 변경할 수 있습니다. I/O 설정을 프로그램으로 제어하는 가장 좋은 방법은 Function and Object Browser에서 프로그램 계측기 설정을 사용하는 것입니다. Type 윈도우에서 Instruments를 선택하여 아래 그림과 같이 창을 브라우징합니다. 계측기를 선택하면 이 대화상자의 하단의 Create Set Formula 버튼이 활성화됩니다.

Create Set Formula 버튼을 클릭하면 다음과 같은 Formula오브젝트 대화상자가 표시됩니다.

이전 버전의 VEE에서는 컨트롤 핀을 통해서 프로그램으로 설정할 수 있었습니다. 이들 핀은 낙후 되었지만, 레거시 SICL 스타일의 GPIB 또는 씨리얼 인터페이스에는 지원되고 있습니다. 컨트롤 핀은 Panel Driver, Component Driver 및 Direct I/O 계측기 제어 오브젝트에서 사용할 수 있어서, 계측기 주소 및 타임아웃 등에 다른 값을 적용할 수 있습니다. Interface Operations, Instrument Event, 및 Interface Event 오브젝트에서 타임아웃 값을 설정하는 컨트롤 핀을 사용할 수 있습니다.

컨트롤 핀으로 새로운 타임아웃이나 주소가 제공되면, 그 값은 해당 계측기에 모두 적용됩니다. 특정 계측기와 통신하는 모든 계측기의 컨트롤 오브젝트가 새로운 타임아웃이나 주소를 사용하기 시작합니다. Instrument Properties 대화상자에서 설정한 값이나 VEE 설정파일에 저장된 값과 다른 새로운 값을 사용할 수 있습니다. 그러나, 여기서 설정한 값은 VEE 설정파일에는 적용되지 않습니다.

다음 그림은 Address 제어핀을 가지는 Direct I/O 오브젝트 사용 예제입니다. HP E1413B는 타이틀바에서 처럼 원래는 16032로 설정되었습니다. 이 컨트롤 핀의 입력값은 16040(새로운 주소)입니다. 컨트롤핀으로 새로운 값이 전송되면, HP E1413B와 통신하는 모든 다른 오브젝트도 새로운 주소 16040을 사용합니다.

LAN 게이트웨이

VEE는 계측기를 제어하기 위해서 LAN 게이트웨이를 사용할 수 있습니다. LAN 게이트웨이는 VXI, GPIB, GPIO 또는 Serial 인터페이스를 가지는 계측기를 원격에서 접근할 수 있도록 하는 컨트롤러입니다.

이것을 사용하여 클라이언트-서버 모델을 적용할 수 있습니다. VEE는 원격 컴퓨터(서버)의 LAN 게이트웨이에 접근할 때 클라이언트처럼 동작합니다. 서버는 데몬이라고 불리는 위임된 프로세스를 가집니다. 이 프로세스는 서버에서 실행되는 SICL 프로세스의 일부입니다. 데몬은 VEE 클라이언트와 통신하고, 자신의 인터페이스와 계측기에 접근할 수 있도록 합니다.

클라이언트 프로세스는 SICL이 지원하는 인터페이스 상의 계측기를 제어하기 위해서 SICL을 호출합니다. 이들 인터페이스는 SICL 프로세스가 실행되고 있는 LAN 게이트웨이 상에서 설정됩니다. LAN 게이트웨이를 이용하여, 원격 컴퓨터에 설치된 이들 인터페이스에 접근할 수 있습니다.

클라이언트의 입장에서는, 인터페이스와 계측기가 물리적으로 원격컴퓨터에 접속되어 있다는 사실을 느끼지 못합니다.

설정

LAN게이트웨이를 사용하기 위해서는 VEE와 LAN 하드웨어를 설정해야 합니다.

VEE 설정. VEE는 Properties 대화상자의 상세내용에서 설명한 바와 같이, 계측기를 설정하면서 게이트웨이 접근에 대해서도 설정할 수 있습니다. 다음 그림은 Instrument Properties 대화상자입니다. Gateway 필드의 값은 디폴트 설정값인 This host로 되어 있습니다.:

Gateway 필드를 클릭하여 게이트웨이 이름을 선택할 수 있습니다. 이전에 설정된 모든 게이트웨이가 표시됩니다. This host는 항상 VEE가 실행되고 있는 컴퓨터를 의미합니다.

선택할 수 있는 게이트웨이가 없으면, 게이트웨이 이름을 직접 입력할 수 있습니다. 여기서 입력한 이름은 심볼 호스트이름 테이블이나 네임서버에 의해서 IP 주소로 변환될 수 있어야 합니다. 55.55.55.555와 같이 닷포맷으로 IP 주소를 입력할 수도 있습니다.

게이트웨이를 선택하는 것 이외의 다른 프로세스는 그대로 유지됩니다. Panel Driver와 Direct I/O 오브젝트는 이전처럼 설정합니다. 아래 그림은 원격컴퓨터 상의 인터페이스와 계측기에 대해서 설정된 다양한 I/O 계측기 사례입니다.

LAN 하드웨어 설정. SICL LAN 게이트웨이 지원은 VEE가 실행되고 있는 컴퓨터, 게이트웨이 데몬이 실행되고 있는 컴퓨터 및 전반적인 LAN 설정에 따라서 달라집니다. LAN을 설정하고 이름과 IP 주소가 변환될 수 있는가는 해당 네트워크의 시스템 관리자에게 문의하시기 바랍니다.

게이트웨이 데몬이 실행되고 있는 컴퓨터에 대해서는, 데몬 설치 과정에서 지역 네트워킹 파일이 적절하게 설치됩니다. E5810A LAN/GPIB 게이트웨이를 사용하고 있으면, 이 게이트웨이가 스스로 정보를 가지고 있으며, 모든 내부 설정이 완료됩니다.

실행동작

이상적으로는, 게이트웨이를 사용하면 인터페이스와 계측기가 클라이언트 컴퓨터에서 사용되고 있는 것처럼 동작합니다. 그러나, 응답시간은 LAN 설정, 호스트에 연결된 개수, LAN과 LAN간의 설정 및 현재 네트워크 부하 등에 따라서 변경됩니다. 때때로, LAN상의 케이블이 끊어지거나 컴퓨터 오류로 인해서 연결이 종료되기도 합니다. 이러한 것들은 타임아웃 기간을 설정하여 적응할 수 있습니다.

서버가 클라이언트로부터 I/O 요청을 받으면, VEE, 서버는 Instrument Properties 대화상자에서 입력한 타임아웃 값을 이용합니다. 이것을 SICL 타임아웃이라고 합니다. 서버의 동작이 지정된 시간 안에 완료되지 않으면, 서버는 타임아웃이 발생하고, 평범한 VEE 타임아웃이 발생했음을 나타내는 응답을 클라이언트로 보냅니다.

클라이언트가 서버에 I/O 요청을 보내면, 클라이언트는 타이머를 시작시키고 서버로부터 응답을 기다립니다. 서버가 지정된 시간까지 응답하지 않으면, 타임아웃이 발생하고 VEE 타임아웃 에러가 생성됩니다. 이것을 LAN 타임아웃이라고 합니다.

클라이언트 타임아웃은 서버타임아웃과 다릅니다. 왜냐하면 서버의 I/O 트랜잭션 시간이 일반적으로 LAN을 통한 전송시간과 다르기 때문입니다. 서버가 5 초 이내(VEE 디폴트 타임아웃 시간)에 I/O 트랜잭션을 완료할 수 있더라도, LAN을 통해서 클라이언트에게 전송되는 시간은 5 초 이상이 걸릴 수 있습니다.

2 개의 타임아웃은 SICL 설정파일 안에서 2 개의 항목을 이용하여 조정되는 별도의 값입니다.

sicl_infinity | Advanced Instrument Properties 대화상자에서 입력한 사용자 정의 타임아웃(SICL 타임아웃)이 무한대(0)일 때 서버에 의해서 사용됨. 이 값은 서버 안에서 트랜잭션이 완료될 때 까지 기다리는 시간을 초 단위로 표시합니다.
lan_timeout_delta | 클라이언트의 타임아웃 기간(LAN 타임아웃)을 결정하기 위해서 서버의 타임아웃 시간에 더해지는 시간. LAN 타임아웃은 입출력 계측기의 필요를 충족시키기에 필요한 만큼만 증가하며, 감소되는 경우는 없습니다. 이 기능을 이용하면 SICL 타임아웃이 변경될 때 마다 LAN 타임아웃을 재조정하는 오버헤드를 없앨 수 있습니다.

중요한 섹션을 보호

다중-프로세스 테스트 시스템에서, 프로세스 간에 자원을 공유하기 위해서는 중요한 섹션을 보호하는 잠금 기능이 필요합니다. 중요한 섹션은 이들 프로세스 중의 하나가 공유자원을 배타적으로 사용해야 할 때 보호될 필요가 있습니다.

다른 프로세스가 중요 섹션 동안 계측기에 접근하는 것을 방지하기 위해서, 첫 번째 프로세스가 계측기를 잠금(lock)니다. 여기서 잠금은 이 타스크가 완료될 때까지 유지됩니다. 이 기간 동안, 2 번째 프로세스는 해당 계측기에 대해서 해당 계측기를 자신이 사용하기 위해서 잠금하는 기능을 포함하여 아무런 동작을 할 수 없습니다.

다음 EXECUTE 트랜잭션을 Direct I/O 오브젝트, MultiInstrument Direct I/O 오브젝트 또는 Interface Operations 오브젝트에서 사용하여 중요 섹션을 보호할 수 있습니다. 트랜잭션 구문은 사용하고 있는 인터페이스와 트랜잭션 오브젝트에 따라서 변경됩니다. GPIB, Serial 및 GPIO에 대해서는 전체 인터페이스가 잠금됩니다. VXI의 경우에는 각 계측기가 잠금됩니다.

VXI 계측기를 백플레인으로 직접 접근하여 잠그기 위해서는 Direct I/O 오브젝트에서 다음 트랜잭션을 사용합니다.:

   EXECUTE LOCK DEVICE

EXECUTE UNLOCK DEVICE

MultiInstrument Direct I/O 오브젝트에서는 다음 트랜잭션을 사용합니다.:

   EXECUTE vxiScope LOCK DEVICE

EXECUTE vxiScope UNLOCK DEVICE

여기서 vxiScope는 HP E1428B과 같이 VXI 오실로스코우프를 설정한 이름입니다.

Interface Operations 오브젝트에서 GPIB, Serial 및GPIO 인터페이스를 잠그기 위해서는 다음 트랜잭션을 사용합니다.:

   EXECUTE LOCK INTERFACE

EXECUTE UNLOCK INTERFACE

지원되는 플랫폼(EXECUTE LOCK/UNLOCK)

플랫폼 | 지원되는 I/O 인터페이스
Windows 2000, Windows XP | USB, TCP/IP, VXI (PC with VXLink, or embedded)a

a VXI 계측기를 레지스터와 메모리로 접근(READ/WRITE REGISTER/MEMORY 트랜잭션)하는 것을 잠글 수는 없습니다. 다른 프로세스의 이전 잠금에 의해서 메모리가 VEE프로세스 공간으로 매핑되어 있으면, 직접 메모리에 접근하는 첫 번째 트랜잭션만 잠글 수 있습니다. 이후로는 공유메모리가 있는 상태에서 하나의 메모리 위치를 여러 개의 프로세스가 동시에 접근하는 것을 방지할 수는 없습니다.

실행 동작

EXECUTE LOCK 트랜잭션이 실행되면, 계측기나 인터페이스 상의 잠금을 획득하려고 시도합니다. 다른 프로세스에 의해서 잠금된 섹션이 없으면, 이 트랜잭션은 완전히 실행되고 잠금 획득을 성공합니다. 이전에 잠금된 것이 있으면, 해당 계측기 또는 인터페이스에 대해서 설정된 타임아웃 동안 트랜잭션을 블록합니다.

타임아웃 기간 동안에 잠금을 해제하는 다른 프로세스가 있으면, 그 트랜잭션은 완료된 다음 잠금을 획득합니다. 타임아웃 기간이 지나면, 에러가 발생하면서 에러 메시지가 출력됩니다. 이 에러는 트랜잭션 오브젝트의 에러핀을 통해서 잡을 수 있습니다.

잠금을 획득한 이후, Direct I/O, MultiInstrument Direct I/O, Panel Driver, Component Driver 및 Interface Operations 오브젝트에서 발생하는 I/O는 다른 프로세스가 해당 계측기나 인터페이스와 통신하려고 시도하는 것으로부터 보호됩니다.

중요 섹션을 통과한 후에는, 대응되는 EXECUTE UNLOCK 트랜잭션을 실행할 수 있습니다.

잠금은 프로세스 간에 중요 섹션만을 보호합니다. 단일 프로세스는 EXECUTE LOCK 트랜잭션을 순차적으로 실행해서 네스팅된 잠금을 생성할 수 있습니다. 다른 프로세스에 의해서 이전에 잠금된 것이 없으면, 이들 2 개의 트랜잭션이 성공적으로 잠금을 할 수 있습니다.

이후에는 프로세스가 2 개의 EXECUTE UNLOCK 트랜잭션을 실행해야 합니다. 하나의 EXECUTE UNLOCK 트랜잭션만 실행하면, 계측기나 인터페이스가 잠금상태로 남아있게 됩니다. 이전에 잠금된 것이 없는데, 트랜잭션이 잠금해제를 시도하면 런타임에러가 발생합니다.

잠금상태를 VEE가 실행되고 있는 동안만 유지됩니다. VEE 프로그램이 실행을 종료하면, 계측기와 인터페이스의 모든 잠금이 해제됩니다. 이 기능으로 프로그램이 정상적으로 종료되거나, 런타임 에러발생, 중지버튼 클릭, 또는 EXECUTE UNLOCK 트랜잭션이 실행되지 않아서, 사용자가 계측기나 인터페이스를 잠금 상태로 방치하는 것을 방지할 수 있습니다.

예: EXECUTE LOCK/UNLOCK 트랜잭션- VXI

다음은 MultiInstrument Direct I/O 오브젝트에서 EXECUTE LOCK/UNLOCK DEVICE 트랜잭션을 사용하는 예제입니다. MultiInstrument Direct I/O 오브젝트 대신 Direct I/O 오브젝트를 이용할 수 있지만, 이 경우에는 각 계측기마다 별도의 오브젝트를 사용해야 합니다. For Count 오브젝트는 서로 다른 계측기 상에서 잠금을 획득하려고 시도하는 3 개의 쓰레드를 구동합니다. 사용자 오브젝트에서 I/O 동작이 완료된 후에는, 잠금해제를 연속하여 실행합니다.

각 트랜잭션은 각 계측기에 설정된 타임아웃 기간 동안 개별 잠금을 획득하려고 시도합니다. 이들 3 개 중에서 하나라도 트랜잭션 타임아웃이 발생하면 그 에러는 에러핀에 의해서 잡힙니다. 잠금을 획득한 후 타임아웃에러가 발생하는 트랜잭션이 실행되면, 에러핀이 이 에러를 잡습니다.

프로그램이 잠금 트랜잭션을 재실행하기 전에, 모든 잠금이 해제되어야 합니다. 이것 때문에 MultiInstrument Direct I/O 오브젝트에 에러핀을 추가했습니다. 이 오브젝트가 첫 번째 오브젝트가 잠금을 획득한 순서와 동일한 순서로 각 계측기를 잠금해제 해야 합니다.

잠금을 하지 않은 상태에서 잠금을 해제하는 트랜잭션을 실행하면 에러가 발생하므로, 잠금 해제를 실행하는 오브젝트에도 에러핀을 추가했습니다. 첫 번째 오브젝트에서 트랜잭션이 잠금을 획득하지 못하면, 다음 오브젝트에서의 트랜잭션의 잠금 해제도 실패합니다.


I/O 제어 기술

이 절에서는 계측기 입출력 제어에 대한 추가 기술을 설명합니다.

폴링(Polling)

VEE는 IEEE 488.1에서 정의된 모든 씨리얼 폴을 지원합니다. 모든 GPIB 계측기 및 모든 VXI 메시지-기반 계측기는 씨리얼 폴을 지원합니다. VXI 메시지-기반 계측기는, 정의에 의해서, IEEE 488.2 호환됩니다. VXI 레지스터-기반 계측기는 I-SCPI 드라이버가 제공되면 IEEE 488.2 호환입니다. VEE는 병렬 폴을 지원하지는 않습니다.

다음 2 가지 방식으로 씨리얼 폴에 대한 응답을 받습니다.:

오브젝트 | 씨리얼 폴 동작
Instrument Event | Instrument Event 오브젝트는 지정된 계측기를 한 번 폴하여 스칼라 정수를 출력합니다. NO WAIT 옵션을 사용하는 씨리얼 폴 응답입니다. 또한 Instrument Event 오브젝트는 사용자가 제공하는 비트 마스크와 ALL CLEAR 및 ANY SET 옵션을 사용하여 씨리얼 폴 응답 바이트내의 특정 비트 패턴을 기다릴 수 있습니다.
Direct I/O | GPIB 계측기용 Direct I/O 오브젝트는 WAIT SPOLL 트랜잭션을 지원합니다. 이 트랜잭션은 사용자가 제공하는 비트 마스크와 ALL CLEAR 및 ANY SET 옵션을 사용하여 씨리얼 폴 응답이 특정 비트 패턴과 일치할 때까지 계측기를 반복하여 폴 할 수 있습니다. Direct I/O에 대해서는 Direct I/O 오브젝트와 Interface Operations오브젝트에서 트랜잭션 사용을 참조하십시오.

Instrument Event 오브젝트는 "I/O 제어 기술" 절에서 설명하는 Spoll 로 설정되면, 특별한 실행속성을 가집니다. 이 기능은 비트 마스크와 ALL CLEAR 및 ANY SET 옵션을 사용하여 특별한 비트 패턴을 기다리는 동안 다른 쓰레드가 계속 프로그램을 실행할 수 있도록 합니다.

NO WAIT로 설정하면 즉시 실행하고 GPIB 또는 메시지-기반 VXI 계측기의 상태 바이트를 리턴합니다. 이들 오브젝트는 Timeout 컨트롤 입력을 가집니다. Timeout 컨트롤 입력은 오브젝트 메뉴에서 Add Terminal을 실행하여 추가할 수 있으며, 타임아웃 시간을 설정할 수 있습니다. 다음 그림은 Spoll 사용예제 입니다.:

서비스 요청(Service Requests)

VXI 계측기의 서비스 요청(SRQ 메시지)을 감지하기 위해서, Instrument Event 오브젝트(I/O [image] Advanced I/O [image] Instrument Event)를 사용합니다. GPIB 계측기 또는 RS-232의 서비스 요청을 감지하기 위해서는 Interface Event 오브젝트(I/O [image] Advanced I/O [image] Interface Event)를 사용합니다.

Instrument Event 오브젝트 및 Interface Event 오브젝트는 인터럽트 처리 방식과 유사한 기능을 제공합니다. 이 기능을 관찰하기 위해서는, Debug Show Execution Flow를 활성화한 상태에서 프로그램을 실행하십시오.

예를 들어, Interface Event는 프로그램에서 다음과 같이 동작합니다.:

1 Interface Event 오브젝트(GPIB에 대해서 WAIT 옵션을 지정)가 동작하기 전에는, 각 쓰레드가 동등한 우선순위를 가지고 일반적으로 실행됩니다.

2 Interface Event 오브젝트가 실행되면, Interface Event 데이터 출력에 종속된 쓰레드는 Interface Event 오브젝트에서 실행이 일시중지됩니다. Interface Event 에 종속되지 않은 다른 쓰레드는 실행을 계속합니다.

3 특정 인터페이스에서 SRQ가 검출되면, Interface Event의 데이터 출력이 활성화됩니다. 이 시점에서, Interface Event의 데이터 출력에 종속된 쓰레드의 실행이 완료될 때까지 모든 다른 쓰레드의 실행은 블록됩니다.

예: 서비스 요청(Service Request). 다음은 서비스 요청을 처리하는 한 가지 방법입니다. 이 예제에서는, dvm 이나 scope 가 서비스를 요청할 수 있습니다. 이 프로그램은 예제 폴더에서 manual17.vee in the examples directory.

주의

이 프로그램은 지정된 계측기가 연결되고, 설정되어 있으며, 전원이 인가되어 있는 경우에만 실행됩니다. 이 프로그램을 프로그래밍 기술을 향상하기 위한 예제로 사용하거나 실제 사용중인 계측기와 통신하도록 변경하여 사용할 수도 있습니다.

이 프로그램은 Instrument Event를 사용하여 각 계측기의 상태 바이트를 얻고, 서비스를 요청한 계측기를 찾습니다. 각 상태 바이트는 If/Then/Else와 bit(x,n) 함수를 이용하여 비트 6이 참(True)인지 검색됩니다. 상태바이트의 비트 6이 참인 계측기가 서비스를 요청한 계측기입니다.

Until Break 오브젝트는 이후 발생하는 서비스요청을 관리하는 전체 쓰레드를 자동으로 재활성화합니다. Instrument Event 오브젝트는 NO WAIT로 설정되어 있으며, 이것은 마스크를 사용하지 않고 상태바이트가 리턴됨을 의미합니다. 마스크 값이 64이면, Instrument Event 오브젝트는 ANY SET로 설정되고, If/Then/Else 및 bit(x,n) 함수가 사용되지 않습니다.

계측기마다 서비스 요청을 클리어하고 재활성화하는 방법이 다릅니다. 위의 프로그램에서는 dvm은 SRQ 기능을 클리어하고 재활성화하기 위해서 단지 씨리얼 폴만 필요로 합니다. 그러나 scope는 이벤트 레지스터를 클리어하기 위해서 추가 프로그램이 필요합니다.

Instrument Event 오브젝트를 메시지-기반 VXI 계측기에서 서비스 요청을 검출하기 위해서 사용할 수 있습니다. VXI 컨트롤러의 시그날 레지스터로 요청 참 이벤트(request true, RT)를 쓰는 계측기는 Read STB 워드 씨리얼 프로토콜 명령을 받습니다. 요청 참 이벤트는 서비스 요청으로 인식됩니다.

메시지-기반 계측기는 그것의 상태바이트를 컨트롤러고 회신하고, 요청 거짓 이벤트(request false, RF)를 VXI 컨트롤러의 시그날 레지스터로 씁니다. 이 상태바이트는 (비트 6 이외의) 어떤 비트가 설정되었는가 확인하기 위해서 제공된 마스크 값과ANY SET 또는 ALL CLEAR 옵션을 사용합니다. 따라서, 메시지-기반 VXI 계측기로 부터의 서비스 요청을 검출하고 어떤 요청이 발생하였는지 확인하기 위해서 하나의 오브젝트, Instrument Event 오브젝트를 사용할 수 있습니다.

이들 오브젝트의 Timeout 컨트롤 입력은 오브젝트 메뉴에서 Add Terminal을 실행하여 추가할 수 있으며, 타임아웃 시간을 설정할 수 있습니다. 자세한 내용은 Instrument Event 와 인터페이스 이벤트를 참조하십시오

버스 모니터링

Bus I/O Monitor 오브젝트(I/O [image] Bus I/O Monitor)를 이용하여 VEE와 모든 토커 및 리스너간에 전송된 메시지를 기록할 수 있습니다. Bus I/O Monitor 오브젝트는 VEE에서 나가거나 들어오는 버스 메시지만을 저장합니다.

Bus I/O Monitor 오브젝트로는 VEE가 지원하는 모든 인터페이스(GPIB, VXI, serial, 또는 GPIO)를 모니터할 수 있습니다. Bus I/O Monitor 오브젝트의 각 인스턴스는 하나의 하드웨어 인터페이스만을 모니터 할 수 있습니다.

다음은 *RST 명령얼 GPIB 주소 17에 있는 계측기로 전송하고, 이 때의 버스 메시지를 모니터한 프로그램입니다.

Bus I/O Monitor의 디스플에이 영역에는 5 개의 행이 표시됩니다.:

• 컬럼1 – 라인 번호

• 컬럼2 – 버스 명령어(*), 또는 아웃바운드데이터(>), 인바운드데이터(<)

• 컬럼3 – 전송된 바이트의 16진수 값

• 컬럼4 - 번송된 바이트에 대응되는 7-비트 ASCII 문자

• 컬럼5 - 버스 명령어 니모닉(버스 명령만, 데이터에 대해서는 공백)

Bus I/O Monitor는 오픈뷰상태보다 아이콘뷰 상태에서 훨씬 빠른 속도로 실행됩니다.

기초 버스 제어

다음과 같이 2 가지 방법으로 기초 버스 메시지를 전송할 수 있습니다.

오브젝트 | 버스 메시지 기능
Interface Operations | 이 오브젝트는 임의의 GPIB 계측기에 임의의 버스 메시지를 전송하거나, VXI 인터페이스를 리셋하고 다양한 VXI 백플레인 트리거 라인을 발생합니다.
Direct I/O | GPIB, 메시지-기반 VXI 계측기 및 I-SCPI 지원 레지스터-가반 VXI 계측기용 Direct I/O오브젝트는 EXECUTE 트랜잭션에서 CLEAR, LOCAL, REMOTE 및 TRIGGER 명령을 전송할 수 있습니다.

Interface Operations 오브젝트 및 Direct I/O 오브젝트에 대한 추가 내용은 Using Transactions in Direct I/O 및 Interface Operations를 참조하십시오.

계측기 다운로딩

일부 계측기에는 마크로, 측정루틴 이나 완전한 측정 프로그램을 다운로드 할 수 있습니다. 예를 들어, 일부 HP 계측기에는 HP Instrument BASIC 프로그램을 사용할 수 있습니다. 이들 계측기의 내부에서 완전한 HP Instrument BASIC 프로그램을 작성하여 실행할 수 있습니다. 다음은 계측기에 측정루틴을 다운로드하는 한 가지 방식입니다.:

1 메모장 등의 텍스트 편집기를 이용해서 측정루틴을 작성합니다. 측정루틴을 일반적인 텍스트 파일로 저장합니다.

2 From File 오브젝트로 파일의 내용을 읽습니다.

3 Direct I/O에서 파일의 내용을 계측기로 전송합니다.

이 절에서는 이 방식을 이용해서 다운로드하는 프로그램을 설명합니다. Direct I/O에 대한 추가 내용은 Direct I/O 오브젝트의 사용을 참조하십시오.

다음 프로그램은 측정 프로그램을 HP 3852A로 다운로드 합니다. 이 예제는 비프 경고음을 2회 발생하고 메시지를 표시하는 서브프로그램 BEEP2를 다운로드 합니다. 이 프로그램은 예제 폴더에서 manual17.vee 로 제공됩니다.

주의

이 프로그램은 지정된 계측기가 연결되고, 설정되어 있으며, 전원이 인가되어 있는 경우에만 실행됩니다. 이 프로그램을 프로그래밍 기술을 향상하기 위한 예제로 사용하거나 실제 사용중인 계측기와 통신하도록 변경하여 사용할 수도 있습니다. 이 프로그램, manual17.vee는 임베드된 설정을 가집니다.

다음은 다운로드된 manual17.dat 파일의 내용입니다. manual17.dat 파일은 예제 폴더에서 제공됩니다.

   DISP MSG "LOADING BEEP2"

   WAIT 1

   SUB BEEP2

   DISP "BEEP2 CALLED"

   BEEP

   WAIT .5

   BEEP

   SUBEND

   DISP MSG "BEEP2 LOADED"


논리주소 및 I/O 어드레싱

입출력 장치에 접근하기 위해서는, Instrument Manager 대화상자에서 설명된 바와 같이 Instrument Manager를 이용하여, 정확한 주소를 확인하여 Instrument Properties 대화상자의 Address 필드에 그 주소를 입력해야 합니다.

이 절에서는, Direct I/O, Panel Driver, 및 Component Driver 입출력을 지원하는, 인터페이스 논리주소 및 계측기 주소를 포함한 VEE I/O 어드레싱 스키마에 대해서 설명합니다. VXIplug&play 입출력 동작에 대해선는 이 어드레싱 스키마를 사용하지 않습니다. VEE에서 VXIplug&play 주소사용법에 대한 내용은 "VXIplug&play 드라이버 설정" 를 참조하십시오.

주의

VEE는 PC용 E1383A 및 E1483A VXLink 인터페이스용, 임베디드 VXI 컨트롤러에 대해서 VXI 백플레인을 직접 접근을 지원합니다.

VEE 어드레싱 스키마는 논리주소를 이용합니다. 이 논리주소는 I/O Config 유틸리티를 이용하여 설정할 수 있습니다. I/O Config 유틸리티는 I/O 라이브러리에서 제공됩니다. Agilent I/O libraries의 설치 및 설정과 I/O Config를 이용하여 논리주소를 설정하는 방법에 대해서는 Installing the Agilent I/O Libraries를 참조하십시오. 인터페이스에 대한 논리주소는 아래 권장되는 I/O 논리주소 테이블의 내용에 따라서 설정할 것을 권장합니다.

테이블 권장되는 I/O 논리주소.

Logical Unit | PC
1 | GPIB (82340 또는 82341)
2 | GPIB (82340 또는 82341)
3 | GPIB (82340 또는 82341)
4 | GPIB (82340 또는 82341)
5 | GPIB (82340 또는 82341)
6 | GPIB (82340 또는 82341)
7 | GPIB (82340 또는 82341)
8 | GPIB (82340 또는 82341)
9 | COM1 씨리얼 포트
10 | COM2 씨리얼 포트
11 | COM3 씨리얼 포트
12 | COM4 씨리얼 포트
13 | GPIO (HP E2075)
14 | GPIB0 (National GPIB 카드)
15 | GPIB1 (National GPIB 카드)
16 | VXI (임베디드, 또는 VXLink를 이용하는 PC)
17 | GPIB2 (National GPIB 카드)
18 | GPIB3 (National GPIB 카드)

권장되는 VEE용 I/O 논리주소

다음 인터페이스 논리주소를 VEE와 함께 사용할 것을 권장합니다. Agilent I/O libraries의 설치 및 설정과 I/O Config를 이용하여 논리주소를 설정하는 방법에 대해서는 Installing the Agilent I/O Libraries를 참조하십시오.

주의

첫 번째 GPIB 카드에 대해서는 논리주소 7을 사용할 것을 권장합니다. 각 카드는 유일한 논리주소를 가져야 합니다.

PC에서 사용하는 내쇼날인스트루먼트의 GPIB에 대해서는 논리주소 14, 15, 17, 및 18 만을 사용할 수 있습니다.

I/O 어드레싱

다음 절에서는 다양한 타입의 계측기에 대한 어드레싱 스키마가 설명됩니다.

씨리얼 포트 주소 지정

씨리얼 포트는 I/O Config에서 지정한 논리주소를 이용하여 지원할 수 있습니다. 일반적으로, COM1 씨리얼 포트는 논리주소 9로 지정됩니다. 이 경우에는, COM1에 연결된 계측기의 주소를 9로 사용합니다.

GPIO 계측기 주소 지정

GPIO 계측기는 I/O Config에서 GPIO 인터페이스에 지정한 논리주소를 이용하여 지원할 수 있습니다. 일반적으로, GPIO 인터페이스에 대해서는 논리주소 13이 지정됩니다. 이 경우에는, GPIO 계측기에 대해서 주소 13을 사용합니다.

GPIB 인터페이스와 계측기의 주소 지정

GPIB 계측기는 다음 스키마를 이용하여 주소가 지정됩니다.:

SPA[SA]

여기서:

S | 는 GPIB 인터페이스의 논리주소입니다.
PA | 는 GPIB 계측기의 1 차 주소입니다.(00 부터 30까지의 값을 사용할 수 있습니다.)
SA | 는 2차 주소로 선택항목입니다.(00 부터 31까지의 값을 사용할 수 있습니다.)

다음은 이들을 사용한 2 개의 예제입니다.:

• 논리주소가 7, 1차 주소가 01 GPIB 계측기의 경우에는, Instrument Properties 대화상자에서 Address 필드에 701을 입력합니다.

• 논리주소가 14, 1차 주소가 09, 2차 주소가 02인 GPIB 계측기의 경우에는, Instrument Properties 대화상자에서 Address 필드에 140902를 입력합니다.

GPIB 논리주소 GPIB 인터페이는 I/O Config에서 GPIB 인터페이스에 지정한 논리주소를 이용하여 지원할 수 있습니다. GPIB 인터페이스에 대해서 권장되는 논리주소가 위의 권장되는 I/O 논리주소 테이블에 작성되어 있습니다. I/O libraries 에서 GPIB 인터페이스용으로 논리주소를 위의 권장되는 I/O논리주소로 설정하면, VEE는 이론적으로는, 지원되는 카드를 섞어서, 8 개의 GPIB카드까지 인식할 수 있습니다.

• 82340 또는 82341에 대해서는, 논리주소가 소프트웨어에 의해서 지정됩니다. 논리주소는 다음의 순서로 지정됩니다.: 7, 8, 1, 2, 3, 4, 5, 및 6. 그러나, 각 카드는 유일한 기본주소로 설정되어야 합니다.(기본주소를 설정하는 방법에 대해서는 해당 매뉴얼을 참조하십시오.)

내쇼날 인스트루먼트의 GPIB 드라이버는 GPIB0, GPIB1, GPIB2, 및 GPIB3로 지정되는 4 개까지의 GPIB 카드를 설정합니다. 이들 GPIB 카드에 접근하기 위해서는, I/O Config에서 이들 GPIB 카드에 논리주소 14, 15, 17, 및 18을 지정해야 합니다. VEE는 GPIB 카드용으로 다른 논리주소를 지원하지 않습니다. 논리주소를 지원하는 경우의, 주소지정 방식은 다른 모든 GPIB 카드에 대해서도 동일합니다.

GPIB로 통신하는 VXI 계측기 주소 지정

GPIB를 통해서 HP-IB 명령어 모듈을 가지는 VXI 계측기에 접근하기 위해서는, 2차 주소를 사용합니다. VXI 카드 케이지에 HP E1406 명령어 모듈을 사용하고 있으면, 1 차 주소는 명령 모듈의 스위치를 이용해서 설정(디폴트 = 09)하며, 2 차 주소는 각각의 VXI 계측기의 논리주소를 8 로 나눈값 입니다.

예를 들어, C-싸이즈 메인프레임에 HP E1406A 명령모듈(주소=09)가 장착되어 있고, 이 HP E1406A는 논리주소가 7인 GPIB 카드와 연결되어 있다고 가정하면, VXI 슬롯 안의 논리주소가 24인 HP E1326B 멀티미터의 주소는 70903이 됩니다.

GPIB 명령모듈을 통해서 연결된 VXI 계측기에 대한 올바를 주소를 찾도록 도와주는 2 개의 인스트루먼트 드라이버가 제공됩니다.:

• C-싸이즈 메인프레임에서 HP E1405 또는 HP E1406 GPIB 명령모듈과 연결된 VXI 계측기를 찾기 위해서는 hpe140x.cid 드라이버를 사용하십시오.

• B-싸이즈 메인프레임에서 HP E1306 GPIB 명령모듈과 연결된 VXI 계측기를 찾기 위해서는 hpe1300a.cid 드라이버를 사용하십시오.(이 드라이버는 내장 명령 모듈을 가진 HP E1300 및 HP E1301 B-싸이즈 메인프레임을 지원합니다.)

이들 드라이버를 이용하기 위해서는, 도움말:Help [image] Content 및 Index [image] Tell me about... Instrument Control Fundamentals에서 설명된 바와 같이 Instrument Manager를 이용하여 해당 드라이버에 대한 인스트루먼트 패널을 추가하십시오.

주의사항

VXI 스위치 박스 안의 모듈을 제외하고는, VXI 계측기에 대한 서브주소 값을 입력하지 마십시오. 자세한 내용은 다음 절을 참조하십시오.

주소/서브주소 값 설정

대부분의 GPIB 및 VXI 계측기는 서브주소를 사용하지 않습니다. HP 3235A Switch/Test Unit 또는 HP 3488A Switch/Control Unit 등의 VXI 스위치박스 또는 서브주소를 사용하는 메인프레임 계측기에 접근하는 경우를 제외하고는 서브주소를 입력하지 마십시오.

주의사항

서브주소 값은 서브주소를 지원하는 계측기용 HP 인스트루먼트 드라이버를 사용하는 경우에만 사용됩니다. Direct I/O오브젝트를 사용하는 경우에는 서브주소를 사용하지 마십시오.

다음은 이들관한 2 개의 예제입니다.:

• HP 3235A Switch/Test Unit안의 모듈에 접근하기 위해서는, Instrument Manager 대화상자에서 설명된 Instrument Manager 를 이용하여 Instrument Properties 대화상자에서 Address 필드 안에 HP 3235A 자신의 GPIB 주소(예 701)을 입력합니다.

Advanced Instrument Properties 대화상자의 (Panel Driver 탭에서) Sub Address 필드에서 각각의 모듈의 서브주소를 입력하십시오. Sub Address 필드의 항목에 대해서는 HP 3235A 인스트루먼트 드라이버의 온라인 도움말을 참조하십시오.(Help [image] Instruments).

• VXI 스위치박스 안의 모듈에 접근하기 위해서는, Sub Address 필드에서 개별모듈의 Address 필드와 서브주소필드에 스위치박스의 GPIB 주소를 입력하십시오.(예, 70902) Sub Address 필드 안의 각 항목에 대한 정보는 VXI 스위치박스 인스트루먼트 드라이버에 대한 온라인 도움말을 참조하십시오.

VXI 백플레인에 직접 주소 지정

VEE는 다음 시스템에 대해서 VXI 백플레인에 직접 접근할 수 있습니다.:

• HP 623x VXI 펜트움 컨트롤러.

• EPConnect 소프트웨어가 설치된 EPC-7 또는 EPC-8 VXI 컨트롤러

• HP E1383A 또는 HP E1483A VXLink (ISA-to-VXI) 인터페이스를 이용하여 VXI 카드케이지와 연결된 PC. 이 PC에는 EPConnect 소프트웨어가 설치되어 있어야 함

• HP V743 VXI 임베디드 컨트롤러.

I/O Config를 이용하여 권장하는 논리주소가 설정되었다면, VEE는 논리주소 VXI 백플레인의 주소로 16을 사용합니다. VXI 계측기의 주소는 논리주소 (16)에 VXI 계측기의 주소가 첨부됩니다.

예를 들어, HP EPC-7 VXI 컨트롤러와 HP 1411B 디지털 멀티미터가 하나의 VXI 메인프레임에 설치되어 있다고 가정하겠습니다. HP 1411B의 논리주소가 24로 설정되어 있으면, VXI의 주소는 16024입니다. GPIB를 통해서 VXI 계측기에 접근하는 경우에는 논리주소를 8로 나눌 필요없습니다.


인스트루먼트 I/O 데이터 종류 변환

인스트루먼트 I/O 트랜잭션에서, VEE는 다음의 규칙에 따라 자동으로 데이터 종류를 변환합니다. VEE 6 실행모드에서는 새로운 데이터 종류가 사용되고 변환되지는 않습니다. 반면에, VEE 5와 그 이전 모드에서는 이전버전과의 호환을 위하여 VEE 5 버전에서와 같이 다음의 변환이 수행됩니다. 예를 들어, READ BINARY Int16는 VEE 6모드에서는 Int16를 출력하지만, VEE 5 와 그 이전 모드에서는 Int32를 출력합니다.

주의사항

이러한 데이터 종류 변환은 자동으로 이루어지므로, 이것에 대해 걱정할 필요가 없습니다. 반면에, 다음의 리스트는 VEE 5와 그 이전 모드에서는 어떤 작업들이 수행되었는지를 보여줍니다.

READ 트랜잭션에서, 계측기에서 전송된 Int16 또는 Byte (UInt8) 값은 Int32 값으로 변환되었으며, 기호는 그대로 유지되었습니다. 계측기에서 전송된 Real32 값은 64-bit Real 숫자로 변환되었습니다.

WRITE 트랜잭션에서, 정수 또는 실수 값은 계측기에 적합한 출력형식으로 변환되었습니다.

계측기가 Real32 형식을 지원하는 경우에는, VEE는 64-bit Real 값을 Real32 값으로 변환하여 계측기로 출력합니다. Real64 값이 Real32 값의 범위를 벗어나는 경우에는, 에러가 발생합니다.

계측기가 Int16 형식을 지원하는 경우에는, VEE는 Int32 값을 Int16 값으로 변환하여 계측기로 출력합니다. 실수 값은 먼저 Int32 값으로 변환되고, 다음에 Int32로 변환되어 출력됩니다. 반면에, 실수 값이 Int32의 범위를 벗어나는 경우에는, 에러가 발생합니다

계측기가 Byte 형식을 지원하는 경우에는, VEE는 Int32 값을 Byte (UInt8)으로 변환하여 계측기로 출력합니다. 실수 값은 먼저 Int32 값으로 변환되고, 다음에 Byte (UInt8)로 변환되어 출력됩니다. 반면에, 실수 값이 Int32의 범위를 벗어나는 경우에는, 에러가 발생합니다.

관련정보

인스트루먼트 I/O 데이터 종류 변환, 오브젝트와 함수를 사용한 데이터 타입변환


데이터 전달의 이해

데이터 전달은 VEE 프로그램의 일반적인 실행 흐름입니다. 데이터 전달은 VEE 오브젝트가 실행하는 순서를 지정합니다. 일반적으로 데이터 전달은 VEE 프로그램에서 오브젝트에서 오브젝트로 데이터가 흐르는 데이터 흐름에 의해 결정됩니다.

데이터 전달 요약

다음은 VEE 실행모드 4이상의 버전에서 프로그램이 실행될 때 적용되는 데이터 전달 규칙에 대한 설명입니다.

데이터는 오브젝트를 통해서 왼쪽에서 오른쪽으로 흐릅니다 – 시퀀스는 상단에서 하단으로 흐릅니다.

모든 데이터 핀과 XEQ 핀은 연결되어야 합니다.

데이터 입력핀이나 시퀀스 입력핀이 없는 오브젝트가 먼저 실행합니다.

모든 데이터 입력핀은 오브젝트가 실행되기 전에 활성화 되어야 합니다 (JCT 오브젝트 제외).

시퀀스 입력핀이 연결된 경우에는, 이 핀은 오브젝트가 실행되기 전에 활성화 되어야 합니다.

오브젝트는 반복 오브젝트(예, For Count)에 연결되어 있지 않거나, XEQ 핀에 의해 실행되지 않는 한 단 한번 실행합니다.

컨트롤 핀은 즉시 실행하지만 오브젝트가 실행되거나 데이터를 전달하도록 하지는 않습니다.

Error 핀을 가진 오브젝트에서 에러가 발생하는 경우에는, Error 핀은 데이터 출력핀 대신에 데이터를 전달 합니다. 그러나 스퀀스 출력핀은 활성화 됩니다. (Error 핀이 없는 경우에는, 에러 메시지가 디스플레이 됩니다.)

병렬로 연결된 서브 쓰레드는 순서와 상관없이 실행됩니다.

복수의 쓰레드는 순서와 상관없이 실행됩니다.

기본적인 데이터 전달 순서

데이터 전달 규칙에 따라, VEE 실행모드 4 이상의 버전에서 실행된 VEE 프로그램에 있는 오브젝트는 Run 버튼을 눌렀을 때 다음의 기본적인 순서를 따라 실행됩니다:

1. 데이터 입력핀이 없고 시퀀스 입력핀이 연결되지 않은 오브젝트가 먼저 실행합니다.

2. 다른 오브젝트들은 데이터 흐름에 의해 결정된 순서로 실행합니다. 즉, 데이터 입력핀이 있는 오브젝트는 모든 데이터 입력핀에 데이터가 전송될 때 실행됩니다. 오브젝트가 동작하는 방법에서 설명한 예외사항은 제외합니다.

3. 데이터 전달의 순서는 시퀀스 핀을 연결하여 수정할 수 있습니다. 자세한 내용은 핀과 데이터 전송을 참조하십시오.


핀과 데이터 전송

모든 타입의 핀과 전송에 미치는 영향에 대해 설명합니다.

데이터 핀은 데이터 컨테이너를 입력하고 출력합니다.

오브젝트는 모든 데이터 입력핀이 활성화되기 전까지는 실행하지 않습니다. (데이터가 입력될 때마다 활성화 되는 JVT 오브젝트 제외)

오브젝트가 실행되고 나면, 데이터 출력핀은 데이터를 전송합니다. (에러가 발생하지 않은 경우)

컨트롤 핀(선택사항)은 오브젝트의 상태에 영향을 주는 입력입니다. 데이터 전송에는 영향을 주지 않습니다.

일반적인 컨트롤핀은 Clear, Reset, 및 Default Value가 있습니다. 컨트롤핀은 데이터 전송과는 상관없다는 것을 나타내기 위하여 점선으로 연결됩니다.

시퀀스 핀은 실행순서를 지정하기 위해서만 사용합니다.

오브젝트는 모든 데이터 입력핀과 시퀀스 입력핀(연결된 경우)이 활성화된 후에 실행합니다.

모든 데이터 출력핀이 활성화되어 데이터를 전달할 수 있는 가장 먼 오브젝트까지 전달한 후에 시퀀스 출력핀이 전송됩니다.

시퀀스 핀을 사용하여 오브젝트의 실행순서를 결정하는 것이 최상의 방법은 아닙니다. – 시퀀스 핀 대신 데이터 흐름에 따라서 오브젝트의 실행 순서를 결정하는 것이 더욱 바람직합니다.

시퀀스 입력핀은 데이터 컨테이너의 입력으로 활성화 되나, 컨테이너에 있는 데이터는 무시됩니다. 시퀀스 출력핀은 활성화 될 때 빈(nill) 컨테이너를 전송합니다.

에러 핀(선택사항). 오브젝트에서 발생하는 에러 상태를 검출하기 위해 Error 핀을 추가할 수 있습니다. Error 핀은 에러가 발생한 경우에 적절한 에러번호를 전송합니다.

에러가 발생한 경우에는, Error 핀은 데이터 출력핀 대신에 데이터를 전송합니다. 에러 핀과 시퀀스 출력핀(연결된 경우)만이 데이터를 전송합니다.

XEQ 핀은 오브젝트가 즉시 실행하도록 하는 핀입니다. (데이터 입력핀이 아직 활성화 되지 않았을지라도). 단지 Collector 및 Sample & Hold 오브젝트에서 오브젝트를 즉시 실행하고 데이터를 전송하도록 하는 XEQ 핀을 사용합니다.

XEQ 핀은 데이터 컨테이너가 입력되었을 때 활성화되고, 컨테이너에 있는 데이터는 무시됩니다.

주의사항

데이터 입력핀이나 XEQ 핀은 꼭 연결해야 합니다, 그렇지 않으면 프로그램이 실행될 때 에러가 발생합니다.

데이터 출력핀, 컨트롤 핀, Error 핀은 연결하지 않을 수도 있습니다. 시퀀스 핀은 연결하지 않는 경우가 더 많습니다.


시퀀스 핀의 이해

본 장에서는 데이터 전달에 있어서 시퀀스 핀의 역할을 권장하는 사용법에 초점을 맞추어 설명합니다.

시퀀스 핀은 VEE 오브젝트의 상단과 하단에 있습니다. 상단에 있는 핀이 연결된 경우에는, 오브젝트가 실행하기 전에 반드시 핑(ping) 되어야 합니다. 시퀀스 핀은 트리거 또는 붙잡기핀이라 생각하면 됩니다.

오브젝트의 데이터(또는 에러)가 전송된 뒤에 하단에 있는 핀은 데이터를 전달하고, 시퀀스 핀의 데이터 전달은 갈수 있을 때까지 아래 방향으로 진행됩니다.

시퀀스 핀을 연결하는 것이 일반적으로 대부분의 프로그램에 필요한 것은 아니며, 일부 사용자는 이 시퀀스 핀을 과다하게 사용하여 프로그램하는 경우도 있습니다. 시퀀스 핀을 과다하게 사용하는 것은 컴파일러를 혼동시키고, 더 중요한 것은 작성한 프로그램을 이해하고 수정하고 유지보수 하는데 있어 다른 프로그래머(또는 시간이 한참 지난 후에 자신의 프로그램을 볼 때)를 혼동시킬 수 있습니다. 그러나 이 시퀀스 핀의 연결이 필요한 경우도 있습니다.

루프에서 사용

루프(For Count, For Range, 등)에 있는 상단의 시퀀스 입력핀은 어떤 작업이 끝나기 전까지는 루핑을 시작하지 않기 위하여 연결합니다. 유사하게, 하단부의 시퀀스 출력핀은 프로그램에서 이 루프가 끝난 다음에 실행해야 하는 오브젝트에 연결합니다. 일반적인 데이터 흐름 순서는 다음 다이어그램에서 보는 바와 같습니다.

To/From File 또는 DataSet에서 사용

VEE 프로그램에서 파일에 저장하고 다시 그 파일을 읽는 경우에는, 프로그램이 파일을 저장하기 전 까지는 그 파일을 읽지 않도록 하기 위해 시퀀스 핀이 필요합니다. 다음은 2가지 예제 입니다:

변수를 설정하고 변수를 가져올 때

Get Variable 오브젝트(또는 변수를 사용하는 Formula 오브젝트)의 시퀀스 입력핀의 연결은 변수를 가져오기 전에 변수를 설정하도록 하기 위해 필요합니다. 예를 들면 다음과 같습니다:

데이터를 운반하는 컨트롤 입력핀

VEE 오브젝트에 연결된 컨트롤 입력핀은 실제 데이터를 전송합니다. 예를 들면, ToFile 오브젝트에 있는 "FileName" 입력핀 또는 Formula 오브젝트에 있는 "Formula" 표현식 입력핀. 이 경우에, 컨트롤 입력핀에 데이터가 전송되기 전까지는 오브젝트가 실행하지 않도록 하기 위해 VEE 오브젝트에 시퀀스 라인이 필요합니다.

팝업 패널에 Confirm/OK 버튼을 사용하는 경우

Confirm 버튼은 팝업 패널에서 사용자가 데이터를 입력할 때까지는 오브젝트가 실행되는 것을 막기 위하여 종종 "Ok" 또는 "Cancel" 버튼으로 사용됩니다. 시퀀스 순서는 때로는 처음 사용하는 사용자에게는 혼동을 일으킵니다. 처음 사용자는 OK 버튼을 Knob 다음에 배치해야 한다고 생각합니다. (왜냐하면 운영자는 그러한 순서로 사용하므로). VEE를 많이 사용하여 VEE의 구조에 익숙해지면, OK 버튼을 버튼 아래에 있는 데이터를 전송하는 "시작기능"으로 보는 것이 더 용이합니다. 다음 예제는 VEE에서 Confirm 버튼을 사용하는 일반적인 방법입니다.

이 예제에서 왜 Ok 버튼을 먼저 실행하는지를 이해하기 위하여 Ok 버튼을 Knob 다음에 배치하여 프로그램을 실행해 봅니다(Show Data Flow 및 Show Execution Flow를 on하고). UserObject의 출력을 디스플레이 오브젝트에 연결하여 새로운 값이 전달 되는지 또는 기존의 값이 전달 되는지를 2가지 경우에서 살펴 봅니다.

복수의 데이터 출력 라인이 컨트롤 흐름과 섞여 있는 경우

프로그램에서 데이터 흐름과 컨트롤 흐름을 혼합하여 복수의 출력 라인을 동일한 핀으로 사용하는 경우가 있습니다. 이것은 발견하기가 굉장히 어려운 프로그램 에러의 원인이 될 수 있습니다. 다음 예제에서는, 사용자가 Konb에서 값을 선택하고 Ok를 눌렀다고 가정합니다.

Formula 오브젝트의 실행과 UserObject의 데이터 전달이 먼저 일까요, Formula 오브젝트가 실행 하기 전에 Exit UserObject가 먼저 실행될까요? Exit UserObject가 실행되기 전에 UserObject의 출력핀이 값을 갖게 될까요? 이것은 판단할 수 없습니다; 이것은 무작위로 실행됩니다. 그래서 시퀀스 핀이 필요합니다.

Exit UserObject의 시퀀스 핀을 연결하기 위한 더 나은 방법을 위해서는 이전의 예제를 참조하십시오.

C시퀀스 핀을 과다하게 사용한 경우

순차적 프로그램언어에 익숙한 프로그래머는 때때로 필요하지 않는데도 시퀀스 핀을 연결하려 합니다. 다음 예제에서는 VEE를 처음 사용하는 프로그래머는 시퀀스 핀을 연결하지만, 데이터 흐름은 이미 프로그램의 흐름에서 결정되어 있습니다.

다이어그램에서 보듯이 불필요하게 시퀀스가 연결되어 있습니다. 데이터 흐름의 형태가 본질적으로는 이와 동일 하지만, 일부 프로그래머는 커다란 프로그램에서는 시퀀스 연결을 추가하려 합니다.

이전에 설명한 컨트롤핀 예제는 혼동을 일으킬 수도 있습니다. 프로그램의 흐름이 데이터 핀에 의해서 결정되어 있을 때는 시퀀스 연결이 필요하지 않습니다. 컨트롤 핀은 데이터 핀처럼 프로그램의 흐름에 영향을 주지 않습니다. 다음 2개의 다이어그램은 유사하지만 동일하지는 않습니다.

컨트롤 흐름 모델(푸른색 점선)은 시퀀스 핀이 필요하지만, 데이터 흐름 모델(푸른색 실선)은 필요치 않습니다.


쓰레드 및 서브 쓰레드의 데이터 전달

아주 간단한 VEE 프로그램은 일반적으로 하나의 쓰레드를 가집니다. 좀더 복잡한 프로그램은 프로그램의 데이터 전달에 영향을 주는 쓰레드와 서브 쓰레드를 추가로 가집니다.

쓰레드 – 실선 형태인 데이터 및 시퀀스 연결선을 통해서 연결된 오브젝트는 쓰레드를 구성합니다. 점선 형태인 컨트롤 연결선으로만 연결된 오브젝트는 쓰레드를 구성하는데 고려하지 않습니다. 프로그램은 몇개의 쓰레드를 가질 수 있습니다. 예를 들어, 다음의 프로그램은 2개의 병렬 쓰레드를 가집니다. 쓰레드는 데이터 연결선이나 시퀀스 연결선으로 연결되지 않았기 때문에 독립적입니다.

서브 쓰레드 – 분기된 쓰레드는 서브 쓰레드라고 부릅니다. 2개의 쓰레드가 동일한 오브젝트의 동일한 데이터 출력핀에서 시작하고 쓰레드 간에 시퀀스나 데이터 연결선이 없는 경우에, 이들 쓰레드를 병렬 서브 쓰레드라 부릅니다. 다음 예제 프로그램은 Real64 상수 오브젝트의 데이터 출력핀에서 분기된 2개의 병렬 서브 쓰레드를 보여 줍니다.

병렬 쓰레드와 서브 쓰레드는 임의의 순서대로 실행합니다. 쓰레드에 있는 하나 이상의 오브젝트(또는 모든 오브젝트)가 실행하면, 다른 쓰레드에 있는 하나 이상의 오브젝트가 실행합니다. 그러나 다음과 같은 2개의 예외가 있습니다.

쓰레드가 Interface Event 또는 Device Event 오브젝트를 가진 경우에는, 이벤트가 검출될 때 실행을 이어 받습니다. 예를 들어, Interface Event가 GPIB SRQ 메시지를 감지한 경우에는, 해당 쓰레드는 다른 쓰레드가 실행되기 전에 쓰레드를 완료합니다. 다른 쓰레드는 이벤트가 서비스될 때까지 대기하고 있습니다. 자세한 내용은 인터페이스 이벤트 또는 Instrument Event을 참조하십시오.

쓰레드가 Start 오브젝트를 가진 경우에, Start 버튼을 눌러 쓰레드를 시작한 경우에는, 해당 쓰레드는 어떤 다른 쓰레드를 시작하기 전에 실행을 완료합니다.


오브젝트가 동작하는 방법

VEE 오브젝트는 입력핀에 데이터가 입력되면 동작하고, 데이터를 처리하여, 출력핀으로 결과값을 출력합니다. VEE 오브젝트는 모든 데이터 입력핀에 데이터가 입력되기 전까지는 실행되지 않습니다. (예외: JCT 오브젝트는 데이터 입력핀에 하나의 데이터가 입력될 때마다 실행됩니다.)

아래 프로그램에서, a+b 오브젝트는 2개의 데이터 입력핀에 데이터가 입력되기 전까지는 실행되지 않습니다. 2개의 Real64 상수 오브젝트가 먼저 실행되어야 합니다. (순서에 상관없이)

a+b 오브젝트가 동작하면, 2개의 데이터를 더하고 결과값을 출력핀으로 보냅니다. AlphaNumeric 오브젝트는 데이터 입력핀이 데이터를 받기 전까지는 동작하지 않습니다. 가장 마지막에 실행되고 결과를 디스플레이 합니다.

위 프로그램에서, 데이터 흐름이 오브젝트의 실행순서를 결정했습니다. 즉, 데이터 흐름순서가 데이터의 전달 순서입니다.

데이터핀과 함께, 시퀀스 핀도 오브젝트의 실행순서를 제어하기 위하여 사용할 수 있습니다. 시퀀스 핀은 유효한 데이터가 제공될 때까지, 데이터 입력핀으로 데이터가 입력되는 것을 방지 하고자 할 때 유용합니다. 다음 프로그램에서는 Confirm OK 오브젝트가 이전 프로그램에 추가되었습니다:

Confirm OK 오브젝트의 시퀀스 출력핀은 a+b 오브젝트의 시퀀스 입력핀으로 연결되었습니다. Confirm OK 오브젝트의 시퀀스 입력핀이 연결될 필요는 없습니다. 즉, 시퀀스 입력핀이 연결되지 않으면, 이것은 오브젝트에 의해 무시됩니다. 반면에 시퀀스 입력핀이 연결되어 있으면, 오브젝트는 이 시퀀스 입력핀이 활성화될 때까지는 실행되지 않습니다. 상기 예제에서는, a+b 오브젝트는 OK 버튼을 누를(클릭) 때까지는 실행되지 않습니다. OK 버튼을 클릭하여 a+b 오브젝트의 입력핀이 활성화 되면, 데이터 입력핀을 통해서 a+b 오브젝트 안으로 데이터가 전송됩니다.

XEQ핀은 오브젝트의 동작에 있어서 반대의 효과를 가집니다. 오브젝트는 XEQ핀이 활성화 되면 데이터 입력핀에 있는 모든 데이터를 즉시 전달합니다. 하나의 오브젝트에서 XEQ핀과 시퀀스 입력핀을 함께 사용할 때는 주의하여 사용해야 합니다. XEQ핀은 반드시 연결되어야 하고, 오브젝트는 XEQ핀이 활성화될 때까지는 데이터를 전달하지 않습니다. 다음은 이에 대한 예제입니다:

For Count 오브젝트는 5번 반복하고, Collector 오브젝트에 있는 Data 입력터미날로 데이터를 출력합니다. Collector는 어레이에 5개의 값을 저장하고, For Count 오브젝트의 시퀀스 출력핀이 활성화되어 XEQ 터미날이 활성화될 때 이 값들을 전송합니다.

주의사항

오브젝트 메뉴에 있는 속성창을 사용하여 Show Terminals 항목을 on할 수 있습니다. Show Terminals 이 on되면, 데이터 입력핀과 출력핀이 각각의 이름을 가진 “터미날”이 됩니다.


UserObject의 개념

UserObject는 특정 작업을 수행하는 여러 개의 오브젝트를 은닉화하여 하나의 단일, 주문형 오브젝트로 만들 수 있습니다. 이러한 UserObject를 사용하면 다음의 장점이 있습니다.

VEE 프로그램을 작성하는데 모듈화 개발기술을 사용합니다. 모듈화 개발기술을 사용하면 복잡한 문제를 구조화된 접근방식으로 해결할 수 있습니다. 하향식 설계 기술을 사용하여 더 유연하고 유지보수가 용이한 시스템을 만들 수 있습니다.

사용자-정의 오브젝트를 생성하여 향후 재사용할 수 있도록 라이브러리에 저장합니다.

일단 UserObject가 생성되고 저장되면, 다른 프로그램에서 그것을 병합할 수 있습니다.

UserObject 특징

UserObject를 메인 윈도우에 추가하면 아이콘뷰 상태로 표시되며, 이 상태로 프로그램에서 사용할 수 있습니다. 이 아이콘을 더블클릭하면, UserObject의 편집창이 뜨고, 여기서 오브젝트를 추가하고 이들을 연결하여 특정 기능을 가지는 프로그램을 생성합니다. 터미날 영역은 데이터 터미날 및 컨트롤 터미날을 수용하여 UserObject가 프로그램의 다른 부분과 통신할 수 있습니다. 다음 그림은 UserObject1 이라고 이름 지어진 UserObjec의 아이콘뷰와 편집창입니다.

컨텍스트와 UserObjects

서브프로그램이 C 나 BASIC에서 별도의 컨텍스트인 것과 마찬가지로, 메인윈도우 및 UserObject는 VEE 프로그램 내에서 별도의 컨텍스트입니다. 이전 그림에서 보인 바와 같이, VEE 프로그램 안에 UserObjects를 네스팅하여 별도의 컨텍스트가 생성됩니다. 이전 그림에는 3 개의 컨텍스트가 있습니다. 각 컨텍스트에 더 많은 오브젝트가 추가될 수 있습니다.

1. 메인 윈도우는 UserObject1를 가지는 하나의 컨텍스트입니다.

2. UserObject1은 컨텍스트이며 UserObject2를 가집니다.

3. UserObject2는 컨텍스트이며 다른 오브젝트를 가질 수 있습니다.

데이터 전달과 UserObjects

UserObject를 가지는 프로그램에서 데이터전달은 UserObject가 별도의 컨텍스트라는 사실에 영향 받습니다. UserObject 데이터전달 규칙은 다음과 같습니다:

UserObject 안의 어떤 오브젝트가 활성화되기 전에, UserObject의 모든 데이터 입력터미날(시퀀스 입력핀이 연결되어 있으면 시퀀스 입력핀 포함)이 활성화되어야 합니다..

일단 UserObject의 모든 데이터 입력터미날(시퀀스 입력핀이 연결되어 있으면 시퀀스 입력핀 포함)이 활성화되면, UserObject가 실행을 시작합니다. UserObject 내부의 오브젝트는 다음과 같은 데이터 전달 규칙을 따라서 실행됩니다.

VEE 4.0 이전의 프로그램은 선택항목인 XEQ 터미날을 가질 수 있습니다. 이 핀이 활성화되면, UserObject의 비활성화 상태인 입력터미날의 데이터가 오래 되었어도 이 데이터를 이용하여 UserObject는 작업영역 안에서 오브젝트의 실행을 즉시 시작합니다. 대부분의 경우, UserObject에서 XEQ핀을 이용할 필요는 없습니다. 이 XEQ핀은 VEE 4.0 및 이후 버전에서는 제공되지 않으며, XEQ핀을 사용하는 UserObject를 가지는 프로그램은 컴파일 되지 않습니다.

UserObject 안의 모든 오브젝트가 실행을 종료할 때까지(UserObjectrk 가 에러나 Exit 오브젝트에 의해 미리 종료되지 않는다면) UserObject 데이터 출력터미날은 데이터를 출력하지 않습니다. UserObject의 내부로부터 활성화된 출력터미날만이 UserObject 밖의 다른 오브젝트에 데이터를 전달합니다. 활성화되었을 때, 각 데이터 출력터미날은 하나의 데이터 컨테이너를 전달합니다.

VEE 4.0 이전 버전으로 작성된 VEE 프로그램(VEE3.0 실행모드로 실행되는)에서, UserObject 안의 오브젝트를 서로 다른 쓰레드의 외부 오브젝트와 각각 실행하기 위해서 시간을 공유하여 실행됩니다. VEE 4.0 또는 이상의 실행모드에서 실행되는 VEE 프로그램에서, UserObject는 다른 별도의 쓰레드를 호출할 때만 시간을 공유합니다.

데이터 전달 규칙에 대한 자세한 내용은 데이터 전달의 이해를 참조하십시오.

주의사항

UserObject안에 Start 오브젝트가 있을 때, Start를 누르면 Start와 동일한 쓰레드에 연결된 오브젝트만 실행합니다. UserObject의 입력터미날에서 데이터를 읽지 않으며, 출력터미날로 데이터를 전송하지도 않습니다. 그러므로, UserObject의 외부로는 데이터전달이 발생하지 않습니다.

UserObject로부터의 데이터 출력

데이터 전달 규칙에서 설명한 바와 같이, UserObject내부의 오브젝트가 프로세싱을 완료할 때 UserObject의 각 데이터 출력터미날은 (가장 마지막에 터미날에서 받은) 각각 하나의 데이터 컨테이너를 UserObject의 외부 컨텍스트로 전달합니다. 이러한 상황을 고려하지 않으면 예기치 못한 결과를 얻을 수 있습니다. 다음 그림은 이러한 상황에 대해서 설명합니다:

For Count 오브젝트가 10개의 데이터 컨테이너(숫자 0부터 9까지)를 Count 터미날로 보내더라도, 단 하나의 데이터 컨테이너(마지막 숫자)만이 UserObject로부터 전달됩니다. 그러나, For Count 오브젝트로부터의 데이터를 Collector 오브젝트를 사용하여 수집하여 하나의 어레이를 생성할 수 있습니다. Array 출력터미날도 하나의 데이터 컨테이너만을 전송할 수 있지만, 이것은 10개의 값(숫자 0부터 9까지)을 가지는 1차원 어레이입니다.


프로그램 흐름 제어

VEE에서의 프로그램 흐름은 논리적이지만, 프로그램이 흐르는 방법이 항상 명확한 것은 아닙니다. 다음은 VEE 프로그램 흐름에 대한 몇 가지 규칙입니다.

• 명확한 프로그램 흐름을 가지고 계층구조 형식으로 데이터를 전달하는 프로그램을 작성합니다. 프로그램 흐름을 쉽게 파악할 수 있도록 작성하면, 그만큼 문제점이 줄어듭니다.

• 오브젝트간의 실행순서가 중요하지만 명확하지 않다면, 오브젝트간을 시퀀스 출력과 시퀀스입력으로 연결합니다. 시퀀스 입출력을 자주 이용할 필요는 없지만, 프로그램 안에서 오브젝트의 실행순서를 명확히 하기 위해서는 꼭 이용해야 하는 경우도 있습니다.

• 반복 실행 프로그램에서 피드백 루프 사용을 피합니다. 그러한 구조는 예상하지 못하는 결과를 생성할 수 있습니다. 루프는 그 쓰레드의 시작 부분으로 데이터를 가진 컨테이너를 전달하기 위한 목적으로 사용됩니다. 피드백을 사용해야 하는 경우에는, 피드백 루프에 JCT (Junction) 오브젝트를 사용해야 합니다.

• 루프 오브젝트로 제공되는 병렬쓰레드 사용을 피합니다. 어떤 쓰레드가 먼저 실행될지 판단하기 어렵습니다.

• Gate 및 Sample & Hold 오브젝트 사용을 제한합니다. 이들 오브젝트는 데이터 전달 규칙을 보완하기 위해서 패치 목적으로 제공되었습니다. 훌륭한 프로그램 스타일에서는 이들 오브젝트를 사용할 필요가 없습니다.

관련정보

프로그램 기본 제어 프로그램 고급 제어


프로그램 기본 제어

오브젝트의 기본적인 조합으로 프로그램 흐름을 어떻게 제어하는지 이해하는 것은 중요합니다. 다음 프로그램은 어떻게 간단한 루프 카운트를 생성하고, 일반적인 프로그램 제어에 사용하는지 설명합니다. For Count 오브젝트는 프로그램이 시작되면 0부터 9 까지를 카운트합니다.

네스팅된 루프를 생성하기 위해서 For Count 오브젝트를 네스팅할 수 있습니다. 다음 프로그램에서는 외부 루프의 For Count 오브젝트가 내부 루프의 For Count 오브젝트의 시퀀스 입력으로 신호를 보낼 때마다 내부 루프의 For Count 오브젝트는 0 부터 9 까지 카운트합니다. 외부 루프의 For Count 오브젝트는 내부 루프의 For Count 오브젝트가 전체 루프를 종료할 때까지 다음 출력을 발생하지 않습니다.

외부 For Count 오브젝트가 마지막 카운트를 보내면, 외부 For Count 오브젝트의 시퀀스 출력핀에서 펄스가 발생되어, Beep 오브젝트를 활성화시킵니다. 이것은 이와 같은 루핑 오브젝트의 경우에는 중요한 기능입니다. 이러한 오브젝트는 이러한 오브젝트가 구동하는 쓰레드가 완전히 실행될 때까지 스퀀스 출력 펄스를 생성하지 않습니다.

연속 루프

연속루프를 생성하기 위해서, 다음 예제와 같이 Until Break 오브젝트를 사용할 수 있습니다. Delay 오브젝트는 1 초에 한번씩만 업데이트되도록 프로그램을 제어합니다. 더 좋은 방법은 Until Break 오브젝트 대신 On Cycle오브젝트를 사용하는 것입니다. On Cycle 오브젝트는 now() 오브젝트를 구동하기 위해서 임의의 지연주기로 컨테이너를 생성합니다. AlphaNumeric의 속성창에서 AlphaNumeric 오브젝트의 디스플레이 포맷을 설정할 수 있습니다.

특정 조건을 만날 때까지 프로그램을 반복해야 하는 경우에 연속 루프를 유용하게 사용할 수 있습니다. 이 루프를 임의의 시간에 종료하기 위해서는 OK 오브젝트, Break 오브젝트 및 Next 오브젝트를 다음 프로그램과 같이 추가하면 됩니다.

이 예제는 다른 방식으로 2 개의 쓰레드를 제어합니다. 이 프로그램은 시간을 연속적으로 업데이트합니다. OK 버튼을 클릭하면 Break 오브젝트가 실행되어 중지됩니다. Until Break 오브젝트는 컨테이너를 생성하여, 하단의 모든 내용이 실행될 때까지 대기합니다. 즉, 시간이 생성되어 업데이트되고 OK 버튼이 클릭될 때까지 기다립니다. Next 오브젝트는 OK 버튼을 클릭할 때까지 Until Break가 컨테이너를 연속으로 출력하도록 제어권을 Until Break로 넘깁니다.

이 예제에서는, Break 오브젝트 대신 Stop 오브젝트를 사용해도 동일한 결과를 얻습니다.

Toggle 오브젝트를 사용하여 연속하여 루핑하는 것을 더욱 직접적으로 제어할 수 있습니다. 다음 예제는 루프를 중단하기 위해서 Toggle (Button 포맷)을 사용하는 방법을 설명하고 있습니다.

Toggle 오브젝트의 출력은 자신의 Reset 컨트롤 입력핀으로 연결되어 있습니다. 디폴트 초기값은 0 이며, 각 루프마다 이 값이 If/Then/Else 오브젝트로 출력됩니다. Button을 클릭하면 값이 1로 토글되어서, If/Then/Else 오브젝트 안의 표현식이 만족되어 Break 오브젝트를 실행합니다.

프로그램을 대화형으로 작성하기

루프에 대한 이전 프로그램이 완료되었으면, 다음 예제는 대화형 프로그램의 일반적인 구조를 어떻게 만드는가에 대한 설명입니다. 적절한 토글버튼을 클릭하여 사용자가 2 개의 동작 중에서 하나를 선택하여 실행하거나 프로그램을 종료한다고 가정하겠습니다.

기본적인 개념은 각 동작마다 별도의 병렬처리되는 쓰레드를 가지게 하는 것입니다. 루프는 연속하여 각 토글 오브젝트의 출력(초기값은 0)을 각각의 If/Then/Else 에서 확인합니다. 하나의 버튼이 클릭되면, 해당 토글의 출력이 1로 변경되어, 해당 Text 오브젝트의 출력을 AlphaNumeric 오브젝트로 보내거나 프로그램을 종료합니다. 입출력이나 연산에 필요한 만큼의 병렬쓰레드를 추가하여 사용할 수 있습니다.

이 구조를 사용하기 위해서는, 실행된 쓰레드는 반드시 다른 쓰레드가 실행하기 전에 완료되어야 합니다. 실행중인 쓰레드가 종료되는데 오랜 시간이 걸린다면, 다른 쓰레드를 실행하기 위해서는 이 쓰레드가 완료될 때까지 대기해야 합니다.


프로그램 고급 제어

기본기술( 프로그램 기본 제어)을 확장하면 프로그램이 더욱 복잡한 기능을 제어하도록 할 수 있습니다.

사용예: 프로그램 타스트 구동

예를 들어, 다음 프로그램은 여러 개의 타스크 중에서 하나를 선택하거나 계측기로부터 서비스요청(SRQ)을 받아서 타스크를 실행합니다.

프로그램이 실행한 후, Task 1 버튼이나 Task 2 버튼을 클릭하면 적절한 화면이 표시됩니다. Panel Driver의 Status Panel의 Clear Status를 클릭하면, SRQ! 메시지가 출력되고, 계속하여 다른 타스크를 실행하기 위해서 리턴됩니다. Quit 버튼을 클릭하면 프로그램이 중지됩니다.

Until Break 오브젝트는 프로그램 안의 4 개의 병렬 쓰레드를 구동합니다. 이들 4 개의 쓰레드는 3 개의 토글버튼(Task 1, Task 2, Quit)과 인터페이스 이벤트 오브젝트(SRQ:GPIB7)에 의해서 제어됩니다.

Task 1 버튼과 Task 2 버튼에 의해서 실행되는 2 개의 쓰레드는 메시지 대화상자에 Doing Task 1 또는 Doing Task 2 라는 텍스트를 표시합니다. Quit 버튼에 의해서 실행되는 쓰레드는 프로그램을 중지하고 디스플레이를 클리어합니다.

SRQ가 흥미로운 쓰레드입니다. Until Break 오브젝트에 연결된 HP 54501A 패널드라이버는 SPoll Enable(상태 패널에서)이 서비스를 요청하도록 설정되었습니다. 상태 패널에서 Clear Status 버튼을 누르면 서비스요청이 전송됩니다. 마스크가 설정되어 있으면, SRQ를 핸들링하는 쓰레드는 다음과 같은 설정을 이용하여 SRQ를 기다리기 위해서 Interface Event 오브젝트를 사용합니다.

SRQ가 발생하면, Interface Event 오브젝트는 Instrument Event 가 시리얼 폴링을 하도록 핑을 보내고, 이것은 스코우프의 SRQ를 클리어합니다.

NO WAIT로 설정되어 있으므로, 이 오브젝트는 시리얼 폴링을 하고, Text 오브젝트를 핑합니다. SRQ! 메시지가 Message 대화상자로 전송되어 SRQ가 발생하였음을 알립니다. Message 대화상자는 운영자가 응답할 때까지 기다립니다. 마스크 값은 관계가 없습니다.

함수 호출

아래 프로그램은 작은 프로그램입니다. 3 개의 사용자함수(A, B, 또는 C)중에서 하나를 호출하여 행위를 유발합니다. 프로그램은 선택된 기능을 수행하기 위해서 실행을 계속합니다.

Radio Buttons 오브젝트는 사용할 수 있는 함수를 리스트로 표시합니다. 토글 버튼을 이용하여 선택한 함수를 실행하거나 프로그램을 종료할 수 있습니다. 함수를 실행하기 위하여 선택한 경우에는, 함수 이름이 as Text Formula 오브젝트에 표시됩니다. AsText는 입력값을 텍스트 데이터로 변환하는 기본제공 함수입니다.

텍스트 함수이름은 Call Function 오브젝트의 Function Name 컨트롤입력으로 전송되어, 선택된 함수가 호출됩니다. 프로그램이 실행되면, 사용자는 Radio Buttons 오브젝트에서 함수이름을 선택하고 Execute Function 버튼을 클릭합니다.

주의

컨트롤 입력은 오브젝트의 실행순서에는 영향을 미치지 않습니다. asText 오브젝트의 시퀀스 출력은 Call Function 오브젝트의 시퀀스 입력에 연결되어서 Function Name을 받을 때 까지 Call Function 오브젝트가 실행되지 않도록 합니다.

Strip Charts 그래프 삭제

프로그램 흐름제어와 관련하여, 다음은 특정 개수의 포인터를 strip chart의 그래프로 표시한 후 또는 사용자가 버튼을 클릭할 때 마다 그래프의 내용을 삭제하는 프로그램입니다.

Until Break 오브젝트가 프로그램을 구동합니다. 이 오브젝트는 Quit 토글 오브젝트, Random Number 오브젝트, Clear Chart 토글 오브젝트 및 Counter 오브젝트를 시퀀스 입력 및 출력핀으로 제어합니다. Random Number 오브젝트(random(high, low) 내장함수)는 Strip Chart 그래프로 데이터를 보냅니다. Counter 오브젝트는 각 루프 반복횟수를 카운트하여 If/Then/Else 오브젝트로 보냅니다. 사용자가 Clear Chart 버튼을 클릭하거나 Count 오브젝트가 100에 도달하면, If/Then/Else 오브젝트는 Strip Chart의 내용과 Counter 오브젝트의 내용을 삭제합니다.

Toggle Control 오브젝트는 Until Break 오브젝트에 의해서 연속하여 구동되면서 대부분의 경우 0을 출력합니다. Toggle Control 오브젝트를 클릭하면 1을 토글되어 피드백연결에 의해서 리셋됩니다. 이때 발생한 1 은 If/Then/Else 오브젝트의 입력이 됩니다. Toggle Control 오브젝트의 속성창에서 타이틀바를 감추고 Reset 터미날을 추가하여, 이 오브젝트의 디폴트 형태를 변경할 수 있습니다.


에러 처리

에러 처리는 VEE에서 중요한 개념입니다. 이것은 에러가 발생한 다음에 처리해야할 내용을 실행할 수 있습니다. 다음 프로그램에서는 다른 결과를 나타내는 대화상자를 사용하여 이것을 설명합니다.

이 프로그램은 에러 발생시 감탄사 표시 대화상자를 팝업합니다. 이 대화상자에서는 Stop, Retry, 또는 Ignore를 선택할 수 있으며, 이들을 선택할 때 실행되는 내용은 다음과 같습니다.:

• Stop을 선택하면, Stop 오브젝트가 실행되어 프로그램이 중지됩니다.

• Retry를 선택하면, Next 오브젝트가 실행되어 동일한 Message 박스를 재 반복합니다.

• Ignore를 선택하면 Break 오브젝트가 실행되어 Until Break 루프가 중지됩니다.

Until Break가 중지되면, 하단의 Question Message Box가 실행되며, 이 대화상자에서는 다시 Yes 버튼과 No 버튼을 선택할 수 있습니다.

“I/O” 루프 다음에 실행해야 오브젝트는 Until Break 오브젝트의 시퀀스 출력핀으로 연결되어 있습니다; 이것들을 Until Break오브젝트의 continuous 출력핀으로 연결하지 않았습니다.

복잡한 수학 공식 연산과 같은 프로그램 실행에 Error Out을 이용하여 에러처리시에는 주의해야 합니다. VEE는 연산을 위해서 메모리를 할당하지만, 실행 중에 에러가 발생하면, 할당된 메모리를 해제하지 않기 때문에 메모리 누출이 증가할 수 있습니다.

관련정보

컨트롤 핀에서 발생하는 에러 캡쳐, 컨트롤 핀으로 데이터 전달, 레코드 생성, Formula오브젝트에 여러 개의 입력제공, 타이밍 이벤트


컨트롤 핀에서 발생하는 에러 캡쳐

컨트롤 핀은 즉시 실행되지만 테이터 출력핀으로는 데이터를 출력하지는 않도록 하기 때문에, 특정 조건에서는 프로그램이 적절하게 실행되지 않을 수 있습니다. 컨트롤 핀이 발생하는 에러를 프로그램 상에서 잡기 위해서는 특별한 프로그램 기술을 사용해야 합니다.

컨트롤 핀이 오브젝트에 에러를 발생시키면, 프로그램이 중지되면서 에러 대화상자를 표시합니다. 에러를 프로그램으로 잡고 해결하기 위해서 사용하는 전형적인 해결방식은 오브젝트에 Error 출력터미날을 추가하는 것입니다. 컨트롤 핀이 에러를 발생하는 경우를 제외하고, 대부분의 경우에 이 방식을 적용할 수 있습니다. 컨트롤 핀은 오브젝트의 데이터 전달에 영향을 미치지 않으므로, 오브젝트는 에러정보를 출력하지 않습니다. 즉, 컨트롤 핀이 오브젝트를 실행하지는 않으므로, 오브젝트는 데이터를 출력할 수 없습니다. 오브젝트가 실행되지 이전에는 Error 핀을 포함한 어떤 출력핀으로도 데이터를 출력하지 않습니다. 컨트롤 핀으로 인해서 발생하는 에러를 잡기 위해서는 그 오브젝트를 포함하는 컨텍스트에 Error 출력터미날을 추가해야 합니다.

다음 프로그램은 컨트롤 핀에 의해서 발생하는 에러를 잘못된 방식으로 잡는 경우를 설명합니다. 이 프로그램은 XY Trace 디스플레이에 웨이브폼을 표시합니다. XY Trace 오브젝트는 Scales 컨트롤 입력을 가집니다. 이 Scales 컨트롤 입력에는 디스플레이의 스케일을 변경할 내용이 Record 데이터타입으로 제공되어야 합니다. Text 및 Integer는 Scales 컨트롤 입력에 사용될 Build Record 오브젝트에 값을 제공합니다. XY Trace 오브젝트의 Error 출력은 모든 에러를 잡기 위해서 추가되었습니다. 에러가 발생하면 errorInfo()이 Error 출력터미날로 전송됩니다.

이 프로그램은 에러번호와 에러메시지를 출력하여 에러를 관리합니다. Scales 컨트롤 입력이 에러를 발생하는 경우를 제외하고, XY Trace 에서 발생하는 모든 에러를 잡습니다.

프로그램을 실행하여 컨트롤 핀에서 발생되는 에러를 잡도록 시도하겠습니다. Scales 컨트롤 핀은 최소한 변경될 스케일을 나타내는 값을 가진 Record 오브젝트가 입력될 것이라고 예상합니다. 변경될 수 있는 스케일은 X, Y, Y1, Y2 및 Y3입니다.

컨트롤 핀은 Text에서 올바르지 않은 값 T를 받았으므로, 에러를 생성합니다. 이것은 컨트롤핀 에러이므로, XY Trace 및 Error 출력핀으로 더 이상 프로그램이 흐르지 않으며, Error 출력터미날은 에러정보를 받지 못합니다. 프로그램은 중지되고 VEE는 다음과 같은 에러메시지를 출력합니다.

앞에서 설명된 바와 같이, 컨트롤 핀에서 발생되는 에러를 올바르게 잡는 방법은 그 오브젝트를 포함하는 컨텍스트에 Error 출력을 추가하는 것 입니다. 다음 프로그램에서는 Build Record 오브젝트와 XY Trace 오브젝트를 UserObject 안으로 넣었습니다. XY Trace 오브젝트에 생성했던 Error 출력터미날을 제거하고 UserObject의 출력터미날에 Error 출력터미날을 생성했습니다. 또한, UserObject 의 출력터미날을 errorInfo() 오브젝트에 연결하였습니다.

관련정보

에러 처리, 컨트롤 핀으로 데이터 전달, 레코드 생성, Formula오브젝트에 여러 개의 입력제공, 타이밍 이벤트


컨트롤 핀으로 데이터 전달

오브젝트의 컨트롤 핀이 파일이름 또는 디폴트 값 등의 데이터를 받을 때, 오브젝트의 시퀀스 입력핀을 연결하지 않으면 프로그램이 기대했던 방식으로 실행하지 않을 수 있습니다. 컨트롤 핀은 데이터의 흐름제어에 영향을 미치지 않으므로, 컨트롤 핀에 데이터가 제공되지 않았어도 데이터 입력핀에 데이터가 제공되면 오브젝트가 실행됩니다.

다음 프로그램은 이러한 시퀀싱 문제에 대해서 설명합니다. dataFile2 파일이름이 File Name 컨트롤 핀으로 제공되기 전에, Alloc Array 오브젝트가 데이터를 To File 오브젝트로 전송합니다. To File 오브젝트가 데이터를 받으면, 원래 계획했던 dataFile2 대신에dataFile1 파일의 내용을 즉시 변경합니다. To File 오브젝트는 컨트롤 핀으로 새로운 파일이름을 받지만 이미 늦었습니다.

이 문제를 해결하려면, To File 오브젝트의 시퀀스 입력을 이용하여 컨트롤 핀이 데이터를 받을 때까지 오브젝트의 실행을 보류해야 합니다. 다음 프로그램에서는 File Name 오브젝트의 시퀀스 출력을 To File 오브젝트의 시퀀스 입력에 연결하여 원하는 파일에 데이터를 쓰도록 프로그램 실행순서를 명확히 하였습니다.

관련정보

에러 처리, 컨트롤 핀에서 발생하는 에러 캡쳐, 레코드 생성, Formula오브젝트에 여러 개의 입력제공, 타이밍 이벤트


레코드 생성

다음과 같이 3 개의 웨이브폼을 가지는 레코드를 생성하는 프로그램에서, Build Record 오브젝트는 데이터를 출력하지 않습니다. Function Generator 오브젝트의 출력을 DeMultiplexer로 보낸 후, For Range 오브젝트가 0 부터 2 까지 루프를 시작합니다. 각 루프 카운트는 해당 Addr출력을 각각의 Build Record 입력으로 보냅니다.

주의사항

루프 안에서, DeMultiplexer와 같이 여러 개의 출력을 가지는 오브젝트가 각 루프마다 하나의 터미날에서 데이터를 출력하면 다른 출력터미날의 값은 각 루프가 시작할 때 마다 무효화됩니다. 이 기능은 이전 데이터 또는 정확하지 않은 데이터가 다음 오브젝트로 전달되는 것을 방지합니다. 이것은 Build Record와 같이 여러 개의 입력을 가진 오브젝트에도 적용됩니다.

하나의 입력터미날이 각 루프마다 데이터를 받으면, 각 루프가 시작할 때 다른 입력의 데이터는 무효화됩니다. VEE는 현재의 데이터 대신 이전 데이터를 사용하여 정확하지 않은 결과가 발생되는 것을 방지하기 위해서 이러한 방식으로 동작합니다.

VEE가 이와 같이 동작하므로 Build Record 오브젝트는 출력터미날을 통해서 데이터를 보내지 않습니다. 이 프로그램에서, 각 For Range 루프는 이전 루프에서 생성된 Build Record의 입력터미날의 데이터를 무효화합니다. Build Record 오브젝트는 각 루프마다 하나의 입력만 받고, 한 순간에는 하나의 입력만 유효하므로, Record 오브젝트의 출력터미날으로는 데이터가 출력되지 않습니다.

이 프로그램을 작성하고, Show Data Flow를 활성화하여 어떻게 DeMultiplexer가 루프마다 단 하나의 데이터만 출력하는지 검토하십시오.

다음 프로그램은 UserObject를 사용하여 원래 기대했던 방식대로 프로그램이 실행되도록 작성되었습니다. UserObject의 출력터미날이 모든 루프가 완료될 때까지 데이터를 잡고 있기 때문에 원하는 결과를 얻을 수 있습니다. UserObject는 3 개의 출력을 동시에 전송하므로 Build Record 오브젝트의 입력터미날의 데이터가 유효합니다. 3 개 입력의 모든 입력이 유효한 데이터를 가질 때, Build Record 오브젝트의 출력으로 기대했던 결과를 받을 수 있습니다.

다음 프로그램에서는 DeMultiplexer 오브젝트를 Shift Register 오브젝트로 변경하여 문제를 해결했습니다. 한 순간에 하나의 유효한 출력데이터를 가지는 DeMultiplexer와는 다르게, Shift Register의 3 개의 출력터미날의 데이터는 동시에 Build Record의 3 개의 입력터미날로 전송되므로, 3 개의 출력은 동시에 유효한 데이터를 가집니다.

이 프로그램은 3 개의 웨이브폼을 Shift Register 안으로 밀어 넣고 그것들의 레코드를 생성하기 위해서 Build Record를 핑합니다. Collector 오브젝트를 사용하면 레코드 출력대신 어레이 출력을 얻을 수 있습니다.


Formula오브젝트에 여러 개의 입력제공

하나의 루프 안에 있는 여러 개의 입력을 가지는 Formula 오브젝트의 각각의 입력에, 루프를 실행하면서 각각 데이터를 제공하면 문제가 생길 수 있습니다. 레코드 생성에서 설명한 바와 같이, Formula 오브젝트의 입력 터미날에 유효하지 않은 데이터가 제공되면 Formula 오브젝트가 동작하지 않습니다. 루프 안에 DeMultiplexer 오브젝트를 추가하면 혼란이 가중됩니다. 다음 프로그램은 문제를 발생합니다.

DeMultiplexer 오브젝트는 각 싸이클마다 하나의 값을 출력하는 For Count 오브젝트에 의해서 구동됩니다. 싸이클마다 하나의 값이 출력되므로, Formula 오브젝트의 입력은 각 싸이클이 지나면 유효하지 않게 됩니다. Formula 오브젝트의 2 개의 입력 A와 B는 동시에 함께 유효한 값을 가질 수 없으므로, Formula 오브젝트는 실행되지 않으며, 따라서 출력값도 발생하지 않습니다.

Formula 오브젝트의 입력핀 A의 값이 다음 루프에서도 2를 유지할 것이라고 기대하더라도, VEE는 그렇게 실행되지 않습니다. 그 루프는 동일한 연산식에 대해서 계수를 여러 번 연산하게 됩니다. 이렇게 다음 루프를 실행하기 전까지 여러 번의 내부 연산을 거치는 과정에서 어떤 것이 유효한 데이터인지 노리적으로 확신하기 어렵습니다. 일반적으로, 프로그램 언어에서는, 이전 루프에서 생성된 데이터는 “유효하지 않음”이라고 간주하는 것이 안전합니다. 이러한 이유로 각 루프를 시작하면 오브젝트의 입력터미날에 있는 이전 데이터를 무효화시키게 됩니다.

루프 사용법

루프 반복 후에도 입력 값이 유효한 상태를 유지하도록 할 수 있습니다. 레코드 생성의 예제에서 어떻게 Shift Register 오브젝트가 여러 개의 유효한 출력을 동시에 제공할 수 있는지 설명했습니다. 변수를 사용해서도 이것을 직관적으로 해결할 수 있습니다. 다음 예제는 하나의 Formula 오브젝트에 유효한 데이터를 제공하기 위해서 변수를 사용하는 방법을 설명합니다.

이 프로그램에서 전역변수 Nval을 사용하면서 관심을 가져야 할 2 가지 중요한 점이 있습니다. 첫 째, Nval은 프로그램이 시작할 때 초기화되었습니다. 이 프로그램에서는 VEE가 Nval 변수를 사용하기 전에 초기화하므로, 사용자가 반드시 초기화할 필요는 없었지만, 좋은 프로그램 습관이라고 할 수 있습니다. 둘 째, Nval는 Formula 오브젝트가 사용하기 전에 항상 새로운 값으로 설정됩니다.

오브젝트가 변수를 사용하기 전에 항상 그 변수를 설정하도록 해야 합니다. 그렇지 않으면, 유효하지 않은 데이터를 사용할 때와 유사한 문제가 생길 수 있습니다. 변수가 초기화되지 않으면, Variable was not found등의 에러가 발생할 수 있습니다.

관련정보

에러 처리, 컨트롤 핀에서 발생하는 에러 캡쳐, 컨트롤 핀으로 데이터 전달, 레코드 생성, 타이밍 이벤트


타이밍 이벤트

Timer 오브젝트는 프로그램에서 어떻게 연결되었는가에 따라서 이상한 결과를 표시할 수 있습니다. 이 프로그램은 VEE이 데이터전달 문제가 프로그램 안에서 오브젝트를 연결하는 방법에 영향을 미치는지 설명합니다.

이 프로그램 안의 “Blocks”는 몇 개의 VEE 오브젝트를 가지고 있는 임의의 쓰레드입니다. Block 2를 실행하는데 얼마나 오랜 시간이 소요되는지 확인하기 위해서 Timer 오브젝트가 추가되었습니다. 이 프로그램은 실행될 수도 있으며 에러를 발생할 수도 있습니다. 프로그램이 실행되는 경우에는, Timer 오브젝트에 이상한 값이 출력됩니다. Timer 오브젝트가 시작할 때와 종료할 때에 영향을 미치는 2 가지 문제가 있습니다.

첫 째, Block 1 오브젝트의 시퀀스 출력은 Block 2 오브젝트와 Timer오브젝트의 Time1 입력핀을 모두 “핑”합니다. 프로그램에서는 어떤 것이 먼저 핑되어야 하는지 지정하지 않았으므로, 이것들 중에서 어떤 것이 먼저 핑되는지 알 수 없습니다. Block 2 오브젝트가 먼저 핑 된다면, Block 2 오브젝트의 실행을 완료할 때까지 Time1이 핑 되지 않을 것입니다. 이 경우, Time1이 핑되기 전에, Block 2 오브젝트의 출력이 Time2를 핑하면 이상한 결과가 출력되거나 에러가 발생합니다.

Show Data Flow 디버깅 기능을 활성화하고 문제점을 찾으려 해도, 데이터 흐름 표시기가 실제 데이터흐름을 완벽히 표시하지는 못합니다. 이 상황에서는 데이터 흐름은 Block 1의 시퀀스 출력을 Time1과 Block 2에 연결한 순서에 영향을 받습니다.

두 번째는 Block 2의 출력을 Timer오브젝트의 Time2 입력에 연결한 것과 관련이 있습니다. Block 2의 출력은 Block 3과 Block 4에도 연결되어 있으므로, 어떤 것이 먼저 실행되는지 확인할 수 없습니다. 이 상황 역시 정확한 타이밍결과를 제공하지 못하는 이유가 됩니다.

정확한 프로그램 실행순서를 지정하여 정확한 시간을 측정하는 방법이 아래 설명되어 있습니다. Block 1 오브젝트와 Block 2 오브젝트 사이에 Do 오브젝트를 삽입하고, Block 2의 시퀀스 출력을 Time2 입력에 연결합니다. 이 Do 오브젝트는 아래 그림의 번호의 순서대로 프로그램이 실행되도록 합니다.

Block 2의 출력핀은 주변의 번호의 순서대로 실행됩니다. Block 2의 시퀀스 출력을 Time2의 입력에 연결하면, Block 2 및 이 Block 2 오브젝트에 의해서 구동되는 모든 쓰레드가 완료될 때, Timer의 결과가 표시됩니다. 마찬가지로, Block 2의 시퀀스 출력핀에 다른 블록이 연결되어 있으면, 다른 Do 오브젝트를 추가하여 실행순서를 명확히 할 수 있습니다.

관련정보

에러 처리, 컨트롤 핀에서 발생하는 에러 캡쳐, 컨트롤 핀으로 데이터 전달, 레코드 생성, Formula오브젝트에 여러 개의 입력제공


데이터 컨테이너 이해하기

데이터 컨테이너가 한 오브젝트에서 다른 오브젝트로 이동하는 것은 VEE 프로그램에서 데이터 전달의 한 방식입니다. 데이터 컨테이너는 VEE 내부 데이터 형식입니다. 모든 데이터 컨테이너는 데이터 종류(text, real 기타 등등) 과 데이터 형태(스칼라, 1차원 어레이 기타 등)로 구성됩니다.

데이터 컨테이너는 하나의 값을 가지거나 여러 개의 값으로 구성된 어레이를 가집니다. 두 형태 모두 특정한 데이터 출력 핀으로부터 한 오브젝트가 실행될 때마다, 하나의 값 만이 다음 오브젝트로 이동됩니다.

아래 예제 프로그램에서 Real64 Constant 오브젝트는 1차원 어레이로 설정되었고, Int32 Constant 오브젝트는 스칼라로 설정되었습니다.

프로그램이 실행되면 Real64 상수 오브젝트는 1차원 실수 어레이인 데이터 컨테이너를 a+b 오브젝트로 이동시킵니다. Int32 상수 오브젝트는 정수 스칼라(값이 1인) 데이터 컨테이너를 a+b 오브젝트로 이동시킵니다. a+b 오브젝트로 보내진 두 데이터 컨테이너를 VEE에서 어떻게 더할 수 있습니까? 간단합니다. VEE는 자동으로 데이터 종류를 변환하는 기능이 있습니다. VEE는 정수 값 1을 동일한 실수 값(1.0)으로 변환합니다. a+b 오브젝트는 Real64 상수 오브젝트에서 보낸 컨테이너 값에 실수 변환환 Int32 상수 오브젝트의 값 1.0을 각 앨리먼트에 더합니다. 위에 그림과 1차원 실수 어레이가 출력됩니다.

Line Probe를 사용하여, VEE 데이터 연결선에 이동된 특정 컨테이너의 값을 확인할 수 있습니다. 마우스 커서를 원하는 연결선 위에 올려놓으면 연결선의 색이 변하고 왼쪽 마우스를 클릭하면 Container Information 대화상자가 나타납니다. 예를 들어, 아래 그림과 같이 Line Probe를 사용하여 컨테이너 Real64 상수 오브젝트의 데이터 출력 연결선 상에 컨테이너를 확인합니다.

일반적으로 VEE는 데이터 종류를 자동으로 변환합니다. 또한 가능하면 데이터 형태도 프로그램에서 결정하여 실행합니다. 따라서 데이터 종류와 형태에 대해 신경을 쓸 필요가 없습니다. 변환 규칙에 대한 자세한 정보는 입력터미날에 있는 데이터종류 변환 및 인스트루먼트 I/O 데이터 종류 변환를 참고하십시오.

터미날 정보

터미날은 사용된 오브젝트 입력 형태와 종류 및 입력 혹은 출력 컨테이너의 정보를 화면에 보여줍니다. 오브젝트의 핀은 터미날을 연결하는 포인트입니다. 오브젝트의 속성 창을 열고 Show Terminals항목을 True로 설정하거나 오브젝트 아이콘을 두 번 클릭하여 존재하나 보이지 않는 오브젝트 터미널을 화면에서 볼 수 있습니다.

오브젝트 핀 옆에 터미널 박스를 두 번 클릭하여 화면에 표시되는 terminal information 대화상자에서 터미널의 정보를 보거나 수정합니다.

대화상자의 모든 항목이 회색으로 되어 있다면 터미날을 수정할 수 없습니다. 항목 중에 흰색으로 된 항목만 수정할 수 있습니다.

터미날에는 다음과 같은 항목이 있습니다.

Name 항목은 터미날의 이름입니다. 이 항목을 수정할 수 있습니다. Formula 오브젝트에서 터미날에 사용된 이름은 Formula 오브젝트 내부의 표현식에서 변수로 사용할 수 있습니다.

Mode 항목은 Data, Control, Trigger 또는 Error등의 터미날 종류를 표시합니다. 이 항목을 수정할 수 없습니다.

Required Type 및 Required Shape항목은 입력 터미날에만 사용하는 것으로 특정 오브젝트에 제공되는 입력 데이터에 대한 정보를 지정합니다.

Container Information은 컨테이너에 관한 정보입니다. 즉, (입력 터미날의 입력조건에 따라서) 실행할 정보 또는 (출력 터미날에서) 실행된 정보를 저장합니다. 데이터 종류(Type), 데이터 형태(Shape), 크기(데이터가 어레이인 경우), 매핑 및 데이터 값 등이 저장됩니다.

관련정보

데이터 타입(Type), 데이터 형태(Shape), 데이터 타입용 라인색상


데이터 종류(Type)

데이터 타입(Type)

VEE는 VEE 사용에 필요한 여러 가지의 데이터 종류(Type)를 제공합니다. 즉, VEE 오브젝트간에 주고 받는 모든 데이터는 이들 데이터 종류에 속합니다.

주의사항

VEE 오브젝트에 입력 터미널의 종류를 Any로 설정한다면(대부분의 경우에 Any로 설정) 입력 터미널은 컨테이너에 어떤 VEE 데이터 종류라도 입력됩니다.

혼합된 데이터 종류(Waveform, Spectrum, Record, Coord등의 오브젝트)는 특정한 데이터 형태들을 사용합니다.

Boolean은 참 또는 거짓입니다.

UInt8는 부호 없는 8비트 2의 보수 정수입니다. (0~225)

Int16는 16비트 2의 보수 정수입니다. (-32768 ~ 32767)

Int32는 32비트 2의 보수 정수입니다. (-2147483648 ~ 2147483647)

Int64는 64비트 2의 보수 정수입니다. (-9223372036854775808 ~ 9223372036854775807).

Real32는 IEEE 754 표준 호환32비트 부동 소수점 숫자입니다. (±3.40282347E±38)

Real64 는 IEEE 754 표준 호환64비트 부동 소수점 숫자입니다. (지수가 약 16 개의 십진수로 표시되며, ±1.7976931348623157E308까지의 값을 가집니다.)

PComplex는 (mag, @phase)형태로 크기와 위상을 가진 컴포넌트입니다. 일반적으로 위상의 단위는 디폴트로 Degrees입니다. 예를 들어 Trig모드를 Degrees로 설정하고 30도에 크기 4는 (4, @30)로 표현합니다. 여기서, mag 및 phase 에 사용되는 데이터 종류는 Real64입니다.

Complex는 직각 혹은 카티시안 복소수입니다. (실수, 허수)형태로 된 실수와 허수 컴포넌트로 된 복소수로서 각각의 컴포넌트(실수및 허수)는 Real64 입니다. 예를 들어 복소수 1 +2i는 (1,2)로 표현합니다.

Waveform은 동일한 시간 간격을 가진 Real64의 값과 선형으로 매핑 된 점들과 웨이브 폼의 전체 시간 스팬으로 구성된 시간 영역의 혼합된 데이터 종류입니다. 웨이브 폼의 데이터 형태는 1차원 어레이(Array 1D)이어야 합니다.

Spectrum 은 포인트의 PComplex 값과 최대 최소 주파수 값으로 구성된 주파수 영역의 혼합된 데이터 종류입니다. 도메인 데이터는 로그 또는 선형으로 매핑될 수 있습니다. Spectrum의 데이터 형태는 1차원 어레이(Array 1D)이어야 합니다.

Coord는 (x, y, ...)의 형태로 최소 2개 이상의 컴포넌트로 구성된 혼합된 데이터 종류 입니다. 각 컴포넌트는 Real64 입니다. Coord의 데이터 형태는 스칼라 혹은 1차원 어레이이어야 합니다.

Enum은 정수와 짝을 이루는 텍스트 스트링입니다. Enum 데이터 타입은 Data [image] Selection을 클릭하여 생성한 제어 오브젝트(예를 들어 Radio Buttons 오브젝트)에서 발생됩니다. 이들 오브젝트의 ordinal 출력 핀에서 발생된 정수 값을 사용할 수 있습니다. ordinal(x) 함수도 같은 기능입니다. Enum의 데이터 형태는 스칼라이어야 합니다. 오브젝트의 입력 터미날에서 “Requird Type”을 “Enum” 으로 설정할 수는 없습니다.

Text은 알파벳 문자의 스트링입니다.

Record는 필드로 구성된 데이터 종류입니다. 각각의 데이터 타입 필드는 이름과 컨테이너로 구성되며 컨테이너는 (Record 포함)어떤 형태를 가져도 됩니다.

오브젝트는 VEE 실행할 때 ActiveX Automation오브젝트와 ActiveX Control을 사용하는 변수로 지정하는 데이터 종류입니다. 오브젝트는 다른 컴퓨터의 UserFunctions을 사용한다거나 컴파일한 함수를 제외한 UserObject 및 UserFunction에서 입력과 출력의 데이터를 통신할 수 있습니다. 오브젝트 변수는 프로그램 상위 계층의 이름의 값(예를 들어 Range 혹은 Application) 및 Automation 오브젝트로부터 받은 프로그램 상위 계층의 포인터의 값을 가지고 있습니다. 오브젝트 데이터 형태는 Scalar이어야 합니다.

Variant는 일정한 형태를 가진 데이터 종류가 아닙니다. 수 많은 다른 데이터 종류 중 하나를 표현하는 값을 지정하여 표현하는 데 사용합니다. 순간적으로 특정 데이터 종류를 나타냅니다.

데이터 종류들과 데이터 종류의 통신의 자세한 정보는 입력터미날에 있는 데이터종류 변환 및 인스트루먼트 I/O 데이터 종류 변환을 참조하십시오.

ActiveX Automation과 Controls들에 대한 Agilent VEE 기술 지원에 대한 자세한 정보를 알고 싶다면 Help => Contents and Index => Tell Me About... => Active X을 참조하십시오..

특별한 Instrument I/O 데이터 종류(VEE 5이전 버전의 실행모드)

VEE는 Int32 데이터 종류로 모든 정수 값을 내부에서 저장하거나 조작하고 Real (혹은 Real64)데이터 종류로 모든 실수를 내부에서 저장하거나 조작합니다. 그러나 instruments는 일반적으로 16-bit 정수 혹은 8-bit 바이트를 지원합니다. 물론 instruments는 32-bit 실수 형식을 지원합니다. 그러므로 VEE는 Instruments가 포함된 I/O 트랜잭션만을 지원하는 다음의 3가지 종류를 지원합니다.

Byte는 8비트 2의 보수 바이트입니다(-128 ~ 127). (바이트는 READ BINARY, WRITE BINARY, 그리고 WRITE BYTE instrument I/O 트랜잭션으로 사용됩니다. WRITE BYTE 트랜잭션은 GPIB 계측기에서 출력하는 특별하게 만든 문자로 사용됩니다.

Int16는 16비트 2의 보수 정수입니다. (-32768 ~ 32767).

Real32은 IEEE 754 표준 호환32비트 부동 소수점 숫자입니다. (±3.40282347E±38).

관련정보

데이터 컨테이너 이해하기, 데이터 형태(Shape), 데이터 타입용 라인 색상


데이터 타입용 라인 색상

VEE 4이상의 실행모드에서, VEE는 라인을 통해 흐르는 데이터 타입을 기준으로 데이터 라인에 다른 색상을 할당합니다. 다음은 색상 속성(File [image] Default Preferences 을 통하여 변경할 수 있습니다.)의 이름에 따른 디폴트 색상입니다:

• 푸른색: 숫자(정수 또는 실수 타입)

• 푸른색: 복소수(복소수 및 PComplex 타입)

• 오렌지색: 스트링(스트링 타입)

• 회색: 시퀀스 출력(nil 값, 일반적으로 시퀀스 출력선에서)

• 검정색: 알려지지 않은 타입 또는 최적화되지 않은 타입(예를 들어, 레코드 타입)

주의사항

데이터 타입이 어레이인 경우에는, VEE는 폭이 넓은 라인을 디스플레이합니다. 속도를 향상시키기 위하여, 프로그램의 라인 색상을 체크하십시오. 흑색이 아닌 라인 일수록 프로그램은 빨리 실행됩니다.

관련정보

데이터 컨테이너 이해하기, 데이터 종류(Types), 데이터 형태(Shapes)


데이터 형태(shape)

혼합된 데이터 종류(Waveform, Spectrum, Record, Coord등의 오브젝트)는 다음의 데이터 형태들을 사용합니다.

Waveform 오브젝트와 Spectrum 오브젝트의 데이터 종류는 1차원 어레이만 사용 합니다.

Record 오브젝트 와 Coord 오브젝트의 데이터 종류는 실수와 1차원 어레이를 사용합니다. (이들 오브젝트의 데이터 종류는 2차원 이상의 어레이는 사용하지 않습니다.)

일반 오브젝트 데이터 종류는 실수만 사용합니다.

다른 데이터 종류는 실수 혹은 어레이 데이터 형태로 설정합니다.

스칼라는 10 혹은 (32, @10)같은 하나의 수입니다.

어레이는 1차원에서 10차원까지 사용합니다.

어레이는 매핑으로 설정됩니다. (매핑은 배열의 각각의 행과 열에 독립적인 변수들에 들어있는 실수 값의 집합입니다.)

대부부의 경우, VEE 오브젝트의 입력 데이터의 Required Shape는 Any로 설정되어 있습니다. Any는 생성된 오브젝트가 하나 이상의 데이터 형태를 가진 컨테이너들의 값을 허용한다는 의미입니다.

관련정보

데이터 컨테이너 이해하기, 데이터 종류(Type), 데이터 타입용 라인 색상


Converting Data Types on Input Terminals

입력터미날에 있는 데이터종류 변환

전통적인 프로그램 언어에서는 수동으로 데이터 타입을 변경합니다. VEE는 대부분의 데이터 타입을 자동으로 변환합니다.

입력터미날에 있는 데이터 형태는 변환되지 않습니다. 그러나 수학함수를 사용하면 데이터 종류와 형태를 자동으로 변환할 수 있습니다. 좀더 자세한 정보는 데이터 처리를 참조하십시오.

대부분의 오브젝트는 데이터 입력터미날에 어떤 종류의 데이터라도 입력할 수 있습니다. 그러나 일부 오브젝트는 특정한 데이터 종류나 형태를 필요로 합니다. 이러한 오브젝트들을 위해, 데이터 입력터미날은 입력 컨테이너를 원하는 데이터 종류로 자동으로 변환하기 위한 시도를 합니다.

예를 들어 Magnitude Spectrum 디스플레이는 Spectrum 데이터가 필요합니다. 만약 Function Generator (파형)의 출력이 Magnitude Spectrum 디스플레이에 연결되어 있다면, Magnitude Spectrum의 입력터미날은 시간영역 데이터를 주파수 영역 데이터로(파형을 스펙트럼으로) 변환하기 위한 FFT를 자동으로 수행합니다.

입력데이터의 종류 변환은 확대 변환 또는 축소 변환이 있습니다. 확대변환은 작은 정보를 가진 데이터 종류를 하나 이상의 정보를 가진 데이터 종류로의 변환입니다. 예를 들어 Int32를 Real64로 변환하는 것은 확대 변환입니다. 이러한 변환은 필요한 만큼의 공간을 자동으로 확보합니다 – VEE 프로그래머는 이 과정에 크게 신경 쓰지 않아도 됩니다.

축소변환은 데이터를 줄이는 변환입니다. 예를 들어 Real32를 Int32로 변환하는 것은 Real32 숫자의 끝부분을 잃기 때문에 축소변환입니다. 데이터 종류의 축소변환은 오브젝트에 입력되는 데이터 종류를 지정할 경우에 발생합니다. 데이터 종류를 지정하고 나면, 축소변환이 필요하거나 가능할 때 자동으로 이루어집니다.

예를 들어, 다른 오브젝트가 Real64 숫자(예를 들어, 28.2)를 출력하고 있는데 Formula 오브젝트의 입력을 Int32로 변경하면, 값은 Int32(32) 값으로 축소 변환됩니다.

Formula 오브젝트로 입력되는 데이터 종류를 변환하기 위해서는, 입력터미날의 정보영역(핀이 아님)을 더블클릭하고 나타나는 대화상자에서 Required Type 항목을 클릭합니다. 드롭다운 리스트에서 Int32를 클릭하여 종류를 변경합니다.

주의사항

VEE 5에 있는 계측기 I/O 트랜잭션의 데이터 종류 변환과 실행모드(execution mode)는 예외입니다. 좀더 자세한 정보는 인스투루먼트 I/O 데이터 종류 변환를 참조하십시오.

Record의 데이터 종류는 최상위의 우선순위를 가집니다. VEE 는 Record의 데이터 종류를 자동으로 축소변환 또는 확대변환 하지는 않습니다. 레코드와 레코드가 아닌 데이터 사이에서 변환하기 위해서는 Build Record 또는 Unbuild Record를 사용하십시오. 좀더 자세한 정보는 레코드 사용하기 및 데이터셋 사용하기을 참조하십시오.

Object의 데이터 종류 또한 자동으로 축소변환 또는 확대변환을 하지는 않습니다. 물론 다른 데이터 종류로 변환될 수는 있습니다. ActiveX automomation 오브젝트는 Object의 데이터 종류를 사용합니다. CreateObject 또는 GetObject 함수를 사용하여 ActiveX automomation 오브젝트를 생성하고 사용할 수 있습니다.

변환을 수행할 수 없을 때는 VEE는 에러를 리턴 합니다. 다음의 표는 변환이 자동으로 수행되는 경우에는 “yes’ 또는 VEE가 에러를 리턴할 때는 ‘no’를 표시하여 보여줍니다.

데이터 형태(Shape)나 종류(Type)를 “Any”로 선택하면, “Any”의 의미는 입력데이터를 변환하지 않고 체크하지도 않습니다. Null(nil)은 데이터 종류로 변환할 수는 없지만 입력터미날이 Any Shape와 Any Type으로 설정되어 있으면 입력은 가능합니다. 이것은 모든 VEE 오브젝트에 적용됩니다.

nil 데이터의 입력방법은 VEE 7.03 버전이상에서 변경되었습니다. 이것은 nil 데이터를 “Any”를 제외한 어떤 다른 종류나 형태로 설정된 입력터미날로 전송할 수 있다는 것을 의미합니다. 만약 입력터미날이 자신의 데이터 형태를 가지며 종류조건이 “Any”를 제외한 다른 종류로 설정되어 있다면, VEE 7.03 버전에서 변경 적용되어, 입력터미날이 Int32 스칼라가 필요하다 할지라도 nil 데이터는 입력 됩니다. 이것은 입력터미날의 입력조건이 설정된 상태에서 nil 데이터가 입력된 경우에 발생했던 에러에 대해 VEE 7.03버전이상에서는 수정되었습니다.

표: 입력터미날에서의 데이터 종류의 확대변환 및 (축소변환)

_________________________________________________________________________________________________

To: | UInt8 Int16 Int32 | Real32 Real64 | Complex | PComplex | Waveform | Spectrum | Coord | Enum | Text
From: |  |  |  |  |  |  |  |  |

_________________________________________________________________________________________________

UInt8 Int16 Int32 | (yes)[3] | yes | yes[1] | yes[1] | no | no | yes[2] | no | yes
Real32 Real64 | (yes)[3] | (yes)[3] | yes[1] | yes[1] | no | no | yes[2] | no | yes
Complex | no | no[4] | n/a | yes | no | no | no | no | yes
PComplex | no | no[4] | yes | n/a | no | no | no | no | yes
Waveform | (yes)[3] | (yes)[8] | no | no | n/a | yes[5] | yes | no | yes
Spectrum | no | no | (yes)[8] | (yes)[8] | yes[5] | n/a | no | no | yes
Coord | no | no | no | no | no | no | n/a | no | yes
Enum | no[6] | no | no | no | no | no | no | n/a | yes
Text | (yes)[7] | (yes)[7] | (yes)[7] | (yes)[7] | no | no | (yes)[7] | no | n/a

_________________________________________________________________________________________________

표 보기:

yes = 확대 변환

(yes) = 축소변환

n/a = 사용할 수 없음

[1] 정수 또는 실수 값을 Complex (값, 0) 또는 PComplex (값, @0)로 확대변환 합니다.

[2] n개의 필드를 가진 Coord의 n-1필드의 첫번째 값인 독립변수는 매핑되지 않은 어레이데이터의 어레이 인덱스 입니다. 만약 어레이가 매핑되어 있다면, 독립변수는 각 차원의 매핑으로부터 해제됩니다. 종속변수 y는 어레이 앨리먼트입니다. 만약 컨테이너가 어레이가 아닌 스칼라이면 변환이 안되고 에러가 발생합니다.

[3] 이 축소변환은 만약 값이 목표하는 종류의 범위를 벗어난다면 에러의 원인이 됩니다.

[4] 이 축소변환은 자동으로 수행되지는 않지만, re(x), im(x), mag(x)및 phase(x) 오브젝트 또는 Data [image] Build Data/UnBuild Data [image] 아래에 있는 오브젝트들은 변환할 수 있습니다.

[5] FFT 또는 역 FFT는 자동으로 변환됩니다.

[6] 이 축소변환은 자동으로 수행되지는 않지만, ordinal(x) 오브젝트는 변황할 수 있습니다.

[7] 이 축소변환은 만약 텍스트 값이 숫자(34 또는 42.6과 같이)가 아니거나 수용할 수 없는 숫자 형식인 경우에는 에러가 발생합니다. 수용 가능한 형식은 다음과 같습니다.(각 숫자에 포함된 스페이스를 제외한 모든 스페이스는 무시됩니다.):

정수나 실수로 축소 변환된 텍스트가 포함할 수 있는 것:

앞에 쓰인 기호. 예를 들어 -34.

선택기호 또는 스페이스가 붙어 있거나 정수에 붙어있는 e 또는 E의 접미사. 예를 들어 42.6E-3.

Complex로 축소 변환하고자 하는 텍스는 다음 형식을 가져야 합니다: (숫자,숫자).

PComplex로 축소 변환하고자 하는 텍스트는 다음 형식을 가져야 합니다: (숫자, @숫자). 변환을 위해서는 위상(2번째 컴포넌트)은 Trig Mode 설정과는 상관없이 라디안값 이어야 합니다.

Coord로 축소 변환하고자 하는 텍스트는 다음 형식을 가져야 합니다: (숫자, 숫자, ...).

[8] 이들 축소변환은 파형및 스텍트럼의 매핑을 유지합니다.

[9] “참”과 “거짓”을 변환할 수 있습니다.

주의사항

인스트루먼트 I/O 데이터 종류 변환, 오브젝트와 함수를 사용한 데이터 타입변환


오브젝트와 함수를 사용한 데이터 타입변환

VEE는 데이터타입을 다른 타입으로 변환하는 오브젝트와 내장함수를 제공합니다. VEE가 입력 터미날에서 처리할 수 없는 특별한 타입변환을 이들 오브젝트는 처리할 수 있습니다.

데이터의 타입을 실행하기 위해서는 VEE에서 기본 제공되는 타입변환 함수를 Function & Object Browser에서 선택하거나, 표현식을 입력할 수 있는 오브젝트에 타입변환 함수를 직접 입력하면 됩니다. 브라우저에서, 함수를 가져오기 위해서는 Type: Built-in Functions 과 Category: Type Conversion을 선택합니다.

  • • 예를 들어, 함수 asText(x)는 입력 z를 텍스트 데이터 타입으로 변환하고 x와 동일한 데이터 형태를 리턴합니다. x는 어떤 형태와 타입도 사용할 수 있습니다. 표현식 asText(3.4)에서, 실행결과는 텍스트 값 "3.4"입니다.

주의사항

VEE 5.0 이전 버전에서, Formula 등의 오브젝트의 표현식에 정수를 직접 입력하면 실수로 변환됩니다. VEE 5.0 버전 이상에서는, 실행모드를 VEE 5 이상으로 설정한 경우에 표현식에 있는 정수는 실수로 변환되지 않습니다. 이 변경은 입력 터미날에서 데이터 타입변환에 영향을 주지는 않습니다. 예를 들어, Formula 표현식 “2^4”는 VEE 4 이전 모드에서는 Real64 값 12.0을 생성하지만, VEE 5 이상의 모드에서는 Int32 값 16을 생성합니다.

레코드 데이터 타입은 최상위 우선순위를 가집니다. 반면에, VEE는 레코드 데이터 타입에서 자동으로 상향변환 하거나 하향변환을 하지는 않습니다. 레코드와 레코드가 아닌 데이터 사이에서 변환하기 위해서는, Build Record 와 Unbuild Record 오브젝트를 사용합니다.

일반적인 개념 에서 설명한 문법을 사용하는 표현식에서도 유사한 결과가 생성됩니다.

좌표 데이터 타입은 이것과 관련된 특별한 몇 개의 규칙을 가집니다:

• Int32와 실수 데이터 타입의 어레이는 좌표로 상향변환 할 수 있지만, 좌표는 어떤 다른 숫자 타입으로 변환할 수 없습니다.

• 매핑이 안된 어레이가 좌표로 변환된 경우에는, 종속 좌표 값(마지막 좌표 필드)이 앨리먼트 값을 가지는 반면에 독립 좌표 값(첫번째 좌표 필드)은 어레이 인덱스에서 생성됩니다. 예를 들어, 어레이 A가 좌표로 변환되고 A가 [1,5,7]을 가지고 있는 경우에는, 이것은 [(0,1),(1,5),(2,7)]을 가진 좌표 어레이로 변환됩니다.

• 매핑된 어레이가 좌표로 변환된 경우에는, 독립 좌표 파라미터는 낮은 매핑 값부터 Xmin+(Xmax-Xmin/N)*(N-1)값 사이의 범위를 가집니다.

오브젝트 데이터 타입 또한 상향변환이나 하향변환이 자동으로 이루어지지 않으며, 다른 데이터 타입으로 변환할 수 없습니다. ActiveX 오토메이션 오브젝트는 오브젝트 데이터 타입을 사용합니다. CreateObject 와GetObject 함수를 사용하여 오토메이션 오브젝트를 생성하고 사용할 수 있습니다. ActiveX Automation 과 Controls을 지원하는 VEE에 대한 자세한 정보는 VEE에서 ActiveX Automation 사용법을 참조하십시오.

관련정보

Help => Index and contents => Tell me about... => Active X

입력 터미날에 있는 데이터 종류 변환, 인스트루먼트 I/O 데이터 종류 변환


데이터 처리

데이터를 처리하기 위하여, Function & Object Browser에 있는 수학 함수를 이용하여 데이터를 연산합니다. 브라우저를 열기 위하여 Function & Object Browser 툴바 버튼을 사용합니다. 수학 표현식을 생성하기 위하여 함수를 조합할 수 있습니다.

주의사항

Constant 오브젝트들과 같은 숫자 입력필드를 사용하여, 프로그램을 실행하기 전에 데이터를 처리할 수 있습니다. 오브젝트에 있는 숫자 입력필드에는 어떤 공식도 사용할 수 있습니다. 공식은 즉시 연산됩니다; 출력되는 값이 필드로 사용됩니다. Constants에 변수는 사용할 수 없습니다. 입력된 공식은 적절한 타입의 스칼라 값이나 오브젝트가 요구하는 데이터로 변환될 수 있는 타입의 값으로 연산됩니다. 일반적으로, 숫자 입력필드에는 어떤 종류의 이항 연산자, 네스팅을 위한 괄호, 호출 함수 및 정의된 상수 PI (3.1416...)등을 사용할 수 있습니다.

Function & Object Browser는 여러가지 방법으로 데이터를 처리하기 위한 수학 함수들을 제공합니다. 각 함수는 이름, 입력 및 출력에 일치하는 Formula 오브젝트에 입력된 표현식입니다. 각 Formula 오브젝트의 오픈뷰에 있는 표현식을 변경할 수 있으며, 속성도 변경할 수 있습니다. Function & Object Browser에서 제공된 모든 함수는, 다른 메뉴에 있는 표현식을 사용할 수 있는 어떤 오브젝트에도 사용할 수 있습니다. 표현식을 사용할 수 있는 다른 메뉴에 있는 오브젝트는 다음과 같습니다:

Data [image] Access Array [image] Set Values

Data [image] Access Array [image] Get Values

Data [image] Access Record [image] Get Field

Data [image] Access Record [image] Set Field

Device [image] Sequencer

Flow [image] If/Then/Else

Flow [image] Conditional (모든 conditional 오브젝트)

트랜잭션을 사용하는 I/O 오브젝트

표현식은 입력터미날 이름, 출력터미날 이름(I/O 트랜잭션과 Formula 에서만), 변수(전역변수 및 선언된 변수), 사용자 정의 함수(compiled, remote, 및 UserFunctions), 와 Function & Object Browser에 있는 수학 표현식을 포함합니다. 데이터 입력터미날 이름은 변수로 사용됩니다. USASCII 키보드를 사용한 경우에, VEE는 표현식에서 입력 변수의 이름에 대해서는 대소문자를 구분하지 않습니다. USASCII가 아닌 키보드를 사용한 경우에는, VEE는 7-bit ASCII 문자에서만 대소문자를 구분하지 않습니다. 표현식은 실행시에 연산됩니다.

관련정보

일반적인 개념, 지정 연산자 사용법, 이항 연산자 사용법


A collection of "Record" containers saved into a file for later retrieval. The To DataSet object collects Record data on its input and writes that data to a named file (the DataSet). The From DataSet object retrieves Record data from the named file (the DataSet) and outputs that data as Record containers on its Rec output pin. 관련정보 Record.

The action of a program (or its parts) running.

일반적인 개념

임의의 함수에 어레이를 보내면, 디폴트 상태에서는, 그 함수는 각각의 앨리먼트를 사용하여 연산합니다. 예를 들어, 스칼라 값의 sqrt를 연산하면 스칼라를 리턴합니다; 예, sqrt(4) 는 2를 리턴합니다. 그러나 어레이의 sqrt는 동일한 크기의 어레이를 리턴합니다. 예, sqrt([1,4,9,64])는 [1,2,3,8]를 리턴함.

VEE 5 이상의 실행모드에서는, 표현식에 사용된 숫자에 소수점이나 지수를 나타내는 “E”가 없으면 Int32로 간주됩니다. VEE 4 및 VEE 3 모드에서는, Complex 또는 PComplex를 나타내는 괄호를 사용하지 않은 경우, 모든 숫자가 Real64로 간주되었습니다. 그러므로, 현재의 실행모드에 따라서 2 는 Real64 또는 Int32로 간주됩니다. (1, @2)는 PComplex 숫자이며, (1, 2)는 직교좌표로 표시되는 복소수입니다. 1.0 과1E3는 항상 Real64입니다.

주의사항

VEE는 괄호 안에 작성된 여러 개의 값을 Complex 또는 PComplex 값이라고 간주합니다. Coord 값을 사용하기 위해서는 coord(x, y) 오브젝트를 사용해야 합니다. coord 오브젝트를 2 개 이상의 인자를 사용합니다. coord(1, 2)는 두 개의 필드를 가진 Scalar Coord 컨테이너를 리턴합니다.

Coord 데이터를 사용하는 모든 함수는 각 Coord 필드의 종속적인 (마지막) 필드를 사용합니다. 예를 들어, abs(coord(-1, -2, -3))는 Coord (-1, -2, 3)를 리턴합니다.

Enum 컨테이너는 ordinal(x)를 제외한 모든 산술연산을 실행하기 전 Text로 변환됩니다. Enum 어레이는 지원되지 않습니다. Enum 어레이를 생성하기 위해서는 Text 어레이를 생성해야 합니다.

특정 데이터 타입에 대한 자세한 내용은 데이터 종류(Type)을 참조하십시오.

표현식에서 스트링 사용

표현식에서 스트링은 인용부호로 표시되어야 합니다. 스트링과 함께 다음의 문자를 사용할 수 있습니다.:

________________________________________

Escape 문자

의미

________________________________________

\n | Newline
\t | Horizontal Tab
\v | Vertical Tab
\b | Backspace
\r | Carriage Return
\f | Form Feed
\" | Double Quote
\?/td> | Single Quote
\\ | Backslash
\ddd | 문자의 값. d 는 8 진수로 표시됨.

________________________________________

표현식에서 어레이 사용

표현식에서 쓰인 어레이는 스칼라처럼 단순히 이름을 참조하여 사용할 수 있습니다. 어레이 상수는 표현식에 [1,2,3] 등과 같이 직접 입력할 수 있습니다. sin([1,2,3])과 같이 함수에 사용된 어레이는 각각의 앨리먼트에 해당 함수를 적용합니다. VEE 에서는 어레이의 앨리먼트를 콤마(,)로 분리합니다.

주의사항

VEE의 어레이 인덱스는 0-기반입니다. 어레이의 인덱스는 0 부터 n-1 까지 입니다. 여기서 n 은 특정 차원의 앨리먼트의 개수입니다.

어레이의 일부분을 사용하기 위해서는 표현식을 사용합니다. 일단 어레이에서 서브어레이를 지정하면, 그 서브어레이를 출력하거나 다른 연산식에서 사용할 수 있습니다.

각 어레이에서 서브어레이에 접근할 때는 연속된 서브어레이에만 접근할 수 있습니다. 2 차원 이상의 어레이에서 특정 서브어레이에 접근하기 위해서는, 어레이의 차원을 명기해야 합니다.

어레이 인자를 정의하기 위해서 다음의 문자를 사용합니다.:

콤마(,)는 어레이 차원을 구분합니다. 각 서브어레이는 각 어레이 차원에 대해서 반드시 하나의 규격을 가져야 합니다.

콜론(:) 은 어레이 안에서 앨리먼트의 범위를 지정합니다.

애스터리스트(*)는 특정 어레이에서 모든 앨리먼트를 지정하는 와일드 카드입니다.

주의사항

웨이브폼의 시간 스팬, 스펙트럼의 주파수 스팬 및 어레이 매핑은 서브어레이에서의 점의 개수에 따라서 조정됩니다. 예를 들어, 256 개의 점으로 구성된 웨이브폼에 대해서 WF[0:127]라고 요청하면, 그 웨이브폼 및 시간 스팬의 반의 데이터만 가져오게 됩니다.

사용예

A 가 10개의 앨리먼트를 가진 1 차원 어레이일 때,

A[1] 는 2 번째 앨리먼트를 나타내며, 스칼라를 출력합니다.

A[0:5] 는 처음 6 개의 앨리먼트를 가진 1 차원 서브어레이를 리턴합니다.

A[1:1] 는 하나의 앨리먼트를 가진 1 차원 서브어레이를 리턴합니다. 이 앨리먼트는 A 어레이의 2 번째 앨리먼트입니다. 이 예제와  A[1]의 차이를 비교하십이오.

A[2:*] 는 A의 3 번째 앨리먼트부터 10 번째 앨리먼트까지를 가지는 1 차원 서브어레이를 리턴합니다.

A 또는 A[*] 는 A어레이 전체를 리턴합니다.

A[1,2] 는 2 차원 어레이를 표시하는 수식이므로, 에러가 발생됩니다.

B 가 5x5 매트릭스(2 차원 어레이) 일 때.

B[*] 는 하나의 인자만 가져서 1 차원 어레이를 표시하지만, B는 2 차원 어레이 이므로 에러가 발생합니다.

B[1,2] 는 2 해의 3 번째 앨리먼트를 스칼라 값으로 출력합니다.

B[1,*] 는 1열의 모든 앨리먼트를 1 차원 어레이로 리턴합니다.

B[1,1:*] 는 1열에서 첫 번째 앨리먼트를 제외한 모든 앨리먼트를 1 차원 어레이로 출력합니다.

B[4,1:4] 는 4 열에서 1 번째에서 5 번째까지의  앨리먼트를 가진 1 차원 어레이를 리턴합니다.

B[5,5] 는 VEE 어레이의 인덱스는 0 부터 시작하고, 이 경우에는 존재하지 않는 앨리먼트를 지정하므로 에러를 리턴합니다. B[4,4] 까지만 사용할 수 있습니다.

B[1 1] 는 차원 사이에 컴마를 사용해야 하므로 에러를 리턴합니다.

표현식으로 어레이를 생성하는 방법

다른 어레이 또는 서브어레이 앨리먼트를 이용하여 어레이를 생성할 수 있습니다. 표현식에서의 각 앨리먼트는 동일한 차수를 표시해야 하고 각 차원의 앨리먼트의 개수와 동일한 개수의 앨리먼트를 가져야 합니다.

사용예

앨리먼트를 가진 1 차원 어레이입니다. B는 5x5 매트릭스 입니다.

[1,2,3] 은 값이 1, 2, 3 인 3 개의 앨리먼트를 가진 실수 1 차원 어레이를 리턴합니다.

[A[0], A[5:7], A[9]] 는 값이 스칼라인 앨리먼트와 1 차원 어레이인 앨리먼트를 혼용하였으므로 에러를 발생합니다.

[A[0:4], B[0,*]] 는 10 개의 앨리먼트를 가진 2 차원 어레이(2 x 5)를 리턴합니다. 처음 5 개의 앨리먼트는 A 어레이의 첫 번째 열에서 가져오고, 다음 5 개는 B 어레이의 첫 번째 열에서 가져옵니다.

 [A[0], A[1], B[2,3], A[5]] 는 4 개의 앨리먼트를 가진 1 차원 어레이를 리턴합니다. 리턴되는 어레이는 A 어레이의 1 번째 및 2 번째 앨리먼트와, B 어레이의 3열 4행 앨리먼트 및 A 어레이의 6 번째 앨리먼트로 구성됩니다.

표현식에서 변수 사용

Declare Variable 및 Set Variable 오브젝트를 사용하여 변수를 생성하고 값을 설정할 수 있습니다. 또한, Get Variable 오브젝트를 이용하여 변수의 값을 이용할 수 있습니다. 자세한 내용은 Declare Variable, Set Variable 및 Get Variable 을 참조하십시오.

또한, 산술표현식에 변수이름을 포함하여 변수를 사용할 수 있습니다. Formula 오브젝트나 표현식을 사용하는 오브젝트에서 변수를 포함하여 산술표현식을 작성할 수 있습니다. If/Then/Else, Get Values, Get Field, Set Field 및 To File, From File, From DataSett, From Stdin, To/From Socket, Sequencer, and Direct I/O등과 같이 트랜잭션에 표현식을 사용하는 모든 오브젝트가 해당됩니다.

표현식에 변수를 사용할 때는, 마치 입력터미날의 이름을 사용하듯이 변수이름을 사용하면 됩니다. 예를 들어, 변수 numFiles를 설정하기 위해서 Set Variable 오브젝트를 사용했다고 가정하겠습니다. 프로그램의 어느 위치에서든, 입력터미날 A를 가지는 Formula 오브젝트에서 numFiles+3*A 등과 같은 수식을 사용할 수 있습니다.

주의사항

변수이름은 대소문자를 구분하지 않습니다. 대문자든 소문자든 구별하지 않고 사용할 수 있습니다. 즉, GLOBALA 는 globalA 와 동일합니다.

에러 또는 예기치 못한 결과를 방지하기 위해서, 표현식에서 변수를 사용할 때 2 가지 사항을 제한하고 있습니다:

1. 지역변수는 전역변수보다 우선권이 높습니다. 즉, 변수이름이 중복되면 전역변수 대신 지역변수의 값을 사용한다는 의미입니다. 예를 들어, Freq 입력터미날(지역변수)을 가진 Formula 오브젝트에서 Freq*10 이라는 연산식을 하고, Freq 라는 전역변수가 프로그램에서 사용된다면, 이 연산식은 지역변수 Freq 를 사용하여 연산합니다. 이러게 전역변수와 지역변수가 중복된 경우에는 에러가 발생하지 않습니다.

2. 프로그램 실행순서 따라서, 변수를 사용하는 표현식을 가진 오브젝트가 변수의 값이 설정되기 전에 실행될 수 있습니다.. 예를 들어, 변수 globalA 가 Set Variable 오브젝트에 의해서 설정되고, Formula 오브젝트에 globalA*X^2 연산식이 작성되었다고 가정하겠습니다. 작성된 프로그램 흐름에 따라서, Set Variable 오브젝트가 실행되기 이전에 Formula 오브젝트가 실행될 수 있습니다. 이 경우, globalA 의 값이 설정되지 않았으므로 Formula 오브젝트는 표현식을 연산할 수 없습니다. 에러 메시지가 발생합니다.

데이터를 올바르게 전달하기 위해서 반드시 처리해야 할 중요한 사항이 있습니다. – 변수를 사용하기 전에 Set Variable 오브젝트가 먼저 실행되도록 하는 것입니다. 이 경우에는 Set Variable 오브젝트의 시퀀스 출력핀을 Formula 오브젝트 또는 해당 변수를 사용하는 오브젝트의 시퀀스 입력핀에 연결하면, 반드시 이 순서에 따라서 프로그램이 실행됩니다. Get Variable 오브젝트를 사용하는 경우에는, 이 오브젝트의 시퀀스 입력핀이 Set Variable 오브젝트의 시퀀스 출력핀에 연결되어야 합니다. 또한, Declare Variable 오브젝트를 사용하여 변수를 선언하면, Set Variable를 이용하여 값을 초기해야 합니다. 자세한 내용은 변수에 대하여을 참조하십시오.

주의사항

디폴트 상태에서, Proferences 대화상자에서 Delete Variables at PreRun이 체크되어 있으므로, 프로그램을 실행하면 모든 변수의 값이 삭제됩니다. 이 기능은 이전 데이터에 의해서 프로그램이 오동작하는 것을 방지합니다.

어레이도 변수가 될 수 있습니다. 어레이 입력을 사용하듯이 변수 어레이를 사용하면 됩니다. 예를 들어, GlobAry[2] 와 같이 표기합니다. 변수가 Record, globRecord.numFiles 와 같은 방식으로 레코드를 사용합니다.

표현식에서 레코드 사용

레코드의 필드 또는 서브필드에 접근하기 위해서 표현식을 사용할 수 있습니다. 레코드 A 의 B 필드에 접근하기 위해서는 A.B 와 같이 표기합니다. 레코드 A 가 B 필드를 가지고 있고, B 필드 자체가 필드 C를 가진 레코드라면 C 필드에 접근하기 위해서 A.B.C 라고 표기합니다. A가 B를 가지지 않거나, B가 C를 가지지 않으면 에러가 발생합니다.

A.B.C.D.E.F 와 같이 레코드의 필드를 회기적으로 접근할 때, 회기 횟수에는 제한이 없습니다. 필드 이름은 대소문자를 구별하지 않습니다.(대문자나 소문자나 동일합니다.) 필드 이름은 서브 레코드의 필드의 이름과 중복될 수 있습니다. 즉, A.a.A 와 같이 사용할 수 있습니다.

레코드를 변수로 사용하면, 하나의 변수가 여러 개의 서로 다른 값을 가질 수 있습니다. Formula 오브젝트를 Get Variable 오브젝트 대신 사용할 수 있습니다. 따라서, 레코드를 언빌드하기 위해서 Get Variable 와 Formula 오브젝트를 사용하는 대신, 하나의 오브젝트에서 GlobRec.numFiles 로 간단히 표현할 수 있습니다.

레코드 표현식과 어레이 표현식을 혼합하여 레코드 어레이의 필드(예, A[1].B)에 접근할 수 있습니다. 또는 레코드의 필드인 어레이(예, A.B[1])에 접근할 수 있습니다. A[1].B 와 A.B[1]는 같지 않음을 주의하십시오. 이 두 가지 모두 사용할 수 있습니다.

필드 b를 가진 1 차원 레코드 어레이에 적용하는 첫 번째 사례입니다. A[1].b 는 레코드 어레이 A 의 2 번째 레코드 앨리먼트의 b 필드에 접근합니다.

1 차원 어레이인 필드 b를 가진 스칼라 레코드에서 필드 b에 접근하는 사례입니다. A.b[1] 와 같이 표기하면 레코드 A의 필드 b 어레이의 2 번째 필드에 접근합니다.

레코드에서 필드를 변경하기 위해서는 Formula 오브젝트에서 지정연산자를 사용하면 됩니다. 예를 들어, 필드 A를 가진 레코드 R이 있으며, R.A 를 sin(R.A)로 변경해야 한다면, 단지 R.A = sin(R.A) 만 실행하면 됩니다. 변경 후에도 레코드 R(필드 A 에 새로운 값을 가진)을 프로그램의 다른 부분에서 계속 사용할 수 있습니다.

주의사항

ActiveX 오토메이션 오브젝트 및 ActiveX 컨트롤을 관리하는 오브젝트를 사용하는 방법에 대해서는 VEE에서 ActiveX Automation 사용법 및 VEE에서 ActiveX Control 사용을 참조하십시오.

관련정보

데이터 처리 소개, 지정연산자 사용법, 이항 연산자 사용법


지정연산자 사용법

Formula 오브젝트에서 지정연산자를 가진 표현식을 사용하여 어레이 및 레코드 일부분의 값을 변경하거나, 지역변수 또는 전역변수에 값을 지정할 수 있습니다. Result 출력터미날에는 어레이나 레코드의 전체 내용이 아닌 변경된 부분이 저장됩니다. 예를 들어, A[2] = 4를 Formula 오브젝트에서 실행하면, Result 터미날에는 값이 4인 A[2] 어레이 앨리먼트가 저장됩니다. 어레이 A의 모든 내용이 저장되지 않습니다. 지정연산자를 가진 Formula 오브젝트는 Function & Object Browser 의 Type: Operators, Category: Assignment에서 제공됩니다.

주의사항

지정연산자는 Formula 오브젝트에서만 사용할 수 있습니다.

ActiveX 자동화 오브젝트 및 컨트롤을 관리하기 위해서 지정연산자를 사용하는 방법에 대해서는 VEE Advanced Techniques 매뉴얼을 참조하십시오.

사용할 수 있는 형식

세미콜론으로 구분된 여러 개의 표현식을 Formula 오브젝트에서 사용할 수 있습니다. 표현식의 왼쪽은 변경할 어레이 및 레코드 앨리먼트의 값 및 변수를 기입합니다. 오른쪽은 변경될 왼쪽의 타입과 일치해야 합니다. 레코드의 경우, 스키마(필드 타입, 형태 또는 크기)는 변경할 수 없으며, 값만 변경할 수 있습니다. 다음 예제는 왼편의 어레이에서 지정연산자를 사용하는 구문의 예 입니다.:

A[2]=
A[2, 3, 4:5]=
A[2:4, 4:6, 3:*, *]=

다음 예제는 왼편의 레코드에서 지정연산자를 사용하는 구문의 예 입니다.:

RecA.B=
RecA.B.C.D=
RecA[1].B=
RecA.B[1]=
RecA.B.C.D[1]=
RecA[1].B[2].C[3].D=
RecA.B[2:3].C[3:4]=

다음의 왼편 구문은 전역변수 및 지역변수를 직접 설정하며, 선언된 지역변수를 설정하는 예제입니다.:

GLOBAL=2
TMP_LOCAL=4

다음 예제는 변경될 왼편의 일부분에 오른편의 데이터를 매칭하는 방법에 대한 지정연산자 예제입니다. 오른편의 데이터타입은 왼편의 데이터 타입으로, 예를 들어 정수는 실수로 또는 실수를 스트링으로, 변환될 수 있어야 합니다. 복소수에서 실수로의 변환은 허용되지 않습니다.

ArrayA[2:4] = ArrayB (ArrayB는 3 개의 앨리먼트를 가진 1 차원 어레이어야 합니다.)

ArrayA[2, 3, 4:5, 7, 8:9] = ArrayB (ArrayB는 크기가 2x2인 2 차원 어레이어야 합니다.)

Rec[3:4].field = ArrayB (ArrayB는 2 개의 앨리먼트를 가진 1 차원 어레이어야 합니다.)

Rec[3:4].field[4:5] = ArrayB (ArrayB는 크기가 2x2인 2 차원 어레이어야 합니다.)

왼편의 레코드 어레이에 지정연산자을 명확하지 않은 상태로 사용할 수는 없습니다. Rec이 레코드의 어레이일 때, Rec.A=2 연산식을 사용하면, Rec[*].A=2와 같이 명확한 구문을 사용해야 한다는 내용의 에러가 발생합니다. Rec이 스칼라 레코드이며, B가 어레이인 경우에도 Rec.B=2 구문을 사용하면 유사한 에러가 발생합니다. 이 경우에는 Rec.B[*]=2 형태의 구문을 사용해야 한다는 내용이 발생합니다.

주의사항

VEE4.0 및 이후 버전에서는, Set Values 오브젝트 및 Set Field 오브젝트는 실제로는 지정연산자 표현식을 사용하는 Formula 오브젝트입니다. 이들 오브젝트는 이전 버전의 VEE에서 사용하던 정의와는 다른 의미를 가집니다. VEE 3.x또는 이전버전에서 작성된 프로그램은 과거의 Set Values 및 Set Field 오브젝트의 의미를 사용합니다.

지정연산자에서 전역변수 및 지역변수

A=2 또는 GlobalA[5]=2의 형태의 지정연산자를 사용하여 Formula 오브젝트에서 전역변수 및 지역변수의 값을 변경할 수 있습니다. 변수는 선언하지 않은 전역변수, 선언한 전역변수 또는 지역변수, 또는 직접 설정한 지역변수의 형태가 될 수 있으므로, 다음의 우선순위를 가지고 변수 A를 찾습니다.:

1. 입력터미날로 사용되는 지역변수. 이것은 입력터미날의 종류와 타입을 포함한 값을 덮어씁니다,

2. 출력터미날로 사용되는 지역변수. 이 변수는 출력터미날에 생성됩니다.

3. 전역변수. 이 변수는 미리 존재해야 합니다. 이것의 값은 이것의 종류와 형태를 포함하여 완전히 변경됩니다.

이러한 규칙에 따라서, Formula 오브젝트에 tmp=2 라고 작성하였으나 tmp가 위 조건중의 하나를 만족하지 못하면 에러가 발생합니다.

전역 어레이 및 레코드에 값을 지정할 때는 이들 변수가 선언되었는가 선언되지 않았는가에 대한 주의가 필요합니다. Set Variable 오브젝트를 이용할 때, 또는 Declare Variable오브젝트를 이용하여 선언할 때 전역변수가 생성됩니다. 선언되지 않은 전역변수의 경우, 종류와 형태를 지정연산자 표현식으로 변경할 수 있습니다. 그러나, 선언된 변수의 경우에는, 지정연산자의 오른편은 전역변수의 선언된 종류로 변환될 수 있어야 합니다.

중요사항

Declare Variable 오브젝트를 사용하여 전역 어레이 또는 전역 레코드 변수를 선언할 때, 전역변수의 일부분을 변경하기 전에 전체 변수가 초기화되어야 합니다. 다음 그림은 GlobalAry 전역변수의 일부분이 Formula 오브젝트에서 지정연산자를 이용하여 일부분의 내용이 변경되기 전에, 이 전역변수가 선언되고 초기화되는 과정을 설명하고 있습니다.

터미날에서 데이터 컨테이너의 내용

Formula 오브젝트의 입력터미날 및 출력터미날은 지정연산자에 의해 변수의 값이 변경되는 것에 영향을 미칩니다. Result 출력터미날의 데이터 컨테이너는 데이터 종류와 형태의 변경을 포함하여 지정연산자 왼편의 변경된 부분을 가집니다. 연산식 ArrayA[2:4] = ArrayB[5:6]을 가진 Formula 오브젝트에서, Result 출력터미날은 ArrayB[5:6]의 값에서 전달된 ArrayA[2:4] 의 값을 가집니다. 연산식 ArrayA[2]=4를 가지고, ArrayA의 데이터 타입이 Complex 이면, 출력터미날에서의 ArrayA[2]의 값은 Complex(4,0)으로 변환됩니다.

출력터미날의 이름은 다음과 같이 사용될 수 있습니다.:

Formula 오브젝트의 디폴트 출력터미날의 이름은 Result 입니다. 이것은 예약어이며 지정연산자 표현식의 결과를 저장합니다. 다른 이름을 가진 출력터미날을 사용하기 위해서 Result 출력터미날을 삭제하거나, 삭제한 Result 출력터미날을 다시 추가할 수 있지만, Result 출력터미날의 이름을 변경할 수는 없습니다.

입력터미날의 이름. 이것의 값은 입력터미날에서 복사됩니다. 지정연산자에서 변경되었으면, 출력터미날에는 새로운 값이 적용됩니다. 입력터미날로 사용되기 전에 변수가 반드시 존재하고 값을 가지고 있어야 합니다.

tmp=2등의 지정연산자 표현식으로 생성된 tmp와 같은 지역변수 이름

변경된 어레이 또는 레코드의 여러 부분의 값을 추출하기 위해서 Formula 오브젝트 출력터미날에 출력핀을 추가할 수 있습니다. 여러 개의 출력터미날을 가지고 있으면, 예를 들어, 하나의 출력터미날에는 변경된 변수의 하나의 값을 출력하고, 다른 하나의 출력터미날에는 변수전체를 출력하는 형태로 사용할 수 있습니다. 출력터미날에 전체 어레이 또는 전체 레코드를 출력하기 위해서는 지정연산자 표현식에 전역변수를 사용하거나 해당 어레이 또는 레코드에 대한 출력터미날을 추가해야 합니다. 값이 지정되지 않은 출력터미날이 있으면 에러가 발생합니다.

전체 컨테이너가 변경되지 않으면 어레이의 매핑은 무시됩니다. 예를 들어, ArrayA[2:4] = ArrayB[2:4]를 실행해도 ArrayA 상의 매핑은 변경되지 않습니다. 그러나 A = ArrayB[2:4]를 실행하면 A는 ArrayB로 변경되므로 A에 매핑이 설정됩니다.

에러 복구

Formula 오브젝트에서는 지정연산자 및 기타 연산을 포함한 여러 개의 표현식을 사용할 수 있으므로, 에러가 특별한 방법으로 관리됩니다. 지정연산자 또는 다른 연산이 완료되면, 다음 연산에서 에러가 발생하더라도, 이전의 연산을 취소하지 않습니다. 예를 들어, 하나의 Formula 오브젝트에 Global[2]=24; 2/0 의 2 개의 연산이 있을 때, Global[2] 는 2로 설정되며, 2를 0으로 나눌 때 에러가 발생합니다. VEE는 Global[2] 의 값을 에러가 발생하기 이전의 값으로 원위치 시키지 않습니다.

주의사항

지정연산자를 동작에 관한 절차는 VEE 도움말(Help [image] Contents)을 참조하십시오. How Do I ... 섹션에서, Work with Data 섹션을 열고, Working with Arrays 주제(어레이의 값 변경하기 등) 및 Working with Variables주제를 참조하십시오.

관련정보

VEE에서 ActiveX Automation 사용법, VEE에서 ActiveX Control 사용

데이터 처리, 일반적인 개념, 이항 연산자 사용법


이항연산자 사용법

이항연산자는 여러 가지 조건으로 사용할 수 있습니다. Function & Object Browser 의 Operators 에서 다음 이항연산자가 제공됩니다:

카테고리: Aurithmetic(산술연산)

a + b

a - b

a * b

a / b

a ^ b (지수)

a mod b (modulo – 나누기의 나머지를 리턴)

a div b (정수 나누기 – 나머지 없음)

카테고리: Comparison(비교 연산)

a ~= b

a == b

a != b

a < b

a > b

a <= b

a >= b

카테고리: Logical(논리연산)

a AND b

a OR b

a XOR b

NOT a (이항연산과 동일한 가이드라인을 따르는 단항연산)

어레이에서 이항연산자를 사용하면, 어레이 크기, 어레이 형태 및 어레이 매핑(매핑을 사용하는 경우)일 일치해야 합니다. Coords의 경우에는, 각 Coord에 대한 독립된 변수의 값이 일치해야 합니다.

이항연산자의 연산 우선순위

이 목록은 이항연산자의 연산우선순위입니다. 우선순위가 높은 것부터 설명되었으며, 우선순위가 동등한 것은 같은 줄에 작성되었습니다.

1. 표현식을 묶는 괄호 ().

2. ^

3. – (음수를 표시하는 기호)

4. * / MOD DIV

5. + -

6. ~= == != < > <= >=

7. NOT

8. AND

9. OR XOR

데이터 타입 변환

이항연산자에 입력되는 입력값은 입력되는 값의 가장 상위의 데이터타입으로 상향변환되어 연산됩니다. 출력을 데이터타입은 가장 상위의 입력 데이터 타입과 동일합니다. 예를 들어, 복소수 (2, 3)을 스트링 “Dog”에 더하면(즉, “Dog”+(2, 3)), 그 결과는 스트링 “Dog(2, 3)”이 됩니다.

주의

이 규칙이 적용되지 않은 경우가 있습니다. 텍스트 스트링을 Int32 에 곱하면, 스트링이 반복됩니다. 예를 들어, “Hello”*3 은 HelloHelloHello 가 됩니다. 이 경우에는 데이터 타입 변환이 되지 않습니다.

테이터 타입 순서(상위부터 하위로)는 다음과 같습니다.:

1. Object

2. Record

3. Text (Enum은 Text로 간주됩니다.)

4. Spectrum

5. PComplex

6. Complex

7. Coord (다른 숫자 타입으로 변환될 수 없습니다.)

8. Waveform

9. Real64

10. Real32

11. Int64

12. Int32

13. Int16

14. UInt8

15. Boolean

16. Variant

Variant 데이터 타입은 특정 데이터 종류로 “고정”되어 있지 않습니다. 필요한 한 가지의 데이터타입으로 사용됩니다.

Object에 대한 고려: Obejct는 다른 타입으로 자동적으로 하향 변환되지 않습니다. Object 자체에는 이항 연산자를 직접 사용할 수 없습니다. 그러나, 대부분의 Object는 String 또는 Integer 값의 디폴트 속성을 가지고 있으므로, Object에 대부분의 연산을 적용할 수 있습니다. Object 및 Object 사용법에 대한 내용은 Using ActiveX Automation in VEE 및 Using an ActiveX Control in VEE을 참조하십시오.

Record에 대한 고려: Record는 데이터타입 중에서 가장 상위의 데이터타입입니다. 다른 데이터타입을 가진 데이터는 Build Record 오브젝트와 같은 특별한 오브젝트를 통해서만 Record 데이터타입으로 변환될 수 있습니다. Record는 다른 데이터타입으로 자동 하향변환되지 않으며, 다른 데이터타입은 Record 타입으로 자동 상향변환되지 않습니다.

레코드와 일반적인 데이터타입의 데이터를 이항연산자로 연산할 수 있지만, 이들을 연산하면 그 결과는 항상 레코드 타입이 됩니다. 레코드와 일반적인 데이터를 이항연산자로 연산하면, 일반적인 데이터와 레코드의 모든 필드간에 이항연산자가 적용됩니다. 예를 들어, 레코드 R에, 스칼라값(2.0)을 가진 A 필드와 스칼라 복소수값(3, 30)을 가진 B필드가 있다고 가정하겠습니다. R+2를 실행하면, R의 A 필드는 4가 되며, B필드는 (5,30)이 됩니다. 레코드의 모든 필드에 연산을 할 수 없으면 에러가 발생됩니다.

레코드와 일반 데이터를 이항연산자로 연산하면 동일한 스키마를 가진 레코드가 출력되어, 그 레코드는 동일한 이름, 동일한 타입 및 동일한 형태의 필드를 가집니다. 이항연산자는 레코드 필드의 타입이나 형태를 변경하지 않습니다. 예를 들어, 실수 스칼라값을 가진 A 필드와 복소수 스칼라값 B의 2 개의 필드를 가진 레코드 R이 있을 때, R+(2,3)을 실행하면 에러가 발생합니다. R.A필드는 실수이고 R.A+(2,3)의 결과는 복소수이므로 에러가 발생합니다. Complex 는 R.A에 저장되기 위해서 실수로 하향변환될 수 없습니다.

어레이를 가진 레코드에 이항연산자를 적용하면 어레이보다 레코드의 우선순위가 높습니다. 예를 들어, [1,2,3] + [3,4,5] 을 실행하면 [4,6,8]이 출력됩니다. 즉, 어레이의 앨리먼트간에 연산이 실행됩니다. 그러나 레코드는 어레이보다 높은 우선순위를 가집니다. R이 필드 A와 필드 B를 가진 레코드일 때, 표현식 R + [1, 2]을 실행하면, 어레이 [1, 2]를 R 의 각 필드에 더하려고 시도합니다. 1 을 R.A에 2를 R.B에 더하지 않습니다.

어레이를 가진 레코드에 어레이를 결합하면 더욱 복잡해집니다. 예를 들어, R이 한 개의1차원 어레이와 2 개의 long 데이터타입을 가지며, 이들이 각각 필드 A,B,C 라고 가정하겠습니다. R + [1, 2, 3] 또는 R + [1, 2]를 실행하면, 전체 어레이를 각각의 필드 A, B, C에 더하려고 시도합니다. R이 어레이를 가지고 있지만, 자신이 레코드라는 사실이 더 중요합니다.

2 개의 레코드에 이항연산자를 적용하면 레코드의 필드간에 연산이 실행되어, 출력되는 레코드도 동일한 스키마를 가집니다. 즉, 각 레코드는 동일한 개수의 필드를 가져야 하며, 각 필드의 이름, 타입, 형태가 같고, 동일한 순서라야 합니다.

필드 A에 1을 더하고, 필드 B에 2 와 같은 방식으로 더하는 가장 간편한 방식은 복수지정 방식을 사용합니다.(Assignment참조). Formula 오브젝트에서 표현식 R.A=R.A+1,R.B=R.B+2 을 입력하고, 새로운 값을 가진 use R.A 및 R.B를 프로그램의 다른 부분에서 사용할 수 있습니다.

Coord에 대한 고려: Coord 데이터 타입을 사용하기 위한 몇 가지 규칙이 있습니다.:

정수 어레이나 실수 어레이는 Coord 타입으로 상향변환될 수 있지만, Coord 타입을 다른 숫자타입으로 변환할 수는 없습니다.

매핑되지 않은 어레이가 Coord로 변환되면, 개별 Coord 값들은(첫 번째 Coord의 필드들) 어레이 인덱스에서 생성됩니다.; 종속적인 Coord 값(마지막 Coord 의 필드)은 앨리먼트 값을 포함합니다. 예를 들어, 어레이 A[1,5,7]는 [(0,1),(1,5),(2,7)]를 가진 Coord로 변환됩니다.

매핑된 어레이가 Coord로 변환되면, 매핑의 최저값에서 Xmin+(Xmax-Xmin/N)*(N-1) 까지의 독립된 Coord 인자값을 가집니다.

Spectrum에 대한 고려: dB스케일링을 사용하도록 선택하면, 그것을 유지해야 합니다. dB로 스케일된 데이터가 올바르게 표시되더라도, fft(x), ifft(x) 및 PComplex 숫자는 dB 스케일된 데이터 상에서는 올바르게 동작하지 않습니다. 이러한 기능을 사용해야 한다면, dB 스케일된 데이터를 선형 스케일 데이터로 변환하고 사용해야 합니다.

몇몇 dB 단위를 사용할 때는, 일부 수치함수는 이들 단위 내에서, 특별한 결과를 리턴합니다. 예를 들어, dBW 스케일된 스펙트럼에 20을 더하면, 각 앨리먼트의 크기에 20을 더 합니다.(이것은 스펙트럼을 선형스케일로 변환하고, 각 앨리먼트에 100을 곱하여, 다시 dBW로 변환하는 것과 동일한 효과입니다.)

Variant에 대한 고려: 이항연산의 결과는 Variant 가 될 수 없습니다.

표현식 b=a 에서, b가 연산전에는 Variant 타입이었다 하더라도 연산 후에는 a와 동일한 타입이 됩니다.

a가 무엇이든 간에, 표현식 b=a+2 에서, b는 Variant가 될 수 없습니다.

a가 무엇이든 간에, 표현식 b=sin(a)에서, b는 Variant 가 될 수 없습니다.

a가 무엇이든 간에 함수 func(2+a)는 Variant가 아닌 값을 리턴합니다.

a가 Variant 이면 함수 func(a)는 Variant를 리턴합니다.

변수명 a, 단항연산자 –a, 또는 괄호 (a)는 a의 데이터타입을 변환하지 않습니다.

Data 형태에 대한 고려

2 개의 입력이 모두 어레이인 이항연산에서, 어레이의 크기와 형태는 일치해야 합니다. 관계연산자(스칼라값을 리턴하는 ==, <, 등의 연산자)이외의 이항연산자의 연산결과는 입력어레이와 동일한 크기 및 동일한 형태의 어레이를 출력합니다. 어레이의 차수가 다르거나 어레이의 크기가 다르면 에러가 발생합니다. 예를 들어, [1,2] + [1,2,3]를 연산하면 에러가 발생합니다.

스칼라와 어레이를 연산하면, 스칼라는 어레이와 동일한 크기의 상수 어레이로 취급됩니다. 예를 들어, 2 + [1,2,3]는 [2,2,2] + [1,2,3]로 연산되어 [3,4,5]이 출력됩니다.

n-차원어레이가 Coord로 변환되면, Coord 데이터의 형태는 각 Coord 앨리먼트가 n+1 개의 필드를 가진 1차원 어레이 입니다.

관련정보

데이터 처리, 일반적인 개념, 지정연산자 사용법


측정 결과 표시

다음 표는 VEE가 제공하는 디스플레이 오브젝트의 종류 및 기능입니다.

표시 | 설명
Alphanumeric | 텍스트 또는 숫자를 표시합니다. SCALAR, ARRAY 1D, ARRAY 2D를 입력으로 받아 들입니다.
Beep | 프로그램의 특정부분에서 비프 음향을 발생시킵니다.
Complex Plane | Complex, Polar Complex(PComplex), 또는 Coord 데이터의 값을 실수에 대한 허수축으로 표시합니다.
Indicator => Meter, Thermometer, Fill Bar, Tank, Color Alarm | 이들 인디케이터는 그 이름이 설명하는 방법으로 숫자를 그래픽 이미지로 표시합니다. Meter는 값을 5개의 범위로 나누어서 색깔로 구분하며, 나머지 인디케이터는 값을 3 개의 범위로 나누어서 색깔로 구분합니다. Color Alarm은 경보발생시 LED와 텍스트 메시지가 깜빡이도록 설정할 수 있습니다.
Label | 패널뷰의 텍스트 라벨로 사용합니다. 색깔 및 글꼴은 패널뷰상의 오브젝트 메뉴에서 Properties를 통하여 쉽게 변경할 수 있습니다.
Logging Alphanumeric | 반복하여 로깅되는 텍스트나 숫자 값을 표시합니다. SCALAR 또는 ARRAY 1D를 입력으로 사용합니다.
Note Pad | 프로그램을 설명하기 위해서 텍스트를 입력합니다.
Picture (PC) | 패널뷰에 그래픽 이미지를 입력할 때 사용하는 오브젝트. *.BMP(bitmaps), *.GIF(GIF87a 와 GIF89), *.JPG, *.PNG 및 *.WMF(Windows 메타 파일) 등의 포맷을 지원합니다.
Polar Plot | 데이터를 극 좌표에 표시합니다. 데이터는 (반경, 각도)의 형식.
Spectrum (Freq) | 주파수영역에서 사용하는 데이터를 표시합니다. Magnitude Spectrum, Phase Spectrum, Magnitude vs. Phase (Polar), Magnitude vs. Phase (Smith) 등의 서브메뉴를 제공합니다. 입력은 Waveform, Spectrum 또는 Coords의 어레이여야 합니다. 웨이브폼 입력은 FFT (Fast Fourier Transform)를 통해 주파수로 자동 변환됩니다.
Strip Chart | 프로그램이 실행되는 동안 연속적으로 발생되는 데이터를 그래프로 표시합니다. x 값은 지정된 스텝 크기에 따라 증가합니다. 디스플레이의 오른쪽 끝에 도달하면 자동으로 스크롤하므로, 스트립 챠트에는 항상 가장 최근의 데이터가 디스플레이 됩니다.
Waveform (Time) | 시간 영역에서의 파형이나 스펙트럼을 그래프로 표시합니다. 스펙트럼은 IFFT (Inverse Fast Fourier Trnasform)를 통해 시간 영역 데이터로 자동 변환됩니다. x축은 입력 파형에 대한 샘플링 단위가 됩니다.
X vs. Y Plot | X와 Y로 구성된 정보를 그래프로 나타냅니다.
XY Trace | 일정한 간격의 x에 대한 y 값(매핑된 어레이나 값들)을 그래프로 표시합니다. x 값은 트레이스 데이터의 데이터 형태에 따라 자동으로 생성됩니다. 예를 들어, Waveform 트레이스는 일정한 간격의 시간이 x 값으로 발생되며, 실수 트레이스는 일정한 간격의 실수가 x 값으로 생성됩니다.


변수에 대하여

VEE에서는 2가지 타입의 변수가 있습니다: 선언된 변수와 선언되지 않은 변수. 이들 2가지 타입의 변수는 웨이브폼과 레코드등의 복소수 타입의 데이터를 포함하는 모든 종류의 데이터 타입을 사용할 수 있습니다. 또한 스칼라와 어레이를 포함하는 어떤 형태의 데이터도 사용할 수 있습니다.

선언하지 않은 변수

선언하지 않은 변수는 사용하기는 쉽지만 실행속도가 느리며 사용범위제한(변수에 대하여에 설명된)을 허용하지 않습니다. 다음과 같은 변수들이 선언하지 않은 변수로 분류됩니다:

  • 프로그램의 모든 영역에서 사용할 수 있는 전역변수. 전역변수는 Set Variable 오브젝트로 생성됩니다. Delete Variable at PreRun 속성이 설정되어 있으면 프로그램이 실행되기 전에 삭제됩니다. 전역변수는 반드시 Get Variable 오브젝트가 전역변수를 호출하기 전이나 표현식에서 사용되기 전에 생성되어야 합니다. 그렇지 않으면 프로그램 실행중 에러가 발생합니다.

프로그램 작성하는 동안 어떤 데이터 타입을 사용하게 될지 결정되지 않았거나 그 변수의 데이터 타입이 변경될 가능성이 있을 때 선언되지 않은 전역변수를 사용하면 편리합니다. 변수의 사용범위를 제한(스코우핑, 즉, 지역변수)해야 하는 경우에는 선언된 변수를 사용해야 합니다(변수에 대하여를 참조하십시오).

• Formula 오브젝트에서만 사용되는 임시 변수. 사용자는 Formula 오브젝트에 출력 터미날을 추가하여, 예를 들어 tmp 와 같은 임시 변수를 생성할 수 있습니다. 예를 들어, Formula 오브젝트의 터미날 a 와 b 에서 입력값을 교환하기 위해서 이 임시변수 tmp를 사용할 수 있습니다. 이 때 사용하는 표현식은 tmp=a, a= b, b=tmp입니다. 임시 변수에 대한 추가 사항은 Assignment를 참조하십시오.

  • 오브젝트 안에서 변수로 사용되는 터미날 이름(트랜잭션이나 Formula 오브젝트 등)

  • 선언된 변수

    선언된 변수는 사용되기 전에 선언되는 변수입니다. 이러한 선언된 변수는 사용범위제한 기능을 가집니다. 또한 VEE 실행시 이미 이들의 데이터타입과 형태가 지정되어 있으므로 실행속도가 빠릅니다. 그러나 이들 변수를 선언하면서 설정한 데이터 타입이나 형태와 다른 값을 이들 변수에 사용하면 에러가 발생합니다.

    변수를 선언하기 위해서는 Data [image] Variable [image] ⇒ Declare Variable 오브젝트를 사용합니다. Declare Variable 오브젝트가 작업영역에 배치되면, 어떠한 다른 오브젝트가 실행되기 이전에 변수를 생성합니다. 변수가 생성되었더라도, Set Variable 오브젝트나 Formula 오브젝트에 의해서 값이 설정될 때까지, 그 변수는 값을 가지지 않습니다.

    선언된 변수의 사용범위는 반드시 Declare Variable 오브젝트에서 설정되어야 합니다. 선언된 변수의 사용범위는 다음과 같습니다:

    • Global – 프로그램 안의 어떤 위치에서도 사용할 수 있습니다.

    • Local to Context - 하나의 UserObject, UserFunction 또는 Main에서 사용할 수 있습니다. 이 변수는 Declare Variable 오브젝트가 존재하는 작업영역과 해당 작업영역에 포함된 UserObject 에서만 사용할 수 있습니다. 해당 작업영역에서 호출한 UserFunction에서는 사용할 수 없습니다.

    • Local to Library - Declare Variable 오브젝트가 사용된 UserFunction의 라이브러리 안에서만 사용할 수 있습니다. Declare Variable 오브젝트는 UserFunction 안에 있어야 합니다.

    동일한 사용범위 안에서 동일한 이름으로 여러 개의 변수를 생성하면, 에러가 발생합니다.

    변수이름 생성

    변수를 생성시 유효한 변수이름을 사용해야 합니다. 변수의 첫 번째 글자는 영문이어야 합니다. 변수 이름의 두 번째 문자부터는 영문, 숫자 및 언더스코어 문자를 사용할 수 있습니다. 변수 이름은 대소문자를 구별하지 않습니다. 특수문자와 공백은 사용할 수 없습니다.

    변수의 값을 가져오기 위해서는 변수가 생성되거나 설정될 때 지정한 이름을 사용해야 합니다.

    Default Preference에서 Execution Mode가 VEE 5 이상의 모드로 설정되어 있으면, 일부 변수의 이름은 유일해야 합니다. 실행모드가 VEE 4 또는 VEE 3 이면서 동일한 변수이름을 가진 변수가 있으면 변수간에 우선순위 문제가 발생합니다. 우선순위는 다음과 같이 결정됩니다(높은 순위에서 낮은 순위로.):

    1. 입력터미날 이름(Formula 오브젝트 또는 트랜잭션 오브젝트 등에서)

    2. 임시변수(Formula 오브젝트에서 처럼)

    3. Local to Context로 선언된 변수

    4. Local to Library로 선언된 변수

    5. Golbal로 선언된 변수

    6. Global 선언되지 않은 변수

    동일한 이름을 가진 두 개의 변수가 하나의 오브젝트에서 사용되면 충돌이 발생합니다. 이 경우 가장 우선순위가 높은 변수가 사용됩니다.

    관련정보

    실행모드 (Execution Modes), 변수 생성하기, 변수 사용하기, 변수 사용하기, 변수 초기값 설정하기, 라이브러리에서 변수 사용하기

    • Copyright (c) 1991-2007 Agilent Technologies, Inc.


사용자 정의 함수의 개요

VEE에서는 3 가지 형태의 사용자함수가 있으며, 이들의 일반적인 특징은 다음과 같습니다:

1 UserFunctions

•     생성(Create)하는 방법 : 메뉴의 Device [image] UserFunction 을 실행하여 생성하거나, 임의의 오브젝트를 선택한 상태에서 Edit [image] Create UserFunction을 클릭합니다.

• 호출(Call)하는 방법 : 생성된 UserFunction을 프로그램의 다른 위치에서 호출하기 위해서는 Call myFunction 오브젝트(Device [image] Call)나 formular 오브젝트 안에서 표현식을 사용합니다. UserFunction 오브젝트 메뉴 및 Generate [image] Call을 선택하여, 메인 프로그램에서 UserFunction으로부터 오브젝트를 호출할 수도 있습니다.

• 편집(Edit)하는 방법 : Edit [image] Edit UserFunctions…을 클릭하고 리스트박스 안에서 임의의 UserFunction을 선택합니다.

• 전달(Transfer)하는 방법 : 프로그램 개발시에는 UserFunction을 통합하고(merge) 실행시에는 임포트(import)하여 UserFunction을 하나의 프로그램에서 다른 프로그램으로 전달합니다. (Device [image] Import Library)

2 컴파일된 함수

• 생성(Create)하는 방법 : VEE 외부에서 프로그램을 컴파일하여 DLL 등의 라이브러리에 포함시킵니다.

• 컴파일된 UserFunction을 링크하는 방법 : 컴파일된 함수를 프로그램으로 링크시키기 위해서는 Import Library 오브젝트(Device [image] Import Library)를 사용합니다. VEE 실행시 이 Import Library 오브젝트를 링크시킵니다. (더 상세한 내용은 "컴파일된 함수 개요"을 참조하십시오.)

• 컴파일된 함수의 호출 : Call myFunction 오브젝트를 사용하거나 VEE 오브젝트 안에서 표현식을 사용합니다.

3 리모트 함수

• 원격 호스트컴퓨터에서 프로그램이 실행된다는 사실만 다르고 모든 내용이 UserFunctions와 같습니다.

관련정보

대용량 프로그램에서 함수를 찾는 방법


UserFunctions에 대하여

UserFunction은 사용자-정의 함수를 생성하기 위해서 제공되는 오브젝트입니다. UserFunction 오브젝트는 VEE의 Device 메뉴에서 UserFunction을 클릭하여 생성하거나, 기존 일반 오브젝트 또는 UserObject를 UserFunction으로 변환하여 생성 할 수 있습니다.

프로그램 안에서 UserFunction을 호출할 때는 Call 오브젝트(Device [image] Call) 또는 아래에서 지정하는 다른 오브젝트를 사용합니다. UserFunction은 라이브러리에 저장되고, 저장된 UserFunction은 Import Library 오브젝트를 이용하여 임포트할 수 있습니다.

하나의 UserFunction을 생성하여 프로그램 안에서 여러 번 사용할 수 있다는 점에서 UserFunction이 UserObject 보다 편리합니다. 프로그램에서 변경할 내용이 있을 때 UserFunction을 사용한 경우에는 하나의 UserFunction만 변경하면 되지만, UserObject를 사용한 경우에는 각각의 UserObject를 모두 수정해야 합니다.

VEE 4 이상의 실행모드인 경우, UserFunction이 Call, Formula, If/Then/Else 또는 Sequencer 오브젝트(Sequencer 오브젝트의 Function 필드에서 호출되는 경우만 해당)로부터 호출될 때는 UserFunction이 분할실행(time-slice)됩니다.

그러나 UserFunction이 To File, To String 또는 유사한 오브젝트 또는 Formula 오브젝트의 표현식이 컨트롤핀을 통해서 제공될 때는 UserFunction는 분할실행 되지 않습니다.

UserObjects 와 UserFunctions의 차이

VEE가 UserObject 와 UserFunction을 제공하는 이유는 2개의 오브젝트가 각기 다른 특성을 가지고 있어서 다른 목적으로 사용될 수 있기 때문 입니다. UserObject 와 UserFunction의 차이점은 다음과 같습니다:

UserObject(Device [image] UserObject)는 서브 프로그램처럼 프로그래밍하지만 이것은 화면에 계속 남아 있습니다. 이 오브젝트를 프로그램의 다른 곳에서 사용하고자 하는 경우에는, 이것을 복제해야 하며 모든 복사된 오브젝트를 관리해야 합니다. UserObject를 여러번 복제하여 사용하는 경우에는, 프로그램을 크게 만들어 로딩이 느려집니다. 어떤 기능을 하나의 UserObject에 추가한 경우에는, 다른 UserObjects들도 동일하게 만들고자 하는 경우에 동일한 기능을 다른 모든 UserObjects에 추가해야 할 수도 있습니다.

UserFunction (Device UserFunction)을 사용하면, 하나의 복사본이 메모리에 있고, 이것은 사용하 경우에만 작업영역에 디스플레이 됩니다. 다른 경우로는, 이것은 Call 오브젝트나 다른 표현식 필드에서 호출되기 위해 저장됩니다. 하나의 UserFunction의 내용을 변경하면, 이 변경 내용이 다른 인스턴스에도 적용됩니다. UserFunctions의 라이브러리를 생성하여 코드 재활용을 용이하게 할 수도 있습니다.

관련정보

표현식에서 UserFunction 호출하기, UserObjects 와UserFunctions 변환하기, UserFunction 라이브러리 생성하기, UserFunction 임포팅 및 호출하기, 함수 라이브러리 사용하기


컴파일된 함수 개요

DLL(Dynamic Link Library)등의 컴파일된 함수를 VEE에서 사용할 수 있습니다. 이들을 사용하기 위해서는 다음의 절차에 따라 컴파일된 함수를 생성합니다:

1 C, C++, Fortran, 또는 Pascal 로 함수를 작성한 후 컴파일합니다.

2 함수 정의파일을 생성합니다.

3 컴파일된 함수를 포함하는 공유 라이브러리를 생성합니다.

컴파일된 함수 사용시 장점

VEE 프로그램에서 컴파일된 함수를 사용할 때 다음과 같은 장점이 있습니다:

  • 실행속도가 빨라집니다.

  • 현재의 테스트 프로그램을 다른 프로그래밍 언어에서 이용할 수 있습니다.

  • 다른 프로그래밍 언어로 데이터 필터를 개발하고 VEE 프로그램에 통합할 수 있습니다.

  • 컴파일된 함수 부분은 자동적으로 보안성이 보장됩니다.

주의사항

컴파일된 함수를 VEE 안에 사용하면 개발 과정이 다소 복잡해질 수 있습니다. 따라서 컴파일된 함수는 VEE가 제공하는 기능(사용자함수, OS 명령어 호출, ActiveX Automation 호출 등)으로는 사용자 요구기능이나 성능 구현이 불가능 할 경우에만 사용하는 것이 좋습니다.

컴파일된 함수 사용시 주의사항

VEE 프로그램에서 컴파일된 함수를 사용해야 하는 경우에는, 다음 사항을 고려합니다:

  • 연산 루틴, 계측기 I/O 등을 포함하여 해당 운영체제에 제공되는 기능을 사용할 수 있습니다. 그러나, 링크될 프로그램을 이용하여 VEE 내부를 액세스할 수는 없습니다.

  • 컴파일된 함수에서 발생하는 에러는 VEE가 감지할 수 없으므로, 컴파일된 함수 내부에 에러 체크 기능을 부여해야 합니다.

  • 컴파일된 함수에서 할당했던 메모리를 사용자가 할당 해제해야 합니다.

  • 데이터를 컴파일된 함수로 전달할 때, Call 오브젝트 입력 터미날의 데이터 타입이 해당 컴파일된 함수가 사용해야 하는 데이터 타입과 일치하는지 확인합니다. (VEE의 Call 오브젝트 안에서 외부 컴파일된 함수를 호출하므로, Call 오브젝트의 입력핀을 거쳐서 컴파일된 함수로 데이터가 전달 됩니다.)

  • 시스템 입/출력 리소스가 잠길 수 있습니다. 따라서 컴파일된 함수가 이러한 이벤트를 핸들링 할 수 있어야 합니다.

  • 컴파일된 함수가 어레이를 관리하는 프로그램이면, 해당 데이터 타입을 사용하는데 필요한 포인터를 가지고 있어야 합니다. 또한 컴파일된 함수는 어레이의 크기를 검사해야 합니다. 어레이의 크기가 변경되었으면, 컴파일된 함수는 어레이의 새로운 크기를 VEE 프로그램으로 전달되어야 합니다.

  • 컴파일된 함수의 마지막 부분은 exit()가 아닌 return()으로 끝나야 합니다. VEE에 링크된 컴파일된 함수가 exit()를 사용하여 빠져나가면 VEE도 함께 종료됩니다.

  • 해당 배열의 크기를 벗어나서 배열을 사용하여 발생되는 에러의 결과는 해당 컴파일된 함수를 생성한 프로그래밍 언어에 따라 달라집니다. Pascal의 경우에는 런타임 에러를 발생하고 VEE가 종료됩니다. 배열의 경계검사를 하지 않는 C 등의 프로그래밍 언어는 그 결과를 예측할 수 없으나 간헐적으로 데이터를 변경시키거나 VEE가 깨지는 원인이 될 수 있습니다.

컴파일된 함수를 이용하는 방법

VEE 프로그램에서 컴파일된 함수는 다음의 방법으로 이용합니다:

  • UserFunction을 호출할 때와 동일한 방식으로 컴파일된 함수를 호출하고 설정합니다. Call 오브젝트 메뉴의 Select Function을 사용하여 원하는 함수를 선택하거나, 이름을 직접 입력할 수 있습니다. 두 가지 방식 모두 VEE가 함수를 인식할 수 있게 하고, Call Function 오브젝트의 입/출력 터미날을 자동으로 설정합니다. 필요한 정보는 정의 파일에 의해 제공됩니다. (VEE는 라이브러리가 이미 임포트 되었는지 인식합니다.)

  • 오브젝트 메뉴의 Configure Pinout을 실행하여 Call 오브젝트의 입/출력 터미날을 재설정합니다. VEE는 함수에 필요한 입력 터미날과 Ret Value 출력 터미날을 Call 오브젝트에 설정합니다. Ret Value 출력 터미날은 컴파일된 함수가 값을 리턴할 때 사용됩니다. 또한, 참조에 의해 전달되는 각 입력에 대응하는 출력터미날도 있어야 합니다.

  • Formula 오브젝트의 표현식에 입력된 함수이름이나 프로그램 실행 중 다른 표현식으로부터 제공된 함수이름을 이용하여 컴파일된 함수를 호출합니다. 예를 들어, 사용자는 To File 트랜잭션의 표현식에 함수이름을 입력하여 컴파일된 함수를 호출할 수 있습니다.

주의사항

표현식을 사용하여 컴파일된 함수를 호출할 때는 컴파일된 함수의 반환 값(Call 오브젝트의 Ret Value) 만을 구할 수 있습니다. 함수로부터 반환되는 다른 파라미터들을 구해야 하는 경우에는 Call 오브젝트를 사용해야 합니다.

  • Device 메뉴에 있는 Delete Library 오브젝트에 함수 이름을 입력하여 컴파일된 함수의 라이브러리를 삭제합니다. Import Library, Call, Delete Library 오브젝트를 사용하면 프로그램 로드 시간을 줄일 수 있으며, 프로그램이 컴파일된 함수 사용을 완료했을 때 이들을 삭제하여 메모리를 절약할 수 있습니다.

관련정보

정의파일(Definition File), 컴파일된 함수 사용, 컴파일된 함수 임포팅 및 호출하기, C 함수 생성하기, 다이나믹 링크 라이브러리 생성하기, DLL 사용


정의파일(Definition File)

Call 오브젝트나 Formula 오브젝트는 함수에 전달해야 하는 데이터의 타입을 정의파일의 내용에 따라서 결정합니다. 정의파일에서는 함수가 리턴하는 데이터타입, 함수 이름 및 함수가 받아들이는 인자 등을 정의합니다. 정의파일의 데이터는 다음과 같은 형태를 가집니다:

<리턴 타입> <함수 이름> (<타입> <인자>,(<타입> <인자>,… … );

여기서:

• < 리턴 타입 >은 다음이 될 수 있습니다: byte, int, short, long, int64, float, double, char*, VEE_BOOL, 또는 void.

• < 함수 이름 >은 첫 글자가 영어 알파벳이고 최대 512 글자까지의 알파벳과 숫자로 구성됩니다.

• <타입>은 다음이 될 수 있습니다: byte, int, short, long, int64, float, double, VEE_BOOL, byte*, int*, char*, short*, long*, int64*, float*, double*, char**, VEE_BOOL*, 또는 void.

• < 인자 >는 첫 글자가 영어 알파벳이고 최대 512 글자까지의 알파벳과 숫자로 구성됩니다. 인자는 사용하지 않아도 되지만 사용할 것을 권고합니다. 인자가 참조 값을 전달하는 경우에는, 참조값 뒤에 반드시 * 표시를 해야 합니다.

유효한 리턴 타입은 다음과 같습니다:

• 문자열 (char*, VEE Text 데이터 타입과 일치)

• 정수(VEE Uint8, Int16, Int32, Int64, 및Boolean 데이터 타입에 일치하는 byte, short, int, long, int64, VEE_BOOL)

• single 및 double precision 부동소수점 실수(float는 VEE Real32, double은 VEE Real64 타입과 일치)

인자의 뒤에 * 표시된 인자에 대한 “참조를 전달(pass by reference)”하는 경우에는 VEE는 함수에 해당 정보의 주소를 전달합니다. 값을 전달(pass by value)하는 경우에는 그 변수의 값을 복사하여 전달합니다. 외부 루틴이 VEE 데이터의 값을 변경해야 하는 경우에는 참조를 전달해야 합니다. 또한 모든 어레이는 참조를 전달해야 합니다.

컴파일된 함수에 참조를 전달할 때는 Call 오브젝트의 출력터미날을 통해서 전달합니다. 이 출력터미날은 함수의 리턴 값을 위한 Ret Value의 역할과 참조를 전달받은 각 입력 인자의 출력역할을 합니다.

VEE는 스택에 144 바이트를 푸시(PUSH)하여, 36개의 인자의 참조를 컴파일된 함수에 전달할 수 있습니다. 36개까지의 long 정수인자 또는 18개의 double-precision 부동소수점 인자의 값을 전달할 수 있습니다.

VEE는 정의파일에서 "enclosed" 주석과 “To-end-of-line” 주석을 사용합니다.

"Enclosed" 주석은 구분문자 시퀀스 /*주석*/을 사용합니다. 여기서/* 및 */는 각각 주석의 시작과 끝을 나타냅니다.

"To-end-of-line" 주석은 현재의 라인 끝에서 실행하는 주석의 시작을 나타내기 위하여 구분문자 // 을 사용합니다.

관련정보

컴파일된 함수 개요, 컴파일된 함수 개요, 컴파일된 함수 임포팅 및 호출하기, C 함수 생성하기, DLL 생성, DLL 사용


Execute Program 오브젝트와 컴파일된 함수 사용비교

외부 프로그램을 VEE에서 호출하여 사용할 때, Execute Program 오브젝트를 사용할 것인가, 또는 컴파일된 함수를 사용할 것인가는 다음과 같은 정보를 고려하여 결정합니다.

Execute Program 오브젝트

Execute Program 오브젝트는 다음과 같은 특징이 있습니다:

  • 사용이 쉬움

  • 시작시간이 오래 걸림

  • 주소 공간이 보호되어 있음(다른 메모리 영역에서 실행됨)

  • 실행 방식을 동기식 또는 비동기식으로 선택 가능

  • 비동기식의 이벤트 제공

  • 보다 안전(만일 프로그램이 깨어진 채로 호출된다면, 에러 메시지를 출력)

  • 연속 데이터의 수집이 용이

컴파일된 함수

Import Library 와 Call 오브젝트를 사용하여 호출하는 컴파일된 함수는 다음과 같은 특징이 있습니다:

  • 시작시간이 짧음

  • 공유된 스택과 메모리에 전달함으로써 VEE와 통신

비동기식 실행

  • 신호와 예외는 블록되거나 캐치되지 않음(GPF 메시지와 같이)

  • 텍스트 기반의 프로그래밍 컴파일러 필요

  • 사용하는데 좀더 복잡함. 사용상의 높은 위험률(어레이 범위를 초과하는 접근 및 메모리 중복쓰기 에러는 VEE을 크래쉬 시킴.)

관련정보

컴파일된 함수 개요


리모트 함수

리모트 함수는 리모트 호스트 컴퓨터에 있는 다른 VEE 프로세스에서 실행되는 UserFunction입니다. 리모트 함수는 특별한 경우의 UserFunction입니다.

사용법

리모트 함수는 LAN을 통해서 로컬 VEE 프로세스에서 호출됩니다. UserFunctions이나 컴파일된 함수처럼, Import Library 오브젝트를 이용하여 리모트 함수 라이브러리를 임포트합니다. 하나 이상의 리모트 함수가 임포트될 때, 리모트 함수는 Call 오브젝트를 사용하거나 표현식에 함수 이름을 입력하여 호출됩니다. UserFunctions을 호출한 것처럼 프로세스에서 리모트 함수 호출하여 사용합니다. 이번 장에서는 일부 다른 점과 네트웍 형식을 설명합니다.

UserFunctions 라이브러리를 생성한 것처럼 리모트 함수 라이브러리를 생성하여 리모트 호스트 컴퓨터에 저장합니다. 리모트 호스트 컴퓨터에는 VEE Pro 또는 VEE Pro 런타임이 설치되어 있어야 합니다. 리모트 함수 라이브러리는 로컬 VEE 프로세스로 임포트되지 않으나 리모트 호스트에서 실행되는 “서비스”라 불리는 VEE의 특별한 호출에서 사용합니다. 로컬 VEE 프로세스는 “클라이언트”라 부릅니다. 클라이언트 VEE 프로세스는 Import Library 오브젝트를 사용하여 리모트 함수 라이브러리를 임포트합니다. Library Type 필드를 Remote Function으로 선택하면, 다음 그림과 같이 새로운 필드들이 나타납니다.

Library Type 및 Library Name 필드의 기능은 UserFunctions과 컴파일된 함수에 있는 필드와 동일합니다. 다른 필드는 다음과 같습니다:

Remote Host Name - “서비스” VEE 프로세스가 실행되는 호스트 컴퓨터의 이름(“리모트 호스트”). 이 이름은 호스트의 일반적인 이름이나 심볼릭 이름(예, myhost), 또는 이 필드에 있는 호스트의 IP 어드레스(예, 14.13.29.99)가 될 수 있습니다.

Remote File Name - 리모트 함수 라이브러리의 이름. Remote File Name은 UserFunction 라이브러리에 있는 File Name 필드와 유사합니다. 파일에 대한 절대적인 경로를 지정해야 하므로 경로와 파일이름이 길어질 수 있습니다. 모든 사용자가 리모트 함수 라이브러리를 C:\USERS\REMFUNC와 같이 동일한 경로에 배치하기를 바랍니다.

Remote Timeout - VEE 서비스와 통신하기 위한 초 단위의 타임아웃 시간. 지정된 시간에 VEE 서비스가 요구하는 리모트 함수의 결과를 출력하지 않는 경우에는, 에러가 발생합니다.

Remote Debug - 체크박스가 선택되면, 라이브러리에 있는 모든 UserFunctions은 디버그 모드(예, 브레이크포인트를 설정하거나 라인 프로브를 사용하는 것 같은 디버깅이 가능합니다.)에서 실행됩니다. 이 설정은 UserFunctions이 패널뷰를 가지고 있는 것과 상관없이 동작합니다.

Import Library 오브젝트가 실행(오브젝트 메뉴에서 Load Lib를 선택하여 실행되든, 보통의프로세스가 실행중 이든)될 때, VEE 서버 프로세스는 Host Name 필드에서 지정한 리모트 호스트에서 실행됩니다. 클라이언트 프로세스와 서버 프로세스는 네트웍을 통해 연결되며, 통신할 수 있습니다.

클라이언트 VEE에서 Call 오브젝트가 리모트 함수를 호출할 때, 인수(Call 오브젝트의 입력핀에 있는 데이터)가 네트웍을 통해 리모트 함수가 실행되는 리모트 서비스로 전송됩니다. 결과값은 다시 Call 오브젝트로 전송되고 데이터 출력핀으로 출력됩니다.

프로그램이 Delete Library 오브젝트를 이용하여 리모트 함수의 라이브러리를 삭제한 경우에는, 라이브러리와 관련된 리모트 함수가 제거됩니다. VEE 서버 프로세스에 복수의 라이브러리를 로딩할 수 있고, 연결된 서비스를 취소하지 않고 필요한대로 라이브러리를 삭제할 수 있습니다. VEE 서버는 VEE 클라이언트 프로세스가 실행되는 동안에만 존재합니다.

필수조건

리모트 함수는 리모트 호스트 시스템에서 실행하기 위해 VEE 서비스 매니저가 필요합니다. 다음과 같이 수동으로 실행시키십시오:

  1. VEE 설치 디렉토리로 갑니다.

  2. veesm.exe을 실행합니다.

  3. 콘솔 윈도우가 나타나면, 다른 작업에 방해가 안되도록 윈도우를 축소시킵니다.

  4. VEE 서비스 매니저를 중지하기 위해서는, 콘솔 윈도우를 열고 CTR+C를 누릅니다.

주의사항

VEE 서비스 프로세스는 Import Library에 의해 지정된 리모트 함수 라이브러리에 있는 리모트 함수만을 실행합니다.

리모트 함수는 관련된 뷰를 제공합니다. 리모트 함수를 호출할 때, UserFunction이 패널뷰를 디스플레이하는 경우에는 리모트 호스트에 VEE 윈도우를 디스플레이할 수 있습니다.

전역변수(선언여부와 상관없이)는 프로세스간에 공유하지 않습니다.

리모트 함수는 호출시 시분할(time-slice) 되지 않습니다.

오브젝트의 파라미터는 리모트 함수.(ActiveX Automation 오브젝트 또는 ActiveX 컨트롤의 포인터를 포함하여)로 전달하거나 전송 받지 않습니다.

서비스 VEE에서 사용하는 실행모드는 사용자의 vee.rc 파일에 있으며, 임포트되는 파일에 저장되어 있지 않습니다.

서비스 VEE 프로세스에 의해 임포트된 파일에 있는 임베딩된 .veeio 파일 설정은 무시됩니다. 글로벌 I/O 설정 파일이 사용됩니다.

관련정보

Service Manager 또는 UserFunction


Sequencer

UserFunction, Compiled Function, 또는 Remote Function을 호출하는 시퀀스 트랜잭션을 연속하여 실행하는 오브젝트

사용법

연속된 UserFunctions, Compiled Functions, Remote Functions 또는 기타 VEE 함수의 트랜잭션 순서를 지정하여 이들의 실행순서를 제어하는데 Sequencer 오브젝트를 사용합니다. 일반적으로 Sequencer 오브젝트는 연속된 테스트를 실행하는데 사용합니다.

Sequencer오브젝트는 시퀀스 트랜잭션 목록을 가집니다. 각 트랜잭션은 VEE 표현식을 연산하며, 이들 표현식에는 UserFunction, Compiled Function, 또는 Remote Function 호출내용이 들어 있을 수 있습니다. VEE 표현식을 연산한 후에는 리턴된 값을 테스트 규격과 비교합니다. 테스트를 통과하였는지 실패하였는지에 따라서, 다음에 실행할 트랜잭션과 표현식을 선택합니다. 트랜잭션 실행시 발생하는 결과를 Log 출력핀이나 UserFunction, Compiled Function, 또는 Remote Function으로 출력하도록 속성창의 Logging 그룹에서 설정할 수 있습니다.

Sequencer 오브젝트의 Return 출력핀은 시퀀스가 완료될 때 결과를 리턴하는데 사용할 수 있습니다. 디폴트 상태에서 Return 출력핀은 0 의 값을 가지지만, Next Operation of Then Return 트랜잭션을 가진 트랜잭션에서는 Return 출력핀으로 지정된 값이 출력됩니다.

Sequencer 오브젝트의 Log 출력핀은 로깅이 인에이블된 각 트랜잭션마다 하나씩의 로깅 레코드를 출력합니다. 자세한 내용은 아래 속성설명의 Logging 그룹을 참조하십시오.

오픈뷰 항목

오픈뷰에는 실행될 트랜잭션 목록이 표시됩니다.

대화상자 설명

개별 트랜잭션에 대한 인자를 변경할 수 있습니다. 트랜잭션을 클릭하면 해당 트랜잭션의 Sequence Transaction 대화상자가 표시됩니다. 사용할 수 있는 항목은 다음과 같습니다:

시퀀스 모드:

TEST - 지정된 표현식을 실행하고 측정결과를 규격과 비교합니다.(표현식이 UserFunction, compiled function 또는 Remote Function을 호출하는 경우에는 해당 오브젝트의 가장 상단의 출력을 리턴 받습니다.)

EXEC - 측정결과를 규격과 비교하여 통과/실패를 연산하지 않고, 지정된 표현식을 실행합니다. EXEC 트랜잭션에서는 로깅할 수 없습니다.

트랜잭션 이름 - 트랜잭션의 고유한 이름이며, 다른 UserFunction의 이름과 중복될 수 없습니다. 유효한 VEE 변수이름(첫 글자는 영문자로 시작해야 문자나 숫자를 포함할 수 있습니다.)을 사용해야 합니다. 이 이름은 이 트랜잭션 또는 다른 트랜잭션 안의 표현식에 의해서 참조될 수 있으며, 이 트랜잭션의 가장 최근의 실행에 대한 로깅 레코드를 가지게 됩니다.

인에이블 조건 타입:

ENABLED - Sequencer가 이 트랜잭션을 조건없이 실행합니다.

DISABLED - Sequencer가 이 트랜잭션을 실행하지 않습니다.

ENABLED IF: - 지정된 표현식이 0 이 아닌 경우에만 Sequencer가 이 트랜잭션을 실행합니다.

DISABLED IF: - 지정된 표현식이 0 이 아니면 Sequencer가 이 트랜잭션을 실행하지 않습니다.

SPEC NOMINAL: - 테스트 결과의 기대값. 이 값은 규격테스트 RANGE 또는 LIMIT을 연산하는데 사용하지는 않으며, 로깅 레코드에 포함될 수는 있습니다.

스펙 타입- 모든 규격테스트는 Comparator 오브젝트와 같은 방식으로 연산됩니다. 따라서, 테스트 결과는 웨이브폼이 될 수 있으며, 테스트 임계값은 다른 웨이브폼이나 Coord 타입의 어레이가 될 수 있습니다. 규격테스트는 각 데이터포인트가 규격 이내의 값인지 규격 이외의 값인지 판단하기 위해서 자동적으로 필요한 인터폴레이션을 실행합니다. 또한, 모든 테스트는 “거의 같은(almost equal)” 알고리즘을 사용하여 최소한 상위 6 개의 숫자까지 같은지 같지 않은지 판단합니다. 자세한 내용은 Comparator 오브젝트를 참조하십시오. 선택항목은 다음과 같습니다.:

RANGE: - 하한 상한 임계값과 이것을 적용할 비교연산자를 지정합니다.

LIMIT: - 단일 임계값과 이것을 적용할 비교연산자를 지정합니다. 상한 하한 임계값을 테스트하거나, 정확히 일치하는지 테스트하기 위해서 사용할 수 있습니다. 임계값은 HighLimit 레코드 필드에 로깅됩니다.

TOLERANCE: - Nominal 값에서 양의 방향과 음의 방향으로의 공차를 설정합니다. 0 의 공차값도 사용할 수 있습니다. HighLimit 및 LowLimit 로깅 레코드 필드에는 Nominal 값에 공차가 연산된 규격이 표시됩니다.

%TOLERANCE: - Nominal 값에서 양의 방향의 퍼센트와 음의 방향으로의 퍼센트 공차를 설정합니다. 0 의 공차값도 사용할 수 있습니다. HighLimit 및 LowLimit 로깅 레코드 필드에는 Nominal 값에 공차가 연산된 규격이 표시됩니다.

FUNCTION - 테스트를 지정하는 VEE 표현식. 이 표현식에는 UserFunction, Compiled Function 또는 Remote Function의 이름을 직접 입력할 수 있습니다. 또는 입력핀 이름, UserFunctions, Compiled Functions, Remote Function, 변수 및 이 Sequencer 오브젝트의 이전 트랜잭션에서 발생한 테스트 레코드의 큰 표현식이 될 수 있습니다. 이것이 테스트 트랜잭션이면, 이 필드에서 발생하는 단일 결과는 테스트규격과 비교됩니다. UserFunction 이나 Remote Function 호출 결과는 해당 오브젝트 출력의 가장 상단의 출력핀의 값 이거나, 출력핀이 없을 때는 nil 값이 적용됩니다.

로깅 모드:

LOGGING ENABLED - 이 트랜잭션용 필드를 Log 레코드 출력핀(존재하면)에 추가합니다. 속성창의 Logging 탭에서 "Log Each Transaction To:" 프로시져가 설정되어 있으면, 그 로깅 프로시져는 이 트랜잭션이 완료된 후 즉시 호출됩니다.

LOGGING DISABLED - 이 트랜잭션에 대해서 로그 레코드가 생성되지 않으며, "Log Each Transaction To:" 프로시져가 호출되지 않습니다. (옵션 및 자세한 내용은 아래 속성의 “Logging 탭”을 참조하십시오.)

통과(Pass) 동작:

IF PASS - 규격테스트가 통과하면(테스트 결과가 임계값 이내), 지정된 “then” 액션이 실행됩니다.

IF PASS CALL: - 규격테스트가 통과하면(테스트 결과가 임계값 이내), 지정된 VEE 표현식 – 이 표현식은 UserFunction, Compiled Function 또는 Remote Function를 호출할 수 있습니다.-- 이 연산되고, 지정된 “then” 액션이 실행됩니다.(IF PASS CALL 에 대한 결과는 무시됩니다.)

실패(Fail) 동작:

IF FAIL - 규격테스트가 실패하면(테스트 결과가 임계값 초과), 지정된 “then” 액션이 실행됩니다.

IF FAIL CALL: - 규격테스트가 실패하면(테스트 결과가 임계값 초과), 지정된 VEE 표현식 – 이 표현식은 UserFunction, Compiled Function 또는 Remote Function를 호출할 수 있습니다.-- 이 연산되고, 지정된 “then” 액션이 실행됩니다.(IF PASS CALL 에 대한 결과는 무시됩니다.)

다음 동작: (EXEC 트랜잭션, 또는 TEST 트랜잭션의 "Pass" 또는 "Fail" 동작에 적용됩니다.)

THEN CONTINUE - Sequencer 목록의 다음 트랜잭션으로 이동합니다.(디폴트 동작입니다.)

THEN RETURN - 이 Sequencer 오브젝트에서 트랜잭션 실행을 종료하고 지정된 표현식(함수를 호출할 수 있는)의 값을 Sequencer 오브젝트의 Return 출력핀으로 보냅니다. Sequencer 오브젝트는 출력핀으로 데이터를 내보내고 프로그램 내의 실행 흐름은 정상적으로 수행됩니다.

THEN GOTO - 이 Sequencer 오브젝트 안의 지정된 트랜잭션으로 이동합니다.

THEN REPEAT - 지정된 횟수만큼 이 트랜잭션을 반복하여 실행합니다. MAX TIMES에 설정된 횟수만큼 반복한 이후에도 Pass/Fail 조건을 만나지 못했더라도, 다음 트랜잭션으로 이동합니다.

THEN ERROR - 지정된 에러 번호를 가진 에러가 발생하면 Sequencer 오브젝트의 실행을 중지합니다. Sequencer 출력단의 Error out 핀이나 상위 UserObejct로 에러를 트랩할 수 있습니다.

THEN EVALUATE - 지정된 표현식-- UserFunction, Compiled Function, 또는 Remote Function을 호출할 수 있습니다 --을 연산하며, 다음 동작을 결정하기 위해서 스트링 결과를 이용합니다. 표현식에 사용할 수 있는 유효한 스트링 결과는 다음과 같습니다.:

CONTINUE
RETURN <expr>
GOTO <name>
REPEAT <expr>
ERROR <expr>

여기서, <expr>는 모든 유효한 VEE 표현식이며, <name>은 이 Sequencer 오브젝트 안의 트랜잭션입니다. 이 동작은 Sequencer 오브젝트가 다음에 어떤 동작을 실행해야 하는지 (대화방식으로) 결정하는 UserFunction이 필요할 때 유용하게 사용할 수 있습니다.

DESCRIPTION - 트랜잭션의 설명 필드. 이 필드에 입력된 필드는 Sequencer 오픈뷰에서 트랜잭션을 요약하는 텍스트의 맨 마지막에 표시됩니다.

오브젝트 메뉴

Edit Trans – 현재 하이라이트된 트랜잭션을 수정합니다.

Add Trans - 목록의 맨 마지막에 트랜잭션을 추가합니다.

Insert Trans - 현재 하이라이트된 트랜잭션의 앞에 트랜잭션을 삽입합니다.

Cut Trans - 현재 하이라이트된 트랜잭션을 잘라내기합니다. 잘라낸 트랜잭션은 "cut-and-paste" 버퍼에 저장됩니다.

Copy Trans - 현재 하이라이트된 트랜잭션을 "cut-and-paste" 버퍼에 복사합니다.

Paste Trans - 이전에 잘라내거나 복사된 트랜잭션을 붙여넣기 합니다.

Delete Trans – 리스트에서 하이라이트된 트랜잭션을 삭제합니다.

Move Trans Up – 하이라이트된 트랜잭션을 위로 이동합니다.

Move Trans Down - 하이라이트된 트랜잭션을 아래로 이동합니다.

Print Trans - 현재 하이라이트된 트랜잭션을 설명하는 상세 대화상자를 프린트합니다.

속성창

LogRecordField: 각 트랜잭션에서 로깅될 필드를 선택합니다.(Log 출력핀은 레코드의 레코드를 출력합니다. 로깅이 인에이블되어 있으면, 각 트랜잭션마다 하나의 로깅 레코드가 생성됩니다. 아래 지정된, 각 트랜잭션 로깅 레코드에서 필드를 선택하여 로깅할 수 있습니다.) 이름(공백이 없는)은 로깅 레코드의 필드이름입니다. 다음 항목을 선택할 수 있습니다.:

 LogName - 이 트랜잭션을 식별하는 유일한 스트링(프로시져의 이름이 아닙니다.)

 LogResult - 테스트 프로시져의 연산으로부터 리턴되는 값

 LogNominal - 테스트 기대값

 LogHighLimit - 규격테스트에서 사용되는 상한 임계값. Tolerance 및 %Tolerance에 대해서는 옵셋이 아닌 실제 임계값이 작성됩니다.

 LogLowLimit - 규격테스트에서 사용되는 하한 임계값. Tolerance 및 %Tolerance에 대해서는 옵셋이 아닌 실제 임계값이 작성됩니다.

 LogPassed - “통과”에 대해서는 “1”, “실패”에 대해서는 “0”의 정수값

 LogTimeStamp – 테스트 완료 요일, 날짜 및 시간을 실수값으로 가집니다.

 LogDescription - 트랜잭션의 Description 필드에 입력된 설명을 나타내는 Text 값

LoggingControl 카테고리:

LogToOutputOnly - 로깅 기록은 Logging Enabled된 각 트랜잭션의 Log 출력핀의 레코드에 저장됩니다. Sequencer가 한번 실행되는 동안 트랜잭션이 2회 이상 실행되면, 해당 트랜잭션의 마지막 실행된 로깅 기록만이 Log 출력핀의 레코드에 저장됩니다. Sequencer가 실행되는 동안 트랜잭션이 실행되지 않았으면, 해당 트랜잭션에 대한 로깅 기록에는 Name 및 Description 필드를 제외한 다른 필드에는 0(Real64)의 값이 기록됩니다. 이들 Name 및 Description 필드에는 널 스트링이 기록됩니다. Pass 에는 Int32가 저장됩니다.

LogToFunction - Logging Enabled된 각 트랜잭션 다음에 호출될 UserFunction, Compiled Function, 또는 Remote Function을 지정합니다. 현재 트랜잭션에 대한 로깅기록을 UserFunction, Compiled Function 또는 Remote Function에 전달하기 위해서는 예약이름 “ThisTest”를 사용합니다. Log 출력핀은 "LogToOutputOnly" 모드와 동일한 방법으로 실행을 지속합니다.

주의사항

ExecTrans 데이터 입력핀을 추가할 수 있습니다. ExecTrans 데이터 입력은 데이터 입력에 Text 스칼라 또는 1차원 어레이에 의해서 지정된 순서데로 지정된 이름(들)을 가진 트랜잭션(들)만을 실행합니다. If Pass 또는 If Fail 표현식은 일반적인 방식으로 실행되지만, Then 필드의 결과는 실행될 다음 트랜잭션에는 영향을 미치지 않습니다.

모든 필드 표현식(ENABLED IF, FUNCTION 또는 규격 임계값)은 입력핀의 이름, UserFunction 호출, Compiled Function 호출, Remote Function 호출, VEE 연산함수, 이전에 실행된 트랜잭션의 레코드 이름을 가질 수 있습니다. LOGGING ENABLED 된 테스트 트랜잭션에서, 예약된 변수명, thisTest는 연산된 로깅 필드 레코드를 가집니다. 예를 들어, 로깅이 인에이블된 test4 트랜잭션의 테스트 값을 이용하기 위해서는 표현식에서 test4.result를 사용하면 됩니다. 또는 현재 테스트 이름을 다른 표현식에서 사용하기 위해서는 thisTest.name라고 입력합니다. 또는, 테스트 시간의 25% 만을 실행하도록 하기 위해서는 Enabled If 표현식을 random()<0.25 라고 입력합니다.

"thisTest" 변수는 트랜잭션이 인에블되거나 디스에이블 되는것이 결정되기 전까지는 적절하게 생성되지 않기 때문에 "ENABLED IF" 표현식에서 사용하면 안됩니다. 따라서 "ENABLED IF" 표현식에서 "thisTest"를 사용하면, thisTest가 아직 생성되지 않았다는 에러가 발생하든지, thisTest가 이전 트랜잭션에서 생성되었던 “낡은” 데이터를 가지고 있는 에러가 발생합니다.

단축키

트랜잭션을 빠르게 삽입하기 위해서는, 트랜잭션에 커서를 위치시킵니다. 커서가 위치한 트랜잭션 다음에 트랜잭션을 삽입하기 위하여 Insert 키를 누릅니다.

트랜잭션을 빠르게 삭제(“kill”)하기 위해서는, 트랜잭션에 커서를 위치시키고 Delete 키를 누릅니다.

트랜잭션을 "kill" 버퍼에서 붙여넣기 위해서는 CTRL+V를 누릅니다.

트랜잭션 이전이나 다음으로 빠르게 이동하기 위해서는, 위 화살표 또는 아래 화살표를 누릅니다.

오브젝트 위치

Device [image] Sequencer

관련정보

Build Record, Call, Comparator, Formula, Raise Error, UnBuild Record, UserObject 및 오브젝트 메뉴, 및

트랜잭션 편집하기


Sequencer 오브젝트

Sequencer 오브젝트는 Device 메뉴에서 제공됩니다. Sequencer 오브젝트를 효율적으로 사용하기 위해서는 다음의 주제를 이해해야 합니다 이 장에서는 Sequencer 오브젝트를 사용하는 방법을 설명합니다:

• 인스트루먼트 I/O 동작(Help [image] Contents 및 Index [image] Tell me about... Instrument Control Fundamentals을 참조하십시오.)

• 트랜잭션(Help [image] Contents and Index [image] Tell me about... I/O Transactions을 참조하십시오.)

• UserObjects (UserObjects에서 Help [image] Contents and Index [image] Tell me about... Propagation [image] Propagation을 참조하십시오.)

• Records 와 DataSets (Help [image] Contents and Index [image] How Do I... Work with Data [image] Working with Records, 및 Working with DataSets을 참조하십시오.)

• UserFunctions (Help [image] Contents and Index [image] How Do I... Create Custom Objects and Functions [image] Creating and Using UserFunctions을 참조하십시오.)

Sequencer 오브젝트란 무엇인가?

Sequencer 오브젝트는 테스트 실행순서를 제어합니다. 테스트를 실행하여, 테스트 결과를 규격과 비교하여 다음 행위를 결정합니다.

Sequencer 오브젝트는 미리 정해진 시퀀스 트랜잭션을 실행합니다. 각 트랜잭션은 UserFunction, 컴파일된 함수, 원격함수 또는 기타 VEE 함수 등을 호출하는 VEE 표현식으로 구성됩니다. 트랜잭션은 VEE 표현식을 실행하여 얻은 결과를 테스트 규격과 비교합니다. 테스트가 Pass 인가 Fail 인가에 따라서, 트랜잭션은 다른 표현식을 평가하고 다음 트랜잭션을 선택합니다. 트랜잭션의 행위는 각각의 Sequence Transaction 대화상자에 정의합니다.

각 트랜잭션은 실행결과를 Log 출력핀이나 UserFunction, 컴파일된 함수, 원격함수 등에 저장합니다. 실행결과가 발생할 때나 로그 레코드(Log Record)에 수집되면 읽을 수 있습니다. 로깅 행위는 Sequencer Properties 대화상제에 있는 Logging 탭에서 설정됩니다.

측정결과 로깅

특정 상황에서는 Sequencer 로그 레코드를 레코드 어레이로 변환하는데 주의해야 합니다. Using Records에서 설명한 바와 같이, 레코드 어레이를 생성하기 위해서는 어레이의 모든 앨리먼트의 타입, 형 및 크기가 같아야 합니다. Sequencer의Log 출력 터미날에 의해 생기는 레코드의 레코드의 경우에는, 서브레코드의 타입, 형 및 크기가 동일해야 합니다.

예를 들어, 어레이를 생성하기 위해서 Collector를 사용하거나 결과를 DataSet으로 보내서, 하나의 Sequencer 의 여러 개의 실행결과의 로그된 결과를 수집한다고 가정합니다. 어떤 경우이든, 특정 트랜잭션의 로그된 값의 어떤 것이라도 Sequencer의 실행 중 에 타입, 형 또는 크기가 변화되면 에러가 발생됩니다. 레코드 어레이가 생성될 수 없으므로 Collector 또는 To DataSet 오브젝트에서 발생합니다.

ENABLED IF 상황이 정의된 경우 등의 Sequencer의 각각의 실행시 트랜잭션이 실행되지 않으면 이러한 상황이 쉽게 발생합니다. 트랜잭션이 실행되지 않으면, 로그 레코드는 생성되기는 하지만 NAME과 DESCRIPTION 필드는 빈 스트링이 되며, 다른 필드는 값이 0 인 Real 스칼라가 됩니다.

Sequencer의 다음 실행에서 동일한 트랜잭션이 실행되고, Real 스칼라가 아닌 결과를 로그하면 에러가 발생합니다. (이 경우에는 각각의 로그된 출력을 To DataSet 대신 To File 컨테이너 포맷의 파일에 쓸 수 있습니다.)

테스트 프로그램이 실패한 데이터 포인트의 어레이 등의 다른 크기의 어레이를 리턴하면 에러가 발생할 수 있습니다. 이 경우에는, 어레이가 항상 같은 크기의 어레이를 리턴하도록 프로그램을 작성해야 합니다.

관련정보

Sequencer, 예제: Bin Sort, 예제: 테스트 결과 로깅(Logging), 예제: DataSet에 로깅(Logging), 예제 : Sequencer 트랜잭션


콜러블 VEE ActiveX Automation 서버

Windows 2000및 Windows XP용으로 작성된 VEE 오브젝트를 다른 언어(예, Visual Basic, C 등)에서 호출하여 사용할 수 있습니다. 콜러블 VEE ActiveX Automation 서버 기능은 다른 프로그램 언어(MS EXCEL 또는 MS Visual Basic 등)로 작성된 자동화 어플리케이션에 VEE UserFucntion을 은닉화하여 제공합니다. 콜러블 VEE ActiveX Automation 서버 기능은 프로그래밍 언어에 구애 받지 않는 자동화 인터페이스를 제공하므로, Automation Server 호출 기능을 지원하는 어떠한 어플리케이션이나 프로그래밍 언어에서도 사용할 수 있습니다.

주의사항

VEE가 다른 어플리케이션을 제어하거나 다른 어플리케이션에서 제공하는 기능을 사용할 때는 ActiveX Automation과 ActiveX 컨트롤 기술을 사용하여, 그 반대로 VEE가 다른 어플리케이션(예, Visual Basic)에 VEE의 기능이나 VEE로 작성된 프로그램을 제공할 때는 VEE의 콜러블 VEE ActiveX Automation 서버 기능을 사용합니다.

콜러블 VEE ActiveX Automation 서버는 속성과 메서드를 통하여 클라이언트(VEE를 호출하는 프로그램)와 통신합니다. Visual Basic 또는 C와 같이 사용자가 콜러블 VEE ActiveX Automation 서버를 호출하는 프로그램은 이 기술을 사용하여 호출하는 방법을 정의하며, 광범위한 온라인 도움말을 제공하고 있습니다.

주의사항

콜러블 VEE ActiveX Automation Server는 VEE 5.0에서 제공되었던 콜러블 VEE ActiveX Control 기능의 업그레이드된 기능입니다.

콜러블(Callable) VEE에 대하여

VEE UserFunction을 사용하고 있는 상태에서, 다른 언어로 어플리케이션을 생성하고자 하는 경우가 있습니다. 리모트 함수가 하나의 VEE에서 다른 VEE의 UserFunction을 사용하도록 하는 것처럼, 콜러블 VEE는 C 프로그램 또는 C 루틴을 억세스 할 수 있는 언어에서 UserFunction을 호출할 수 있도록 합니다.

이전 버전의 VEE는 다른 개발 환경에서 VEE 코드를 실행하기 위한 다음과 같은 2가지 방법이 제공 되었습니다: VEE RPC API 및 콜러블 VEE ActiveX 컨트롤. VEE 6에서는 콜러블 VEE ActiveX 컨트롤을 Visual Basic 같은 프로그램 환경에서 쉽게 VEE 코드를 사용할 수 있도록 하는 콜러블 VEE Automation 서버로 대체 되었습니다.

주의사항

UserFunction을 실행하기 위해서는 서버 시스템에서 VEE를 사용할 수 있어야 합니다. 이들 UserFunction은 스스로 실행되지는 않습니다. UserFunction은 VEE가 로딩되고 실행될 수 있는 라이브러리로 구성되어야 합니다.

관련정보

Agilent VEE를 이용한 웹 모니터링, Agilent VEE 데이터를 원격 사용자에게 전달하는 방법, 웹 서버 대화상자, 원격사용자가 로컬 컴퓨터의 Agilent VEE에 접근하는 방법, Agilent VEE 웹서버 페이지 표시, 실습 13-1: Agilent VEE 웹 브라우저를 이용한 세션 실습, 웹을 통한 프로그램 접근 제한


VEE RPC API 사용하기

이 툴은 VEE와 함께 제공되며, VEE RPC API를 지원하는데 필요합니다.

• libvapi.lib 이름을 가지는 C 라이브러리는 VEE 설치폴더의 lib 서브폴더에서 제공됩니다. 이 라이브러리는 사용자가 작성하는 C 프로그램과 링크됩니다.

이 라이브러리는 2 개의 API(Application Program Interfaces)를 지원합니다. 하나의 API(VEE RPC)는 C프로그램과 VEE 사이의 RPC(Remote Procedure Call)를 설정하고 제어합니다. 이 API안의 이 함수에 대한 프로토타입은 veeRPC.h 안에 있으며 다음 동작을 실행합니다.:

• VEE 서버를 로딩하고 언로딩.

• VEE 라이브러리를 로딩하고 언로딩

• VEE 라이브러리 안의 UserFunction의 목록을 출력

• UserFunction으로부터 데이터를 호출하고 받음

• 관련 상태 및 하우스키핑을 실행

두 번째 API(VEE DATA)는 C와 VEE 데이터 타입간의 타입 변환을 수행합니다. 이 API 안의 함수에 대한 프로토타입은 veeData.h 안에 있습니다.

주의

Borland 컴파일러를 사용하면 libvapi.lib 라이브러리를 프로그램에 링크할 수 없습니다.

• VEE Service Manager, veesm.exe,는 VEE 설치 폴더의 다른 VEE 실행파일과 함께 있습니다. 이것은 타겟 VEE와 그것의 UserFunction 실행을 관리하고, 원격 클라이언트가 서버에 VEE를 띠울 수 있도록 합니다.

VEE RPC API를 이용하는 예제 프로그램이 CallableVEE\RPC_API 폴더에서 제공됩니다. 이들의 파일이름은 callVEE.c 와 callVEE.exe 입니다.

VEE RPC API에 관하여

VEE RPC API는 C 클라이언트 프로그램과 VEE 서버 간의 연결을 설정, 유지 및 닫는 것을 관리합니다.

The VEE RPC API's routines use one of three handles in their operation:

VEE RPC API의 루틴은 그 동작으로 다음 3 개의 핸들 중에서 하나를 사용합니다.

VRPC_SERVICE; // VEE server에 대한 핸들.

VRPC_LIBRARY; // VEE UserFunction 라이브러링 대한 핸들.

VRPC_FUNCTION; // VEE UserFunction에 대한 핸들.

API 호출은 다음 절에서 설명한 바와 같이 구성됩니다.

관련정보

서버를 시작하고 중지하기, 라이브러리 로딩 및 언로딩, UserFunction 선택, UserFunction 호출, 기타 함수, VEE RPC API용 에러코드


서버를 시작하고 중지하기

가장 중요한API 함수는 VEE 서버를 시작하고 중지하는 2개의 함수입니다. VEE 서버를 로딩하기 위해서는 다음 함수를 사용합니다.:

VRPC_SERVICE vrpcCreateService( char *hostName, char *display, char *geometry, double aTimeoutInSeconds,unsigned long flags );

이 함수는 hostname 이름을 가진 호스트에서VEE서버를 시작합니다. hostName은 텍스트 형태(예를 들어, mycomputer@lvld.agilent.com)이거나 숫자 형태(15.11.55.105)일 수 있습니다. 이 함수는 서버 핸들을 리턴합니다. 이상이 발생하면 NULL(실제적으로는 0)을 리턴합니다. 그러므로, 다음 절에서 설명하는 바와 같이, veeGetErrorNumber() 및 veeGetErrorString() 함수를 이용하여 정밀한 에러 정보를 받을 수 있습니다.

display 인자는 네트워크 주소를 텍스트(babylon:0.0)를 이용하여 원격 디스플레이를 지정합니다.

geometry 인자는 VEE 윈도우의 크기와 위치를 지정합니다. 예를 들어, 800x500+0+0는 800x500 크기의 VEE 윈도우를 디스플레이의 좌측하단에 배치합니다.

aTimeoutInSeconds 인자는 서비스가 시작할 때 까지 기다리는 시간을 초 단위로 지정합니다. 이 값이 vrpcSetTimeout()에 의해서 변경되지 않으면 향후 호출시에도 이 값이 계속 사용됩니다.

flags 인자는 일반적으로 사용되지 않습니다. 그러나, VEERPC_CREATE_NEW을 이것에 설정하면, 이미 실행된 VEE 대신 새로운 VEE가 서버에서 실행됩니다.

VEE서버를 중지시키기 위해서는 다음 함수를 사용합니다.:

VRPC_SERVICE vrpcDeleteService( VRPC_SERVICE aService );

이 함수의 인자는 원래 서버를 시작했을 때 생성했던 서버핸들 한 개 입니다. 모든 것이 정상이면 OK이면 NULL 포인터를 리턴 받고, 그렇지 않으면 NULL이 아닌 포인터를 리턴받습니다.

관련정보

VEE RPC API 사용하기, 라이브러리 로딩 및 언로딩, UserFunction 선택, UserFunction 호출, 기타 함수, VEE RPC API용 에러코드


라이브러리 로딩 및 언로딩

일단 서버를 시작시켰으면, 원격VEE에서 라이브러리를 로딩할 수 있습니다. 다음 명령으로 라이브러리를 로딩합니다.:

VRPC_LIBRARY vrpcLoadLibrary( VRPC_SERVICE aService, char *LibraryPath );

이 함수는 서버핸들과 LibraryPath에 의해서 지정된 UserFunction의 경로를 인자로 받아들이고, 라이브러리 핸들을 리턴합니다. 실패하면 NULL을 리턴합니다.

일단 로딩되면, 다음 명령어로 일반모드 또는 디버깅 실행모드로 지정할 수 있습니다.:

void vrpcSetExecutionMode( VRPC_LIBRARY aLibrary, unsigned long executionMode );

이 함수에서, 라이브러리 핸들과 executionMode 플래그를 지정합니다. executionMode 플래그는 VRPC_DEBUG_EXECUTION(이 모드는 타겟시스템에서 실행되는 UserFunction을 단일-스텝으로 실행되도록 지정합니다.)로 설정될 수 있습니다. 디폴트 값은 VRPC_NORMAL_EXECUTION입니다.

유사한 방식으로 다음 명령어어를 사용하여 라이브러리를 언로드할 수 있습니다.:

VRPC_LIBRARY vrpcUnLoadLibrary( VRPC_LIBRARY aLibrary );

라이브러리 핸들 하나만의 인자를 사용합니다.

관련정보

VEE RPC API 사용하기, 서버를 시작하고 중지하기, UserFunction 선택, UserFunction 선택, 기타 함수, VEE RPC API용 에러코드


UserFunction 선택

이제는 서버에 접속되어 있으며 라이브러리가 로딩되어 있으므로, UserFunction에 대한 핸들을 얻어야 합니다.

다음 함수를 이용하여 함수 핸들을 얻습니다.:

VRPC_FUNCTION vrpcFindFunction( VRPC_LIBRARY aLibrary, char *aFunctionName );

라이브러리 핸들과 인자로 UserFunction 이름을 제공하는 스트링을 지정하고, 함수 핸들이나 이상이 있으면 NULL을 리턴받습니다.

함수에 대한 정보를 받기 위해서는, 다음 함수를 이용합니다.:

struct VRPC_FUNC_INFO* vrpcFunctionInfo( VRPC_FUNCTION aFunction );

이것은 데이터 스트럭쳐를 리턴합니다. 이상이 있는 경우에는 NULL을 리턴합니다. 데이터 스트럭쳐는 다음 형태입니다.:

typedef struct VRPC_FUNC_INFO

{

   char *functionName; // 함수의 이름

   long numArguments; // 함수의 입력 핀의 개수

   enum veeType *argumentTypes; // 인자 타입 목록

   veeShape *argumentShapes; // 인자 형태 목록

   long numResults; // 함수의 출력 핀의 개수

   enum veeType *resultTypes; // 출력 타입의 목록

   veeShape *resultShapes; // 출력 형태의 목록

};

NULL을 리턴받았으면, 이것의 메모리가 프로세스 공간을 점유하고 있는 것이므로, 메모리에서 제거할 수 있습니다.:

struct VRPC_FUNC_INFO* vrpcFreeFunctionInfo(struct VRPC_FUNC_INFO *funcinfo);

다음 함수를 이용하여서는 라이브러리 안에 무슨 함수가 있는지 확인할 수 있습니다.:

char** vrpcGetFunctionNames( VRPC_LIBRARY aLibrary, long *numberOfFunctions );

이 함수는 라이브러리 핸들을 인자로 받습니다. 함수이름을 직접 제공하거나 인자로 라이브러리에서 numberOfFunctions를 제공하면 널로 종료되는 스트링의 어레이에 포인터를 리턴합니다. 에러가 발생하면 NULL 포인터를 리턴받습니다. 스트링 어레이는 프로세스 공간에 존재합니다.

관련정보

VEE DATA API에 관하여, 서버를 시작하고 중지하기, 라이브러리 로딩 및 언로딩, Calling UserFunctions, 기타 함수, VEE RPC API용 에러코드


UserFunction 호출

이제는 UserFunction을 호출할 수 있습니다.

하나의 함수를 이용하여 호출하고 결과를 리턴받을 수 있습니다.:

VDC* vrpcCallAndReceive( VRPC_FUNCTION aFunction, VDC *arguments );

이 함수는 블록하고, 함수가 완료될 때 까지 또는 타임아웃이 발생할 때까지 대기합니다. 함수의 핸들과 VEE 데이터 컨테이너(VDC)을 지정해야 합니다. VDC를 핸들링하는 것은 VEE DATA API의 기능이며 VEE DATA API에 관하여에서 설명됩니다.

또는 블록킹모드에 있는 UserFunction을 호출하기 위해서 다음과 같이 호출할 수 있습니다.:

long vrpcCall( VRPC_FUNCTION aFunction, VDC *arguments );

이 함수는 “블록”하지 않습니다. 이 함수는 이 함수가 실행되었든 실행되지 않았든 즉시 리턴합니다. 모든 것이 정상이면 0을 리턴하고 그렇지 않으면 에러코드를 리턴합니다.

대부분의 UserFunctions은 언젠가는 리턴하므로, 값을 리턴받을 수 있습니다.:

VDC* vrpcReceive( VRPC_FUNCTION aFunction, unsigned long waitMode );

함수핸들과 waitMode 플래그를 지정해야 하며, 다음의 3 개의 값 중의 하나를 가질 수 있습니다.

• VRPC_NO_WAITING 결과를 가지고 또는 결과없이 즉시 리턴합니다.

• VRPC_WAIT_SLEEPING 타임아웃될 때 까지 데이터를 기다립니다.(서버 슬립)

• VRPC_WAIT_SPINNING 타임아웃될 때 까지 데이터를 기다립니다.(서버 비지)

함수가 실패하면, NULL 이 리턴됩니다.

관련정보

VEE RPC API 사용하기, 서버를 시작하고 중지하기, 라이브러리 로딩 및 언로딩, UserFunction 선택, 기타 함수, VEE RPC API용 에러코드


기타 함수

이 절에서는 VEE RPC API의 기타 유틸리티 함수를 설명합니다.:

• 이 함수로 타임아웃을 변경할 수 있습니다. 서버핸들과 타임아웃을 초 단위로 지정합니다. 모든 것이 에러가 없으면 0을 리턴 받고, 에러가 발생하면 에러코드를 리턴받습니다.

long vrpcSetTimeout( VRPC_SERVICE aService, double aTimeoutInSeconds );

• 이 함수는 데이터를 받기 위한 디폴트 C 클라이언트 동작을 설정합니다.:

long vrpcSetBehavior( VRPC_SERVICE aService, unsigned long flags );

서버 핸들과 프래그를 지정하고, 0 이나 에러코드를 리턴 받습니다. flags는 다음과 같습니다.:

VRPC_WAIT_SLEEPING 타임아웃이 발생할 때 까지 데이터를 기다립니다. (클라이언트 슬립).

VRPC_WAIT_SPINNING 타임아웃이 발생할 때 까지 데이터를 기다립니다.(클라이언트 비지).

또한, 서버에서 리턴되는 데이터의 크기가 커지는 것에 대응하여 C 클라이언트가 큰 버퍼를 할당하고 유지하도록 지정하기 위해서 프래그 VRPC_BUFFER_EXPAND에서 OR를 실행할 수 있습니다.

• 다음 함수로는 원격 veesm의 버전 번호를 질의할 수 있습니다.:

long vrpcGetServerVersion( VRPC_SERVICE aService );

이것을 서버핸들로 주고 버전 코드나 (에러발생시) 0 을 리턴 받습니다.

관련정보

VEE RPC API 사용하기, 서버를 시작하고 중지하기, 라이브러리 로딩 및 언로딩, UserFunction 선택, UserFunction 호출, VEE RPC API용 에러코드


VEE RPC API용 에러코드

VEE서버와 연결하지 못하면 다음 에러코드가 리턴됩니다.:

에러 코드 | 의미
850: eUnknownHost | 호스트의 이름이나 IP 주소를 해석할 수 없음.
851: eNoServiceManager | 서버 호스트에서 veesm를 찾을 수 없음
861: eServiceManagerTO | 서비스관리자 타임아웃
863: eServiceNotFound | VEE 서비스를 찾을 수 없음
864: eServiceNotStarted | VEE 서비스를 시작할 수 없음
866: eConnectRefused | veesm 이나 inetd에 연결이 거절되었음

다음은 VEE 서버에 연결된 후 발생하는 치명적인 에러입니다.(이것이 발생하면 연결이 종료됩니다.)

에러 코드 | 의미
852: eHostDown | VEE서버 호스트가 다운 되었습니다.
853: eConnectTimedOut | 연결이 타임아웃 되었습니다.
855: eConnectBroken | 연결이 끊어졌습니다.

다음 에러는 서비스 동안 내부에서 발생되는 치명적이지 않은 상태를 나타냅니다.:

에러 코드 | 의미
865: eSomeInternalError | 치명적이지 않은 내부 에러가 발생했습니다.
869: eVeeServiceError | UserFunction 안에서 에러가 발생했습니다.
870: eWouldBlock | 비-블록킹 RPC를 위해서 리턴되었습니다.
871: eDebugTermination | 디버깅 세션동안 사용자가 중지버튼을 눌렀습니다.

RPC 함수 호출에 의해서 다음 에러가 리턴됩니다.

에러 코드 | 의미
851: eInvalidArgument | 유효하지 않은 인자입니다.

관련정보

VEE RPC API 사용하기, 서버를 시작하고 중지하기, 라이브러리 로딩 및 언로딩, UserFunction 선택, UserFunction 호출, 기타 함수


VEE DATA API에 관하여

UserFunction을 호출하거나 UserFunction에서 데이터를 리턴 받기 위해서는 VEE Data Container (VDC) 포맷으로 데이터를 취급해야 합니다. VDC는 VEE 내부 실행을 위해서 필요한 데이터 구조입니다. C 프로그램과 통신하기 위해서는 VDC와 C 데이터 간에 데이터 타입을 변환해야 합니다. VEE DATA API가 이 기능을 제공합니다.(이 기능 이외의 다른 기능도 제공합니다.)

관련정보

Data 타입, 형태 및 매핑, 스칼라 데이터 핸들링, 어레이 데이터 취급, Enum 타입, 매핑 함수, 기타 함수.


Data 타입, 형태 및 매핑

기본 VDC 타입이 veeData.h 헤더파일에 다음과 같이 정의되어 있습니다.:

enum veeType

VEE_TYPE_ANY=0, // 제한조건이 없는 디폴트 값

   VEE_NOT_DEFINED1, // 공백을 남김

   VEE_LONG, // 32-비트 부호를 가진 정수(VEE에는 16-비트 정수가 없음)

   VEE_NOT_DEFINED2, // 공백을 남김.

   VEE_DOUBLE, // IEEE 754 64-비트 부동소수점 숫자.

   VEE_COMPLEX, // 복소수 숫자: 직교좌표 형태의 2 개의 더블

   VEE_PCOMPLEX, // 복소수 숫자: 극좌표 형태의 2 개의 더블.

   VEE_STRING, // 8-비트 ASCII 널로 끝나는 스트링.

   VEE_NIL, // 함수 호출에 의해서 리턴되는 빈 컨테이너

   VEE_NOT_DEFINED3, // 공백을 남김.

   VEE_COORD, // 2 개 이상의 더블은 XY 또는 XYZ 또는 … 데이터를 제공합니다.

   VEE_ENUM, // 차수를 가진 스트링 목록

   VEE_RECORD, // VEE 레코드-구조 데이터

   VEE_NOT_DEFINED4, // 공백을 남김.

   VEE_WAVEFORM, // 시간 매핑을 가진 VEE_DOUBLE의 1 차원 어레이

   VEE_SPECTRUM // 시간 매핑을 가진 VEE_PCOMPLEX의 1 차원 어레이

 VEE_LONGLONG, // 64-비트 부호를 가진 정수.

 VEE_BOOLEAN // 32-비트 부호를 가진 정수.

};

편리성을 위해서 veeData.h 파일은 C 데이터 타입을 다음과 같이 VEE 데이터 타입으로 변환합니다.:

      typedef short int16;

   typedef long int32;

 typedef __int64 int64;

 typedef long VEE_BOOL;

   typedef struct {double rval, ival;} veeComplex;

   typedef struct {double mag, phase;} veePComplex;

   typedef struct {double xval, yval;} vee2DCoord;

   typedef struct {double xval, yval, zval;} vee3DCoord;

   typedef void veeDataContainer;

   typedef veeDataContainer* VDC;

또한 데이터 타입은 지정된 차수, numDims는 다음의 항목중에서 선택할 수 있습니다.:

enum veeShape

{

   VEE_SHAPE_SCALAR, // 하나의 데이터 앨리먼트.

   VEE_SHAPE_ARRAY1D, // 1 차원 어레이.

   VEE_SHAPE_ARRAY2D, // 2 차원 어레이.

   VEE_SHAPE_ARRAY3D, // 3 차원 어레이.

   VEE_SHAPE_ARRAY, // 4 차부터 10 까지의 차수를 가진 어레이

   VEE_SHAPE_ANY // 형태가 지정되지 않은 예비용.

};

어레이는 “매핑”될 수 있습니다. 일반적으로 어레이는 매핑되어 있지 않지만, VEE_WAVEFORM 및 VEE_SPECTRUM은 어레이 앨리먼트가 시간간격으로 매핑된 데이터 타입입니다. 매핑은 다음의 항목 중에서 선택할 수 있습니다.:

enum veeMapType

{

    VEE_MAPPING_NONE, // 매핑이 없음.

   VEE_MAPPING_LINEAR, // 선형 매핑.

   VEE_MAPPING_LOG // 로그 매핑.

};

일반적으로, 사용자는 매핑을 지정할 필요가 없습니다.

관련정보

VEE DATA API에 관하여, Data 타입, 형태 및 매핑, 스칼라 데이터 핸들링, Enum 타입, 매핑 함수, 기타 함수.


스칼라 데이터 핸들링

데이터로부터 VDC 스칼라를 생성하기 위해서는 다음 함수를 이용합니다.:

VDC vdcCreateBooleanScalar(VEE_BOOL aBool);

VDC vdcCreateLongScalar( int32 aLong );

VDC vdcCreateLongLongScalar(int64 aLong);

VDC vdcCreateDoubleScalar( double aReal );

VDC vdcCreateStringScalar( char *aString );

VDC vdcCreateComplexScalar( double realPart, double imaginaryPart );

VDC vdcCreatePComplexScalar( double magnitude, double phase );

VDC vdcCreate2DCoordScalar( double xval, double yval );

VDC vdcCreate3DCoordScalar( double xval, double yval, double zval );

VDC vdcCreateCoordScalar( int16 aFieldCount, double *values );

이들 함수는 VDC에 대한 포인터를, 에러 발생시는 NULL을 리턴합니다. VEE_WAVEFORM 또는 VEE_SPECTRUM 타입은, 정의에 의해서 항상 1차원 어레이 이므로, 스칼라 값은 없습니다.

다른 루틴을 사용하여 VDC 안의 값을 변경할 수 있습니다.:

int32 vdcSetBoolScalar(VDC aVD, VEE_BOOL aBool);

int32 vdcSetLongScalar( VDC aVD, int32 aLong );

int32 vdcSetLongLongScalar(VDC aVD, int64 aLongLong);

int32 vdcSetDoubleScalar( VDC aVD, double aReal );

int32 vdcSetStringScalar( VDC aVD, char *aStr );

int32 vdcSetComplexScalar( VDC aVD, double realPart, double imaginaryPart );

int32 vdcSetPComplexScalar( VDC aVD, double magnitude, double phase );

int32 vdcSet2DCoordScalar( VDC aVD, double xval, double yval );

int32 vdcSet3DCoordScalar( VDC aVD, double xval, double yval, double zval );

int32 vdcSetCoordScalar( VDC aVD, int16 aFieldCount, double* values );

위에서 설명한 바와 같이, 이들 함수는 0 이나 에러코드를 리턴합니다.

스칼라 VDC를 생성하였거나 함수에서 1을 리턴 받으면, 다음과 같은 루틴을 사용하여, 그것으로부터 C 데이터타입을 가져올 수 있습니다.:

int32 vdcSetBoolScalar(VDC aVD, VEE_BOOL aBool);

int32 vdcGetLongScalarValue( VDC aVD, int32 *aLong );

int32 vdcSetLongLongScalar(VDC aVD, int64 aLongLong);

int32 vdcGetDoubleScalarValue( VDC aVD, double *aReal );

char* vdcGetStringScalarValue( VDC aVD );

int32 vdcGetComplexScalarValue( VDC aVD, veeComplex *aComplex );

int32 vdcGetPComplexScalarValue( VDC aVD, veePComplex *aPComplex );

int32 vdcGet2DCoordScalarValue( VDC aVD, vee2DCoord *aCoord );

int32 vdcGet3DCoordScalarValue( VDC aVD, vee3DCoord *aCoord );

double* vdcGetCoordScalarValue( VDC aVD, int16 *aFieldCount );

일반적으로, 이들 함수는 첫 번째 인자, VDC에서 데이터를 가져와서, 2 번째 인자에 넣습니다. 2 번째 인자는 C 변수(이 절의 첫 부분에서 정의된 몇 가지 타입)입니다. 이들 함수는 에러가 없으면 0을 리턴하고, 에러가 발생하면 에러를 에러코드를 리턴합니다.

vdcGetStringScalarValue() 함수와 vdcGetCoordScalarValue() 함수는 예외입니다. vdcGetStringScalarValue() 함수는 함수로부터 직접 스트링을 리턴합니다.(또는 이상이 발생하면 NULL 스트링을 리턴합니다.) vdcGetCoordScalarValue() 함수는 N-차원 좌표 데이터의 어레이로 포인터를 리턴합니다.(인자로 리턴되는N과 함께)

마지막으로, 좌표 차원에 대한 좌표 타입을 질의하거나 필요하면 새로운 값에 좌표 차원을 설정할 수 있습니다.

int16 vdcNumCoordDims( VDC aVD );

int32 vdcCoordSetNumCoordDims( VDC, int16 );

관련정보

VEE DATA API에 관하여, Data 타입, 형태 및 매핑, 어레이 데이터 취급, Enum 타입, 매핑 함수, 기타 함수.


어레이 데이터 취급

이들 함수는 VEE 타입의 VDC을 생성합니다. 사용자가 제공하는 값은 VDC로 복사됩니다. 호출하는 프로그램의 메모리는 사용되지 않습니다. 에러가 발생하면 널(null) 포인터가 리턴됩니다. 다음과 같은 함수를 가진 VDC어레이가 생성됩니다.

• 이 함수는 VEE_BOOL 타입의 VDC를 리턴합니다. 이 VDC는 numPts인자와 같은 크기로 할당됩니다. values 인자에 의해서 지시되는 데이터의 어레이는 동일한 크기로 지정되어야 합니다. VEE_BOOL인자의 타입은 veeData.h에서 long으로 정의됩니다.

VDC vdcCreateBoolean1DArray(int32 numpts, VEE_BOOL *values);

• 이 함수는 VEE_LONG 타입의 VDC를 리턴합니다. 이 VDC는 numPts인자와 같은 크기로 할당됩니다. values 인자에 의해서 지시되는 데이터의 어레이는 동일한 크기로 지정되어야 합니다. int32 인자의 타입은 veeData.h에서 long으로 정의됩니다.

VDC vdcCreateLong1DArray( int32 numPts, int32 *values );

• 이 함수는 VEE_LONGLONG 타입의 VDC를 리턴합니다. 이 VDC는 numPts인자와 같은 크기로 할당됩니다. values 인자에 의해서 지시되는 데이터의 어레이는 동일한 크기로 지정되어야 합니다. int64인자의 타입은 veeData.h에서 __int64 으로 정의됩니다.

VDC vdcCreateLongLong1DArray(int32 numpts, int64 *values);

• 이 함수는 VEE_STRING 타입의 VDC를 리턴합니다. 이 VDC는 numPts인자와 같은 크기로 할당됩니다. strings인자는 포인터의 어레이를 지시하며, 이것은 다시 널로 끝나는 스트링을 지시합니다. 어레이에서 스트링의 개수는 지정된 크기와 같아야 합니다. int32 인자의 타입은 veeData.h에서 long으로 정의됩니다.

VDC vdcCreateString1DArray( int32 numPts, char **strings );

• 이 함수는 VEE_DOUBLE 타입의 VDC를 리턴합니다. 이 VDC는 numPts인자와 같은 크기로 할당됩니다. values인자는 포인터의 어레이를 지시합니다. 어레이에서 double의 개수는 지정된 크기와 같아야 합니다. int32 인자의 타입은 veeData.h에서 long으로 정의됩니다.

VDC vdcCreateDouble1DArray( int32 numPts, double *values );

• 이 함수는 VEE_COMPLEX 타입의 VDC를 리턴합니다. 이 VDC는 numPts인자와 같은 크기로 미리 할당됩니다. int32 인자의 타입은 veeData.h에서 long으로 정의됩니다. values 인자는 veeComplex 타입의 스트럭쳐의 어레이를 지시합니다. 이 스트럭쳐는 veeData.h에서 다음과 같이 정의됩니다.:

typedef struct {double rval, ival;} veeComplex;

VDC vdcCreateComplex1DArray( int32 numPts, veeComplex *values );

• 이 함수는 VEE_PCOMPLEX 타입의 VDC를 리턴합니다. 이 VDC는 numPts인자와 같은 크기로 미리 할당됩니다. int32 인자의 타입은 veeData.h에서 long으로 정의됩니다. values 인자는 veePComplex타입의 스트럭쳐의 어레이를 지시합니다. 이 스트럭쳐는 veeData.h에서 다음과 같이 정의됩니다.:

typedef struct {double mag, phase;} veePComplex;

VDC vdcCreatePComplex1DArray( int32 numPts, veePComplex *values );

• 이 함수는 VEE_COORD 타입의 VDC를 리턴합니다. 이 VDC는 numPts인자와 같은 크기로 미리 할당됩니다. int32 인자의 타입은 veeData.h에서 long으로 정의됩니다. values 인자는 vee2DCoord타입의 스트럭쳐의 어레이를 지시합니다. 이 스트럭쳐는 veeData.h에서 다음과 같이 정의됩니다.:

typedef struct {double xval, yval;} vee2DCoord;

VDC vdcCreate2DCoord1DArray( int32 numPts, vee2DCoord *values );

• 이 함수는 VEE_COORD 타입의 VDC를 리턴합니다. 이 VDC는 numPts인자와 같은 크기로 미리 할당됩니다. int32 인자의 타입은 veeData.h에서 long으로 정의됩니다. values 인자는 vee3DCoord타입의 스트럭쳐의 어레이를 지시합니다. 이 스트럭쳐는 veeData.h에서 다음과 같이 정의됩니다.:

typedef struct {double xval, yval, zval;} vee3DCoord;

VDC vdcCreate3DCoord1DArray( int32 numPts, vee3DCoord *values );

• 이 함수는 VEE_COORD 타입의 VDC를 리턴합니다. 이 VDC는 numPts인자와 같은 크기로 미리 할당됩니다. aFieldCount 인자는 좌표에서 필드의 개수입니다. int32 인자의 타입은 veeData.h에서 long으로 정의됩니다. values 인자는 double 타입의 어레이를 지시합니다. 이 어레이의 크기는 numPts과 aFieldCount의 곱과 같아야 합니다.

VDC vdcCreateCoord1DArray( int32 numPts, int16 aFieldCount, double *values );

• 이 함수는 numPts인자와 같은 수의 샘플을 가지는 VEE_WAVEFORM 타입의 VDC를 리턴합니다. From 인자와 thru인자가 각각 웨이브폼의 시작시간과 종료시간 입니다. mapType 인자는 어떤 매핑이 사용되었는지 선언하므로, veeData.h 에서 VMT 타입으로 정의되어 있습니다. 자세한 내용은 Data 타입, 형태 및 매핑을 참조하십시오.

data 인자에 의해서 지시되는 doubles의 어레이는 numPts 인자의 크기와 동일해야 합니다. int32 인자의 타입은 veeData.h에서 long으로 정의됩니다.

VDC vdcCreateWaveform( int32 numPts, double from, double thru, VMT mapType, double *data );

• 이 함수는 numPts인자와 같은 수의 샘플을 가지는 VEE_SPECTRUM 타입의 VDC를 리턴합니다. from 인자와 thru인자가 각각 스펙트럼의 시작 주파수와 종료 주파수 입니다. mapType 인자는 어떤 매핑이 사용되었는지 선언하므로, veeData.h 에서 VMT 타입으로 정의되어 있습니다. 자세한 내용은 D ata 타입, 형태 및 매핑을 참조하십시오.

data 인자에 의해서 지시되는 veePComplex의 어레이는 numPts 인자의 크기와 동일해야 합니다. veePComplex 인자의 타입은 veeData.h에서 정의된 스트럭쳐입니다.

typedef struct {double mag, phase;} veePComplex.

스트럭쳐의 어레이는 복사됩니다. int32 인자는 veeData.h에서 long으로 정의됩니다.

VDC vdcCreateSpectrum( int32 numPts, double from, double thru,
VMT mapType, veePComplex *data);

위의 함수들에서, 어레이의 크기, 어레이를 표시하는데 필요한 추가 데이터(VEE_WAVEFORM 및 VEE_SPECTRUM 등의 매핑 데이터) 및 어레이 데이터를 지정하고, VDC를 가져옵니다.(문제가 발생하면 NULL을 받습니다.)

다음과 같이 VDC에서 C로 역변환할 수 있습니다.:

• 이 함수는 VEE_BOOL 타입의 어레이에 대한 포인터를 리턴합니다. aVD 인자는 VEE_BOOL 타입이고 어레이이어야 합니다. 참조값을 전달되는 인자 numPts에서 리턴되는 값은 어레이의 길이입니다.

VEE_BOOL* vdcGetBool1DArray(VDC aVD, int32 *numpts);

• 이 함수는 int32 타입의 어레이에 대한 포인터를 리턴합니다. aVD 인자는 VEE_LONG 타입이고 어레이이어야 합니다. 참조값을 전달되는 인자 numPts에서 리턴되는 값은 어레이의 길이입니다.

int32* vdcGetLong1DArray( VDC aVD, int32 *numPts );

• 이 함수는 int64타입의 어레이에 대한 포인터를 리턴합니다. aVD 인자는 VEE_LONG 타입이고 어레이이어야 합니다. 참조값을 전달되는 인자 numPts에서 리턴되는 값은 어레이의 길이입니다.

int64* vdcGetLongLong1DArray(VDC aVD, int32 *numpts);

• 이 함수는 double타입의 어레이에 대한 포인터를 리턴합니다. aVD 인자는 VEE_DOUBLE 타입이고 어레이이어야 합니다. 참조값을 전달되는 인자 numPts에서 리턴되는 값은 어레이의 길이입니다.

double* vdcGetDouble1DArray( VDC aVD, int32 *numPts );

• 이 함수는 포인터의 어레이에 대한 포인터를 리턴합니다. 어레이 안의 각 포인터를 널(null) 스트링으로 종료됩니다. aVD 인자는 VEE_STRING 타입이어야 합니다. 참조값을 전달되는 인자 numPts에서 리턴되는 값은 어레이의 개수입니다.

char** vdcGetString1DArray( VDC aVD, int32 *numPts );

• 이 함수는 veeComplex 타입의 스트럭쳐의 어레이에 대한 포인터를 리턴합니다. 이 스트럭쳐는 veeData.h에서 다음과 같이 정의됩니다.:

typedef struct {double rval, ival;} veeComplex;

aVD 인자는 VEE_COMPLEX 타입이어야 합니다. 참조값으로 전달되는 인자 numPts가 리턴하는 값은 어레이의 길이입니다.

veeComplex* vdcGetComplex1DArray( VDC aVD,int32 *numPts );

• 이 함수는 veePComplex 타입의 스트럭쳐의 어레이에 대한 포인터를 리턴합니다. 이 스트럭쳐는 veeData.h에서 다음과 같이 정의됩니다.:

typedef struct {double mag, phase;} veePComplex;

aVD 인자는 VEE_PCOMPLEX 타입이어야 합니다. 참조값으로 전달되는 인자 numPts가 리턴하는 값은 어레이의 길이입니다.

veePComplex* vdcGetPComplex1DArray( VDC aVD, int32 *numPts );

• 이 함수는 vee2DCoord타입의 스트럭쳐의 어레이에 대한 포인터를 리턴합니다. 이 스트럭쳐는 veeData.h에서 다음과 같이 정의됩니다.:

typedef struct {double xval, yval;} vee2DCoord;

aVD 인자는 VEE_COORD타입이어야 합니다. 참조값으로 전달되는 인자 numPts가 리턴하는 값은 어레이의 길이입니다.

vee2DCoord* vdcGet2DCoord1DArray( VDC aVD, int32 *numPts );

• 이 함수는 vee3DCoord타입의 스트럭쳐의 어레이에 대한 포인터를 리턴합니다. 이 스트럭쳐는 veeData.h에서 다음과 같이 정의됩니다.:

typedef struct {double xval, yval, zval;} vee3DCoord;

aVD 인자는 VEE_COORD타입이어야 합니다. 참조값으로 전달되는 인자 numPts가 리턴하는 값은 어레이의 길이입니다.

vee3DCoord* vdcGet3DCoord1DArray( VDC aVD, int32 *numPts );

• 이 함수는 double 타입의 어레이에 대한 포인터를 리턴합니다. aVD 인자는 VEE_COORD타입이어야 합니다. 참조값으로 전달되는 인자 numPts가 리턴하는 값은 어레이의 좌표 튜플의 개수입니다. 참조값으로 전달되는 인자 aFieldCount가 리턴하는 값은 각 좌표 튜플에서 필드의 개수입니다. 리턴된 어레이의 길이는 numPts 과 aFieldCount의 곱입니다.

double* vdcGetCoord1DArray( VDC aVD, int32 *numPts, int16 *aFieldCount );

• 이 함수는 double 타입의 어레이에 대한 포인터를 리턴합니다. aVD 인자는 VEE_WAVEFORM 타입이어야 합니다. 참조값을 전달되는 인자 numPts, from, thru 및 mapType은 각각 어레이의 길이, 시작시간, 종료시간 및 매핑 타입을 리턴합니다.

double* vdcGetWaveform( VDC aVD, int32 *numPts, double *from, double *thru, VMT *mapType );

• 이 함수는 veePComplex타입의 스트럭쳐의 어레이에 대한 포인터를 리턴합니다. 이 스트럭쳐는 veeData.h에서 다음과 같이 정의됩니다.:

typedef struct {double mag, phase;} veePComplex;

aVD 인자는 VEE_WAVEFORM 타입이어야 합니다. 참조값을 전달되는 인자 numPts, from, thru 및 mapType은 각각 스트럭쳐의 어레이의 길이, 시작주파수, 종료주파수 및 매핑 타입을 리턴합니다.

veePComplex* vdcGetSpectrum( VDC aVD, int32 *numPts, double *from, double *thru, VMT *mapType );

이들 함수는 VDC를 받아서 데이터의 어레이에 대한 포인터를 직접 리턴하고 인자로서 어레이(또는 다른 관련 정보)의 크기를 리턴합니다.

일단 어레이가 생성되면, 다음 함수를 가지는 어레이를 체크, 확인 및 관리할 수 있습니다.

int32 vdcSetNumDims( VDC, int16 );

int16 vdcGetNumDims( VDC );

int32 vdcSetDimSizes( VDC, int32* );

int32 *vdcGetDimSizes( VDC );

int32 vdcCurNumElements( VDC );

관련정보

VEE DATA API에 관하여, Data 타입, 형태 및 매핑, 스칼라 데이터 핸들링, Enum 타입, 매핑 함수, 기타 함수.


Enum 타입

VEE 열거형 타입은 순차적으로 정리된 스트링 목록이며 다음 루틴에 의해서 관리됩니다.:

• 이 함수는 스트링-서수 쌍의 개수 만큼 빈 VEE_ENUM 스트럭쳐를 생성합니다. 에러가 발생하면 NULL VDC를 리턴합니다.

VDC vdcCreateEnumScalar( int16 numberOfPairs );

• 이 함수는 정의된 VEE ENUM 스트럭쳐에서 열거형 쌍을 배치하고, 업데이트된 스트럭쳐를 리턴합니다. 0 또는 에러코드를 리턴합니다.

int32 vdcEnumAddEnumPair( VDC aVD, char* aString, int32 aValue );

• 이 함수는 서수값 인자로 지정된 열거형 쌍을 제거합니다. 0 이나 에러코드를 리턴합니다.

int32 vdcEnumDeleteEnumPairWithOrdinal( VDC aVD, int32 anOrd );

• 이 함수는 다른 vdcEnum 루틴에 의해서 사용되는 서수 값을 설정합니다. 0 이나 에러코드를 리턴합니다.

int32 vdcSetEnumScalar( VDC aVD, int32 anOrdinal );

이 함수는 vdcSetEnumScalar()에 의해서 지정된 서수 값으로 VEE_ENUM 스트럭쳐에 스트링을 배치합니다.

int32 vdcEnumDeleteEnumPairWithStr(VDC aVD, char* aString );

이 함수는 vdcSetEnumScalar()에 의해 지정된 현재 서수 숫자 선택을 리턴합니다.

int32 vdcGetEnumOrdinal( VDC aVD );

• 이 함수는 현재의 서수 숫자와 관련된 스트링을 리턴합니다. 또는 이상이 있으면 NULL 스트링을 리턴합니다.

char* vdcGetEnumString( VDC aVD );

관련정보

VEE DATA API에 관하여, Data 타입, 형태 및 매핑, 스칼라 데이터 핸들링, Enum 타입, 매핑 함수, 기타 함수.


매핑 함수

VEE DATA API에서 어레이 매핑을 관리하는 함수는 다음과 같습니다.:

int32 vdcAtDimPutLowerLimit( VDC aVD, int16 aDim, double aValue );

// 하위 임계값의 매핑을 지정합니다.

int32 vdcAtDimPutUpperLimit( VDC aVD, int16 aDim, double aValue );

// 상위 임계값의 매핑을 지정합니다.

int32 vdcAtDimPutRange( VDC aVD, int16 aDim, double lowerLimit, double upperLimit );

// Combines "vdcAtDimPutLowerLimit" 과
// "vdcAtDimPutUpperLimit" 을 통합합니다..

int32 vdcAtDimPutMapping( VDC aVD, int16 aDim, VMT aMapping);

// 위에서 정의된 것과 같이 임계값 간의 매핑을 설정합니다.

int32 vdcMakeMappingsSame( VDC VD1, VDC VD2 );

// 동일한 방식으로 2 개의 컨테이너를 매핑합니다.

int32 vdcUnMap( VDC aVD );

// 컨테이너에서 매핑 정보를 제거합니다.

관련정보

VEE DATA API에 관하여, Data 타입, 형태 및 매핑, 스칼라 데이터 핸들링, 어레이 데이터 취급, Enum 타입, 기타 함수.


기타 함수

VEE DATA API에 다음과 같은 기타 함수가 제공됩니다.:

VEE DATA API에 다음과 같은 기타 함수가 제공됩니다.:

enum veeType vdcType( VDC aVD );

• VDC의 복사본을 생성합니다. 에러가 발생하면 NULL을 리턴합니다.

VDC vdcCopy( VDC oldVD );

• 컨테이너를 파괴하고 메모리를 릴리즈합니다. 에러가 발생하면 NULL을 리턴합니다.

VDC vdcFree( VDC aVD );

• 마지막 발생한 에러의 번호/메시지를 가져옵니다.

int16 veeGetErrorNumber( void );

char *veeGetErrorString( void );

• 에러 번호를 0 으로 리셋합니다.

void veeClearErrorNumber(void)

Borland 컴파일러를 사용하면 libvapi.lib 라이브러리는 프로그램에 링크될 수 없습니다.

관련정보

VEE DATA API에 관하여, Data 타입, 형태 및 매핑, 스칼라 데이터 핸들링, 어레이 데이터 취급, Enum 타입, 매핑 함수.


웹 기술의 개요

VEE를 사용하여 프로그램에 수집된 데이터를 전파하고, 테스트 시스템을 모니터링하고, 원격지에서 테스트 결과를 리뷰할 수 있습니다.

이 예제는 서버를 이용하여 임의의 사용자 그룹에 자료를 제공하는 웹사이트(예, 인트라넷)를 구축하는 방법을 설명합니다. 사용자는 이 사이트에 브라우저를 이용하여 접속한다고 가정합니다. 이 예제는 Microsoft 기반(Windows 2000 또는 Windows XP), MS Office, MS Internet Explorer)의 기술을 사용합니다. 그림과 같이 계측기에서 서버로, 그리고 클라이언트의 브라우저로 통신이 이루어집니다.

주의사항

이 예제는 PC 스크린 덤프를 이용합니다.

위의 그림에서, 통신은 다음과 같이 이루어집니다:

• DUT(device under test), 센서, 또는 계측기는 네트워크 I/O 레이어를 통하여 서버 어플리케이션으로 데이터를 전송합니다. 네트워크 I/O 레이어는 인터페이스 및 백본(GPIB, RS232, VXI, MXI, USB, LAN, PC Plug-in)과 I/O 프로그래밍 레이어(드라이버, VISA, SICL 등)로 구성됩니다.

• 서버 어플리케이션은 측정 데이터를 제공하는 VEE 프로그램입니다.

• 서버가 클라이언트 브라우저로 정보를 전송할 때는 HTTP (HyperText Transfer Protocol) 을 이용합니다.

HTTP는 웹에서 이용하는 TCP/IP 통신 프로토콜의 하나입니다. TCP/IP 프로토콜의 하위 레벨은 전송 층, 네트워크 층 및 물리 층으로 이루어지며, 모든 TCP/IP 어플리케이션은 클라이언트/서버 방식으로 구성됩니다. 예를 들어, 정보를 요청하는 브라우저(예, 인터넷 탐색기)는 클라이언트이며, 정보를 제공하는 컴퓨터는 서버가 됩니다.

애질런트의 서버에 정보를 요청하기 위해서는 인터넷 탐색기의 주소창에 아래와 같이 URL(Universal Resource Locator)을 입력 합니다:

http://www.agilent.com/find/vee

• 여기서, http는 정보를 전송하기 위해서 접근되는 자원의 형태를 나타냅니다.

• www.agilent.com/find/vee 는 해당 자원의 URL입니다. HTTP가 사용하는 하이퍼 텍스트 포맷은 HTML 스크립트 포맷입니다. HTML은 문서를 서로 연결시키는 방법이며, 웹페이지를 생성하는데 사용했던 최초의 프로그램 언어였습니다. 원래는 텍스트만을 사용할 수 있었으나, 지금은 음성, 동영상, 이미지 및 대화형 스크린, ActiveX 컨트롤 및 자바 애플릿까지 지원합니다.

일단 클라이언트가 정보를 요청하면, 클라이언트 브라우저에 특별한 기능이 없는 한, 클라이언트 자체의 기능만으로는 정보가 업데이트되지 않으며, 브라우저에 의해서 만 대화형 정보교환이 이루어 지지는 않습니다. 따라서, 클라이언트의 브라우저에 업데이트 내용을 표시하거나 대화형으로 정보를 교환하기 위해서 VBScript, JavaScript 또는 JScript등의 스크립트 언어를 사용합니다.

스크립트 언어는 브라우저에서 사용할 수 있는 언어로 해석됩니다. 스크립트 언어는 HTML언어의 약점인 대화형 웹페이지를 생성하여 서비스나 정보를 더욱 편리하게 제공할 수 있습니다. 스크립트 언어는 브라우저에 의해 해석되어야 하므로, 웹페이지 안에 임베딩 되어야 하고, 브라우저가 해당 스크립트를 지원해야 합니다. 따라서, 스크립트 언어는 독립적인 언어라고 할 수는 없습니다. 이것은 다음과 같이 그래픽하게 설명하였습니다.

VBScript, JavaScript 및 Jscript는 스크립트 언어입니다. VBScript는 마이크로소프트의 Visual Basic 기반입니다. JavaScript는 썬마이크로시스템즈와 일부 회사에 의해서 공동 개발되었습니다. Jscript는 JavaScript의 마이크로소프트 버전이라 할 수 있습니다.

스크립트 언어는 호스트 어플리케이션에서 실행됩니다. 호스트 어플리케이션은 일반적으로 인터넷 탐색기 또는 넷스케이프 네비게이터 등의 웹 브라우저입니다. 웹페이지의 전반적인 표시 형태는 HTML에 의해 브라우저 안에서 표시됩니다.

마이크로소프트의 COM(Component Object Model)은 ActiveX 등의 컴파일된 소프트웨어 컴포넌트에 대한 규약입니다. 일반적으로 ActiveX 컨트롤은 사용자 인터페이스 기능을 제공하며, 클라이언트 컴퓨터에서 실행되도록 작성됩니다. ActiveX 컨트롤 이전에는 OLE 컨트롤이라 불렸던 소프트웨어 컴포넌트가 제공되었으나, ActiveX 컨트롤은 이를 최적화시킨 소프트웨어 컴포넌트 규약이라 할 수 있습니다.

관련정보

콜러블 VEE ActiveX Automation 서버, Agilent VEE를 이용한 웹 모니터링, Agilent VEE 데이터를 원격 사용자에게 전달하는 방법, 웹 서버 대화상자, 원격사용자가 로컬 컴퓨터의 Agilent VEE에 접근하는 방법, Agilent VEE 웹서버 페이지 표시, 실습 13-1: Agilent VEE 웹 브라우저를 이용한 세션 실습, 웹을 통한 프로그램 접근 제한


Agilent VEE를 이용한 웹 모니터링

VEE는 HTTP를 통하여 다른 프로그램과 통신하는 웹 서버를 내장하고 있습니다. 원격지 사용자가 VEE 프로그램에 접근하여 컴퓨터에 있는 정보에 접근할 수 있도록 프로그래밍할 수 있습니다. 이 섹션에서는 VEE 데이터를 공유하는 방법과 원격사용자가 로컬 데이터에 접근하는 방법을 설명합니다.

일반적인 가이드라인 및 팁

• 원격사용자가 접근할 수 있는VEE 프로그램은 로컬 컴퓨터에서 실행되고 있어야 합니다.

• 원격사용자는 로컬 시스템에 있는 VEE 프로그램에 접근하기 위하여 VEE 프로그램을 설치할 필요가 없습니다.

• 원격사용자가 네트워크 브라우저에서 VEE로 요청을 전송하면, VEE는 원격 사용자의 브라우저에 디스플레이 할 그림을 생성합니다. 이 그림은 VEE 프로그램의 “스냅샷”이며, 편집될 수 없습니다.

• VEE 웹 서버 홈페이지에서 항목을 선택하거나, 브라우저의 URL에서 명령어를 입력하여, 원격지의 (프로그램의 진행사항을 모니터 할 수 있도록) 브라우저에 일정 시간 간격으로 VEE 프로그램이 갱신되고, 에러 메시지 정보가 표시되도록 할 수 있습니다.

관련정보

콜 러블 VEE ActiveX Automation 서버, Agilent VEE 데이터를 원격 사용자에게 전달하는 방법, 웹 서버 대화상자, 원격사용자가 로컬 컴퓨터의 Agilent VEE에 접근하는 방법, Agilent VEE 웹서버 페이지 표시, 실습 13-1: Agilent VEE 웹 브라우저를 이용한 세션 실습, 웹을 통한 프로그램 접근 제한


Agilent VEE 데이터를 원격 사용자에게 전달하는 방법

원격사용자가 로컬 시스템의 데이터에 접근할 수 있도록 VEE 웹서버를 구축하기 위해서는 일반적으로 다음의 절차를 따릅니다:

1 사용자의 시스템이 네트워크에 연결되어 있는지 확인합니다.

2 원격사용자가 로컬 시스템에 접근할 수 있도록 URL을 제공합니다. (자세한 방법은 뒤에 설명됩니다.)

3 VEE를 실행시키고 원격사용자가 접근할 프로그램을 엽니다. 원격사용자가 접근할 파일을 생성합니다.

4    File [image] Default Preferences [image] Web Server 대화상자를 선택하여 웹서버를 실행시키고 다음과 같이 설정합니다.

5 원격사용자는 Internet Explorer 또는 Netscape 등의 웹 브라우저를 실행합니다.

관련정보

콜러블 VEE ActiveX Automation 서버, Agilent VEE를 이용한 웹 모니터링, 웹 서버 대화상자, 원격사용자가 로컬 컴퓨터의 Agilent VEE에 접근하는 방법, Agilent VEE 웹서버 페이지 표시, 실습 13-1: Agilent VEE 웹 브라우저를 이용한 세션 실습, 웹을 통한 프로그램 접근 제한


웹 서버 대화상자

File [image] Default Preferences [image] Web Server를 선택하면, 다음과 같은 웹서버 대화상자가 나타납니다.

웹서버 대화상자에서 제공되는 필드의 기능은 다음과 같습니다:

필드 이름

설명

Enable Server

체크되었을 때, VEE의 내장 웹서버를 실행시킵니다. 웹서버는 작성한 프로그램을 디스플레이 하기 위한 웹 브라우저를 사용하여 로컬 시스템에 있는 VEE 프로그램을 보고, 모니터링하고, 에러 수정을 할 수 있도록 합니다.

VEE의 웹서버는 표준 HTTP를 사용합니다. Enable Server의 디폴트 값은 OFF(체크 해제 상태) 입니다. 로컬 시스템은 네트워크에 연결되어있어야 하고, VEE 프로그램이 실행 중이어야 하며, 원격사용자는 웹 브라우저를 사용해서 VEE 웹서버로 접근합니다.

Root Directory

원격사용자가 접근할 수 있는 파일의 위치를 지정합니다. 디폴트 값은 ~installDir/www 입니다. Windows 2000 또는 Windows XP 기반의 시스템에 VEE Pro 8.0이 설치 되어있을 때의 디폴트 값은 다음과 같습니다:

C:\Program Files\Agilent\VEE Pro8.0\www.

• 로컬 시스템의 웹서버가 동작하는 동안 이 폴더에 개인적인 파일이나 서브 폴더를 저장하지 않습니다.

• VEE는 웹 서버의 루트 폴더에 index.html파일을 설치합니다. 디폴트로, 이 파일은 in C:\Program Files\Agilent\VEE Pro 8.0\www\index.html 입니다. 이것은 원격사용자가 로컬 시스템으로 접속하였을 때 디스플레이 되는 VEE 웹서버 홈페이지의 디폴트 페이지가 됩니다. (이 파일은 편집할 수 있습니다.)

• 웹 파일들의 루트 폴더를 변경하는 경우에는 index.html 파일을 새로운 폴더에 옮기고 파일의 이름은 변경하지 않습니다.

HTTP Port Number

VEE 웹 브라우저의 포트번호를 지정합니다. 디폴트 포트는 80입니다. 같은 시스템에서 실행되는 VEE의 다른 인스턴스를 제공하거나 원격사용자의 접근을 제한하는 경우에는 포트번호를 변경합니다.

• HTTP 포트번호를 0~65535 사이의 임의의 숫자로 지정하여, 시스템 및 데이터 접근을 제한할 수 있습니다. (다른 애플리케이션 FTP, SMTP 등의 포트번호와 중복되지 않도록 주의합니다.)

• 80 이외의 다른 포트번호를 사용할 경우에는, 원격사용자도 같은 번호를 입력해야 합니다. 예를 들어, 포트번호로 85를 설정하였다면, 원격사용자는 http://hostname:85와 같이 입력해야 합니다. (이번 장의 뒷부분에 호스트이름의 정의에 대한 자세한 내용이 있습니다.)

Server Timeout

VEE 웹서버가 VEE 프로세스 명령을 기다리는 최대 시간을 지정합니다. 디폴트 값은 60초 입니다. VEE 프로그램이 명령을 처리하는 시간이 지정된 시간보다 오래 걸린다면, VEE는 웹서버로 Timeout 을 전송합니다.

Log File

웹서버에 의해서 처리되는 모든 HTTP 요청을 저장 할 로그파일을 지정합니다. 디폴트 위치는 C:\windows \TEMP\http.log 입니다. 로그파일이 나타나지 않는다면 Default Preferences [image] Web Server 대화상자에 설정된 위치에 로그파일을 생성합니다.

Save

지정돤 값은 변경하기 전까지는 VEE 웹 세션의 디폴트가 됩니다. 지정한 값을 현재의 세션에만 사용하기 위해서는 OK를 클릭합니다.

관련정보

콜러블 VEE ActiveX Automation 서버, Agilent VEE를 이용한 웹 모니터링, Agilent VEE 데이터를 원격 사용자에게 전달하는 방법, 원격사용자가 로컬 컴퓨터의 Agilent VEE에 접근하는 방법, Agilent VEE 웹서버 페이지 표시, 실습 13-1: Agilent VEE 웹 브라우저를 이용한 세션 실습, 웹을 통한 프로그램 접근 제한


원격사용자가 로컬 컴퓨터의 Agilent VEE에 접근하는 방법

원격지에서 로컬 시스템의 VEE 파일에 접근하기 위해서는, 원격사용자는 일반적으로 다음 절차를 따라야 합니다:

1 원격사용자의 시스템은 반드시 네트워크에 연결되어 있어야 합니다.

2 원격사용자는 반드시 Netscape 또는 Internet Explorer과 같은 네트워크 브라우저를 사용해야 합니다.

3 원격사용자는 로컬 시스템의 URL 주소를 입력해야 합니다. (다음의 설명을 원격지 사용자에게 제공합니다.)

주의사항

원격사용자는 로컬 시스템의 VEE 프로그램에 접근하기 위하여 VEE를 실행시키거나 VEE를 설치할 필요가 없습니다.

원격지 사용자는 네트워크에 접속하고 브라우저를 실행시킨 후 URL을 입력합니다. 프로그래머는 다음과 같은 기본 정보를 바탕으로 입력할 URL을 원격사용자에게 제공해야 합니다. 원격사용자가 입력할 URL은 아래의 형식을 가집니다:

http://hostname {:port}

VEE 웹서버 홈페이지를 출력합니다. 원격사용자는 로컬시스템의 VEE 프로그램을 보기 위한 선택사항을 입력할 수 있습니다.

http://hostname{:port}{/command}{?parameter}

원격사용자가 VEE 프로그램을 보려면 뷰 또는 UserFucntion을 지정합니다. 예를 들어, http://hostname/ViewMainDetail은 메인 VEE 프로그램의 디테일뷰를 디스플레이 합니다.

http://hostname{:port}{/file}

원격사용자가 보고자 하는 *.jpeg 또는 *.html 등의 저장된 파일을 지정 합니다.

주의사항

중괄호{} 안의 필드는 선택사항 입니다.

URL 주소 내의 필드는 다음과 같습니다:

원격사용자가 로컬 시스템의 VEE 프로그램에 접근할 때의 URL에는 다음의 명령과 선택사항을 입력할 수 있습니다.

필드 이름 | 설명
Hostname | (필수 항목) <computer_name>.domain.com의 형식으로 VEE가 실행중인 로컬 시스템을 인식합니다. 사용 예) http://localhost 이 명령은 로컬 시스템의 VEE 웹서버 홈페이지에 존재하는 index.html 파일을 열어서 원격사용자에게 디스플레이 합니다. 원격사용자는 VEE 웹서버 홈페이지의 메뉴를 선택하여 로컬 시스템의 VEE 프로그램을 디스플레이, 모니터링 및 문제를 해결할 수 있습니다.
Port | (선택 항목) 웹서버의 포트번호를 나타냅니다. 디폴트 값은 80 입니다. File [image] Default Preferences [image] Web Server 에서 디폴트 포트번호를 변경할 수 있습니다. 예를 들어, 포트번호를 85로 변경한 후, 원격사용자가 로컬 시스템의 VEE 프로그램에 접근하려 할 때, 원격사용자는 http://<hostname>:85 를 입력해야 합니다.
File | (선택 항목) 루트 폴더에 존재하는 폴더와(또는) 파일을 인식합니다. 폴더 내에 저장된 *.jpeg 또는 *.html 등의 파일을 원격사용자가 볼 수 있습니다. 원격사용자에게 로컬 시스템의 VEE의 파일을 제공하기 위해서는 VEE의 Default Preference 의 Web Server에 Root Directory를 지정해야 합니다.
Commands 및 Parameters | (선택 항목) VEE 웹 브라우저에서 지원되는 명령어와 파라미터를 지정합니다. 명령어와 파라미터를 사용해서 원격사용자가 브라우저를 통해 측정을 모니터링하고 문제를 해결 할 수 있도록 합니다. 사용할 수 있는 명령어과 파라미터는 다음과 같습니다.
VEE 윈도우 전체보기 | ViewVEE 사용 예) http://hostname/ViewVEE
VEE 메인 프로그램의 패널뷰 | ViewMainPanel 사용 예) http://hostname/ViewMainPanel
VEE 메인 프로그램의 디테일뷰 | ViewMainDetail 사용 예) http://hostname/ViewMainDetail
런타임시 VEE 실행 윈도우 | ViewExecWindow 사용 예) http://hostname/ViewExecWindow
패널뷰의 VEE UserFunction | http://hostname/ViewPanel? <UserFunction Name> 예를 들어, UserFunction이 AddNoise일 경우 원격사용자는 다음과 같이 입력합니다. http://hostname/ViewPanel? AddNoise
UserFunction의 디테일뷰 | http://hostname/ViewDetail? UserFunctionName 예를 들어, UserFunction이 AddNoise라면, 원격사용자는 다음과 같이 입력하면 됩니다. http://hostname/ViewPanel? AddNoise
현재 프로그램의 에러 윈도우 | http://hostname/ViewError
사용 가능한 URL 명령어 종류 출력 | ViewHelp

관련정보

콜러블 VEE ActiveX Automation 서버, Agilent VEE를 이용한 웹 모니터링, Agilent VEE 데이터를 원격 사용자에게 전달하는 방법, 웹 서버 대화상자, Agilent VEE 웹서버 페이지 표시, 실습 13-1: Agilent VEE 웹 브라우저를 이용한 세션 실습, 웹을 통한 프로그램 접근 제한


Agilent VEE 웹서버 페이지 표시

VEE를 설치하면 www 폴더에 index.html 파일이 기본적으로 생성됩니다. 이 파일은 VEE 웹서버 홈페이지를 가지고 있습니다. 원격사용자는 이 페이지를 클릭하여 로컬 시스템의 VEE 프로그램을 볼 수 있습니다. 디폴트의 VEE 웹서버 홈페이지는 다음과 같습니다. 이 파일은 시스템 개발자가 편집할 수 있습니다.

주의사항

로컬 시스템에서 이 화면을 디스플레이 하려면, VEE를 실행시키고 브라우저를 실행시킨 다음 주소창에 http://localhost를 입력하면 위의 그림과 같은 VEE 웹서버 홈페이지가 디스플레이 됩니다. 이 방법으로 원격사용자의 웹 브라우저에 출력되는 내용을 미리 확인할 수 있습니다.

원격사용자는 위의 그림과 같은 메뉴를 출력하고, 메뉴를 선택하여 VEE 프로그램의 다양한 기능을 사용할 수 있습니다. 원격사용자가 Main Detail을 선택하여 메인 VEE 프로그램의 DetailView를 보는 것과 웹 브라우저의 주소창에 http://hostname/ViewMainDetail를 입력하여 출력되는 화면은 동일합니다.

관련정보

콜러블 VEE ActiveX Automation 서버, Agilent VEE를 이용한 웹 모니터링, Agilent VEE 데이터를 원격 사용자에게 전달하는 방법, 웹 서버 대화상자, 원격사용자가 로컬 컴퓨터의 Agilent VEE에 접근하는 방법, 실습 13-1: Agilent VEE 웹 브라우저를 이용한 세션 실습, 웹을 통한 프로그램 접근 제한


웹을 통한 프로그램 접근 제한

웹을 통해서 VEE 프로그램을 제공하더라도, 프로그램의 특정 부분을 제공하지 않도록 설정할 수 있습니다. 현재 VEE 프로그램을 제공하는 URL을 클라이언트가 알고 있다고 하더라도, 특정 사용자만이 해당 VEE 프로그램이나 폴더의 파일에 접근하도록 허용할 수 있습니다.

웹 상에서 원격 사용자가 VEE 프로그램의 특정 부분에 접근하지 못하도록 하기 위해서는 다음의 3 가지 방법을 사용합니다:

Defalut Preference [image] Web Server 대화상자에서 HTTP Port Number를 변경합니다. 이 포트 번호를 알고 있는 원격 사용자만 프로그램에 접근할 수 있습니다.

-또는-

VEE 프로그램의 보안처리된 런타임 버전을 생성합니다. 이 경우에는 VEE 프로그램의 디테일뷰가 생성되지 않으므로, 모든 사용자가 해당 VEE 프로그램의 디테일뷰를 볼 수 없습니다. 자세한 정보는, 런타임 버전 생성을 참조하십시오.

-또는-

디스에이블 시키고자 하는 특정 이름을 가진 명령어를 사용하여 HTML 파일을 생성하고, VEE의 www 폴더에 저장합니다. 브라우저는 VEE에 접근하기 전에 항상 *.html 파일에 접근합니다. 이 때, 원격 사용자의 요청을 가로채서, 적당한 경고문구를 HTML 페이지로 출력하면 됩니다. (이 파일 이름을 index.html 파일에서 링크시킵니다.)

예를 들어서, 어떤 VEE 프로그램의 디테일 뷰에 원격사용자가 접근하는 것을 방지하기 위해서는, ViewMainDetail.html 파일을 생성하여 www 폴더에 저장합니다. ViewMainDetail.html에는 사용자에게 접근이 제한되었음을 알리는 내용을 작성합니다.

원격사용자가 VEE 웹서버 홈페이지에서 Main Detail을 선택하거나, 브라우저의 URL 창에 ViewMainDetail 옵션을 사용하더라도, 브라우저에 해당 메인 프로그램의 디테일뷰가 출력되지 않으며, 대신 ViewMainDetail.html 파일에 작성한 내용이 출력됩니다. 다음 그림은 사용자에게 접근이 제한되었음을 알리는 HTML 파일의 출력 예제입니다.

주의사항

여기서 사용하는 html 파일의 파일이름은 VEE 웹 명령의 파일이름이어야 하며, 이 html 파일은 www 폴더에 저장되어 있어야 합니다. (이 웹 명령어 파일이름은 index.html 파일에서 링크됩니다.)

html 파일을, VEE 프로그램을 패스워드로 보호하여 인가된 사용자만 접근하는 등의 다른 용도로 사용할 수도 있습니다. 다음 그림은 VEE 프로그램을 패스워드로 보호하는 html 예제입니다.

관련정보

콜러블 VEE ActiveX Automation 서버, Agilent VEE를 이용한 웹 모니터링, Agilent VEE 데이터를 원격 사용자에게 전달하는 방법, 웹 서버 대화상자, 원격사용자가 로컬 컴퓨터의 Agilent VEE에 접근하는 방법, Agilent VEE 웹서버 페이지 표시, 실습 13-1: Agilent VEE 웹 브라우저를 이용한 세션 실습


MATLAB 스크립트 개괄

MATLAB 스크립트 개요

MATLAB® 스크립트는 MathWorks사의 표준 MATLAB의 일부 기능을 제공합니다. 고급 수학연산, 데이터 분석 및 공학그래프와 같은 MATLAB 기능의 중요 기능을 직접 사용할 수 있습니다. Agilent VEE 프로그램에서 MATLAB 스크립트 오브젝트를 쉽게 추가할 수 있습니다.

MATLAB 스크립트는 다음과 같이 수 백개의 함수를 제공합니다:

• 데이터분석 및 시각화

• 다음과 같은 숫자의 계산:

• 선형대수 및 행렬계산

• 푸리에 및 통계 분석

• 미분방정식 풀기

• 삼각함수 및 기본적인 수학 연산

• 다음과 같은 과학 및 공학그래프:

• 2-D, 3-D 디스플레이, 삼각형으로 분할되거나 그리드된 데이터 포함

• 스칼라 및 벡터데이터의 볼륨 시각화

• Quiver, ribbon, scatter, bar, pie, 및 stem 그래프 디스플레이

시그날 프로세싱 툴박스

VEE용 MATLAB 스크립트는 필터디자인과 스펙트럼 분석기술을 기반으로 만들어진 MATLAB 시그날 프로세싱 툴박스의 일부 기능을 제공합니다. 다음과 같은 함수가 제공됩니다:

• 신호 및 선형시스템 모델

• 아날로그 필터 디자인

• FIR 및 IIR 디지탈 필터 디자인, 분석, 및 구현

• FFT 와 DCT 같은 변환

• 스펙트럼 추정 및 통계 신호처리

• 매개변수 시-계열 모델링

• 파형 생성

정품 MATLAB에 대하여

MATLAB은 숫자 계산, 고급 그래픽과 시각화 및 고-차원 프로그래밍 언어를 병합한 통합된 기술의 컴퓨팅 환경입니다. MATLAB은 다음과 같은 수 백개의 함수를 제공합니다:

• 데이터 분석 및 시각화

• 숫자 및 부호 계산

• 공학 및 과학그래픽

• 모델링, 시뮬레이션 및 프로토타이핑

• 프로그래밍, 어플리케이션 개발 및 GUI 디자인

MATLAB은 신호 및 이미지 프로세싱, 컨트롤 시스템 디자인, 회계 공학 및 의학 연구를 포함하는 다양한 어플리케이션 영역에 사용됩니다. 개방형 아키텍쳐로 설계되어 있으므로 MATLAB과 데이터를 시험하고 사전에 고유한 툴을 생성하는 제품을 쉽게 사용할 수 있습니다.

VEE를 사용하면, 데이터 분석, 시각화 및 모델링을 수반하는 어플리케이션에 대하여 MATLAB의 강력한 기능과 시그날 프로세싱 툴박스를 통합할 수 있습니다. 이 제품을 정품 버전으로 업그레이드 하면, 사용자-정의 함수(M-파일)를 생성하거나, MATLAB 명령어 윈도우, MATLAB 에디터/디버거 및 신호처리 GUI를 제공하는 등의 VEE 어플리케이션에서 다양한 범위의 MATLAB 기능을 추가 사용할 수 있습니다.

MATLAB에 대한 추가정보

MATLAB 스크립트 오브젝트를 사용하는 자세한 정보는 MATLAB Script Help Desk를 참조하십시오. VEE에서 Help [image] MATLAB Script [image] Help Desk를 선택합니다. 웹 브라우저에 MATLAB Help Desk가 나타납니다.

MathWorks 사의 MATLAB, MATLAB 툴박스 및 다른 제품에 대한 자세한 정보는, www.mathworks.com 를 참조하거나 508-647-7000로 전화 하십시오.

정보에 대한 다른 소오스는 다음과 같습니다:

• 완벽한 MATLAB 문서들: www.mathworks.com/access/helpdesk/help/helpdesk.shtml

• MATLAB 제품 정보: www.mathworks.com/products

• MATLAB 기술 지원: www.mathworks.com/support

• MathWorks 쇼핑몰: www.mathworks.com/store

• MathWorks 홈페이지: www.mathworks.com

• 유즈넷 뉴스그룹: comp.soft-sys.matlab 뉴스 그룹은 MATLAB을 사용하거나 MATLAB 과 관련 제품에 대한 질문 또는 코멘트를 가진 전문가 및 학생을 위한 포럼을 제공합니다.

관련정보

Agilent VEE에 내장된 MATLAB 스크립트 MATLAB® 스크립트


Agilent VEE에 내장된 MATLAB 스크립트

VEE는 MATLAB 스크립트 오브젝트를 내장하고 있습니다. VEE 프로그램에 MATLAB의 수학 함수를 사용하여 VEE에서 MATLAB 스크립트 엔진으로 데이터를 넘겨주고, 데이터를 받을 수 있습니다.

주의사항

VEE에서 제공하는 MATLAB 이외의 다른 MATLAB이 이미 설치되어 있으면, VEE는 내장된 MATLAB 스크립트 대신 사용자의 PC에 먼저 설치된 MATLAB을 사용합니다. 그러나, 미리 설치된 MATLAB에 시그널 프로세싱 툴박스도 없으며, VEE에 내장된 MATLAB 스크립트 엔진도 사용하지 않는다면, 사용자는 VEE를 이용하여 이러한 함수를 사용할 수 없게 됩니다. 따라서 이러한 경우에는 VEE에 내장된 MATLAB을 등록하여 사용해야 하며, 등록 <VEE_installation_dir>\MATLAB\bin으로 이동하여 MATLAB.exe /regserver를 실행하면 됩니다.

MATLAB 스크립트 오브젝트를 사용해야 하는 경우:

• VEE가 생성한 데이터를 MATLAB에서 사용할 때

• MATLAB 스크립트 오브젝트가 리턴한 결과를 VEE가 사용할 때

• MATLAB의 시그널 프로세싱 툴박스 기능을 사용하여 정교한 필터를 디자인하고 구현할 때

• 2-D 또는 3-D 그래프를 이용하여 데이터를 시각화할 때

다음 그림은 VEE 프로그램에서 MATLAB 스크립트 오브젝트를 사용하는 예제입니다. MATLAB 스크립트 프로그램이 실행하여 생성된 결과를 AlphaNumeric 오브젝트에 출력하고 있습니다.

프로그램을 실행하면 다음과 같은 그래프가 생성됩니다.

VEE 프로그램에 MATLAB 스크립트 오브젝트가 포함되면, VEE는 MATLAB 스크립트 엔진을 호출하여 MATLAB 스크립트 오브젝트를 실행합니다. 정보는 VEE에서 MATLAB으로 전달되고 다시 돌아옵니다. MATLAB 실행 시 주의해야 할 사항은 아래와 같습니다.

• VEE 데이터 타입의 일부 종류만을 MATLAB 스크립트 입력에 사용할 수 있습니다. 이에 대한 자세한 사항은 Working with Data Types 및 MATLAB Script를 참조하십시오.


.NET이란 무엇인가?

Visual Studio .NET은 마이크로소프트사의 가장 최신의 개발 플랫폼입니다. Visual Studio 6 등의 이전 제품과는 다르게, .NET은 데스크탑 프로그래머와 웹프로그래머의 요구사항에 중점을 두고 있습니다. VEE관점에서의 .NET의 장점은 .NET 프레임워크의 무료 런타임입니다. .NET 프레임워크는 VEE 7.0 및 이상의 버전에서 VEE와 함께 배포됩니다. 여러 개의 새로운 기능을 통합한 기능을 제공하게 되었습니다.

VEE을 위한 .NET 프레임워크의 주요 기능과 장점은 FCL(Framework class Library)입니다. FCL은 VEE 프로그래머에게 특별한 가치를 제공합니다. Function & Object Browser를 통해서 수 백개의 새로운 속성과 메서드를 추가 사용할 수 있습니다. 이들 새로운 기능을 사용하여 다음과 같은 기능을 프로그램할 수 있습니다.: 파일 및 폴더 관리, 스트링 관리, 운영시스템 환경 관련, 웹페이지 관리, 운영시스템 프로세스에의 접근, 레지스트리 읽기, 등.


.NET 용어정의

다음은 .NET을 사용하는데 필요한 기본적인 용어 설명입니다.

Assembly(어셈블리) – 컴포넌트는 어셈블리로 패키지 됩니다. 닷넷 어플리케이션의 어셈블리는 재활용, 버전관리 및 자가 설명기능을 가진 빌딩블록입니다. 가장 간단한 어셈블리는 배포 및 버전관리에 필요한 모든 정보를 가진 단일 실행파일입니다. 각각의 어셈블리는 닷넷 프레임워크의 기초적인 빌딩블록이며, 실행파일(.exe) 이나 DLL(.dll) 파일의 형태입니다.

Primary Interop Assembly (PIA) - PIA 는 COM 으로 구현된 타입의 타입정의(메타데이터로서)를 가지는 제조사가 제공하는 어셈블리입니다. 동일한 PIA 는 존재할 수 없으며, PIA는 COM 타입 라이브러리의 제공자에 의해서 서명되어야 합니다.

Namespace(네임스페이스) – 닷넷 프레임워크 타입은 점(dot)을 이용하여 계층구조와 이름을 표시합니다. 이 표시방법을 사용하면 서로 관련된 타입을 네임스페이스 그룹으로 묶어서 이들 타입을 더욱 쉽게 검색하고 참조할 수 있습니다. 전체 이름의 맨 앞부분부터 가장 오른쪽의 점까지가 네임스페이스 이름이며, 나머지 부분이 타입이름입니다. 예를 들어, System.Collections.ArrayList 에서 ArrayList 가 타입이며, System.Collections 는 ArrayList 가 속한 네임스페이스입니다. System.Collections 의 타입은 오브젝트의 콜렉션을 관리하는데 사용합니다.(네스팅된 네임스페이스는 이 규칙이 적용되지 않습니다. 자세한 정보는 MSDN 문서를 참조하십시오.)

Reference(참조) – 어셈블리를 이용하려면, 참조를 추가해야 합니다.

Shared Member(공유멤버) – 공유멤버는 클래스의 모든 인스턴스가 공유하는 속성, 프로시져 및 필드입니다. 다른 프로그래밍 언어에서는 이것들을 스태틱 멤버라고 부르기도 합니다.

공유 필드 및 속성(스태틱 멤버)은 인스턴스를 생성하지 않고 클래스 이름만 알면 즉시 사용할 수 있습니다. 일반 필드와 속성은 생성되는 인스턴스 마다 독립적으로 사용합니다. 각 인스턴스의 필드나 속성의 값을 변경해도 다른 인스턴스의 필드나 속성의 값에는 영향을 미치지 않습니다. 그러나 공유 멤버의 값을 변경하면, 해당 클래스의 모든 인스턴스와 관련된 모든 인스턴스의 값도 변경됩니다. 그러므로, 공유필드 및 공유속성은 클래스의 인스턴스에서만 접근할 수 있는 전역변수처럼 사용할 수 있습니다.

Class(클래스) – 오브젝트 기반 프로그래밍에서 클래스는 오브젝트가 실행(메서드, 이벤트 또는 속성)할 수 있는 동작과, 오브젝트의 상태(필드)를 저장하는 값을 정의합니다. 클래스는 일반적으로 정의와 구현을 포함하더라도, 구현되지 않은 하나 이상의 멤버를 가질 수 있습니다.

클래스의 인스턴스는 오브젝트입니다. 오브젝트의 메서드를 호출하거나, 속성, 이벤트 또는 필드에 접근하여 오브젝트의 기능을 사용할 수 있습니다.

Instance Member(인스턴스 멤버) – 인스턴스 멤버는 클래스의 특정 인스턴스에 종속되어 있습니다. 인스턴스 멤버의 값을 변경하면 그것과 관련된 오브젝트의 값에는 영향을 미치지만 다른 오브젝트에는 영향을 미치지 않습니다.


VEE 와 the .NET Framework

VEE 와 .NET Framework

.NET 프레임워크가 어떻게 VEE와 상호작용하는지 검토하기 전에 MSDN의 “.NET Framework – getting started”를 참조하여 .NET 프레임워크의 개요를 검토하시기 바랍니다.

사용법

Device 메뉴에 .NET Assembly References 메뉴가 제공됩니다. 이 메뉴를 통해서 어셈블리 참조를 선택합니다. 이 메뉴를 선택하면, 다음 그림과 같은 대화상자가 표시됩니다.:

많은 종류의 어셈블리가 제공됩니다. 이들 어셈블리는 VEE 홈 폴더나 .NET 프레임워크가 설치된 폴더에서 제공됩니다. 이들 폴더에서 제공되지 않는 어셈블리를 이요해야 하는 경우에는 Browse 버튼을 클릭하여 해당 어셈블리를 찾아야 합니다. 네임스페이스 임포트용 체크박스도 제공됩니다. Importing a namespace는 C# 코드 또는 비주얼 베이직 코드를 사용하는 것과 같은 의미입니다.

위 그림에서는 가장 일반적으로 사용되는 어셈블리, mscorlib,를 선택했습니다. 이 어셈블리를 선택하십시오, mscorlib는 파일시스템 관리, 콜렉션관리 및 데이터타입 변환등 VEE에서 사용할 수 있는 많은 함수를 은익화하고 있습니다. 다음으로 많이 사용하는 어셈블리가 System입니다. 이 System 어셈블리는 프로세스관리, 웹요청과 응답 및 일반적인 표현식에 관한 기능을 제공합니다.

COM 탭도 제공됩니다. 이 탭에는 현재 사용중인 컴퓨터에 등록된 모든 COM 타입 라이브러리가 표시됩니다. 사실, 여기서 표시되는 목록은 ActiveX automation references 대화상자에서 표시되는 타입라이브러리의 목록과 거의 일치합니다.

이들 중에서 어떤 것을 사용해야 하는지 어떻게 판단합니까? 다음의 상황에서는 ActiveX를 사용해야 합니다:

  • 라이브러리가 제공되면

  • 완전한 기능을 제공하면

  • PIA(Primary Interop Assembly)가 없으면

이것을,.NET Interop, 사용하면 다른 하나의 층을 추가할 필요가 없습니다. 다음의 상황에서는 .NET/COM interop를 사용해야 합니다.:

  • ActiveX에서 제공되는 라이브러리가 없을 때

  • 완전한 기능이 제공되지 않을 때

  • COM 라이브러리가 PIA를 제공할 때

예를 들어: Function & Object Browser의 ActiveX Objects 목록에서 모든 IVI-COM 드라이버 인터페이스가 제공되지는 않습니다. 그러나, .NET interop 에서는 모든 IVI 드라이버 인터페이스를 조회할 수 있습니다.

.NET Assembly References 메뉴옵션을 사용하고 목록에서 COM 타입 라이브러리를 선택하면, VEE는 COM 타입 라이브러리를 .NET 어셈블리로 임포트하려 합니다. PIA가 있으면, VEE는 그것을 사용합니다. PIA가 없으면 VEE는 프로그램이 저장된 폴더에 Interop 어셈블리를 생성합니다.(또는 COM 타입 라이브러리가 다른 타입 라이브러리를 참조하면 여러 개의 어셈블리를) VEE가 Interop 어셈블리를 얻으면, 그 어셈블리에서 모든 타입 정보를 획득합니다.

주의

VEE가 생성된 Interop 어셈블리를 임시 폴더에서 VEE 프로그램 폴더로 복사하는 오버헤드를 줄이기 위해서, VEE 프로그램을 먼저 저장하십시오. 생성된 Interop 어셈블리는 VEE 프로그램 폴더에 직접 저장됩니다.

COM 탭을 선택하십시오. 이 탭을 선택하면 VEE가 COM 타입 라이브러리용 레지스트리를 스캔하기 위해서 약간의 시간이 소요됩니다. 이제는 마이크로소프트 ActiveX Plugin을 선택하십시오.

임포트할 네임스페이스를 선택할 차례입니다. 이 단계는 옵션사항이므로 선택하지 않아도 됩니다. 그러나 Interop.ActiveXPlugin, System, 및 System.IO 를 선택하십시오.

주의

.NET Assembly References 대화상자에서 체크상자를 체크되어 있으면 Import .NET Namespaces 대화상자가 매번 표시됩니다.

Device 메뉴에서 Function & Object Browser를 열고, Type 창에서 .NET/CLR Objects를 선택합니다. 이전에 선택한 내용에 따라서 Assembly 창의 내용이 어떻게 변경되는지 확인하십시오.

Namespace 창에 표시된 모든 네임스페이스가 표시됩니다. 모든 타입은 Type 창에 표시되고 각 타입의 모든 멤버는 Members 창에 표시됩니다. Members에는 생성자, 필드, 속성, 메서드 및 열거자등이 포함됩니다.

VEE에서 ActiveX를 사용하였으면, .NET 클래스 멤버를 선택할 때와 비슷한 과정을 거치게 됩니다. 이들의 차이점은 크기 않지만 다음과 같은 내용에 차이가 있습니다.:

1. COM은 공유(스태틱) 멤버를 가지지 않습니다. .NET 멤버가 스태틱 멤버이면, 도움말 영역에 STATIC 키워드가 표시됩니다. 스태틱 아이콘( [image]) 도 멤버아이콘의 옆에 표시됩니다. 스태틱 멤버는, 오브젝트 인스턴스가 아닌, 클래스에서 호출해야 합니다. 구문에 익숙해지기 위해서는 Function & Object Browser를 사용하십시오.

2. 인스턴스 오브젝트 변수의 첫 문자는 영문소문자로 시작해야 합니다. 이것이 인스턴스 멤버를 사용하는 시작이 됩니다. 또한 변수를 선언하고 초기화하지 않았으면, 해당 변수를 선언하고 초기화해야 함을 의미합니다.

3. .NET 오브젝트를 생성하기 위해서는 멤버 목록에서 생성자(생성자와 메서드는 [image] 동일한 아이콘을 사용합니다.)를 선택합니다. 이전 그림에서처럼, Create Instance 버튼을 사용할 수 있습니다. 이 버튼을 클릭하여 새로운 .NET 오브젝트를 생성하는 포뮬러 템플릿을 생성합니다. 다음 그림에서 dateTime 출력핀을 .NET 오브젝트를 입력으로 사용해야 하는 오브젝트의 입력핀에 연결합니다.

4. .NET 에서 Enums ( [image])은 강하게 타입(strongly typed)되어서, ActiveX 오브젝트에서 했던 것처럼, Enum 에 대해서 정수상수를 대입할 필요 없습니다. 전체 Enum 이름을 입력해야 하거나(네임스페이스를 임포트 했으면, 네임스페이스는 입력할 필요없습니다.) Create Formula 버튼을 사용하고 일부 내용을 저장해야 합니다. 관련 예제는 examples\dotnet 폴더의 예제를 참조하십시오.

관련정보

VEE Pro에 네임스페이스 임포트하기, .Net Operation Builder, Microsoft .NET 예제


VEE Pro에 네임스페이스 임포트하기

Namespaces는 정적 멤버(member)나 열거자(enumerator)용 템플릿을 생성하여 타입을 지정하므로, 타입 접두사를 사용할 필요가 없습니다.

사용법

네임스페이스를 임포트하는 것은 비주얼베이직에서 Imports 구문을 사용하는 것이나 C#에서 using 구문을 사용하는 것과 동일합니다. VEE는 네임스페이스를 2가지 방법으로 임포트할 수 있습니다.

첫 번째 방법은 다음 그림에서와 같이 .NET Assembly References 메뉴에 있는 체크박스를 사용하는 것입니다:

두 번째 방법은 Devices 메뉴에서 Import .NET Namespaces 옵션을 선택하는 것입니다. .NET 네임스페이스의 전체 리스트가 표시되고, 체크박스를 선택하여 특정 네임스페이스를 임포트합니다.

선택한 assembly가 네임스페이스를 가지고 있지 않으면, 리스트는 비어 있게 됩니다.

특정 클래스에 대한 네임스페이스를 임포트하지 않았으면, VEE에서 제공하는 Function & Object Browser의 Create Instance 버튼을 사용하여 해당 클래스의 정적 멤버와 열거자를 자동으로 지정할 수 있습니다. 이들 정적 멤버와 열거자의 전체 경로를 표시해야 하므로, 시각적으로 매우 큰 오브젝트가 생성됩니다.

사용예

DateTime.vee 또는 FileInfo.vee를 참조하십시오.


.NET Operation Builder 오브젝트

.NET Operation Builder는 VEE 프로그램에서 사용하고자 하는 .NET 타입을 선택할 수있습니다.

사용법

다음 그림과 같이 .NET Operation Builder는 .NET 네임스페이스 및 타입, 메서드, 프로퍼티, 해당 필드를 선택할 수 있습니다.

.NET Operation Builder를 사용하기 위해서는, 먼저 Device .NET Assembly References을 사용하여 작업하고자 하는 .NET 어셈블리를 선택합니다. .NET Operation Builder 대화상자에 해당 어셈블리(여기서는 mscorlib)가 디스플레이 됩니다. 사용하고자 하는 네임스페이스(여기서는 System.IO)를 선택합니다. .NET Operation Builder를 사용하여 클래스(여기서는 Directory), 열거자 또는 인터페이스를 지정하여 필요한 타입을 선택합니다.

사용하고자 하는 타입을 빨리 찾을 수 있는 방법은 대화상자에 있는 Find 툴바 버튼을 클릭하는 것입니다. Find 대화상자가 추가로 열립니다. 찾고자 하는 타입 이름이나 타입 이름의 서브 스트링을 입력하고 Enter 키를 누릅니다. VEE는 검색 결과를 디스플레이 합니다. 리스트 중의 하나를 더블 클릭하면 왼쪽에 있는 트리구조에 있는 해당 타입으로 점프합니다.

작업 하고자 하는 타입을 선택하고 나면, VEE 오브젝트가 VEE 작업영역에 배치되어 오퍼레이션을 추가할 수 있도록 합니다. .NET 명령어 선택에서 설명한 바와 같이 더블 클릭하면, Directory 클래스에서 멤버를 선택하는 화면이 나타납니다.

관련정보

.NET 명령어 선택, .NET Operation 편집 및 .NET Control Host

오브젝트 위치

Devices [image] .NET Operation Builder


.NET 명령어 선택

일단 사용할 타입을 선택하면, VEE 오브젝트가 표시됩니다. VEE 오브젝트를 작업영역에 배치하고, 더블클릭하면 아래 그림과 같이 표시됩니다. Directory 클래스에서 명령을 선택하는 창이 표시됩니다.

이 대화상자의 상단에 3 개의 아이콘이 있습니다. Create 아이콘은 사용할 수 있는 CreateInstance 생성자만 화면에 표시합니다. 생성자는 선택한 타입의 새로운 인스턴스를 생성하는데 사용합니다. Declared Only 아이콘은 이 타입으로 선언된 멤버만 표시합니다. All 아이콘은 이 타입으로 선언되거나 이것의 부모 타입에서 상속된 모든 멤버를 표시합니다.

CreateDirectory 멤버를 선택하십시오.

일단 CreateDirectory 멤버를 선택하면, 그것을 설정해야 합니다. .NET Operation 편집의 2 개의 그림에서, 그 메서드의 설정탭을 표시하고 있습니다.

오브젝트 위치

Devices [image] .NET Operation Builder


.NET Operation 편집

.NET operation을 선택하였으면, 이 .NET operation을 사용할 수 있도록 추가 정보를 제공하기 위하여 이것을 편집해야 합니다.

사용법

.NET Operation Builder 및 .NET 명령어 선택에서 설명한 내용을 완료한 후에는, CreateDirectory operation을 설정해야 합니다. 다음 두개의 그림에서 메서드를 설정하는 탭을 볼 수 있습니다. Edit Parameters 탭에서는 새로운 디렉토리 경로를 입력합니다. 주의 : \ 는 특수문자입니다. 경로를 구분하기 위하여\\ 또는 / 를 사용합니다. 예를 들어, C:\\Program Files/Agilent. Tab키를 누르면 VEE가 생성하는 코드를 볼 수 있습니다.

Configure Terminals 탭에서는 변수이름을 설정합니다. VEE에서 디폴트로 생성한 이름과 다르게 이름을 지정할 수도 있으며, VEE가 오브젝트에 터미날을 추가해야 하는가 하지 안는가도 선택할 수 있습니다. 일반적으로 이 설정은 변경할 필요가 없습니다.

.NET Operation Builder 및 .NET 명령어 선택에서 설명한 모든 단계를 따라 했다면, OK를 선택하고;프로그램을 실행합니다;디렉토리가 생성됩니다; 이렇게 간단히 .NET 명령어를 작성하고 실행할 수 있습니다.

또한, .NET Operation Builder에 있는 operation을 더블클릭할 수도 있습니다. 이것은 Edit Operation Dialog 대화상자를 불러오고, 기존에 생성한 operation을 수정할 수 있게 합니다.

관련정보

.NET 명령어 선택 또는 .NET Operation Builder

오브젝트 위치

Devices [image] .NET Operation Builder


.NET Control Host

VEE 작업영역에 .NET 컨트롤을 추가하는 것을 호스팅하는 오브젝트

사용법

.NET 프레임워크에는 많은 표준 컨트롤과 함께 제공되며, 제 3의 회사가 제공하는 컨트롤을 사용할 수도 있습니다. 표준 컨트롤을 사용하기 위해서는, Device Windows Forms Controls 메뉴에서 필요한 컨트롤을 클릭하면 됩니다.

제 3의 회사가 제공하는 컨트롤을 선택해야 하는 경우에는, Device [image] Additional .NET Controls를 클릭하십시오. .NET Assembly References 대화상자에서 제 3의 회사의 컨트롤을 사용하기 위한 어셈블리를 선택하였으면, 이들은 자동적으로 메뉴에 표시됩니다.

.NET Control Host 는 .NET 컨트롤용 컨테이너로 사용됩니다. 작업영역에 컨트롤을 추가할 때, VEE는 컨테이너를 생성하여 다른 VEE 오브젝트에 접근할 때와 비슷한 방식으로 컨트롤에 접근할 수 있습니다. 이 컨테이너에서는 컨트롤 개발자가 작성한 컨트롤의 특정 속성에 접근할 수 있습니다.

컨트롤이 작업영역에 배치되면, 이 컨트롤의 타이틀바에는 타이틀과 변수이름이 표시됩니다. 이 오브젝트에는 다른 오브젝트와 연결할 수 있는 핀이 없습니다. 그것의 속성을 가져오거나 설정하며, 메서드를 호출하여 컨트롤을 관리하는 변수이름을 참조하는 표현식을 사용해야 합니다. Formula 오브젝트에서 이들 표현식을 생성하기 위해서 Function & Object Browser (Device Function & Object Browser) 를 이용할 수도 있습니다. 그러나 .NET Operation Builder 오브젝트를 사용하면 이 과정이 훨씬 간단합니다. 단지 컨트롤의 컨텍스트 메뉴에서 “Generate .NET Operation Builder”를 실행합니다. 자세한 내용은 .NET Operation Builder를 참조하십시오. 변수의 이름은 필수적으로 해당 컨트롤의 선언된 변수의 이름이어야 합니다. 컨트롤의 변수가 이미 초기화되었다는 사실을 제외하고는 해당 컨트롤의 선언된 변수이름은 Declare Variable 오브젝트를 이용하여 생성한 변수와 매우 유사합니다. 사용범위는 local-to-context 이므로, 디폴트 상태에서는, 해당 변수의 이름을 그것이 사용되고 있는 컨텍스트로 제한됩니다. .NET 컨트롤을 전역으로 사용하는 내용에 대해서는 아래 주의사항을 참조하십시오.

오브젝트 메뉴

  • Help - 컨테이너 오브젝트를 설명하는 VEE 도움말을 띠웁니다.

  • Properties - VEE 컨테이너 오브젝트의 타이틀, 변수이름, 어셈블리 이름 및 .NET 타입등의 속성에 대한 접근을 제공합니다.

  • Control Properties - 해당 컨트롤의 속성창을 띠웁니다. 이 속성창에는 해당 컨트롤의 모든 속성이 표시됩니다. 각각의 컨트롤은 서로 다른 속성을 가집니다. 컨트롤 속성에 편집한 내용은 실행취소 할 수 없습니다. 디폴트 값으로 돌아가기 위해서는 해당 컨트롤을 삭제하고 재생성하는 것이 빠릅니다. 일부 컨트롤의 속성은 VEE 프로그램으로 직렬화(저장된)될 수 없으며, 이들 속성에 대해서는 경고 메시지가 표시됩니다.

  • Edit Event Handler...- 해당 컨트롤에 대해서 이벤트핸들러 UserFunctions이 작성되었으면 Edit Event Handler 대화상자를 엽니다.

  • Create Event Handler...- Create Event Handler UserFunction 브라우저를 엽니다. 이 브라우저에서 컨트롤이 생성하는 이벤트를 처리하는 사용자함수를 생성할 수 있습니다. 브라우저의 멤버 영역에서 표시되는 각 이벤트에 대한 이벤트핸들러를 생성할 수 있습니다.

  • Generate .NET Operation Builder - 컨트롤의 이 타입에 대한 .NET Operation Builder를 생성합니다.

속성(컨테이너 오브젝트)

Title - 컨테이너 오브젝트의 현재 타이틀을 표시하고 그것을 편집할 수 있습니다.

Name - 컨트롤의 현재 지역변수이름을 표시하고 그것을 편집할 수 있습니다. 이것을 해당 컨트롤을 local-to-context 변수로 선언하고 초기화합니다.

.NET Type - 컨트롤의 타입

Assembly - 컨트롤을 가지고 있는 어셈블리

주의사항

.NET 기능을 사용하기 위해서는 VEE6 또는 이상의 실행모드로 설정해야 합니다.(Default Preferences) .NET 컨트롤은 개별제품으로 제공되거나 큰 어플리케이션의 일부분으로 설치될 수 있습니다.

VEE는 모든 .NET 컨트롤을 지원하지는 않습니다. 컨트롤이 VEE와 호환되지 않으면, 컨트롤을 프로그램 안에 추가하거나 사용할 때 에러가 발생할 수 있습니다. 아래와 같이 명확하지 않은 문제들도 있습니다:

  1. Device [image] Windows Forms Controls 에서 제공되는 모든 컨트롤을 VEE 작업영역에서 직접 사용하는 것이 적합하지는 않습니다. 일부 컨트롤은 다른 컨트롤의 내부에 포함되어야 하기도 합니다. 예를 들어, Splitter 는 Panel 과 같은 컨트롤의 내부에서 사용되어야 합니다. 이 경우에는, 컨테이너 컨트롤만 VEE 작업영역에 배치해야 하고, 자식 컨트롤은 Formula 또는 .NET Operation Builder를 이용해서 컨테이너 컨트롤에 추가해야 합니다. Splitter.vee 에서 이에 대한 예제가 제공됩니다.

  2. 2. ProcessDialogKey, ProcessDialogChar, ProcessCmdKey 와 같은 일부 컨트롤 메서드는 컨트롤이 Windows Form 어플리케이션 안에서 호스트될 때만 호출될 수 있습니다. 그러나 VEE 어플리케이션은 Windows Form 어플리케이션이 아닙니다. 이들 메서드를 구현해야 하는 경우는 많지 않지만, 꼭 구현해야 하는 경우에는, VEE 프로그램은 해당 컨트롤의 모든 기능을 제공하지 않으므로, 예기치 못한 결과가 발생할 수도 있습니다.

  3. 3. Control Properties 대화상자를 통해서 컨트롤 속성을 변경할 때, 속성은 VEE 프로그램 안으로 직렬화(저장되는)됩니다. VEE는 직렬화 순서를 명확하게 제어하지 않습니다. 그래서 강하게 커플링된 .NET 컨트롤 속성의 경우에는 A 속성을 변경하면 B 속성도 함께 변경됩니다. 이 경우에는 저장상태에서 컨트롤을 복구할 때 정확히 예측한 결과는 얻을 수 없습니다. 이 예제에서는 B가 A 보다 먼저 저장되었는가/로딩되었는가에 따라서 다른 결과를 얻습니다. 이러한 상황이 일반적이지는 않지만 직렬화 순서에 따라 다른 결과가 발생하는 것을 방지하기 위해서는 Formula 오브젝트나 .NET Operation Builder 오브젝트를 이용하여 컨트롤 속성을 변경하도록 작성해야 합니다. 이 방법으로 해당 컨트롤을 명확히 제어할 수 있습니다.

VEE 작업영역에 컨트롤을 추가할 때, 그것의 타이틀바에 지정한 변수이름을 가지고 표시됩니다. .NET Control Host의 Name 속성을 변경하여 지정된 변수이름을 변경할 수 있습니다. 컨트롤은 프로그램 안의 다른 오브젝트와 연결할 핀을 가지고 있지 않으므로, 변수이름을 통해서 해당 컨트롤을 참조하는 Formula 오브젝트 또는 .NET Operation Builder에서 표현식으로 컨트롤을 관리해야 합니다. 변수는 local-to-context이므로, 이 표현식은 컨트롤과 동일한 컨텍스트에서 사용해야 합니다.

변수이름을 전역으로 설정하기 위해서는, Declare Variable (Data Variable Declare Variable)을 이용하여 새로운 변수를 설정해야 합니다. 컨트롤의 변수 이름이 이미 존재하므로, 그 이름을 단순히 global로 선언할 수는 없습니다; VEE에서는 그러한 중복이 허용되지 않습니다. Declare Variable오브젝트에서 변수이름을 입력하고, Scope to Global로, Type을 Object로 설정합니다. Specify Object Type을 체크할 필요는 없습니다. 그러나, 오브젝트 타입 상세내용을 지정함으로써, VEE는 자동으로 타입을 체크하여, 지정된 어셈블리 및 클래스가 선언된 변수에만 지정되어 있음을 확인합니다. 이제는 아래 그림처럼 컨트롤의 지역변수(progressBar1 등)를 선언된 변수와 동일하게(g_progressBar1 등) 선언할 수 있습니다.

Set g_progressBar1 = progressBar1

관련정보

.NET Operation Builder

오브젝트 위치

Device [image] .NET Controls


VEE 및 PIAs

VEE 및 Primary Interop Assemblies

".NET 용어설명"에서 PIA는 “COM으로 구현된 타입의 (메타데이터로서) 타입 정의를 가지며 유일한, 벤더가 제공하는 어셈블리…” 라고 설명되어 있습니다. 하나의 PIA만 존재할 수 있으며, COM 타입 라이브러리의 공개자에 의해서 강력한 이름으로 서명되어야 합니다.” 어떻게 VEE가 이들 PIA를 사용할 수 있게 하는가?

Device > .NET Assembly References에서 COM 탭을 선택하면, VEE는 현재 사용중인 컴퓨터의 레지스트리에 등록된 모든 COM 타입 라이브러리를 찾습니다. COM 타입 라이브러리를 선택할 때, 라이브러리가 PIA를 가지고 COM 타입 라이브러리에 대한 PrimaryInteropAssemblyCodeBase 키가 등록되어 있으면, 설명영역에 PIA 위치가 표시됩니다.PrimaryInteropAssemblyCodeBase 는 PIA가 /codebase 옵션을 이용하여 등록된 경우에만 등록됩니다. 모든 PIA가 이 방식으로 등록되지는 않습니다. 현재 애질런트의 모든 IVI-COM 드라이버는 /codebase 옵션을 이용하여 등록됩니다. 그러나 그렇지 않은 어셈블리도 많습니다. 또한 COM 타입 라이브러리를 체크하면, VEE는 레지스트리를 검색합니다. 레지스트리에 interop 어셈블리가 있으면 그것을 로딩하지 않습니다. OK 버튼을 클릭하여, PIA가 없으면, VEE는 하나 이상의 interop 어셈블리를 자동생성합니다.

browse를 클릭하면 PIA또는 Interop 어셈블리를 직접 선택할 수 있습니다. 그러나, VEE는 다음 사항을 확인하기 위해서 Interop 어셈블리를 실제로 로딩합니다.: 그것이 어떤 COM 타입 라이브러리에 속하는지, 그것이 Interop 어셈블리인지 아닌지, 브라우징과 선태의 주요 차이점은 무엇인지 확인하고 COM 탭 목록을 체크합니다. Interop 어셈블리가 로딩된 이후에는, 어떤 COM 타입 라이브러리에 속하는지 확인하고 COM 탭 목록에서 해당 COM 타입라이브러리의 체크박스에 체크합니다.


닷넷 프로그래밍

.NET 프로그래밍

타입변환

타입변환 함수 asClrType가 추가되었습니다. asClrType는 VEE 데이터 타입을 .NET/CLR 타입으로 변환합니다. 유효한 .NET/CLR 데이터 타입에는 모든 원시 타입(Boolean, Byte, Sbyte, Int16, Uint16, Int32, Uint32, Int64, Uint64, Char, Double, 및 Single)이 포합됩니다. .NET 데이터 타입이 유효하지 않거나 타입변환에 실패하면 에러가 발생합니다.

대부분의 경우 VEE와 .NET 데이터 타입변환이 자동적으로 이루어지므로 asClrType를 사용해야 하는 경우는 많지 않습니다. 원시타입에서 지원되지 않는 특정 .NET 데이터 타입을 사용해야 하는 경우 또는 VEE 데이터 타입을 .NET 오브젝트처럼 사용해야 하는 경우에만 이 오브젝트를 사용하면 됩니다.(예를 들어, .NET 오브젝트 메서드 호출). 예를 들어, VEE는 .NET String과 VEE Text 데이터 사이의 데이터 변환을 자동으로 실행합니다. 그러나 .NET에서 제공하는 다양한 String 함수를 사용해야 한다면, VEE Text 를 .NET String 오브젝트로 변환해야 합니다.

.NET 및 Win32 APIs

이들 2 가지의 API의 비교에 대한 자료는 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/win32map.asp 를 참조하십시오.

프로그래밍 연습

새로운 어셈블리 설치

어셈블리라는 용어에 익숙하지 않으면 .NET 기술용어 항목을 참조하십시오. 공개된 어셈블리는 GAC(전역 어셈블리 캐시)에 설치되어야 합니다. GAC에 설치된 어셈블리는 사용중인 컴퓨터의 모든 어플리케이션에서 참조할 수 있습니다. (자세한 내용은 MSDN을 참조하십시오.) 일단 공유된 어셈블리가 업데이트되면, Browse 버튼을 클릭하여 어셈블리가 GAC에 설치되지 이전의 원래의 위치로 브라우징하여 선택하고 참조할 수 있습니다.

대부분의 어셈블리는 GAC에 설치되어 있지 않습니다. 이들은 사설 어셈블리입니다. 사설 어셈블리는 그것을 참조하는 VEE 프로그램과 같은 위치에 설치되어야 합니다. 사설 어셈블리를 브라우징하여 선택하기 위해서 .NET Assembly References 대화상자를 처음 사용할 때, 그 어셈블리가 VEE 프로그램과 같은 위치에 있지 않으면, VEE는 그것을 VEE 프로그램이 있는 위치로 복사합니다. 이것을 VEE 프로그램 위치로 복사하면 VEE 프로그램의 배포도 쉬워지며, 이것을 xcopy 배포라고 합니다.

어셈블리 업데이트

VEE 프로그램에서 공유 어셈블리를 이미 참조하였으면, VEE에서 새로운 버전의 공유 어셈블리를 로딩하기 전에 File/New를 실행하거나 VEE를 재시작하여야 합니다. 공유 어셈블리가 아닌 사설 어셈블리의 경우에는 그것을 현재 VEE 프로그램 위치로 수동으로 복사한 후 File/New를 실행하거나 VEE를 재시작하여야 합니다.

인스턴스 메서드 호출

인스턴스 메서드를 호출할 때, 먼저 .NET 오브젝트를 선언하고 생성하여야 합니다. 이 과정을 생략하기 위해서는, Function & Object Browser에서, Create Instance 버튼을 클릭하여 생성자 템플릿을 먼저 생성하면 됩니다.

아래 그림에서는, fileInfo 가 지역변수로 선언되고 System.IO.FileInfo 오브젝트로 초기화되었습니다. fileInfo 출력핀을 이 오브젝트를 사용하는 후단의 임의의 오브젝트의 입력핀에 연결할 수 있습니다. 여기서 CreateInstance 및 fileInfo.LastAccessTime 오브젝트는 VEE에 의해서 자동생성되었습니다. 프로그래머가 해야할 일은 이들을 연결선으로 연결하고 추가 인자를 제공하는 것뿐입니다.

공유/스태틱 메서드 호출

.NET 멤버를 호출할 때, 멤버가 공유/스태틱 멤버이면, Function & Object Browser 의 설명영역에 STATIC 이라는 글자가 표시됩니다. STATIC 메서드는 오브젝트를 통하지 않고 .NET 클래스에서 직접 호출됩니다. 따라서 .NET 오브젝트를 먼저 생성할 필요가 없습니다. 다음 그림은 네임스페이스가 임포트되어 있는 스태틱 메서드 사용예제 입니다.

팁

  • Long/Single/Double.../ 을 사용하는 .NET 메서드를 VEE formula 박스에서 호출해야 하는 경우, 여기서 VEE formula 박스의 인자는 A 입력핀에서 제공되며, 간단하게 A 입력핀을 더블클릭하여, required type을 int32/Real32/Real64/etc.로 설정하면 'Method Not Found' 예외를 방지할 수 있습니다. 이 방법이 asCltType 내장함수나 .NET System.Convert.To* 를 호출하는 것 보다 간단합니다.

  • 인스턴스 멤버를 위해서 생성된 공식 템플릿은 항상 소문자로 시작합니다. 스태틱 멤버의 네임스페이스가 임포트된 경우를 제외하고는, 스태틱 멤버는 전체경로를 사용해야 합니다.(네임스페이스 및 클래스 이름)

  • .NET 멤버를 호출할 때, 해당 멤버가 스태틱이면, Function & Object Browser의 설명창에 Static 글자가 표시됩니다. 스태틱 메서드는 .NET 오브젝트를 이용하지 않고 .NET 클래스를 이용하여 직접 호출합니다. 따라서, .NET 오브젝트를 먼저 생성할 필요가 없습니다.

  • .NET에서 Enum는 COM 의 enum과 다릅니다. .NET의 Enum은 강력한 타입입니다. .NET에는 2 종류의 enum이 있습니다. 하나는 상수의 열거형이며, 다른 하나는 비트 필드로 취급됩니다. 비트로 취급되는 Enum만 비트연산에 사용할 수 있습니다. VEE에서는, 양쪽 타입의 enum 모두 Function & Object Browser의 설명영역에 표시되는 적분 값을 가집니다. VEE의 examples\dotnet\FileAttributes.vee에서 설명되는 바와 같이 비트연산에 사용되는 enum만 bitOr, bitAnd 등의 비트연산에 사용할 수 있습니다.

  • Function & Object Browser에 Copy to Clipboard 버튼이 새로 제공됩니다. 이 버튼을 클릭하면 포뮬러 텍스트를 클립보드로 복사하여, 향후 이것을 다른 포뮬러박스에 붙여넣기 할 수 있습니다. 포뮬러박스에 여러 개의 연산식을 사용해야 하는 경우 유용합니다.

제한사항

VEE에서는 .NET위임자를 지원하지 않습니다.

예제

asClrType 사용예제는 StringSplit.vee를 참조하십시오.

인스턴스와 스태틱 메서스를 호출하는 예제는 FileInfo.vee를 참조하십시오.

기타 .NET 프로그램 예제는 Microsoft .NET 예제를 참조하십시오.


Converting VEE Data Types to .NET

VEE 데이터타입을 닷넷 데이터타입으로 변환

VEE는 VEE와 .NET 사이에서 사용되는 데이터 타입 중에서 VEE 와 .NET 양쪽에서 기본 지원하는 데이터 타입을 자동변환 합니다.(예, Int16, Int32, Real64, 등). 이 자동변환 기능을 사용하지 않고 .NET 고유 데이터 형태로 사용할 수도 있습니다. asClrType 오브젝트를 사용하여 VEE 데이터 타입을 .NET/CLR 타입으로 변환합니다. 아래 테이블에서 변환에 대한 더욱 자세한 내용이 제공됩니다.

사용법

VEE 에서 .NET 기능을 사용할 때는 .NET 오브젝트로 전달되는 파라미터의 데이터 타입을 상향 형 변환은 허용하지만, 하향 형 변환을 허용하지 않습니다. 예를 들어, VEE의 UInt8 을 System.Int16 데이터 타입을 사용하는 .NET 오브젝트로 전달할 수는 있지만, 그 반대의 경우에는 사용할 수 없습니다. 또한, .NET 오브젝트가 ByRef 파라미터를 필요로 하고, VEE에서 그 값을 리턴 받아야 하는 경우에는 데이터 타입이 일치해야 합니다. 예를 들어, .NET 오브젝트가 ByRef Int32를 필요로 하면, VEE에서는 반드시 ByRef Int32를 제공해야 합니다. VEE가 .NET 오브젝트의 연산 결과를 리턴 받을 필요 없다면 ByRef 키워드를 생략하고 일반적인 파라미터를 사용해도 됩니다.

아래 테이블에서는 VEE와 .NET간의 데이터 타입 변환에 대해서 설명합니다.

ClrType으로 사용하기 위한 방법에 대한 예는 StringSplit.vee를 참조하십시오.

표

표1 - .NET 스칼라 데이터 타입을 VEE 데이터 타입으로 변환(VEE 7.5)

.NET 데이터 타입으로부터 변환 | VEE 데이터 타입으로 변환 | 주의사항
System.Boolean | Int16 | VEE Int16 이 System.Boolean 타입이었는지 확인하기 위해서 isVariantBool() 을 사용
System.Byte | Uint8 |
System.Char | Object | VEE가 자동으로 변환할 수 있는 .NET 데이터 타입으로 변환하기 위해서 System.Convert.To* 메서드를 사용(예, ToInt32())
System.DateTime | Object | examples\dotnet\DateTime.vee 참조
System.Decimal | Object | VEE가 자동으로 변환할 수 있는 .NET 데이터 타입으로 변환하기 위해서 System.Convert.To* 메서드를 사용(예, ToInt32()). 이 값을 Int32 로 표시할 수 없으면 System.OverflowException 을 의미하는 751 에러가 발생됨. System.Decimal 에서도 여러 가지 변환 메서드를 제공함
System.Double | Real64 |
System.Enum | Object | examples\dotnet\FileInfo.vee 참조
System.Int16 | Int16 |
System.Int32 | Int32 |
System.Int64 | Object | VEE가 자동으로 변환할 수 있는 .NET 데이터 타입으로 변환하기 위해서 System.Convert.To* 메서드를 사용(예, ToInt32()). 이 값을 Int32 로 표시할 수 없으면 System.OverflowException 을 의미하는 751 에러가 발생됨.
System.SByte | Object | VEE가 자동으로 변환할 수 있는 .NET 데이터 타입으로 변환하기 위해서 System.Convert.To* 메서드를 사용(예, ToInt32()).
System.Single | Real32 |
System.String | Text | VEE는 String을 Text로 자동변환 함. System.String 네임스페이스에서 제공하는 기능을 사용하기 위해서는 asClrType 오브젝트를 이용해서 Text를 System.String 으로 재변환할 수 있음. 예, Set dotNetString = asClrType(veeText, System.String); ModifiedString = dotnetString.Replace( ,_); examples\dotnet\stringsplit.vee 예제 참조
System.UInt16 | Object | VEE가 자동으로 변환할 수 있는 .NET 데이터 타입으로 변환하기 위해서 System.Convert.To* 메서드를 사용(예, ToInt32()).
System.UInt32 | Object | VEE가 자동으로 변환할 수 있는 .NET 데이터 타입으로 변환하기 위해서 System.Convert.To* 메서드를 사용(예, ToInt32()). 이 값을 Int32 로 표시할 수 없으면 System.OverflowException 을 의미하는 751 에러가 발생됨.
System.UInt64 | Object | VEE가 자동으로 변환할 수 있는 .NET 데이터 타입으로 변환하기 위해서 System.Convert.To* 메서드를 사용(예, ToInt32()). 이 값을 Int32 로 표시할 수 없으면 System.OverflowException 을 의미하는 751 에러가 발생됨.
System.Object | Object |

표2 - VEE 데이터 타입을 .NET 스칼라 데이터 타입으로 변환(VEE 7.5)

VEE 데이터 타입으로부터 변환 | .NET 데이터 타입으로 변환 | 주의사항
Int16 | System.Int16 | 다른 .NET/CLR 타입으로 변환하기 위해서 asClrType 오브젝트 사용. asClrType 도움말 참조
Int32 | System.Int32 | 다른 .NET/CLR 타입으로 변환하기 위해서 asClrType 오브젝트 사용. asClrType 도움말 참조
Real32 | System.Single | 다른 .NET/CLR 타입으로 변환하기 위해서 asClrType 오브젝트 사용. asClrType 도움말 참조
Real64 | System.Double | 다른 .NET/CLR 타입으로 변환하기 위해서 asClrType 오브젝트 사용. asClrType 도움말 참조
Text | System.String | 다른 .NET/CLR 타입으로 변환하기 위해서 asClrType 오브젝트 사용. asClrType 도움말 참조
UInt8 | System.Byte | 다른 .NET/CLR 타입으로 변환하기 위해서 asClrType 오브젝트 사용. asClrType 도움말 참조
<scaler of type *> | System.Boolean | Int16으로 형변환될 수 있는 임의의 VEE 데이터 타입(UInt8, Int16, Int32, Real32, Real64, Text)에 asVariantBool() 을 사용. 더욱 일반적으로 asClrType 을 사용할 수 있음(예, asClrType(veescalar, System.Boolean)).
Date/Time | System.DateTime | VEE의 Date/Time 은 Real64 타입으로 저장됨. asClrType(veeDateTime, System.DateTime) 과 같이 사용 examples\dotnet\DateTime.vee 참조.
Object | System.Object | VEE가 포인터를 사용하여 .NET 오브젝트 참조하는 경우

표3 - .NET 어레이 데이터 타입을 VEE 데이터 타입으로 변환(VEE 7.5)

VEE 데이터 타입으로부터 변환 | .NET 데이터 타입으로 변환 | 주의사항
System.Boolean Array | In16 Array | 어레이가 System.Boolean 타입이었는지 확인하기 위해서 isVariantBool() 를 사용
System.Byte Array | UInt8 Array |
System.Char Array | Object | VEE가 포인터를 사용하여 .NET System.Array 오브젝트 참조하는 경우 어레이를 VEE 가 자동변환할 수 있는 .NET 데이터 타입으로 변환하기 위해서 CreateInstance(mscorlib,System.String,charArray).ToString(); 표현식을 사용
System.DateTime Array | Object | VEE가 포인터를 사용하여 .NET System.Array 오브젝트 참조하는 경우
System.Decimal Array | Object | VEE 가 포인터를 사용하여 .NET System.Array 오브젝트 참조하는 경우 어레이의 각 앨리먼트를 VEE 가 자동변환할 수 있는 .NET 데이터타입으로 변환하는데 System.Convert.To* 메서드를 사용.(예, ToInt32()). 이 값을 Int32로 표현할 수 없으면 System.OverflowException 을 나타내는 751 에러가 발생함. System.Decimal 네임스페이스에서 다양한 변환 메서드 제공함
Double Array | Real64 Array |
System.Enum Array | Object | VEE가 포인터를 사용하여 .NET System.Array 오브젝트 참조하는 경우
System.Int16 Array | Int16 Array |
System.Int32 Array | Int32 Array |
System.Int64 Array | Object | VEE가 포인터를 사용하여 .NET System.Array 오브젝트 참조하는 경우 어레이의 각 앨리먼트를 VEE 가 자동변환할 수 있는 .NET 데이터타입으로 변환하는데 System.Convert.To* 메서드를 사용.(예, ToInt32()). 이 값을 Int32로 표현할 수 없으면 System.OverflowException 을 나타내는 751 에러가 발생함.
System.SByte Array | Object | VEE가 포인터를 사용하여 .NET System.Array 오브젝트 참조하는 경우 어레이의 각 앨리먼트를 VEE 가 자동변환할 수 있는 .NET 데이터타입으로 변환하는데 System.Convert.To* 메서드를 사용.(예, ToInt32()).
System.Single Array | Real32 Array |
System.String Array | Text Array | VEE는 String을 Text로 자동변환 함. System.String 네임스페이스에서 제공하는 기능을 사용하기 위해서는 asClrType 오브젝트를 이용해서 Text를 System.String 으로 재변환할 수 있음.
System.UInt16 Array | Object | VEE가 포인터를 사용하여 .NET System.Array 오브젝트 참조하는 경우 어레이의 각 앨리먼트를 VEE 가 자동변환할 수 있는 .NET 데이터타입으로 변환하는데 System.Convert.To* 메서드를 사용.(예, ToInt32()).
SystemUInt32 Array | Object | VEE가 포인터를 사용하여 .NET System.Array 오브젝트 참조하는 경우 어레이의 각 앨리먼트를 VEE 가 자동변환할 수 있는 .NET 데이터타입으로 변환하는데 System.Convert.To* 메서드를 사용.(예, ToInt32()). ()). 이 값을 Int32로 표현할 수 없으면 System.OverflowException 을 나타내는 751 에러가 발생함.
System.UInt64 Array | Object | VEE가 포인터를 사용하여 .NET System.Array 오브젝트 참조하는 경우 어레이의 각 앨리먼트를 VEE 가 자동변환할 수 있는 .NET 데이터타입으로 변환하는데 System.Convert.To* 메서드를 사용.(예, ToInt32()). ()). 이 값을 Int32로 표현할 수 없으면 System.OverflowException 을 나타내는 751 에러가 발생함.
System.Object Array | Object | VEE가 포인터를 사용하여 .NET System.Array 오브젝트 참조하는 경우

표4 - VEE 어레이 데이터 타입을 .NET 데이터 타입으로 변환(VEE 7.5)

VEE 데이터 타입으로부터 변환 | .NET 데이터 타입으로 변환 | 주의사항
Int16 Array | System.Int16 Array | 다른 .NET/CLR 타입으로 변환하기 위해서 asClrType 사용. asClrType 도움말 참조.
Int32 Array | System.Int32 Array | 다른 .NET/CLR 타입으로 변환하기 위해서 asClrType 사용. asClrType 도움말 참조.
Real32 Array | System.Single Array | 다른 .NET/CLR 타입으로 변환하기 위해서 asClrType 사용. asClrType 도움말 참조.
Real64 Array | System.Double Array | 다른 .NET/CLR 타입으로 변환하기 위해서 asClrType 사용. asClrType 도움말 참조.
Text Array | System.String Array | 다른 .NET/CLR 타입으로 변환하기 위해서 asClrType 사용. asClrType 도움말 참조.
UInt8 Array | System.Byte Array | 다른 .NET/CLR 타입으로 변환하기 위해서 asClrType 사용. asClrType 도움말 참조.
< type *> Array | System.Boolean Array | Int16으로 형변환될 수 있는 임의의 VEE 데이터 타입(UInt8, Int16, Int32, Real32, Real64, Text)에 asVariantBool() 을 사용. 더욱 일반적으로 asClrType 을 사용할 수 있음(예, asClrType(veescalar, System.Boolean)).
Date/Time Array | System.DateTime Array | VEE의 Date/Time 은 Real64 타입으로 저장됨. asClrType(veeDateTime, System.DateTime) 과 같이 사용 examples\dotnet\DateTime.vee 참조.
ref, out, ByRef | Either scalar or array of the type indicated by the mapping table above | VEE 키워드 ByRef 를 사용. ByRef 키워드를 사용하지 않아도 .NET 에서 예외를 발생하지는 않지만, 전달되는 파라미터의 값은 변경되지 않음. .NET 클래스 개발자가 의도했던 바와는 다른 결과를 초래함.

주의사항

.NET 메서드를 호출하는데 사용되는 VEE 코드 템플릿에 대한 주의사항입니다. .NET 메서드가 C#에서는 “Ref” 또는 “Out” 으로, Visual Basic .NET 에서는 “ByRef” 로 명시적으로 선언된 경우에만 VEE가 “ByRef” 키워드를 생성합니다. “ByRef” 키워드가 정의될 때마다, VEE는 서버로부터 리턴되는 데이터를 저장하기 위해서 여분의 메모리를 할당합니다. 이 기능은 다음과 같은 상황에서는 문제가 될 수 있습니다.:

1. 파라미터 타입이 VEE가 지원하는 어레이 타입에 속할 때 - Text 어레이, UInt8 어레이, Int16 어레이, Int32 어레이, Real 32 어레이, Real 64 어레이

2. .NET 서버가 파라미터를 C#에서는 “Ref” 또는 “Out” 으로, Visual Basic .NET에서는 C# or “ByRef”으로 명시적으로 선언하지 않았을 때.

3. .NET 서버가 메서드 안에서 파라미터의 값을 실제로 변경할 때.

이들 상황에서는 .NET 서버로부터 변경된 값을 리턴받기 위해서는 전달되는 파라미터의 앞에 ByRef 키워드를 수작업으로 추가해야 합니다.


.NET 과 IVI 드라이버

IVI란 무엇인가? IVI는 IVI Foundation에서 개발되고 있는 새로운 인스트루먼트 드라이버 표준입니다. IVI Foundation은 계측기를 프로그램 규격을 향상시키기 위하여 설립된 컨소시엄입니다. 이 규격은 여러 가지 이익을 제공하지만, 기본 목표는 계측기 교환사용을 단순화하는 것입니다. IVI Foundation에 대해서는 웹사이트 http://www.ivifoundation.org/를 참조하십시오.

왜 IVI-COM driver를 사용해야 하는가? 2개의 제조사가 DMM용 IVI-COM 드라이버를 제공하고 있다고 가정합니다. IVI 표준을 충족하기 위하여, 기본 드라이버는 상호 호환되어야 합니다. 시스템에서 어떤 드라이버를 사용해도, 다른 제조사가 생산한 DMM이 동작해야 합니다. 생성한 코드도 재사용할 수 있습니다.

사용법

VEE에서 사용할 수 있는 IVI-COM 드라이버는 어떻게 만드는가? IVI 드라이버를 설치하십시오. 계측기용 드라이버는, http://www.agilent.com/find/adn에서 검색할 수 있습니다. ADN 가입자는 menu > Drivers by Driver Type > IVI-COM Drivers and Components에서 Downloads를 선택합니다. 드라이버를 다운로드하고, IVI-COM 드라이버를 설치하기 전에 IVI-COM Shared Components를 설치하십시오. Shared Components 설치 화면에서 "Install PIA's" 버튼을 선택해야 합니다. ADN 가입자가 아니라면, 신규 가입하여 Agilent 드라이버, 평가판 소프트웨어, 문서, 백서 등의 온라인 자료들을 무료로 제공받으십시오.

IVI-COM 드라이버가 시스템에 설치되고 나면, 다른 COM 컴포넌트들처럼 사용할 수 있고, COM 컴포넌트와 아주 유사하며, VEE 메뉴 Device > .NET References에서 COM 탭에서 제공됩니다.

Instrument Manager를 통해서도 사용할 수 있습니다. 인터페이스를 선택하고 Advanced Properties에서 IVI-COM Driver 탭에 있는 내용을 수정합니다. 계측기를 선택하고 IVI Driver 버튼을 클릭하면 To/From 트랜잭션 오브젝트가 생성됩니다.

VEE와 .NET이 어떻게 IVI-COM 드라이버를 만들 수 있는가? IVI-COM 드라이버는 Interop을 통하여 VEE에서 사용할 수 있게 됩니다. 선택한 COM DLL을 사용할 수 있는 인터롭 어셈블리가 없는 경우에는, VEE는 Interop 어셈블리(또는 다른 타입의 라이브러리를 참조하는 COM.dll은 1개 이상의 어셈블리)를 생성하게 됩니다. VEE는 Function Object Browser의 .NET Object Assembly References 리스트에 Assembly Reference를 추가합니다. 여기에서 IVI-COM 드라이버는 다른 COM 타입 라이브러리와 같이 사용할 수 있게 됩니다.

사용예

Agilent는 ActiveX 보다는 Device > .NET Assembly References COM 탭을 사용할 것을 권장합니다. 이것은 IVI 드라이버를 사용하기 위해 필요한 타입을 더 많이 제공합니다. 이들 예제는 노트패드를 사용하는 것이 더 효과적입니다. 다른 예제는 ~installdir\examples\ivi-com를 참조하십시오.

AgilentSA.vee 또는 AgilentRFPowerMeter.vee

관련정보

IVI 란 무엇인가?, .NET 과 COM, To/From IVI-COM, To/From IVI-COM - Advanced 및 COM 오브젝트 – 에러 수정


VEE 와 .NET 보안

VEE 7.0 및 이상의 버전에서는 .NET 프레임워크와 CLR을 사용합니다. 네트워크 설치시에는 보완관련 문제를 고려해야 합니다. VEE를 네트워크 디바이스에 설치할 때,

  1. 명령어 입력창을 엽니다. 시스템 드라이브로 갑니다.(일반적으로 C)

  2. 폴더를 \[winnt 또는 windows]\Microsoft.NET\Framework\v1.1.4322 으로 변경합니다.

  3. 프롬프트에서 다음 명령을 실행합니다:

Caspol –machine –addgroup “All_Code” –url File://[VEEInstallDir]/* FullTrust

VEEInstallDir는 네트워크 드라이브상의 VEE 설치폴더 폴더입니다.(Caspol은 .NET 프레임워크와 함께 제공되고 VEE가 설치될 때 함께 설치됩니다.) 또한 .NET 프레임워크 설정 마법사를 사용해도 동일한 결과를 얻을 수 있습니다. 이러한 툴을 실행하기 위해서는 관리자 계정으로 로그인 해야 합니다.

이것에 추가하여, VEE 프로그램이 .NET 어셈블리를 참조하면, VEE는 어셈블리를 접근할 수 있는 위치에 생성하여(생성하거나) 저장할 필요가 있습니다. .NET 참조를 가진 VEE 프로그램을 지역컴퓨터에 저장하지 않고 이메일이나 네트워크에서 이 프로그램을 열면, 경고 메시지가 발생할 수 있습니다.

주의사항

커스텀 .NET(.NET Framework 2.0에 있는 어셈블리가 아닌)이 VEE 어플리케이션에 사용된 경우에, 커스텀 .NET이 로컬 드라이브에 없는 경우에는 Security Exception이 발생합니다.

이러한 문제를 방지하기 위해서는, 다음 방법중의 하나를 사용합니다:

  1. 1. 커스텀 .NET을 로컬 드라이브에 복사합니다.

  2. 2. 위에서 설명한 바와 같이 caspol을 사용합니다.

  3. 3. Start Menu => Control Pane =>Administrative Tools에 있는 .Net Framework Configuration을 실행하여 적절한 위치에 저장할 수 있도록 합니다.


ActiveX 컨트롤 선택

VEE에서 사용하고자 하는 ActiveX 컨트롤을 선택해야 합니다. Device [image] ActiveX Control References…를 클릭하면 ActiveX Control References 대화상자에, 윈도우 레지스트리에 등록된 컨트롤 타입 라이브러리가 출력됩니다. 다음 그림은 이 대화상자에서 컨트롤을 몇 개 선택한 사례입니다.

이 대화상자에 출력되는 목록은 사용자의 컴퓨터에 설치된 프로그램에 따라서 달라집니다. 컨트롤은 개별적으로 또는 다른 어플리케이션 소프트웨어의 일부분으로 설치될 수 있습니다. 임의의 컨트롤을 선택하면, 그 컨트롤의 위치가 대화상자의 하단의 상태영역에 표시됩니다.

사용하고자 하는 컨트롤의 체크박스를 컨트롤 이름(이름을 더블 클릭)체크하고 OK 버튼을 클릭하면 VEE가 사용할 수 있는 메모리로 로드되고, VEE가 이들의 오브젝트 클래스, 디스페치 인터페이스 및 이벤트를 사용할 수 있게 됩니다. 메모리를 낭비하지 않고 효율적으로 사용하기 위해서는 필요한 컨트롤만 선택하여 사용합니다.

사용해야 할 컨트롤이 대화상자에 출력되지 않으면, 해당 소프트웨어가 설치될 때 컨트롤 라이브러리가 레지스트리에 등록되지 않았기 때문입니다. 이 경우에는 Browse 버튼을 클릭하여 목록에서 빠진 타입 라이브러리를 추가할 수 있습니다. 이와 같이 사용자가 타입 라이브러리를 열면, VEE는 그 타입 라이브러리를 레지스트리에 등록하고 목록에 추가하기 위해서 시도합니다.

관련정보

VEE에 ActiveX 컨트롤 추가, VEE에서 ActiveX Control 사용, Automation 오브젝트 처리


VEE에 ActiveX 컨트롤 추가

컨트롤을 VEE 프로그램에 추가하는 것은 다른 오브젝트를 추가하는 것과 유사합니다. ActiveX 컨트롤을 선택한 다음에, 이들을 프로그램에 추가할 수 있습니다. 메뉴 Device [image] ActiveX Controls을 클릭하면 선택할 수 있는 ActiveX 컨트롤 목록이 출력됩니다. 다음 그림의 예제를 참조하십시오.

주의사항

이 기능과 위의 그림에서, ActiveX Control References 대화상자에서는 5개의 컨트롤이 선택되었지만, Device [image] ActiveX Controls 메뉴에서는 6개가 나타납니다. 일부 선택에 대해서는 하나 이상의 ActiveX 컨트롤이 결과 메뉴에 추가되는 것이 일반적입니다.

컨트롤을 선택해서 VEE의 작업영역에 있는 디테일 뷰에 배치합니다. 컨트롤은 어떤 컨텍스트(메인, UserObject 또는 UserFunction)에도 배치할 수 있습니다. 컨트롤을 지울 때는 오브젝트 메뉴에서 Cut을 클릭하거나 오브젝트의 컨텍스트 메뉴 버튼을 더블 클릭합니다. 다음 그림을 참조하십시오.

ActiveX Control Host와의 차이점

ActiveX 컨트롤은 VEE의 일반적인 오브젝트와 다릅니다. ActiveX 컨트롤은 입출력핀과 시퀀스 입출력핀이 없습니다. 즉, ActiveX 컨트롤은 VEE의 일반적인 데이터 흐름구조와 다릅니다.

이러한 ActiveX를 VEE의 일반적인 오브젝트처럼 사용하기 위해서, VEE는 그 컨트롤을 관리하는 특별한 컨테이너를 프로그램에 생성합니다. 이 컨테이너를 통해서 컨트롤 속성에 접근할 수 있습니다. 여기서는 편의상 이들 컨트롤과 컨테이너를 합쳐서 ActiveX 컨트롤이라 부릅니다.

ActiveX 컨트롤의 오브젝트 메뉴는 일반적인 VEE 오브젝트의 오브젝트 메뉴와 다릅니다. ActiveX 컨트롤의 오브젝트 메뉴에는 Properties와 Control Properties가 제공됩니다. Properties는 ActiveX 컨트롤을 호스팅하는, 즉 VEE가 제공하는 속성이며, Control Properties는 해당 ActiveX 컨트롤이 가지고 있는 속성입니다. 컨트롤 개발자에 의해 제공된 ActiveX 컨트롤의 속성을 보거나 변경하기 위해서는, Control Properties를 클릭합니다.

ActiveX 컨트롤 속성창의 Help 버튼을 클릭하면 그 ActiveX 컨트롤 개발자가 제공하는 도움말이 출력됩니다. 오브젝트 메뉴에 있는 Help는 호스트 컨테이너에 대한 VEE 온라인 도움말을 출력합니다. Create Event Handler…와 Edit Event Handler…는 Automation 오브젝트 이벤트 관리에 있는 ActiveX 오토메이션 오브젝트에 대하여 설명한 내용과 동일한 기능을 제공합니다.

관련정보

ActiveX 컨트롤 선택, VEE에서 ActiveX Control 사용, ActiveX Controls 처리


VEE에서 ActiveX Control 사용

VEE 작업영역에 컨트롤을 추가하면, 그 컨트롤의 지역 변수이름이 타이틀바에 표시됩니다. 이 지역변수 이름은 컨트롤의 타이틀바를 더블 클릭하여 ActiveX Control Properties 대화상자를 사용하여 변경할 수 있습니다. General 탭 아래에서 Name 속성을 변경합니다:

컨트롤은 다른 오브젝트와 연결할 핀을 가지지 않으므로, Formula 오브젝트의 표현식에서 지역변수 이름을 사용하여 컨트롤을 제어해야 합니다. 이 지역변수는 “local to context”로 사용범위가 제한되어 있으므로 현재의 작업영역에서만 사용할 수 있습니다.

지정된 지역변수 사용

Calenda 컨트롤을 프로그램에 추가하면, 디폴트 상태에서, 그것의 변수이름과 타이틀바가 Calenda가 됩니다. 컨트롤을 제어하기 위해서 Formula 오브젝트를 Calenda의 작업영역(context)과 동일한 작업영역에 추가합니다. 다음 예제는 변수이름이 Calenda인 ActiveX 컨트롤의 속성을 설정하고, 속성 값을 가져오며, 메서드를 호출합니다:

Calendar.Day = 24;

Month = Calendar.Month;

Calendar.AboutBox()

ActiveX 컨트롤을 전역변수로 선언

변수를 전역(global)으로 선언하기 위해서는, Declare Variable (Data [image] Variable [image] Declare Variable)을 이용하여 새로운 변수이름을 선언해야 합니다. 이것은 ActiveX Automation 오브젝트 변수 선언에 설명된 변수 선언과 동일합니다. 컨트롤의 지역 변수이름(이 경우에는 Callenda) 이미 있으므로, 다른 이름을 사용해야 합니다. 그러나 이미 있는 지역변수의 이름을 활용하면 편리합니다. 즉, Calenda 지역변수 앞에 전역을 나타내는 g_ 를 붙여서 g_Calenda 등의 방식으로 전역변수 이름을 부여할 수 있습니다.

Declare Variable을 오브젝트에서, 위와 같이 변수 명을 입력하고, Scope(사용범위) 필드의 값을 Global로, Type 속성의 값을 Object로 각각 입력합니다. SubType필드의 값을 COM(여기서 Calenda의 경우)로 변경하면, 특정 라이브러리와 Class를 지정할 수 있지만, 디폴트 값이 Any를 변경하지 않아도 됩니다. 이 Sub Type필드를 COM으로 변경하여 Library 및 Class를 지정한 경우에는 이 라이브러리와 클래스에 맞는 경우에만 이 전역변수를 사용할 수 있도록 VEE가 자동적으로 타입을 체크합니다.

전역변수를 선언한 후 에는, Formula 오브젝트에서 아래와 같이 컨트롤의 지역변수 이름(Calenda)을 전역변수 이름(g_calenda)으로 설정합니다. 여기서 SET 키워드는 반드시 사용해야 합니다:

SET g_calendar = Calendar

관련정보

ActiveX 컨트롤 선택, ActiveX 컨트롤 추가, ActiveX Controls 처리


ActiveX Controls 처리

속성을 설정하고 가져올 때나, ActiveX 컨트롤에 대한 메서드를 호출하고 이벤트를 처리할 때는 Automation 오브젝트 처리 및 Automation 오브젝트 이벤트 관리에서 ActiveX 오토메이션 오브젝트 대하여 설명한 동일한 방법을 사용합니다.

VEE가 호스트 오브젝트에 ActiveX 컨트롤을 포함하고 있어서 사용할 수 있지만, 프로그램 실행시 컨트롤의 동작행위는 약간 다릅니다. 기본적으로, 컨트롤은 한번에 한 장소에서 만 볼 수 있습니다- 디테일뷰든 패널뷰든.

한 예로, 컨트롤이 프로그램의 디테일뷰에 추가되어 있고 Show Panel on Execute 또는 showPanel()을 사용하여 컨트롤이 나타나는 것을 컨트롤 하는데 있어 프로그램이 다이나믹하게 패널을 디스플레이 한다고 가정합니다. 컨트롤은 패널이 닫힐 때까지는 디테일뷰에 나타나지 않습니다. 패널이 닫히면, 컨트롤은 디테일뷰에 다시 나타납니다.

관련정보

ActiveX 컨트롤 선택, VEE에 ActiveX 컨트롤 추가, VEE에서 ActiveX Control 사용


VEE에서 ActiveX Automation 사용법

VEE에 ActiveX 오토메이션을 적용하여, VEE를 마이크로소프트 워드, 엑셀, 엑세스 및 크리스탈 리포트 등의 윈도우 어플리케이션을 제어하는 컨트롤러로 사용할 수 있습니다. 보고서 생성을 위한 어플리케이션에 데이터를 보내거나 읽는 등의 작업을 할 수 있습니다. 이 ActiveX 오토메이션 기술은 이전 DDE(Dynamic Data Exchange) 기술을 대체했습니다.

ActiveX 컨트롤은 여러 회사로부터 제공됩니다. ActiveX 컨트롤은 ActiveX 오토메이션 속성, 메서드 및 이벤트를 통해서 특정 서비스를 제공하므로 VEE 기능을 향상할 수 있습니다. 대부분의 ActiveX 컨트롤은 VEE Slider 오브젝트를 사용하여 처리하는 것처럼 프로그램에 “slider”를 값으로 입력하여, 프로그램에 데이터를 입출력할 수 있는 사용자 인터페이스를 제공합니다.

VEE가 모든 ActiveX 컨트롤을 지원하지는 않습니다, 컨트롤이 VEE와 호환되지 않을 경우에, 컨트롤을 프로그램에 추가하거나, 컨트롤을 사용하면 에러가 발생합니다. 올바르게 동작하지 않는 것으로 알려진 컨트롤은 여기에 표시되어 있습니다.

주의사항

ActiveX 기술을 사용하기 위해서는 VEE의 실행모드가 VEE 5 이상이어야 합니다. VEE 실행모드는 Defalut Preference의 General 탭에서 변경합니다. VEE를 실행하였을 때, VEE 윈도우의 우측하단의 상태바에 현재의 실행모드가 표시됩니다. VEE 3.x, 4.x, 또는 5.x에서 개발된 프로그램에 ActiveX 기능을 추가하는 경우에는, 기능을 추가하기 전에 프로그램이 VEE 5 이상의 실행모드에서 실행 되는지를 확인해야 합니다. 이에 대한 자세한 정보는 Help 메뉴의 목차에서 개념이해하기.. 실행모드를 참조하십시오.

ActiveX 오토메이션과 ActiveX 컨트롤 작성 예제프로그램이 VEE 설치 폴더의 \examples\ActiveXAutomation 및 \ActiveXControls 폴더에서 제공됩니다. 또는 VEE의 Help [image] Open Examples… 를 통해서 이들을 사용할 수 있습니다.

관련정보

VEE에서 사용할 ActiveX Automation 오브젝트 지정, ActiveX Automation 오브젝트 변수 선언, 새로운 ActiveX Automation 오브젝트 생성, DCOM(Distributed Component Object Model) 사용법, 생성된 Automation 오브젝트 호출, Automation 오브젝트 처리, 데이터 타입 호환, Automation 오브젝트 삭제, Automation 오브젝트 이벤트 관리


VEE에서 사용할 ActiveX Automation 오브젝트 지정

윈도우 어플리케이션을 설치하면, ActiveX 타입 라이브러리가 함께 설치되어서 이들 윈도우 어플리케이션이 ActiveX 오토메이션 서버로 동작합니다. 타입 라이브러니를 ActiveX 오브젝트의 기능을 설명하고 이들이 시스템에 설치되어 있으면 이들을 사용할 수 있습니다. 아래와 같은 경우에 특정 타입 라이브러리를 선택합니다:

• 오브젝트 타입이 정의된 ActiveX 오브젝트를 사용하기 위해서 선언된 변수의 타입 체크를 VEE가 하도록 할 때 (ActiveX Automation 오브젝트 변수 선언를 참조하십시오.)

• 오토메이션 오브젝트에 의해서 생성된 이벤트를 캐치해야 할 때 (Automation 오브젝트 이벤트 관리를 참조하십시오.)

• ActiveX 오브젝트 브라우저 안의 내용을 보아야 할 때 (Automation 오브젝트 처리를 참조하십시오.)

프로그램에서 참조할 타입 라이브러리를 선택하기 위해서는, Display [image] ActiveX Automation Reference…를 클릭합니다. ActiveX Automation Reference…대화상자에는 윈도우 레지스트리에 등록된 모든 타입 라이브러리가 출력됩니다. 다음 그림은 마이크로소프트 엑세스를 사용하기 위하여 선택한 경우입니다.

타입 라이브러리 목록은 사용자의 컴퓨팅 환경에 따라서 다르게 나타납니다. 임의의 라이브러리를 선택하면, 이 대화상자의 상태정보 영역에 그 라이브러리의 위치가 표시됩니다. 사용하고자 하는 오토메이션 서버의 체크박스를 선택하고 OK를 클릭합니다.(또는 이름을 더블 클릭한다.)

이 과정을 거쳐서 선택된 타입 라이브러리가 로드되면서, 그것의 오브젝트 클래스, 디스패치 인터페이스 및 이벤트를 검색합니다. 여러 개의 라이브러리를 동시에 설치할 수 있지만, 메모리 소모를 방지하기 위해서 사용할 라이브러리만 선택하는 것이 좋습니다.

오토메이션 서버로 사용할 파일이 설치되었지만, 타입 라이브러리 선택 대화상자에 나타나지 않으면, 그 파일이 설치될 때 레지스트리에 등록되지 않은 경우입니다. 이 경우에는 타입 라이브러리 선택 대화상자에서 Browse 버튼을 클릭해서 해당 라이브러리를 찾아야 합니다. 이렇게 사용자가 지정한 라이브러리는 VEE가 레지스트리에 등록을 시도하고 대화상자 목록에 추가합니다.

관련정보

VEE에서 ActiveX Automation 사용법, ActiveX Automation 오브젝트 변수 선언, 새로운 ActiveX Automation 오브젝트 생성, DCOM(Distributed Component Object Model) 사용법, 생성된 Automation 오브젝트 호출, Automation 오브젝트 처리, 데이터 타입 호환, Automation 오브젝트 삭제, Automation 오브젝트 이벤트 관리


ActiveX Automation 오브젝트 변수 선언

Data [image] Variable [image] Declare Variable을 클릭하여 새로운 오브젝트 타입을 이용하여 ActiveX 오토메이션 오브젝트의 변수를 선언할 수 있습니다. 이 선언된 변수는 다른 프로세스에서 동작하고 있는 오브젝트를 참조합니다. 예를 들어, Access에서 ComboBox 를 포인팅할 수 있습니다. 아래 그림과 같이, Type 필드를 Object로 선택하면 대화상자가 확장되어 Library, Class 및 Events 필드가 추가되며, Num Dims 필드는 Sub Type 필드로 변경된다.

Specify Object Type 대화상자를 사용하기 위하여 Edit 버튼을 클릭하여 오브젝트 변수의 타입을 지정할 수 있습니다. 이 대화상자는 라이브러리와 클래스 이름을 설정하고 클래스에 대한 이벤트를 인에이블할 수 있도록 합니다.

Access 오브젝트 라이브러리를 사용하는 경우에는, 변수 combo를 선언할 수 있고, 오브젝트 타입을 라이브러리로 지정할 수 있습니다: Access 및 Class: 아래에 나타낸 바와 같이 ComboBox. 이 예제 에서, ComboBox 클래스는 이벤트를 포함합니다. 이벤트를 사용하기 위해서는, Enable Events를 클릭합니다. 이벤트가 제공되지 않는 클래스를 선택하면 이벤트 선택 체크상자가 비활성화된 상태로 남아 있습니다.

오브젝트 타입을 지정한 다음에, 정보를 디스플레이 하는 대화상자를 제거하고 Declare Variable로 되돌아 오기 위해 OK를 클릭합니다.

이벤트를 인에이블하면, 사용할 각각의 이벤트에 대한 이벤트-핸들러 UserFunction을 생성할 수 있습니다. 이벤트 사용에 대해서는 Automation 오브젝트 이벤트 관리를 참조하십시오.

VEE 변수와 마찬가지로, 변수를 선언하지 않아도 되지만, 변수를 선언하지 않으면 프로그램 안에 오토메이션 오브젝트가 생성되지 않습니다. 그러나 변수를 선언하고 오브젝트 타입에 관한 내용을 설정하면, VEE는 타입 체크를 자동으로 실행하여 지정된 Library와 Class 타입이 선언된 변수에 확실히 지정되도록 합니다.

관련정보

VEE에서 ActiveX Automation 사용법, VEE에서 사용할 ActiveX Automation 오브젝트 지정, 새로운 ActiveX Automation 오브젝트 생성, DCOM(Distributed Component Object Model) 사용법, 생성된 Automation 오브젝트 호출, Automation 오브젝트 처리, 데이터 타입 호환, Automation 오브젝트 삭제, Automation 오브젝트 이벤트 관리


새로운 ActiveX Automation 오브젝트 생성

VEE에서 서버 어플리케이션을 제어하기 위해서는, 프로그램 안에 오토메이션 오브젝트를 생성해야 합니다. 오토메이션 오브젝트는 CreateObject 함수를 이용하여 생성합니다. 함수를 프로그램에 배치하기 위해서는, fx 툴바를 클릭하여 Function & Object Browser 창에서 다음과 같이 선택합니다:

Type: Built-in Functions
Category: ActiveX Automation
Member: CreateObject

Create Formula 버튼을 클릭하여 생성된 Formula 오브젝트를 프로그램 안에 배치합니다. 이 Formula 오브젝트에는 다음의 표현식이 들어있습니다.

CreateObject(ProgID)

이 표현식의 내용은 사용자 목적에 맞도록 일부 변경하여 사용해야 합니다.

주의사항

ProgID는 생성하고자 하는 오토메이션 오브젝트를 나타내며, 스트링 이므로 읽을 수 있습니다. 오토메이션 오브젝트에 대한 ProgID의 값을 결정하기 위해서는, 해당 오토메이션 서버 제공회사가 제공하는 매뉴얼을 참조하십시오.

대부분의 경우 서버 어플리케이션의 인스턴스 안에 오토메이션 오브젝트의 새로운 인스턴스를 생성해야 합니다. 예를 들어, 아래 VEE 표현식은 (이미 엑셀이 실행되고 있어도) 엑셀의 새로운 인스턴스를 생성하여, 새로운 “Workbook” 오브젝트의 참조를 리턴하여 변수 excel에 매핑합니다.

SET excel = CreateObject("Excel.Sheet")

관련정보

VEE에서 ActiveX Automation 사용법, VEE에서 사용할 ActiveX Automation 오브젝트 지정, ActiveX Automation 오브젝트 변수 선언, DCOM(Distributed Component Object Model) 사용법, 생성된 Automation 오브젝트 호출, Automation 오브젝트 처리, 데이터 타입 호환, Automation 오브젝트 삭제, Automation 오브젝트 이벤트 관리


DCOM(Distributed Component Object Model) 사용법

DCOM을 이용하여 오토메이션 클라이언트(VEE)가 오토메이션 서버(엑셀, 엑세스 등)을 원격제어할 수 있습니다. 예를 들어, 하나의 컴퓨터에서 VEE를 실행하여 다른 컴퓨터의 엑셀이나 엑세스를 실행할 수 있습니다. 오토메이션 서버가 실행되는 컴퓨터에는 VEE를 설치할 필요가 없습니다.

오토메이션 서버를 원격 제어할 때는, CreateObject에 원격 컴퓨터의 위치를 지정하는 두 번째 인자를 다음과 사용합니다. (이 기능을 사용하기 위해서는 양쪽 컴퓨터에 DCOM이 설치되고, dcomcnfg.exe를 이용하여 적절한 보안이 설정되어야 합니다.) 이 파라미터를 추가하는, CreateObject()의 구문은 다음과 같습니다.:

CreateObject ("ProgID", ["hostName"])

여기서, hostName은 Text 타입입니다. hostName은 유효한 UNC 또는 DNS 도메인 이름을 사용합니다. 유효한 hostName은 다음과 같은 형태입니다.

Set obj = CreateObject ("ProgID", "server")

Set obj = CreateObject ("ProgID", "\\\\server")

Set obj = CreateObject ("ProgID", "server.domain.com")

Set obj = CreateObject ("ProgID", "135.5.33.19")

VEE는 원격컴퓨터 상의 객체를 인스턴스화 하는데 사용되는 보안설정에는 아무런 역할도 하지 않으며, 이 보안설정은 dcomcnfg.exe를 사용합니다.

관련정보

VEE에서 ActiveX Automation 사용법, VEE에서 사용할 ActiveX Automation 오브젝트 지정, ActiveX Automation 오브젝트 변수 선언, 새로운 ActiveX Automation 오브젝트 생성, 생성된 Automation 오브젝트 호출, Automation 오브젝트 처리, 데이터 타입 호환, Automation 오브젝트 삭제, Automation 오브젝트 이벤트 관리


생성된 Automation 오브젝트 호출

이미 오토메이션 오브젝트를 생성하였으면, 활성화된 객체를 가져오거나 GetObject 함수를 사용하여 파일에서 기존 오브젝트를 로딩할 수 있습니다. 함수를 프로그램에 배치하기 위해서는, fx 툴바 버튼을 클릭하여 Function & Object Browser 창에서 다음과 같이 선택합니다:

Type: Built-in Functions

Category: ActiveX Automation

Member: GetObject

Create Formula 버튼을 클릭하여 생성된 오브젝트를 프로그램 안에 배치합니다. 이 오브젝트에는 다음의 표현식이 들어있습니다.

GetObject("fileName", "ProgID")

이 표현식의 내용은 사용자 목적에 맞도록 일부 변경하여 사용해야 합니다.

다음 표현식은 활성화되어 있는 객체를 얻어서 현재 실행되고 있는 엑셀의 Application 객체의 참조를 리턴합니다. 엑셀이 실행되고 있지 않으면 이 방식을 사용할 수 없습니다:

SET excel = GetObject("","Excel.Application")

다음의 표현식은 파일이름을 이용하여 이미 존재하는 오브젝트를 로딩 합니다. ProgID 인자는 사용하지 않아도 됩니다:

SET excel = GetObject("d:/tmp/TestData.xls","Excel.Sheet")

또는

SET excel = GetObject("d:/tmp/TestData.xls")

이들 두 표현식은 현재 실행되고 있는 엑셀의 d:/tmp/TestData.xls 의 시트(sheet) 오브젝트 참조를 리턴합니다. 엑셀이 실행되고 있지 않으면, 로딩되기 전에 엑셀을 실행시킵니다. ProgID를 생략하면, VEE는 어떤 어플리케이션인지 결정하기 위해서 COM 라이브러리를 사용합니다.

관련정보

VEE에서 ActiveX Automation 사용법, VEE에서 사용할 ActiveX Automation 오브젝트 지정, ActiveX Automation 오브젝트 변수 선언, 새로운 ActiveX Automation 오브젝트 생성, DCOM(Distributed Component Object Model) 사용법, Automation 오브젝트 처리, 데이터 타입 호환, Automation 오브젝트 삭제, Automation 오브젝트 이벤트 관리


Automation 오브젝트 처리

오토메이션 오브젝트를 생성 후부터는 서버 어플리케이션을 제어하기 위해서 3 가지의 방법으로 오브젝트를 사용합니다: 속성 설정, 속성 가져오기 및 메서드 호출. 이 절에서는 cell, sheet 및 excel 의 3 개의 오브젝트 변수를 사용하여 이들 방법을 설명합니다. VEE의 키워드인 SET과 ByRef도 설명됩니다.

속성값 설정 및 가져오기

다음의 표현식은 오브젝트에 속성값을 가져오고 설정하는 예제 입니다. 다음의 표현식은 변수 cell의 값을 가져와서 contents에 저장합니다:

contents = cell.value

다음의 표현식에서도 value 속성은 셀의 값을 contents에 저장합니다:

contents = sheet.cells(1,1).value

value는 디폴트 속성이므로, 위의 표현식에서 .value를 생략해도 동일한 결과를 생성합니다 (아래에 설명된):

contents = sheet.cells(1,1)

오브젝트의 포인터를 가져오기 위해서는 SET을 사용합니다. 다음의 표현식에서는 셀 집합인 cells에서 하나의 셀의 선택하여 이 셀의 참조(포인터)를 cell 변수에 설정합니다:

SET cell = sheet.cells(1,1)

다음 3개의 속성 설정 예제는 모두 동일한 결과를 생성합니다:

cell.value = "Test Data2:"

sheet.cells(1,1).value = "Test Data2"

sheet.cells(1,1) = "Test Data2"

디폴트 속성에 대하여

대부분의 오토메이션 오브젝트는 디폴트 속성 또는 메서드의 개념을 지원합니다. 이 개념은 이전의 예제에서와 같이 오토메이션 오브젝트를 처리할 때 사용할 수 있습니다. 셀의 경우에는, 이것의 디폴트 속성은 값입니다. 그래서 속성을 가져오는 위의 첫 번째 예제는 이 개념을 .value 속성을 의미하고 다음과 같이 입력해야 합니다.

contents = cell

이것은 다음의 표현식을 의미합니다.

contents = sheet.cells(1,1)

이 표현식은 셀의 집합에서 셀을 리턴할 뿐만이 아니라, 표현식에서와 같이 셀에 있는 디폴트 속성(.value)를 처리합니다.

contents = sheet.cells(1,1).value

셀의 집합에서 셀을 가져오기 위해서는, 다음과 같이 표현식에서 키워드 SET을 사용해야 합니다.

SET cell = sheet.cells(1,1)

이것은 셀을 엑셀에서 셀을 지정할 수 있도록 설정합니다. 이것을 다음의 표현식과 비교합니다.

contents = sheet.cells(1,1)

(위에서 설명한 바와 같이) 여기서 컨텐츠는 엑셀에 있는 셀의 컨텐츠를 가져옵니다. 또한, .value 속성은 다음 2개의 표현식이 동일한 함수라는 것으로 Set 속성에서 의미합니다:

cell.value = "Test Data?

cell = "Test Data"

호출 방법

메서드는 괄호를 가진 함수이며, 이 괄호 안에는 변수를 가질 수 있습니다. 속성은 오브젝트의 특성에 값을 설정하거나 가져오는데 사용하지만, 메서드는 행위를 지시하는데 사용합니다.

다음 표현식은 오브젝트 메서드를 호출하는 예제입니다:

result = excel.CheckSpelling("aardvark")

디폴트 상태에서는 변수는 값에 의한 전달 방식(passed by value)을 사용합니다. 예를 들어, cells(1,1)은 메서드를 호출하면서 두 개의 변수, 1과 1을 전달합니다. 값에 의한 전달 방식에서는 단순히 변수의 값을 엑셀로 전송하고 결과를 돌려받습니다. 변수의 값은 변경되지 않습니다.

일부 오토메이션 메서드는 참조 전달 방식의 변수를 사용합니다. 이 경우 변수의 값이 오토메이션 서버에 의해 변경되고, 변수의 새로운 값이 VEE로 전달됩니다. 예를 들어, ActiveX 인스트루먼트 컨트롤은 다음의 표현식에 의해 호출된 오토메이션 메서드를 포함합니다.

passed = Scanner.GetReading (ByRef Reading)

getReading이 동작하면 메서드의 리턴값 passed가 true가 되고, 그렇지 않으면 false가 됩니다. 또한 다른 값들은 ByRef 변수 Reading(참조 방식으로 전달되는 변수 Reading)로 리턴됩니다. 사용자는 변수 Reading을 함수로 전달하기 전에 초기화시켜야 하며, Formular 오브젝트에 리턴값을 사용할 수 있도록 출력터미날을 가져야 합니다.

ByRef는 VEE에서 제공되는 키워드이며, 메서드의 변수가 참조 전달방식으로 전달되는 변수이면 그 변수 앞에 ByRef를 사용해야 합니다. Function & Object Browser의 하단의 정보영역에서 이들을 확인할 수 있습니다. "Table 밅onverting from VEE Data Types to Automation Scalar Data Types"를 참조하십시오.

열거형(Enumeration) 사용

타입 라이브러리는 열거형을 가질 수 있습니다. 열거형을 이용하면 메서드와 속성을 더욱 쉽게 사용할 수 있습니다. 예를 들어, 엑셀의 Window 개체는 WindowState 속성을 가지고 있는데, 이것은 XlWindowState 열거형 타입입니다. 이 열거형은 다음과 같이 3 개의 값을 가집니다:

xlMaximized (-4137)

xlMinimized (-4140)

xlNormal (-4143)

VEE는 열거형을 지원하므로 개체의 메서드나 속성에 다음과 같이 적용할 수 있습니다:

Window.WindowState = xlMinimzed

오브젝트 브라우저 사용

ActiveX 오브젝트 브라우저는 Function & Object Browser의 일부분이며, 툴바에 있는 fx를 클릭하여 열수 있습니다. 이 브라우저의 가장 좌측의 Type 창에서 여러 가지 타입을 선택할 수 있으며, 여기서 ActiveX Objects를 선택하면 Function & Object Browser의 창의 개수와 창의 내용이 변경됩니다. Type 창에서 ActiveX Objects를 선택하고, Library, Class, Member등을 차례로 선택할 수 있습니다. Type 창에 표시되는 라이브러리는 Device [image] ActiveX Automation Reference 또는 ActiveX Contorl References 에서 선택한 항목들만 나타납니다.

Library 이름이 선택되면, dispatch 인터페이스(dispinterfaces)와 사용할 수 있는 열겨형이 Class 창에 표시된다. 다시 Class 창에서 dispinterfaces를 선택하면 사용할 수 있는 속성, 메서드 및 이벤트가 Member 창에 나타납니다. Class 창에서 열거형을 선택하면 Member 창에는 상수가 표시됩니다. 열거형에 대해서는, 상수가 표시됩니다. 위의 그림은 Access 라이브러리에 대한 사용 가능한 일부 기능을 디스플레이 합니다. 선택된 ComboBox dispinterface는 Member 영역에 표시된 속성, 메서드 및 이벤트를 포함합니다. 다음 그림은 브라우저의 Classes 및 Members 영역에 있는 입력 필드 사이의 관계를 표시 아이콘을 포함하여 나타냅니다:

브라우저의 정보영역(브라우저의 하단)에는 속성, 메서드, 이벤트 및 상수와 관련된 도움말이 표시됩니다. 오토메이션 오브젝트가 이들에 관한 도움말을 가지고 있는 경우에만 표시됩니다. 이 도움말에는 오브젝트 변수의 타입 정보를 표시합니다. [] 로 묶인 변수는 사용하지 않아도 되는 선택항목입니다.

타입 정보는 ActiveX 오브젝트의 속성, 메서드, 변수 및 리턴타입에 대해서 제공합니다. 변수 타입이 지정되지 않으면, 디폴트 타입은 VT_VARIANT가 됩니다. 대부분의 경우, VEE는 VT_VARIANT에 대해 자동적으로 타입을 변환합니다. 오토메이션 데이터 타입과 VEE 데이터 타입간의 변환에 대한 자세한 내용은 이 표를 참조하십시오.

속성에 대해서는, 그 속성이 읽기전용(Read only)인지 쓰기전용(Write only)인지 또는 디폴트 속성인지를 표시합니다. Formula 오브젝트에서 속성을 설정하거나 읽는 표현식을 작성할 수 있습니다. 브라우저의 정보제공 영역에 다음과 같은 형태로 속성에 대한 정보가 제공됩니다:

DEFAULT PROPERTY Name as Text

메서드에 대해서는, 그 메서드가 사용하는 변수와 리턴 값의 타입정보를 표시합니다. 메서드는 디폴트 멤버가 될 수 있으며, 이에 대한 정보도 함께 표시됩니다. Formula 오브젝트에서 메서드를 호출할 표현식을 작성할 수 있습니다. 브라우저의 정보제공 영역에 다음과 같은 형태로 메서드에 대한 정보가 제공됩니다:

METHOD Void SetData(vValue, vFormat)

이벤트에 대해서는, 메서드와 같은 종류의 내용을 표시합니다. 그러나, 이벤트 핸들러는 클라이언트 어플리케이션에 의해서 호출됩니다. ActiveX 오토메이션을 이용하여 엑세스를 제어하는 경우, 엑세스는 이벤트 핸들러 UserFunction을 호출합니다. ActiveX 컨트롤을 사용하는 경우에는, ActiveX 컨트롤이 이벤트 핸들러 UserFunction을 호출합니다.

사용자 프로그램이나 VEE는 이런한 콜백 이벤트 핸들러를 호출하지 않으므로, Create Formula 버튼이 활성화되지 않습니다. 이 경우에는 단지 이벤트 정보 조회만 가능합니다. 이벤트는 특정 ActiveX 오토메이션 변수 또는 ActiveX 컨트롤과 밀접하게 관계되어야 하므로 Function & Obejct 브라우저에서는 이벤트 핸들러 UserFunction을 생성할 수 없습니다.

이벤트 핸들러는 Declare Variable 오브젝트나 ActiveX 컨트롤의 오브젝트 메뉴에서 생성합니다. 브라우저의 정보제공 영역에 다음과 같은 형태로 이벤트에 대한 정보가 제공됩니다:

EVENT Void Click()

열거형에서 상수에 대해서는, 상수의 값을 표시합니다. 브라우저의 정보제공 영역에 다음과 같은 형태로 상수에 대한 정보가 제공됩니다:

CONSTANT tvwRootLines = 1

상수의 값이 1 보다 작거나 1024 보다 크면, 다음과 같이 16진수 값을 함께 표시합니다. 이 정보는 다음과 같이 나타납니다:

CONSTANT xlNormal = -4143 (#HFFFFEFD1)

Help 버튼을 클릭하면 해당 ActiveX 오브젝트 멤버의 도움말과 관련 내용이 표시됩니다. 오브젝트가 정보를 제공하는 경우에만 표시됩니다. 가능한 정보가 없는 경우에는, 선택한 멤버에 대한 도움말이 없다는 대화상자가 나타납니다. 이 정보는 VEE 도움말 기능이 아니며, 어플리케이션에서 제공되어야 하는 정보입니다.

관련정보

VEE에서 ActiveX Automation 사용법, VEE에서 사용할 ActiveX Automation 오브젝트 지정, ActiveX Automation 오브젝트 변수 선언, 새로운 ActiveX Automation 오브젝트 생성, DCOM(Distributed Component Object Model) 사용법, 생성된 Automation 오브젝트 호출, 데이터 타입 호환, Automation 오브젝트 삭제, Automation 오브젝트 이벤트 관리


데이터 타입 호환

ActiveX 오토메이션에서는 특정 데이터 타입만 사용할 수 있습니다. 이번 장에서는VEE 데이터 타입과 ActiveX 오토메이션 데이터 타입 사이에서 이루어지는 타입 변환에 대해 설명합니다. VEE 데이터타입과 ActiveX 오토메이션 데이터타입 간의 변환은 자동으로 이루어집니다.

표 1은 VEE 8 실행모드에서 ActiveX 오토메이션에서 사용할 수 있는 데이터타입과 이들에 해당하는 VEE 데이터타입을 표시했습니다.

표 1 오토메이션 스칼라 데이터 타입에서 VEE 데이터 타입으로 변환(VEE 8 실행모드)

오토메이션 데이터타입 | VEE 데이터 타입 | 비고
VT_EMPTY | Text | 빈 스트링(“”) 텍스트가 리턴됩니다. 변수가 VT_EMPTY 타입인지 확인하기 위해서 isVariantEmpty()를 사용합니다.
VT_NULL | Text | 빈 스트링(“”) 텍스트가 리턴됩니다. 변수가 VT_NULL 타입인지 확인하기 위해서 isVariantNull()를 사용합니다.
VT_UI1 | UInt8 |
VT_I2 | Int16 |
VT_I4 | Int32 |
VT_I8 | Int64 |
VT_R4 | Real32 |
VT_R8 | Real64 |
VT_CY | Real64 | 오른쪽으로 4자리수를 가진 8-바이트 고정된 포인트 정수는 VEE Real64로 변환됩니다. 변수가 VT_CY 타입인지 확인하기 위해서 isVariantCurrency()를 사용합니다.
VT_DATE | Real64 | 1899년 12월 30일 부터의 날(day)의 수가 VEE의 0001년 1월 1일 부터의 시간의 초(second)로 표시됨.
VT_BSTR | Text |
VT_DISPATCH | Object |
VT_ERROR | Int32 | Scode(에러번호) 값을 가진 Int32 가 리턴됩니다. 변수가 VT_ERROR 타입인지 확인하기 위해서 isVariantError()을 사용합니다.
VT_BOOL | Boolean |
VT_VARIANT | * | ByRef 인 경우(VT_VARIANT | BYREF)에만 유효함. 이 경우 이 변수는 다른 변수를 포인팅합니다. VEE는 임베드된 변수 타입에 따라서 컨테이너를 생성합니다.
VT_UNKNOWN | Object |

표 2는 VEE 6&7 실행모드에서 ActiveX 오토메이션에서 사용할 수 있는 데이터타입과 이들에 해당하는 VEE 데이터타입을 표시했습니다.

표 2 오토메이션 스칼라 데이터 타입에서 VEE 데이터 타입으로 변환(VEE 6&7 실행모드)

오토메이션 데이터타입 | VEE 데이터 타입 | 비고
VT_EMPTY | Text | 빈 스트링(“”) 텍스트가 리턴됩니다. 변수가 VT_EMPTY 타입인지 확인하기 위해서 isVariantEmpty()를 사용합니다.
VT_NULL | Text | 빈 스트링(“”) 텍스트가 리턴됩니다. 변수가 VT_NULL 타입인지 확인하기 위해서 isVariantNull()를 사용합니다.
VT_UI1 | UInt8 |
VT_I2 | Int16 |
VT_I4 | Int32 |
VT_I8 | Int64 |
VT_R4 | Real32 |
VT_R8 | Real64 |
VT_CY | Real64 | 오른쪽으로 4자리수를 가진 8-바이트 고정된 포인트 정수는 VEE Real64로 변환됩니다. 변수가 VT_VY 타입인지 확인하기 위해서 isVariantCurrency()를 사용합니다.
VT_DATE | Real64 | 1899년 12월 30일 부터의 날(day)의 수가 VEE의 0001년 1월 1일 부터의 시간의 초(second)로 표시됨.
VT_BSTR | Text |
VT_DISPATCH | Object |
VT_ERROR | Int32 | Scode(에러번호) 값을 가진 Int32 가 리턴됩니다. 변수가 VT_ERROR 타입인지 확인하기 위해서 isVariantError()을 사용합니다.
VT_BOOL | Int16 | 변수가 VT_BOOL 타입인지 확인하기 위해서 isVariantBool()을 사용합니다.
VT_VARIANT | * | ByRef 인 경우(VT_VARIANT | BYREF)에만 유효함. 이 경우 이 변수는 다른 변수를 포인팅합니다. VEE는 임베드된 변수 타입에 따라서 컨테이너를 생성합니다.
VT_UNKNOWN | Object |

표 3은 VEE 5 실행모드에서 ActiveX 오토메이션에서 사용할 수 있는 데이터타입과 이들에 해당하는 VEE 데이터타입을 표시했습니다.

표 3 오토메이션 스칼라 데이터 타입에서 VEE 데이터 타입으로 변환(VEE 5 실행모드)

오토메이션 데이터타입 | VEE 데이터 타입 | 비고
VT_EMPTY | Text (빈 스트링) |
VT_NULL | Text (빈 스트링) |
VT_UI1 | <에러발생> | 부호가 없는 문자
VT_I2 | Int32 |
VT_I4 | Int32 |
VT_I8 | Int64 |
VT_R4 | Real64 |
VT_R8 | Real64 |
VT_CY | Real64 | 오른쪽으로 4자리수를 가진 8-바이트 고정된 포인트 정수는 VEE Real64로 변환됩니다.
VT_DATE | Real64 | 1899년 12월 30일 부터의 날(day)의 수가 VEE의 0001년 1월 1일 부터의 시간의 초(second)로 표시됨.
VT_BSTR | Text |
VT_DISPATCH | Object |
VT_ERROR | <에러 발생> |
VT_BOOL | Int32 |
VT_VARIANT | * | ByRef 인 경우(VT_VARIANT | BYREF)에만 유효함. 이 경우 이 변수는 다른 변수를 포인팅합니다. VEE는 임베드된 변수 타입에 따라서 컨테이너를 생성합니다.
VT_UNKNOWN | Object |

표 3과 표 4에서는 사용할 수 있는 VEE 7과 8 실행모드 데이터 타입과 이에 대응되는 오토메이션 데이터타입을 나타냅니다. 오토메이션 데이터 타입에 대응하는 VEE 데이터 타입은 일대일 대응하였으나, 이 경우에는 일대일 대응하지 않습니다. 대부분의 오토메이션 서버 객체는 필요한 데이터 타입으로 coercing 할 수 없습니다.

예를 들어, 개체의 속성이 롱 정수(예, x 축 좌표 등)인 경우, 정확히 일치하는 Int32뿐만 아니라, real 또는 심지어 text 스트링(단 스트링이 숫자 이어야 합니다.)을 보낼 수 있다. 그러나 어레이의 경우에는(항상 VARIANT로서 전달됨) 받아들일 수 있는 데이터 타입과 어레이 형태는 타겟 COM 개체를 어떻게 구현하느냐에 따라서 달라집니다.

표 3 VEE 데이터 타입에서 오토메이션 스칼라 데이터 타입으로 변환(VEE 8 실행모드)

VEE 데이터 타입 | 오토메이션 데이터타입 | 비고
Uint8 | VT_UI1 |
Int16 | VT_I2 |
Int32 | VT_I4 |
Int64 | VT_I8 |
Real32 | VT_R4 |
Real64 | VT_R8 |
Text | VT_BSTR |
Boolean | VT_BOOL | Int16,(Unit8, Int16, Int32, Real32, Real64, Text)으로 형 변환될 수 있는 모든 스칼라 VEE 데이터 타입에 asVariantBool()을 사용합니다.
< 스칼라 타입 *> | VT_CY | Real64,(Unit8, Int16, Int32, Real32, Real64, Text)으로 형 변환될 수 있는 모든 스칼라 VEE 데이터 타입에 asVariantCurrency()을 사용합니다.
< 스칼라 타입 *> | VT_DATE | Real64,(Unit8, Int16, Int32, Real32, Real64, Text)으로 형 변환될 수 있는 모든 스칼라 VEE 데이터 타입에 asVariantDate()을 사용합니다.
< 스칼라 타입 *> | VT_ERROR | Int32,(Unit8, Int16, Int32, Real32, Real64, Text)으로 형 변환될 수 있는 모든 스칼라 VEE 데이터 타입에 asVariantError()을 사용한다. Inr32 의 값은 Scode(에러번호)로 지정됩니다.
Variant | < variant 타입 스칼라 *> | VEE 컨테이너의 현재 타입이 적절한 variant 타입으로 변경됩니다. 예를 들어, variant 컨테이너가 VEE Int32를 가지고 있으면, VEE는 VT_I4 타입 variant를 생성합니다
Object | VT_DISPATCH | VEE가 오브젝트에 IDispatch 포인터를 가지고 있는 경우
Object | VT_UNKNOWN | VEE가 IUnknown 포인터를 가지지만 IDispatch 포인터를 가지지 않는 경우

표 4 VEE 데이터 타입에서 오토메이션 스칼라 데이터 타입으로 변환(VEE 6&7 실행모드)

VEE 데이터 타입 | 오토메이션 데이터타입 | 비고
Uint8 | VT_UI1 |
Int16 | VT_I2 |
Int32 | VT_I4 |
Int64 | VT_I8 |
Real32 | VT_R4 |
Real64 | VT_R8 |
Text | VT_BSTR |
<스칼라 타입*> | VT_BOOL | Int16,(Unit8, Int16, Int32, Real32, Real64, Text)으로 형 변환될 수 있는 모든 스칼라 VEE 데이터 타입에 asVariantBool()을 사용합니다.
<스칼라 타입*> | VT_CY | Real64,(Unit8, Int16, Int32, Real32, Real64, Text)으로 형 변환될 수 있는 모든 스칼라 VEE 데이터 타입에 asVariantCurrency()을 사용합니다.
< 스칼라 타입 *> | VT_DATE | Real64,(Unit8, Int16, Int32, Real32, Real64, Text)으로 형 변환될 수 있는 모든 스칼라 VEE 데이터 타입에 asVariantDate()을 사용합니다.
< 스칼라 타입 *> | VT_ERROR | Int32,(Unit8, Int16, Int32, Real32, Real64, Text)으로 형 변환될 수 있는 모든 스칼라 VEE 데이터 타입에 asVariantError()을 사용한다. Inr32 의 값은 Scode(에러번호)로 지정됩니다.
Variant | < variant 타입 스칼라 *> | VEE 컨테이너의 현재 타입이 적절한 variant 타입으로 변경됩니다. 예를 들어, variant 컨테이너가 VEE Int32를 가지고 있으면, VEE는 VT_I4 타입 variant를 생성합니다
Object | VT_DISPATCH | VEE가 오브젝트에 IDispatch 포인터를 가지고 있는 경우
Object | VT_UNKNOWN | VEE가 IUnknown 포인터를 가지지만 IDispatch 포인터를 가지지 않는 경우

표 5는 VEE 5 실행모드에서 에서 사용할 수 있는 데이터타입과 이들에 해당하는 ActiveX 오토메이션 데이터타입을 표시했습니다.

표 5 VEE 데이터 타입에서 오토메이션 스칼라 데이터 타입으로 변환(VEE 5 실행모드)

VEE 데이터 타입 | 오토메이션 데이터타입 | 비고
Int32 | VT_I4 |
Int64 | VT_I8 |
Real64 | VT_R8 |
Text | VT_BSTR |
Object | VT_DISPATCH | VEE가 오브젝트에 IDispatch 포인터를 가지고 있는 경우
Object | VT_UNKNOWN | VEE가 IUnknown 포인터를 가지지만 IDispatch 포인터를 가지지 않는 경우

표 6은 ActiveX 오토메이션 데이터 타입에서 VEE 8 실행모드 데이터타입으로 변환하는 어레이를 표시했습니다.

표 6 오토메이션 어레이 데이터 타입에서 VEE 데이터 타입으로 변환(VEE 8 실행모드)

오토메이션 데이터타입 | VEE 데이터 타입 | 비고
VT_UI1 | UInt8 Array |
VT_I2 | Int16 Array |
VT_I4 | Int32 Array |
VT_I8 | Int64 Array |
VT_R4 | Real32 Array |
VT_R8 | Real64 Array |
VT_BSTR | Text Array |
VT_BOOL | Boolean Array | Variant 어레이가 VT_BOOL 타입인지 결정하는데 isVariantBool()을 사용합니다.
VT_CY | Real64 Array | 오른쪽으로 4자리수를 가진 8-바이트 고정된 포인트 정수는 VEE Real64로 변환됩니다. Variant 어레이가 VT_CY 타입인지 결정하는데 asVariantCurrency()을 사용합니다.
VT_DATE | Real64 Array | 1899년 12월 30일 부터의 날(Day) 수를 0001년 1월 1일 이후의 초(second)로 변환 variant 타입이 VT_DATE 타입인지 결정하기 위해 isVariantDate()을 사용합니다.
VT_ERROR | Int32 Array | Scode(에러번호)를 가진 Int32가 리턴됩니다. Variant가 VT_ERROR인지 결정하기 위해서 isVariantError()을 사용합니다.
VT_VARIANT | < 동일한 종류의 타입 또는 레코드 어레이 > | 어레이 앨리먼트가 기본 데이터 타입인 동일한 데이터 타입이면, VEE는 표 1의 스칼라 맵핑으로 표시된 타입의 어레이를 생성합니다. 혼합된 데이터 타입 어레이 이면 VEE 레코드가 생성됩니다.
VT_DISPATCH | N/A | Object 타입 어레이는 지원하지 않음
VT_UNKNOWN | N/A | Object 타입 어레이는 지원하지 않음

표 7은 ActiveX 오토메이션 데이터 타입에서 VEE 6&7 실행모드 데이터타입으로 변환하는 어레이를 표시했습니다.

표 7 오토메이션 어레이 데이터 타입에서 VEE 데이터 타입으로 변환(VEE 6&7 실행모드)

Convert from Automation Data Type | Convert to VEE Data Type | Notes
VT_UI1 | UInt8 Array |
VT_I2 | Int16 Array |
VT_I4 | Int32 Array |
VT_I8 | Int64 Array |
VT_R4 | Real32 Array |
VT_R8 | Real64 Array |
VT_BSTR | Text Array |
VT_BOOL | Int16 Array | Variant 어레이가 VT_BOOL 타입인지 결정하는데 isVariantBool()을 사용합니다.
VT_CY | Real64 Array | 오른쪽으로 4자리수를 가진 8-바이트 고정된 포인트 정수는 VEE Real64로 변환됩니다. Variant 어레이가 VT_CY 타입인지 결정하는데 asVariantCurrency()을 사용합니다.
VT_DATE | Real64 Array | 1899년 12월 30일 부터의 날(Day) 수를 0001년 1월 1일 이후의 초(second)로 변환 variant 타입이 VT_DATE 타입인지 결정하기 위해 isVariantDate()을 사용합니다.
VT_ERROR | Int32 Array | Scode(에러번호)를 가진 Int32가 리턴됩니다. Variant가 VT_ERROR인지 결정하기 위해서 isVariantError()을 사용합니다.
VT_VARIANT | < 동일한 종류의 타입 또는 레코드 어레이 > | 어레이 앨리먼트가 기본 데이터 타입인 동일한 데이터 타입이면, VEE는 표 1의 스칼라 맵핑으로 표시된 타입의 어레이를 생성합니다. 혼합된 데이터 타입 어레이 이면 VEE 레코드가 생성됩니다.
VT_DISPATCH | N/A | Object 타입 어레이는 지원하지 않음
VT_UNKNOWN | N/A | Object 타입 어레이는 지원하지 않음

표 8은 ActiveX 오토메이션 데이터 타입에서 VEE 5 실행모드 데이터타입으로 변환하는 어레이를 표시했습니다.

표 8 오토메이션 어레이 데이터 타입에서 VEE 데이터 타입으로 변환(VEE 5 실행모드)

오토메이션 데이터타입 | VEE 데이터 타입 | 비고
VT_UI1 | Int32 Array |
VT_I2 | Int32 Array |
VT_I4 | Int32 Array |
VT_I8 | Int64 Array |
VT_R4 | Real64 Array |
VT_R8 | Real64 Array |
VT_BSTR | Text Array |
VT_BOOL | Int32 Array |
VT_CY | Real64 Array | 오른쪽으로 4자리수를 가진 8-바이트 고정된 포인트 정수는 VEE Real64로 변환됩니다.
VT_DATE | Real64 Array | 1899년 12월 30일 부터의 날(Day) 수를 0001년 1월 1일 이후의 초(second)로 변환하여 표시합니다.
VT_ERROR | <generates error> |
VT_VARIANT | Record | VEE 레코드는 혼합된 데이터 타입 어레이를 포함하는 variant로 생성됩니다.
VT_DISPATCH | N/A | Object 타입 어레이는 지원하지 않음
VT_UNKNOWN | N/A | Object 타입 어레이는 지원하지 않음

표 9 오토메이션 데이터 타입 수정자를 표시합니다.

Table 9 오토메이션 데이터 타입 수정자

오토메이션 타입 수정자 | VEE 타입 | 비고:
VT_BYREF | 위의 스칼라 매핑 테이블에 표시된 타입의 스칼라 또는 어레이 | 예를 들어, VT_BYREF | VT_BSTR은 VEE Text 컨테이너를 생성합니다. 스칼라 VT_VARIANT의 경우에는, variant는 다른 variant를 가리킵니다. VEE 는 임베드된 variant의 데이터 타입에 따라서 컨테이너를 생성합니다.

관련정보

VEE에서 ActiveX Automation 사용법, VEE에서 사용할 ActiveX Automation 오브젝트 지정, ActiveX Automation 오브젝트 변수 선언, 새로운 ActiveX Automation 오브젝트 생성, DCOM(Distributed Component Object Model) 사용법, 생성된 Automation 오브젝트 호출, Automation 오브젝트 처리, Automation 오브젝트 삭제, Automation 오브젝트 이벤트 관리


Automation 오브젝트 삭제

VEE가 오토메이션 서버 참조를 완료하면, 오토메이션 오브젝트는 자신의 오브젝트를 스스로 제거해야 합니다. VEE가 오토메이션 오브젝트 참조를 더 이상 잡고 있지 않으면, VEE는 참조를 더 이상 하지 않는다고 오토메이션 오브젝트에 통보합니다. 이 때, 오토메이션 컨트롤러가 그 오브젝트를 계속 사용하지 않으면, 오브젝트가 스스로 제거됩니다. 다음의 경우에 VEE가 오토메이션 오브젝트 참조를 해제합니다:

• 오토메이션 오브젝트의 변수 이름을 가진 Delete Variable 오브젝트가 실행될 때. 그러나, VEE는 이들 오토메이션 오브젝트에 다른 포인터를 가질 수 있습니다. 자세한 정보는 Delete Variable를 참조하십시오.

• Default Preferences 에서 Delete Variables at Prerun이 체크된 상태에서 VEE를 재실행할 때.

• VEE를 종료하거나, File [image] New 또는 File [image] Open을 실행할 때

관련정보

VEE에서 ActiveX Automation 사용법, VEE에서 사용할 ActiveX Automation 오브젝트 지정, ActiveX Automation오즈젝트 변수 선언, 새로운 ActiveX Automation 오브젝트 생성, DCOM(Distributed Component Object Model) 사용법, 생성된 Automation 오브젝트 호출, Automation 오브젝트 처리, 데이터 타입 호환, Automation 오브젝트 이벤트 관리


Automation 오브젝트 이벤트 관리

오토메이션 오브젝트는 이벤트를 발생합니다. 오토메이션 컨트롤러로서의 VEE는 UserFunction을 통해서 이벤트를 잡습니다. 이벤트를 발생할 수 있는 특정 타입의 변수를 선언하고 그것의 이벤트를 인에이블 시켰으면, 오토메이션 오브젝트에 대한 이벤트 핸들러 UserFunction을 생성할 수 있습니다. 오브젝트가 발생할 수 있는 각각의 이벤트에 대해서 이벤트 핸들러 UserFunction을 생성할 수 있습니다.

오브젝트에 대해 변수를 선언하고 그것의 이벤트를 인에이블하면 이벤트 핸들러 UserFunction을 생성할 수 있습니다. (가능한 경우)

1 변수를 선언한 후, 타입을 지정하고, 이벤트를 인에이블시킨 다음, Declare Variable 오브젝트 메뉴를 엽니다.

오브젝트 메뉴에서 Create Event Handler…를 클릭합니다. Create Event Handler UserFunction 브라우져가 나타납니다. 다음 그림을 참조하십시오.

Class 창에 있는 dispatch 인터페이스에 적용되는 모든 이벤트 목록이 Member 창에 표시됩니다.

2 이벤트를 선택하기 위하여 이벤트 이름을 클릭합니다.

이벤트가 선택되면, 브라우져의 정보영역에 이벤트 내용이 표시되며, 상태 영역에는 생성될 UserFunction 제목이 표시됩니다. Help 버튼을 클릭하여 이벤트 사용에 관한 정보를 얻을 수도 있습니다. 모든 이벤트가 온라인 도움말을 가지고 있지는 않습니다. 온라인 도움말은 VEE에서 제공하는 것이 아니며 오토메이션 이벤트를 제공하는 제조사가 제공해야 할 항목입니다.

3 Create Handler를 클릭합니다. 새로운 UserFunction 윈도우가 나타납니다. 이벤트 핸들러를 생성하면 해당 이벤트의 아이콘의 우측 하단에 이벤트 핸들러 생성되었음을 나타내는 작은 아이콘이 생깁니다.

지금 생성된 이벤트 핸들러 UserFunction에는 아무런 내용이 들어있지 않으며, 필요한 입출력만 생성되어 있습니다. 사용자가 이벤트를 처리할 프로그램을 작성해야 합니다. 생성된 이벤트를 편집하기 위해서는, Declare Variable 오브젝트 메뉴에서 Edit Event Handler.. 메뉴를 클릭합니다.

이벤트는 변수 이름과 연동됩니다. UserFunction 제목은 변수 이름과 이벤트 이름이 복합됩니다. 예를 들어, 변수이름을 combo로 선언하고, 변수의 타입을 Access.ComboBox로 지정한 경우에는, 다음과 같은 이름을 사용하여 이벤트-핸들러 UserFunctions을 생성 할 수 있습니다:

combo_AfterUpdate

combo_Change

combo_DblClick

combo_KeyDown

이벤트는 콜백(Callback) 함수입니다. 오토메이션 오브젝트에서 이벤트가 발생하면, 해당 UserFunction(콜백함수)이 호출되어 이벤트가 처리됩니다. 이벤트에 따라서는 리턴값을 요구하는 경우도 있는데, 이 경우에는 이벤트 처리 UserFunction에서 이 리턴값을 발생하도록 프로그램해야 합니다.

리턴값이 필요한 이벤트가 발생하면, 그 이벤트를 발생한 오브젝트는 VEE가 이 값을 턴할 때까지 기다립니다. 따라서, 이벤트를 처리하는 UserFunction이 가능한 빨리 이벤트를 처리하여 리턴값을 리턴하도록 해야 합니다.

오토메이션 서버(여기서는 엑셀)는 이벤트 핸들러 UserFunction의 리턴값을 기다리므로, 이 UserFunction은 비시간분할(non-timeslicing) 모드로 실행됩니다. 그러므로, 이벤트 핸들러 UserFunction에서는 Breakpoint를 사용할 수 없습니다. 또한, 에러가 발생하더라도 VEE는 중지되지 않고, 대신 경고 메시지를 출력하며, 프로그램은 계속 실행됩니다.

관련정보

VEE에서 ActiveX Automation 사용법, VEE에서 사용할 ActiveX Automation 오브젝트 지정, ActiveX Automation 오브젝트 변수 선언, 새로운 ActiveX Automation 오브젝트 생성, DCOM(Distributed Component Object Model) 사용법, 생성된 Automation 오브젝트 호출, Automation 오브젝트 처리, 데이터 타입 호환, Automation 오브젝트 삭제


어레이를 이용한 연산

각각의 데이터를 연산하는 대신에, 여러 개의 데이터를 어레이에서 직접 연산 처리하면 프로그램 성능이 크게 향상됩니다. 예를 들면, 측정 결과 제곱근을 구하기 위하여 매 측정 결과에 대한 제곱근을 구하는 과정을 반복하는 대신에, VEE에서는 모든 측정 결과를 어레이에 저장한 후 어레이의 제곱근을 한번에 연산할 수 있어서 프로그램의 성능을 향상할 수 있습니다.

2개의 프로그램이 있습니다. 첫 번째 프로그램은 제곱근 연산을 1024 회 반복 실행합니다. 각각의 입력에 대해서 제곱근을 연산해야 합니다.

두 번째 프로그램은 1024개의 앨리먼트를 가지는 하나의 어레이를 생성하고 어레이의 제곱근을 계산합니다. (제곱근의 어레이를 생성)

2개의 프로그램은 같은 결과를 산출하지만 두 번째 프로그램이 첫 번째 프로그램 보다 약 6배 빠르게 실행됩니다. (이 예제에서는 300MHz Pavilion PC를 이용했습니다.)

두 프로그램간의 실행 속도의 차이는 오브젝트가 실행되는 시간의 차이 때문에 발생됩니다. 오브젝트가 실행 될 때의 오버헤드는 고정되어 있습니다. 그러므로 스칼라 값 보다는 배열을 사용하여 오브젝트의 실행시간을 줄일 수 있습니다.

두 프로그램 각각의 실행시간을 확인하기 위해서 Do 오브젝트와 Timer 오브젝트를 사용했습니다. 프로그램이 시작되면 이 Do 오브젝트가 Timer 오브젝트를 트리거 시킵니다. 1024 개의 데이터에 대한 연산이 완료되면 Timer 오브젝트에 그 시간이 기록됩니다. Ramp 함수는 0부터 1023까지 1024개의 앨리먼트를 가지는 어레이를 생성합니다.

주의사항

최근 버전의 VEE Execution Mode의 프로그램 실행속도가 가장 빠릅니다. VEE 실행모드는 File [image] Default Preferences(또는 툴바의 버튼을 사용)에서 설정할 수 있습니다. Execution Mode 에서 VEE6(adds new Data Types)를 선택한 후 Save 버튼을 누르면, VEE 창의 우측하단의 상태 바에 VEE6이 표시됩니다.

관련정보

실행모드 (Execution Modes)

오브젝트를 아이콘으로 변환

오브젝트 개수 줄이기

Agilent VEE 프로그램을 최적화하는 다른 방법

프로그램을 더 빠르게 실행하는 방법


오브젝트를 아이콘으로 변환

화면에 표시해야 할 내용이 많을수록 프로그램 실행시간이 증가합니다. 내용을 업데이트 하는 오브젝트(예, 카운터)를 오픈뷰 상태로 사용하는 대신 아이콘뷰를 사용하면 프로그램 실행속도를 향상할 수 있습니다. 다음 예제에서는, For Count 와 Counter 오브젝트를 아이콘화하여 프로그램의 실행속도가 약 46배 향상 되었습니다.

관련정보

어레이를 이용한 연산

오브젝트 개수 줄이기

Agilent VEE 프로그램을 최적화하는 다른 방법

프로그램을 더 빠르게 실행하는 방법


오브젝트 개수 줄이기

같은 VEE의 프로그램이라 하더라도 적은 개수의 오브젝트들을 사용하여 프로그램을 작성할 수 있습니다. 두 가지 방법으로 오브젝트의 숫자를 줄여서 프로그램을 최적화할 수 있습니다:

1 두 개 이상의 독립된 연산 오브젝트를 사용하는 것 보다 하나의 Formula 오브젝트를 사용합니다. 예를 들어 덧셈, 곱셈, 나눗셈의 독립된 오브젝트 대신에 하나의 Formula 오브젝트에 공식 ((a+b)*c)/d)을 입력하여 사용합니다. 또한 Constant 오브젝트 대신 Formula의 상수들을 입력으로 사용합니다. (Set Variable을 사용하여 상수를 설정합니다.)

2 다른 함수의 파라미터 리스트 내부에 호출할 함수를 네스팅 시킵니다. 예를 들어, 첫 번째 프로그램에서 randomizes() 함수는 ramp() 함수에 의하여 생성된 어레이를 사용합니다. 두 번째 프로그램에서 ramp() 함수는 randomize() 함수에 네스팅 되어 있어서 적은 개수의 오브젝트를 사용할 수 있으며, 결과적으로 프로그램을 더 빠르게 실행시킬 수 있습니다.

.

관련정보

어레이를 이용한 연산

오브젝트를 아이콘으로 변환

Agilent VEE 프로그램을 최적화하는 다른 방법

프로그램을 더 빠르게 실행하는 방법


Agilent VEE 프로그램을 최적화하는 다른 방법

경우에 따라서는, 다음과 같이 프로그램 내부에서 최적화할 수 있는 기법도 있습니다:

  • 사용자의 프로그램이 VEE 4 또는 이상 버전의 VEE 컴파일러를 사용하여 실행하도록 합니다. 자세한 내용은 실행모드 (Execution Modes)를 참조하십시오.

  • 디테일뷰 보다는 패널뷰에서 프로그램을 실행시킵니다. 패널뷰에는 디테일뷰 보다 적은 개수의 오브젝트가 사용되고, 스크린에 적은 개수의 오브젝트가 표시되므로 VEE 프로세싱 시간이 절약됩니다.

  • UserObject와 UserFunction에 전달되는 값을 전달하기 위해서 큰 어레이나 레코드 대신에 전역 변수를 사용합니다. 가능한 모든 전역변수를 선언합니다. 이들 전역변수는 지역 변수로도 사용할 수 있습니다. Data [image] Variable [image] Declare Variable에서 변수를 생성합니다.

  • 개별 데이터를 수집하여 하나씩 그림을 그리기 보다는, 수집한 데이터를 한꺼번에 그립니다. 그래프 상의 x 값의 간격이 일정하면, X vs. Y Plot 보다는 XY Trace를 사용합니다.

  • 여러 개의 If/Then/Else 오브젝트를 사용하는 것보다 다중 If/Then/Else 오브젝트 하나를 사용합니다.

  • 그래픽 디스플레이를 기능을 간결하게 사용합니다. Grid Type [image] None 및 대화상자의 속성에 아무것도 체크 하지 않는 상태에서 그래프가 가장 빨리 업데이트됩니다. 필요한 경우에만 AutoScale 컨트롤 핀을 사용하고 필요 하지 않을 경우 Automatic Scale 옵션을 모두 디스에이블 시킵니다. (Scales 속성 참조).

  • 파일에서 데이터를 읽을 경우, 한 번에 하나의 요소로부터 READ 트랜잭션을 실행하고 EOF 핀을 사용하는 대신에 ARRAY 1D TO END:(*) 트랜잭션을 사용합니다.

  • UserFunction의 실행 흐름을 제어하기 위해서 여러 개의 분리된 Call 오브젝트 대신 Sequencer 하나를 사용합니다.

  • Sequencer를 사용할 경우 로깅이 필요한 트랜잭션에 대해서만 Logging을 활성화 시킵니다.

  • Strip Chart나 Logging AlphaNumeric 디스플레이를 사용할 경우, 이들의 속성에서 Buffer Size를 가장 작게 설정합니다.

  • Gate 및 Junction을 가진 If/Then/Else 오브젝트 대신 삼항 연산자(조건? 표현식1 : 표현식2)를 사용합니다.

  • 비트맵 이미지를 사용할 경우, 이미지들을 Scaled로 설정하기 보다는 Actual 또는 Centered로 설정하여 사용합니다. Scaled로 설정할 경우 실행시간이 약간 더 늘어납니다.

  • Fill Bar 또는 Thermometer 등의 인디케이터를 사용할 경우 Show Digital Display 옵션을 False로 설정하면 색상이 더 빨리 업데이트 됩니다.

  • Color Alarm을 사용할 경우, Show 3D border 옵션을 False로 설정합니다.

이미 언급한 기법 외에, 다른 프로그래밍 언어로 컴파일된 함수를 연결하여 사용하는 것도 VEE 프로그램의 실행속도를 증가시키는 한 가지 방법이 될 수 있습니다. PC 기반의 컴파일된 함수(DLL 등)를 사용하는 것은 다음 섹션에서 설명 합니다.

관련정보

컴파일된 함수 개요, DLL 사용

어레이를 이용한 연산

오브젝트를 아이콘으로 변환

오브젝트 개수 줄이기

프로그램을 더 빠르게 실행하는 방법


프로그램을 더 빠르게 실행하는 방법

이 절에서는 VEE 프로그램 성능을 향상시키기 위한 가이드를 제공합니다.

주의

VEE 6.0 이전 버전으로 프로그램을 개발한 경우, 컴파일러를 사용하도록 프로그램을 변환하기 위한 방법은 실행모드 (Execution Modes) 를 참조하십시오.

프로그램에 다음 내용을 적용하면 컴파일러의 장점을 활용하여 프로그램을 최고의 속도로 실행할 수 있습니다.(실행모드가 File [image] Default Preferences에서 VEE 4, VEE 5 또는 VEE 6으로 설정되어 있을 때)

• Profiler를 사용하십시오.

Profiler(View Profiler)를 사용하여 어떤 루틴이 많은 시간을 소모하는지 확인할 수 있습니다. Profiler를 실행하기 위해서는:

1 Profiler 대화상자에서 Start Profiling 버튼을 클릭하고 프로그램을 실행합니다.

2 프로그램 실행을 완료한 후, Profiler 대화상자의 Refresh 버튼을 클릭하여 결과를 확인합니다.

3 Profiler를 중지시키기 위해서는 Profiler 대화상자의 Stop 버튼을 클릭합니다. 표시된 결과를 지우기 위해서는 Clear 버튼을 클릭합니다.

• 라인의 색깔을 관찰하십시오

프로그램을 실행하기 이전에 VEE가 데이터타입을 결정할 수 있으면 라인은 데이터타입에 따라서 다른 색깔을 가집니다. 라인의 색깔이 다양할수록(검정색이 아닌) 프로그램이 더 빠르게 실행됩니다.

• 터미날에 제한조건을 추가하십시오

UserFunctions은 여러 위치에서 호출될 수 있으므로, 프로그램이 실행되지 전 까지는 VEE가 UserFunctions의 데이터타입을 결정할 수 없습니다. UserFunctions의 속도를 향상시키기 위해서는, 제한조건을 추가할 수 있는 입력터미날에 가능한 많은 제한조건을 추가하십시오.

• 선언된 변수를 사용하십시오

전역변수를 사용하는 경우에는, Declare Variable(Data 메뉴)로 변수의 타입과 형태를 선언하여, 프로그램을 실행하기 전에 VEE가 타입을 미리 알 수 있도록 하십시오. Declare Variable에서 변수의 범위를 설정하는 것도 프로그램 향상에 도움이 됩니다.

• Autoscale 컨트롤 입력을 제거하십시오

일반적으로 그래픽 디스플레이에서 필요이상으로 Autoscale 컨트롤 입력을 실행합니다. 각 포인트가 업데이트될 때 마다 Autoscale 컨트롤 입력을 실행시키는 대신 디스플레이가 업데이트를 완료한 다음에만 Autoscale을 실행하면 프로그램이 더 빠른 속도로 실행됩니다. Automatic Scaling 속성을 이용하여 Autoscale 컨트롤 입력을 제거하면, 더욱 빠른 속도로 프로그램이 실행됩니다.

• 데이터의 완전한 세트를 전송하십시오

그래프 디스플레이에서, Automatic Scaling 속성이 On 되어 있으면, 완전한 데이터 세트가 제공될 때 프로그램이 더 빠르게 실행됩니다. 완전한 데이터 세트를 제공하면 그래픽 디스플레이는 자동으로 한 번만 다시 스케일합니다. 프로그램이 한 번에 하나의 데이터만 보내면, 데이터가 들어올 때마다 다시 스케일하므로 프로그램 실행속도가 저하됩니다. 이 경우에는, Collector 오브젝트를 이용하여 데이터를 어레이로 생성하여 디스플레이로 전송합니다.

• 디스플레이를 한 번만 실행합니다.

디스플레이가 루프의 마지막 출력만 표시하고, 루프의 각 반복마다 생성된 데이터를 표시할 필요가 없으면(예를 들어 Logging AlphaNumeric 대신 AlphaNumeric을 사용한다면), 루프에서 매번 실행하게 할 필요가 없습니다. 반복 시퀀스의 출력핀을 디스플레이의 시퀀스 입력핀에 연결하면 디스플레이는 마지막에 한 번만 실행합니다.

• 디버깅 기능을 Off 시키십시오

일단 프로그램이 정상적으로 실행되면, 디버깅 기능을 사용하지 않고 프로그램을 실행하십시오. File Default Preferences 에서 Debug 그룹의 Disable Debug Features를 선택하십시오.

-r 옵션을 사용하거나, VEE RunTime을 실행하십시오. 이 모드에서는 디버깅 기능이 실행되지 않으므로, 프로그램이 약간 더 빠르게 실행됩니다. 그러나, 일시정지, 스텦핑, Breakpoints, 라인프로브, Show Data Flow 및 Show Execution Flow 등의 디버깅 기능을 사용할 수 없습니다.

관련정보

어레이를 이용한 연산

오브젝트를 아이콘으로 변환

오브젝트 개수 줄이기

Agilent VEE 프로그램을 최적화하는 다른 방법


문제해결 기술

이 절에서는 계측기통신 문제해결 및 일반적인 증상의 가능한 복구방법을 설명합니다. 다음 테이블은 계측기통신 문제해결 방법입니다.

문제점

해결방법/원인

계측기가 전혀 응답하지 않음

다음 사항을 확인하십시오.:

  • 계측기에 전원이 인가되고 정상적인 케이블을 통해서 인터페이스에 연결되어야 합니다. 적합한 I/O 라이브러리가 설치되어야 합니다.

  • Direct I/O, Panel Driver, 및 Component Driver 오브젝트를 사용하는 경우 : 인터페이스의 논리주소와 계측기의 주소가 Instrument Properties 대화상자의 Address 필드에서 설정이 일치해야 합니다. 각 계측기의 주소는 유일해야 합니다. 또한, Advanced Instrument Properties 대화상자의 Live Mode 필드가 ON으로 설정되어 있어야 합니다.

  • 사용자 또는 시스템 관리자가 VEE가 계측기와 동작할 수 있도록 VEE를 적절히 설정해야 합니다. 일반적으로 이것은 VEE설치과정에서 결정됩니다. 설치 안내서를 참조하십시오.

계측기의 주소를 결정할 수 없는 경우.

GPIO 및 시리얼 인터페이스를 사용하는 경우, 계측기의 주소는 인터페이스의 논리 주소와 동일합니다. GPIB 계측기 주소는 하드웨어 스위치나 전면판 명령을 통해서 설정할 수 있습니다. 자세한 내용은 계측기의 프로그래밍 매뉴얼을 참조하십시오. VXI 계측기는 카드 외부의 스위치로 논리주소를 설정합니다.(스위치를 설정하기 위해서는 일반적으로 이들 카드를 카드케이지에서 빼내어야 합니다.) 주소를 설정하는 자세한 내용은 Help => Contents 및 Index => Tell Me About .. => Configuring Instruments 를 참조하십시오.

인터페이스의 논리 주소를 결정할 수 없는 경우

인터페이스의 논리 주소는 Agilent I/O 라이브러리에서 제공하는 I/O Config 유틸리티를 사용해야 합니다. 자세한 내용은 Agilent I/O Libraries 설치 안내서를 참조하십시오. 권장하는 논리 주소설정은 논리주소 및 I/O 어드레싱 테이블을 참조하십시오..

VEE의 일반적인 문제해결 방법입니다.

문제 | 예상되는 이유 | 해결방법
VEE6 실행모드에서 VEE6.0 이전 버전에서 작성된 프로그램을 실행하면 정상적으로 실행되지 않음 |  | Help => Connects 및 Index => Tell Me About .. => Execution Mode 에서 해결방법을 참조하십시오.
UserObject가 정상적으로 실행되지 않습니다. | 컨텍스트 경계를 거쳐서 비동기 데이터를 전송(예, UserObject 내부의 오브젝트를 XEQ핀에 연결) | 해결 방안 1 : 비동기 관련 오브젝트를 UserObject 밖으로 이동 해결 방안 2 : Show Execution Flow 또는 Show Data Flow를 활성화하여 프로그램의 실행순서를 확인함
오브젝트의 기능 변경 |  | 오브젝트 메뉴에서 컨트롤 입력터미날 추가 및 속성편집 기능을 이용
UserObject안의 반복기능에서 하나의 결과만 출력함 | UserObject의 출력은 한 번만 활성화됨 | 반복기능을 UserObject 외부로 이동함
반복기능이 한 번만 실행됨 | 반복 서브쓰레드가 데이터출력핀 대신 시퀀스출력핀에 연결되었음. | 반복 서브쓰레드를 데이터출력핀에 연결함
For Count 오브젝트가 실행되지 않음 | For Count 오브젝트의 값이 0 이거나 음수임 | 값을 변경함. 음수가 필요하면 출력을 반전시키거나 For Range오브젝트를 사용
For Range 또는 For Log Range 오브젝트가 실행되지 않음 | 스텝 사이즈의 부호가 잘못되었음. From이 Thru보다 작으면, Step은 양수이어야 합니다. Thru가 From보다 작으면 Step이 음수이어야 합니다. | Step을 변경함
VEE가 멈춘것으로 보임 – 포인트가 모래시계 아이콘임 | 발생원인 1 : Auto Line Routing 이 ON으로 설정된 상태에서 오브젝트를 옮겨서, VEE가 라인을 다시 라우팅하고 있음 발생원인 2 : VEE가 스크린이나 프로그램을 프린트하고 있음 발생원인 3: 큰 오브젝트 또는 여러 개의 오브젝트를 잘라내기 하였음. VEE가 오브젝트를 잘라내기 버퍼에 저장하고 있음. | 기다리십시오. 수 분 이내에 십자선 아이콘으로 돌아오지 않으면, CTRL+C(또는 Intr 설정이 VEE6.0을 시작했던 터미날 윈도우에 있습니다.)를 클릭하여 VEE윈도우를 닫거나, VEE 프로세스를 죽이십시오.
프로그램을 열거나, 오브젝트를 잘라내거나, 라인을 삭제할 수 없음(해당 기능이 회색으로 비활성화 됨) | 프로그램이 아직 실행중입니다. | Stop 버튼을 클릭하여 프로그램을 중지시키고, 해당 기능을 다시 시도하십시오.
붙여넣기를 실행할 수 없음(해당 기능이 회색으로 비활성화 됨) | 붙여넣기 버퍼가 비어있습니다. | 오브젝트를 잘라내기, 복사하기 또는 클론을 다시 실행하십시오.
UserObject를 잘라내기, 생성하기 또는 패널에 추가할 수 없음(해당 기능이 회색으로 비활성화 됨) | 오브젝트가 선택되지 않았습니다. | 오브젝트를 선택하고 해당 기능을 다시 실행하십시오.
UserObject가 마지막으로 생성한 데이터만 출력함 | UserObject는 출력터미날 버퍼에 데이터를 누적하지 않습니다. 출력터미날 버퍼는 가장 마지막으로 수신한 데이터만 가지고 있습니다. | Collector 오브젝트를 사용하여 생성된 데이터를 어레이로 모으십시오. 이 어레이를 출력터미날로 전송하십시오.
라인그리기 모드에서 빠져나올 수 없음 |  | 더블클릭하거나 Esc를 클릭하여 라인그리기 모드에서 빠져나오십시오.
프로그램을 열 때 Parse Error오브젝트가 발생함. |  | Parse Error 오브젝트를 새로운 오브젝트로 변경함
문자가 올바르게 표시되지 않음 | 비-USASCII 키보드를 사용하고 있음 | Agilent VEE 설정하기에서 복구정보를 참조하십시오.
VEE의 외부의 색깔이 변경됨.(VEE 내부에서는, VEE색깔이 정상임) | 색깔 맵 평면이 모두 사용되었음 | Agilent VEE 설정하기에서 복구정보를 참조하십시오.


Agilent VEE Profiler

Profiler는 VEE의 전문가용 개발 기능입니다. Profiler는 프로그램에서 사용된 UserFunction과 UserObject의 실행속도를 표시하여 프로그램 최적화에 사용됩니다.

이 기능을 이용하여 프로그램의 병목구간을 알아내고, 프로그램의 속도를 증가시키기 위한 방법을 적용할 수 있습니다. example\Applications\ 폴더에서 제공되는 mfgtest.vee 프로그램은 아래와 같습니다.

View [image] Profiler를 선택하여 프로파일러를 실행시킵니다. 스크린의 하단에 Profiler가 출력됩니다. Profiler는 각 UserObject 및 UserFunction을 실행하는데 걸리는 시간 및 관련 정보를 비교하여 출력합니다.

관련정보

실행 파라미터 프로파일 하기

Profiler


ActiveX 컨트롤의 제약사항

ActiveX 컨트롤

VEE가 모든 ActiveX 컨트롤을 지원하지는 않습니다. 만약 ActiveX 컨트롤이 VEE와 맞지 않는 경우에는, 프로그램에서 ActiveX 컨트롤을 추가하거나 사용할 때는 에러가 발생합니다.

VEE 8.0이 발표되었을 때, 아래의 ActiveX 컨트롤들은 VEE와 잘 호환되지 않아서 제외하였습니다.

Microsoft Forms Object Library

Microsoft ADO Data Control 6.0

Adobe PDF 7.0 Viewer


트랜잭션 오브젝트에서의 메모리 누출

VEE 프로그램에서 트랜잭션 오브젝트를 사용할 때, 드물게 메모리 누출이 발생할 수 있습니다. Direct I/O와 From File 오브젝트가 여기에 해당하는 트랜잭션 오브젝트입니다.

메모리 누출 상황은 트랜잭션 오브젝트가 2개의 READ 트랜잭션이 동일한 출력핀을 참조하고 다른 데이터 타입을 사용할 때만 발생합니다. 다음 2개의 트랜잭션 쌍이 예 입니다:

READ TEXT x STR
READ TEXT x REAL

메모리 누출을 방지하기 위하여 다음의 문제해결 방법중의 하나를 사용하십시오.

첫번째 트랜잭션의 결과값 x가 필요하지 않은 경우에는, null이라는 기호를 참조값으로 사용할 수 있습니다. 첫번째 READ 트랜잭션에 데이터 출력핀의 이름 대신에 null을 사용합니다. 오브젝트는 데이터를 읽고는 데이터를 버립니다. 그리고 다음 READ 트랜잭션을 실행합니다. 트랜잭션 오브젝트는 다음의 트랜잭션을 포함합니다:

READ TEXT null STR
READ TEXT x REAL

2개의 데이터를 전송하고, 각 트랜잭션이 다른 데이터 출력핀을 참조하도록 두번째 출력핀을 추가합니다. 트랜잭션은 다음과 같이 표현될 수 있습니다:

READ TEXT x STR
READ TEXT y REAL


표현식이 에러일 때의 메모리 누출

Formula 오브젝트에서 표현식을 사용할 때, 또는 연산식을 사용할 수 있는 트랜잭션에서 드물게 메모리 누출이 발생할 수 있습니다.

Formula 오브젝트에서 Error 핀을 사용하고 프로그램 실행중에 Error 핀이 활성화되면 프로그램이 메모리 누출이 발생할 수 있습니다. 예를 들어, 표현식에서 0으로 나누는 연산을 실행하면 Error 핀이 활성화됩니다.

표현식을 입력할 수 있는 트랜잭션 오브젝트에서 Error 핀을 사용할 때에도 비슷한 상황이 발생할 수 있습니다. To File 오브젝트는 트랜잭션을 가질 수 있습니다.

WRITE TEXT a/b EOL

수학 표현식이 Formula 오브젝트에서와 동일한 방법으로 트랜잭션 오브젝트에서 연산되면, 동일하게 메모리가 누출될 수 있습니다.


758번 에러

.NET 오퍼레이션을 준비하지 못했습니다.

에러 증상

인스톨러에서 필요한 모든 콤포넌트를 설치하지 못했을 때 758번 에러를 발생시킵니다. 가장 대표적은 증상은 다음 2 가지 입니다.:

1. Device->.NET Assembly References 대화상자 또는 Device->Windows Forms Control을 선택하였을 때 아래의 에러메시지가 출력됩니다.

2. I/O->Instrument Manager를 선택하고 계측기에 대한 IVI-COM 드라이버 버튼을 클릭하였을 때 아래의 경고 대화상자가 출력됩니다.

원인

위의 두 가지 증상들은 .NET Global Assembly Cache에 IVI 공유 콤포넌트용 Primary Interop Assembly(PIA)가 설치되지 않아서 발생합니다.

수정

.NET Framework 2.0이 설치된 디렉토리를 찾아야 합니다. 일반적으로 <WindowsDir>\Microsoft.NET\Framework\v2.0.50727에 설치됩니다. 또한 IVI가 설치된 디렉토리를 찾아야 합니다. 일반적으로 <Program Files>\IVI에 설치됩니다.

명령어 입력창(커맨드 프롬프트)을 열고, .NET Framework 2.0이 설치된 디렉토리를 변경하여, IVI에 의해 설치된 배치파일을 실행합니다. 예를 들면, .NET Framework 2.0이 c:\windows\Microsoft.NET\Framework\v2.0.50727에 설치되어있고, IVI는 C:\Program files\IVI에 설치되어있다면 아래의 명령문을 실행합니다.

cd \Windows\Microsoft.NET\Framework\v2.0.50727

“c:\Program Files\ivi\bin\Primary Interop Assemblies\IviPiaRegistration.bat” “c:\Program Files\IVI\bin\Primary Interop Assemblies”

위의 배치파일이 성공적으로 실행되었다면 명령어 입력창에 “Assembly successfully added to the cache”라는 메시지가 디스플레이 됩니다. 이제는 VEE를 다시 실행하면 됩니다.


프로그램 실행 중 속성 변경

다음은 프로그램 실행 중에 VEE 오브젝트에 적용할 수 있는 속성입니다.

속성 | 오브젝트
배경색, 전경색, 제목, 크기, 위치 및 보이기 | 모든 VEE 오브젝트
값 | Toggle Controls, Constants, Continuous Controls
EnumValue, EnumValues, EnumIndex | Selection controls
EnableOnPing | Confirm (OK) 오브젝트
EnableEditing | "Enable/Disable Editing" 컨트롤 핀을 가진 VEE Data 오브젝트
PopupPanelTitle | 메인, UserFunctions, 및 UserObjects
크기와 위치 | 메인 또는 UserFunctions의 팝업패널
탭 인덱스 | 패널뷰에 있는 VEE 오브젝트
배경색 | UserFunction/UserObject 패널뷰와 메인 패널뷰

주의사항

속성 이름은 대소문자를 구분하지 않습니다. 프로그램에서 속성을 설정하고 가져오기만 프로그램 실행중 가져오고/설정할 수 있습니다. 디자인-타임 속성은 프로그램 실행중에는 변경되지 않습니다. 속성창에서 설정된 값을 디자인-타임 값이라고 부릅니다.

프로그램이 실행되지 않을 때는, VEE는 작업영역에 있는 오브젝트를 디자인-타임 값을 사용하여 디스플레이 합니다. 예를 들어, 속성창에서 라벨의 배경색을 적색으로 설정하고, Formula 오브젝트에서 라벨의 배경색을 녹색으로 변경합니다. 여기에서 프로그램 실행 중에 라벨의 배경색이 녹색으로 변경될 지라도 라벨의 배경색에 대한 디자인-타임 값은 적색으로 남아 있습니다. 그래서 프로그램이 실행되기 전이나 프로그램의 실행이 끝난 다음에는 라벨이 적색으로 나타납니다. 라벨은 프로그램이 실행 중일 때만 녹색의 배경색을 가집니다. 이것은 XY trace, X vs Y Plot, Strip Chart 및 다른 디스플레이 오브젝트의 마커에도 적용할 수 있습니다. 마커는 프로그램이 정지된 다음에는 디폴트 위치로 되돌아 갑니다.

메인, 보안 처리된 UserFunction이나 임포팅된 UserFunction에 있는 오브젝트의 속성을 가져오고/설정할 수 있습니다.

마커에 대한 추가사항

그래픽(XY) 디스플레이 오브젝트의 마커 위치를 프로그램상에서 설정하기 위해서는, 새로운 값을 마커에 설정하기 위한 Formula 박스가 필요합니다.

트레이스에서 필요한 지점으로 마커를 이동하기 위해서는, 해당 XY 디스플레이 오브젝트 다음에 Formula를 실행시켜야 합니다. Formula가 XY 디스플레이 앞에서 실행된 경우에는, XY 디스플레이 오브젝트가 실행하기 전까지는 XY 디스플레이 오브젝트에 트레이스가 나타나지 않기 때문에 마커는 어디에 표시되는지 알 수 없습니다. 더욱이 마커는 XY 디스플레이 오브젝트가 실행한 다음에도 이전에 설정된 위치에 남아 있습니다.

오브젝트 위치

Device [image] Function & Object Browser [image] VEE Objects

관련정보

프로그램에서 속성을 설정하고 가져오기, 오브젝트의 Declared Name 또는 Declared Scope 변경하기


VEE 사용자가 제공한 프로그램

이들 프로그램은 단지 VEE 사용자들에게 참고 목적으로 제공됩니다. 애질런트사는 이들 프로그램에 대해 어떤 보증도 하지 않습니다. 이들 프로그램은 전세계의 VEE 사용자들로부터 제공되었습니다. 예제 프로그램을 제공하고자 하는 사용자께서는 vrf-examples@agilent.com.로 프로그램을 제출하여 주십시오. 또한 제공하는 프로그램의 기능의 자세한 설명을 함께 첨부하여 주시고, 프로그램 제공자의 이름 및 이메일 주소를 함께 공개하기를 원하는 경우에는 프로그램 제출시 알려주시기 바랍니다.

ExcelAsDatabase.vee 테이블 조회를 위해서 엑셀을 데이터베이스로 사용

이 프로그램에서 사용하는 Table 워크시트(워크시트의 이름이 Table)은 ID, Code, Project, Date 및 Comment의 5 개의 필드(컬럼), 로 구성됩니다.

Query 워크시트에서는 Table 워크시트의 데이터를 조회하는데 엑셀 내장함수인 DGET 함수를 이용합니다. VEE 에서 요청하여 조회된 값은 VEE로 리턴되고 VEE 에서 표시됩니다.

InstrumentAssistant.vee 계측기 통신 보조 프로그램
이 프로그램은 현재 사용중인 컴퓨터에 장착된 모든 GPIB 및 VXI 인터페이스를 통해서 연결된 모든 계측기를 찾는데 사용할 수 있습니다. 또한 이 프로그램은 특정 계측기(이 경우에는 GPIB 계측기만 해당됨)와 통신목적으로 사용할 수도 있습니다. 해당 계측기 전용 명령어와 표준 IEEE488.1/488.2 명령어를 사용할 수 있습니다. 전송된 명령어는 명령어저장 버퍼에 저장됩니다. 계측기의 데이터는 ASCII 포맷 또는 바이너리블럭 포맷으로 읽을 수 있습니다.

다음과 같은 VEE 기능이 이 프로그램에서 사용되었습니다:
* 동적 I/O Automation Server
* 계측기 속성을 프로그램으로 제어
* I/O 설정내용을 프로그램과 함께 저장
SQLServerUsingADO.vee VEE 에서 SQL 데이터베이스 사용

이 프로그램에서는 VEE 에서 SQL Server 7.0 데이터베이스를 사용하기 위해서 마이크로소프트 ADO(버전 2.1) Automation Server를 사용하는 방법을 설명합니다. Server 필드에서 지정한 데로 SQL Server 7.0 이 원격컴퓨터 또는 지역컴퓨터에 설치되어 있어야 합니다. 현재 사용중인 컴퓨터에서 VEE 와 SQL Server 가 실행된다면 Server 필드를 local로 설정해야 합니다.

이 프로그램은 디폴트로 SQL 의 pubs 예제 데이터베이스를 사용하며, 다음의 기능을 제공합니다.:

  • Catalog 스키마를 읽어서 SQL 서버의 모든 데이터베이스의 목록으로 표시
  • Tables 스키마를 읽어서 pubs 데이터베이스 안의 모든 테이블을 찾음
  • SQL 쿼리를 실행
  • 테이블의 내용 조회
  • SQL 서버에서 발생하는 ADO 에러를 잡습니다.
MakeSelections.vee 복수 선택 팝업 오브젝트 만들기

입력되는 값 중에서 하나 이상을 선택할 수 있는 프로그램 예제입니다. VEE에서 기본적으로 제공하는 오브젝트는 여러 개의 값 중에서 하나만을 선택할 수 있습니다.

VEE_Window_mods.vee VEE 윈도우 속성을 변경하는 예제. 다음의 기능이 작성되어 있습니다.
  1. API 함수 임포트(ImportLib UserFunction)
  2. 프로그램 실행시 스트링어레이에서 전역 상수를 생성(CreageGlobals UserFunction)
  3. 현재 실행중인 VEE 프로그램의 윈도우핸드를 찾고 윈도우의 속성을 변경하는 방법:
    1. 윈도우를 화면의 가장 앞으로 배치
    2. 윈도우 크기 변경 허용
    3. 시스템 메뉴 보이기
    4. 윈도우 최소화 버튼 활성화/비활성화
    5. 윈도우 최대화 버튼 활성화/비활성화
    6. 지정된 시간 동안 전체 VEE 프로그램을 감추기

프로그램 제공 : Georg Nied 이메일:info@gn-software.de

Change character in string.vee 스트링에서 하나의 문자를 다른 문자로 변환

프로그램 제공 : Juan Carlos Martín Castillejos

nidaq.vee NI-DAQ 호출

NIDAQ32.DLL을 지원하기 위해서 VEE 의 Import Library 오브젝트를 사용하는 사례로 NI-DAQ 버전 6.6 을 사용했음.

VEE 7.5 이상에서는 Instrument Manager 에서 NI-DAQ 를 사용방법이 기본기능으로 제공되므로, 이 프로그램은 VEE7.0 이하에서 사용할 것을 권장합니다.

다음의 모든 계측기 프로그램은 Tom Silchia 가 제공했습니다.
856xTDFB.vee HP/Agilent 8560E-계열 스펙트럼 분석기에서 트레이스 데이터를 추출. TDF B (B-Format):

계측기에서 트레이스 데이터를 바이너리 포맷으로 추출합니다. 바이너리(Binary)는 전송속도가 가장 빠르며, 메모리 사용공간도 가장 적습니다. 각 데이터 포인트는 8-비트 바이트 2 개로 구성되며, MSB 가 LSB 보다 먼저 전송됩니다. 전송속도와 메모리 사용량이 중요한 문제인 경우에는 P-포맷 보다는 B-포맷이 적합합니다. A-블록이나 I-블록과는 다르게, B-블록은 헤더를 전송하지 않습니다. 데이터는 즉시 전송되며, EOI(End-Or_Identity) 문자가 데이터의 맨 마지막에 첨부되어 전송됩니다.

856xTDFI.vee HP/Agilent 8560E-계열 스펙트럼 분석기에서 트레이스 데이터를 추출. TDF I (I-block format):

계측기에서 I-블록 포맷(Indefinite Block-Data)으로 데이터를 추출합니다. I-블록 포맷은 A-블록 포맷과 매우 유사하며, 크기가 정해지지 않은 블록 데이터를 바이너리 포맷으로 전송합니다. 각 데이터 포인트는 8-비트 바이트 2 개로 구성됩니다. MSB는 LSB 보다 먼저 발송되며, 헤더가 트레이스 데이터 보다 먼저 전송됩니다. 헤더는 “#” 과 “I” 문자로 구성됩니다.

856xTDFM.vee HP/Agilent 8560E-계열 스펙트럼 분석기에서 트레이스 데이터를 추출. TDF M (M-format):

계측기에서 10진수로 트레이스 데이터를 추출합니다. M-포맷에서의 M 은 Measurement를 의미하며, 계측기에서 트레이스데이터를 ASCII 정수로 변환하여 전송합니다. 이 포맷은 스펙트럼 분석기에서만 사용하는 내부 포맷입니다. 데이터 다음에 Line Feed(ASCII 코드 10) 문자가 첨부되며, EOI 가 LineFeed와 함께 전송됩니다. M-포맷은 P-포맷보다 전송속도가 빠릅니다. M-포맷은 ASCII 데이터를 전송하므로, 데이터의 내용을 직접 관찰할 수 있습니다.

856xTDFP.vee HP/Agilent 8560E-계열 스펙트럼 분석기에서 트레이스 데이터를 추출.

TDF P : 십진수 실수 포맷으로 데이터를 추출합니다. 실수(P 포맷)은 계측기의 디폴트 포맷입니다. 진폭단위(AUNITS) 명령에 따라서 숫자는 dBm, dBmV, Volts 또는 watt 단위가 적용됩니다. 선형 트레이스 데이터 및 로그스케일 트레이스 데이터의 디폴트 단위는 각각 Volt 와 dBm 입니다. 데이터 뒤에는 Line Feed 가 첨부되며, Line Feed 는 EOI 와 함께 전송됩니다.

주의 : P-포맷을 사용할 때, AUNITS 명령어를 사용하여 트레이스 데이터에 진폭의 단위를 포함시켜야 합니다. 프로그램에서 트레이스 데이터를 사용할 때는 실수로 데이터를 받는 것이 유리합니다. 그러나, 전송속도 면에서는 P-포맷의 전송속도가 다소 느리며, 많은 메모리 공간을 사용합니다.(실수를 바이너리 포맷으로 받을 때 1200 바이트, P-포맷으로 받을 때 4800 바이트 사용) 일반적으로 P-포맷은 바이너리 포맷 보다 약 4 배의 메모리 공간을 사용합니다.

859xTDFBB.vee HP/Agilent 8590E-계열 스펙트럼 분석기에서 트레이스 데이터를 추출.

7.0 TDF B 는 바이너리 포맷을 사용합니다. 이 포맷을 사용하면 마커 또는 트레이스데이터는 바이트로 전송됩니다. 모든 트레이스 데이터 포맷 중에서 TDF B 포맷의 전송속도가 가장 빠릅니다. MDS 명령어의 설정에 따라서 트레이스 데이터가 한 개 또는 두 개의 8-비트 바이트로 전송할 것인지를 결정합니다.

주의 : 이 예제는 MDS B(Measurement Data Size as Byte)를 이용합니다. 데이터 포인트마다 한 개의 바이트(8 비트)를 전송합니다. 트레이스 데이터를 전송할 때는 401 개의 바이트만 전송하게 되므로, MDS W 포맷보다 전송속도가 빠릅니다. 그러나 MDS B는 2 개의 바이트를 1 개의 바이트로 통합하므로 해상도는 다소 떨어질 수 있습니다.

859xTDFBW.vee HP/Agilent 8590E-계열 스펙트럼 분석기에서 트레이스 데이터를 추출.

TDF B 는 바이너리 포맷을 사용합니다. 이 포맷을 사용하면 마커 또는 트레이스데이터는 바이트로 전송됩니다. 모든 트레이스 데이터 포맷 중에서 TDF B 포맷의 전송속도가 가장 빠릅니다. MDS 명령어의 설정에 따라서 트레이스 데이터가 한 개 또는 두 개의 8-비트 바이트로 전송할 것인지를 결정합니다.

주의 : 이 예제는 MDS W(Measurement Data Size as Word)를 이용합니다. 데이터 포인트마다 한 개의 워드(8 비트 바이트 2 개)를 전송합니다. 그러나 MDS W는 해상도를 떨어뜨리지 않고 데이터를 전송할 수 있습니다.

859xTDFI.vee HP/Agilent 8590E-계열 스펙트럼 분석기에서 트레이스 데이터를 추출.

7.0 TDF I 는 I-블록 데이터 포맷입니다. I-블록 데이터 포맷에서 트레이스 데이터 앞에 “#” 과 “I” 가 붙어야 합니다. MDS 명령어의 설정에 따라서 한 바이트 또는 두 바이트로 데이터가 전송되는지 결정됩니다. A-블록 포맷과는 다르게 스펙트럼 분서기로 데이터를 반송할 때 데이터의 바이트 개수를 지정하지 않습니다.

859xTDFM.vee HP/Agilent 8590E-계열 스펙트럼 분석기에서 트레이스 데이터를 추출.

7.0 TDF M 포맷은 Measurement 데이터 포맷입니다. 측정 데이터 포맷은 트레이스 데이터를 측정 단위로 전송합니다. 측정 데이터는 -32768부터 32767 까지의 값을 가집니다.

859xTDFA.vee HP/Agilent 8590E-계열 스펙트럼 분석기에서 트레이스 데이터를 추출.
A-블록 포맷은 각 데이터 포인트를 2 개의 바이트로 전송한다는 점에서 바이너리 포맷과 유사합니다.(이것도 측정데이터의 내부 데이터 포맷입니다.) A-블록 포맷은 401포인트 트레이스 데이터 앞에 4 바이트 헤더를 가집니다. 이들 헤더 바이트는 “f’, “A” ASCII 문자와 트레이스 데이터의 크기를 나타내는 2 개의 바이트 숫자로 구성됩니다.
8510C_pass_thru.vee

8510 을 사용하는 간략한 방법을 설명함

8510_hpgl_Acq.vee | 8510 계열 네트워크 분석기에서 HPGL 그래픽을 수집하여 덤핑하는 예제.
856xPlot2File.vee 8560E-계열 스펙트럼 분석기에서 HPGL 그림을 파일로 덤프.

덤프된 temp.plt 파일은 HPGL 파일 뷰어를 이용하여 볼 수 있습니다. 주의 : 마이크로소프트의 최신 버전의 오피스에는 디폴트로 HPGL 뷰어가 포함되지 않습니다. 마이크로 소프트의 웹사이트에서 HPGL32 를 다운 받아서 설치하면 마이크로소프트 워드 또는 엑셀에서 HPGL 파일을 임포트할 수 있습니다.

871xLearn_String.vee 871x 계측기에서 런(learn) 스트링을 가져오거나 보내기

이 프로그램은 8711C, 8712C, 8713C, 8714C 및 871xET/ES 벡터 네트워크 분석기 전 모델에서 사용할 수 있습니다. 메인 프로그램 1 개, 2 개의 User Object 및 1 개의 User Function 으로 구성되어 있습니다. "getLearnString" 유저오브젝트는 런(Learn)스트링을 가져와서 'C:\learnData.txt" 텍스트 파일에 저장합니다. 파일 안에는 이 프로그램의 상세 동작이 설명되어 있습니다. "sendLearnStringOut" 유저오브젝트는 “C:\learnData.txt” 파일에서 런스트링을 쿼리하여 네트워크 분석기에 런스트링을 써서, 계측기를 이전 상태로 변환합니다. "err_check" 유저펑션은 프로그램실행 시 에러가 발생했는지 확인합니다. OK 버튼으로 네트워크 분석기를 설정하고, 런스트링을 가져오며, 계측기를 프리셋 상태로 변환하여 런스트링을 계측기로 전송합니다.

8753_freq_data.vee 8753/8720 계열 네츠워크 분석기로부터 주파수 트레이스 데이터를 추출.

OUTPLIML 명령어를 이용하여 스티뮬러스 및 마커데이터를 추출합니다.

주의 : LIMIT 테스트 기능은 활성화되지 않습니다. 이 명령은 단지 주파수 포인트를 추출하는 목적으로 사용됩니다.

8753_marker.vee 8753/8720 계열 VNA 에서 다양한 방법으로 마커 데이터를 읽기

마커 데이터 및 데이터의 유효성은 계측기 디스플레이 포맷에 따라서 달라집니다. 첫 번째 데이터는 마커를 읽은 값이며, 두 번째 데이터는 계측기의 디스플레이 포맷에 따라서 유효하거나 유효하지 않을 수 있습니다. 세 번째 값은 주파수나 시간의 스티뮬러스(Stimulus)입니다. 보다 자세한 내용은 8753/8720 프로그래밍 매뉴얼의 Marker Data 관련 내용을 참조하시기 바랍니다.

4395A_Extract_State.vee 4395A 컴비네이션 분석기에서 상태데이터를 추출

이 프로그램은 4395A 컴비네이션 분석기를 사용하여 작성되었습니다. 이 프로그램에서는 INTERNAL MEMORY 를 참조하여 모든 저장된 상태 파일(*.sta)을 파싱합니다. 일단 파일이 생성되면 VEE 프로그램은 모든 .sta 파일을 외부 컨트롤러로 추출합니다. *.sta 파일은 바이너리이며, 4395A 로 재전송될 수 있습니다.(PC 또는 3.5" 플로피 디스크 이용)

4396b_ascii_out.vee 4395A, 4396A 및 4396B 컴비네이션 분석기에서 FORMATTED 트레이스 데이터 추출

이 프로그램은 "FORM4"(ascii) 포맷으로 FORMATTED 데이터 트레이스를 계측기에 쿼리합니다. 데이터 트레이스 어레이 크기는 쿼리된 포인트 수에 따라서 자동으로 결정되어 Real32 어레이 변수로 전달됩니다. START 주파수, STOP 주파수 및 NUMBER of POINTS 등을 쿼리하여, 각 데이터 값에 대한 주파수 포인트를 자동으로 생성하기 위해서 linRamp 오브젝트로 이들 쿼리 데이터를 전달하는 프로그램과 분석기에서 추출한 주파수/진폭 데이터를 XY 그래프에 표시하는 예제도 포함되어 있습니다. 이들 트레이스 데이터의 최대 또는 최소값은 VEE 의 내장 오브젝트를 이용하여 매우 쉽게 연산할 수 있습니다.

4194a_gain_delay.vee | Agilent 4194A 임피던스 분석기로부터 게인 및 그룹지연을 추출합니다.
4294A_ascii_out.vee Agilent 4294A 임피던스 분석기 예제

임피던스, 위상, 병렬 캐패시턴스, 병렬 컨덕턴스를 FORMATTED 디스플레이 트레이스 데이터 및 REAL/IMAGINARY 데이터 트레이스 포맷으로 구하는 방법을 설명합니다.

8753_Limit_test.vee | 8753/8720 계열 벡터 네트워크 분석기의 리미트 라인 실패를 분석하는 방법
8753ES_registerRecall.vee | 8753/8720 계열 벡터 네트워크 분석기의 내부 메모리에서 계측기 상태를 로딩하는 프로세스 예제
8753ES_NumGroup_OPC.vee | 8753/8720 계열 벡터 네트워크 분석기에서 애버리징이 활성화되었을 때, 스윕의 끝을 코디네이트 및 동기화 하기 위해서 *OPC? 및 NUMG (number of groups) 명령어를 사용하는 예제
8753ES_NumGroup_SPOLL.vee | 애버리징이 활성화되었을 때, 스윕의 끝을 코디네이트 및 동기화 하기 위해서 SPOLL및 NUMG (number of groups) 명령어를 사용하는 예제.
8753Graphics.vee | HPGL 텍스트를 8753/8720 계열 벡터 네트워크 분석기의 스크린에 쓰기.
8753LearnStr.vee | 8753/8720 계열 벡터 네트워크 분석기로 또는 로부터 런스트링을 쓰거나 읽기
8757_PassThru.vee | 8757 스칼라 네트워크 분석기 및 이 계측기와 호환되는 시그날소스 사용예제입니다. 이 프로그램은 8757 계측기와 GPIB 버스로 연결된 시그날 소스와 통신하기 위해서 PassThru 모드를 사용하는 방법을 설명합니다. 8757 계측기의 GPIB가 GPIB 컨트롤러의 역할을 합니다.
8757_E8257C_ScpiPassThru | 8757 스칼라 네트워크 분석기 및 이 계측기와 호환되는 시그날소스 사용예제입니다. 이 프로그램은 8757 계측기와 GPIB 버스로 연결된 시그날 소스와 통신하기 위해서 PassThru 모드를 사용하는 방법을 설명합니다. 8757 계측기의 GPIB가 GPIB 컨트롤러의 역할을 합니다.
4284A_BIN_ASCII.vee | 4284A 임피던스 분석기에서 ASCII또는 BINARY 데이터를 추출하는 방법을 소개합니다.
4263B_BIN_ASCII.vee | 4263B LCR 미터에 대한 프로그램입니다. LCR 미터에서 ASCII또는 BINARY 데이터를 추출하는 방법을 소개합니다.
e5100a.vee | E5100A 저주파 네트워크 분석기에 대한 프로그램입니다. 채널1(이득) 및 채널2(위상)에 대한 통계데이터를 얻기 위해서 E5100A 계측기의 웨이브폼 분석 내장기능을 사용하는 방법을 설명합니다.
E5100A_Resp_Cal_Array.vee | E5100A 저주파 네트워크 분석기에 대한 프로그램입니다. 네트워크 분석기에서 트랜스미션 쓰루 리스펀스(transmission thru response) 캘리브레이션 어레이(FORM4-ASCII)를 추출하는 예제입니다. 추출된 어레이는 PC에 파일로 저장됩니다.
8753_form2.vee | 8753 및8720 계열 네트워크 분석기용 프로그램입니다. SRQ 마크스를 통해서 스윕 완료를 동기, FORM2-Real32 바이너리 블록으로 트레이스 데이터 추출 방법에 대한 예제입니다.
8753_form3.vee | 8753 및8720 계열 네트워크 분석기용 프로그램입니다. SRQ 마크스를 통해서 스윕 완료를 동기, FORM3-Real64 바이너리 블록으로 트레이스 데이터 추출 방법에 대한 예제입니다.
8753_form3_COMPLEX.vee | 8753 및8720 계열 네트워크 분석기용 프로그램입니다. SRQ 마크스를 통해서 스윕 완료를 동기, FORM3-Real64 바이너리 블록으로 실수 및 허수 트레이스 데이터 추출, COMPLEX 어레이로 지정된 변수에서 어레이를 읽는 방법에 대한 예제입니다.
8753_form4.vee | 8753 및8720 계열 네트워크 분석기용 프로그램입니다. SRQ 마크스를 통해서 스윕 완료를 동기시키고 FORM4-ASCII 데이터로 트레이스 데이터를 추출하는 예제입니다.
8753_hpgl_Acq.vee | 8753 및8720 계열 네트워크 분석기에서 HPGL 그래픽을 수집하여 덤핑하는 예제입니다.
EPM_Sensor_Status.vee | 애버리지 센싱 EPM E-계열 RF 파워미터용 프로그램입니다. "STATUS:DEVICE:CONDITION?” 명령어를 사용하여 어떤 채널에 센서가 연결되어 있고, 이들 센서는 계측기의 전면 또는 후면에 연결되어 있는지 확인합니다.
EPM_Averages_SPOLL.vee | 애버리지 센싱 EPM E-계열 RF 파워미터용 프로그램입니다. 이 프로그램에서는 매뉴얼 필터 모드를 사용하여 사용자가 필터의 길이(a.k.a 평균)을 설정할 수 있습니다. 또한 데이터 측정여부를 판단하기 위해서 SPOLL 명령어를 사용합니다.
EPM_LoUpLimit_Test.vee | 애버리지 센싱 EPM E-계열 RF 파워미터용 프로그램입니다. "STAT:OPER:LLF:SUMM:COND?" (하위 리미트 실패 확인) 및 "STAT:OPER:ULF:SUMM:COND?"(상위 리미트 실패 확인) 상태 쿼리 사용 예제 프로그램입니다.
EPM_LoadCalTable.vee | 애버리지 센싱 EPM E-계열 RF 파워미터용 프로그램입니다. 내부 센서 캘리브레이션 테이블 목록을 카타로그하고, 테이블을 선택하며, 지정된 주파수에 사용자 캘리브레이션 팩터를 쓰고, 캘리브레이션 테이블을 선택하는 예제입니다.
EPM_Meas_SPOLL.vee | 애버리지 센싱 EPM E-계열 RF 파워미터용 프로그램입니다. 이 프로그램에서는 MEASURE 명령어를 사용하여 파워미터가 계측기를 제어할 수 있게 합니다. 또한 데이터 측정여부를 판단하기 위해서 SPOLL 명령어를 사용합니다.
ENA_StateRdWrt.vee | ENA (E5070/E5071) 계열 네트워크 분석기용 프로그램. 메모리를 카타로그, 상태파일을 바이너리 블록으로 PC로 저장, PC에 저장된 상태파일을 불러와서 이 내용을 계측기에 쓰는 예제를 제공합니다.

ENA_Average_SPOLL.vee

ENA (E5070/E5071) 계열 네트워크 분석기용 프로그램. 이 프로그램은 ENA 계열 벡터 네트워크 분석기 상에서 Average Complete Condition 을 검출하는 한 가지 방법을 설명하기 위한 목적으로 작성되었습니다. ENA 한 대를 사용하였습니다.
ENA_Fast_SPOLL | ENA (E5070/E5071) 계열 네트워크 분석기용 프로그램. 네트워크 분석기의 밴드폭 변화에 따른 트레이스 스윕 속도, 데이터 수집 및 전송속도를 이해하는데 사용이 적합한 프로그램입니다.


오브젝트를 연결하여 프로그램 생성

이 섹션은 VEE 프로그램을 소개합니다. 실습 1-1에서 VEE 프로그램을 작성하여, VEE 화면을 인쇄, 프로그램을 파일로 저장할 것입니다.

실습1-1 파형 표시

VEE 프로그램은 작업영역에서 VEE 오브젝트를 연결하여 생성합니다. 다음 프로그램은 파형을 디스플레이합니다.

(VEE가 이미 실행되어 있으면, 툴바의 New 버튼을 클릭하거나 File [image] New를 선택하여 작업공간을 깨끗하게 지웁니다. VEE가 실행되지 않고 있으면, VEE를 새로 시작합니다.)

1 프로그램을 문서화합니다. Display [image] Note Pad를 선택하여 Note pad 오브젝트를 생성하여 작업영역의 중앙 상단에 배치합니다. Note Pad 오브젝트의 편집 영역을 클릭하여, 템플릿으로 제공된 정보를 삭제하고 다음을 입력합니다:

Display Waveform generates a cosine waveform 및 sends it to a real time display.

Note Pad는 화면에 따라 크기를 조절할 수 있습니다. 오브젝트의 크기를 조절하기 위해서는, 오브젝트 메뉴를 열어 Size를 선택합니다. 크기를 조절하는 화살표 커서를 오브젝트 모서리에 옮기고 드래그합니다. 또한 오브젝트의 모서리에서 클릭과 드래그로 조절할 수 있습니다.

2 Device [image] Virtual Source [image] Function Generator를 선택하여 Function Generator 오브젝트를 작업영역의 왼쪽에 배치합니다. Frequency 필드를 클릭하여 Frequency를 100으로 수정합니다.

3 Display [image] Waveform(Time)을 선택하여 Waveform(Time) 오브젝트를 아래 그림과 같이 작업영역의 오른쪽에 배치합니다.

위의 그림에서 Function Generator 오브젝트의 Func은 데이터 출력핀이며, Waveform(Time)오브젝트의 Trace1은 데이터 입력핀입니다. VEE 프로그램에서 오브젝트 사이의 데이터 핀을 연결하고, 이 연결선이 프로그램의 흐름을 결정합니다.

4 Function Generator의 데이터 출력핀을 Waveform(Time) 오브젝트의 데이터 입력핀에 연결합니다. 연결하고자 하는 2 개의 핀을 마우스로 드래그 합니다. (마우스를 오브젝트의 Pin 에 가까이 가져가면 작은 사각형(□)이 표시되는데, 이곳을 마우스로 클릭하고 연결하고자 하는 핀에 다시 클릭하면 연결됩니다. 연결할 수 있는 터미날에서는 마우스의 커서 모양이 □ 표시로 바뀝니다.)

커서 형태는 연결할 수 있는 핀 근처에 있을 경우에 변경됩니다. 마우스 왼쪽 버튼을 클릭하고, 다른 핀으로 마우스 커서를 이동합니다. 그리고 다시 클릭합니다. 선은 자동적으로 두 핀 사이에 이어지고, 프로그램은 완성됩니다.

오브젝트의 타이틀바를 드래그하여 오브젝트를 옮길 수 있습니다. (핀 또는 터미날에서는 드래그할 수 없습니다. 핀 또는 터미날을 드래그하면 연결선이 표시됩니다.) 오브젝트를 이동하면 두 오브젝트 사이에 연결된 선이 다시 그려집니다.

선이 복잡하게 연결되어 있으면, Edit [image] Clean Up Line을 클릭 합니다. 선이 보다 보기 쉽게 정렬될 것입니다.

프로그램 실행

5 프로그램을 실행합니다. 툴바의 Run버튼을 클릭 하거나, 메뉴 바의 Debug [image] Run/Resume 선택, 또는 키보드 단축키 Ctrl+G를 클릭하면 프로그램이 실행됩니다. 이 프로그램은 다음과 같이 100Hz 주파수를 가지는 코사인 파형을 디스플레이 합니다. (다른 주파수 값을 입력할 수 있지만, 프로그램 생성방법에는 영향을 미치지 않습니다.)

툴바의 Run 버튼을 비롯하여 Stop, Pause와 Step버튼으로 프로그램을 제어할 수 있습니다. 실행 중인 프로그램을 일시정지 시켰다가 다시 실행하기 위해서는, Resume 버튼(Run 버튼과 같음)을 사용합니다. 한번에 프로그램의 한 오브젝트만 실행할 경우에는 툴바의 Step Into 버튼을 사용합니다.

프로그램을 실행하기 위해서는, 툴바에 있는 Run 버튼을 누르거나 Ctrl+G를 누릅니다. 다른 키보드 단축키는 다음과 같습니다:

명령 | 단축키
Pause | Ctrl+P
Resume | Ctrl+G
Step Into | Ctrl+T

오브젝트 속성 변경

오브젝트 메뉴 [image] Properties를 실행하여 오브젝트의 속성을 변경할 수 있습니다. 또한 오픈뷰에서 바로 일반적인 속성을 변경 할 수도 있다. Function Generator 오브젝트는 개의 필드를 가지고 있습니다. 이 2 개의 필드는 선택 필드입니다.

6 Function Generator 오브젝트의 Cosine(또는 화살표)을 클릭하여 드롭다운 메뉴를 확장합니다. 다음과 같이 Sine 함수를 출력하기 위하여 Sine을 선택하고 프로그램을 실행시킵니다.

대화상자에서 일부 필드는 화살표를 가지고 있지 않습니다. 이러한 필드는 키보드로 타이핑하여 입력하는 필드입니다. 필드를 클릭하면 키보드 커서가 나타납니다. 일반적인 키보드와 마우스 편집기술로 커서를 옮겨가며 값을 설정할 수 있습니다.

7 다음과 같이 Frequency 필드의 숫자 100의 오른쪽 0을 드래그 하여 하이라이트 시킵니다.

8 키보드의 Delete 키를 눌러 주파수 값을 10으로 변경하고 프로그램을 실행시킵니다. 프로그램 실행결과는 다음과 같습니다.

디스플레이 된 파형은 현재 10Hz의 사인파입니다. 다음과 같이 오브젝트 인자를 변경합니다.:

• Function Generator 오브젝트의 Deg(또는 화살표)를 클릭하고 Rad으로 위상의 단위를 변경합니다. 그리고 Phase value 필드를 클릭하고 PI값을 입력합니다. 프로그램을 실행하고, 파형에서 위상이 이동되는 것을 주의해야 합니다. 위상을 0으로 변경하고, Deg로 단위를 변경합니다.

• Waveform(Time) 오브젝트의 y-axis 리미트를 -1에서 1로 설정합니다. y-axis의 Mag를 클릭하여, 이 대화상자에서 설정을 변경합니다. 최대값과 최소값을 각각 2와 -2로 변경합니다. 새로운 리미트가 적용되어 파형이 표시됩니다. x-axis 축의 인자는 Time을 클릭하여 변경합니다.

스크린 인쇄

9 스크린을 인쇄하기 위해서는 File [image] Print Screen을 선택합니다. 다음과 같은 대화상자가 나타납니다.

OK를 클릭하면, 지정된 기본 프린터로 화면을 프린트합니다. 다른 프린터를 선택하거나, 프린트 범위, 그리고 몇 부를 프린트 할 것인지도 설정할 수 있습니다. Properties 버튼을 클릭하면, 더 많은 설정을 변경할 수 있습니다. 프린터 드라이버가 다르면, 다른 형태의 대화상자가 표시될 수 있습니다. 윈도우 대화상자를 사용하는 방법에 대한 자세한 설명은 Microsoft Windows 도움말을 참조하십시오.

또한 툴바의 Print Screen 버튼을 클릭하면 화면을 즉시 출력할 수 있습니다.

프로그램 저장

임의의 시간에 프로그램을 저장할 수 있습니다. (프로그램을 완성하거나 혹은 완성하지 못하였을 경우에도 작업 공간에서 저장할 수 있습니다.)

10 메뉴 바의 File [image] Save As...를 선택하고, 대화상자에서 입력을 마무리 합니다.

Save File이라는 제목을 가진 대화상자가 표시됩니다.

11 디폴트로, Windows 기반의 VEE는 My Documents 폴더의 하위 폴더에 생성한 VEE Programs 서브-디렉토리에 저장합니다. 현재의 프로그램을 저장하기 위하여, 파일이름 필드에 simple-program 을 입력하고 Save 버튼을 누르면, .vee 확장자가 자동으로 생성됩니다.

주의사항

윈도우 2000과 윈도우 XP에서는 운영시스템에서 허용하는 만큼의 긴 파일명도 입력할 수 있다

파일 저장 대화상자에서 다음과 같이 다른 필드로 변경할 수 있습니다:

파일저장 옵션 | 설명
Save in | 드롭다운 메뉴를 열면 디렉토리 및 드라이브를 변경 할 수 있습니다. 폴더를 열기 위해서 더블클릭을 합니다.
File name | 선택한 파일명을 입력합니다.
Save as type | VEE 프로그램은 일반적으로 .vee 확장자로 저장을 하지만, 필요시 원하는 파일 종류로 변경할 수 있습니다. 파일명을 .vee 확장자가 없이 입력하면, 자동으로 .vee 확장자가 적용됩니다.
Save colors 및 fonts with program | (선택사항) 이 항목을 클릭하면, Default Preferences 메뉴에서 프로그램 색깔과 폰트가 적용되어, 향후 프로그램을 열면, 이들 색깔과 폰트가 적용됩니다. 체크할 경우, VEE는 프로그램의 일부분으로 사용자가 만든 기본 설정을 변경하여 저장합니다.(
Save I/O configuration with program | (선택사항) 이 항목을 체크하면, 프로그램을 열 때, Instrument Manager에서 설정한 내용이 적용됩니다. 체크하면, VEE는 프로그램과 함께 I/O 설정이 저장됩니다.

주의사항

같은 파일명으로 다시 저장 할 경우, Save 버튼을 클릭하거나, Ctrl+S를 누릅니다.(File?? Save). 프로그램 개발하는 동안 수시로 저장하는 것이 좋습니다. 키보드의 Ctrl+W를 누르거나 File ( Save As으로 프로그램을 다른 이름으로 저장할 수 있습니다.

Agilent VEE 종료

Select File [image] Exit로 VEE 어플리케이션을 닫을 수 있습니다. Ctrl-E 단축키를 누르거나, 타이틀 바의 우측 끝에 있는 x 버튼으로 VEE어플리케이션을 닫을 수 있습니다.

아래 표의 기능을 반드시 사용할 필요는 없지만, VEE에서 마우스 또는 키보드의 응답이 없을 경우, 아래 표의 내용과 같이 VEE를 종료할 수 있습니다:

운영체제 | 방법
Windows 2000 및 Windows XP에서 | Ctrl-Alt-Delete를 누르고 응용프로그램 버튼을 클릭합니다. 어플리케이션 목록에서 VEE를 선택 하고, 작업 끝내기를 클릭합니다

Agilent VEE 재 시작 및 실행

1 Start [image] Programs [image] Agilent VEE Pro 를 클릭합니다.

2 Select File [image] Open을 선택하고 Open File 대화상자의 입력을 마무리합니다.

형식은 Save File 대화상자와 같은 형식입니다. 설치하는 동안 여러 설정들을 지정하지 않는 한, 사용자 프로그램에 대한 기본 디렉토리는 VEE_USER 디렉토리입니다. VEE는 메인 창에서 프로그램을 엽니다.

3 Run 버튼을 클릭합니다. Run 버튼은 작은 화살표 형태이며, 툴바의 Debug메뉴 하단에 위치합니다.

Run 버튼

주의사항

명령창에서 vee.exe -r 파일이름 을 실행하여 VEE를 시작하면 지정한 파일의 VEE 프로그램이 자동으로 실행됩니다. 예를 들면 윈도우 데스크 탑에 아이콘을 생성하고, 이 아이콘의 속성 [image] 바로가기에 특정 VEE 프로그램을 실행하도록 설정할 수 있습니다. 바탕화면의 아이콘을 더블클릭하여 VEE를 자동으로 실행할 수 있습니다. 더 자세한 내용은 윈도우 도움말의 명령어와 프롬프트 경로를 참조하십시오.

하나의 작업창에 여러 개의 윈도우 띄우기

현재까지는 프로그램 작성하는 법 등을 메인창의 작업공간에 초점을 맞추어 설명하였습니다. VEE 프로그램은 메인창에서 여러 창을 사용할 수 있습니다. 즉, UserObjects 와 UserFunctions. 과 등의 오브젝트들을 포함할 수 있습니다. (UserObject와 UserFunction은 메인프로그램의 하위프로그램 또는 서브루틴과 같습니다. UserObject와 UserFunction은 “실습 2-1: UserObject 생성" . 에서 자세히 설명되어 있습니다.) 여기서는 여러 개의 윈도우를 가진 프로그램을 관리하는 법에 대해 설명합니다.

다음 그림은 4개의 윈도우를 가지고 있는 프로그램입니다. 각 윈도우는 아이콘(이 아이콘을 통해서 오브젝트 명령을 사용할 수 있습니다.), 타이틀, 최소화, 최대화, 닫기의 세가지 버튼을 가지고 있습니다. 윈도우 최대화 버튼을 클릭하면, 해당 화면이 VEE 작업공간 영역 전체를 차지합니다. 윈도우 최소화 버튼은, 해당 화면을 VEE 작업공간의 하단에 나타나는 아이콘으로 만듭니다. 윈도우 닫기 버튼은 작업공간에서 창을 닫습니다. 현재 활성화되어 있는 윈도우의 작업창 타이틀바가 하이라이트됩니다.

위 그림에서와 같이, 프로그램 탐색기는 프로그램을 계층구조로 표시하여, 각각의 프로그램에 쉽게 접근할 수 있도록 도와줍니다.

프로그램 탐색기가 디스플레이 되어있지 않는 경우에는, View [image] Program Explorer를 클릭합니다. 디폴트 상태에서는 프로그램 탐색기가 표시되어 있습니다. 프로그램 탐색기를 디스플레이 하지 않은 상태에서 File [image] Default Preferences에서 저장 버튼을 클릭하고, 이후에 VEE를 실행하면 프로그램 탐색기가 표시되지 않습니다.

메인창을 앞으로 불러오려면, 프로그램 탐색기에서 메인창의 아이콘을 더블 클릭합니다.

주의사항

VEE에서 메인창이 닫혀 있으면, View [image] Main을 선택하여 메인창을 다시 디스플레이 할 수 있습니다.

관련정보

핀과 터미날 사용, 오브젝트 사용법, Agilent VEE 기본적인 사용법, Agilent VEE 프로그램 동작법


Agilent VEE 프로그램 동작법

실습 1-2: 데이터 흐름 및 전달 보기

실습 1-3: Noise Generator 추가

실습 1-4: 진폭 입력과 Real64 Slider 추가

실습 1-2: 데이터 흐름 및 전달 보기

VEE에서, 프로그램 실행의 일반적인 흐름을 “전달 (propagation)”이라 합니다. 프로그램의 전달은 오브젝트들의 위치가 아니라, 오브젝트가 연결된 경로에 의해 결정됩니다. 전달은 주로 연결된 오브젝트들의 데이터 입력과 출력이 어떻게 연결되어 있느냐에 따른 “데이터 흐름(data flow)”에 의해 결정됩니다.

주의사항

C, Basic, Pascal과 같은 다른 프로그램 언어에서 실행 순서는 시퀀스와 선택한 규칙에 의해 결정됩니다. 일반적으로 하나의 명령어가 다른 명령어로 분기하거나, 하위 스레드로 동작하지 않는다면, 명령어는 프로그램에서 코드를 작성한 순서대로 실행합니다.

VEE 프로그램의 데이터 흐름 규칙은 다음과 같습니다:

• 데이터는 오브젝트의 왼쪽에서 오른쪽으로 흐릅니다. 이것은 데이터 핀을 가지고 있는 모든 오브젝트의 왼쪽 데이터 핀은 입력, 오른쪽 데이터 핀은 출력임을 의미합니다.

• 오브젝트의 모든 데이터 입력핀은 연결되어 있어야만 합니다. 데이터의 입력핀이 연결되지 않은 상태에서 프로그램을 실행시킬 경우에는 에러가 발생합니다.

• 오브젝트는 데이터 입력핀으로 새로운 데이터가 수신될 때까지 실행하지 않습니다.

• 오브젝트는 연결된 특정한 데이터 출력핀의 동작이 완료되어야만 실행을 종료합니다.

VEE에서, 시퀀스입력핀 및 시퀀스출력핀을 이용하여 실행 순서를 변경할 수 있습니다. 그러나 특별한 경우를 제외하고는 일반적으로 시퀀스 핀을 사용할 필요가 없습니다. 일반적으로 시퀀스 핀의 사용을 피하는 것이 가장 좋습니다. 가능하다면 프로그램의 실행은 데이터의 흐름으로 제어하도록 합니다.

데이터의 흐름을 관찰하기 위하여, 이전에 생성한 프로그램을 엽니다. 툴바의 Open 버튼을 클릭하여 simple-program.vee 프로그램을 엽니다. (simple-program.vee 프로그램은 "실습 1-1 오브젝트를 연결하여 프로그램 생성"에 기술되어 있습니다.) 프로그램을 실행합니다 . 값에 따라서 파형이 형태가 다를 수 있지만, 다음과 같은 형태의 파형이 표시됩니다.

주의사항

T다양한 실습과 프로그래밍 예제를 위한 VEE 프로그램이 VEE에 Help [image] Open Example... Manual [image] UsersGuide에서 제공됩니다.

Function Generator 오브젝트의 데이터 출력 핀은 Waveform(Time) 오브젝트의 데이터 입력 핀에 연결되어 있습니다. 프로그램을 실행할 경우, Waveform(Time)오브젝트는 Function Generator 오브젝트로부터 데이터를 받을 때까지 실행하지 않습니다. 이것은 데이터 흐름의 간단한 예제입니다.

실습1-3: Noise Generator 추가

다음과 같이 simple-program.vee 에 Noise Generator를 추가하여 “노이즈가 섞인 사인 파형”을 추가합니다.

1 원래의 프로그램에서 Function Generator와 Waveform(Time) 오브젝트에 연결되어있는 라인을 제거합니다. 툴 바의 Delete Line 버튼을 클릭한 후 삭제할 라인을 클릭하거나, 키보드 단축키 Shift + Ctrl을 누른 채로 삭제할 라인을 클릭합니다.

2 Function Generator 오브젝트를 아이콘화 합니다.

3 Device [image] Virtual Source [image] Noise Generator를 선택하여 Noise Generator 오브젝트를 추가합니다.

4 Data [image] Function & Object Browser 메뉴를 선택하여 A + B 오브젝트를 추가합니다.

Function & Object Browser를 실행하면 아래와 같이 나타납니다. Type을 Operator로, Category를 Arithmetic, Operator를 + 로 선택합니다. Create Formula 버튼을 클릭하고, 작업창의 Function Generator와 Waveform(Time) 오브젝트의 사이에 배치합니다. A+B 오브젝트를 최소화 합니다.

1 입력핀과 출력핀을 연결합니다.

2 프로그램을 실행합니다.

A+B 오브젝트는 Function Generator와 Noise Generator 오브젝트가 실행되기 전까지 실행되지 않습니다. 그러나, Function Generator와 Noise Generator 중 어느 오브젝트가 먼저 실행되느냐는 중요하지 않습니다. 왜냐하면 이들 중 어느 것이 먼저 실행되더라도 실행결과는 동일하기 때문입니다.

A+B 오브젝트의 2개의 입력핀이 데이터를 받아야만 A+B 오브젝트가 실행되어서, 2개의 신호를 합산하고 Waveform(Time) 오브젝트로 결과를 출력합니다.

주의사항

VEE 프로그램 내에서의 데이터 흐름은 실행 순서를 정의합니다.

실행을 관찰하기 위하여 Debug [image] Show Execution Flow 와 Show Data Flow옵션을 체크합니다. 프로그램을 다시 한번 실행 시킵니다. 각각의 오브젝트가 강조되고, 작은 사각형의 마커가 데이터의 흐름을 보여주기 위해 라인 상에서 이동합니다.

주의사항

툴바의 버튼이나 Debug 메뉴에서 Show Execution Flow 와 Show Data Flow 옵션을 동시에 또는 개별적으로 활성화할 수 있습니다. 이들을 활성화하여 프로그램을 실행하면, 프로그램 실행속도가 저하되므로, 이들을 비활성화하여 사용하는 것이 좋습니다.

실습1-4: 진폭 입력과 Real64 Slider 추가

simple-program.vee에 진폭 입력과 Real64 Slider를 추가합니다.

1 오브젝트 메뉴를 클릭하거나, Noise Generator 오브젝트의 왼쪽에 있는 “터미날 영역”에 마우스 커서를 올려 놓고, 단축키 Ctrl+A를 누릅니다. 입력터미날을 추가할 수 있는 대화상자가 나타납니다.

2 OK 버튼을 클릭하여 Amplitude 입력터미날을 생성합니다.

이제 Noise Generator 오브젝트에 실수 데이터를 입력할 수 있는 진폭 입력핀이 생성 되었습니다. VEE는 실수 입력을 쉽게 발생시 킬 수 있는 Real64 Slider 오브젝트를 제공합니다. (이 오브젝트는 Data [image] ? Continuous [image] Real64 Slider를 선택하여 추가 할 수 있으며, 같은 위치에 들어있는 Real64 Knob 오브젝트를 사용할 수도 있습니다.)

3 다음과 같이 Real64 Slider 오브젝트(Data Continuous [image] Real64 Slider)를 추가하고 출력핀을 Noise Generator 오브젝트의 Amplitude 입력핀에 연결합니다. 프로그램을 실행합니다.

Real64 Slider 오브젝트의 슬라이드 컨트롤을 드래그하여 노이즈의 진폭을 변화시킵니다. 노이즈의 진폭은 프로그램을 실행시키기 전까지 변화하지 않습니다. 디스플레이 되는 파형의 노이즈 성분은 Real64 Slider의 출력 값에 따라 변화합니다.

실행 순서는 데이터의 흐름에 의해 지정됩니다. Real64 Slider가 실행하기 전까지 Noise Generator 오브젝트는 실행되지 않습니다. A+B 오브젝트 또한 Function Generator와 Noise Generator 가 실행되기 전까지는 실행될 수 없습니다. 그러나 어느 것이 먼저 실행되는지는 상관할 필요가 없습니다. 결국, Waveform(Time) 오브젝트는 A+B 오브젝트가 실행을 끝낸 후에만 실행합니다.

주의사항

라인 위에 마우스 포인터를 올려 놓으면 라인을 흐르는 출력 값을 디스플레이 할 수 있습니다. 예를 들면, Real64 Slider 오브젝트에서 Noise Generator까지 0.401 값을 표시합니다. 아래의 그림에서 Real64 Slider 오브젝트는 실수 0.401을 출력하고 있습니다. 오브젝트들이 아이콘뷰 상태로 있음을 주의합니다.)

4 다음 실습에서 사용하기 위하여 프로그램을 simple-program.vee에 다시 저장합니다.

Copyright (c) 1991-2006 Agilent Technologies, Inc.


일반적인 기법

VEE의 메인 프로그램 내부에서, 기존 오브젝트들을 논리적인 UserObject로 묶을 수 있습니다. UserObject 오브젝트는 UserObject 윈도우에 오브젝트를 배치하여 생성됩니다. 메인 프로그램에서와 같이 UserObject 윈도우 내부에서도 입력과 출력을 연결할 수 있습니다. UserObject는 다른 오브젝트들과 마찬가지로 입력과 출력을 통해 메인 프로그램의 다른 오브젝트에 스스로 연결됩니다.

UserObject는 메인 프로그램 안에서 특별한 기능을 제공하는 부분을 하나의 오브젝트로 표시하기 위해서 생성합니다. 또한 메인 작업영역에서 공간을 절약하고, 전체적인 프로그램을 더욱 이해하기 용이합니다.

VEE 프로그램에서는 메인 프로그램 안에 여러 개의 UserObject를 포함할 수 있습니다. 각 UserObject는 메인창에서 아이콘 뷰로 표시할 수 있습니다. 메인 프로그램에서 UserObject의 아이콘 뷰는 UserObject라 명명된 편집창과 이어져 있습니다. 예를 들면, AddNoise라 명명된 UserObject를 메인 프로그램 안에서 그것의 아이콘 창 및 UserObject 편집 창의 타이틀 바에서는 AddNoise라고 표시됩니다. UserObject를 생성하는 방법은 다음의 실습에서 설명됩니다.

실습 2-1: UserObject 생성

실습 2-2: 사용자 입력을 위한 대화상자 사용법

실습 2-3: 데이터 파일 사용법

실습 2-4: 패널뷰(사용자 인터페이스) 생성

실습 2-5: 수학연산을 사용한 데이터 프로세싱

실습 2-6: 랜덤 숫자 발생

실습 2-7: 전역변수 설정 및 읽기


실습 2-1: UserObject 생성

실습 2-1: UserObject 생성 [image] UserObject를 선택하여 빈 UserObject 아이콘을 메인 윈도우에 생성합니다. UserObject 아이콘을 더블클릭 하면, 다음과 같은 오픈뷰 상태로 디스플레이 됩니다.

• 프로그램 내부에서 오브젝트들을 선택한 후, 메뉴 바의 Edit [image] Create UserObject를 클릭하여 UserObject를 생성할 수 있습니다.

생성된 UserObejct는 메인 프로그램의 일부가 됩니다. UserObejct 윈도우는 아이콘뷰, 오픈뷰, 또는 다음과 같은 스크린 하단부에 최소화된 형태로 디스플레이 될 수 있습니다.

• 닫기 버튼을 클릭하여 창을 닫으면, UserObject는 메인 윈도우에 아이콘과 같이 디스플레이 됩니다.

• 최대화 버튼을 클릭하여 윈도우를 최대화 합니다. UserObject 창은 VEE 작업공간에서 사용 가능한 모든 공간을 사용하게 됩니다.

• 최소화 버튼을 클릭하여 윈도우를 최소화 합니다. 최소화된 UserObject는 VEE 창업 영역 하단부에 디스플레이 됩니다.

주의사항

UserObject의 아이콘 뷰는 항상 메인 윈도우 내부에 존재하며, UserObject의 핀을 메인 윈도우의 다른 오브젝트에 연결할 수 있습니다.

주의사항

작업공간을 더 넓게 사용하기 위해서, View 메뉴의 Program Explorer를 선택 해제하고 사용할 수도 있습니다.

프로그램에 UserObject를 생성합니다.

1 “Lab 1-4: Adding an Amplitude Input and Real64 Slider"에서 생성한 프로그램simple-program.vee )을 엽니다. 프로그램이 작업영역에 나타납니다.

2 프로그램에서 Real64 Slider를 제거합니다. Real64 Slider의 오브젝트 메뉴를 클릭하고 Delete를 선택하거나, 오브젝트 메뉴 버튼을 더블클릭 합니다.

주의사항

이 상태에서 프로그램을 다시 실행한다면, Noise Generator의 입력 터미날이 여전히 존재하기 때문에 에러를 발생합니다. VEE 프로그램을 실행시키기 위해 모든 입력핀이 연결되어 있어야 합니다.

3 Noise Generator 오브젝트의 메뉴를 클릭하거나 마우스 커서를 오브젝트 위에 올려 놓고 마우스의 오른쪽 버튼을 클릭하여 메뉴를 연 다음, Delete Terminal [image] Input을 선택하고 나타나는 대화상자에서 OK 버튼을 눌러 Amplitude 입력을 제거합니다.

4 File [image] Save As...를 선택하여 프로그램을 usrobj-program1.vee로 저장합니다.

5 Noise Generator 오브젝트를 최소화 하고, 그림과 같이 재정렬합니다.

6 Ctrl-마우스 왼쪽 버튼을 이용하여 Noise Generator 와 A+B 오브젝트를 선택합니다. Edit [image] Create UserObejct를 클릭합니다. Create UserObejct라는 이름을 가진 대화상자가 나타납니다. (오브젝트의 이름을 수정 할 수 있습니다.)

이 UserObject에는 Noise Generator 와 A+B 오브젝트가 포함되며, 입력 및 출력핀이 자동으로 생성되어, UserObject가 윈도우 내부에 배치됩니다.

키보드의 Home 버튼을 누르면 UserObject의 좌측 상단으로 화면이 이동하게 됩니다.

주의사항

Create UserObject 명령을 실행하여 UserObject를 생성하기 전에, 기존 오브젝트를 재배치합니다. 오브젝트들을 하나의 영역에 표시하지 못하면, UserObejct는 선택된 모든 오브젝트들을 포함하기 위하여 자동으로 크기가 조절됩니다. UserObject의 작업영역에서 오브젝트를 재정렬 하고 크기를 수정하며, 관련된 작업영역으로 UserObject를 이동시킬 수 있습니다. 그러나 미리 오브젝트들을 논리적으로 배치한다면, 이 작업을 더욱 쉽게 완료할 수 있습니다.

주의사항

Edit [image] Clean Up Lines 메뉴를 사용하여 프로그램의 선을 정돈 할 수 있습니다. UserObject의 라인을 정돈하기 위해서는 윈도우가 활성화 되어 있어야 합니다. UserObejct 윈도우를 클릭하고 Edit [image] Clean Up Lines를 실행합니다.

스크린 공간을 확보하기 위하여 UserObejct를 아이콘 뷰로 만듭니다.

7 UserObject의 타이틀을 AddNoise로 변경합니다. 타이틀 바를 더블클릭하고 Properties창의 Title 항목에 새로운 이름을 입력합니다. 다음 그림에 이름이 변경된 UserObejct가 표시되어 있습니다.

오브젝트의 타이틀 바를 더블클릭 하는 것 만으로 Properties 대화상자를 바로 띄울 수 있습니다.

8 Run 버튼을 클릭하여 그림과 같이 잡음이 섞인 사인 파형을 디스플레이합니다.

AddNoise는 최소화되어 작업영역의 하단부에 나타납니다. Add Noise를 최소화 하려면, 타이틀 바의 최소화 버튼을 클릭합니다. 최소화 버튼은 밑줄 기호(_)를 가진 정사각형 버튼입니다.

UserObject를 사용하면 작업영역을 절약하지만 UserObject의 실질적인 사용목적은 프로그램을 구조화하는데 있습니다. UserObject를 사용하면 탑다운 방식의 VEE 프로그램을 작성할 수 있습니다. VEE에서는 UserObject 외에 UserFunction 재사용 코드 모듈을 제공합니다.

VEE 메뉴 바의 Help [image] Contents and Index를 선택한 다음 How Do I…, Tell Me About…, 또는 References 항목에서 UserObject에 관한 자세한 정보를 참조할 수 있습니다.

일단 프로그램을 usrobj-program3.vee로 저장합니다. 다음에 섹션에서 이 프로그램을 사용합니다.


실습 2-2: 사용자 입력을 위한 대화상자 사용법

usrobj-program3.vee 프로그램을 엽니다. (이미 열려있으면 그대로 사용합니다.)

Data [image] Dialog Box 메뉴에는 대화상자를 제공하는 6 개의 서브 메뉴(Text Input, Int32 Input, Real64 Input, Message Box, List Box, File Name Selection Box)가 있습니다. Text Input, Int32 Input, Real64 Input에서 제공하는 대화상자에는 명령 프롬프트, 라벨, 디폴트값, 고정값 및 에러메시지를 사용자가 구성할 수 있습니다. 프로그램에서 이들 대화상자를 사용하면, 프로그램 실행 시 대화상자가 팝업되어 사용자가 대화상자에 값을 입력하도록 합니다.

1 Data [image] Dialog Box [image] Int32 Input을 선택하고 Function Generator의 왼쪽에 배치 시킵니다. Prompt/Label 필드를 “Enter Frequency:”로 변경합니다. Default Value 필드를 100으로 변경합니다.

입력 필드를 더블클릭하면 입력필드를 하이라이트시킬수 있으며, 이 상태에서 직접 데이터를 입력할 수 있습니다.

2 Value Constraints 필드를 최소 1에서 최대 193으로 변경합니다. 새로운 값들을 반영하기 위한 에러 메시지 필드에는 적절한 메시지를 입력합니다. (여기서는 대화상자의 입력범위를 1 이상 193 이하로 제한조건을 걸었으므로 에러메시지 상자에도 이를 반영하여 “1 이상 193 이하의 값을 입력 하십시오.”등의 문장을 입력합니다.) Int32 Input 오브젝트를 아이콘화 합니다.

3 Function Generator의 오브젝트 메뉴를 열고 Add Terminal [image] Data Input을 선택합니다. Select Input to add 대화상자에서 Frequency를 선택하고 OK를 클릭합니다.

4 Int32 Input 오브젝트의 상단 출력핀을 Function Generator의 입력핀에 연결합니다. 이제 주파수는 Function Generator의 입력핀에 들어오는 값에 의해서만 변경 될 수 있으며, 더 이상 Frequency Input 입력 필드를 수정할 수 없습니다. 프로그램의 최종 결과는 다음과 같습니다.

5 프로그램을 실행시킵니다. Enter Frequency를 요청하는 Int32 입력 대화상자가 나타납니다. 입력상자에서 다른 주파수로 프로그램을 실행합니다. 팝업상자를 간단히 클릭 또는 드래그하여 제어할 수 있습니다.

사용자가 193 이상의 주파수를 입력하게 되면 에러 메시지가 출력됩니다. 1 미만 또는 194 이상의 값을 입력하여 사용자가 설정한 에러 메시지가 정확히 나타나는지 살펴봅니다.

프로그램을 usrobj1-program4.vee로 저장합니다. 이 프로그램은 다음 섹션에서 다시 사용됩니다.

주의사항

본 매뉴얼에 수록된 실습과 프로그래밍 예제는 VEE, under Help [image] Open Example... Manual [image] UsersGuide에서 제공됩니다.


실습 2-3: 데이터 파일 사용법

To File 및 From File 오브젝트를 사용하여 VEE에서 생성한 데이터를 파일에 저장하고, 파일로부터 데이터를 읽어 VEE에서 사용할 수 있습니다.

이전 실습에서 작성한 usrobj-program4.vee 프로그램을 엽니다.

1 I/O [image] To [image] File을 선택하여 메인 작업영역에 배치합니다.

2 디폴트 파일명을 myFile에서 wavedata로 변경합니다.

Clear File At PreRun & Open 왼쪽의 체크박스를 클릭하여 체크합니다. To File은 디폴트로 현재 파일의 내용에 새로운 데이터를 첨부하도록 되어 있습니다. 그러나 Clear File At PreRun & Open 체크박스를 체크하면, 프로그램을 실행할 때마다 현재 파일의 내용을 지우고 새로운 내용만을 저장합니다. To File 오브젝트는 다음과 같습니다.

3 데이터를 입력하기 위하여 Double-Click to Add Transaction으로 표시된 영역을 더블클릭 합니다. 다음 그림과 같은 대화상자가 나타나면, TEXT 필드(또는 옆의 화살표)의 드롭다운 메뉴에서 CONTAINER를 선택한 다음, OK 버튼을 클릭합니다. I/O Transaction 대화상자에서 OK 버튼을 누르면, To File 오브젝트에 입력핀 a가 자동으로 추가됩니다.

WRITE CONTAINER 등의 To File 오브젝트의 옵션메뉴에 대한 자세한 내용은 To File 오브젝트의 도움말을 참조하십시오. 또한 트랜잭션에 대한 자세한 내용은 Help => Contents 및 Index => reference => I/O Transactions을 참조하십시오.

4 Add Noise UserObject의 데이터 출력핀을 To File의 데이터 입력핀에 연결합니다. 현재까지의 프로그램 작성 결과는 다음과 같습니다.

주의사항

데이터 출력핀에는 여러 개의 데이터 입력핀을 연결할 수 있습니다.

5 Run 버튼을 클릭하여 프로그램을 테스트 합니다. 프로그램은 Add Noise UserObject에 의해 잡음성 코사인 파형을 디스플레이 하고 wavedata 파일에 파형의 container를 기록합니다.

To File 오브젝트를 더블클릭하고 입력 터미날 a를 더블클릭 하여 내용을 살펴봅니다. 256 포인트의 배열을 볼 수 있습니다.

데이터를 읽어오기 위해 From File 오브젝트를 추가 합니다.

6 I/O [image] From [image] File 을 선택하고 메인 작업창에 배치합니다. 읽기 트랜잭션 READ CONTAINER x를 추가하고 파일명을 wavedata로 변경합니다. AddNoise 와 Waveform(Time) 사이의 라인을 삭제하고, 다음과 같이 오브젝트들을 연결합니다. To File과 From File 사이의 시퀀스 라인의 역할은 To File의 실행이 완료된 경우에만 From File를 실행할 수 있도록 합니다. 즉 프로그램이 파일에 먼저 기록하여야만 데이터를 읽을 수 있도록 합니다.

7 프로그램을 실행합니다. 프로그램 실행결과는 그림과 같습니다. 프로그램을 usrobj-program.vee로 저장합니다.


실습 2-4: 패널뷰(사용자 인터페이스) 생성

프로그램 개발과 함께 사용자 인터페이스를 생성하는 경우도 있습니다. 사용자 인터페이스를 생성하기 위해서는 프로그램에 패널뷰를 추가합니다. 이 실습은 “실습 1-2: 데이터 흐름 및 전달보기"에서 생성한 simple-program.vee을 사용합니다.

1 simple-program.vee파일을 열면 다음과 같이 나타납니다.

2 사용자 인터페이스에서 사용할 오브젝트를 선택합니다. Ctrl키를 누른 채로 사용할 모든 오브젝트를 클릭합니다. 본 실습에서는 Real64 Slider와 Waveform(Time) 오브젝트를 선택합니다. 이들이 선택되면 이들 오브젝트에 각각 그림자가 표시됩니다.

3 툴 바의 Add to Panel 버튼을 클릭하거나, Edit [image] Add To Panel 을 선택합니다. 선택한 2개의 오브젝트가 패널뷰에 생성됩니다.

아래 그림과 같이 패널뷰 내의 오브젝트의 위치와 크기를 변경합니다.

4 메인 윈도우의 타이틀 바 왼쪽 상단의 To Detail 버튼을 눌러 디테일 뷰로 이동합니다. 패널뷰로 돌아오려면 To Panel 버튼을 클릭합니다.

디테일뷰는 프로그램을 편집하는 일반적인 윈도우입니다. 패널뷰에서는 디테일뷰와 관계없이 오브젝트를 이동, 크기 변경 또는 삭제할 수 있습니다. 디테일뷰는 프로그램을 개발하는데 사용되고, 패널뷰는 사용자 인터페이스를 제공하는 데 사용됩니다.

5 프로그램을 simple-program_with_panel.vee로 저장합니다.

다음과 같이 패널뷰 변경을 실습합니다:

• 패널의 색을 변경. 패널뷰에서 메인 윈도우 오브젝트 메뉴에서 Properties를 선택하여, 속성창에서 BackColor 속성을 임의의 색으로 변경합니다.

• 오브젝트의 색과 글꼴을 변경. 타이틀바를 더블 클릭하면 속성창이 나타납니다. 이 속성창에서 Colors과 Fonts속성을 변경합니다.

• 패널뷰의 오브젝트를 입체적으로 표시. 해당 오브젝트의 속성창에서, Border 속성을 Raised로 변경합니다.

• 패널뷰의 타이틀을 변경. 메인 속성창을 열고, Title 속성을 임의의 값으로 변경합니다. 프로그램을 실행하면 패널뷰의 타이틀이 표시됩니다.


실습 2-5: 수학연산을 사용한 데이터 프로세싱

VEE는 MATLAB의 데이터 및 신호처리 기능과 함께 광범위한 수학처리 능력과 데이터 타입을 제공합니다. 자세한 내용은 데이터 처리를 참조하십시오.

데이터 타입 사용법

VEE는 Text, 정수, 실수, 복소수 등의 여러 가지 데이터 타입을 지원합니다. 이미 간단한 예제를 통하여 A+B 오브젝트가 두 개의 waveform에 추가 될 수 있음을 보았습니다.

더하기(+) 연산자는 여러 데이터 타입을 연산할 수 있고, 여러 데이터 타입을 혼용하여 연산할 수도 있습니다.

새로운 VEE 프로그램을 열어서, 아래의 실습을 실행 하십시오.

1 File [image] New을 실행하여 새로운 VEE 프로그램을 엽니다.

2 Data [image] Constant [image] Real64를 선택하여 Real64 Constant 오브젝트를 추가합니다.

3 Data [image] Constant [image] Complex을 선택하여 Complex Constant 오브젝트를 추가합니다.

4 A+B 오브젝트를 추가합니다. Device [image] Function & Object Browser로 Function & Object Browser를 엽니다. Type은 Operators를, Category는 Arithmetic을, Operators는 + 를 선택합니다. Create Formula를 클릭하면 오브젝트가 생성됩니다.

5 Display [image] AlphaNumeric을 통하여 AlphaNumeric 오브젝트를 추가합니다. 아래와 같이 오브젝트들을 연결합니다. Real64 Constant 오브젝트의 데이터 입력 필드에 1.53을, Complex 오브젝트에는 (2,1)을 입력합니다. 프로그램 실행결과는 다음과 같습니다.

VEE는 자동으로 필요한 데이터로 변환하여, A+B 오브젝트에서 덧셈을 수행합니다. 실수 1.53는 복소수 (1.53,0)으로 변환되어, 복소수 (2,1)과 덧셈 연산됩니다. 연산결과가 복소수 (3.53,1)으로 리턴되어 AlpahNumeric 오브젝트에 디스플레이 되었습니다.

주의사항

일반적으로, VEE에서는 모든 데이터 타입이 자동변환됩니다. 자세한 사항은 VEE 메뉴바에서 Help [image] Contents and Index를 선택하여, How Do I..., Tell Me About..., 또는 Reference를 참조하십시오.

데이터 형태 사용법

VEE는 스칼라와 어레이와 같은 다양한 데이터 형태를 지원합니다. VEE는 어레이의 개별 앨리먼트에 대해서 뿐만 아니라 어레이 전체에 대해서도 직접 연산할 수 있습니다.

다음 프로그램에서는 10 개의 앨리먼트를 가지는 1차원 어레이를 생성하고, 10개의 값의 평균값을 연산하여 디스플레이 합니다.

1 작업영역을 File [image] New로 초기화 합니다.

2 Flow [image] Repeat [image] For Range를 선택하여 For Range 오브젝트를 추가합니다.

3 Data [image] Sliding Collector를 선택하여 Sliding Collector 오브젝트를 선택합니다.

4 median(x)오브젝트 추가. 우선 Device [image] Device ???Function & Object Browser를 실행합니다. Type은 Built-in Functions를 Category는 Probability & Statistics를, Functions은 median을 선택하고 Create Formula를 클릭합니다.

툴바에서 fx을 클릭하여 Function & Object Browser를 디스플레이할 수도 있습니다.

5 Display [image] AlphaNumeric을 선택하여 AlphaNumeric 오브젝트를 추가합니다. 그림과 같이 오브젝트를 연결합니다. AlphaNumeric. Connect the objects like below

프로그램을 실행합니다. 실행결과는 위 그림과 같습니다.

Formula 오브젝트 사용법

VEE는 온라인 도움말의 Reference부분에서 산술연산자와 함수의 도움말을 제공합니다. Help [image] CContents and Index를 선택합니다. Reference를 선택하고 필요한 참조합니다.

VEE가 기본 제공하는 연산자와 함수는 Device [image] Function & Object Browser (또는 툴바의 fx)에서 선택하여 사용할 수 있습니다. Type, Category와 Functions을 클릭하여 Function & Object Browser로부터 항목을 선택합니다. Create Formula를 클릭하여 오브젝트를 생성합니다.

VEE가 기본 제공하는 연산자와 함수은 Formula 오브젝트에서 직접 텍스트로 입력하여 사용할 수 있습니다. 이 섹션에서는 Formula 오브젝트를 사용하여 프로그램 작성을 합니다. 다음 실습을 시작하기 전에 작업창을 초기화 합니다.

1 메인 윈도우에 Function Generator 오브젝트를 추가하고 100Hz의 사인파를 생성하도록 구성합니다. Device [image] Virtual Source [image] Function Generator를 선택합니다.

2 Device [image] Formula를 선택하여 Formula 오브젝트를 메인 윈도우에 추가합니다. 입력 터미날 영역에 마우스 포인터를 올리고 키보드 단축키 Ctrl+A를 눌러 두 번째 입력(B)를 추가합니다.

3 필드에 표현식 abs(A)+B를 입력합니다.

4 Data [image] Constant [image] Real64를 선택하여 Real64 상수 오브젝트를 메인 윈도우에 추가합니다. 값에 0.5를 입력합니다.

5 Display [image] Waveform(Time)을 선택하고, Y축의 스케일을 최대, 최소값을 각각 -2와 2로 설정합니다. Automatic Scaling을 Off로 설정합니다. 이들 인자는 Waveform(Time) 오브젝트의 Mag를 클릭하여 변경합니다.

6 아래와 같이 오브젝트들을 연결하고 프로그램을 실행합니다.

프로그램을 실행하면 Formula 오브젝트는 입력 A로 파형을, 입력 B로 실수 값을 받아 A의 절대값에 B를 더합니다. 표현식 abs(A)+B는 사인파형을 “정류”한 후 “DC 오프셋”을 더하는 효과입니다. 2 개의 오브젝트(A+B 오브젝트와 abs(x) 오브젝트)를 사용해서 동일한 효과를 만들 수 있습니다. 그러나 하나의 Formula 오브젝트를 사용하는 방법이 읽기 쉬울 뿐 아니라 공간도 절약합니다.

Formula 오브젝트의 입력터미날과 출력터미날을 각각 더블 클릭하면, 입력 B의 실수형 스칼라 값이 입력 A의 파형 데이터(1차원 배열)의 각 앨리먼트에 더해져서 Result 터미날로 출력되는 것을 관찰할 수 있습니다.

주의사항

VEE는 MATLAB 스크립트를 내장하여 수 백 가지의 함수를 제공 합니다. 제공되는 함수의 종류는 Function & Object Browser에서 조회할 수 있습니다. MATLAB 함수 사용에 관한 자세한 내용은 "Agilent VEE에 내장된 MATLAB 스크립트"를 참조하십시오.


2-6: 랜덤 숫자 발생

실습 2-6: 랜덤 숫자 발생

1 프로그램에 설명을 추가하여 문서화 합니다:

a Display [image] Note Pad를 선택하고, 작업영역의 중앙 상단에 배치합니다. 편집 영역을 클릭하고 모든 템플릿을 제거한 후, 다음의 내용을 입력합니다:

‘ 이 프로그램은 0에서 1 사이의 실수 랜텀 숫자를 발생하고, 결과를 출력합니다.’

2 Device [image] Function & Object Browser를 선택하고, Built-in function, All, random을 차례대로 선택하고 Create Formula 버튼을 클릭하여 random 오브젝트를 작업영역에 배치합니다.

3 Data [image] Constant [image] Int32를 클릭하여 Int32 오브젝트를 random 오브젝트의 왼쪽에 배치합니다. Int32의 오브젝트 메뉴를 열고, Clone을 실행하여 생성한 Int32 오브젝트를 원본 Int32 오브젝트의 아래에 배치합니다. 복사한 Int32 오브젝트의 값을 0에서 1로 변경하고 Int32(0) 오브젝트를 random 오브젝트의 아래쪽 입력핀에 연결하고, Int32(1) 오브젝트를 위쪽 입력핀에 연결합니다.

4 Display [image] AlphaNumeric을 선택하고 random 오브젝트의 오른쪽에 배치합니다. 오브젝트 메뉴를 열고, 오브젝트를 조금 더 이해하도록 Help를 선택합니다.

5 random 오브젝트의 출력핀을 AlphaNumeric 오브젝트의 입력핀에 연결합니다. 두 오브젝트가 연결되면 A데이터 선이 나타납니다.

주의사항

마우스 포인터를 출력핀 근처로 가까이 가져가면 마우스 포인터가 조그만 박스 모양으로 변합니다. 이때 출력핀을 클릭하면 라인이 입력핀에 연결되어 연결선이 나타납니다. 마우스 포인터를 연결하고자 하는 타겟의 입력핀 근처에 가져가서 박스 모양으로 포인터가 변했을 때, 입력핀을 클릭하면 연결이 완료됩니다.

주의사항

연결을 완료하기 전에, 어떠한 이유로든 라인 연결 동작을 종료 하고자 할 때는 마우스를 더블클릭 합니다. 마우스를 더블클릭하면 라인은 사라집니다.

6 툴 바의 Run 버튼을 클릭하면, 그림과 같이, 랜덤 숫자가 AlphaNumeric 오브젝트에 디스플레이 됩니다.

7 File [image] Save As...을 선택하여 Random.VEE 로 저장합니다. 추후에 이 파일을 열었을 때, VEE의 타이틀바에 이 이름이 나타납니다.


2-7: 전역변수 설정 및 읽기

이 프로그램에서는 VEE 프로그램을 작성하는 기본 기술을 실습하고, 전역 변수를 소개합니다. Set Variable 오브젝트를 사용하여 변수를 생성할 수 있으며, 이렇게 생성된 변수는 Get Variable 오브젝트를 이용하여 호출할 수 있습니다. 모든 VEE 데이터 타입을 변수로 사용할 수 있습니다. 이 예제에서는 Real64 타입을 사용합니다. (VEE 데이터 타입에 관한 자세한 내용은 데이터 종류 를 참조하십시오.)

1 Display [image] Note Pad를 선택하고 작업영역의 중앙 상단에 배치합니다. 편집 영역의 모든 템플릿을 제거하고 다음의 정보를 입력합니다:

‘사용자가 입력한 실수 값을 전역변수로 설정하고 읽어옵니다. 입력된 실수 값이 변수(숫자)로 설정됩니다. 그런 다음 숫자는 다시 호출되고 디스플레이 됩니다.’

2 Data [image] Constant [image] Real64를 선택하고 작업창의 왼쪽에 배치합니다. 오브젝트 메뉴를 열고 도움말을 검색합니다.

3 Real64의 오브젝트 메뉴를 열고 Properties를 선택합니다. Title 속성의 값을 Enter a Real Number로 변경합니다.

주의사항

Real64의 오브젝트 메뉴를 열고 Properties를 선택합니다. Title 속성이 실습에서는 입력 대화상자로 상수 오브젝트를 사용하고 이것의 타이틀을 사용자에게 입력을 요구하는 내용으로 변경하여 사용했습니다. VEE에서 제공하는 입력 대화상자를 사용하려면 이 예제에서 사용한 Data [image] Constant [image] Real64 대신 Data [image] Dialog Box [image] Real64 Input을 사용할 수 있습니다.

4 Data [image] Variable [image] Set Variable을 선택하고, Real64 오브젝트의 오른쪽에 배치합니다. globalA로 지정된 이름을 num으로 변경합니다. 오브젝트의 이름이 Set num으로 변경된 것을 확인합니다.

이것은 사용자가 Real64 오브젝트에 실수 값을 입력할 것이라는 것을 의미합니다. 사용자가 Run 버튼을 클릭하면, 숫자는 num이라는 이름의 전역변수로 선언됩니다.

5 Real64 오브젝트의 데이터 출력핀을 Set num 오브젝트의 입력핀에 연결합니다.

6 Data [image] Variable [image] Get Variable 을 선택하고 Set num 오브젝트의 아래에 배치합니다. globalA로 지정된 이름을 num으로 변경합니다. 오브젝트의 이름이 Get num으로 변경된 것을 확인합니다.

7 Set num의 시퀀스 출력핀을 Get num의 시퀀스 입력핀에 연결합니다.

주의사항

전역변수는 사용자가 사용하기 전에 설정되어야 합니다. 따라서 사용자는 Get num을 사용하여 변수를 검색하기 전에 변수 num이 설정되는 것을 확인하기 위하여 시퀀스 핀을 사용할 필요가 있습니다.

8 Display [image] AlphaNumeric을 선택하고 Get num 오브젝트의 오른쪽에 배치합니다.

9 Get num의 데이터 출력핀을 AlphaNumeric의 데이터 입력핀에 연결합니다.

10 실수 값을 입력하고 툴 바의 Run 버튼을 클릭합니다. 프로그램 실행결과는 다음과 같습니다.

11 File [image] Save As를 선택하여 global.vee로 저장합니다.


실습 3-1: 계측기 설정

계측기를 연결하지 않은 상태에서도 VEE 프로그램을 개발할 수 있습니다. 이 실습에서는 패널드라이버를 사용하여 오실로스코프의 변수를 설정하는 프로그램을 작성합니다. 계측기는 프로그램 개발 후 연결하여 사용할 수 있습니다.

계측기 없이 계측기 설정

1 I/O [image] Instrument Manager...를 선택합니다. 대화상자를 클릭 후 드래그하여 작업창의 좌측상단에 배치합니다.

주의사항

계측기가 연결되어 있고, 계측기에 전원이 인가된 상태라면 VEE는 자동으로 계측기를 검색하고 그것에 호환되는 드라이버를 찾습니다. 계측기 자동검색 및 설정에 관한 내용은 Help [image] Welcome [image] Tutorials 을 참조합니다.

디폴트 상태에서는, 계측기가 설정되어 있지 않으므로, 따라서 이 예제의 Instrument 리스트에 계측기가 나타나지 않습니다.

2 Instrument Manger 대화상자에서 My Configuration을 선택한 상태에서, Instrument 그룹상자 안의 Add...를 클릭하면 , Add Interface/Device 대화상자가 나타납니다. 계측기와 컴퓨터 간의 인터페이스를 선택하고 OK 버튼을 누르면 Instrument Properties 대화상자가 나타납니다.

3 이름을 “scope”로 변경하고 다른 필드들은 디폴트 값으로 한 후 Advanced… 버튼을 클릭합니다. Advanced Instrument Properties 대화상자가 다음과 같이 나타납니다.

General 폴더의 필드는 다음과 같습니다:

입력 항목 | 설명
Timeout | 입/출력 트랜잭션의 최대 허용시간(초). 이 시간 이 지나면 에러메시지 출력.
Live Mode | 계측기와의 통신이 가능하도록 설정합니다. 계측기가 연결되어 있지 않으면 이것을 OFF로 설정합니다. VEE 디폴트 값은 ON.
Byte Ordering | 디바이스가 바이너리 데이터를 읽고 쓸 때의 순서를 설정합니다. 이 필드는 Most Significant Byte(MSB) 우선 혹은 Least Significant Byte(LSB) 우선 모드로 전환합니다. 모든 IEEE488.2 호환 장치들은 MSB 디폴트 값으로 사용합니다.
Description | 계측기에 대한 임의의 설명을 입력한다. 계측기를 구별하기 위해서 숫자를 입력하면 타이틀 바에 입력한 숫자가 표시 됩니다.

4 Live Mode를 OFF로 전환시키고 Panel Driver 폴더를 클릭하면 대화상자가 나타납니다.

5 ID Filename의 오른쪽 필드를 클릭하면 Read from what Instrument Driver? 제목을 가진 대화상자가 나타납니다. 이 박스에는 VEE에서 제공하는 모든 패널 드라이버 목록이 출력됩니다.

주의사항

패널드라이버 목록이 나타나지 않으면 VEE와 함께 제공된 CD-ROM에서 패널드라이버를 설치합니다. *.cid 파일은 계측기의 드라이버 파일이 컴파일 되었음을 의미합니다. (VEE 평가판을 사용하는 고객은 Agilent 사이트에서 패널드라이버를 다운로드 합니다.)

6 hp54504a.cid를 선택하고 Open 버튼을 클릭하여 이 패널드라이버를 로딩합니다. 위의 그림은 계측기가 이미 로딩된 상태의 그림입니다. 이 드라이버를 더블클릭을 해도 됩니다.

드라이버 폴더에 다른 항목들도 있습니다:

패널드라이버 구성요소 | 설명
Sub Address | 이 필드는 비워 놓습니다. Sub Address는 단지 플로그-인 모듈을 인식하는데 있어 VXI 카드가 아닌 계측기에만 사용됩니다.
Error Checking | 디폴트 값(ON)으로 놓습니다. 고속 통신을 원하는 경우에는 Error Checking을 off로 설정하여 사용할 수 있지만, 이 경우 입출력 에러는 체크하지 않습니다.
Incremental Mode | 디폴트 값(ON)으로 사용합니다. Incremental Mode는 계측기 상태를 변경하기 위해 계측기 명령어 문자 열 전체를 전송할 때 off 될 수 있습니다.

7 OK를 클릭하여 Instrument Properties 대화상자로 돌아갑니다. Instrument Properties 대화상자에서 OK를 클릭합니다.

계측기 목록(Instrument List 창)에 scope라 명명된 계측기가 표시됩니다. (이 계측기는 hp54504a.cid 드라이버 파일을 사용하도록 설정되어 있습니다.) 이 계측기는 아직 연결되어 있지 않기 때문에 주소를 가지고 있지 않습니다. 그러나 이 상태에서 프로그램을 할 수 있으며, 계측기 주소는 향후 계측기를 연결할 때 입력하면 됩니다.

다음 필드로 이동하기 위해 Tab 키를, 이전의 필드로 이동하기 위하여 Shift-Tab 키를 사용합니다. Enter 키를 누르는 것은 OK버튼을 클릭하는 것과 같습니다.

8 Save 버튼을 눌러 Instruments Manger를 닫습니다. (여기서 Save 버튼을 클릭하지 않고 Panel Driver를 클릭하면 설정사항이 자동 저장되면 작업창에 패널드라이버를 배치할 수 있습니다.)

지금까지 계측기 없이 scope로 명명된 HP 54504A 오실로스코프를 계측기 리스트에 추가하였습니다.

계측기 선택

1 I/O [image] Instrument Manager...를 선택합니다.

2 scope(@(NOT LIVE)를 선택한 다음 Create I/O object 그룹 박스의 Panel Driver를 클릭합니다.

주의사항

Instrument Manager에서 사용자는 계측기 설정에 따라 Create I/O Object 하단에서 다른 종류의 오브젝트를 생성할 수 있습니다. 예를 들어, 이 예제에서 Panel Driver가 대신 Direct I/O를 선택하면, 이름이 scope(@NOT LIVE)인 Direct I/O 오브젝트를 사용하게 됩니다. 여기서 Component Driver를 선택할 수도 있는데, Component Driver는 Panel Driver에 의해 제공하는 기능의 일부만을 지원합니다. (자세한 내용은 I/O 설정 기술을 참조하십시오.)

3 스코프 패널의 아웃라인을 위치시키고 클릭하여 해당 위치에 놓습니다. 다음 그림과 유사한 형태로 디스플레이 합니다.

이제 이 패널 드라이버는 프로그램 안에서 일반적인 오브젝트처럼 사용할 수 있습니다.

실제 계측기를 설정에 추가

1 I/O [image] Instrument Manager...에서 scope를 선택하고 Instrument…그룹박스의 Properties를 클릭합니다.

2 VISA Address 필드를 더블 클릭하여 현재의 입력을 하이라이트 하고, Agilent Connection Expert에서 설정된 동일한 계측기 VISA 어드레스를 입력합니다. 예를 들어, GPIB0::20::INSTR.

3 Advanced: 를 클릭하여 Live Mode를 ON으로 설정하고 OK 버튼을 누릅니다. OK 버튼을 클릭하여 Instrument Properties 박스를 닫습니다.

4 Save버튼을 클릭하여 변경사항을 저장합니다.


실습 3-2: 패널 드라이버 사용법

이 실습에서는 HP3325B Function Generator를 예제로 사용합니다. 대부분의 내용이 다른 VEE 패널 드라이버에도 동일하게 적용됩니다. 계측기를 직접 프로그램하는 것 보다 패널 드라이버를 사용하면 개발과 수정에 소요되는 시간을 줄일 수 있습니다. 계측기 설정은 대화상자의 필드를 편집하거나 메뉴를 선택하여 변경할 수 있습니다. 계측기가 연결되어 있고 Live Mode가 ON 상태라면 패널드라이버에의 설정 변경으로 계측기의 레지스터가 변경됩니다.

프로그램에서 패널 드라이버를 다양한 방법으로 사용합니다. 입력과(또는) 출력을 추가하고, 패널 드라이버를 다른 오브젝트에 연결합니다. 하나의 프로그램에서 동일한 드라이버의 인스턴스를 여러 개 구성하여 각각 다른 용도로 사용할 수 있습니다. VEE에서 작업공간을 절약하기 위해서는 패널을 아이콘화 하며, 계측기의 설정사항들을 디스플레이하기 위해서 오픈뷰(Open View)를 사용할 수 있습니다. 또한 프로그램이 실행되는 도중에 설정사항을 변경할 수 있습니다.

패널 드라이버에서 설정 변경

1 I/O [image] Instrument Manager...를 선택합니다. My Configuration를 선택한 후 Add를 클릭합니다. Instrument Properties 대화상자를 열고 아래의 설정 값을 입력합니다:

설정 | 설명
Name | fgen을 입력하고 Tab키를 두번 눌러 Address 필드로 이동합니다.
Address | 713을 입력합니다. 다른 GPIB 주소를 가진 계측기를 사용하는 경우에는 해당 주소를 입력합니다.

2 Advanced를 클릭하여 General 폴더에서 Live Mode를 OFF로 변경합니다.

3 Panel Driver 폴더를 클릭하고 ID Filename: 을 hp3325b.cid 로 설정합니다. OK버튼을 두 번 클릭하여 Instrument Manager로 돌아갑니다.

4 Create I/O Object 그룹박스에서 Panel Driver를 클릭합니다. 오브젝트를 작업창의 왼쪽에 배치합니다. (계측기가 설정되고 리스트에 추가되어있는 동안 실제 계측기에 관계없이 같은 동작을 하게 됩니다.)

주의사항

여기서는 계측기 없이 프로그래밍을 합니다. 계측기가 연결되어 있는 경우에는 해당 주소를 설정합니다.

5 Function 필드의 Sine을 클릭하고 팝업 메뉴에서 Triangle을 선택합니다.

6 Frequency의 오른쪽 필드를 클릭합니다.

7 Continuous component FREQUENCY 대화상자에 100을 입력하고 OK 버튼을 클릭합니다.

다른 드라이버에서도 같은 방법으로 계측기 설정사항을 변경할 수 있습니다. 계측기의 주소가 설정되어 있고, Live Mode가 ON 이면, 드라이버 패널의 모든 변경사항은 계측기에 적용됩니다.

같은 드라이버를 다른 패널로 옮기기

대부분의 드라이버들은 사용자 인터페이스를 단순화하기 위해서 여러 개의 패널로 구성되어 있습니다. 다른 패널로 이동하고자 할 경우에는 오브젝트 안의 Main Panel을 클릭합니다.

1 패널 드라이버 객체에서 Main Panel을 클릭하고 그림과 같이 Discrete Component MENU에서 Sweep을 선택합니다.

2 Sweep 패널을 디스플레이 하기 위하여 OK 버튼을 클릭합니다. 다른 패널이 나타납니다.

3 메인화면으로 복귀하기 위하여 OK버튼을 클릭합니다.

패널 드라이버에 입력 및/또는 출력 추가하기

패널과 직접적으로 통신하기 위해 드라이버에 입력과(또는) 출력을 추가하여 설정을 제어하거나 계측기로부터 데이터를 읽어 올 수 있습니다 아래와 같이 입력영역은 오브젝트의 왼쪽, 출력 영역은 오브젝트의 오른쪽이므로 이들 영역에 입력과 출력을 각각 생성할 수 있습니다.

1 마우스 포인터를 Function Generator 계측기 패널의 데이터 영역에 올려놓고 Ctrl-A키를 눌러 입력 터미날을 추가합니다. 계측기 컴포넌트 리스트 박스가 나타납니다.

2 메뉴에서 필요한 컴포넌트를 선택합니다.

주의사항

오브젝트 메뉴를 열고 Component [image] Select Input Component의 Add Terminal을 실행하고 드라이버에 필요한 컴포넌트 필드를 선택하여 입력 또는 출력터미날을 추가할 수 있습니다.

마우스 포인터를 출력 영역에 위치시키고 같은 절차를 따라 데이터 출력을 추가합니다.

입력 또는 출력 터미날 삭제

마우스 포인터를 터미날 위에 올려놓고 CTRL-D를 누릅니다.

주의사항

오브젝트 메뉴를 열고 Delete Terminal [image] Input...을 실행하고 삭제할 입력이나 출력을 선택할 수 있습니다.

자습

HP 3325B Function Generator나 보유중인 다른 Function Generator에서 상태를 설정합니다. Function 설정을 Square 파형으로 변경합니다. Amplitude 및 Frequency용 입력 컴포넌트를 추가합니다. Amplitude 및 Frequency용 입력 대화상자를 생성하고 사용자에게 프롬프트하기 위한 명칭으로 수정합니다. 진폭과 주파수를 다른 값을 입력하고 프로그램을 실행하여 사용자가 입력한 값으로 설정이 변경되었는지를 관찰합니다. (계측기가 연결된 경우에는, Live Mode가 ON 상태에서는 계측기의 설정이 변경됩니다.)


실습 3-3: Direct I/O 사용법

특정 계측기에 대한 드라이버가 제공되지 않거나, 특별한 제어를 하기 위해서는 Direct I/O 오브젝트를 사용합니다.

Direct I/O 사용예제

이 실습에서는, HP3325B Function Generator를 Direct I/O를 사용하여 제어합니다.

1 I/O [image] Instrument Manager...를 선택합니다.

2    fgen(@(NOT LIVE)) 항목을 선택하고 Instrument   [image] Properties를 선택합니다.

3 Advanced를 클릭합니다. Direct I/O 탭을 선택합니다. 제공되는 옵션을 관찰하고 OK 버튼을 클릭하여 Instrument Manager로 돌아갑니다.

주의사항

이 예제에서는 GPIB 인터페이스(IEEE 488)을 사용하였습니다. 시리얼, GPIO, 또는 VXI 계측기를 선택하기 위해서는 I/O 설정 기술을 참조하십시오.

4 스크린에 오브젝트를 생성하기 위해 Create I/O Object [image] Direct I/O를 클릭합니다. fgen(@(NOT LIVE))는 선택된 상태여야 합니다.

Direct I/O 오브젝트를 프로그램에서 다시 사용하기 위해서 입출력 처리를 설정해야 합니다. 다음 섹션에서 텍스트 명령어를 입력하는 방법과 데이터를 읽는 방법 및 계측기 상태를 업로딩/다운로딩 하는 방법을 설명합니다.

텍스트 명령을 계측기로 전송

텍스트 명령어를 계측기에 전송하기 위해서는 텍스트를 입력해야 합니다. 대부분의 GPIB 계측기들은 알파벳 문자열을 사용하여 명령을 전송합니다. 예를 들어, HP3325B Function Generator로 5 Volt 진폭을 설정하는 명령을 전송하기 위해서는 “AM 5 VO” 를 입력합니다.

이 실습은 이전의 섹션에서 설정된 HP3325B Function Generator를 사용합니다. 필요에 따라 다음 단계로 넘어가기 전에 "실습 3-3: Direct I/O 사용법"로 돌아가서 계측기를 설정합니다.

1 fgen(@(NOT LIVE)) 오브젝트에서 Transaction 바를 더블 클릭하여 아래와 같이 I/O Transaction 대화상자를 엽니다.

첫 번째 필드에서는 READ, WRITE, EXECUTE, WAIT 중에서 한 가지를 선택할 수 있습니다. 여기서는 계측기로 데이터를 전송하는 예제이므로 디폴트 값(WRITE)을 선택합니다. 오브젝트 메뉴의 HELP에서 각각의 동작에 대한 설명을 참조할 수 있습니다.

2 디폴트 선택 값인 WRITE, TEXT, DEFAULT FORMAT 및 EOL ON을 사용합니다. 세 번째 필드(현재 a 가 입력되어 있는 필드)에 a 대신 “AM 5 VO” (인용부호 포함)을 입력하고 OK 버튼을 누릅니다.

아래와 같이 WRITE TEXT “AM 5VO” EOL 표현식이 나타납니다.

대부분의 경우, 계측기로 텍스트 명령어를 전송하는 과정은 동일합니다. 그러나 특정한 문자를 각 명령의 끝이나 명령 그룹의 끝에 전송해야 하는 계측기도 있습니다. 이러한 경우에는 해당 계측기의 매뉴얼에서 이들 내용을 Direct I/O Configuration 대화상자에서 설정해야 합니다.

명령어를 연속하여 계측기로 전송

1 메인 윈도우에 HP3325B의 두 번째 Direct I/O 오브젝트를 배치합니다. Transaction 영역을 더블 클릭하여 I/O Transaction 대화상자를 엽니다.

명령 줄을 제외한 다른 필드는 디폴트 값을 사용하면, 명령어는 “FR”, <frequency>, “HZ”의 형식이 되며, 이 경우 주파수는 Direct I/O 오브젝트로 입력되는 데이터 변수 A의 값을 사용합니다.

2 입력필드를 클릭하여 “FR”, A, “HZ” 를 입력합니다. (예를 들어, A에 100이 입력되면 VEE는 “FR100HZ”를 계측기로 전송합니다.) OK를 클릭합니다. VEE는 이름이 A인 데이터 입력핀을 자동으로 추가합니다.

3 Flow [image] Repeat [image] For Range를 선택하고 이것을 Direct I/O 의 왼쪽에 배치합니다.

4 For Range 데이터 출력핀과 Direct I/O 데이터 입력핀을 연결합니다.

5 For Range의 필드를 수정합니다: From 10, Thru 1.8M, 및 Step 50k.

For Range 오브젝트는 10부터 1.8M까지의 숫자를 50,000씩 증가하면서 Direct I/O 오브젝트에 전달하고, 이 값을 받은 Direct I/O 오브젝트는 명령어를 완성하여 Function Generator의 출력 주파수를 결정합니다. Direct I/O 는 아래와 같이 설정되어야 합니다.

6 (옵션) 컴퓨터에 HP3325B를 연결합니다. 계측기 주소를 Direct I/O 오브젝트의 주소에 입력합니다. 프로그램을 실행시켜 주파수가 발생되는 것을 볼 수 있습니다.

계측기로부터 데이터 읽기

계측기들은 여러 가지 데이터 타입을 전송합니다. 계측기로부터 데이터를 읽기 위해서는 읽고자 하는 데이터의 타입, 데이터가 단일 값(스칼라)인지 어레이인지, 데이터가 텍스트(ASCII)인지 바이너리 인지를 알아야 합니다.

이러한 정보는 계측기 매뉴얼이나 VEE의 I/O ⇒ VEE Bus I/O Monitor를 이용하여 확인할 수 있습니다.

이 예제에서는 HP3478A 멀티미터가 HP3325B Function Generator에 연결됩니다. Function Generator가 정해진 주파수를 가진 신호를 발생하고, 멀미미터는 이 신호를 읽어서 VEE에 반환합니다. 아래에 멀티미터를 프로그래밍하는 방법을 설명합니다.

주의사항

이 예제에서는 READ TEXT 트랜잭션을 설명합니다. BINARY, BINBLOCK, CONTAINER를 사용한 READ에 관한 내용은 Direct I/O 오브젝트의 사용 및 READ 트랜잭션을 참조하십시오.

1 I/O [image] Instrument Manager... 를 선택하고 Add...를 클릭합니다. 이름을 dvm으로 변경합니다. Advanced... 를 클릭하고 Live Mode를 OFF시킵니다. (사용자가 HP3478A를 가지고 있지 않다고 가정하였습니다. HP3478A를 가지고 있으면, Live Mode를 ON으로 설정하고 주소를 입력합니다.

2 dvm(@(NOT LIVE))를 선택하고 Create I/O Object 아래에 있는 Direct I/O를 선택합니다.

3 <Dobule-Click to Add Transaction> 바를 더블 클릭하여 I/O Transaction 대화상자를 띄웁니다.

4 입력 필드에 “T5”를 입력 하고 OK 버튼을 클릭합니다. 이것은 HP3478A 멀티미터 “T” 명령을 전송합니다. T5는 HP3478A 멀티미터를 한번 트리거하는 명령어입니다.

5 다른 트랜잭션 바를 추가하기 위하여 오브젝트 메뉴를 열고 Add Trans...를 클릭합니다. 또는 <Double-Click to Add Transaction>을 사용합니다.

6 WRITE 옆의 화살표를 클릭하여 드롭다운 메뉴를 열고 READ를 선택합니다. READ를 선택하면 새로운 버튼들이 I/O Transaction 대화상자에 나타납니다.

7 x 라고 기입되어 있는 ExpressionList 입력 필드를 확인합니다. 다음 필드로 이동하기 위하여 Tab 키를 누릅니다. 계측기에서 읽은 데이터가 x 출력핀으로 출력됩니다.

주의사항

오브젝트의 입력핀과 출력핀에 사용되는 변수이름은 대소문자를 구분하지 않습니다.

8 디폴트값인 REAL64 FORMAT을 그대로 사용합니다. 멀티미터는 자신이 읽은 값을 VEE에 실수 값(여기서는 Real 64 포맷)으로 리턴합니다.

9 디폴트 값인 DEFAULT NUM CHARS를 그대로 사용합니다.

VEE가 계측기로부터 받아들이는 문자의 개수는 20 입니다(디폴트). 문자 수를 변경하기 위해서는 DEFAULT NUM CHARS를 클릭하고 입력필드에 원하는 숫자를 입력합니다.

10 SCALAR를 그대로 사용합니다. OK 버튼을 누릅니다.

트랜잭션에 READ TEXT x REAL64이 표시됩니다. VEE는 데이터 출력핀 x를 자동 추가합니다.

주의사항

계측기가 값을 어레이로 리턴하면 아래와 같이 I/O Transaction 대화상자의 SCALAR 메뉴를 클릭하여 해당되는 차원의 어레이를 선택하고 어레이의 크기를 지정합니다.

11 오른쪽에 Display [image] AlphaNumeric을 추가하고 이것의 입력을 Direct I/O의 x 출력에 연결합니다.

그림과 같이 2 개의 트랜잭션이 Direct I/O 에 생성되었습니다:

READ TEXT 트랜잭션을 사용방법은 데이터의 형식에 관계없이 유사합니다. 각 항목에 관한 보다 자세한 정보는 Direct I/O 오브젝트의 사용 및 READ 트랜잭션을 참조하십시오.

실질적인 프로그램으로 사용하기 위해서는 멀티미터 오브젝트와 Function Generator 오브젝트가 VEE 데이터와 결합되고 디스플레이 오브젝트도 추가되어야 할 것입니다. VEE를 사용하여 좀 더 완성도가 높은 테스트 프로그램을 쉽게 만들 수 있습니다.

계측기 상태를 업로딩 및 다운로딩

일부 계측기는 “learn string(명령어 학습)” 기능을 가지고 있습니다. Learn string은 계측기의 모든 상태를 설정할 수 있도록 구성되어 있습니다. Direct I/O는 learn string을 업로드 하여 특정 Direct I/O 오브젝트에 저장하고 있다가, 필요한 시기에 프로그램에서 계측기로 다운로드하여 사용할 수 있습니다. 계측기의 상태를 업로드 하기 위해서는 다음의 절차를 따릅니다:

1 계측기를 임의의 상태로 설정합니다.

2 Direct I/O의 오브젝트 메뉴를 열고 Upload State를 클릭합니다.

현재의 계측기 상태가 Direct I/O 오브젝트의 특정 인스턴스에 연결되어 저장됩니다.

3 트랜잭션 영역을 더블 클릭하여 I/O Transaction 대화상자를 엽니다.

4 NEXT를 클릭하고, STATE(LEARN STRING)을 선택한 다음 OK 버튼을 클릭하여 I/O Transaction 대화상자를 닫습니다. WRITE 트랜잭션이 실행되면 이전에 저장된 상태가 계측기로 전송됩니다.

업로딩과 다운로딩은 Direct I/O Configuration 대화상자를 설정하여 제어합니다. IEEE 488.2와 호환되면 VEE는 자동으로 488.2의 *LRN?을 사용하여 learn string을 제어합니다. 만일 IEEE 488과 호환되는 경우에는 업로드 문자열은 상태를 요청하는데 사용되는 명령어를 지정하고, 다운로드 문자열은 다운로드 시 상태 문자열에 선행하는 명령어를 지정합니다. 이에 대한 예제는 다음과 같습니다.

Conformance에서는 IEEE 488 또는 IEEE 488.2을 선택할 수 있습니다. 이번 예제는 HP 54100A Digitizing Oscilloscope를 사용하며, 이것은 IEEE 488를 따르며, learn string을 쿼리하기 위한 "SETUP?"과 다운로드 시 learn string에 선행하여 "SETUP"이 필요합니다. State (Learn String)를 Configured로 선택하면, Upload String 과 Download String이라 표시된 2개의 필드가 추가로 나타납니다. 적절한 스트링이 해당 입력 필드에 입력되어 있습니다.

관련정보

Direct I/O 오브젝트 사용하기

Direct I/O 오브젝트

I/O 설정 기술


실습 3-4: VXIplug&play 드라이버 사용법

VXIplug&play 드라이버는 여러 계측기 제조사로부터 배포 및 지원됩니다. 이들은 C언어 기반의 드라이버이며 최대 성능과 사용의 편의성을 위해 설계되었습니다.

Agilent VEE는 VXIplug&play와 완벽히 호환됩니다. 사용할 수 있는 모든 VXIplug&play 드라이버들은 Agilent Technologies의 개별 제품, 인터넷 사이트 http://www.agilent.com/find/inst_drivers 및 Agilent 개발자 네트워크(ADN) http://www.agilent.com/find/adn에서 다운로드 받을 수 있습니다. Agilent Technologies 패널 드라이버와 함께 이 드라이버들도 VEE와 함께 공급됩니다. 애질런트에서 제공하지 않은 계측기의 VXIplug&play드라이버는 해당 계측기 제조사에 문의해야 합니다.

VXIplug&play 드라이버 설정

이 예제는 hpe1412 드라이버를 설정하는 방법을 설명합니다.

1 I/O [image] Instrument Manager...를 선택합니다.

2 My Configuration을 선택하고 Instrument 그룹박스의 Add...버튼을 클릭하여 Instrument Properties 대화상자를 엽니다. 이름을 입력하고 Advanced... 를 클릭하여 Advanced Instrument Properties 대화상자를 엽니다.

3 Advanced Instrument Properties 대화상자에서 Live Mode를 OFF로 변경하고 Plug&Play Driver 폴더를 선택합니다. Plug&Play DriverName을 클릭하여 드롭다운 메뉴에 컴퓨터에 설치되어있는 모든 드라이버를 리스트 합니다. 이 예제에서는 아래와 같이 hpe1412 드라이버를 사용합니다.

hpe1412 드라이버를 클릭합니다. OK 버튼을 눌러서 Instrument Properties 대화상자로 돌아갑니다. 다시 OK 버튼을 눌러서 Instrument Manager로 돌아갑니다. Instrument(@(NOT LIVE))가 등록되어 있습니다.

4 Instrument(@(NOT LIVE))를 선택하고 Create I/O Object 그룹박스의 Plug&Play Driver를 선택합니다.

주의사항

VEE에서, VXIplug&play 드라이버는 Direct I/O오브젝트와 형태가 유사합니다.

계측기를 이용하여 측정하기 위해서는 사용자는 VXIplug&play 드라이버 안의 C 함수를 사용하는 I/O Transaction을 설정해야 합니다. 드라이버는 함수를 선택할 수 있도록 패널을 함께 제공합니다.

5 <Double-Click to Add Function>을 더블 클릭하면, Select a Function Panel이 디스플레이 됩니다.

주의사항

VEE는 계측기를 자동으로 초기화하므로 init 함수를 사용할 필요가 없습니다.

다음 그림은 함수 패널의 함수 계층을 나타냅니다. 각 항목의 도움말이 대화상자에 표시됩니다.

6 Configure Present Setting [image] Measurement Type [image] Measurement Type Setup을 선택합니다. Edit Function Panel이 표시됩니다. func 하단의 드롭다운 리스트를 클릭합니다. 디폴트 설정된 DC Voltage를 선택합니다.

7 OK를 클릭합니다. 그림과 같이 To/From Instrument 오브젝트 트랜잭션에 hpe1412_configure(instruHandle,hpe1412_CONF_VOLT_DC)이 포함됩니다.

8 To/From Instrument 오브젝트에서 <Double-Click to Add Function>을 더블클릭 하여 함수를 추가하고 Measure 하단의 Take Measurement를 선택합니다. Configuration 폴더를 클릭하여 그림과 같은 대화상자를 표시합니다.

9 OK를 클릭합니다. 두 번째 함수에 대한 호출이 To/From Instrument 오브젝트에 추가 되었습니다.


실습 5-1: 측정결과 저장을 위한 어레이 생성

Collector 오브젝트를 사용하여 어레이를 쉽게 생성할 수 있습니다.

이 실습에서는 계측기로부터 읽기 작업을 4회 수행하기 위하여 For Count 오브젝트를 사용하였습니다.

1 Select Flow [image] Repeat [image] For Count, Data [image] Collector 및 Display [image] AlphaNumeric을 선택합니다.

오브젝트 이름 | 설명
Count 오브젝트에 대하여 | For Count는 0부터 1씩 증가하면서, 입력필드에 입력한 개수만큼, 정수를 출력합니다. 예를 들어 4를 입력하면 0, 1, 2, 3을 출력합니다.
Collector 오브젝트에 대하여 | Collector는 데이터 입력터미날로 데이터 값을 수신합니다. 데이터 수집이 끝나면, XEQ 터미날에 “ping”을 보내 어레이를 형성하고 그것을 출력하라는 명령을 보냅니다. For Count 오브젝트의 시퀀스출력을 XEQ 핀에 연결하여 ping 할 수 있습니다. Collector는 1 Dim Array 와 n+1 Dim Array를 전환할 수 있는 토글 버튼을 가지고 있습니다. Collector 오브젝트를 더블클릭하여 오픈뷰로 전환할 수 있습니다. 오브젝트 메뉴 중 help 메뉴에서 Collector 오브젝트에 대한 설명이 제공됩니다.

2 Collector의 n+1 Dim Array 버튼을 클릭하여 1 Dim Array로 변경합니다.

3 Count의 데이터 출력핀을 Collector의 데이터 입력핀에 연결합니다.

4 For Count의 시퀀스 출력핀을 Collector의 XEQ 입력핀에 연결합니다.

XEQ 핀은 일부 다른 오브젝트에서도 사용하며, 오브젝트를 실행할 시점을 알리는 트리거 핀입니다. 여기서는 어레이에서 사용할 데이터를 수집 완료하면 Collector 오브젝트의 출력핀으로 데이터를 출력하라는 신호로 사용합니다.

5 Collector의 데이터 출력핀을 AlphaNumeric의 데이터 입력 핀에 연결합니다.

6 어레이의 모든 앨리먼트를 볼 수 있도록 AlphaNumeric 오브젝트의 코너를 클릭한 후 드래그 하여 크게 만듭니다.

7 프로그램을 실행합니다. 프로그램은 다음과 같습니다.

관련정보

측정결과를 저장하기 위해 어레이 사용


실습 5-2: 어레이에서 측정결과 추출

어레이에서 특정 값을 추출할 때는, 표현식에 대괄호[]를 사용하거나, Data [image] Access Array [image] Get Values 오브젝트를 사용합니다. 다음 실습에서는 Formula 오브젝트의 표현식에 대괄호를 사용합니다.

1 마우스 포인터를 라인 위에 올려 놓고 Shift-Ctrl 키를 누른 후 마우스의 왼쪽 버튼을 클릭하여 Collector와 AlphaNumeric 사이의 데이터 라인을 삭제하고 Collector를 아이콘화 합니다.

2    Device [image] Formula를 선택하고 이를 클론 합니다. AlphaNumeric을 오른쪽으로 이동시키고 두 개의 Formula 오브젝트를 Collector의 오른쪽으로 옮깁니다.

3 Collector의 데이터 출력핀을 Formula 오브젝트의 데이터 입력핀에 연결합니다. 상단의 Formula 입력 필드에는 A[2]를 입력하고, 하단의 Formula 오브젝트의 입력 필드에는 A[1:3] 을 입력합니다.

4 A[2]는 어레이의 3번째 앨리먼트를 스칼라 값으로 추출하고, A[1:3]은 어레이 A의 두 번째, 세 번째, 네 번째 값을 앨리먼트로 가지는 서브어레이로 리턴합니다. 이때 표현식에서 사용된 A는 입력 터미날 A로 입력되는 어레이를 의미합니다.

5 AlphaNumeric을 클론하고, 각각의 Formula 오브젝트에 연결합니다.

6 프로그램을 실행합니다. 프로그램은 다음과 같습니다.

관련정보

측정결과를 저장하기 위해 어레이 사용


실습 5-3: To/From File 오브젝트 사용법

이번 실습에서는 측정결과를 파일에 저장하고, 이 파일에서 데이터를 가져오는 방법을 설명합니다. 세 가지의 일반적인 측정결과 항목(테스트 이름, 타임스탬프, 1차원 실수 어레이의 측정결과)를 저장하고 추출합니다. 여기서 사용한 절차는 모든 VEE 데이터 타입에 동일하게 적용됩니다.

텍스트 스트링을 파일에 전송

1 I/O [image] To [image] File을 선택합니다. 각 필드를 다음과 같이 설정합니다.

항목 | 설명
filename | 디폴트 값인 myFile을 사용합니다. To File 버튼을 눌러 임의의 파일 이름을 직접 입력할 수 있습니다.
Clear File At PreRun & Open | 이 항목을 체크합니다. To File 오브젝트의 디폴트 상태에서는 기존의 파일의 맨 마지막에 새로운 내용을 추가합니다. 그러나 이 항목을 체크하면 새로운 데이터를 기록하기 전에 기존 파일의 내용을 모두 지웁니다.

2 <Double Click To Add Tansaction> 더블클릭 하여 I/O Transaction 대화상자를 디스플레이 합니다. (필요한 경우, I/O 트랜잭션 이해을 참조하십시오.)

“WRITE TEXT a EOL ON”이 디폴트 트랜잭션입니다. 이 트랜잭션은 텍스트 인코딩 방식과 지정된 End-Of-Line 문자를 사용하여 입력핀 a로 입력되는 데이터를 파일에 기록합니다. VEE는 대소문자를 구분하지 않으므로 소문자나 대문자로 이루어진 문자열을 데이터 입/출력 터미날의 이름으로 사용할 수 있습니다.

각 필드를 다음과 같이 설정합니다:

항목 | 설명
a (표현식 필드) | 표현식 리스트 필드는 하이라이트 되어 있으며 디폴트로 a 가 입력되어 있습니다. “Test1”을 입력하고 OK 버튼을 클릭합니다. (큰따옴표를 사용하여 텍스트 문자열임을 표시합니다. 따옴표 없이 Test1이라고 입력하면 터미날 이름이나 전역변수로 해석합니다.)
WRITE | 디폴트 값인 WRITE를 사용합니다.
TEXT | 디폴트 값인 TEXT를 사용합니다. TEXT는 ASCII 문자를 사용하여 데이터를 전송할 것입니다.
DEFAULT FORMAT | DEFAULT FORMAT을 사용합니다. DEFAULT FORMAT을 사용하면 STRING등의 VEE 고유의 포맷을 선택합니다.
EOL ON | 디폴트로 사용합니다. 디폴트 EOL 문자는 \n 입니다.

3 OK 버튼을 클릭하여 To File 오브젝트로 돌아갑니다. 트랜잭션 바는 WRITE TEXT “Test1” EOL로 나타납니다. 이 트랜잭션은 문자열 “Test1”을 지정된 파일에 저장합니다.

타임 스탬프를 파일에 전송

Device [image] Function & Object Browser [image] Time & Data 카테고리에 있는 now() 함수는 현재의 시간을 Real64 스칼라 값으로 리턴합니다. 값은 AD 1년, 1월 1일 00 시 00분을 시작점으로 하여 현재까지의 시간을 초로 나타낸 값입니다.

따라서 now() 함수는 약 63G를 리턴합니다. VEE에서 이 포맷을 지원하는 이유는 수학적인 조작 및 저장 공간 확보가 용이하기 때문입니다. 타임스탬프를 좀더 읽기 쉬운 포맷으로 파일에 저장하기 위해서는, DEFAULT FORMAT 대신 TIME STAMP FORMAT을 사용합니다. 타임스탬프를 파일로 전송하려면 다음의 절차를 따릅니다.

1 사용했던 To File 오브젝트의 트랜잭션 바를 더블클릭 하여 I/O Transaction 대화상자를 디스플레이 합니다.

2 표현식 필드에 now()라고 입력합니다. now() 함수는 컴퓨터의 시계에서 현재의 시간을 읽어 실수 포맷으로 리턴합니다.

3 REAL FORMAT을 TIME STAMP FORMAT으로 변경합니다. 이 값이 TIME STAMP FORMAT으로 변경되면 I/O Transaction 대화상자에 추가 항목들이 표시됩니다. 각 필드를 다음과 같이 설정 합니다:

타임 스탬프 | 설명
Date & Time | 드롭다운 메뉴에서 Time을 선택합니다.
HH:MM:SS | 한번 클릭하여 HH:MM로 변경시킵니다. (시간:분: 초를 나타내는 포맷에서 시간:분을 나타내는 포맷으로 변경합니다.)
24 HOUR | 한번 클릭하여 12 HOUR로 변경시킵니다. (24 시간 포맷을 a.m. 및 p.m. 포맷으로 변경합니다.)

작성된 I/O Transaction 대화상자는 다음과 같습니다.

4 OK 버튼을 클릭하고 To File로 돌아갑니다. To File 오브젝트의 두 번째 트랜잭션 바는 WRITE TEXT now() TIME:HM:H12 EOL로 나타납니다.

실수 어레이를 파일에 전송

For Count와 Collector 오브젝트를 사용하여 4개의 앨리먼트를 가지는 1차원 어레이를 생성하고 myFile에 추가합니다.

1 Flow [image] Repeat [image] For Count를 선택하고 디폴트 값을 4로 변경합니다.

2 Data [image] Collector를 선택한 후, 더블 클릭하여 오픈뷰로 전환합니다. For Count 데이터 출력을 Collector의 데이터 입력(상단 입력핀)에 연결합니다. For Count 시퀀스 출력핀을 Collector의 XEQ 핀(하단 입력핀)에 연결한 후에 아이콘화 합니다.

3 Collector는 데이터 파일로 전송할 어레이 [0,1,2,3]을 생성합니다.

4 To File 오브젝트의 <Double Click To Add Tansaction>를 더블클릭 합니다. I/O Transaction 대화상자에서 DEFAULT FORMAT 메뉴를 열고, REAL64 FORMAT을 선택합니다.

5 I/O Transaction 대화상자에서 REAL64 FORMAT을 선택하면 추가 버튼들이 표시됩니다. 모든 항목을 디폴트로 사용합니다.

6 OK 버튼을 클릭하여 I/O Transaction 대화상자를 닫습니다. To File 오브젝트의 3 번째 트랜잭션 바에 WRITE TEXT a REAL64 STD EOL 이 추가 되었습니다.

7 Collector의 출력을 To File 오브젝트의 입력핀 a에 연결합니다. 프로그래밍 결과는 다음과 같습니다. (편의상 I/O Transaction 대화상자도 표시하였습니다.)

From File 오브젝트를 이용한 데이터 추출

From File 오브젝트를 이용하여 데이터를 추출하기 위해서는, 데이터가 어떻게 저장되어 있는가를 알아야 합니다.

주의사항

To DataSet 이나 From DataSet을 사용하면 파일에 저장된 데이터의 타입을 알 필요없이 데이터를 저장하고 복구할 수 있습니다. To/From DataSet 오브젝트는 실습 5-5: 데이터셋 사용법에서 설명하였습니다.

이 예제에서는 테스트이름은 문자열(String) 포맷으로, 타임스 탬프는 TIME STAMP FORMAT 포맷으로, 어레이는 Real64 포맷으로 각각 저장되어 있습니다. 여기서는 파일에 저장된 데이터를 VEE로 불러들이기 위해서 From File 오브젝트에 3 개의 트랜잭션을 생성하게 됩니다.

1 I/O [image] From [image] File 및File을 선택하고 To File 오브젝트의 아래에 배치합니다.

2 To File 오브젝트의 시퀀스 출력핀을 From File 오브젝트의 시퀀스 입력핀에 연결합니다.

이렇게 시퀀스를 연결하면 To File 오브젝트가 myFile 파일에 데이터 쓰기를 완료한 후, From File 오브젝트가 실행됩니다.

3 From File 오브젝트의 파일이름은 디폴트 값인 myFile로 남겨 놓습니다. (To File 오브젝트에서 사용하였던 파일이름을 사용합니다.) <Double Click To Add Tansaction>를 더블클릭 하여 I/O Transaction 대화상자를 띄웁니다. 다음과 같이 REAL64 FORMAT을 클릭하여 이를 STRING FORMAT으로 변경합니다.

4 다른 디폴트 값은 변경하지 않고, OK 버튼을 눌러 I/O Transaction 대화상자를 닫습니다. From File 오브젝트의 첫 번째 줄에 READ TEXT x STR 트랜잭션이 표시됩니다.

타임스탬프와 어레이를 읽어오기 위하여 2 개의 트랜잭션을 더 추가합니다.

5 같은 From File 오브젝트에서 <Double Click To Add Tansaction>를 더블클릭 합니다. I/O Transaction 대화상자가 나타납니다. 표현식 필드에 y를 입력합니다. REAL64 FORMAT을 STRING FORMAT으로 변경하고 OK 버튼을 클릭합니다.

주의사항

타임스탬프를 텍스트 문자열로 읽을 때는 STRING FORMAT을 사용합니다. TIME STAMP FORMAT을 사용하면 타임스탬프 값이 실수 값으로 리턴됩니다.

6 같은 From File 오브젝트에서 <Double Click To Add Tansaction>을 더블클릭 하여 I/O Transaction 대화상자를 띄웁니다. 각 항목을 다음과 같이 설정합니다:

항목 | 설명
(표현식 필드) | 실수 어레이를 z 터미날을 통하여 출력시키기 위해 x를 z로 변경합니다.
SCALAR | SCALAR를 ARRAY 1D로 변경합니다.
SIZE: | I/O Transaction 박스에서 SCALAR를 ARRAY 1D로 변경하면 SIZE 버튼이 추가됩니다. 여기서는 어레이가 4개의 앨리먼트를 가지므로 10을 4로 변경하고 OK 버튼을 클릭합니다.

주의사항

어레이의 크기를 모르면, SIZE를 TO END로 설정합니다. 이것은 어레이의 정확한 크기를 모르는 상황에서 데이터를 파일의 끝까지 읽어야 할 때 사용합니다. 크기를 모르는 파일의 전체 내용을 문자열 어레이로 읽어 들일 때 이 기능을 간단히 사용할 수 있습니다.

여기 까지, From File 오브젝트에는 “READ TEXT x STR”, “READ TEXT y STR”, “READ TEXT z REAL64 ARRAY:4”의 3 개의 트랜잭션이 생성되었고 자동으로 출력 터미날 x, y, z도 자동으로 생성되었습니다. (오브젝트 메뉴의 Add Terminal 또는 Delete Terminal 명령이나, Ctrl-A, Ctrl-D를 사용하여 수동으로 입/출력 터미날을 추가하거나 삭제할 수 있습니다.)

7    Display   [image] AlphaNumeric을 선택하고 3개의 출력을 디스플레이 하기 위하여 두 번 클론합니다. 각각의 AlphaNumeric 오브젝트들을 From File의 데이터 출력핀 3 개에 하나씩 연결합니다.

AlphaNumeric 디스플레이의 사이즈는 최초에 메뉴에서 오브젝트를 선택하였을 때 나타나는 오브젝트 외곽 테두리를 클릭하고 드래그하여 크기를 조정할 수 있습니다.

8 프로그램을 실행합니다. 프로그램은 다음과 같습니다.

첫 번째의 AlphaNumeric은 테스트 이름을, 두 번째는 테스트 시간을, 세 번째는 어레이의 숫자를 출력합니다.

관련정보

I/O 트랜잭션 이해, I/O 트랜잭션 포맷


실습 5-4: 레코드 사용법

이 실습은 Record 데이터 타입을 사용하는 방법을 설명합니다. 레코드를 생성하는 방법, 레코드 내의 특정 필드를 추출하는 방법, 선택된 필드를 설정하는 방법, 그리고 모든 레코드를 한번에 언빌드(unbuild)하는 방법을 실습합니다. 또한 이 실습에서는 타임 스탬프 함수 now()를 이전 실습과는 다른 방법으로 사용합니다.

레코드 생성

3개의 필드(테스트이름[스트링], 타임 스탬프[실수 스칼라], 테스트 결과[4개의 앨리먼트를 가지는 실수 어레이])를 가지는 레코드를 생성합니다. 다음에 이어지는 실습에서 이 필드들을 추출하고 나면, 디스플레이를 위해 타임스탬프를 다른 포맷의 숫자로 변경할 수 있다는 것을 알게 될 것입니다.

Data [image] Constant [image] Text를 선택하여 테스트 이름을 생성하고 입력 필드에 Test1을 입력합니다. 오브젝트의 이름을 Text Constant로 변경한 후, 아이콘화 합니다.

9 Device [image] Function & Object Browser를 선택하고, Built-in Function, Time & Date, now를 차례대로 선택한 후에 Create Formula 버튼을 클릭합니다. (또는 now를 더블 클릭합니다.) Text Constant 오브젝트 아래쪽에 배치한 다음, 아이콘화 합니다.

10 Data [image] Constant [image] Real64를 선택하고 now() 오브젝트의 아래쪽에 배치합니다.

11 Real64 오브젝트의 Properties 에서 DataShpe 항목을 Scalar에서 Array 1D로 변경합니다.

12 Real64 타이틀 바를 더블 클릭하여 Constant 속성창을 열고 Size를 4로 변경하고 OK를 클릭합니다.

각 앨리먼트의 값에 2.2, 3.3, 4.4, 5.5를 입력한 후, 아이콘화 합니다. 각 앨리먼트의 값을 변경하려면 각 인덱스 (0000:, 0001:, 0002:, … )의 오른쪽에 위치한 값(초기값은 0)을 더블클릭 하여 하이라이트 시킨 후, 값을 입력하면 됩니다. 각 인덱스간의 이동은 Tab 키를 이용하면 편리합니다.

13 Data [image] Build Data [image] Record를 선택하고 3 개의 다른 오브젝트의 오른쪽에 배치합니다. Record 오브젝트에 입력 터미날을 1 개 추가합니다. (Record 오브젝트는 디폴트로 2 개의 입력 터미날을 가지고 있으므로 하나의 입력터미날 만 추가 생성합니다.) 각각의 터미날을 더블클릭 하여 Input Terminal Information을 열고, 이름을 각각 testname, time, data로 변경합니다.

Build Record 오브젝트는 데이터를 스칼라 또는 어레이 데이터 타입으로 출력할 수 있습니다.

14 Text Constant, now() 및 Real64 오브젝트를 각각 Build Record 오브젝트의 testname, time, data 터미날에 연결합니다.

15 프로그램을 실행합니다. Record 데이터 출력핀을 더블 클릭하면 레코드를 관찰할 수 있습니다. 프로그램은 다음과 같습니다.

Output Teminal Information 대화상자에서 3 개의 필드와 필드의 값을 볼 수 있습니다. 만일 Real64:Array1D 버튼을 클릭하면, 리스트 박스에 실제의 값들이 출력됩니다. 타임스탬프가 Real64 스칼라 타입이었으므로 실수(63.23G)로 저장되어 있습니다. 다음 실습에서는 타임스탬프를 보다 읽기 쉬운 형태로 변경할 것입니다. OK 버튼을 누르고 Output Terminal Information 대화상자를 닫습니다. 프로그램을 records.vee로 저장합니다.

레코드 내의 필드 접근

이 실습에서는 Get Field 오브젝트를 사용하여 이전 실습에서 생성한 레코드의 3 개의 필드의 각각의 값을 출력합니다.

1 records.vee 프로그램을 엽니다.

2 Data [image] Access Record [image] Get Field를 선택합니다. 타이틀이 rec.field인 오브젝트가 나타납니다.

rec 데이터 입력으로 레코드를 받아들입니다(레코드 필드의 개수는 상관없습니다). 입력 필드의 표현식 rec.field은 수정할 수 있습니다. rec는 데이터 입력 터미날의 이름과 같아야 하지만 대 소문자는 구별하지 않습니다. (VEE는 대소문자를 구분하지 않습니다.)

주의사항

Get Field 오브젝트는 Formula 오브젝트와 마찬가지로 입력과 표현식으로 구성됩니다.

3 rec.field 오브젝트를 두 번 클론하고 Build 오브젝트의 오른쪽에 배치합니다.

4 Build Record 오브젝트의 데이터 출력핀을 모든 rec.field 오브젝트의 입력핀에 연결합니다.

5 여기서 사용하는 레코드가 필드의 이름은 testname, time 및 data이므로, 이들에 접근할 수 있도록 표현식을 수정합니다.

6 3 개의 rec.field 오브젝트의 표현식을 각각 rec.testname, rec.time, rec.data로 수정합니다.

7 Display [image] AlphaNumeric을 선택하고 두 번 클론 합니다. 3개의 디스플레이를 3개의 rec.field 오브젝트에 각각 하나씩 연결합니다. 세 번째 디스플레이는 실수 어레이 출력에 알맞은 크기로 변경합니다.

8 두 번째 AlphaNumeric 오브젝트의 Properties에서 NumberFormat 속성을 엽니다. Number Format for 대화상자에서 Global Format 체크박스를 클릭하여 선택을 해제합니다. (대화상자 이름이 Number Format for입니다.)

디스플레이 포맷을 설정합니다. Standard로 설정되어 있는 Real 섹션을 Time Stamp로 변경합니다.

9 HH:MM:SS를 클릭하여 HH:MM으로 변경하고, 24HOUR을 클릭하여 12HOUR로 변경한 다음, OK 버튼을 클릭합니다.

10 프로그램을 실행하고 getfield.vee로 저장합니다. 프로그램은 다음과 같습니다.

여기서는 타임스탬프 포맷을 사용하여 이전 실습과는 다른 형태로 시간을 표시하고 있습니다.

레코드내의 필드에 값 설정

이 실습은 레코드의 특정 필드의 데이터를 변경하는 방법을 실습합니다.

주의사항

같은 레코드를 다른 테스트에서 재사용 할 수 있습니다.

1 getfield.vee프로그램을 엽니다.

2 Build Record 이후의 모든 오브젝트를 제거합니다.

1 Data [image] Access Record [image] Set field를 선택하고 Build Record 오브젝트의 오른쪽에 배치합니다. Build Record의 출력을 Set Field 오브젝트의 rec입력에 연결합니다. 오브젝트의 타이틀은 rec.field = b입니다.

Set Field 오브젝트는 등호(=)의 오른쪽의 값(b)을 왼쪽 필드(rec.field)에 입력하도록 동작하므로, rec 레코드에 지정된 필드는 등호의 오른쪽의 값으로 수정됩니다. 레코드의 나머지 필드는 수정되지 않습니다.

주의사항

Set Field 오브젝트는 Formula 오브젝트와 마찬가지로 입력과 표현식으로 구성됩니다.

2 4개의 앨리먼트 값을 모두 바꾸기 위하여 표현식을 rec.data[*] = b로 수정합니다. (이 레코드 필드 어레이의 모든 앨리먼트를 지시하기 위하여 [*] 표기를 사용합니다.) 입력 터미날 b로 들어오는 새로운 값을 어레이에 입력하게 됩니다.

3 Data [image] Constant [image] Real64를 선택하고 Build Record 오브젝트의 아래에 배치합니다. Properties에서 Datashape 속성을 Array 1D로, ArraySize 속성을 4로 변경합니다.

만일 레코드 필드에 입력될 새로운 값들이 하나의 어레이에 포함되어 있다면, 현재의 어레이와 같은 크기를 가져야 합니다.

Real64 오브젝트의 어레이 앨리먼트에 각각 1,2,3,4를 입력하고 데이터 출력핀을 Set Field의 b 입력 터미날에 연결합니다.

이제 Get Field 오브젝트를 사용하여 레코드로부터 rec.data 필드를 추출하고 결과를 디스플레이 합니다.

4 Data [image] Access Record [image] Get Field를 선택하고 Set Field 오브젝트의 아래에 배치합니다. Get Field의 표현식 rec.field를 red.data로 변경합니다. rec.field = b 오브젝트의 데이터 출력핀을 rec.field 오브젝트의 입력핀에 연결합니다.

주의사항

Get Field 오브젝트 대신에 표현식에 A.data을 입력한 Formula 오브젝트를 사용해도 무관합니다.

5 AlphaNumeric 디스플레이 오브젝트를 선택하고 크기를 조절한 다음, rec.field의 출력핀과 연결합니다.

6 프로그램을 실행하고 setfield.vee 로 저장합니다.

이 예제의 레코드 필드도 수정할 수 있습니다. 위의 프로그램에서 표현식 rec.field = b를 rec.data[1] = 20으로 변경하고, rec.field = b 오브젝트의 입력 터미날 b를 삭제합니다. 프로그램을 실행시키면, 어레이 2.2, 20, 4.4, 5.5이 출력됩니다.

레코드 언빌드

UnBuild Record 오브젝트를 사용하여 모든 레코드 필드를 추출하고 각 필드의 이름과 데이터 타입을 가져옵니다.

1 setfield.vee 프로그램을 열고 Build Record 이후의 모든 오브젝트를 삭제합니다.

2 Data [image] UnBuild Data [image] Record를 선택하고 Build Record 오브젝트의 아래에 배치한 후, 오픈뷰로 전환하고, Build Record 오브젝트의 출력핀을 UnBuild Record에 연결합니다. UnBuild Record에 데이터 출력핀을 추가하고 A, B, C 출력핀의 이름을 각각 testname, time, data로 변경합니다.

3 AlphaNumeric 디스플레이를 선택하고 4회 클론 합니다. 다섯 개의 디스플레이를 UnBuild Record 오브젝트의 각 출력핀에 연결합니다. Name List, Type List, data를 디스플레이하는 AlphaNumeric의 크기를 알맞게 조절합니다. time을 디스플레이하는 AlphaNumeric 오브젝트의 NumberFormat 속성을 일/월/년도, 시간:분, 12시간 포맷으로 디스플레이 하도록 재 설정합니다.

4 프로그램을 실행하고 unbuild.vee로 저장합니다.

Name List 출력핀은 레코드의 3 개의 필드이름(testname, time, data)을 리턴하고 있고, Type List는 testname 필드가 Text 타입을, time 필드와 data 필드는 Real64 타입을 사용하고 있음을 출력하고 있습니다.

관련정보

혼합된 데이터 타입을 저장하기 위해 레코드 사용하기


실습 5-5: 데이터셋 사용법

데이터셋은 단순히 파일에 저장된 레코드 어레이입니다. 이 실습에서는 어떻게 데이터셋에 데이터를 저장하고 추출하는가를 실습합니다.

데이터셋에서 레코드 저장 및 추출

이 실습에서는 3 개의 필드(테스트 이름, Real64 Slider, 실수 어레이)를 가지는 레코드 10개를 레코드 어레이로 생성합니다. DataSet에 레코드 어레이를 저장하고, 레코드를 추출하여 디스플레이합니다.

1 Flow [image] Start를 선택하고 작업영역의 좌측 상단에 배치합니다. Flow [image] Repeat [image] For Count를 선택하고 Start의 아래에 배치합니다. Device [image] Formula를 선택하고 For Count 오브젝트의 오른쪽에 배치합니다. Start의 시퀀스 출력을 For Count의 시퀀스 입력에 연결하고, For Count의 데이터 출력핀을 Formula 오브젝트의 데이터 입력핀에 연결합니다.

2 Formula 오브젝트의 표현식 필드를 “test”+a로 수정합니다.

Start 오브젝트를 클릭하면, For Count 오브젝트는 0에서 9까지의 정수를 Formula 오브젝트의 입력핀 A로 출력합니다. Formula 오브젝트로 입력된 각각의 정수 값 들은 단어 “test”에 더해져서 test0, test1, test2, … test9 의 스칼라 텍스트를 출력합니다. 이 값들은 10개의 레코드의 첫 번째 필드에 설정됩니다.

3 Data [image] Build Data [image] Record를 선택하고 Formula 오브젝트의 오른쪽에 배치한 후, 데이터 입력핀 C를 추가합니다. Formula 오브젝트의 데이터 출력핀을 Build Record의 A 입력에 연결합니다.

4 툴 바의 Function & Object Browser 아이콘을 클릭합니다.

a Built-in Function, Probability & Statistics, random을 차례대로 선택하여 random(low, high) 오브젝트를 생성하고, Formula 오브젝트의 아래쪽에 배치합니다.

b 입력 터미날 A를 제거하고 입력 파라미터의 low을 0으로, high를 1로 변경합니다. 즉, 표현식을 random(0,1)로 수정합니다.

c 오브젝트 이름을 Random Number로 변경하고 데이터 출력을 Build Record 오브젝트의 B 터미날에 연결합니다.

5    Formula 오브젝트의 시퀀스 출력핀을 Random Number의 시퀀스 입력핀에 연결합니다. 따라서 For Count에 의해 프로그램이 반복 실행될 때마다 새로 발생된 랜덤 넘버를 레코드의 B 필드로 반드시 출력하도록 합니다.

6 Data [image] Constant [image] Real64를 선택하고, Formula 오브젝트의 아래에 배치합니다.

a 오브젝트의 Title 속성을 Real Array로 변경하고, DataShape 속성을 Array 1D로, Size 속성을 3으로 설정합니다.

b 어레이의 앨리먼트 값에 각각 1, 2, 3을 입력합니다.

c Real Array 오브젝트의 데이터 출력핀을 Build Record의 C 터미날에 연결합니다.

7 I/O [image] To [image] DataSet을 선택하고 Build Record 오브젝트의 아래에 배치합니다. Build Record의 데이터 출력핀을 DataSet의 데이터 입력핀에 연결합니다. to DataSet:을 디폴트인 myFile로 남겨두고, Clear File At PreRun 항목을 체크합니다.

8 프로그램을 실행합니다. 그림과 같이 이름이 myFile인 DataSet에 10개의 레코드 어레이를 저장합니다.

이제 From DataSet과 Record Constant 오브젝트를 사용하여 레코드로부터 어레이를 추출하고 디스플레이 합니다.

9 I/O [image] From [image] DataSet을 선택하고 For Count 오브젝트의 아래에 배치합니다. 파일이름은 디폴트 파일이름 myFile을 사용합니다. Get Record 필드를 클릭하여 One에서 All로 변경합니다. 오브젝트 하단의 표현식 1은 그대로 사용합니다.

Get records를 All로 설정하면, 표현식에 입력한 내용을 만족하는 모든 레코드를 myFile 데이터셋에서 검색합니다. Get records 필드를 One으로 설정하면, 표현식에 입력한 내용을 만족하는 최초의 레코드만 출력합니다. 이 실습에서 표현식에 입력한 1은 TRUE의 상태를 의미하며, 여기서는 모든 레코드가 기준을 만족한다고 가정하기 위해서 사용하였습니다. 따라서 myFile 데이터셋에 저장된 모든 레코드가 검색조건을 만족하여 어레이가 Rec 출력핀으로 출력될 것입니다. 표현식 필드의 사용법은 다른 실습에서 설명합니다. 자세한 정보는 오브젝트 메뉴의 도움말을 참조하십시오.

For Count의 시퀀스 출력핀을 From Data Set 오브젝트의 시퀀스 입력핀에 연결하여, 반드시 myFile에 데이터를 쓴 다음에 읽도록 합니다.

10 Data [image] Constant [image] Record를 선택하고 To Data Set 오브젝트의 아래에 배치합니다. 오브젝트 메뉴를 열고 Add Terminal ⇒ Control Input을 선택합니다. 나타나는 리스트 박스에서 Default Value를 선택하고 OK 버튼을 클릭합니다.

프로그램 실행 시 결과를 볼 수 있도록 Record 오브젝트의 사이즈를 늘립니다. 수신된 레코드는 디폴트 값이 됩니다. 이 경우에, Record 오브젝트는 From Data Set 오브젝트로부터 레코드 어레이를 수신하고, 레코드 어레이를 디스플레이 하기 위해 스스로 포맷합니다.

11 From Data Set 오브젝트의 출력핀 Rec를 Record 오브젝트의 Default Value 핀에 연결합니다. Record의 터미날을 화면에 표시하기 위해서는, Properties에서 ShowTerminals 속성을 True로 변경합니다. Data Set 오브젝트와 Record 오브젝트 사이에 점선이 나타납니다.

주의사항

두 오브젝트 사이의 점선은 제어선을 나타냅니다.

12 프로그램을 실행하고 dataset1.vee로 저장합니다. 프로그램은 다음과 같습니다.

note

From Data Set 오브젝트는 반드시 조건에 맞는 레코드를 최소한 하나 이상 가질 수 있어야 합니다. 조건에 맞는 레코드가 없으면 에러가 발생합니다. 에러를 피하기 위해서는 오브젝트에 EOF(End-Of-File) 출력핀을 추가합니다.  EOF 출력은 조건에 맞는 레코드가 없으면 활성화됩니다. EOF가 활성화되었을 때 실행해야 하는 내용을 EOF 출력에 연결합니다.

관련정보

데이터셋 사용하기


실습 5-6: 데이터셋을 이용한 검색 및 정렬기능

이 실습에서는, 데이터셋에서 데이터를 검색하는 방법, 검색에 사용하는 사용자 인터페이스 생성 및 데이터 정렬을 실습합니다.

데이터셋을 이용한 검색

1 dataset1.vee 프로그램을 엽니다.

2 From Data Set 오브젝트의 표현식 필드에 Rec.B>=0.5를 입력합니다. 오브젝트는 필드 B의 값이 0.5 보다 크거나 같은 모든 레코드를 출력할 것입니다.

3 From Data Set 오브젝트의 출력에 EOF핀을 추가합니다. 이 핀은 표현식 필드의 조건을 만족하는 레코드가 존재하지 않을 경우 활성화됩니다. From Data Set 오브젝트의 데이터 출력 영역 위에 마우스 커서를 올려놓고 Ctrl-A 누르거나, 오브젝트 메뉴에서 Add Terminal ⇒ Data Output을 실행하여 EOF 핀을 추가할 수 있습니다.

주의사항

EOF 핀을 추가하려면, 오브젝트 메뉴를 열고, Add Terminal [image] Data Output...을 클릭합니다.

4 프로그램을 실행하고 dataset2.vee로 저장합니다.

데이터를 검색하기 위한 사용자 인터페이스 생성

이 실습에서 테스트결과를 저장하고 있는 데이터베이스에서 데이터를 추출하기 위한 사용자 인터페이스를 생성합니다. 사용자 인터페이스를 사용하면 우발적인 실수로 인해서 소오스 프로그램이 훼손되는 것을 방지하는 효과가 있습니다.

프로그램의 요구기능은 다음과 같습니다:

• test0부터 test9까지의 테스트 결과를 선택할 수 있는 테스트 메뉴를 제공합니다.

• test0부터 test9까지의 테스트 선택하면 해당 테스트의 필드와 필드 값을 출력합니다. 사용자 인터페이스를 대화형으로 사용하여 사용자가 보다 자세한 정보를 얻을 수 있도록 합니다.

• 명령을 초기화하는 기능을 포함합니다.

프로그램을 생성하기 위하여 다음의 단계를 따릅니다.

1 dataset2.vee프로그램을 엽니다.

From Data Set 오브젝트의 표현식을 외부에서 입력할 수 있도록 Control 입력을 추가합니다.

2 From Data Set 오브젝트 메뉴를 열고 Add Terminal [image] Control Input... 을 선택합니다. 팝업된 메뉴에서 Formula를 선택합니다. Formula 입력 터미날이 나타납니다. 한 번의 테스트에서 하나의 테스트 결과를 출력하기 위하여 Get records 필드를 클릭하여 All 을 One으로 변경시킵니다.

사용자가 특정 테스트이름을 선택하도록 작성할 수 있습니다. 테스트이름은 모든 레코드의 A 필드에 저장되어 있습니다. 다음의 표현식을 추가합니다:

Rec.A==<인용부호를 포함하는 테스트 이름>

Rec.A는 필드 A의 값이 사용자가 입력한 테스트이름과 일치하는 레코드를 출력합니다. (예, Rec.A==“test6”). 오브젝트는 테스트 레코드를 추출하여 디스플레이 합니다.

사용자가 선택할 수 있는 메뉴를 생성합니다.

3 테스트이름을 선택할 수 있도록 버튼메뉴를 생성합니다. Data [image] Selection Control [image] Radio Buttons를 선택하고 For Count 오브젝트의 왼쪽에 배치합니다.

a 오브젝트 메뉴를 열고 Edit Enum Values...를 선택합니다. 0000:item1을 하이라이트 시키고 test0를 입력합니다. Tab 키를 눌러 다음으로 이동하여 0001:item2에 test1을 입력합니다. 이와 같은 방법으로 test0부터 test9까지 입력하고 OK 버튼을 클릭합니다.

b 오브젝트 메뉴에서 Properties를 선택하고 오브젝트 이름을 Radio Buttons에서 Test Menu로 변경하고 AutoExecute 속성과 ShowTerminals 속성을 True로 변경합니다.

4 프로그램은 사용자가 메뉴를 선택할 때마다 실행될 것이므로 Start 오브젝트를 제거합니다.

5 메뉴가 선택되었을 때만 실행되도록 하기 위하여 Test Menu의 데이터 출력핀 Enum을 For Count의 시퀀스 입력 핀에 연결합니다. 프로그램은 다음과 같습니다.

6 Test Menu의 출력은 Formula 오브젝트를 거쳐서, 정확한 공식이 From Data Set 오브젝트로 전송되도록 프로그램을 추가합니다.

Device [image] Formula를 선택하여 오브젝트를 Test Menu의 아래에 배치합니다. 새로운 Formula 오브젝트에 다음의 표현식을 입력합니다:

"Rec.A==" + "\"" + A + "\""

구성요소 | 설명
밨ec.A==?/td> | "Rec.A==" 는 Formula 오브젝트의 표현식 입력을 From Data Set 오브젝트에 텍스트 데이터 타입으로 전송합니다.(따옴표는 텍스트 문자열임을 나타냅니다.)
A | "Rec.A==" 는 Formula 오브젝트의 표현식 입력을 From Data Set 오브젝트에 텍스트 데이터 타입으로 전송합니다.(따옴표는 텍스트 문자열임을 나타냅니다.)
?뵒 | 따옴표의 탈출문자는 \" 입니다. 텍스트 문자열임을 나타내기 위하여 따옴표를 넣습니다. testname은 Test Menu의 Enum 데이터로부터 입력됩니다. 따옴표는 From DataSet 오브젝트로 정확한 공식을 출력하기 위하여 필요합니다.

예를 들어, test6가 선택되면, From DataSet 오브젝트의 Formula 입력핀으로 입력되는 값은 Rec.A==“test6”이 되며, From Data Set 오브젝트는 A 필드의 값이 test6인 최초 의 레코드를 출력합니다.

7 Test Menu의 Enum 데이터 출력핀을 Formula 오브젝트의 데이터 입력핀에 연결합니다. Formula 오브젝트를 아이콘화합니다.

8 Formula 데이터 출력핀을 From Data Set 오브젝트의 Formula 컨트롤 입력핀에 연결합니다.

9 Formula로부터 입력된 예전의 데이터의 재사용을 막기 위하여 For Count 와 From Data Set 사이의 시퀀스 라인을 제거합니다. For Count의 시퀀스 출력핀을 Formula의 시퀀스 입력핀에 연결합니다.

10 Formula 오브젝트의 시퀀스 출력핀을 From Data Set의 시퀀스 입력핀에 연결합니다. 즉, Test Menu ? For count ? Formula ? Build Record ? To DataSet 경로의 프로그램 실행이 완료된 후 Test Menu ? For count ? Formula ? From DataSet이 실행되므로 올바른 데이터가 사용되도록 보장합니다. (이 예제의 목적은 데이터셋에서 테스트 결과를 검색하는 것입니다. 그러나 실제 테스트 결과를 사용하지 않고 랜덤 숫자를 임의로 발생시켜 이것을 테스트 결과라고 간주하고 데이터셋에 저장합니다. 따라서 이 프로그램에서는 가상 테스트 결과를 저장하는 프로세스가 테스트 결과를 검색하는 프로세스보다 먼저 실행되어야 합니다. Formula 오브젝트의 시퀀스 출력핀과 From Data Set의 시퀀스 입력핀에 연결된 라인이 이 실행순서를 보장하는 것입니다.)

11 사용자 설명서를 디스플레이 할 대화상자를 생성합니다. Display [image] Note Pad를 선택하고 오브젝트의 타이틀 속성에 “테스트 결과 데이터베이스 사용 설명서”로 입력합니다. 현재의 모든 템플릿을 제거하고, 입력 영역에 “원하는 테스트 결과를 Test Menu에서 선택하십시오.” 라고 입력합니다.

12 Record 상수 오브젝트의 이름을 Test Results로 변경합니다.

13 프로그램 작성 결과는 다음과 같습니다. 프로그램을 몇 회 실행하여 동작을 검증합니다. Test Menu의 AutoExecute 항목이 True로 설정되어 있으므로 Test Menu의 임의의 버튼을 클릭하면 프로그램은 자동으로 실행합니다.

다음에는 사용자인터페이스를 생성합니다.

14 Ctrl을 누른 상태에서 Test Menu, 테스트 결과 데이터베이스 사용 설명서, Test Results를 선택합니다.

이들 오브젝트에 그림자가 생깁니다. 다른 오브젝트가 선택되었는지 확인합니다.

Edit [image] Add to Panel을 실행하면, 이들 오브젝트의 사용자인터페이스가 패널뷰에 생성됩니다. 오브젝트의 크기와 위치를 적절히 변경합니다.

주의사항

작업창 내의 오브젝트가 선택되지 않았으면, Add to Panel 메뉴가 회색의 비활성화 상태로 나타납니다.

15 프로그램을 몇 회 실행하여 동작을 확인합니다. 프로그램을 database.vee로 저장합니다.

Record 상수 오브젝트에서 필드 이름이나 값을 클릭하여 다른 레코드의 자세한 정보를 얻을 수 있습니다.

주의사항

사용자인터페이스와 프로그램의 변경을 막기 위하여, File [image] Create RunTime Version...을 실행하여 프로그램의 이름을 입력하면 VEE는 *.vxe 확장자를 가진 파일을 추가로 생성합니다. *.vxe 확장자를 가진 파일은 *.vee 확장자를 가진 파일의 런타임 버전으로 *.vee 확장자를 가진 파일의 소스 프로그램과 사용자 인터페이스 프로그램이 변경되어도 영향받지 않습니다.

레코드 필드를 이용한 데이터 정렬

이 실습은 dataset2.vee 프로그램을 사용합니다. dataset2.vee 프로그램은 From Data Set에서 Rec.B>=0.5를 만족하는 모든 레코드를 추출하여, 추출한 레코드 어레이를 Record 상수에 출력하였습니다.

이 실습에서는, dataset2.vee 프로그램에 정렬기능을 추가하여 어떤 테스트가 가장 큰 차이로 Fail 되었는지를 알아볼 수 있도록 프로그램을 수정합니다. 테스트는 내림차순으로 정렬됩니다.

1 dataset2.vee 프로그램을 엽니다.

2 Device [image] Formula를 선택하고 From Data Set의 데이터 출력핀 Rec를 Formula 오브젝트의 데이터 입력핀에 연결합니다. Formula 오브젝트의 표현식에 sort(a, 1, “B”)을 입력합니다.

Sort 오브젝트는 Function & Object Browser의 Built-in Function [image] Array 카테고리에 있습니다. 이 오브젝트의 자세한 기능은 오브젝트 메뉴의 도움말을 참조합니다. sort()함수는 Formula 오브젝트에 의해 호출됩니다.

sort(a, 1, “B”)의 첫 번째 파라미터는 Formula 오브젝트의 A 핀을 의미합니다. A 핀으로 입력되는 데이터는 레코드 어레이 입니다. 두 번째 파라미터는 정렬 방식을 의미합니다. 0은 내림차순을 의미하며, 0 이외의 숫자는 오름차순을 의미합니다. 디폴트 정렬 방식은 오름차순입니다. 세 번째 파라미터는 레코드 타입의 데이터에서 정렬할 필드 이름입니다. 따라서 이 sort 함수는 레코드 어레이의 B 필드를 사용하여 레코드를 오름차순으로 정렬합니다.

Select Display [image] AlphaNumeric을 선택하고 이것을 Formula 오브젝트의 데이터 출력핀에 연결합니다.

4 프로그램을 몇 회 실행하여 동작을 확인합니다. Data Set 파일에서 반환되는 모든 레코드가 B 필드 오름차순으로 정렬되었습니다.

관련정보

데이터셋 사용하기


실습 6-1: Agilent VEE 데이터를 MS Excel로 전송

이 실습에서는 실제 측정결과 대신 가상의 데이터를 생성하여 MS Excel에 저장합니다. (이 실습에는 MS Office 2003과 Microsoft Excel 11.0 오브젝트 라이브러리를 사용합니다. 그러나 MS Office 2000과 MS Excel 9.0 오브젝트 라이브러리를 사용해도 이 프로그램이 실행됩니다.) 사용자의 컴퓨터에서 Automation 타입 라이브러리를 선택하고, 오브젝트 타입의 전역변수를 선언하고, 이들을 globals UserFunction에 넣습니다. (전역변수를 사용하지 않고 프로그램 할 수 있으나, 전역변수를 사용하면 더욱 간단하고 이해하기 쉽게 프로그래밍 할 수 있습니다.)

1 Automation 라이브러리를 선택합니다. Device [image] ActiveX Automation References...를 클릭하고, Microsoft Excel 11.0 Object Library를 체크한 후 OK 버튼을 클릭합니다.

2 전역 변수를 저장할 UserFucntion을 생성합니다. Device [image] UserFunction을 클릭합니다. 이름을 globals로 변경합니다. (UserFunction에 대한 자세한 내용은 Help Contents and Index Tell me about 을 참조하십시오.)

3 Data [image] Variable [image] Declare Variable을 클릭하고 globals UserFunction 내부의 왼쪽에 배치합니다. Declare Variable 오브젝트의 이름을 sheet로 변경합니다. Type을 Object로 변경하면 대화상자에 Sub Type 항목이 생성되지만, 이 실습에서는 사용하지 않습니다. 즉, 이 Sub Type 항목은 디폴트 상태인 Any를 사용합니다.

4 이 오브젝트를 3회 클론하여, 각각의 오브젝트의 이름을 app, range, window로 변경합니다. 프로그램은 다음과 같습니다.

5 위의 그림과 같이 각각의 값을 입력하고 이들 오브젝트를 아이콘화 합니다.

globals UserFunction에서 데이터 타입을 Object로 선언하고, 여기서 Sub Type을 .NET 또는 COM로 선택하면 해당 클래스 및 이벤트를 더욱 자세히 선언할 수 있습니다. 이들은 더욱 명확하게 타입을 체크하거나, 이벤트를 캐치할 때 사용합니다.

명확한 타입 체크: 예를 들어, 사용자가 오브젝트 app의 타입을 Excel.Application으로 지정하면, Excel.Application 타입의 오브젝트만이 app로 지정될 수 있습니다. 따라서 이 경우에는 Excel.worksheet 또는 Word.bookmark 타입의 오브젝트를 지정하면 에러가 발생합니다.

이벤트 캐칭: 어플리케이션 내부에서 발생하는 다양한 이벤트(예, Excel 워크시트 내에서의 right-button-down)를 캐치하기 위하여 VEE의 UserFunction을 사용할 수 있습니다. 이벤트를 핸들링하고 MS Excel로 정보를 돌려주기 위한 VEE UserFunction을 지정할 수 있습니다.

ActiveX Controls의 이벤트에 대한 자세한 내용은 Automation 오브젝트 이벤트 관리 를 참조하십시오.

6 Main 윈도우를 활성화시킨 상태에서, globals UserFunction의 오브젝트 메뉴를 열고 Generate [image] Call을 클릭하여 Call globals 오브젝트를 생성하고, Main 윈도우의 왼쪽에 배치합니다.

7 Device [image] Formula를 클릭하고 메인 윈도우의 중앙상단에 배치합니다. 이름을 Set up Excel Worksheet로 변경합니다. Call globals 오브젝트의 시퀀스 출력핀을 Formula 오브젝트의 시퀀스 입력핀에 연결합니다. Set up Excel Worksheet 오브젝트의 입력핀 A를 제거합니다. (오브젝트 메뉴를 열고 Delete Terminal [image] Input을 선택합니다.)

8 Set up Excel Worksheet 오브젝트에 아래의 표현식을 입력합니다. ANSI C와 같이 각 행의 끝에 세미콜론(;)을 입력하여 명령어를 구분합니다.

명령

설명

set sheet =

set은 등호(=) 오른쪽의 내용을 왼쪽의 변수에 지정합니다. set app는 엑셀 워크시트로 지정된 어플리케이션 sheet.application을 설정합니다.

CreateObject
("Excel.Sheet")

Automation Server(이 경우, MS Excel)의 새로운 인스턴스를 생성하고, 빈 sheet(Excel의 workbook)를 생성합니다. 각각의 Automation Server마다 오토메이션 서버를 나타내는 서로 다른 용어를 사용하지만, 형식은 동일합니다. 예를 들어, MS Word로 보고서를 작성하기 위해서 빈 문서를 생성할 때는 CreateObject(“Word.document”) 를 사용합니다.

set 키워드를 사용하는 경우에는 우변의 오브젝트 포인터가 좌변의 변수에 설정됩니다. set 키워드를 사용하지 않는 경우에는 우변의 디폴트 속성(이름)이 좌변의 변수의 값으로 설정됩니다. 더 자세한 내용은 Automation 오브젝트 처리를 참조하십시오.

worksheets(1);

CreateObject(“Excel.sheet”) 명령어로 workbook을 가진 새로운 Excel을 실행시키고, 첫 번째 워크시트의 주소를 지정하기 위해서, worksheet(1)을 추가합니다:

set sheet = CreateObject("Excel.Sheet").worksheets(1);

이 명령어에 의해서 sheet 변수가 보고서의 Sheet1으로 설정됩니다.

set app = sheet.application;

app를 현재의 포인터가 가리키고 있는 어플리케이션으로 할당합니다.

app.visible = true;

화면에 Excel을 디스플레이합니다.

set window = app.windows(1);

어플리케이션의 첫 번째 윈도우를 참조합니다.

window.caption = 밫est System Results?

윈도우의 타이틀을 “Test System Results”로 설정합니다.

주의사항

Application Server 라이브러리에 대한 자세한 내용은 ActiveX Automation 및 MS Visual Basic과 관련된 자료를 참조합니다. 예, Office 2003(또는 Office 97) Visual Basic Programmer’s Guide 등.

9 Formula 오브젝트(Device [image] Formula)를 생성합니다. Formula 오브젝트를 클론하여 두 번째 Formula 오브젝트를 생성합니다. For Range(Flow [image] Repeat [image] For Range) 오브젝트를 생성합니다. 그림과 같이 오브젝트들의 이름을 변경하고, 오브젝트를 연결하고, 설정합니다. (Fill in Title 오브젝트의 입력 터미날을 제거해야 합니다.)

Formula 오브젝트와 For Range 오브젝트에서 사용하는 명령어에 대한 설명은 다음과 같습니다:

공식 | 설명
sheet.cells(1,1) = “DC Volts” | Excel 워크시트의 첫 번째 열, 첫 번째 행에 문자열 DC Volts를 입력합니다. 셀(1,1)의 디폴트 속성(값)을 "DC Volts"로 설정합니다.
sheet.cells(A+1,1) = random(1,100) | 이 구문은 다음의 문장을 단축하여 사용했습니다. sheet.cells(A+1,1).value=random(1,100). 입력핀 A로 들어오는 값에 1을 더한 (A+1)행, 1 열에 random(1,100)으로부터 생성되는 랜덤 숫자를 입력합니다.
from 1 thru 20, step 1 (the For Range object) | 1부터 20까지 1씩 증가되는 숫자를 출력합니다. (For Range 오브젝트)

10 Formula 오브젝트와 AlphaNumeric 오브젝트를 생성하고 이것들을 아래와 같이 이름을 변경하고 설정하며 연결합니다.

Formula 오브젝트의 각 입력 항목은 다음과 같습니다:

항목 | 설명
set range = sheet.range(“A2:A21"); | Excel 워크시트의 A2부터 A21까지의 범위를 VEE 변수로 참조하도록 설정합니다. (A는 워크 시트의 첫 번째 열)
range.NumberFormat = “##,#00.00"; | 각 셀의 숫자 포맷을 설정합니다. 소수점 이하 3 자리까지, 소수점 이상 2 자리 포맷을 사용하지만, 큰 숫자가 입력되면 파운드 기호(#)를 표시한 부분까지 숫자를 허용합니다.
app.worksheetFunction.average(range); | 평균값을 반환하는 Excel의 메서드 average()를 호출합니다.

11 프로그램을 results_average.vee 로 저장합니다. 프로그램을 실행시킵니다. 다음과 같이 하나의 worksheet를 가진 MS Excel이 실행됩니다.


실습 6-2: 측정결과를 MS Excel 템플릿으로 전송하는 Agilent VEE 프로그램 생성

1 results_average.vee 를 엽니다.

2 For Range 오브젝트를 10회 반복하도록 수정합니다.

3 Fill in Cells오브젝트에 입력핀 B를 추가하고, 표현식을 sheet.cells(A+1,1) = B[A-1]로 변경합니다.

4 Device [image] Formula를 선택하여 Array of Test Data로 이름을 변경하고, 4.5 에서 5.5까지의 20개의 랜덤한 앨리먼트를 가진 어레이를 생성하는 내장함수 randomize(ramp(20), 4.5, 5.5)를 입력합니다. Array of Test Data 오브젝트의 입력핀을 제거 하고 Array of Test Data의 출력을 Fill in Cells 오브젝트의 데이터 입력핀 B에 연결합니다.

5 Formula 오브젝트의 첫 번째 표현식에서 A21을 A11로 변경합니다. 구문은 다음과 같습니다:
set range = sheet.range(“A2:A11");

6 프로그램을 report_template.vee 로 저장하고 실행시킵니다. 실행결과를 엑셀 워크시트와 비교합니다.

MS Excel에 측정 결과를 출력하는 템플릿으로 이 프로그램을 재 사용할 수 있습니다. 측정 결과를 어레이에 입력하는 부분을 부분적으로 수정하고, 포맷을 커스터마이징하며, 원하는 셀에 데이터를 채우도록 템플릿의 나머지를 수정하면 됩니다.

MS Excel 라이브러리의 추가 메서드와 속성은, Function & Object Browser에서 ActiveX Object Type의, Excel Library에서 검색할 수 있습니다. (Device [image] ActiveX Automation References…에서 Microsoft Excel 11.0 Object Library가 선택되어 있어야 합니다.) 클래스와 멤버를 선택하고 Help 버튼을 클릭하면 Automation Server 작성자(이 경우 Microsoft)가 제공하는 도움말을 얻을 수 있습니다. 이 라이브러리에 대한 자세한 내용은 Microsoft 문서를 참고하십시오.

자습하기

어레이를 만들기 위해서 웨이브폼을 생성합니다. (타임스팬은 사용하지 않습니다.) 워크시트를 가진 엑셀용 VEE 오브젝트를 생성하여 오브젝트 변수(xl)로 설정합니다. 엑셀이 화면에 출력되도록 합니다. 256 개의 값을 가진 어레이를 엑셀 워크시트의 “A1:A256”에 한꺼번에 입력합니다. (하나의 셀에 하나씩 입력하지 않습니다.)

웨이브폼 생성기에서 데이터 어레이를 추출할 때는 Unbuild Waveform 오브젝트를 사용합니다. 1차원 어레이로부터 2차원 어레이를 생성하기 위해서 [a]구문을 사용하고, 엑셀에 256개의 데이터를 한 번에 입력할 수 있도록 256 x 1 어레이를 만들기 위해서 transpose() 함수를 호출합니다.

MS 엑셀을 사용한 기능 확장

다음 그림은 MS Excel에서 측정결과를 디스플레이 하는 프로그램의 복잡한 예제입니다. 이 예제에서는 어떻게 몇 개의 호출을 추가하여 VEE 데이터를 MS Excel에서 출력하는 템플릿 프로그램을 확장하는지 설명하고 있습니다.

입력항목은 다음과 같습니다:

항목 | 설명
MS Excel Window Size | 작업창의 좌측상단에 있는 드롭다운 리스트에서는 3개의 옵션(xlMaximized, xlMinimized, xlNormal) 중 하나를 선택할 수 있습니다. 엑셀이 화면에서 열릴 때 화면의 크기를 결정합니다. 각 화면의 크기를 숫자와 관련되는데, VEE가 이를 연산하여 wndState 변수에 저장합니다. 이 값은 다시 엑셀 라이브러리의 windowState 속성에 설정합니다.
Memory Tracking | (Formula 오브젝트와 Meter 오브젝트의 속성창에서 Show Terminal을 클릭합니다.) Excel 라이브러리의 memoryTotal과 memoryUsed 속성이 VEE 변수 memTotal 과 memUsed에 할당되어 있습니다. 이 변수들은 MS Excel를 실행하는데 사용되는 메모리를 디스플레이 하기 전에 VEE Meter를 설정하기 위한 범위를 계산하는데 사용됩니다.
Number Format | 숫자 포맷에 달러 기호($)를 넣습니다.
sheet.SaveAs (파일명) | SaveAs() 메서드는 워크시트를 자동으로 저장하기 위하여 Excel 라이브러리에 의해 호출됩니다. VEE에서 SaveAs 대화상자를 띄우기 위해서 File Name Selection 대화상자가 사용되었습니다. 이 대화상자에서 선택한 파일이름은 SaveAs() 메서드를 호출할 때 변수로 사용됩니다.
Press to Kill Excel | Excel을 종료하고자 할 때 사용되는 Confirm(OK) 버튼
Close Excel | quit() 메서드는 MS Excel에게 종료할 것을 알려주기 위해 호출됩니다.


실습 6-3: MS Word를 이용한 Agilent VEE 보고서 작성

다음의 절차를 거쳐 다섯 개의 오브젝트 타입 변수를 생성합니다.

1 Device [image] ActiveX Automation References...를 클릭하고 Microsoft Word 9.0(설치된 Word의 버전에 따라 달라질 수 있음) Object Library를 선택합니다.

2 Data [image] Variable [image] Declare Variable를 클릭합니다.

a Type 필드를 Object로 변경한 후, 4번 클론합니다.

b 다섯 개의 오브젝트의 Name 필드를 App, Doc, Wnd, Sel 및 Bmp로 변경합니다.

c 모든 오브젝트의 Sub Type 필드를 COM으로 변경합니다.

d 각각의 경우에 Edit... 버튼을 클릭하고 Word for Library를 선택합니다. 다음의 Classes를 선택합니다.

App : Application

Sel : Selection

Wnd : Window

Doc : Document

Bmp : Shape

e Enable Event 항목은 각 클래스가 이벤트를 수용할 지의 여부를 지정하는 항목입니다. 이 경우에는 Application과 Doc 클래스만 Enable Event 항목을 선택할 수 있습니다. 두 항 목의 Enable Event 항목을 체크합니다. 다음 그림은 변수들의 오픈뷰를 나타내고 있습니다. 이들 오브젝트를 아이콘화 합니다.

3 이름이 Graph인 UserFunction 생성합니다. 이 Graph UserFunction에서는 Function Generator에서 사인파를 생성하여 Waveform(Time) 디스플레이로 전송합니다. Function Generator와 Waveform(Time)을 포함하는 패널뷰를 생성합니다. 메인 윈도우에 Call Graph 오브젝트를 생성하고 아이콘화 합니다. Graph UserFunction의 오브젝트 메뉴에서 Generate [image] Call을 선택합니다.

MS Word 보고서에서 사용될 웨이브폼 디스플레이를 가진 패널의 비트맵 파일을 생성합니다.

4 비트맵의 파일명을 생성하기 위해서 Device [image] Formula를 클릭합니다. 이름을 Image Filename으로 변경한 다음, 입력핀에 installDir() + "\\panel.bmp"를 입력합니다. 탈출문자 \\ 는 ASCII 문자 \와 같습니다.) 입력 터미날 A를 제거합니다.

예를 들어, 프로그램이 c:\Program Files\Agilent\에 설치 되어 있을 경우에는, Formula 오브젝트는 Result 출력핀으로 다음과 같은 텍스트 문자열을 전송합니다:

C:\Program Files\Agilent\VEE Pro 8.0\panel.bmp.

5 다른 Formula오브젝트를 생성하고 savePanelImage( “Graph”, FileName, 256)을 입력한 다음 입력 터미날의 이름을 fileName으로 변경합니다.

6 이 Formula 오브젝트는 UserFunction Graph로부터의 스크린 덤프를 픽셀당 256 컬러의 panel.bmp 파일로 설치 폴더에 저장합니다.

7 다른 Formula 오브젝트를 생성하고 입력필드에 다음 내용을 입력합니다:

Set App = CreateObject("Word.Application")

입력 터미날 A를 제거하고, Call Graph, Image FileName, Save Panel Image 오브젝트를 다음과 같이 연결합니다.

8 Device [image] Formula를 선택하고, 다음 그림과 같이 내용을 입력합니다. 입력 터미날 A의 이름을 FileName으로 변경합니다. 데이터 입력핀과 시퀀스 입력핀을 그림과 같이 연결합니다.

위의 그림에서, 속성이나 메서드 호출을 오브젝트의 점 표기법으로 표시할 수 있습니다. 임의의 어플리케이션의 특성은 ActiveX 문서를 참고합니다. 이 단원에서 설명한 특성과 메서드를 사용하여, 테스트 및 측정 보고서 작성을 시작할 수 있습니다. Formula 오브젝트의 입력항목은 아래의 표와 같습니다:

항목

설명

App.Visible = 1;

MS Word 프로그램을 화면에 나타냅니다.

Set Doc = App.Documents.
Add();

MS Word에 문서를 추가하고 오브젝트 변수 Doc에 할당합니다.

주의: 엑셀 예제에서는, CreateObject(Excel.Sheet) 구문을 이용해서 빈 워크시트로부터 시작했습니다. 이 예제에서는, 워드를 실행하고 Add() 메서드를 실행하여 워드에 빈 문서를 추가합니다. 어떤 방법을 사용해도 됩니다.

Doc.Activate();

위의 문서를 활성화합니다.

Set Wnd = App.Active Window;

활성화된 윈도우에 있는 문서를 취하여 오브젝트 변수 Wnd에 할당합니다.

Set Sel = App.Selection;

문서에 포커싱하고 이것을 오브젝트 변수 Sel에 할당합니다. 이 구문은 문서에 텍스트를 삽 입할 수 있도록 합니다.

Wnd.View.Type = 3;

디스플레이 되고 있는 문서창의 타입을 지정합니다. 3은 일반적인 윈도우 사이즈를 나타냅니다. 1은 아이콘화 된 윈도우를 의미합니다.

Sel.TypeText(*** Test Results ***),
Sel.TypeParagraph();

문서의 제목을 ***Test Results***로 하고 캐리지 리턴 및 줄 바꿈을 수행합니다.

Set Bmp = Doc.Shapes.
AddPicture(FileName);

panel.bmp 비트맵 파일을 문서에 삽입하고, Shape 클래스 내의 이 호출을 오브젝트 변수 Bmp에 할당합니다.

Sel.TypeParagraph();

Sel.InsertDateTime
(M/d/yy h:mm:ss
am/pm, 0);

타임스탬프를 문서에 입력합니다.

9 3개의 Formula 오브젝트와 하나의 If/Then/Else 오브젝트를 추가하고 다음 그림과 같이 설정하고 연결합니다.

추가된 오브젝트의 입력항목은 다음과 같습니다:

오브젝트 | 설명
App.ActivePrinter | 디폴트의 프린터를 요청합니다.
strLen(str) != 0 | ActivePrinter가 설정되어 있는 프린터인지 확인한 후 (입력된 문자열이 비어있는 상태가 아니라면) Then 핀에 1을 출력하여 PrintOut 호출을 가지고 있는 Formula 오브젝트로 시퀀스를 넘깁니다.
DocPrintOut(0) | 문서를 인쇄합니다.
App.Quit(0) | MS Word 어플리케이션을 종료합니다.

10 프로그램을 실행합니다. 프로그램은 다음과 같습니다.

ActiveX Automation을 사용하여 MS Excel과 MS Word를 제어하는 방법에 관한 자세한 내용은 Microsoft 문서를 참고합니다. VEE에서는 ActiveX Automation(Automation 또는 OLE Automation이라고도 합니다.)을 지원하는 다른 서버 어플리케이션도 제어 할 수 있습니다.

ActiveX 컨트롤 사용법에 관한 자세한 내용은“Using Operator Interfaces"를 참조하고, MS Visual Basic 프로그램으로부터 ActiveX를 사용하여 VEE를 제어하는 방법에 관한 내용은 콜러블 VEE ActiveX Automation 서버를 참조하십시오.


실습 8-1: Workbook을 이용한 작업

1 새로운 VEE 프로젝트를 생성합니다.

2 Excel [image] Initialize Excel Library를 선택합니다. VEE Excel Library 함수가 임포팅 됩니다.

3 Excel [image] New Work 메뉴를 선택합니다. 새로운 Microsoft Excel workbook이 생성됩니다. 사용자가 새로운 워크북을 생성하면, 생성된 워크북은 자동으로 활성화된 워크북이 됩니다. (즉, 하나의 프로그램에 여러 개의 워크북이 있을 때, 다른 워크북은 비활성화되며 현재 생성한 워크북이 활성화 됩니다.)

4 Excel [image] Save Workbook As를 선택합니다.

5 텍스트 상수 오브젝트(Data [image] Constrant [image] Text)를 추가하고, Save Workbook As 오브젝트의 데이터 입력 터미널에 연결합니다. 텍스트 오브젝트에 C:\MyWorkbook.xls라고 입력합니다. 이 저장 작업은 활성화된 통합문서에만 적용됩니다.

주의사항

활성화된 통합문서, 활성화된 워크시트는 가장 최근에 열렸거나, Select Workbook 또는 Select Worksheet을 사용하여 선택된 통합문서 혹은 워크시트입니다.

6 Excel [image] CloseAllWorkbooks를 선택합니다. 저장여부에 관계없이 모든 Workbook들이 닫히게 됩니다.

7 Excel [image] Quit Excel을 선택합니다. 모든 Microsoft Excel 세션과 VEE Excel Library가 종료됩니다.

다음 그림과 같이 데이터 및 시퀀스 라인을 연결합니다:

주의사항

텍스트 오브젝트에서 입력되는 파일이름에는 확장자가 포함되어 있습니다. VEE에서 사용하는 엑셀 관련 오브젝트에는 반드시 전체 파일 이름을 제공해야 합니다. 또한 경우에 따라서는 파일이 저장될 전체 경로명을 지정할 수도 있습니다.

실습을 계속 진행하기 전에 VEE 프로그램을 닫고, 새로운 VEE 파일을 생성합니다.

8 Excel [image] Initialize Excel Library 메뉴를 클릭합니다. VEE Excel Library 함수가 임포팅 되고, 엑셀을 사용할 준비가 됩니다.

9 Excel [image] Open Workbook 메뉴를 클릭합니다. 다음의 그림은 Open Workbook 오브젝트를 나타냅니다. 가장 최근 열리는 워크북이 활성 워크북이 됩니다.

10 Excel [image] Select Workbook 메뉴를 클릭합니다. 일단 워크북을 선택하면 이것이 활성 워크북이 되므로, 이후의 동작은 활성 워크북에 적용됩니다. Select Workbook 함수의 입력값은 워크북의 이름입니다. 이 때 입력할 수 있는 워크북의 이름은 현재 열려있는 워크북 중의 하나의 워크북이어야 합니다. 현재 열려있는 워크북 이외의 이름이 제공되면 에러가 발생합니다.

주의사항

현재 사용하는 워크북이 활성화되어 있는데, 새로운 Workbook을 열거나 생성하면, 이것이 새로운 활성 워크북이 됩니다.

11 Excel [image] Save Workbook 메뉴를 선택합니다. 모든 워크북의 내용이 저장되지 않으며, 활성 워크북의 내용만 저장됩니다.

12 Excel [image] Quit Excel 메뉴를 선택합니다. 이 작업은 Microsoft Excel 세션을 종료하고, VEE Excel Library로부터 빠져나갑니다. 여기서는 Close All Workbooks 작업이 생략되었습니다. 이러한 방식으로 엑셀을 종료하는 것은 완벽한 방법은 아니지만 나름대로 사용할 수 있는 방법입니다.

13 이 실습 프로그램을 SelectWorkbook.vee로 저장합니다.


실습 8-2: Workbook 열거형을 이용한 작업

1 이 실습은 사용자의 C 드라이브 루트 디렉토리에 MyWorkbook.xls 이름을 가진 스프레드시트가 저장되어 있다고 가정합니다.

2 실습 8-1에서 사용한 SelectWorkbook.vee 프로그램의 Select Workbook과 Call xlLib.SaveWorkbook오브젝트 사이의 시퀀스 라인을 제거합니다. 이 두 오브젝트 사이에 몇 개의 오브젝트를 더 생성하게 됩니다.

3 Select Workbook 오브젝트 다음에 New Workbook을 추가하고 시퀀스 라인을 Select Workbook의 시퀀스 출력핀에 연결합니다.

4 Excel [image] Enumerations [image] Enumerate Workbooks 메뉴를 선택합니다. 이 오브젝트를 New Workbook 오브젝트와 Save Workbook 오브젝트 사이에 배치합니다.

5 시퀀스 라인을 연결합니다.

6 프로그램을 실행하면 아래 그림과 같은 결과가 출력됩니다.


실습 8-3: 셀 서식 지정

이 실습에서는 Excel 워크시트의 지정된 범위 내의 테두리와 배경 색상을 설정합니다.

1 새로운 VEE 프로젝트를 생성합니다.

2 엑셀을 열어서 A1부터 A4 셀에 임의의 값을 입력하고 MyWorkbook.xls 파일로 저장합니다. 엑셀을 종료합니다.

3 VEE 프로그램에 Initialize Excel Library를 추가합니다.

4 VEE 프로그램에 Open Workbook 오브젝트를 추가합니다.

5 Excel [image] Formatting [image] Format Cells 오브젝트를 추가하고, Open Workbook 오브젝트와 시퀀스 라인을 연결합니다.

6 Format Cells 오브젝트를 열고, BackColor 변수의 값을 Gray25로 변경합니다.

7 텍스트 오브젝트를 추가하고, 데이터 출력 핀을 Format Cells 오브젝트의 데이터 입력 핀에 연결한 후, A1:A4를 입력합니다.

8 Excel [image] Formatting [image] Auto Fit Columns 오브젝트를 추가하고, Formant Cells 오브젝트와 시퀀스 라인을 연결합니다.

9 텍스트 오브젝트를 추가하고, 데이터 출력핀을 Auto Fit Columns 오브젝트의 데이터 입력핀에 연결한 후, A1을 입력합니다.

10 Save Workbook 오브젝트를 추가하고 시퀀스 라인을 연결합니다.

11 Quit Excel 오브젝트를 추가하고, 시퀀스 라인을 연결합니다.

12 프로그램을 실행합니다.

13 MyWorkbook.xls를 열어 결과를 확인하고, 워크시트를 살펴 봅니다.

14 Format Cells 오브젝트를 열고, 다른 서식 지정용 옵션을 변경하여 시험합니다.


실습 8-4: Send Record 사용법

1 MyWorkbook.xls 파일을 이용하여 Microsoft Excel의 Named Range를 생성합니다. 사용하고자 하는 Range를 마우스로 드래그하여 활성화 합니다. Excel 메뉴의 삽입 [image] 이름 [image] 정의 메뉴를 선택하여 Excel의 Named Range를 지정합니다. Range는 아래의 대화상자에 있는 참조대상에 입력된 Range를 참조합니다. 텍스트 박스의 끝의 아이콘은 이름 지정 모드와 셀 선택 모드 전환에 사용합니다.

2 세 개의 Range A, B, 및 Test를 정의합니다. Range의 이름은 중복이 허용되지 않습니다. 사용자의 레코드 데이터는 A, B 필드를 가지고 있습니다. 각각의 Range 이름은 사용자 레코드의 각 필드로 지정이 되었습니다.

3 Excel [image] Send Data [image] Record to Named Range UserFunction은 하나의 입력과 두 개의 출력을 가지고 있습니다. 레코드 상수를 입력 핀에 연결합니다. AlphaNumeric 오브젝트를 위쪽의 출력 핀에 연결합니다.

4 프로그램을 실행합니다.

5 A 필드 값이 A Named Range에, B 필드의 값이 B Named Range에 입력되는지 살펴봅니다.

6 AlphaNumeric 오브젝트가 “Test” 라는 값을 출력하는 것에 주목합니다. 이는 Test Named Range가 VEE 레코드에서 사용되지 않았기 때문입니다. 이 기능을 사용하면 사용자의 레코드 데이터 구조가 완전한지, 또는 Excel에 Naming 에러가 존재하는지 쉽게 발견할 수 있습니다.

7 이 프로그램을 SendRecord.vee로 저장합니다.


실습 8-5: 패널 이미지를 이용한 Excel 그림 생성

1 SendRecord.vee 프로그램에서, 레코드 상수, AlphaNumeric 및 CallSendRecord 오브젝트를 제거합니다.

2 Excel [image] Send Panel Image 메뉴로부터 ImgeSettings 오브젝트를 삽입합니다. File Name Selection 오브젝트와 시퀀스 라인을 연결합니다. 설정을 변경하거나 디폴트 상태 그대로 이용합니다.

3 UserFunction1이라는 이름을 가진 UserFunction을 생성하고 Functions Generator와 XYTrace 오브젝트를 추가합니다. Function Generator의 Frequency와 Num Point 매개변수를 최소 값으로 변경합니다.

4 Panel Image to Picture 오브젝트를 추가하고 두 개의 텍스트 상수와 두 개의 Int16 상수 오브젝트를 추가한 후, 데이터 및 시퀀스 라인을 연결합니다. Relative Size 매개변수들을 이용하여 이미지의 사이즈를 1일 경우 100%로 .8일 경우 80% 등으로 조절할 수 있습니다.

5 UserFunction1의 XY Trace 오브젝트를 패널에 추가합니다.

6 프로그램을 실행시키고 Excel 파일을 관찰합니다.


실습 8-6: 시스템 명령어 사용

1 I/O [image] Execute Program을 선택합니다. Prog with param 필드에 다음과 같이 입력합니다:

command.com /c dir >> c:\bob

주의사항

Windows 2000 또는 Windows XP에서는 command.com 대신 cmd을 사용하고, 드라이브가 c: 가 아니면 해당 드라이브 문자를 입력합니다. 쓰기가 허용 되어있는 폴더를 지정해야 합니다.

(command.com 실행파일의 전체경로를 입력해야 합니다.) 이 명령은 현재 폴더의 내용을 디스플레이 하는 시스템 명령(dir)을 실행하는 DOS의 명령어 해석기(command.com)를 실행시키고, 출력을 컴퓨터 화면 대신에 bob 파일로 전송한다.

Wait for prog exit과 Run Style는 디폴트 값(각각 Yes 및 Normal)을 사용하며, Working directory 필드에는 c:\ 를 입력합니다.

2 I/O [image] From [image] File을 선택하고 Execute Program 오브젝트 아래에 배치합니다. Execute Program의 시퀀스 출력핀을 From File 오브젝트의 시퀀스 입력핀에 연결합니다.

From File: 의 myFile이라고 표시되어 있는 곳을 클릭하고 c:\bob를 입력한 후 OK 버튼을 클릭합니다. (프로그램은 bob 파일을 생성합니다.)

3 트랜잭션 바를 더블 클릭하여 I/O Transaction 박스를 엽니다.

a REAL64 FORMAT을 STRING FORMAT으로 변경합니다.

b SCALAR을 ARRAY 1D로 변경합니다.

c SIZE: (10)을 클릭하여 TO END: (*)로 바꾼 뒤 OK 버튼을 클릭합니다. 트랜잭션 바는 READ TEXT x STR ARRAY:*로 변경되며, 이 트랜잭션은 bob 파일의 내용을 읽어옵니다.

4 Display [image] Logging AlphaNumeric을 선택하고 이것의 데이터 입력핀을 From File 데이터 출력에 연결합니다.

5 프로그램을 실행하면 다음과 같습니다.


실습 9-1: UserFunction의 동작설명

이번 실습은 ArrayStats라 명명되는 UserFunction을 생성하는 방법을 설명합니다. ArrayStats UserFunction은 배열을 받아서 최대값, 최소값, 평균 및 표준편차를 연산하고 이들 결과를 출력핀(outpin)으로 출력합니다.

UserFunction 생성

1 Device [image] Formula로 Formula 오브젝트를 생성하고 생성한 Formula오브젝트의 input 핀을 삭제합니다. 이 Formula오브젝트의 표현식을 ramp(1024,1,1024)로 변경합니다.

이 오브젝트는 1부터 1024까지의 값을 사용하여 앨리먼트가 1024개인 어레이를 생성합니다.

2 Device [image] UserFunction을 클릭하여 UserFunction 오브젝트를 생성하고, 이름을 ArraryStats로 변경합니다. (속성창의 Title 속성을 변경)

a ArrayStats 오브젝트의 입력터미날을 추가합니다.

b ArrayStats 오브젝트에 4 개의 출력터미날을 추가합니다.

c ArrayStats 오브젝트의 4개의 출력터미날의 이름을 각각 Max, Min, Mean, Sdev로 변경합니다. Function & Object Browser 박스에서 max, min, mean 및 sdev 오브젝트를 선택하여 ArrayStats에 생성합니다.

d c 에서 생성한 4개의 오브젝트의 입력을 ArrayStats의 입력(A)에 연결하고, 각각의 출력을 적절하게 연결합니다. ArrayStats의 창을 작게하여 Main과 ArrayStats를 함께 볼 수 있게 합니다.

3 아이콘화되면 작업창 화면의 좌측하단에 아이콘으로 표시됩니다.

4 Device [image] Call을 클릭하여 Call Function 오브젝트를 생성합니다. 생성한 Call Function 오브젝트를 팝업(마우스 오른쪽 버튼)하여 오브젝트 메뉴에서 Select Function을 선택해서 Selection Function 창을 띄우고, 여기서 이미 생성한 ArrayStats UserFunction을 선택하고 OK를 클릭합니다. VEE가 자동적으로 Call ArrayStats 으로 이름을 변경하고, 필요한 입력과 출력을 생성합니다.

5    Formula오브젝트의 출력을 Call ArrayStats의 입력에 연결합니다. Display [image] AlpohaNumeric 클릭하여 AlphaNumeric 오브젝트를 생성하고, 이 AlphaNumeric 오브젝트를 3개 복사하여 각각의 이름을 Max, Min, Mean, Std.Dev로 변경하고 Call ArrayStats 출력과 연결합니다.

6 프로그램의 실행을 확인하고, array_stats.vee로 파일을 저장합니다.

ArrayStats 을 프로그램의 임의의 위치에서 사용하기 위해서는, Device   [image] Call 을 클릭하여 Call Function 오브젝트를 생성하고, 이 Call Function 오브젝트를 팝업하여 Select Function 창에서 ArrayStats를 선택합니다.

또는 Program Explorer 창에서 UserFunction 오브젝트메뉴(마우스 팝업)에서 Device   [image] Call 을 선택하여 Call ArrayStats 오브젝트를 호출할 수도 있습니다. (주의: 이 경우에 해당 UserFunction은 아이콘화 되어 있어야 합니다.)

UserFunction의 편집

이 실습에서는, 어레이의 통계값(최대, 최소, 평균, 표준편차)의 4 개의 필드를 가지는 레코드(record)를 제공하도록 ArrayStats를 편집합니다.

1 array_stats.vee에서 4 개의 AlphaNumeric을 삭제합니다.

2 Edit [image] Edit UserFunction… 을 클릭하여 Edit UserFunction 창에서 ArrayStats를 선택합니다. Edit UserFunction 창에는 이미 생성된 모든 UserFunction이 표시됩니다.

3 ArrayStats 오브젝트 메뉴에서 size를 선택하여 ArrayStats 편집창의 크기를 변경할 수 있습니다. 오브젝트의 코너를 클릭하여 드래그 합니다.

4 ArrayStats 오브젝트의 편집창에서 출력핀으로 가는 4 개의 라인을 제거합니다. (Ctrl-Shift를 누른 상태에서 제거하고자 하는 라인을 클릭합니다.)

5 Data [image] Build Data [image] Record를 클릭하여 Build Record 오브젝트를 생성하여 ArrayStats 오브젝트 창의 오른쪽에 배치합니다.

a Build Record 오브젝트에는 2 개의 입력터미날이 있는데, 여기에 2 개의 입력터미날을 추가합니다.

b 4 개의 입력터미날의 이름을 각각 max, min, mean, sdev로 변경합니다.

c 4 개의 입력터미날을 각각의 Formula오브젝트와 연결합니다.

d ArrayStats 오브젝트의 나머지 1 개 터미날의 이름을 x로 변경합니다.

e ArrayStats 오브젝트의 다른 출력터미날 3 개를 삭제합니다.

f Build Record 오브젝트의 출력터미날을 ArrayStats 출력터미날 X에 연결합니다. ArrayStats 윈도우를 아이콘화 합니다.

6 Call ArrayStats의 오브젝트 메뉴에서 Configure Pinout을 선택합니다. 최근에 편집한 내용을 반영하여 사용하는 입출력 터미날 만을 나타냅니다.

주의사항

UserFunction에서 입출력 터미날의 개수를 변경할 때마다 핀의 개수를 업데이트하기 위해서는, 해당 오브젝트를 열고 Configure Pinout을 클릭해야 합니다. 수작업으로 입출력핀을 업데이트할 수 있지만 Configure Pinout을 사용하는 것이 훨씬 간단합니다. 자세한 정보는 "대용량 프로그램에서 함수를 찾는 방법"을 참조하십시오.

오브젝트를 사용해서 레코드를 디스플레이 합니다. ArrayState 에서 레코드를 입력 받기 위하여 Default Value 입력을 사용합니다. VEE는 입력된 레코드를 사용하기 위하여 레코드 상수를 자동으로 설정합니다.

7 Record Constant 오브젝트를 사용해서 레코드를 표시하기 위해서, Data [image] Constant [image] Record를 선택합니다. 생성된 Record 오브젝트를 Call Function 오브젝트의 오른쪽에 배치합니다.

a Record 오브젝트의 오브젝트 메뉴를 열어서 Add Terminal [image] Control Input을 클릭하고 대화상자에서 Default Value를 선택합니다. (생성한 입력 터미날이 보이지 않는 경우에는 속성창에서 Show Terminal 을 True로 변경 합니다)

b Call Function 데이터 출력과 Record 오브젝트의 입력을 연결합니다. Control 라인은 점선으로 나타나며, 이때 까지는 Record 오브젝트의 필드가 A, B의 2개만 존재합니다.)

8 프로그램을 실행하십시오.

C표현식에서 UserFunction 호출

이번 실습에서는, Formula 오브젝트에 있는 표현식에서 ArrayStats를 호출하는 방법을 설명합니다.

1 Device [image] Formula를 클릭하여 Formula오브젝트를 생성하고, 이 Formula오브젝트의 표현식을 ArrayStat(A)로 변경합니다.

Call ArrayStats 오브젝트의 오브젝트 메뉴에서 Replace를 선택하면 작업창 좌측하단의 상태바에 “Click on the replacement object” 메시지가 발생하여 Call ArrayStats 오브젝트를 대치할 다른 오브젝트를 선택하도록 요청 받게 됩니다. 이 상태에서 새로 생성한 Formula오브젝트를 선택하면 기존 ArrayStats 오브젝트가 새로운 Formula오브젝트로 대치됩니다.

Formula 오브젝트는 터미날 A로 입력값을 받고, 이 값을 UserFunction ArrayStats로 전송합니다. ArrayStats는 터미날 X로 레코드 통계를 전달합니다. UserFunction(X)의 첫 번째 출력값은 Formula 오브젝트로 리턴되고 Result 출력핀으로 전달됩니다.

2 프로그램을 실행하십시오.

Formula 오브젝트에 있는 ArrayStats의 기능은 Call ArrayStats 오브젝트에 있는 기능과 동일합니다. 이 예제는 Formula 오브젝트를 사용하지만, To File 오브젝트같이 표현식 입력이 가능한 임의의 입력 필드에서 ArrayStats를 호출할 수도 있습니다.

주의사항

Formula등의 오브젝트 표현식에서 UserFunction을 호출하면, UserFunction의 출력은 한군데(출력핀의 가장 위의 것)로만 출력됩니다. 모든 출력핀으로 데이터를 출력할 필요가 있거나, 하나의 출력으로는 Record에 입력되지 못하는 경우에는 Call Function 오브젝트를 사용해야 합니다.

주의사항

표현식에서 UserFunciton을 호출하는 경우, 입력터미날은 함수를 전달하기 위한 함수 파라미터로 사용됩니다. 전달될 데이터가 없는 경우라도 함수 이름 뒤에 빈 괄호를 넣어야 합니다. 이 빈 괄호를 넣지 않으면 VEE는 Global 변수 또는 입력터미날을 참조하고 있다고 간주합니다. 예를 들어, MyFunction을 호출한 UserFunction이 입력변수를 가지고 있지 않으면, 표현식을 MyFunction() 이라고 작성해야 합니다. Call 오브젝트는 사용자가 함수를 참조한다는 것을 알고 있으므로 괄호가 필요하지 않습니다.

UserFunction 호출을 위한 Call 오브젝트 생성

UserFunction 오브젝트 메뉴의 Generate 메뉴에서 Call 오브젝트를 생성하고 Call 오브젝트에서 UserFunction을 호출합니다. Generate 메뉴는 UserFunction을 호출하는 공통 오브젝트를 가지고 있습니다. 호출하는 오브젝트(calling object)를 선택할 때, 호출하는 오브젝트는 메인프로그램 등의 호출하는 윈도우(calling window)에 있어야 하며, 이름과 핀이 올바르게 설정되어야 합니다.

이 예제에서는 ArrayStats UserFunction에서 Main 프로그램 안의 ArrayStats 오브젝트를 어떻게 생성하는가에 대해 설명합니다.

1 위에서 사용된 동일한 예제에서, 더블 클릭하여 ArrayStats Formula오브젝트를 삭제합니다.

2    ArrayStats UserFunction의 오브젝트 메뉴에서 Generate   [image] FormulaCall을 선택합니다. 다음 그림은 UserFunction 오브젝트 메뉴의 Generate 메뉴를 나타냅니다.

3 Generate [image] FormulaCall 에 의해 생성된 오브젝트를 메인화면에 배치합니다. 이 오브젝트의 이름은 VEE에 의해서 자동적으로 ArrayStats(A)로 변경되며, ArrayStats UserFunction을 호출하기 위해서 표현식도 자동적으로 ArrayStats(A)로 입력됩니다.

4 Formula 오브젝트의 출력핀을 ArrayStats(A)으로 연결하고, ArrayStats(A)의 출력을 Record로 연결합니다.

5 프로그램을 실행합니다.

UserFunction 오브젝트 메뉴를 열어서 UserFunction을 호출하기 위한 프로그램으로 배치할 수 있는 다른 오브젝트들을 보기 위하여 Generate 메뉴를 선택합니다. 이것은 Call, Formula Call(이 예제에서 사용된), If/Then/Else Call, ShowPanel 및 HidePanel 오브젝트를 포함하고 있습니다.

UserFunctions과 프로그램 탐색기(Program Explorer)

UserFunction과 UserObject를 사용하면 VEE 프로그램을 더욱 모듈화하고 이해하기 쉽게 작성할 수 있습니다. 프로그램 탐색기는 복잡한 프로그램 작성시 유용하게 사용할 수 있는 도구입니다. 예를 들어, 프로그램 탐색기에 프로그램의 계층구조를 표시할 수 있습니다. 프로그램 탐색기를 화면에 표시하기 위해서는 View [image] Program Explorer를 실행하거나 툴바의 프로그램탐색기 아이콘을 클릭합니다.

다음은 프로그램 탐색기가 사용되고 있는 사례입니다.


실습 9-2: UserFunctions 라이브러리를 생성하고 병합하는 방법

이 실습에서는, 보고서를 생성하는 프로그램을 UserFunction 라이브러리 형태로 생성하고, 이 라이브러리를 다른 프로그램에서 병합합니다.

UserFunctions 라이브러리 생성

1 새로운 프로그램을 시작합니다.

a 4 개의 사용자함수를 생성하고, 이들을 아이콘화 합니다: BuildRecAry(하나의 출력핀), ReportHeader(하나의 입력핀), ReportBody(하나의 입력핀), ReportDisplay

b    메인화면에서, 4 개의 Device   [image] Call 오브젝트를 생성하고, 다음과 같이 연결 후 Report.vee로 저장합니다.

주의사항

Call 오브젝트는 UserFunction을 호출할 때 괄호를 사용하지 않습니다. 그러나 Formula 오브젝트의 표현식으로 UserFunction을 호출하는 경우에는 그 UserFunction이 괄호를 가지고 있든, 가지고 있지 않든, Formula 오브젝트의 표현식에서는 괄호를 사용해서 호출해야 합니다.

이들 4 개의 UserFunction은 하나의 라이브러리입니다. Edit [image] Edit UserFunction을 선택하면 이들을 목록상자에서 볼 수 있습니다. 여기서는 이것들을 편집하지는 않습니다.

2 4 개의 UserFunction을 다음과 같이 프로그래밍 합니다.

다음 그림은 BuildRecAry UserFunction을 나타냅니다. Fromula의 (A<=5 ? “PASS”:”FAIL”)는 입력되는 A의 값이 5 이하이면 “PASS”를 출력하고, 5 보다 크면 “FAIL”을 출력합니다.

ReportHeader UserFunction은 아래와 같습니다:

다음 그림은 ReportBody Userfunction을 나타냅니다. 레코드 배열 A[B]에서 B는 0에서 1로, 1에서 2로 변하므로, <record>.<field> 표기법을 사용하여 레코드의 Value, Limt 및 PassFail 필드에 접근할 수 있습니다.

For Count 오브젝트의 출력은 0부터 시작합니다. To File 오브젝트의 트랜잭션에서 “|”은 단순히 표기상의 수직막대를 나타내는 스트링이며, FW:5 는 길이가 5인 스트링 필드를 나타냅니다. RJ는 오른쪽 정렬(right justified)를 나타냅니다.

다음 그림은 디테일뷰에 있는 ReportDisplay UserFunction을 나타냅니다. From File 오브젝트의 IO 트랜잭션에서 ARRAY.*는 스트링 배열을 마지막까지 읽음을 나타냅니다.

다음 그림은 속성창에서 Show Panel On Execute를 사용하여 ReportDisplay UserFunction의 패널뷰를 나타냅니다. 속성창에서, 팝업 패널의 제목은 ReportDisplay로 변경되어 있습니다. 패널을 생성하기 위해서는, Confirm(OK)와 Logging AlphaNumeric 오브젝트를 선택하고, Edit [image] Add to Panel을 클릭합니다. Logging AlphaNumeric 디스플레이는 Show Title Bar가 선택되어 있지 않습니다. 또한, Confirm(OK) 버튼은 DONE이라는 이름으로 변경되었습니다. Confirm(OK) 버튼은 사용자가 조작을 할 때까지 화면에 계속 디스플레이를 유지하고 있습니다.

3    프로그램을 실행하면 ReportDisplay 패널이 그림 225와 같이 화면에 출력됩니다. Done을 클릭하면 프로그램실행이 중단됩니다. 파일이름을 Report.vee로 저장합니다.

새로운 프로그램을 생성하여 라이브러리에 병합

이 실습에서는, 보고서를 생성하기 위한 함수의 라이브러리를 생성합니다. 새로운 프로그램에는 Note Pad 오브젝트를 사용하여 라이브러리 안의 각 함수를 설명합니다. 이 라이브러리 이름은 RepGen으로 저장됩니다.

사용자는 별도의 보고서생성 UserFunction을 생성하고, 이 UserFunction을 프로그램에 통합하고, 이러한 변화를 Note Pad 오브젝트에 기록함으로써 RepGen UserFunction을 재사용할 수 있습니다. Merge Library… 명령어를 호출하여 RepGen 라이브러리에 포함된 각각의 함수를 사용할 수 있습니다.

1 File [image] New을 선택하여 새로운 vee 파일을 엽니다.

2 File [image] Merge Library… 를 열어서 Merge 라이브러리 박스에서 Report.vee를 선택합니다. (다른 폴더에 Report.vee를 저장하였으면 전체 파일경로를 입력합니다.)

통합된 라이브러리는 프로그램 탐색기 또는 Edit [image] Edit UserFunction에서 확인할 수 있습니다. 일단 병합된 라이브러리는 지역 함수처럼 사용할 수 있습니다.

3 다음 그림과 같이 Display [image] NotePad 를 선택하여, notepad 오브젝트에 다음과 같이 임의의 내용을 입력하고, 파일이름을 RepGen.vee로 저장합니다.


실습 9-3: 라이브러리 임포팅 및 삭제

UserFunction으로 구성된 라이브러리를 생성했어도, 이 라이브러리를 모든 프로그램에서 호출해서 사용하지는 않으며, 호출하여 사용하더라도 프로그램 실행 시 필요한 때에만 일부의 함수를 호출하여 사용하고, 사용 후에는 메모리를 절약하기 위해서 사용 완료된 라이브러리를 삭제합니다.

이 실습에서는, RepGen 프로그램에서 함수를 임포트하여, 측정데이터를 시뮬레이션하기 위해서 BuildRecAry 함수를 호출하고, 측정결과를 표시하며, 마지막으로 메모리 공간을 절약하기 위해서 라이브러리를 삭제합니다.

1 File [image] New를 선택하여 새로운 vee 파일을 엽니다.

2 Device [image] Import Library을 선택하여 Import Library 오브젝트를 메인화면에 생성합니다. Import Library 오브젝트의 속성을 다음과 같이 설정합니다:

Import Library 필드 | 설명
Library Type | 라이브러리 타입을 선택합니다. - UserFunction - Compiled Function - Remote Function 이 실습에서는 디폴트 값인 UserFunction을 사용합니다.
Library Name | 라이브러리 디폴트 이름은 myLib 입니다. 이 라이브러리 이름은 여러 개의 라이브러리가 동시에 임포트 되었을 경우, 각각의 라이브러리를 구분하는 “handle”로 사용됩니다. 이 실습에서는 디폴트 이름을 사용합니다.
File Name | File Name 필드는 디폴트로 사용자 프로그램 디렉토리에 대한 대화상자를 표시합니다. 함수 라이브러리를 선택하기 위하여 파일을 지정합니다. 라이브러리를 나타내는 파일이름을 선택합니다. 여기서는 RepGen.vee를 사용합니다.("Lab 9-2: UserFunctions 라이브러리를 생성하고 병합하기"에서)

3 Import Library 오브젝트의 오브젝트 메뉴에서 Load Lib 를 선택하여 라이브러리를 로딩합니다. (여기서는 라이브러리를 실행 시 로딩하지 않고, 현 상태(개발상태)에서 라이브러리를 로딩합니다.

임포팅된 함수 라이브러리를 디스플레이하기 위하여, 프로그램 탐색기를 사용합니다.

주의사항

라이브러리를 임포트했으므로 break point를 잡거나 볼 수는 있지만, 편집할 수는 없습니다.라이브러리를 편집하기 위해서는 Merge Library를 사용해야 합니다.

4 Device [image] Call을 선택하여 Call Function 오브젝트를 Import Library 오브젝트의 아래에 배치합니다. 새로운 vee 파일을 엽니다. Import Library의 Sequence Out을 Call Function의 Sequence In과 연결합니다.

5 다음 그림과 같이, Call Function 오브젝트의 오브젝트 메뉴에서 Select Function를 열어서 myLib.BuildRecAry를 선택합니다. Function Name 필드에 자동적으로 파일이름이 입력되고 출력터미날이 자동적으로 생성됩니다:

VEE는 자동으로 Function Name 필드에 함수를 삽입하고 필요한 출력터미날을 추가합니다. 동일한 결과를 얻기 위하여 Function Name 필드에 myLib.BuildRecAry를 입력할 수도 있습니다. 라이브러리에 있는 함수 리스트를 보기 위해서는 Select Function을 사용합니다.

6 AlphaNumeric 오브젝트를 생성하여 Call Function 오브젝트의 데이터 출력과 연결합니다.

7  Device [image] Delete Library 오브젝트를 생성하여 Call 오브젝트의 아래에 놓고 시퀀스핀을 연결합니다. BuildRecAry 함수 호출 후 라이브러리는 삭제됩니다. 여기서는 디폴트 라이브러리(myLib) 이름을 사용합니다.

8 프로그램을 실행하고 파일을 libraries.vee 로 저장합니다.

Merged 함수와 Imported 함수들의 이름에 관한 주의사항:

• Merged 함수의 이름이 지역함수 이름과 같으면 컴파일 에러가 발생합니다.

• Imported 함수의 이름이 지역함수의 이름과 같으면 에러가 발생하지는 않지만, 함수의 이름만을 이용해서 호출하는 경우에는 지역함수가 호출됩니다. 따라서 imported 함수와 지역함수를 동일한 이름으로 같이 사용하는 경우, imported 함수를 호출하기 위해서는 MyLib_func() 형식으로 명확히 지정해서 호출해야 합니다.

• 두 개의 imported 라이브러리에 동일한 이름의 함수가 존재하면 Call 오브젝트에서 반드시 라이브러리 이름을 사용합니다. (예, myLib.BuildRecAry)


실습 9-4: Bar Chart Display 프로그램 병합

이 실습에서는, 기존 프로그램을 현재 작업중인 새 프로그램에 병합합니다. 여기서는 VEE가 기본적으로 제공하는 예제 프로그램을 사용하지만 사용자가 작성한 임의의 프로그램을 사용해도 무방합니다. 이 실습에서는 ramp() 함수를 이용해서 1부터 5까지의 값을 가지는 어레이를 생성하게 되며, BarChart를 병합하여 어레이 값을 표시합니다.

1 Formula를 선택하여 Formula오브젝트를 생성합니다.

2 Formula오브젝트의 입력터미날을 삭제합니다.

3 Formula오브젝트의 표현식을 ramp(5,1,5)로 변경합니다.

ramp(5,1,5)의 첫 번째 인자는 생성할 ramp 어레이의 개수이고, 두 번째 인자는 생성할 어레이의 시작 값이고, 세 번째 인자는 생성할 어레이의 마지막 값입니다. 이 함수에 대한 자세한 정보는 Formula 오브젝트 메뉴에서 Help를 선택합니다. (또는 Help [image] Contents & Index를 클릭하고, Index 폴터의 Search 기능을 사용합니다.)

4 File [image] Merge... 를 실행하여 파일선택창에서 BarChart.vee를 선택하고, 이것을 Formula오브젝트와 연결합니다.

5 프로그램을 실행합니다. 실행결과는 다음 그림과 유사한 형태가 됩니다.

Bar Chart 디스플레이는 1차원 어레이를 입력하여, 수직바로 값을 디스플레이 합니다. 이것은 어레이에 있는 값을 디스플레이 하는데 필요한 숫자의 바를 사용합니다. 어떻게 프로그램이 생성되었는지를 보기 위해서는, 디스플레이의 오픈뷰를 엽니다. 프로그램에 대한 자세한 정보는 라이브러리 디렉토리에 있는 예제를 참조합니다.

주의사항

UserObject 또는 일반 오브젝트를 병합하기 위해서는 File [image] Merge…를, UserFunction을 병합하기 위해서는 File [image] Merge Library…를 각각 실행합니다.


실습 10-1: 테스트 환경설정

주의사항

이번 예제는 특정 범위의 테스트 결과를 가지는 random() 함수를 사용하는 방법을 설명하며, 동일한 원리를 다른 테스트를 설정하는데 사용할 수 있습니다.

1 Device [image] Sequencer를 선택하여 시퀀서 오브젝트를 작업창의 좌측상단에 배치합니다.

2 Display [image] AlphaNumeric를 선택하여 시퀀서 오브젝트의 아래에 배치합니다. Sequencer의 Log 출력 터미날과 AlphaNumeric의 데이터 입력을 연결합니다.

3 Sequencer의 트랜잭션 바를 더블클릭하여 Sequence Transaction 대화상자를 띄우고, 각 필드 값을 아래와 같이 설정합니다.

주의사항

필드를 편집하는 것처럼, 수정하기 위해 새로운 필드를 클릭하거나 다른 필드로 이동하기 위하여 탭키를 사용하는 것을 기억하십시오. 커서를 뒤로 이동하기 위해서는 Shift-Tab키를 사용합니다. 대화상자의 편집을 완료했을 때 만 엔터키를 누르십시오.

필드명 | 설명
TEST: | 디폴트 이름은 test1. 단지 Sequencer의 레이블로만 사용되며, 테스트 기능을 나타내지는 않습니다.
SPEC NOMINAL: | 예상되는 측정결과를 나타냅니다. 디폴트 값은 0.5입니다. 이 값을 0.25로 변경합니다. Upper Range의 값을 0.5로 변경합니다. (디폴트 값은 0.5)
FUNCTION: | 디폴트 값은 testFunc(a)이며 실제 테스트를 실행할 함수를 나타냅니다. 이 실습에서는 random()을 입력합니다. random() 함수는 0부터 1까지의 시뮬레이션 Real64 값을 출력합니다. 여기서 출력되는 값이 테스트 규격(위의 SPEC NOMINAL에 입력한 값)과 비교됩니다.

다른 디폴트 값을 그대로 남겨 놓을 수도 있습니다. 이 설정은 실행 결과의 반 정도는 PASS 하도록 합니다. 대화상자의 설정내용은 다음과 같습니다.

Sequencer의 트랜잭션에 test1 0<= (.25) <= .5 로 나타나는데, 이는 측정값이 0 ~ 0.5의 값이면 test1 이 PASS됨을 나타냅니다.

4 프로그램을 실행합니다. Sequencer의 LOG 터미날로 테스트명, 측정값, Pass/Fail 결과(1 이면 PASS, 0 이면 FAIL)가 출력됩니다.

계속 진행하기 전에, Sequence Transaction 대화상자에 있는 다양한 선택항목을 이해하기 위하여 다음 표를 숙지하십시오. 트랜잭션바를 더블 클릭하여 대화상자를 다시 엽니다. 다양한 메뉴를 열어서 다른 옵션에 대해 읽어 보십시오.

필드명

설명

TEST:

Sequencer에서 테스트를 참조하는 유일한 이름. 디폴트 이름은 test1 부터 시작하여 테스트가 증가함에 따라 test2, test3…등으로 명명됩니다. TEST: 를 선택한다는 것은 테스트 결과가 테스트 스펙과 비교되고 설정값에 따라서 브랜칭 된다는 것을 의미합니다.

TEST: 버튼을 클릭하면 EXEC: 로 토글 됩니다. EXEC: 모드에서는 테스트 결과와 테스트 스펙과 비교하지 않고 실행합니다. 예를 들어, 사용자함수를 전역변수로 설정할 때 EXEC: 모드를 사용합니다. 또한 EXEC: 모드에서는 테스트 결과를 로깅하지 않습니다.

ENABLED

테스트가 어떠한 상황에서 실행되는지 결정하며, 4 가지 메뉴가 제공됩니다:

• ENABLED은 모든 상황에서 실행됩니다.

• ENABLED IF: 표현식이 TRUE 일때 실행됩니다. 예를 들어, 입력터미날 A의 값이 1(A==1) 일때 테스트가 활성화 됩니다. 테스트를 제어하기 위해서 사용할 수 있는데, 예를 들어서, 매 10회 마다 특정 테스트를 실행하고자 할 때 사용할 수 있습니다.

• DISABLED은 ENABLED의 반대 상황입니다. 즉, 모든 상황에서 실행하지 않습니다.

• DISABLED IF: ENABLED IF의 반대 상황입니다.

SPEC

NOMINAL:

예상 테스트 값.

RANGE:

테스트 값의 범위를 규정합니다. 4 개의 메뉴를 가지고 있습니다:

• RANGE는 테스트 결과가 PASS 판단되기 위한 범위의 값을 정의합니다. 다음과 같은 비교 연산자를 사용합니다. >, >=, <, <=, ==, !=.

• LIMIT는 테스트 결과를 비교하는데 단 하나의 값을 사용합니다.

• TOLERANCE는 SPEC NOMINAL 값에 이 값을 더하거나 빼서 PASS 값이 되는 범위를 결정합니다.

• %TOLERANCE는 SPEC NOMINAL 값에 SPEC NOMINAL 값의 %TOLERANCE 값만큼 더하고 빼서 PASS 값이 되는 범위를 결정합니다.

FUNCTION:

실행할 테스트를 지정합니다. 사용자함수, 컴파일된 함수, 원격함수를 호출하거나, 표현식을 사용할 수 있습니다. 여기서 호출된 함수의 결과는 테스트 스펙과 비교됩니다.

사용자 함수가 하나 이상의 결과를 리턴하면, 가장 상단의 출력핀을 테스트 결과로 간주합니다.

표현식에서 사용하는 함수는, 예를 들어, (random(0,myFunc()+3,100)*2)와 같이 결합되거나 네스팅될 수 있습니다.

LOGGING ENABLED

테스트 데이터를 로그합니다. 로깅 옵션은 Sequencer 오브젝트 메뉴를 열어서, 속성의 로깅 폴더를 클릭하여 선택합니다. 디폴트 상태에서는 테스트 이름(LogName), 테스트 결과(LogResult) 및 테스트 패스여부(LogPassed)가 TRUE로 설정됩니다.

이 버튼은 LOGGING DISABLED로 토글됩니다.

IF PASS

브랜칭을 지정합니다. 테스트가 PASS되면, 여기서 지정된 드롭다운 메뉴의 명령을 실행합니다.

이 버튼은 IF PASS CALL: 버튼으로 토글됩니다.

IF PASS CALL:은 여기서 지정된 함수를 호출하고 드롭다운 메뉴의 브랜칭 메뉴를 실행합니다.

THEN CONTINUE

테스트 브랜칭을 결정합니다. THEN CONTINUE 드롭다운 메뉴에는 6 종류의 브랜칭이 있습니다:

• THEN CONTINUE는 Sequencer에 정의된 다음 테스트를 실행합니다.

• THEN RETURN: 테스트 실행을 중단하고, Sequencer의 Return 출력핀으로 지정된 표현식을 출력합니다.

• THEN GOTO: 이 필드에 지정된 테스트로 점프합니다.

• THEN REPEAT는 MAX TIMES에 설정된 횟수만큼 현재 테스트를 반복합니다. 최대 반복 회수만큼을 실행해도 PASS/FAIL 조건이 남아있으면, 다음 테스트를 실행합니다.

• THEN ERROR: 미리 정의된 에러 숫자를 이용하여 에러를 발생시키고 테스트 실행을 중단합니다. 에러는 Sequencer의 에러 출력핀에서 트랩될 수 있습니다. Sequencer의 다른 핀은 데이터를 출력하지 않습니다.

• THEN EVALUATE: 지정된 사용자함수를 호출합니다. 이 사용자함수는 브랜칭 메뉴 옵션을 지칭하는 스트링을 리턴해야 합니다. 사용자함수가 리턴할 수 있는 스트링은 다음과 같습니다: “Continue”, “Return <expr>”, “GOTO <name>”,“Repeat <expr>”, “Error <expr>”. 여기서 <expr>은 VEE에서 사용할 수 있는 임의의 표현식이며, <name>은 시퀀스안에서 정의되어 있는 테스트 이름입니다.

IF FAIL

테스트 결과가 FAIL 일 때, 브랜칭 명령어에 따라 이 라인으로 갑니다. IF FAIL은 IF FAIL CALL로 토글됩니다. IF PASS와 동일한 옵션을 가집니다.

DESCRIPTION:

텍스트로 테스트를 설명합니다. 여기서 입력한 내용은 Sequencer의 트랜잭션 바에 표시되고, 속성 필드의 LogDescription 을 True로 설정하면 테스트 결과 로깅시 함께 로깅됩니다.

관련정보

테스트 추가, 삽입 또는 삭제, 로그된 측정결과 사용


테스트 추가, 삽입 또는 삭제

이번 절에서는, Sequencer 오브젝트에 다른 테스트 트랜잭션을 추가합니다. 테스트 결과를 시뮬레이션하기 위해 동일한 random() 함수를 사용할 수 있지만, 이번에는 결과를 값의 range 대신에 limit와 비교할 것입니다.

1 Sequencer 오브젝트의 첫 번째 트랜잭션바 아래를 더블 클릭하여 Sequence Transaction 대화상자를 엽니다. 다음과 같이 필드를 입력합니다:

필드명 | 설명
test2 | 디폴트 값을 사용
SPEC NOMINAL | 값을 0.25로 입력(디폴트 0.5)
RANGE | LIMIT로 변경, 연산자는 <, 값을 1로 입력(디폴트 0.5)
FUNCTION | Change the field from testFunc(a) to random().

다른 디폴트 항목은 그대로 두고 OK 를 클릭하여 Sequencer 오브젝트로 돌아옵니다.

주의사항

오브젝트 메뉴에서 Add Trans...을 선택하여 현재 하이라이트된 트랜잭션 다음에 트랜잭션을 추가할 수도 있습니다.

Sequencer 테스트는 reads: test2 (.25) < .5라는 두 번째 트랜잭션을 가집니다. 이 2 개의 트랜잭션 사이에 트랜잭션을 삽입합니다.

2 두 번째 트랜잭션바가 하이라이트되어 있어야 합니다. 오브젝트 메뉴를 열어서 다음과 같이 Insert Trans.... 을 선택합니다:

필드명 | 설명
TEST | Insert로 변경
FUNCTION | Random()으로 변경

OK를 클릭하면, 두 번째 트랜잭션바에 Insert 0 <= (.5) <= 1라고 표시됩니다. 프로그램을 실행하면 3개의 테스트에서 3개의 레코드가 생성됩니다. (전체 내용을 보기 위하여 디스플레이를 확대할 수 있습니다)

3 삽입된 트랜잭션 위에 마우스 포인터를 놓고 Ctrl-K눌러서 삽입된 트랜잭션을 삭제합니다.

주의사항

삭제하고자 하는 트랜잭션 바를 클릭하고 오브젝트 메뉴에서 Cut Trans를 선택할 수도 있습니다. 잘라낸 트랜잭션을 오브젝트 메뉴에서 Paste Trans를 선택(Ctrl-Y는 단축키임)하여 붙여 넣을 수도 있습니다. 비슷한 방법으로, Copy Trans 항목을 사용하여 트랜잭션을 복사할 수도 있습니다.

4 Run 프로그램을 실행하면, 2개의 테스트에서 2개의 데이터 레코드가 생성됩니다. 프로그램을 seq1.vee로 저장합니다. 프로그램 결과는 다음과 같습니다.

측정결과에서 사용되는 중괄호({})는 Record 데이터 타입을 나타냅니다. 즉, Sequencer는 Record 타입의 Record를 출력합니다. (이중 {}) 따라서 시퀀서를 loop 등을 이용하여 반복 실행하면 Record 타입의 Record 어레이가 생성됩니다.


로그된 측정결과 사용

Sequencer의 출력은 레코드 타입의 레코드입니다. 디폴트 설정 상태에서는 Sequencer 출력의 레코드가 Name, Result, Pass의 속성을 가지므로, 테스트 이름이 test1인 경우, test1 테스트의 측정결과는 다음과 같이 Log.Test1.Result로 사용할 수 있습니다.

.

다음 단계는 테스트 결과를 제공합니다.

1 seq1.vee를 엽니다.

2 Device [image] Formula 를 선택하여 3 개의 Formula 오브젝트를 생성하고 이들의 입력터미날을 Log로 바꾸고, 표현식을 각각 Log.Test1.Name, Log.Test1.Result, Log.Test1.Pass로 입력합니다.

Formula의 입력을 디폴트 상태인 A로 유지하는 경우 각각의 표현식은 Log 대신 A를 사용해야 합니다. 즉, Log.Test1.Name, Log.Test1.Result, Log.Test1.Pass입니다.

3 Display [image] 디스플레이를 선택하여 각각 Formula 출력과 연결합니다.

4 프로그램을 실행하고 파일이름을 seq2.vee로 저장합니다. 여기까지 작성한 프로그램은 다음과 같습니다.

주의사항

각각의 테스트는 레코드를 생성하는데, 이 레코드는 이후의 테스트에 사용할 수 있습니다. 예를 들어, test1이 Pass되는 경우에만 test2를 실행해야 하는 경우 ENABLED IF:test1.pass==1 과 같이 설정할 수 있습니다.

5 Formula의 표현식을 Log.test1으로 변경합니다. 아래의 2 개의 Formula를 삭제합니다. Test1 레코드만 출력됩니다.

6 Sequencer의 로그 속성을 변경하여 Sequencer의 로그 내용을 선택할 수 있습니다. 여기서는 Sequencer의 LogTimeStamp속성을 True로 변경했습니다


실습 10-2: 입력터미날을 사용한 데이터 전달

먼저 다음 단계를 따라 측정 프로시져를 시뮬레이션하는 UserFunction Rand를 생성합니다. Rand()는 random(low,high) 오브젝트의 출력에 입력 파라미터를 추가하고, 이 결과를 출력핀으로 전달합니다. Rand()는 다른 테스트에서 호출합니다.

1 Device [image] UserFunction을 선택하여 UserFunction 을 생성하고, 이름을 Rand로 변경합니다.

2 Rand UserFunction에 random(low,high)를 생성하고, 이 random함수의 입력터미날과 변수를 제거합니다. (변수를 제거한 random() 함수는 0 ~ 1까지의 값을 출력합니다). A+B 오브젝트를 생성합니다. Random 오브젝트의 출력을 A+B 오브젝트의 A 입력에 연결합니다.

3 Rand UserFunction에 데이터 입력터미날을 생성합니다. Rand UserFunction의 입력터미날 A를 A+B 오브젝트의 B 입력터미날에 연결합니다.

4 Rand UserFunction에 데이터 출력터미날을 생성합니다. A+B 오브젝트의 출력을 Rand UserFunction의 출력에 연결합니다.

이 UserFunction Rand는 다음과 같습니다.

5 프로그램을 seqdat1.vee로 저장합니다. Rand 사용자함수 윈도우를 닫습니다. (Rand 화면 우측상단의 X를 이용해서 닫습니다.)

주의사항

UserFunction을 닫는 것은 이 UserFunction를 제거하는 것이 아닙니다. 닫은 UserFunction을 다시 열기 위해서는 프로그램 탐색창의 UserFunction 이름을 더블 클릭하거나, Edit [image] Edit UserFunction을 이용해서 UserFunction을 다시 열수 있습니다.

입력 파라미터를 Rand로 전송하는 Sequencer 입력핀을 사용하여 Rand를 호출하기 위하여 Sequencer에 있는 3개의 테스트를 설정합니다.

6 Device [image] Sequencer을 선택하여 시퀀서 오브젝트를 메인 프로그램에 놓고, 입력터미날을 생성합니다. Sequencer의 트랜잭션 바를 더블 클릭해서 Sequence Transaction 대화상자를 띄웁니다. FUNCTION 필드를 testFunc(a)에서 rand(a)로 변경합니다. 이 rand(a)는 Rand() UserFunction을 호출하고, 값을 시퀀서 입력 A로 전송합니다. OK를 클릭하여 Sequencer의 오픈뷰로 되돌아 갑니다.

주의사항

Sequence Transaction 대화상자에 있는 임의의 표현식 필드에 데이터를 전달하기 위하여 A와 같은 Sequencer의 입력 터미날 이름을 사용할 수 있습니다. 예를 들어, RANGE 및 SPEC NORMINAL로 데이터를 전달하기 위하여 A를 사용할 수 있습니다.

트랜잭션은 하이라이트 된 상태에서, 커서를 트랜잭션바에 놓고 테스트를 잘라내기 위하여 Ctrl-K를 누르고, 테스트를 Sequencer에 붙여 넣기 위하여 Ctrl-Y를 3번 누릅니다. (오브젝트 메뉴를 사용하여 잘라내고 붙여 넣을 수도 있습니다.)

디폴트 테스트 이름은 test1x2, test1x1 및 test1입니다. 구분하기 위하여 3개의 Sequence Transaction 대화상자를 열어서 이름을 각각 test1, test2 및 test3로 변경합니다.

1 Data [image] Continuous [image] Real64 Slider를 선택하여 Sequencer의 좌측에 배치합니다. Real64 Slider 오브젝트의 이름을 Select Num: 으로 변경하고, Sequencer 입력터미날에 연결합니다.

Real64 Slider의 크기를 적절히 변경합니다.

2 AlphaNumeric을 선택하여 화면의 하단에 배치하고, Sequencer Log 출력을 AlphaNumeric의 입력에 연결합니다. AlphaNumeric의 크기를 적절히 변경합니다.

3 프로그램을 다시 seqdat1.vee 로 저장합니다. Real64 Slider의 값을 적절히 변경하고 프로그램을 실행합니다.

입력터미날을 이용해서 데이터를 전달하는 방법에서는 테스트의 개수가 증가할수록 입력터미날의 핀 개수가 많아지게 됩니다. 입력핀의 개수를 줄이기 위해서는 레코드를 입력터미날로 전달하고, 수신측에서는 레코드의 각각의 필드를 사용하면 됩니다. 또한 독립된 UserFunction에 전역변수를 설정하고 다른 UserFunction이나 표현식이 이 전역변수를 호출하면 됩니다. 다음 실습에서 이것을 설명합니다.

관련정보

전역변수를 사용한 데이터 전달, 마스크를 이용한 파형출력 비교


전역변수를 사용한 데이터 전달

이 실습에서는 Rand UserFunction에 변수 a를 전달하기 위해서 seqdat1.vee 프로그램에 전역변수를 추가합니다.

1 Select Num이라 표시된 Real64 Slider 오브젝트를 제거합니다. Sequencer의 입력터미날 A를 제거합니다.

2 Sequencer의 test1 트랜잭션을 하이라이트시킨 상태에서 오브젝트 메뉴를 열어서 Insert Trans…를 선택합니다. Sequence Transaction 대화상자에서 TEST를 토글하여 EXEC 모드로 변경하고 이름을 Setup으로 변경합니다.

3 여기서 UserFunction은 결과를 생성하지는 않고 단지 전역변수만을 설정할 것이므로 EXEC 모드를 사용합니다.

4 FUNCTION 필드를 global()로 변경합니다.

5 이제부터는 여기서 변수를 전달하기 위해서 사용하는 UserFunction global()을 생성합니다.

6 Device [image] UserFunction을 선택하여 UserFunction을 생성하고, 이 UserFunction의 이름을 global로 변경합니다. (UserFunction1 ? global).

global UserFunction 안에서 Data [image] Continuous [image] Real64 Slider을 선택하여 Real64 Slider를 생성하고 이름을 Select Num으로 변경합니다.

global UserFunction 안에서 Data [image] Variable [image] Set Variable을 선택해서 Real64 Slider의 우측에 배치시킵니다.

이것의 변수 이름을 globalA 에서 a로 변경합니다. Real64 Slider와 Set Variable 오브젝트를 연결합니다.

사용자가 숫자를 선택하기 위한 함수를 화면에 화면에 디스플레이 하기 위해서는, 팝업 패널뷰를 추가합니다. Confirm (OK)버튼을 추가하여, 사용자가 선택을 하기 전 까지는 패널이 화면에 계속 남아있게 됩니다. (이것은 global() UserFunction안에 Real Input Dialog Box를 사용하여 이 태스크를 수행할 수도 있습니다.)

7 Flow [image] Confirm(OK)를 선택해서 버튼을 생성하고 버튼의 데이터출력을 Real64 Slider의 시퀀스 입력과 연결합니다.

주의사항

OK 버튼을 Set Variable 오브젝트 아래에 배치하면 로직에러를 발생합니다. VEE는 Set Variable 오브젝트의 값을 설정하기 위해 과거의 값을 Slider로 보내고 OK 버튼을 클릭할 때까지 기다립니다. 사용자가 팝업패널에서 입력한 새로운 값은 무시됩니다. OK 버튼이 Slider의 위에 연결된 경우에는, VEE는 전역변수를 설정하기 위해서 OK 버튼을 클릭될 때까지 기다리게 되므로 Slider에서 입력하는 새로운 값을 사용하게 됩니다. Show Data Flow를 활성화시키고 프로그램을 실행하면 이 과정을 자세히 관찰할 수 있습니다.

8 Display [image] Note Pad를 선택하고 OK 버튼의 오른쪽에 배치하고 다음의 내용을 입력합니다:

테스트 1,2,3을 실행하기 위해서 숫자를 선택하십시오.

9 사용자 인터페이스를 다음과 같이 생성합니다. Note Pad, OK 버튼, Slider를 동시에 선택하고(Ctrl 키를 누른 상태에서 차례로 선택합니다.) Edit [image] Add To Panel을 실행하여 이들 오브젝트를 사용자 인터페이스 패널에 생성합니다. 패널뷰에서 이들의 크기와 위치를 적절히 변경합니다. 패널뷰에서 이들의 크기와 위치를 변경해도 이들과 대응되는 디테일뷰의 오브젝트의 위치와 크기에는 영향이 없습니다.

주의사항

패널뷰에서 오브젝트의 위치를 변경하면, 이것은 디테일뷰에 있는 오브젝트의 위치에는 영향을 주지 않습니다.

프로그램 탐색기에서 Global UserFunction을 하이라이트 시키고, 이것의 ShowPanelOnExecute 속성을 True로 변경합니다.

패널뷰는 다음과 같습니다:

10 프로그램을 seqdat2 로 저장하고 실행합니다. 팝업창이 뜨면 Slider에 값을 설정하고 OK 버튼을 클릭합니다.

주의사항

팝업 패널은 디폴트로 화면의 중앙에 나타납니다. 이것을 이동하기 위해서는, 타이틀바를 클릭하고 드래그합니다.


마스크를 이용한 파형출력 비교

이번 실습에서는, noisyWv UserFunction을 생성하고, 이 UserFunction을 Sequencer의 트랜잭션바에서 호출합니다. 노이즈가 포함된 신호를 시뮬레이션하기 위해서, Noise Genrator로 입력되는 진폭을 사용자가 0 ~ 1까지 변경할 수 있습니다.  0.6에서 직선 마스크를 만들기 위해 Data [image] Constant 메뉴에서 Coord 오브젝트를 생성하고, 이 직선마스크는 노이즈가 포함된 신호를 테스트하기 위해서 Sequencer를 사용합니다.

1 Device [image] UserFunction 으로 UserFunction을 생성하고 이름을 noisyWv로 변경합니다. 그림과 같이 noisyWv UserFunction 안에 오브젝트와 출력터미날을 생성합니다.

2 사용자 인터페이스를 생성합니다. Ctrl 키를 누른 상태에서 OK 버튼, Real64 Slider 및 NotePad를 선택하고 Edit [image] Add To Panel 을 실행하여 이들을 패널뷰에 생성합니다.

패널뷰에서 이들의 크기와 위치를 적절히 변경합니다.

패널뷰의 속성창에서 ShowPanelOnExecute를 True로 변경합니다.

여기까지 작성된 패널뷰는 다음과 같은 형태입니다:

3 Device [image] Sequencer로 Sequencer를 생성하고 Main 프로그램에 배치합니다. Sequencer의 입력터미날을 생성하고 이름을 mask로 변경합니다.

4 Sequencer의 트랜잭션바를 클릭하여 대화상자를 열고 다음과 같이 입력하고, Sequencer의 입력터미날 mask를 생성합니다:

필드명 | 설명
FUNCTION | noisyWv() 를 입력
RANGE | 팝업메뉴에서 LIMIT을 선택. LIMIT 터미날 이름을 mask로 입력.

test1은 mask 입력을 통해서 noisyWv()로부터 측정결과를 받아서 테스트합니다. Sequencer mask 입력값이 모든 포인트에서 mask보다 작거나 같으면 테스트는 PASS 아니면 FAIL입니다.

5 Data [image] Constant [image] Coord를 선택하여 Coord 오브젝트를 Sequencer의 위에 배치하고, Coord의 출력을 Sequencer 입력과 연결합니다.

Coord 오브젝트 메뉴에서 속성창을 열어서 다음을 입력합니다:

함수이름 | 설명
DataShape | 1D Array.
ArraySize | 2 (직선을 정의하기 위해서는 2 개의 좌표만 필요합니다.)

6 Coord 오브젝트의 첫번째 인덱스 0000:를 더블클릭하고, 좌표값이 하이라이트된 상태에서 새로운 좌표 0, 0.6을 입력하면, 자동적으로 괄호가 생기면서 새로운 값으로 입력됩니다. Tab키를 클릭하여 다음 인덱스의 좌표로 가고 여기에는 20m, 0.6을 입력하고 작업창의 임의의 위치를 클릭하면 입력이 반영됩니다. 이들 두 좌표를 살펴보면 다음과 같습니다:

• noisyWv() UserFunction의 Noise Generator에 대한 X 축(시간 축)은 0 ~ 20m만큼 변화합니다.

• Y 축은 0.6으로 변화가 없습니다. 즉 직선 마스크가 됩니다.

주의사항

이와 같은 방식으로 Coord 오브젝트에 절절한 개수 좌표를 생성하여 임의의 파형 마스크를 생성할 수 있습니다.

Sequencer의 비교 메커니즘은 Comparator 오브젝트처럼 동작합니다. Comparator 오브젝트는 파형을 비교하기 위해서 Coord 데이터 타입을 받아들입니다. 따라서 두 개의 파형 데이터를 비교할 수 있습니다.

7 메인화면에서 Display [image] AlphaNumeric을 선택하여, Sequencer의 Log 출력과 AlphaNumeric의 입력을 연결합니다.

8 프로그램을seqdat3로 저장하고, 실행합니다. 프로그램 실행결과는 다음과 같습니다.

이것은 Sequencer를 사용하여 데이터를 전달하는 것에 대한 실습입니다. 다음 실습에서는, 몇 개의 Sequencer 반복을 사용하여 데이터를 접근하고 분석하는 방법을 설명합니다.


Sequencer 출력 데이터 분석

Sequencer의 출력데이터 타입은 레코드의 레코드({{}})입니다. 그러나 대부분의 경우, Sequencer는 여러 개의 테스트를 반복하게 되며, 이 경우 레코드 어레이를 출력하게 됩니다. 다음과 같은 형태로 개념적인 표현을 할 수 있습니다:

Sequencer의 Log 출력단으로 레코드의 어레이가 출력되므로 레코드 어레이를 로그(Log)라 합니다. 실행결과를 사용하기 위해서는 대괄호([])를 가진 어레이 인덱싱 방식을 사용합니다.

• Log[0]은 시퀀서가 처음 실행될 때, Log[1]은 두 번째 실행시 각각 출력되는 레코드 어레이입니다.

• 각 실행시 마다 메인 레코드는 Test1과 Test2 필드를 가집니다.

• 각각의 테스트는 각각 3 개의 필드(Name, Result, Pass)를 가집니다.

• 그러므로 Log.Test1.Result로는 4개의 앨리먼트를 가진 하나의 어레이를 리턴합니다. Log[0].Test1.Result는 첫 번째 실행의 Test1에 대한 스칼라 값을 리턴합니다.

로그된 데이터 어레이를 이용하면 쉽게 데이터를 분석할 수 있습니다. 예를 들어, 특정 테스트에서 몇 회나 테스트가 Pass 했는지, 특정 테스트의 결과를 평균하고, 특정 회차의 측정값을 쉽게 가져올 수 있습니다.

관련정보:

실습 10-3: Sequencer를 반복 실행한 데이터 분석 Sequencer


실습 10-3: Sequencer를 반복 실행한 데이터 분석

1 화면을 초기화하고, seqdat1.vee 프로그램을 엽니다.

seqdat1.vee 프로그램을3 번 실행하도록 프로그램을 변경합니다.

2 Flow [image] Repeat [image] 를 선택해서 For Count 오브젝트를 Real64 Slider 위에 배치합니다. 실행회수를 3으로 변경하고, For Count의 데이터 출력을 Sequencer의 입력에 연결합니다.

3 Sequencer Log 출력과 display 사이의 연결선을 제거합니다. Data [image] Collector를 선택하고, Sequencer의 Log 출력과 Collector의 상단 입력과 연결합니다. For Count의 시퀀스 출력을 Collector의 하단 입력(XEQ)과 연결합니다. Connector의 데이터출력은 AlphaNumeric 데이터 입력과 연결합니다.

현 상태에서 Sequencer는 test1 ~ test3를 3회 실행합니다. 이 Sequencer의 실행결과는 3 개의 앨리먼트를 가진 어레이를 발생시킵니다. 이 어레이는 test1 ~ test3 1회 실행에 대한 레코드의 레코드를 가집니다. (이것을 시각화하기 위해서는 Sequencer 출력 데이터 분석을 참조하십시오.)

프로그램을 실행하고, 출력을 관찰합니다.

분석하기 위한 데이터의 일부분을 추출하기 위하여 Formula 오브젝트를 사용합니다. 이번 실습은 예제로써 3회의 실행 결과를 사용하고, 해당 어레이의 평균값을 연산합니다.

4 Device [image] Formula를 선택하고 디스플레이의 하단에 배치합니다. Formula의 입력을 Collector 출력과 연결하고, Formula의 표현식은 a[*].test1.result로 변경합니다. mean(x)을 선택하여, Formula의 우측에 배치하고 Formula와 연결합니다. Display ⇒ AlphaNumeric을 선택하여 mean의 우측에 배치하고 mean과 연결합니다.

Formula의 표현식 a[*].test1.result에서 사용한 a는 이 Formula로 입력되는 배열을 의미합니다. 즉, Formula의 입력을 a 라 표현했으므로 표현식에서도 a 라고 사용해야 합니다.

5 프로그램을 실행합니다. 실행결과는 다음과 같습니다.

이 실습은 하나의 어레이를 사용하지만, Sequencer 출력에서 다른 어레이 데이터를 추출하는데 있어서 목적은 동일합니다. Sequencer 속성창에 있는 Logging 폴더를 열어서 각각의 저장된 필드를 쉽게 변경할 수 있습니다.

관련정보

Sequencer 출력 데이터 분석


실습 10-4: To/From File오브젝트를 사용하여 로그 데이터 저장

1 seqdat2 를 열어서 디스플레이에 연결된 라인을 제거합니다.

2 Flow [image] Repeat [image] For Count을 선택하여 Sequencer의 좌측상단에 배치하고 3을 입력합니다. For Count의 데이터출력을 Sequencer의 시퀀스 입력으로 연결합니다.

3 작업영역을 확대하고 AlphaNumeric 오브젝트를 하단부에 배치합니다. Data ⇒ Collector 을 선택하여 시퀀서의 아래쪽에 배치하고 시퀀서 Log를 Collector의 상단입력에 연결하고, For Count의 시퀀스 출력을 Collector의 하단입력(XEQ)에 연결합니다.

Collector는 Sequencer에서 레코드의 레코드 어레이를 생성합니다. To File 오브젝트에 WRITE CONTAINER 트랜잭션을 사용하여, VEE 데이터 컨테이너를 파일에 기록할 수 있습니다.

4 I/O [image] To [image] File 을 선택하여 Collector의 우측에 배치하고, IO [image] From [image] File 은 To File 오브젝트의 아래에 배치합니다. To File 오브젝트에 데이터 입력터미날을 생성하고 Collector 출력과 연결합니다. To File 오브젝트의 시퀀스 출력은 From File 오브젝트의 시퀀스 입력과 연결합니다. From File의 출력은 디스플레이 입력과 연결합니다.

To File 오브젝트의 Clear File At PreRun & Open in To File 옵션을 체크합니다. To File 오브젝트의 트랜잭션 바를 클릭하여 WRITE CONTAINER로 설정합니다. From File 오브젝트의 트랜잭션 바를 클릭하여 READ CONTAINER로 설정합니다.

디폴트 데이터 파일을 사용하여 저장할 수도 있습니다.

5 seqdat4.vee 로 저장하고 프로그램을 실행합니다. 실행결과는 다음과 같습니다.:

관련정보

To/From DataSet 오브젝트를 사용하여 로그 데이터 저장


To/From DataSet 오브젝트를 사용하여 로그 데이터 저장

저장되는 데이터 형태가 레코드이므로 To/From DataSet 오브젝트를 이용하면 편리합니다. DataSet을 이용하면 각 Sequencer 테스트 결과를 DataSet의 마지막에 추가하므로 Collector를 사용하지 않아도 됩니다.

seqdat4.vee 를 다음과 같이 변경합니다. 프로그램의 To File 및 From File 오브젝트를 제거하고 To DataSet과 From DataSet을 각각 생성합니다. To DataSet 오브젝트의 Clear File At PreRun을 클릭합니다. Sequencer의 출력을 To DataSet 오브젝트의 입력과 연결합니다. For Count의 시퀀스 출력을 From DataSet의 시퀀스 입력과 연결합니다. (To DataSet이 데이터를 3 회 완전히 저장한 후 From DataSet이 실행되어야 하므로).

.

To/From File 오브젝트 보다 DataSet 오브젝트를 사용하면 From DataSet 오브젝트의 Search Specifier를 이용해서 데이터를 다른 형태의 정보로 변환할 수 있는 이점이 있습니다.

주의사항

From DataSet에 있는 Get 레코드 필드를 One에서 All로 변경해야 합니다.


실습 11-1: 메뉴 생성

이번 예제에서는, 주사위(die1, die2, die3)를 생성하는 사용자 인터페이스를 작성합니다. 사용자가 하나의 주사위를 선택하면, 그 주사위의 이름과 동일한 이름을 가진 함수가 호출되어, 주사위 1, 주사위 2, 주사위 3이 각각 화면에 표시됩니다. 이 프로그램은 사용자가 메뉴를 선택하여 해당 프로그램을 실행해야 하는 상황에 대한 실습입니다. 이 실습에서는 또한 아이콘의 모양을 변경하기 위해서 비트맵을 임포트하는 실습도 포함됩니다. 이 프로그램은 주사위 프로그램이라 부릅니다.

3개의 UserFunction을 생성하여 시작합니다.

1 Device [image] UserFunction을 실행하여 UserFunction을 생성합니다.

임포팅되는 비트맵을 디스플레이하기 위하여 어떤 아이콘이라도 사용할 수 있지만, 이번 예제에서는 Picture 오브젝트를 사용합니다.

2 Display [image] Picture를 실행하여 Picture 오브젝트를 UserFunction에 배치합니다.

3 Picture 오브젝트의 속성창에서 ShowTitleBar 속성을 False로 설정하고, die1.gif 파일과, Scaled를 선택하고, OK를 누릅니다.

주의사항

Show Title Bar가 OFF 되어 있을 때 오브젝트 메뉴를 접근하기 위해서는, 오브젝트 위에서 마우스 오른쪽 버튼을 클릭합니다.

주의사항

VEE가 bitmaps 서브 디렉토리를 디폴트로 사용하지만, 다른 디렉토리에 있는 비트맵을 사용할 수 있습니다.

4 Flow [image] Confirm (OK) 을 실행하여 OK 오브젝트를 주사위 아래에 배치하고, Picture의 시퀀스 출력을 OK 오브젝트의 시퀀스 입력으로 연결합니다.

5 Picture 오브젝트와 OK 오브젝트를 선택하여 이들을 패널뷰에 생성합니다. (Ctrl 키를 누른 상태에서 오브젝트를 클릭하여 오브젝트의 그림자를 생성합니다.) 마우스 포인터를 배경에 놓고 마우스 오른쪽 버튼을 눌러 팝업 Edit 메뉴를 엽니다. Add to Panel을 선택합니다.

6 UserFunction의 타이틀을 die1으로 변경하고, 패널뷰에 있는 Picture 오브젝트와 OK 오브젝트의 크기와 위치를 적절히 변경합니다.

주의사항

패널뷰에서 오브젝트를 이동하기 위해서는, 오브젝트에서 마우스 오른쪽 버튼을 클릭하여 Move를 선택하거나 오브젝트를 하이라이트 하고(오브젝트가 회색 테두리로 나타나야 합니다.), 새로운 위치로 드래그 합니다.

패널의 ShowPanelOnExecute 속성을 True로, GridSize는 2로 각각 설정합니다.

7 동일한 방법으로 UserFunction을 2개 추가생성하고, 이들 UserFunction의 이름을 각각 die2, die3으로 변경합니다. die2 및 die3 이 임포트하는 비트맵은 각각 die2.gif와 die3.gif 이며, 나머지는 die1 UserFunction과 동일하게 설정합니다. 프로그램은 다음과 같습니다. 함수 윈도우를 아이콘화 합니다.

호출하기 위한 3개의 함수중의 하나를 선택하는 메뉴를 생성합니다.

8 Data [image] Selection Control [image] Radio Buttons을 실행하여 Radio 버튼 메뉴를 생성합니다.

라디오 버튼은 열거된 목록을 출력하는 오브젝트입니다. (열거형 데이터 타입: 관련되는 서수 형태의 텍스트 스트링). 예를 들어, 월요일, 화요일, 수요일, 목요일, 금요일로 지정한 경우에는, 사용자는 메뉴에서 요일을 선택하게 되고, 라디오 버튼은 요일을 출력하게 됩니다.

라디오 버튼의 목록은 사용자가 정의할 수 있으며, 첫 번째 목록을 선택 시 0이 출력되고, n 번째 목록을 선택 시에는 n-1 이 출력됩니다. 즉, 위의 목록에서 월요일은 0이라는 서수위치를 가지며, 금요일은 서수위치 4를 가집니다. 서수위치는 아래의 출력핀에 나타납니다. 자세한 설명은 오브젝트 메뉴의 Help를 참조 합니다.

9 Radio Buttons 오브젝트 메뉴의 Edit Enum Values…를 실행합니다.

함수의 이름을 die1, die2, die3로 입력합니다. OK를 클릭합니다.

주의사항

데이터 선택 컨트롤에는 6개의 메뉴 형식이 있습니다. 라디오 버튼은 입력을 버튼으로 디스플레이 합니다. 사용자의 선택은 텍스트 포맷을 열거형 데이터 타입으로 출력합니다. 사이클 버튼은 열거형 목록 값을 사용자가 버튼을 클릭하므로써 한번에 하나씩의 값을 순차적으로 디스플레이 합니다. 리스트는 모든 열거형 목록값을 디스플레이하며 선택한 항목은 하이라이트 합니다. 이외에 드롭다운 리스트, 팝업 리스트 및 슬라이더가 있습니다.

10 라디오버튼의 Auto Execute 속성의 값을 True로 변경합니다. 타이틀(Title) 속성은 “Make a Selection :”으로 변경합니다.

Call 오브젝트를 설정하여 라디오 버튼 오브젝트에서 사용자가 값을 선택할 수 있게 하면, Call Function 오브젝트가 호출할 수 있는 함수 이름이 됩니다.

11 Device [image] Call을 클릭합니다. Add Terminal [image] Control Input을 선택하여 Function Name을 선택하고 OK를 클릭합니다. Function Name 컨트롤핀은 Enum 또는 텍스트 값을 입력으로 사용합니다. Radio Buttons의 데이터 출력핀을 Call Function 오브젝트의 Function Name 입력 터미날로 연결합니다. Radio Buttons의 시퀀스 출력핀을 Call Function의 시퀀스 입력핀으로 연결합니다. Make a Selection:에서 die2를 클릭하고 Call Function 이름이 die2로 변경된 것을 확인합니다.

주의사항

Call 입력 터미날은 텍스트 스칼라 데이터가 필요하기 때문에, VEE는 Enum 스칼라를 텍스트 스칼라로 변경합니다.

점선은 컨트롤핀을 나타냅니다. Auto Execute가 ON되면, 라디오 버튼은 이것으로 변경하든지 Call로 선택내용을 전송하든지를 실행합니다. Call Function에 있는 컨트롤핀은 핀이 데이터를 받는 즉시 함수 이름을 대체합니다. Call 오브젝트는 시퀀스 핀이 동작하기 전까지는 지정한 함수를 호출하지 않습니다.

주의사항

프로그램에 Auto Execute와 시퀀스핀을 사용한 경우에는, 사용자는 프로그램을 시작하기 위하여 Run 버튼을 클릭할 필요가 없습니다.

프롬프트, 메뉴 및 선택항목을 나타내는 팝업패널을 표시하는 사용자 인터페이스를 추가합니다.

12 메인화면의 디테일뷰에 있는 Radio Button을 패널뷰에서 생성합니다. Radio Button을 선택하고, Edit [image] Add to Panel 을 실행합니다.

13 패널뷰에 생성된 Radio Button의 색상, 크기 등을 변경합니다.

프로그램을 실행한다. Radio Button 오브젝트의 Auto Execute 속성이 True로 설정되어 있으므로 Run버튼을 실행하지 않고 Radio Button 오브젝트 메뉴를 선택해도 프로그램이 자동실행 됩니다.

지금까지 작성한 프로그램을 실행하면 다음과 그림과 같습니다.

다음 실습으로 넘어가기 전에 알아야 되는 몇 가지 내용은 다음과 같습니다:

• 프로그램에서 메뉴를 생성하기 위하여 위의 실습에서 설명한 동일한 방법을 사용할 수 있습니다.

• Radio Buttons은 호출하는 프로그램을 지정하는 컨트롤핀(“명령어”)을 가지는 Execute Program 오브젝트를 사용하여 컴파일된 언어 프로그램을 선택하기 위해 사용할 수도 있습니다. 컴파일된 함수의 임포팅된 라이브러리를 가지고 있는 경우에는, 라이브러리에 있는 함수를 실행하기 위하여 Call 오브젝트를 사용할 수도 있습니다.

• 하나의 UserFunction에 있는 Picture 오브젝트의 File Name 데이터 입력핀을 사용하여 이 프로그램을 최적화 할 수 있고, 적절한 비트맵을 오브젝트로 전송합니다. 여러 개의 다른 비트맵을 사용하는 것이, 좀더 효율적으로 프로그램하는 방법입니다.

• 일반적으로, 아주 복잡한 프로그램에서는 AutoExecute 대신에 Run을 사용하게 됩니다. AutoExec 대신에 Wait for Input을 사용하여 데이터 상수 또는 셀렉션 컨트롤에서 프로그램을 일시 정지 할 수 있습니다.


실습 11-2: 비트맵 파일을 패널 배경 그림으로 사용

비트맵 파일은 아이콘, Picture 오브젝트 또는 UserObject 및 UserFunction의 패널뷰에 사용할 수 있습니다. 여기서는 비트맵을 호출하는 팝업 UserFunction을 생성합니다.

1 Device [image] UserFunction을 선택합니다.

2 위의 UserFunction의 디테일뷰에서 Flow [image] Confirm(OK) 및 Display [image] Label 실행하여 UserFunction 윈도우에 이들을 배치합니다.

3 UserFunction의 이름을 Bitmap으로 변경합니다.

4 OK와 Label을 선택해서 이들의 사용자 인터페이스를 Bitmap UserFunction의 패널뷰에 생성합니다.

5 Bitmap UserFunction의 ShowPanelOnExecute 속성을 True로, Show Title Bar 속성을 False로 각각 설정합니다.

Grid Size 속성값은 2, PanelBackgroudPicture는 default.gif, scaled를 선택합니다.

6 Label의 속성은 다음과 같이 설정합니다:

Label 속성 | 설명
Title: | Bitmap Function으로 변경
Justification | Center로 변경
BackColor | Light Gray 선택
Font | 굵은 글자체와 큰 폰트를 선택
Border | Raised

7 Label(Bitmap Function)과 OK를 적절한 위치에 배치하고 Bitmap UserFunction을 아이콘화 합니다.

8 메인의 디테일뷰에서 Device [image] Call을 실행하여 Call Function 오브젝트를 임의의 위치에 배치하고, Call Function 오브젝트 메뉴의 Select Function에서 Bitmap을 선택합니다. 프로그램을 실행합니다. 팝업 대화상자는 다음과 같습니다.


실습 11-3: 경고 표시 생성

이 실습에서는 여러 개의 UserFunction을 사용합니다. 첫 번째 UserFunction은 빨간색 사각형의 경보(Alarm)로 경고음을 발생합니다. 두 번째 UserFunction은 경보를 반복하여 호출하고 깜박거림 효과와 펄스 사운드를 발생합니다. 이들 경보는 사용자가 경보를 Off 시킬 때까지 실행됩니다.

알람 함수를 프로그램하는 것으로 시작합니다.

1 Device [image] UserFunction을 실행하고, 이름을 alarm으로 변경합니다.

2 alarm UserFunction의 디테일뷰에서 Display [image] Beep을 실행하여 Beep 오브젝트를 alarm UserFunction 디테일뷰의 좌측상단에 배치합니다. Beep 오브젝트의 Duration 값을 1, Volume 값을 100으로 변경합니다.

주의사항

이것은 사용하는 컴퓨터가 경고음을 지원하는 하드웨어 사양이어야 합니다. Windows 2000, 및 Windows XP 시스템은 디폴트 시스템 비프에 대하여 디폴트 시스템 설정이 수정되었습니다.

주의사항

Beep 오브젝트를 다른 오브젝트 또는 터미날과 연결할 필요가 없습니다. Beep 오브젝트는 함수가 실행될 때 자동적으로 활성화됩니다.

3 Display [image] Indicator [image] Color Alarm을 실행하고, alarm UserFunction의 디테일뷰에 배치합니다. Color Alarm 오브젝트의 속성을 다음과 같이 변경합니다: ShowTitleBar : False, Shape : Rectangular, High Limit : 0.66, Low Text : (없음), Mid Text : (없음).

4 Data [image] Constant [image] Real64를 생성하고, 이것의 값을 1로 변경합니다. Real64 오브젝트를 Color Alarm의 입력과 연결합니다.

5 Delay 오브젝트를 생성하고, 이것을 Color Alarm의 아래에 배치하고 Color Alarm의 시퀀스출력과 Delay의 시퀀스 입력을 연결합니다. Delay의 값은 1을 사용합니다

6 Color Alarm에 Delay 1 초를 사용하는 것은 경보가 발생했을 때, 1초 동안 지속하도록 하기 위해서 입니다.

7 Display [image] Notepad를 생성해서 “Turn Off Instruments!”을 입력합니다.

8 메인 윈도우에서 Device [image] Call 을 실행하고, 이것의 오브젝트 메뉴에서 alarm UserFunction를 선택합니다. 프로그램을 실행하여 테스트 합니다. alarm UserFunction의 디테일뷰는 다음과 같습니다.

9 alarm UserFunction 디테일뷰에서 Color Alarm과 NotePad를 선택하여 이들의 사용자 인터페이스를 패널뷰에 생성합니다. Align 등의 기능을 이용하여 위치, 크기를 적절히 변경합니다. 패널의 PanelDrawGrid 속성을 True로 설정하면 snap-to-grid 기능을 사용할 수 있습니다. NotePad 오브젝트의 속성을 다음과 같이 변경합니다:

속성 | 설명
ShowTitleBar | False
EditEnabled | False
Border | Change to a Raised border.

10 Color Alarm의 Border 속성도 Raised로 변경합니다.

11 alarm UserFunction의 패널뷰의 ShowPanelOnExecute를 True로, ShowTitleBar의 속성을 False로 각각 설정하고, 타이틀은 alarm으로 변경합니다. alarm UserFunction을 아이콘화 합니다.

12 메인 윈도우에서 Call 오브젝트를 삭제합니다. (Call 오브젝트는 Main의 윈도우에서 삭제되어도 이 함수는 아직 메모리에 남아 있으므로, Edit [image] UserFunction 을 실행해서 다시 메인의 디테일뷰에서 사용할 수 있습니다.)

13 alarm UserFunction을 반복하여 호출하는 함수를 생성합니다.

14 Device [image] UserFunction을 실행해서 UserFunction을 생성하고 이것의 이름을 warning으로 변경합니다.

15 warning UserFunction에서 Flow [image] Repeat [image] Until Break 을 선택합니다.

16 Device [image] Call을 선택합니다. Function Name을 alarm으로 변경하고, 시퀀스핀을 Until Break 데이터 출력핀으로 연결합니다.

Check Box 오브젝트를 추가하여, 사용자가 alarm을 OFF할 수 있도록 합니다.

17 Data [image] Toggle Control [image] Check Box을 선택하여, 사용자가 원하는 경우 경보를 해제할 수 있도록 합니다. Check Box의 속성을 다음과 같이 변경하고, Call 시퀀스 출력을 Check Box 시퀀스 입력에 연결합니다.

CheckBox가 선택되면 1 이 출력되고, 선택되지 않으면 0 이 출력됩니다.

18 warning UserFunction에서 CheckBox에서 출력되는 값을 받아서 테스트하는 If/Then/Else 오브젝트를 생성하여(Flow ⇒ If/Then/Else) CheckBox의 오른쪽에 배치합니다. If/Then/Else 오브젝트의 표현식을 “a==1”로 입력합니다. If/Then/Else 오브젝트의 입력터미날 A로 1 이 입력되면 If/Then/Else 의 Then 출력터미날이 활성화되며, 0 이 입력되면 Else 터미날이 활성화됩니다.

19 warning UserFunction에서 Flow [image] Repeat [image] Break를 선택하여 아래와 같이 배치합니다.

20 CheckBox를 선택하여 warning UserFunction의 패널뷰에 추가합니다.

21 warning UserFunction 패널의 ShowPanelOnExecute 속성을 True로 변경합니다. ShowPopupPaenlTitle은 False로 설정합니다.

22 메인 윈도우에서 Device [image] Call을 선택하고, Call 오브젝트메뉴의 Select Function에서 warning 함수를 선택합니다. 메인 윈도우를 아이콘화 합니다.

23 디폴트로, VEE는 알람과 경고 패널을 화면의 중앙에 디스플레이 하여, 알람을 정지시키는 체크박스의 상단에서 알람이 깜박거립니다. 이들 오브젝트의 위치는 고정되어 있지 않기 때문에, 화면에 있는 오브젝트들을 클릭하고 드래그하여 새로운 위치로 이동할 수 있습니다. 알람 패널이 깜박거릴 경우에는 이렇게 하는 것이 약간 어렵습니다. 대신에, 패널의 모서리를 클릭하여 드래그합니다. 필요한 경우, stop 버튼을 사용하여 프로그램을 정지시킵니다. 프로그램을 실행합니다.

다음과 같이 배치된 2개의 패널이 있는 경우에는, Turn off alarm? 프롬프트 다음에 있는 박스를 클릭하여 프로그램을 정지할 수도 있습니다.


실습 11-4: ActiveX Control 사용

VEE에서 제공하지 않는 사용자 인터페이스를 사용하기 위해서 ActiveX Controls을 VEE에 등록하여 사용하는 예제입니다. 여기서는 Win32 표준 라이브러리(MSCompCtrlLib)에서 제공하는 ProgressBar를 사용하고, 진행 상태바를 0%부터 100%까지 표시하기 위하여 루프를 사용합니다.

1 새로운 VEE 파일에서 Device [image] ActiveX Control References...를 클릭하여, Microsoft Windows Common Controls 6.0을 VEE에 등록합니다.

2 Device [image] ActiveX Controls [image] ProgressBar를 클릭하여 사용자 인터페이스로 사용할 ProgreeBar를 생성합니다. 오브젝트의 크기를 크게 변경합니다. 오브젝트 메뉴를 열어서 오브젝트 이름이 ProgressBar인 것을 확인합니다. VEE는 ActiveX 컨트롤 오브젝트를 참조하는 선언된 변수를 생성합니다. Formula 표현식에서 다른 변수나 데이터 입력처럼 ProgressBar라는 이름을 사용할 수 있습니다.

3 Device [image] Formula & Object Browser를 클릭하여, Type : ActiveX Objects, Library : MSComcltLib, Class : ProgressBar, Members : Value를 선택하고, Create Set Formula를 클릭합니다. 오브젝트를 메인 윈도우의 중앙 상단에 배치 합니다.

4 표현식을 ProgressBar.Value = value로 입력합니다. Data Input Pin을 만듭니다. Data Input Pin의 이름은 value로 되어 있어야 합니다. (위의 5의 과정의 우변에서 사용한 변수의 이름과 동일해야 합니다.) ProgressBar 오브젝트의 Data Output pin을 제거합니다. Flow [image] Repeat [image] For Range를 클릭합니다. For Range의 속성 값을 다음과 같이 변경합니다: From : 0, Thru : 100, Step : 10. For Range 오브젝트의 Data Output Pin 과 ProgressBar.Value 오브젝트의 Data Input Pin을 연결시킵니다.

5 ProgressBar 동작을 시각적으로 확인할 수 있도록 프로그램에 Delay를 삽입합니다. Flow [image] Delay를 클릭하여 Delay 오브젝트를 선택하고 0.2를 입력합니다. (For Range가 실행될 때 마다, 즉 각 스텝마다 0.2 초씩 지연됩니다.) ProgressBar.Value의 Sequence Output Pin과 Delay 의 Sequence Input Pin을 연결합니다. 프로그램을 실행하면 Progress Bar의 진행 상태가 0.2초 간격으로 업데이트 됩니다.

주의사항

ActiveX Control 오브젝트 메뉴는 Properties와 Control Properties를 제공합니다. Properties 메뉴는 오브젝트의 VEE 속성을 설정합니다. Control Properties는 Control에 의해 제공되어 ActiveX Control의 타입에 따라 다릅니다.

VEE에서 제공하는 모든 컨트롤 예제를 실습하여 동작하는 방법을 이해하도록 합니다. 그래서 유통되는 컨트롤이나 디스플레이를 찾아서 더 나은 사용자 인터페이스를 추가하는데 사용할 수 있습니다.

다음 그림은 MS Chart에서 컨트롤을 사용하는 VEE의 예제를 나타냅니다. Device [image] ActiveX Controls Reference 대화상자에서 컨트롤 라이브러리를 선택한 다음에, Function & Object Browser 또는 Declare Variable 오브젝트를 사용하여 컨트롤의 프로퍼티와 메서드를 지정할 수 있습니다.


실습 11-5: 상태 패널 생성

이번 실습에서는, 상태패널을 생성하기 위하여 주사위 프로그램에서 함수를 어떻게 사용하는지를 실습하게 됩니다. (주사위 프로그램 예제는 실습 11-1: 메뉴 생성에 있습니다.) 일반적으로 여러 가지의 측정을 하게 되면 Sequencer 오브젝트를 사용하게 됩니다. 디폴트 설정을 사용하는 경우에, 0과 1 사이에서 실수값을 리턴하는 random() 함수를 사용하게 됩니다.

1 새로운 VEE 파일에서 Device [image] Sequencer를 선택합니다. Sequencer의 트랜잭션바를 더블 클릭해서 디폴트 이름인 test1을 사용하여 테스트를 설정합니다. Function: 필드를 random()으로 변경합니다. 다음을 참조하십시오.

2 test2를 test1과 동일한 방법으로 생성합니다.

3 Sequencer의 LoggingMode 속성을 LogToOutputAndFunction으로 설정합니다. LoggingMode 속성변경에 의해서 LogToFunction 속성이 자동으로 LogTest(thisTest) 로 변경됩니다.

Sequencer가 각 트랜잭션을 실행함에 따라서 측정결과를 “thisTest” 레코드로 생성하게 됩니다. 따라서 Sequencer가 호출하게 되는 UserFunction logTest()를 생성하여 사용할 수 있고(Sequencer가 자동으로 logTest를 생성했으므로 UserFunction logTest를 생성하여 사용하지만, Sequencer가 생성한 logTest를 다른 이름으로 변경하고 변경한 동일한 이름의 UserFunction을 생성하여 사용할 수 있습니다.) 이 방식으로 상태패널을 업데이트할 수 있습니다.

4 Device [image] Function & Object Browser [image] Built-in Functions [image] Panel [image] showPanel을 선택하여 Sequencer의 위쪽에 배치합니다. showPanel의 입력터미날을 삭제하고, 표현식을 “logTest”, 420, 180으로 변경합니다. showPanel의 출력(Result 터미날)을 Sequencer의 시퀀스 입력과 연결합니다. showPanel()의 측정결과가 성공(PASS)이면 1을 출력합니다. showPanel()이 사용하는 logTest는 UserFunction의 이름이며, 다음 두 개의 변수는 스크린의 X 좌표와 Y 좌표를 나타냅니다. (좌표는 스크린의 좌측상단에서 시작합니다.) 이 오브젝트는 UserFunction 패널이 스크린의 어느 위치에 있는지 판단하게 됩니다.

UserFunction을 생성하고, 이름을 logTest로 변경하고 입력터미날을 생성합니다. Sequencer가 생성하는 logging Record가 logTest UserFunction의 입력이 됩니다.) logTest UserFunction에서 Display ⇒ Logging AlphaNumeric을 생성하고 logTest UserFunction의 입력터미날과 Logging AlphaNumeric의 입력터미날을 연결합니다. Logging AlphaNumeric의 사용자 인터페이스를 패널뷰에 생성합니다. Edit ⇒ Add To Panel를 클릭합니다. ShowPopupPanelTitle을 False로 설정합니다. 여기까지의 프로그램을 실행하면 측정결과가 Logging AlphaNumeric에 레코드 타입으로 출력되는데, 출력되는 내용은 시퀀스의 LogRecordFields에서 True로 설정한 값들만 표시됩니다,

다음 그림은 프로그램을 실행한 다음의 패널뷰를 나타냅니다. 이것은 데이터가 어떻게 디스플레이 되는지에 대한 아이디어를 제공할 것입니다.

6 메인 윈도우에서 Flow [image] Confirm(OK)와 Function & Object Browser 대화상자에서 hidePanel을 선택하여 Sequencer의 하단에 배치합니다. hidePanel 오브젝트의 표현식을 hidePaenl(“logTest”)로 변경하며, 입력터미날은 제거하고, 다음과 같이 연결합니다.

7 Run the program. It should look like follows.

요약하면, ShowPanel 오브젝트는 UserFunction 패널을 디스플레이 하지만, UserFunction 패널을 호출하지는 않습니다. Sequencer는 UserFunction을 2회 호출하고, 호출할 때마다 패널을 업데이트합니다. 사용자가 작업을 완료하면, OK를 누르고 패널은 사라집니다. 이 예제는 HidePanel 오브젝트를 트리거하기 위하여 OK 오브젝트를 사용하였지만, 프로그램의 어느 곳에나 배치할 수 있습니다. 상태 패널이 나타나는 것을 보기 위하여 단계별로 프로그램을 실행하면, Test1과 Test2에서의 결과를 사용하여 업데이트하고 사라집니다.


실습 13-1: Agilent VEE 웹 브라우저를 이용한 세션 실습

이 예제는 로컬 시스템에 있는 Solitaire.vee 프로그램을 원격사용자에게 제공하는 실습 프로그램입니다. 이 예제에서는 프로그램에 에러가 발생하였다고 가정하고 원격사용자가 이 에러를 해결하는 방법을 설명합니다.

1 VEE를 시작합니다. File [image] Default Preferences [image] Web Server를 선택하여 대화상자를 열고 Enable Server를 클릭합니다. 나머지는 디폴트 설정을 사용합니다. 원격사용자의 모니터에 출력할 Solitare.vee 프로그램을 엽니다. 네트웍 브라우저를 실행합니다.

2 원격사용자에게 http://Server5를 입력하여 웹을 통하여 로컬 시스템에 접속할 수 있도록 합니다. (http://Server5대신에 로컬 시스템의 컴퓨터 이름을 사용할 수도 있습니다.)

3 원격사용자가 URL http://Server5를 입력하면, 로컬 시스템의 VEE 웹서버 홈페이지가 원격 사용자의 브라우저에 디스플레이 됩니다. (무엇이 디스플레이 되었는지를 보기 위해서는, Agilent VEE 웹서버 페이지 표시를 참조하십시오.)

4 원격사용자가 전체적인 VEE 프로그램을 보기 위해서는, VEE 웹서버 홈페이지에서 Main Detail 을 선택하고 View 버튼을 누릅니다. 브라우저에는 다음과 같은 화면이 디스플레이 됩니다.

위의 그림은 VEE에 있는 메인 프로그램을 디스플레이 합니다.

주의사항

이 예제에서 사용하는 Solitare.vee 프로그램은 실제 VEE와 함께 제공되는 예제에는 없는 에러를 가지고 있습니다. 실제 VEE와 함께 제공되는 예제는 Help [image] Open Example… 의 Games 폴더에서 제공합니다.

5 원격사용자는 웹 브라우저의 ‘뒤로 이동’ 버튼을 클릭하여, VEE 웹서버 홈페이지에서 Last Error Message를 선택하면, 웹 브라우저에 다음과 같이 에러 메시지를 출력합니다. 이 실습에서는 makeAMove UserFunction에서 에러가 발생했음을 나타내고 있습니다.

VEE 에러 메시지는 UserFunction makeAMove를 지정하고 있습니다.

6 VEE 웹서버 홈페이지에서 Detail View of UserFunction을 클릭하고 UserFunction 이름에 makeAMove를 입력하면, 브라우저에 다음과 같이 스냅샷이 출력됩니다.

원격사용자는 VEE 프로그램의 에러를 볼 수 있습니다. 위의 그림에서는 JCT 오브젝트의 입력핀이 연결되지 않았습니다. 이와 같이 Solitare.vee 프로그램의 에러를 원격에서 해결할 수 있습니다.

관련정보

콜러블 VEE ActiveX Automation 서버, Agilent VEE를 이용한 웹 모니터링, Agilent VEE 데이터를 원격 사용자에게 전달하는 방법, 웹 서버 대화상자, 원격사용자가 로컬 컴퓨터의 Agilent VEE에 접근하는 방법, Agilent VEE 웹서버 페이지 표시, 웹을 통한 프로그램 접근 제한


General Programming Techniques

다음 실습 예제는 VEE의 개념을 연습하기 위해 수록 하였으며, 2개의 영역으로 나뉘어 있습니다.

이 실습예제를 효율적으로 사용하기 위해서는 주어진 프로그램 목표에 대해서 본인 스스로 프로그램하여 본 실습에서 제시하는 솔루션과 비교하는 방식으로 실습할 것을 권장합니다. 여기서 제시하는 프로그램 목표는 여러 가지 방법으로 프로그램할 수 있으므로, 프로그램 목표에서 제시한 조건을 만족하면 유효한 솔루션이라 할 수 있습니다. 그러나, 더 빠른 속도로 실행되고 더 사용하기 쉬운 프로그램이 더 좋은 솔루션이라 할 수 있습니다. 각 프로그램에서 반드시 고려해야 할 키 포인트도 함께 제공합니다.

사과 바구니

문자열과 전역변수

최적화 기법

랜덤 노이즈(Random Noise)

UserFunctions 사용법

오퍼레이터 패널과 팝업 생성

파일에 데이터를 저장하고 읽어오기

레코드 조작

테스트 시퀀싱


사과 바구니

10 파운드를 넣을 수 있는 바구니에 몇 개의 사과를 넣을 수 있는지 확인하려고 합니다. VEE 프로그램을 생성하여 바구니에 담을 수 있는 사과의 수를 세는 프로그램을 작성하십시오. 사과의 각 무게는 0 파운드 보다 무겁고 1 파운드 보다 가볍습니다.

조건

이 프로그램은 10개 이하의 오브젝트로 작성될 수 있습니다. 다음의 오브젝트 중에서 선택하십시오:

Start

Until Break

random() function

Accumulator

Break

Real64

Conditional (A>=B)

Stop

Counter

If/Then/Else

Alphanumeric

주의사항

본 매뉴얼의 실습 예제와 기타 프로그래밍 예제는 VEE의 Help [image] Open Example... Manual [image] UserGuide 에서 제공됩니다.

솔루션 1—사과 바구니

키 포인트

최적화 솔루션:

프로그램을 최적화하여 성능을 향상하기 위해서는 보다 적은 오브젝트를 사용합니다. 이 솔루션은 6개의 오브젝트를 사용합니다. 다음과 같이 10 개의 오브젝트를 사용하여 작성할 수도 있습니다.

Until Break 및 Break 오브젝트:

테스트 조건의 요구에 따라 프로그램을 반복실행하기 위해서 사용합니다. 이 예제에서, 반복실행 루프는 사과의 총 중량이 10 파운드보다 클 때 중지되어야 합니다.

Accumulator:

총 중량을 저장하기 위하여 사용합니다.

Counter:

실행 횟수를 저장합니다. 이 예제에서 카운터는 바구니 안에 들어있는 사과의 수를 저장합니다. 총 중량이 10 파운드를 넘게 되면 If/Then/Else 오브젝트의 Then 핀이 활성화되어 Break 오브젝트가 실행되고 프로그램이 중지합니다.

솔루션 2—사과 바구니

이것은 더 많은 오브젝트를 사용하여 프로그램을 작성한 다른 솔루션입니다.

키 포인트

Start:

메인 메뉴바의 Run 버튼을 사용할 수 있으므로, 이 프로그램에서 Start 오브젝트를 사용하는 것은 낭비입니다. Start 오브젝트는 스크린에 두 개의 프로그램이 있으며, 이 프로그램들을 독립적으로 실행하고자 할 경우, 또는 프로그램에 피드백 루프가 있거나 프로그램을 초기화시키는 지점을 정의할 경우에 사용하는 것이 좋습니다.

Shift Register:

이전 상태의 값을 얻고자 할 경우에 Shift Register를 사용합니다. 솔루션 2에서, Counter는 사과의 총 중량이 측정되기 이전의 실행 횟수를 저장하고 있습니다. 그러므로 총 중량이 10을 초과하여 바구니에 담을 수 있는 사과의 개수를 결정해야 하는 시점에서의 Counter의 값은 바구니에 담을 수 있는 개수 보다 1만큼 초과한 것입니다. 따라서 Counter의 값에서 1을 뺀 값이 이 예제에서 구하고자 하는 실제 값이 됩니다.

Gate:

Gate는 다른 동작이 일어날 때까지 출력을 유지하고 있다가 시퀀스 핀을 동작시키는 데 사용됩니다. 여기에서, 조건 A<=10 이 더 이상 참이 아닐 때, If/Then/Else 오브젝트의 Else 핀이 Gate를 동작시킵니다.


숫자 테스트

숫자 테스트, 1단계

사용자가 0부터 100까지의 숫자를 입력할 수 있는 프로그램을 작성합니다. 입력한 숫자가 50 이상일 경우, 숫자를 표시하고, 50 미만일 경우 “50 에서 100 사이의 숫자를 입력하십시오” 라는 팝업 메시지를 디스플레이 합니다.

조건

이 프로그램은 5개 이하의 오브젝트로 작성할 수 있습니다. 다음의 오브젝트 중에서 선택하십시오:

Start

Int32

Slider

Real64

If/Then/Else

Formula

Gate

Text

Junction

Alphanumeric

Message Box

솔루션— 숫자 테스트, 1단계

다음은 5 개의 오브젝트를 사용하여 숫자를 테스트하는 솔루션입니다.

숫자 테스트, 2단계

이 모델이 5개의 오브젝트로 작동하는 것을 확인한 후에(Message Box가 팝업 메시지를 생성합니다.) Gate 오브젝트 없이 4개의 오브젝트로 프로그래밍 하십시오.

솔루션— 숫자 테스트, 2단계

다음은 숫자를 테스트하기 위하여 4개의 오브젝트로 프로그래밍 하였습니다.

키 포인트

Auto Execute:

Int32 Slider와 같은 모든 입력 오브젝트의 속성창에 Auto Execute 속성항목이 있습니다. 이 속성을 True로 설정하면, 오브젝트는 값이 변할 때 마다 Start 나 Run 버튼을 누르지 않고도 프로그램이 실행합니다.

공식 통합:

If/Then/Else 오브젝트의 표현식 “(A>=50)*A”은 입력값 A 가 50 이상이면 1*A 의 값을 Then으로 출력하고, 50 이하이면 0을 Else로 출력합니다. (표현식의 연산 결과가 0 이외의 값이며 참으로 간주되어 그 결과값이 Then 핀으로 전달됩니다.)

숫자 테스트, 3단계

3 개의 오브젝트 만을 사용하여 프로그래밍 합니다.

힌트: Formula 오브젝트의 3항 표현식을 사용합니다. 형태는 다음과 같습니다: (<표현식> ? <참일 경우의 출력값> : <거짓일 경우의 출력값>). 예를 들어, A<10 이 참일 경우 Result 핀에 A를 출력하고, 반대로 거짓일 경우 문자열 “FALSE”를 Result 핀으로 출력하고자 할 경우, 3항 표현식 (A>10 ? A : “FASLE”)을 사용합니다.

솔루션— 숫자 테스트, 3단계

다음은 3개의 오브젝트만을 사용하여 숫자를 테스트하는 프로그램을 작성하였습니다.

주의사항

자동 에러체크 기능이 있는 Real64 Input오브젝트를 사용하여 구현할 수도 있습니다. 그러나 이 오브젝트를 사용하면 유효한 숫자를 입력해야만 프로그램을 완료할 수 있습니다.


랜덤 숫자 수집

100 개의 랜덤 숫자를 발생하고 디스플레이 하는 프로그램을 작성하십시오. 값을 생성하고 디스플레이 하는 데 필요한 총 시간을 기록하십시오.

조건

이 프로그램은 6개 이하의 오브젝트로 작성될 수 있습니다. 다음의 오브젝트 중에서 선택하십시오:

Start

For Range

Until Break

randomseed() function

random() function

Collector

Formula

Set Values

Alloc Int32

Logging AlphaNumeric

Strip Chart

Meter

Date/Time

Timer

Now()

Break

Do

힌트: 성능을 향상시키려면 Collector 오브젝트를 사용하여 수집된 데이터를 어레이에 넣어서 데이터를 한번만 전송하십시오. 성능의 차이점을 주시하십시오.

솔루션—랜덤 숫자 수집

다음 그림은 실습 “랜덤 숫자 수집” 프로그램입니다.

키 포인트

Logging AlphaNumeric 과 AlphaNumeric:

Logging AlphaNumeric은 이전 값의 로깅과 같이 연속적인 데이터(스칼라 또는 1차원 어레이)를 디스플레이하기 위해서 사용합니다. AlphaNumeric은 하나의 값, 1차원 어레이, 또는 2차원 어레이와 같은 한가지의 실행으로부터 산출된 데이터를 디스플레이하기 위해 사용됩니다. Logging 디스플레이는 앨리먼트 값이 없는 어레이입니다. AlphaNumeric 디스플레이도 같은 어레이이지만, 인덱스와 값을 가집니다.

타이밍 핀:

Do 오브젝트는 어떤 오브젝트가 먼저 실행되어야 하는지를 제어합니다. For Count 오브젝트의 시퀀스출력은 반복 루프 내의 모든 오브젝트가 실행을 마쳐야 활성화 되므로, 프로그램은 For Count 오브젝트의 시퀀스출력이 활성화 되면 종료됩니다.


랜덤 숫자 발생기

랜덤 숫자 발생기, 1 단계

외부의 입력을 받는 랜덤 숫자 발생기를 작성하십시오. 발생된 랜덤 숫자를 스트립 차트에 디스플레이 합니다. 랜덤 숫자 발생기의 입력은 다음과 같이 구성됩니다:

최대 랜덤숫자

최소 랜덤숫자

생성할 랜덤 숫자의 개수

솔루션— 랜덤 숫자 발생기, 1 단계

다음은 실습 “랜덤 숫자 발생기 1단계” 프로그램입니다.

키 포인트

Slider 오브젝트의 외형:

속성창의 Layout 그룹의 Orientation 속성을 Horizontal로 변경하여 슬라이더 오브젝트의 형태를 가로로 변경할 수 있습니다.

XY Trace:

연속하여 발생되는 데이터의 최근 히스토리를 디스플레이 하기 위하여 XY Trace를 사용합니다.

랜덤 숫자 발생기, 2 단계

랜덤 숫자를 어레이에 수집하십시오. 이동 평균을 구하고, 값을 디스플레이 하십시오.

솔루션— 랜덤 숫자 발생기, 2 단계

다음은 실습 “랜덤 숫자 발생기 2단계” 프로그램입니다.

MovingAvg(x, numPts):

지정된 개수의 입력 데이터의 평균값을 사용하여 입력 데이터를 부드럽게 할 수 있습니다. Function & Object Browser 메뉴의 Data Filtering 카테고리에서 이 함수가 제공됩니다.


마스크 사용

마스크 사용, 1단계

노이즈의 양을 조절할 수 있는 50Hz의 사인파를 생성합니다. 다음의 한계치 이하의 값을 발생하는 노이즈를 가진 싸인파를 테스트하십시오:

(0,0.5)

(2.2m, 1.2)

(7.2m, 1.2)

(10.2m, 0.5)

(20m, 0.5)

사인파가 한계치를 초과하면, 한계값을 초과한 포인트를 빨간 다이아몬드로 표시하십시오.

힌트: 디스플레이의 형태를 선, 점, 다이아몬드로 변경할 수 있습니다. (Properties에서 각각의 입력에 대한 Trace 탭을 선택하여 Line Style을 Solid(실선), Dashed(점선), Dot(점) 등의 모양을 선택할 수 있습니다. 또한 Point Style을 Point(점), Diamond(다이아몬드), Box(박스) 또는 다른 모양으로 설정할 수 있습니다.

솔루션— 마스크 사용, 1단계

다음은 실습 “마스크 사용 1단계” 프로그램 입니다.

마스크 사용, 2단계

실패율을 계산하고 디스플레이 하는 프로그램을 추가하십시오.

솔루션— 마스크 사용, 2단계

다음은 실습 “마스크 사용 2단계”의 프로그램입니다.

키 포인트

Mask:

Mask는 Data [image] Constant [image] Coord 오브젝트를 선택한 후 5개의 어레이 앨리먼트를 설정하여 생성합니다. (DataShape 속성이 Array 1d로 설정되어야 합니다.) 콤마(,)로 분리된 좌표 쌍을 입력하면, VEE가 괄호를 추가합니다. Waveform(Time) 디스플레이는 Coord 데이터 타입을 입력으로 받아들입니다. 또한 파형의 포인트 수를 지정함으로써 Coord를 Waveform 데이터 타입으로 변환시키는 Arb Waveform (Data [image] Build Data [image] Arb Waveform) 오브젝트를 사용할 수도 있습니다.

Comparator:

이 오브젝트는 테스트 값과 참조 값을 비교합니다. 다시 말해서, 사용자는 파형을 좌표 쌍 어레이와 비교할 수 있습니다. Failures 핀은 규격에서 벗어나는 데이터 포인트를 어레이로 리턴합니다. 이 어레이를 디스플레이에 전송하여, 다른 색상이나 형태로 강조하여 활용할 수 있습니다.

TotSize:

이 오브젝트는 어레이 앨리먼트의 개수를 리턴합니다. 이 어레이에 규격에서 벗어난 데이터 포인트를 저장하여 앨리먼트의 개수를 구하고 이를 원본 파형의 포인트 수(256)으로 나눈 후, 100을 곱하여 실패율을 구합니다.

공식:

A/256*100은 실패율을 구하기 위한 공식입니다. (256 포인트의 데이터를 발생시킨 경우)


문자열과 전역변수

문자열 오브젝트 또는 함수를 사용하여 사용자의 이름을 <공백><이름><공백><성> 의 형태로 입력받는 프로그램을 작성하십시오. 이 프로그램은 사용자가 이름을 입력하면 성을 떼어버리고 이름만을 출력한 후, 전역 변수에 이 문자열을 저장하고 Formula 오브젝트를 사용하여 문자열을 검색합니다.

솔루션—문자열과 전역변수 다루기

다음은 실습 “문자열과 전역변수 다루기”의 프로그램입니다.

키 포인트

문자열 오브젝트와 함수들:

strTrim(str)은 문자열의 앞과 뒷부분의 공란이나 탭을 제거합니다. strPosChar(str1, “ ”)는 성과 이름 사이의 공백문자의 인덱스를 반환합니다. StrLen(str)는 문자열의 길이를 반환합니다. 이 예제에서 이 함수들은 문자열 오브젝트를 사용하여 실행되었으나, Formula 오브젝트의 표현식에서 이들 문자열 함수를 사용하여 구현할 수도 있습니다.

Formula 오브젝트:

strFromThru(A, B+1, C-1)는 입력 A로부터 문자열을 받은 후, B로부터 입력된 공백문자의 인덱스에 1을 가산하고, C로부터 입력된 문자열 길이에서 1을 감산합니다. (모든 인덱스는 0에서 시작합니다.)

Set Variable:

전역변수 lastname을 선언합니다.

최적화:

3개의 공식을 하나의 공식으로 결합합니다. strTrim() 출력이 여러 번 사용되므로 strTrim() 오브젝트는 그대로 사용할 것을 권장하지만, 다른 오브젝트는 프로그램 실행속도를 향상시키기 위하여 하나로 결합합니다.(그러나 가독성은 떨어집니다.)


최적화 기법

이번 실습에서는, 하나의 과제를 두 가지 다른 방법으로 프로그래밍 합니다. 두 프로그램의 실행속도 차이를 비교합니다.

최적화 기법, 1 단계

0부터 710까지 10씩 증가하는 변수를 사인함수와 코사인함수로 처리하여 전송하는 프로그램을 작성하십시오. 두 함수의 결과를 X vs. Y 디스플레이에 출력하십시오. Timer 오브젝트를 사용하여 프로그램이 실행하는데 걸리는 시간을 측정하십시오. (Default Preference의 Trig Mode를 Radian으로 설정합니다.)

솔루션—최적화 기법, 1 단계

다음은 실습 “최적화 기법 1단계”의 프로그램입니다.

최적화 기법, 2 단계

첫 번째 프로그램의 모든 오브젝트를 클론한 후, For Range 오브젝트에서 출력되는 값들을 어레이에 저장하도록 수정합니다. 이제 사인함수와 코사인 함수는 어레이의 앨리먼트 개수만큼 실행되고 그래프는 한번에 그려집니다. 시간이 얼마나 절약되는지 관찰합니다.

솔루션— 최적화 기법, 2 단계

다음은 실습 “최적화 기법 2단계”의 프로그램입니다.

키 포인트

어레이를 사용한 최적화:

1단계와 어레이를 사용한 2단계 사이의 성능을 비교합니다. 가능하면, 스칼라 값 보다는 어레이를 사용하여 분석 또는 결과의 디스플레이를 실행합니다.

X vs. Y Display:

이 실습에는 X와 Y가 분리된 데이터이기 때문에, Waveform 또는 XY Trace 대신 X vs. Y Plot을 사용하였습니다.


랜덤 노이즈(Random Noise)

랜덤 노이즈(Random Noise) UserObject

랜덤 노이즈UserObject, 1 단계

랜덤 노이즈 파형을 발생시키는 UserObject를 생성하고, 잡음성 파형과 UserObject 외부의 노이즈 스펙트럼을 디스플레이 하십시오. UserObject의 외부 제어요인(진폭, 포인트 수, 시간간격(Time span), DC 오프셋)을 제공하십시오.

주의사항

UserObject 내부에 Virtual Source를 사용하지 말고, Build Waveform 과 Ramdom 등의 오브젝트를 사용하여 UserObject를 생성하십시오.

솔루션— 랜덤 노이즈UserObject, 1 단계

다음은 실습 “랜덤 노이즈 UserObject” 프로그램입니다.

솔루션—랜덤 노이즈를 발생하기 위한 NoiseGen UserObject

다음은 NoiseGen UserObject의 프로그램입니다.

키 포인트

UserObject:

여기서 작성한 UserObject는 완전히 커스터마이징된 오브젝트입니다..

Build Waveform:

이 오브젝트는 진폭값과 시간 폭의 실수 배열을 Waveform 데이터 타입으로 변환시키는 오브젝트입니다.


UserFunctions 사용법

UserFunctions, 1단계

진폭이 0 보다 크고 1 보다 작은 노이즈를 가지는 파형을 생성하는 이름이 NoiseGen인 함수를 생성하십시오.

다음 오브젝트는 사용하지 마십시오.

Virtual Source

For Count

For Range

다음 오브젝트를 사용해야 합니다.

Formula

Ramp

Build Waveform

힌트: randomize(array,-a,a)를 사용하고, 여기서 어레이는 256 포인트이고, a는 진폭입니다. 함수가 제대로 동작하는지를 확인하기 위한 간단한 메인프로그램을 작성합니다.

솔루션—UserFunctions, 2단계

다음은 실습 “UserFunctions, 1단계”의 프로그램입니다.

키 포인트

Ramp():

ramp() 함수는 randomize()의 내부에서 256 포인트의 어레이를 생성하는데 필요한 변수를 제공하기 위해서 사용합니다.

Build Waveform:

Time Span의 디폴트 값은 20ms로 지정되어 있으므로 파형을 만들기 위해서 어레이만 전송하면 됩니다.

UserFunctions, 2단계

위의 프로그램에서, NoiseGen 함수를 호출하는 AddNoise 함수를 생성하십시오. AddNoise는 NoiseGen 함수에서 생성한 노이즈를 싸인파에 합성합니다. 따라서 AddNoise는 NoizeGen의 출력과 싸인파를 입력받는 2 개의 입력핀을 가집니다. 결과를 출력하는 핀도 가집니다.

노이즈의 진폭을 결정하는 슬라이더와, Virtual Source [image] Function Generator (100Hz의 싸인파)를 추가하여 간단한 메인프로그램을 작성합니다. 결과 파형을 디스플레이 합니다.

솔루션—UserFunctions, 2단계

다음은 실습 “UserFunctions 2단계”의 프로그램입니다.

UserFunctions, 3단계

위의 프로그램의 Formula 오브젝트에서 AddNoise 함수를 호출하고 결과의 절대값을 취한 후, 같은 디스플레이 장치에 절대값 파형을 디스플레이 합니다. Debug [image] Show Data Flow 에 체크한 후, AddNoise 창을 열어둔 채로 프로그램을 실행하여, 디버깅 기능을 시험합니다.

솔루션—UserFunctions, 3단계

다음은 실습 “UserFunctions 3단계”의 프로그램 입니다.

UserFunctions, 4단계

슬라이더가 전역변수 Amplitude의 값을 설정하도록 프로그램을 변경합니다. NoiseGen 함수가 이 전역변수를 사용하도록 만듭니다. (따라서 NoiseGen 함수는 더 이상 입력핀을 필요로 하지 않습니다.) 프로그램을 정확하게 동작하도록 만들고 uflab.vee라는 이름의 파일로 저장합니다.

솔루션—Using UserFunctions, 4단계

다음은 실습 “UserFunction 4단계”의 프로그램입니다.

힌트: Call AddNoise 와 Formula 오브젝트는 전역변수를 사용하므로, 두 오브젝트 모두 Set Amplitude 오브젝트가 실행된 이후에 실행되어야 합니다. 시퀀스 핀을 Set Amplitude 에서 Call AddNoise에 연결하여, Set Amplitude 오브젝트가 Call AddNoise 및 Formula 오브젝트 보다 먼저 실행되도록 합니다.


UserFunctions 라이브러리 임포팅 및 삭제

uflab.vee 함수를 임포팅하는 간단한 프로그램을 작성합니다. 노이즈를 추가하는 함수를 호출하고 라이브러리를 프로그램상에서 삭제합니다. Call 오브젝트 메뉴의 Select Function을 사용합니다.

힌트: 사용자가 지정한 라이브러리를 수동으로 임포팅하기 위하여, Import Library 오브젝트 메뉴의 Load Lib를 클릭하면, Call 오브젝트의 Select Function을 사용할 수 있습니다.

솔루션—프로그램상에서 라이브러리 임포팅 및 삭제

다음은 프로그램상에서 라이브러리를 임포팅하고 삭제하는 프로그램입니다.

키 포인트

Select Function:

이 메뉴를 사용하여 함수를 선택하면, 사용자가 선택한 함수에 적합한 입력과 출력을 자동으로 설정합니다.

UserFunctions 수정:

사용자가 UserFunctions의 라이브러리를 프로그램상에서 임포팅하면, 사용자는 이를 수정할 수 없습니다. 디버깅을 위하여 라이브러리를 보거나, 브레이크 포인트를 설정하는 것만 가능합니다. 임포팅한 UserFunctions은 Merge Library 명령을 사용하여 수정합니다.

Set Variable 사용시 주의점:

함수 내에서 전역 변수를 사용할 경우, 다른 프로그램에서 그 전역변수를 사용할 때, 전역변수를 미리 생성해야 합니다. 입력과 출력을 명시적으로 생성하면 더욱 쉽게 추적할 수 있습니다.


오퍼레이터 패널과 팝업 생성

오퍼레이터 패널과 팝업 생성, 1 단계

숫자를 대화형으로 입력할 수 있는 UserObject를 생성합니다. 오퍼레이터에게 A와 B 2 개의 숫자를 입력하도록 요청합니다. 두 입력을 모두 디스플레이로 전송합니다. Show On Execute를 체크하고 UserObject를 사용하여 패널에 디스플레이 합니다.

솔루션— 오퍼레이터 패널과 팝업 생성, 1 단계

다음 그림은 디테일뷰의 솔루션입니다.

다음 그림은 프로그램이 실행될 때 나타나는 패널입니다.

키 포인트

UserObject 속성:

UserObject의 속성창에서, Pop-Up Panel을 선택하고 Show Panel On Execute를 True로 변경합니다. Pop-Up Panel [image] Panel Title 을 “Enter A or B”로 변경합니다.

오퍼레이터 패널과 팝업 생성, 2 단계

두 숫자가 다를 경우, A and B 대신에 A or B를 디스플레이 합니다. 두 값을 입력하도록 요청하여 A와 B가 같으면 값을 디스플레이 하고, 다를 경우 디스플레이 할 값을 선택하도록 요청합니다.

힌트: Show Panel on Execute 속성의 팝업 패널을 가진 또 하나의 UserObject를 추가하고, 여기서 사용자에게 값을 요청합니다.

솔루션— 오퍼레이터 패널과 팝업 생성, 2 단계

다음은 A와 B가 다를 경우 둘 중의 하나를 고르기를 요청하는 UserObject를 나타냅니다.

다음은 A 또는 B 중 어느 것을 디스플레이 할 지를 물어보기 위해 나타나는 두 번째 팝업 패널입니다.

키 포인트

Gate:

Gate 오브젝트는 두 숫자가 같은 때만 값을 전송합니다.

Junction:

JCT 오브젝트는 AlphaNumeric 오브젝트로 다중 입력을 제공합니다. JCT 오브젝트는 “OR 연결된” 오브젝트입니다.

메뉴로서의 List 오브젝트:

Data [image] Selection Controls [image] List 오브젝트를 사용하여 두 개의 선택리스트 형태로 수정합니다. 이 설정은 텍스트 A 또는 B를 출력합니다. 사용자가 Ordinal 값(0 또는 1)이 필요하면, List 오브젝트의 Ordinal 데이터출력을 사용합니다.

오퍼레이터 패널과 팝업 생성, 3 단계

사용자가 숫자를 입력하지 않으면 에러메시지를 발생시킵니다. 사용자에게 A와 B 중 디스플레이 될 것을 선택하도록 요청하는 두 번째 UserObject에 두 숫자가 다를 경우 에러 메시지를 발생시킵니다. 사용자가 10초 내에 A와 B 중의 하나를 선택하지 않으면, 에러를 발생시킵니다.

솔루션— 오퍼레이터 패널과 팝업 생성, 3 단계

다음 그림은 사용자가 10초 내에 A 또는 B 중의 하나를 선택하지 않을 경우 에러 메시지를 발생시키도록 수정된 UserObject 입니다.

키 포인트

Exit UserObject:

사용자가 10초 이내에 응답할 경우, 이 오브젝트는 Delay 오브젝트가 실행을 완료하지 않더라도 UserObject에서 빠져 나갑니다.

Delay 와 Raise Error:

10초 후, Delay 오브젝트는, Raise Error 오브젝트로 제어를 넘깁니다. 이 오브젝트는 프로그램의 실행을 멈추고 사용자가 입력해 넣은 에러 메시지를 출력합니다. 빨간색의 외곽선이 에러를 발생시킨 오브젝트 주위에 나타납니다. 이 외곽선은 메인 메뉴 바의 Stop 버튼이나 Run 버튼을 클릭하면 사라집니다.

OK 와 Delay:

Choose A or B 의 두 쓰레드는 분리되어 있으므로, OK 와 Delay는 동시에 동작합니다.


파일에 데이터를 저장하고 읽어오기

날짜의 시간을 파일에 기록하는 VEE 프로그램을 작성합니다. 100 개의 랜덤 숫자를 발생하여 파일에 기록합니다. 발생된 숫자의 평균값과 표준편차를 계산하고 아래의 형식으로 파일에 추가합니다:

Mean: xxxxxx

Std Dev: yyyyyy

다음으로, 평균값과 표준편차를 파일에서 읽어옵니다.

솔루션—파일에 데이터를 저장하고 읽어오기

다음은 파일에 데이터를 저장하고, 읽어오는 방법을 나타냅니다.

키 포인트

어레이 생성:

100개의 랜덤 숫자를 가지는 어레이를 생성하기 위하여 Formula 오브젝트에 randomize(ramp(100,0,1), 0, 1)를 입력합니다. ramp() 함수는 지시된 어레이를 생성하고, 0 에서 1 사이의 랜덤 숫자를 발생시키는 randomize() 함수에 전달합니다.

타임 스탬프:

now() 함수는 To File 오브젝트의 I/O 트랜잭션 대화상자 표현식에 사용됩니다. 데이터 형태를 타임스탬프 FORMAT으로 변경하면, 저장될 시간의 형태를 지정할 수 있는 버튼이 대화상자에 추가됩니다.

한 줄에 2개의 값 저장:

To File 오브젝트의 세 번째와 네 번째 트랜잭션은 텍스트 문자열과 실수값을 저장합니다. 예를 들어, 세 번째 트랜잭션의 I/O Transaction 표현식 필드에 “Mean: “, B 라고 입력하면, 평균값이 입력핀 B를 통해 전달된다는 의미입니다.

파일로부터 값 추출:

파일로부터 평균값과 표준편차에 접근하기 위하여, 먼저 읽기 포인터의 위치를 파일의 맨 처음으로 이동시키는 EXECUTE REWIND를 전송합니다. 과거의 타임스탬프와 실수값을 읽기 위해서 NULL을 사용합니다. (이것은 값들을 출력 터미날로 전송하지 않고 버릴 것입니다.) 마지막으로 파일의 마지막 두 줄을 문자열 형태로 읽습니다.

Junction:

Logging AlphaNumeric 디스플레이에 mean과 sdev를 연결하기 위해 Flow [image] Junction 오브젝트를 사용하여 단일 입력에 대해 하나 이상의 출력을 연결합니다.


레코드 조작

레코드 조작, 1 단계

3 개의 필드(하나의 정수, 문자열 형태의 현재 시간, 4개의 앨리먼트를 가지는 하나의 실수 어레이)로 구성된 Build Record 오브젝트를 생성합니다. 각 필드의 이름은 각각 int, daytime, rarray로 정합니다. 이 Build Redord 오브젝트에 0과 1 사이의 랜덤 숫자와 waveform 필드로 이루어진 다른 Build Record를 병합합니다. 이 필드들의 이름은 rand 와 wave로 정합니다.

솔루션— 레코드 조작, 1 단계

다섯 개의 필드로 구성된 레코드를 만드는 방법입니다.

키 포인트

타임 스탬프:

To String 오브젝트에 now() 함수를 입력하여 이 프로그램의 타임스탬프를 생성하고, 포맷을 결정합니다.

데이터 상수를 하나의 어레이로 설정:

Data [image] Constant 메뉴에서 제공되는 모든 데이터 타입은 각각의 속성창에서 DataShapr 속성을 Array 1D로 설정하여 어레이가 될 수 있습니다.

필드 이름:

Build Record 오브젝트의 입력터미날 이름을 수정하여 레코드에 int, rand, wave와 같은 특정한 필드 이름을 지정할 수 있습니다.

Default Value 컨트롤 입력:

Record 상수(Data ⇒ Constant ⇒ Record)에 Default Value 컨트롤 핀을 추가하여 대화형 디스플레이 오브젝트를 만들 수 있습니다. Record 상수는 수신한 레코드에 맞도록 자신을 자동으로 구성합니다.

레코드 조작, 2 단계

레코드 내의 임의 값을 테스트하기 위해서 Formula 오브젝트에 조건 표현식을 사용하고, 테스트 한 값의 크기에 따라서, 값이나 텍스트 문자열을 디스플레이 합니다. 값이 0.5 미만이면 랜덤 값을 출력하고, 그렇지 않으면 텍스트 문자열 “More than 0.5”를 출력합니다. 다음으로 시간과 waveform 만을 추출합니다.

힌트: Formula 오브젝트를 시간과 waveform을 추출하는데 사용하지 말 것. AlphaNumeric 오브젝트에 이 레코드를 디스플레이 합니다.

솔루션— 레코드 조작, 2 단계

레코드 조작 2단계는 다음과 같습니다.

키 포인트

조건 표현식 사용:

VEE는 if-then-else 기능을 가지면서 더욱 효과적인 3항 연산식을 제공합니다. Formula 오브젝트에서 3 항 연산(a.rand < 0.5 ? a.rand : “More than 0.5”)을 직접 사용할 수 있습니다. 이 표현식은 하나의 표현식입니다. 하나의 Fomular 오브젝트에서 하나 이상의 표현식을 사용하면 각 표현식을 세미콜론(;)으로 구분해야 합니다.

Sub Record 오브젝트:

Sub Record의 fields 입력핀에 Text 어레이가 연결되어 있습니다. 사용자가 Sub Record 오브젝트에 이 fields를 포함하도록 구성(Include fields 버튼을 활성화)했을 때, 지정된 필드만을 포함하는 레코드가 출력됩니다.

레코드 조작, 3 단계

첫 번째 필드용 정수 입력을 For Count 오브젝트로 교체하고 10회 반복하도록 만듭니다. 매 반복 시마다 랜덤 숫자 발생기와 시간 함수가 “ping” 하도록 합니다. To DataSet 오브젝트에 완전한 레코드를 전송합니다. 분리된 쓰레드에서 숫자가 0.5 보다 큰 데이터셋의 모든 레코드를 추출합니다. Record Constant 오브젝트에 결과 레코드를 입력합니다.

힌트: Record Constant 오브젝트의 Default Value를 제어하기 위한 컨트롤핀을 사용하게 됩니다.

솔루션— 레코드 조작, 3 단계

레코드 조작 3단계의 프로그램은 다음과 같습니다.

키 포인트

To DataSet 오브젝트:

Clear File At PreRun 옵션을 선택하면 파일의 이전 내용을 삭제하고 새로운 데이터를 씁니다. 프로그램은 10 개의 서로 다른 레코드를 같은 파일에 순차적으로 전송하고, 레코드들은 차례로 파일의 뒷부분에 첨부됩니다.

From DataSet 오브젝트:

이 오브젝트는 rand 필드가 0.5 이상인 모든 레코드를 검색하도록 구성되어 있습니다. 이 때, 10개 중에서 5개는 기준을 만족하고, 첫 번째 레코드의 인덱스는 0입니다.


테스트 시퀀싱

테스트 Sequencer 사용, 1단계

이름이 UpperLimit인 UserFunction을 생성하고, Real64 Slider와 Conform(OK) 오브젝트를 추가합니다. 슬라이더의 출력을 UpLimit 전역변수와 출력 터미날로 전달합니다. Sequencer 오브젝트를 생성하고 UpperLimit를 호출하는 EXEC 트랜잭션을 test1로 구성합니다.

사용자가 호출할 테스트를 시뮬레이션 하는 또 다른 함수 AddRand를 생성합니다. 이 함수는 0부터 1까지의 랜덤 숫자에 입력 값을 더합니다. 이 함수는 입력과 출력핀을 각각 하나씩 가지고 있습니다.

Sequencer에서 AddRand를 호출하고 파라미터에 0을 전송하기 위한 test2를 생성합니다. 이 테스트는 리턴값이 전역변수 UpLimit보다 작은지를 비교합니다. 리턴값이 전역변수 UpLimit보다 작으면, “PASS”+test2.result를 출력하고, 그렇지 않으면 “FAILED”+test2.result를 출력합니다. Sequencer의 Return 핀에 AlphaNumeric 디스플레이를 연결합니다.

Sequencer 오브젝트 뒤에 Get Variable 오브젝트(Uplimit)와 또 다른 AlphaNumeric 디스플레이를 연결합니다. 프로그램을 수 차례 실행합니다.

솔루션— 테스트 Sequencer 사용, 1단계

다음은 Sequencer를 사용하는 1단계의 솔루션입니다.

키 포인트

UserFunction을 사용한 전역변수 설정:

Sequencer의 첫 번째 트랜잭션의 전형적인 사용 용도는, 이번 예제와 같이, UserFunction을 호출하여 전역변수를 설정하는 것입니다. 첫 번째 트랜잭션에서 전역변수를 선언하면 다음에 이어지는 모든 테스트에서도 이 변수를 사용할 수 있습니다.

Sequencer의 Return 핀:

이 예제의 Return 핀은 PASS 또는 FAIL 메시지와 테스트 값을 반환합니다. 특정 테스트로부터 메시지나 값을 전달하는데 이 핀을 사용할 수 있습니다.

테스트 Sequencer 사용, 2단계

첫 번째 테스트를 비 활성화 시킵니다. 어디에서도 전역변수를 사용할 필요가 없다고 가정하고, UpperLimit 함수를 직접 호출합니다. test2를 AddRange(0)의 반환 값을 UpperLimit 함수의 결과와 비교하도록 변경합니다.

힌트: 첫 번째 테스트를 비 활성화 시키기 위하여, Sequencer 트랜잭션 박스에서 다음과 같이 설정합니다.

위의 그림에서, Sequencer의 첫 번째 테스트를 두 개의 슬래시로 “주석 처리”했습니다.

솔루션— 테스트 Sequencer 사용, 2단계

다음은 Sequencer를 사용하는 2단계 솔루션입니다.

키 포인트

표현식 필드내의 UserFunction:

이 예제에서 테스트 결과를 UpLimit 변수에 비교하는 대신, 표현식 필드내에 사용하고자 하는 변수가 있는 함수의 이름 UpperLimit()를 직접 입력합니다.

테스트 Sequencer 사용, 3단계

VEE 함수 random(0,1)을 호출하도록 Sequencer의 test1 트랜잭션을 수정합니다. 반환된 결과가 0.5보다 작은지 제한 비교합니다. 모두 네 번의 테스트를 할 수 있도록 test1을 복사하여 붙여넣기 합니다. (모든 테스트는 “LOGGING ENABLED” 옵션을 인에이블 시켜야 합니다.)

Sequencer 가 다섯 번 실행되도록 프로그램을 작성합니다. 레코드의 Data Set에 데이터를 기록하고 데이터를 어레이에 저장합니다. 두 번째 테스트 결과의 최소, 최대, 평균, 표준편차를 연산하기 위하여 어레이를 사용합니다.

솔루션— 테스트 Sequencer 사용, 3단계

다음은 3단계의 솔루션입니다.

키 포인트

Sequencer(첫 번째 쓰레드)의 반복 실행을 위한 데이터 포맷:

Sequencer가 한번 실행될 때, 레코드들로 구성된 레코드(Record of Records)를 출력합니다. 첫 번째 레코드는 테스트의 이름과 일치하는 필드명을 가지며, 각 필드는 특정 테스트의 각기 다른 정보를 나타냅니다. Sequencer가 수 차례 실행되면, 각 레코드의 레코드들을 어레이에 추가할 수 있습니다. Formula 오브젝트에 <레코드>[*].<레코드>.<필드> 형식의 표현식을 사용하면, 데이터의 어레이를 얻을 수 있습니다. 이 예제의 경우에는 test2를 5회 실행한 결과들이 저장된 실수 값 어레이를 얻게 됩니다. 이 어레이에서 최소, 최대, 평균, 표준 편차를 연산할 수 있습니다. 레코드들의 레코드 어레이의 특정 앨리먼트를 지시하여, test2를 한번만 실행시킬 수 있습니다. 예를 들면, test2의 첫 번째 실행 결과를 얻기 위해 표현식 A[0].test2.result를 사용할 수 있습니다.

테스트 Sequencer 사용, 4 단계

로깅 레코드에 타임스탬프 필드를 추가합니다. 각 단계를 1초 간격으로 실행하기 위하여 Delay를 추가합니다. 별도의 쓰레드에서 test2의 모든 결과를 구하고 Record 상수에 이를 전달합니다.

Delay 오브젝트(첫 번째 쓰레드):

이 오브젝트는 지정된 시간(초)만큼 실행을 지연시킵니다. 여기서는 Sequencer가 실행될 때 마다 다른 값의 타임스탬프 값을 출력하기 위해서 사용되었습니다.

타임스탬프 추가:

타임스탬프를 추가하기 위하여, Sequencer의 Properties [image] Log Record Fields 폴더에서 LogName, LogPassed, LogResult, LogTimeStamp 항목을 True로 변경하고, LoggingMode를 LogToOuputOnly로 변경한다. 다음은 Properties [image] Log 탭 대화상자를 나타냅니다.

솔루션— 테스트 Sequencer 사용, 4단계

다음은 Sequencer 사용 4단계의 프로그램입니다.

힌트: 각 테스트에 대한 레코드를 디스플레이하기 위하여 Record:Scalar 필드를 클릭하면 Record Field Data 대화상자가 나타납니다. 다은은 Record Field Data 대화상자를 나타냅니다.

테스트 Sequencer 사용, 5단계

Logging AlphaNumeric 디스플레이에 레코드의 타임스탬프를 출력합니다.

힌트: 네 개의 Formula 오브젝트(각 테스트 마다 1개씩)를 사용합니다. 네 개의 Formula 결과를 하나의 Logging AlphaNumeric 디스플레이에 모두 출력하기 위하여 Junction 오브젝트를 사용합니다. 63G 타임스탬프 값에 위하여 To String 오브젝트를 사용하면 보기 쉬운 형태로 표시됩니다.

솔루션— 테스트 Sequencer 사용, 5단계

다음은 Sequencer 사용 5단계의 솔루션입니다.

키 포인트

타임 스탬프 포맷 변경:

타임스탬프를 읽기 쉽도록 Logging AlphaNumeric으로 출력하기 전에 To String 오브젝트를 이용하여 포맷을 변경합니다.

테스트 Sequencer 사용, 6단계

Sequencer에 여러 개의 테스트가 포함되어 있다면 Junction에 많은 Formula 오브젝트를 연결해야 하므로 프로그램이 복잡하게 됩니다. 이러한 방법 대신에 표현식을 가지는Formula 오브젝트를 사용하고, 실행 시에 표현식을 생성하며, 가능한 표현식을 통해서 반복 실행할 수 있습니다.

첫 번째 예제는 표현식 문자열을 생성합니다.

별도의 쓰레드에서 테스트 표현식 문자열을 생성하기 위해 Loop와 Formula 오브젝트를 사용합니다. 문자열로 구성된 출력은 Logging AlphaNumeric 오브젝트에 출력합니다. Formula 내에서 생성되는 문자열은 “a[*].test<x>.timestamp” 이며, 여기서 x는 1 부터 4까지의 숫자입니다.

솔루션— 테스트 Sequencer 사용, 6단계

다음은 6단계의 솔루션입니다.

테스트 Sequencer 사용, 7단계

이전 단계에서 작성한 프로그램에 있는 네 개의 Formula 오브젝트와 Junction 오브젝트를 6단계에서 작성한 Loop와 Formula로 교체합니다. 프로그램 실행 중에 생성된 표현식 (“a[*].test,<x>.timestamp”)을 Formula 오브젝트에 전송합니다.

Formula 오브젝트의 Formula 컨트롤 핀:

연산하고자 하는 Formula는 루프내의 공식에 의해 생성됩니다. Formula에 있는 컨트롤핀을 사용하여 두 번째 공식 박스를 생성할 수 있습니다. 두 번째 공식을 연산하는 표현식은 실행 시에 생성됩니다.

솔루션— 테스트 Sequencer 사용, 7단계

다음은 7단계의 솔루션입니다.

키 포인트

• To String 오브젝트는 이전과 마찬가지로 타임스탬프 포맷을 Real64로 변경하는 데 사용되었습니다.

• “generate expression string” 오브젝트와 “evaluate” 오브젝트 사이에 시퀀스 입출력이 연결되어 있습니다. 이것은 “generate expression string” 오브젝트가 “evaluate” 오브젝트로 새로운 문자열을 보내야지만 evaluate 오브젝트가 동작하도록 합니다.

테스트 Sequencer 사용, 8단계

성공한 test1과 실패한 test2의 레코드만을 디스플레이하십시오.

솔루션— 테스트 Sequencer 사용, 8단계

다음은 Sequencer 사용 8 단계의 솔루션입니다.

키 포인트

From Data Set 오브젝트(두 번째 쓰레드)의 EOF 핀:

조건을 만족하지 못하는 레코드가 없는 경우에 EOF 핀이 추가됩니다. 이러한 경우가 발생하면, 에러 메시지를 출력하고 VEE를 중단하는 대신, EOF 핀을 활성화합니다.

From Data Set 오브젝트(두 번째 쓰레드)의 조건 표현식:

표현식 (rec.test1.pass==1) AND (rec.test2.pass==0) 은 <레코드>.<레코드>.<필드> 와 같은 형태입니다. rec는 읽고 테스트되는 데이터셋의 각 레코드 이름입니다. test1과 test2는 VEE로 테스트 하고자 하는 테스트를 지정하며, 필드 이름 pass는 VEE에 의해 부여된 pass-fail 인디케이터(0 또는 1)의 디폴트 명입니다. (사용자는 Sequencer의 Properties 에서 다른 모든 필드에 대한 테스트를 활성화 또는 비 활성화 할 수 있습니다.)


VEE 예제 프로그램 소개

본 안내서는 Agilent VEE Pro와 함께 제공되는 예제프로그램의 내용을 요약한 안내서입니다. 이들 안내 프로그램에서는 다양한 프로그래밍 기술을 소개하고 있으며, 다음과 같이 여러 개의 그룹으로 구분되어 있습니다.

해당 그룹을 클릭하고 요약 내용을 참조하십시오. 각 VEE 프로그램의 버튼을 클릭하면 새로운 창에서 VEE 엽니다.

예제 파일 | 설명
.NET Examples | 닷넷의 강력한 기능과 유연성을 설명하는 여러 개의 예제. 어려운 내용입니다.
ActiveX Controls | 전형적인 ActiveX 컨트롤의 사용법을 설명하는 ActiveX 예제 목록.
Analysis | VEE의 데이터 분석기능을 설명하는 예제
Electrical Applications | 시간영역 웨이브폼, DS1 펄스 템플릿 테스트 시뮬레이션 및 리사쥬 패턴생성의 빌드 및 언빌드를 설명하는 예제 목록.
Dynamic I/O Configuration | 지역컴퓨터 또는 원격컴퓨터에서 계측기를 검색하는 VEE 예제 목록
Excel Library | Excel로 데이터를 쓰거나 읽고, 셀을 포맷팅하며, 그래프를 그리는 Excel Library 사용예제 목록
Financial Applications | NPV, 회수기간, 미래가치 등의 일반적인 경제 연산 예제 목록
Games | 재미있는 방식으로 VEE의 기본기능과 고급기능을 하이라이트하는 게임 목록
Instrument Measurements | 다양한 방식으로 계측기를 이용하여 측정하는 여러 가지 예제. 10 개 이상의 계측기가 사용되었습니다.
IVI Driver Example | 파워미터와 스펙트럼분석기에서 IVI를 사용하는 예제
Manufacturing Applications | 생산라인의 어플리케이션에서 VEE를 어떻게 사용하는가에 대한 예제. 시퀀싱을 포함한 다양한 VEE 오브젝트가 소개되었습니다.
MATLAB Script | MATLAB을 이용하여 어떻게 VEE의 기능을 향상시킬 수 있는가에 대한 예제
Mechanical Applications | 기계적인 문제를 해결하기 위해서 VEE를 사용한 예제 목록
Microsoft Access | ActiveX 를 통해서 Access를 사용하는 방법을 설명한 예제. 데이터를 데이터베이스에 저장하고 내용을 표시합니다.
Microsoft Excel | ActiveX 를 통해서 Excel을 사용하는 방법을 설명한 예제. 램덤데이터, 어레이 데이터 및 챠트데이터를 엑셀에 입력합니다.
Microsoft Outlook | ActiveX 를 통해서 Outlook을 사용하는 방법을 설명한 예제. 이메일을 전송합니다.
Microsoft Word | ActiveX 를 통해서 Word을 사용하는 방법을 설명한 예제. 데이터와 비트맵을 입력하고, 찾기 및 바꾸기, 이메일 병합 방법등을 설명합니다.
Programmatic Properties | Programmatic Properties를 사용하는 여러가지 예제
Old VEE RPC API | 이전 버전의 VEE 에서 원격 프로시져를 호출하는 라이브러리
VEE Lib Examples | VEE Lib 디렉토리에서 제공하는 여러 가지 예제
VEE Programming Concepts | VEE의 성능을 설명하기 위한 VEE 오브젝트를 사용사례. 강력하고, 이해하기 쉬우며, 학습효과 있음.
Visual Basic | 펄스를 합성하여 테스트 임계값과 함께 디스플레이하는 예제
VB Script | VB 스크립트. DS1 펄스테스트, Callable VEE 서버 정보등의 사용법을 설명하는 다양한 예제
Visual C++ | DS1 펄스테스트를 설명하는 예제
Windows Forms Controls | VEE에서 제공하는 윈도우 폼 컨트롤을 사용하는 다수의 예제

주의사항

examples\Manual 디렉토리에서 제공하는 예제는 다른 VEE 도움말과 VEE매뉴얼에서 설명되므로, 여기서 설명하지 않았습니다.


변경된 예제파일 이름

VEE 6.0/6.2 | VEE 7.0 | VEE 7.5
Access97DataClient.vee | Access97DataClient.vee | AccessDataClient.vee
Access97Enumerate.vee | Access97Enumerate.vee | AccessEnumerate.vee
Excel97Graph.vee | Excel97Graph.vee | ExcelGraph.vee
Excel97a.vee | excela.vee | ExcelInsertData.vee
Excel97b.vee | Excel97b.vee | ExcelInsertArrayData.vee
 | Excela UFunction.vee | ExcelUFunction.vee
 | Excel97a UFunction Lib.vee | ExcelUFunctionLib.vee
Excel97Weather.vee | Excel97Weather.vee | ExcelWeather.vee
 | LabVIEW.vee | LabVIEW.vee
Outlook97.vee | Outlook97.vee | OutlookSendMail.vee
Word97.vee | Word97.vee | Word.vee
Word97DataSheet.vee | Word97DataSheet.vee | WordDataSheet.vee
Word97MailMerge.vee | Word97MailMerge.vee | WordMailMerge.vee


Microsoft .NET 예제

예제 파일 이름

설명

참조 Assemblies /Namespaces / Classes

난이도

ComputingHash.vee

VEE 레코드 항목의 해시를 계산하는 방법을 설명하는 프로그램 입니다. VEE 레코드와 해시는 파일에 저장된 후에 다시 판독됩니다. 해시는 파일로부터 추출된 레코드에서 재 계산된 후, 파일에 저장된 해시와 비교됩니다. 이는 파일이 손상되지 않은 내용임을 검증하는 간단한 방법입니다.

Assemblies: mscorlib

Namespaces: System. System.Text, System.Security.Cryptography

Classes: System.Security.Cryptography.SHAManaged, System.Text.Encoding

3

DatabaseReadUsingDataset.vee

메모리 상에서 OleDbConnection, OleDbAdapter 및 몇몇의 데이터베이스 테이블의 사본을 생성하는 Dataset 클래스를 사용하는 방법을 설명하는 프로그램 입니다.

Assemblies: mscorlib, System.Data

Namespaces: System, System.Data, System.Data.OleDb

Types: System.Data.OleDb.OleDbConnection, System.Data.OleDb.OleDbAdapter, System.Data.Dataset

2

DatabaseReadUsingOleDbReader.vee

Access 데이터베이스 파일로부터 정보를 쿼리하기 위한 OleDb 연결, 명령어 및 데이터 Reader 클래스를 사용하는 방법을 설명하는 프로그램 입니다.

Assemblies: mscorlib, System.Data

Namespaces: System, System.Data, System.Data.OleDb

Types: System.Data.OleDb.OleDbConnection, System.Data.OleDb.OleDbCommand, System.Data.OleDb.OleDbDataReader

2

DateTime.vee

NET Framework에 내장된 DateTime 함수(예, 현재의 날짜와 시간, 요일, 년도, 윤년 쿼리 등)를 설명하는 프로그램 입니다.

또한 정적 멤버와 인스턴스 멤버 들이 서로 혼합되고 VEE로부터 어떻게 호출되는지를 보기에 좋은 예제입니다. System 네임스페이스를 사용하여 일부 프로그램 코딩 분량을 줄일 수 있습니다.

Assemblies: mscorlib

Namespaces: System

Classes: System.DateTime, System.DayOfWeek

1

DateTimeConversion.vee

NET의 DateTime과 VEE Time 간의 변환 방법을 설명하는 프로그램입니다. 이와 더불어 asClrType 변환 함수를 사용하는 예제도 설명합니다. .NET의 DateTime 클래스를 사용하여 UTC 시간대를 로컬 시간대로 쉽게 변경할 수 있습니다. 또한, .NET의 모든 객체는 자신의 정보를 정형화된 형태로 출력하는 하나 이상의 ToString 메서드를 가지고 있습니다. 이 예제는 이들 기능을 유용하게 사용하는 방법을 설명하고 있습니다.

Assemblies: mscorlib

Namespaces: System

Classes: System.DateTime

2

DeleteDir.vee

디렉토리의 존재 여부 확인작업, 여러 단계의 서브 디렉토리 를 생성하는 작업, 그리고 이러한 여러 단계의 디렉토리를 순차적으로 삭제하는 내용을 설명합니다. 이 예제는 .NET Framework에서 제공되는 다양한 파일 시스템 관리 함수를 사용하고 구현되었습니다. FileOperations.vee 프로그램에서는 더욱 다양한 함수들을 사용하고 있습니다. System.IO 네임스페이스 하위의 클래스들을 검색하면 개괄적인 내용을 검토할 수 있습니다. 보다 자세한 내용은 MSDN을 참고하십시오.

Assemblies: mscorlib

Namespaces: System.IO

Classes: System.IO.Directory

1

DiskInfo.vee

사용자의 디스크 사이즈와 여유공간을 구하는 방법을 설명합니다. 이 예제는 kernel32.dll과 Win32 API를 호출하는 등의 비교적 어려운 작업을 수행합니다. 이 예제 프로그램과 examples\contrib\Win32\kernel32.vee 프로그램을 비교해 보십시오. 이 예제는 다양한 디스크 정보를 질의하고 있습니다. show_all_diskproperties UserFunction을 관찰하십시오. .NET 컬렉션으로의 접근 및 열거 방법을 설명하는 좋은 예제 입니다.

Assemblies: mscorlib, System.Management

Namespaces: System, System.Management

Classes: System.Management.ManagementObject

3

DrawOnBitmap.vee

원하는 크기와 타입의 비트맵 이미지를 생성하는 방법을 시연하는 프로그램입니다. System.Drawing.Graphics 객체를 사용하면 그림을 그릴 수 있습니다. 생성된 비트맵 이미지가 특정 파일로 저장된 후, VEE의 Picture 오브젝트로 비트맵을 디스플레이 합니다. 이 예제 프로그램은 두 개의 핵심 개념을 포함하고 있습니다. 하나는 System.Drawing.Graphics.FromImage() 메서드를 이용하여 비트맵으로부터 “Graphics” 객체 를 추출하는 것입니다. Bitmap 클래스는 System.Drawing.Image 클래스로부터 파생되므로, 비트맵의 인스턴스는 이 함수로 전달될 수 있습니다. 그래픽 객체를 얻고 나면, 사용자가 원하는 매우 다양한 그림을 그릴 수 있습니다. 다른 하나의 개념은 명시적으로 생성된그림객체를 제거하는 것 입니다.

이 예제에서는 FromImage를 호출하여 Graphics 오브젝트를 생성하고, 비트맵 오브젝트와 폰트 오브젝트가 함께 제거되었습니다. 이 과정을 생략하면 VEE 프로그램은 너무 많은 양의 GDI 자원을 사용하게 되고 결국은 프로그램 성능에 악영향을 미치게 됩니다.

Assemblies: mscorlib, System.Drawing

Namespaces: System.Drawing, System.Drawing.Imaging

Classes: System.Drawing.Bitmap, System.Drawing.Graphics, System.Drawing.Font, System.Drawing.Brushes, System.Drawing.Pens, system.Drawing.Imaging.PixelFormat, System.Drawing.Imaging.ImageFormat

3

Environment.vee

NET Framework를 사용하면 현재 실행되고 있는 디렉토리, 명령어, 컴퓨터 및 사용자 이름 등과 같은 프로그램 환경 정보를 쉽게 얻을 수 있습니다.

VEE에서 정적 멤버를 호출하는 방법을 설명하는 좋은 예제입니다.

Assemblies: mscorlib

Namespaces: System

Classes: System.Environment

1

EnumboundtoSelectionControl.vee

닷넷 열거자가 가진 모든 열거형 값을 제공하는 VEE 드롭다운 등의 컨트롤을 띠우고, 그것들의 값을 재변환하는 방법을 설명합니다.

Assemblies: mscorlib

Namespaces: System

Classes: System.Enum

1

EnumerateEnums.vee

NET 열거형을 이용하는 사례들을 설명합니다. 이 예제는 System.FileAttributes 타입을 가져와서, 이 타입에서 정의된 열거형의 길이 만큼 반복하여, 이들 열거형의 문자 및 숫자 값을 얻을 수 있습니다. 이 예제에서 사용한 EnumNamesAndValues UserFunction은 System.FileAttributes 타입 뿐만 아니라 다른 .NET 열거형에서도 충분히 적용할 수 있도록 하는데 작성되어 있습니다.

Assemblies: mscorlib

Namespaces: System

Classes: System.Enum, System.FileAttributes

3

FileInfo.vee

파일의 속성(예를 들면, 생성시간, 마지막 수정 시간 및 읽기전용인지 아닌지)을 조회하는 방법을 설명합니다. System 또는 System.IO 네임스페이스는 작성한 내용을 파일로 저장하기 위해 임포트 됩니다.

IsFileReadOnly UserFunction은 .NET 열거형에서 비트 연산기능과, System.Convert 클래스를 이용하여 .NET 타입에서 다른 .NET 타입으로 변경 하는 기능을 제공합니다.

Assemblies: mscorlib

Namespaces: System, System.IO

Classes: System.Convert, System.FileInfo, System.FileAttributes

2

FileOperations.vee

VEE 7.5을 사용하여 .NET Framework의 File 과 Direct 클래스를 사용하는 것을 시연합니다. 먼저, 보통 “Document & Settings\사용자 이름” 의 경로를 가지는 특정한 Personal Folder의 디렉토리 정보를 가져옵니다. 이 디렉토리에 서브 디렉토리가 없으면, 서브 디렉토리를 생성합니다. 다시 이 서브 디렉토리에 파일을 생성하고, 이 파일 안에 형식이 있는 텍스트를 입력한 후 최종적으로 이를 읽기 위하여 파일을 엽니다. 또한, 사용자 컴퓨터의 모든 논리 드라이브를 구하는 방법도 시연합니다.

Assemblies: mscorlib

Namespaces: System.IO

Classes: System.IO.Directory, System.IO.File, System.IO.Path, System.IO.StreamWriter

2

GetStockQuote.vee

단지 10 줄의 프로그램을 작성하여 주식 시세를 구하는 방법을 시연합니다. 증권 시세 표시기에 가장 좋아하는 주식을 입력하면 20분 지연된 주식시세를 구하게 됩니다.

이 예제는 .NET Framework를 이용하여 매우 강력한 작업(예를 들어 웹 요청 및 응답, 스트림 읽기, 일반적인 표현을 통한 문자열 매칭 등의)을 할 수 있음을 보여줍니다.

Assemblies: mscorlib, System

Namespaces: System.Net, System.IO, System.Text.RegularExpressions

Classes: System.Net.WebRequest, System.Net.WebResponse, System.IO.Stream, System.IO.StreamReader, System.Text.RegularExpressions.Regex

3

HashTable.vee

NET Framework의 내장 데이터 구조 중 하나를 시연합니다. 해시테이블은 키의 해시코드에 기반하여 키와 값이 짝을 이루도록 조직된 집합입니다. 해시테이블은 배열 보다 더욱 효과적인 검색 알고리즘을 제공합니다. 키가 GetHashCode 및 Equals 메서드를 가지고 있으면, 어떤 종류의 키 이더라도 키 타입에 기반하여 해당 오브젝트를 저장할 수 있습니다.

예제는 키와 값의 쌍을 추가하는 방법, 저장된 항목의 숫자 값을 구하는 방법 및 해시테이블에 키가 존재하는지 알아내는 방법, 그리고, 키에 기반한 검색을 수행하는 방법 등을 제시합니다.

Assemblies: mscorlib

Namespaces: System.Collections

Classes: System.Collections.Hashtable

1

IPAddress.vee

임의의 컴퓨터의 IP주소를 구하는 것을 시연합니다. 또한 이 예제는 배열 메서드 GetValue를 사용하여 .NET 객체 배열에 접근하는 방법을 설명합니다.

Assemblies: mscorlib, System

Namespaces: System.Net

Classes: System.Net.Dns, System.Net.IPHostEntry, System.Environment, System.Array

1

PasswordManagement.vee

사용자 이름 및 비밀번호를 이용한 간단한 로그인 시스템을 시연하는 예제입니다.

Assemblies: mscorlib

Namespaces: System, System.Security.Cryptography

Types: System.Security.Cryptography.SHA1CryptoServiceProvider, System.Convert

2

ProcessInfo.vee

가상 메모리 크기, 총 CPU 시간, 핸들 수, 우선순위, 시작시간, 스레드 수, 스레드 ID, 스레드 상태 및 스레드 우선순위 등의 프로세스 정보를 구하는 내용의 프로그램입니다.

Assemblies: mscorlib, System

Namespaces: System, System.Diagnostics

Classes: System.Diagnostics.Process, System.Threading.Thread

2

Registry.vee

사용자 레지스트리에 접근하기 위한 .NET Framework 클래스의 사용 방법을 시연하는 프로그램입니다. 이러한 기능이 제공되기 이전에는 advapi32.dll 등을 임포트하여 일부 난해한 WIN32 API를 호출하는 등의 어려운 작업을 해야 했습니다. 이 예제 프로그램을 examples\contrib \advapi32.vee 프로그램과 비교해 보십시오.

Assemblies: mscorlib

Namespaces Microsoft.Win32

Classes: Microsoft.Win32.Registry, Microsoft.Win32.RegistryKey

1

SelectFiles.vee

NET Framework에 내장된 일반적인 대화상자 중의 하나의 사용법을 시연하는 예제입니다. 이 예제에서는 윈도우 표준의 파일 열기 대화상자를 표시하는데 OpenFileDialog 클래스가 사용되었습니다. 하지만, 이제는 SaveFileDialog, PrintDialog, ColorDialog, FontDialog 등과 같은 다른 대화상자들도 쉽게 사용할 수 있습니다. VEE의 File Name Selection 대화상자를 사용할 수 도 있으나, .NET의 OpenFileDialogBox를 사용하여 좀더 유연하게 프로그래밍 할 수 있습니다. 예를 들어, 여러 개의 파일을 동시에 선택할 수 있는 기능을 쉽게 구현할 수 있습니다.

Assemblies: System.Windows.Form

Namespaces: System.Windows.Form

Classes: System.Windows.Forms.OpenFileDialog

1

SelectFolder.vee

파일의 선택 없이 폴더를 선택하는 방법을 시연하는 예제입니다.

Assemblies: mscorlilb

Namespaces: System, System.Windows.Forms

Classes: Systems.Windows.Forms.FolderBrowserDialog, System.Environment.SpecialFolder

1

Sendmail.vee

NET Framework를 사용하여 이메일을 전송하는 방법을 설명합니다. 이 예제 프로그램은 lib\SmtpMail.vee 보다 적은 프로그래밍으로 같은 동일한 기능을 수행합니다. .NET을 사용하면 8줄 이하의 구문으로 작성된 VEE 프로그램에서 이메일을 전송할 수 있습니다.

Assemblies: System.Web

Namespaces: System.Web.Mail

Classes: System.Web.Mail.SmtpMail

2

SendMailWithAttachments.vee

NET을 이용하여 이메일에 파일을 첨부하여 전송하는 방법을설명합니다.

Assemblies: System.Web

Namespaces: System.Web.Mail

Classes: System.Web.Mail.SmtpMail

1

SpecialFolders.vee

사용자의 컴퓨터에서 모든 종류의 특정 폴더의 경로를 구하는 방법을 설명하는 예제입니다. 이러한 기능이 제공되기 이전에는 advapi32.dll 등을 임포트하여 일부 난해한 WIN32 API를 호출하는 등의 어려운 작업을 해야 했습니다. 이 예제 프로그램을 examples\contrib \advapi32.vee 프로그램과 비교해 보십시오.

임포트되어 있는 네임스페이스의 종류에 주의하십시오.

Assemblies: mscorlib

Namespaces: System

Classes: System.Environment, System.Environment.SpecialFolder

1

Stack.vee

NET Framework에 내장된 데이터 구조중 하나를 시연하는 프로그램입니다. 스택은 후입선출(LIFO)의 메모리 구조이며, 선입선출(FIFO) 메모리 구조인 큐와 대비되는 개념입니다. 이 예제 프로그램은 스택에 객체를 추가(Push)하고, 제거(Pop)하는 방법을 설명합니다.

Assemblies: mscorlib

Namespaces: System.collections

Classes: System.Collections.Stack

1

StringOperations.vee

NET 메서드를 사용하는 다양한 문자열 연산을 설명하는 프로그램입니다.

Assemblies: mscorlib

Namespaces: System

Classes: System.String

1

StringSplit.vee

임의 개수의 구분문자를 이용하여 문자열을 여러 개로 나누는 방법을 시연하는 프로그램입니다.

.NET의 System.String 클래스에서는 다양 함수들이 제공됩니다. VEE가 .NET String 타입을 VEE Text 타입으로 자동으로 변환합니다. 그러나 .NET에서 제공하는 다양한 기능을 사용하기 위하여 원래의 .NET 오브젝트로 String 타입을 사용해야 하는 경우가 있습니다. 이 예제 프로그램은 VEE의 Text 타입데이터를 .NET의 String 타입으로 변환하는 방법을 설명합니다. 또한 VEE의 Text 배열을 .NET의 System.Char 배열로 변환하는 방법도 설명합니다.

이 프로그램은 새로운 타입 변환 함수인 AsClrType의 사용법을 설명하는 좋은 예제입니다.

Assemblies: mscorlib

Namespaces: System

Classes: System.String, System.Char

2

TextEncodedBInary.vee

NET Framework를 사용하여 이진 데이터를 Base64 텍스트로 인코딩하고, Base64 텍스트로 인코딩된 이진 데이터를 이진 데이터로 복구하는 방법을 설명하는 예제입니다. You can use this technique to send binary data in a text email if you didn't have access to file attachments. 이메일에 파일을 첨부할 수 없는 상황이라면, 텍스트 이메일로 바이너리 데이터를 전송할 수 있습니다.

Assemblies: mscorlib

Namespaces: System

Classes: System.Convert

2

TimeZone.vee

System.TimeZone 객체를 사용하는 방법을 설명하는 예제입니다.

  • 현재 시간의 UTC 옵셋을 구한다.

  • 시간이 하절기 시간인지 확정한다.

  • Daylight Saving Time 주기의 이름을 구한다.

  • 표준 시간 대의 이름을 구한다.

  • Daylight Savings Time의 시작 및 종료 시간을 구한다.

Assemblies: mscorlib

Namespaces: System, System.Globalization

Classes: System.TimeZone, System.Globalization.DaylightTime

1

UsingTemperatureWebService.vee

VEE에서 웹서비스를 이용하는 방법을 설명하는 예제입니다.

Assemblies: TemperatureService

Namespaces:

Classes: TemperatureService

2

UsingTerraServerWebService.vee

VEE에서 웹서비스를 이용하는 방법을 설명하는 예제입니다.

Assemblies: mscorlib, TerraService

Namespaces: System, Agilent.VeeExample

Classes: TerraService, Place, TileId

2

WhichOS.vee

사용자 운영체계의 버전과 플랫폼을 구하는 방법을 설명하는 예제입니다.

예제를 다시 생성하는 과정은 README를 참고하시오.

Assemblies: mscorlib

Namespaces: System

Classes: System.Environment, System.OperatingSystem

1

WriteEventLog.vee

VEE 에러 정보를 Application 이벤트 로그에 기록하고 이 항목들을 로그로부터 읽어내는 System 메뉴의 “Write to Event Log” 오브젝트를 사용하는 방법을 설명하는 예제입니다.

Assemblies: mscorlib, System

Namespaces: System.Diagnostics

Types: System.Diagnostics.EventLog

1

XmlReadingUsingXmlTextReader.vee

System.IO.StringReader를 통하여 XML을 읽어내는 방법을 설명하는 예제입니다.

Assemblies: mscorlib, System.Xml

Namespaces: System, System.IO, System.Xml

Types: System.IO.StringReader, System.Xml.XmlTextReader

2

XmlSearchingUsingXPathNavigator.vee

XPathDocument 의 XML을 읽은 후, XPathNavigator 를 생성하는 방법을 설명하는 예제입니다.

Assemblies: mscorlib, System.Xml,System.Xml.XPath

Namespaces: System, System.IO, System.Xml, System.Xml.XPath

Types: System.IO.StringReader, System.Xml.XPath.XPathDocument, System.Xml.XPath.XPathNavigator, System.Xml.XPath.XPathNodeIterator

2

*난이도는 1부터 3을 이용하여 표시 하였습니다. 난이도 1이 가장 쉬운 내용이며 .NET과 VEE 프로그램 경험을 그다지 필요로 하지 않습니다.


.NET 컨트롤 예제

예제 프로그램 명 | 설명 | 참조 어셈블리/네임스페이스/클래스
Button.vee | 윈도우 폼의 Button을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: Button
CheckBox.vee | 윈도우 폼의 GroupBox 및 CheckBox를 사용하는 예제입니다. 컨트롤을 사용하여 다른 컨트롤을 합성하는 예제도 제공됩니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: GroupBox 및 CheckBox
CheckListBox.vee | 윈도우 폼의 CheckedListBox 와 Label을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: CheckedListBox 및 Label
ComboBox.vee | 윈도우 폼의 ComboBox 와 Label을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: ComboBox 및 Label
ContainerControl.vee | 윈도우 폼의 DataGrid와 ContainerControl을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: DataGrid 및 ContainerControl
CustomCounter.vee | 사용자 컨트롤을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms
CustomFolderTreeView.vee | 사용자 컨트롤을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms
CustomGrid.vee | 사용자 컨트롤을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms
CustomProgressBarImage.vee | 사용자 컨트롤을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms
DataGrid.vee | 윈도우 폼의 DataGrid와 ContainerControl을 사용하는 예제입니다. | Assembly: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: DataGrid 및 ContainerControl
DateTimePicker.vee | 윈도우 폼의 DateTimePicker 와 Label을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: DataTimePicker 및 Label
DomainUpDown.vee | 윈도우 폼의 DomainUpDown 을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: DomainUpDown
GroupBox.vee | 윈도우 폼의 GroupBox 와 RadioButton을 사용하는 예제입니다. 컨트롤을 사용하여 다른 컨트롤을 합성하는 방법도 설명합니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: GroupBox 및 RadioButton
GroupRadioAndCheckbox.vee | 윈도우 폼의 GroupBox, CheckBox 및 RadioButton을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 및 System.Drawing Namespaces: System.Windows.Forms 및 System.Drawing 타입: CheckBox, GroupBox, RadioButton 및 Point
HScrollBar.vee | 윈도우 폼의 HScrollBar, VScrollBar및 Label을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: HScrollBar,
LinkLabel.vee | 윈도우 폼의 LinkLabel을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: LinkLabel
ListBox.vee | 윈도우 폼의 ListBox 와 Label을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: ListBox 및 Label
ListView.vee | 윈도우 폼의 ListView을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: ListView
MonthCalendar.vee | 윈도우 폼의 MonthCalendar을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: MonthCalendar
NumericUpDown.vee | 윈도우 폼의 NumericUpDown을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: NumericUpDown
Panel.vee | 윈도우 폼의 Panel을 사용하는 예제입니다. 컨트롤을 사용하여 다른 컨트롤을 합성하는 방법도 설명합니다. | System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: Panel 및 CheckBox
PictureBox.vee | 윈도우 폼의 PictureBox을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: PictureBox
ProgressBar.vee | 윈도우 폼의 ProgressBar을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: ProgressBar
RadioButton.vee | 윈도우 폼의 GroupBox 와 RadioButton을 사용하는 예제입니다. 컨트롤을 사용하여 다른 컨트롤을 합성하는 방법도 설명합니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: GroupBox 및 RadioButton
RichTextBox.vee | 윈도우 폼의 RichTextBox을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: RichTextBox
Splitter.vee | 윈도우 폼의 Splitter, Panel, TreeView및 ListView을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: Splitter, Panel, TreeView 및ListView
StatusBar.vee | 윈도우 폼의 StatusBar을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: StatusBar
TabControl.vee | 윈도우 폼의 Tab Control을 사용하는 예제입니다. 컨트롤을 사용하여 다른 컨트롤을 합성하는 방법도 설명합니다. 여기서 사용한 TabPages 는 Button, CheckBoxes, 및 RadioButtons 을 포함합니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: TabControl, TabPage, Button, RadioButton 및CheckBox
TabPage.vee | 윈도우 폼의 Tab Control을 사용하는 예제입니다. 컨트롤을 사용하여 다른 컨트롤을 합성하는 방법도 설명합니다. 여기서 사용한 TabPages 는 Button, CheckBoxes, 및 RadioButtons 을 포함합니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: TabControl, TabPage, Button, RadioButton 및CheckBox
TextBox.vee | 윈도우 폼의 TextBox을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: TextBox
TrackBar.vee | 윈도우 폼의 Tab Label 과 TrackBar를 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: Label 및 TrackBar
TreeView.vee | 윈도우 폼의 TreeView 과 Label을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms
VScrollBar.vee | 윈도우 폼의 HScrollBar, VScrollBar및 Label을 사용하는 예제입니다. | 어셈블리: System.Windows.Forms 네임스페이스: System.Windows.Forms 타입: HScrollBar, VScrollBar 및Label


ActiveX 컨트롤
examples\ActiveXControls

프로그램이 정상적으로 실행되기 위해서는 여기서 설명하는 ActiveX 컨트롤이 컴퓨터에 설치되어 있어야 합니다.

1. ActiveMovie 컨트롤

2. Microsoft Common Dialog 컨트롤

3. ListView 컨트롤

4. ProgressBar 컨트롤

5. Microsoft RichTextBox 컨트롤

또한, VEE는 마이크로소프트 오피스 2000 또는 이상의 버전에 대해서 ActiveX 오토메이션을 지원합니다.

ActiveX 컨트롤 예제
 | 예제 파일 | 설명
1 | ActiveMovie.vee | 영화파일을 디스플레이하기 위해서 ActiveMovie 컨트롤을 사용하는 방법을 설명합니다.
2 | CommonDialog.vee | Common Dialog ActiveX 컨트롤에서 구현된 여러 가지 윈도우 대화상자를 사용하는 방법을 설명합니다.
3 | ListView.vee | comctl32.ocx 에서 제공되는 ListView 를 사용하는 방법을 설명합니다.
4 | ProgressBar.vee | comctl32.ocx.에서 제공되는 ProgressBar 컨트롤을 사용하는 방법을 설명합니다.
5 | RichTextBox.vee | VEE 프로그램 배포시 RTF 파일을 별도 배포할 필요가 없도록, RichTextBox 컨트롤에 RTF 텍스트를 입력하고, 그 텍스트를 VEE 프로그램에 저장하는 방법을 설명합니다.

관련정보

ActiveX 참조 종료


분석
examples\Analysis

분석 예제
예제 파일 | Description
AnalogFilter.vee | 필터의 전달 함수를 화면에 표시하는 법 및 iterators보다 더 많은 어레이 수를 사용하는 법을 설명합니다.
curvefit.vee | 적당한 곡선을 표시하는 다양한 곡선 표시법을 설명합니다.
magDist.vee | 데이터 포인트의 분포를 나타내는 히스토그램을 생성하는 함수 magDist()를 설명합니다.
mixer.vee | 다음을 설명합니다. 가상의 소오스를 이용하여 신호를 발생시킵니다. 복잡한 데이터 구조로부터 정보를 얻습니다.
psk.vee | 자유로운 방법으로 message encoding/decoding 표를 채우는 많은 오브젝트들의 사용법을 설명합니다.
ReadMarkerValues.vee | XY 그래프 좌표 위에 마커를 설정하고 설정된 마커 값을 읽어오는 한 쌍의 UserFunctions을 설명합니다.
setmap.vee | Data [image] UnBuild Data [image] Spectrum, PComplex 및 Data [image] Access Array [image] Set Mappings objects를 사용하여 스펙트럼 데이터 종류로부터 의미있는 정보를 가져오는 가져오는 법을 설명합니다.
traj1.vee | 곡선을 계산하는 프로그램의 디테일뷰와 패널뷰의 차이점을 설명합니다.
traj2.vee | UserObjects가 실행할 때 출력되는 데이터를 화면에 표시하는 Show Panel을 설명합니다.
xfftfunc.vee | ScaleFFT UserFunction을 사용하여 waveform 오브젝트 위에 FFT를 실행합니다.


전자분야 어플리케이션
examples\Applications

전자분야 어플리케이션 예제
예제 파일 | 설명
digfilt.vee | 이 프로그램의 내용은 다음과 같습니다. 시간-축 웨이브폼을 빌드하거나 언빌드합니다. 3차원 elliptical 디지털 필터를 구성합니다. 시간 도메인 데이터를 주파수 도메인 데이터로 자동변환 합니다.
telecomm.vee | 먼저 저장된 웨이브폼 데이터를 사용하여 DS1 펄스 템플릿 테스트를 모의 실험합니다. DS1 테스트 실험장치로부터 펄스 형태를 관찰하는 것은 통신분야에서 일반적인 측정항목 입니다. 이 프로그램은 측정된 DS1 펄스가 웨이브폼 템플릿에 매칭하는 것을 자동화하는 예제를 소개합니다.
lissajou.vee | X vs Y Plot 오브젝트에 두 개의 웨이브폼을 제공하여 리사주 패턴을 생성하는 방법을 설명합니다.
pid.vee | 폐 루프 프로세스 컨트롤러에 대한 간단한 비례 미적분 컨트롤러(PID)를 설명합니다.


Dynamic I/O 설정
examples\InstrumentIO

Dynamic I/O 설정 예제
예제 파일 | 설명
DynamicFindDMM.vee | 시스템의 첫 번째 디지털 멀티미터나 모든 DMM을 찾습니다.
DynamicFindInstruments.vee | 시스템의 모든 GPIB및 VXI 계측기를 찾고, 계측기의 모델이름 및 버스주소를 출력합니다. 계측기는 IEEE 488.2 호환기종이어야 하며 명령어 "IDN?"을 인식할 수 있어야 합니다.
DynamicFindInterfaces.vee | 컴퓨터에서 제공하는 모든 계측기 인터페이스의 종류 및 논리적인 단위 수를 보고합니다.
DynamicFindRemoteInstruments.vee | 지정한 원격 호스트에서 사용 가능한 모든 계측기를 찾습니다. 이 기능을 사용하기 위해서는 원격 컴퓨터에 Agilent VEE가 설치 되어 있어야만 합니다.
PreRunDeviceCheck.vee | VEE의 초기 실행 단계에서 사용할 수 있는 계측기 설정확인 기능을 소개합니다.


엑셀 라이브러리
examples\ExcelLibrary

Excel Library 예제
예제 프로그램 명 | 설명
AddComment.vee | 셀에 주석을 입력하는 방법을 설명합니다.
AlphaColAndNumericCol.vee | 1부터 256 까지의 입력 숫자에 해당하는 컬럼의 이름을 연산합니다.
BarChart.vee | 마이크로소프트 엑셀에서 Bar 챠트를 생성합니다.
ColoredLimits.vee | 임계값에 따라서 텍스트 색깔을 변경하는 방법을 설명합니다.
CreateVbaMacro.vee | 간단한 VBA 마크로를 생성하여 실행합니다.
DataFromCells.vee | 워크북파일을 선택하여, 지정한 범위에서 데이터를 읽어서 출력합니다.
DataToCells2D.vee | 2 차원 데이터를 엑셀에 전송합니다.
DataToCells3D.vee | 3 차원 데이터를 엑셀에 전송합니다. 여러 개의 시트에 데이터를 작성합니다.
EnumerateCharts.vee | 워크북에 챠트 이름을 표시합니다. 주의: 워크시트에 생성된 챠트이름은 가져오지 않으며, 챠트타입으로 생성된 시트의 이름을 가져옵니다.
EnumerateNames.vee | 워크시트에 범위의 이름을 표시합니다.
EnumerateSheets.vee | 지정된 워크북에 포함되어 있는 워크시트의 이름을 표시합니다.
EvaluateCellFormula.vee | 하나의 셀에 대한 연산 값을 가져옵니다.
ExcelVisibleOnTop.vee | 엑셀을 보이도록 설정했을 때, 항상 다른 어플리케이션 보다 앞에 표시되도록 합니다.
FindFirstEmptyRow.vee | 지정된 범위의 열에서 첫 번째 빈 열을 찾습니다.
FormatCell.vee | 셀에 서로 다른 포맷을 지정하는 예제입니다.
FormatCellsAllColors.vee | 셀의 배경 색깔이 텍스트 형태로 엑셀로 전송되고 각 셀은 그 배경 색깔로 포맷됩니다.
FormatText.vee | 데이터 전체 범위에 대한 폰트를 설정합니다.
FormatTextAllColors.vee | 셀의 모든 텍스트를 지정된 fore color로 변경합니다.
IterateColumns.vee | 데이터를 전송하기 위해서 여러 개의 행을 순환하고 같은 순서로 데이터를 가져옵니다.
IterateRows.vee | 데이터를 전송하기 위해서 여러 개의 열을 순환하고 같은 순서로 데이터를 가져옵니다.
LineChart1D.vee | 엑셀에서 1 차원 라인 챠트를 생성합니다.
LineChart2D.vee | 엑셀에 2차원 라인챠트를 생성합니다.
LineChart2DLogarithmic.vee | 엑셀에 2 차원 로그 라인챠트를 생성합니다.
Macro.vee | 엑셀 워크북에서 기존 마크로를 실행하는 예제입니다.
MergeCells.vee | 엑셀에서 여러 개의 셀을 통합하는 예제입니다.
MultipleWorkbooks.vee | 여러 개의 워크북에 2차원 어레이를 전송합니다.
NavigateCells.vee | 셀의 상대주소와 절대주소를 연산합니다.
NumericRowColFromCell.vee | 셀의 주소를 열과 행의 숫자로 연산합니다.
OpenSaveAs.vee | 워크북을 읽기 전용으로 열어서 새로운 이름으로 저장합니다.
PanelImage.vee | VEE 그래프를 엑셀 보고서에 포함하는 방법을 설명합니다.
PieChart.vee | 엑셀에서 파이챠트를 생성합니다.
Print.vee | 엑셀 워크북 파일을 프린트합니다.
PrintPreview.vee | 워크북을 인쇄 미리보기 모드로 표시합니다.
ReUsingCharts.vee | 사용자 고유 챠트를 생성하기 위한 엑셀의 챠트 기능을 사용하는 방법과 엑셀 라이브러리의 데이터 관리 기능을 설명합니다.
SaveAsHTML.vee | 설정을 변경하여 HTML파일로 저장합니다. DisplayAlerts 설정을 False로 설정하여 경고창 없이 SaveAs 메뉴를 여러 번 사용합니다
SearchArray.vee | 1 차원 또는 2 차원 어레리를 검색합니다.
SelectWorkbookAndEnumerations.vee | OpenWorkbook, SelectWorkbook 및 Enumerate workbooks 오브젝트를 사용하는 방법을 설명합니다.
SendColumnByColumn.vee | 엑셀의 행마다 데이터를 전송합니다.
SendComplexData.vee | 수직지향 Cartesian Complex 어레이 형태로 복소수를 전송하는 방법을 설명합니다.
SendCoordData.vee | 수직지향 좌표를 생성합니다.
SendPComplexData.vee | 수직지향 Polar Complex 숫자를 생성합니다.
SendRecordData.vee | 레코드 어레이의 필드 이름과 일치하는 첫번째 워크시트 범위를 가진 워크북에 레코드 어레이를 전송합니다.
SendSpectrumData.vee | 주파수 및 Stop 주파수를 가진 스펙트럼 데이터 타입을 언빌드하는 방법을 설명하고, 이 데이터를 엑셀에 전송합니다.
SendWaveformData.vee | TimeSpan과 Data를 가진 웨이브폼 데이터를 언빌드하는 방법을 설명하고 엑셀로 전송합니다.
SettingABorderOnARange.vee | 다른 범위에 포함된 특정 셀의 범위의 경계를 설정합니다.
StringReplace.vee | 주어진 스트링의 일부 내용을 변경합니다 대소문자를 구별합니다.
XYChart.vee | 엑셀에서 XY 챠트를 생성합니다.

관련정보

ActiveX 참조 종료


회계관련 어플리케이션
examples\Applications

회계관련 예제
예제 파일 | 설명
simp_npv.vee | 소득 충당금이 없는 순현재가치(NPV) 모델을 사용하는 회계 연산을 설명합니다.
payback.vee | 소득 충당금이 없는 순현재가치(NPV) “종결된 회수기간” 모델을 사용하는 회계 연산을 설명합니다.
futValue.vee | VEE의 회계연산 기능을 설명하고, 그래프를 통하여 원금에 대한 미래 성장가치를 표시합니다.


게임
examples\Games

다양한 VEE 프로그래밍 기술을 설명하는 예제입니다.

게임 예제

예제 파일

Battleship

BlackJack

Euchre

MineSweeper

Movies

Race

Reversi

Slots

Solitaire

StraVEEgo

Wheel


nstrument Manager 관련 예제

Instrument Manager 관련 예제
examples\InstrumentIO\InstrManagerIntegrated

Instrument Measurement 예제
예제 파일 | 설명
Ag33220A_IVI-COM.vee | IVI-COM 드라이버를 사용하여 지정된 시그날을 33220A LXI 계측기로 다운로드 하고 출력합니다.
Ag34410a_LXI.vee | LAN을 통하여 Agilent 34410A 디지털 멀티미터(DMM)에서 측정값을 가져옵니다.
Ag344xxa.vee | 다음의 Agilent Digital Multimeters (DMM) 중에서 하나를 사용하여 측정값을 가져옵니다: 34401A, 34405A, 34410A, 또는 34411A.
Ag344xxa_Excel.vee | 다음의 Agilent Digital Multimeters (DMM) 중에서 하나를 사용하여 5개의 측정값을 가져옵니다: 34401A, 34405A, 34410A, or 34411A. 가져온 데이터는 프로그램상으로 엑셀로 전송됩니다.
Ag34980A_IVI-COM.vee | 34980A에서 설정값과 일부 데이터를 가져옵니다.
AgDSO3000.vee | DSO3000 패밀리 스코프와 VEE Pro의 Direct IO 기능을 사용하여 파형 파라미터를 측정합니다.
AgDSO603xMSO603x.vee | Agilent 6000-시리즈 DSO 또는 MSO에서 아날로그 데이터를 가져와서, VEE 데이터 디스플레이 오브젝트에 데이터를 디스플레이합니다.
AgDSO603xMSO603x_MATLAB1.vee | 아날로그 채널 1과 2사이의 상호 연관성을 연산하고 결과를 출력하기 위하여 VEE의 임베디드 MATLAB 함수를 사용합니다.
AgDSO603xMSO603x_MATLAB2.vee | MATLAB의 exp(), abs() 함수 및 plot 함수를 사용합니다.
AgDSO603xMSO603x_MATLAB3.vee | VEE의 임베디드 MATLAB 함수를 사용하여 Butterworth 필터를 통하여 아날로그 채널 1을 필터링하고 연산 결과를 디스플레이합니다.
AgE4980a_directIO.vee | E4980A LCR미터를 사용하여 Capacitance 와 Dissipation Factor를 측정합니다.
AgN1996a.vee | Agilent CSA스펙트럼 아날라이져에서 측정값을 가져옵니다.
AgN19XXA.vee | N19XXA 파워 미터를 설정하고 컨트롤하며, 데이터를 계측기에서 PC로 전송합니다
AgN57xx_directIO.vee | Direct IO를 사용하여 N5700B 모듈러 파워 서플라이에서 출력을 설정하고 데이터를 가져옵니다.
AgN57xx_IVI_COM.vee | VEE 8.0에서 IVI-COM 드라이버의 사용을 데모로 보여줍니다.
AgN67xx_IVI_COM.vee | N6700B 모듈러 파워 서플라이에서 출력을 설정하고 데이터를 가져오기 위해 VEE 와 IVI COM 드라이버를 사용합니다.
Ag87xxEx.vee | 87XXET/ES 에서 측정결과를 가져옵니다.
Ag87xx-VNA.vee | VNA에 여러 개의 트레이스를 생성하고, 스윕, 다운로드 및 데이터를 표시합니다.
Ag332x0a1.vee | 미리 정의한 신호를 신호발생기로 다운로드하고, 신호발생기에서 이 신호를 출력합니다.
Ag332x0a2.vee | 신호발생기에서 AM 변조된 신호를 발생합니다.
Ag661xc-Ag663xb.vee | 출력을 설정하고, 출력상태를 읽으며, 출력파워를 연산합니다.
Ag681x.vee | Inrush Current를 측정합니다.
Ag811xx-AgE831x.vee | pulse, pattern 또는 burst 모드를 설정합니다.
Ag5313xa1.vee | 채널1 의 주파수를 측정하고 데이터를 읽습니다.
Ag 5313xa2.vee | 채널1 의 주파수를 측정하고 데이터를 로깅합니다.
Ag34970a.vee | 프레임의 카드를 식별하고 데이터를 그립니다.
AgE36xx.vee | 전압 스윕을 설정하고, 전류를 기록하여 엑셀 파일을 저장합니다.
AgE44xx.vee | 중심주파수와 스팬을 설정하고, 트레이스를 디스플레이하고, 엑셀파일에 저장합니다.
AgE44xxCdma2000.vee | CDMA2000 대역을 측정하여 엑셀에 저장합니다.
AgE50xxx-ENA1.vee | ENA에 여러 개의 트레이스를 설정하여, 스윕, 다운로드 및 데이터를 디스플레이합니다.
AgE50xxx-ENA2.vee | ECal 모듈을 사용하여 2-포트 S-파라미터를 설정하고 캘리브레이션합니다.
AgE82xx.vee | ECal 모듈을 사용하여 2-포트 S-파라미터를 설정하고 캘리브레이션합니다.
AgE83xxx-AgN52xxx-AgE880xx-Agn338xx-PNA1.vee | PNA에 여러 개의 트레이스를 설정하여, 스윕, 다운로드 및 데이터를 디스플레이합니다.
AgE83xxx-AgN52xxx-AgE880xx-Agn338xx-PNA2.vee | ECal 모듈을 사용하여 2-포트 S-파라미터를 설정하고 캘리브레이션합니다.
AgE443xb.vee | 주파수 스윕을 실행하고, 스윕 완료시 SRQ를 생성
AgE443xb_Excel.vee | 주파수 스윕을 실행하고, 스윕 완료시 SRQ를 생성 및 엑셀에 저장
AgE4438c-AgE8267x.vee | 임의파형 발생기에 파형을 다운로드
AgE4438c-Ag8267x_Excel.vee | 임의파형 발생기에 파형을 다운로드 및 엑셀에 저장
AgInfiniiumScopeAdvanced1.vee | MATLAB cross-correlation 디스플레이
AgInfiniiumScopeAdvanced2.vee | Butterworth 필터를 디스플레이
AgInfiniiumScopeAnalog.vee | 아나로그 파형과 파라미터를 디스플레이
AgInfiniiumScopeDigital.vee | 디지털 웨이브폼과 파라미터를 디스플레이
AgN33xxa.vee | Load 모듈의 입력을 설정, 입력 조건을 측정, 채널1의 데이터를 스트립 챠트에 표시
AgN4901b.vee | Auto align 및 BER 읽기
AgN6700b.vee | 출력설정, 출력조건 측정 및 출력을 스트립챠트에 표시
Hp33120a.vee | 파형의 형태, 피크 진폭 및 주파수 설정
Hp34401a.vee | 34401A에서 데이터를 읽음
Hp34401a_Excel.vee | 34401A 에서 데이터를 읽어서 엑셀에 저장l


계측기 측정
examples\InstrumentIO

계측기 측정 예제
예제 파일 | 설명
4195imp.vee | 칩 컴포넌트의 임피던스 특성을 측정합니다.
4195net.vee | 밴드패스 필터의 전송 주파수 응답을 측정합니다.
4195s11.vee | DUT의 반환 손실(Return Loss)을 측정합니다.
4195s12.vee | 피시험 장치의 역전송계수를 측정합니다.
4195s21.vee | 피시험 장치의 순전송계수를 측정합니다.
4195s22.vee | 피시험 장치의 역반사계수를 측정합니다.
4195spec.vee | 아래 주파수 신호의 고조파 왜곡을 학습합니다. Sweep Start frequency: 5 MHz Sweep Stop frequency: 105 MHz R1 input attenuation: 40 dB S1 source amplitude: -15 dB
4338_ext.vee | HP4338A 외부 트리거를 제어하는 방법과. SRQ와 SPOLL을 실행하기 위해서 계측기 드라이버 시퀀스 출력을 사용하는 방법을 설명합니다. 또한 HP 4338A 콤포넌트 드라이버로부터 측정결과를 읽어서 로깅합니다.
8720cal.vee | HP8720C의 캘리브레이션 데이터를 파일에 저장하고, 향후 이 저장된 데이터를 어떻게 다시 읽어서 계측기에 캘리브레이션 데이터를 적용하는 방법을 설명합니다.
8720lims.vee | HP8720C를 사용하여 리미트 세그먼트를 편집하고, 피시험장치의 측정 특성에 대한 리미트 라인 테스트를 실행합니다.
8720smp1.vee | 선형위상으로부터 편차를 분석할 수 있도록, 위상을 측정합니다.
8720smp2.vee | HP 8720C를 사용하여 위상을 측정하며, 위상값은 선택된 자극주파수에 대해서 검출합니다. 두 번째 단계에서는 Z(전송 특성) 측정이 완료됩니다.
8753lims.vee | HP8753C를 사용하여 리미트 세그먼트 편집사례를 보이고, 피시험장치의 측정 특성에 대한 리미트 라인 테스트를 실행합니다.
BpTr_STR.vee | 바이폴라 트랜지스터의 스트레스 측정 예제를 제공합니다.
DIOFreq.vee | Direct I/o 오브젝트를 사용하여 HP3478멀티미터의 주파수 응답을 찾습니다. HP3325B 펑션제너레이터와 HP3478 멀티미터가 필요합니다.
enum_id.vee | 내부 상태를 선택하는 숫자를 사용하는 ID 장치에 대한 입력을 발생시키는 Selection Control 오브젝트(Enum)의 사용법을 보여줍니다.
hpe1326.vee | HP E1326으로부터 데이터를 읽고, 이 데이터를 파일에 Upload 합니다.
hpe1413.vee | 파일에 HP E1413 데이터를 업로드하고 데이터를 디스플레이 합니다.
hpe1488a.vee | HP E1431A에서 데이터를 읽어, HP E1488A까지 로컬버스로 전송한 후, GPIB로부터 데이터를 읽어 Waveform 오브젝트에 디스플레이 합니다.
hpe1562.vee | HP E1413에서 데이터를 읽고, VME 백플레인을 통해서 HP E1413 FIFO 에서 HP E1562로 전송합니다. 이후 HP E1562에서 데이터를 읽어서, 로컬 버스를 통하여 HP E1488A로 전송됩니다.
gpibtest.vee | 계측기와 사용하여 간단한 GPIB통신을 수행하는 유틸리티입니다.
IC_IB_VB.vee | IC>1mA 및 IC<4mA 에 해당하는 hFE값을 디스플레이합니다. 이 프로그램은 트랜지스터 특성 및 hFE 연산에 관한 좋은 예제입니다.
IC_VCE.vee | 바이폴라 트랜지스터의 IC 대 VCE 특성 측정 예제입니다.
ID_VDS1.vee | MOSFET의 ID-VGS 측정 예제입니다. 또한 Vth@ID=10mA와 Vth@MAX(Gm)에 대한 정보를 제공합니다.
ID_VDS2.vee | MOSFET의 ID vs VGS의 예제입니다.
IDfreq.vee | HP Instrument Drivers(HP-ID)를 사용하여 HP 3478 멀티미터의 주파수 응답을 찾습니다. HP 3325B 펑션 제너레이터와 HP 3478 멀티미터가 필요합니다.
cap4291.vee | 다음 항목을 측정하기 위해서 사용할 수 있습니다. 임피던스의 주파수 특성 캐패시턴스의 OSC레벨 특성과 소실 인자 캐패시턴스의 주파수 특성과 소실 인자 캐패시턴스의 DC 바이어스 전압 특성과 소실 인자
imp4291.vee | 1000KHz에서 1800MHz까지 주파수를 스윕하면서 레지스턴스 및 레지스턴스를 측정합니다.
instr.vee | VEE 에서 계측기를 프로그래밍하는 3 가지 방법을 설명합니다.
k2000.vee | 키슬리 2000 디지털 멀티미터의 동작을 시험합니다.
k2000_dc.vee | 키슬리 2000 전압계를 사용한 예제입니다. 직류 100V를 읽고 XY Trace상에서 표시합니다.
k2001.vee | 키슬리 2001 디지털 멀티미터의 동작을 시험합니다.
k2001_dc.vee | .01 NPLC Aperture를 사용하여 DC 데이터를 읽도록 키슬리 2001을 설정합니다. 100번 데이터를 읽고, 그 평균을 냅니다. 데이터 및 평균을 그래프에 표시합니다.
logger1.vee | 간단한 다중채널 데이터 로거를 어떻게 구성하는 지 보여줍니다.
logger2.vee | 파일에 측정 데이터를 저장하는 데이터 로거에 대해서 설명합니다.
loss4291.vee | 상대 유전율의 주파수 측정에 사용할 수 있습니다. 채널1은 유전율의 실수값(Er')을 채널 2는 손실 탄젠트(tan delta)를 측정합니다.
perm1_91.vee | 채널1은 투과성(permeability)의 실수값 측정하고, 채널2는 투과성 손실 인자를 측정하는 HP 4291A용 프로그램입니다.
perm2_91.vee | 다음 항목을 측정하기 위해서 사용할 수 있습니다. 상대적인 투과성의 주파수 특성 상대적인 투과성의 OSC 레벨 특성 상대적인 투과성의 DC 바이어스 전류 특성
prmtty_91.vee | 채널1은 유전율(permittivity)의 실수값을 측정하고, 채널2는 유전율 손실 인자를 측정하는 HP 4291A용 프로그램입니다.
rd126014.vee | Racal Dana 1260-14의 포트1에 “데이터 버퍼”의 데이터를 적고, 포트0으로부터 그것을 읽습니다.
scopeMask.vee | HP 54502 또는 HP 54504 오실로스코프의 파형 메모리 안에 있는 DS1 마스크를 디스플레이 합니다. 이는 스코프의 파형 메모리 안에서 마스크를 생성하는 개념을 설명합니다. DS1 마스크처럼 보이지만, 이 마스크로부터의 데이터는 표준에 적합하지는 않습니다.
smallsig.vee | 작은 신호 게인을 측정합니다. 이 프로그램은 선형으로 동작하는 범위에서 증폭기와 등의 능동소자의 특성을 연구하는 데 유용합니다. 캘리브레이션은 이 프로그램에 포함되어 있지 않습니다.
Vdownld.vee | VXI Command 모듈로 드라이버들을 다운로드 합니다.


IVI Driver 예제

AgilentPowerMeterAverages_VEE7.vee

AgilentPowerMeterCalAndZero_VEE7.vee

AgilentSA_VEE7.vee

AgilentSA.vee

Agilent33220.vee


제조관련 어플리케이션
examples\Applications

제조용 테스트시스템 예제

예제 파일

설명

mfgtest.vee

제조용 테스트 시스템을 만들기 위해 사용할 수 있는 유용한 VEE의 기능을 소개합니다. 몇개의 VEE 기능은 다음과 같습니다:

대화상자:
이 예제에서는 몇개의 다른 타입의 대화상자를 사용하였습니다. “로그인” 기능은 비중이 크게 사용됩니다. 이 오브젝트는 메뉴 Data [image] Dialog Box에서 제공합니다.

키보드를 이용한 제어:
대화상자에서 탭키, 스페이스 바, 엔터키를 사용하여 이 예제 프로그램을 컨트롤 할 수 있습니다. 커스텀 대화상자에서는 기능키를 눌러 네비게이션 할 수 있습니다.

Indicators:
테스트를 수행할 때 합격(pass) 또는 불합격(fail)을 표시하기 위해 Color Alarm 또는 Thermometer 같은 디스플레이 오브젝트를 사용합니다. 이 오브젝트는 메뉴 Display [image] Indicator에서 제공합니다.

Picture오브젝트:
이 오브젝트는 크기를 조정할 수 있는 오브젝트에서 그래픽을 디스플레이 할 수 있도록 합니다. 테스트 구성도를 디스플레이 하기 위해 이 오브젝트를 사용하였습니다. GIF(Graphics Interchange Format), BMP(Bitmap), 와 XWD(X Window Dump) 포맷을 사용할 수 있습니다. 이 오브젝트는 Display 메뉴 아래에서 제공합니다.

Sequencer 상태 패널:
프로그램상으로 디스플레이하고 숨길 수 있는 패널뷰를 제공합니다. Sequencer가 실행할 때 다이나믹 테스트 뷰를 제공하기 위해 이 패널을 사용하였습니다.

Sequencer:
Sequence는 실행하기 위한 테스트 이름 어레이를 가지는 ExecTrans이라는 이름의 데이터핀을 가지고 있습니다. 리스트 박스(Dialog Box 오브젝트 중의 하나)를 사용하면, 사용자에게 프로그램에서 Sequencer가 실행해야 하는 테스트를 선택할 수 있도록 합니다.


MATLAB Script
examples\MATLAB

MATLAB Script 예제
예제 파일 | 설명
BasicGraphManipulation.vee | 그래프 처리 프로그램
FindMaximums.vee | 그래프 피크를 찾고 하이라이트하는 방법을 설명합니다.
Interpolation.vee | MATLAB Interpl 1D 데이터 인터폴레이션 함수를 설명합니다.
Logo3DPlot.vee | 그림자를 가진 3 차원 표면 그래프를 생성합니다.
MultiGraphFigure.vee | 서브플롯을 생성하고 표시하는 방법을 설명합니다.
MultiTraceGraph.vee | 여러 개의 트레이스를 색깔로 구분하여 그래프를 표시하는 방법을 설명합니다.
Plot2DArray.vee | VEE에서 제공하는 2차원 어레이 데이터를 그리는 방법을 설명합니다.
SignalProcessing.vee | MATLAB 의 시그날 프로세싱 관련 확장기능을 소개합니다.
Surf3DPlot.vee | 3 차원 표면 그래프를 생성하고 회전하는 방법을 설명합니다.


기계관련 어플리케이션
examples\Applications

기계관련 어플리케이션 예제
예제 파일 | 설명
beam.vee | 캔틸레버 빔 편향 문제를 해결하기 위해서 VEE를 사용하는 방법을 설명합니다. 이 예제에서는 일정한 부하상태(uniform), 부하가 증가하는 상태(ramp), 이들이 복합한 상태에서 빔의 편향을 XY Trace에 그래프로 표시합니다.
chaos.vee | 간단한 인구 모델의 정상상태(steady-state) 값을 표시합니다.
coilspr.vee | 여러 개의 변수를 사용하여 코일스프링에 대한 자연주파수를 연산하는 방법을 설명합니다.
convcoef.vee | 여러 가지 물체나 표면타입에 대해서 열전달계수 ”h”를 연산하는 자연대류 열전달 해석을 위한 수치모델 (Natural Convection Heat Transfer Model)에 VEE를 사용하는 방법을 설명합니다.
fluidflw.vee | 간단한 기계공학 문제를 설정하고 해결하는 것을 설명합니다. 데이터를 입력하고 디스플레이하며, 표현식을 연산하기 위해서 어레이와 전역변수를 사용하는 방법도 설명합니다.
torsion1.vee | 간단한 기계공학 문제를 해결하는 것을 설명합니다. 간단히 데이터를 입력하고 디스플레이하며, 표현식을 연산에 사용하는 방법을 설명합니다. 이 예제에서는, 반경, 길이, 토크 및 물질 전단 탄성계수 값을 이용한 원형비틀림 축의 각도 편향을 연산하기 위해서 간단한 표현식을 사용합니다.
torsion2.vee | 간단한 기계공학 문제를 설정하고 해결하는 것을 설명합니다. 다양한 데이터를 입력하고 디스플레이하는 방법과 연산에 표현식을 사용하는 방법을 설명합니다. 이 예제에서는, 반경, 길이, 토크 및 물질 전단 탄성계수 값을 이용한 원형비틀림 축의 각도 편향을 연산하기 위해서 간단한 표현식을 사용합니다.


Microsoft Access
examples\ActiveXAutomation

프로그램을 실행하기 전, 어플리케이션 및 이 문서에 참조된 어플리케이션과 관련된 ActiveX automation 타입 라이브러리가 컴퓨터에 설치되어 있어야 합니다.

Microsoft Access 예제
예제 파일 | 설명
AccessDataClient.vee | Access를 실행하고 테스트 데이터와 VEE record 데이터를 파일을 testData.mdb (database file) 로 저장하고 읽습니다.
AccessEnumerate.vee | testData.mdb(Opens the DAO 3.6 (ACCESS) database) database에 Table(화면에 모두 표시된)들을 하나하나 열거합니다. 다음, resultsTable에 모든 필드를 하나하나 열거합니다. count 및 name properties등을 사용하여 database 및 recordset을 열어서 DAO가 설치되었음을 알 수 있습니다. 각각의 "MSys" tables이 DAO engine에 의해 생성됩니다.

관련정보

ActiveX 참조 종료


Microsoft Excel
examples\ActiveXAutomation

여기서 설명된 어플리케이션과 ActiveX 오토메이션 타입 라이브러리는 프로그램을 실행하기 전에 현재 사용중인 컴퓨터에 정확히 설치되어 있어야 합니다.

마이크로소프트 엑셀 예제
예제 파일 | 설명
ExcelInsertData.exe | 한번에 스프레트시트의 하나의 셀에 랜덤 데이터를 입력하는데 엑셀과 ActiveX 오토메이션을 사용합니다. 데이터 입력 후에는 엑셀의 Average 함수를 이용하여 입력된 데이터의 평균을 연산합니다.
ExcelInsertArrayData.vee | 한번의 동작에 스프레트시트에 랜덤 데이터 어레이를 입력하는데 엑셀과 ActiveX 오토메이션을 사용합니다. 데이터 입력 후에는 엑셀의 StDev 함수를 이용하여 입력된 데이터의 표준편차를 연산합니다.
ExcelGraph.vee | 스프레트시트에 데이터를 입력하는데 엑셀과 ActiveX 오토메이션을 사용합니다. 데이터 입력 후에는 엑셀에서 새로운 챠트를 생성하고 챠트를 적절하게 포맷팅합니다.
ExcelUFunction.vee | 한번에 스프레트시트의 하나의 셀에 랜덤 데이터를 입력하는데 엑셀과 ActiveX 오토메이션을 사용합니다. 데이터 입력 후에는 엑셀의 Average 함수를 이용하여 입력된 데이터의 평균을 연산합니다.
ExcelWeather.vee | 날씨 보고서를 연산하기 위해서 엑셀과 ActiveX 오토메이션을 사용합니다.

엑셀에서 VEE 호출

SpreadsheetApp.xls 은 VEE의 lib.vee 안의 VEE 함수를 호출하는 엑셀 파일입니다. 하나의 함수가 파일에서 읽은 데이터로부터 펄스를 생성합니다. 다른 함수는 테스트 임계값을 가진 펄스를 표시합니다. 윈도우 탐색기에서 이 파일을 더블클릭하여 이 예제 파일을 엽니다.

<VEE_install_dir>\examples\CallableVEE\Excel\SpreadsheetApp.xls

관련정보

ActiveX 참조 종료


Microsoft Outlook
examples\ActiveXAutomation

이 어플리케이션과 여기서 참조된 ActiveX automation 타입 라이브러리는 프로그램을 실행하기 전에 사용하는 컴퓨터에 반드시 설치되어 있어야 합니다.

Microsoft Outlook 예제
예제 파일 | 설명
Outlook.vee | VEE의 ActiveX Automation 기능과 Microsoft Outlook을 사용하여 이메일을 전송합니다.

관련정보

ActiveX 참조 종료


Microsoft Word
examples\ActiveXAutomation

어플리케이션 및 여기에서 참조된 ActiveX automation 타입 라이브러리는 프로그램이 올바르게 실행되기 위해서는 반드시 시스템에 설치되어 있어야 합니다.

ActiveX Automation 예제
예제 파일 | 설명
Word.vee | VEE UserFunction에 있는 테스트 데이터나 비트맵을 Word 문서로 삽입하기 위해서는 Word와 ActiveX Automation을 사용합니다.
WordDataSheet.vee | 단일 페이지 데이터시트용 템플릿으로 사용된 Word 문서에서 ActiveX Automation 검색과 대체를 수행합니다.
WordMailMerge.vee | mmerger.mdb라는 데이터 파일을 사용하여 mmerge.doc라는 이름의 Word 문서에서 메일 병합을 수행하기 위하여 ActiveX Automation을 사용합니다.

관련정보

ActiveX 참조 종료


예전의 VEE RPC API
examples\CallableVEE\Rpc_api

예전의 VEE RPC 예제
예제 파일 | 설명
lib.vee | DS1 펄스 테스트 기능을 가진, 여러 개의 호출함수를 제공하는 VEE 라이브러리 입니다.

DS1 펄스 테스트

CallVEE.c는 lib.vee 안의 두 가지 VEE함수를 호출하는 C로 작성된 파일입니다. 이들 2 개의 VEE 파일 중 한 개는 파일에서 읽은 데이터를 펄스로 합성합니다. 다른 한 개의 파일은 테스트 리미트를 가진 펄스를 표시합니다.

호출하는 VEE 6.0와 그 이상의 버전에서 선호하는 방식은 호출 가능한 VEE ActiveX Automation Server입니다. 그러나 본래의 C API는 여전히 동작합니다. K&R C(C++보다 더 많이)에서 작업을 한다면 예전의 방식을 선택합니다.

예제 파일을 실행하려면 윈도우 탐색기에서 아래 파일을 더블클릭 하십시오.

<VEE_install_dir>\examples\CallableVEE\Rpc_api\CallVEE.c


다중 트레이스 예제

예제 파일명

설명

2dXyTrace.vee

그래픽 오브젝트에서 하나의 입력핀을 통해서 여러 개의 트레이스를 디스플레이 하는 방법을 설명.

MatrixInputStripChart.vee

-100에서 100 사이에서 4개의 Real64 데이터를 무작위로 생성하고, Strip 차트에 데이터를 디스플레이.


프로그램 실행 중 속성변경 예제

예제 파일명

설명

ProgrammaticPropertyDemo.vee

프로그램상에서 속성을 가져오고/설정하는 방법

DemoTabIndexChangeDemo.vee

패널뷰에서 오브젝트에 대한 TableIndex를 프로그램상에서 변경하는 방법

SelectionControlPropertiesDemo.vee

Selection 컨트롤에 대한 EnableEditing, EnumIndex, EnumValue, EnumValues를 프로그램상에서 변경하는 방법


VEE Lib 예제 프로그램
examples\Lib

VEE가 설치된 디렉토리에 \lib 디렉토리가 있습니다. 이 디렉토리에서는 VEE 프로그램 작성에 유용한 다양한 함수와 오브젝트가 제공됩니다. VEE 프로그램 안에서 File [image] Merge를 실행하여 이 오브젝트를 임포트할 수 있습니다. 다음은 이들 라이브러리 오브젝트를 사용한 예제입니다.

VEE Lib 예제
예제 파일 | 설명
1dto2d.vee | 고정 크기의 1 차원 어레이를 입력 받아서 2 차원 어레이를 생성하기 위해서 Formula 오브젝트와 Array 를 사용하는 방법을 설명
2dto1d.vee | 다차원 어레이를 1 차원 어레이로 변환하기 위해서 MatToAry.vee 라이브러리 오브젝트를 사용하는 방법을 설명
barcht1.vee | 어레이 데이터를 디스플레이 하기 위해서 BarChart.vee 라이브러리 오브젝트를 사용하는 방법을 설명
barcht2.vee | 어레이의 각 앨리먼트의 값을 고정 임계값과 비교하고 디스플레이 하기 위해서 BarPF.vee 라이브러리 오브젝트를 사용하는 방법을 설명
barcht3.vee | 2 개의 어레이의 데이터를 동시에 디스플레이 하기 위해서 BarStack.vee 라이브러리 오브젝트를 사용하는 방법을 설명
barcht4.vee | 2 개의 어레이의 데이터를 동시에 디스플레이 하기 위해서 BarComp.vee 라이브러리 오브젝트를 사용하는 방법을 설명
dialog.vee | 프로그램의 특정 위치에서 사용자 입력을 요청하기 위해서 dialog 라이브러리 오브젝트를 사용하는 방법을 설명. 대화상자의 사용법을 배우는데 적합한 예제입니다. 간단한 대화상자는 Data 메뉴의 Dialog Box 오브젝트를 이용하여 생성할 수 있습니다.
keypad.vee | keypad.vee 라이브러리 오브젝트를 사용하는 방법을 설명.
maparray.vee | Spectrum 이나 Waveform 역할을 하는 어레이를 생성하기 위해서 mapArray.vee 라이브러리 오브젝트를 사용하는 방법을 설명.
multiplex.vee | Formula 오브젝트를 멀티플렉서 오브젝트로 사용하는 방법을 설명
pathsep.vee | DOS 및 posix 경로 이름에 대해서 경로구분문자를 노말라이즈 하기 위해서 pathSep.vee 라이브러리 오브젝트를 사용하는 방법을 설명.
piechart.vee | 어레이 데이터를 디스플레이하기 위해서 PieChart.vee 라이브러리 오브젝트를 사용하는 방법을 설명.
rmfile.vee | rmfile.vee 라이브러리 오브젝트를 사용하는 방법을 설명.
SMTPMail.vee | 발신전용 SMTP(Simple Mail Transfer Protocol) 기능을 구현하기 위해서 To/From Socket 오브젝트를 사용하는 방법을 설명하는 라이브러리
xy_cntrl.vee | Record Constant 오브젝트, Traces Control 및 Scales Control 을 사용하여 XY Trace 그래프에 트레이스 및 스케일을 설정하는 방법을 설명. 이들 컨트롤은 XY_cntrl.vee 에서 제공됩니다. 하나의 스케일이나 트레이스를 제어할 때는 Traces Control 이나 Scales Control 의 어레이 크기를 0으로 설정하면 됩니다.


VEE 프로그래밍 개념
examples\Concepts 폴더 참조

VEE 프로그래밍 예제
예제 파일 | 설명
AdvancedDialog.vee | 초기 설정값, 사용자의 입력내용 확인, 사용자가 입력한 정보를 리턴하는 대화상자를 생성하는 프로그램 예제.
alternateToIfThenElse.vee | Demultiplexer와 Junction 오브젝트의 사용법을 설명하는 프로그램. 이들 오브젝트를 사용하여 복잡한 if/then 구문의 사용을 줄이는 방법을 설명
ascii.vee | 키보드로 입력한 문자를 ASCII 코드로 변환하는 방법과 ASCII 코드를 문자로 변환하는 방법을 설명하는 프로그램
convert.vee | VEE를 이용하여 DECIMAL, HEXADECIMAL, OCTAL 와 BINARY 등의 서로 다른 데이터타입을 처리하는 예제
complex.vee | 복소수 및 Polar Complex의 생성, 추가, 처리 및 표시 예제
datacomp.vee | 새로 입력된 값의 변화를 확인하고 변화된 내용만을 타임스탬프와 함께 기록하여 데이터를 압축하는 프로그램
feedback.vee | 피드백을 구현하고, 이를 단일 폴 IIR 디지털 필터를 구현하기 위해 적용하는 예제
fib.vee | 피보나치 수열 (a(n) = a(n-1) + a(n-2))과 같은 방정식을 모델링하기 위해서 피드백을 사용하는 예제.
holdBackAndDelay.vee | Gate 와 Delay 오브젝트를 이용하여 프로그램의 흐름을 제어하는 예제
if.vee | If/Then/Else 오브젝트를 이용하여 입력 값을 출력하는 방법을 설명
ifThenExpressions.vee | 3항 연산자의 사용법을 설명
infoAbout.vee | 프로그램 예제에 많이 사용되는 팝업 도움말을 설명하는 프로그램
integrate.vee | 상/하한 값을 가진 적분 함수를 대화상자에 통합하고, 적분 결과를 디스플레이 하는 방법을 설명하는 프로그램.
iterateColumnOrRow.vee | 1차원 배열을 반복. 행 또는 열을 반복하는 방법에 대한 설명.
iterateOneDim.vee | For Each 오브젝트를 이용하여 1차원 배열을 반복하는 프로그램
iterateRecordFields.vee | 레코드 스칼라 내부의 필드를 반복하는 방법을 설명하는 예제. 특히, For Each 오브젝트가 이 예제에 사용되었다.
iterateTwoDim.vee | For Each 오브젝트를 이용하여 2차원 배열을 반복하는 프로그램
layout1.vee | 좌에서 우로 흐르는 데이터흐름을 따라서 VEE 오브젝트를 배치하여 프로그램의 가독성을 높이는 방법을 설명
layout2.vee | 프로그램에 존재하는 오브젝트의 정렬 및 크기조절의 효과를 설명하는 프로그램
loop.vee | 크기가 1 과 10 사이의 정수를 생성하여, 이들을 몇 개를 더해서 100 보다 작거나 크게 되는지 연산하는 예제
magphase.vee | 시간 영역의 파형을 주파수 도메인에서 Magnitude 와 Phase 으로 디스플레이 하는 간단한 방법을 설명하는 프로그램. 여기서 사용된 “Mag/Phase Display”는 VEE에서 기본 제공되는 오브젝트가 아닌 UserObject 입니다.
nestedRecord.vee | Build Record 오브젝트의 네스팅 기능을 설명하는 프로그램
oneshot.vee | One-Shot 버튼을 생성하는데 Toggle 버튼을 사용하는 방법을 설명하는 프로그램
opt1.vee | 데이터 어레이를 병렬 연산하는 예제
opt2.vee | 파일에서 2차원 배열 데이터를 읽어오는 프로그램
opt3.vee | Sieve 를 구현하는 2 개의 Formula 의 실행속도를 비교하는 프로그램
redim.vee | 어레이의 차원을 변경하는 예제
scattrgm.vee | X vs Y 오브젝트를 이용하여 산포도를 그리는 방법을 설명하는 프로그램
strings.vee | Function & Object Browser ( Device [image] Function & Object Browser 메뉴)에서 제공되는 내장 문자열 함수의 사용을 설명하는 프로그램
subrecord.vee | 서브 레코드를 레코드와 동일하게 사용하는 방법을 설명하는 프로그램
text1.vee | 텍스트 문자열을 조합하는 방법을 설명하는 프로그램
timetick.vee | On Cycle 오브젝트 (Flow [image] Repeat 메뉴)를 이용하여 1초마다 업데이트되는 시계를 만드는 프로그램
tofrom1.vee | 이전에 파일에 작성된 데이터를 읽어서 변경한 후, 다시 파일에 데이터를 쓰고 이것을 저장하는 방법을 설명
tofrom2.vee | 첫 번째 쓰레드가 파일에 데이터를 쓰고, 두 번째 쓰레드가 데이터를 읽음
tofrom3.vee | Selection Control의 Radio 버튼 ( Data [image] Selection Control 메뉴) 오브젝트와 WRITE CASE I/O 트랜잭션을 함께 사용하는 방법을 설명하는 프로그램
tofrom4.vee | VEE 파형을 기록하는 트랜잭션 I/O를 사용하는 방법을 설명. 이 프로그램은 데이터 타입 변환과 트랜잭션 I/O의 개념을 결합시킨 프로그램입니다. 여기서 사용된 To String 오브젝트는 결과를 보기 쉽게 하기 위하여 사용되었으며, To String 오브젝트를 동일한 트랜잭션을 가진 To File 오브젝트로 대체해도 됩니다.
tr_ctrl.vee | Strip Chart 오브젝트의 Traces 컨트롤 입력 핀을 사용하는 방법을 설명. 이 컨트롤 핀은 데이터의 값에 따라 녹색에서 붉은색으로 라인 색상을 변경시킵니다.
truefals.vee | 숫자로부터 텍스트 문자열(TRUE 혹은 FALSE)을 생성하는 방법을 설명
UserFunctions.vee | UserFunction 을 호출하는 방법과, 이 UserFunction의 내용을 변경하지 않고 프로그램의 다른 부분에서 사용하는 방법을 설명하는 프로그램
whichos.vee | whichOS() 와 whitchPlatform() 함수를 사용하여 컴퓨터 운영체계와 플랫폼을 판독하는 방법을 설명하는 프로그램
wizbang.vee | Alarm, Indicator 및 Control 오브젝트들의 사용을 설명하는 프로그램
zerofill.vee | 미리 정해진 길이를 가진 배열에 0을 채워 넣음으로써 배열을 확장하는 여러 가지 방법을 설명하는 프로그램. 고정길이의 어레이를 생성하기 위해서 Formula 오브젝트 안에서 연산 함수를 사용하고, Allocate Array 및ramp 오브젝트를 사용하는 방법을 설명


Visual Basic
examples\CallableVEE\VisualBasic

DS1 펄스 테스트

CallVEE.vbp는 비주얼베이직 프로젝트 파일입니다. 이 예제 프로그램은 lib.vee에 있는 2개의 VEE 함수를 호출합니다. 하나는 파일에서 읽은 데이터에서 펄스를 합성해냅니다. 다른 함수는 테스트 조건을 사용하여 펄스를 디스플레이 합니다. 컴퓨터에 마이크로소프트 비주얼베이직이 설치된 경우에는, 윈도우 탐색기에서 이 파일을 더블 클릭하여 예제 프로그램을 열 수 있습니다.

<VEE_install_dir>\examples\CallableVEE\VisualBasic\CallVEE.vbp


Visual Basic Script

VB Script
examples\CallableVEE\VBScript

컴퓨터에서 마이크로소프트 VB 스크립트를 사용할 수 있는 경우에는, 탐색기에서 이 파일을 더블 클릭하여 예제 프로그램을 실행 할 수 있습니다.

DS1 펄스 테스트

CallVEE.vbs는 lib.vee에 있는 2개의 VEE 함수를 호출하는 VB 스크립트 파일입니다. 하나는 파일에서 읽은 데이터에서 펄스를 합성해냅니다. 다른 함수는 테스트 조건을 사용하여 펄스를 디스플레이 합니다.

<VEE_install_dir>\examples\CallableVEE\VBScript\CallVEE.vbs

Callable VEE 서버정보 가져오기

GetServerInfo.vbs는 등록된 Callable VEE 서버에 대한 정보를 출력하는 VB 스크립트 파일입니다. 예를 들어, 호스트에서 사용하는 I/O 설정 파일정보.

<VEE_install_dir>\examples\CallableVEE\VBScript\GetServerInfo.vbs

파형을 생성하고 디스플레이 하기

GetWaveform.vbs는VEE의 데이터 타입중의 하나를 사용하는 VB 스크립트 파일입니다. 이 예제는 파형 데이터를 생성하고, 패스하고, 출력하는 방법을 제공합니다.

<VEE_install_dir>\examples\CallableVEE\VBScript\GetWaveform.vbs

VEE 라이브러리를 찾고 로딩하기

UsingInstallDir.vbs는 VEE가 설치된 디렉토리를 찾고, 해당 디렉토리와 관련있는 VEE 라이브러리를 로딩하여 호출하는VB 스크립트 파일입니다.

<VEE_install_dir>\examples\CallableVEE\VBScript\UsingInstallDir.vbs


Visual C++
examples\CallableVEE\VisualC++

DS1 펄스 테스트

CallVEE.cpp는 lib.vee 에 있는 두 개의 VEE 함수를 호출하는 Visual C++파일입니다. 두 개의 VEE 함수 중에서 하나는 임의의 파일로부터 읽은 데이터로 만든 펄스를 합성합니다. 다른 하나는 테스트 임계값을 가진 펄스를 디스플레이 합니다. Microsoft Visual C++이 컴퓨터에 설치 되어 있다면 윈도우 창에 이 파일을 두 번 클릭하여 이 예제 파일을 열 수 있습니다.

<VEE_install_dir>\examples\CallableVEE\VisualC++\CallVEE.cpp


ASCII 테이블

아래의 표는 7-bit 아스키 코드 리스트 입니다.

 | Binary | Octal | Hex | Decimal | GPIB Message
NUL | 0000000 | 000 | 00 | 0 |
SOH | 0000001 | 001 | 01 | 1 | GTL
STX | 0000010 | 002 | 02 | 2 |
ETX | 0000011 | 003 | 03 | 3 |
EOT | 0000100 | 004 | O4 | 4 | SDC
ENQ | 0000101 | 005 | 05 | 5 | PPC
ACK | 0000110 | 006 | 06 | 6 |
BEL | 0000111 | 007 | 07 | 7 |
BS | 0001000 | 010 | 08 | 8 | GET
HT | 0001001 | 011 | 09 | 9 | TCT
LF | 0001010 | 012 | 0A | 10 |
VT | 0001011 | 013 | 0B | 11 |
FF | 0001100 | 014 | 0C | 12 |
CR | 0001101 | 015 | 0D | 13 |
SO | 0001110 | 016 | 0E | 14 |
SI | 0001111 | 017 | OF | 15 |
DLE | 0010000 | 020 | 10 | 16 |
DC1 | 0010001 | 021 | 11 | 17 | LLO
DC2 | 0010010 | 022 | 12 | 18 |
DC3 | 0010011 | 023 | 13 | 19 |
DC4 | 0010100 | 024 | 14 | 20 | DCL
NAK | 0010101 | 025 | 15 | 21 | PPU
SYN | 0010110 | 026 | 16 | 22 |
ETB | 0010111 | 027 | 17 | 23 |
CAN | 0011000 | 030 | 18 | 24 | SPE
EM | 0011001 | 031 | 19 | 25 | SPD
SUB | 0011010 | 032 | 1A | 26 |
ESC | 0011011 | 033 | 1B | 27 |
FS | 0011100 | 034 | 1C | 28 |
GS | 0011101 | 035 | 1D | 29 |
RS | 0011110 | 036 | 1E | 30 |
US | 0011111 | 037 | 1F | 31 |
SPACE | 0100000 | 040 | 20 | 32 | listen 0
! | 0100001 | 041 | 21 | 33 | listen 1
" | 0100010 | 042 | 22 | 34 | listen 2
# | 0100011 | 043 | 23 | 35 | listen 3
$ | 0100100 | 044 | 24 | 36 | listen 4
% | 0100101 | 045 | 25 | 37 | listen 5
& | 0100110 | 046 | 26 | 38 | listen 6
" | 0100111 | 047 | 27 | 39 | listen 7
( | 0101000 | 050 | 28 | 40 | listen 8
) | 0101001 | 051 | 29 | 41 | listen 9
* | 0101010 | 052 | 2A | 42 | listen 10
+ | 0101011 | 053 | 2B | 43 | listen 11
, | 0101100 | 054 | 2C | 44 | listen 12
- | 0101101 | 055 | 2D | 45 | listen 13
. | 0101110 | 056 | 2E | 46 | listen 14
/ | 0101111 | 057 | 2F | 47 | listen 15
0 | 0110000 | 060 | 30 | 48 | listen 16
1 | 0110001 | 061 | 31 | 49 | listen 17
2 | 0110010 | 062 | 32 | 50 | listen 18
3 | 0110011 | 063 | 33 | 51 | listen 19
4 | 0110100 | 064 | 34 | 52 | listen 20
5 | 0110101 | 065 | 35 | 53 | listen 21
6 | 0110110 | 066 | 36 | 54 | listen 22
7 | 0110111 | 067 | 37 | 55 | listen 23
8 | 0111000 | 070 | 38 | 56 | listen 24
9 | 0111001 | 071 | 39 | 57 | listen 25
: | 0111010 | 072 | 3A | 58 | listen 26
; | 0111011 | 073 | 3B | 59 | listen 27
< | 0111100 | 074 | 3C | 60 | listen 28
= | 0111101 | 075 | 3D | 61 | listen 29
> | 0111110 | 076 | 3E | 62 | listen 30
? | 0111111 | 077 | 3F | 63 | UNL
@ | 1000000 | 100 | 40 | 64 | talk 0
A | 1000001 | 101 | 41 | 65 | talk 1
B | 1000010 | 102 | 42 | 66 | talk 2
C | 1000011 | 103 | 43 | 67 | talk 3
D | 1000100 | 104 | 44 | 68 | talk 4
E | 1000101 | 105 | 45 | 69 | talk 5
F | 1000110 | 106 | 46 | 70 | talk 6
G | 1000111 | 107 | 47 | 71 | talk 7
H | 1001000 | 110 | 48 | 72 | talk 8
I | 1001001 | 111 | 49 | 73 | talk 9
J | 1001010 | 112 | 4A | 74 | talk 10
K | 1001011 | 113 | 4B | 75 | talk 11
L | 1001100 | 114 | 4C | 76 | talk 12
M | 1001101 | 115 | 4D | 77 | talk 13
N | 1001110 | 116 | 4E | 78 | talk 14
O | 1001111 | 117 | 4F | 79 | talk 15
P | 1010000 | 120 | 50 | 80 | talk 16
Q | 1010001 | 121 | 51 | 81 | talk 17
R | 1010010 | 122 | 52 | 82 | talk 18
S | 1010011 | 123 | 53 | 83 | talk 19
T | 1010100 | 124 | 54 | 84 | talk 20
U | 1010101 | 125 | 55 | 85 | talk 21
V | 1010110 | 126 | 56 | 86 | talk 22
W | 1010111 | 127 | 57 | 87 | talk 23
X | 1011000 | 130 | 58 | 88 | talk 24
Y | 1011001 | 131 | 59 | 89 | talk 25
Z | 1011010 | 132 | 5A | 90 | talk 26
[ | 1011011 | 133 | 5B | 91 | talk 27
\ | 1011100 | 134 | 5C | 92 | talk 28
] | 1011101 | 135 | 5D | 93 | talk 29
^ | 1011110 | 136 | 5E | 94 | talk 30
_ | 1011111 | 137 | 5F | 95 | UNT
` | 1100000 | 140 | 60 | 96 | second 0
a | 1100001 | 141 | 61 | 97 | second 1
b | 1100010 | 142 | 62 | 98 | second 2
c | 1100011 | 143 | 63 | 99 | second 3
d | 1100100 | 144 | 64 | 100 | second 4
e | 1100101 | 145 | 65 | 101 | second 5
f | 1100110 | 146 | 66 | 102 | second 6
g | 1100111 | 147 | 67 | 103 | second 7
h | 1101000 | 150 | 68 | 104 | second 8
i | 1101001 | 151 | 69 | 105 | second 9
j | 1101010 | 152 | 6A | 106 | second 10
k | 1101011 | 153 | 6B | 107 | second 11
l | 1101100 | 154 | 6C | 108 | second 12
m | 1101101 | 155 | 6D | 109 | second 13
n | 1101110 | 156 | 6E | 110 | second 14
o | 1101111 | 157 | 6F | 111 | second 15
p | 1110000 | 160 | 70 | 112 | second 16
q | 1110001 | 161 | 71 | 113 | second 17
r | 1110010 | 162 | 72 | 114 | second 18
s | 1110011 | 163 | 73 | 115 | second 19
t | 1110100 | 164 | 74 | 116 | second 20
u | 1110101 | 165 | 75 | 117 | second 21
v | 1110110 | 166 | 76 | 118 | second 22
w | 1110111 | 167 | 77 | 119 | second 23
x | 1111000 | 170 | 78 | 120 | second 24
y | 1111001 | 171 | 79 | 121 | second 25
z | 1111010 | 172 | 7A | 122 | second 26
{ | 1111011 | 173 | 7B | 123 | second 27
| | 1111100 | 174 | 7C | 124 | second 28
} | 1111101 | 175 | 7D | 125 | second 29
~ | 1111110 | 176 | 7E | 126 | second 30
[del] | 1111111 | 177 | 7F | 127 |


에러코드

에러터미널에서 발생되는 에러코드에 해당하는 에러메시지는 다음의 표를 참조하십시오.

에러코드 | 설명
오브젝트 에러 |
300 | 입력 터미널 <n>이 연결되지 않았습니다.
301 | 입력 <n>은 지원하지 않습니다. (유효한 범위 = [<n>..<n>])
302 | 입력을 <n>개 이상 추가할 수 없습니다. – 최대 <n>개를 지원합니다.
303 | 입력은 <type>만 사용할 수 있습니다.
304 | 입력은 <type>이 될 수 없습니다.
305 | 입력의 이름이 일치하지 않습니다: <name>, <name>
306 | 필요한 입력 <name>은 이 존재하지 않습니다.
308 | 필요한 출력 <name>이 존재하지 않습니다.
309 | 출력의 이름이 일치하지 않습니다: <name>, <name>
310 | 출력 <n>이 존재하지 않습니다. (유효한 범위 = [<n>..<n>]
311 | 출력을 <n>개 이상 추가할 수 없습니다. – 최대 <n>개를 지원합니다.
312 | <type>이 선택되지 않았습니다.
313 | <operation>은 지원하지 않습니다.
314 | 파라미터의 조합에 오류가 있습니다 : <n>
315 | 콤포넌트 <name>을 추가할 수 없습니다.
317 | 전환할 패널이 존재하지 않습니다.
318 | UserFunction <name>에는 패널뷰가 없습니다.
320 | 하위 프로세스를 실행하지 못하였습니다.
321 | 하위 프로세스가 중지되었습니다.
322 | 파이프를 열 수 없습니다.
323 | 목록에 앨리먼트가 없습니다.
330 | 최대값은 반드시 최소값보다 커야 합니다.
331 | VEE는 이 프로그램을 불러오거나 실행할 수 없습니다.
340 | 두 개 이상의 xeq 핀이 있는 오브젝트는 컴파일할 수 없습니다.
341 | Xeq 핀은 반드시 가장 하단의 데이터 이어야 합니다.
342 | Xeq 핀을 사용하는 컨텍스트 오브젝트는 컴파일할 수 없습니다.
343 | UserObject는 해당 UserObject의 편집창에 존재할 수 없습니다.
344 | CallBox는 불러온 함수에 존재할 수 없습니다.(UserFunction을 자체적으로 반복할 수 없습니다.)
345 | Device 명이 동일합니다. 유일한 명칭으로 <name>을 변경하십시오.
346 | Device에 대한 명칭을 반드시 지정해야 합니다.
347 | 반복 오브젝트 또는 Junction 오브젝트에 에러핀을 사용하는 프로그램은 컴파일할 수 없습니다.
컨테이너 에러 |
400 | 값이 비어있거나 nil입니다. (또는 앨리먼트의 개수가 0 인 어레이)
401 | 범위를 초과 했습니다. (유효한 범위는 [<n>..<n>]입니다.)
402 | <name> 값은 <type>만을 사용할 수 있습니다.
403 | <name> 값이 범위를 초과했습니다.
404 | Numeric 은 양수만 사용할 수 있습니다.
405 | <name>을 찾지 못하였습니다.
410 | 스칼라만을 사용할 수 있습니다.
411 | 어레이만을 사용할 수 있습니다.
412 | 스칼라 혹은, 선형 배열만을 사용할 수 있습니다.
413 | <n>차원 어레이만을 사용할 수 있습니다.
414 | 파형 혹은, 선형 배열만을 사용할 수 있습니다.
415 | 데이터는 차원의 수와 같아야 합니다.
416 | 데이터는 사이즈와 형태(데이터)가 같아야 합니다.
417 | 레코드 구조는 일치해야 합니다.
418 | 레코드를 합칠 수 없습니다.
420 | 정방형 행렬만 사용할 수 있습니다.
421 | 행렬의 값이 곱셈을 할 수 없는 형태입니다.
422 | 값은 홀수 개의 컬럼을 가진 행렬만을 사용할 수 있습니다.
430 | 스칼라는 인덱스 0 으로 사용할 수 없습니다.
431 | 배열 인덱스가 범위를 벗어났습니다.
432 | 어레이/하위 어레이 인덱스에 대한 값이 부적절합니다.
433 | 에레이 차원이 너무 큽니다. (최대 = <n>)
434 | 데이터는 <n> 필드를 포함하고 있어야만 합니다.
435 | 두 데이터는 필드 수가 같아야만 합니다.
440 | 데이터 종류 <type>에 대한 연산오류입니다.
441 | I스칼라 값에 대한 연산오류입니다.
442 | <n> 차원 배열에 대한 연산오류입니다.
443 | Numeric 값에 대해서만 유효한 연산입니다.
444 | Declared Variable에 지정한 type 및 Shape에 오류가 있습니다.
445 | 초기화되지 않은 Declared Variable을 사용하려고 했습니다.
450 | 에레이 매핑을 필요로 하는 연산입니다.
451 | 값에 대한 에레이 매핑이 일치되어야 합니다.
452 | 어레이 매핑에 대한 샘플링 주파수는 일치되어야 합니다.
453 | <type>은 상하단계로 정할 수 없습니다.
454 | 어레이 생성을 허용하지 않습니다.
460 | 어레이와 함수를 증가시키거나 감소시킬 수 없습니다.
461 | 16자리를 초과합니다. -- 증가, 혹은 감소 시킬 수 없습니다.
462 | 상수를 덮어 씌우려 하거나, 파라미터 <name>이 실패하였습니다.
463 | 입력 좌표는 “X”이상의 monotonic이 아닙니다.
464 | <type>에서 <type>으로 변환할 수 없습니다.
465 | <action>은 <message>를 허용하지 않습니다.
연산 에러 |
500 | 함수 <name>에서 허용되지 않는 인수입니다.
501 | 함수 <name>은 음수를 허용하지 않습니다.
502 | 함수 <name>은 <n> 인수를 필요로 합니다.
510 | 함수 <name>에서 수리연산 에러가 발생했습니다.
511 | 0에 의한 나눗셈/모듈로 연산은 할 수 없습니다.
512 | 음수로 정수가 아닌 거듭제곱(<n>)없습니다.
513 | 0으로 음수에 대한 거듭제곱(<n>)수 없습니다.
514 | 함수 <name>에서 Numeric 데이터가 오버플로우 되었습니다.
515 | 함수 <name>에서 Numeric 데이터가 언더플로우 되었습니다.
516 | <name>을 연산하는 동안 오버플로우가 발생하였습니다.
517 | 함수 또는 UserFunction: ‘<name>’을 알 수 없습니다.
520 | 로그 매핑에 대한 범위는 0보다 커야 합니다.
521 | 로그 매핑된 함수에 대한 X-data는 0보다 커야 합니다.
522 | <n>차 미분은 지원하지 않습니다.
523 | 다차원 어레이에서 인터폴레이션은 지원하지 않습니다.
ActiveX 에러 |
550 | ActiveX 오브젝트 <name>을 실행할 수 없습니다.
551 | ActiveX 오브젝트는 호환 할 수 없는 데이터 타입 <name>을 리턴 하였습니다.
552 | 참조된 ActiveX 오브젝트의 <name>을/를 실행할 수 없습니다.
553 | ActiveX 오브젝트는 <name>을 <action>하는 동안 에러를 발생하였습니다.
554 | <name>은 참조된 ActiveX 오브젝트의 멤버가 아닙니다.
555 | 지정된 값 없이 속성 <name>을 설정하려 합니다.
556 | ActiveX 오브젝트는 인터페이스 <name>을 구현하지 않습니다.
557 | ActiveX 오브젝트를 생성하지 못하였습니다.
558 | <name>에 대한 OS 플랫폼은 WIN32가 아닙니다.
559 | <name>으로부터 타입 라이브러리를 불러오지 못했습니다.
560 | 속성 <name>을 찾지 못했습니다.
561 | <name>을 위해 불러올 타입 정보가 없습니다.
562 | 오류가 있는 CLSID : <number>
563 | 오류가 있는 ProgID : <name>
564 | <name>와 이벤트 연결을 할 수 없습니다.
565 | ActiveX 오브젝트 <name>에 액세스할 수 없습니다.
566 | ActiveX 오브젝트는 호환할 수 없는 값을 리턴 하였습니다.
567 | ActiveX 오브젝트 인스턴스 <name>를 가져오지 못하였습니다.
568 | VEE 오브젝트 속성을 프로그램 상에서 액세스하는데 실패하였습니다.
569 | ActiveX Automation 어레이 에러입니다.
570 | ActiveX Automation 어레이에 있는 데이터에 액세스할 수 없습니다.
571 | 리모트 오브젝트를 생성할 수 없습니다. DCOM이 설치되어있지 않습니다. Microsoft 웹사이트로부터 DCOM95를 다운로드 받아 설치하십시오.
MATLAB SCRIPT 에러 |
590 | MATLAB이 설치되어 있지 않습니다. VEE를 다시 설치하면서, MATLAB Script 설치 옵션을 선택하십시오.
591 | MATLAB Script 엔진을 실행할 수 없습니다.
592 | MATLAB 에러 <message> 입니다.
593 | MATLAB Script 에러입니다.
594 | MATLAB 데이터가 무한대 또는 NaN을 내포하고 있습니다.
표현식 에러 |
600 | 문법 에러 : <설명>
601 | 오류가 있는 표현식 : <설명>
602 | 함수를 찾지 못하였습니다. : <name>
603 | 변수를 찾지 못하였습니다. : <name>
604 | 함수를 불러오지 못하였습니다. : <name>
610 | 사용된 인수가 너무 많습니다. (최대값 = <n>)
611 | 함수<name>에서 사용된 파라미터의 수가 다릅니다.
620 | Name 또는 String 상수가 너무 깁니다.(n 캐릭터보다 큽니다.)
621 | 변수명 <name>과 동일합니다.
622 | 변수/ 터미널 명 <name>에 오류가 있습니다.
623 | 문자열에서 문자열 종료를 표시하는 큰 따옴표를 찾을 수 없습니다.
624 | 문자열을 파싱하는 동안 허용되지 않은 문자가 발견되었습니다.
625 | 허용되지 않는 종료 시퀀스 <sequence> 입니다.
626 | 레코드 필드명 <name> 이 중복됩니다.
627 | 라이브러리 명 <name>이 중복됩니다.
628 | 레코드 필드 명 <name>에 오류가 있습니다.
629 | UserFunction명 <name>에 오류가 있습니다.
630 | 오류가 있는 데이터 입니다.
631 | 표현식은 모두 0이거나 모두 0이 아니어야만 합니다.
640 | 미스매치 에러 : <name>을 예상하였지만, <name>을 받았습니다.
641 | 알려지지 않은 파라미터 : <name>
642 | 정의되지 않은 파라미터 : <name>
643 | 이 프로그램은 실행창이 없습니다.
650 | 라이브러리 : <name>에는 현재 실행중인 함수가 있습니다. 삭제할 수 없습니다.
660 | 명칭 오류 : <name>
파일 에러 |
700 | 파일 <name>을 찾지 못하였습니다.
701 | 파일의 마지막 혹은, 데이터를 찾을 수 없습니다.
702 | 파일 <name>을 열 수 없습니다. : 파일에 접근할 수 없습니다.
703 | 파일 <name>을 읽을 수 없습니다.
704 | 파일 <name>을 작성할 수 없습니다.
705 | 파일 <name>의 내용을 읽는 과정에서 에러가 발생했습니다.
706 | 파일의 끝 혹은, 일치된 내용을 찾을 수 없습니다.
707 | <n>을 읽어야 하지만, <m>만을 찾았습니다.
708 | 바이트는 데이터 사이즈의 배수로 읽어야 합니다.
710 | 파일 <name>은 명명된 파이프가 아닙니다.
711 | 파일 <name>을 생성할 수 없습니다.
712 | 파일 <name>이 이미 존재합니다.
713 | 디렉토리명 <name>에 오류가 있습니다.
714 | 파일은 디렉토리입니다.
715 | 디렉토리가 비어있지 않습니다.
716 | 파일 <name>을 실행할 수 없습니다.
717 | 유효하지 않은 디렉토리 <name> 입니다.
718 | 프로세스를 생성할 수 없습니다. (윈도우 에러 번호 : <n>)
720 | 파일을 사용 중 입니다.
721 | 장치가 실행 중입니다.
722 | 다른 파일 시스템에 액세스 할 수 없습니다.
723 | 너무 많은 파일들이 열려 있습니다.
724 | 파일이 너무 큽니다.
725 | 로컬 하드디스크가 가득 찼습니다.
726 | 파일을 찾는 과정에서 에러가 발생했습니다.
727 | 악성 시스템 파일 번호
728 | 심볼릭 링크가 너무 많습니다.
729 | 파일 포멧에 오류가 있습니다.
730 | 파일에서 UserFunction을 찾지 못하였습니다.
733 | 보안처리된 프로그램은 통합할 수 없습니다.
734 | 공용 메모리 세그먼트를 생성할 수 없습니다.
736 | 바이너리 파일 <name>을 읽을 수 없습니다.
737 | 바이너리 파일 <name>으로 작성할 수 없습니다.
738 | 파싱한 에러로부터 복구 할 수 없습니다.
739 | 컴파일된 함수에서 리턴 후, 스택 포인터에 오류가 발생했습니다.
.NET 에러 |
751 | .NET을 참조할 수 없습니다.
752 | 예외
753 | 디폴트 멤버가 아닙니다.
754 | .NET에 액세스 할 수 없습니다.
755 | 속성에 값을 입력하지 않았습니다.
756 | 오브젝트를 생성할 수 없습니다.
757 | 멤버 정보를 불러올 수 없습니다.
758 | .NET을 VEE로 불러올 수 없습니다.
759 | 네임스페이를 가져올 수 없습니다.
760 | 타입을 찾지 못하였습니다.
761 | 이벤트 연결에 실패하였습니다.
763 | 이벤트를 연결할 수 없습니다.
764 | .NET 기능을 생성하는데 실패하였습니다.
765 | 프로그램에서 컨트롤에 다른 컨트롤을 추가해야 합니다.
I/O 에러 |

800

장치가 없거나 주소가 맞지 않습니다.

801

설정 에러 : <description>

802

잘못된 디바이스 파일 <name>을 발견하였습니다.

803

장치, <name>,은 메시지 기반이 아닙니다.

804

장치 <name>상의 메모리 액세스에 오류가 있습니다.

810

인스트루먼트 드라이버 에러 <n> : <설명> 자세한 설명은 계측기 매뉴얼을 참조하십시오.

811

I/O 에러 또는 타임아웃가 발생하였습니다.

812

빈 블록 해더에 오류가 있습니다.

813

GPIB에 엑세스하려면 활성화된 시스템 컨트롤러이어야 합니다.

814

<device> <interface>에서 Lock acquisition 을 실패했습니다.

815

VXIplug&play 함수에서 에러가 발생되었습니다. 에러는 <n>입니다.

816

VXIplug&play init()함수에서 에러가 발생되었습니다. 에러는 <n>입니다.

817

NIDAQ 드라이버 함수에서 에러가 발생되었습니다.

818

NIDAQ NIxxxx_init()함수에서 에러가 발생되었습니다.

821

트랜잭션은 <name>인터페이스를 지원하지 않습니다.

830

어플리케이션 <name>, 토픽 <name>에 DDE 링크를 초기화하지 못하였습니다.

831

DDE POKE의 아이템 필드명 <name>이 잘못되었습니다.

832

DDE REQUEST의 아이템 필드명 <name>이 잘못되었습니다.

833

DDE EXECUTE를 실패하였습니다.

850

호스트, <name>을 알 수 없습니다.

851

호스트 <name>에 서비스 관리자가 없습니다.

852

네트워크가 호스트에서 초기화 되지 않았습니다.

853

타임아웃 시간 동안 연결되지 못하였습니다.

854

네트워크 상에서 데이터를 받기 전에 인터럽트가 발생하였습니다.

855

연결이 통신 상대방에 의하여 닫혀졌습니다.

856

OS(Operating System)에 버퍼 공간이 없습니다.

857

네트워크가 다운되었습니다.

858

호스트 <name>으로 연결되기 전에 인터럽트가 발생되었습니다.

859

포트<name>은 사용 중 입니다.

860

<name>으로 연결 시도는 타임아웃으로 실패하였습니다.

861

<name>의 서비스 관리자가 응답하지 않습니다.

862

호스트 <name>의 서비스 <name>,은 응답하지 않습니다.

863

호스트 <name>의 서비스 <name>을 찾지 못하였습니다.

864

호스트 <name>의 서비스 <name>를 시작할 수 없습니다.

865

호스트 <name>의 서비스 <name>에서 에러가 발생되었습니다.

866

호스트 <name>에 연결할 수 없습니다.

867

서비스 <name>에서 UserFunction <name>을 찾을 수 없습니다.

868

호스트 <name>에서 사용자 <name>을 허용하지 않습니다.

869

호스트 <name>의 원격서비스 <name>에서 에러가 발생했습니다 :<n>

870

Non-blocking을 받았습니다.

871

원격 디버깅을 완료 전에 끝났습니다.

876

COM HRESULT에서 실패 코드를 리턴했습니다.

877

파라미터 <name>가 ByRef로 전달되어야 합니다.

878

<name>으로부터 오류 값을 리턴 받았습니다.

879

VEE 데이터 컨테이너에 데이터가 없습니다.

880

어레이의 크기 : <name>은 필드 계수 <n>의 배수만 가능합니다.

시스템 에러

900

프로그램이 실행하는 동안 실행을 허용하지 않습니다.

901

피드백에 관한 구문 에러입니다.

902

예기치 않은 BREAK가 실행하였습니다.

903

예기치 않은 COUTINUE가 실행하였습니다.

904

장치가 실행하는 데 오류가 있습니다.

905

리비젼 “<rev>”가 부정확합니다.(“<rev>”으로 예상합니다.)

906

START 오브젝트가 필요한 피드백 스래드입니다.

910

프로세스를 실행하는데 메모리가 부족합니다.  프로그램을 즉시 저장하십시오.

911

부동소수점 예외가 발생했습니다. Overflow/Underflow일 가능성이 있습니다.

912

시스템 프로세스가 너무 많습니다.

913

Reset 혹은 Break가 실행되었습니다.

914

디스플레이를 열 수 없습니다.

915

OS(Operation system)에 리소스가 부족합니다.

920

읽을 프로세스 없이 파이프에 기록합니다.(signal = <n>)

921

사용자 정의 신호 1을 받았습니다. (signal=n)

922

사용자 정의 신호 2를 받았습니다. (signal=n)

930

PreRun 중에 에러가 발생하였습니다.

935

Junction 오브젝트는 피드백 사이클의 내부를 필요로 합니다.

936

UserFunction이 리엔트런트하지 않았습니다.

937

Sample & Hold 오브젝트는 데이터를 출력하지 않습니다.

938

VEE는 이 부분을 컴파일 할 수 없습니다.

939

입력 터미널이 연결된 스레드에서 START 오브젝트로 실행할 수 없습니다.

940

피드백에 오류가 있습니다.

941

T2보다 T1이 먼저 활성화되어야 합니다.

950 through 999

EXCEL LIBRARY 에러

2001

  • 256번째를 넘어선 컬럼, 혹은 1 번째 컬럼 이전의 컬럼에 접속하려 할 경우;

  • 첫 번째 줄 위, 또는 마지막 줄 아래에 접속하려는 경우;

  • 열과 행을 변환하여 셀 혹은 주소 범위의 오류가 발생한 경우 : <column>;

  • 256번째를 넘어선 컬럼에 데이터를 보내는 경우;

2002

  • 3차원 이상의 데이터를 엑셀에 저장할 경우

  • 에러를 발생하는 데이터 종류

          examples\nENUM - 레코드의 일부분으로만 보낼 수 있습니다.

          SPECTRUM - 예제를 참조하십시오.

          CCOMPLEX - 예제를 참조하십시오.

          PCCOMPLEX- 예제를 참조하십시오.

          COORD-예제를 참조하십시오.

          OBJECT - Excel Library에서 지원하지 않습니다.

  • 3차원 혹은 그 이상의 레코드를 엑셀에 저장할 경우

2003

본 시트가 보호 되므로, 변경할 수 없습니다.

2004

  • 워크북에서 찾을 수 없는 시트입니다.

  • 현재 열려있는 워크북의 세트에서 찾을 수 없는 워크북입니다.

2005

워크북을 열지 않고 데이터를 엑셀에 저장하려 합니다.

2006

SendRecord 입력은 레코드가 아닙니다.

2007

  • SendDataSetting.ThreeDArrays 에 대한 알 수 없는 값입니다. ;

  • 프린트에 대한 알 수 없는 입력터미널입니다.

2008

어레이의 크기가 254보다 큽니다. 254 이상의 새 시트를 생성할 수 없습니다.

2022

알 수 없는 차트 종류입니다.

2023

라인 차트 설정 Nanes 어레이에 에러가 발생했습니다. 데이터 어레이보다 크지 않는 어레이 일 가능성이 있습니다. 또한 로그스케일을 사용하는 경우에는, 데이터에서 음수가 없는지 확인하십시오.

2025

ActiveChart에서 에러가 발생했습니다. ApplyCustomType(xlBuiltIn, “Logarithmic”). 영문 버전이 아닌 오피스 프로그램에서는 지원하지 않습니다. 자세한 내용은 온라인도움말에서 제공합니다.

관련정보

Agilent VEE Pro에서의 .NET 에러


활성화(Activate)

1. 터미널에 컨테이너를 전송합니다. 컨테이너 및 터미날도 참조하십시오.

2. UserObject를 실행하기 전에 매번 UserObject 컨텍스트를 리셋 시킵니다. 컨텍스트 및 PreRun도 참조하십시오.


ActiveX

윈도우 플랫폼에서 사용하는 하나의 통신 메커니즘. ActiveX는 분산시스템 환경을 지원하기 위한 기능을 제공하는 Microsoft COM에 근거한 기술입니다. ActiveX Controls 및 ActiveX Automation Servers등이 있습니다.


배치하기(Allocate)

VEE 어레이를 초기화. 배치하는 것은 차원(Dimension)의 수(Number)와 각 차원(Dimension)의 앨리먼트 수(Number)를 설정하고 초기 데이터로 어레이를 설정하는 것입니다. 예를 들어, 2차원 정수 어레이는 디폴트값이 0이기 때문에 0으로 설정 됩니다.


어레이

어레이(Array)

산술적인 어레이에 대응하는 하나의 데이터 형태(Shape). 이는 데이터 항목(같은 데이터 종류)의 그룹이며 1차원이상의 구조를 가집니다. 데이터 항목은 어레이 인덱스를 이용해서 가져옵니다. VEE에서는 1차원 어레이는 Array 1D, 2차원 어레이는 Array 2D 등으로 표시됩니다. 데이터 형태도 참조하십시오.


비동기(Asynchronous)

비동기적인 동작. 디바이스는 이벤트를 동기화시키기 위한 공동의 신호 없이 동작합니다.-- 이벤트는 불특정한 시간에 발생합니다. VEE 컨트롤 핀(예를 들어, Display 오브젝트의 Clear핀)은 비동기식으로 동작합니다.


자동실행(Auto Execute)

Data 메뉴의 Constant 메뉴 아래에서 제공하는 오브젝트의 속성창에서 제공하는 하나의 옵션입니다. 만약 Auto Execute가 설정되어 있고, 프로그램이 아직 실행이 되지 않고 있다면, 오브젝트는 값이 수정이 될 때 동작합니다. Auto Execute는 프로그램이 실행중일 때는 무시됩니다.


비트맵(Bitmap)

비트 패턴 혹은 그림. VEE에서는 비트맵을 Picture 오브젝트나 아이콘 위에 사용 할수 있습니다. 또한 메인 프로그램의 패널뷰, UserObject 패널뷰, UserFunction 패널뷰의 배경에 비트맵을 사용할 수 있습니다.


브레이크포인트(Breakpoint)

프로그램을 수정하기 위한 하나의 도구. 오브젝트에 브레이크포인트를 설정하면, 프로그램이 실행되기 전에 일시 정지 합니다.


버퍼(Buffer)

정보가 임시로 저장되는 메모리의 영역


버튼(Button)

스위치나 선택버튼으로 사용되는 그래픽 오브젝트. VEE에서 마우스를 클릭하여 버튼을 누르면 동작이 됩니다. (좌/우 마우스 버튼도 참조하십시오.)


연결메뉴(Cascading Menu)

풀다운 메뉴나 팝업 메뉴에 연결하여 제공하는 서브메뉴


체크박스(Checkbox)

메뉴나 대화상자에 있는 사각형의 박스. 원하는 박스를 클릭하여 설정을 선택하면 박스에 체크 표시가 나타납니다. 취소하기 위해서는 박스를 다시 한번 클릭하면 됩니다.


클릭(Click)

마우스 버튼을 눌렀다 놓는 것. 클릭한다는 것은 VEE 윈도우에 있는 메뉴나 오브젝트를 선택하는 것입니다. Double-Click 및 Drag도 참조하십시오.


클론(Clone)

오브젝트 메뉴에 있는 메뉴 항목으로 오브젝트를 복제하고 붙여넣기 버퍼에 오브젝트의 복사본을 만드는 것입니다. 클론은 복제된 오브젝트가 포함하는 핀, 파라미터, 사이즈등의 모든 속성을 복사합니다.


컴파일된 함수(Compiled Function)

C 같은 프로그램 언어로 작성된 프로그램을 다이나믹하게 연결하여 연결하여 생성하는 사용자 지정 기능은 VEE 프로세스에서 사용됩니다. 사용자는 DLL (Dynamically Linked Library) 파일과 정의 파일을 생성해야 합니다. Import Library 오브젝트는 VEE 프로세스에 DLL을 붙이고 정의 파일의 선언을 분석합니다. 컴파일된 기능은 Call Function 오브젝트와 함께 호출되거나, 몇몇 표현식에 의해서 호출됩니다. UserFunction 및 리모트 함수도 참조하십시오.


컴포넌트(Component)

하나의 계측기 단일기능, VEE 계측기 패널에 측정된 값 또는 컴포넌트 드라이버. 예를 들어, 전압계 드라이버는 범위, 트리거 소스, 최근에 읽은 값등을 기록하는 컴포넌트를 제공한다. 컴포넌트 드라이버, 드라이버 파일, 상태 및 인스트루먼트 패널도 참조하십시오.


컴포넌트 드라이버(Component Driver)

지정한 컴포넌트에 값을 쓰고 읽는 계측기 제어 오브젝트. 컴포넌트 드라이버는 어떤 순간에 몇몇 컴포넌트의 값을 셋팅하여 계측기를 제어하기 위해 사용합니다. (컴포넌트 드라이버는 커플링을 지원하지 않습니다.)


혼합데이터 타입(Composite Data Type)

관련되는 형태(Shape)를 가진 데이터 타입. 데이터 형태 및 데이터 종류도 참조하십시오.


컨테이너(Container)

데이터 컨테이너를 참조하십시오.


컨텍스트(Context)

작업영역의 레벨로써 다른 작업영역(UserObject가 있는 작업영역 같은)을 포함할 수도 있습니다. 각 레벨은 독립적입니다.


컨트롤핀(Control Pin)

오브젝트의 다른 핀이 데이터를 수신하는 것과는 무관하게 오브젝트에 비동기적으로 데이터를 전송하는 입력핀. 예를 들어, 컨트롤핀은 일반적으로 Clear 혹은 Autoscale로 사용됩니다.


커플링(Coupling)

계측기에서 어떤 기능들의 상호관계. 만약 계측기 패널에서 A기능과 B기능이 상호 연결되어 있다면 A의 값을 변경하면 B의 값을 변경하지 않더라도 B의 값이 자동으로 변경할 수도 있습니다.


커서(Cursor)

키보드를 입력하여 정보를 타이핑하면 문자나 숫자가 입력되는 입력영역에 있는 포인터(기호)


잘라내기 버퍼(Cut Buffer)

잘라내거나 복사한 오브젝트를 가지고 있는 버퍼. 그래서 메뉴바의 Edit [image] Paste를 이용하여 작업영역에 오브젝트를 붙여 넣을 수 있습니다.


데이터 컨테이너(Data Container)

연결선을 통해서 전송되고 오브젝트에 의해서 실행된 데이터 패키지. 각 데이터 컨테이너는 데이터 종류(Type), 데이터 형식(Shape), 매핑을 포함하고 있습니다.


데이터 필드(Data Field)

트랜잭션 대화상자의 한 필드를 이야기하며, 데이터 필드에는 데이터를 수신할 변수이름이나 데이터를 작성하거나(WRITE 트랜잭션), 읽을 데이터를 수신하기 위한 변수이름(READ 트랜잭션)를 정의할 수 있습니다. 트랜잭션도 참조하십시오.


데이터 흐름(Data Flow)

VEE 오브젝트간의 데이터 흐름. 데이터는 왼쪽 오브젝트에서 오른쪽 오브젝트로 전송됩니다. 그러나 오브젝트는 데이터 입력터미널에 모든 데이터를 입력 받기 전에는 실행하지 않습니다. 데이터는 데이터 출력핀을 통해서 다음 오브젝트의 데이터 입력핀으로 전달됩니다. 데이터의 흐름은 VEE 프로그램에서 실행을 결정하는 가장 중요한 요소입니다.


데이터 입력핀(Data Input Pin)

오브젝트 내부로 데이터가 흐르도록 하는 오브젝트의 왼쪽에 있는 연결 포인트


데이터 출력핀(Data Output Pin)

다음 오브젝트로 데이터를 전송하고 이전 오브젝트의 실행 결과를 다음 오브젝트로 전달하고자 하는 오브젝트의 오른쪽에 있는 연결 포인트


데이터 셋(DataSet)

향후 사용을 위해 파일로 저장되는 “레코드” 컨테이너의 집합. To DataSet 오브젝트는 입력되는 레코드 데이터를 수집하고 지정된 파일(DataSet)로 저장합니다. From DataSet 오브젝트는 지정된 파일(DataSet)로부터 레코드 데이터를 검색하고 Rec 출력핀으로 레코드 컨테이너와 같은 데이터 형태로 출력합니다. 레코드도 참조하십시오.


데이터 형태(Data Shape)

각 데이터 컨테이너는 형태와 종류를 포함합니다. 데이터 형태는 스칼라 혹은 어레이 타입입니다. 데이터 형태는 스칼라 혹은 1차원이상의 어레이가 될 수 있습니다. VEE에서는 1차원 어레이는 Array 1D, 2차원 어레이는 Array 2D등으로 사용됩니다.


데이터 종류(Data Type)

데이터 타입(Data Type)

각 데이터 컨테이너는 형태와 타입을 포함합니다. VEE는 Text, Int16, Real64, Complex, Waveform등을 포함하는 데이터 타입을 지원합니다.


DDE (Dynamic Data Exchange)

윈도우 플랫폼에서 어플리케이션 소프트웨어간의 통신기법 중의 한가지. DDE는 ActiveX 기술로 대체 되었습니다 .


디폴트(Default)

자동으로 선택된 값이나 행위(action). 예를 들어 VEE는 지정된 디폴트 색상이나 디폴트 글자체를 사용합니다. 이러한 디폴트 설정은 Default Preferences 대화상자에서 수정할 수 있습니다.


디폴트 버튼(Default Button)

대화상자에 있는 버튼으로 만약 엔터(Enter)키나 리턴(Return)키를 누르거나 더블 클릭하면 동작이 됩니다. 디폴트 버튼의 표시 라벨(label)은 굵은 텍스트 입니다.


하향변환(Demote)

상위개념의 데이터를 하위개념이 데이터로 하향 변환하는 것(예, 실수를 정수로 변환). 데이터 타입 및 상향변환도 참조하십시오.


디테일뷰(Detail View)

VEE 프로그램영역에서 모든 오브젝트와 연결된 라인을 보여주는 상태


디바이스 드라이버(Device Driver)

인터페이스 드라이버를 참조하십시오.


대화상자(Dialog Box)

VEE가 작업을 계속하기 전에 사용자로부터 정보의 선택이 필요할 때 추가적으로 디스플레이 되는 화면. 예를 들면, 대화상자는 사용자가 선택할 수 있는 파일의 리스트를 제공합니다.


Direct I/O 오브젝트

해당 계측기전용 드라이버를 사용하지 않고, GPIB 명령어로 계측기를 직접 제어하는데 사용하는 VEE 오브젝트


DLL (Dynamically Linked Library)

VEE가 호출하여 사용할 수 있는 프로그램 함수의 일종. 다양한 소프트웨어를 사용하여 DLL을 생성할 수 있습니다.


더블 클릭(Double-Click)

마우스 버튼을 빠르게 두 번 눌렀다 놓는 것. 더블 클릭은 일반적으로 선택이나 실행을 수행하는 단축 기능 입니다. 예를 들어, 메뉴에서 File [image] Open을 선택하여 파일 이름을 더블 클릭하면 해당 파일이 선택되고 오픈 됩니다.


드래그(Drag)

마우스 버튼을 누른 상태에서 마우스를 이동하는 것. 드래그는 오브젝트나 스크롤바 같은 것을 이동하는 것입니다.


드라이버(Driver)

컴퓨터가 다른 소프트웨어나 하드웨어와 통신을 할 수 있도록 해주는 소프트웨어. 컴포넌트 드라이버, 드라이버 파일, 인터페이스 드라이버 및 인스트루먼트 패널도 참조하십시오..


드라이버 파일(Driver Files)

VEE에 포함된 파일로서, 계측기 제어에 사용되는 패널드라이버 또는 컴포넌트 드라이버 오브젝트를 생성하는데 필요한 정보를 제공합니다.


드롭 다운 리스트(Drop-Down List)

선택 영역의 오른쪽에 있는 화살표를 클릭하여 표시되는 선택항목들의 리스트


입력 필드(Entry Field)

대화상자나 편집 가능한 오브젝트의 한 영역으로 데이터를 입력하는데 사용합니다. 입력영역은 배경이 흰색일 때 입력할 수 있습니다.


에러 메시지(Error Message)

에러 대화상자에 나타나는 정보로써 일반적으로 발생된 문제에 대한 설명입니다.


에러 핀(Error Pin)

오브젝트에서 에러가 발생되었을 때 그 에러를 검출하는 핀입니다. 에러 메시지를 표시하는 대신에 에러 번호가 에러핀을 통해서 출력됩니다. 에러가 발생하면 데이터 출력핀은 동작하지 않습니다.


실행(Execute)

프로그램이나 프로그램의 한 부분이 실행되는 것.


실행순서(Execution Flow)

오브젝트가 실행되는 순서. 데이터 흐름도 참조하십시오..


표현식(Expression)

하나의 방정식으로, 입력 영역에 터미널 이름, 전역 혹은 지역변수, 수학 연산자, 내장 함수, 사용자 지정 함수등을 포함합니다. 표현식은 프로그램 실행시에 연산됩니다. 표현식은 Formula, If/Then/Else, Get Values, Get Field, Set Field, Sequencer, Dialog Box 오브젝트, 그리고 I/O transaction 오브젝트에서 사용할 수 있습니다.


피드백(Feedback)

이전 실행결과를 이용하여 현재의 실행결과에 반영하는 값을 사용하는 시퀀스 또는 데이터라인의 연속적인 쓰레드 경로.


흐름순서(Flow)

데이터 흐름 또는 실행순서를 참조하십시오..


폰트(Font)

글자의 크기 및 스타일


함수(Function)

출력값이 입력값의 함수인 오브젝트의 이름과 행위. Function & Object Browser (Device [image] Function & Object Browser) 대화상자의 가장 우측의 창에 함수가 표시되고, Formula 오브젝트에서 이들 함수를 표현식으로 사용할 수 있습니다. 예를 들어 sqrt(x)는 함수이나 ‘+’는 아닙니다.


전역변수(Global Variable)

프로그램의 전체 영역에서 사용하도록 설정된 변수로서, VEE 프로그램 안에서 이 변수의 이름을 참조하여 사용합니다. 예를 들어, 전역변수는 프로그램의 최상위 컨텍스트에서 Set Variable 오브젝트에 의해서 설정되며, Get Variable 오브젝트에 변수 이름을 입력하여 설정된 변수를 사용할 수 있습니다. 또한 UserObject의 컨텍스트 내에서 표현식을 이용하여 변수를 사용할 수도 있습니다. 반면에 하나의 표현식에서 동일한 이름의 전역변수와 지역변수가 사용되면 지역변수가 우선권을 가집니다. 변수을 참조하십시오..


회색으로 음영 처리된 항목(Grayed Feature)

검정색이 아니라 회색으로 나타나는 메뉴 항목으로, 표시되는 항목은 비활성화되어 사용할 수 없습니다. 대화상자에 사용되는 버튼, 체크박스 혹은 라디오 버튼 같은 항목 또한 회색으로 표시될 수도 있습니다.


하이라이트(Highlight)

1. 오브젝트 주위에 표시되는 색깔이 있는 띠 혹은 그림자를 지칭하며, 오브젝트의 상태를 시각적으로 제공합니다.

2. 메뉴 항목에서의 색상이 변하는 것을 지칭하며, 항목을 선택한 것을 표시합니다.


호스트(Host)

1. 쓰레드나 서브 쓰레드를 실행시키는 오브젝트. 예를 들어, For Count 오브젝트에 의해서 호스팅되는 서브 쓰레드는 반복되는 서브쓰레드 입니다.

2. 분산 시스템에서 어플리케이션이 실행되는 컴퓨터.


하이퍼텍스트(Hypertext)

좀더 많은 정보를 원할 때 관련 주제로 건너뛸 수 있도록 주제들을 연결해 놓은 시스템. 온라인 도움말에서, 일반적으로 하이퍼 텍스트 링크들은 밑줄이 그어진 텍스트들로 표시됩니다. 이러한 텍스트를 클릭하면 관련 정보가 나타납니다.


아이콘(Icon)

1. 계측기, 컨트롤 혹은 디스플레이 같은 VEE 오브젝트를 그래픽화하여 작게 표현한 것.

2. 어플리케이션, 파일 혹은 폴더를 작고 그래픽화하여 작게 표현한 것.


계측기(Instrument)

측정 혹은 테스트를 위해 사용되는 전기장치. 계측기는 PC와 GPIB, RS-232, GPIO, VXI, LAN 또는 USB 인터페이스를 통해서 연결됩니다. Direct I/O 오브젝트와 패널 드라이버같은 특정한 VEE 오브젝트가 계측기와 통신을 합니다.


인스트루먼트 드라이버(Instrument Driver)

드라이버 파일, 컴포넌트 드라이버 및 인스트루먼트 패널을 참조하십시오.


인스트루먼트 패널(Instrument Panel)

실제 계측기에서 사용되는 모든 설정 기능을 제어 할 수 있는 계측기 제어 오브젝트로써, 오브젝트의 오픈뷰에서 디스플레이 되는 제어 패널을 통해 해당 기능을 설정할 수 있습니다.


인터페이스(Interface)

다른 하드웨어(소프트웨어) 시스템에서 오브젝트 사이에 공유된 경계. GPIB, RS-232, GPIO, LAN, USB, 및 VXI는 계측기 I/O를 위한 인터페이스로 사용됩니다. I/O메뉴의 Advanced I/O아래에 있는 Interface Event 오브젝트 같은 특정한 오브젝트는 계측기에 명령을 전송할 수 있습니다.


인터페이스 드라이버(Interface Driver)

컴퓨터가 GPIB 또는 RS-232같은 하드웨어 인터페이스를 통해서 통신할 수 있도록 해주는 소프트웨어.


반복 실행(Iterate)

Repeat 오브젝트들(예, For Count)을 사용하여 VEE 프로그램의 일부분을 반복하는 것.


라이브러리(Library)

자주 사용되는 오브젝트들의 집합이나 쉽게 사용하기 위해 모아놓은 프로그램들의 집합.


연결선(Line)

VEE에서 실행해야 할 데이터 컨테이너를 전송하기 위해 두 개의 오브젝트를 연결한 선. 쓰레드를 참조하십시오.


논리적인 단위(Logical Unit)

하드웨어 인터페이스의 논리적인 주소를 표시하는데 사용되는 숫자를 말합니다. 대부분의 GPIB 경우에, 제조사에서 디폴트 값으로 부여한 논리적인 수는 7입니다.


루프(Loop)

Repeat 오브젝트들(예, For Count) 중에서 하나의 오브젝트를 사용하여 VEE 프로그램의 부분을 반복 하는 것.


메인 메뉴(Main Menu)

VEE의 메뉴바에 있는 메뉴들. 메인 메뉴를 열기 위해서는 메뉴바에 있는 메뉴 항목을 클릭합니다.


메인 작업영역(Main Work Area)

메인 윈도우(Main Window)와 같습니다.


메인 윈도우(Main Window)

VEE 프로그램을 개발하기 위해서 사용하는 최 상위 또는 최초의 작업영역.


매핑(Mapping)

어레이에 대해서 독립적인 변수를 입력하기 위해 사용되는 연속되거나 별개로 분리된 값들의 집합.


최대화(Maximize)

최대화 버튼을 이용하여 VEE 윈도우에 메인화면, UserObject, UserFunction같은 윈도우 화면을 확대하여 작업영역을 채우는 것.


최대화 버튼(Maximize Button)

메인화면, UserObject, UserFunction 화면에 있는 버튼으로, 최대화 버튼을 이용하여 VEE 윈도우에 작업영역을 채우기 위해 윈도우 화면을 확대합니다.


메뉴(Menu)

목록에 표시되는 항목들의 집합. 연결메뉴, 메인 메뉴, 오브젝트 메뉴, 팝업 메뉴 및 풀다운 메뉴도 참조하십시오..


메뉴바(Menu Bar)

VEE 윈도우의 최 상단에 있는 바. 메뉴바에는 풀-다운 메뉴나 메인 메뉴의 제목을 표시하여 해당 항목을 선택할 수 있도록 합니다.


메뉴 제목(Menu Title)

메뉴바에 있는 메뉴의 이름. 예를 들면 File 또는 Edit등이 메뉴 제목입니다.


최소화(Minimize)

1. 오브젝트의 오픈뷰를 가장 작은사이즈(아이콘)로 줄이는 것.

2. 윈도우의 오픈뷰를 가장 작은사이즈(아이콘)로 줄이는 것.


최소화 버튼(Minimize Button)

VEE 윈도우나 오브젝트에 최 상단에 있는 버튼으로, VEE 윈도우나 오브젝트를 아이콘화 합니다.


마우스(Mouse)

VEE 윈도우에서 포인터를 이동하기 위하여 면을 따라 움직이는 포인팅 장치.


마우스 버튼(Mouse Button)

마우스에 있는 하나의 버튼으로, 클릭이나 더블클릭을 하면 포인터에 대응하는 특정한 행위를 수행합니다.


네트웍(Network)

데이터를 공유하고 작업을 분배하기 위하여 서로 연결된 컴퓨터와 주변기기들의 집합.


오브젝트(Object)

프로그램내에서 계측기, 컨트롤, 디스플레이, 수학 연산자등과 같은 앨리먼트에 대한 그래픽화된 표현. 프로그램을 생성하기 위하여, 오브젝트는 작업영역에 배치되고 다른 오브젝트에 연결됩니다.


오브젝트 메뉴(Object Menu)

오브젝트 상에서 동작 할 수 있는 항목을 제공하는 메뉴(예, 이동하기, 복사하기, 삭제하기). 오브젝트 메뉴를 디스플레이 하기 위해서는 오브젝트의 좌측 상단에 있는 오브젝트 메뉴 버튼을 클릭하거나, 오브젝트위에 마우스 포인터를 놓고 마우스 오른쪽 버튼을 클릭하십시오.


오브젝트 메뉴 버튼(Object Menu Button)

오픈뷰 상태의 오브젝트의 좌측상단에 있는 버튼으로, 클릭하면 오브젝트 메뉴를 디스플레이 합니다.


열기(Open)

텍스트, 데이터, 그래픽 파일등을 이용하여 작업이나 행위를 시작하는 것. VEE에서 ‘Open’을 선택하면 작업영역에 해당 프로그램이 로딩됩니다.


Open View

오픈뷰(Open View)

VEE 오브젝트의 표현으로써 아이콘뷰 보다 훨씬 많은 정보를 표시합니다. 대부분의 오브젝트 오픈뷰는 오브젝트의 동작을 수정할 수 있는 영역을 제공합니다.


동작(Operate)

오브젝트가 데이터를 처리하고 결과를 출력하는 행위. 오브젝트는 데이터 입력핀이나 시퀀스 입력핀이 활성화되었을 때 동작합니다. 활성화를 참조하십시오.


Operator Interface

사용자 인터페이스(Operator Interface)

VEE 프로그래머가 운영자(최종 사용자)가 프로그램을 제어 할 수 있도록 생성하는 인터페이스. 대표적인 운영자 인터페이스에는 패널뷰 또는 대화상자가 있습니다.


Outline Box

외곽 테두리 박스(Outline Box)

오브젝트나 오브젝트 집합의 바깥 테두리를 표시하는 박스 또는 작업영역에 배치할 오브젝트의 위치를 표시하는 박스.


팔레트(Palette)

VEE에서 사용할 수 있는 색들의 세트


패널 드라이버(Panel Driver)

실제 계측기와 연동하여 계측기를 제어하는 계측기 제어 오브젝트를 의미하며, 오브젝트의 오픈뷰에 디스플레이되는 제어 패널은 실제 계측기의 기능과 매칭이 되어 있습니다.


패널뷰(Panel View)

VEE 프로그램, UserObject 또는 UserFunction을 보여주는 것으로, 사용자가 프로그램을 실행하고 결과 데이터를 볼 수 있게 하는데 필요한 오브젝트들 만을 보여주는 상태. 패널뷰는 작성한 프로그램에 대한 운영자 인터페이스를 생성하는데 사용합니다.


핀(Pin)

오브젝트에 있는 외부 연결 포인트로 라인을 연결할 수 있습니다.


포인터(Pointer)

마우스의 이동 위치를 보여주는 그래픽 이미지. 포인터는 선택을 할 수 있게 해주며, 특정한 프로세스 진행상태를 피드백 해줍니다. VEE는 프로세스 모드에 대응하여 화살표, 십자표시, 모래시계 등과 같은 모양을 제공합니다.


팝업 메뉴(Pop-Up Menu)

마우스 오른쪽 버튼에 의해서 디스플레이 되는 메뉴. 예를 들어 작업영역의 빈 공간에서 마우스 오른쪽 버튼을 클릭하면 Edit 메뉴가 디스플레이 됩니다. 또는, 오브젝트의 비활성화 되어 있는 공간에서 마우스 오른쪽 버튼을 클릭하면 오브젝트 메뉴가 디스플레이 됩니다.


PostRun

프로그램이 정지 했을 때 수행하는 행위들의 집합.


설정(Preferences)

설정(Preference)은 VEE 환경에 대한 속성으로, 툴바의 Default Preferences 버튼이나 메뉴바의 File [image] Default Preferences를 이용하여 변경이 가능합니다. 예를 들어 디폴트 값으로 설정된 색상, 글자체, 숫자 형식등을 변경할 수 있습니다.


PreRun

프로그램을 실행하기 전에 프로그램을 리셋하고 에러를 체크하는 행위.


프로그램(Program)

VEE에서는, 라인으로 연결된 오브젝트들의 집합으로 이루어진 그래픽 프로그램을 지칭합니다. 프로그램은 기술적인 솔루션을 표현합니다.


프로그램 탐색기(Program Explorer)

VEE 윈도우에 있는 기능으로, 프로그램을 탐색하고, 물리적인 화면에서는 볼수 없는 프로그램의 부분을 지칭합니다. (이 프로그램 탐색기는 VEE 프로그램에서만 가능합니다.)


상향 변환(Promote)

적은 정보를 가지고 있는 데이터를 좀더 많은 정보를 가지고 있는 데이터 타입으로 변환하는 것. 데이터 타입 및 하향 변환을 참조하십시오.


데이터 전달(Propagation)

프로그램이나 오브젝트가 동작하거나 실행될 때 따르는 규칙. Data Flow를 참조하십시오.


속성창(Properties)

VEE 오브젝트 속성은 오브젝트 메뉴에 있는 속성창을 이용하여 변경할 수 있습니다.


익수룡(Pterodactyl)

백악기와 쥬라기에 살았던 Pterosauria목에 속하는 멸종된 날아다니는 파충류를 지칭합니다. Pterodactyl는 앞다리에 있는 아주 긴 네번째 발가락에 의해서 피부가 지탱되며, 이 피부의 퍼덕거림으로 날개 짓을 할 수 있는 특징이 있습니다.


풀다운 메뉴(Pull-Down Menu)

마우스 포인터를 메뉴 항목위에 놓거나, 마우스 왼쪽 버튼을 클릭했을 때 메뉴바로부터 당겨져 내려오는 메뉴.


라디오 버튼(Radio Button)

VEE 대화상자에 있는 다이아몬드 모양의 버튼으로, 설정값을 선택할 수 있으며 대화상자에 있는 다른 라디오 버튼을 함께 선택할 수는 없습니다.


레코드(Record)

VEE 데이터 타입으로 다양한 값을 가질 수 있는 지정된 데이터 항목을 가지고 있습니다. 레코드는 정보 중에서 관련된 항목들의 그룹으로 사용됩니다. 반면에 각 레코드 항목은 다른 데이터 타입을 가질 수 있습니다. 각 항목은 다른 레코드 컨테이너, 스칼라 또는 어레이를 가질 수 있습니다. 레코드 데이터 타입은 모든 VEE 데이터 타입에 대하여 최상위 타입 우선순위가 적용됩니다. 그러나 데이터는 자동으로 상향/하향되는 처리를 통해서 레코드 데이터 타입으로 또는 타입에서 변환될 수 없습니다. 레코드는 Build Record 오브젝트 및 Unbuild Record 오브젝트를 사용하여 레코드 생성 및 레코드 해제가 되야 합니다.


리모트 함수(Remote Function)

로컬 호스트로부터 호출할 수 있는 UserFunction. (리모트 함수는VEE Pro에서만 지원합니다.) Import Library 오브젝트는 원격 호스트에서 처리를 실행하고, 원격 호스트상에서 UserFunction을 VEE 프로세스로 로딩합니다. Call Function 오브젝트나 일정한 표현식을 이용하여 리모트 함수를 호출하여 사용할 수 있습니다. UserFunction, 리모트 함수 및 컴파일된 함수를 참조하십시오.


복원하기(Restore)

축소된 윈도우 또는 아이콘을 더블 클릭하여 윈도우 화면과 같은 전체크기나 오픈뷰로 되돌아가는 것.


실행(Run)

프로그램상에서 오브젝트를 시작하거나 쓰레드 동작을 하는 것.


저장하기(Save)

하드디스크와 같은 저장장치에 파일을 저장하는 것.


스칼라(Scalar)

하나의 값을 가진 데이터 형태. 테이터 형태도 참조하십시오.


스키마(Schema)

데이터 레코드를 정의하는데 사용하는 구조나 틀. 스키마는 각 필드의 이름, 종류, 형태(차원) 및 매핑을 가지고 있습니다.


스크린 덤프(Screen Dump)

화면의 전체나 일부를 이미지로 출력하는 것.


스크롤(Scroll)

데이터 파일의 목록을 이동하여 보거나, 대화상자에서 다른 선택항목으로 이동할 때 또는 작업영역을 움직일 때 스크롤바를 사용하는 행위를 지칭합니다.


스크롤 화살표(Scroll Arrow)

데이터 파일의 목록을 이동하여 보거나, 대화상자에서 다른 선택항목으로 이동할 때 또는 작업영역을 움직이기 위해 클릭하는 화살표를 지칭합니다.


스크롤 바(Scroll Bar)

데이터 파일의 목록을 이동하여 보거나, 대화상자에서 다른 선택항목으로 이동할 때 또는 작업영역을 움직이기 위해 드래그하는 사각형의 바(bar)를 지칭합니다.


선택하기(Select)

오브젝트, 수행되어야 하는 행동 또는 메뉴 항목을 고르는 것을 지칭합니다. 마우스로 클릭하여 선택합니다.


선택 코드(Select Code)

하드웨어 인터페이스의 어드레스를 확인하기 위해 사용하는 숫자. ‘선택코드(select code)’는 논리적인 단위를 대체하여 사용합니다.


선택(Selection)

1. 메뉴 선택

2. VEE 윈도우에서 선택할 수 있는 오브젝트나 행위


선택 항목(Selection Field)

오브젝트나 대화상자에 있는 항목으로, 드롭다운 목록에서 항목을 선택할 수 있습니다.


시퀀스 입력핀(Sequence Input Pin)

오브젝트의 위쪽에 있는 핀. 오브젝트는 핀이 컨테이너를 수신할 때까지(핑 될때까지) 실행을 보류하고 있습니다.


시퀀스 입력핀(Sequence Input Pin)

시퀀스 출력핀(Sequence Output Pin)

오브젝트의 아래쪽에 있는 핀. 오브젝트가 실행을 마치고 모든 데이터를 전달했을 때 이 출력핀은 활성화 됩니다.


Sequencer 오브젝트

일련의 시퀀스 트랜잭션(UserFunction, Compiled Function 또는 Remote Function)을 통해서 실행순서를 제어하는 오브젝트. Sequencer 오브젝트는 일련의 시퀀스 트랜잭션를 표현하여 일련의 테스트를 수행하는데 사용됩니다.


슬립상태(Sleep)

실행이나 실행완료를 위한 시간간격을 대기하거나, 이벤트가 발생할 때까지 대기하는 실행을 수행하는 동안에는 오브젝트는 동작을 멈추고 대기상태에 있습니다.


시작 디렉토리(Startup Directory)

작업 디렉토리를 참조하십시오.


상태(State)

VEE 계측기 패널에 관련된 모든 컴포넌트를 위한 특정한 값들로써, 계측기의 측정상태를 표시합니다. 예를 들어, 디지털 멀티미터는 고속 전압읽기 상태와 고정밀 저항측정 상태를 사용합니다. 인스트루먼트 패널을 참조하십시오.


상태바(Status Bar)

VEE 윈도우의 아래에 있는 라인으로, VEE에 대한 현재 상태 및 정보를 디스플레이 합니다.


상태 필드(Status Field)

편집할 수 없는 정보를 디스플레이 하는 항목. 상태 항목은 입력 항목처럼 보이나 배경이 회색입니다.


단계별 실행(Step)

프로그램을 수정하기 위해서, 한번에 하나의 오브젝트를 수행하는 동작. 다음에 동작할 오브젝트는 노란색 테두리로 표시됩니다. VEE는 UserObject 또는 UserFunction에 있는 오브젝트의 동작을 제어하기 위하여 Step Into, Step Over 및 Step Out등의 3가지 방법을 제공합니다.


터미날(Terminal)

핀에 대한 내부적인 표시로써, 핀과 핀에 의해서 홀드된 데이터 컨테이너의 정보를 디스플레이 합니다. 컨테이너 정보를 보기 위해서는 터미날을 더블 클릭합니다.


터미날 영역(Terminal Area)

오브젝트의 왼쪽이나 오른쪽에 있는 영역으로, 이 영역에는 오브젝트 메뉴에서 Show Terminal 항목이 True로 되어 있을 때 터미날이 디스플레이 됩니다. 입력터미날 영역은 오브젝트의 왼쪽이고, 출력터미날 영역은 오브젝트의 오른쪽에 있습니다.


쓰레드(Thread)

VEE 프로그램상에서 라인으로 연결된 오브젝트들의 집합. 복수의 쓰레드로 이루어진 프로그램은 모든 쓰레드를 동시에 실행할 수 있습니다.


타이틀바(Title Bar)

오브젝트나 윈도우의 오픈뷰상태에서 가장 상단의 사각형 바를 지칭하며, 오브젝트나 윈도우의 제목을 표시합니다. 오브젝트 메뉴의 Properties를 이용하여 오브젝트 타이틀바를 숨길 수도 있습니다.


툴바(Tool Bar)

VEE 윈도우의 맨위에 있는 사각형의 바를 이야기 하며, 이 영역에는 자주 사용하는 명령을 신속하게 접근하기 위하여 버튼을 제공합니다. 이 버튼은 File, Edit, View, Debug 또는 Device 같은 메뉴에 있는 명령을 실행합니다.


트랜잭션(Transaction)

VEE에 있는 오브젝트를 사용하여 입력이나 출력을 요구하는 것. 트랜잭션을 사용할 수 있는 오브젝트는 To File, From File, Direct I/O 또는 Sequencer 오브젝트등이 있습니다. 트랜잭션은 이들 오브젝트의 오픈뷰상에서 관용구로 나타납니다.


트리그 모드(Trig Mode)

Trig Mode는 degree, radian, 또는 gradian으로 표시되는 삼각법에 의한 값을 결정하는 속성입니다. VEE는 삼각법에 의한 값을 자동으로 라디안으로 변환하여 연산합니다.


사용자 지정 함수(User-Defined Function)

사용자가 생성하여 VEE 프로그램에서 호출할 수 있는 함수를 지칭하며, 3가지 타입의 사용자 지정 함수를 생성할 수 있습니다. 사용자 지정 함수는 Call Function 오브젝트 또는 어떤 표현식에 의해서 호출하여 사용할 수 있습니다. UserFunction, C컴파일된 함수 및 리모트 함수도 참조하십시오.


UserFunction

UserFunction 윈도우에서 직접 생성하거나, 기존에 있는 UserObject에서 생성하는 하나의 사용자 지정 함수. UserFunction은 VEE의 포로세스의 백그라운드에 존재합니다. 그러나 기능적으로는 UserObject와 같습니다. UserFunction은 Call Function 오브젝트 또는 표현식을 이용하여 호출할 수 있습니다. UserFunction 은 현재 작업중인 영역에서 생성하고 호출할 수 있습니다. 또는 라이브러리로 저장되어 Import Library 오브젝트를 사용하여 임포트할 수 있습니다. (UserFunction의 임포트는 VEE Pro에서만 지원됩니다.) 컴파일된 함수, 리모트 함수 및 UserObject도 참조하십시오.


UserObject

프로그램내에서 특정한 목적을 수행하기 위하여 오브젝트들을 모아서 사용자가 생성한 오브젝트. UserObject는 top-down 방식으로 프로그램을 만들 수 있고, 라이브러리로 저장되고 다시 호출하여 사용할 수 있는 사용자 정의 오브젝트로 만들 수 있습니다.


변수(Variable)

선언을 하거나 선언하지 않은 변수. 변수는 Declare Variable을 이용하여 local, global to context 또는 global to library로 선언될 수 있습니다. 지역변수와 전역변수는 선언 여부와는 상관없이 실행할 때 값을 설정할 수 있습니다. 그러나 프로그램은 선언된 변수에서 훨씬 더 빨리 실행됩니다.


뷰(View)

VEE는 다양한 뷰(보기)로 프로그램과 오브젝트를 표현합니다. 프로그램은 디테일뷰 또는 오픈뷰로 표현되고, 오브젝트는 오픈뷰와 아이콘뷰로 표현됩니다. 디테일뷰, 아이콘, 오픈뷰 및 패널뷰도 참조하십시오.


대기(Wait)

슬립상태를 참조하십시오.


윈도우(Window)

Agient VEE 같은 애플리케이션 프로그램이 실행되는 컴퓨터 화면에 있는 사각형의 영역.


윈도우 2000과 XP

VEE가 실행되는 마이크로소프트에 의해 개발된 윈도우 인터페이스가 제공되는 운영체제. 윈도우 2000과 윈도우 XP는 32비트 애플리케이션을 실행하고, 뚜렷한 사용자영역과 커널영역으로 분리되는 특징을 가집니다.


작업영역(Work Area)

메인, UserObject 또는 UserFunction 윈도우에 있는 영역으로 VEE 프로그램을 생성하기위하여 VEE 오브젝트나 오브젝트를 서로 연결하여 배치합니다. 프로그램을 열면 메인 윈도우의 작업영역에 로딩됩니다.


Work Space

작업 공간(Work Space)

메인, UserObject 또는 UserFunction같은 프로그램밍 윈도우 또는 편집 윈도우를 포함하는 VEE 윈도우에 있는 공간. VEE 프로그램을 생성하기 위하여 VEE 오브젝트나 오브젝트를 서로 연결하여 배치할 수 있는 작업영역을 포함합니다.


작업 디렉토리(Working Directory)

VEE가 실행되는 디렉토리. 예를 들어 ‘C:\Program Files\Agilent\VEE Pro 8.0’은 VEE Pro의 디폴트 작업 디렉토리입니다. 작업 디렉토리는 VEE를 시작하기 위해 줄임말로 사용되기 때문에 종종 ‘시작 디렉토리(startup directory)’로 불립니다.


XEQ Pin

데이터 입력이나 시퀀스 입력핀의 활성화에 상관없이 오브젝트를 실행하는 핀으로, Collector 및 Sample & Hold 오브젝트에만 있습니다. 컨트롤핀, 데이터 입력핀 및 시퀀스 입력 핀도 참조하십시오.


Agilent VEE Pro에서의 .NET 에러

VEE는 .NET이 전달한 모든 정보를 제공합니다. 대부분의 경우 일정한 .NET 메서드는 예외에 대한 성격을 파악하기 위한 충분한 정보를 제공합니다. 만약 이러한 정보들이 없다면 MSDN에 있는 예외사항을 참조하시기 바랍니다.

다양한 종류의 예외사항들은 스스로 표현하는 기능을 가지고 있으며, 아래는 하나의 예 입니다.

아래는 빈번하지는 않지만 통상적인 에러이며, 메서드 항목은 에러의 원인을 나타냅니다.


Access Array 메뉴항목

메뉴바의 Data 메뉴 아래에 있는 Access Array 메뉴항목에서 제공하는 기능

사용법

Access Array 메뉴항목은 어레이를 변경하기 위한 오브젝트를 생성할 때 사용합니다.

Set Values

Get Values

Set Mappings

Get Mappings

주의사항

이 오브젝트들은 새로 생성한 어레이의 앨리먼트를 수정할 때 혹은 매핑을 추가할 때 사용하며, 일반적으로 Allocate Array 메뉴항목 아래에 있는 오브젝트를 생성한 후에 사용합니다.

오브젝트 위치

Data [image] Access Array

관련정보

Allocate Array 메뉴항목, Get Mappings, Get Values, Set Mappings, Set Values 및 오브젝트 메뉴.

어레이에서 값 추출하기


Access Record 메뉴항목

메뉴바의 Data 메뉴 아래에 있는 Access Record 메뉴항목에서 제공하는 기능

사용법

Access Record 메뉴항목은 레코드를 변경하기 위한 오브젝트를 생성할 때 사용합니다.

Merge Record

SubRecord

Set Field

Get Field

주의사항

이 오브젝트 들은 레코드의 앨리먼트를 수정할 때, 레코드를 병합할 때 혹은 레코드의 일정부분을 수정할 때 사용합니다. 일반적으로 Build Record 오브젝트를 생성한 다음에 사용합니다.

오브젝트 위치

Data [image] Access Record

관련정보

Build Record, Merge Record, SubRecord, Set Field, Get Field 및 오브젝트 메뉴.

레코드의 필드 변경하기


Accumulator 오브젝트

입력된 값을 합산하여 디스플레이하고 출력하는 오브젝트

사용법

Accumulator 오브젝트는 합산하는데 사용합니다.

오브젝트 메뉴

Clear - Accumulator 오브젝트내의 값을 0으로 초기화 합니다.

주의사항

합산된 출력데이터의 타입은 입력된 값의 최상위 순서의 타입과 같습니다. 입력데이터의 타입이 Real64 와 Int32인 경우에는 출력데이터의 타입은 Real64입니다.

예를 들어, Accumulator에 Real64 타입이 입력되고 다시 Complex 타입의 데이터가 입력되면, 현재의 축적된 값은 Complex 타입의 데이터입니다; Accumulator 오브젝트가 Real64 데이터를 Complex 데이터로 변환한 것입니다. 만약 입력된 데이터 중에 텍스트가 있다면 모든 입력데이터는 텍스트로 변환됩니다.

데이터 타입을 혼용하여 사용할 경우에는 주의하십시오. 입력 데이터와 출력데이터는 다를수 있습니다. 만약 입력데이터가 실수, 실수, 텍스트인 경우에는 Accumulator는 두개의 실수를 합산하고 이를 텍스트로 변환합니다. 그리고 변환된 텍스트 뒤에 입력된 텍스트를 추가합니다. 또 다른 경우, 입력데이터가 텍스트, 실수, 실수인 경우에는 Accumulator는 두개의 실수(real)를 텍스트로 변환하고 입력된 텍스트 뒤에 추가합니다. 즉 두개의 실수는 합산되지 않고 두개의 독립된 숫자로 남아있습니다.

오브젝트 위치

Device [image] Accumulator

관련정보

Counter, 속성창 (오브젝트) 및 오브젝트 메뉴.


브레이크포인트 활성화

메뉴바의 Debug 메뉴 아래에 있는 Activate Breakpoints 항목을 체크하면 브레이크포인트가 지정된 모든 오브젝트의 브레이크포인트가 활성화 되고, 체크를 하지 않으면 모든 브레이크포인트가 비활성화되어 브레이크포인트가 동작하지 않습니다.

사용법

프로그램 개발 시 일반적인 프로그램 실행 모드와 디버깅 모드로 구분하여 활용이 가능합니다. 메뉴에서 Activate Breakpoint가 체크되어 있으면 브레이크포인트가 활성화되어 프로그램을 실행할 경우에 브레이크포인트를 만나면 프로그램이 중지됩니다.

주의사항

Activate Breakpoint가 비활성화(메뉴에 체크 안된 경우) 되어 있을지라도 브레이크포인트가 설정된 오브젝트는 박스 둘레가 오렌지색(디폴트 색상)으로 계속 나타납니다. 즉 Activate Breakpoint의 활성화 여부에 상관없이 브레이크포인트가 설정되어 있는 것을 오브젝트의 속성에서 확인할 수 있습니다.

브레이크 포인트는 Default Preferences에 있는 Disable Debugging Features 박스가 체크 되어 있지 않은 경우에는 VEE 4이상 버전에서 VEE4 이상의 execution modes에서만 동작합니다. 오브젝트에 브레이크 포인트를 설정했을 때, Step Into에서는 브레이크가 동작하고 Step Over에서는 브레이크가 동작하지 않습니다.

오브젝트 위치

Debug [image] Activate Breakpoints

관련정보

모든 브레이크포인트 해제하기, Ddfault Preferences 대화상자, 속성창 (오브젝트), Step Into 메뉴항목, Step Over 메뉴항목 및 Toggle Breakpoint 메뉴항목.


ActiveX Automation References 대화상자

ActiveX Automation References 대화상자는 VEE에서 참조하여 사용할 수 있는 ActiveX Automation 라이브러리를 디스플레이 합니다.

사용법

ActiveX Automation References 대화상자를 통해서 VEE에서 다른 어플리케이션을 제어할 때 사용할 수 있는 ActiveX automation 라이브러리를 선택할 수 있습니다. PC의 Windows 레지스트리에 설치된 어플리케이션을 인식을 하기 때문에 ActiveX Automation References 대화상자에는 관련된 라이브러리가 디스플레이 됩니다. 필요한 라이브러리를 선택하여 체크하고 OK 버튼을 누르면, 오브젝트 클래스, 인터페이스 및 노출된 이벤트를 VEE에서 사용할 수 있도록 메모리에 로딩됩니다. 프로그램에서 사용하고자 하는 이벤트와 관련된 라이브러리 만을 선택해야 하며, 대화상자에서 선택한 라이브러리는 Function & Object Browser 대화상자에 기능별로(속성, 메서드, 목록, 이벤트) 분류되어 나타납니다.

라이브러리를 사용하기 위해서는, ActiveX Automation 오브젝트와 연결하여 사용하고자 하는 오브젝트를 built-in functions에서 CreateObject() 하거나 GetObject()해야 합니다. 사용하고자 하는 라이브러리를 선택한 다음에는 Function & Object Browser (Device Function & Object Browser)를 실행하고 Type 창에 있는 ActiveX Objects를 선택합니다. Member 창에는 프로그램에서 사용할 수 있는 오브젝트들을 표시합니다. 속성이나 콜 메서드를 설정하는 등의 추가적인 기능에 대해서는 Formula를 이용하여 표현식을 추가하여 사용하십시오.

대화상자 설명

Registered Automation Servers: - 등록된 ActiveX automation 라이브러리의 리스트를 보여줍니다. 라이브러리를 선택하여 하이라이트 시키면 리스트창 아래에 관련 정보가 나타납니다. 라이브러리 왼쪽의 체크박스를 선택하고 OK버튼을 클릭하면 VEE에서 해당 라이브러리를 사용할 수 있습니다.

Browse... - 라이브러리가 있는데도 리스트에 나타나지 않았을 경우에는 Browse 버튼을눌러 Add ActiveX Automation Reference 화면에서 해당 라이브러리를 찾을 수 있습니다. 라이브러리를 찾아서 선택하고 열기(Open) 버튼을 누르면 VEE는 라이브러리 리스트에 이를 추가하고 등록합니다. VEE에서 라이브러리를 사용하고자 할 때는 반드시 라이브러리 왼쪽의 박스를 체크하고 OK 버튼을 클릭해야 합니다.

주의사항

ActiveX는 반드시 VEE 5 이상에서 실행됩니다. VEE 실행모드는 Default Preference에서 설정할 수 있습니다. ActiveX Automation은 VEE를 어플리케이션의 Automation Controller처럼 사용할 수 있습니다.  이러한 것들이 VEE가 Microsoft Word, Excel, Access 등의 어플리케이션과 상호작용하여 보고서를 작성할 수 있습니다. VEE는 다른 어플리케이션을 유연하게 사용할 수 있도록 하고, 과거의 DDE(Dynamic Data Exchange) 기능을 대체 합니다.

어플리케이션을 설치할 때 어플리케이션이 가지고 있는 ActiveX automation 라이브러리가 설치됩니다.

메모리의 한계를 고려하여 프로그램에 필요한 라이브러리만을 선택하여 사용하십시오.

ActiveX reference를 메모리에서 삭제와 관련된 정보를 위해서는 CreateObject를 참조하십시오.

오브젝트 위치

Device [image] ActiveX Automation References...

관련정보

ActiveX Control References 대화상자, Default Preferences 대화상자, Formula, Function & Object Browser 메뉴항목, CreateObject, GetObject 및 ActiveX 컨트롤

Help => Contents and Index=> Tell Me About...=> ActiveX를 참조하십시오.

ActiveX 예제 디렉토리에 있는 예제 프로그램을 참조하십시오.
Help   [image] Open Example…


ActiveX Control Host 오브젝트

VEE 작업영역에 추가된 ActiveX 컨트롤을 호스팅하는 VEE 오브젝트

사용법

ActiveX Control Host는 ActiveX 컨트롤을 위한 컨테이너로 사용됩니다. 작업영역에 ActiveX 컨트롤을 추가하면 (Device [image] ActiveX Controls), VEE는 컨테이너를 생성하고 다른 VEE 오브젝트를 사용하는 것과 마찬가지로 생성한 컨테이너를 사용 할 수 있게 됩니다. 컨트롤의 개발자에 의해 만들어진 특수한 속성을 사용하여 컨테이너의 속성을 사용할 수 있습니다.

VEE 작업영역에 ActiveX 컨트롤을 생성하면, 생성된 컨트롤의 타이틀바에 컨트롤의 제목과 변수이름이 나타납니다. 이 컨트롤은 라인을 이용하여 다른 오브젝트에 연결할 수 있는 핀(Pin)을 가지고 있지 않습니다. 속성을 읽거나 설정하거나 메서드를 호출할 때 사용하는 변수이름을 참조하여 표현식을 사용해야 합니다. VEE의 Function & Object Browser (Device [image] Function & Object Browser) 는 Formula 오브젝트에서 이러한 표현식을 쉽게 생성할 수 있습니다. 변수 이름은 컨트롤의 이미 선언된 변수이름입니다. 이미 초기화된 컨트롤의 변수를 제외하고, 컨트롤의 선언된 변수이름은 Declare Variable 오브젝트를 이용하여 생성한 변수와 유사합니다. 선언의 scope는 local-to-context이기 때문에 변수 이름은 단지 그 컨트롤이 있는 작업영역의 레벨에서만 사용이 가능합니다. ActiveX 컨트롤을 전역변수로 쓰기 위한 정보는 아래의 주의사항을 참조하십시오.

오브젝트 메뉴

  • Help - 오브젝트를 설명하는 VEE Help를 제공합니다.

  • Properties - 제목, 변수이름, 색상, 폰트, 아이콘뷰등 VEE 컨테이너 오브젝트의 속성을 변경할 수 있습니다.

  • Control Properties - 등록정보 화면을 통해서 컨트롤 개발자에 의해서 만들어진 속성을 변경할 수 있습니다. 각각의 컨트롤은 다른 속성을 가지고 있으며, 등록정보 화면의 도움말 버튼은 좀더 많은 정보를 제공합니다.

  • Edit Event Handler... - 컨트롤을 위하여 어떤 이벤트 핸들러 UserFunction이 생성되어 있다면 Edit Event Handler 대화상자를 표시합니다.

  • Create Event Handler... - Create Event Handler UserFunction 브라우저를 표시합니다. 이 브라우저는 컨트롤에 의해서 생성된 이벤트를 사용하기 위한 UserFuntion을 생성합니다. 브라우저의 Member 창에 나타난 이벤트 리스트에서 이벤트를 선택하여 사용합니다.

오브젝트의 속성(container 오브젝트)

 Title - 컨테이너 오브젝트의 제목을 나타내며 수정할 수 있습니다.

 Name - 컨트롤의 지역변수 이름을 나타내며 수정할 수 있습니다. 이 컨트롤은 local-to-context 변수로 선언되어 초기화 됩니다.

주의사항

ActiveX는 반드시 VEE 5 이상에서 실행됩니다. VEE 실행모드는 Default Preference에서 설정할 수 있습니다. ActiveX Control은 별개의 제품으로도 사용이 가능하고, 커다란 어플리케이션의 한 부분으로 설치될 수도 있습니다.

VEE는 모든 ActiveX 컨트롤을 지원하지는 않습니다. 만약 컨트롤이 VEE와 맞지 않는다면 프로그램에서 컨트롤을 추가하거나 사용할 때는 에러가 발생합니다.

VEE 작업창에 ActiveX 컨트롤을 추가하면, 컨트롤의 타이틀바에 설정된 지역변수 이름이 나타납니다. 설정된 변수 이름은 컨트롤의 타이틀바를 더블 클릭하여 왼쪽의 속성창에서 변경할 수 있습니다. Design영역에서는 변수이름(Name)을 변경할 수 있습니다. 생성된 컨트롤은 라인을 이용하여 다른 오브젝트와 연결할 수 있는 핀(Pin)을 가지고 있지 때문에, 컨트롤의 변수이름을 참조하여 Formula 오브젝트에서 표현식으로 제어해야 합니다. 변수가 local-to-context이기 때문에 표현식은 컨트롤과 같은 컨텍스트에서 사용해야 합니다.

변수이름으로 globalA을 사용하고자 한다면, Declare Variable  (Data [image] Variable [image] Declare Variable)을 이용하여 Name항목에 새로운 이름을 선언하십시오. 이미 컨트롤의 변수이름으로 사용하고 있다면, globalA라는 이름으로 선언을 할 수는 없습니다; VEE는 이러한 충돌을 허용하지 않습니다. Declare Variable에서 변수이름을 입력하고 Scope항목을 Global로, Type 항목을 Object로 셋팅합니다. 일일이 오브젝트 타입을 특정하게 지정할 필요는 없습니다; 오브젝트 타입을 세부적으로 지정하지 않아도 VEE는 자동으로 체크하여 선언된 변수에 라이브러리와 클래스를 배정시킵니다. 컨트롤의 지역변수(Calendar1)를 아래의 표현식처럼 선언된 변수(g_calendar1)와 동일하게 설정할 수 있습니다.

Set g_calendar1 = Calendar1

오브젝트 위치

Device [image] ActiveX Controls

관련정보

ActiveX Control References 대화상자, Declare Variable, Default Preferences 대화상자, Formula, Function & Object Browser 메뉴항목, ActiveX 컨트롤

Help => Contents and Index=> Tell Me About...=> ActiveX를 참조하십시오.

ActiveX 예제 디렉토리에 있는 예제 프로그램을 참조하십시오.
Help [image] Open Example...


ActiveX Control References 대화상자

VEE에서 사용할 수 있는 ActiveX 컨트롤을 사용할 수 있도록 하기 위한 ActiveX Control References 대화상자를 디스플레이 합니다.

사용법

ActiveX Control References 대화상자를 통해서 VEE에서 사용하고자 하는 ActiveX 컨트롤을 선택할 수 있습니다. PC의 Windows 레지스트리가 설치된 애플리케이션을 인식을 하기 때문에 ActiveX Control References 대화상자에는 관련된 ActiveX 컨트롤들이 디스플레이 됩니다. 원하는 ActiveX 컨트롤을 선택하여 체크하고 OK 버튼을 누르면 VEE에서 사용할 수 있도록 메모리에 로딩됩니다. 따라서 오브젝트 클래스, 인터페이스, 이벤트를 찾을 수 있게 됩니다.

사용하고자 하는 ActiveX 컨트롤을 선택한 다음에는 VEE 오브젝트를 생성할 때와 동일하게 프로그램의 작업창에 배치합니다. 생성한 오브젝트의 타이틀바에는 변수의 이름이 나타납니다. 다른 오브젝트들과는 다르게 핀(Pin)이 없기 때문에 컨트롤 오브젝트의 변수이름을 공식(Formula)에 표현하여 동작을 시켜야 합니다. VEE 메뉴바의 Device 메뉴에서 Function & Object Browser (Device [image] Function & Object Browser)를 실행하고 Type 항목 내에 있는 ActiveX Objects를 선택하여 이들을 활용할 수 있습니다.

대화상자 설명

Registered Controls: - 등록된 ActiveX 라이브러리의 리스트를 보여줍니다. 라이브러리를 선택하여 하이라이트 시키면 리스트창 아래에 관련 정보가 나타납니다. 라이브러리 왼쪽의 체크박스를 선택하고 OK버튼을 클릭하면 VEE에서 해당 라이브러리를 사용할 수 있습니다.

Browse... - 라이브러리가 있는데도 리스트에 나타나지 않았을 경우에는 Browse 버튼을 눌러 Add ActiveX Control Reference 화면에서 해당 라이브러리를 찾을 수 있습니다. 라이브러리를 찾아서 선택하고 열기(Open) 버튼을 누르면 VEE는 라이브러리 리스트에 이를 추가하고 등록합니다. VEE에서 라이브러리를 사용하고자 할 때는 반드시 라이브러리 왼쪽의 박스를 체크하고 OK 버튼을 클릭해야 합니다.

주의사항

ActiveX를 지원하기 위해서는 VEE가 반드시 VEE 5 이상으로 실행모드로 설정되어야 하며, 이는 Default Preference에서 설정할 수 있습니다. ActiveX Control은 별개의 제품으로도 사용이 가능하고, 커다란 어플리케이션의 한 부분으로 설치될 수도 있습니다.

O메모리의 한계를 고려하여 프로그램에 필요한 컨트롤만을 선택하여 사용하십시오.

ActiveX Control Reference 대화상자에서 컨트롤을 선택한 후에는 VEE가 컨트롤 이름들을 메뉴바의  Device [image] ActiveX Controls 메뉴에 등록합니다.  일반적으로 하나 이상의 ActiveX 컨트롤이 메뉴에 추가 됩니다.

VEE는 모든 ActiveX 컨트롤을 지원하지는 않습니다. 만약 컨트롤이 VEE와 맞지 않는다면 프로그램에서 컨트롤을 추가하거나 사용할 때는 에러가 발생합니다.

오브젝트 위치

Device [image] ActiveX Control References...

관련정보

ActiveX Automation References 대화상자, ActiveX Controls, Declare Variable, Default Preferences 대화상자, Formula, Function & Object Browser, ActiveX Examples 대화상자

Help => Contents and Index=> Tell Me About...=> ActiveX를 참조하십시오.

ActiveX 예제 디렉토리의 예제 프로그램을 참조하십시오.
Help [image] Open Example...


ActiveX Control 오브젝트

메뉴바의 Device 메뉴에 있는 ActiveX Controls 메뉴항목을 이용하여 VEE 작업영역에 ActiveX 컨트롤을 추가합니다.

사용법

ActiveX Control 메뉴항목을 통하여 VEE에서 사용 가능한 ActiveX 컨트롤을 선택하여 사용합니다. ActiveX Control 메뉴에는 ActiveX Control References 대화상자 (Device [image] ActiveX Controls Reference...)선택한 컨트롤들이 메뉴로 나열됩니다.

주의사항

ActiveX를 지원하기 위해서는 VEE가 반드시 VEE 5 이상으로 실행모드가 설정되어야 하며, 이는 Default Preference에서 설정이 가능합니다. ActiveX Control은 별개의 제품으로도 사용이 가능하고, 커다란 어플리케이션의 한 부분으로 설치될 수도 있습니다.

VEE는 모든 ActiveX 컨트롤을 지원하지는 않습니다. 만약 컨트롤이 VEE와 맞지 않는다면 프로그램에서 컨트롤을 추가하거나 사용할 때는 에러가 발생합니다.

오브젝트 위치

Device [image] ActiveX Controls

관련정보

ActiveX Control Host, ActiveX Control References 대화상자, Default Preferences 대화상자, ActiveX 컨트롤

Help => Contents and Index=> Tell Me About...=> ActiveX를 참조하십시오.

ActiveX 예제 디렉토리의 예제 프로그램을 참조하십시오.
Help [image] Open Example...


Add Days 오브젝트

주어진 날짜에 날짜를 더할 때 사용합니다.

오브젝트 위치

System [image] DateTime [image] Add Days


Add Hours 오브젝트

주어진 시간에 시간을 더할 때 사용합니다.

오브젝트 위치

System [image] DateTime [image] Add Hours


Add Minutes 오브젝트

주어진 분(Minute)에 분을 더할 때 사용합니다.

오브젝트 위치

System [image] DateTime [image] Add Minutes


Add Months 오브젝트

주어진 월(Month)에 월을 더할 때 사용합니다.

오브젝트 위치

System [image] DateTime [image] Add Months


Add Seconds 오브젝트

주어진 초(Second)에 초를 더할 때 사용합니다.

오브젝트 위치

System [image] DateTime [image] Add Seconds


Add Terminal 메뉴항목

메뉴항목

사용법

Add Terminal은 터미날을 추가하기 위하여 다음 항목을 제공합니다:

Data Input

Control Input

Data Output

Error Output

단축키

입력 터미날 또는 출력 터미날의 디스플레이 영역에 커서를 놓고 CTRL+A를 눌러 데이터 터미날을 추가할 수 있습니다. CTRL+A를 누를 때마다 커서가 있는 위치에 데이터 터미날이 추가 됩니다.

오브젝트 위치

각 오브젝트 메뉴 [image] Add Terminal

관련정보

속성창 (오브젝트), Line Probe, Delete Terminal 메뉴항목, Control Input 메뉴항목(오브젝트 메뉴), Data Input 메뉴항목(오브젝트 메뉴), Data Output 메뉴항목(오브젝트 메뉴) 및 Error Output 메뉴항목(오브젝트 메뉴).

UserObject에 입력터미날 및 출력터미날 추가하기

자동으로 디스플레이 크기 조정하기

프로그램상으로 파일이름 선택하기


Add To Panel 메뉴항목

VEE 프로그램에서 선택한 오브젝트를 관련된 패널에 추가합니다.

사용법

Add To Panel을 사용하여 선택한 오브젝트들을 패널뷰에 배치하여 작성한 프로그램에 대한 사용자 인터페이스를 만들 수 있습니다. 예를 들어, 패널뷰는 단지 프로그램의 오브젝트와 입력창을 디스플레이 합니다; 프로그램 전체를 표시하는 것은 아닙니다.

패널뷰가 생성되어 있다면, UserObject나 UserFunction 화면의 타이틀바에 있는 2개의 버튼은 원하는 뷰(패널뷰, 디테일뷰)를 선택할 수 있습니다.

생성된 패널뷰가 없는 상태에서 Add To Panel을 선택하면 패널뷰가 생성됩니다.

주의사항

오브젝트를 선택하지 않은 상태에서는 Add To Panel 메뉴는 활성화되지 않습니다.

UserObject의 패널뷰는 메인 패널뷰나 상위의 UserObject 패널뷰에 추가할 수 있습니다. 즉 패널을 끼워 넣을 수 있습니다. 패널이 상위 패널에 추가되면 원래(Source) 패널의 복사된 패널이 만들어 집니다. 원래의 패널이 수정되면 모든 복사된 패널 역시 수정됩니다.

UserObject 패널을 메인 패널 같은 상위 패널에 추가하는 방법

1. UserObject와 UserObject의 패널을 생성한 다음에, 메인화면에서 UserObject의 아이콘뷰 위에 마우스를 놓고 오른쪽 버튼을 클릭하면 오브젝트 메뉴가 나타납니다.

2. Restore 메뉴를 클릭하여 UserObject의 오픈뷰를 디스플레이 합니다. 오픈뷰는 마치 패널뷰와 같이 나타납니다. 이 오픈뷰를 삭제하지 마십시오. 이는 상위 프로그램에서 UserObject를 삭제하는 것과 같습니다.

3. UserObject를 클릭하여 선택하십시오.

4. 툴바에서 Add To Panel (Edit Add To Panel)을 클릭하면 UserObject가 상위 패널에 생성됩니다.

오브젝트 위치

Edit [image] Add To Panel

또는 UserObject의 오브젝트 메뉴 Edit [image] Add To Panel

관련정보

UserObject 생성, Delete 메뉴항목 (오브젝트 메뉴), 런타임 버전 생성, Select All 메뉴항목, 디테일뷰 보기 버튼 및 패널 뷰 전환.

메인패널에 UserObject 패널 추가하기

네스팅된 UserObject 패널에 오브젝트 추가하기

패널에 오브젝트 추가하기

UserFunction 패널 생성하기

UserObject 패널 생성하기


Add Years 오브젝트

주어진 년(Year)에 년을 더할 때 사용합니다.

오브젝트 위치

System [image] DateTime [image] Add Years


Advanced Instrument Properties 대화상자

인스트루먼트 디바이스 드라이버 및 인터페이스 통신 인자를 설정하는 대화상자

사용법

Instrument Properties 대화상자에서 Interface 타입(GPIB, Serial 등)을 선택한 후, Advanced... 버튼을 클릭하면 Advanced Instrument Properties 대화상자가 표시됩니다.

아래 인터페이스 타입에 따라서 각각 사용하는 6 가지 형태의 Advanced Instrument Properties 대화상자가 있습니다:

1. GPIB

2. Serial

3. GPIO

4. VXI

5. TCPIP

6. USB

대화상자 설명

Advanced Instrument Properties 대화상자에는 다음과 같은 탭과 필드가 있습니다

주의
각 인터페이스(GPIB, Serial, GPIO, VXI, TCPIP, 또는 USB)에서 동일한 통신변수를 사용하지는 않습니다. 예를 들어, GPIO 인터페이스의 Direct I/O 탭에서는 GPIB 인터페이스의 Direct I/O 탭에서 사용하는 내용중 일부분만 사용합니다. 아래의 탭 설명에서는 모든 인터페이스의 모든 탭의 내용을 설명합니다.

General tab:

Timeout (sec): - VEE의 통신요청에 대해서 계측기가 응답하지 않아서 에러를 발생할 때까지 기다리는 시간. 디폴트 값은 5 초입니다.

Live Mode: - Live Mode를 ON 또는 OFF로 설정합니다. Live Mode가 OFF이면 계측기가 접속되어 있지 않아도 프로그램을 실행할 수 있습니다. 그러나, 계측기와 실제 통신하기 위해서는 Live Mode 가 반드시 ON 으로 설정되어야 합니다. Instrument Properties 대화상자의 Address 필드에 0 이 아닌 주소가 입력될 때까지 Live Mode는 OFF로 남아있으며, 주소가 입력되면 ON으로 자동 전환됩니다. 이후부터는 사용자가 Live Mode를 ON/OFF 전환할 수 있습니다. Plug&play Drivers와 IVI-COM Drivers에는 Live Mode를 사용할 수 없습니다.

Byte Ordering: - 계측기가 바이너리 데이터를 읽고 쓰는 바이트의 순서를 지정합니다. VEE는 바이트를 스와핑해야 하는지 결정합니다. 이 필드를 클릭하여 MSB(상위 바이트를 먼저 전송) 또는 LSB(하위 바이트를 먼저 전송)를 선택합니다. 모든 IEEE 488.2 호환 계측기는 MSB를 사용합니다. 디폴트 설정은 MSB입니다. 더 자세한 내용은 계측기 매뉴얼을 참조하시기 바랍니다.

Description (optional): - 사용중인 계측기를 식별한 문자를 입력합니다.

Direct I/O tab:

Read Terminator: -계측기의 Read 트랜잭션을 종료할 문자를 지정합니다. 디폴트 종료문자는 \n (newline) 입니다.

Write - 계측기 write 트랜잭션의 5 가지 인자를 지정합니다. 이들 필드는 다음과 같습니다:

EOL Sequence: - EOL (End Of Line) 문자를 설정합니다. 디폴트 문자는 \n 입니다.

Multi-Field as: - Data Only (디폴트) 또는 Syntax(...)를 선택합니다.

Array Separator: - 어레이 분리문자를 지정합니다. 디폴트 문자는 "," (콤마)입니다.

Array Format: - - Linear 또는 Block을 선택합니다. 디폴트는 Linear 입니다.

END (EOI) on EOL: - End Or Identify on End Of Line의 약자입니다. YES 또는 NO를 선택할 수 있습니다. 디폴트는 NO 입니다.

Conformance: - Direct I/O 트랜잭션에서 어떤 GPIB IEEE 호환규격이 사용될 것인지 지정합니다. IEEE 488 (디폴트) 또는 IEEE 488.2를 선택할 수 있습니다.

Binblock: - Direct I/O 트랜잭션의 Binblock 포맷을 지정합니다. Binblock 포맷으로 선택할 수 있는 항목은 다음과 같습니다:

None - Conformance를 IEEE 488.2로 설정했으면, 이 값이 디폴트로 선택됩니다.

#A - #A<Byte_Count><Data> 포맷을 가진 IEEE 728 블록헤더

#I - #I<Byte_Count><Data> 포맷을 가진 IEEE 728 블록헤더

#T - #T<Data><END> 포맷을 가진 IEEE 728 블록헤더

여기서:

- # 은 실제 문자입니다.
- A, I 및 T 은 실제 문자 입니다.
- <Byte_Count> 는 <Data>의 바이트 개수를 나타내는 16 비트 자연수입니다.(바이트의 개수는 VEE가 자동계산합니다.)
- <Data> 임의의 바이트 스트링입니다.
- <END> 마지막 데이터 바이트가 전송되었을 때 EOI가 활성화 되었는지 나타냅니다.

State (Learn String): - 이 필드는 계측기가 업로드 또는 다운로드 런스트링으로 설정되었는지 나타냅니다. Not Config'd (디폴트) 또는 Configured를 선택할 수 있습니다. Configured 를 선택하면 Upload String 필드 및 Download String 필드가 활성화되어 이들 필드에 스트링을 입력할 수 있습니다.

Upload String: - 이 필드는 Direct I/O 오브젝트 메뉴에서 Upload State를 선택할 때 계측기로 보내는 명령어를 지정합니다. 계측기가 런스트링을 출력할 수 있도록 명령을 지정합니다. 자세한 내용은 계측기의 프로그래밍 매뉴얼을 참조하십시오. 명령은 인용부호로 닫아야 합니다.

Download String: - TDirect I/O 오브젝트에서 WRITE STATE (LEARN STRING)트랜잭션 직전에 계측기로 보내는 스트링을 지정합니다. 이 필드는 런스트링을 다운로드할 때 접두문자가 필요한 계측기에 사용됩니다. 자세한 내용은 계측기의 프로그래밍 매뉴얼을 참조하십시오.

Plug&play Driver 탭:

Plug&play Driver Name: - 설정하고 있는 Plug&play 계측기에 지정될 드라이버 이름. 디폴트 이름은 Unknown입니다.

Parameters to init() call 그룹:

Address (eg GPIB-VXI0::12::INSTR): - Plug&play 계측기의 주소.

Perform Indentification Query - 이 항목이 선택되면, 초기화시 Plug&play 계측기의 ID 쿼리문이 행됩니다. 디폴트 상태에서 이 항목이 체크되어 있습니다.

Perform Reset - 이 항목이 체크되어 있으면, 계측기는 자동으로 Reset 명령어를 전송합니다. 디폴트 상태에서는 이 항목이 체크되어 있습니다.

IVI-COM Driver 탭:

IVI-COM Driver/Session Name: - IVI-COM 드라이버 또는 IVI Config Store 세션의 이름.

Address: - 계측기의 주소. 세션이름을 사용하면 이 필드는 공백입니다.

Perform Identification Query: - *IDN 등의 식별자 스트링을 전송합니다.

Perform Reset: - 계측기를 리셋합니다.

Use Class Compliant Interface: - IVI는 DMM 또는 Scope 등의 계측기 클래스를 정의합니다. 이 항목을 체크하면, 제조사에 종속적인 계측기 특정 IVI 드라이버(디폴트)에서 제조사에 독립적인 클래스 특정 IVI 드라이버로 전환됩니다.

Configure IVI Driver Session: - 이 버튼을 클릭하면 Instrument Explorer 대화상자가 실행됩니다. 이 대화상자는 계측기를 찾기 위해서 the IVI Config Store를 이용합니다. Instrument Explorer를 이용하면, 해당 계측기에 대한 자원 스트링 및 기타 인자를 보유하고 있는 IVI 세션을 설정할 수 있습니다. the Instrument Explorer 및 이것의 역할에 대해서는 온라인 도움말을 참조하십시오.

Panel Driver 탭:

ID Filename: - 이 필드를 클릭하면 Read from what Instrument Driver? 대화상자가 표시됩니다. 이 대화상자에 표시된 폴더 및 파일에서 ID Filename 을 선택할 수 있습니다.

Sub Address: - 패널드라이버의 서브어드레스(서브어드레스가 있는 경우)를 입력합니다.

Error Checking: - Error Checking을 ON 또는 OFF로 설정합니다. 디폴트는 ON입니다.

Incremental Mode: - Incremental Mode를 ON 또는 OFF로 설정합니다. 디폴트는 ON입니다.

Serial 탭:

Baud Rate: - 디폴트 보드 레이트는 9600 (초당 비트수).

Character Size: - 디폴트는 8(비트)입니다. 5, 6, 7, 8 또는 None을 사용할 수 있습니다.

Stop Bits: - 디폴트는 1입니다. 1 또는 2를 선택할 수 있습니다.

Parity: - 디폴트는 None입니다. None, Odd, Even, Mark 및 Space를 선택할 수 있습니다.

Handshake: - 디폴트는 None 입니다. None 또는 Xon/Xoff를 선택할 수 있습니다.

Receive Buffer Size: - 디폴트는 4096 (바이트)입니다.

GPIO 탭:

Data Width: - 이 필드는 GPIO 인터페이스를 통해서 병렬로 전송되는 데이터의 비트수를 지정합니다. 즉, 데이터를 읽거나 쓸 때 8 비트(디폴트)를 사용하는지 또는 16비트를 사용하는지 설정합니다. 이 필드와 관련하여 설정할 하드웨어 스위치는 없습니다.

A16 Space 탭: (VXI 전용)

Byte Access (D8) - 이 필드는 VXI 계측기가 8-비트, A16 메모리 접근을 지원하는지 정의합니다. 다음의 항목을 선택할 수 있습니다.:

NONE - 계측기가 바이트 접근을 지원하지 않습니다. 이 값이 디폴트 값 입니다.

ODD ACCESS - 계측기가 바이트 접근을 지원하지만, 홀수-바이트 바운더리만 지원합니다.(D08(O))

ODD/EVEN ACCESS - 계측기가 모든 바운더리의 바이트 접근을 지원합니다.(D08(E))

Word Access (D16) - 이 필드는 편집할 수 없습니다. 모든 VXI 계측기는 16-비트 주소(D16)을 지원해야 합니다.

LongWord Access (D32) - 이 필드는 VXI 계측기가 32-비트 A16 메모리 접근을 허용하는지 지정합니다. 이 필드에서는 다음의 항목을 선택할 수 있습니다.:

NONE - 계측기가 32-비트 접근을 허용하지 않습니다. 이 값이 디폴트 값입니다.

D32 ACCESS - 계측기가 32-비트 A16 메모리 접근을 지원합니다.

Add Register - Add Register 버튼을 클릭할 때마다, 이 대화상자의 우측하단에 한 라인에 4 개의 필드가 생성됩니다. 새로 생성된 각각의 라인에서 계측기의 A16 메모리 접근을 설정합니다. 4 개의 필드는 다음과 같습니다:

Name - 레지스터의 심볼이름입니다. 이 이름은 READ REGISTER 트랜잭션 또는 WRITE REGISTER 트랜잭션을 이용하는 Direct I/O 오브젝트에서 특정 레지스터를 참조합니다.

Offset - 설정될 레지스터에 대한 계측기 A16 메모리의 상대 베이스로부터의 옵셋 바이트입니다. 디폴트 옵셋은 0 입니다.

Format - 설정될 레지스터에 쓰거나 읽을 데이터 포맷입니다. Offset 필드에 지정된 바이트에서 읽거나 씁니다. 사용할 수 있는 포맷은 다음과 같습니다.:
- BYTE - 바이트를 읽거나 씁니다. 계측기는 8-비트 접근을 허용해야 하거나 위에서 설명된 Byte Access 필드에 8-비트 접근으로 설정되어야 합니다. BYTE 필드가 ODD이면, Offset 필드에 지정된 바이트는 홀수이어야 합니다.
- WORD16 -16-비트 워드를 읽거나 씁니다. 16비트는 2의 보수 정수로 표시됩니다. 모든 VXI 계측기는 반드시 이 포맷을 지원해야 합니다.
- WORD32 - 32-비트 워드를 읽거나 씁니다. 32비트는 2의 보수 정수로 표시됩니다. LongWord Access 필드가 NONE (by using two D16 accesses to read or write all 32 bits 모든 32 비트 읽기 또는 쓰기를 위해 2 개의 D16 접근을 사용하여)으로 설정되어도 VEE는 이 포맷을 지원합니다. LongWord Access 가 D32 ACCESS 로 설정되어 있으면, 모든 32비트에 접근할 수 있습니다.
- REAL32 - IEEE 754 32-비트 부동소수점 숫자로 표시되는 32-비트 워드를 읽거나 씁니다. LongWord Access 필드가 NONE (모든 32 비트 읽기 또는 쓰기를 위해 2 개의 D16 접근을 사용하여)으로 설정되어도 VEE는 이 포맷을 지원합니다. LongWord Access 가 D32 ACCESS로 설정되어 있으면, 모든 32비트에 접근할 수 있습니다.

Mode - 레지스터가 어떤 I/O 모드를 지원하는지 지정합니다. 다음 항목을 선택할 수 있습니다:
- READ - 이 레지스터는 READ REGISTER 트랜잭션에서만 선택항목으로 표시됩니다.
- WRITE - 이 레지스터는 WRITE REGISTER 트랜잭션에서만 선택항목으로 표시됩니다.
- READ/WRITE - 이 레지스터는 READ REGISTER 트랜잭션과 WRITE REGISTER 트랜잭션에서 선택항목으로 표시됩니다.

Delete Register - - Delete Register 필드를 클릭하면, 현재 설정된 레지스터의 심볼 이름을 가지는 Select Register To Delete 대화상자가 표시됩니다. 삭제하려는 레지스터의 심볼 이름을 클릭하고OK 버튼을 클릭하면 레지스터가 삭제됩니다.

A24/A32 Space 탭: (VXI 전용).

이 탭은 VXI 계측기의 A24 또는 A32 확장 메모리와 관련된 내용입니다. VXI 계측기는 A24 또는 A32 메모리로 구성될 수 있지만, 이들 2 가지를 함께 사용할 수는 없습니다.

Byte Access (D8) - 이 필드는 VXI 계측기가 8-비트, 확장 메모리 접근을 지원하는지 정의합니다. 다음의 항목을 선택할 수 있습니다.:

NONE - 계측기가 바이트 접근을 지원하지 않습니다. 이 값이 디폴트 값 입니다.

ODD ACCESS - 계측기가 바이트 접근을 지원하지만, 홀수-바이트 바운더리만 지원합니다.(D08(O))

ODD/EVEN ACCESS - 계측기가 모든 바운더리의 바이트 접근을 지원합니다.(D08(E))

Word Access (D16) - 이 필드는 편집할 수 없습니다. 모든 VXI 계측기는 16-비트 주소(D16)을 지원해야 합니다.

LongWord Access (D32) - 이 필드는 VXI 계측기가 32-비트 A16 메모리 접근을 허용하는지 지정합니다. 이 필드에서는 다음의 항목을 선택할 수 있습니다.:

NONE - 계측기가 32-비트 접근을 허용하지 않습니다. 이 값이 디폴트 값입니다.

D32 ACCESS - 계측기가 32-비트 A16 메모리 접근을 지원합니다.

Add Location - Add Location 버튼을 클릭할 때마다, 이 대화상자의 우측하단에 한 라인에 4 개의 필드가 생성됩니다. 새로 생성된 각각의 라인에서 계측기의 확장 메모리 접근을 설정합니다. 4 개의 필드는 다음과 같습니다:

Name - Add Location 버튼을 클릭할 때마다, 이 대화상자의 우측하단에 한 라인에 4 개의 필드가 생성됩니다. 새로 생성된 각각의 라인에서 계측기의 확장 메모리 접근을 설정합니다. 4 개의 필드는 다음과 같습니다:

Offset - 설정될 위치에 대한 계측기 확장 메모리의 상대 베이스로부터의 옵셋 바이트입니다. 디폴트 옵셋은 0 입니다.

Format - 설정될 위치에 쓰거나 읽을 데이터 포맷입니다. Offset 필드에 지정된 바이트에서 읽거나 씁니다. 사용할 수 있는 포맷을 다음과 같습니다:
- BYTE - 바이트를 읽거나 씁니다. 계측기는 8-비트 접근을 허용해야 하거나 위에서 설명된 Byte Access 필드에 8-비트 접근으로 설정되어야 합니다. BYTE 필드가 ODD이면, Offset 필드에 지정된 바이트는 홀수이어야 합니다.
- WORD16 - 16-비트 워드를 읽거나 씁니다. 16비트는 2의 보수 정수로 표시됩니다. 모든 VXI 계측기는 반드시 이 포맷을 지원해야 합니다.
- WORD32 - 32-비트 워드를 읽거나 씁니다. 32비트는 2의 보수 정수로 표시됩니다. LongWord Access 필드가 NONE (모든 32 비트 읽기 또는 쓰기를 위해 2 개의 D16 접근을 사용하여)으로 설정되어도 VEE는 이 포맷을 지원합니다. LongWord Access 가 D32 ACCESS로 설정되어 있으면, 모든 32비트에 접근할 수 있습니다.
- REAL32 - IEEE 754 32-비트 부동소수점 숫자로 표시되는 32-비트 워드를 읽거나 씁니다. LongWord Access 필드가 NONE (by using two D16 accesses to read or write all 32 bits 모든 32 비트 읽기 또는 쓰기를 위해 2 개의 D16 접근을 사용하여)으로 설정되어도 VEE는 이 포맷을 지원합니다. LongWord Access 가 D32 ACCESS로 설정되어 있으면, 모든 32비트에 접근할 수 있습니다.

Mode - 레지스터가 어떤 I/O 모드를 지원하는지 지정합니다. 다음 항목을 선택할 수 있습니다:
- READ - 이 필드는 READ MEMORY 트랜잭션에서만 선택항목으로 표시됩니다.
- WRITE - 이 필드는 WRITE MEMORY 트랜잭션에서만 선택항목으로 표시됩니다.
- READ/WRITE - 이 필드는 WRITE MEMORY 트랜잭션에서만 선택항목으로 표시됩니다.

Delete Location - Delete Location 필드를 클릭하면, 현재 설정된 레지스터의 심볼 이름을 가지는 Select Location To Delete 대화상자가 표시됩니다. 삭제하려는 위치의 심볼 이름을 클릭하고OK 버튼을 클릭하면 위치가 삭제됩니다.

오브젝트 위치

I/O [image] Instrument Manager... 에서 Add... 를 선택하거나, Properties에서 Advanced...를 선택합니다.

관련정보

Instrument Properties 대화상자, Instrument Manager 대화상자.

계측기 설정 추가하기

Direct I/O 오브젝트 사용하기


Advanced I/O 메뉴항목

메뉴바의 I/O 메뉴 아래에 있는 메뉴항목

사용법

Advanced I/O 메뉴는 GPIB, RS-232 (serial), VXI, LAN 및 USB 인터페이스의 하드웨어 관련 제어(버스 명령, 폴링, 서비스 요청등)를 위하여 아래와 같은 메뉴를 제공합니다:

Interface Operations

Device Event

Interface Event

MultiDevice Direct I/O

주의사항

VXIplug&play는 Advanced I/O 메뉴를 지원하지 않습니다.

오브젝트 위치

I/O [image] Advanced I/O

관련정보

Bus I/O Monitor, Device Event, 인터페이스 이벤트, Interface Operations 및 MultiDevice Direct I/O.

GPIB 계측기 폴링하기


Align 메뉴항목

메뉴바의 Edit 메뉴는 VEE 패널뷰와 디테일뷰에서 오브젝트를 정렬하는데 사용됩니다.

사용법

Align은 VEE 오브젝트의 배치를 처리하는 몇가지 기능을 제공합니다. 수직정렬, 수평정렬뿐만이 아니라 오브젝트의 분산배치(Distribution)도 가능합니다. CTRL 키를 누른 상태에서 정렬하고자 하는 오브젝트들을 마우스 왼쪽 버튼으로 클릭하여 선택할 수 있습니다. 또한, CTL 키를 누른 상태에서 마우스 왼쪽버튼을 누르고 드래그하여 정렬하고자 하는 오브젝트들을 선택할 수도 있습니다. 만약 모든 오브젝트들을 선택하고자 한다면 메뉴바의 Edit메뉴에서 Select All 메뉴항목. 을 선택하십시오. 오브젝트를 선택하고 나면 정렬을 위해 아래의 항목을 사용하십시오.

  • Middles - 최 좌측 오브젝트의 중심을 Y축 기준점으로 한, 선택한 VEE 오브젝트의 수평정렬

  • Tops - 최 좌측 오브젝트의 상단을 Y축 기준점으로 한, 선택한 VEE 오브젝트의 수평정렬.

  • Bottoms - 최 좌측 오브젝트의 하단을 Y축 기준점으로 한, 선택한 VEE 오브젝트의 수평정렬.

  • Centers - 최 상단 오브젝트의 중심을 X축 기준점으로 한, 선택한 VEE 오브젝트의 수직정렬.

  • Lefts - 최 상단 오브젝트의 좌측을 X축 기준점으로 한, 선택한 VEE 오브젝트의 수직정렬.

  • Rights - 최 상단 오브젝트의 우측을 X축 기준점으로 한, 선택한 VEE 오브젝트의 수직정렬.

  • Distribute Horizontally - 최 좌측 오브젝트의 좌측을 기준점으로 한, 선택한 VEE 오브젝트의 수평 분산배치.(수평으로 이동배치)

  • Distribute Vertically - 최 좌측 오브젝트의 좌측을 기준점으로 한, 선택한 VEE 오브젝트의 수평 분산배치.(수평으로 이동배치)

주의사항

오브젝트를 정렬할 때 기존의 오브젝트를 덮어씌웠다면, 오브젝트 메뉴의 Bring-to-Front 혹은 Send-to-Back 기능을 이용하여 재 배열하십시오.

정렬된 오브젝트들은 정렬이 이루어진 후에도 계속 선택상태에 있습니다. 이것은 같은 오브젝트에 대해서 또 다른 정렬을 할 때 편리합니다.

기준이 되는 오브젝트는 정렬이나 분산 배치할 때 이동하지 않습니다.

오브젝트 위치

Edit [image] Align

Middles 또는

Tops 또는

Bottoms 또는

Centers 또는

Lefts 또는

Rights 또는

Distribute Horizontally

Distribute Vertically

관련정보

Default Preferences 메뉴항목 , Bring to Front 메뉴항목 (오브젝트 메뉴) , Send to Back 메뉴항목 (오브젝트 메뉴) 및 Select All 메뉴항목


Allocate Array 메뉴항목

메뉴바에서 Data 메뉴 아래에 있는 Allocate Array 메뉴항목

사용법

Allocate Array를 사용하여 아래와 같은 어레이를 생성하고 오브젝트를 설정합니다.

Alloc Text

Alloc UInt8

Alloc Int16

Alloc Int32

Alloc Int64

Alloc Real32

Alloc Real64

Alloc Coord

Alloc Complex

Alloc PComplex

주의사항

기존에 있는 어레이를 수정하기 위해서는 Set Values를 사용합니다.

오브젝트 위치

Data [image] Allocate Array

관련정보

Alloc Coord, Alloc Complex, Alloc UInt8, Alloc Int16, Alloc Int32, Alloc PComplex, Alloc Text, Alloc Real32, Alloc Real64, Get Values, Set Mappings 및 Set Values.

어레이 배치하기

어레이의 값 변경하기

오브젝트 메뉴


Alloc Boolean 오브젝트

Boolean 어레이를 생성하는 오브젝트

사용법

Alloc Boolean 오브젝트는 Boolean 앨리먼트의 어레이를 생성합니다.

오픈뷰 항목

Num Dims – 출력 어레이의 차원. Num Dims은 1부터 10까지의 정수이며 디폴트는 1입니다.

Init Value | Lin Ramp | Log Ramp

Init Value – 각 어레이 앨리먼트에 입력하고자 하는 값. 이 값은 Boolean으로 해석됩니다. 디폴트는 False 입니다.

Size – 하나의 차원에서의 앨리먼트 개수. 하나의 차원에 하나의 Size 항목이 있습니다. 디폴트는 10입니다.

Init Value 와 Size는 오브젝트에서, 또는 데이터 입력핀에 의해서 설정할 수 있습니다.

주의사항

각각의 앨리먼트 값을 변경하기 위해서는 Set Value를 사용합니다.

Num Dims 값이 변경되면, 오픈뷰에 있는 관련 항목이 자동으로 생성되거나 삭제되어 Dimension Size 항목의 숫자가 Num Dims의 값과 매칭이 됩니다.

출력 어레이는 매핑이 되지 않습니다. 어레이의 차원을 매핑하기 위해서는 Set Mapping을 사용하십시오.

오브젝트 위치

Data [image] Allocate Array [image] Boolean

관련정보

Boolean, Get Values, Set Mappings 및 Set Values.

어레이 배치하기, 속성창 (오브젝트) 및 오브젝트 메뉴


Alloc Complex 오브젝트

Complex 어레이를 생성하는 오브젝트

사용법

Alloc Complex 오브젝트는 Complex 앨리먼트의 어레이를 생성할 때 사용합니다.

오픈뷰 파라미터

Num Dims - 출력 어레이의 차원. Num Dims은 1부터 10까지의 정수이며 디폴트는 1입니다.

Init Value - 각 어레이 앨리먼트에 입력하고자 하는 값. 디폴트는 (0, 0)입니다.

Size - 하나의 차원에서의 앨리먼트 개수. 하나의 차원에 하나의 Size 항목이 있습니다. 디폴트는 10입니다.

Init Value 와 Size는 오브젝트에서, 또는 데이터 입력핀에 의해서 셋팅할 수 있습니다.

주의사항

각각의 앨리먼트 값을 변경하기 위해서는 Set Value를 사용합니다.

만약 Num Dims 값이 변경되면, 오픈뷰에 있는 관련 항목이 자동으로 생성되거나 삭제되어 Dimension Size 항목의 숫자가 Num Dims의 값과 매칭이 됩니다.

출력 어레이는 매핑이 되지 않습니다. 어레이의 차원을 매핑하기 위해서는 Set Mapping을 사용하십시오.

오브젝트 위치

Data [image] Allocate Array [image] Complex

관련정보

Complex, Get Values, Set Mappings 및 Set Values.

어레이 배치하기, 속성창 (오브젝트), 오브젝트 메뉴


Alloc Coord 오브젝트

Coord 어레이를 생성하는 오브젝트

사용법

Alloc Coord 오브젝트는 Coord 앨리먼트를 가지는 어레이를 생성할 때 사용합니다.

오픈뷰 파라미터

Num Dims - 출력 어레이의 차원. Int32 혹은 Real64같은 다른 타입의 어레이와는 다르며, VEE에서 1차원보다 더 큰 Coord 어레이는 허용되지 않기 때문에 Num Dims은 1입니다.

Num Coord Dims - 각 Coord 값의 개수. 적절한 값은 2에서 10입니다.

Init Value - 각 어레이 앨리먼트에 입력하고자 하는 값. 디폴트는 (0, 0), (0,0,0), (0,0,0,0), 등입니다. 이것은 Num Coord Dims의 값에 따릅니다.

Size - 하나의 차원에서의 앨리먼트 개수. 디폴트는 10입니다.

Init Value 와 Size는 오브젝트에서 혹은 데이터 입력핀에 의해서 셋팅할 수 있습니다.

주의사항

각각의 앨리먼트 값을 변경하기 위해서는 Set Value를 사용합니다.

오브젝트 위치

Data [image] Allocate Array [image] Coord

관련정보

Allocate Array 메뉴항목, Build Data 메뉴항목, Coord, Get Values, Set Values 및 UnBuild Data 메뉴항목.

어레이 배치하기, 속성창 (오브젝트) 및 오브젝트 메뉴


Alloc Int16 오브젝트

정수 어레이를 생성하는 오브젝트

사용법

Alloc Int16 오브젝트는 2바이트 정수 앨리먼트를 가지는 어레이를 생성할 때 사용합니다.

오픈뷰 항목

Num Dims - 출력 어레이의 차원. Num Dims은 1부터 10까지의 정수입니다. 디폴트는1입니다.

Init Value | Lin Ramp | Log Ramp

Init Value - 각 어레이 앨리먼트에 입력하고자 하는 값. 이 값은 정수로 해석됩니다. 디폴트는 0입니다.

Lin Ramp - 정수 값의 선형 분할. 시작 값 과 마지막 값 사이에서 균등 분할한 것입니다. 이 항목은 Num Dims =1일 때만 사용할 수 있습니다.

Log Ramp - A정수 값의 로그 스케일 분할. 시작 값과 마지막 값 사이에서 로그 스케일로 균등 분할한 것입니다. 이 항목은 Num Dims =1일 때만 사용할 수 있습니다.

Size - 하나의 차원에서의 앨리먼트 개수. 하나의 차원에 하나의 Size 항목이 있습니다. 디폴트는 10입니다.

Init Value 와 Size는 오브젝트에서, 또는 데이터 입력핀에 의해서 설정할 수 있습니다.

주의사항

각각의 앨리먼트 값을 변경하기 위해서는 Set Value를 사용합니다.

Num Dims 값이 변경되면, 오픈뷰에 있는 관련 항목이 자동으로 생성되거나 삭제되어 Dimension Size 항목의 숫자가 Num Dims의 값과 매칭이 됩니다.

출력 어레이는 매핑이 되지 않습니다. 어레이의 차원을 매핑하기 위해서는 Set Mapping을 사용하십시오.

오브젝트 위치

Data [image] Allocate Array [image] Int16

관련정보

Int16, Get Values, Set Mappings 및 Set Values.

어레이 배치하기, 속성창 (오브젝트) 및 오브젝트 메뉴


Alloc Int32 오브젝트

정수 어레이를 생성하는 오브젝트

사용법

Alloc Int32 오브젝트는 4바이트 정수 앨리먼트를 가지는 어레이를 생성할 때 사용합니다.

오픈뷰 파라미터

Num Dims - 출력 어레이의 차원. Num Dims은 1부터 10까지의 정수입니다. 디폴트는1입니다.

Init Value | Lin Ramp | Log Ramp

Init Value - 각 어레이 앨리먼트에 입력하고자 하는 값. 이 값은 정수로 해석됩니다. 디폴트는 0입니다..

Lin Ramp - 정수 값의 선형 분할. 시작 값 과 마지막 값 사이에서 균등 분할한 것입니다. 이 항목은 Num Dims =1일 때만 사용할 수 있습니다.

Log Ramp - 정수 값의 로그 스케일 분할. 시작 값과 마지막 값 사이에서 로그 스케일로 균등 분할한 것입니다. 이 항목은 Num Dims =1일 때만 사용할 수 있습니다.

Size - 하나의 차원에서의 앨리먼트 개수. 하나의 차원에 하나의 Size 항목이 있습니다. 디폴트는 10입니다.

IInit Value 와 Size는 오브젝트에서, 또는 데이터 입력핀에 의해서 셋팅할 수 있습니다.

주의사항

각각의 앨리먼트 값을 변경하기 위해서는 Set Value를 사용합니다.

만약 Num Dims 값이 변경되면, 오픈뷰에 있는 관련 항목이 자동으로 생성되거나 삭제되어 Dimension Size 항목의 숫자가 Num Dims의 값과 매칭이 됩니다.

출력 어레이는 매핑이 되지 않습니다. 어레이의 차원을 매핑하기 위해서는 Set Mapping을 사용하십시오.

오브젝트 위치

Data [image] Allocate Array [image] Int32

관련정보

Int32, Get Values, Set Mappings 및 Set Values.

어레이 배치하기, 속성창 (오브젝트) 및 오브젝트 메뉴


Alloc Int64 오브젝트

정수 어레이를 생성하는 오브젝트

사용법

Alloc Int64 오브젝트는 8바이트 정수 앨리먼트를 가지는 어레이를 생성합니다.

오픈뷰 항목

Num Dims - 출력 어레이의 차원. Num Dims은 1부터 10까지의 정수입니다. 디폴트는 1입니다.

Init Value | Lin Ramp | Log Ramp

Init Value - 각 어레이 앨리먼트에 입력하고자 하는 값. 이 값은 정수로 해석됩니다. 디폴트는 0입니다.

Lin Ramp - 정수 값의 선형 분할. 시작 값 과 마지막 값 사이에서 균등 분할한 것입니다. 이 항목은 Num Dims =1일 때만 사용할 수 있습니다.

Log Ramp - 정수 값의 로그 스케일 분할. 시작 값과 마지막 값 사이에서 로그 스케일로 균등 분할한 것입니다. 이 항목은 Num Dims =1일 때만 사용할 수 있습니다.

Size - 하나의 차원에서의 앨리먼트 개수. 하나의 차원에 하나의 Size 항목이 있습니다. 디폴트는 10입니다.

Init Value 와 Size는 오브젝트에서, 또는 데이터 입력핀에 의해서 설정할 수 있습니다.

주의사항

각각의 앨리먼트 값을 변경하기 위해서는 Set Value를 사용합니다.

Num Dims 값이 변경되면, 오픈뷰에 있는 관련 항목이 자동으로 생성되거나 삭제되어 Dimension Size 항목의 숫자가 Num Dims의 값과 매칭이 됩니다.

출력 어레이는 매핑이 되지 않습니다. 어레이의 차원을 매핑하기 위해서는 Set Mapping을 사용하십시오.

오브젝트 위치

Data [image] Allocate Array [image] Int64

관련정보

Int64, Get Values, Set Mappings 및 Set Values.

어레이 배치하기, 속성창 (오브젝트) 및 오브젝트 메뉴


Alloc PComplex 오브젝트

PComplex 어레이를 생성하는 오브젝트

사용법

Alloc PComplex 오브젝트는 PComplex 앨리먼트를 가지는 어레이를 생성할 때 사용합니다.

오픈뷰 파라미터

Num Dims - 출력 어레이의 차원. Num Dims은 1부터 10까지의 정수이며 디폴트는 1입니다.

Init Value - 각 어레이 앨리먼트에 입력하고자 하는 값. 초기값의 위상(Phase)은 PI와 PI-라디안으로 정규화(Normalize) 됩니다; 숫자의 크기가 음수인 경우에는 위상 각도가 180도 밀려서 정수로 변환됩니다. 디폴트는 (0, @0)입니다.

Size - 하나의 차원에서의 앨리먼트 개수. 하나의 차원에 하나의 Size 항목이 있습니다. 디폴트는 10입니다.

Init Value 와 Size는 오브젝트에서, 또는 데이터 입력핀에 의해서 셋팅할 수 있습니다.

주의사항

각각의 앨리먼트 값을 변경하기 위해서는 Set Value를 사용합니다.

Num Dims 값이 변경되면, 오픈뷰에 있는 관련 항목이 자동으로 생성되거나 삭제되어 Dimension Size 항목의 숫자가 Num Dims의 값과 매칭이 됩니다.

출력 어레이는 매핑이 되지 않습니다. 어레이의 차원을 매핑하기 위해서는 Set Mapping을 사용하십시오.

오브젝트 위치

Data [image] Allocate Array [image] PComplex

관련정보

Allocate Array 메뉴항목, Get Values, PComplex, Set Mappings 및 Set Values.

어레이 배치하기, 속성창 (오브젝트) 및 오브젝트 메뉴


Alloc Real32 오브젝트

실수 어레이를 생성하는 오브젝트

사용법

Alloc Real32 오브젝트는 4바이트 실수 앨리먼트를 가지는 어레이를 생성할 때 사용합니다.

오픈뷰 파라미터

Num Dims - 출력 어레이의 차원. Num Dims은 1부터 10까지의 정수입니다. 디폴트는1입니다.

Init Value | Lin Ramp | Log Ramp

Init Value - 각 어레이 앨리먼트에 입력하고자 하는 값. 디폴트는 0입니다.

Lin Ramp - 실수 값의 선형 분할. 시작 값 과 마지막 값 사이에서 균등 분할한 것입니다. 이 항목은 Num Dims =1일 때만 사용할 수 있습니다.

Log Ramp - 실수 값의 로그 스케일 분할. 시작 값과 마지막 값 사이에서 로그 스케일로 균등 분할한 것입니다. 이 항목은 Num Dims =1일 때만 사용할 수 있습니다.

Size - 하나의 차원에서의 앨리먼트 개수. 하나의 차원에 하나의 Size 항목이 있습니다. 디폴트는 10입니다.

Init Value 와 Size는 오브젝트에서, 또는 데이터 입력핀에 의해서 셋팅할 수 있습니다.

주의사항

각각의 앨리먼트 값을 변경하기 위해서는 Set Value를 사용합니다.

Num Dims 값이 변경되면, 오픈뷰에 있는 관련 항목이 자동으로 생성되거나 삭제되어 Dimension Size 항목의 숫자가 Num Dims의 값과 매칭이 됩니다.

출력 어레이는 매핑이 되지 않습니다. 어레이의 차원을 매핑하기 위해서는 Set Mapping을 사용하십시오.

오브젝트 위치

Data [image] Allocate Array [image] Real32

관련정보

Get Values, Real32, Set Mappings 및 Set Values.

어레이 배치하기, 속성창 (오브젝트) 및 오브젝트 메뉴


Alloc Real64 오브젝트

실수 어레이를 생성하는 오브젝트

사용법

Alloc Real64 오브젝트는 8바이트 실수 앨리먼트를 가지는 어레이를 생성할 때 사용합니다.

오픈뷰 파라미터

Num Dims - 출력 어레이의 차원. Num Dims은 1부터 10까지의 정수입니다. 디폴트는1입니다.

Init Value | Lin Ramp | Log Ramp

Init Value - 각 어레이 앨리먼트에 입력하고자 하는 값. 디폴트는 0입니다.

Lin Ramp - 실수 값의 선형 분할. 시작 값 과 마지막 값 사이에서 균등 분할한 것입니다. 이 항목은 Num Dims =1일 때만 사용할 수 있습니다.

Log Ramp - 실수 값의 로그 스케일 분할. 시작 값과 마지막 값 사이에서 로그 스케일로 균등 분할한 것입니다. 이 항목은 Num Dims =1일 때만 사용할 수 있습니다.

Size - 하나의 차원에서의 앨리먼트 개수. 하나의 차원에 하나의 Size 항목이 있습니다. 디폴트는 10입니다.

Init Value 와 Size는 오브젝트에서, 또는 데이터 입력핀에 의해서 셋팅할 수 있습니다.

주의사항

각각의 앨리먼트 값을 변경하기 위해서는 Set Value를 사용합니다.

Num Dims 값이 변경되면, 오픈뷰에 있는 관련 항목이 자동으로 생성되거나 삭제되어 Dimension Size 항목의 숫자가 Num Dims의 값과 매칭이 됩니다.

출력 어레이는 매핑이 되지 않습니다. 어레이의 차원을 매핑하기 위해서는 Set Mapping을 사용하십시오.

오브젝트 위치

Data [image] Allocate Array [image] Real64

관련정보

Get Values, Real64, Set Mappings 및 Set Values.

어레이 배치하기, 속성창 (오브젝트) 및 오브젝트 메뉴


Alloc Text 오브젝트

텍스트 어레이를 생성하는 오브젝트

사용법

Alloc Text 오브젝트는 텍스트 앨리먼트를 가지는 어레이를 생성할 때 사용합니다.

오픈뷰 파라미터

Num Dims - 출력 어레이의 차원. Num Dims은 1부터 10까지의 정수입니다. 디폴트는1입니다.

Init Value - 각 어레이 앨리먼트에 입력하고자 하는 값. 이 값은 정수로 해석됩니다. 디폴트는 널 데이터(텅빈 스트링)입니다.

Size - 하나의 차원에서의 앨리먼트 개수. 디폴트는 10입니다.

Init Value 와 Size는 오브젝트에서, 또는 데이터 입력핀에 의해서 셋팅할 수 있습니다.

주의사항

각각의 앨리먼트 값을 변경하기 위해서는 Set Value를 사용합니다.

INum Dims 값이 변경되면, 오픈뷰에 있는 관련 항목이 자동으로 생성되거나 삭제되어 Dimension Size 항목의 숫자가 Num Dims의 값과 매칭이 됩니다.

출력 어레이는 매핑이 되지 않습니다. 어레이의 차원을 매핑하기 위해서는 Set Mapping을 사용하십시오.

오브젝트 위치

Data [image] Allocate Array [image] Text

관련정보

Get Values, Set Mappings, Set Values 및 Text.

어레이 배치하기, 속성창 (오브젝트) 및 오브젝트 메뉴


Alloc UInt8 오브젝트

정수 어레이를 생성하는 오브젝트

사용법

Alloc UInt8 오브젝트는 1바이트 정수 앨리먼트를 가지는 어레이를 생성할 때 사용합니다.

오픈뷰 파라미터

Num Dims - 출력 어레이의 차원. Num Dims은 1부터 10까지의 정수입니다. 디폴트는1입니다.

Init Value | Lin Ramp | Log Ramp

Init Value - 각 어레이 앨리먼트에 입력하고자 하는 값. 이 값은 정수로 해석됩니다. 디폴트는 0입니다.

Lin Ramp - 정수 값의 선형 분할. 시작 값 과 마지막 값 사이에서 균등 분할한 것입니다. 이 항목은 Num Dims =1일 때만 사용할 수 있습니다.

Log Ramp - 정수 값의 로그 스케일 분할. 시작 값과 마지막 값 사이에서 로그 스케일로 균등 분할한 것입니다. 이 항목은 Num Dims =1일 때만 사용할 수 있습니다.

Size - 정수 값의 로그 스케일 분할. 시작 값과 마지막 값 사이에서 로그 스케일로 균등 분할한 것입니다. 이 항목은 Num Dims =1일 때만 사용할 수 있습니다.

Init Value 와 Size는 오브젝트에서, 또는 데이터 입력핀에 의해서 셋팅할 수 있습니다.

주의사항

각각의 앨리먼트 값을 변경하기 위해서는 Set Value를 사용합니다.

Num Dims 값이 변경되면, 오픈뷰에 있는 관련 항목이 자동으로 생성되거나 삭제되어 Dimension Size 항목의 숫자가 Num Dims의 값과 매칭이 됩니다.

출력 어레이는 매핑이 되지 않습니다. 어레이의 차원을 매핑하기 위해서는 Set Mapping을 사용하십시오.

오브젝트 위치

Data [image] Allocate Array [image] UInt8

관련정보

UInt8, Get Values, Set Mappings 및 Set Values.

어레이 배치하기, 속성창 (오브젝트) 및 오브젝트 메뉴


AlphaNumeric 오브젝트

문자와 숫자를 디스플레이 하는 오브젝트

사용법

Display 메뉴의 AlphaNumeric 오브젝트는 단순한 값, Array 1D 혹은 Array 2D 같은 종류의 데이터를 디스플레이 할 때 사용합니다.

속성창

ShowArrayIndices - 이 항목이 True로 되어 있을 때 입력된 데이터가 어레이 이면, 디스플레이창 내의 각 라인은 인덱스됩니다.

Number Format - 대화상자에서 Global Format이 체크되어 있으면, 디폴트 포맷을 사용합니다. 디폴트는 ‘ON’ (체크된 상태)입니다.

Integer: - Global Format이 ‘OFF’(체크되지 않은 상태)에서, 오브젝트에 디스플레이 하고자 하는 정수의 숫자 형식을 지정하여 사용합니다. Decimal (예를 들면 42), Octal (예를 들면 #Q52), Hexadecimal (예를 들면 #H2a) 또는 Binary (예를 들면 #B00101010) 등을 선택할 수 있습니다. 디폴트는 Decimal입니다.

Real: - Global Format이 ‘OFF’(체크되지 않은 상태)에서, 오브젝트에 디스플레이 하고자 하는 실수의 숫자 형식을 지정하여 사용합니다. Fixed (예를 들면 98.6000), Scientific (예를 들면 9.8600E+01), Engineering (예를 들면 98.6000E0), Standard (예를 들면 98.6), and Time Stamp (예를 들면 Sat 01/Jan/2003 17:01:38) 등을 선택할 수 있습니다. 디폴트는 Standard입니다.

Significant Digits: -Global Format이 ‘OFF’(체크되지 않은 상태)에서, 실수 값을 디스플레이 하기 위한 자리 수를 지정합니다.

주의사항

현재의 AlphaNumeric 오브젝트의 폭이 숫자 타입의 디폴트 정밀도를 디스플레이(현재 지정된 디스플레이 글자체를 사용하여)하기에 좁다면 별표(***)가 디스플레이 됩니다. 데이터를 보기 위해서는 오브젝트의 크기를 조정하십시오.

2차원 어레이인 경우에는 스크롤바가 나타납니다. (전체 어레이를 표시하기 위하여 오브젝트의 크기를 조정하지 않은 경우)

3차원 이상의 어레이에서는 ‘3D Array’등의 스트링이 디스플레이 됩니다.

0~31까지의 ASCII 값은 글자체와 연관되어 읽지 못할 수도 있습니다.

영문 2048자(한글 1024자)를 초과하는 텍스트 스트링은 일부 플랫폼(운영체제)에서는 적절하게 디스플레이 되지 않을 수도 있습니다. 영문기준 32767자를 초과하는 텍스트 스트링은 어떤 플랫폼에서도 적절하게 디스플레이 되지 않습니다.

오브젝트 위치

Display [image] AlphaNumeric

관련정보

Default Preferences 대화상자 및 Logging AlphaNumeric.

스칼라 값 디스플레이하기 및 속성창 (오브젝트)

어레이 값 디스플레이하기 및 오브젝트 메뉴


Arrange Icons 메뉴항목

VEE 작업영역에서 축소된 윈도우 아이콘을 정렬할 때 사용하는 Window 메뉴 항목

사용법

Arrange Icons 메뉴는 아래와 같은 아이콘 정렬기능을 제공합니다.

by Position - 모든 축소된 윈도우 아이콘을 VEE 작업영역의 바닥을 따라 현재의 아이콘 순서대로 정렬합니다.

by Name - 모든 축소된 윈도우 아이콘을 VEE 작업영역의 바닥을 따라 단어 순서대로 정렬합니다.

주의사항

Arrange Icons 메뉴 항목은 축소된 윈도우가 없을 때는 비활성화되어 사용할 수 없습니다.

오브젝트 위치

Window [image] Arrange Icons

관련정보

Minimize All, by Name, 및 by Position.


ArrayList - Add 오브젝트

ArrayList – Add 오브젝트

배열, 리스트 혹은 콜렉션에 항목을 추가할 때 사용합니다.

오브젝트 위치

System [image] Collections [image] ArrayList [image] Add


ArrayList - Clear 오브젝트

어레이, 리스트또는 콜렉션에 있는 항목을 지웁니다.

오브젝트 위치

System [image] Collections [image] ArrayList [image] Clear


ArrayList - Contains Item? 오브젝트

어레이, 리스트, 콜렉션이 주어지는 항목을 포함하고 있는지를 체크합니다.

오브젝트 위치

System [image] Collections [image] ArrayList [image] Contains


ArrayList - Count 오브젝트

어레이, 리스트, 콜렉션에 있는 항목을 카운트합니다.

오브젝트 위치

System [image] Collections [image] ArrayList [image] Count


ArrayList - Create 오브젝트

새로운 ArrayList 또는 콜렉션을 생성합니다.

오브젝트 위치

System [image] Collections [image] ArrayList [image] Create


ArrayList - Enumerate 오브젝트

어레이, 리스트, 콜렉션의 멤버(member)를 열거합니다.

오브젝트 위치

System [image] Collections [image] ArrayList [image] Enumerate Items


ArrayList - Get 오브젝트

어레이리스트 또는 콜렉션에서 항목을 가져옵니다.

오브젝트 위치

System [image] Collections [image] ArrayList [image] Get Item


ArrayList - Remove Item 오브젝트

어레이, 리스트, 콜렉션에서 앨리먼트를 제거합니다.

오브젝트 위치

System [image] Collections [image] ArrayList [image] Remove


ArrayList - Set Item 오브젝트

어레이, 리스트, 콜렉션에 있는 기존의 값을 새로운 값으로 설정합니다.

오브젝트 위치

System [image] Collections [image] ArrayList [image] Set Item


asClrType(x, t) 오브젝트

VEE 데이터 컨테이너 ‘x’를 .NET 오브젝트 타입 ‘t’로 변환하는 함수

사용법

VEE 데이터 컨테이너 ‘x’를 .NET 오브젝트 타입 ‘t’로 변환하기 위해 사용합니다. VEE는 VEE와 .NET사이에서 VEE와 .NET을 지원하는 모든 데이터 타입에 대하여 자동으로 데이터 타입을 변환합니다. 예를 들어 Int16, Int32, Real64등의 데이터 타입입니다. 이것은 VEE를 사용하는 대부분의 경우를 만족시켜 줍니다. 몇몇의 경우에는 실제 .NET 오브젝트로써 데이터를 사용하기 위해서 이러한 자동변환을 ‘되돌리기’를 해야 할 경우도 있습니다. 그러한 경우에는 VEE 데이터 타입을 .NET/CLR 오브젝트로 변환하기 위하여 asClrType 타입변환 기능을 사용하십시오.

‘x’는 VEE 데이터 컨테이너입니다. 사용 가능한 VEE 데이터 컨테이너 타입은 Boolean, Uint8, Int16, Int32, Int64, Real32, Real64, Text와 이 타입들의 어레이 입니다. ‘t’는 .NET/CLR 타입입니다. 사용 가능한 .NET/CLR 데이터 타입은 원시함수 타입(System.Boolean, System.Byte, System.Sbyte, System.Int16, System.Uint16, System.Int32, System.Uint32, System.Int64, vUint64, System.Char, System.Double, 및 System.Single), System.Decimal, System.DateTime 및 System.String을 포함합니다.

‘t’ 터미널로 입력된 .NET 오브젝트 타입의 데이터를 출력합니다. VEE 데이터 컨테이너와 .NET/CLR 타입이 상이할 경우에는 440 에러가 발생되고, 변환작업을 실패할 경우에는 464 에러가 발생합니다.

전제조건: asClrType 오브젝트를 사용하기 위해서는 .NET Assembly Reference 메뉴에서 mscorlib.dll 어셈블리가 참조되어야 합니다. 이 어셈블리는 모든 .NET/CLR 데이터 타입을 제공합니다.

사용예

VEE는 .NET 타입 System.String을 VEE에서 사용할 수 있는 Text 타입으로 변환합니다. 만약 System.String 클래스에 있는 유용한 기능을 사용하고자 한다면, asClrType를 사용하여 텍스트를 System.String로 역 변환할 수 있습니다.

Set dotnetString = asClrType(“abacusabcus”, System.String);

dotNetString.EndsWith(“us”);

Help 메뉴의examples\DotNet\StringSplit.vee도 참조하십시오.

오브젝트 위치

Device [image] Function & Object Browser

Type: Built-in Functions

Category: Type Conversion

Member: asClrType


자동 스크롤

디테일뷰에서 메인 작업영역의 모서리로 오브젝트를 드래그(드롭하지 않은 상태)하여 작업영역을 벗어난 후에 드래그를 정지 하면, 메인 작업영역에 이동방향으로 스크롤바가 나타납니다. 오브젝트를 모서리나 코너의 어느 방향으로나 이동할 수 있습니다.


Beep 오브젝트

소리(톤)를 발생하는 오브젝트

사용법

Beep 오브젝트는 지정된 주파수, 지속시간, 음량의 소리를 생성합니다.

오픈뷰 항목

Frequency (Hz) - Herz로 표시되는 소리의 주파수. 디폴트 값은 1000Hz입니다.

Duration (sec) - 초(sec)로 표시되는 소리의 지속시간. 디폴트 값은 0.1sec입니다.

Volume (0-100) - 적당한 소리의 크기로써, 0은 조용하고 100은 가장 큰소리입니다. 디폴트 값은 80입니다. (PC에서, 1에서 100사이의 값은 같은 크기의 소리를 발생하며, 0을 입력시에는 소리가 나지 않습니다.) 이 파라미터는 모든 버전의 윈도우를 위해서 무시됩니다.

오픈뷰의 3개 항목은 데이터 입력터미널로 추가 될 수 있습니다.

주의사항

Beep 오브젝트의 기능은 하드웨어에 따릅니다. 일부 경우에는 하나 또는 그 이상의 오픈뷰 항목이 소리를 생성하지 못할 수도 있습니다. 또한, 일부 컴퓨터는 내장된 스피커가 없어서 별도의 스피커를 구매해야 할 수도 있습니다. 오디오 사용법에 대해서는 사용중인 컴퓨터의 사용자 설명서(매뉴얼)를 참조하십시오.

Frequency 또는 Volume 값이 0(Zero)보다 작거나 같을 경우에는 지정된 시간 동안 중지할 수도 있습니다.

Beep 오브젝트는 시간이 긴 소리의 경우 이것이 다 끝나기 전에 실행을 완료(시퀀스 출력핀을 활성화 하는 것)할 수도 있습니다. 이어지는 Beep 오브젝트의 실행은 이전의 소리가 끝날 때까지 프로그램을 일시 중지하고 있습니다.

Frequency 및 Volume은 Windows XP/2000에서는 무시됩니다.

오브젝트 위치

Display [image] Beep

관련정보

속성창 (오브젝트) 또는 오브젝트 메뉴


Boolean 오브젝트

스칼라 또는 Array 1D 형태의 상수 부울대수를 출력하는 오브젝트

사용법

Boolean 오브젝트는 부울 상수를 설정하거나 사용자가 값을 입력할 수 있습니다. 값을 입력하기 위해서는 입력필드를 클릭하십시오.

부울대수에서 지원되는 연산은 다음과 같습니다:

  • • 논리 연산 : 및, OR, XOR, NOT(!)

  • • 비교 연산 : ==, !=

다음 표는 부울 데이터 타입에 대하여 실행모드 8과 다른 실행모드 사이의 차이점을 나타냅니다.

연산 | VEE 8 실행모드 | VEE 7 실행모드 | VEE 6 실행모드 | VEE 4&5 실행모드
TTRUE, FALSE의 타입 | Boolean | Int32 | Int32 | 지원안함
.NET 또는 COM 할당 사용예: TreeView.ShowLines = TRUE | 지원 | not supported | not supported | 지원안함
Boolean 과 다른 타입 사이의 논리연산: OR, NOT, XOR, AND 사용예: TRUE OR 0.0 | 지원안함 | 지원 | 지원 | 지원안함
수학연산: 사용예: sin(true) | 지원안함 | 지원 | 지원 | 지원안함
기본적인 수학연산: +, -, *, / 사용예: 1 + True, True + False | 지원안함 | 지원 | 지원 | 지원안함

사용예

Boolean 오브젝트를 패널에서 프롬프트 기능으로 사용하기 위해서는, Boolean 오브젝트의 이름을 프롬프트할 내용 변경하여 사용하면 됩니다. 사용자는 입력필드에 요청할 정보를 입력하면 됩니다.

속성창

 DataShape - 출력되어야 할 값의 데이터 형태를 설정합니다. 사용할 수 있는 값은 스칼라또는 어레이 1D입니다.

 ArraySize - 1D Array를 선택하면, ArraySize는 어레이의 길이를 설정합니다.

 ArraySizeFixed - True로 설정하면, 어레이에는 라인을 추가하거나 삭제할 수 없습니다. 데이터 형태가 1D Array인 경우에만 사용할 수 있습니다.

Stepping Category - 데이터 형태가 Array1D인 경우에는 디스에이블 됩니다.

 ShowArrayIndices - True로 설정하면, 어레이에 있는 각 라인은 인덱스됩니다. 데이터 형태가 1D Array인 경우에만 사용할 수 있습니다. 디폴트 값은 True입니다.

 Wait for Input - True로 설정하면, 오브젝트는 값이 변경되기 전까지는 동작하지 않습니다. 속성을 False로 변경하면, 오브젝트는 어느 조건을 만나든 즉시 동작하고 현재 선택된 값을 출력합니다. 디폴트 값은 False입니다.

 AutoExecute - True로 설정하면, 값이 선택되면 나머지 프로그램을 실행합니다. 프로그램이 실행중이면, AutoExecute는 무시됩니다. 디폴트 값은 False입니다.

 InitialValue - 설정되어야 할 값을 지정합니다. 디폴트 값은 False입니다.

 InitializeAtPreRun - True로 설정하면, InitialValue가 실행 직전에 설정됩니다. 디폴트 값은 False입니다.

 InitializeAtActivate - True로 설정하면, InitialValue가 활성화될 때 설정됩니다. 디폴트 값은 False입니다.

주의사항

8.0 버전부터는, Agilent VEE는 컴파일된 함수에서 Boolean을 지원합니다. 사용자는 컴파일된 함수의 출력 타입과 파리미터 타입으로 VEE_BOOL을 사용할 수 있습니다.

Initialize는 UserObject내의 값을 초기화하기 위해 자주 사용합니다. Default Value 컨트롤핀을 사용하여서도 초기값을 설정할 수 있습니다.

컨트롤 입력에는 Default Value, Reset, Enable Editing 또는 Disable Editing등을 추가할 수 있습니다.

Default Value 입력은 현재의 값을 프로그램상에서 변경할 수 있습니다. Scalar 또는 Array 1D 형태의 정수를 입력할 수 있습니다. 상수는 입력데이터의 형태를 매칭시키기 위하여 재구성됩니다.

Reset 입력은 값을 0으로 설정합니다. 상수가 Array 1D로 설정되면, 모든 값은 false로 설정됩니다. Reset 상태에서는 입력에 있는 실제 데이터는 무시됩니다.

Enable Editing and Disable Editing 입력은 오브젝트의 오픈뷰에서 값의 변경여부를 제어합니다.

InitialValue 항목은 Boolean이 어레이로 구성되어 있더라도, 항상 스칼라입니다.

오브젝트 위치

Data [image] Constant [image] Boolean

관련정보

Alloc Boolean, Complex, Constant, Coord, Date/Time, Selection Control, Default Preferences, UInt8, Int16, Int32, Int64, PComplex, Real32, Real64, Text 및 Toggle Control.

상수 데이터 사용하기


Break 오브젝트

현재 반복하고 있는 루프를 종료하는 오브젝트

사용법

Break 오브젝트는 루프를 종료하고, 반복되는 오브젝트의 시퀀스 출력핀으로 연결된 다음 실행을 수행합니다.

주의사항

일반적으로 Break 오브젝트는 Until Break 오브젝트와 함께 사용됩니다. 이것은 반복되는 또 다른 오브젝트와 함께 사용할 수 있으며, If/Then/Else 오브젝트와 함께 사용하여 조건부 반복 종료에 사용합니다.

오브젝트 위치

Flow [image] Repeat [image] Break

관련정보

For Count, For Range, For Log Range, Next, On Cycle, If/Then/Else 및 Until Break.

VEE 프로그램의 일부분을 반복하기, 속성창 (오브젝트) 및 오브젝트 메뉴


Bring to Front 메뉴 항목 (오브젝트 메뉴)

오브젝트의 z축 순서를 변경하여 화면의 맨 앞으로 오브젝트를 가져옵니다.

사용법

패널뷰의 오브젝트 메뉴를 이용하여, 선택한 오브젝트를 화면의 맨 앞으로 배치할 때 사용합니다.

관련정보

Send to Back 메뉴항목 (오브젝트 메뉴), Align 메뉴항목 및 Move 메뉴항목 (오브젝트 메뉴)


Arb Waveform 오브젝트

좌표 데이터들의 집합으로부터 파형을 생성하는 오브젝트

사용법

메뉴바의 Data메뉴에 있는 Build Data항목의 Arb Waveform 오브젝트는 Coord값들의 Array 1D로부터 균등하게 샘플링된 파형을 생성할 때 사용합니다.

오픈뷰 항목

Num Points - 출력 파형에 있는 포인트의 개수. 디폴트 값은 156이며, Num Points는 데이터 입력에 의해서 설정될 수 있습니다.

주의사항

Arb Waveform 오브젝트는 아래 공식을 사용합니다.

  dx = (Xmax-Xmin)/Num Points

  Xvalue = Xmin + (point * dx)

그러므로, 마지막 포인트 데이터는 Coord의 마지막 독립값이 아닙니다.

각 좌표의 독립값(x)은 어레이에 있는 이전 좌표의 독립값과 같거나 커야 합니다.

입력 좌표 어레이는 (x,y,z)가 아닌 (x,y)가 되어야 합니다.

오브젝트 위치

Data [image] Build Data [image] Arb Waveform

관련정보

Build Waveform, Comparator, Coord, Function Generator, Noise Generator, Pulse Generator, 속성창 (오브젝트) 및 오브젝트 메뉴

참조 예제

ScopeMask.vee


Build Complex 오브젝트

복소수를 생성하는 오브젝트

사용법

메뉴바의 Data메뉴에 있는 Build Data항목의 Complex 오브젝트는 실수 및 허수값에서 복소수를 생성할 때 사용합니다.

주의사항

하나의 입력값이 어레이라면, 다른 입력값은 스칼라이든지 같은 사이즈와 형태를 갖는 어레이여야 합니다. 두개의 입력값은 Re64타입으로 변환됩니다. 출력값은 입력값과 같은 사이즈와 형태를 갖습니다. 입력값의 매핑은 무시되고, 출력되는 복소수는 매핑이 안된 값입니다.

오브젝트 위치

Data [image] Build Data [image] Complex

관련정보

Build Data, UnBuild Complex, 속성창 (오브젝트) 및 오브젝트 메뉴

참조 예제

Complex.vee


Build Coord 오브젝트

실수에서 좌표를 생성하는 오브젝트

사용법

메뉴바의 Data메뉴에 있는 Build Data항목의 Coord 오브젝트는 실수 값에서 좌표값을 생성할 때 사용합니다.

주의사항

입력된 데이터의 개수는 좌표항목의 개수를 결정합니다. 디폴트값(최소값)은 2(x,y)입니다. 좌표 항목의 최대값은 10입니다.

하나의 입력값이 어레이라면, 다른 입력값(들)은 스칼라이든지 같은 사이즈와 형태를 갖는 어레이여야 합니다. 모든 입력값은 Re64타입으로 변환됩니다. 출력값은 입력값과 같은 사이즈와 형태를 갖습니다. 입력값의 매핑은 무시됩니다.

입력되는 데이터의 형태는 Scalar 또는 Array 1D여야 합니다.

주의
좌표 데이터에서는 입력터미날의 이름이 변경될지라도 좌표항목의 이름은 항상 x, y, z, w, v, u, t, s, r, q로 사용됩니다. 이 항목 이름들은 UnBuild Coord 또는 sort(x)에서 사용됩니다.

오브젝트 위치

Data [image] Build Data [image] Coord

관련정보

Build Data, Coord, UnBuild Coord, UnBuild Data, 속성창 (오브젝트) 및 오브젝트 메뉴

참조 예제

FutValue.vee


Build Data 메뉴항목

메뉴 항목

사용법

메뉴바의 Data 메뉴에 있는 Build Data 항목은 분리된 컴포넌트들로부터 특정한 데이터 컨테이너를 생성하기 위해 아래의 오브젝트들을 제공합니다.

Build Coord

Build Complex

Build PComplex

Build Waveform

Build Arb Waveform

Build Spectrum

Build Record

오브젝트 위치

Data [image] Build Data

관련정보

Allocate Array 메뉴항목, Build Arb Waveform, Build Complex, Build Coord, Build PComplex, Build Record, Build Spectrum, Build Waveform, Set Mappings, Set Values 및 UnBuild Data.


Build PComplex 오브젝트

분리된 컴포넌트로부터 PComplex(폴라 복소수)를 생성하는 오브젝트

사용법

메뉴바의 Data메뉴에 있는 Build Data항목의 PComplex 오브젝트는 크기와 위상 컴포넌트들로부터 PComplex(polar 복소수)를 생성할 때 사용합니다. 위상 컴포넌트의 단위는 File [image] Default Preferences 아래에 있는 Trig Mode 설정에 의해 결정됩니다.

주의사항

하나의 입력값이 어레이라면, 다른 입력값은 스칼라이든지 같은 사이즈와 형태를 갖는 어레이여야 합니다. 두개의 입력값은 Re64타입으로 변환됩니다. 출력값은 입력값과 같은 사이즈와 형태를 갖습니다. 입력값의 매핑은 무시되고, 출력되는 PComplex는 매핑이 안된 값입니다.

초기값의 위상은 pi와 –pi 라디안 사이에 들어가도록 정규화 됩니다. 크기가 음수인 경우에는, 크기는 양수로 변환되고 위상 각도는 180도 쉬프트합니다.

오브젝트 위치

Data [image] Build Data [image] PComplex

관련정보

Alloc PComplex, Build Complex, Build Data, Default Preferences 메뉴항목, PComplex, UnBuild PComplex, 속성창 (오브젝트), 및 오브젝트 메뉴

참조 예제

Complex.vee, FutValue.vee 및 Manual10.vee


Build Record 오브젝트

분리된 컴포넌트로부터 레코드를 생성하는 오브젝트

사용법

메뉴바의 Data메뉴에 있는 Build Data항목의 Record 오브젝트는 스칼라와 어레이 컴포넌트로부터 레코드를 생성할 때 사용합니다. 입력 데이터 컴포넌트는 출력 레코드의 필드가 됩니다. 출력 레코드는 스칼라 또는 1차원 어레이가 될 수 있습니다.

오픈뷰 항목

Output Shape - Scalar 또는 Array 1D로 레코드 출력값의 형태를 설정할 수 있습니다.

주의사항

레코드의 항목은 입력터미날의 이름과 일치하는 이름으로 생성됩니다. 항목이름은 대소문자와는 상관없습니다. (대소문자를 동일하게 취급). 항목이름은 하나의 레코드에서는 중복하여 사용할 수 없습니다. 항목의 숫자와 상관없이 추가적으로 데이터 입력을 할 수 있습니다. 레코드에 있는 항목이 하나의 레코드가 되어 레코드의 레코드를 생성할 수도 있습니다. 메모리의 한계를 제외하면, 반복의 제한은 없습니다.

모든 입력값이 스칼라이면, Record 출력핀에 있는 레코드는 출력형태를 지정했을지라도 각 입력값에 대하여 하나의 항목을 가진 스칼라 레코드가 됩니다.

하나 또는 그 이상의 입력값이 어레이라면, 출력되는 레코드의 형태는 지정한 출력형태로 출력됩니다.

스칼라를 출력형태로 지정하면, 출력 레코드는 각 입력값에 대하여 하나의 항목을 가진 스칼라가 됩니다. 각 항목은 스칼라이든지 어레이가 되며, 입력값과 일치하는 같은 형태를 가집니다.

Array 1D를 출력형태로 지정하면, 출력 레코드는 각 입력값에 대한 항목을 가진 1차원 어레이가 됩니다. 만약 입력값이 스칼라 이든지 1차원 어레이라면, 레코드에 있는 각 항목은 스칼라가 됩니다. 만약 입력값이 n차원 어레이라면, 대응하는 항목은 n-1차원의 어레이가 됩니다. 다음은 몇가지 사례입니다.

입력값 A가 10개의 앨리먼트를 가진 1차원 어레이이고 B가 스칼라라면, 출력값은 A와 B 두개의 항목을 가진 10개의 앨리먼트로 구성된 1차원 어레이가 됩니다. 입력값 A의 개별 앨리먼트는 출력레코드에서 A항목의 개별 어레이 앨리먼트로 나타납니다. 입력값 B는 출력 레코드의 B항목에서 10번 반복됩니다.

입력값이 2차원 이상을 가진 어레이라면, 출력레코드는 Array 1D가 됩니다. 예를 들어, 입력항목이 10-by-3사이즈를 가진 2차원 어레이라면, 출력레코드는 10의 크기를 가진 1차원 어레이가 되며 각 항목은 3개의 앨리먼트로 구성된 1차원 어레이가 됩니다.

오브젝트 위치

Data [image] Build Data [image] Record

관련정보

From DataSet, Get Field, Merge Record, Record Constant, Set Field, SubRecord, To DataSet 및 UnBuild Record.

레코드에 데이터 추가하기, 속성창 (오브젝트) 및 오브젝트 메뉴

참조 예제

appA_Records1.vee 및 Ch5_UnBuild.vee


Build Spectrum 오브젝트

분리된 컴포넌트로부터 스펙트럼을 생성하는 오브젝트

사용법

메뉴바의 Data메뉴에 있는 Build Data항목의 Spectrum 오브젝트는 PComplex 또는 복소수의 어레이 및 주파수 간격정보로부터 스펙트럼값을 생성할 때 사용합니다.

사용예

크기가 5이고, 앨리먼트가 PComplex (0,@1), (0,@2), ..(0,@5)인 1 차원 어레이를 Build Spectrum 오브젝트의 입력으로 제공하고, Build Spectrum 오브젝트의 Start 및 Stop 주파수의 값이 각각 11 과 16 이라면, 주파수 샘플이 11, 12, 13, 14, 15 인 스펙트럼이 출력됩니다.

오픈뷰 항목

Start/Stop Freq |Center/Span Freq - 값이 Start/Stop 또는 Center/Span 타입인지를 결정합니다. Start/Stop 또는 Center/Span값은 입력데이터로 추가될 수 있습니다.

Freq Sampling - 주파수 샘플링 값이 선형 샘플링인지 또는 로그 스케일 샘플링인지를 지정합니다. 디폴트 값은 선형 샘플링입니다.

주의사항

입력되는 PComplex의 매핑은 무시됩니다.

VEE 입력되는 값이 dB로 스케일링되었는지 확인하지 않습니다. dB 값을 입력으로 사용할 때는 주의하여 사용해야 합니다.

선형 스케일 데이터와 로그 스케일 데이터를 서로 변환할 때는 VEE의 Lib 폴더에서 제공하는 변환 프로그램을 사용할 수 있습니다.

샘플링 횟수만큼의 데이터가 제공되어야 합니다. 각 데이터는 샘플링 시점에서의 데이터입니다.

오브젝트 위치

Data [image] Build Data [image] Spectrum

관련정보

Build Data, Build Waveform 및 UnBuild Spectrum.

fft(x), 속성창 (오브젝트) 및 오브젝트 메뉴


Build Waveform 오브젝트

분리된 컴포넌트로부터 파형을 생성하는 오브젝트

사용법

메뉴바의 Data메뉴에 있는 Build Data항목의 Waveform 오브젝트는 실수 진폭 어레이와 시간스팬을 이용하여 파형을 생성합니다.

오픈뷰 항목

Time Span - 입력되는 데이터의 샘플링 주기보다 큰 초 단위의 시간. Time Span은 데이터 입력으로 추가될 수 있습니다. 디폴트 값은 20m초 입니다.

주의사항

입력값의 매핑은 무시됩니다. Build Waveform 오브젝트는 입력되는 값이 특정 시간간격 동안 동일한 주기로 선형 샘플링되었다고 간주합니다.

샘플링 횟수만큼의 데이터가 제공되어야 합니다. 각 데이터는 샘플링 시점에서의 데이터입니다.

오브젝트 위치

Data [image] Build Data [image] Waveform

관련정보

Build Arb Waveform, Build Data, Build Spectrum 및 UnBuild Waveform.

ifft(x), 속성창 (오브젝트) 및 오브젝트 메뉴

참조 예제

DigFilt.vee 또는 ReadMarkerValues.vee


Bus I/O Monitor 오브젝트

입출력 인터페이스(GPIB, GPIO, USB, LAN, VXI 및 RS-232)를 통해서 계측기와 통신하는 내용을 저장하는 오브젝트

사용법

계측기 사이에 전송된 명령이나 데이터를 표시하고 기록하는데 사용합니다. 여기서 계측기는 Instrument Panels, Component Drivers, Direct I/O 및 Advanced I/O 디바이스를 통해서 컨트롤되는 계측기를 지칭합니다. 기록된 정보는 선택적으로 로그 파일로 전송될 수 있습니다. Plug&play Driver를 이용하여 주고 받은 내용은 Bus I/O Monitor 오브젝트에서 사용할 수 없습니다.

GPIB, GPIO 및 RS-232 인터페이스를 사용시 Bus I/O Monitor 오브젝트에서 표시하는 5 개 컬럼의 내용은 아래와 같습니다.

칼럼 1 – 라인 개수.

칼럼 2 - GPIB 명령 (*), 데이터 출력(>) 또는 데이터 입력(<).

칼럼 3 – 전송된 바이트의 16진수 값

칼럼 4 – 전송된 바이트에 대응하는 7-bit ASCII 문자

칼럼 5 – GPIB 명령어

GPIO 통신을 모니터링 할 때는 칼럼1부터 3까지를 사용합니다.

RS-232 통신을 모니터링 할 때는 칼럼1부터 4까지를 사용합니다.

VXI 인터페이스를 사용시 표시하는 내용은 아래와 같습니다.

칼럼 1 – 라인 개수.

칼럼 2 - VXI 명령 (*), 데이터 출력(>), or 데이터 입력(<).

칼럼 3 – 메모리 영역 (A16, A24, or A32), 레지스터 나 위치를 나타내는 심볼이름, 명명된 위치에 대한 옵셋

칼럼 4 - 전송된 바이트의 16진수 값

칼럼 5 - VXI 계측기의 논리 어드레스.

오브젝트 메뉴

Clear - Bus I/O Monitor 오브젝트의 내용을 삭제합니다. Clear는 컨트롤 입력핀으로 추가될 수 있습니다.

Clear Log File - 지정된 로그 파일을 지웁니다. 이 항목은 컨트롤 입력으로 추가될 수 있습니다.

속성창

Logging

LoggingEnabled - Bus I/O Monitor 오브젝트의 기록행위. Log Enable 및 Log Disable 컨트롤 입력은 추가될 수 있으며, 디폴트 값은 True입니다.

FileLoggingEnabled - Bus I/O Monitor 오브젝트에 의해서 기록된 내용을 지정한 파일로 전송합니다. 모니터링된 데이터는 항상 지정한 파일의 마지막에 추가됩니다. 로그 파일이름은 Bus I/O Monitor 오브젝트의 오픈뷰에서 지정할 수 있습니다. 디폴트 값은 False 입니다.

BufferSize

Lines: 모니터에 디스플레이 되는 라인의 최고 개수를 지정합니다. 모니터가 다 차면 모니터의 시작라인은 새로 로그되는 라인을 위해 무시됩니다. 디폴트 값은 256입니다.

주의사항

Bus I/O Monitor 오브젝트는 오픈뷰 보다는 아이콘뷰로 디스플레이 될 때 훨씬 더 빨리 실행됩니다.

각 Bus I/O Monitor 오브젝트는 실제 버스를 모니터링할 수 있습니다. 예를 들어, 하나의GPIB 카드와 하나의 RS-232 카드에서 VEE 행위를 모니터링하기 위해서는 두개의 Bus I/O Monitor가 필요할 수도 있습니다.

Bus I/O Monitors는 일반적인 목적의 하드웨어 버스 모니터가 아니라, 단지 VEE에 의한 입출력 바이트를 보여줍니다. 버스로 입출력하는 어떤 다른 프로그램도 VEE 모니터에 그들의 I/O를 저장(log)하지는 않습니다.

윈도우에서 제공하는 Control Panel(윈도우 우측 하단)에 있는 날짜 및 시간등록정보 대화상자(표준시간대)를 사용하여 오브젝트에 나타나는 시간영역을 변경할 수도 있습니다. 시간영역의 설정을 변경한 다음에는 VEE를 재시작하여 변경내용을 적용해야 합니다.

오브젝트 위치

I/O [image] Bus I/O Monitor

관련정보

Advanced I/O 메뉴항목 또는 Instrument Manager 대화상자.

버스 메시지 모니터링 하기


버튼

Toggle Control을 참조하십시오.


by Name 오브젝트

VEE 작업영역에서 아이콘(축소된 윈도우)을 정렬하는 기능

사용법

메뉴바의 Window 메뉴에 있는 Arrange Icons 항목의 by Name은 VEE 작업영역에서 아이콘(축소된 윈도우)을 이름 순서로 정렬하는데 사용합니다. 아이콘들은 작업영역의 아래에 정렬됩니다. 이름 순서로 정렬할 때는 아이콘의 타이틀바에 나타나는 이름을 기준으로 합니다.

오브젝트 위치

Window [image] Arrange Icons [image] by Name

관련정보

Arrange Icons, by Position 및 Minimize All.


by Position 오브젝트

VEE 작업영역에서 아이콘(축소된 윈도우)을 정렬하는 기능.

사용법

메뉴바의 Window 메뉴에 있는 Arrange Icons 항목의 by Position 은 VEE 작업영역에서 아이콘(축소된 윈도우)을 현재의 위치를 기준으로 정렬하는데 사용합니다. 아이콘들은 작업영역의 아래에 적절히 정렬됩니다.

오브젝트 위치

Window [image] Arrange Icons [image] by Position

관련정보

Arrange Icons, by Name 및 Minimize All.


Call 오브젝트

이전에 정의해 놓은 함수를 실행하는 오브젝트

사용법

Call 오브젝트는 이전에 정의해 놓은 UserFunction, Remote Function 또는 Compiled Function을 실행(호출)하기 위해 사용합니다. Call 오브젝트에서의 입력과 출력은 호출된 함수에 있는 각각의 입출력과 같습니다. Call Function의 입력은 이름이 아닌 위치에 의해서 호출된 기능으로 전송됩니다. 예를 들어 Call Function 오브젝트는 A 및 B같은 자신의 입력을 가질 수도 있습니다. 그러나 호출된 함수는 x 및 y같은 입력을 갖게 됩니다. Call Function의 첫번째 입력(A)은 호출된 함수의 첫번째 입력(x)으로 전송됩니다. 단지 위치가 의미를 가집니다.

UserFunction, Remote Function 또는 Compiled Function은 실행시 까지는 값을 연산하는 대기하고 있는 표현식에 호출하고자 하는 함수의 이름을 사용하여 호출할 수도 있습니다. 이러한 것들은 Formula, If/Then/Else 또는 Set Values 같은 다양한 오브젝트들의 표현식에 사용할 수 있고, Sequencer 또는 I/O 트랜잭션에 사용하는 표현식에서도 적용할 수도 있습니다. 예를 들어 Formula 오브젝트에 2+someUsrFunc(a)이라는 표현식을 사용하여 someUsrFunc 함수를 호출할 수 있습니다.

함수를 호출하는 데는 2가지 방법이 있습니다. 오브젝트 메뉴에서 Select Function를 선택하고 사용 가능한 함수 리스트에서 함수이름을 선택할 수도 있고, 오브젝트의 Function Name 항목에 이름을 직접 입력할 수도 있습니다. 이런 두가지 경우에, 만약 VEE 프로그램이 호출하고자 하는 함수를 인식하고 있다면 Call 오브젝트는 호출된 함수의 입출력핀을 자동으로 설정할 수도 있습니다.

VEE는 UserFunctions(프로그램 내에서 생성하거나 라이브러리에서 임포트한 경우), Compiled Functions 또는 Remote Function을 호출할 수 있기 때문에, 같은 이름을 가진 2개의 함수를 사용할 수도 있습니다. Call 오브젝트에서 같은 함수이름을 사용하여 발생한 이름의 충돌은 아래의 순서에 의해서 해결됩니다.

1. 호출하는 오브젝트와 같은 이름을 가진 라이브러리

2. 로컬 UserFunction

3. 임포팅된 UserFunctions, Compiled Functions 또는 Remote Functions. 이 3가지에서의 우선순위는 보장할 수 없습니다. 정확한 선택을 위해서는 호출할 때 ‘dot’ 표기를 사용하여 라이브러리 이름을 사용해야 합니다. 예를 들면 myLib.func() 같이 사용합니다.

위에 설명한 순서 찾기를 적용하기 위해서는 실행모드 를 VEE 5이상으로 사용하십시오. 그 이전의 실행모드에서는 기능이름을 찾을 때 다른 순서를 사용합니다. 이러한 순서 찾기의 차이는 다른 라이브러리에서 비슷한 이름을 가진 프로그램을 사용할 때는 영향을 미칠 수도 있습니다. 좀더 자세한 사항은 실행모드를 참조하십시오.

오픈뷰 항목

Function Name - 호출하고자 하는 UserFunction, Remote Function 또는 Compiled Function의 이름

O오브젝트 메뉴

Edit UserFunction - 호출하는 UserFunction의 편집화면을 디스플레이 합니다. 편집을 완료하면 화면의 우측 상단에 있는 닫기 버튼이나 축소 버튼을 클릭하십시오.

Select Function - 현재 VEE가 인식하고 있는 함수들의 리스트를 디스플레이 합니다. 임포팅된 함수, Remote UserFunctions 또는 Compiled Functions들은 라이브러리 이름으로 표시됩니다. 기능을 선택하면 오브젝트에 있는 입출력핀은 호출된 함수에 정의된 대로 자동으로 설정됩니다. (이 선택방법은 UserFunctions 또는 Compiled Functions이 없을 때는 선택항목이 회색으로 바뀌어 비활성화 됩니다.)

Configure Pinout - 호출된 함수에 정의된 대로 오브젝트에 입출력핀을 자동으로 설정합니다. (이 선택방법은 VEE에 호출 가능한 함수가 없을 때는 선택항목이 회색으로 바뀌어 비활성화 됩니다.)

주의사항

TCall Function 오브젝트는 수학함수 호출과 비슷하게 실행됩니다. 입력은 VEE의 변수처럼 동작하며, 출력터미날은 호출했던 함수로부터 출력된 값을 리턴합니다.

VEE 4 이상의 실행모드 - Default Preferences 대화상자에 있는 실행모드가 VEE 4이상으로 설정되어 있다면, Call Function은 비동기식으로 실행됩니다. – UserFunction을 호출하는 방식은 병렬처리를 기반으로 한 시간분할방식(time slice)입니다. 만약 UserFunction이 실행되는 중에 프로그램의 다른 부분에서 다시 호출되었다면, 두번째 호출은 최초 호출이 완료될 때까지 대기합니다. Compiled Functions 및 Remote Functions를 호출하는 것은 동기식 실행입니다.(아래 참조)

VEE 3 - Default Preferences 대화상자에 있는 실행모드가 VEE 3으로 설정되어 있다면, Call Function은 동기식으로 실행됩니다. – 함수를 호출하는 방식은 함수의 실행이 완료 될 때까지 병렬처리의 실행을 중지합니다.

오브젝트 위치

Device [image] Call

관련정보

Delete Library, Edit UserFunction, Formula, Import Library, UserFunction, UserObject, 속성창 (오브젝트) 및 오브젝트 메뉴)

프로그램 상에서 UserFunction 호출하기


Call Stack 오브젝트

프로그램 디버깅을 위하여 유용하게 사용하는 View 메뉴

사용법

Call Stack 대화상자는 프로그램을 디버깅하기 위해 사용합니다. Call Stack 대화상자는 현재 실행되고 있는 UserObject 또는 UserFunction을 디스플레이 합니다. 현재 실행되고 있는 오브젝트를 알려주는 것 외에도 대화상자는 현재 실행중인 오브젝트를 호출 했던 UserObject 또는 UserFunction의 리스트나 계층구조를 보여줍니다.

Call Stack 대화상자는 프로그램이 일시 정지 상태일 때 유용한 정보를 디스플레이 합니다. 프로그램이 실행중일 때는 표시되는 정보가 없습니다. Activate Breakpoint, Pause등을 포함하는 몇 가지 방법을 이용하여 프로그램을 일시 정지할 수 있습니다.

대화상자 정보

Call Stack 대화상자의 항목이나 버튼은 사용자가 편집할 수 없습니다. Call Stack 대화상자의 타이틀바 아래칸은 상태를 표시하는 영역입니다. 이 상태표시 창은 프로그램의 현재 상태를 표시합니다. 프로그램이 실행중일 때는 Program is running이라 표시됩니다.

프로그램이 일시 정지되고, Call Stack이 활성화 될 때 아래와 같은 3가지가 발생합니다.

1. Call Stack 대화상자의 상태표시 창은 프로그램상에서 다음에 실행해야 할 오브젝트를 표시합니다. 표시방법은;

Next Object: objectTitle(objectType)

objectTitle은 오브젝트의 타이틀바에 표시되는 텍스트입니다. 그리고 (objectType)은 Formula 오브젝트 같은 실행되어야 할 오브젝트의 종류입니다.

2. 상태표시 창에 표시되는 오브젝트는 VEE 작업영역에 하이라이트되어 디스플레이 됩니다.

3. 현재 실행되는 오브젝트나 기능 호출에 대한 계층구조는 대화상자의 내부창에 디스플레이 됩니다. 계층구조상에 나열된 어떤 항목을 클릭하면 VEE 작업영역에 UserObject 또는 UserFunction을 디스플레이하고 하이라이트 시킵니다.

주의사항

Call Stack 오브젝트는 VEE 프로그램을 디버깅할 목적으로 Step Into, Step Out 또는 Step Over 기능과 함께 사용할 수 있습니다.

오브젝트 위치

View [image] Call Stack

관련정보

브레이크포인트 활성화, Find 메뉴항목, Pause, Profiler, Run/Resume, Step Into 메뉴항목, Step Out 메뉴항목, Step Over 메뉴항목 및 Toggle Breakpoint 메뉴항목

콜스텍 보기


Cascade 메뉴항목

VEE 작업영역에서 윈도우 화면을 관리하기 위한 함수

사용법

메뉴바의 Windows 메뉴에 있는 Cascade 항목은 VEE 작업영역에 열려있는(축소화 되지 않은) 윈도우를 중첩되게 정렬할 때 사용합니다. 작업영역에 있는 윈도우는 일정간격으로 아래 및 오른쪽 방향으로 윈도우가 쌓인 형태로 정렬됩니다.

주의사항

VEE 작업영역에 여러 개의 윈도우가 열려 있을 때는 Ctrl 키를 다른 키와 조합하여 사용이 가능하고, 윈도우를 스크롤 할 수 있습니다.

Ctrl+Tab 또는 Ctrl+F6키를 동시에 눌러서 최상위에 나타난 윈도우를 중첩된 윈도우의 맨 바닥으로 보낼 수 있습니다. 따라서 중첩되어 보이지 않았던 두번째 윈도우를 볼 수 있습니다.

Ctrl+Shift+Tab 또는 Ctrl+Shift+F6키를 동시에 누르면 맨바닥에 있는 윈도우를 중첩된 윈도우의 최상위로 중첩시킵니다.

오브젝트 위치

Window [image] Cascade

관련정보

Arrange Icons 메뉴항목, Close All, Minimize All, Tile Horizontally 메뉴항목 및 Tile Vertically 메뉴항목.


Change Extension 오브젝트

파일이름의 확장자를 변경합니다. 예를 들어, test.txt 파일을 test.doc로 변경할 수 있습니다.

오브젝트 위치

System [image] Path [image] Change Extension


체크박스

Toggle Control를 참조하십시오.


라인(연결선) 정리하기

메인 프로그램, UserObject 또는 UserFunction에 있는 모든 연결선에 대하여 수직선 및 수평선을 이동하여 오브젝트를 피해 다시 정리합니다.

사용법

Default Preference에서 Automatic Line Routing을 비활성화 하면, 연결선은 핀에서 핀으로 직선으로 연결됩니다. 꺽은선으로 연결하지 않으면, 프로그램 작성시 수시로 Clean Up Lines을 선택하여 연결선을 정리하십시오.

주의사항

Clean Up Lines은 컨텍스트에 민감합니다; UserObject 또는 UserFunction의 Edit 메뉴에서 Clean Up Lines를 선택하면, 작업중인 컨텍스트에 있는 연결선만 정리됩니다. 메뉴바의 Edit 메뉴에서 Clean Up Lines을 선택하면, 최상위 컨텍스트(UserObject 제외)에 있는 연결선만 정리됩니다.

복잡한 프로그램에서는 연결선을 완전히 재 정리하는 데는 약간의 시간이 필요할 수도 있습니다.

아주 복잡하게 연결된 프로그램에서는, Auto Line Routing시에 좀더 짧은 경로를 찾기 위해 오브젝트 사이의 공간을 확보하기 위하여 일부 오브젝트를 이동하십시오.

Clean Up Lines를 사용한 다음에는, 때로는 두개의 연결선이 서로 교차한 건지 연결선이 3개의 오브젝트로 연결된 건지를 구분하기가 어려울 수도 있습니다.

오브젝트 위치

Edit [image] Clean Up Lines

또는
UserObject (오브젝트 메뉴) [image] Edit [image] Clean Up Lines

관련정보

Default Preferences 메뉴항목, Line Probe 및 UserObject.


모든 브레이크포인트 해제하기

오브젝트에 적용된 모든 브레이크포인트를 해제합니다.

사용법

Clear All Breakpoints는 프로그램 수정을 완료했을 때 오브젝트에 적용된 모든 브레이크포인트를 해제하기 위해 사용합니다.

오브젝트 위치

Debug [image] Clear All Breakpoints

관련정보

브레이크포인트 활성화, 속성창 (오브젝트) 및 Toggle Breakpoint 메뉴항목.

브레이크포인트 컨트롤하기


클론 (오브젝트 메뉴)

오브젝트를 클론하고, 붙여넣기 버퍼에 있는 오브젝트의 복사본을 배치합니다.

사용법

오브젝트 메뉴에 있는 클론은 오브젝트의 복사본은 생성하는데 사용합니다. 클론은 즉시 사용할 수 있도록 오브젝트를 복제하고, 붙여넣기 버퍼에 있는 오브젝트의 복사본을 배치합니다. 클론은 복제된 오브젝트의 터미날, 파라미터, 크기등의 모든 속성을 복사합니다.

주의사항

동시에 복수의 오브젝트를 복사하기 위해서는 CTRL-Left버튼을 이용하거나 Edit [image] Select All을 사용하여 오브젝트를 선택하고, Edit [image] Copy를 사용하여 복사하고 Edit [image] Paste (혹은 CTRL-c 및 CTRL-v)를 이용하여 붙여 넣습니다..

Clone은 이전에 붙여넣기 버퍼에 저장했던 내용을 덮어 씌웁니다..

UserObject의 Clone은 UserObject에 들어있는 모든 오브젝트를 포함하여 복사합니다. 독립적으로 복사되기 때문에, 복사된 내용을 수정해도 다른 복사본이 변경되지는 않습니다.

계측기의 동일한 패널을 클론하더라도, 각각의 패널은 서로 다른 상태정보를 가집니다.

단축키

클론하고자 하는 오브젝트를 선택하십시오. 오브젝트위에 마우스 커서를 놓고, CTRL-Left버튼을 누른 상태에서 원하는 위치로 복제된 오브젝트를 드래그합니다. (오브젝트를 복제하기 위해서는 최소 65픽셀이상의 거리를 드래그해야 합니다.)

오브젝트 위치

오브젝트 메뉴 [image] Clone

관련정보

오브젝트 메뉴, Cut 메뉴항목 (오브젝트 메뉴), Copy 메뉴항목, Paste 메뉴항목 및 Replace.


Close All 오브젝트

VEE 작업공간에서 윈도우를 관리하는 함수

사용법

Close All은 열려 있거나 축소된 윈도우(아이콘)를 닫고, 텅 빈 작업공간으로 만듭니다.

오브젝트 위치

Window [image] Close All

관련정보

Arrange Icons 메뉴항목, Cascade 메뉴항목, Minimize All, Tile Horizontally 메뉴항목 및 Tile Verticall 메뉴항목.


CLR Version 오브젝트

호스트 컴퓨터의 CLR(Common Language Runtime) 버전을 가져옵니다.

오브젝트 위치

System [image] Environment [image] CLR Version


Collector 오브젝트

스칼라데이터를 읽어서 어레이로 출력하는 오브젝트

사용법

Collector 오브젝트는 스칼라 입력 값을 1차원 어레이로 생성하여 출력하거나, 여러 개의 입력 어레이를 하나의 어레이로 변환하여 출력합니다. 입력 어레이가 n 차원이면 n+1차원 어레이를 생성하며, 한 열로 된 데이터를 입력하면 1차원 어레이로 출력합니다. 입력 데이터들이 모두 읽고, XEQ핀이 활성화되면 수집된 어레이를 출력합니다.

오픈뷰 항목

Output Shape - 두 가지 중 한 가지를 선택합니다.

n+1 Dim Array - n 차원의 어레이 입력을 읽어서 n+1차원의 어레이로 출력합니다.

1 Dim Array - collector는 형태에 관계없이 입력 신호들이 한 열로 읽어 들이고 1차원 어레이로 출력합니다.

(입력 값이 스칼라이면 사용자의 선택에 관계없이 1차원 어레이로 출력됩니다.)

오브젝트 메뉴

Clear - Collector의 내용들을 초기화시킵니다.

주의사항

XEQ는 Collector오브젝트의 고유한 성질이므로 같은 XEQ pin을 생성하거나 XEQ pin을 지울 수 없습니다.

Collector오브젝트는 XEQ pin이 트리거 될 때까지 값을 수집합니다.

Collector는 두 개의 입력 핀을 가지고 있습니다. 임의의 형태와 종류의 데이터를 읽는 핀과 데이터를 모두 읽었을 때 Collector에 알려주는 핀입니다. Collector는 데이터를 읽어 들이는 핀이 왼쪽 상단에 있으며, XEQ가 활성화 될 때까지 데이터를 읽습니다. XEQ가 활성화되면 Collector는 모든 수집된 데이터를 복사하여 출력 핀에 전달합니다. XEQ가 활성화 될 때까지 데이터를 출력 핀으로 전달되지 않습니다. 데이터가 전달되면 Collector 내부의 버퍼를 지우고 다시 데이터를 수집하기 시작합니다. 출력 신호의 종류는 XEQ가 활성화 되거나 초기화 할 때 들어오는 첫 데이터의 종류에 의해 결정됩니다. 이후 입력되는 모든 데이터는 처음 들어오는 데이터 종류와 같아야 합니다. 그렇지 못하면 에러가 발생됩니다.

출력신호의 형태는 사용자가 선택할 수 있습니다.

n+1 Dim Array operation - 사용자가 출력 형태를 n+1 Dim Array로 선택하면 Collector데이터 핀으로 들어오는 데이터를 수집하고 입력 데이터의 차원보다 한 차원 높은 어레이를 출력합니다. XEQ가 활성화될 때까지 각 입력 신호는 첫 번째 입력 신호와 같은 길이와 같은 형태이어야 합니다. 같은 정보가 아닌 것은 복사하지 않습니다. 즉 출력 신호는 나오지 않습니다.

예를 들어 처음 입력 데이터는 10개의 Real64의 1차원 어레이라면 각각 계속 들어오는 입력 신호도 역시 XEQ가 활성화될 때까지 10개의 Real64의 1차원 어레이이어야 합니다. 입력 데이터 핀에 n번 보내진 데이타는 출력 신호를 XEQ가 활성화되기 전에 10*N을 가지는 Real64의 2차원 어레이를 생성합니다.

1 Dim Array operation -사용자가 출력 형태를 1 Dim Array로 선택하면 Collector는 데이터 핀에 들어오는 데이터를 수집하고 입력 데이터에 관계없이 1차원 어레이로 출력합니다. 스칼라데이터나 1차원 어레이는 차례로 밑에 첨가되며 다차원 어레이는 1차원 어레이로 변환되어 첨부됩니다.

예를 들면, 들어오는 데이터 값이 1.2 인 스칼라 Real64와 값이 34인 스칼라 Int32와 차례로 입력되고, XEQ가 활성화 되면 출력은 [1.2, 34.0]을 가지는 2개의 Real64의 1차원의 어레이를 출력합니다. 여러 개의 Complex 데이터가 차례로 입력되고 XEQ 핀이 활성화 되면 1차원 어레이를 출력합니다.

다른 종류의 스칼라 값이 입력되면, Collector가 출력 형태와 관계없이 동일한 출력 신호를 발생시킵니다.

Waveform 데이터와 Spectrum 데이터는 2차원 이상에는 지원하지 않으므로 Collector가 n+1 Dim Array로 선택되어 있을 때는 이들 오브젝트의 출력은 Collector의 입력으로 사용할 수 없습니다. Waveform데이터와 Spectrum 데이터를 2차원 어레이를 읽으려면, 먼저 입력 데이터를 언빌드하고 2차원 어레이로 데이터를 읽어야 합니다. 이 경우 매핑 정보를 잃게 됩니다.

Record 오브젝트와 Coord 오브젝트 데이터는 1차원 어레이만 지원되므로 Collector는 n+1 Dim Array로 설정된 경우에는 스칼라 Record데이터와 스칼라 Coord 데이터만 입력으로 사용할 수 있습니다.

Enum 입력은 어레이로 생성되기 전에 Text 타입으로 변환됩니다.

Record입력의 경우에는, 필드명, 종류 및 길이가 일치해야 합니다.

Collector 내부 버퍼가 초기화된 상태에서 시작합니다. Collector의 XEQ가 활성화될 때마다 내부 버퍼가 초기화 됩니다. 사용자는 Clear를 control input으로 첨가시킬 수 있으며, XEQ가 활성화되기 이전에도 프로그램상에서 이 Clear 입력을 활성화하여 Collector 데이터를 초기화할 수 있습니다. 데이터 입력이 계속되는 동안 반복하여 데이터를 읽지만, XEQ가 활성화 되기 전까지 출력되지는 않습니다.

XEQ가 활성화되고, 데이터 입력은 마지막 데이터가 초기화되어 non-nil데이터로 활성화 되지 않는다면 Collector는 VEE 3 실행모드로 nil 신호를 출력할 것입니다. 사용자가 VEE 4 또는 그 이상의 실행모드에서는, 입력 데이터의 종류를 알고 있다면, 그 데이터 종류이면서 값이 0 인 어레이를 출력합니다. 입력 데이터 종류를 모르는 경우에는 데이터 타입이 Int32 이고 앨리먼트의 값이 0 인 어레이를 생성합니다.

오브젝트 위치

Data [image] Collector

관련정보

Allocate Array 메뉴항목, Concatenator, Get Values, Set Values, Sliding Collector, 속성창 (오브젝트) 및 오브젝트 메뉴

데이터로 어레이 생성하기


Color Alarm 오브젝트

스칼라 입력 값에 따라 다른 색과 다른 글자를 표시하는 오브젝트

사용법

Color Alarm은 입력 값과 사용자가 정의한 값의 범위에 따라 표시되는 색과 글자가 변경되는 LED 역할을 합니다. Color Alarm 의 선택기능을 이용하여 입력 값을 디지털 숫자 로 표시할 수도 있습니다.

속성창

ClearAtPreRun - 이 속성이 True로 표시되어 있을 때 Color Alarm의 내용들은 VEE 로 컴파일 되기 전에 초기화됩니다. 디폴트 값은 True입니다.

 ClearAtActivate - 이 속성이 True로 표시되어 있을 때 Color Alarm의 내용들은 VEE 컴파일 후 프로그램 실행 시 신호가 Color Alarm에 도달할 때 초기화됩니다. 디폴트 값은 True입니다.

Shape - Color Alarm의 모양을 선택합니다. 디폴트 값은 원형입니다.

 Show 3-D Border - 이 속성이 True로 표시되어 있을 때 Shade항목에서 선택한Color Alarm의 모양을 3차원으로 표시하며, 그림자가 생성됩니다. 이 속성을 False로 선택하면 Color Alarm의 모양에서 그림자가 사라지므로 한 가지 색으로 Color Alarm 이 표시됩니다. 작은 스위치를 화면에 표시할 때, 빠르게 실행하는 오브젝트를 필요할 때, 혹은 3차원 형태의 표시방법이 필요하지 않을 때 이 기능을 유용하게 사용할 수 있습니다.

 ShowDigitalDisplay - 이 속성이 True이면, Color Alarm 오브젝트의 하단에 입력 값을 숫자로 표시합니다. 이 속성이 False이면, 입력 값이 디지털 숫자로 표시되지 않습니다. 이 속성이 False 일 때 실행속도가 더 빠릅니다. 디폴트 값은 False입니다.

HighColor - 입력된 최대 범위 데이터에 대한 색을 선택합니다. (즉, High Limit보다 큰 값이 입력되면 HighColor에서 선택된 색이 화면에 나타납니다.)

 High Text - HighColor가 사용될 때 Color Alarm에 표시되는 텍스트입니다. 디폴트는 High입니다.

 High Limit - 최대 값의 한계를 정합니다. 이 값은 Low Limit 보다 같거나 더 큰 값 이어야 합니다.

 MidColor - 입력된 중간 범위의 값에 대한 색을 선택합니다. (즉, High Limit보다 작거나 같고, Low Limit보다 더 큰 값이 입력되면 MidColor에서 선택된 색이 화면에 색이 화면에 나타납니다.)

 Mid Text - MidColor가 사용될 때 Color Alarm에 표시되는 텍스트입니다. 디폴트는 Mid입니다.

 Low Limit - 최소 값의 범위를 지정합니다. 이 값은 High Limit 보다 같거나 더 작은 값 이어야 합니다.

 LowColor - 입력된 최소 값에 대한 색을 선택한다. (즉, Low Limit보다 작은 값이 입력되면 이 색이 화면에 나타납니다.)

 Low Text - LowColor가 Color Alarm에 표시되는 텍스트입니다. 디폴트는 Low입니다.

주의사항

입력값은 Scalar여야 하고, Real64로 변환될 수 있어야 합니다. (Complex, PComplex, Spectrum 및 Coord 는 먼저 스칼라로 변경되어야 합니다.)

Low Limit는 High Limit의 값보다 작아야 합니다.

2 단계의 색깔을 사용하기 위해서는 Low Limit 와 High Limit를 같은 값으로 설정합니다.

1 단계의 색깔만 이용하기 위해서는 LowColor, MidColor, 및 HighColor를 동일한 색깔로 설정합니다.

오브젝트 위치

Display [image] Indicator [image] Color Alarm

관련정보

AlphaNumeric, Fill Bar, Logging AlphaNumeric, Meter, Tank 및 Thermometer.

Color Alarm 표시하기

오브젝트 메뉴


COM 오브젝트 - 에러 수정

COM 오브젝트 – 에러 수정

Microsoft Visual Studio .NET 또는 Agilent VEE 환경에서 .NET 어셈블리와 같은 COM 타입 라이브러리를 사용할 때, 경고 메시지가 나타나는 경우가 있습니다.

원인

Microsoft Visual Studio .NET 과 Agilent VEE는TypeLibConverter.ConvertTypeLibToAssembly API를 사용하여 COM 타입 라이브러리를 .NET interop 어셈블리로 자동으로 변환하려 합니다.이때 API가 COM 타입 라이브러리를 .NET interop 어셈블리로 변환하는데 실패하여 에러 메시지가 나타나게 되는 것입니다.

문제 해결

이 문제에 대해서 살펴보면, .NET Framework SDK 1.1 에 있는 도스명령어 라인 기능인 TlbImp를 사용해야 합니다. VEE에서는 이 기능을 제공하지 않기 때문에, Microsoft Developer's Network에서 SDK를 다운로드하고 설치해야 합니다. 만약 Visual Studio .NET 2003이 설치되어 있다면, SDK가 이미 설치되어 있기 때문에 다운로드 할 필요는 없습니다.

  1. 윈도우 보조프로그램의 명령프롬프트(MS-DOS) 윈도우를 열고, 비어있는 디렉토리로 변경합니다.

  2. 다음과 같이 입력합니다: <PathToSDK>\TlbImp.exe <PathToYourComTypeLib.dll>

예를 들어, c:\program files\Microsoft Visual Studio .NET 2003\sdk\v1.1\bin\TlbImp.exe
c:\program files\IVI\bin\rsfs.dll

이것은 .NET interop 어셈블리를 생성합니다. 예를 들면 디렉토리에 Rsfs_RohdeAndSchwarzLib.dll를 생성합니다. 또한 같은 디렉토리에 어떤 관련 어셈블리를 생성합니다.

  3. 생성된 어셈블리를 VEE 프로그램이 있는 폴더로 복사합니다. 예를 들어, VEE 프로그램이 C:\VEE programs\Rsfs.vee에 있다면, 생성된 어셈블리를 c:\VEE programs로 복사합니다.

  4. VEE 프로그램을 열어서 일반적인 프로그램과 같은 방법으로 실행합니다. 만약 IVI-COM driver라면, 온라인 도움말에서 "To/From IVI-COM"에 있는 지시사항을 따라 하십시오. 기타 COM 타입의 라이브러리라면, Device [image] .NET Assembly References 대화상자를 사용하여 interop 어셈블리를 찾아 보십시오.

주의 사항

또한 Primary interop 어셈블리를 생성하기 위하여 TlbImp를 사용할 수도 있습니다. 이것은 사용할 프로그램 디렉토리에 복사할 필요 없이, 다른 프로그램과 공유할 수 있습니다. 이것은 IVI-COM 드라이버를 사용하는 경우에는 최고의 사용방법입니다. TblImp에 관한 좀더 자세한 정보는 Microsoft Developer's 을 참조하십시오.


Command Line 오브젝트

현재 사용중인 VEE 프로그램을 실행하기 위해서 사용된 도스명령어 및 변수를 가져옵니다.

오브젝트 위치

System [image] Environment [image] Command Line


Command Line Args 오브젝트

현재 사용중인 VEE 프로그램을 실행하기 위해서 사용된 도스명령어 및 변수를 1차원 어레이로 가져옵니다.

오브젝트 위치

System [image] Environment [image] Command Line Args


Comparator 오브젝트

2개의 입력을 비교하는 오브젝트로, 입력값이 서로 다른 경우에는 좌표쌍으로 이들 입력을 출력합니다.

사용법

Comparator 오브젝트는 Waveform 또는 Coord같은 숫자값를 기준값과 비교하는데 사용합니다. Test Value로 입력된 값중에 1개 이상의 값이 실패할 경우에는, Coord Array 1D가 Failure 출력터미날로 출력되고 Failed 출력핀이 활성화 됩니다. 만약 모든 값들이 비교를 통과 했다면 텅빈 Coord가 Failure 출력터미날로 출력되고 Passed 출력핀이 활성화 됩니다.

Failures 출력터미날을 통해 출력한 Coord Array 1D에서 독립변수(x)는 실패한 점들의 인덱스나 매핑을 포함하고 있습니다. 어레이의 종속변수(y)는 실패한 Test Value를 포함합니다.

오픈뷰 항목

Test Value == Ref Value – 연산자를 클릭하고, 디스플레이된 리스트에서 함수를 선택하여 비교 연산자를 변경할 수 있습니다. 디폴트 값은 == 입니다.

주의사항

Comparator 오브젝트는 Text 오브젝트에 있는 숫자값도 비교합니다. Comparator 오브젝트는 텍스트 스트링은 비교할 수 없습니다.

Ref Value의 데이터형식은 Test Value와 같은 데이터형식으로 처리됩니다. 예를 들어, Test Value가 Array 1D인 경우에, 3의 스칼라 Ref Value는 모든 앨리먼트가 3인 Array 1D로 처리됩니다. 만약 어레이를 비교하는 경우에는 어레이의 크기와 차원이 반드시 매칭되어야 합니다.

Test Value가 스칼라이면, Ref Value는 반드시 스칼라여야 합니다.

Test Value가 매핑이 안된 어레이이면, Ref Value에 있는 매핑은 무시됩니다.

Test Value가 매핑된 어레이이면, Failure의 독립변수는 실패한 앨리먼트의 매핑인Coord (x)를 출력합니다.

Test Value가 Coord이면, 단지 Coord의 종속변수만을 비교합니다. Failure는 실패한Coord값을 포함하는 Coord를 출력합니다.

모든 비교는 6자리수 까지가 동일한지 아닌지를 체크하는 ‘almost equal’ 알고리즘을 사용합니다. 만약 Ref Value가 하나 이상의 앨리먼트를 가진 어레이라면, ‘virtual zero’의 값은 기준데이터의 크기로부터 생성됩니다. 0(zero)의 값을 가진 데이터 포인트는 반드시 ‘virtual zero’값과 매칭이 되어야 합니다.

오브젝트 위치

Device [image] Comparator

관련정보

Allocate Array 메뉴항목, Build Arb Waveform, Coord, If/Then/Else, Set Values, 속성창 (오브젝트) 및 오브젝트 메뉴


Complex 오브젝트

스칼라 또는 Array 1D 형태의 상수 Complex를 출력하는 오브젝트

사용법

Complex 오브젝트는 Complex 상수를 설정하거나 사용자가 값을 입력할 수 있습니다. 값을 입력하기 위해서는 입력필드를 클릭하십시오.

사용예

Complex 오브젝트를 패널상에 알림 기능으로 사용하기 위해서는, Complex 오브젝트의 이름을 Enter the AC voltage: 등으로 표시하여 사용합니다. 사용자는 입력필드에 요청하는 정보를 입력할 수 있습니다.

(2,10/27)라고 입력하면 Complex가 입력 내용을 자동으로 연산하여 표시합니다.

속성창

 DataShape - 출력되어야 할 값의 데이터 형태를 설정합니다. 디폴트 값은 Scalar입니다.

 ArraySize: - 1D Array를 선택하면, ArraySize는 어레이의 길이를 설정합니다. 디폴트 값은 10입니다.

 ArraySizeFixed - True로 설정하면, 어레이에는 라인을 추가하거나 삭제할 수 없습니다. 데이터 형태가 1D Array인 경우에만 사용할 수 있습니다.

 ShowArrayIndices - True로 설정하면, 어레이에 있는 각 라인은 인덱스됩니다. 데이터 형태가 1D Array인 경우에만 사용할 수 있습니다. 디폴트 값은 True입니다.

 Wait for Input - True로 설정하면, 오브젝트는 값이 변경되기 전까지는 동작하지 않습니다. 속성을 False로 변경하면, 오브젝트는 어느 조건을 만나든 바로 동작하고 현재 선택된 값을 출력합니다. 디폴트 값은 False입니다.

 AutoExecute - True로 설정하면, 값이 선택되면 나머지 프로그램을 실행합니다. 만약 프로그램이 실행중이라면, AutoExecute는 무시됩니다. 디폴트 값은 False입니다.

 InitialValue - 설정되어야 할 값을 지정합니다. 디폴트 값은 (0,0)입니다.

 InitializeAtPreRun - True로 설정하면, InitialValue가 실행 직전에 설정됩니다. 디폴트 값은 False입니다.

 InitializeAtActivate - True로 설정하면, InitialValue가 활성화될 때 설정됩니다. 디폴트 값은 False입니다.

 NumberFormat: - Global Format이 off 되어 있으면, 오브젝트에 표시하는 숫자형식을 실수로 지정합니다. Fixed (예 98.6000), Scientific (예 9.8600E+01), Engineering (예 98.6000E0), Standard (예 98.6), 또는 Time Stamp (예 Sat 01/Jan/2003 17:01:38)등을 선택할 수 있습니다. 디폴트 값은 Standard입니다.

주의사항

Initialize는 UserObject내의 값을 초기화하기 위해 자주 사용합니다. 초기값을 설정하는 다른 방법은 Default Value 컨트롤핀을 사용하는 것입니다.

컨트롤 입력은 Default Value, Reset, Enable Editing 또는 Disable Editing등을 추가할 수 있습니다.

Default Value 입력은 현재의 값을 변경할 수 있습니다. Scalar 또는 Array 1D 형태의 Complex를 입력할 수 있습니다. 상수는 입력데이터의 형태를 매칭시키기 위하여 재구성됩니다.

Reset 입력은 값을 0으로 설정합니다. 만약 상수가 Array 1D로 설정되면, 모든 값은 0으로 설정됩니다. Reset 상태에서는 입력에 있는 실제 데이터는 무시됩니다.

Enable Editing and Disable Editing 입력은 오브젝트의 오픈뷰에서 값의 변경여부를 제어합니다.

InitialValue 항목은 Complex가 어레이로 구성되어 있더라도, 항상 스칼라입니다.

실수와 허수만을 입력할 수 있으며, 콤마로 분리되며, VEE 형식의 숫자를 가집니다.

오브젝트 위치

Data [image] Constant [image] Complex

관련정보

Alloc Complex, Build Complex, Default Preferences 메뉴항목, Constant, Coord, Date/Time, Selection Control, Int16, Int32, PComplex, Real32, Real64, Text, Toggle Control, UInt8.

상수 데이터 사용하기 또는 오브젝트 메뉴


Complex Plane 오브젝트

연속하여 생성되는 데이터를 직교좌표에 표시하는 오브젝트

사용법

Complex, PComplex 또는 Coord 데이터를 실수와 허수로 구성되는 복소수 평면에 그래프로 표시하기 위해서 Complex Plane 오브젝트를 사용합니다.

오픈뷰 항목

아래 항목은 기본 오픈뷰 항목입니다. 이들 항목의 사용법과 다른 항목은 오브젝트 메뉴 및 Properties 대화상자 (오브젝트 메뉴 [image] Properties)에서의 선택에 따라서 달라집니다.

Imag - Y 축(허수)의 이름.

Trace1 - 첫 번째 트레이스의 이름.

Real - X 축(실수)의 이름.

오브젝트 메뉴

Auto Scale [image] - 이것을 클릭하면 그래프가 자동 스케일되어 전체 트레이스를 볼 수 있습니다.(컨트롤 핀을 추가하거나, Scales 속성을 설정하면 데이터가 입력된 후 그래프를 자동으로 스케일할 수 있습니다.)

Auto Scale - 양 축을 자동으로 스케일합니다.

Auto Scale X - X 축을 자동으로 스케일합니다.

Auto Scale Y - Y 축을 자동으로 스케일합니다.

Zoom [image] - 그래프를 확대 또는 축소합니다.

In - 드래그하여 선택한 직사각형 안의 그래프가 전체 화면에 표시되도록 그래프를 확대합니다. 이 항목을 선택한 후, 그래프 영역에서 확대할 부분을 드래그합니다.

Out 2|5|10|20|50|100X - 선택한 숫자만큼 중심에서 X 및 Y 방향으로 그래프의 스케일을 확대합니다.

Clear Control [image] - 그래프의 내용에서 지우게 될 항목을 지정합니다.

Display - 표시된 트레이스를 지웁니다. 이 항목을 오브젝트의 컨트롤 입력으로 추가할 수 있습니다.

Next Curve - 이전 트레이스를 지우지 않고 그래프를 리셋합니다. 다음에 입력되는 데이터를 그래프의 처음부터 이전 데이터와 중첩하여 그립니다. 새로운 그래프가 입력되지 전에 활성화되어야 합니다. 이 항목은 컨트롤 입력으로 추가될 수 있습니다.

Center Markers - 마커를 사용하는 경우, 마커를 트레이스의 중앙으로 이동시킵니다. 그래프를 스크롤하여 마커가 보이지 않을 때 이 기능을 이용하면 편리합니다.

Add Right Scale - 서로 다른 스케일범위를 가지는 Y 축 스케일을 최대 2 개까지 추가할 수 있습니다. 스케일을 추가 후 이 스케일을 제어하는 입력터미날을 추가할 수 있습니다.(오브젝트 메뉴 [image] Add Terminal [image] Data Input) Properties 대화상자의 Traces 및 Scales 속성을 설정하여 사용합니다.

Print - Print 대화상자를 띄웁니다. Print 대화상자에서 OK 버튼을 클릭하면 선택한 프린터로 그래프의 전체화면을 프린트 합니다. Print 항목은 컨트롤 입력으로 추가될 수 있습니다.

속성창

Name - 그래프 오브젝트에 변수이름을 지정합니다. 이름을 입력하면, 사용중인 마커의 값을 프로그램 실행 중 읽을 수 있습니다. 이 변수는 Object 타입이며, 디스플레이가 있는 영역의 local to the context로 지정됩니다. 상세한 내용은 주의사항을 참조하십시오.

ClearAtPreRun - 이 속성이 참으로 설정되면, 그래프가 PreRun시 초기화됩니다. 디폴트 값은 참(True) 입니다.

 ClearAtActivate - 이 속성이 참으로 설정되면, 그래프가 활성화될 때 초기화됩니다. 디폴트 값은 참(True) 입니다.

ShowTracesLegend - 오픈뷰에서, 트레이스의 이름 및 색깔의 표시여부를 제어합니다. 트레이스 레전드의 편집버튼은 EnableEditTracesAndScales 를 이용하여 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScalesLegend - 오픈뷰에서, 스케일 이름의 표시여부를 제어합니다. 스케일 레전드의 편집버튼은 EnableEditTracesAndScales를 이용하여 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScaleLabels - 오픈뷰에서, 스케일 축 라벨의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScrollBars - 오픈뷰에서, X 및 Y 축의 스케일바의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowAutoScaleButton - 오픈뷰에서, Auto Scale 버튼의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 EditTracesAndScales - 오픈뷰에서, 트레이스 및 스케일 속성의 편집버튼의 기능을 제어합니다. 이 기능이 활성화되어 있을 때, 각각의 트레이스 또는 스케일의 속성을 편집하기 위해서 이들을 클릭합니다. 디폴트 값은 참(True) 입니다. 트레이스 및 스케일의 이름의 표시여부를 제어하기 위해서 Show Traces Legend 및 Show Scales Legend를 사용합니다.

GridType - 디폴트 값은 Axis 입니다.

NumMarkers: - 표시된 그래프상의 데이터포인트의 정확한 값을 찾지 위해서 사용합니다. 데이터가 로그스케일로 표시되어 있더라도, 마커값은 선형 데이터포인트로 표시됩니다.

마커를 다른 트레이스로 이동하기 위해서는, 그래프 하단의 마커값 표시 왼쪽의 버튼을 클릭합니다. 이 버튼을 클릭하면 현재 그래프에 표시된 트레이스를 순환하여 선택합니다.

 MarkersInterpolate - 이 속성을 참으로 설정하면, 그래프로 표시되는 데이터 포인트 사이에 마커를 배치할 수 있습니다. 마커 값은 선형 인터폴레이션으로 연산되어 표시됩니다. 디폴트 값은 거짓(False)입니다.

 MarkerColor - 그래프에 표시되는 마커의 색깔을 선택할 수 있습니다.

DisplayBackColor - 팔레트에서 그래프 영역의 색깔을 선택할 수 있습니다. 패널뷰와 디테일뷰에서 서로 다른 색깔을 선택할 수 있습니다. 디폴트 배경색은 Default Preferences 대화상자 Colors 탭의 Screen Element: Graph Background에 설정되어 있습니다.

 ScaleLabelFont: - 현재 사용중인 컴퓨터의 폰트목록에서 스케일 라벨에 적용할 폰트를 선택합니다. 스케일 라벨 텍스트의 디폴트 폰트는 Preferences 대화상자 Fonts 탭의 Screen Element: Graph Scale Label Text에 설정되어 있습니다.

Traces 그룹:

Name - 그래프 영역의 왼쪽에 표시되는 트레이스의 이름. 이 이름은 입력터미날의 이름과 동일합니다.

Color - 트레이스의 색깔. 추가되는 트레이스는 기존 트레이스와는 다른 색깔로 표시됩니다. 첫 번째 트레이스의 디폴트 색깔은 노란색입니다.

LineStyle - 데이터 포인트를 연결하는 라인의 포맷. 디폴트는 continuous line(연속선) 입니다.

PointStyle - 각 데이터포인트를 표시하는 기호. 데이터 포인트를 연결하지 않은 상태로 표시할 때는 LineStyle 을 점(.)으로 설정하고, 사용할 PointStyle 기호를 선택합니다. 디폴트 값은 점(dot)입니다.

Scale - 2 개 이상의 Y 스케일이 있으면, 특정 트레이스가 어떤 스케일에 의해서 스케일되는지를 선택합니다.

ScaleNumberFormat: (X 스케일 및 추가 Y 축 스케일을 포함한 Y 스케일 마다 1 개씩 제공되는 속성)

Scales 그룹:

Show Scale: -여러 개의 Y 스케일이 있으면, 체크박스로 선택한 스케일이 그래프 영역의 우측에 표시됩니다.

Scale Name: - 오픈뷰에서 스케일에 표시되는 이름

Automatic Scaling: - 데이터가 입력될 때 전체 그래프를 표시하기 위해서 그래프 자동 재 스케일 여부를 제어합니다. 디폴트 값은 On 입니다. 이 속성이 Off 이면, Layout 그룹 General 탭의 Auto Scale 을 클릭하거나, 오브젝트 메뉴의 Auto Scale 을 실행하여 그래프를 다시 스케일 할 수 있습니다.

Maximum: - 스케일의 최대값.

Minimum: - 스케일의 최소값.

Label Spacing: - 어떤 틱(tic)마크에 스케일된 값을 표시해야 하는지 제어합니다. X 스케일은 Every Other Tic로, Y 스케일은 Every Major Tic로 디폴트 설정되어 있습니다.

Mapping: - X 데이터 및 Y 데이터가 그래프에 매핑되는 방식. 선형 또는 로그로 매핑될 수 있습니다. 로그-로그 방식으로 표시하기 위해서는 X 축 및 Y 축을 모두 Log로 설정합니다. 디폴트 설정은 Linear 입니다.

Log Cycles: - Automatic Scaling 이 On 상태에서 최대 x 값 및 최대 y 값으로부터 표시할 10 단위 스케일의 최대 개수. Log Cycles 은 Mapping 이 Log일 때만 사용됩니다. 트레이스 데이터의 변동 폭이 클 때 Log Cycles을 사용하면 편리합니다. 디폴트 값은 4 입니다.

Scale Color - 배경 그리드 및 틱마크의 색깔. 디폴트는 Gray 입니다.

Global Format - Global Format 이 Off 이면, 오브젝트에 표시될 실수의 숫자포맷을 지정합니다. Fixed (예, 98.6000), Scientific (예, 9.8600E+01), Engineering (예, 98.6000E0), Standard (예, 98.6) 및 Time Stamp (예, Wed 01/Jan/2003 17:01:38)를 선택할 수 있습니다. 디폴트는 Standard 입니다.

X 및 Y 마커 값은 스케일에서 사용하는 숫자포맷과 동일한 포맷을 사용합니다. X 및 Y 에 Time Stamp 을 지정하지 않았으면, 이들의 델타마커 값은 디폴트 숫자 포맷을 사용합니다. X 및 Y 의 마커1과 마커2가 Time Stamp 을 사용한 경우에는, 델타마커 값에 Delta Time 포맷이 사용됩니다.

주의사항

복수의 트레이스는 복소수 평면에서 지원되지 않습니다.

입력은 Spectrum, Waveform 또는 Coord(Scalar 또는 Array 1D) 타입으로 제공되어야 합니다.

Coord 타입의 입력데이터는 Spectrum 타입으로 변환되지 않고 x 및 y 의 값을 이용하여 그래프로 표시됩니다.

오브젝트 메뉴에서 Add Terminal [image] Data Input를 실행하여 트레이스를 추가합니다. 최대 12개의 트레이스를 사용할 수 있습니다.

AutomaticScaling 속성을 True로 설정하면(Scales 카테고리) 그래프를 그릴 때 마다 자동으로 스케일됩니다. 하나의 트레이스에 대한 전체 데이터를 그래프에 표시할 때는 빠르게 실행됩니다. 전체 데이터를 그래프에 한 번에 그리고 자동으로 스케일합니다. 데이터가 그래프에 한 개의 포인트씩 제공되면, 각 데이터 포인터를 그릴 때 마다 그래프가 자동으로 스케일되므로, 프로그램 실행 속도가 저하됩니다. 데이터가 1 개씩 발생되는 경우에는 Collector 오브젝트를 이용하여 어레이로 생성하여, 전체 데이터를 그래프에 한번에 표시하면 실행속도를 향상할 수 있습니다.

컨트롤 입력 추가

Title 컨트롤 입력핀을 추가하여 타이틀바의 이름을 지정할 수 있습니다. 이 기능을 이용하면 프로그램 실행시 타이틀의 이름을 변경할 수 있습니다.

Traces 컨트롤 입력핀을 추가할 수 있습니다. Traces 컨트롤 입력핀의 데이터에는 레코드 어레이를 사용해야 합니다.(또는 하나의 트레이스를 제어하는 경우에는 레코드 스칼라를 사용해도 됩니다.) 레코드의 어레이는 Record Constant 오브젝트 또는 Build Record 오브젝트를 이용하여 생성합니다. 각 레코드에는 다음의 필드가 제공되어야 합니다.:

정수 값을 가진 TraceNum 필드(첫 번째 트레이스는 1). TraceNum 필드의 값은 반드시 입력되어야 합니다. 값을 입력하지 않으면 에러가 발생합니다.

다음 필드 중 1 개 이상의 필드:

Name

Pen

LineType

PointType

Name 필드는 텍스트 값을 가져야 합니다. Pen, LineType 및 PointType 은 0 ~ n의 정수값을 가져야 합니다. 여기서, 0 은 아무것도 그리지 않을 때 입력하고, n 은 사용할 수 있는 값입니다.

위에서 열거된 스케일 인자를 제어하기 위해서 Scales 컨트롤 입력핀을 추가할 수 있습니다. Scales 컨트롤 입력핀의 데이터에는 레코드 어레이를 사용해야 합니다.(또는 하나의 트레이스를 제어하는 경우에는 레코드 스칼라를 사용해도 됩니다.) 레코드의 어레이는 Record Constant 오브젝트 또는 Build Record 오브젝트를 이용하여 생성합니다. 각 레코드에는 다음의 필드가 제공되어야 합니다.:

X, Y (또는 Y1), Y2, 또는 Y3값을 가지며, 이름이 Scale 인 텍스트필드. Scale 필드의 값은 반드시 입력되어야 합니다. 값을 입력하지 않으면 에러가 발생합니다.

다음 필드 중 1 개 이상의 필드:

Name - 오픈뷰에서 스케일 이름을 변경합니다. 텍스트 값을 가져야 합니다.

Min - X 스케일의 최소값을 설정합니다. 정수 또는 실수값을 사용해야 합니다.

Max - X 스케일의 최대값을 설정합니다. 정수 또는 실수값을 사용해야 합니다.

Mapping - Linear 또는 Log의 텍스트 값을 선택합니다.

AutoScale - 자동 스케일링을 제어합니다. On 또는 Off 의 텍스트 값을 선택합니다.

자세한 내용은 VEE Advanced Techniques 매뉴얼의 "Using Records and DataSets"를 참조하십시오.

프로그램 실행시 마커값을 설정하고 읽기

프로그램을 실행하면서 마커 값을 가져오거나 설정할 수 있습니다. 디스플레이를 준비하기 위해서, Properties 창의 Name 필드에 값을 입력합니다. Name 의 값은 디스플레이 컨텍스트의 지역변수로 사용되는 오브젝트 변수로 지정됩니다. 다음은 Markers 그룹의 설정을 On 시킵니다. VEE는 다음 속성을 델타 값을 포함하여 X 및 Y 의 위치에 지정합니다.(Marker1 아래를 지시하고; Marker2 는 위를 지시합니다.)

Marker1X (위치를 Real64 타입으로 가져옵니다.)

Marker1Y (위치를 Real64 타입으로 가져옵니다.)

Marker2X (위치를 Real64 타입으로 가져옵니다.)

Marker2Y (위치를 Real64 타입으로 가져옵니다.)

MarkerDX (위치를 Real64 타입으로 가져옵니다.)

MarkerDY (위치를 Real64 타입으로 가져옵니다.)

Marker1 (위치를 Coord 타입으로 가져오거나 설정합니다.)

Marker2 (위치를 Coord 타입으로 가져오거나 설정합니다.)

현재 마커의 위치를 읽거나 마커를 새로운 위치로 이동하기 위해서 Marker1 및 Marker2 의 속성을 사용할 수 있습니다. 마커의 다른 속성은 읽기전용입니다. 마커를 트레이스 이외의 위치로 이동하려고 시도하면, 마커는 지정한 마커의 위치와 트레이스 상의 가장 가까운 데이터 포인트에 스냅됩니다.

Formula 오브젝트의 표현식을 이용해서도 마커 값을 읽거나 설정할 수 있습니다. 각 표현식은 디스플레이의 Name 과 마커의 속성을 이용하여 작성해야 합니다. 마커의 속성과 Name 은 대소문자를 구별하지 않습니다. 예를 들어, 디스플에이의 이름이 XY이고, Delta Markers 가 활성화되어 있으면, 다음 표현식은 모든 사용가능한 마커의 값을 읽어서, Real64 스칼라 타입으로 변수 a ~ f 에 저장합니다.:

a = XY.Marker1X

b = XY.Marker1Y

c = XY.Marker2X

d = XY.Marker2Y

e = XY.MarkerDX

f = XY.MarkerDY

디스플레이의 Declared Name은 전역변수로 지정될 수도 있습니다. Formula 오브젝트의 표현식에서 지정연산자를 사용하면서, Declare Variable 오브젝트를 함께 사용하여 전역변수로 설정할 수 있습니다. 예를 들어, globalXY를 전역변수로, 이것의 Type을 Object로 선언하고, 디스플레이를 사용하는 컨텍스트에서 다음 표현식을 추가합니다.

Set globalXY = XY

이제는 프로그램의 다른 컨텍스트에서 다음 표현식으로 마커의 값을 읽을 수 있습니다.:

a = globalXY.Marker1X

프로그램에 따라서, 프로그램이 마커의 값을 읽기 전에 마커의 위치를 변경할 수 있도록 프로그램이 일시 정지하는 기능을 작성해야 하는 경우가 있습니다. 그래프의 시퀀스 출력과 Formula 오브젝트의 시퀀스 입력사이에 Confirm (OK) 버튼을 프로그램에 추가하여 프로그램 실행을 일시정지 할 수 있습니다. 또한 마커의 위치를 프로그램에서 제어하도록 프로그램을 작성할 수도 있습니다. 프로그램상으로 마커를 설정하는 자세한 내용은 프로그램 실행중 속성 변경을 참조하십시오.

오브젝트 위치

Display [image] Complex Plane

관련정보

Magnitude Spectrum, Polar Plot, Strip Chart, Waveform (Time), X vs Y Plot, XY Trace 및 Default Preferences 대화상자.

디스플레이에서 마커 설정하기, 마커의 속성을 설정하거나 가져오기

오브젝트 메뉴

Copyright (c) 1991-2007 Agilent Technologies, Inc.


컴포넌트 드라이버

선택한 컴포넌트에 값을 읽고 저장하는 계측기 제어 오브젝트. 계측기의 컨트롤 패널은 표시되지 않으며, 패널 드라이버와는 다릅니다.

사용법

Component Driver는 동시에 몇개의 컴포넌트를 설정하여 계측기를 제어하기 위해 사용합니다. Component Driver를 사용하기 전에 사용하고자 하는 계측기의 드라이버가 반드시 설치되어 있어야 합니다.

Component Driver는 동시에 몇개의 컴포넌트를 설정하여 계측기를 제어하기 위해 사용합니다. Component Driver를 사용하기 전에 사용하고자 하는 계측기의 드라이버가 반드시 설치되어 있어야 합니다.

원하는 계측기가 리스트에 적절히 설정되어 있다면:

1. 계측기 항목을 한번 클릭하여 하이라이트 시킵니다.

2. Component Driver 버튼을 클릭하십시오.

원하는 계측기가 리스트에 있지만, 계측기의 설정을 변경하고 싶다면, Properties... 버튼을 클릭하여 나타나는 대화상자를 이용하여 설정을 변경하고, OK버튼을 클릭하여 저장하고 위의 단계 1, 2를 따라 하십시오.

원하는 계측기가 리스트에 없다면, Add...버튼을 클릭하여 나타나는 대화상자를 이용하여 계측기를 설정하고 OK버튼을 클릭하여 저장하고 나서 위의 단계 1, 2를 따라 하십시오.

설정을 위한 대화상자에 대한 정보는 Instrument Manager 대화상자 와 Instrument Properties 대화상자를 참조하십시오.

주의사항

Component Driver는 Live Mode가 OFF상태에서 동작될 수 있습니다. 이것은 계측기와 통신을 하지 않고 프로그램을 실행할 수 있고, 계측기와 컴퓨터의 연결과는 상관이 없습니다. 만약 계측기와 통신하고 싶다면, 반드시 Live Mode를 ON해야 합니다.(Instrument Properties 대화상자를 참조하십시오.)

Component Driver 오브젝트를 사용하고 싶다면, 최소한 하나의 입력이나 출력이 오브젝트에 연결되어 있어야 합니다. 입력은 컴포넌트의 실행행위를 설정하고, 출력은 실행행위의 결과를 가집니다. 컨트롤핀은 컴포넌트를 초기화하기 위한 입력으로 사용할 수 있고, 프로그램상에서 디바이스 어드레스를 변경하고 타임아웃 값을 설정할 수 있습니다.

오브젝트 위치

I/O [image] Instrument Manager...

관련정보

Direct I/O, Instrument Manager 대화상자, Instrument Properties 대화상자, 패널 드라이버, Add Terminal 메뉴항목 및 속성창 (오브젝트)

Component Driver 오브젝트 사용하기

VEE Advanced Techniques 매뉴얼에 있는 "Using Panel Driver and Component Driver Objects"도 참조하십시오.


Concatenator 오브젝트

입력되는 모든 데이터를 연결하여 Array 1D를 출력하는 오브젝트

사용예

Concatenator 오브젝트는 2개 이상의 데이터 앨리먼트를 Array 1D로 결합하는데 사용합니다. 출력되는 어레이의 사이즈는 입력된 사이즈의 합계입니다. 3개 이상의 컨테이너도 입력할 수 있습니다.

Enum 입력은 연결이 이루어지기 전에 텍스트 타입으로 변환됩니다.

주의사항

출력 데이터 타입은 모든 입력데이터의 타입중에서 가장 상위 타입입니다. 만약 어떤 입력이 1차원 이상의 어레이라면, 이 어레이는 연결을 위하여 Array 1D로 변환됩니다.

텍스트의 복수 라인의 텍스트를 하나의 라인으로 연결하기 위해서는 Accumulator 오브젝트를 사용하십시오.

nil 입력은 무시됩니다. 이것은 Formula 박스 안에서 동작하는 concat(x,y)와는 다릅니다. Formula 박스에서는 모든 nil 입력은 자동으로 0의 값을 가진 Real64 스칼라로 변환됩니다. 따라서 a가 nil이고 b가 Int32 스칼라값 5인 경우에, concat(a,b)는 2개의 Real64값을 가진 Array 1D [0,5]를 출력합니다. nil과 Int32 스칼라 값 5를 입력값으로 가진 Concatenator 오브젝트는 Int32 어레이 [5]를 출력합니다.

첫번째 입력값이 매핑되어 있다면, 다른 입력값은 같은 포인트 간격으로 매핑되어 있든지, 매핑이 안되 있어야 합니다. 출력값은 Xmin 부터 Xmin + dx * N까지 매핑됩니다. 여기서 "Xmin"는 첫번째 어레이의 최소 매핑값이고, "dx"는 첫번째 어레이에 있는 2개의 연속되는 포인트의 간격입니다. 또한, "N"은 출력 어레이의 사이즈 입니다.

오브젝트 위치

Data [image] Concatenator

관련정보

Accumulator, Allocate Array 메뉴항목, Collector, Set Values, Sliding Collector, 속성창 (오브젝트) 및 오브젝트 메뉴

concat(x,y)


Conditional 메뉴

메뉴 항목

사용법

Conditional 메뉴는 다음의 조건문을 제공합니다:

If A == B

If A ~= B

If A != B

If A < B

If A > B

If A <= B

If A >= B

Conditional 오브젝트는 실행을 위한 서브 쓰레드를 결정하기 위해 사용합니다.

주의 사항

주의 사항 Device [image] Functions & Object Browser 아래에 있는 Comparison 항목과 Conditional 항목은 차이가 있습니다. Comparisons 오브젝트는 0 또는 1을 출력하는 공식입니다; Conditionals은 If/Then/Else와 2개 이상의 출력을 가지며, 이중 하나의 출력이 활성화됩니다.

Device [image] Function & Object Browser...에서 제공하는 논리연산자 AND, OR, XOR 및 NOT 의 출력값은 Int32 타입이고, 연산하는 수와 같은 형태를 가집니다. 이것은 항상 스칼라를 출력하는 == 같은 conditional 항목과는 다릅니다.

논리 연산자는 텍스트 타입에 대해 스트링이 null인지 아닌지를 연산하는데 적용됩니다. "0" 과 "1"는 논리적으로 참입니다. 왜냐하면 이들 입력은 null 스트링이 아니기 때문입니다. 반면에 “”는 거짓입니다. 그러므로 "zoo" 와 "" (null 스트링)은 2번째 스트링이 null이기 때문에 논리적으로 거짓입니다. 텍스트 타입을 스트링이 아닌 타입과 비교할 때는, 두 번째 입력은 텍스트 타입으로 변환됩니다. 이것은 "zoo" 와 "0" 는 참인 것을 의미합니다. 왜냐하면 실수 0이 스트링 “0”으로 변환되고, 2개의 스트링이 null이 아니기 때문에 AND 표현식은 참이며 1을 출력합니다.

오브젝트 위치

Flow [image] Conditional

필요한 조건문에 해당하는 오브젝트를 선택합니다.

관련정보

If A ~= B, If A == B, If A != B, If A < B, If A > B, If A <= B, If A >= B 및 If/Then/Else.

Comparison, Triadic Operator 및 Function & Object Browser 메뉴항목.

프로그램 내에서 분기하기


Confirm (OK) 오브젝트

OK를 참조하십시오..


Constant 메뉴항목

메뉴 항목

사용법

Constant 메뉴는 데이터 형태가 스칼라 이든지 어레이이든지 입력터미날에 사용할 수 있는 다음의 상수를 제공합니다:

Boolean

Text

UInt8

Int16

Int32

Int64

Real32

Real64

Coord

Complex

PComplex

Date/Time

Record

주의사항

Text를 제외한 모든 Constant 오브젝트는 입력창에 임의의 공식을 사용할 수 있습니다. (만약 이전에 실행한 프로그램에 설정이 되어 있다면, 전역변수도 사용할 수 있습니다. Program Explorer에 있는 Globals을 클릭하면 선언된 변수를 볼 수 있습니다.). 입력창에 공식을 입력한 후에는 입력된 공식은 파싱이 되고, 검증이 됩니다. 출력되는 스칼라 숫자는 Constant 값으로 사용됩니다. Constant 오브젝트는 Formula 오브젝트가 가지고 있는 변수는 지원하지 않습니다. 그러므로 공식에 입력변수 이름을 사용할 수는 없습니다. 입력된 공식은 적절한 종류의 스칼라 값인지, 사용하고자 하는 Constant로 변환이 가능한 종류의 스칼라 값인지를 검증해야 합니다.

구문은 일부를 제외하고는 Formula 오브젝트의 구문과 동일합니다. 어레이 생성 구문인([, ])연산자는 어레이를 생성하기 위해 사용할 수는 없습니다. 왜냐하면 스칼라가 아닌 값을 출력하게 되지만, 출력값은 반드시 스칼라여야 하기 때문입니다. 또한, Constant 오브젝트에 입력이름 변수를 사용할 수 없습니다.

일반적으로 다이아딕 연산을 사용할 때 사용하는 네스팅, 함수호출, 사전 정의 상수 PI (3.1416...)등을 사용하기 위한 삽입구도 사용할 수 있습니다.

TVariant 타입은 Constant 오브젝트에서 사용할 수 없습니다. Variant 데이터 타입을 생성하기 위해서는 Declare Variable를 사용하여 “Variant” 타입을 선택해야 합니다.

사용예

PComplex 오브젝트에 (2, @PI/2)를 입력하면, (2, @90)를 출력합니다. (각도 단위로 설정된 경우).

Real64 오브젝트에 14 + exp10(3)를 입력하면, 1014를 출력합니다.

Real64 오브젝트에 (1, 2)를 입력하면, Complex를 Real64로 변환할 수 없기 때문에 에러가 발생합니다.

오브젝트 위치

Data [image] Constant

관련정보

Complex, Coord, Date/Time, Int16, Int32, PComplex, Real32, Real64, Record Constant, Selection Control, Text, Toggle Control,UInt8.

레코드 상수 생성하기

상수 어레이 생성하기

상수 데이터 생성하기


Continuous 메뉴항목

메뉴 항목

사용법

Continuous 메뉴는 다음의 오브젝트들을 제공합니다:

Int32 Slider

Int64 Slider

Real64 Slider

Int32 Knob

Int64 Knob

Real64 Knob

오브젝트 위치

Data [image] Continuous

관련정보

Int32 Knob, Int32 Slider, Real64 Knob 및 Real64 Slider.

데이터 슬라이더 및 노브 오브젝트 사용하기


Control Input 메뉴항목 (오브젝트 메뉴)

오브젝트에 비동기식으로 동작하는 컨트롤 입력터미널을 추가할 때 사용합니다.

사용법

Control Input은 오브젝트에 Reset 이나 Clear 같은 비동기 입력을 추가할 때 사용합니다.

Control Input를 선택한 다음에 대화상자에서 원하는 컨트롤 항목을 선택하여 추가합니다. 컨트롤 입력터미널은 데이터 입력터미널과는 다른 색상으로 표시됩니다.

주의사항

모든 오브젝트에서 컨트롤 입력이 가능한 것은 아닙니다.

컨트롤 입력핀의 활성화가 오브젝트를 실행시키는 것은 아닙니다. 단지 Clear와 같은 특별한 명령을 실행할 뿐입니다.

종종 오픈뷰 상태에서의 버튼에 의해서 오브젝트가 실행되기도 하고, 혹은 오브젝트 메뉴에서 생성한 컨트롤 입력에 의해서 실행이 되기도 합니다.

오브젝트 위치

오브젝트의 오브젝트 메뉴 [image] Add Terminal [image] Control Input

관련정보

Add Terminal 메뉴항목, Data Output 메뉴항목 (오브젝트 메뉴), Delete Terminal 메뉴항목 및 오브젝트 메뉴.


Coord 오브젝트

스칼라 또는 Array 1D 형태의 상수 Coord를 출력하는 오브젝트.

사용법

Coord 오브젝트는 Coord 상수를 설정하거나 사용자가 값을 입력할 수 있습니다. 값을 입력하기 위해서는 입력필드를 클릭하십시오.

속성창

DataShape - 출력되어야 할 값의 데이터 형태를 설정합니다. 입력할 수 있는 값은 스칼라또는 Array 1D 형태입니다. 디폴트 값은 Scalar입니다.

 ArraySize: - 1D Array인 경우에, ArraySize는 어레이의 길이를 설정합니다.

 ArraySizeFixed - True로 설정하면, 어레이에는 라인을 추가하거나 삭제할 수 없습니다. 데이터 형태가 1D Array인 경우에만 사용할 수 있습니다.

 ShowArrayIndices - True로 설정하면, 어레이에 있는 각 라인은 인덱스됩니다. 데이터 형태가 1D Array인 경우에만 사용할 수 있습니다. 디폴트 값은 True입니다.

 Wait for Input - True로 설정하면, 오브젝트는 값이 변경되기 전까지는 동작하지 않습니다. 속성을 False로 변경하면, 오브젝트는 어느 조건을 만나든 바로 동작하고 현재 선택된 값을 출력합니다. 디폴트 값은 False입니다.

 AutoExecute - True로 설정하면, 값이 선택되면 나머지 프로그램을 실행합니다. 만약 프로그램이 실행중이라면, AutoExecute는 무시됩니다. 디폴트 값은 False입니다.

InitialValue - 설정되어야 할 값을 지정합니다. 디폴트 값은 (0,0)입니다.

 InitializeAtPreRun - True로 설정하면, InitialValue가 실행 직전에 설정됩니다. 디폴트 값은 False입니다.

 InitializeAtActivate - - True로 설정하면, InitialValue가 활성화될 때 설정됩니다. 디폴트 값은 False입니다.

Number Format - Global Format이 off 되어 있으면, 오브젝트에 표시하는 숫자형식을 실수로 지정합니다. Fixed (예 98.6000), Scientific (예 9.8600E+01), Engineering (예 98.6000E0), Standard (예 98.6), 또는 Time Stamp (예 Sat 01/Jan/2003 17:01:38)등을 선택할 수 있습니다. 디폴트 값은 Standard입니다.

주의사항

Initialize는 UserObject내의 값을 초기화하기 위해 자주 사용합니다. 초기값을 설정하는 다른 방법은 Default Value 컨트롤핀을 사용하는 것입니다.

컨트롤 입력은 Default Value, Reset, Enable Editing 또는 Disable Editing등을 추가할 수 있습니다.

Default Value 입력은 현재의 값을 변경할 수 있습니다. Scalar 또는 Array 1D 형태의 Coord를 입력할 수 있습니다. 상수는 입력데이터의 형태를 매칭시키기 위하여 재구성됩니다.

Reset 입력은 값을 0으로 설정합니다. 만약 상수가 Array 1D로 설정되면, 모든 값은 0으로 설정됩니다. Reset 상태에서는 입력에 있는 실제 데이터는 무시됩니다.

Enable Editing and Disable Editing 입력은 오브젝트의 오픈뷰에서 값의 변경여부를 제어합니다.

InitialValue 항목은 Coord가 어레이로 구성되어 있더라도, 항상 스칼라입니다.

Coord는 2개 이상의 필드를 가질 수 있습니다. 예를 들어 3개의 필드를 가진 Coord는 (x, y, z)입니다.

Coord에 사용하는 수학 연산자는 단지 종속변수에서만 동작합니다. 즉 (x, y)의 경우 y값에서만 동작합니다.

사용예

2, 5 + exp10(2)라고 입력하면 상수 Coord (2,105)를 생성합니다.

Coord Array 1D는 파형의 범위를 지정하기 위해 또는 Comparator로 파형을 입력하기 위해 사용합니다. 파형의 범위에서 한계 포인트를 지정하기 위해 Array 1D 형태의 Coord를 사용합니다. 한계 포인트는 파형의 한계를 지정하는 라인의 끝점입니다. 그래서 이 어레이는 한계를 가진 파형을 생성하기 위하여 Build Arb Waveform 오브젝트를 통해서 전송합니다. 새로운 범위의 파형은 파형의 범위를 벗어나는 포인트를 제외한 포인트들을 생성하기 위하여 하나의 입력으로 Comparator 오브젝트에 사용됩니다.

어떤 범위를 가진 파형은 파형이 범위의 한계를 가지도록 클립하는 clipUpper 또는 clipLower 함수에서도 사용됩니다.

패널에 Coord 오브젝트가 나타나도록 사용할 때는, 오브젝트의 타이틀을 “Enter the Coordinates”과 같이 표시되도록 변경하십시오. 그래서 사용자가 요청된 정보를 입력필드에 입력하도록 합니다.

오브젝트 위치

Data [image] Constant [image] Coord

관련정보

Complex, Constant, Date/Time, Int16, Int32, PComplex, Real32, Real64, Selection Control, Text, Toggle Control 및 UInt8.

데이터 상수 사용하기


Copy 메뉴항목

선택한 오브젝트의 복사본을 붙여넣기 버퍼 또는 Windows 2K과 XP의 클립보드에 저장합니다.

사용법

Copy와 Paste는 선택된 오브젝트들의 복수의 복사본을 만드는데 사용합니다.

주의사항

Copy는 오브젝트를 선택한 다음에 사용할 수 있습니다.

Copy는 Paste 버퍼에 있는 이전 내용을 덮어씌웁니다.

복사된 오브젝트는 동일한 프로그램의 다른 위치 또는 다른 VEE 프로그램에 붙여 넣을 수 있습니다. Windows 2K과 XP에서는 복사된 오브젝트는 다른 어플리케이션 프로그램에도 붙여 넣을 수 있습니다.

하나의 오브젝트를 복사하기 위해서는 해당 오브젝트 메뉴에 있는 Clone을 사용합니다. Copy는 Clone과는 다릅니다. Clone은 오브젝트를 바로 복제 생성하여 사용하는 것이고, Copy는 다음에 사용하기 위하여 단지 Paste 버퍼에 오브젝트를 저장하는 것입니다.

오브젝트 위치

Edit [image] Copy

관련정보

클론 (오브젝트 메뉴), Cut 메뉴항목, 오브젝트 메뉴, Paste 메뉴항목, Replace 및 Select All 메뉴항목.


Counter 오브젝트

데이터 입력핀이 활성화 되었던 횟수를 디스플레이하고 출력하는 오브젝트

사용법

Counter 오브젝트는 카운트를 수행하는데 사용합니다. Counter 오브젝트는 이전의 오브젝트 출력에 의해 활성화 되었던 입력의 횟수를 카운트합니다. Counter는 Real64 스칼라 데이터를 출력합니다.

오브젝트 메뉴

Clear - Counter 오브젝트의 내용을 초기화 합니다.

주의사항

Counter 오브젝트의 데이터 입력은 어떤 특별한 데이터 종류를 필요로 하지는 않습니다. 또한, nil 데이터가 입력되더라도 카운트 합니다. 이것은 Clear 컨트롤 입력핀의 활성화에 의해 초기화될 수도 있습니다.

Counter 오브젝트의 값은 Real64 스칼라 타입으로 Counter 출력핀을 통해 출력됩니다.

오브젝트 위치

Device [image] Counter

관련정보

Accumulator, 속성창 (오브젝트) 및 오브젝트 메뉴


Create Directory 오브젝트

새로운 디렉토리를 생성합니다.

오브젝트 위치

System [image] Directory [image] Create Directory


런타임 버전 생성

편집할 수 없도록 보안 처리된 프로그램을 저장합니다.

사용법

프로그램의 메인 패널뷰를 생성한 다음에 사용자들이 이 패널뷰를 수정할 수 없도록 잠그기위해서 Create RunTime Version을 사용합니다. 보안 처리된 버전의 디테일뷰를 접근하는 것은 더 이상 불가능 합니다.

Create RunTime Version을 사용했을 때, 파일 이름을 입력하기 위한 대화상자가 나타납니다. 보안 처리된 프로그램은 <파일이름>.vxe 형식으로 저장됩니다. 보안 처리된 파일을 실행하기 위해서는, 메뉴에서 File   [image] Open...을 선택하고 파일 형식: 항목을 Secure VEE Programs (*.vxe)로 변경하여 파일 이름을 선택합니다. 보안 처리된 파일을 로딩 했을 때는 VEE 개발 함수(Edit, Debug, ...)는 사용할 수 없게 됩니다.

주의사항

보안 처리된 프로그램은 보안 해제된 프로그램보다 신속히 로딩되고 실행됩니다.

보안 처리된 프로그램의 파일 포맷을 ASCII 또는 바이너리로 설정하기 위해서 Default Preferences를 사용합니다. 디폴트로 설정된 바이너리 포맷은 작은 사이즈로 저장되어 프로그램을 빨리 로딩하게 됩니다.

보안기능을 추가한 경우에는, VEE는 .vxe 파일을 다른 프로그램에 병합할 수 없습니다. 그러나 VEE는 .vxe 파일로 저장된 라이브러리는 임포트합니다.

오브젝트 위치

File [image] Create RunTime Version...

관련정보

Default Preferences 대화상자, UserFunction, UserObject.

프로그램에 보안처리 하기


UserObject 생성

선택한 오브젝트들을 UserObject에 배치합니다.

사용법

Create UserObject는 여러 개의 오브젝트를 논리적 또는 물리적으로 생성하기 위해 사용합니다. 포함하고자 하는 오브젝트들을 선택하고 Edit 메뉴에서 Create UserObject를 선택합니다. 선택한 오브젝트들을 포함하는 UserObject가 생성됩니다.

UserObject는 다른 오브젝트와 동일하게 동작합니다; UserObject에 연결된 모든 데이터 입력이 활성화될 때까지 UserObject내에 있는 오브젝트들은 동작하지 않습니다. UserObject내에 있는 모든 오브젝트들의 동작은 데이터 출력이 활성화 되기 전에 완료되어야 합니다.

오픈뷰의 타이틀바 오른쪽에 있는 확대 버튼은 UserObject의 크기를 VEE 작업영역의 크기로 확대합니다.

UserObject내에 있는 오브젝트가 UserObject가 생성되기 전에 다른 오브젝트에 연결되어 있었다면, 기존의 연결을 유지하기 위하여 UserObject에 터미날이 자동으로 생성됩니다. UserObject 메뉴에서 입력핀 또는 출력핀을 추가하지 않고서는 UserObject내에 있는 오브젝트를 UserObject 밖에 있는 다른 오브젝트에 직접 연결할 수는 없습니다.

주의사항

오브젝트를 선택하지 않은 경우에는, Create UserObject를 사용할 수 없습니다. 텅빈 UserObject를 생성하기 위해서는 Device 메뉴에 있는 UserObject를 선택하십시오. 새로운 오브젝트를 UserObject내에 생성하여 배치할 수 있습니다. 새로운 UserObject내에 기존에 생성한 오브젝트를 배치할 때는 반드시 Cut과 Paste를 사용해야 합니다.

공통 기능으로 사용할 오브젝트를 Save Objects...를 사용하여 UserObject로 저장하면, 다음에 라이브러리로 사용할 수 있어 편리합니다.

UserObject의 전체 컨텍스트를 실행할 때는 Step Over를, UserObject내에 있는 각각의 오브젝트를 실행할 때는 Step Into를, 남아 있는 모든 오브젝트를 실행하고 UserObject를 빠져 나올 때는 Step Out을 사용합니다.

오브젝트 위치

Edit [image] Create UserObject

관련정보

Add To Panel 메뉴항목, Default Preferences 메뉴항목, 런타임 버전 생성, Select All 메뉴항목, Step Into 메뉴항목, Step Over 메뉴항목, Step Out 메뉴항목, Unpack 메뉴항목 (오브젝트 메뉴), UserFunction 및 UserObject.

UserObject 라이브러리를 생성하여 사용하기

여러 개의 오브젝트를 묶어서 UserObject로 생성하기

프로그램 상에서 UserObject 생성하기


UserFunction 생성

Edit 메뉴에 있는 항목으로, 사용자가 선택한 오브젝트들로부터 UserFunction을 생성합니다.

Use

Create UserFunction을 사용하면, 기능상 관련이 있는 VEE 오브젝트들을 분리된 UserFunction에 모을 수 있습니다. 관련이 있는 VEE 오브젝트들을 UserFunction으로 변환해 놓으면, VEE 프로그램에서 동일한 오브젝트들을 빈번하게 사용할 때 유용합니다.

UserFunction을 생성하기 위해서는, 함수에 포함하여 사용하고자 하는 VEE 오브젝트를 Ctrl 키를 누른 상태에서 마우스 왼쪽 버튼을 눌러 선택합니다. 선택된 오브젝트들은 그림자가 생겨 하이라이트 됩니다.

함수에 포함하고자 하는 오브젝트를 선택하였으면, Edit 메뉴에 있는 Create UserFunction을 선택합니다. Create UserFunction 대화상자가 나타납니다. 대화상자의 Function Name 항목은 생성하고자 하는 UserFunction에 대하여 기능 설명형식의 이름을 입력할 수 있는 필드입니다. 새로운 이름을 입력하지 않으면, 디폴트 값으로UserFunction1으로 생성됩니다. 새로운 이름을 입력하고 나면 OK 버튼을 클릭합니다.

새로운 UserFunction을 생성한 후에는, 선택했던 모든 오브젝트들이 새로운 UserFunction 윈도우에 나타납니다. 새로운 윈도우의 타이틀바에는 입력했던 UserFunction의 이름이 표시됩니다. 새로운 UserFunction를 호출하는 Call 오브젝트가 UserFunction을 생성했던 VEE 윈도우에 나타납니다.

주의사항

오브젝트를 선택하지 않은 경우에는, Edit 메뉴에 있는 Create UserFunction 항목은 회색으로 표시되어 선택할 수 없게 됩니다.

오브젝트 위치

Edit [image] Create UserFunction

관련정보

Call, Edit UserFunction 메뉴항목, Import Library, UserFunction 및 UserObject.

여러 개의 오브젝트를 묶어서 UserFunction로 생성하기

프로그램 상에서 UserFunction 생성하기


CUT 메뉴항목

선택한 오브젝트를 삭제하여 붙여넣기 버퍼와 윈도우의 클립보드에 저장합니다.

사용법

Cut은 선택한 오브젝트들을 삭제하거나 작업영역의 한 위치에서 제거하여, 작업영역의 다른 위치에 잘라낸 오브젝트의 복사본을 복수로 붙여넣는데 사용합니다. (붙여넣기 사용)

주의사항

Cut은 오브젝트를 선택한 다음에 사용할 수 있습니다.

Cut은 프로그램이 실행 중 일 때는 사용할 수 없습니다.

하나의 오브젝트를 삭제하고자 할 때는 오브젝트 메뉴에 있는 Delete 항목을 사용하십시오.

Cut은 Paste 버퍼에 있는 이전 내용을 덮어씌웁니다.

오브젝트를 잘못 잘라냈을 경우에는, Undo 기능을 이용하여 복구할 수 있습니다.

잘라낸 오브젝트는 동일한 프로그램의 다른 위치, 다른 VEE 프로그램 또는 다른 어플리케이션 프로그램에도 붙여 넣을 수 있습니다.

오브젝트를 삭제하지 않고 복수의 복사본을 만들기 위해서는 Clone 이나 Copy를 사용하십시오. 클립보드를 수정하지 않고 오브젝트를 잘라내기 위해서는 오브젝트 컨텍스트 메뉴에 있는 Delete를 사용하십시오.

Cut은 패널뷰와 디테일뷰에서 실행을 취소할 수 있습니다.

오브젝트 위치

Edit [image] Cut

관련정보

클론 (오브젝트 메뉴), Cut 메뉴항목 (오브젝트 메뉴), Copy 메뉴항목, Paste 메뉴항목, Replace 메뉴항목, 실행 취소하기, Delete 메뉴항목 (오브젝트 메뉴) 및 Select All 메뉴항목.


Cut (Object Menu)

Cut 메뉴항목 (오브젝트 메뉴)

오브젝트를 삭제하여, 붙여넣기 버퍼와 클립보드에 저장합니다.

사용법

Cut은 작업영역에 있는 오브젝트를 제거하는데 사용합니다.

주의사항

Cut은 사용자 오브젝트와 사용자 함수에서만 사용할 수 있습니다.

Cut은 이전에 붙여넣기 버퍼에 저장했던 내용을 덮어 씌웁니다.

Cut(오브젝트 메뉴)은 프로그램이 실행중 일때는 사용할 수 없습니다.

오브젝트를 잘못 잘라냈을 경우에는, Paste 또는 Undo를 사용하여 복구 할 수 있습니다.

잘라낸 오브젝트는 동일한 프로그램의 다른 위치나 다른 VEE 프로그램에 붙여넣을 수 있습니다. 또한 잘라낸 오브젝트는 다른 어플리케이션에 붙여넣을 수도 있습니다.

복수의 오브젝트를 삭제하고자 할 때는, CTRL 키를 누른 상태에서 마우스 왼쪽 버튼을 누르고 삭제하고자 하는 오브젝트 주의로 사각 박스를 이동하여 오브젝트들을 선택하고, Edit 메뉴에서 Cut을 선택하거나, 작업영역의 빈 공간에서 마우스 오른쪽 버튼을 클릭하여 나타나는 메뉴에서 Cut을 선택합니다.

단축키

마우스로 선택한 오브젝트를 지우기 위해서는, CTRL+D를 누릅니다.

오브젝트 위치

오브젝트 메뉴 [image] Cut

관련정보

클론 (오브젝트 메뉴), Copy 메뉴항목, Cut 메뉴항목, Paste 메뉴항목, Replace 메뉴항목 및 Select All 메뉴항목.


Cyclic 버튼

Selection Control을 참조하십시오.


Data Input 메뉴항목 (오브젝트 메뉴)

오브젝트에 데이터 입력터미날을 추가할 때 사용합니다.

사용법

Data Input은 오브젝트에 데이터 입력터미날을 추가할 때 사용합니다. 추가되는 입력터미날에는 A, B, C등의 터미날 이름이 자동으로 생성됩니다. 대부분의 입력터미날은 좀더 의미 있는 이름으로 변경하여 사용할 수 있습니다.

대부분의 오브젝트의 제한사항(Type, Shape)은 변경이 가능하지만 일부 오브젝트들은 변경이 불가능합니다.

주의
데이터의 종류(Type)만 필요한 경우 외에는 입력터미날의 데이터 종류나 형태를 바꾸어서는 안됩니다. 만약 데이터 종류가 Any에서 다른 종류로 바꾸는 경우에는 반드시 터미날로 입력되는 데이터의 종류도 동일하게 변환한 후에 오브젝트를 실행해야 합니다. 변환작업은 시간이 소요되며, 만약 변환작업이 실패할 경우에는 에러가 발생합니다.

주의사항

데이터 입력터미날은 데이터의 입력이 가능한 오브젝트에서만 추가 할 수 있습니다.

단축키

마우스의 커서를 입력터미날이 생성되는 위치에 놓고 CTRL+A를 누르면 빠르게 데이터 입력터미날을 추가할 수 있습니다. CTRL+A를 눌러 마우스의 커서가 있는 위치에 각각의 입력터미날을 추가할 수 있습니다. 오브젝트 메뉴에서 Add Terminal [image] Data Input을 선택하면 입력터미날은 기존에 생성된 터미날의 맨 마지막에 생성이 됩니다..

오브젝트 위치

오브젝트의 오브젝트 메뉴 [image] Add Terminal [image] Data Input...

관련정보

Add Terminal 메뉴항목, Data Output 메뉴항목 (오브젝트 메뉴), Control Input 메뉴항목 (오브젝트 메뉴), Conditional 메뉴, Delete Terminal 메뉴항목, 오브젝트 메뉴 및 속성창 (오브젝트).


Data Output 메뉴항목 (오브젝트 메뉴)

오브젝트에 데이터 출력터미날을 추가할 때 사용합니다.

사용법

Data Output은 오브젝트에 데이터 출력터미날을 추가할 때 사용합니다. 추가되는 출력터미날에는 X, Y, Z, W, V등의 터미날 이름이 자동으로 생성됩니다. 대부분의 입력터미날은 좀더 의미 있는 이름으로 변경하여 사용할 수 있습니다.

출력터미날의 컨테이너 정보(데이터 종류나 형태)는 오브젝트가 실행되기 전까지는 볼 수 없습니다.

주의사항

데이터 출력터미날은 데이터의 출력이 가능한 오브젝트에서만 추가 할 수 있습니다.

단축키

마우스의 커서를 출력터미날이 생성되는 위치에 놓고 CTRL+A를 누르면 빠르게 데이터 출력터미날을 추가할 수 있습니다. CTRL+A를 눌러 마우스의 커서가 있는 위치에 각각의 다른 출력터미날을 추가할 수 있습니다. 오브젝트 메뉴에서 Add Terminal [image] Data Output 을 선택하면 출력터미날은 기존에 생성된 터미날의 맨 마지막에 생성이 됩니다. CTRL+D는 커서로 선택된 터미날을 삭제합니다..

오브젝트 위치

오브젝트의 오브젝트 메뉴 [image] Add Terminal [image] Data Output...

관련정보

Add Terminal 메뉴항목, Data Output 메뉴항목 (오브젝트 메뉴), Delete Terminal 메뉴항목, Error Output 메뉴항목 (오브젝트 메뉴), Instrument Manager 대화상자 및 오브젝트 메뉴.


Date/Time 오브젝트

상수 날짜와 시간의 값을 출력하는 오브젝트. Date/Time오브젝트는 날짜와 시간을 입력으로 받아들입니다. 서기 1년 1월 1일 0 시(UTC, Universal Time Coordinated)부터 입력된 시간까지의 시간을 초(Second)로 출력합니다.

사용법

Date/Time 오브젝트는 생성시 현재의 시간과 날짜를 화면에 출력합니다.

Date/Time 오브젝트는 두 시점간의 시간 경과를 수학적으로 비교하여 계산하는데 사용할 수 있습니다.

Date/Time 오브젝트는 필드에 날짜, 요일, 시간 등의 값을 바꿀 수 있습니다. 예를 들어 Mon 27/Oct/2003 15:43:33이 입력된 Date/Time 오브젝트 필드에 Tue 28/Oct/2003 15:43:33를 키보드로 입력하면 됩니다. 특정한 값을 입력하지 않는다면 현재 날짜와 요일 시간이 화면에 나타납니다. 날짜와 요일을 그대로 하고 임의로 시간만 바꿀 수도 있습니다.

사용예

Date/Time 오브젝트를 사용하여 특정 실험 시간과 마치는 실험 시간 사이의 경과 시간의 간격 즉 과거와 현재의 시간의 간격을 연산합니다. Date/Time 오브젝트 박스에 임의로 새로운 데이터를 입력한 Date/Time 오브젝트 데이터와 실험할 원본의 데이터를 입력한 Date/Time 오브젝트 데이터를 비교합니다.

Timer 오브젝트 혹은 now() 함수를 사용하여 프로그램 전체 혹은 부분에 걸린 경과 시간의 계산합니다.

속성창

DataShape - 오브젝트의 출력이 되는 입력한 값의 초기 데이터 형태를 설정합니다. 디폴트는 Scalar입니다.

 ArraySize: - 1D Array를 설정할 때 ArraySize항목은 어레이의 길이를 설정합니다.

 ArraySizeFixed - 이 속성이 True일 때, 어레이는 어레이의 행을 더하거나 지울 수 없습니다. 1D Array를 선택하면 어레이의 행을 더하거나 지울 수 있습니다.

 ShowArrayIndices - 이 속성이 True일 때 어레이의 행 번호가 나타납니다. 1D Array를 선택하면 어레이의 행 번호를 더하거나 지울 수 있습니다. 디폴트는 True입니다.

 PasswordMasking - 이 속성이 True일 때 입력 데이터는 *으로 변화됩니다. 이 기능은 보안에 date/time 오브젝트의 값이 보안에 민감할 때 사용할 수 있습니다. Date/Time 오브젝트 출력 핀에 출력되는 스트링은 *으로 변화되지 않은 date/time 오브젝트의 입력 데이터입니다. 이 속성은 DataShape항목의 1D Array를 허용하지 않습니다. 디폴트는 False입니다.

Wait for Input - 이 속성이 True일 때 Date/Time 오브젝트는 오브젝트의 값이 변하기 전까지 실행하지 않습니다. 이 속성이 False일 때 Date/Time 오브젝트는 컨테이너가 입력됨과 동시에 실행하고 마지막에 입력된 값으로 출력합니다. 디폴트는 False입니다.

 AutoExecute - 이 속성이 True일 때 오브젝트는 실행되고 값이 입력될 때 프로그램이 정지합니다. 프로그램이 이미 실행되었다면 AutoExecute항목은 무시합니다. 디폴트는 False입니다.

InitialValue - 초기화되는 값을 설정합니다. 디폴트 값은 Sat 01/Jan/1 17:00:00 MST 입니다.

 InitializeAtPreRun - 이 속성이 True일 때 InitialValue 항목은 컴파일 할 때 InitialValue 항목의 내용이 설정됩니다. 디폴트는 False입니다.

 InitializeAtActivate - 이 속성이 True일 때 InitialValue 항목은 실행할 때 InitialValue 항목의 내용이 설정됩니다. 디폴트는 False입니다.

주의사항

속성창의 Initialize 관련 속성은 UserObject오브젝트 내에서 Date/Time 오브젝트를 초기화할 때 사용합니다. Date/Time 오브젝트의 Default Value 컨트롤 핀을 사용하여 초기화할 수도 있습니다.

Default Value, Reset, Enable Editing 및 Disable Editing을 Date/Time 오브젝트의 컨트롤 핀으로 사용할 수 있습니다.

프로그램에서 Default Value 입력 핀으로 현재 값을 설정합니다. 상수의 형태는 들어오는 데이터의 형태에 맞추어 재설정합니다. 제어 입력 핀은 date/time 오브젝트 파싱 방식에 따라 주어지는 상수 값에 대응하는 Date/Time 오브젝트 스트링이 출력됩니다. 이것은 Direct I/O와 동일한 방식입니다.

프로그램에서 Reset 입력 핀은 값을 0으로 설정합니다. DataShape 항목을 Array 1D로 설정하면 상수의 모든 값은 0으로 설정됩니다. Reset입력 핀에서 사용되는 데이터의 값은 무시됩니다.

Enable Editing 입력 핀이 활성화되면 오픈뷰에서 Date/Time오브젝트의 필드를 수정할 수 있습니다. Disable Editing 입력 활성화되면 오픈뷰에서 Date/Time오브젝트의 필드를 수정할 수 없습니다.

Date/Time오브젝트의 DataShape 항목을 어레이로 설정하면 InitialValue 항목의 값은 무시됩니다. 그러므로 DataShape 항목을 scalar로 설정해야 InitialValue 항목의 값으로 초기화됨을 유의합니다.

Date/Time오브젝트의 속성 창에서 타임 스탬프를 포맷을 변경하여 Date/Time오브젝트의 출력을 AlphaNumeric 오브젝트와 Logging AlphaNumeric 오브젝트에 디스플레이 할 수 있습니다.

To String, To File 또는 To Printer (I/O [image] To [image])오브젝트를 생성하여 Date/Time오브젝트의 출력을 스트링, 파일, 프린터 등 다양한 경로를 통해 출력합니다.

마이크로소프트 윈도우를 사용하는 경우, 제어판의 Date/Time 속성 대화 상자에 Time Zone tab에서 Date/Time 오브젝트에 표시되는 표준 시간을 변경합니다. 마이크로소프트 윈도우에서 표준 시간 변경 후 VEE를 재 실행하여 변경된 표준 시간이 적용됩니다.

오브젝트 위치

Data [image] Constant [image] Date/Time

관련정보

Timer

상수 데이터 사용하기


Date/Time Compare 오브젝트

날짜와 시간을 비교합니다.

오브젝트 위치

System [image] DateTime [image] Compare


Date/Time to Local Time 오브젝트

날짜와 시간을 현지 시간으로 변환합니다.

오브젝트 위치

System [image] DateTime [image] To Local Time


Date/Time to String 오브젝트

날짜와 시간 값을 스트링 데이터로 변환합니다.

오브젝트 위치

System [image] DateTime [image] To String


Date/Time to Universal Time 오브젝트

날짜와 시간을 Universal Time으로 변환합니다.

오브젝트 위치

System [image] DateTime [image] To Universal Time


Day of the week 오브젝트

주어진 날짜의 요일을 검색합니다.

오브젝트 위치

System [image] DateTime [image] Day of the Week


Day of the Year 오브젝트

주어진 날짜에서 일자를 검색합니다.

오브젝트 위치

System [image] DateTime [image] Day of the Year


Declare Variable 오브젝트

프로그램의 변수를 선언할 수 있는 오브젝트

사용법

Declare Variable 오브젝트는 VEE 프로그램에서 변수를 선언하는데 사용합니다. 3가지 타입의 변수를 선언할 수 있습니다.

Global - 프로그램의 어디에서나 사용할 수 있도록 선언된 변수. 이것은 디폴트로 선언되는 변수 영역입니다.

Local to Context - 특정한 UserObject나 UserFunction같은 컨텍스트에서 사용할 수 있도록 선언된 변수.

Local to Library - 특정한 Library에서 사용할 수 있도록 선언된 변수로 라이브러리로 지정된 UserFunction만이 이 변수를 가질 수 있습니다.

오브젝트 메뉴

Add Field -- 레코드의 마지막 필드에 새로운 필드를 추가합니다. 대화상자에서는 새로운 필드의 이름, 종류와 형식을 정의합니다. 이 항목은 Record 타입을 선택하지 않은 경우에는 회색으로 바뀌어 비활성화 됩니다.

Insert Field -- 레코드의 지정한 위치에 새로운 필드를 삽입합니다. 대화상자에서는 새로운 필드의 이름, 종류와 차원을 정의합니다. 2번째 대화상자는 하나 이상의 필드가 존재할 경우에 삽입하고자 하는 위치를 지정하도록 합니다. 이 항목은 Record 타입을 선택하지 않은 경우에는 회색으로 바뀌어 비활성화 됩니다.

Delete Field -- 레코드의 필드를 삭제합니다. 대화상자는 삭제할 수 있는 필드를 디스플레이 합니다. 이것은 하나 이상의 필드를 가진 레코드에서만 사용할 수 있습니다. 이 항목은 Record 타입을 선택하지 않은 경우에는 회색으로 바뀌어 비활성화 됩니다.

Edit Event Handler... - 선언된 ActiveX 오브젝트용으로 이벤트 핸들러 UserFunctions이 생성된 경우에는, Edit Event Handler 대화상자를 엽니다.

 Create Event Handler... - Create Event Handler UserFunction 브라우저를 엽니다. 이 브라우저는 ActiveX automation 오브젝트에 의해 생성된 이벤트를 핸들링하는UserFunction을 생성합니다. 브라우저의 Member영역에 있는 이벤트 리스트를 위한 이벤트 핸들러를 생성합니다. 이 메뉴는 Type이 Object로 설정되고, 지정하는 Library와Class를 위한 이벤트가 활성화 되었을 때 선택할 수 있습니다.

  Generate

Record Constant -- 이 레코드 설정과 매칭되는 필드를 가진 Record 상수 오브젝트를 생성합니다. 이 항목은 선언된 변수의 타입이 레코드인 경우에만 사용할 수 있습니다.

Build Record -- 이 레코드 설정과 매칭되는 입력을 가진 Build Record 오브젝트를 생성합니다. 이 항목은 선언된 변수의 타입이 레코드인 경우에만 사용할 수 있습니다.

Unbuild Record -- 이 레코드 설정과 매칭되는 출력을 가진 Unbuild Record 오브젝트를 생성합니다. 이 항목은 선언된 변수의 타입이 레코드인 경우에만 사용할 수 있습니다.

오픈뷰 항목

 Name: - 사용자가 지정하는 변수 이름. 디폴트로 지정되는 이름은 global1입니다.

 Scope: - 선언하는 변수가 유효한 범위. Global, Local to Context및 Local to Library등의 다양한 범위를 제공합니다. 디폴트로 지정되는 범위는 Global입니다.

 Type: - Real64, Int32, Enum등과 같은 변수의 데이터 종류. 디폴트로 지정되는 종류는 Real64입니다.

Type을 Record로 설정하면, Declare Variable 대화상자가 오른쪽으로 확장됩니다. 이 확장된 영역은 Record를 정의하고 생성할 수 있도록 합니다. 오브젝트 메뉴에 있는 Add Field, Insert Field 또는 Delete Field를 사용하여 Record를 생성합니다.

Type을 Object로 설정하면, Declare Variable 대화상자가 오른쪽으로 확장되고 "Sub Type" 같은 새로운 필드가 나타납니다. 확장된 영역은 ActiveX 또는 .NET을 위해 변수를 선언할 때 세부적인 선택사항을 지정할 수 있습니다. 변수를 선언할 때는 이러한 세부사항을 지정할 필요는 없습니다; 반면에 그렇게 지정하면, 지정된 내용이 선언된 변수에만 적용되도록 하기 위하여 VEE는 자동으로 타입체크를 수행합니다. ActiveX 오브젝트의 Library, Class, 또는 Events의 값을 변경하기 위해서는 Type을 Object로 선택하고, Edit…를 클릭하여 나타나는 Specify Object Type 대화상자에서 값을 변경합니다. .NET 오브젝트의 Assembly, Namespace, Type 또는 Members의 값을 변경하기 위해서는 SubType을 .NET으로 설정하고, Edit…를 클릭하여 나타나는 Specify Object Type 대화상자에서 값을 변경합니다. SubType을 “Any”로 설정하면 .NET, ActiveX(COM), 또는 XYDisplay 같은 VEE 오브젝트를 sub type으로 가질 수 있습니다.

Type을 Variant로 설정하면, 어떤 종류의 데이터도 변수로 할당할 수 있습니다.

 Num Dims: - 변수의 차원을 설정합니다. 가능한 범위는 0에서 10이며, 디폴트 값은 10입니다.

주의사항

ActiveX 참조를 제거하기 위한 프로그래밍 기술에 대한 자세한 사항은 CreateObject를 참조하십시오.

오브젝트 위치

Data [image] Variable [image] Declare Variable

관련정보

ActiveX Automation References 대화상자, ActiveX Control References 대화상자, Delete Variable, Get Variable, Set Variable, 오브젝트 타입 지정, Variant, View Variables 메뉴항목, 속성창 (오브젝트) 및 오브젝트 메뉴

변수 생성하기 또는 ActiveX 참조 종료

VEE에서 ActiveX 오브젝트나 ActiveX 컨트롤에 대한 자세한 내용은 Help => Contents and Index => Tell Me About... => Active X을 참조하십시오.


Default Preferences 대화상자

VEE 프로그램의 기본 환경을 설정하는 대화상자 선택메뉴

사용법

Default Preferences 에서 VEE 작업영역의 선택사항을 설정합니다. 여기서 저장된 선택사항은 New를 선택하여 새로운 VEE 프로그램을 실행할 때 적용됩니다. 이들 항목중 일부는 사용자가 작성한 프로그램 내부에서도 저장되므로, 각 프로그램마다 다른 설정내용을 적용할 수 있습니다.

대화상자 설명

General 탭:

Environment 그룹

Auto Line Routing- 체크박스가 체크되면, 오브젝트가 이동되거나 크기가 변경될 때 오브젝트에 연결된 라인이 자동으로 라우팅됩니다. VEE는 오브젝트 라우팅에 수직선과 수평선만을 사용합니다. 복잡한 프로그램에서는 라인을 다시 라우팅하는데 시간이 걸릴 수 있습니다. Auto Line Routing 체크박스가 체크되지 않았으면, 라인은 점과 점을 직선으로 연결합니다.(중간에 꺽은 점을 넣을 수 있습니다.) Edit Clean Up Lines 을 실행하면 연결선이 다시 라우팅됩니다.

Delete Variables at PreRun - Delete Variables at PreRun 체크박스가 체크되면, 모든 변수에 저장된 값은 프로그램이 실행될 때마다 초기화됩니다. Get Variable 오브젝트는 이들이 호출하는 변수들이 값을 가질 때까지 실행될 수 없으므로, 이들 변수에 값이 저장되어 있지 않으면 에러가 발생합니다. Delete Variables at PreRun 체크박스가 체크되어 있지 않으면, 변수에 저장된 값은 PreRun시 초기화되지 않으며, 이전 실행시 사용했던 데이터를 이용하여 프로그램을 실행합니다. 그러나, 이 데이터는 유효하지 않은 데이터(이번 프로그램 실행에 적합하지 않은)일 수 있으므로 주의하여 사용해야 합니다. 에러가 발생하지는 않지만, 예기치 않은 결과값이 출력될 수 있습니다.

 Code Completion Supports Build-in Functions - Code Completion Supports Build-in Functions 체크박스가 선택된 경우에는, VEE에서 기본 제공되는 함수가 Code Completion 윈도우에 디스플레이 됩니다. 이 항목을 체크하지 않은 경우에는, Code Completion 윈도우는 어떤 기본 제공 함수도 디스플레이 하지 않습니다. 디폴트로 이 항목은 체크됩니다.

Code Completion Supports COM Constants- Code Completion Supports COM Constants 체크박스가 선택된 경우에는, COM Constants가 Code Completion 윈도우에 디스플레이 됩니다. 이 항목을 체크하지 않은 경우에는 Code Completion 윈도우는 어떤 COM Constants도 디스플레이 하지 않습니다. 디폴트로 이 항목은 체크되지 않습니다.

 Match Brackets in Formula- Match Brackets in Formula 체크박스가 선택된 경우에는, VEE는 공식에서 매칭된 브라켓을 회색으로 마킹합니다. 이 항목은 복잡한 공식에서 유용합니다.

Execution Mode 그룹:
자세한 내용은 실행모드 이해. 를 참조하십시오. 실행모드간의 호환문제에 대해서는 Execution Modes을 참조하십시오.

VEE 8 – VEE 8.0 제품과 동일한 설정을 사용하여 프로그램을 실행합니다. VEE 8 모드는 VEE 6&7 모드에서 제공하는 모든 기능과 새로운 데이터 타입인 Int32 와 Boolean을 지원합니다.

VEE 6&7 - VEE 6.0 버전과 동일한 설정상태로 프로그램을 실행합니다. VEE 6 모드는 VEE 5에서 제공하는 모든 기능과 UInt8, Int16, Real32 및Variant 데이터 타입을 지원합니다.

VEE 5 - VEE 5.0 버전과 동일한 설정상태로 프로그램을 실행합니다. 이 기능을 사용하면, VEE 5.0으로 작성된 프로그램을 이전 버전에서와 동일하게 실행할 수 있습니다. VEE 5모드는 VEE4의 모든 기능과 윈도우 운영시스템에서 지원하는 ActiveX 기능을 제공합니다. 주의 : VEE4.0으로 작성된 일부 프로그램과 이전 프로그램은 VEE 5 모드에서 다르게 동작할 수 있습니다.

VEE 4 - VEE 4.0 버전과 동일한 설정상태로 프로그램을 실행합니다. 이 기능을 사용하면, VEE 4.0으로 작성된 프로그램을 이전 버전에서와 동일하게 실행할 수 있습니다. VEE 4 모드에는 컴파일러 기술이 추가되어서, 이전 버전보다 프로그램을 더 빠른 속도로 실행합니다. 주의 : VEE3.2로 작성된 일부 프로그램과 이전 프로그램은 VEE 5 모드에서 다르게 동작할 수 있습니다. 프로그램이 정상적으로 실행되는 것으로 보이지만, 시분할 차이로 인해서 에러가 발생할 수 있습니다.

VEE 3 (컴파일되지 않았음)- VEE 3.2 및 이전 버전에서 작성된 프로그램이 이전 버전에서와 동일한 상태로 실행되도록 과거 VEE 인터프리터와 함께 프로그램을 실행합니다.

Trig Mode 그룹:

Degrees | Radians | Gradians - 프로그램에서 사용할 디폴트 삼각함수 단위를 지정합니다. Radians를 선택하면 삼각함수 연산시 가장 빠르게 실행됩니다.

Debug 그룹:

Data Flow Rate: - Data Flow 마커가 이동하는 속도를 설정합니다. 이 마커는 프로그램에서의 데이터 흐름을 표시합니다. 1 에서 10까지(10에서 속도가 가장 빠릅니다.)의 값을 설정할 수 있습니다. 디폴트 값은 6 입니다.

Disable Debug Features - 모든 디버깅기능을 사용하지 않도록 하여 최대 프로그램 실행속도를 얻을 수 있습니다.

Check Instrument Addresses at PreRun - 이 항목이 체크되면, prerun시 VEE는 참조된 모든 계측기를 사용할 수 있는지 체크합니다.(Live 모드인지) 계측기나 인터페이스를 사용할 수 없으면, VEE는:

1. 문제점을 해결한 후 재시도를 요청하는 대화상자를 띠웁니다. 해당 계측기를 재검색하도록 하기 위해서는 “Yes”로, 다음 계측기를 검색하기 위해서는 “No”를, 또는 이들 계측기를 완전히 건너뛰기 위해서는 “Cancel”을 클릭합니다.

2. 재시도하여 계측기가 검색되었으면, VEE는 다음 계측기를 검색합니다.

3. 재시도하였어도 계측기를 검색하지 못했으면(또는 “No” 응답), 라이브 상태인 계측기 목록을 동일한 인터페이스 타입에 표시합니다. 이때 현재 계측기의 주소를 다른 주소로 변경할 수 있습니다.

Program Development 그룹:

Alignment Spacing - Edit [image] Align [image] Space Equally가 체크되었을 때 VEE 오브젝트간의 간격(픽셀)을 지정합니다. 다른 Align 명령어를 선택하면 해당 정렬에 필요한 지정된 공간을 사용합니다.

Binary RunTime File Format - File [image] Create RunTime Version을 실행하여 프로그램을 .vxe 파일로 저장할 때 파일포맷을 제어합니다. 파일의 크기가 작은 프로그램을 저장시 Binary RunTime File Format을 체크하면(이 상태가 디폴트 상태입니다.) 프로그램 보안기능이 향상됩니다. 이 기능을 체크하지 않으면, 파일이 ASCII 포맷으로 저장됩니다.

Show Description Indicators - 이것을 체크하면, 설명이 제공되는 오브젝트의 경우, 그 오브젝트의 우측상단에 작은 빨간색 삼각형이 표시됩니다. 이 빨간색 삼각형을 클릭하면 해당 오브젝트의 설명 편집창이 표시됩니다.

Colors 탭:

Screen Element - 디폴트 색깔을 설정할 스크린 앨리먼트(VEE의 그래픽 부분)를 선택합니다. VEE 오브젝트의 속성창에서 해당 앨리먼트의 색깔을 다시 변경할 수 있습니다.

Color Value - 스크린 앨리먼트의 색깔을 팔레트에서 선택합니다.

Fonts 탭:

Screen Element - 디폴트 폰트를 설정할 스크린 앨리먼트(VEE의 그래픽 부분)를 선택합니다. VEE 오브젝트의 속성창에서 해당 앨리먼트의 폰트를 다시 변경할 수 있습니다.

Font Value - 시스템에서 제공하는 폰트 목록 중에서 텍스트 폰트를 선택합니다.

Number 탭:

Integer: - 오브젝트에 표시될 정수의 포맷을 지정합니다. Decimal (예, 42), Octal (예, #Q52), Hexadecimal (예, #H2a) 및 Binary (예, #B00101010) 중에서 한 가지를 선택할 수 있으며, 디폴트 값은 Decimal 입니다.

Real: - 오브젝트에 표시될 실수 포맷을 지정합니다. Fixed (예, 98.6000), Scientific (예, 9.8600E+01), Engineering (예, 98.6000E0), 및 Standard (예, 98.6) 중에서 한 가지를 선택할 수 있으며, 디폴트 값은 Standard 입니다.

Printing 탭:

Screen Element - 프린트할 때 사용할 회색 그림자를 적용할 스크린 앨리먼트(VEE의 그래픽 부분)를 선택합니다.

B & W Printer Darkness - 각 스크린 앨리먼트에 적용할 회색 그림자의 농도를 선택합니다. 이 회색 그림자는 흑백 프린터를 사용시 적용됩니다. 대부분의 경우 디폴트 값을 적용하면 됩니다.

Print Magnification: - VEE 프로그램 전체 또는 일부분을 프린트할 때 확대비율을 지정합니다. 숫자가 작을수록 이미지를 작게 프린트합니다. 프린트 이미지의 크기를 최적화하도록 디폴트 값은 75%로 설정되어 있습니다.

Print Header and Index Page - 이것이 체크되어 있으면, VEE 프로그램을 프린트 할 때, 각 페이지마다 2줄의 헤더가 포함됩니다. 이 헤더에는 날짜 및 시간, 프로그램 파일명, 페이지 번호가 출력됩니다. 프린트의 맨 마지막에는, 인덱스된 항목의 페이지 번호를 나타내는 인덱스 페이지가 출력됩니다.

Print Program Explorer - 이것이 체크되면, VEE의 Program Explorer 창의 내용이 프린트됩니다.

Print Cover Page - 이것이 체크되면, 첫 번째 페이지에 다음의 내용이 프린트됩니다.:

애질런트 VEE 제품 로고.

프린트되는 프로그램의 파일명.

저장된 프로그램의 파일포맷.

VEE 소프트웨어의 버전 번호(예, 6.0 등).

현재 사용중인 VEE 실행모드(VEE 6 등).

Main 오브젝트의 설명 파일(사용자가 작성한 경우에만).

Print I/O Configuration - 이것이 체크되면, 계측기 설정을 확장한 트리구조가 프린트됩니다. 계측기 설정 트리는 I/O [image] Instrument Manager…에서 확인할 수 있습니다.

디스플레이 오브젝트 메뉴에서 Print를 동적으로 선택하여 프린트를 실행할 수 있습니다. 현재의 Printer Setup 가 Print to File 로 설정되어 있으면, 지정된 파일이나 디렉토리 명이 사용됩니다.

디스플레이 오브젝트의 전체 형태를 프린트하거나, 원래 형태의 가로세로 비율을 유지하면서 지정된 프린트 영역에 스케일하여 프린트할 수 있습니다. 디스플레이 오브젝트의 크기를 변경하여, 프린트될 이미지의 가로세로 비율을 제어할 수 있습니다. 오브젝트의 크기를 크게 하면, 프린트 내용의 텍스트 및 숫자 등의 크기가 상대적으로 축소됩니다.

Web Server 탭:

 Enable Server - 이것을 체크하면 VEE의 내장 웹서버를 사용할 수 있습니다. 디폴트 상태에서는 이것이 체크되어 있지 않습니다. 웹서버를 이용하면 표준 HTTP1.0 프로토콜을 사용하는 원격지 웹 브라우저를 통해서 VEE 프로그램을 모니터링하고 고장원인을 파악할 수 있습니다. 네트워크에 연결된 시스템에서 VEE가 실행되고 있어야만 이 기능을 이용할 수 있습니다.

 Root Directory: - 원격 웹 브라우저에서 접근할 수 있는 파일의 위치를 지정합니다. 디폴트 값은 ~installDir/www 입니다. 이 폴더 및 이 폴더의 하위 폴더에 개인적인 파일을 넣지 마십시오. 이 호스트 시스템에 접근할 수 있는 웹서버를 통해서 이 폴더의 내용을 볼 수 있습니다. 이 폴더에는 index.html 파일이 있습니다. 이 파일은 디폴트 웹서버 홈페이지 이며, 내용은 목적에 맞도록 변경하여 사용할 수 있습니다. Root Directory를 변경하는 경우에는 index.html 파일도 새로운 위치로 함께 이동해야 합니다. 그러나 파일의 이름은 변경하지 마십시오.

 HTTP Port Number: - 웹서버의 포트번호를 지정합니다. 디폴트 값은 80입니다. 이 값을 변경할 필요는 없으며, 동일한 시스템에서 다른 VEE 프로그램이 실행되는 등의 특별한 경우에만 변경하여 사용하면 됩니다. 다른 프로그램에서 이미 지정된 포트번호를 지정하지 마십시오. 이 포트번호에는 0부터 65535 까지의 값을 사용할 후 있습니다. 현재 사용중인 포트번호의 목록은 다음의 파일에서 찾을 수 있습니다: Windows NT: \Winnt\system32\drivers\etc\services

 Server Timeout (sec): - 웹서버 명령에 대한 VEE의 응답을 기다리는 최대 시간을 설정합니다. 디폴트 값은 60 초입니다. VEE 가 이 시간 안에 응답하지 않으면 웹서버로 타임아웃 메시지가 전송됩니다.

 Log File: - http.log 로그파일의 위치를 지정합니다. 디폴트 값은 C:\tmp\http.log 등의 임시 폴더입니다. 로그파일이 지정된 폴더에 없으면, Default Preferences의 내용을 변경시 생성됩니다. 이 로그파일에는 웹서버에 의해서 프로세스된 모든 수신 HTTP 요청이 기록됩니다. 새로운 데이터는 기존 로그내용에 첨부되므로, 이 파일이 너무 커지는지 모니터할 필요가 있습니다.

I/O tab:

 IO Preferences

 Enable Pre 8.0 Legacy IO: - 이 박스가 체크된 경우에는, Instrument Manager는 이전 형식의 SICL 디바이스를 검색합니다. 디폴트로, Instrument Manager는 이 형식의 디바이스는 검색하지 않습니다.

주의사항

일단 웹서버를 인에이블하고, 각 속성을 설정하였으면, HTTP 1.0 규격을 지원하는 웹브라우저(일반적으로 사용되는 브라우저)를 통해서 웹서버에 접근할 수 있습니다. 다음 2 가지 포맷 중 하나를 사용하여 URL 을 입력합니다:

http://hostname{:port}{/file}

또는

http://hostname{:port}{/command}{?parameter}

여기서:

 hostname (필수항목)은 VEE가 실행되고 있는 컴퓨터 식별자 입니다. 이 항목만 가지고 있는 URL 을 사용하면 웹서버의 index.html 파일을 엽니다.

 port (선택항목)은 웹서버의 HTTP 포트번호입니다. 디폴트 값이 아닌 경우에 사용합니다.

 file (선택항목)은 열어야할 파일이나 폴더의 Root Directory의 상대경로 입니다. .jpeg 또는 .html 등의 파일이름의 확장자를 사용할 수 있습니다.

 command (선택항목) 브라우저에서 VEE 프로그램을 모니터, 고장원인파악 등의 목적으로 웹서버에서 지원하는 명령어를 입력합니다. 다음의 명령어를 사용할 수 있습니다.:

 parameter (선택항목)은 명령어 실행에 필요한 인자를 지정합니다. 다음의 인자를 사용할 수 있습니다.:

애질런트 VEE 웹서버는 다음의 명령을 지원합니다.:

 ViewVEE는 전체 VEE 윈도우를 표시합니다.

 ViewMainDetail는 메인 윈도우의 디테일뷰를 표시합니다. 현재 실행되고 있는 프로그램이 RunTime 버전으로 저장되어 있으면 에러가 발생합니다.

 ViewMainPanel는 메인 윈도우의 패널을 표시합니다. 메인 윈도우에 판넬이 없으면 에러가 발생합니다.

 ViewExecWindow는 VEE 실행 윈도우를 표시합니다. 실행 윈도우가 없으면 에러를 발생합니다.

 ViewDetail?UserFuncName은 이름이 UserFuncName인 사용자함수의 디테일뷰를 표시합니다. 해당 사용자함수가 없거나 RunTime 버전으로 저장되어 있으면 에러가 발생합니다. 해당 사용자함수의 현재의 윈도우의 크기가 작더라도 모든 오브젝트를 볼 수 있도록 크기가 자동변경됩니다.

 ViewPanel?UserFuncName은 이름이 UserFuncName이 사용자함수의 판넬뷰를 표시합니다. 해당 사용자함수가 없거나 패널을 가지지 않으면 에러가 발생합니다.

 ViewError은 현재 프로그램의 에러 윈도우를 표시합니다.

다음은 웹브라우저에서 입력할 수 있는 URL 예제입니다. 여기서는 VEE 프로그램이 네트워크에 접속된 컴퓨터에서 실행되고, 그 컴퓨터의 이름이 my_system 이며, 웹서버가 인에이블되어 있고, HPPT 포트번호 80을 사용한다고 가정했습니다.

 http://my_system/public_docs/page.html
public_docs 폴더의 page.html 파일을 표시합니다. 이 폴더 및 파일은 웹서버의 루트 폴더의 상대경로상의 호스트 컴퓨터에 있습니다.

 http://my_system/ViewExecWindow
VEE 실행 윈도우를 표시합니다.

Save 가 실행되면, 기본 설정 내용이 VEE 프로그램이 설치된 폴더의 VEE.RC 파일에 디폴트 저장됩니다.(MS 윈도우의 경우) 이들 속성중의 일부는 이 디폴트 파일 뿐만 아니라 프로그램에도 저장됩니다. General 탭의 Environment 및 Trig Mode 그룹의 항목과, Number 탭의 숫자포맷 등의 항목이 이렇게 중복 저장됩니다. Save colors 및 fonts with program 항목이 File   [image] Save 대화상자에 체크되어 있으면 색깔 및 폰트는 프로그램에만 저장됩니다. 또한 색깔 및 폰트의 경우에는 변경하여 저장된 내용만 디폴트 파일에 저장됩니다.

OK 버튼을 클릭하면, 현재 사용중인 세션에 변경된 내용이 적용됩니다.

Reset 을 클릭하면, 현재 설정은 무시되고, 디폴트 파일의 내용을 읽어서 설정합니다.

Cancel 을 클릭하면 변경한 내용이 취소됩니다.

오브젝트 위치

File [image] Default Preferences

관련정보

Align 메뉴항목, 라인(연결선) 정리하기, Delete Variable, Get Variable, Set Variable, Show Data Flow 항목, Program Explorer 메뉴항목 및 속성창 (오브젝트)

디폴트 색상 변경하기

디폴트 폰트 변경하기

숫자 형식 변경하기

프린터 설정 변경하기

프린터 설정하기


Delay 오브젝트

오브젝트의 Done 데이터 출력 터미날을 활성화 하기 전에 지정된 시간 동안 대기합니다.

사용법

Delay 오브젝트는 지정된 초단위의 시간 동안 쓰레드의 실행을 지연하는데 사용합니다.

사용예

Delay 오브젝트는 UserObject로 생성된 대화상자 박스에서 타임아웃으로 사용합니다.

오픈뷰 항목

입력 필드에 초단위의 지연시간을 입력합니다. 데이터 입력핀을 추가하면, 핀으로 전송되는 값이 초단위의 지연시간이 됩니다.

주의사항

지연시간 값은 초단위로 지정되고 시스템 시간에서 제공되는 정밀도를 가집니다. Delay 오브젝트가 동작하는 프로그램이 설치된 시스템에 의존합니다. 데이터 입력핀을 통해서 지연시간을 설정할 수 있습니다.

지연 간격은 시퀀스 입력핀이 활성화되는 시간으로부터 계산됩니다. 지정된 지연 간격이 지나면, Done 데이터 출력핀이 활성화 됩니다. Delay는 대기하는 동안은 “슬립상태”에 있습니다. 그래서 다른 오브젝트가 실행할 수 있도록 합니다.

대부분의 경우, 지연시간이 지난 후에 Done 데이터 출력터미날이나 시퀀스 출력핀을 전송매체로 사용합니다. 반면에 Delay 오브젝트가 다른 오브젝트의 병렬실행을 포함하는 쓰레드의 한 부분이라면, 시퀀스 출력핀은 시간이 좀더 많이 지나도 활성화하지 않을 수도 있습니다. 이것은 시퀀스 출력핀이 더 이상 실행할 오브젝트가 없는 경우에만 활성화 되기 때문입니다. 지연되었던 쓰레드가 지연시간 끝나는 시점에 실행될 수 있도록 하기 위해서는, 지연시간 이 끝나는 시점에 항상 활성화 되는 Done 데이터 출력 터미날을 사용하십시오.

오브젝트 위치

Flow [image] Delay

관련정보

Instrument Event, Interface Event, OK, On Cycle, 속성창 (오브젝트) 및 오브젝트 메뉴

타임 아웃 설정하기


Delete 메뉴항목 (오브젝트 메뉴)

패널뷰나 디테일뷰에 있는 오브젝트를 삭제합니다.

사용법

Delete는 디테일뷰나 패널뷰에 있는 오브젝트를 삭제하는데 사용합니다. 패널뷰에서 오브젝트를 삭제하더라도, 디테일뷰에는 오브젝트가 남아 있습니다.

디테일뷰에서 오브젝트를 삭제하면, 패널뷰에 있는 오브젝트도 삭제됩니다.

주의사항

Delete는 클립보드를 수정하지는 않습니다. (예, 붙여넣기를 위하여)

CTRL+Z를 누르거나, 메인 메뉴에서 Edit > Undo를 선택하거나, 툴바에서 [image] 를 선택하여 Delete를 취소할 수 있습니다.

단축키

오브젝트의 좌측상단에 있는 오브젝트 메뉴 선택박스 아이콘을 더블 클릭하여 오브젝트를 빠르게 삭제할 수 있습니다.

오브젝트 위치

오브젝트 메뉴 [image] Delete

관련정보

Cut 메뉴항목, 오브젝트 메뉴, 실행 취소하기 및 속성창 (오브젝트).

패널에서 오브젝트 삭제하기


Delete Directory 오브젝트

주어진 디렉토리를 삭제합니다.

오브젝트 위치

System [image] Directory [image] Delete Directory


Delete File 오브젝트

주어진 경로에 있는 파일을 삭제합니다.

오브젝트 위치

System [image] File [image] Delete File


Delete Library 오브젝트

실행중인 프로그램에서 UserFunctions, Compiled Function 정의, 또는 Remote Function 정의 등의 라이브러리를 삭제(언로드)하는 오브젝트

사용법

Delete Library 오브젝트는 VEE 프로그램에서 라이브러리를 삭제하기 위해 사용합니다. 이것은 라이브러리의 타입에 따릅니다.

UserFunction - Delete Library는 Import Library 오브젝트에 의해 로딩된 UserFunctions을 VEE 프로그램에서 삭제합니다. 이것은 Library Name 필드에서 지정한 이름을 가진 UserFunctions을 삭제하는 것입니다.

Compiled Function - Delete Library는 VEE 프로세스에서 공유 라이브러리를 분리합니다. 반면에 공유 라이브러리를 포함하는 파일은, 마지막 라이브러리가 파일이 삭제된 것을 포인팅할 때만 분리됩니다. 그것은 만약 몇 개의 다른 라이브러리가 동일한 공유 라이브러리 파일(라이브러리 정의 파일이 동일하거나 다른 경우에도)을 포인팅하고 있다면, 공유 라이브러리는 더 이상 첨부된 코드를 사용하는 라이브러리가 없을 때만 VEE 프로세스로부터 분리됩니다. 운영체제는 공유 파일이 프로세스에 첨부된 후에는 공유 파일을 이동하거나 삭제할 수 없게 합니다. 새로운 공유 라이브러리 파일을 사용하기 위해서는 Import Library 오브젝트에서 코드를 분리하기 위한 Delete Lib의 옵션을 사용해야 합니다.

Remote Function - Delete Library는 리모트 VEE 프로세스를 중지하고, 로컬 VEE 프로세스로부터 Remote Function definitions을 제거 합니다. Delete Library는 리모트 프로세스를 참조한 마지막 라이브러리가 삭제될 때 리모트 프로세스를 중지합니다.

오픈뷰 항목

Library Name - 이 필드에서는 삭제하고자 하는 라이브러리의 이름을 입력합니다.

주의사항

Delete Library는 일반적으로 실행중인 VEE 프로세스로부터 라이브러리 오브젝트를 로딩하고 삭제하는 진보된 기능을 위해 사용됩니다. 이것은 VEE 프로세스를 위한 메모리 요구를 감소시킵니다.

Delete Library 오브젝트는 단 하나의 Data Input 터미날을 사용할 수 있습니다. 입력터미날의 디폴트 이름은 LibraryName입니다.

오브젝트 위치

Device [image] Delete Library

관련정보

Call, UserFunction 메뉴항목, Import Library, UserFunction, UserObject 및 속성창 (오브젝트)


Delete Line 메뉴항목

2개의 핀 사이에 연결된 라인을 삭제합니다.

사용법

Delete Line은 프로그램에서 잘못 연결된 라인을 제거하거나, 연결을 수정하기 위해 사용합니다. Delete Line을 선택하고 삭제 하고자 하는 라인 또는 라인 근처에서 클릭하십시오.

라인을 삭제하지 않고 빠져 나오기 위해서는, 라인에서 떨어진 작업영역의 빈 공간에서 클릭하십시오.

주의사항

라인의 끝점을 보기 위해서는(라인 삭제 없이), 커서를 라인 위에 위치시킵니다. 이것은 라인을 하이라이트 시키고 라인의 끝점을 볼 수 있도록 합니다. 라인에 의해 전송된 값을 볼 수도 있습니다.

Delete Line은 프로그램이 실행중 일때는 사용할 수 없습니다.

Delete Line은 실행을 취소할 수 있습니다.

단축키

CTRL+Shift 키를 누른 상태에서, 마우스 포인터를 라인에 위치시키고 마우스 왼쪽 버튼을 클릭하여 라인을 삭제합니다.

이 방법은 한번에 연속해서 여러개의 라인을 삭제할 수 있습니다.

오브젝트 위치

Edit [image] Delete Line

관련정보

Cut 메뉴항목, 실행 취소하기 및 Line Probe.


Delete Terminal 메뉴항목

오브젝트 메뉴의 항목

사용법

Delete Terminal은 터미날을 제거하기 위하여 다음의 항목을 제공합니다

Input - 오브젝트에 추가된 데이터 입력핀 또는 컨트롤 입력핀을 제거하기 위하여 사용합니다. Input을 선택한 다음에, 표시되는 대화상자에서 제거 하고자 하는 핀을 선택합니다. 핀과 핀에 연결된 라인이 제거됩니다. 만약 2개의 핀이 동일한 이름을 가지고 있다면, VEE는 리스트에 나타난 핀의 순서에 근거하여 핀을 제거합니다.

Output - 오브젝트에 추가된 데이터 출력핀 또는 에러 출력핀을 제거하기 위하여 사용합니다. Output을 선택한 다음에, 표시되는 대화상자에서 제거 하고자 하는 핀을 선택합니다. 핀과 핀에 연결된 라인이 제거됩니다. 만약 2개의 핀이 동일한 이름을 가지고 있다면, VEE는 리스트에 나타난 핀의 순서에 근거하여 핀을 제거합니다.

주의사항

Input 항목은 제거할 수 있는 입력핀을 가진 오브젝트에서만 사용할 수 있습니다. 일부 핀은 제거할 수 없습니다.

Outpue 항목은 제거할 수 있는 입력핀을 가진 오브젝트에서만 사용할 수 있습니다. 일부 핀은 제거할 수 없습니다.

단축키

터미날 영역위에 마우스 커서를 놓고 CTRL+D를 눌러서 데이터 터미날을 빠르게 제거할 수 있습니다.

오브젝트 위치

각 오브젝트 메뉴에서
Delete Terminal [image] Input...

Delete Terminal [image] Output...

관련정보

Add Terminal 메뉴항목, Line Probe, 오브젝트 메뉴 및 속성창 (오브젝트).


Delete Variable 오브젝트

현재의 프로그램이 실행되면서 생성된 변수의 값을 삭제하는 오브젝트

사용법

Delete Variable 오브젝트는 변수의 이름을 지정하여 삭제하거나, 프로그램에 설정된 모든 변수를 삭제할 수 있습니다. 변수는 프로그램에서 Set Variable 오브젝트를 사용하여 생성되어 있어야 합니다.

오픈뷰 항목

By Name - 오픈뷰는 변수의 이름을 입력할 수 있는 필드를 디스플레이 합니다. 변수 이름은 대소문자를 구분하지 않습니다. (소문자를 사용하든 대문자를 입력하든). 그래서 globalA는 GLOBALa와 동일한 변수입니다. 이름 필드는 컨트롤 입력핀으로 추가될 수 있습니다.

All Variables - 모든 범위에 있는 선언된 변수 및 선언이 안된 변수를 삭제합니다. 이름 필드가 회색으로 표시되어 비활성화 됩니다.

주의사항

Delete Variable 오브젝트는 이름에 의해 참조된 변수가 존재하지 않는 경우에는 에러가 발생합니다. 이러한 에러의 발생을 방지하기 위하여, Delete Variable 오브젝트에 에러 출력핀을 추가하십시오.

Delete Variable 오브젝트가 실행되면, 이름에 의해 참조되었던 변수(또는 모든 변수)는 삭제됩니다. 이후에 Get Variable 오브젝트에서 변수를 사용하면 변수가 존재하지 않기 때문에 에러가 발생합니다.

변수가 더 이상 필요하지 않을 때 Delete Variable 오브젝트를 이용하여 변수를 삭제하는 것은 메모리를 절약하여 변수를 좀더 효율적으로 관리할 수 있게 합니다.

Default Preferences에서, Delete Variables at PreRun이 체크되어 있으면(디폴트), 프로그램이 실행되기 전에 모든 변수가 삭제됩니다. Delete Variables at PreRun이 off되어 있으면, 변수가 삭제되지 않기 때문에 잘못된 데이터를 전달하는 것을 방지하기 위하여 프로그램을 신중히 다루어야 합니다.

ActiveX references의 삭제와 관련한 좀더 자세한 사항은 CreateObject를 참조하십시오.

오브젝트 위치

Data [image] Variable [image] Delete Variable

관련정보

Default Preferences 대화상자, Get Variable, Set Variable, WatchWindow 및 속성창 (오브젝트)

변수 삭제하기 또는 ActiveX 참조 종료


DeMultiplexer 오브젝트

입력값을 선택한 출력핀으로 통과시키는 오브젝트

사용법

DeMultiplexer는 입력데이터를 특정한 출력핀으로 통과 시킵니다. 출력은 어드레스 입력값에 의해 활성화됩니다.

주의사항

DeMultiplexer는 2개의 입력을 가지며, 하나는 데이터 출력을 위한 것이고 다른 하나는 어드레스 값(출력의 전송을 결정하는 것)을 위한 것입니다. 오브젝트가 실행될 때마다 단지 하나의 출력이 전송됩니다. 만약 어드레스 입력값이 출력숫자[0 [image] (N-1)]의 범위를 벗어나면, 에러가 리턴됩니다. 추가적으로 출력을 추가할 수 있습니다. 출력은 삭제될 수 있고, 이어지는 출력은 순서대로 번호가 다시 부여됩니다.

오브젝트 위치

Device [image] DeMultiplexer

관련정보

If/Then/Else, JCT, 속성창 (오브젝트) 및 오브젝트 메뉴


Description 메뉴항목

오브젝트에 대한 정보를 제공하기 위해 오브젝트 메뉴에서, 또는 메인 프로그램, User Object 또는 User Function에 대한 정보를 제공하기 위해 타이틀바 메뉴에서 Description 을 생성합니다.

사용자가 제공한 정보를 표시하고 편집할 수 있는 RTF(Rich Text Format) 대화상자를 디스플레이 합니다. Description 대화상자가 열리면, 이 대화상자의 기능을 설명하는 디폴트 설명이 표시됩니다. installdir\templates에 있는 description.rtf 파일을 편집하여 디폴트 Description의 내용을 변경할 수 있으므로, 사용자가 임의의 디폴트 설명을 생성하여 사용할 수 있습니다. 만약 비어있는 Description 대화상자를 제공하고자 할 때는 description.rtf 파일을 빈 상태로 저장합니다.

사용법

Description을 가진 오브젝트는 우측 상단에 적색의 작은 삼각형이 표시됩니다.

Description은 오브젝트를 어떻게 사용하는지를 설명하는데 사용합니다. 또는 타이틀바 메뉴에서 전체 파일을 설명하는데 Description을 사용합니다.

Description을 작성하기 위해서는 텍스트 영역을 클릭하고 설명을 입력합니다. 또는 RTF 파일로부터 복사와 붙여넣기를 사용합니다. 입력이 끝나면 OK 버튼을 클릭합니다.

오픈뷰 항목

OK - 프로그램과 함께 설명 정보를 저장합니다.

Cancel - 현재 변경한 내용을 취소하고 Description 윈도우를 닫습니다.

Insert File – 윈도우를 삽입하기 위하여 Select File화면을 엽니다. Wordpad 또는Microsoft Word 같이 rtf 파일을 읽고/쓸 수 있는 에디터에서 생성된 파일을 삽입할 수 있습니다.

Clear All - Description 윈도우에 있는 모든 내용을 삭제합니다. 취소된 텍스트를 복구하기 위해서는 Cancel 버튼을 누르고, Description 윈도우를 다시 열면 됩니다.

Font and Color - Font 윈도우를 엽니다. 선택한 텍스트의 폰트나 색상을 변경할 수 있습니다.

주의사항

VEE 편집기능을 이용하여 텍스트 영역을 편집할 수 있습니다.

Print All을 사용하여 인쇄하거나 Print Objects를 사용하여 인쇄할 때, 오브젝트의 Description도 인쇄됩니다.

Description은 RTF 대화상자이기 때문에, RTF 어플리케이션을 사용하여 다수의 폰트, 색상, 표, 활성화된 URL등을 포함하는 훨씬 더 미려한 설명을 생성할 수 있습니다.

Description 텍스트를 인쇄할 수 있으나, 단지 텍스트만 인쇄됩니다.

오브젝트 위치

각 오브젝트 메뉴 [image] Description

또는

각 타이틀바 메뉴 [image] Description

관련정보

Note Pad, 오브젝트 메뉴, 런타임 버전 생성 및 오브젝트 메뉴


Dialog Box 메뉴항목

메뉴 항목

사용법

Dialog Box는 다음의 대화상자 오브젝트를 제공합니다:

Text Input

Int32 Input

Int64 Input

Real64 Input

Message Box

List Box

File Name Selection

오브젝트 위치

Data [image] Dialog Box

관련정보

File Name Selection, Int32 Input, List Box, Message Box, Real64 Input, Text Input 및 UserObject.

기본 제공되는 Dialog Box 오브젝트에 대하여

데이터 입력 대화상자 사용하기


Direct I/O 오브젝트

명령어를 트랜잭션 문구를 입력하여 계측기로부터 데이터를 읽어오거나 기록하는 오브젝트

사용법

Direct I/O로 계측기에 다양한 인코딩 방식과 포맷으로 계측기로 입력하거나 출력합니다.

오브젝트 메뉴

Show Config - 계측기 설정이 표시됩니다.

Upload State - 계측기의 현 상태를 런스트링으로 업로드하며, 이 상태를 Direct I/O 오브젝트의 인스턴스와 연관시킵니다. 이 기능은 GPIB 및 메시지 기반 VXI 계측기에서 사용할 수 있습니다.

Edit Trans – 현재 하이라이트된 트랜잭션을 수정합니다.

Add Trans - 트랜잭션 목록에 트랜잭션을 추가합니다.

Insert Trans - 현재 선택된 트랜잭션 필드 위에 트랜잭션 필드를 추가합니다.

Cut Trans - 현재 선택된 트랜잭션 필드를 지웁니다. 여기서 삭제된 트랜잭션은 “cut-and-paste” 버퍼에 저장됩니다.

Copy Trans - 현재 표시된 트랜잭션 필드를 트랜잭션 “cut-and-paste” 버퍼에 복사합니다.

Paste Trans - 이전에 “cut” 또는 “paste” 된 트랜잭션을 붙여 넣습니다.

Delete Trans – 리스트에서 하이라이트된 트랜잭션을 삭제합니다.

Move Trans Up – 하이라이트된 트랜잭션을 위로 이동합니다.

Move Trans Down - 하이라이트된 트랜잭션을 아래로 이동합니다.

Print Trans - 현재 표시된 트랜잭션 필드를 설명한 세부적인 대화 상자가 프린트됩니다.

오픈뷰 항목

Direct I/O 명령어:

READ - 지정된 부호와 문자를 사용하여 계측기로부터 데이터를 읽어옵니다.

WRITE - 지정된 부호와 문자를 사용하여 계측기로부터 데이터를 씁니다.

EXECUTE - GPIB 계측기의 경우, Selected Device Clear, Go To Local, Go To Remote 또는 Group Execute Trigger 명령어를 계측기로 전송합니다. Serial 계측기의 경우에는 Break 또는 Reset 명령어를 계측기로 전송합니다. 이 트랜잭션을 GPIO 계측기에서 사용할 때는 Reset 명령어를 계측기로 보냅니다. VXI 메시지 기반 계측기에서 이 트랜잭션을 사용하면 Selected Device Clear, Go To Local, Go To Remote 또는 Trigger 명령어를 계측기로 전송합니다.

WAIT - 다음 트랜잭션의 실행 전에 일정 시간을 멈춥니다. GPIB계측기 혹은 VXI 메시지 기반 계측기는, serial poll값을 마스크 값과 각 비트별로 AND 연산을 실행한 결과가 0 (모든 비트가 zero. ALL CLEAR) 또는 하나의 비트라도 0 이 아닐때(ANY SET)까지 기다립니다.

GPIO 계측기의 경우, READ 명령어는 IOSTATUS를 허용하고 WRITE 명령어는 IOCTL을 허용합니다.

VXI 계측기의 경우, READ 명령어와 WRITE 명령어는 REGISTER: 와 MEMORY: 를 허용합니다. WAIT 명령어는 메모리 또는 레지스터 옵셋의 값을 마스크의 값과 AND 한 결과가 ANYSET, ALL CLEAR, 또는 EQUAL 조건을 만족할 때 까지 기다립니다.

Direct I/O 인코딩:

TEXT - 사람이 읽을 수 있는 형태로 모든 데이터 종류를 씁니다. VEE 숫자 데이터는 쓸 때마다 자동적으로 텍스트로 변환됩니다.

BINARY - 모든 데이터 종류를 컴퓨터 CPU 종류에 따른 바이너리 형태로 씁니다.

BINBLOCK - IEEE 488.2에서 정의한 지정된 크기의 블록헤더를 가진 바이너리 파일로 모든 VEE 데이터 타입을 씁니다.

line-feed를 계측기에서 출력하는 데이터의 맨 마지막 문자로 사용하는 계측기와 통신시 BINBLOCK을 사용하면, End byte (LF)를 선택하여 VEE가 line-feed를 인식할 수 있도록 해야합니다. 계측기가 종료문자로 line-feed를 사용하지 않는 경우에는 No END byte를 선택해야 합니다.

CONTAINER - 각종 플랫폼에 관계없이 텍스트 형태로 모든 데이터 종류를 씁니다.

단축키

입력과 출력 터미날 화면 영역 위에 커서를 올려놓고 CTRL+A을 누르면 데이터 터미날이 추가됩니다. CTRL+A를 누를 때마다 데이터 터미날이 추가됩니다.

입력과 출력 터미날 화면 영역 위에 커서를 올려놓고 CTRL+D을 누르면 데이터 터미날이 제거됩니다. CTRL+D를 누를 때마다 데이터 터미날이 제거됩니다.

트랜잭션을 빠르게 삽입하기 위해서는, 트랜잭션에 커서를 위치시킵니다. 커서가 위치한 트랜잭션 다음에 트랜잭션을 삽입하기 위하여 Insert 키를 누릅니다.

트랜잭션을 빠르게 삭제(“kill”)하기 위해서는, 트랜잭션에 커서를 위치시키고 Delete 키를 누릅니다.

트랜잭션을 "kill" 버퍼에서 붙여넣기 위해서는 CTRL+V를 누릅니다.

트랜잭션 이전이나 다음으로 빠르게 이동하기 위해서는, 위 화살표 또는 아래 화살표를 누릅니다.

트랜잭션을 추가하려면 트랜잭션 필드에 커서를 올려놓고 CTRL+O를 누르면 현재 하이라이트된 트랜잭션 위에 트랜잭션이 즉시 추가됩니다.

트랜잭션을 지우려면 트랜잭션 필드에 커서를 올려놓고 CTRL+K를 누르면 됩니다.

"kill" 버퍼에 있는 트랜잭션을 추가할 때는 CTRL+Y를 누릅니다.

CTRL+N 을 누르면 트랜잭션을 아래로 이동시키고, CTRL+P를 누르면 빠르게 트랜잭션을 아래로 이동시킵니다.

계측기의 주소 및 타임 아웃 시간을 변경할 수 컨트롤 핀을 사용할 수 있습니다. 이들 트랜잭션에서 타임아웃은 초(Second) 단위입니다.

오브젝트 위치

I/O [image] Instrument Manager

관련정보

Advanced I/O 메뉴항목, 컴포넌트 드라이버, Formula, Instrument Manager 대화상자, 패널 드라이버 및 To/From VXIplug&play.

I/O 성능 향상시키기

Direct I/O를 이용한 데이터 읽기

Direct I/O 오브젝트 사용하기

To Edit a Transaction


Directory Exists 오브젝트

주어진 디렉토리가 있는지를 체크합니다.

오브젝트 위치

System [image] Directory [image] Directory Exists


Do 오브젝트

실행순서나 쓰레드를 제어하기 위해 분기하는 포인트를 생성하는 오브젝트

사용법

Do는 분기하는포인트를 생성하는데 사용합니다; 시퀀스 출력핀으로 연결된 오브젝트가 활성화 되기 전에 데이터 출력핀으로 연결된 오브젝트가 활성화 됩니다. 이것은 오브젝트의 실행순서를 지정합니다.

오브젝트 위치

Flow [image] Do

관련정보

Break, Start, 속성창 (오브젝트) 및 오브젝트 메뉴


Domain Name 오브젝트

도메인 이름을 가져옵니다.

오브젝트 위치

System [image] Environment [image] Domain Name


드롭다운 리스트

Selection Control을 참조하십시오.


Edit UserFunction 메뉴항목

이 메뉴를 선택하면 VEE 프로그램내에 생성된 로컬 UserFunction을 편집할 수 있습니다. 라이브러리로 임포트된 UserFunction도 볼 수 있습니다. (그러나 변경할 수는 없습니다.)

사용법

Edit UserFunction은 UserObject의 오브젝트 메뉴에서 Make UserFunction를 실행하여 프로그램내에 생성한 UserFunction을 편집하기 위해 사용합니다. 라이브러리 파일에 여러개의 UserFunction을 저장했다면, 이들 UserFunction을 편집하기 위해서는 라이브러리 파일을 열어야 합니다.

주의사항

Edit UserFunction을 선택하면, 편집이 가능한 로컬 UserFunctions의 리스트가 대화상자에 나타납니다. UserFunctions을 선택하면, UserFunctions으로 생성했던 원래의 UserObject의 작업영역을 디스플레이 하는 윈도우 화면이 생성됩니다. UserObject를 편집했던 것과 같이 이 작업영역을 편집할 수 있습니다. 편집이 완료되면 윈도우를 닫으십시오. 파일을 저장하면 편집된 UserFunction이 같이 저장됩니다.

UserFunction을 편집하는 동안에, 타이틀바에 있는 패널아이콘과 디테일아이콘을 사용하여 패널뷰와 디테일뷰로 전환할 수 있습니다.

라이브러리로 임포트된 UserFunction은 내용을 변경할 수 없습니다. 반면에 디버깅을 위해서 브레이크포인트를 설정하거나 오브젝트를 열고/아이콘화 하고/이동할 수는 있습니다. 이렇게 변경한 내용은 라이브러리 파일에 저장할 수는 없습니다.

단축키

Program Explorer에서 UserFunction 이름을 더블클릭하여 편집할 수 있습니다.

오브젝트 위치

Edit [image] Edit UserFunction

호출된 함수의 오브젝트 메뉴 [image] Edit UserFunction

관련정보

Call, UserFunction 생성, Delete Library, Import Library, UserFunction 및 UserObject.

UserFunction 편집하기


Ends With 오브젝트

주어진 스트링이 입력된 Value로 끝나면, 부울 참값을 출력합니다.

오브젝트 위치

System [image] String [image] Ends With


Error Output 메뉴항목 (오브젝트 메뉴)

오브젝트에 Error 출력터미날을 추가합니다.

사용법

Error Output은 VEE 실행중에 발생되는 에러를 검출합니다. 만약 오브젝트에 Error 핀이 있는 상태에서 오브젝트에 에러가 발생하면 에러박스는 나타나지 않습니다. 대신에 에러 번호를 Error핀을 통해 출력합니다.

에러가 검출된 경우에는, Error 출력핀과 시퀀스 출력핀이 활성화 되고 데이터 출력핀으로 데이터가 출력되지 않습니다.

Error 출력핀은 생성된 에러 번호의 값을 스칼라 Int32 타입으로 출력합니다.

주의사항

Error Output은 거의 모든 오브젝트에서 사용할 수 있습니다. Bus I/O Monitor 혹은 Note Pad 같은 몇몇 오브젝트는 결코 에러가 발생하지 않습니다. 따라서 이들은 Error 출력핀을 추가할 수 없습니다.

Error 출력터미날은 VEE 에러의 에러 번호를 출력합니다. Error 출력터미날은 번호의 의미나 복구정보를 제공하지는 않습니다. 에러 정보는 메뉴바의 Help [image] Contents and Index 아래에 있는 Reference 폴더의 Error Code에서 제공합니다.

errorInfo()는 Error 출력핀을 사용하여 검출한 최근의 에러를 파악하기 위한 에러정보를 표시하기 위하여 사용합니다. 에러가 검출되면, 에러 박스에 표시하고자 하는 모든 정보를 포함하는 레코드를 출력합니다.

UserObject내에 사용하는 Raise Error 오브젝트는 UserObjetd의 Error핀에 의해서 검출될 수 있는 에러를 처리합니다.

UserObject에 있는 에러핀은 UserObject에 있는 오브젝트들의 모든 에러를 검출합니다.

오브젝트 위치

오브젝트의 오브젝트 메뉴 [image] Add Terminal [image] Error Output

관련정보

Add Terminal 메뉴항목, Delete Terminal 메뉴항목, errorInfo, 오브젝트 메뉴, Raise Error 및 UserObject.

에러 검출하기


Execute Program 오브젝트

MS-DOS 또는 윈도우 프로세스를 시작하는 오브젝트

사용법

Execute Program은 운영체제의 명령어, 배치파일, 실행 가능한 프로그램을 포함하는 MS-DOS 또는 윈도우 프로세스를 시작하는데 사용합니다. PC Execute 오브젝트는 실행이 끝난 프로그램으로부터 되돌아 오거나 빠져 나옵니다. Wait for prog exit 가 No로 설정되면, 출력 터미날은 어떤 결과값도 전달하지 않습니다.

오픈뷰 항목

Run Style - 실행하고자 하는 프로그램인 윈도우에서 실행중이라면, Run Style은 윈도우 스타일을 지정하게 됩니다:

normal은 표준 윈도우 화면에서 프로그램을 실행합니다.

Minimized는 아이콘으로 축소된 화면에서 프로그램을 실행합니다.

Maximized는 최대 사이즈로 확대된 화면에서 프로그램을 실행합니다.

Wait for prog exit - Wait for prog exit 항목이 Yes로 설정되면, VEE는 외부의 프로세스를 실행하고 Execute Program 오브젝트의 시퀀스 출력핀이 활성화되기 전까지는 외부 프로세스가 종료될 때까지 대기합니다.

Wait for prog exit 항목이 No로 설정되면, VEE는 외부의 프로세스를 실행합니다. 그러나 외부의 프로세스가 종료될 때까지 대기하지 않고, Execute Program의 시퀀스 출력핀을 활성화 합니다.

Prog with params - 실행하고자 하는 프로그램입니다. 이 필드에 입력할 수 있는 몇가지 예제입니다:

C:\MYDIR\MYFILE.BAT

"\Program Files\Windows Media Player\mplayer2.exe" "\WINNT\Media\Mozart's Symphony No. 40.rmi"

www.favorite_site.org/index.htm

경로이름은 스페이스를 포함하며, 마지막 2번째 예제와 같이 반드시 인용부호로 닫혀있어야 합니다.

마지막 예제에 있는, 확장자 ".htm"은 인터넷 브라우저를 시작하고 지정한 URL을 로딩합니다. 만약 브라우저가 이미 실행중 이라면, 지정한 URL을 로딩합니다.

Working directory - 실행 하고자 하는 프로그램이 있는 디렉토리를 지정합니다. c:\progs\cprog1디렉토리에 만들어진 nmake라는 프로그램을 이 파라미터를 이용하여 실행하고자 한다면:

In Prog with params:, nmake라고 입력.

In Working directory:, c:\progs\cprog1라고 입력.

주의사항

Execute Program은 트랜잭션을 사용하지 않습니다. 트랜잭션을 사용하여 외부의 프로세스와 통신할 수는 없습니다.

PATH 변수에 적절한 경로를 포함시키면, Prog with params 필드에 경로를 입력할 필요는 없습니다. Windows 98에서는 AUTOEXEC.BAT에 PATH 변수를, Windows NT에서는 User Environment Variables (Main / Control Panel / System)을 설정하십시오.

.EXE 파일을 실행하기 위해서는, Prog with params 필드에 확장자를 입력할 필요는 없습니다. 반면에, .COM과 .BAT 파일을 위해서는 확장자를 입력해야 합니다.

Prog with params에서 파일을 지정하는 행위는 프로그램을 시작하기 위한 새로운 인스턴스를 생성하지는 않습니다. Execution 오브젝트는 Wait for prog exit가 Yes로 설정되어 있더라도 프로그램을 빠져 나오기 위해 대기 하지는 않습니다. 이 경우 exit code 터미날은 exit code를 전달하지는 않습니다. 이에 대한 하나의 예는, 인터넷 브라우저가 이미 실행중일 때 URL을 "실행"하는 것입니다. 브라우저 실행중에 지정된 URL이 열리면, VEE는 브라우저가 닫힐 때까지 대기하지는 않습니다. 일반적인 다른 예는, 워드 프로세서나 스프레드 시트 프로그램의 인스턴스로 파일을 전달하는 것입니다. 이러한 경우에 외부 어플리케이션(브라우저, 스프레드 시트등) 개발자들이 새로운 인스턴스가 시작되든지, 기존의 인스턴스를 사용하든지를 결정하도록 되어 있습니다.

Execute 오브젝트는 ShellExecuteEx() Win32 API를 사용합니다.

오브젝트 위치

I/O [image] Execute Program

관련정보

To/From DDE 또는 속성창 (오브젝트)


Execution Window 오브젝트

View 메뉴에 있는 선택항목.

사용법

Main UserObject가 패널을 가지고 있고 메인 윈도우의 속성창에 있는ShowPanelOnExecute 항목이 True로 설정되어 있다면, VEE 프로그램을 실행할 때 실행 윈도우내에 패널이 나타납니다. 이것은 메인 오브젝트 윈도우뿐만이 아니라 실행 윈도우까지도 볼 수 있도록 합니다. 또한, 실행 윈도우는 VEE Pro Runtime내에서 실행되는 프로그램에서도 볼 수 있습니다.

실행윈도우는 이동, 사이즈 조정, 최대화가 가능하고, 윈도우 스택의 바닥으로 이동하거나 축소할 수도 있습니다. 그러나 닫을 수는 없습니다.

실행윈도우의 타이틀바에 나타나는 이름은 메인 윈도우에 있는 오브젝트메뉴에서 설정할 수 있습니다. 메인 오브젝트 메뉴에서 Properties를 선택하고, PopUpPanelTitle 항목을 변경합니다.

오브젝트 위치

View [image] Execution Window

관련정보

Add To Panel 메뉴항목, Main 메뉴항목 및 런타임 버전 생성.

VEE Pro RunTime 제품에 대하여.


Exit 메뉴항목

VEE에서 빠져 나옵니다(끝냅니다).

사용법

Exit은 VEE의 작업 세션을 끝내기 위해 사용합니다.

주의사항

프로그램을 저장하지 않은 상태에서 프로그램을 변경하고 Exit을 선택하면, 프로그램의 저장여부를 묻는 대화상자가 표시됩니다.

프로그램이 실행중 일때는 Exit을 사용할 수 없습니다. 실행중인 프로그램에서 빠져 나오기 위해서 Stop 오브젝트를 사용하십시오.

단축키

프로그램에서 빠져 나오기 위해서 CTRL+E를 누릅니다. VEE 윈도우 화면의 왼쪽 상단에 있는 윈도우 컨트롤 버튼에서, 버튼을 더블클릭하거나 버튼을 클릭하여 나타나는 메뉴에서 닫기 버튼을 선택합니다.

오브젝트 위치

File [image] Exit

관련정보

Raise Error, Exit Thread, Exit UserObject, New 메뉴항목, Open 메뉴항목 및 Stop 메뉴항목.


Exit Thread 오브젝트

쓰레드의 실행을 중지하는 오브젝트

사용법

Exit Thread는 독립적인 쓰레드의 실행을 끝냅니다. Exit Thread는 오브젝트가 있는 쓰레드의 실행만을 중지합니다.

오브젝트 위치

Flow [image] Exit Thread

관련정보

Break, Raise Error, Exit UserObject, Start 메뉴항목, Stop 메뉴항목, 속성창 (오브젝트) 및 오브젝트 메뉴

VEE 프로그램 중지하기


Exit UserObject 오브젝트

UserObject의 실행을 중지하는 오브젝트

사용법

Exit UserObject는 독립적인 UserObject에 있는 모든 쓰레드의 실행을 중지하고, 프로그램에서 UserObject 다음에 있는 오브젝트의 실행을 시작합니다. Exit UserObject 를 만나기 전까지는 UserObject 출력터미날로 보내진 데이터는, 이들 출력의 활성화에 의해 다음 오브젝트로 전송됩니다.

Exit UserObject는 UserObject로부터 빨리 빠져 나오기 위해 사용합니다.

오브젝트 위치

Flow [image] Exit UserObject

관련정보

UserObject 생성, Raise Error, Exit Thread, Start 메뉴항목, Stop 메뉴항목, UserObject 및 속성창 (오브젝트)

UserObject에서 빠져 나오기


File Exists? 오브젝트

주어지는 경로에 파일이 있는지를 확인합니다.

오브젝트 위치

System [image] File [image] File Exists?


File Name Selection 오브젝트

파일의 목록을 표시하는 팝업 대화상자를 디스플레이하는 오브젝트

사용법

File Name Selection은 컴퓨터에 있는 파일의 목록을 표시하는데 사용합니다. 사용자는 대화상자에 표시된 파일중 하나를 선택합니다. File Name Selection은 To File 및 From File 오브젝트에서 사용할 파일 이름을 대화식으로 선택할 때 유용합니다.

팝업 대화상자에서 파일이름을 선택하고 OK 버튼을 누르면, 선택내용이 File Name 출력핀으로 출력됩니다. Cancel 버튼을 누르면, Cancel 출력핀으로 1이 출력됩니다.

오픈뷰 항목

Prompt/Label - 사용자가 파일이름을 선택할 수 있게 하는 대화상자를 나타내는 스트링입니다. 데이터 입력핀으로 이 파라미터를 추가할 수도 있습니다. 디폴트 값은 Enter File Name: 입니다.

Initial Directory - File Name Selection 대화상자에서 초기에 보여주는 디렉토리입니다. 데이터 입력핀으로 이 파라미터를 추가할 수도 있습니다. 디폴트 값은 VEE가 설치된 디렉토리입니다..

Initial File/Wildcard - 디폴트로 파일이름을 설정하거나, 와일드카드 문자를 사용하여 파일이름의 설정을 필터링할 수도 있습니다. 데이터 입력핀으로 이 파라미터를 추가할 수도 있습니다. 디폴트 값은 *.*입니다.

Select File For: Reading | Writing - Reading | Writing – Reading을 선택할 때, 사용자는 팝업 대화상자에서 존재하는 파일 이름을 선택하여야 합니다. 사용자가 존재하지 않는 파일 이름을 팝업 대화상자에 입력하고 OK 버튼을 누르면, 존재하는 파일 이름을 입력하라는 대화상자가 나타납니다.

Writing을 선택할 때, 사용자는 팝업 대화상자에 새로운 파일 이름을 입력하거나 존재하는 파일 이름을 선택할 수 있습니다. 존재하는 파일 이름을 선택하면 파일을 덮어쓸 것인지를 묻는 경고 대화상자가 팝업됩니다. 사용자가 ‘예’버튼을 누르면 파일 이름이 File Name 출력핀으로 출력됩니다. 사용자가 ‘아니오’를 누르면 다른 파일 이름을 선택하기 위한 File Name Selection 대화상자로 되돌아 옵니다. 데이터 입력핀으로 이 파라미터를 추가할 수 있습니다.

주의사항

File Name Selection 대화상자의 팝업 위치는 선택할 수 없습니다. 이 대화상자는 항상 VEE 윈도우의 좌측 상단 가까이에 나타납니다.

키보드 만을 사용하여 팝업 대화상자에 입력하기: 대화상자가 팝업될 때, Enter나 Esc키를 사용합니다. 또는 버튼과 선택 영역을 이동하기 위하여 Tab키를 사용합니다; 화살표를 사용하여 선택항목을 이동하고 스페이스바를 이용하여 파일이름을 선택합니다.

팝업 대화상자는 프로그램이 실행 중일 때만 디스플레이 됩니다. 대화상자가 디스플레이 되는 동안 모든 프로그램의 실행은 일시 정지 되고, 대화상자가 닫히면 실행을 계속 진행합니다.

입력터미날 "Dialog Mode"에는 Writing 또는 Reading에 해당하는 2개의 텍스트 스트링을 사용할 수 있습니다. 이 스트링은 대소문자를 구분합니다.

오브젝트 위치

Data [image] Dialog Box [image] File Name Selection

관련정보

From File, Int32 Input, List Box, Message Box, Real64 Input, Text Input, To File, UserObject 및 속성창 (오브젝트)

프로그램상으로 파일이름 선택하기


Fill Bar 오브젝트

칼라 바를 사용하여 Scalar 숫자값을 그래픽화하여 디스플레이 하는 오브젝트

사용법

Fill Bar는 칼라 바를 사용하여 아날로그 스케일로 숫자값을 디스플레이 하는데 사용하며, 옵션으로 디지털 숫자를 입력할 수 있는 필드를 가집니다.

오픈뷰

오브젝트의 오픈뷰 상태에서 현재의 값을 클릭하고 새로운 값을 입력하여 Fill Bar의 최소값 및 최대값을 설정합니다. Tic 마크와 라벨은 자동으로 계산되고 디스플레이 됩니다. 최소값은 최대값보다 작아야 합니다.

이들 값은 컨트롤 입력핀으로 추가할 수 있습니다.

속성창

Orientation - Fill Bar의 디스플레이 방법을 선택합니다. 디폴트 값은 Vertical입니다.

 ShowDigitalDisplay - 속성을 True로 설정하면, 입력값에 대한 디지털 디스플레이가 오브젝트 오픈뷰의 바닥에 표시 됩니다. 속성을 False로 설정하면, 디지털 디스플레이는 표시되지 않고 오브젝트가 좀더 빠르게 동작합니다. 디폴트 값은 True입니다.

ShowTics - 스케일의 tic 마크와 라벨의 표시를 선택합니다. 디폴트 값은 True입니다.

 Logarithmic - 속성을 True로 설정하면, 선형스케일을 로그스케일로 변경합니다. 디폴트 값은 False입니다.

 Label Spacing - tic 마크에 표시된 스케일값을 선택합니다. 디폴트 값은 Every Other Tic입니다.

HighColor - 상위영역(High Limit보다 큰 범위)에 사용할 색상을 선택합니다.

High Limit - 상위영역의 최저값을 입력합니다. 이 값은 Low Limit보다 크거나 같아야 합니다. 이 값은 컨트롤 입력으로 추가할 수 있으며, 이 경우에는 입력필드가 비활성화 됩니다.

 MidColor - 중간영역(High Limit보다는 같거나 작고, Low Limit 보다는 큰 범위)에 사용할 색상을 선택합니다.

 Low Limit - 하위영역의 최고값을 입력합니다. 이 값은 High Limit보다 작거나 같아야 합니다. 이 값은 컨트롤 입력으로 추가할 수 있으며, 이 경우에는 입력필드가 비활성화 됩니다.

 LowColor - 하위영역(Low Limit보다 같거나 작은 범위)에 사용할 색상을 선택합니다.

NumberFormat -Global Format이 체크 안된 상태에서는, 오브젝트 상에 디스플레이될 숫자의 형식을 지정할 수 있습니다. 선택 항목은 Fixed (예, 98.6000), Scientific (예, 9.8600E+01), Engineering (예, 98.6000E0), Standard (예, 98.6), 또는 Time Stamp (예, Wed 01/Jan/2003 17:01:38)입니다. 디폴트 값은 Standard입니다.

주의사항

입력값은 Scalar여야 하고, Real64로 변환될 수 있어야 합니다. (Complex, PComplex, Spectrum 및 Coord 는 먼저 스칼라로 변경되어야 합니다.)

Low Limit는 High Limit보다 작아야 합니다.

2개의 색상을 사용하기 위해서는, Low Limit를 High Limit와 동일하게 설정하십시오.

단 1개의 색상을 사용하기 위해서는, Low Color, Mid Color 및 High Color를 동일한 색상으로 설정하십시오.

단축키

Fill Bar의 방향을 변경하기 위해서는, 단지 원하는 모양으로 오브젝트를 재조정 하십시오. 방향이 자동으로 변경됩니다.

오브젝트 위치

Display [image] Indicator [image] Fill Bar

관련정보

AlphaNumeric, Color Alarm, Logging AlphaNumeric, Meter, Tank 또는 Thermometer.

데이터를 아날로그 디스플레이로 나타내기


Find 메뉴항목

VEE 프로그램에서 텍스트 스트링이나 어떤 오브젝트를 찾기 위한 대화상자를 제공하는 메뉴 항목.

사용법

Find는 VEE 프로그램에서 텍스트 스트링을 쉽게 찾을 수 있는 방법을 제공합니다. 프로그램 오브젝트에 있는 특정한 텍스트의 위치를 쉽게 찾을 수 있게 하고, 오브젝트 타이틀바의 색상 또는 배경색과 같은 오브젝트의 속성도 찾을 수 있습니다.

반면에, Find는 다음 항목들은 찾을 수 없습니다:

패널 또는 패널에 있는 오브젝트

라인 또는 라인 값

터미날 값.

대화상자 설명

Find 대화상자는 검색이 가능한 텍스트 스트링을 입력하기 위한 텍스트 필드를 제공하고, 검색 조건을 설정하기 위한 몇 가지 옵션을 제공합니다. 대화상자의 형식은 다음과 같습니다.

Find What: - 이 입력 필드에 찾고자 하는 텍스트 스트링을 입력합니다. 이 필드가 비어 있으면, 검색은 모든 텍스트를 출력합니다.

Search in: - 텍스트 검색의 범위를 VEE 프로그램의 특정 영역으로 제한합니다. 디폴트 값은 Entire Program입니다.

Find - Find 버튼은 사용자가 대화상자의 General 및 Advanced 탭에서 지정한 검색 조건을 적용하여 텍스트 검색을 시작합니다.

Stop - Stop 버튼은 검색 프로세스를 중지시킵니다. 검색 프로세스가 중지되기 전에 찾았던 검색결과는 유지됩니다.

Help - Help 버튼은 Find 대화상자에 대한 온라인 도움말을 제공합니다.

Status Bar는 Find 대화상자 바닥에 위치합니다. Status Bar는 검색 프로세스의 상태를 표시합니다. Status Bar에 있는 정보는 새로운 검색결과로 업데이트 됩니다.

속성창

General 탭

General 옵션 탭은 일반적인 텍스트 검색을 제한하는 검색조건의 설정을 제공합니다. 옵션은 다음과 같습니다:

Match Case - 체크된 경우에는, 사용자가 입력한 검색어가 정확히 매칭되어야 합니다. 디폴트 값은 off입니다.

Find all matches on each object - 디폴트 값은 off입니다.

Search nested UserObjects - 디폴트 값은 on입니다.

Show occurrences that - 다음과 같은 세부 검색조건을 제공합니다.

Contain search text - 디폴트 값은 on입니다.

Exactly match search text - 디폴트 값은 off입니다.

Begin with search text - 디폴트 값은 off입니다.

End with search text - 디폴트 값은 off입니다.

Advanced 탭:

Advanced 탭을 클릭하면 Find 대화상자에 새로운 설정화면이 나타납니다. Advanced 탭에 있는 옵션들은 오브젝트 타입이나 오브젝트 특성에 근거한 검색조건을 제공합니다. Advanced 탭에 있는 Property 와 Value 버튼은 검색기준을 지정하기 위하여 조합하여 사용합니다. Property 버튼이 지정되면, 이와 관련된 Value 버튼도 지정되어야 합니다.

Property and Value - Property 칼럼에는 3개의 버튼이 있으며, Value 칼럼에도 3개의 버튼이 있습니다. Property 칼럼에 있는 버튼중의 하나를 클릭하면, 특정한 검색속성의 이름을 제공하는 Property Name 대화상자가 나타납니다. 각각의 Property Name을 선택하고 나면, Value 칼럼 아래에 있는 버튼을 클릭하여 값을 선택해야 합니다. Property 와 Value는 다음과 같이 쌍으로 조합됩니다:

Object Type (디폴트) – 이 Property Name을 선택하면, Value 버튼은 디폴트로 All Types이 선택됩니다. Value을 클릭하면 Select Object Type(s)대화상자가 나타납니다. 각 오브젝트 타입에 대한 설명은 Help 메뉴에서 해당 오브젝트 항목을 참조하십시오.

Select Object Type(s)대화상자에는, 디폴트로 사용 가능한 모든 오브젝트의 타입이 미리 선택되어 있습니다. 하나 혹은 몇 개의 오브젝트 타입을 선택하기 위해서는 대화상자에 있는 Clear All 버튼을 클릭하고, 마우스 왼쪽 버튼을 사용하여 원하는 오브젝트 타입을 선택합니다. 모두 혹은 일부 선택된 오브젝트는 Clear All 버튼을 클릭하여 선택을 해제 합니다. Property 버튼은 Object Type외에 다른 Property Name을 할당할 수 있습니다. 몇몇 property name 샘플과 관련 Value는 아래와 같습니다:

- Description - 사용자가 Value 필드에 입력한 사용자지정 Description입니다.
- Device name - 사용자가 Value 필드에 입력한 사용자지정 Device name입니다.
- Popup Panel Title Background Color - VEE 칼라 맵에서 제공하는 색상. 디폴트 색상은 사용자가 Default Preferences 대화상자에서 지정한 색상입니다. Value 필드를 클릭하면, Select Color for Object Title 대화상자가 나타납니다. 사용자는 마우스 왼쪽 버튼을 클릭하여 대화상자에서 제공하는 칼라 파레트에서 색상을 선택할 수 있습니다. Advanced 탭에 있는 Property 과 Value 버튼의 나머지 쌍들은 선택된 옵션들이 초기화됩니다.

Reset - Reset 버튼은 디폴트로 Property 버튼은 Object Type으로, Value 버튼은 All Types으로 변경합니다.

단축키

Ctrl+F을 누르면 Find 대화상자가 열립니다.

검색영역을 자동으로 설정하기 위해서는, Program Explorer에서 UserFunction 또는 UserObject같은 특정 컨텍스트에서 마우스 우측버튼을 클릭하여 Find를 열어서 사용합니다.

오브젝트 위치

Edit [image] Find...

관련정보

Default Preferences 대화상자 또는 Find Results 메뉴항목.

속성 검색을 이용하여 오브젝트 찾기

텍스트 검색을 이용하여 오브젝트 찾기


Find Results 메뉴항목

최근의 Find를 이용한 검색 결과를 보여주는 대화상자를 디스플레이 합니다.

사용법

Find Results는 Find를 이용한 텍스트 검색의 마지막 실행 결과를 보여주는 대화상자를 디스플레이 하기 위하여 사용합니다. Find를 이용한 텍스트 검색이 실행되지 않았을 때는 Find Results 메뉴 항목이 회색으로 나타납니다.(선택할 수 없음)

Find Results 대화상자는 Find 대화상자에서 Find 버튼을 클릭했을 때도 디스플레이 됩니다.

대화상자 설명

Find Results 대화상자의 타이틀 바는 Find를 이용한 검색 결과를 요약하여 제공합니다. 이것은 VEE 오브젝트의 전체 숫자뿐만이 아니라 매칭된 숫자도 포함합니다. 타이틀 바 아래에 있는 몇개의 컨트롤 버튼은 사용했던 검색어 텍스트 및 검색 영역(Entire Program 등)을 표시합니다.

Control buttons - 컨트롤 버튼은 Find Results를 보기 위한 단축기능을 제공합니다. 컨트롤 버튼은 다음과 같습니다:

Keep Visible - 매칭된 결과를 본 후에 대화상자를 계속 보이도록 할 것인지를 선택하는 토글 기능의 버튼

Display previous item - Find Results 리스트에 있는 이전의 매칭을 디스플레이 합니다.

Display next item - Find Results 리스트에 있는 다음의 매칭을 디스플레이 합니다.

Find - Find 대화상자를 다시 디스플레이 합니다.

Find: - 이 윈도우는 검색을 위해 지정했던 텍스트를 인용부호(“”)를 포함하여 디스플레이 합니다.

Scope: - 이 윈도우는 검색 영역을 디스플레이 합니다. 디폴트 값은 entire program입니다.

Object Location - 검색된 UserFunction 또는 UserObject의 경로. 네스팅된 VEE UserObjects의 경우에는, 이것은 네스팅된 각 오브젝트들의 경로입니다.

Object Title - 검색하는 텍스트를 가지는 오브젝트의 이름. 이 이름은 Object Properties를 통해서 설정됩니다.

Object Type - 검색하는 텍스트를 가지는 VEE 오브젝트의 타입(Formula object, Constant object등으로 표시)

Text Found - 검색어가 찾아진 오브젝트내에 있는 텍스트. 이 텍스트는 오브젝트 타이틀 바나 오브젝트 내부 어딘가에 있을 수 있습니다.

단축키

Find Results 대화상자를 열기 위하여 Ctrl+R을 누릅니다.

대화상자에 있는 컬럼의 정렬순서를 컬럼 헤더를 클릭하여 변경할 수 있습니다.

오브젝트 위치

Edit [image] Find Results

관련정보

Find 메뉴항목

Find 실행의 결과 보기


For Count 오브젝트

지정하는 횟수만큼 데이터 출력핀을 활성화하는 오브젝트.

사용법

For Count는 지정하는 횟수를 반복하는 서브쓰레드를 실행하기 위해 사용합니다. For Count의 출력은 서브쓰레드에 있는 계속 수행하는 오브젝트를 위한 값으로 사용됩니다.

오픈뷰 항목

입력 필드에 반복하고자 하는 숫자를 직접 입력하거나, 입력터미날을 통해서 입력합니다.

주의사항

For Count의 출력값은 0부터 n-1까지의 Real64 스칼라입니다. 여기서 n은 반복 횟수입니다. 매핑이 안된 어레이의 인덱스는 0부터 시작합니다. 따라서 For Count는 필요시 오브젝트의 전체 차원에 걸쳐 이상적으로 변환됩니다. For Count 값은 차원의 크기가 됩니다.

지정한 For Count값이 0 또는 음수인 경우에는, 데이터 출력핀은 활성화 되지 않으나 시퀀스 출력핀은 활성화 됩니다.

For Count에 의해 호스팅되는 서브쓰레드의 실행은 다음 항목 중에 하나가 발생하기 전까지는 For Count는 출력을 계속합니다:

모든 오브젝트가 실행을 완료 한 경우. 서브쓰레드는 비활성화됩니다. 반복횟수는 누적되고, 반복된 횟수는 지정한 횟수보다 적은 경우에 For Count가 새로운 반복값을 출력하도록 설정되면 서브쓰레드는 다시 활성화 됩니다.

Break 오브젝트가 동작한 경우. 서브쓰레드는 비활성화되고 시퀀스 출력핀은 활성화됩니다. For Count 출력핀에 남아있는 값은 Break를 만났을 때 표시된 값과 동일합니다.

Next 오브젝트가 동작한 경우. 서브쓰레드는 비활성화되고 반복횟수는 누적됩니다. 반복된 횟수가 지정한 Count 횟수보다 적은 경우에는 Count가 새로운 반복값을 출력하도록 설정되면 서브쓰레드는 다시 활성화 되고, 서브쓰레드의 실행이 다시 동작합니다. 반복된 횟수가 Count 횟수에 도달하면, 시퀀스 출력핀이 활성화 됩니다.

For Count 오브젝트에 의해 호스팅되는 서브쓰레드가 반복을 완료하면, 이전의 반복주기에 전송된 모든 데이터 컨테이너는 다음 반복주기가 시작되기 전에 무효화 시킵니다. 이것은 이전에 반복된 "기존" 데이터를 현재의 반복주기에서 다시 사용하는 것을 방지합니다. 반면에, 실행 플로우가 반복적인 서브쓰레드내에 있다면, 일부 오브젝트는 반복할 때 실행을 하지 않을 수도 있습니다. 이들 오브젝트에 의해 전송된 데이터 컨테이너는 다른 오브젝트가 이들 데이터를 실행하기 전에 무효화 될 수 있습니다. 이런 경우에 데이터를 전달하기 위해서는 Sample & Hold 오브젝트를 사용하십시오.

오브젝트 위치

Flow [image] Repeat [image] For Count

관련정보

Break, For Log Range, For Range, Get Values, Next, On Cycle, Sample & Hold, Set Values, Until Break, 속성창 (오브젝트) 및 오브젝트 메뉴

VEE 프로그램의 일부분을 반복하기


For Each 오브젝트

For Each 오브젝트는 어레이나 콜렉션을 반복합니다.

사용법

VEE 어레이를 지원하기 위하여, For Each 오브젝트는 어떤 차원(1~10)의 VEE 어레이든 차원의 크기, 데이터 종류에 상관없이 모두 처리합니다. 이것은 모든 ExecModes에서 동작합니다.

COM을 지원하기 위하여, For Each 오브젝트는 열거되거나 루핑될 수 있는 어떤 COM (ActiveX) 오브젝트도 처리합니다. 이러한 COM 타입의 오브젝트는, 꼭 필요하지는 않지만, 그것이 콜렉션이라는 것을 나타내는, "Count" 속성과 "Item()" 메서드를 가집니다. COM/ActiveX는 실행모드 5 이상에서 사용할 수 있습니다.

.NET을 지원하기 위하여, For Each 오브젝트는 StringCollection과 같이 열거되거나 루핑될 수 있는 어떤 .NET 오브젝트를 처리합니다. 이 .NET 타입의 오브젝트도, 꼭 필요하지는 않지만, 그것이 콜렉션이라는 것을 나타내는, "Count" 속성과 "Item()" 메서드를 가집니다. COM/ActiveX는 실행모드 6&7과 그 이상에서 사용할 수 있습니다.

사용예

예제에서 보면, For Each 오브젝트가 단 하나의 오브젝트가 필요한 반면에, For Count 메서드는 1차원 어레이를 처리하기 위하여 3개의 오브젝트가 필요합니다. For Each 메서드가 아무런 변경 없이 10차원 이상을 처리하는 반면에, 어레이에 추가적인 차원들이 추가되는 것과 같이 For Count 메서드는 점점 더 복잡해 집니다.

For Each 오브젝트는 레코드에서는 동작하지 않습니다.

오브젝트 위치

Flow [image] Repeat [image] For Each


For Log Range 오브젝트

지정한 횟수만큼 데이터 출력핀을 활성화하는 오브젝트

사용법

For Log Range는 지정하는 횟수만큼 서브쓰레드를 실행하기 위해 사용합니다. For Log Range는 시작, 끝, 증가량을 지정하고 log 10 스케일로 균등하게 분할된 값을 출력합니다.

오픈뷰 항목

From - 반복 루프의 시작 값.

Thru - 반복 루프의 마지막 값. 반복되는 값이 Thru 값보다 같거나 크면, 반복 루프는 완료됩니다.

/Dec - 반복 주기의 간격을 입력합니다. 0번째 값은 From이고, n번째 값은 From*exp10(n/(/Dec))입니다.

From, Thru, 및 /Dec는 입력핀으로 추가할 수도 있습니다.

주의사항

For Log Range 출력값은 From에서 Thru까지의 Real64 스칼라입니다.

For Log Range에 의해 호스팅되는 서브쓰레드의 실행은 다음 항목 중에 하나가 발생하기 전까지는 For Log Range는 출력을 계속합니다:

모든 오브젝트가 실행을 완료 한 경우. 서브쓰레드는 비활성화됩니다. 반복횟수는 /Dec 값에 의해 누적되고, 반복된 횟수는 Thru 값보다 적은 경우에 For Log Range가 새로운 반복값을 출력하도록 설정되면 서브쓰레드는 다시 활성화 됩니다.

Break 오브젝트가 동작한 경우. 서브쓰레드는 비활성화되고 시퀀스 출력핀은 활성화됩니다. For Log Range 출력핀에 남아있는 값은 Break를 만났을 때 표시된 값과 동일합니다.

Next 오브젝트가 동작한 경우. 서브쓰레드는 비활성화되고 반복횟수는 /Dec 값에 의해누적 됩니다. 반복된 횟수가 Thru 값보다 적은 경우에는, Data가 새로운 반복값을 출력하도록 서브쓰레드는 다시 활성화 되고, 서브쓰레드의 실행이 다시 동작합니다. 반복된 횟수가 Thru값에 도달하거나 초과하게 되면, 시퀀스 출력핀이 활성화 됩니다. 반복횟수가 초과되면 Data 출력핀에 남아있는 값은 범위를 초과하는 값 입니다.

선택적으로 데이터 출력핀을 추가할 경우에는, 값을 제공하는 필드 이름을 출력핀의 순서와맞출 필요는 없습니다. 어떤 값이 입력되고 어떤 핀과 관련이 있는지를 알아야 합니다. (필요시 Show Terminals를 사용하십시오)

Thru값이 From값보다 적은 경우에는, /Dec는 반드시 음수가 되야 하며, 그렇지 않으면 루프는 동작하지 않습니다.

/Dec = 0이면, 루프는 무한히 반복하고 또는 서브쓰레드내에서 Break 오브젝트를 만날 때까지 반복합니다.

From이 Thru과 동일하면, 루프는 한번 실행됩니다.

For Log Range 오브젝트에 의해 호스팅되는 서브쓰레드가 반복을 완료하면, 이전의 반복주기에 전송된 모든 데이터 컨테이너는 다음 반복주기가 시작되기 전에 무효화 시킵니다. 이것은 이전에 반복된 "기존" 데이터를 현재의 반복주기에서 다시 사용하는 것을 방지합니다. 반면에, 실행 플로우가 반복적인 서브쓰레드내에 있다면, 일부 오브젝트는 반복할 때 실행을 하지 않을 수도 있습니다. 이들 오브젝트에 의해 전송된 데이터 컨테이너는 다른 오브젝트가 이들 데이터를 실행하기 전에 무효화 될 수 있습니다. 이런 경우에 데이터를 전달하기 위해서는 Sample & Hold 오브젝트를 사용하십시오.

오브젝트 위치

Flow [image] Repeat [image] For Log Range

관련정보

Break, For Count, For Range, Next, On Cycle, Sample & Hold, 속성창 (오브젝트), Until Break, 속성창 (오브젝트) 및 오브젝트 메뉴

VEE 프로그램의 일부분을 반복하기


Formula 오브젝트

사용자가 지정하는 수학적인 연산, 함수 또는 수학 공식으로 작성된 표현식등을 연산하는 오브젝트

주의
각종 수학연산과 Formula 오브젝트에서 지원하는 함수에 대해서는 Function & Object Browser 메뉴항목을 참조하십시오.

사용법

Formula 오브젝트는 VEE에서 지원하는 수학 표현식을 연산하기 위해 사용합니다. 기본적으로 제공되는 수많은 연산자와 함수들은 Function & Object Browser에서 사용할 수 있습니다. 이 브라우저는 사용자 지정 함수, 사용 가능한 ActiveX 오브젝트 및 컨트롤들을 제공합니다. 디폴트 Formula 오브젝트는 하나의 입력(A)과 샘플 공식(2*A+3)을 제공합니다. 샘플공식은 원하는 어떤 공식으로 대체할 수 있고, 입력 또는 출력도 필요한 만큼 추가할 수 있습니다. (공식에 입력이 필요하지 않다면, 모든 입력을 삭제할 수도 있습니다.)

입력은 어떤 데이터 종류도 가능합니다. 상관공식(예. A <= B)에서는, 출력되는 결과는 값 0 ("거짓") 또는 1 ("참")로 표시되는 스칼라 Int32입니다. 다른 수학공식에서는, 출력되는 결과는 입력값과 공식이 가지고 있는 데이터 종류와 일치합니다. Formula 오브젝트로 입력되는 모든 nil 입력과 공식을 포함하는 I/O 트랜잭션은 자동으로 Real64 숫자값 0.0으로 변환됩니다. Formula 오브젝트에서 출력되는 데이터 종류와 형태의 변환 규칙에 대해서는 데이터 컨테이너 이해하기를 참조하십시오.

출력은 표현식으로 연산된 값이 됩니다. Result 출력은 항상 마지막 표현식의 결과를 전송합니다. 출력 터미날은 Formula 오브젝트에 사용되는 지역변수입니다.

표현 문법과 수학 연산에 대한 자세한 내용은 Help 메뉴 아래에 있는 Tell Me About... Math Functions 및 Operations in Contents and Index를 참조하십시오.

오픈뷰 항목

Formula field (unlabeled) - 디폴트 값은 2*A+3입니다. Function & Object Browser에서 제공하는 연산자 나 함수와 일치하는 어떤 수학 공식도 입력할 수 있습니다. 공식을 입력하고 프로그램의 다른 영역을 클릭하면, 문법은 자동으로 체크되고 에러가 발생하면 에러 내용이 디스플레이 됩니다. 공식 필드는 컨트롤핀으로 추가될 수 있으며, 어레이와 텍스트스칼라를 입력할 수 있습니다.

Formula 오브젝트는 여러개의 라인으로 확장될 수 있습니다. 공식 입력필드에 있는 편집 커서는 Enter 키를 누르면 새로운 라인으로 커서가 이동합니다.

다음 예제와 같이 표현식 사이에 주석을 추가할 수 있습니다:

c=2*a+3; // a comment to the end of line
d=sin(40); // another comment
// one last comment

주의사항

지원되는 모든 다이아딕 연산자와 함수는 Function & Object Browser에서 제공합니다. UserFunctions, Remote Functions, 또는 Compiled Functions을 호출하는 것을 포함하여, 이들 연산자와 함수는 원하는 문법을 사용하여 수학 표현식을 작성하기 위하여 Formula 오브젝트에서 사용할 수 있습니다. (MATLAB Script 오브젝트에서 만 호출할 수 있는 MATLAB 함수는 예외 입니다.) VEE에서 사용할 수 있는 ActiveX Controls 또는 Automation 오브젝트는 Formula 오브젝트의 표현식으로도 사용할 수 있습니다.

기본적으로 제공되는 Formula 오브젝트를 각각 사용하여 여러개의 수학연산을 수행할 수 있으나, 여러개의 공식을 포함하는 하나의 Formula 오브젝트가 동일한 연산을 수행할 때 훨씬 더 빠릅니다. 이것은 프로그램에 있는 각 오브젝트의 그래픽 처리에 대한 오버헤드 때문이므로 오브젝트를 좀더 적게 사용하면 프로그램이 훨씬 더 빨리 실행됩니다.

하나의 라인 또는 복수의 라인에 여러개의 표현식을 입력할 수 있습니다. Formula 오브젝트에 표현식을 펼쳐 놓을 수 있으며, 이렇게 하면 훨씬 읽기가 편합니다. 세미콜론은 표현식을 분리하는데 사용합니다. 하나의 표현식을 복수의 라인에 걸쳐 나눌 수 있습니다; 단, 변수이름은 2개의 라인에 걸쳐 나누지 마십시오.

복수의 표현식을 사용하여 복수의 출력핀으로 값을 전송할 수 있습니다. Formula 오브젝트가 a, b, 및 c (Result와 마찬가지)라는 출력을 가질 경우 표현식은;

a=2*3;
b=a+2;
c=a+b

연산된 값을 가진 결과는 3개의 출력터미날로 전송됩니다. Result는 마지막 표현식의 값을 가지며, 이 경우는 C가 해당됩니다.

출력 터미날은 표현식에서 임시로 저장하여 사용할 수도 있습니다. 다음의 표현식들은 어레이에 있는 값을 바꿉니다. 여기서 입력 a는 어레이 이고, 출력 tmp는 임시 저장장소로 사용합니다:

tmp=a[2];
a[2]=a[3];
a[3]=tmp

Formula 오브젝트는 RTF(Rich Text Format ) 형식입니다. Formula 오브젝트에서의 편집기능은 RTF 형식에서 사용할 수 있는 모든 기능을 사용할 수 있습니다:

화살표의 모든 기능

Delete, End, Home, Insert, Page Up 및 Page Down 키의 사용

10개의 단축키 지원

표현식에 대한 값 구하기

토큰 찾기 순서에 대한 다음 설명은 프로그램 실행 전까지 연산이 지연되는 모든 표현식에 적용됩니다. 이것은 Formula, If/Then/Else, 또는 Set Values 및 Sequencer 또는 I/O 트랜잭션에 있는 표현식과 같은 다양한 오브젝트에서 제공하는 표현식을 포함합니다.

VEE는 UserFunctions(프로그램 내에서 생성하거나 라이브러리에서 임포트한 경우), Compiled Functions 또는 Remote Function을 호출할 수 있기 때문에, 같은 이름을 가진 2개의 함수를 사용할 수도 있습니다. 표현식에서 같은 이름을 사용하여 발생한 이름의 충돌은 아래의 순서에 의해서 해결됩니다.

1. 로컬 터미날/출력터미날

2. 호출하는 오브젝트와 같은 이름을 가진 라이브러리

3. 로컬 UserFunction

4. sin()과 같이 기본적으로 제공되는 함수

5. 임포트된 UserFunctions, Compiled Functions 또는 Remote Functions. 이 3가지에서의 우선순위는 보장할 수 없습니다. 정확한 선택을 위해서는 호출할 때 ‘dot’ 표기를 사용하여 라이브러리 이름을 사용해야 합니다. 예를 들면 myLib.func() 같이 사용합니다.

함수이름에 대한 우선순위는 충돌을 피하기 위하여 주의하지 않으면, 예상치 않은 결과나 에러의 원인 될 수 있습니다. 다음의 예제를 참조하십시오:

얼핏 보면, 공식은 30의 사인값을 입력터미날에 있는 값과 더하여 결과값으로 2.5를 전송하는 것처럼 보입니다. 터미날 이름이 기본적으로 제공되는 함수 이름(위의 그림 참조)에 우선합니다. 표현식 sin(30)은 입력터미날을 “호출”하는 것을 시도하고, 이것을 함수 또는 ActiveX 메서드로 처리합니다. sin이 sin(30)의 값을 구할 수 있는 오브젝트였다면, 결과값을 출력하는 것은 가능합니다. 이러한 상황은 프로그램 상의 실수나 함수를 잘못 이해한 것일 수 있습니다. 위의 예제에서, 실행 결과는 에러 메시지와 함께 프로그램 에러가 발생합니다. 이러한 종류의 에러는 입력핀의 이름에 국한하지 않습니다; 같은 이름을 사용하거나 적용되는 우선순위가 원하는 바와 다를 때는, 이러한 상황은 아무 때나 발생할 수 있습니다. 이러한 우선순위의 문제를 방지하기 위하여 모든 변수나 함수의 이름을 서로 다르게 사용할 것을 권장합니다.

위에 설명한 순서 찾기를 적용하기 위해서는 실행모드 를 VEE 5이상을 사용하십시오. 그 이전의 실행모드에서는 변수나 함수이름을 찾을 때 다른 순서를 사용합니다. 예를 들어 VEE 4모드에서는 sin() 같은 내부 함수가 최고의 우선순위를 가집니다. VEE 5모드(및 그 이상 모드)에서는 로컬 UserFunctions이 내부 함수보다 더 높은 우선순위를 가집니다. sin() 같은 커스터마이징된 버전의 함수를 생성할 수 있습니다. 이러한 순서 찾기의 차이는 다른 라이브러리에서 비슷한 이름을 가진 프로그램을 사용할 때는 영향을 미칠 수도 있습니다. 좀더 자세한 사항은 VEE Advanced Techniques 매뉴얼의 Chapter 1에 있는 “Using VEE Execution Modes” 를 참조하십시오.

오브젝트 위치

Device [image] Formula

관련정보

ActiveX Automation References 메뉴항목, ActiveX Control References 메뉴항목, Function & Object Browser 메뉴항목, UserFunction.

입력 터미날에 있는 데이터 종류 변환, 코드 자동완성기능 사용하기, 코드 인싸이트 기능, 실행모드 이해,

데이터 처리 (전체 시퀀스 확장하기), 데이터 컨테이너 이해하기 (전체 시퀀스 확장하기),

공식 입력하기 , 표현식에서 어레이나 어레이 앨리먼트 사용하기, 속성창 (오브젝트),

수학 연산자 및 함수 사용하기, 표현식에서 레코드 사용하기, 및 오브젝트 메뉴


For Range 오브젝트

지정한 횟수만큼 데이터 출력핀을 활성화하는 오브젝트

사용법

For Range는 시작값, 끝값, 증가량에 의해 지정된 반복횟수만큼 서브쓰레드를 실행하기 위해 사용합니다. For Range는 From부터 Thru값까지 균등하게 분할된 값을 생성하기 위해 사용합니다.

오픈뷰 항목

From - 반복 루프의 시작 값.

Thru - 반복 루프의 마지막 값. 반복되는 값이 Thru 값보다 같거나 크면, 반복 루프는 완료됩니다.

Step - 반복루프의 현재 값과 다음 값 사이의 증가량.

모든 오픈뷰 항목은 데이터 입력핀으로 추가할 수 있습니다.

주의사항

For Range 출력값은 From에서 Thru까지의 Real64 스칼라입니다.

For Range에 의해 호스팅되는 서브쓰레드의 실행은 다음 항목 중에 하나가 발생하기 전까지는 For Range는 출력을 계속합니다:

모든 오브젝트가 실행을 완료 한 경우. 서브쓰레드는 비활성화됩니다. 반복횟수는 step 값에 의해 누적되고, 반복된 횟수는 Thru 값보다 적은 경우에 For Range가 새로운 반복값을 출력하도록 설정되면 서브쓰레드는 다시 활성화 됩니다.

Break 오브젝트가 동작한 경우. 서브쓰레드는 비활성화되고 시퀀스 출력핀은 활성화됩니다. For Range 출력핀에 남아있는 값은 Break를 만났을 때 표시된 값과 동일합니다.

Next 오브젝트가 동작한 경우. 서브쓰레드는 비활성화되고 반복횟수는 step 값에 의해누적 됩니다. 반복된 횟수가 Thru 값보다 적은 경우에는, Data가 새로운 반복값을 출력하도록 서브쓰레드는 다시 활성화 되고, 서브쓰레드의 실행이 다시 동작합니다. 반복된 횟수가 Thru값에 도달하게 되면, 시퀀스 출력핀이 활성화 됩니다.

선택적으로 데이터 출력핀을 추가할 경우에는, 값을 제공하는 필드 이름을 출력핀의 순서와맞출 필요는 없습니다. 어떤 값이 입력되고 어떤 핀과 관련이 있는지를 알아야 합니다. (필요시 Show Terminals을 사용하십시오)

Thru값이 From값보다 적은 경우에는, step은 반드시 음수가 되야 하며, 그렇지 않으면 출력은 활성화 되지 않습니다.

step = 0이면, 루프는 무한히 반복하고 또는 서브쓰레드내에서 Break 오브젝트를 만날 때까지 반복합니다.

From이 Thru과 동일하면, 루프는 한번 실행됩니다.

For Range 오브젝트에 의해 호스팅되는 서브쓰레드가 반복을 완료하면, 이전의 반복주기에 전송된 모든 데이터 컨테이너는 다음 반복주기가 시작되기 전에 무효화 시킵니다. 이것은 이전에 반복된 "기존" 데이터를 현재의 반복주기에서 다시 사용하는 것을 방지합니다. 반면에, 실행 플로우가 반복적인 서브쓰레드내에 있다면, 일부 오브젝트는 반복할 때 실행을 하지 않을 수도 있습니다. 이들 오브젝트에 의해 전송된 데이터 컨테이너는 다른 오브젝트가 이들 데이터를 실행하기 전에 무효화 될 수 있습니다. 이런 경우에 데이터를 전달하기 위해서는 Sample & Hold 오브젝트를 사용하십시오.

오브젝트 위치

Flow [image] Repeat [image] For Range

관련정보

Break, For Count, For Log Range, Next, On Cycle, Sample & Hold, 속성창 (오브젝트), Until Break, 속성창 (오브젝트) 및 오브젝트 메뉴

VEE 프로그램의 일부분을 반복하기


From 메뉴 항목

메뉴 항목.

사용법

From은 I/O 동작을 위해 사용하는 다음의 오브젝트를 제공하기 사용합니다:

File

DataSet

String

오브젝트 위치

I/O [image] From

관련정보

To 메뉴항목


From DataSet 오브젝트

데이터셋에서 검색조건을 지정하여 레코드를 검색하는 오브젝트

사용법

From DataSet은 하나의 레코드이든 모든 레코드이든 논리적인 표현공식의 조건을 충족하는 레코드를 데이터셋에서 찾고 검색하기 위해 사용합니다. 검색된 레코드가 질의 표현식의 조건을 충족하면 레코드는 Rec 출력핀으로 출력됩니다.

Formula에 있는 디폴트 표현식은 1(참)입니다. 첫번째로 찾은 레코드(One) 또는 데이터셋에서 찾은 모든 레코드를 출력합니다.

레코드 필드에 검색 값을 입력하고자 하는 경우에는, 필드A를 위해서는 Rec.A를, 필드B를위해서는 Rec.B등의 형식을 사용해야 합니다. 예를 들어:

Rec.A<10

필드A가 10보다 작은지를 판단하기 위하여 모든 레코드를 검색합니다. Get records: One으로 지정하면, 데이터셋에서 10보다 작은 필드A를 가진 첫번째 레코드를 Rec 출력핀으로 출력합니다. Get records: All로 지정하면, 데이터셋에서 10보다 작은 필드A를 가진 모든 레코드를 출력합니다.

다음의 컨트롤핀들을 추가할 수 있습니다:

File Name - 이 컨트롤핀은 레코드를 검색할 파일이름을 사용자가 변경할 수 있도록 합니다.

Rewind - 이 컨트롤핀은 파일을 처음부터 다시 검색할 수 있도록 From DataSet 파일을 “되돌리기” 합니다.

Formula - 이 컨트롤핀은 계측기에 의해서 출력되는 파일에서 어떤 레코드를 검색할건지를 지정하는 공식을 사용자가 변경할 수 있도록 합니다.

Close - 이 컨트롤핀은 파일을 닫습니다.

오픈뷰 항목

From DataSet - 대화상자에서 이름 필드를 클릭하고, 데이터셋을 포함하고 있는 파일이름을 선택합니다.

Get Records - One 이나 All을 선택합니다.

One을 선택하면, 데이터셋에서 지정한 공식의 조건을 충족하는 첫번째 레코드를 출력합니다. From DataSet 오브젝트는 실행을 중지합니다. One이 선택될 때는 출력형태는 항상 스칼라입니다.

All을 선택하면, 데이터셋에서 지정한 공식의 조건을 충족하는 모든 레코드를 출력합니다. 출력 형태는 항상 어레이입니다. From DataSet 오브젝트는 파일의 끝에 도달하면 실행을 중지합니다.

Search Specifier - 데이터셋에서 레코드를 검색하기 위하여 수학 공식을 입력합니다. Get Records 의 선택에 따라 표현식을 만족하는 첫번째 One 레코드 또는 All 레코드가 출력됩니다. 디폴트 표현식은 1(참)입니다.

주의사항

조건 공식에는 어떠한 수학공식도 사용할 수 있습니다. 표현식에 사용하기 위하여, Formula오브젝트와 동일하게 입력핀을 추가할 수 있습니다. 레코드 필드에서 검색을 수행하기 위해서는 Rec.A, Rec.B등과 같이 표현하십시오. 표현식은 상당히 복잡해질 수 있습니다. 예를 들면:

Rec.A > Rec.B AND Rec.C < 2.3

조건 표현식의 참과 거짓을 결정하기 위해서는 일반적인 규정을 따라야 합니다.

상관 검색(예를 들어, 2개의 숫자가 동일한지를 검색)에서는, 하나의 숫자가 어레이이면 다른 숫자는 스칼라이든지 같은 사이즈와 형태를 가진 어레이여야 합니다. 첫번째 숫자가 2번째 숫자와 동일하면, 결과는 참이고; 다르면 거짓입니다.

2개의 숫자가 Coord 타입이라면, 독립변수와 종속변수 모두가 정확히 매칭되어야 참을 출력합니다. 독립변수가 매칭되지 않을 경우에는 에러가 발생합니다. Complex, PComplex, 및 Spectrum 숫자는 연산을 위한 2개의 항목이 매칭되어야 참을 출력합니다. Enums은 비교를 위해 Text로 변환됩니다.

어레이는 연산을 위한 2개의 어레이에 있는 각각의 값이 동일해야 참을 출력합니다.

파일에서 데이터셋(레코드의 어레이)를 가지고 들여와 편집하고 다시 파일에 저장할 수 있습니다. 이것은 From DataSet, Default Value 입력핀을 사용한 Record Constant, 및 To DataSet 오브젝트가 필요합니다. 자세한 정보는 Record Constant를 참조하십시오.

오브젝트에 EOF 출력핀을 추가할 수 있습니다. 오브젝트가 실행되고 나서, 질의 표현식의 조건을 충족하는 레코드가 없거나 데이터셋의 끝에 와 있다면 이 EOF핀은 fire됩니다. 다른 경우로는, 이러한 조건이 발생하면 End of file with no Data Found 에러가 출력됩니다.

복수의 From DataSet 오브젝트가 동일한 파일에서 데이터를 읽을 때는, 오브젝트들은 파일 포인터를 공유합니다. 모든 오브젝트가 파일을 순차적으로 읽기 때문에, 파일을 읽고 있는 오브젝트가 얼마나 많은지는 상관이 없습니다. 자세한 내용은 From File를 참조하십시오.

오브젝트 위치

I/O [image] From [image] DataSet

관련정보

Build Record, Formula, Record Constant, To DataSet, UnBuild Record, 속성창 (오브젝트) 및 오브젝트 메뉴

파일에서 데이터 읽어오기


From File 오브젝트

I/O 트랜잭션을 사용하여 파일에서 데이터를 읽어 들이는 오브젝트

사용법

From File는 다양한 인코딩 형식과 포맷을 가진 파일을 읽기 위해 사용합니다. From File은 다른 소프트웨어 패키지에 의해 생성된 데이터 파일을 임포팅하는데 매우 유용합니다.

복수의 From File 오브젝트가 동일한 파일에서 데이터를 읽을 때는, 오브젝트가 다른 쓰레드 또는 다른 컨텍스트에 있을지라도 하나의 읽기 포인터가 모든 오브젝트에 사용됩니다. 하나의 From File에 의해 읽기가 수행되는 데이터는, 파일에서 REWIND 동작이 수행되었더라도 다른 From File 오브젝트에 의해 다시 읽기가 수행되지는 않습니다. 초기실행(PreRun)후에 파일을 사용하는 첫번째 From File 오브젝트가 동작할 때, 파일은 열리고 파일 포인터가 파일의 시작점으로 초기화됩니다(REWIND). 모든 파일은 프로그램이 중지되면 닫힙니다.

From File 수행작업:

READ - 지정하는 인코딩 형식과 포맷을 사용하여 파일에서 데이터를 읽습니다.

EXECUTE - REWIND는 파일의 내용을 지우지 않고 파일의 읽기 포인터를 파일의 시작 포인트로 되돌리기 합니다. CLOSE는 열린 파일을 닫습니다. DELETE는 파일을 삭제합니다.

WAIT - 다음 트랙잭션을 실행하기 전에 지정하는 시간(초)동안 대기합니다.

From File 인코딩 형식:

TEXT - VEE 또는 다른 소프트웨어 패키지로 작성된 텍스트 ASCII 파일을 읽습니다.

BINARY - CPU 특성에 따른 바이너리 포맷으로 모든 데이터 타입을 읽습니다.

BINBLOCK - IEEE 488.2 한정 길이 헤더를 가진 바이너리 파일에서 모든 VEE 데이터 타입을 읽습니다.

CONTAINER - CPU 특성에 따른 바이너리 포맷으로 모든 데이터 타입을 읽습니다.

오픈뷰 항목

오픈뷰는 데이터의 파일이름이 있는 필드와 가능한 트랜잭션 리스트를 제공합니다. 데이터 파일 이름은 컨트롤 입력으로 추가할 수 있습니다.

오픈뷰는 실행해야 할 트랜잭션의 리스트를 보여줍니다.

오브젝트 메뉴

Edit Trans – 현재 하이라이트된 트랜잭션을 수정합니다.

Add Trans - 트랜잭션 리스트의 마지막에 트랜잭션을 추가합니다.

Insert Trans - 현재 하이라이트된 트랜잭션 앞에 트랜잭션을 추가합니다.

Cut Trans - 현재 하이라이트된 트랜잭션을 잘라내고(삭제), "cut-and-paste" 버퍼에 트랜잭션을 저장합니다.

Copy Trans - 현재 하이라이트된 트랜잭션을 "cut-and-paste" 버퍼로 복사합니다.

Paste Trans - 이전에 “잘라내고” 또는 “복사한” 트랜잭션을 붙여 넣습니다.

Delete Trans – 하이라이트된 트랜잭션을 리스트에서 삭제합니다.

Move Trans Up – 하이라이트된 트랜잭션을 위로 이동합니다.

Move Trans Down - 하이라이트된 트랜잭션을 아래로 이동합니다.

Print Trans - 현재 하이라이트된 트랜잭션을 설명하는 대화상자를 인쇄합니다.

주의사항

EOF (End of File) 출력터미날은 Add Data Output를 이용하여 추가할 수 있습니다. EOF는 트랜잭션이 End of File을 지나서 데이터를 읽을 때 nil 컨테이너를 전송하는 특별한 출력터미날 입니다. End of File 조건이 충족되어 EOF 출력이 활성화 되면, 새로 읽은 데이터를 가지고 있더라도 다른 데이터 출력은 활성화되지 않습니다.

EOF가 검출 되었는데, EOF 출력핀이 없다면 에러가 발생합니다.

파일에 있는 모든 데이터를 읽기 위해서는, READ ... ARRAY TO END: 트랜잭션을 사용합니다.

단축키

트랜잭션을 빠르게 삽입하기 위해서는, 트랜잭션에 커서를 위치시킵니다. 커서가 위치한 트랜잭션 다음에 트랜잭션을 삽입하기 위하여 Insert 키를 누릅니다.

트랜잭션을 빠르게 삭제(“kill”)하기 위해서는, 트랜잭션에 커서를 위치시키고 Delete 키를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 잘라내기 위해서는 CTRL+X를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 복사하기 위해서는 CTRL+C를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼에서 붙여넣기 위해서는 CTRL+V를 누릅니다.

트랜잭션 이전이나 다음으로 빠르게 이동하기 위해서는, 위 화살표 또는 아래 화살표를 누릅니다.

오브젝트 위치

I/O [image] From [image] File

관련정보

To File, 파일에서 데이터 읽어오기, 속성창 (오브젝트), 오브젝트 메뉴 및 트랜잭션 편집하기


From String 오브젝트

I/O 트랜잭션을 사용하여 스트링에서 데이터를 읽어 들이는 오브젝트

사용법

From String 는 다양한 인코팅 형식과 포맷을 가진 텍스트 스트링을 읽기 위해 사용합니다.

1차원 어레이 형태의 텍스트가 AString 입력핀으로 입력되었다면, From String 트랜잭션은 From File 오브젝트를 이용하여 파일에서 각 텍스트 라인을 읽었던 것과 동일한 방법으로 동작합니다. 텍스트 어레이가 각 스트링 앨리먼트 사이에서 new-line 문자를 가진 싱글 스트링 텍스트로 처리됩니다.

From String 수행작업:

READ - 지정하는 인코딩 형식과 포맷을 사용하여 데이터를 읽습니다.

WAIT - 다음 트랙잭션을 실행하기 전에 지정하는 시간(초)동안 대기합니다.

TEXT - AString으로 입력된 모든 데이터 타입을 읽습니다.

CONTAINER - VEE 텍스트 포맷에서 모든 데이터 타입을 읽습니다.

오픈뷰 항목

오픈뷰는 실행해야 할 트랜잭션의 리스트를 보여줍니다.

오브젝트 메뉴

Edit Trans - 현재 하이라이트된 트랜잭션을 수정합니다.

Add Trans - 트랜잭션 리스트의 마지막에 트랜잭션을 추가합니다.

Insert Trans - 현재 하이라이트 된 트랜잭션 앞에 트랜잭션을 추가합니다.

Cut Trans - 현재 하이라이트 된 트랜잭션을 잘라내고(삭제), "cut-and-paste" 버퍼에 트랜잭션을 저장합니다.

Copy Trans - 현재 하이라이트 된 트랜잭션을 "cut-and-paste" 버퍼로 복사합니다.

Paste Trans - 이전에 “잘라내고” 또는 “복사한” 트랜잭션을 붙여 넣습니다.

Delete Trans - 하이라이트된 트랜잭션을 리스트에서 삭제합니다.

Move Trans Up - 하이라이트된 트랜잭션을 위로 이동합니다.

Move Trans Down - 하이라이트된 트랜잭션을 아래로 이동합니다.

Print Trans - 현재 하이라이트 된 트랜잭션을 설명하는 대화상자를 인쇄합니다.

주의사항

From String은 READ TEXT 트랜잭션이 어떻게 동작했는지를 분석하는 디버깅툴로써 유용하게 사용됩니다. Text Constant 오브젝트를 From String 오브젝트의 AString 입력터미날로 연결하고, 결과를 디스플레이하기 위하여 Logging AlphaNumeric 디스플레이 오브젝트를 From String 출력터미날로 연결합니다. 이것은 또한 계측기로부터 전송된 스트링을 파싱하는데 유용합니다.

단축키

트랜잭션을 빠르게 삽입하기 위해서는, 트랜잭션에 커서를 위치시킵니다. 커서가 위치한 트랜잭션 다음에 트랜잭션을 삽입하기 위하여 Insert 키를 누릅니다.

트랜잭션을 빠르게 삭제(“kill”)하기 위해서는, 트랜잭션에 커서를 위치시키고 Delete 키를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 잘라내기 위해서는 CTRL+X를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 복사하기 위해서는 CTRL+C를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼에서 붙여넣기 위해서는 CTRL+V를 누릅니다.

트랜잭션 이전이나 다음으로 빠르게 이동하기 위해서는, 위 화살표 또는 아래 화살표를 누릅니다.

오브젝트 위치

I/O [image] From [image] String

관련정보

From, From File, To String, 속성창 (오브젝트) 및 오브젝트 메뉴

스트링을 숫자로 변환하기 및 트랜잭션 편집하기


Function & Object Browser 메뉴항목

수학 함수, 논리 함수 및 ActiveX 오브젝트를 제공하는 Device 메뉴 항목

사용법

Function & Object Browser는 함수 및 오브젝트 브라우저를 제공하기 위해 사용합니다. 브라우저에서는 다음의 항목을 선택할 수 있습니다:

Operators

Built-in Functions

MATLAB Functions

Local User Functions

Imported User Functions

Remote User Functions

Compiled Functions

ActiveX Objects

.NET/CLR Objects

VEE Objects

Instruments

주의사항

Function & Object Browser 대화상자는 4개 또는 5개의 필드를 제공합니다. 구성은 ActiveX Objects가 선택될 때 변경됩니다.

Type: - 다른 필드에 관련항목을 디스플레이 하기 위하여 이 필드에서 항목을 선택합니다. Operators 및 Built-in Functions은 VEE에서 제공합니다. Local, Imported, 및 Remote User Functions과 Compiled Functions은 사용자에 의해 생성됩니다. ActiveX Objects를 선택하면 Category 필드를 Library와 Class 필드로 분리하여 디스플레이 합니다. .NET/CLR Objects를 선택하면 Category 필드를 Assembly, Namespace 및 Type 필드로 분리하여 디스플레이 합니다.

Category: - <All>은 선택한 Type의 모든 함수 리스트를 제공합니다. 다른 Category 항목은 유사한 함수들을 작은 그룹으로 분류하여 제공합니다.

Library: -- Type에서 ActiveX Objects를 선택할 때 Class 필드와 함께 나타납니다. 메뉴 Device [image] ActiveX Automation References 또는 ActiveX Control References에서 ActiveX automation 또는 ActiveX control 라이브러리를 선택한 경우에 ActiveX 라이브러리 이름이 Library 필드에 디스플레이 됩니다. ActiveX 오브젝트로 사용할 수 있는 프로퍼티, 메서드 및 이벤트를 디스플레이하기 위하여 Library와 Class 필드에서 이름을 선택합니다.

Class: - Type에서 ActiveX Objects를 선택할 때 Library 필드와 함께 나타납니다. Class 필드에 나타나는 이름은 Library 필드에서 하이라이트된 ActiveX 라이브러리에 포함된 클래스입니다. ActiveX 오브젝트로 사용할 수 있는 프로퍼티, 메서드 및 이벤트를 디스플레이하기 위하여 클래스 이름을 선택합니다.

Assembly: - Type에서 .NET/CLR Object를 선택할 때 나타납니다. 닷넷 어플리케이션의 어셈블리는 재활용, 버전관리 및 자가 설명기능을 가진 빌딩블록입니다. Assembly는 닷넷 프레임웍의 기본적인 빌딩블록입니다. 메뉴 Device [image] .NET Assembly References에서 선택했던 어셈블리가 Assembly 필드에 디스플레이 됩니다.

Namespace: - Type에서 .NET/CLR Object를 선택할 때 나타납니다. Namespace 필드에 있는 네임스페이스를 보기 위하여, 관련이 있는 네임스페이스를 가진 최소한 하나의 어셈블리를 선택해야 합니다. 해당 네임스페이스에서 사용할 수 있는 멤버의 부분적인 리스트를 보기 위하여, Namespace 필드에서 네임스페이스를 선택합니다.

Member: - Type 필드에 있는 Operators 또는 함수 이름을 하이라이트 하면, 선택한Category에서 사용할 수 있는 연산자와 함수의 이름이 디스플레이 됩니다. 제공되는 영역보다 더 큰 리스트를 볼 수 있도록 스크롤바를 제공합니다. 리스트에 디스플레이된 연산자나 함수를 프로그램에 배치하여 사용하기 위해서는 Member 이름을 클릭하고 Create Formula/Create Call을 클릭하거나 이름을 더블클릭합니다.

Type 필드에 있는 ActiveX Objects가 하이라이트되면, Member 리스트는 하이라이트된 Library 및Class 이름과 관련이 있는 ActiveX 오브젝트로 사용할 수 있는 프로퍼티, 메서드 및 이벤트를 제공합니다. 프로그램에서 프로퍼티와 메서드를 위한 공식을 생성하기 위해서는, Member 이름을 클릭하고 Create Formula를 클릭하거나 Member 이름을 더블클릭합니다.

Type 필드에 있는 .NET/CLR가 하이라이트되면, Member 리스트는 .NET/CLR 오브젝트로 사용할 수 있는 생성자, 프로퍼티, 메서드 및 열거자를 제공합니다.

이벤트 이름에서는 어떤 것도 생성할 수 없습니다. ActiveX automation 오브젝트를 위한 이벤트 처리기를 생성하기 위해서는, Declare Variable을 사용하여 오브젝트의 변수를 선언하여 이벤트를 활성화시키고, 오브젝트 메뉴에 있는 Create Event Handler를 사용합니다. ActiveX control을 위한 이벤트 처리기를 생성하기 위해서는, 먼저 프로그램에 컨트롤을 추가하고 (Device [image] ActiveX Controls) 오브젝트 메뉴에 있는 Create Event Handler를 사용합니다.

Description Field - 대화상자의 맨 아래에 있는 커다란 필드입니다. 기본 제공되는 함수들을 위하여, VEE는 하이라이트된 함수에 대한 상세설명을 제공합니다. 로컬, 임포티드 또는 리모트 UserFunction를 위해서는, VEE는 Show Description 대화상자의 내용을 디스플레이 합니다. ActiveX 오브젝트를 위해서는 공식의 문법과 파라미터를 디스플레이합니다.

Member 리스트에 있는 이름에 대한 자세한 사항은 해당 이름을 하이라이트 시키고 Help 버튼을 클릭합니다. Operators 및 Built-in Functions에 대한 사항은 VEE Help를 참조하십시오. ActiveX Members에 대한 사항은 개발회사에서 제공하는 온라인 도움말을 참조하십시오.

오브젝트 위치

Device [image] Function & Object Browser

관련정보

ActiveX Automation References 대화상자, ActiveX Control Host, ActiveX Control References 대화상자, ActiveX Controls, Assignment, Call, Declare Variable, Delete Library, Edit UserFunction 메뉴항목, Import Library, 기타 연산자 및 UserFunction.

수학 연산자 및 함수 사용하기

VEE에서 ActiveX 오브젝트를 사용하는 방법에 대해서는, Help => Contents and Index => Tell Me About... => Active X를 참조하십시오.


Function Generator 오브젝트

파형을 출력하는 오브젝트

사용법

Function Generator는 사용자가 지정하는 파형을 생성하기 위해 사용합니다.

속성창

ErrorOnAliasing - Time Span (동일 주파수)으로 나눈 Num Points가 2배로 지정된 주파수보다 작은지를 평가합니다. 작은 경우에는 에러가 발생합니다. 이 평가의 목적은 생성되는 포인트가 생성되는 함수를 정확하게 표시하는지를 판단하기 위해 사용합니다. True로 설정하면, 포인트를 문자로 표시합니다. 디폴트 값은 True입니다.

오픈뷰 항목

모든 항목은 오픈뷰에서 설정할 수 있고, 데이터 입력으로 추가할 수도 있습니다.

Function - 파형의 형태(Sine, Square, Triangle, 등등). 디폴트 값은 Cosine입니다.

Frequency - 파형의 주파수를 Hertz로 표시. 이 항목은 Function이 DcOnly로 설정되면 무시됩니다. 디폴트 값은 200 Hertz입니다.

Amplitude - dcOffset 이 추가되기 전의 최대값과 최소값의 차이값.

dcOffset - 파형의 옵셋(상향 또는 하향 조정된 양). 디폴트 값은 0입니다.

Phase Units - 각도(Deg), 라디안(Rad), 또는 그라디안(Grad). 현재 설정된 트리그 모드를덮어 씌우는 위상 값. 디폴트 값은 Deg입니다.

Phase - 주기의 일부만큼 파형을 이동. 파형은 양의 위상값을 위해서는 음의 시간방향으로 이동합니다. 위상은 Function이 DcOnly로 설정되면 무시됩니다. 디폴트 값은 0 입니다.

Time Span – 파형의 지속시간(초 단위). 디폴트 값은 20mS 입니다.

Num Points - 파형에 있는 포인트 수. 파형에서 포인트 사이의 시간은 Time Span/Num Points입니다. Num Points는 반드시 양수여야 하고, 디폴트 값은 256입니다.

주의사항

포인트 수는 샘플링 간격과 동일합니다. 각 포인트는 샘플링 간격의 시작 포인트입니다.

오브젝트 위치

Device [image] Virtual Source [image] Function Generator

관련정보

Build Arb Waveform, Comparator, Noise Generator, Pulse Generator 및 오브젝트 메뉴


Gate 오브젝트

시퀀스 핀이 활성화 될 때 입력 데이터를 출력핀으로 통과시키는 오브젝트

사용법

Gate는 다른 행위가 발생할 때(또는 시퀀스 입력핀이 활성화될 때)까지 컨테이너를 대기시키기 위하여 사용합니다.

주의사항

시퀀스 입력핀이 연결되어 있지 않을 때는, “붙잡기” 기능이 동작하지 않습니다. Gate는 데이터 입력핀이 활성화 될 때마다, 데이터 입력핀에 있는 데이터를 데이터 출력핀으로 통과시킵니다.

Gate로 전송된 데이터는 저장되지 않습니다; 데이터 입력핀에 있는 컨테이너는 시퀀스 입력핀이 활성화될 때 출력 컨테이너가 됩니다.

오브젝트 위치

Flow [image] Gate

관련정보

DeMultiplexer, JCT, 속성창 (오브젝트) 및 오브젝트 메뉴

타임아웃될 때 지정하는 값 출력하기


Get Current Directory 오브젝트

호스트 컴퓨터에서 현재의 디렉토리를 검색합니다.

오브젝트 위치

System [image] Directory [image] Get Current Directory


Get Directory Name 오브젝트

제공된 경로에서 현재의 디렉토리 이름을 검색합니다.

오브젝트 위치

System [image] Path [image] Get Directory Name


Get Extension 오브젝트

파일의 확장자를 검색합니다. 예를 들어, test1.xls 파일은 확장자 xls를 출력합니다.

오브젝트 위치

System [image] Path [image] Get Extension


Get Field 오브젝트

레코드를 언빌드하거나 각 필드 중에 하나 혹은 하위 필드들을 되찾도록 하는 오브젝트입니다.

사용법

Get Field를 사용하여 필드 혹은 레코드의 하위 필드를 추출합니다. Get Field오브젝트는 입력 터미날 핀 REC와 표현 식 Rec.A로 초기화하는 간단한 Formula 오브젝트입니다. 레코드 입력으로 추출하기 원하는 필드를 syntax “dot”을 사용하여 구분합니다. 예를 들어 Rec.A는 Rec 레코드 입력 핀으로부터 A 필드를 추출합니다.

오픈뷰 항목

연산식 입력창(필드이름 없음) - 디폴트는 Rec.A 입니다. Formula 오브젝트에서 사용할 수 있는 연산식을 입력합니다. 그러나 일반적으로 레코드로부터 필드를 추출하기 위해 syntax A.B를 사용합니다. Formula 오브젝트 컨트롤 입력 핀을 더할 수 있습니다.

주의 사항

Get Field 오브젝트는 입력핀 Rec 이 있고, 표현식 Rec.A가 미리 작성된 Formula 오브젝트입니다. Formula 오브젝트로 사용할 수 있는 연산식을 Get Field 오브젝트에 사용할 수 있습니다. 그러나 필드를 추출하기 위해 Rec.A 또는 A.B.C.와 같이 점을 이용한 접근방식을 사용합니다.

Get Field에서 사용하는 A.B 점 접근방식은 Formula 오브젝트에서 변경없이 사용할 수 있습니다. Formula 오브젝트, If/Then/Else 오브젝트, Set Field 오브젝트 및 모든 트랜잭션 장치 등이 여기에 포함됩니다.(To File, To String 등등)

Get Field 오브젝트, UnBuild Record 오브젝트 및 SubRecord 오브젝트들의 차이점을 주의하십시오.

Get Field 오브젝트는 dot syntax (A.B)를 사용하여 레코드를 언빌드 할 때 Formula오브젝트와 같은 방식으로 실행됩니다. Get Field 오브젝트에서는 A.B.C.와 같은 표현식을 사용하여 레코드의 레코드를 한번에 언빌드할 수 있습니다. UnBuild Record 오브젝트를 사용하여 동일한 동작을 구현하기 위해서는 은 두 개의 UnBuild Record 오브젝트가 필요합니다.

UnBuild Record 오브젝트는 입력 레코드의 이름 목록과 종류 목록을 출력합니다. UnBuild Record 오브젝트의 나머지 출력에서는 여러 개의 Get Field 오브젝트들을 연결한 것과 같은 효과를 제공합니다.

SubRecord 오브젝트는 출력이 항상 레코드라는 점에서, UnBuild Record 오브젝트 및 Get Field오브젝트와 다릅니다. SubRecord 오브젝트는 subrecord 를 생성할 레코드의 필드를 포함하거나 제거할 수 있습니다.

오브젝트 위치

Data [image] Access Record [image] Get Field

관련정보

Build Record, Formula, Record Constant, Set Field, SubRecord 및 UnBuild Record.

레코드에서 필드 추출하기


Get File Creation Time 오브젝트

지정된 파일의 생성 시간을 가져옵니다.

오브젝트 위치

System [image] File [image] Get File Creation Time


Get File Name 오브젝트

제공된 경로에서 현재의 파일이름을 검색합니다.

오브젝트 위치

System [image] Path [image] Get File Name


Get File Name Without Extension 오브젝트

경로에서 주어진 파일의 확장자를 제외한 파일이름을 검색합니다.

오브젝트 위치

System [image] Path [image] Get File Name Without Extension


Get Full Path 오브젝트

현재 디렉토리를 시작점으로 하여 파일이 존재하는 위치까지의 전체 경로를 가져옵니다. 예를 들어 현재 temp 디렉토리에 있고, temp 디렉토리에는 test라는 이름의 디렉토리가 있고 test 디렉토리에는 balderdash라는 이름의 파일이 있습니다. balderdash 파일을 찾기 위해 이 오브젝트를 사용하면, temp 디렉토리 트리가 검색되고 파일까지의 전체 경로가 출력됩니다.

오브젝트 위치

System [image] Path [image] Get Full Path


Get Files 오브젝트

path로 입력되는 디렉토리에 있는 파일을 검색하고, 검색된 결과를 1차원 어레이로 디스플레이합니다.

오브젝트 위치

System [image] Directory [image] Get Files


Get Last File Access Time 오브젝트

해당 파일이 가장 최근에 사용된 시간을 가져옵니다.

오브젝트 위치

System [image] File [image] Get Last File Access Time


Get Last File Write Time 오브젝트

해당 파일이 가장 최근에 편집된 시간을 가져옵니다.

오브젝트 위치

System [image] File [image] Get Last File Write Time


Get Logical Drives 오브젝트

호스트 시스템이 가지고 있는 논리적인 드라이브의 목록을 1차원 어레이로 가져옵니다.

오브젝트 위치

System [image] Directory [image] Get Logical Drives


Get Mappings 오브젝트

컨테이너에 대한 매핑 정보를 출력하는 오브젝트

사용법

Get Mappings은 매핑된 어레이에 대한 정보를 제공하는데 사용합니다. Get Mappings은 매핑(로그 또는 선형)의 타입을 출력하고, 각 차원에 대한 매핑의 시작값과 마지막값을 출력합니다.

오픈뷰 항목

NumDims - 입력 어레이의 차원 수로써, 1부터 10 까지의 값을 가집니다.

주의사항

입력 어레이가 매핑이 안된 경우에는, Get Mapping은 Linear(0, n-1)을 출력합니다. 여기서 “n”은 입력 어레이의 차원에 있는 포인트의 숫자입니다.

Get Mapping은 Coord 타입이 명확한 매핑을 가지고 있기 때문에, Coord 타입은 입력으로 사용할 수 없습니다.

Num Dims은 입력 어레이에 있는 차원의 수와 매칭되어야 합니다.

Num Dims 값이 변경되면 오브젝트의 오픈뷰는 출력터미날을 자동으로 생성하거나 삭제합니다. 각 차원당 3개씩인 출력터미날의 숫자는 Num Dims의 숫자와 매칭됩니다.

단축키

매핑된 어레이의 매핑을 보기 위해서는, 연결선위에서 Line Probe를 사용하거나 컨테이너 데이터를 보기 위해 터미날을 엽니다.

오브젝트 위치

Data [image] Access Array [image] Get Mappings

관련정보

Line Probe, Set Mappings, UnBuild Data 및 속성창 (오브젝트)


Get Parent Directory 오브젝트

상위 디렉토리의 경로를 검색합니다.

오브젝트 위치

System [image] Directory [image] Get Parent Directory


Get Path Root 오브젝트

입력으로 제공된 경로의 루트 디렉토리를 검색합니다.

오브젝트 위치

System [image] Path [image] Get Path Root


Get Root Directory 오브젝트

현재 VEE 프로그램에서 사용중인 호스트 시스템의 루트 디렉토리를 검색합니다.

오브젝트 위치

System [image] Directory [image] Get Root Directory


Get Specified Files 오브젝트

입력한 경로와 와일드카드 형식(예, *.vee)에 일치하는 파일을 리턴합니다.

오브젝트 위치

System [image] Directory [image] Get Specific Files


Get Subdirectories 오브젝트

서브 디렉토리의 1차원 어레이를 검색합니다. 중첩된 디렉토리를 검색하지는 않습니다. 즉, 경로 파라미터에서 지정한 디렉토리의 1차 서브 디렉토리만 검색합니다.

오브젝트 위치

System [image] Directory [image] Get Subdirectories


Get Temp Directory Path 오브젝트

Temp 디렉토리에 대한 경로를 검색합니다. 이것은 C:\Documents and Settings\{UserName}\Local Settings\Temp\입니다.

오브젝트 위치

System [image] Path [image] Get Temp Directory Path


Get Temp File Name 오브젝트

C:\Documents and Settings\{UserName}\Local Settings\Temp\ 디렉토리에 임시 파일을 생성합니다. 오브젝트는 이 파일이름을 검색합니다.

오브젝트 위치

System [image] Path [image] Get Temp File Name


Get Values 오브젝트

어레이에서 앨리먼트를 추출하는 오브젝트

사용법

Get Values는 어레이의 특정한 앨리먼트를 제공하는데 사용합니다. 하나 이상의 어레이에서 하나 또는 복수의 앨리먼트, 열, 행을 추출할 수 있습니다.

Get Values는 데이터 종류, 차원의 수, 차원의 크기 및 입력 어레이에 대한 모든 앨리먼트의 전체 사이즈와 같은 데이터의 설정에 관한 정보를 가져오기 위해 사용합니다.

오픈뷰 항목

표현식 입력창(필드의 이름이 없음) – 추출하고자 하는 어레이의 앨리먼트를 지정합니다. 어레이 연산에서 사용하는 기호는 다음과 같습니다.:

Comma (,) - 앨리먼트의 차원을 분리합니다.

Colon (:) - 앨리먼트를 추출할 때, 시작 앨리먼트와 종료 앨리먼트를 구분합니다.

Asterisk (*) - 전체의 열과 행을 지칭하는 와일드 카드.

사용예

2차원 어레이[3,3] 앨리먼트에서 2번째 열을 추출하기. 어레이 인덱스는 0부터 시작합니다:

- - - -
|1 2 3 |                      | 2 |
|4 5 6 | Array [*,1] outputs: | 5 |
|7 8 9 |                      | 8 |
- - - -

주의사항

모든 어레이의 인덱스는 0부터 시작합니다.

각각의 어레이 차원은 각각의 특성을 가져야 합니다.

Get Values 오브젝트는 Ary 입력, 표현식 Ary 및 몇개의 출력으로 구성되는 Formula 오브젝트입니다. Get Values에는 Formula 오브젝트에서 사용할 수 있는 어떤 표현식도 사용할 수 있습니다.

Get Values 내에서 사용하는 Ary[2,3] 서브어레이 문법은 모든 Formula 오브젝트에서 지원됩니다. 이것은 Formula, If/Then/Else, Get Field, Set Field 및 모든 트랜잭션 오브젝트((To File, To String, 등등)를 포함합니다.

스트링 타입의 출력값은 typeName()함수에서 리턴되는 스트링과 동일합니다.

오브젝트 위치

Data [image] Access Array [image] Get Values

관련정보

Array 영역, Formula, Set Values, typeName(), UnBuild Data 및 속성창 (오브젝트)

어레이에서 값 추출하기


Get Variable 오브젝트

프로그램 실행으로 이미 생성된 변수의 값을 가져오는 오브젝트

사용법

Get Variable 오브젝트는 VEE 프로그램에서 데이터로 사용하기 위하여 변수(이름 사용)를 가져오기 위해 사용합니다. 변수는 프로그램 내에서 Set Variable 또는 Formula 할당 오브젝트를 사용하여 이전에 생성되어 있어야 하고, 초기화 되어 있어야 합니다.

하나의 프로그램 컨텍스트에서 생성된 선언되지 않은 전역변수는 UserObjects 또는 UserFunctions 같은 프로그램의 다른 컨텍스트에서 데이터로 사용할 수 있습니다. 예를 들어 프로그램의 최상위 컨텍스트에 있는 Set Variable은 선언되지 않은 전역변수를 생성할 수 있습니다. 이 전역변수는 UserObject에서 Get Variable을 사용하여 데이터로 사용할 수 있습니다. 이것은 프로그램이 몇개의 네스팅된 UserObject를 가지고 있을 때 아주 유용합니다.

변수는 다음 오브젝트의 표현식 필드에 변수이름을 입력하여 사용할 수 있습니다: Formula, If/Then/Else, Get Values, Get Field, Set Field 와 To File, From File, Direct I/O, From Stdin, Sequencer를 포함하여 트랜잭션에 표현식을 사용하는 모든 오브젝트들. 변수 이름을 직접 입력하여 사용하는 것이 Get Variable 오브젝트를 사용하는 것보다 유용할 때도 있습니다.

오픈뷰 항목

오픈뷰는 변수이름을 입력하기 위한 필드를 디스플레이 합니다. 변수이름은 대소문자를 구분하지 않습니다. (소문자든 대문자든 다 사용할 수 있습니다.) 그래서 globalA는 GLOBALa와 같은 변수입니다. 이름 필드는 컨트롤 입력으로 추가될 수 있습니다. 이름은 단지 변수의 이름만 사용할 수 있고, globalA+1 또는 globalRec와 같은 표현식은 사용할 수는 없습니다. 이러한 표현식은 Formula 오브젝트에서 사용하십시오.

주의사항

원하지 않는 결과값을 출력하는 것을 방지하기 위하여, 프로그램에서 Get Variable 오브젝트(또는 표현식에 변수이름을 포함하고 있는 오브젝트)를 실행하기 전에 반드시 Set Variable을 이용하여 변수가 설정되어 있어야 합니다. 최선의 방법은 Set Variable 오브젝트의 시퀀스 출력핀을 Get Variable 오브젝트의 시퀀스 입력핀으로 연결하는 것입니다. 이것에 대한 자세한 사항은 Help => Contents and Index => Tell Me About... => Variables을 참조하십시오.

Default Preferences에서, Delete Variables at PreRun이 on(디폴트)되어 있으면 모든 변수는 프로그램 실행 전에 삭제됩니다. Delete Variables at PreRun이 off되어 있는 경우에는 변수가 삭제되지 않게 되어, 부적절한 데이터가 전송되지 않도록 주의하여 프로그램을 작성해야 합니다.

전역변수는 UserObject 레벨에서 정의하지 않았기 때문에 틀림없는 전역변수입니다. 하나의 프로그램 컨텍스트에서 정의된 전역변수는 프로그램내의 다른 컨텍스트에서 사용할 수 있습니다. 예를 들어 최상위 프로그램 컨텍스트에서 Set Variable 오브젝트를 사용하여 전역변수를 선언하면, UserObject에서 전역변수를 가져오기 위하여 Get Variable을 배치할 수 있습니다. 반면에, 전체 프로그램에 걸쳐서 이름의 충돌을 피하는 것이 필요합니다:

2개 이상의 Set Variable 오브젝트가 동일한 변수 값(동일한 변수이름으로)을 설정하려 하면, Set Variable이 실행할 때마다 현재의 변수 값이 덮어씌워 집니다. 이것은 이름이 중복된 것을 알지 못한 경우에는 원하지 않은 결과값이 출력될 수 있다는 것입니다.

변수이름과 동일한 이름을 가진 데이터 터미날이 있는 경우에는, 데이터 터미날이 우선순위를 가집니다.

자세한 사항은 Help => Contents and Index => Tell Me About... => Variables을 참조하십시오.

오브젝트 위치

Data [image] Variable [image] Get Variable

관련정보

Default Preferences 대화상자, Delete Variable, Set Variable, 변수 사용하기 및 속성창 (오브젝트)


Has Extension? 오브젝트

제공된 경로에 있는 파일이 파일이름의 확장자를 가지고 있다면, 부울값을 검색합니다. 예를 들어 test.xls 파일에서는, xls는 파일이름의 확장자이고 부울값 참이 출력됩니다.

오브젝트 위치

System [image] Path [image] Has Extension?


Hash Table - Add Key/Value Pair 오브젝트

해시테이블에 키(key)와 값(value)를 쌍으로 더하기

오브젝트 위치

System [image] Collections [image] Hashtable [image] Add Key/Value Pair


Hash Table - Clear 오브젝트

해시 테이블 지우기

오브젝트 위치

System [image] Collections [image] Hashtable [image] Clear Hashtable


Hash Table - Contains Key? 오브젝트

주어진 해시테이블이 입력되는 키(Key)를 가지고 있는지 검색합니다.

오브젝트 위치

System [image] Collections [image] Hashtable [image] Contains Key?


Hash Table - Count 오브젝트

해시테이블에 있는 키/값의 쌍(pair)을 카운트합니다.

오브젝트 위치

System [image] Collections [image] Hashtable [image] Count


Hash Table - Create 오브젝트

새로운 해시테이블을 생성합니다.

오브젝트 위치

System [image] Collections [image] Hashtable [image] Create


Hash Table - Enumerate Key/Value Pairs 오브젝트

해시 테이블의 키/값의 쌍(pair)을 리스트로 표시합니다.

오브젝트 위치

System [image] Collections [image] Hashtable [image] Enumerate Key/Value Pairs


Hash Table - Get Value 오브젝트

해시 테이블에서 제공된 해시키의 해시값을 가져옵니다.

오브젝트 위치

System [image] Collections [image] Hashtable [image] Get Value


Hash Table - Remove Key/Value Pair 오브젝트

해시테이블에서 키/값 쌍을 제거합니다.

오브젝트 위치

System [image] Collections [image] Hashtable [image] Remove Key/Value Pair


Hash Table - Set Value 오브젝트

주어진 해시 테이블에서 주어진 키에 대한 값을 설정합니다.

오브젝트 위치

System [image] Collections [image] Hashtable [image] Set Value


Help 메뉴항목 (오브젝트 메뉴)

해당 오브젝트에 대한 도움말을 제공합니다.

사용법

Help는 해당 오브젝트의 참조 페이지를 보기 위하여 사용합니다. 도움말에서 빠져 나오기 위해서는 도움말 윈도우를 닫습니다.

주의사항

복수의 오브젝트, 용어, 절차상의 정보에 대한 도움말을 보기 위해서는 VEE 메뉴바에 있는 Help 메뉴를 사용하십시오.

Instrument Panel 또는 Component Driver에 있는 Help는 드라이버에 대한 도움말을 제공합니다.

단축키

선택한 오브젝트에 대한 도움말을 보기 위해서는 F1키를 누릅니다.

오브젝트 위치

각 오브젝트 메뉴 [image] Help

관련정보

오브젝트 메뉴 또는 속성창 (오브젝트).


Home 메뉴항목

프로그램의 좌측 상단 코너를 작업영역(메인, UserFunctions, 또는 UserObjects)의 좌측 상단 코너로 이동합니다.

단축키

툴바에 있는 Press [image] 버튼 또는 Home 키를 누릅니다.

오브젝트 위치

Edit [image] Home

관련정보

윈도우를 선택하고 작업영역 스크롤하기


Horizontal Paddle 오브젝트

Toggle Control를 참조하십시오.


Horizontal Rocker 오브젝트

Toggle Control를 참조하십시오..


Horizontal Slide 오브젝트

Toggle Control를 참조하십시오.


If A ~= B 오브젝트

입력값이 거의 동일한 경우에 해당 출력으로 분기하는 오브젝트

사용법

If A ~= B는 거의 동일한지를 검사하고, 검사 결과에 따라 분기하는데 사용합니다.

주의사항

If A ~= B는 입력값이 거의 동일한지를 검사하는 사전에 설정된 If/Then/Else 오브젝트입니다.

입력되는 값이 거의 동일하면, Then 출력은 Int32 스칼라값 1을 전송합니다. 그렇지 않으면, Else 출력은 Int32 스칼라값 0을 전송합니다.

“거의 동일” 검사는 Complex 또는 Polar Complex 숫자에서는 약간 다릅니다. 2개의 실수(a와 b)에서의 “거의 동일” 검사는 다음과 같습니다:

a - b <= a * 10E-7

반면에 2개의 Complex 값(a와 b)에서의 검사는 다음과 같습니다:

re(a) - re(b) <= mag(a) * 10E-7

여기서:

re(a)는 a의 실수 컴포넌트

re(b)는 b의 실수 컴포넌트

mag(a)는 a의 벡터크기

오브젝트 위치

Flow [image] Conditional [image] If A ~= B

관련정보

Comparison 영역, Conditional 메뉴, If/Then/Else, If A == B, If A != B, If A < B, If A > B, If A <= B 및 If A >= B.

프로그램 내에서 분기하기


If A == B 오브젝트

입력값이 동일한 경우에 해당 출력으로 분기하는 오브젝트

사용법

If A == B는 동일한지를 검사하고, 그 검사결과에 따라 분기하는데 사용합니다.

주의사항

If A ~= B는 입력값이 동일한지를 검사하는 사전에 설정된 If/Then/Else 오브젝트입니다.

입력되는 값이 동일하면, Then 출력은 Int32 스칼라값 1을 전송합니다. 그렇지 않으면, Else 출력은 Int32 스칼라값 0을 전송합니다.

오브젝트 위치

Flow [image] Conditional [image] If A == B

관련정보

Comparison 영역, Conditional 메뉴, If/Then/Else, If A ~= B, If A != B, If A < B, If A > B, If A <= B 및 If A >= B.

프로그램 내에서 분기하기


If A >= B 오브젝트

하나의 입력값이 다른 입력값과 동일하거나 큰 경우에 해당 출력으로 분기하는 오브젝트

사용법

If A >= B는 하나의 입력값이 다른 입력값과 동일하거나 큰지를 검사하고, 그 검사 결과에 따라 해당 출력으로 분기하는데 사용합니다.

주의사항

If A >= B는 사전에 설정된 If/Then/Else 오브젝트입니다.

A의 값이 B의 값과 동일하거나 큰 경우에, Then 출력은 Int32 스칼라 값 1을 전송하고 그렇지 않으면 Int32 스칼라 값 0을 전송합니다.

오브젝트 위치

Flow [image] Conditional [image] If A >= B

관련정보

Comparison 영역, Conditional 메뉴, If/Then/Else, If A ~= B, If A == B, If A != B, If A < B, If A > B 및 If A <= B.

프로그램 내에서 분기하기


If A > B 오브젝트

하나의 입력값이 다른 입력값보다 큰 경우에 해당 출력으로 분기하는 오브젝트

사용법

If A > B는 하나의 입력값이 다른 입력값보다 큰지를 검사하고, 그 검사 결과에 따라 해당 출력으로 분기하는데 사용합니다.

주의사항

If A > B는 사전에 설정된 If/Then/Else 오브젝트입니다.

A의 값이 B의 값보다 큰 경우에, Then 출력은 Int32 스칼라값 1을 전송합니다. 그렇지 않으면, Else 출력은 Int32 스칼라값 0을 전송합니다.

오브젝트 위치

Flow [image] Conditional [image] If A > B

관련정보

Comparison 영역, Conditional 메뉴, If/Then/Else, If A ~= B, If A == B, If A != B, If A < B, If A <= B 및 If A >= B.

프로그램 내에서 분기하기


If A <= B 오브젝트

하나의 입력값이 다른 입력값보다 동일하거나 작은 경우에 해당 출력으로 분기하는 오브젝트

사용법

If A <= B는 하나의 입력값이 다른 입력값보다 동일하거나 작은지를 검사하고, 그 검사 결과에 따라 해당 출력으로 분기하는데 사용합니다.

주의사항

If A <= B는 입력값들이 동일하거나 작은지를 검사하는 사전에 설정된 If/Then/Else 오브젝트입니다.

A의 값이 B의 값보다 동일하거나 작은 경우에, Then 출력은 Int32 스칼라값 1을 전송합니다. 그렇지 않으면, Else 출력은 Int32 스칼라값 0을 전송합니다.

오브젝트 위치

Flow [image] Conditional [image] If A <= B

관련정보

Comparison 영역, Conditional 메뉴, If/Then/Else, If A ~= B, If A == B, If A != B, If A < B, If A > B 및 If A >= B.

프로그램 내에서 분기하기


If A < B 오브젝트

하나의 입력값이 다른 입력값보다 작은 경우에 해당 출력으로 분기하는 오브젝트

사용법

If A < B는 하나의 입력값이 다른 입력값보다 작은지를 검사하고, 그 검사 결과에 따라 해당 출력으로 분기하는데 사용합니다.

주의사항

If A < B는 사전에 설정된 If/Then/Else 오브젝트입니다.

A의 값이 B의 값보다 작은 경우에, Then 출력은 Int32 스칼라값 1을 전송합니다. 그렇지 않으면, Else 출력은 Int32 스칼라값 0을 전송합니다.

오브젝트 위치

Flow [image] Conditional [image] If A < B

관련정보

Comparison 영역, Conditional 메뉴, If/Then/Else, If A ~= B, If A == B, If A != B, If A > B, If A <= B 및 If A >= B.

프로그램 내에서 분기하기


If A != B 오브젝트

입력값들이 동일하지 않은 경우에 해당 출력으로 분기하는 오브젝트

사용법

If A != B는 동일하지 않은지를 검사하고, 그 검사 결과에 따라 해당 출력으로 분기하는데 사용합니다.

주의사항

If A != B는 입력값들이 동일하지 않은지를 검사하는 사전에 설정된 If/Then/Else 오브젝트입니다.

A의 값이 B의 값과 동일하지 않은 경우에, Then 출력은 Int32 스칼라값 1을 전송합니다. 그렇지 않으면, Else 출력은 Int32 스칼라값 0을 전송합니다.

오브젝트 위치

Flow [image] Conditional [image] If A != B

관련정보

Comparison 영역, Conditional 메뉴, If/Then/Else, If A ~= B, If A == B, If A < B, If A > B, If A <= B 및 If A >= B.

프로그램 내에서 분기하기


If/Then/Else 오브젝트

입력되는 값에 따라 실행할 쓰레드를 선택하는 오브젝트

사용법

If/Then/Else는 어떤 서브쓰레드를 실행할건지를 결정하기 위해 사용합니다.

If/Then/Else 오브젝트의 오픈뷰에서 입력창에 적절한 표현식을 입력할 수 있습니다.

If/Then/Else는 검사한 결과 값이 0이 아닐 때까지 If/Else If문에 있는 표현식을 검사합니다(위에서 아래로). 0이 아닌 컨테이너는 해당 표현식에 일치하는 출력으로 복사되고, 복사된 하나의 출력이 전송됩니다. 단지 하나의 출력만이 전송됩니다. 표현식을 검사한 결과 값이 0이 아닌 값이 없다면, Else 출력은 최종 검사된 표현식의 0의 값을 전송합니다.

어레이인 값을 검사하는 표현식 이라면, 어레이 값은 모두 0이거나 모두 0이 아닌지가 체크됩니다. 값이 섞여 있으면, 어레이가 참인지 거짓인지를 판단할 수 없기 때문에 에러가 발생합니다. 스칼라 값을 출력하기 위해서는 비교 공식이 항상 스칼라를 출력하는 expr == 0 또는 expr!=0를 사용하십시오.

오픈뷰 항목

편집 필드에 표현식을 입력합니다.

오브젝트 메뉴

Add Else/If - 조건이 참인데도 이전의 조건을 만족하지 않고 출력핀이 활성화 되는 경우에 검사할 조건을 추가합니다. 새로운 조건은 현재의 모든 조건 아래에 추가됩니다.

Insert Else/If - 현재의 조건 앞에 새로운 조건(과 관련된 출력핀)을 입력할 수 있는 현재의 조건을 나열한 대화상자를 엽니다.

Delete Else/If - 조건을 삭제합니다. Delete Else/If 를 선택한 후에, 디스플레이 된 대화상자에서 삭제하고자 하는 조건을 선택합니다.

Delete Else/If는 단 하나의 조건이 디스플레이 되어 있을 때는 사용할 수 없습니다. 이 기능은 최소한 2개의 Else/If 조건을 가지고 있을 때 사용할 수 있습니다.

주의사항

조건문에는 적절한 표현식을 사용할 수 있습니다. Formula 오브젝트에서와 같이 표현식에 사용하기 위하여 입력을 추가할 수도 있습니다.

조건을 만족하는 값을 출력하기 위해서는, 조건문을 값으로 곱합니다. 예를 들어, A가 10보다 작을 때 변수 A에 있는 값을 출력하기 위해서는 편집필드에 다음의 표현식을 입력합니다:

(A<10)*A

이 조건이 참일 때는 Then 데이터 출력핀으로 A의 값이 출력됩니다. 이것은 결과값이 참(Then 또는 Else If 데이터 출력핀으로 출력하는)일 때만 동작합니다. 또한 이 것은 A가 0이 아닐 때만 동작합니다. 만약 A가 0이면, 방정식의 결과는 거짓이 되고 Else 데이터 출력핀으로 0이 출력됩니다. Else 데이터 출력핀은 조건이 거짓이면 항상 0을 출력합니다.

메뉴 Flow [image] Conditional 아래에 있는 오브젝트들은 지정하는 조건을 검사하는 미리 설정된 If/Then/Else 오브젝트 입니다.

TRUE|FALSE (1|0) 출력을 얻기 위해서는, Comparison 오브젝트를 사용합니다. Function & Object Browser 아래의 Type: Operators, Category: Comparison에서 사용할 수 있습니다.

또한, Comparison과 Conditional 오브젝트 사이의 차이가 있습니다. Comparisons은 0 또는 1을 출력하는 공식입니다. Conditionals은 If/Then/Else와 하나의 출력이 활성화되는 2개의 출력을 가집니다.

오브젝트 위치

Flow [image] If/Then/Else

관련정보

Comparison 영역, Conditional 메뉴, Formula, Triadic Operator, 속성창 (오브젝트) 및 오브젝트 메뉴

프로그램 내에서 분기하기


Import Library 오브젝트

VEE 프로그램을 실행하면서 UserFunctions, Compiled Function, 또는 Remote Function 등의 라이브러리를 로딩하는 오브젝트

사용법

Import Library는 실행중인 VEE 프로그램에서 다음 함수를 로딩하는데 사용합니다:

UserFunction - Import Library는 지정된 파일에서 모든 UserFunctions을 로딩합니다. (UserFunctions은 UserObject의 오브젝트 메뉴에서 Make UserFunction을 선택하여 생성합니다. 여러 개의 UserFunctions을 생성하여 라이브러리를 생성하고 이것들을 파일에 저장합니다.)

Compiled Function - Import Library는 VEE 프로그램에 Dynamically Linked Library(DLL)을 추가하고, Definition File을 파싱합니다. (Compiled Functions은 C 등의 프로그램 언어로 작성된 프로그램입니다. 이 프로그램은 VEE 프로그램에 동적으로 링크됩니다.)

Remote Function - Import Library는 원격 컴퓨터에 있는 VEE 프로세스를 시작하고, Remote File을 VEE 프로그램으로 로딩합니다. (Remote Functions은 실제로는 원격 VEE 프로그램에 의해 로딩되며, 로컬 호스트에서 호출할 수 있는 UserFunctions입니다.)

UserFunctions, Compiled Functions, 또는 Remote Functions 라이브러리가 로딩되면, 함수는 Call Function 오브젝트에 이름을 입력하여 실행(호출)됩니다.

오픈뷰 항목

Library Type - UserFunction, Compiled Function, 또는 Remote Function을 선택합니다.

Library Name - 로딩하고자 하는 라이브러리에 논리적인 이름을 부여합니다.

File Name - (UserFunction 또는 Compiled Function에서만 사용) 임포트 하고자 하는 라이브러리를 가지고 있는 파일을 선택합니다. Compiled Functions에서는 .dll 파일입니다.

Definition File - (Compiled Function에서만 사용) Compiled Function용 정의파일을 선택합니다. 이 정의파일에는 함수 호출에 필요한 프로토타입이 작성됩니다. (.h 파일)

Host Name - (Remote Function에서만 사용) Remote Function이 실행되는 원격컴퓨터의 이름을 입력합니다.

Remote File Name - (Remote Function에서만 사용) 라이브러리의 파일이름(경로 포함)을 입력합니다. (예, /users/MyUserName/MyDir/MyFile).

Remote Timeout - (Remote Function에서만 사용) Remote Function용 타임아웃을 초단위로 설정합니다.

Geometry - (Remote Function에서만 사용) 리모트 VEE 윈도우를 제공하는 윈도우의 초기 위치를 입력합니다. 예를 들어, 800x500+0-0 (widthxheight+/-xoffest+/-yoffset.

Remote Debug - (Remote Function에서만 사용) 이 체크박스가 선택되면, 라이브러리 안에 있는 모든 UserFunctions이 디버깅 모드에서 실행됩니다. (예, 브레이크포인트를 설정하고, 라인 프로브를 사용하는 것과 같이 UserFunctions에서 디버깅할 수 있게 됩니다.) 프로그램은 각 리모트 UserFunctions을 실행하기 전에 일시정지 됩니다. 이 설정은 패널뷰를 가지고 있는 것과는 상관없이 UserFunctions에서 사용됩니다.)

오브젝트 메뉴

Load Lib - 지정된 라이브러리를 즉시 VEE로 로딩합니다. 라이브러리 이름이 기존에 로딩된 라이브러리와 동일한 경우에는, 기존의 라이브러리는 삭제되고 새로운 라이브러리로 덮어씌워 집니다.

Delete Lib - 지정된 라이브러리를 VEE에서 즉시 삭제합니다. (이것은 Delete Library 오브젝트와 동일한 기능을 제공합니다.)

주의사항

Import Library 오브젝트는 UserFunctions, Compiled Functions, 또는 Remote Functions을 라이브러리로 개발하여 사용하는 고급 프로그램에서 사용됩니다. Import Library 오브젝트는 실행 중에 이들 라이브러리를 로딩합니다. UserFunctions을 사용해야 하는 경우, Import Library를 이용하여 UserFunctions 라이브러리를 생성하고 로딩하면, 많은 저장공간을 절약할 수 있습니다. – 해당 UserFunctions 을 사용해야 하는 각각의 개별 프로그램에 UserFunctions의 복사본을 저장할 필요가 없습니다. 또한 표준 UserFunctions의 라이브러리를 개발할 때, 하나의 장소에 그들 함수의 소오스 코드를 저장할 수 있습니다. UserFunction, Compiled Functions, 및 Remote Functions에 대한 자세한 내용은 VEE Advanced Techniques 매뉴얼을 참조하십시오.

실행중에 Import Library로 로딩한 UserFunctions은 프로그램내에서 생성한 UserFunction과 동일하게 동작합니다. Call Function 또는 Formula 오브젝트에서 UserFunction을 실행할 수 있습니다. 반면에, 임포트된 UserFunction은 편집할 수 없으며, Edit UserFunction을 이용하여 디버깅할 목적으로 볼 수는 있습니다. 외부에 있는 Edit UserFunction을 편집하고자 할 경우에는, UserFunction을 포함하는 라이브러리 파일을 열고, Edit 메뉴에서 Edit UserFunctions을 선택해야 합니다. UserFunction의 편집을 마친 후에는 컴퓨터에 다시 저장합니다.

임베딩된 I/O 설정을 가진 프로그램 파일을 Import Library를 사용하여 임포트하면 I/O 설정은 임포트되지 않습니다. 임베딩된 I/O 설정 및 병합하기를 참조하십시오.

오브젝트 위치

Device [image] Import Library

관련정보

Call, Delete Library, Edit UserFunction 메뉴항목, UserFunction, UserObject 및 속성창 (오브젝트), 컴파일된 함수 사용하기, C 함수 생성하기, DLL 생성


Indicator 오브젝트

이 메뉴에는 스칼라 숫자의 입력에 따라 다양한 아날로그 타입의 그래픽을 디스플레이하는 여러 가지 오브젝트를 제공합니다.

사용법

Indicator 메뉴는 스칼라 숫자 입력값을 그래픽으로 디스플레이하는 5개의 다른 VEE 오브젝트를 제공합니다. 이 5개의 오브젝트는 다음과 같습니다:

Meter - 아날로그 타입의 미터 스케일에 스칼라 숫자 값을 디스플레이합니다.

Thermometer - 그래픽 온도계에 칼라바를 사용하여 스칼라 숫자 값을 디스플레이합니다.

Fill Bar - 칼라바를 사용하여 스칼라 숫자 값을 디스플레이합니다.

Tank - 그래픽 탱크에 칼라바를 사용하여 스칼라 숫자 값을 디스플레이합니다.

Color Alarm - 스칼라 입력값에 따라 다른 색상과 텍스트 스트링을 디스플레이 하는 그래픽 경보 인디케이터.

오브젝트 위치

Display [image] Indicator

관련정보

Color Alarm, Fill Bar, Meter, Tank 및 Thermometer.

Color Alarm 표시하기

데이터를 아날로그 디스플레이로 나타내기


Instrument Event 오브젝트

GPIB 또는 VXI 계측기에서 발생된 이벤트를 처리하는 오브젝트

사용법

Instrument Event 오브젝트는 계측기의 이벤트를 설정할 때 사용합니다. 설정내용에 따라, 이 오브젝트는 이벤트를 기다리거나, 병렬로 처리되고 있는 다른 쓰레드에 우선하여 실행되기도 합니다. 또는 단순히 부울린 값이나 해당 장치의 상태값을 리턴하기도 합니다.

Instrument Event 오브젝트가 이벤트를 기다리도록 설정되었다면, 이벤트가 발생하는 순간에 이 오브젝트가 실행됩니다. 이 오브젝트에 의해서 발생된 쓰레드는 기존에 처리되고 있던 다른 쓰레드보다 높은 우선순위를 가져서 먼저 실행됩니다. Instrument Event 오브젝트가 단순히 디바이스 상태값을 리턴하도록 설정된 경우에는, 이 값을 처리하는 쓰레드는 보통 우선순위를 가져서 다른 쓰레드와 병렬처리됩니다.

오픈뷰 항목

Device - 이 필드에는 현재 선택된 계측기가 표시됩니다. 이 필드를 클릭하면 현재 설정된 GPIB 또는 VXI 계측기 목록이 표시됩니다.

Event - 특정 이벤트를 선택할 수 있습니다. 이 필드를 클릭하면, 다음과 같은 종류의 이벤트를 선택할 수 있습니다

Spoll - GPIB 계측기와 메시지-기반 VXI 계측기의 상태바이트를 리턴합니다. 디바이스 필드에서 GPIB 계측기를 선택한 경우에는 이 필드에서는 Spoll 만 선택할 수 있습니다. 리턴된 상태바이트를 Mask 값과 함께 사용됩니다. Spoll은 Any Set 또는 All Clear행위가 선택될 지라도 실제 비동기 이벤트는 아닙니다. Spoll 오브젝트는 상태 바이트를 읽어서 Mask 값을 사용하여 계측기에 의해 비트가 수정되기 전까지는 계속적으로 연산합니다.

RQS - GPIB, USB, 및 TCPIP 계측기에서 VISA의 상태 바이트를 출력합니다. 출력되는 상태 바이트는 Mask 값과 함께 사용됩니다. RQS는 실제 비동기 이벤트입니다. 이것은 인터럽트가 발생하고 상태 바이트가 Any Set 또는 All Clear 기준을 만족할 때까지 대기합니다.

Signal Interrupt - 이 비동기 이벤트는 메시지-기반 또는 레지스터-기반 VXI 계측기에서 생성됩니다. 이 이벤트는 계측기 정의 이벤트(Device-defined event) 이거나 비정의 이벤트(Undefined event)인 VME 인터럽트 또는 Signal Register Write를 계측기가 보낼 때 발생한다. 리턴된 32비트 값은 Signal Write Register에 저장된 값이거나, 계측기가 인터럽트 응답(Interrupt Acknowledge, IACK)시 VXI 버스에 실려있는 값입니다. 이 값은 Mask 값과 함께 사용됩니다.

이벤트에 대한 자세한 정보는 Notes를 참조하십시오.

Action - 지정된 이벤트를 받았을 때, 지정된 비트 마스크에 따라서, 처리해야 할 Device Event 오브젝트의 행위를 지정합니다.

No Wait - 설정된 이벤트의 현재 상태를 32비트 정수로 변환하여 Status 핀에 즉시 출력합니다. 이 값은 부울린 값으로 FALSE(0) 이거나 해당 계측기에서 사용하는 비트 값을 갖습니다. Event 필드의 값이 Spoll 인 경우에는, 리턴된 정수의 하위 바이트는 해당 계측기의 상태 바이트입니다. 두 개의 비동기 VXI 이벤트의 경우, 이벤트가 발생하지 않으면 FALSE(0) 가 리턴됩니다. 이벤트가 발생한 경우에는, 해당 계측기에서 사용하는 비트 패턴이 리턴됩니다.

All Clear - 발생할 이벤트를 기다려서 리턴된 값을 Mask 값과 논리 AND 연산하여 사용합니다. 설정된 비트가 없으면, 원래의 마스크되지 않은 값을 Status 츨력핀에 적용합니다.

Any Set - 발생할 이벤트를 기다려서 리턴된 값을 Mask 값과 논리 AND 연산하여 사용합니다. 비트패턴에 하나의 비트라도 설정되어 있으면, 원래의 마스크되지 않은 값을 Status 출력핀에 적용합니다.

Mask - 비트마스크에 사용할 값을 입력합니다.(디폴트 값은 0 입니다.) Mask 값은 특정 이벤트가 발생할 때 계측기에서 리턴되는 값과 논리 AND 연산하는데 사용됩니다.

주의사항

Instrument Event 오브젝트는 Action 필드의 설정에 따라서 동기 또는 비동기 방식으로 사용할 수 있습니다. Action 필드를 No Wait로 설정하면, 동기 방식으로 폴링합니다. 이 오브젝트는 이벤트 발생시 즉시 실행되며, 이로 인해 발생된 쓰레드는 현재 진행중인 다른 모든 쓰레드와 동등한 우선순위를 갖습니다. Action 필드가 Any Set 또는 All Clear로 설정된 경우에는, 해당 이벤트가 발생하여 리턴된 값을 Mask 값과 논리 AND 연산합니다. 이 논리 AND 연산된 값이 "any bit set" 또는 "no bit set" 설정과 일치할 때까지 Device Event 오브젝트는 기다립니다. 이들 조건이 만족되어야만 이 Device Event 오브젝트가 실행됩니다. 이로 인해서 발생되는 모든 쓰레드는 높은 우선순위를 가져서, 다른 쓰레드 보다 먼저 실행되고, 이 쓰레드의 실행이 완료되어야지만 다른 쓰레드가 실행됩니다.

직설적으로 표현하면, VXI SRQ 및 Signal Interrupt 등의 비동기 이벤트와는 달리, Spoll 이벤트는 순수한 비동기 이벤트가 아닙니다. Mask 값과 Action 필드를 Any Set 또는 All Clear 로 적절히 설정하여, 계측기가 특정 비트를 변경할 때까지 상태 바이트를 계속하여 비교할 수 있습니다. 이 오브젝트는 이러한 상황이 발생할 때까지 기다리므로, 다른 쓰레드는 계속 실행할 수 있습니다. Spoll 이벤트의 경우 Action 필드를 No Wait Action 으로 설정하는 것은, Mask 값에 0 Action 필드를 All Clear Action 로 설정하는 것과 동일합니다 – 즉, 이들 설정에서는 Device Event 오브젝트가 즉시 실행됩니다.

비동기 이벤트인 SRQ와 Signal Interrupt 의 경우에는, 계측기는 이벤트가 발생할 때까지 기다리므로, 다른 쓰레드는 계속하여 실행됩니다. 일단 인터럽트가 발생하면, 상태 바이트, Signal Write 레지스터의 내용, 또는 IACK 값이 Mask 값과 논리 AND 연산된다. 이 연산결과의 비트패턴이 Any Set 조건 또는 All Clear 조건을 만족해야지만 이 오브젝트가 실행됩니다. Mask 값이 0으로 설정되어 All Clear 조건이 충족되어야 한다면 Device Event 오브젝트는 인터럽트가 발생할 때 실행됩니다.

계측기의 타임아웃 시간을 프로그램으로 변경할 수 있는 Timeout 컨트롤 입력핀을 사용할 수 있습니다.

오브젝트 위치

I/0 [image] Advanced I/O [image] Instrument Event

관련정보

인터페이스 이벤트, Interface Operations 및 속성창 (오브젝트)

GPIB 계측기 폴링하기


Instrument Manager 대화상자

Instrument Manager 대화상자를 표시합니다.

사용법

메뉴바에서 I/O [image] Instrument Manager를 선택하여 Instrument Manager 대화상자를 실행합니다. Add, Delete, Edit, Locate 그리고 계측기 및 계측기 인터페이스를 추가, 삭제, 편집, 배치하기 위해서 이 대화상자를 사용합니다. 여기서는 다음과 같은 타입의 계측기 I/O 오브젝트를 생성할 수 있습니다. : Direct I/O, IVI-COM Driver, NIDAQ Drivers, VXIplug&play Drivers, Panel Driver 및 Component Driver.

대화상자 설명

Instrument Manager 대화상자에서 제공하는 기능은 다음과 같습니다.

Instrument List - Tree View에는 3 종류의 노드가 있습니다.: My Configuration(Root), 인터페이스 및 계측기. 선택할 노드를 클릭합니다. 선택한 노드에 따라서 Instrument Manager 대화상자의 다른 버튼들이 활성화 또는 비활성화 됩니다. 리스트에 표시된 인터페이스 또는 계측기를 더블클릭하면 설정내용을 수정할 수 있습니다.

Auto Discovery - 이 항목은 계측기 및 계측기 드라이버의 자동 탐색 및 설정기능을 제공합니다. 이 영역에는 3 개의 버튼이 있습니다:

Find Instruments - 이 버튼은 선택된 인터페이스에 접속되어 있는 모든 계측기를 자동 탐색합니다. Instrument List 창에서 My Configuration이 선택된 상태에서 이 버튼을 클릭하면, 계측기와 접속할 수 있는 모든 로컬 인터페이스를 탐색합니다. Auto Discovery Settings대화상자에서는(Settings버튼을 클릭했을 때) 탐색된 인터페이스의 세부사항을 설정합니다.

8.0 버전부터는, VEE는 I/O 디바이스를 선언하고/사용할 때 동일한 규격의 접근방식(VISA)을 사용하기 위하여 오래되어 잘 맞지 않는 I/O 디바이스(혼용된 SICL & VISA)를 단계적으로 제거하기 시작했습니다. 사용자들에게 새로운 형식의 디바이스를 사용하것을 권장하지만, 역 호환성은 유지됩니다.

VEE 8.0 이전 버전에서처럼 사용자의 기존 프로그램 I/O는 실행됩니다. SICL 형식의 디바이스는 동작은 할 수 있지만, File => Default Preferences에서 I/O 탭 아래에 있는 Enable Pro 8.0 Legacy I/O를 체크하지 않으면 찾을 수 없습니다.

주의사항 : LAN 인터페이스는 다른 인터페이스를 검색하는 것 보다 오랜 시간이 소요됩니다. GPIB/LAN 인터페이스를 사용하고 있다면, LAN 인터페이스 검색에 상대적으로 많은 시간을 할당하기 위해서, Agilent는 GPIB 인터페이스로부터 탐색 작업을 시작합니다. 이 방식을 적용하여 빠르고 정확하게 탐색작업을 실행할 수 있습니다.

Configure Drivers - 이 버튼은 선택된 계측기의 모델을 확인하고, 해당 계측기에 사용할 수 있는 드라이버를 설정합니다. 단 IEEE-488.2(대부분의 VXI) 계측기만을 확인할 수 있습니다. RS-232와 같이 정교하지 않는 인터페이스를 가진 계측기는 자동으로 탐지 또는 확인하지 못할 수 있습니다.

Configure Drivers는 Instrument List창에서 선택된 계측기에서 실행합니다. 따라서 Instrument List창에서 계측기가 선택되어 있어야만 버튼을 사용할 수 있습니다. My Configuration 이나 인터페이스가 선택되어 있으면 이 버튼은 활성화 되지 않습니다.

Instrument List창에서 계측기를 선택하였지만 이 버튼이 활성화 되지 않았다면, 현재 사용중인 컴퓨터에 사용 할 수 있는 입출력 소프트웨어가 없는 것입니다. 이 경우에는 인터페이스를 지원하는 적합한 I/O라이브러리(VISA, SICL 등등)을 설치할 필요가 있습니다.

Settings... - 이 버튼은 Auto Discovery Settings 대화상자를 띄웁니다. 이 대화상자에서는 계측기를 탐색하는 동안에 수행해야 하는 동작을 선택할 수 있습니다.

Auto Discovery Settings 대화상자에서 “Detect only”를 선택하면, Find Instrument 버튼을 누를 때, 각 버스 어드레스에 장비의 유무만을 탐지합니다.

“Detect, identify, and configure…”을 선택하면, Find Instrument 버튼을 눌렀을 때, 각 감지한 계측기에 대하여 드라이버 설정과 계측기 모델확인 과정을 실행합니다. (Confirure Drivers버튼에 의한 실행된 설정과 동일합니다.)

“Ask before sending…”을 체크하면, 계측기로 *IDN? 명령을 보내기 전에 대화상자를 띠워서 명령어 실행여부를 확인합니다. 이것을 체크하지 않으면, 확인 동작 없이 모든 계측에게 *IDN?을 보냅니다. 사용중인 계측기가 오래되었거나, IEEE-488.2를 지원하지 않는 계측기와 연결되었다면, 이 확인 대화상자를 편리하게 사용할 수 있습니다.

Instrument - 이 영역에서는 계측기 설정들을 바꿀 수 있습니다. 3개의 버튼이 있습니다.

Properties- 이 버튼을 클릭하면 선택된 인터페이스 혹은 계측기의 설정을 편집할 수 있습니다. Properties 클릭하면 Interface Properties 또는 Instrument Properties 대화상자를 열 수 있습니다. 편집하고자 하는 인터페이스 혹은 계측기를 더블클릭합니다.

Add... - 이 버튼은 Instrument List 창에 계측기를 추가합니다. Add를 클릭하면, Instrument Properties 대화상자가 나타납니다. 대화상자의 각 항목에 값을 입력하여 계측기를 설정할 수 있습니다.

Remove - 이 버튼은 선택된 계측기를 삭제합니다. 해당 인터페이스에 연결되어 있던 모든 계측기가 삭제되면 그 인터페이스 노드는 자동으로 삭제됩니다. Instrument Manager의 Cancel 버튼을 클릭하면 변경사항을 저장하지 않고 Instrument Manager를 빠져나가므로 이전 내용을 복구할 수 있습니다.

Create I/O Object - 이 항목은 VEE 프로그램에 추가할 Instrument I/O 오브젝트의 타입을 결정합니다. 드라이브 버튼 중 하나를 클릭하여 작업공간에 Instrument I/O object를 추가합니다. 선택된 계측기에 사용할 수 없는 드라이버는 비활성화 됩니다.

대화상자 하단에는 6개의 버튼이 있습니다. : OK, Save, Cancel, Print, Help, 및 Load Samples

OK - 버튼을 클릭하여 계측기 설정을 완료하면서 Instrument Manager를 닫습니다.

Save - 버튼을 클릭하여 veeio 설정파일에 계측기 설정을 저장하고, Instrument Manager를 닫습니다. VEE 프로그램에 계측기 설정이 임베디드되어 있으면 이 버튼은 비활성화 됩니다.

Samples - 이 버튼을 클릭하면 이 계측기와 함께 사용할 수 있는 VEE 샘플 프로그램 목록을 표시합니다. 이 샘플 프로그램 중의 하나를 선택하면, 새로운 VEE프로그램이 실행되면서 계측기가 자동 설정됩니다. Run을 누르면 프로그램이 즉시 실행합니다.

Auto Discovery부가설명

Find Instrument는 Instrument List 창에서 선택된 노드에 접속되어 있는 계측기를 탐색합니다. Instrument List 창에서 My Configuration을 선택한 상태에서 Find Instrument 버튼을 실행하면, 모든 로컬 인터페이스를 탐색합니다. 특정 인터페이스를 선택한 상태에서는, 해당 인터페이스에 접속된 계측기만을 탐색합니다. GPIO 와 RS-232 인터페이스에 접속된 계측기는 자동 탐색할 수 없습니다. 이들은 계측기 자동탐색에 필요한 표준 프로토콜을 지원하지 않기 때문입니다.

My Configuration을 선택한 상태에서 Find Instrument버튼을 실행하면 LAN-게이트웨이 인터페이스를 찾지 못합니다. 그러나 LAN인터페이스 노드를 선택하고 Find Instrument버튼을 실행하면 원격 계측기를 찾을 수 있습니다. 새로운 LAN인터페이스는 Find Instrument 버튼을 실행하여 찾지 못합니다. LAN인터페이스는 반드시 한번은 수작업으로 등록시켜야 사용할 수 있습니다.

이 자동탐색 기능은 Instrument List 항목에 다음 내용을 표시합니다.

계측기 설정에 이미 등록되어 있거나, 인터페이스에 실제로 접속되어 있는 계측기는 컴퓨터 아이콘으로 표시됩니다.

계측기 설정 파일에 이미 등록되어 있지 않았지만, 해당 인터페이스에 실제로 접속되어 있는 계측기는 Instrument List 창에 등록되고 물음표 아이콘으로 표시됩니다.

이미 계측기 설정 목록에 등록되어 있었으나, 현재 인터페이스에 접속되어 있지 않은 계측기는 마크 표시되지 않습니다.

Auto Discovery 프로세스를 실행해도 Instrument List 창에 현재 표시되어 있는 계측기를 삭제하지 않습니다. 계측기를 추가할 수 있으며, 기존 계측기는 Live 모드인지 아닌지 확인할 수 있습니다. 그러나, Find Instruments버튼을 눌렀을 때, 해당 계측기가 Live 상태가 아니라면 해당 계측기는 목록에서 단순히 삭제되지 않습니다. 이러한 신중한 접근방식으로, 대부분의 상황에서도 Auto Discovery 프로세스를 결과를 사용할 수 있습니다. 현재 연결되어 있는 계측기와 동일한 IO 설정을 버튼 하나를 클릭하여 생성할 수는 없습니다. 현재 사용중인 컴퓨터에 접속된 계측기 목록만 필요하다면, Instrument List 창에서 모든 계측기를 삭제하고, Find Instruments버튼을 실행하면 됩니다.

I/O 설정 저장 부가설명

계측기 설정은 별도의 파일에 저장하거나 VEE 프로그램에 끼워넣을 수 있습니다. 별도의 파일에 저장하는 경우에는 vee.io파일에 저장됩니다. I/O 오브젝트를 가진 VEE 프로그램은 프로그램에서 참조하고 있는 계측기를 찾기 위해서 Instrument I/O 설정 파일을 사용합니다. 프로그램이 설정파일과 일치되지 않으면(예를 들어, 프로그램 파일이 하나의 컴퓨터에서 상응하는 vee.io 파일을 다른 컴퓨터로 복사한다면), 관련 계측기가 설정되지 않으므로, 오브젝트는 실행되지 않을 수 있습니다.

계측기 설정 정보가 VEE 프로그램 파일에 임베디드될 수 있습니다. Embedded 설정을 생성하기 위해서는, File [image] Save As...(또는 새 프로그램 파일의 경우에는 Save)을 선택하고, Save File 대화상자의 Options 항목에서 “Save I/O configuration with program” 항목을 체크합니다. 프로그램을 저장하기 위해서 OK 버튼을 클릭합니다. 프로그램과 함께 I/O 설정내용이 저장되면, Instrument Manager에 Save 버튼은 비활성화됩니다.

Instrument Manager에서는 I/O 설정이 별도의 vee.io파일로 저장되었는지 또는 프로그램에 임베디드 되었는지 표시됩니다.

주의사항

컴퓨터에 실제 계측기를 연결한 상태 또는 연결되지 않은 상태에서 I/O 오브젝트(Plug&play 및 IVI-COM 드라이버 오브젝트는 제외)를 실행할 수 있습니다. 실제 연결되어 있는 계측기를 제어해야 하는 경우에는, 0 이 아닌 실제 주소를 입력하고, Live Mode로 설정해야 합니다. Instrument Properties 대화상자에서 주소와 Live Mode를 설정할 수 있습니다. 주소가 0 이거나 Live Mode가 OFF로 설정되어 있으면, instrument 오브젝트는 실행되지만, 물리적인 계측기와 실제로 통신하지는 않습니다. Plug&play 드라이버 및 IVI-COM 드라이버 오브젝트는 Live Mode 가 OFF 인 경우에도 항상 실제 계측기와 통신을 시도합니다.

VEE는 물리적인 계측기와 통신하기 전에, 계측기는(그리고 그 인터페이스) 반드시 적절히 설정되어야 합니다. 이와 관련된 자세한 내용은 I/O Libraries설치 매뉴얼을 참조하십시오.

특정 계측기 관련 도움말은 해당 계측기의 패널드라이버 또는 컴포넌트 드라이버 오브젝트 메뉴의 Help를 실행하여 참조할 수 있습니다.

Panel Driver는 대화식으로, 혹은 프로그램 내부에서 사용할 수 있습니다. 개별 컴포넌트에 값을 설정하기 위해서는, 컴포넌트의 값을 가진 필드를 클릭하고 해당 대화상자를 닫습니다. 측정을 실행하고 결과를 표시하기 위해서는 패널드라이버 오픈뷰에서 관련된 오브젝트 또는 XY 그래프를 클릭합니다.

하나의 계측기를 제어하기 위해서 여러 개의 오브젝트를 사용할 수 있습니다. 또한 동일한 드라이버를 여러 번 복사하여 서로 다른 계측기를 제어하는데 사용할 수 있습니다. 이들 방법 중 어떠한 경우에도 어떤 계측기를 어떤 오브젝트가 제어하는가는 설정된 이름으로 결정됩니다.

오브젝트 위치

I/O [image] Instrument Manager

관련정보

Advanced Instrument Properties 대화상자, Advanced I/O 메뉴항목, Bus I/O Monitor, 컴포넌트 드라이버, Direct I/O, Instrument Properties 대화상자, 패널 드라이버, To/From VXIplug&play, To/From IVI-COM 및 To/From IVI-COM - Advanced.

설정된 계측기 삭제하기, 계측기 설정 추가하기, 계측기 설정 편집하기

I/O Configuration Techniques, I/O Control Techniques, Logical Units and I/O Addressing


Instrument Properties 대화상자

계측기를 제어하는 대화상자입니다.

사용법

Instrument Properties 대화상자는 새로운 계측기의 설정이나 기존 계측기 설정 내용을 편집할 때 사용합니다. GPIB, Serial, GPIO, VXI, TCPIP, NIDAQ, 및 USB 계측기와 이들과 관련된 Direct I/O, Plug&play Drivers, IVI-COM, 및 Panel Drivers 등의 오브젝트를 설정할 때 사용합니다.

대화 상자 설명

Instrument Properties 대화 상자는 아래와 같은 필드와 버튼이 있습니다.

주의
필드와 필드 사이를 이동할 때는 Tab키를 이용하거나 마우스로 원하는 필드를 클릭합니다. 대화 상자의 필드에 내용 입력을 완료할 때까지 Enter키를 누르지 마십시오. 키보드의 Enter를 누르면 대화 상자가 닫혀지므로 주의합니다. 이것은 OK버튼을 클릭한 것과 동일합니다.

Name - 계측기를 구분할 수 있는 고유한 이름을 기입합니다. 여러 개의 계측기를 사용하는 경우, 서로 다른 이름을 사용하여 계측기를 구분합니다. 두 개의 다른 계측기에 같은 이름을 기입할 수 없습니다.

Interface - 계측기와 통신하는 하드웨어 인터페이스의 종류를 설정합니다(디폴트는 GPIB입니다). GPIB를 클릭하면 사용 가능한 인터페이스 종류에 대한 리스트가 디스플레이 됩니다. 디폴트로, VEE는 7가지 타입의 인터페이스를 지원합니다. 7가지 타입은 GPIB, ASRL,TCPIP,USB, NIDAQ, VXI 및GPIO입니다. GPIB 및Serial용으로 전통적인 SICL 스타일의 인터페이스를 사용하고자 하는 경우에는, 메뉴 File => Default Preferences의 I/O탭 아래에 있는 Enable Pro 8.0 Legacy I/O를 선택합니다.

Board Number - 동일한 인터페이스를 가진 각각의 보드 번호는 0부터 부여됩니다. 디폴트 값은 0 입니다.

VISA Alias - VISA 주소 스트링을 대신하는 별칭입니다. 이것은 계측기를 인식하기 위한 간단한 방법을 제공합니다. 예를 들어, VISA 주소가 USB9::2391::1031:US432109::0::INSTR인 USB 계측기에 대한 별칭 주소로 USBDevice1을 사용할 수 있습니다. 이 VISA 별칭은 Agilent IO 라이브러리에 설정된 것과 동일해야 합니다.

VISA Address – 계측기의 VISA 주소입니다. 계측기에 따라 VISA 주소의 형식이 다릅니다. 다음 표는 VISA 주소 형식과 각 인터페이스 타입에 대한 사용예 입니다.

Interface | VISA Address | Example
GPIB | GPIB[board]::GPIB address::INSTR | GPIB0::20::INSTR -- 0 is the board number, 20 is the GPIB address of the instrument.
ASRL | ASRL[board]::INSTR | ASRL1::INSTR -- 1 is the board.
USB | USB[board]::USB address::INSTR | USB9::2391::1031:US432109::0::INSTR -- 9 is the board number, 2391::1031:US432109::0 is the USB address of the instrument.
TCP/IP | TCPIP[board]::host address[::LAN device name]::INSTR | TCPIP0::jetscrm3::inst0::INSTR -- 0 is the board number, jetscrm3 is the host address (this could also be an IP address such as 129.82.135.12).inst0 is the default LAN device name.

Drive Type – NI 계측기의 드라이버 타입입니다. 드롭다운 리스트에서 항목을 선택할 수 있습니다. VEE는 6가지 타입의 NI 드라이버를 지원합니다. 지원 드라이버는 NI-DAQmx, NI-DAQ, NI-DMM, NI-FGEN, NI-SCOPE, 및 NI-SWITCH입니다.

 Address (예 714) - 계측기의 I/O 주소를 설정합니다. 디폴트는 0 입니다. (0 이 아닌 주소를 입력하면, Live 모드가 ON으로 바뀝니다.) 주소를 설정하는 자세한 정보는 Help => Contents and Index => Tell Me About... => Configuring Instruments을 참조하십시오.

Gateway - VEE 프로세스는 다른 컴퓨터에 연결한 계측기에 접속할 때 LAN 게이트웨이의 호스트 이름을 설정합니다. 디폴트 값은 This host입니다. 더 자세한 I/O 제어에 대한 정보는 Help => Contents and Index => Tell Me About... => Advanced I/O Topics을 참조하십시오.

Board Number - 동일한 인터페이스를 가진 각각의 보드는 번호는 0부터 부여됩니다. 디폴트 값은 0 입니다.

Alias - VISA 주소를 대신하는 별칭입니다. USB 계측기의 VISA 주소는 길고 취급하기 쉽지 않습니다. 별칭을 사용하면 계측기를 쉽게 식별할 수 있습니다. 디폴트 값은 USBDevice1 입니다.

TCPIP Address - (Interface 항목에서 TCPIP를 선택할 때만 Instrument Properties 대화상자에 나타납니다.) 계측기의 TCPIP 주소입니다. TCPIP 주소 문자 형식은 [board]::host address[::LAN device name]::INSTR입니다. 괄호의 내용은 선택적입니다. 사용 예로 TCPIP0::jetscrm3::GPIB0,9::INSTR의 경우, 0은 보드이고 ::jetscrm3은 호스트 주소입니다. (이것은 129.82.135.12와 IP 주소의 역할을 합니다.) ::GPIB0는 GPIB/LAN 컨버터입니다. 9는 계측기의 주소이고 INSTR는 인터페이스입니다.

Advanced... - Advanced...버튼을 클릭하면 Advanced Instrument Properties대화 상자가 표시됩니다. Advanced Instrument Properties 대화 상자로부터 위에 열거한 인터페이스 각각의 대한 디바이스 드라이버 및 통신 파라미터를 설정합니다. 도움말에서 Advanced Instrument Properties 대화상자를 참조하십시오.

OK - 설정을 완료하면 수정한 내용을 확인하기 위해 OK버튼을 누릅니다.

오브젝트 위치

I/O [image] Instrument Manager...를 실행하여, Instrument List 창에서 각 계측기를 더블 클릭

관련정보

Advanced Instrument Properties 대화상자, Advanced I/O 메뉴항목, Bus I/O Monitor, 컴포넌트 드라이버, Direct I/O, Instrument Manager 대화상자, 패널 드라이버 및 계측기 설정 추가하기


Int16 오브젝트

스칼라 또는 1D 어레이 형태의 상수 2-byte 정수를 출력하는 오브젝트

사용법

Int16 오브젝트는 정수 상수를 설정하거나 사용자가 값을 입력할 수 있습니다. 값을 입력하기 위해서는 입력필드를 클릭하십시오.

사용예

Int16을 패널뷰 상에 나타나는 입력 대화상자로 사용하기 위해서는, Int16 오브젝트의 이름을 Enter the number of seconds to delay:같이 나타나도록 변경합니다. 사용자는 입력 필드에 요청한 정보를 입력합니다.

Int16에 공식 12*1024를 입력하면, 오브젝트는 결과값을 연산합니다.

속성창

General 탭:

DataShape - 출력되어야 할 값의 데이터 형태를 설정합니다. 입력할 수 있는 값은 스칼라또는 Array 1D 형태입니다.

 ArraySize: - DataShape 1D Array인 경우에, ArraySize는 어레이의 길이를 설정합니다.

 ArraySizeFixed - True로 설정하면, 어레이에는 라인을 추가하거나 삭제할 수 없습니다. 데이터 형태가 DataShape 1D Array인 경우에만 사용할 수 있습니다.

 ShowArrayIndices - True로 설정하면, 어레이에 있는 각 라인은 인덱스됩니다. 데이터 형태가 DataShape 1D Array인 경우에만 사용할 수 있습니다. 디폴트 값은 True입니다.

Wait for Input - True로 설정하면, 오브젝트는 값이 변경되기 전까지는 동작하지 않습니다. 속성을 False로 변경하면, 오브젝트는 제한사항을 만나는 즉시 동작하고 현재 선택된 값을 출력합니다. 디폴트 값은 False입니다.

 AutoExecute - True로 설정하면, 값이 선택되면 나머지 프로그램을 실행합니다. 만약 프로그램이 실행중이라면, AutoExecute는 무시됩니다. 디폴트 값은 False입니다.

Initialization 그룹:

 InitialValue - 설정되어야 할 값을 지정합니다. 디폴트 값은 0입니다.

 InitializeAtPreRun - True로 설정하면, InitialValue가 실행 직전에 설정됩니다. 디폴트 값은 False입니다.

 InitializeAtActivate - True로 설정하면, InitialValue가 활성화될 때 설정됩니다. 디폴트 값은 False입니다.

NumberFormat:

Global Format - 디폴트 포맷을 사용합니다. 디폴트 값은 on 입니다.

Integer: - Global Format이 off 되어 있으면, 오브젝트에 표시하는 숫자형식을 정수로 지정합니다. Decimal (예 42), Octal (예 #Q52), Hexadecimal (예 #H2a), 또는 Binary (예 #B00101010)등을 선택할 수 있습니다. 디폴트 값은 Decimal입니다.

주의사항

Initialize는 UserObject내의 값을 초기화하기 위해 자주 사용합니다. 초기값을 설정하는 다른 방법은 Default Value 컨트롤핀을 사용하는 것입니다.

컨트롤 입력은 Default Value, Reset, Enable Editing 또는 Disable Editing등을 추가할 수 있습니다.

Default Value 입력은 현재의 값을 변경할 수 있습니다. Scalar 또는 Array 1D 형태의 정수를 입력할 수 있습니다. 상수는 입력데이터의 형태를 매칭시키기 위하여 재구성됩니다.

Reset 입력은 값을 0으로 설정합니다. 상수가 Array 1D로 설정되면, 모든 값은 0으로 설정됩니다. Reset 상태에서는 입력에 있는 실제 데이터는 무시됩니다.

Enable Editing과 Disable Editing 입력은 오브젝트의 오픈뷰에서 값의 변경여부를 제어합니다.

InitialValue 항목은 Int16 가 어레이로 구성되어 있더라도, 항상 스칼라입니다.

오브젝트 위치

Data [image] Constant [image] Int16

관련정보

Alloc Int16, Complex, Constant, Coord, Date/Time, Selection Control, Default Preferences 대화상자, UInt8, Int32, PComplex, Real32, Real64, Text 및 Toggle Control.

상수 데이터 사용하기


Int32 오브젝트

스칼라 또는 1D 어레이 형태의 상수 4-byte 정수를 출력하는 오브젝트

사용법

Int32 오브젝트는 정수 상수를 설정하거나 사용자가 값을 입력할 수 있습니다. 값을 입력하기 위해서는 입력필드를 클릭하십시오.

사용예

Int32를 패널뷰 상에 나타나는 입력 대화상자로 사용하기 위해서는, Int32 오브젝트의 이름을 Enter the number of seconds to delay:같이 나타나도록 변경합니다. 사용자는 입력 필드에 요청한 정보를 입력합니다.

Int32 오브젝트에 공식 12*1024를 입력하면, 오브젝트는 결과값을 연산합니다.

속성창

 DataShape: - 출력되어야 할 값의 데이터 형태를 설정합니다. 입력할 수 있는 값은 스칼라또는 Array 1D 형태입니다.

 ArraySize: - DataShape 1D Array인 경우에, ArraySize는 어레이의 길이를 설정합니다.

 ArraySizeFixed - True로 설정하면, 어레이에는 라인을 추가하거나 삭제할 수 없습니다. 데이터 형태가 DataShape 1D Array인 경우에만 사용할 수 있습니다.

 Stepping Category: - Datashape가 Array 1D인 경우에는 활성화되지 않습니다.

 ShowArrayIndices - True로 설정하면, 어레이에 있는 각 라인은 인덱스됩니다. 데이터 형태가 DataShape 1D Array인 경우에만 사용할 수 있습니다. 디폴트 값은 True입니다.

  • EnableStepping - True로 설정하면, 값을 스크롤할 수 있는 스테핑 컨트롤이 입력필드의 오른쪽 끝에 나타납니다. 디폴트 값은 False입니다.

  • DetentSize - EnableStepping 속성이 True로 설정될 때, 이것은 값을 스크롤할 수 있는 스테핑 컨트롤에 사용하는 값의 간격을 설정합니다. 디폴트 값은 1입니다.

 Wait for Input - True로 설정하면, 오브젝트는 값이 변경되기 전까지는 동작하지 않습니다. 속성을 False로 변경하면, 오브젝트는 제한사항을 만나는 즉시 동작하고 현재 선택된 값을 출력합니다. 디폴트 값은 False입니다.

 AutoExecute - True로 설정하면, 값이 선택되면 나머지 프로그램을 실행합니다. 만약 프로그램이 실행중이라면, AutoExecute는 무시됩니다. 디폴트 값은 False입니다.

 InitialValue - 설정되어야 할 값을 지정합니다. 디폴트 값은 0입니다.

 InitializeAtPreRun - True로 설정하면, InitialValue가 실행 직전에 설정됩니다. 디폴트 값은 False입니다.

 InitializeAtActivate - True로 설정하면, InitialValue가 활성화될 때 설정됩니다. 디폴트 값은 False입니다.

NumberFormat:

 Global Format - 디폴트 포맷을 사용합니다. 디폴트 값은 on 입니다.

 Integer: - Global Format이 off 되어 있으면, 오브젝트에 표시하는 숫자형식을 정수로 지정합니다. Decimal (예 42), Octal (예 #Q52), Hexadecimal (예 #H2a), 또는 Binary (예 #B00101010)등을 선택할 수 있습니다. 디폴트 값은 Decimal입니다.

주의사항

Initialize는 UserObject내의 값을 초기화하기 위해 자주 사용합니다. 초기값을 설정하는 다른 방법은 Default Value 컨트롤핀을 사용하는 것입니다.

컨트롤 입력은 Default Value, Reset, Enable Editing 또는 Disable Editing등을 추가할 수 있습니다.

Default Value 입력은 현재의 값을 변경할 수 있습니다. Scalar 또는 Array 1D 형태의 정수를 입력할 수 있습니다. 상수는 입력데이터의 형태를 매칭시키기 위하여 재구성됩니다.

Reset 입력은 값을 0으로 설정합니다. 상수가 Array 1D로 설정되면, 모든 값은 0으로 설정됩니다. Reset 상태에서는 입력에 있는 실제 데이터는 무시됩니다.

Enable Editing과 Disable Editing 입력은 오브젝트의 오픈뷰에서 값의 변경여부를 제어합니다.

InitialValue 항목은 Int32 가 어레이로 구성되어 있더라도, 항상 스칼라입니다.

오브젝트 위치

Data [image] Constant [image] Int32

See Also

Alloc Int32, Complex, Constant, Coord, Date/Time, Selection Control, Default Preferences 대화상자, UInt8, Int16, PComplex, Real32, Real64, Text 및 Toggle Control.

상수 데이터 사용하기


Int32 Input 오브젝트

정수의 입력을 제공하는 팝업 대화상자를 디스플레이하는 오브젝트

사용법

Int32 Input 오브젝트는 사용자가 정수를 입력할 수 있는 대화상자를 나타내기 위해 사용하고, 입력된 숫자의 유효여부를 체크합니다.

팝업 대화상자에서, OK 버튼을 누르면 사용자가 입력한 정수가 Value 출력핀으로 출력됩니다. Cancel 버튼을 누르면, Cancel 출력핀으로 1이 출력됩니다.

오픈뷰

  • Prompt/Label - 사용자가 텍스트 필드에 데이터를 입력하도록 알려주는 스트링. 이 파라미터는 데이터 입력으로 추가할 수 있습니다. 디폴트 값은 ‘Enter Integer Value:’ 입니다.

  • Default Value - 어떤 내용을 입력하기 전에 대화상자의 입력필드에 표시되는 텍스트. 사용자가 어떤 내용을 입력하지 않고 OK 버튼을 누르면 이 텍스트가 출력됩니다. 이 파라미터는 데이터 입력으로 추가할 수 있습니다. 디폴트 값은 5입니다.

  • Value Constraint - 입력하는 텍스트의 유효 여부를 검사하는 방정식. 어떤 수학 표현식이나 UserFunction을 호출하여 사용할 수 있습니다. 이 파라미터는 데이터 입력으로 추가할 수 있습니다. 디폴트 값은 ‘0<=value AND value<=10’입니다; 이것은 사용자의 입력값이 0과 10사이에 있는지를 체크합니다. 어떤 값이라도 입력될 수 있도록 하기 위해서는 표현식으로 1을 사용합니다.

  • Error Message - 사용자의 입력값이 Value Constraint를 만족하지 않은 경우에 메시지 박스에 출력하는 텍스트. 이 파라미터는 데이터 입력으로 추가할 수 있습니다. 디폴트 값은 ‘You must enter a integer between 0 and 10’입니다.

속성창

  • PopupTimeoutEnabled - 이 속성을 True로 설정하면, 오브젝트에 Timeout 출력핀이 추가됩니다. 디폴트 값은 False입니다.

  • PopUpDuration - 팝업 대화상자가 디스플레이되는 시간을 설정합니다. 설정된 시간이 지나면, 대화상자는 사라지고 Timeout 출력핀으로 1을 출력합니다. Timeout 핀이 실행되면 다른 출력핀들은 데이터를 출력하지 않습니다. 이 필드는 PopupTimeoutEnabled가 True로 되어 있을 때만 사용할 수 있습니다. 디폴트 값은 60초 입니다.

  • PopupOKLabel - OK인 경우에 버튼 라벨을 OK로 설정합니다. 필요한 경우에는 버튼 라벨로 다른 단어를 사용할 수도 있습니다. 단어를 바꾸더라도 버튼의 기능은 그대로 유지됩니다.

  • PopupCancelLabel - Cancel인 경우에 버튼 라벨을 Cancel로 설정합니다. 필요한 경우에는 버튼 라벨로 다른 단어를 사용할 수도 있습니다. 단어를 바꾸더라도 버튼의 기능은 그대로 유지됩니다.

  • PopupPasswordMasking - 이 속성을 True로 설정하면, 입력된 텍스트가 별표(*)로 디스플레이 됩니다. 이 기능은 사용자가 비밀번호 같은 민감한 데이터를 입력할 때 유용합니다. Value 출력핀으로 출력되는 스트링은 감추어지지 않습니다. 디폴트 값은 False입니다.

주의사항

팝업 대화상자의 디폴트 위치는 작업영역의 중앙 근처입니다. 이 대화상자를 이동한 경우에는, 다음에 대화상자가 팝업될 때 새로운 위치에서 팝업됩니다.

에러 메시지 대화상자의 제목은 Int32 Input 오브젝트의 제목과 동일합니다.

팝업 대화상자에서 키보드 만을 이용하여 입력하기 위해서는: 대화상자가 팝업될 때 내용을 입력하고 Enter키 또는 Esc키를 사용합니다. 입력 필드와 버튼 사이를 이동하기 위해서는 Tab키를 사용하고, 버튼을 선택하기 위해서는 Space바를 사용합니다.

팝업 대화상자와 에러 대화상자는 프로그램이 실행중일 때만 디스플레이 됩니다. 팝업 대화상자가 디스플레이 되는 동안에는 모든 프로그램의 실행이 일시 중지되고, 대화상자가 닫히면 다시 실행이 진행됩니다.

오브젝트 위치

Data [image] Dialog Box [image] Int32 Input

관련정보

File Name Selection, List Box, Message Box, Real64 Input, Text Input, UserObject 및 오브젝트 메뉴

데이터 입력 대화상자 사용하기


Int64

Int64 오브젝트

스칼라 또는 1D 어레이 형태의 상수 8-바이트 정수를 출력하는 오브젝트

사용법

Int64 오브젝트는 정수 상수를 설정하거나 사용자가 값을 입력할 수 있습니다. 값을 입력하기 위해서는 입력필드를 클릭하십시오.

사용예

Int64를 패널뷰 상에 나타나는 입력 대화상자로 사용하기 위해서는, Int64 오브젝트의 이름을 Enter the number of seconds to delay:같이 나타나도록 변경합니다. 사용자는 입력 필드에 요청한 정보를 입력합니다.

Int64 오브젝트에 공식 1024*1024를 입력하면, 오브젝트는 결과값을 연산합니다.

속성창

 DataShape: - 출력되어야 할 값의 데이터 형태를 설정합니다. 입력할 수 있는 값은 스칼라또는 Array 1D 형태입니다.

 ArraySize: - DataShape 1D Array인 경우에, ArraySize는 어레이의 길이를 설정합니다.

 ArraySizeFixed - True로 설정하면, 어레이에는 라인을 추가하거나 삭제할 수 없습니다. 데이터 형태가 DataShape 1D Array인 경우에만 사용할 수 있습니다.

 Stepping Category: - Datashape가 Array 1D인 경우에는 활성화되지 않습니다.

 ShowArrayIndices - True로 설정하면, 어레이에 있는 각 라인은 인덱스됩니다. 데이터 형태가 DataShape 1D Array인 경우에만 사용할 수 있습니다. 디폴트 값은 True입니다.

  • EnableStepping - True로 설정하면, 값을 스크롤할 수 있는 스테핑 컨트롤이 입력필드의 오른쪽 끝에 나타납니다. 디폴트 값은 False입니다.

  • DetentSize - EnableStepping 속성이 True로 설정될 때, 이것은 값을 스크롤할 수 있는 스테핑 컨트롤에 사용하는 값의 간격을 설정합니다. 디폴트 값은 1입니다.

 Wait for Input - True로 설정하면, 오브젝트는 값이 변경되기 전까지는 동작하지 않습니다. 속성을 False로 변경하면, 오브젝트는 제한사항을 만나는 즉시 동작하고 현재 선택된 값을 출력합니다. 디폴트 값은 False입니다.

 AutoExecute - True로 설정하면, 값이 선택되면 나머지 프로그램을 실행합니다. 만약 프로그램이 실행중이라면, AutoExecute는 무시됩니다. 디폴트 값은 False입니다.

 InitialValue - 설정되어야 할 값을 지정합니다. 디폴트 값은 0입니다.

 InitializeAtPreRun - True로 설정하면, InitialValue가 실행 직전에 설정됩니다. 디폴트 값은 False입니다.

 InitializeAtActivate - True로 설정하면, InitialValue가 활성화될 때 설정됩니다. 디폴트 값은 False입니다.

NumberFormat:

 Global Format - 디폴트 포맷을 사용합니다. 디폴트 값은 on 입니다.

 Integer: - Global Format이 off 되어 있으면, 오브젝트에 표시하는 숫자형식을 정수로 지정합니다. Decimal (예 42), Octal (예 #Q52), Hexadecimal (예 #H2a), 또는 Binary (예 #B00101010)등을 선택할 수 있습니다. 디폴트 값은 Decimal입니다.

주의사항

Initialize는 UserObject 내의 값을 초기화하기 위해 자주 사용합니다. Default Value 컨트롤핀을 사용하여서도 초기값을 설정할 수 있습니다.

컨트롤 입력은 Default Value, Reset, Enable Editing 또는 Disable Editing 등을 추가할 수 있습니다.

Default Value 입력은 현재의 값을 변경할 수 있습니다. Scalar 또는 Array 1D 형태의 정수를 입력할 수 있습니다. 상수는 입력데이터의 형태를 매칭시키기 위하여 재구성됩니다.

Reset 입력은 값을 0으로 설정합니다. 상수가 Array 1D로 설정되면, 모든 값은 0으로 설정됩니다. Reset 상태에서는 입력에 있는 실제 데이터는 무시됩니다.

Enable Editing과 Disable Editing 입력은 오브젝트의 오픈뷰에서 값의 변경여부를 제어합니다.

InitialValue 항목은 Int64 가 어레이로 구성되어 있더라도, 항상 스칼라입니다.

Int64와 실행모드에 대하여

Int64는 가장 긴 정밀도를 가진 정수입니다. Agilent VEE는 int64의 최대값과 최소값을 지정하는 2개의 기본제공 숫자 상수를 제공합니다.: MaxInt64 및 MinInt64. 다른 실행모드에 있는 상수는 다른 타입으로 표현됩니다. 이들에 대한 사용 사례가 다음 표를 참조하십시오.

상수(constants) | VEE 8 실행모드 | VEE 7 실행모드 | VEE 6 실행모드 | VEE 4&5 실행모드
1 | Int32 | Int32 | Int32 | Real
1G | Real64 | Real64 | Real | Real
2147483648 (Int32의 최대값 + 1) | Int64 | Real64 | Real | Real
2147483647 (Int32의 최대값) | Int32 | Real64 | Real | Real
9223372036854775808 (Int64의 최대값 + 1) | Real64 | Real64 | Real | Real
9223372036854775807 (Int64의 최대값) | Int64 | Real64 | Real | Real
-9223372036854775808 | Real64* | Real64 | Real | Real
최소Int64** | Int64 | Int64 | Int64 | Int64

* Agilent VEE에서 Int64의 최소값 -9223372036854775808는 기본제공 상수 MinInt64와 같은 값입니다.

** MinInt64 과 MaxInt64는 2개의 기본제공 상수입니다. 이들은 Int64 상수처럼 동작합니다. 사용자는 다른 실행모드에서 MinInt64 과 MaxInt64기본제공 상수를 사용할 수도 있습니다.

오브젝트 위치

Data [image] Constant [image] Int64

See Also

Alloc Int64, Complex, Constant, Coord, Date/Time, Selection Control, Default Preferences 대화상자, UInt8, Int16, Int32, PComplex, Real32, Real64, Text 및 Toggle Control.

상수 데이터 사용하기


Int32 Knob 오브젝트

노브의 정수값을 출력하는 오브젝트

사용법

Int32 Knob 오브젝트는 Int32 값을 입력하기 위해 사용합니다. Int32 Knob는 패널뷰에서 유용하게 사용됩니다.

Open View Parameters

오픈뷰는 노브의 현재값, 최소값 및 최대값을 위한 필드와 노브 컨트롤을 디스플레이 합니다.

속성창

Orientation - 노브가 디스플레이 되는 방향을 설정합니다. 디폴트 값은 Horizontal입니다.

 ShowDigitalDisplay - True로 설정하면, 노브의 현재값이 오브젝트 오픈뷰의 바닥에있는 편집 필드에 디스플레이 됩니다. 이 값을 수정하면 노브의 위치가 변경됩니다. 디폴트 값은 True입니다.

ShowTic - 스케일의 tic마크와 라벨의 보이기/숨기기를 컨트롤합니다. 디폴트 값은 True입니다.

 LabelSpacing: - 스케일 값으로 표시되는 tic 마크를 컨트롤합니다. 디폴트 값은 EveryOtherTic입니다.

 DetentSize: - 노브에서 사용할 수 있는 값의 간격을 설정합니다. 다른 값을 입력할 경우에는 가장 가까운 Detent값으로 변환됩니다. 어떤 실수 Detent값도 Int32로 변환됩니다. 디폴트 값은 1입니다.

Wait for Input - True로 설정하면, 오브젝트는 값이 변경되기 전까지는 동작하지 않습니다. 속성을 False로 변경하면, 오브젝트는 제한사항을 만나는 즉시 동작하고 현재 선택된 값을 출력합니다. 디폴트 값은 False입니다.

 AutoExecute - True로 설정하면, 값이 선택되면 나머지 프로그램을 실행합니다. 만약 프로그램이 실행중이라면, AutoExecute는 무시됩니다. 디폴트 값은 False입니다.

InitialValue - 설정되어야 할 값을 지정합니다. 디폴트 값은 0입니다.

 InitializeAtPreRun - True로 설정하면, InitialValue가 실행 직전에 설정됩니다. 디폴트 값은 False입니다.

 InitializeAtActivate - True로 설정하면, InitialValue가 활성화될 때 설정됩니다. 디폴트 값은 False입니다.

Number Format - Global Format이 off 되어 있으면, 오브젝트에 표시하는 숫자형식을 정수로 지정합니다. Decimal (예 42), Octal (예 #Q52), Hexadecimal (예 #H2a), 또는 Binary (예 #B00101010)등을 선택할 수 있습니다. 디폴트 값은 Decimal입니다.

주의사항

Initialization는 UserObject내의 값을 초기화하기 위해 자주 사용합니다. 초기값을 설정하는 다른 방법은 Default Value 컨트롤핀을 사용하는 것입니다.

컨트롤 입력은 Default Value, Reset, Enable Editing, Disable Editing, MaxValue, MinValue, 또는 Detents등을 추가할 수 있습니다:

Default Value 입력은 현재의 값을 변경할 수 있습니다. 이 입력은 Int32 스칼라 값을 필요로 합니다.

Reset 입력은 값을 0으로 설정합니다. Reset 상태에서는 입력에 있는 실제 데이터는 무시됩니다.

Enable Editing과 Disable Editing 입력은 오브젝트의 오픈뷰에서 값의 변경여부를 제어합니다.

MaxValue와 MinValue 입력은 최소값과 최대값 필드를 설정합니다. 실수 스칼라 값의 입력이 필요하고, Int32로 변환됩니다.

Detents 입력은 detent 값을 설정합니다.

오브젝트 위치

Data [image] Continuous [image] Int32 Knob

관련정보

Complex, Selection Control, Int32, Int32 Slider, PComplex, Real64, Real64 Knob, Text, Toggle Control 및 오브젝트 메뉴

데이터 슬라이더 및 노브 오브젝트 사용하기


Int32 Slider 오브젝트

슬라이더의 정수값을 출력하는 오브젝트.

사용법

Int32 Slider 오브젝트는 Int32 값을 입력하기 위해 사용합니다. Int32 Slider는 패널뷰에서 유용하게 사용됩니다.

오픈뷰 항목

오픈뷰는 슬라이더의 현재값, 최소값 및 최대값을 위한 필드와 슬라이더 컨트롤을 디스플레이 합니다.

속성창

Orientation - 슬라이더가 디스플레이 되는 방향을 설정합니다. 디폴트 값은 Vertical입니다.

 ShowDigitalDisplay - True로 설정하면, 슬라이더의 현재값이 오브젝트 오픈뷰의 바닥에 있는 편집 필드에 디스플레이 됩니다. 이 값을 수정하면 슬라이더의 위치가 변경됩니다. 디폴트 값은 True입니다.

ShowTics - True로 설정하면, 슬라이더는 최대값과 최소값 사이에서 tic 마크와 라벨을 표시합니다. 디폴트 값은 True입니다. VEE 4.0 이전 버전에서의 디폴트 값은 False입니다.

 LabelSpacing: - 스케일 값으로 표시되는 tic 마크를 컨트롤합니다. 디폴트 값은 EveryOtherTic입니다.

 Detent Size: - 슬라이더에서 사용할 수 있는 값의 간격을 설정합니다. 다른 값을 입력할 경우에는 가장 가까운 Detent값으로 변환됩니다. 어떤 실수 Detent값도 Int32로 변환됩니다. 디폴트 값은 1입니다.

Wait for Input - True로 설정하면, 오브젝트는 값이 변경되기 전까지는 동작하지 않습니다. 속성을 False로 변경하면, 오브젝트는 제한사항을 만나는 즉시 바로 동작하고 현재 선택된 값을 출력합니다. 디폴트 값은 False입니다.

 AutoExecute - True로 설정하면, 값이 선택되면 나머지 프로그램을 실행합니다. 프로그램이 실행중이라면, AutoExecute는 무시됩니다. 디폴트 값은 False입니다.

InitialValue - 설정되어야 할 값을 지정합니다. 디폴트 값은 0입니다.

 InitializeAtPreRun - True로 설정하면, InitialValue가 실행 직전에 설정됩니다. 디폴트 값은 False입니다.

 InitializeAtActivate - True로 설정하면, InitialValue가 활성화될 때 설정됩니다. 디폴트 값은 False입니다.

NumberFormat - Global Format이 off 되어 있으면, 오브젝트에 표시하는 숫자형식을 정수로 지정합니다. Decimal (e.g. 42), Octal (e.g. #Q52), Hexadecimal (e.g. #H2a), 또는 Binary (e.g. #B00101010)등을 선택할 수 있습니다. 디폴트 값은 Decimal입니다.

주의사항

Initialize는 UserObject내의 값을 초기화하기 위해 자주 사용합니다. 초기값을 설정하는 다른 방법은 Default Value 컨트롤핀을 사용하는 것입니다.

컨트롤 입력은 Default Value, Reset, Enable Editing, Disable Editing, MaxValue, MinValue, 또는 Detents등을 추가할 수 있습니다:

Default Value 입력은 현재의 값을 변경할 수 있습니다. 이 입력은 Int32 스칼라 값을 필요로 합니다.

Reset 입력은 값을 0으로 설정합니다. Reset 상태에서는 입력에 있는 실제 데이터는 무시됩니다.

Enable Editing과 Disable Editing 입력은 오브젝트의 오픈뷰에서 값의 변경여부를 제어합니다.

MaxValue와 MinValue 입력은 최소값과 최대값 필드를 설정합니다. 실수 스칼라 값의 입력이 필요하고, Int32로 변환됩니다.

Detents 입력은 detent 값을 설정합니다.

오브젝트 위치

Data [image] Continuous [image] Int32 Slider

관련정보

Complex, Selection Control, Int32, Int32 Knob, PComplex, Real64, Real64 Knob, Real64 Slider, Text, Toggle Control 및 오브젝트 메뉴

데이터 슬라이더 및 노브 오브젝트 사용하기


인터페이스 이벤트

VXI, GPIB 또는 Serial에 대한 비동기 인터페이스 이벤트를 캡쳐하는 오브젝트

사용법

Interface Event 오브젝트는 다양한 인터페이스 이벤트를 감지하도록 구성할 수 있습니다. 설정상태에 따라서, 오브젝트는 이벤트를 대기하거나, 다른 병렬 쓰레드에서 실행을 포기하거나, 인터페이스 상태의 부울대수(0 또는 1)또는 다른 인디케이터를 간단히 리턴합니다.

Interface Event 오브젝트가 이벤트를 대기하도록 설정되어 있으면, 이벤트가 발생시에 Interface Event 오브젝트가 실행됩니다. VEE 3 실행 모드에서는, 오브젝트에 의해 호스팅된 쓰레드는 다른 병렬 쓰레드보다 우선권을 가지고 실행이 됩니다. 만약 Interface Event 오브젝트가 인터페이스 상태에 대한 인디케이터를 반환하도록 설정된다면, 쓰레드는 보통의 우선 순위을 가지며 다른 쓰레드와 함께 병렬 실행됩니다.

오픈뷰 항목

Interface -일반적으로 선택한 인터페이스를 디스플레이 합니다. 이 항목을 클릭하면 일반적으로 구성된 인터페이스들의 리스트가 디스플레이 됩니다. 리스트에 인터페이스를 디스플레이하기 위해서는, 적어도 하나의 계측기가 메뉴바의 I/O [image] Instrument Manager.... 에서 설정되어야 합니다. 같은 타입의 여러 인터페이스들은 논리적인 단위(예:”hpib7”과 “hpib8”)로 구분됩니다.

Action - 지정된 이벤트를 받았을 때 Interface Event 오브젝트의 실행 동작을 지정합니다.

Wait - 발생되는 이벤트를 대기합니다. 오브젝트는 이벤트가 발생할 때 실행합니다. 이 오브젝트에 의해 호스팅되는 쓰레드는 다른 병렬 쓰레드보다 우선권을 가집니다. 일단 이벤트가 발생하며 실행을 완료할 때까지 동일한 이벤트를 받지 않습니다. 이벤트가 발생하면, 부울대수 True(1) 또는 각 인터페이스 이벤트별 비트 패턴을 출력합니다.

No Wait - 32 비트 정수로 지정되어 있는 현재의 상태를 Event 출력핀으로 출력하고, Interface Event 오브젝트를 즉시 실행합니다. 이벤트가 발생하지 않으면, 이 값은 부울 FALSE(0)입니다. 이벤트가 발생하면, TRUE(1) 또는 각 인터페이스 이벤트별 비트 패턴을 리턴합니다. No Wait 설정에서 Interface Event 오브젝트에 의해 호스팅된 쓰레드는 보통의 우선순위를 가지며 다른 병렬 쓰레드와 같이 실행됩니다.

Event - 인터페이스 이벤트를 선택할 수 있습니다. 필드를 클릭하여 이벤트의 종류를 선택합니다. Wait 또는 No Wait 선택에 따른 동작은 다음과 같습니다. Wait 및 No Wait에 대한 쓰레드 전달 우선권에 대한 내용은 위의 Action 에서의 내용과 같습니다.

SRQ - GPIB 인터페이스의 경우에는 이것 한가지만 선택할 수 있습니다.:
-- Action 에서 Wait를 선택하였으면, GPIB 계측기가 서비스 요청 라인(Service Request Line)을 활성화할 때 까지 인터페이스 이벤트 오브젝트의 실행을 지연시킵니다. event 출력핀으로 부울대수 값 TRUE(1)을 출력합니다.
-- Action 에서 No Wait를 선택하였으면, 이벤트가 발생하지 않았을 때, 부울 값 FALSE(0)을 출력합니다. 이벤트가 발생하는 경우에는, 부울 값 TRUE(1)을 event 출력 핀으로 출력합니다.

DAV - (Data Available) 시리얼 인터페이스의 경우에는 이 항목 한가지만 선택할 수 있습니다.
-- Action 에서 Wait를 선택하였으면, Interface Event 오브젝트는 수신버퍼에서 데이터를 받아들이는 동안, Interface Event 오브젝트의 실행이 지연됩니다. 수신버퍼에 있는 바이트의 개수는 event 출력 핀에 쌓이므로, 후단의 오브젝트들이 이 버퍼의 내용을 읽을 수 있습니다.
-- Action 에서 No Wait를 선택하였으면, Interface Event 오브젝트는 event 출력핀으로 수신버퍼에서 바이트의 숫자를 배포하고 즉시 실행합니다.

Sys Reset - VXI 인터페이스에서 시스템 리셋이 발생할 때 Interface Event 오브젝트를 실행합니다.
--Action 에서 Wait를 선택하였으면, 시스템 리셋 발생시, 부울 대수 TRUE(1)을 event출력핀을 통하여 출력합니다.
--Action 에서 No Wait를 선택하였으면, 시스템 리셋이 발생되지 않을 경우, 부울 대수 FALSE(0)을 event 출력핀을 통하여 출력합니다.

Sys Active - VXI Resource Manager 가 VXI 초기화 및 관리를 종료할 때, VXI 인터페이스로 Begin Normal Operation(BNO) 명령을 보냅니다. Sys Action이 설정되어 있다면, 다음의 내용이 발생하면 Interface Event 오브젝트가 실행됩니다.:
-- Action 에서 Wait를 선택하였으면, BNO 명령 발생시 부울대수 TRUE(1)이 event 출력핀으로 출력됩니다.
-- Action 에서 No Wait를 선택하였으면, 이벤트가 발생하지 않을 때 부울대수 FALSE(0)이 event 출력핀으로 출력됩니다.

Sys Deactive - 일반적인 VXI 동작이 중지되면, Abort Normal Operation(ANO) 또는 End Normal Operation(ENO)명령이 인터페이스로 보내집니다. Sys Deactive이 설정되었다면, Sys Deactive가 발생할 때, Interface Event 오브젝트가 실행됩니다.
--Action 에서 Wait를 선택하였으면, ANO 또는 ENO 명령이 발생되었을 때 부울대수 TRUE(1)을 event 출력 핀으로 출력됩니다.
--Action 에서 No Wait를 선택하였으면, 이벤트가 발생되지 않았을 때 FALSE(0)을 출력합니다.

TTL Trig – TTL Trig가 설정되었으면, Interface Event 오브젝트는 VXI TTL 트리거 라인을 모니터링합니다. :
--Action 에서 Wait를 선택하였으면, VXI 장치가VXI 백플레인에서 하나 또는 8개 이상의 TTL 트리거 선들이 활성할 때 Interface Event 오브젝트가 실행되고, event 출력핀으로 32 비트 정수를 출력 합니다. 32 비트 정수 값 중에서 하위 바이트만 유용합니다. 이 바이트는 8 개의 TTL 트리거 라인 중에서 어떤 비트가 활성화되어 있는지에 대한 비트패턴을 나타냅니다. 예를 들어 00010001은 TTL 라인0과 4에 트리거 되었음을 표시합니다.
--Action 에서 No Wait를 선택하였으면, 부울대수 FALSE(0)은 트리거가 발생되지 않았을 경우 출력합니다.

ECL Trig – ECL 트리거가 설정되었을 때, Interface Event 오브젝트는 VXI ECL 트리거 라인을 모니터링합니다.:
--Action 에서 Wait를 선택하였으면, VXI 백플레인에서 1개 혹은 4개 이상의 ECL 트리거라인을 활성화할 때, Interface Event 오브젝트가 실행되고, event 출력핀으로 32 비트 정수를 출력 합니다. 32 비트 정수 값 중에서 하위 바이트만 유용합니다. 이 바이트는 4 개의 ECL 라인 중에서 어떤 비트가 활성화되어 있는지에 대한 비트패턴을 나타냅니다. (비트0은 트리거 라인 0에, 비트 3은 트리거 라인 3에 대응됩니다.) Set(1)된 비트는 해당 라인이 트리거되었음을 나타냅니다. 예를 들어, 00001001은 ECL 라인 0과 3이 트리거 되었음을 표시합니다.
--Action 에서 No Wait를 선택하였으면, 부울대수 FALSE(0)은 트리거가 발생되지 않았을 때, 출력합니다. 일부 VXI 카드 케이지는 두개의 ECL 트리거 라인만을 제공하는 경우도 있습니다.

EXT Trig – EXT Trig로 설정되었을 때, Interface Event 오브젝트는VXI EXT 트리거 라인을 모니터링합니다.:
--Action 에서 Wait를 선택하였으면, 외부장비가 임베드된 Controller의 “Trig In” 입력을 활성화 할때, 인터페이스 Interface Event가 실행됩니다. 4개 까지의 외부 트리거 입력이 발생할 수 있습니다. Interface Event오브젝트가 실행되었을 때 32비트 정수는 event 출력핀으로 출력됩니다. 이 정수의 하위바이트는 4개의 외부 트리거 라인의 활성화 상태에 대한 비트 패턴을 표시합니다. (비트0은 트리거 라인 0에, 비트 3은 트리거 라인 3에 대응됩니다.) Set(1)된 비트는 해당 트리거가 발생되었음을 표시합니다. 예를 들어 00001001은 외부트리거 라인0과 3이 트리거 되었음을 표시합니다.
--Action 에서 No Wait를 선택하였으면, 트리거가 발생되지 않았을 경우 부울대수 FALSE(0)를 출력합니다. 일부 컨트롤러는 외부트리거 입력이 없습니다.

Unknown Interrupt – Unknown Interrupt로 설정되었으면, Interface Event 오브젝트가 VXI 컨트롤러의 서번트 영역에 있지 않은 VME또는 VXI 장비로부터의 VME 인터럽트를 체크합니다.
--Action 에서 Wait를 선택하였으면, 인터럽트가 발생하면 Interface Event 오브젝트가 실행됩니다. 인터럽트 응답(IACK)시 VXI 버스 상에서 값을 32 비트 정수로 리턴합니다.
--Action 에서 No Wait를 선택하였으면, FALSE(0)은 인터럽트가 발생되지 않을 때 출력합니다.

Unknown Signal - Unknown Signal로 설정되었으면, Interface Event 오브젝트는 VXI 컨트롤러의 서번트 영역에 있지 않은 VXI 장비로부터의 signal register를 체크합니다.
--Action 에서 Wait를 선택하였으면, Unknown Signal 발생시 Interface Event 오브젝트가 실행됩니다. Signal Write 레지스터의 값이 32비트 정수로 리턴됩니다.
--Action 에서 No Wait를 선택하였으면, 신호가 발생되지 않을 때는 부울대수 FALSE(0)가 출력됩니다.

주의사항

Interface Event 오브젝트는 Action 파라미터의 선택에 따라서 비동기 또는 동기 모드로 실행할 수 있습니다. No Wait는 동기, 폴링인 경우에 사용되며, 오브젝트는 즉시 실행됩니다. 이로 인해 실행되는 모든 쓰레드는 현재 실행되고 있는 다른 모든 쓰레드와 동일한 우선 순위를 가집니다. Wait를 선택하면, Interface Event는 것은 이벤트가 발생할 때 까지 대기합니다. Interface Event 오브젝트에 의해서 호스팅되는 오브젝트는 높은 우선순위를 가지며 먼저 실행을 완료할 때 가지 다른 모든 쓰레드가 실행되는 것을 블로킹합니다.

Timeout Control Pin – 실행이 중지된 인터페이스가 서비스를 실행하는데 까지 기다리는 시간을 설정합니다. 설정된 시간까지 서비스를 실행하는 인터페이스가 없으면 에러가 발생합니다.

오브젝트 위치

I/O [image] Advanced I/O [image] Interface Event

관련정보

Instrument Event 또는 Interface Operations.

GPIB 계측기 폴링하기


Interface Operations 오브젝트

GPIB, VXI, 또는 serial 통신을 이용하여 기초 명령어나 데이터를 전송하기 위해 트랜잭션을 사용하는 오브젝트.

Interface Operations 오브젝트는 인터페이스 관련 태스크, Direct I/O 또는 Instrument Driver가 필요한 컨트롤을 제공할 수 없는 상황에서 계측기와 통신해야 하는 등의 특별한 경우에 사용해야 합니다.

사용법

Interface Operations는 다음과 같은 기본동작에 사용합니다:

비 표준 GPIB 어드레스 시퀀스를 전송하는 것.

GPIB 그룹 트리거 메시지를 전송하거나 VXI 트리거 라인을 가져오는 것.

GPIB를 통하여 임의의 byte를 ATN true와 상관없이 전송하는 것.

VXI 또는 GPIB 인터페이스에서 명령어를 초기화 명령이나 리셋 명령을 전송하는 것.

복수 라인 메시지를 지정한 IEEE 488.1을 전송하는 것.

serial 인터페이스에서 interface lock과 unlock 메시지를 전송하는 것.

Interface Operations을 사용하기 위해서는 하나 이상의 트랜잭션을 추가해야 합니다. 트랜잭션을 추가하기 위해서는 오브젝트 메뉴에서 Add Trans를 클릭하십시오. 트랜잭션은 오브젝트의 오픈뷰에 텍스트 라인으로 나열됩니다. 트랜잭션을 편집하기 위해서는 해당 트랜잭션을 클릭하고 대화상자에서 내용을 수정합니다.

오브젝트 메뉴

Edit Trans – 현재 하이라이트된 트랜잭션을 수정합니다.

Add Trans - 리스트의 맨 마지막에 트랜잭션을 추가합니다.

Insert Trans - 현재 하이라이트된 트랜잭션 앞에 트랜잭션을 삽입합니다.

Cut Trans - 현재 하이라이트된 트랜잭션을 잘라내어(삭제), "cut-and-paste" 버퍼에 저장합니다.

Copy Trans - 현재 하이라이트된 트랜잭션을 복사하여 "cut-and-paste" 버퍼에 저장합니다.

Paste Trans - 이전에 “잘라내기” 또는 “복사” 했던 트랜잭션을 붙여 넣습니다.

Delete Trans - 하이라이트된 트랜잭션을 리스트에서 삭제합니다.

Move Trans Up – 하이라이트된 트랜잭션을 위로 이동합니다.

Move Trans Down - 하이라이트된 트랜잭션을 아래로 이동합니다.

Print Trans - 현재 하이라이트된 트랜잭션을 설명하는 대화상자를 인쇄합니다.

속성창

Interface: - 버스 설정을 디스플레이하고, 인터페이스를 변경할 수 있습니다. 동일한 종류의 복수 인터페이스는 논리단위(예, "hpib7" 또는 "hpib8")로 구별됩니다.

 Timeout: - 타임아웃 시간을 설정합니다. 컨트롤 입력핀으로 설정할 수 있습니다.

단축키

트랜잭션을 빠르게 삽입하기 위해서는, 트랜잭션에 커서를 위치시킵니다. 커서가 위치한 트랜잭션 다음에 트랜잭션을 삽입하기 위하여 Insert 키를 누릅니다.

트랜잭션을 빠르게 삭제(“kill”)하기 위해서는, 트랜잭션에 커서를 위치시키고 Delete 키를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 잘라내기 위해서는 CTRL+X를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 복사하기 위해서는 CTRL+C를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼에서 붙여넣기 위해서는 CTRL+V를 누릅니다.

트랜잭션 이전이나 다음으로 빠르게 이동하기 위해서는, 위 화살표 또는 아래 화살표를 누릅니다.

오브젝트 위치

I/O [image] Advanced I/O [image] Interface Operations

관련정보

Advanced I/O, Bus I/O Monitor, Formula 및 Instrument Manager 대화상자.


Interface Properties 대화상자

다양한 인터페이스 어드레스를 설정하기 위해 사용하는 대화상자

사용법

Interface Properties 대화상자는 VXI, 또는 GPIB(Legacy)인터페이스 어드레스를 설정하거나 편집하기 위해 사용합니다.

오픈뷰 항목

다음의 파라미터들은 Interface Properties 대화상자에서 설정됩니다.

Interface: - 이 항목은 설정해야 할 인터페이스 타입입니다. (디폴트 인터페이스 타입은 Instrument List에서 선택한 타입입니다.)

Address: - 이 항목은 설정하거나 편집하고자 하는 인터페이스의 논리단위 번호입니다.

Gateway: - VEE 프로그램이 리모트 호스트에 연결된 계측기를 접근해야 할 때 LAN 게이트웨이의 호스트이름을 지정합니다. 디폴트 값은 ‘This host’ 입니다.

오브젝트 위치

I/O [image] Instrument Manager...

Instrument Manager 대화상자에 있는 Instrument List에서 VXI, 또는 GPIB(Legacy) 같은 interface 아이콘중의 하나를 선택(하이라이트)하고, Properties 버튼을 클릭하면 Interface Properties 대화상자가 나타납니다.

관련정보

Advanced I/O 메뉴항목, Advanced Instrument Properties 대화상자 및 Instrument Properties 대화상자, 계측기 설정 추가하기 및 계측기 설정 편집하기


IP Address 오브젝트

호스트 장비의 IP 어드레스를 검색합니다.

오브젝트 위치

System [image] Environment [image] IP Address


Is Leap Year? 오브젝트

윤년이면 부울 참값을 출력합니다.

오브젝트 위치

System [image] DateTime [image] Is Leap Year?


Is Path Rooted? 오브젝트

경로가 루트(root)와 함께 제공되었는지 또는 아닌지에 따라 부울값을 출력합니다. 예를 들어, \vee\src는 루트가 제공된 반면에 vee\src는 루트가 제공되지 않았습니다.

오브젝트 위치

System [image] Path [image] Is Path Rooted?


JCT 오브젝트

가장 최근에 활성화된 입력 데이터(복수의 입력중의 하나)의 값을 출력하는 오브젝트

사용법

JCT는 2개 이상의 오브젝트 데이터 출력핀을 다른 하나의 오브젝트 데이터 입력핀으로 연결한 OR처럼 사용합니다. JCT는 데이터의 초기화를 위한 피드백 루프에서 사용됩니다. JCT는 수동적으로 데이터를 전송합니다. VEE 4.0 이상에서는, JCT는 피드백을 사용하는 쓰레드에 필요합니다.

주의사항

JCT는 초기상태를 설정하기 위해 사용합니다.

JCT에 입력되는 값은 비동기 데이터 입력입니다. 이것은 JCT가 데이터 입력핀이 활성화될때 마다 동작하는 것을 의미합니다. JCT가 동작하기 전에 JCT에 있는 하나 이상의 핀이 활성화될 때, 입력된 데이터는 입력된 순서대로 큐에 쌓입니다. JCT는 큐가 빌 때까지 반복하는 반복자(iterator)처럼 출력핀을 반복하여 활성화 시킵니다. 피드백 루프에 의해 입력핀이 활성화 되는 경우에는, 복수의 활성화는 무시됩니다.

JCT는 일반적으로 피드백 루프에서 사용됩니다. 초기값은 하나의 입력핀으로 첫번째로 전송되고, 피드백 값은 하나 이상의 다른 데이터 입력을 통해서 전송됩니다.

오브젝트 위치

Flow [image] Junction

관련정보

DeMultiplexer, 속성창 (오브젝트) 및 오브젝트 메뉴


Join 오브젝트

텍스트 어레이를 텍스트 분리자(separator)와 함께 결합합니다. 예를 들어, 값 하나;둘;셋;넷. 분리자로 콤마를 사용하면 하나,둘,셋,넷 형식이 됩니다. 이것은 CSV 파일을 빠르게 생성하는 방법입니다.

오브젝트 위치

System [image] String   [image] Join


Junction 오브젝트

JCT를 참조하십시오.


Label 오브젝트

패널뷰에 텍스트 라벨을 배치하기 위하여 사용하는 오브젝트

사용법

Label 오브젝트는 패널뷰에서 라벨 또는 제목을 생성하기 위해 사용합니다. 이 오브젝트는 실행할 필요가 없으며, 오브젝트의 배경색을 패널뷰의 배경색과 혼합하여 사용합니다.

오픈뷰

현재의 라벨 스트링을 나타냅니다. 디폴트 값은 Label입니다. Label을 변경하기 위해서는 오브젝트 메뉴의 Properties를 사용하여 오브젝트의 타이틀을 변경하거나, 데이터 입력핀을 사용합니다.

속성창

Justification - 오브젝트 테두리 내에 있는 텍스트의 배치를 지정합니다. 디폴트는 Left입니다.

주의사항

Label의 디폴트 오브젝트 색상은 디폴트 패널뷰 색상과 동일합니다. 그래서 Label의 배경색이 패널뷰의 배경색으로 혼합됩니다.

패널뷰에서 Label 오브젝트의 디폴트 Border 설정은 None입니다.

라벨 값을 입력하기 위해 데이터 입력핀을 사용한 경우에는, Label 오브젝트는 실행시에 스트링의 길이에 적합하도록 사이즈가 자동으로 조정되지 않습니다. 스트링이 오브젝트보다 긴 경우에는 Label은 데이터 입력핀에서 전송한 텍스트 스트링을 잘라냅니다. 데이터 입력핀을 사용할 때는 스트링에 적합하도록 Label 오브젝트의 사이즈를 크게 하십시오.

오브젝트 위치

Display [image] Label

관련정보

Beep 또는 Text.

라벨 추가하기


Last Directory Access Time 오브젝트

디렉토리를 최근에 엑세스한 시간을 가져옵니다.

오브젝트 위치

System [image] Directory [image] Last Directory Access Time


Last Directory Write Time 오브젝트

지정한 디렉토리를 최근에 수정한 시간을 가져옵니다.

오브젝트 위치

System [image] Directory [image] Last Directory Write Time


Last Error 오브젝트

VEE 프로그램에서 최근에 발생한 Error 대화상자를 검색하는데 사용하는 View 메뉴 항목

사용법

Last Error는 VEE 프로그램에서 최근에 발생한 Error 대화상자를 검색합니다. Error 대화상자의 Go To 버튼을 클릭하면, VEE 프로그램의 디테일뷰가 VEE 작업영역에 나타납니다. 프로그램이 Error 상태에 있는 한, 에러가 발생한 UserObject 또는 UserFunction은 하이라이트 됩니다. 프로그램이 더 이상 Error 상태에 있지 않다면, 예를 들어 프로그램이 정지 상태에 있다면, 오브젝트는 하이라이트 되지 않습니다.

대화상자 설명

Last Error 대화상자는 다음의 정보와 버튼을 제공합니다:

Error message and error number - Last Error 대화상자의 메인 윈도우는 발생한 에러에 대한 간략한 설명을 제공하고, 에러가 발생한 Object Title및 Object Type을 표시합니다. Error number 또한 표시됩니다.

Go To - Go To 버튼을 클릭하면 VEE 프로그램의 디테일뷰를 나타내고, 프로그램이 Error 상태에 있다면 에러가 발생한 UserObject 및 UserFunction는 하이라이트 됩니다.

Call Stack - Call-Stack 버튼을 클릭하면 Call Stack 대화상자가 나타납니다. Call Stack 대화상자는 프로그램의 어디에서 에러가 발생했는지에 대한 자세한 정보를 제공할 수 있습니다.

Close - Error 대화상자를 닫습니다.

Help - Help를 클릭하면 에러 번호에 대한 자세한 내용을 제공하는 도움말을 엽니다.

주의사항

Error pin에 의해 검출되고 처리된 에러는 Last Error 오브젝트를 이용하여 검색할 수 없습니다.

오브젝트 위치

View [image] Last Error

관련정보

Error Output 메뉴항목 (오브젝트 메뉴), Call Stack, errorInfo() 및 Raise Error.


Line Probe 오브젝트

두개의 오브젝트 사이에 있는 연결선을 통해서 전송된 컨테이너의 정보를 디스플레이 합니다.

사용법

Line Probe 오브젝트는 연결선을 통해서 전송된 컨테이너를 검사하기 위한 디버깅툴로 사용합니다. Line Probe를 사용할 때, 커서는 돋보기 모양으로 변경되고 작업영역에서 클릭하기 전까지는 돋보기 모드가 유지됩니다. 검사하기 위한 연결선을 클릭하면, 연결선에 있는 현재의 컨테이너를 디스플레이하는 대화상자가 열립니다.

연결선에 있는 컨테이너가 nill이 아니라면, 대화상자는 컨테이너의 종류, 형태, 사이즈를 디스플레이 합니다. 데이터 값은 Array 2D까지 표시됩니다. 컨테이너의 차원이 매핑되어 있으면, 매핑된 값이 각 차원에 표시됩니다.

컨트롤 입력은 종종 연결선에 데이터를 가지고 있지 않습니다. 컨트롤 출력핀은 연결선에 데이터를 절대 가지고 있지 않습니다. 오브젝트가 아직 동작하지 않았다면, 입력핀과 출력핀에 연결된 라인은 nil이나 기존 데이터를 표시합니다.

주의사항

연결선의 끝점을 보기 위해서는, Line Probe를 선택하고 포인터를 연결선으로 드래그 합니다. 연결선의 현재 속성을 디스플레이하기 위해서 하이라이트된 연결선을 마우스 왼쪽 버튼을 눌러 클릭합니다.

속성 데이터를 표시하지 않고 연결선의 끝점을 보기 위해서는, Line Probe를 선택하고 포인터가 연결선에 있을 때 마우스 버튼을 누르고 있습니다. 마우스 버튼을 놓기 전에 포인터를 연결선에서 떨어진 곳으로 이동합니다.

오브젝트의 터미날을 더블클릭하여 터미날 내부에 있는 현재의 데이터를 확인할 수도 있습니다.

단축키

연결선에 있는 스칼라 값과 끝점을 보기 위해서는, 마우스 포인터를 연결선 위로 이동합니다. 컨테이너의 값(간단히 디스플레이 하기에 충분한 경우)을 디스플레이 하고 끝점을 하이라이트여 보여줍니다. 자세한 컨테이너 정보를 디스플레이 하기 위해서는 마우스 왼쪽 버튼을 클릭합니다.

2개의 핀 사이에 있는 연결선이 짧고 포인터가 연결선위에 있는 동안에 터미날 이름이 나타난다면, Shift 키를 눌러 마우스 포인터를 Line Probe로 변경하십시오.

오브젝트 위치

Debug [image] Line Probe

관련정보

Default Preferences 대화상자 또는 속성창 (오브젝트).

연결선에 있는 데이터 보기


List Box 오브젝트

사용자에게 리스트를 표시하는 팝업 대화상자를 디스플레이하는 오브젝트

사용법

List Box는 사용자에게 메시지 리스트를 디스플레이하기 위해 사용합니다. 사용자는 대화상자에 있는 선택항목중의 하나(또는 하나이상)를 선택합니다. 버튼에 나타나는 텍스트는 수정할 수 있습니다.

팝업 대화상자에서 항목을 선택하면, Text 출력핀으로 선택된 항목이 출력되고 선택항목의 인덱스가 Index 출력핀으로 출력됩니다. 복수로 선택된 경우에는, 텍스트 어레이가 Text 출력핀으로 출력되고 인덱스 어레이가 Indices 출력핀으로 출력됩니다.

오픈뷰

  • List Entries Edit ... - List Box 팝업 대화상자에 디스플레이 되는 선택항목의 리스트를 편집할 수 있게 합니다. 이 항목은 데이터 입력핀으로 추가할 수 있습니다.

  • Default Entry - 팝업 대화상자에 있는 List Entries 선택항목 중에서 디폴트 입력을 선택할 수 있게 합니다. 이 항목은 데이터 입력핀으로 추가할 수 있습니다.

  • Allow Multiple Selections - 체크박스를 선택하면, 사용자는 리스트에서 하나이상의 항목을 선택할 수 있습니다. 팝업 대화상자에 2개의 버튼이 추가됩니다; Select All 과 Clear All.

속성창

  • PopupTimeoutEnabled - 이 속성을 True로 설정하면, 오브젝트에 Timeout 출력핀이 추가됩니다. 디폴트 값은 False입니다.

  • PopUpDuration - 팝업 대화상자가 디스플레이되는 시간을 설정합니다. 설정된 시간이 지나면, 대화상자는 사라지고 Timeout 출력핀으로 1을 출력합니다. Timeout 핀이 실행되면 다른 출력핀들은 데이터를 출력하지 않습니다. 이 필드는 PopupTimeoutEnabled가 True로 되어 있을 때만 사용할 수 있습니다. 디폴트 값은 60초 입니다.

  • PopupOKLabel - True인 경우에 버튼 라벨을 OK로 설정합니다. 필요한 경우에는 버튼 라벨로 다른 단어를 사용할 수도 있습니다. 단어를 바꾸더라도 버튼의 기능은 그대로 유지됩니다.

  • PopupCancelLabel - True인 경우에 버튼 라벨을 Cancel로 설정합니다. 필요한 경우에는 버튼 라벨로 다른 단어를 사용할 수도 있습니다. 단어를 바꾸더라도 버튼의 기능은 그대로 유지됩니다.

  • PopupSelectAllLabel - Allow Multiple Selections이 선택될 때만 사용할 수 있습니다.

  • PopupClearAllLabel - Allow Multiple Selections이 선택될 때만 사용할 수 있습니다.

  • PopupPasswordMasking - 이 속성을 True로 설정하면, 입력된 텍스트가 별표(*)로 디스플레이 됩니다. 이 기능은 사용자가 비밀번호 같은 민감한 데이터를 입력할 때 유용합니다. Value 출력핀으로 출력되는 스트링은 감추어지지 않습니다. 디폴트 값은 False입니다.

  • PopupNumDisplayedItems - List Box를 스크롤바 없이 디스플레이할 수 있는 라인의 최대값을 설정합니다. 설정값이 리스트 항목보다 크면, 대화상자는 입력 항목의 숫자를 포함하는 사이즈로 조정(비어있는 라인 없이)됩니다. 디폴트 값은 10입니다.

주의사항

팝업 대화상자의 디폴트 위치는 작업영역의 중앙 근처입니다. 이 대화상자를 이동한 경우에는, 다음에 대화상자가 팝업될 때 새로운 위치에서 팝업됩니다.

팝업 대화상자에서 키보드 만을 이용하여 입력하기 위해서는: 대화상자가 팝업될 때 내용을 입력하고 Enter키 또는 Esc키를 사용합니다. 입력 필드와 버튼 사이를 이동하기 위해서는 Tab키를 사용하고, 버튼을 선택하기 위해서는 Space바를 사용합니다.

팝업 대화상자와 에러 대화상자는 프로그램이 실행중일 때만 디스플레이 됩니다. 팝업 대화상자가 디스플레이 되는 동안에는 모든 프로그램의 실행이 일시 중지되고, 대화상자가 닫히면 다시 실행이 진행됩니다.

오브젝트 위치

Data [image] Dialog Box [image] List Box

관련정보

File Name Selection, Message Box, Int32 Input, Real64 Input, Text Input 및 UserObject.

기본 제공되는 Dialog Box 오브젝트에 대하여


List 오브젝트

Selection Control를 참조하십시오.


Logging AlphaNumeric 오브젝트

문자와 숫자 데이터의 Scalar 또는 Array 1D를 디스플레이 하는 오브젝트. Logging AlphaNumeric 오브젝트는 데이터를 덮어쓰지 않고 디스플레이 합니다.

사용법

Logging AlphaNumeric 오브젝트는 이전 값들의 히스토리처럼 연속적인 입력(Scalar 이든지 또는 Array 1D 이든지)을 디스플레이 하기 위해 사용합니다.

오브젝트 메뉴

Clear - Logging AlphaNumeric 오브젝트에 디스플레이된 모든 데이터를 초기화합니다. Clear는 컨트롤 입력으로 추가할 수 있습니다.

속성창 설명

ClearAtPreRun - True로 설정하면, Logging AlphaNumeric의 내용은 실행직전에 초기화됩니다. 디폴트는 True입니다.

 ClearAtActivate - True로 설정하면, Logging AlphaNumeric의 내용은 실행시에 초기화됩니다. 디폴트는 True입니다.

Buffer Size - 디스플레이 버퍼가 잡고 있는 라인의 숫자를 지정합니다. 설정된 라인 수를 초과하여 Logging AlphaNumeric에 입력되면, 마지막 값은 남아 있고 이전의 값은 덮어 씌워집니다. 디폴트 값은 256입니다.

 NumberFormat -Global Format을 체크하지 않은 경우에, 오브젝트에 디스플레이 하고자 하는 정수를 위한 숫자형식을 지정합니다. Decimal (예 42), Octal (예 #Q52), Hexadecimal (예 #H2a), 또는 Binary (예 #B00101010)을 선택할 수 있습니다. 디폴트 값은 Decimal입니다.

  • Real: - Global Format을 체크하지 않은 경우에, 오브젝트에 디스플레이 하고자 하는 실수를 위한 숫자형식을 지정합니다. Fixed (예 98.6000), Scientific (예 9.8600E+01), Engineering (예 98.6000E0), Standard (예 98.6), 또는 Time Stamp (예 Sat 01/Jan/1994 17:01:38)을 선택할 수 있습니다. 디폴트 값은 Standard입니다.

주의사항

현재의 Logging AlphaNumeric 오브젝트의 폭이 숫자 타입의 디폴트 정밀도를 디스플레이(현재 지정된 디스플레이 글자체를 사용하여)하기에 폭이 좁다면 별표(***)가 디스플레이 됩니다. 데이터를 보기 위해서는 오브젝트의 크기를 조정하십시오.

0~31까지의 ASCII 값은 글자체와 연관되어 읽지 못할 수도 있습니다.

영문 2048자(한글 1024자)를 초과하는 텍스트 스트링은 일부 플랫폼(운영체제)에서는 적절하게 디스플레이 되지 않을 수도 있습니다. 영문기준 32767자를 초과하는 텍스트 스트링은 어떤 플랫폼에서도 적절하게 디스플레이 되지 않습니다.

오브젝트 위치

Display [image] Logging AlphaNumeric

관련정보

AlphaNumeric, Default Preferences 대화상자 및 오브젝트 메뉴

연속되는 값을 로그하여 디스플레이하기


Machine Name 오브젝트

호스트 장비의 이름을 검색합니다.

오브젝트 위치

System [image] Environment [image] Machine Name


Magnitude Spectrum 오브젝트

스펙트럼을 그래프로 표시하는 오브젝트

사용법

주파수 도메인에서 스펙트럼이나 웨이브폼을 그래프로 표시하기 위해서 Magnitude Spectrum 오브젝트를 사용합니다. 웨이브폼은 푸리에 변환을 통해서 스펙트럼으로 자동변환됩니다. X 축은 입력 스펙트럼(일반적으로 주파수)의 샘플링단위를 사용합니다.

오픈뷰 항목

아래 항목은 기본 오픈뷰 항목입니다. 이들 항목의 사용법과 다른 항목은 오브젝트 메뉴 및 Properties 대화상자(오브젝트 메뉴 [image] Properties)에서의 선택에 따라서 달라집니다.

Mag - Y 축의 이름.

Trace1 - 첫 번째 트레이스의 이름.

Freq - X 축의 이름.

오브젝트 메뉴

Auto Scale [image] - 이것을 클릭하면 그래프가 자동 스케일되어 에서 전체 트레이스를 볼 수 있습니다.(컨트롤 핀을 추가하거나, Scales 속성을 설정하면 데이터가 입력된 후 그래프를 자동으로 스케일할 수 있습니다.)

Auto Scale - 양 축을 자동으로 스케일합니다.

Auto Scale X - X 축을 자동으로 스케일합니다.

Auto Scale Y - Y 축을 자동으로 스케일합니다.

Zoom [image] - 그래프를 확대 또는 축소합니다.

In - 드래그하여 선택한 직사각형 안의 그래프가 전체 화면에 표시되도록 그래프를 확대합니다. 이 항목을 선택한 후, 그래프 영역에서 확대할 부분을 드래그합니다.

Out 2|5|10|20|50|100X - 선택한 숫자 만큼 중심에서 X 및 Y 방향으로 그래프의 스케일을 확대합니다.

Clear Control [image] - 그래프의 내용에서 지우게 될 항목을 지정합니다.

Display - 표시된 트레이스를 지웁니다. 이 항목을 오브젝트의 컨트롤 입력으로 추가할 수 있습니다.

Next Curve - 이전 트레이스를 지우지 않고 그래프를 리셋합니다. 다음 입력되는 데이터를 그래프의 처음 부터 이전 데이터와 중첩하여 그립니다. 새로운 그래프가 입력되지 전에 활성화되어야 합니다. 이 항목은 컨트롤 입력으로 추가될 수 있습니다.

Center Markers - 마커를 사용하는 경우, 마커를 트레이스의 중앙으로 이동시킵니다. 그래프를 스크롤하여 마커가 보이지 않을 때 이 기능을 이용하면 편리합니다.

Add Right Scale - 서로 다른 스케일범위를 가지는 Y 축 스케일을 최대 2 개까지 추가할 수 있습니다. 스케일을 추가 후 이 스케일을 제어하는 입력터미날을 추가할 수 있습니다.(오브젝트 메뉴 [image] Add Terminal [image] Data Input) Properties 대화상자의 Traces 및 Scales 속성을 설정하여 사용합니다.

Print - Print 대화상자를 띠웁니다. Print 대화상자에서 OK 버튼을 클릭하면 선택한 프린터로 그래프의 전체화면을 프린트 합니다. Print 항목은 컨트롤 입력으로 추가될 수 있습니다.

속성창

Declared Name - 그래프 오브젝트에 변수이름을 지정합니다. 이름을 입력하면, 사용중인 마커의 값을 읽는 것처럼 프로그램 실행 중에 이 오브젝트의 일부 속성을 가져오고/설정할 수 있습니다. 이 변수는 Object 타입이며, 디스플레이가 있는 영역의 local to the context로 지정됩니다. 상세한 내용은 주의사항을 참조하십시오.

ClearAtPreRun - 이 속성이 참으로 설정되면, 그래프가 PreRun시 초기화됩니다. 디폴트 값은 참(True) 입니다.

 ClearAtActivate - 이 속성이 참으로 설정되면, 그래프가 활성화될 때 초기화됩니다. 디폴트 값은 참(True) 입니다.

ShowTracesLegend - 오픈뷰에서, 트레이스의 이름 및 색깔의 표시여부를 제어합니다. 트레이스 레전드의 편집버튼은 EnableEditTracesAndScales 를 이용하여 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScalesLegend - 오픈뷰에서, 스케일 이름의 표시여부를 제어합니다. 스케일 레전드의 편집버튼은 EnableEditTracesAndScales 를 이용하여 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScaleLabels - 오픈뷰에서, 스케일 축 라벨의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScrollBars - 오픈뷰에서, X 및 Y 축의 스케일바의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowAutoScaleButton - 오픈뷰에서, Auto Scale 버튼의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 EditTracesAndScales - 오픈뷰에서, 트레이스 및 스케일 속성의 편집버튼의 기능을 제어합니다. 이 기능이 활성화되어 있을 때, 각각의 트레이스 또는 스케일의 속성을 편집하기 위해서 이들을 클릭합니다. 디폴트 값은 참(True) 입니다. 트레이스 및 스케일의 이름의 표시여부를 제어하기 위해서 Show Traces Legend 및 Show Scales Legend 를 사용합니다.

GridType - 디폴트 값은 Lines입니다.

NumMarkers - 그래프에서 사용하는 마커의 개수. 마커를 다른 트레이스로 이동하기 위해서는, 그래프 하단의 마커값 표시 왼쪽의 버튼을 클릭합니다. 이 버튼을 클릭하면 현재 그래프에 표시된 트레이스를 순환하여 선택합니다.

 MarkerInterpolate - 이 속성을 참으로 설정하면, 그래프로 표시되는 데이터 포인트 사이에 마커를 배치할 수 있습니다. 마커 값은 선형 인터폴레이션으로 연산되어 표시됩니다. 디폴트 값은 거짓(False)입니다.

DisplayBackColor - 팔레트에서 그래프 영역의 색깔을 선택할 수 있습니다. 패널뷰와 디테일뷰에서 서로 다른 색깔을 선택할 수 있습니다.

ScaleLabelFont - 현재 사용중인 컴퓨터의 폰트목록에서 스케일 라벨에 적용할 폰트를 선택합니다. 스케일 라벨 텍스트의 디폴트 폰트는 Preferences 대화상자 Fonts 탭의 Screen Element: Graph Scale Label Text에 설정되어 있습니다.

Traces 그룹: (트레이스 마다 1 개씩).

Name: - 그래프 영역의 왼쪽에 표시되는 트레이스의 이름. 이 이름은 입력터미날의 이름과 동일합니다.

Color: - 트레이스의 색깔. 추가되는 트레이스는 기존 트레이스와는 다른 색깔로 표시됩니다. 첫 번째 트레이스의 디폴트 색깔은 노란색입니다.

LineStyle: - 데이터 포인트를 연결하는 라인의 포맷. 디폴트는 continuous line(연속선) 입니다.

PointStyle: - 각 데이터포인트를 표시하는 기호. 데이터 포인트를 연결하지 않은 상태로 표시할 때는 LineStyle 을 점(.)으로 설정하고, 사용할 PointStyle 기호를 선택합니다. 디폴트 값은 점(dot)입니다.

Scale - 2 개 이상의 Y 스케일이 있으면, 특정 트레이스가 어떤 스케일에 의해서 스케일되는지 선택합니다.

Scales 속성: (X 스케일 및 추가 Y 축 스케일을 포함함 Y 스케일 마다 1 개씩)

Show Scale: - 여러 개의 Y 스케일이 있으면, 체크박스로 선택한 스케일이 그래프 영역의 우측에 표시됩니다.

Scale Name: - 오픈뷰에서 스케일에 표시되는 이름

Automatic Scaling: - 데이터가 입력될 때 전체 그래프를 표시하기 위해서 그래프 자동 재 스케일 여부를 제어합니다. 디폴트 값은 On 입니다. 이 속성이 Off 이면, Layout 그룹 General 탭의 Auto Scale 을 클릭하거나, 오브젝트 메뉴의 Auto Scale 을 실행하여 그래프를 다시 스케일 할 수 있습니다.

Maximum: - 스케일의 최대값.

Minimum: - 스케일의 최소값.

Label Spacing: - 어떤 틱마크에 스케일된 값을 표시해야 하는지 제어합니다. X 스케일은 Every Other Tic로, Y 스케일은 Every Major Tic로 디폴트 설정되어 있습니다.

Mapping: - X 데이터 및 Y 데이터가 그래프에 매핑되는 방식. 선형 또는 로그로 매핑될 수 있습니다. 로그-로그 방식으로 표시하기 위해서는 X 축 및 Y 축을 모두 Log 로 설정합니다. 디폴트 설정은 Linear 입니다.

Log Cycles: - Automatic Scaling 이 On 상태에서 최대 x 값 및 최대 y 값으로부터 표시할 10 단위 스케일의 최대 개수. Log Cycles 은 Mapping 이 Log일 때만 사용됩니다. 트레이스 데이터의 변동 폭이 클 때 Log Cycles을 사용하면 편리합니다. 디폴트 값은 4 입니다.

Scale Color - 배경 그리드 및 틱마크의 색깔. 디폴트는 Gray 입니다.

ScaleNumberFormat 속성: (X 스케일 및 추가 Y 축 스케일을 포함함 Y 스케일 마다 1 개씩 표시됩니다.)

Global Format - 디폴트 포맷을 사용합니다. 디폴트는 On 입니다.

Real - Global Format 이 Off 이면, 오브젝트에 표시될 실수의 숫자포맷을 지정합니다. Fixed (예, 98.6000), Scientific (예, 9.8600E+01), Engineering (예, 98.6000E0), Standard (예, 98.6) 및 Time Stamp (예, Wed 01/Jan/2003 17:01:38)를 선택할 수 있습니다. 디폴트는 Standard 입니다.

X 및 Y 마커 값은 스케일에서 사용하는 숫자포맷과 동일한 포맷을 사용합니다. X 및 Y 에 Time Stamp 을 지정하지 않았으면, 이들의 델타마커 값은 디폴트 숫자 포맷을 사용합니다. X 및 Y 의 마커1과 마커2가 Time Stamp 을 사용한 경우에는, 델타마커 값에 Delta Time 포맷이 사용됩니다.

주의사항

입력은 Spectrum, Waveform 또는 Coord(Scalar 또는 Array 1D) 타입으로 제공되어야 합니다.

ICoord 타입의 입력데이터는 Spectrum 타입으로 변환되지 않고 x 및 y 의 값을 이용하여 그래프로 표시됩니다.

오브젝트 메뉴에서 Add Terminal [image] Data Input를 실행하여 트레이스를 추가합니다. 최대 12개의 트레이스를 사용할 수 있습니다.

AutomaticScaling 속성을 True 으로 설정하면(Scales 카테고리) 그래프를 그릴 때 마다 자동으로 스케일됩니다. 하나의 트레이스에 대한 전체 데이터를 그래프에 표시할 때는 빠르게 실행됩니다. 전체 데이터를 그래프에 한 번에 그리고 자동으로 스케일합니다. 데이터가 그래프에 한 개의 포인트씩 제공되면, 각 데이터 포인터를 그릴 때 마다 그래프가 자동으로 스케일되므로, 프로그램 실행 속도가 저하됩니다. 데이터가 1 개씩 발생되는 경우에는 Collector 오브젝트를 이용하여 어레이로 생성하여, 전체 데이터를 그래프에 한번에 표시하면 실행속도를 향상할 수 있습니다.

컨트롤 입력 추가

Title 컨트롤 입력핀을 추가하여 타이틀바의 이름을 지정할 수 있습니다. 이 기능을 이용하면 프로그램 실행시 타이틀의 이름을 변경할 수 있습니다.

Traces 컨트롤 입력핀을 추가할 수 있습니다. Traces 컨트롤 입력핀의 데이터에는 레코드 어레이를 사용해야 합니다.(또는 하나의 트레이스를 제어하는 경우에는 레코드 스칼라를 사용해도 됩니다.) 레코드의 어레이는 Record Constant 오브젝트 또는 Build Record 오브젝트를 이용하여 생성합니다. 각 레코드에는 다음의 필드가 제공되어야 합니다.:

정수 값을 가진 TraceNum 필드(첫 번째 트레이스는 1). TraceNum 필드의 값은 받드시 입력되어야 합니다. 값을 입력하지 않으면 에러가 발생합니다.

다음 필드 중 1 개 이상의 필드:

Name

Pen

LineType

PointType

Name 필드는 텍스트 값을 가져야 합니다. Pen, LineType 및 PointType 은 0 ~ n의 정수값을 가져야 합니다. 여기서, 0 은 아무것도 그리지 않을 때 입력하고, n 은 사용할 수 있는 값입니다.

위에서 열거된 스케일 인자를 제어하기 위해서 Scales 컨트롤 입력핀을 추가할 수 있습니다. Scales 컨트롤 입력핀의 데이터에는 레코드 어레이를 사용해야 합니다.(또는 하나의 트레이스를 제어하는 경우에는 레코드 스칼라를 사용해도 됩니다.) 레코드의 어레이는 Record Constant 오브젝트 또는 Build Record 오브젝트를 이용하여 생성합니다. 각 레코드에는 다음의 필드가 제공되어야 합니다.:

X, Y (또는 Y1), Y2, 또는 Y3값을 가지며, 이름이 Scale 인 텍스트필드. Scale 필드의 값은 반드시 입력되어야 합니다. 값을 입력하지 않으면 에러가 발생합니다.

다음 필드 중 1 개 이상의 필드:

Name - 오픈뷰에서 스케일 이름을 변경합니다. 텍스트 값을 가져야 합니다.

Min - X 스케일의 최소값을 설정합니다. 정수 또는 실수값을 사용해야 합니다.

Max - X 스케일의 최대값을 설정합니다. 정수 또는 실수값을 사용해야 합니다.

Mapping - Linear 또는 Log의 텍스트 값을 선택합니다.

AutoScale - 자동 스케일링을 제어합니다. On 또는 Off 의 텍스트 값을 선택합니다.

Print 및 Plot 컨트롤핀을 추가할 수 있습니다. 윈도우에서, 이들 입력은 윈도우의 인쇄설정 대화상자(File [image] Print Setup...)에서 설정하는 방법과 동일합니다. 현재의 인쇄설정이 파일로 인쇄 모드인 경우에는, Plot 컨트롤 입력핀으로 스트링 데이터로 파일 이름이나 디렉토리를 지정할 수 있습니다. 컨트롤 입력값이 없는 경우에는, 인쇄설정에 있는 파일이름이나 디렉토리를 사용하게 됩니다.

자세한 내용은 Using Records 및 Using DataSets를 참조하십시오.

프로그램 실행시 마커값을 설정하고 읽기

프로그램상으로 다른 속성을 설정하고 읽기 위해서는 To Change Properties Programmatically를 참조하십시오.

프로그램을 실행하면서 마커 값을 가져오거나 설정할 수 있습니다. 디스플레이를 준비하기 위해서, Properties 창의 Name 필드에 값을 입력합니다. Name 의 값은 디스플레이 컨텍스트의 지역변수로 사용되는 Object 변수로 지정됩니다. 다음은 Markers 그룹의 설정을 On 시킵니다. VEE는 다음 속성을 델타 값을 포함하여 X 및 Y 의 위치에 지정합니다.(Marker1 아래를 지시하고; Marker2 는 위를 지시합니다.)

 Marker1X (위치를 Real64 타입으로 가져옵니다.)

 Marker1Y (위치를 Real64 타입으로 가져옵니다.)

 Marker2X (위치를 Real64 타입으로 가져옵니다.)

 Marker2Y (위치를 Real64 타입으로 가져옵니다.)

 MarkerDX (위치를 Real64 타입으로 가져옵니다.)

 MarkerDY (위치를 Real64 타입으로 가져옵니다.)

 Marker1 (위치를 Coord 타입으로 가져오거나 설정합니다.)

 Marker2 (위치를 Coord 타입으로 가져오거나 설정합니다.)

현재 마커의 위치를 읽거나 마커를 새로운 위치로 이동하기 위해서 Marker1 및 Marker2 의 속성을 사용할 수 있습니다. 마커의 다른 속성은 읽기전용입니다. 마커를 트레이스 이외의 위치로 이동하려고 시도하면, 마커는 지정한 마커의 위치와 트레이스 상의 가장 가까운 데이터 포인트에 스냅됩니다.

Formula 오브젝트의 표현식을 이용해서도 마커 값을 읽거나 설정할 수 있습니다. 각 표현식은 디스플레이의 Declared Name 과 마커의 속성을 이용하여 작성해야 합니다. 마커의 속성과 Name 은 대소문자를 구별하지 않습니다. 예를 들어, 디스플레이의 Declared Name이 XY이고, Delta Markers 가 활성화되어 있으면, 다음 표현식은 모든 사용가능한 마커의 값을 읽어서, Real64 스칼라 타입으로 변수 a ~ f 에 저장합니다:

a = XY.Marker1X

b = XY.Marker1Y

c = XY.Marker2X

d = XY.Marker2Y

e = XY.MarkerDX

f = XY.MarkerDY

디스플레이의 Declared Name은 전역변수로 지정될 수도 있습니다. Formula 오브젝트의 표현식에서 지정연산자를 사용하면서, Declare Variable 오브젝트를 함께 사용하여 전역변수로 설정할 수 있습니다. 예를 들어, globalXY 를 전역변수로, 이것의 Type을 Object로 선언하고, 디스플레이를 사용하는 컨텍스트에서 다음 표현식을 추가합니다.

Set globalXY = XY

이제는 프로그램의 다른 컨텍스트에서 다음 표현식으로 마커의 값을 읽을 수 있습니다:

a = globalXY.Marker1X

프로그램에 따라서, 프로그램이 마커의 값을 읽기 전에 마커의 위치를 변경할 수 있도록 프로그램이 일시 정지하는 기능을 작성해야 하는 경우가 있습니다. 그래프의 시퀀스 출력과 Formula 오브젝트의 시퀀스 입력사이에 Confirm (OK) 버튼을 프로그램에 추가하여 프로그램 실행을 일시정지 할 수 있습니다. 또한 마커의 위치를 프로그램에서 제어하도록 프로그램을 작성할 수도 있습니다. 프로그램상으로 마커를 설정하는 자세한 정보는 Programmatic Properties를 참조하십시오.

오브젝트 위치

Display [image] Spectrum (Freq) [image] Magnitude Spectrum

관련정보

Magnitude vs Phase, Phase Spectrum, Polar Plot, Default Preferences, Spectrum (Freq) 및 Waveform (Time).

파형 디스플레이하기, 디스플레이에서 마커 설정하기, 마커의 속성을 설정하거나 가져오기 및 오브젝트 메뉴


Magnitude vs Phase 오브젝트

복소수 스펙트럼의 크기와 위상을 극좌표 그래프로 표시하는 오브젝트

사용법

스펙트럼이나 웨이브폼을 표시하기 위해서 Magnitude vs Phase 오브젝트를 사용합니다. 웨이브폼은 푸리에 변환을 통해서 스펙트럼으로 자동변환됩니다. 각 데이터포인트의 반경은 스펙트럼의 크기입니다. 각도는 현재 Trig Mode에서 설정된 단위를 사용하는 위상입니다.

오브젝트 메뉴의 속성을 이용하여 Polar그래프와 스미스챠트 그래프 간의 표시를 전환할 수 있습니다. GridType 속성을 Line 에서 SmithChart로 변경하면 Polar 챠트에서 스미스챠트로 그래프가 변경됩니다.

마커의 값은 Polar 그리드타입에 대해서는 극좌표 포맷(r:radius, a:angle)으로, Smith Chart 또는 Inv Smith Chart 그리드 타입에 대해서는 복소수 임피던스 또는 복소수 어드미턴스 포맷으로 표시됩니다.

오픈뷰 항목

아래 항목은 기본 오픈뷰 항목입니다. 이들 항목의 사용법과 다른 항목은 오브젝트 메뉴 및 Properties 대화상자(오브젝트 메뉴 [image] Properties)에서의 선택에 따라서 달라집니다.

Mag - 반경 스케일의 이름.

Span: - 그래프의 상하의 크기. 원점이 그래프의 중앙일 경우에는 Span은 반경의 2 배가 됩니다. 이 항목은 그래프의 스케일링을 제어합니다 디폴트 값은 2 입니다.

Trace1 - 첫 번째 트레이스의 이름.

Polar Reference Location - Polar Reference Location - 표시된 극좌표 그래프의 일부분을 지정합니다. 이 기능을 사용하면 해당 영역으로 스크롤하는 것 보다 빠르게 이동할 수 있습니다. 참조점을 입력하면 지정된 좌표(예, (0, @0))로 이동합니다.

Ref Radius: - 굵은 격자원의 반경의 값.

오브젝트 메뉴

Auto Scale [image] Auto Scale - 이것을 클릭하면 그래프가 자동 스케일되어 에서 전체 트레이스를 볼 수 있습니다. 이 기능은 극좌표의 기준위치를 중앙(0,@0)으로 초기화합니다.(컨트롤 입력핀으로 추가하거나, 데이터가 수집된 이후 표시영역을 자동으로 스케일하도록 Scales 속성에서 설정할 수 있습니다.)

Auto Scale X - 사용할 수 없습니다.

Auto Scale Y - 사용할 수 없습니다.

Zoom [image] - 그래프를 확대 또는 축소합니다.

In - 드래그하여 선택한 직사각형 안의 그래프가 전체 화면에 표시되도록 그래프를 확대합니다. 이 항목을 선택한 후, 그래프 영역에서 확대할 부분을 드래그합니다.

Out 2|5|10|20|50|100X - 선택한 숫자만큼 중심에서 X 및 Y 방향으로 그래프의 스케일을 확대합니다.

Clear Control [image] - 그래프의 내용에서 지우게 될 항목을 지정합니다.

Display - 표시된 트레이스를 지웁니다. 이 항목을 오브젝트의 컨트롤 입력으로 추가할 수 있습니다.

Next Curve - 이전 트레이스를 지우지 않고 그래프를 리셋합니다. 다음 입력되는 데이터를 그래프의 처음부터 이전 데이터와 중첩하여 그립니다. 새로운 그래프가 입력되지 전에 활성화되어야 합니다. 이 항목은 컨트롤 입력으로 추가될 수 있습니다.

Center Markers - 마커를 사용하는 경우, 마커를 트레이스의 중앙으로 이동시킵니다. 그래프를 스크롤하여 마커가 보이지 않을 때 이 기능을 이용하면 편리합니다.

Add Right Scale - 서로 다른 스케일범위를 가지는 Y 축 스케일을 최대 2 개까지 추가할 수 있습니다. 스케일을 추가 후 이 스케일을 제어하는 입력터미날을 추가할 수 있습니다.(오브젝트 메뉴 [image] Add Terminal [image] Data Input) Properties 대화상자의 Traces 및 Scales 속성을 설정하여 사용합니다.

Print - 대화상자를 띠웁니다. Print 대화상자에서 OK 버튼을 클릭하면 선택한 프린터로 그래프의 전체화면을 프린트 합니다. Print 항목은 컨트롤 입력으로 추가될 수 있습니다.

속성창

Declared  Name - 그래프 오브젝트에 변수이름을 지정합니다. 이름을 입력하면, 사용중인 마커의 값을 읽는 것처럼 프로그램 실행 중에 이 오브젝트의 일부 속성을 가져오고/설정할 수 있습니다. 이 변수는 Object 타입이며, 디스플레이가 있는 영역의 local to the context로 지정됩니다. 상세한 내용은 주의사항을 참조하십시오.

ClearAtPreRun - 이 속성이 참으로 설정되면, 그래프가 PreRun시 초기화됩니다. 디폴트 값은 참(True) 입니다.

 ClearAtActivate - 이 속성이 참으로 설정되면, 그래프가 활성화될 때 초기화됩니다. 디폴트 값은 참(True) 입니다.

ShowTracesLegend - 오픈뷰에서, 트레이스의 이름 및 색깔의 표시여부를 제어합니다. 트레이스 레전드의 편집버튼은 EnableEditTracesAndScales 를 이용하여 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScalesLegend - 오픈뷰에서, 스케일 이름의 표시여부를 제어합니다. 스케일 레전드의 편집버튼은 EnableEditTracesAndScales 를 이용하여 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScrollBars - 오픈뷰에서, X 및 Y 축의 스케일바의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowAutoScaleButton - 오픈뷰에서, Auto Scale 버튼의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 EditTracesAndScales - 픈뷰에서, 트레이스 및 스케일 속성의 편집버튼의 기능을 제어합니다. 이 기능이 활성화되어 있을 때, 각각의 트레이스 또는 스케일의 속성을 편집하기 위해서 이들을 클릭합니다. 디폴트 값은 참(True) 입니다. 트레이스 및 스케일의 이름의 표시여부를 제어하기 위해서 Show Traces Legend 및 Show Scales Legend 를 사용합니다.

GridType: - 디폴트 값은 Lines입니다. 큰 간격으로 라인을 표시하고, 작은 간격에 틱마크를 표시합니다. X 및 Y 축은 굵은선으로 표시됩니다.

Smith Chart - 데이터를 스미스챠트(임피던스 챠트)에 표시합니다. 마커는 실수와 허수 임프던스 값으로 지정됩니다. 굵은 원은 “기준 반경”을 나타내며, 이것의 선형 반경의 값은 그래프 영역의 우측하단에 표시됩니다. 입력데이터가 정규화되어 있으면, 스미스챠트 그리드와 마커는 적절하게 스케일된 값만 표시할 수 있습니다. 데이터를 정규화하기 위해서는, 모든 크기를 특성임피던스로 나눕니다.

Inv Smith Chart - 데이터를 역스미스챠트(어드미턴스 챠트)에 표시합니다. 역스미스챠트는 그리드와 마커의 값이 임피던스 값 대신 어드미턴스 값이라는 것을 제외하고는 스미스챠트의 사용방법과 동일합니다.

NumMarkers: - 그래프에서 사용하는 마커의 개수. 마커를 다른 트레이스로 이동하기 위해서는, 그래프 하단의 마커값 표시 왼쪽의 버튼을 클릭합니다. 이 버튼을 클릭하면 현재 그래프에 표시된 트레이스를 순환하여 선택합니다.

MarkerInterpolate - 이 속성을 참으로 설정하면, 그래프로 표시되는 데이터 포인트 사이에 마커를 배치할 수 있습니다. 마커 값은 선형 인터폴레이션으로 연산되어 표시됩니다. 디폴트 값은 거짓(False)입니다.

DisplayBackColor: - 팔레트에서 그래프 영역의 색깔을 선택할 수 있습니다. 패널뷰와 디테일뷰에서 서로 다른 색깔을 선택할 수 있습니다.

Traces 그룹: (트레이스 마다 1 개씩).

Name: - 그래프 영역의 왼쪽에 표시되는 트레이스의 이름. 이 이름은 입력터미날의 이름과 동일합니다.

Color: - 트레이스의 색깔. 추가되는 트레이스는 기존 트레이스와는 다른 색깔로 표시됩니다. 첫 번째 트레이스의 디폴트 색깔은 노란색입니다.

LineStyle: - 데이터 포인트를 연결하는 라인의 포맷. 디폴트는 continuous line(연속선) 입니다.

PointStyle: - 각 데이터포인트를 표시하는 기호. 데이터 포인트를 연결하지 않은 상태로 표시할 때는 LineStyle 을 점(.)으로 설정하고, 사용할 PointStyle 기호를 선택합니다. 디폴트 값은 점(dot)입니다.

Scale - 2 개 이상의 Y 스케일이 있으면, 특정 트레이스가 어떤 스케일에 의해서 스케일되는지 선택합니다.

Scales 속성: (X 스케일 및 추가 Y 축 스케일을 포함함 Y 스케일 마다 1 개씩)

Show Scale: - 여러 개의 Y 스케일이 있으면, 체크박스로 선택한 스케일이 그래프 영역의 우측에 표시됩니다.

Scale Name: - 오픈뷰에서 스케일에 표시되는 이름.

Automatic Scaling: - 데이터가 입력될 때 전체 그래프를 표시하기 위해서 그래프 자동 재 스케일 여부를 제어합니다. 디폴트 값은 On 입니다. 이 속성이 Off 이면, Layout 그룹 General 탭의 Auto Scale 을 클릭하거나, 오브젝트 메뉴의 Auto Scale 을 실행하여 그래프를 다시 스케일 할 수 있습니다.

Vertical Span: - 그래프의 상하의 크기. 디폴트 값은 2 입니다.

Scale Color - 배경 그리드 및 틱마크의 색깔. 디폴트는 Gray 입니다.

Reference Corner: - 표시된 극좌표 그래프의 일부분을 지정합니다. 이 기능을 이용하면 지정된 영역에 스크롤하는 것보다 빠르게 도달할 수 있습니다. 기준값을 변경하면 지정된 위치(예, (0, @0))을 표시하기 위해서 그래프가 스크롤됩니다. 디폴트 값은 Center 입니다.

Reference Value: - 극좌표 그래프에서 사용할 극좌표를 숫자로 지정합니다. 디폴트 값은 (0, @0) 입니다.

주의사항

입력은 Spectrum, Waveform 또는 Coord(Scalar 또는 Array 1D) 타입으로 제공되어야 합니다.

Coord 타입의 입력데이터는 Spectrum 타입으로 변환되지 않고 직교좌표의 x 및 y 의 값을 이용하여 그래프로 표시됩니다.

오브젝트 메뉴에서 Add Terminal [image] Data Input를 실행하여 트레이스를 추가합니다. 최대 12개의 트레이스를 사용할 수 있습니다.

AutomaticScaling 속성을 True로 설정하면(Scales 카테고리) 그래프를 그릴 때 마다 자동으로 스케일됩니다. 하나의 트레이스에 대한 전체 데이터를 그래프에 표시할 때는 빠르게 실행됩니다. 전체 데이터를 그래프에 한 번에 그리고 자동으로 스케일합니다. 데이터가 그래프에 한 개의 포인트씩 제공되면, 각 데이터 포인터를 그릴 때 마다 그래프가 자동으로 스케일되므로, 프로그램 실행 속도가 저하됩니다. 데이터가 1 개씩 발생되는 경우에는 Collector 오브젝트를 이용하여 어레이로 생성하여, 전체 데이터를 그래프에 한번에 표시하면 실행속도를 향상할 수 있습니다.

컨트롤 입력 추가

Title 컨트롤 입력핀을 추가하여 타이틀바의 이름을 지정할 수 있습니다. 이 기능을 이용하면 프로그램 실행시 타이틀의 이름을 변경할 수 있습니다.

Traces 컨트롤 입력핀을 추가할 수 있습니다. Traces 컨트롤 입력핀의 데이터에는 레코드 어레이를 사용해야 합니다.(또는 하나의 트레이스를 제어하는 경우에는 레코드 스칼라를 사용해도 됩니다.) 레코드의 어레이는 Record Constant 오브젝트 또는 Build Record 오브젝트를 이용하여 생성합니다. 각 레코드에는 다음의 필드가 제공되어야 합니다.:

정수 값을 가진 TraceNum 필드(첫 번째 트레이스는 1). TraceNum 필드의 값은 받드시 입력되어야 합니다. 값을 입력하지 않으면 에러가 발생합니다.

다음 필드 중 1 개 이상의 필드:

Name

Pen

LineType

PointType

Name 필드는 텍스트 값을 가져야 합니다. Pen, LineType 및 PointType 은 0 ~ n의 정수값을 가져야 합니다. 여기서, 0 은 아무것도 그리지 않을 때 입력하고, n 은 사용할 수 있는 값입니다.

위에서 열거된 스케일 인자를 제어하기 위해서 Scales 컨트롤 입력핀을 추가할 수 있습니다. Scales 컨트롤 입력핀의 데이터에는 레코드 어레이를 사용해야 합니다.(또는 하나의 트레이스를 제어하는 경우에는 레코드 스칼라를 사용해도 됩니다.) 레코드의 어레이는 Record Constant 오브젝트 또는 Build Record 오브젝트를 이용하여 생성합니다. 각 레코드에는 다음의 필드가 제공되어야 합니다.:

X, Y (또는 Y1), Y2, 또는 Y3값을 가지며, 이름이 Scale 인 텍스트필드. Scale 필드의 값은 반드시 입력되어야 합니다. 값을 입력하지 않으면 에러가 발생합니다.

다음 필드 중 1 개 이상의 필드:

Name - 오픈뷰에서 스케일 이름을 변경합니다. 텍스트 값을 가져야 합니다.

Min - X 스케일의 최소값을 설정합니다. 정수 또는 실수값을 사용해야 합니다.

Max - X 스케일의 최대값을 설정합니다. 정수 또는 실수값을 사용해야 합니다.

Mapping - Linear 또는 Log의 텍스트 값을 선택합니다.

AutoScale - 자동 스케일링을 제어합니다. On 또는 Off 의 텍스트 값을 선택합니다.

자세한 내용은 Using Records 및 Using DataSets를 참조하십시오.

프로그램 실행시 마커값을 설정하고 읽기

프로그램상으로 다른 속성을 설정하고 읽기 위해서는 To Change Properties Programmatically를 참조하십시오.

프로그램을 실행하면서 마커 값을 가져오거나 설정할 수 있습니다. 디스플레이를 준비하기 위해서, Properties 창의 Name 필드에 값을 입력합니다. Name 의 값은 디스플레이 컨텍스트의 지역변수로 사용되는 Object 변수로 지정됩니다. 다음은 Markers 그룹의 설정을 On 시킵니다. VEE는 다음 속성을 델타 값을 포함하여 X 및 Y 의 위치에 지정합니다.(Marker1 아래를 지시하고; Marker2 는 위를 지시합니다.)

Marker1X (위치를 Real64 타입으로 가져옵니다.)

Marker1Y (위치를 Real64 타입으로 가져옵니다.)

Marker2X (위치를 Real64 타입으로 가져옵니다.)

Marker2Y (위치를 Real64 타입으로 가져옵니다.)

MarkerDX (위치를 Real64 타입으로 가져옵니다.)

MarkerDY (위치를 Real64 타입으로 가져옵니다.)

Marker1 (위치를 Coord 타입으로 가져오거나 설정합니다.)

Marker2 (위치를 Coord 타입으로 가져오거나 설정합니다.)

현재 마커의 위치를 읽거나 마커를 새로운 위치로 이동하기 위해서 Marker1 및 Marker2 의 속성을 사용할 수 있습니다. 마커의 다른 속성은 읽기전용입니다. 마커를 트레이스 이외의 위치로 이동하려고 시도하면, 마커는 지정한 마커의 위치와 트레이스 상의 가장 가까운 데이터 포인트에 스냅됩니다.

Formula 오브젝트의 표현식을 이용해서도 마커 값을 읽거나 설정할 수 있습니다. 각 표현식은 디스플레이의 Declared Name과 마커의 속성을 이용하여 작성해야 합니다. 마커의 속성과 Name 은 대소문자를 구별하지 않습니다. 예를 들어, 디스플레이의 Declared Name이 XY이고, Delta Markers 가 활성화되어 있으면, 다음 표현식은 모든 사용가능한 마커의 값을 읽어서, Real64 스칼라 타입으로 변수 a ~ f 에 저장합니다.:

a = XY.Marker1X

b = XY.Marker1Y

c = XY.Marker2X

d = XY.Marker2Y

e = XY.MarkerDX

f = XY.MarkerDY

디스플레이의 Declared Name은 전역변수로 지정될 수도 있습니다. Formula 오브젝트의 표현식에서 지정연산자를 사용하면서, Declare Variable 오브젝트를 함께 사용하여 전역변수로 설정할 수 있습니다. 예를 들어, globalXY 를 전역변수로, 이것의 Type을 Object로 선언하고, 디스플레이를 사용하는 컨텍스트에서 다음 표현식을 추가합니다.

Set globalXY = XY

이제는 프로그램의 다른 컨텍스트에서 다음 표현식으로 마커의 값을 읽을 수 있습니다.:

a = globalXY.Marker1X

프로그램에 따라서, 프로그램이 마커의 값을 읽기 전에 마커의 위치를 변경할 수 있도록 프로그램이 일시 정지하는 기능을 작성해야 하는 경우가 있습니다. 그래프의 시퀀스 출력과 Formula 오브젝트의 시퀀스 입력사이에 Confirm (OK) 버튼을 프로그램에 추가하여 프로그램 실행을 일시정지 할 수 있습니다. 또한 마커의 위치를 프로그램에서 제어하도록 프로그램을 작성할 수도 있습니다. 프로그램상으로 마커를 설정하는 자세한 정보는 Programmatic Properties를 참조하십시오.

오브젝트 위치

Display [image] Spectrum (Freq) [image] Magnitude vs Phase (Polar)

Display [image] Spectrum (Freq) [image] Magnitude vs Phase (Smith)

관련정보

Magnitude Spectrum, Phase Spectrum, Polar Plot, Spectrum (Freq) 및 Default Preferences 대화상자.

파형 디스플레이하기, 디스플레이에서 마커 설정하기, 마커의 속성을 설정하거나 가져오기 및 오브젝트 메뉴


Main 메뉴항목

Main은 VEE에 있는 루트 UserObject 윈도우입니다.

사용법

Main 윈도우는 VEE 프로그램에 있는 루트 UserObject 윈도우입니다. 이 윈도우는 프로그램에서 필요하며 삭제할 수 없습니다. 다른 UserObject와 UserFunction 윈도우는 Main 윈도우에서 생성됩니다.

Main 윈도우가 축소화 되거나 닫힌 경우에는, View 메뉴에서 이 항목을 선택하여 윈도우를 다시 열수 있습니다. VEE Program Explorer 윈도우에 있는 Main을 클릭하여 열수도 있습니다.

속성창

Title - 현재의 프로그램 이름을 디스플레이합니다. 패널뷰에 오브젝트를 배치할 때 이름을 수정할 수 있습니다. 이 이름은 –r 도스명령어 옵션을 사용하여 프로그램을 실행할 때 프로그램의 타이틀바에 디스플레이 됩니다. 디폴트 값은 Untitled입니다.

ShowPanelonExecute: - 이 속성은 오브젝트를 Main 패널뷰에 추가할 때 사용할 수 있습니다. ShowPanelonExecute 항목이 True로 설정되면, Main 패널뷰는 프로그램이 실행될 때 실행 윈도우에 나타납니다.

TrigMode 그룹:

Degrees | Radians | Gradians – 메인 프로그램에서 사용하는 삼각함수의 단위를 지정합니다. Radians을 선택하면, 삼각함수 연산은 빠르게 실행됩니다. UserObjects에 의해 사용되는 Trig Mode는 이 설정의 영향을 받지 않습니다.

Convert Infinity to 9.9E37 on Binary Reads – 체크박스를 선택하면, 계측기(또는 계측기 데이터를 가진 파일)가 +INF (+infinity), -INF (-infinity), 또는 NAN (숫자가 아닌)를 바이러리 값으로 출력하는 경우에는, VEE는 이것을 변환합니다. 데이터를 읽어 들일 때 마다 이 변환을 실행해야 하므로 데이터 입력속도는 저하됩니다.

SCPI 표준을 따르는 계측기에서 데이터를 가져올 때 또는 그래픽 디스플레이 오브젝트로 데이터를 출력할 경우에 이 체크박스를 선택할 수도 있습니다. 체크박스를 선택하지 않은 상태에서, +INF, -INF, 또는 NAN을 디스플레이 오브젝트로 전송하면, 부동소수점 예외에러가 발생합니다. 체크박스를 선택한 경우에는, 그래프에 이들 데이터가 불연속적인 큰 값으로 표시됩니다.

주의사항

Main 윈도우가 열려있는 경우에는, 다음과 같이 Window 메뉴에도 나타납니다:

Window [image] 1 Main

오브젝트 위치

View [image] Main

관련정보

Arrange Icons 메뉴항목, Cascade, Close All, Minimize All, Program Explorer 메뉴항목, Tile Horizontally 영역, Tile Vertically 영역 및 속성창 (오브젝트)


Make UserFunction 메뉴항목 (오브젝트 메뉴)

UserObject의 오브젝트 메뉴에서 제공되는 메뉴 선택 항목으로, UserObject를UserFunction으로 변환합니다.

사용법

Make UserFunction은 UserObject를 UserFunction으로 변환하기 위해 사용합니다. UserObject의 타이틀바에 디스플레이되는 이름은 UserFunction의 이름이 됩니다. UserObject는 사라지고 Call Function 오브젝트로 대체됩니다.

주의사항

UserObject의 타이틀바에 있는 이름이 UserFunction의 이름으로 적합하지 않거나, "UserObject"라는 이름을 변경하지 않았다면 UserObject의 새로운 이름을 입력하는 대화상자가 나타납니다.

UserFunction 이름은 문자로 시작해야 하고 뒤에 문자나 숫자 또는 밑줄을 사용합니다.

오브젝트 위치

오브젝트 메뉴 (UserObjects 만 사용) [image] Make UserFunction

관련정보

Call, Edit UserFunction 메뉴항목, hidePanel(), showPanel(), UserFunction 및 UserObject.


Make UserObject 메뉴항목 (오브젝트 메뉴)

Edit UserFunction 항목 아래에서 제공하는 메뉴선택 항목으로, UserFunction을 UserObject로 다시 변환합니다.

사용법

Make UserObject는 UserFunction을 UserObject로 다시 변환하기 위해 사용합니다.

주의사항

Make UserObject는 Make UserFunction의 역 기능과 유사합니다. Make UserObject이 UserFunction을 UserObject로 다시 변환할지라도, Call Function 오브젝트는 그대로 남아 있고 프로그램의 메인 컨텍스트에 연결된 채로 있습니다. 반면에 UserFunction 자체의 기능은 사라집니다.

오브젝트 위치

Edit [image] Edit UserFunction [image] Make UserObject (UserFunction의 오브젝트 메뉴에서)

관련정보

Edit UserFunction 메뉴항목, Make UserFunction 메뉴항목 (오브젝트 메뉴), UserFunction 및 UserObject.


수학연산 구문

다음의 항목은 Help 메뉴에 있는 VEE 수학연산자 또는 함수로 링크되어 있습니다.

abs(x)
acos(x)
acosh(x)
acot(x)
acoth(x)
a + b (add)
Ai(x)
a ~= b (almost equal to)
a AND b
+ - * /
Array
asin(x)
asinh(x)
atan(x)
atan2(y,x)
atanh(x)
bartlet(x)
Bessel
beta(x,y)
Bi(x)
binomial(a,b)
bit(x,n)
bitAnd(x,y)
bitCmpl(x)
bitOr(x,y)
bits(str)
bitShift(x,y)
Bitwise
bitXor(x,y)
blackman(x)
Calculus
ceil(x)
charToInt(a)
clearBit(x,n)
clipLower (x,a)
clipUpper (x,a)
cofactor(x, row,col)
comb(n,r)
Comma Operator
Complex Parts 영역
concat(x,y)
conj(x)
convolve(a,b)
cos(x)
cosh(x)
cot(x)
coth(x)
cubert(x)
Data Filtering
defIntegral (x,a,b)
deriv(x, order)
derivAt(x, order,pt)
det(x)
a div b (truncated division)
a / b (divide)
dmyToDate (d,m,y)
a == b (equal to)
erf(x)
erfc(x)
exp(x)
exp10(x)
a ^ b (exponent)
exponential regression
factorial(n)
fft(x)
floor(x)
fracPart(x)
Freq Distribution
gamma(x)
Generate
a > b (greater than)
a >= b (greater than or equal to)
hamming(x)
hanning(x)
hmsToHour (h,m,s)
hmsToSec (h,m,s)
Hyper Bessel
Hyper Trig
i0(x)
i1(x)
identity(x)
ifft(x)
im(x)
init(x,val)
integral(x)
intPart(x)
intToChar(a)
inverse(x)
j(x)
j0(x)
j1(x)
jn(x,n)
k0(x)
k1(x)
a < b (less than)
a <= b (less than or equal to)
linear regression
log(x)
log10(x)
logarithmic regression
Logical
logMagDist (x,from,thru, logStep)
logRamp (numElem, from,thru)
mag(x)
magDist(x, from,thru, step)
matDivide (numer, denom)
matMultiply (A,B)
Matrix
max(x)
maxIndex(x)
maxX(x)
mday(aDate)
mean(x)
meanSmooth (x,numPts)
median(x)
min(x)
minIndex(x)
minor(x,row, col)
minX(x)
a mod b (modulo)
mode(x)
month(aDate)
movingAvg (x,numPts)
a * b (multiply)
NOT a
a != b (not equal to)
now()
a OR b
ordinal(x)
perm(n,r)
phase(x)
poly(x,vec)
Polynomial
polynomial regression
polySmooth (x)
Power
power curve regression
product(x)
ramp (numElem, from,thru)
random (low,high)
randomize (x,low,high)
randomSeed (seed)
re(x)
Real Parts 영역
recip(x)
rect(x)
Regression
rms(x)
rotate(x, numElem)
round(x)
sdev(x)
setBit(x,n)
Signal Processing
signof(x)
sin(x)
sinh(x)
sort(x, direction, field)
sq(x)
sqrt(x)
Statistics
strDown(str)
strFromLen (str,from,len)
strFromThru (str,from, thru)
String
strLen(str)
strPosChar (str,char)
strPosStr (str1,str2)
strRev(str)
strTrim (str,trimlist)
strUp(str)
a - b (subtract)
sum(x)
tan(x)
tanh(x)
Time & Date
totSize(x)
transpose(x)
Triadic Operator
Trig
vari(x)
wday(aDate)
xcorrelate (a,b)
xlogRamp (numElem, from,thru)
a XOR b
xramp (numElem, from,thru)
y0(x)
y1(x)
year(aDate)
yn(x,n)


MATLAB® 스크립트

MATLAB 스크립트 엔진을 호출하는 오브젝트입니다. MATLAB 스크립트 엔진으로 VEE 데이터를 전달하고, MATLAB 스크립트 엔진은 연산결과를 리턴합니다.

MATLAB 도움말

이 도움말에는 VEE에서 MATLAB을 호출하는 방법을 설명하고 있습니다. 그러나, MATLAB 자체에 대한 설명, 즉 MATLAB 안에서 무엇을 할 수 있는가에 대한 설명은 제공하지 않고 있습니다. MATLAB자체로 무엇을 할 수 있는가에 대한 것은 다음 두 가지 방법으로 참조할 수 있습니다:

VEE의 Function & Object Browser는 하단에 Help버튼을 가지고 있습니다. MATLAB 함수를 선택하고 하단의 Help 버튼을 클릭하면MATLAB 도움말 시스템이 가동되어, 해당 기능에 대한 도움말이 표시됩니다.

MATLAB 오브젝트 메뉴(마우스 오른쪽 버튼 클릭 메뉴)에서 MATLAB 도움말을 참조할 수 있습니다. (주의사항 : 이 오브젝트 메뉴에는 “Help”와 “MATLAB Help”가 제공됩니다.) MATLAB Help를 클릭하여야 MATLAB Help 시스템이 가동됩니다.

VEE의 Device 메뉴에서 MATLAB 스크립트 오브젝트가 생성되었다면, 도움말 시스템은 메인 MATLAB HelpDesk 윈도우에서 시작됩니다. MATLAB 스크립트 오브젝트가 VEE의 Function & Object Browser에서 생성된 경우에는, MATLAB 스크립트 오브젝트를 생성하였을 때 선택한 함수에 대하여 도움말이 시작됩니다.

사용법

VEE에서 강력한 기능을 제공하는 MATLAB 스크립트 오브젝트를 사용할 수 있습니다. 이들 오브젝트는 VEE의 Formula 오브젝트를 사용하는 방법과 동일한 방법으로 사용할 수 있습니다. MATLAB 스크립트 명령은 formula 필드에 넣을 수 있습니다. 데이터는 입력과 출력핀을 사용하여 주고 받을 수 있습니다.

Function & Object Browser에서 미리 작성된 MATLAB 스크립트 오브젝트를 직접 사용할 수 있습니다. 또한, Device 메뉴에서 MATLAB Script를 실행하여 생성되는 오브젝트는 두 개의 입력과 하나의 출력을 가지며, 입력창에는 예제 스크립트(X=A+B)를 가지고 있습니다. 이 예제 오브젝트의 입출력핀의 개수와 MATLAB 스크립트 명령은 수정하여 사용할 수 있습니다. VEE에 내장된 MATLAB 스크립트 엔진에서는 약 1500개의 MATLAB 함수를 사용할 수 있습니다. MATLAB 시그날 프로세싱 툴킷은 200여개의 함수를 제공합니다. VEE의 Function & Object Browser는 자주 사용하는 약500개의 함수를 제공합니다. 모든 MATLAB 함수에 대한 도움말은 MATLAB HelpDesk에서 참조할 수 있습니다.

MATLAB 스크립트에서는 변수 이름의 대소문자를 구별하지만, VEE에서는 구별하지 않습니다. “A”와 “a”는 VEE에서 동일한 변수로 인식하지만, MATLAB에서는 다른 변수로 인식하므로, MATLAB 스크립트에서 수식을 작성할 때 주의해야 합니다. 예를 들면, VEE 데이터 터미널을 “A”로 생성하였으면, MATLAB에서는 “a” 대신 “A”를 사용해야 합니다.

VEE는 MATLAB 스크립트에서 사용한 명령의 문법상의 오류를 확인하지 않습니다. MATLAB 스크립트 오브젝트 내부에서 문법적인 오류가 있는 경우에는, MATLAB 스크립트 엔진이 실행되기 까지 해당 오류를 인식할 수 없습니다. MATLAB에서 에러가 발생하면 VEE에서 에러 591 또는 592로 나타납니다. MATLAB 에서 경고(warnings)이 발생하는 경우에는 VEE 에서 주의 메시지(Caution message)로 나타납니다.

VEE프로그램에서 MATLAB 스크립트 오브젝트를 호출하면, 처음 호출되는 MATLAB 스크립트 오브젝트에 의해서 MATLAB 세션이 열립니다. 이후에는 다른 MATLAB 스크립트 오브젝트를 호출하더라도 처음 열린 MATLAB 세션을 사용하게 됩니다. 그러므로 MATLAB 세션은 전역변수를 역할을 하여 세션을 공유할 수 있습니다.

VEE에서 제공하는 MATLAB 스크립트는 MATLAB 함수 정의 기능을 지원하지 않습니다.

데이터 타입 관련

VEE의 모든 데이터 타입을 MATLAB 스크립트의 입력으로 사용할 수는 없습니다. MATLAB 스크립트의 입력터미날에 데이터 타입을 제한하여 MATLAB 스크립트가 지원하는 타입만 사용할 수 있도록 설정할 수 있습니다. 예를 들면, Int32데이터를 사용한다고 가정하겠습니다. MATLAB 스크립트 오브젝트는 정수데이터를 사용할 수 없으며, Real64 데이터만을 사용할 수 있습니다. MATLAB 스크립트 오브젝트의 입력 터미널을 더블클릭하여, Required Type필드의 값을 Real64로 선택할 수 있습니다. 이렇게 입력터미날의 데이터 타입을 제한하면, 입력터미날에 제공되는 Int32 데이터는 자동으로 Real64 타입으로 변환되어 MATLAB 스크립트에서 사용됩니다. 또한 VEE는 VEE 1D 배열을 쉽게 사용할 수 있도록 1D 배열 자동변환 기능을 제공합니다. 다음 테이블에서 VEE 데이터 타입과 MATLAB 데이터 타입의 호환성 문제가 설명되고 있습니다.

MATLAB 스크립트 오브젝트의 입력 핀 데이터

VEE가 제공하는 타입 | MATLAB 이 받아들이는 타입 | 설명
Text Scalar | character array | 배열크기 (1 x n)인 어레이로 변환됩니다. n은 VEE 스트링의 길이입니다.
Text 1D Array | character array | 배열크기 (m x n)인 어레이로 변환됩니다. m은 VEE 배열에서 elements의 개수이며, n은 배열에서 가장 긴 VEE 스트링의 길이입니다.
Text Array, 2D or more | -- | 지원하지 않습니다.
Real64 Scalar | double array | 배열크기 (1x1)이 어레이로 변환됩니다.
Real64 Array | double array | VEE 1차원 배열이 배열크기 (m x 1)인 어레이로 변환됩니다. 2차원 이상의 VEE 배열은 변환되지 않습니다.
Complex Scalar | complex array | (1 x 1)인 어레이로 변환됩니다..
Complex Array | complex array | 배열크기 (m x 1)인 어레이로 변환됩니다. . 2차원 이상의 VEE 배열은 변환되지 않습니다.
Waveform 1D Array | double array | VEE 1차원 배열이 배열크기 (m x 1)인 어레이로 변환됩니다. 웨이브폼 데이터는 시간 매핑정보를 분실합니다.

MATLAB 스크립트 오브젝트의 출력핀 데이터

MATLAB 에서 출력하는 타입 | VEE 가 받아들이는 타입 | 설명
Empty Matrix | nil | 출력 컨테이너가 생성되지 않습니다.
character array of size (1 x n) | Text Scalar |
character array of size (m x n) | Text 1D Array | m 개의 앨리먼트를 가진 1차원 배열로 변경됨
character array, 3D-10D | -- | 지원하지 않습니다.
double array of size (1 x 1) | Rea64 Scalar |
double array of size (m x 1) or (1 x n) | Real64 1D Array or Real64 2D Array | VEE 1차원 배열로 하향 자동변환하도록 오브젝트 속성을 설정할 수 있음. 이 속성을 설정하지 않으면 2D 어레이가 리턴됨
double array, 2D-10D | Real64 Array |
complex array of size (1 x 1) | Complex Scalar |
complex array of size (m x 1) or (1 x n) | Complex 1D Array or Complex 2D Array | VEE 1차원 배열로 하향 자동변환하도록 오브젝트 속성을 설정할 수 있음. 이 속성을 설정하지 않으면 2D 어레이가 리턴됨
complex array, 2D-10D | Complex Array |

MATLAB 스크립트는 무한대 값을 숫자로 사용할 수 있지만, VEE는 무한대 값을 지원하지 않습니다. MATLAB 스크립트 오브젝트가 양의 무한대, 음의 무한대, 또는 NaN(not a number) 값을 부동소수점 형식으로 VEE에 리턴하면, VEE 594에러가 발생합니다.

복수 MATLAB 버전

VEE는 MATLAB 스크립트 엔진을 사용하기 전에, MATLAB이 시스템에 등록되어 있는지 체크합니다. 만약 MATLAB이 이미 등록되어 있다면, VEE에서 제공하는 MATLAB 스크립트 엔진이 MATLAB Automation Server로 설치되지 않습니다. 이 경우, VEE는 기존 MATLAB을 사용하고, 기존 MATLAB 개발환경을 변경하지 않습니다. 더 중요한 것은, MATLAB은 환경설정에 등록된 첫 번째 엔트리를 사용합니다. 만약 환경설정에 등록된 첫 번째 엔트리가 이전 버전의 MATLAB 이라면, VEE는 이전 버전의 MATLAB을 사용하게 됩니다.

VEE에서 제공하는 MATLAB 스크립트 엔진이 이전 버전이라고 하더라도, VEE에서 제공하는 MATLAB 스크립트 엔진을 사용해야 하는 경우(예를 들면, 기존 MATLAB 버전이 시그날 프로세싱 툴박스를 제공하지 않는 등)에는 다음의 절차에 따라서 VEE에서 제공하는 MATLAB 스크립트를 사용하도록 설정할 수 있습니다.

<vee_install_dir>\matlab\bin\matlab.exe /regserver

향후 다른 MATLAB 버전으로 등록내용을 복구하려 한다면, /regserver 옵션을 이용하여 해당 버전의 MATLAB을 실행하거나, 실행할 때 마다 해당 버전의 MATLAB을 실행할 수 있습니다.

VEE 8.0에서 MATLAB 5.3, 6.1 및 6.5를 사용할 수 있습니다.

오브젝트 위치

Device [image] Function & Object Browser [image] MATLAB Functions

Device [image] MATLAB Script

관련정보

MATLAB 스크립트 개괄


Merge 오브젝트

작업영역에 있는 내용을 유지하면서 프로그램의 내용이나 저장된 오브젝트를 작업영역에 추가합니다.

사용법

Merge는 이전에 저장된 프로그램이나 오브젝트를 작업영역에 있는 현재의 프로그램에 병합하기 위해 사용합니다. Merge는 이전에 생성된 프로그램이나 자주 사용하는 함수 라이브러리에 있는 오브젝트를 가져오기 위해 사용합니다.

주의사항

프로그램과 함께 저장된 Default Preferences (예, Trig Mode)는 프로그램을 VEE 작업영역에 병합할 때 로딩되지 않을 수도 있고, 사용될 수도 있습니다. 현재 작업영역에서 활성화된 Default Preferences는 변경되지 않고 유지됩니다.

UserFunctions에서는 Merge를 사용할 수 없습니다. 대신에 Merge Library를 사용하십시오.

Merge는 사용하고자 하는 파일이름을 선택할 수 있는 대화상자를 디스플레이 합니다. Merge를 사용할 때, 대화상자는 VEE 프로그램 설치 디렉토리 아래에 있는 Lib 디렉토리를 디스플레이 합니다.

Merge는 Save 또는 Save As를 사용하여 저장한 파일을 로딩하기 위하여 사용합니다.

패널뷰와 함께 저장한 프로그램의 경우에, 패널은 프로그램으로 임포팅되지 않습니다. UserObject의 패널뷰는 임포팅됩니다.

임베딩된 I/O 설정을 가지는 프로그램 파일을 Merge하면, I/O 설정은 병합되지 않습니다. 임베딩된 I/O 설정 및 병합하기를 참조하십시오.

오브젝트 위치

File [image] Merge

관련정보

Merge Library, Open 메뉴항목, Save 메뉴항목 및 Save Objects 메뉴항목.

UserObject 라이브러리를 생성하여 사용하기

라이브러리 파일에서 오브젝트와 프로그램 병합하기


Merge Library 오브젝트

UserFunctions 라이브러리를 작업영역으로 로딩합니다.

사용법

Merge Library는 이전에 함수의 라이브러리 파일에 저장된 UserFunctions을 현재의 작업영역에 병합하기 위해 사용합니다.

UserFunctions는 지정한 파일에서 모든 UserFunctions을 로딩합니다. (UserFunctions은 UserObject의 오브젝트 메뉴에 있는 Make UserFunction 항목을 선택하여 생성합니다.)

UserFunctions 라이브러리가 로딩되고 나면, 함수는 Call 오브젝트를 사용하여 이름으로 실행(호출)됩니다.

주의사항

Merge Library는 UserFunctions 을 라이브러리로 개발한 후에 고급 실행에 사용됩니다. UserFunctions 라이브러리를 개발할 때, 해당 함수의 소오스 코드를 한 장소에 저장할 수 있습니다. UserFunctions을 사용하는 자세한 방법은 Help [image] Content [image] Tell me about... User-Defined Functions을 참조하십시오.

Merge Library에 의해 로딩된 UserFunctions은 프로그램내에서 생성된 로컬 UserFunction과 동일하게 동작합니다. Call 오브젝트를 사용하거나 표현식 입력이 가능한 오브젝트(예, Formula 오브젝트)에 UserFunction을 사용하여 UserFunction을 실행할 수 있습니다. Merge Library에 의해 로딩되어 VEE 작업영역으로 병합된 UserFunction은 편집할 수 있습니다.

프로그램과 함께 저장된 Default Preferences (예, Trig Mode)는 프로그램을 VEE 작업영역에 병합할 때 로딩되지 않을 수도 있고, 사용될 수도 있습니다. 현재 작업영역에서 활성화된 Default Preferences는 변경되지 않고 유지됩니다.

UserFunctions에서는 Merge를 사용할 수 없습니다. 대신에 Merge Library를 사용하십시오.

Merge Library는 사용하고자 하는 파일이름을 선택할 수 있는 대화상자를 디스플레이 합니다. 대화상자는 VEE 프로그램 설치 디렉토리 아래에 있는 Lib 디렉토리를 디스플레이 합니다.

임베딩된 I/O 설정을 가지는 프로그램 파일을 Merge하면, I/O 설정은 병합되지 않습니다. 임베딩된 I/O 설정 및 병합하기를 참조하십시오.

오브젝트 위치

File [image] Merge Library

관련정보

Call, Delete Library, Edit UserFunction 메뉴항목n, 메뉴항목, Import Library, Open 메뉴항목, Save 메뉴항목, Save Objects 메뉴항목, UserFunction 및 UserObject.


Merge Record 오브젝트

동일한 형태를 가진 2개 이상의 레코드를 하나의 레코드로 병합하기 위해 사용하는 오브젝트

사용법

Merge Record는 2개 이상의 레코드를 하나의 레코드로 병합하기 위해 사용합니다. 어떤 숫자의 스칼라 레코드도 병합할 수 있습니다. 모든 어레이가 동일한 숫자의 앨리먼트를 가진다면 어떤 숫자의 레코드 어레이도 병합할 수 있습니다.

주의사항

어떤 숫자의 입력핀(A, B, 등등)도 추가할 수 있습니다. 그러나 입력 타입은 Record 데이터 타입이어야 합니다. 병합된 레코드는 Record 출력핀으로 출력됩니다.

병합할 레코드는 필드 이름이 중복되어서는 안됩니다. 필드 이름은 입력 레코드에서 가져옵니다(입력 터미날의 이름은 무시됩니다.)

오브젝트 위치

Data [image] Access Record [image] Merge Record

관련정보

Build Record, From DataSet, Record Constant, Set Field, To DataSet, UnBuild Record 및 속성창 (오브젝트)


Message Box 오브젝트

사용자에게 메시지를 제공하는 팝업 대화상자를 디스플레이하는 오브젝트

사용법

Message Box는 사용자에게 정보를 제공하는 메시지를 디스플레이하기 위해 사용합니다. 사용자는 대화상자에 있는 버튼을 클릭하여 응답합니다. 버튼에 있는 텍스트는 수정할 수 있습니다.

팝업 대화상자에서, 버튼을 누르면 버튼과 관련된(동일한 이름을 가진) 출력핀으로 1이 출력됩니다.

오픈뷰

  • Message - 메시지 박스 대화상자에 디스플레이 되는 정보 스트링. 필드에 있는 텍스트에서 새로운 라인을 시작하기 위해 \n를 사용합니다. 이 파라미터는 데이터 입력으로 추가할 수 있습니다. 디폴트 값은 User Message 입니다.

  • Symbol - 메시지 박스 대화상자의 좌측에 디스플레이되는 그래픽 이미지. 이 파라미터는 데이터 입력으로 추가할 수 있습니다.

    • Question - 녹색 원안에 있는 흰색 의문 부호

    • Exclamation - 노란색 삼각형안에 있는 검정색 느낌표

    • Information - 파란색 원안에 있는 흰색 “i” 문자

    • Stop - 적색 원안에 있는 흰색 “X” 텍스트

    • Blank - 팝업 대화상자에 그래픽을 표시하지 않을 때 사용합니다.

    • <Custom...> - 그래픽 파일에서 기호로 사용하고자 하는 그림을 선택할 수 있는 대화상자를 디스플레이 합니다.
      대화상자에서:
      - Picture - 파일들에서 그래픽 파일의 이름을 입력합니다. 나타나는 디렉토리는 VEE 디렉토리 아래에 있는 비트맵 디렉토리입니다. 다른 디렉토리에서 파일을 선택하기 위해서는 Browse... 버튼을 누릅니다.
      - Actual (디폴트)은 자동으로 그래픽 이미지의 실제 크기를 맞추기 위해 오브젝트의 크기를 조정합니다.
      오브젝트의 크기가 조정된 경우에는 이미지는 축소되지 않습니다. – Scaled는 오브젝트가 재조정된 것처럼 그래픽 이미지의 크기를 축소합니다.

이 파라미터는 데이터 입력으로 추가할 수 있습니다. 디폴트 값은 Information입니다.

  • Buttons - 메시지 박스 대화상자의 바닥에 디스플레이 되는 버튼에 나타내고자 하는 텍스트. 선택 항목은 다음과 같습니다.

  • OK

    • OK Cancel

  • Abort Retry Ignore

    • Yes No

    • Yes No Cancel

    • Retry Cancel

    • <Custom ...> - 3개 까지의 버튼 라벨에 텍스트를 입력하기 위한 대화상자를 제공합니다. 입력 필드를 빈 상태로 놓으면, 버튼을 생성할 수 없습니다.

데이터 출력핀은 버튼의 선택과 일치하여 자동으로 설정됩니다.

  • Default - 사용자가 Enter 키를 누르면 선택되는 버튼. 디스플레이 되는 선택 버튼은 Default에서 선택한 버튼입니다.. 이 파라미터는 데이터 입력으로 추가할 수 있습니다. 디폴트 값은 OK입니다.

속성창

  • PopupTimeoutEnabled - 이 속성을 True로 설정하면, 오브젝트에 Timeout 출력핀이 추가됩니다. 디폴트 값은 False입니다.

  • PopUpDuration - 팝업 대화상자가 디스플레이되는 시간을 설정합니다. 설정된 시간이 지나면, 대화상자는 사라지고 Timeout 출력핀으로 1을 출력합니다. Timeout 핀이 실행되면 다른 출력핀들은 데이터를 출력하지 않습니다. 이 필드는 PopupTimeoutEnabled가 True로 되어 있을 때만 사용할 수 있습니다. 디폴트 값은 60초 입니다.

주의사항

팝업 대화상자의 디폴트 위치는 작업영역의 중앙 근처입니다. 이 대화상자를 이동한 경우에는, 다음에 대화상자가 팝업될 때 새로운 위치에서 팝업됩니다.

팝업 대화상자에서 키보드 만을 이용하여 입력하기 위해서는: 대화상자가 팝업될 때 왼쪽 마우스 버튼을 선택하기 위해서는 Enter키를 사용하고, 오른쪽 마우스 버튼을 선택하기 위해서는 Esc키를 사용합니다. 입력 필드와 버튼 사이를 이동하기 위해서는 Tab키를 사용하고, 버튼을 선택하기 위해서는 Space바를 사용합니다.

팝업 대화상자와 에러 대화상자는 프로그램이 실행중일 때만 디스플레이 됩니다. 팝업 대화상자가 디스플레이 되는 동안에는 모든 프로그램의 실행이 일시 중지되고, 대화상자가 닫히면 다시 실행이 진행됩니다.

속성창에 있는 Timeout Enabled 항목을 True로 설정하여 오브젝트에 Timeout 출력핀을 추가한 경우에는, Timeout Enabled 항목을 False로 설정하여 이 출력핀을 삭제할 수 있습니다. 오브젝트 메뉴에 있는 Delete Terminal을 사용하거나 Ctrl+D(“터미날 삭제”의 단축키)를 사용하여 이 출력핀을 삭제할 수는 없습니다.

오브젝트 위치

Data [image] Dialog Box [image] Message Box

관련정보

File Name Selection, List Box, Int32 Input, Real64 Input, Text Input, UserObject 및 오브젝트 메뉴

기본 제공되는 Dialog Box 오브젝트에 대하여


Meter 오브젝트

스칼라 숫자를 그래픽하게 디스플레이 하는 오브젝트

사용법

Meter는 아날로그 스케일과 디지털 숫자 필드에 값을 디스플레이하기 위해 사용합니다.

오픈뷰

오브젝트의 오픈뷰 상태에서 현재의 값을 클릭하고 새로운 값을 입력하여 Meter의 최소값 및 최대값을 설정합니다. 최소값이 최대값보다 큰 경우에는, Meter의 바늘의 동작 방향이 변경됩니다. (예, 왼쪽에서 오른쪽 방향 대신에 오른쪽에서 왼쪽 방향)

이들 값은 컨트롤 입력핀으로 추가할 수 있습니다.

속성창

ClearAtPreRun - 속성을 True로 설정하면, Meter의 내용들은 실행직전에 초기화됩니다. 디폴트 값은 True입니다.

 ClearAtActivate - 속성을 True로 설정하면, Meter의 내용들은 실행시에 초기화됩니다. 디폴트 값은 True입니다.

Orientation - Meter의 디스플레이 방법을 선택합니다. Meter의 방향이 vertical 이면, 최소값은 상단에 있고 최대값은 하단에 있습니다. 디폴트 값은 Horizontal입니다.

 ShowDigitalDisplay - 속성을 True로 설정하면, 입력값에 대한 디지털 디스플레이가 오브젝트 오픈뷰의 바닥에 표시 됩니다. 속성을 False로 설정하면, 디지털 디스플레이는 표시되지 않고 오브젝트가 좀더 빠르게 동작합니다. 디폴트 값은 True입니다.

 ShowTics - 스케일의 tic 마크와 라벨의 표시를 선택합니다. 디폴트 값은 True입니다.

 Logarithmic - 속성을 True로 설정하면, 선형스케일을 로그스케일로 변경합니다. 디폴트 값은 False입니다.

 LabelSpacing - tic 마크에 표시된 스케일 값을 선택합니다. 디폴트 값은 Every Other Tic입니다.

Sub-Range Configuration Category: - 디스플레이의 범위를 각기 다른 색상으로 설정합니다. 색상의 범위는 바닥은 적색으로, 상단은 녹색으로 표시합니다. 각 스케일의 끝에 서브범위를 적색(디폴트)으로 사용할 수 있습니다.

Show Range - 속성을 True로 설정하면, 서브 범위의 색상이 오브젝트에 디스플레이 됩니다.

Meter Range - 서브 범위의 한계를 설정합니다.

ColorRange - 다른 범위의 색상을 설정합니다.

NumberFormat:

Global Format - 디폴트 포맷을 사용합니다. 디폴트 값은 True입니다.

Real: - Global Format이 off되면, 오브젝트에 표시할 숫자 형식을 실수로 지정합니다. Fixed (예. 98.6000), Scientific (예. 9.8600E+01), Engineering (예. 98.6000E0), Standard (예. 98.6), 및 Time Stamp (예. Wed 01/Jan/2003 17:01:38)를 선택할 수 있습니다. 디폴트 값은 Standard 입니다.

주의사항

입력값은 Scalar여야 하고, Real64로 변환될 수 있어야 합니다. (Complex, PComplex, Spectrum 및 Coord 는 먼저 스칼라로 변경되어야 합니다.)

오브젝트 위치

Display [image] Indicator [image] Meter

관련정보

AlphaNumeric, Logging AlphaNumeric 및 Default Preferences 대화상자.

데이터를 아날로그 디스플레이로 나타내기


Minimize All 오브젝트

VEE 작업공간에서 윈도우 화면을 관리하기 위한 함수

사용법

Minimize All 은 열려 있어 축소화 되지 않은 모든 윈도우를 축소화 합니다. 축소화된 윈도우는 VEE 작업공간의 바닥에 작은 아이콘으로 나타납니다.

오브젝트 위치

Window [image] Minimize All

관련정보

Arrange Icons 메뉴항목, Cascade 메뉴항목, Close All, Tile Horizontally 영역 및 Tile Vertically 영역.


Minimize 메뉴항목 (오브젝트 메뉴)

오브젝트나 윈도우의 오픈뷰를 아이콘화 합니다.

사용법

Minimize는 VEE 작업공간에 있는 오브젝트의 오픈뷰를 아이콘뷰로 전환하거나, 열린 윈도우(Main, UserObject, UserFunction)를 축소화 하기 위하여 사용합니다.

주의사항

Minimize는 모든 오브젝트와 윈도우의 오픈뷰에서 사용할 수 있습니다.

단축키

오브젝트나 윈도우를 축소화 하기 위해서 오브젝트나 윈도우의 오른쪽 상단에 있는 축소화 버튼을 누릅니다.

오브젝트 위치

각 오브젝트 메뉴 [image] Minimize

관련정보

Restore 메뉴항목 (오브젝트 메뉴).


기타 연산자

Function & Object Browser 메뉴항목에서 제공하는 Formula 타입의 오브젝트

사용법

Miscellaneous Operators 오브젝트는 간단한 어레이를 생성하거나 읽기 위해서, 또는 레코드에 있는 필드를 읽기 위해서 Triadic Operator를 제공합니다.

주의사항

Category: Miscellaneous를 선택하면, Function & Object Browser 대화상자의Member 칼럼은 다음과 같은 다양한 오브젝트를 디스플레이 합니다. 오브젝트중의 하나를 클릭하면, Miscellaneous Operator로 미리 로딩된 VEE 오브젝트를 가져옵니다. 제공되는 오브젝트는 다음과 같습니다:

(a?b:c) – 삼항연산자. 'a'가 참(0이 아님)이면, 'b' 가 출력되고, 거짓이면 'c'가 출력됩니다.

PI – 값 3.14 (17자리를 가지고 있음). 원주 비율을 원의 지름으로 표시한 자연지수

[1,2,3] – 스칼라에서 1차원 어레이를 생성합니다.

[a,b,c] – 동일한 형태의 입력을 받아들여 임의의 차원을 가진 어레이를 생성합니다.

a[2] – 어레이의 일부분을 출력합니다.

a[5,3:4,*] – 복소수 어레이의 일부분을 출력합니다.

rec.field – 레코드에 있는 하나의 필드를 출력합니다.

object.value - ActiveX 오브젝트의 프로퍼티를 가져옵니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Miscellaneous

관련정보

Assignment, Function & Object Browser 메뉴항목 및 Triadic Operator


Move 메뉴항목 (오브젝트 메뉴)

해당 오브젝트를 이동합니다.

사용법

Move는 작업영역에서 오브젝트를 드래그하여 위치를 변경합니다.

주의사항

MMove는 다른 오브젝트와의 연결선은 그대로 유지합니다. Automatic Line Routing 속성이 설정되어 있으면 연결선을 다시 생성하는데 약간의 시간이 필요합니다.

Move는 패널뷰와 데테일뷰에서 사용할 수 있습니다.

복수의 오브젝트를 이동하기 위해서는, 오브젝트들을 선택(CTRL키를 누른 상태에서 마우스 왼쪽 버튼이나 Edit [image] Select All 사용)하고 통째로 드래그합니다.

컨트롤키를 누른 상태에서 마우스의 왼쪽 버튼을 클릭하고 드래그하여 오브젝트들을 둘러싸는 사각형을 생성하여 복수의 오브젝트를 선택할 수도 있습니다.

패널뷰에서 오브젝트를 이동했을 때 오브젝트가 겹친 경우에는, 오브젝트의 위치를 변경하기 위하여 오브젝트 메뉴에 있는 Bring to Front 또는 Send to Back을 사용하십시오.

단축키

Move를 선택하는 것 대신에 오브젝트 위에 마우스 커서를 위치 시키면, 4개의 코너 이동 커서가 나타납니다. 마우스 왼쪽 버튼을 클릭하여 오브젝트를 드래그 하십시오. 마우스의 포인터는 버튼이나 입력 필드 위에는 놓지 말아야 합니다.

오브젝트 위치

각 오브젝트 메뉴 [image] Move

관련정보

오브젝트 메뉴.


Move File 오브젝트

파일을 주어진 위치에서 새로운 위치로 이동합니다. 동일한 방법을 이용하여 파일의 이름도 변경할 수 있습니다.

오브젝트 위치

System [image] File [image] Move File


MultiDevice Direct I/O 오브젝트

동일한 트랜잭션 박스에서 하나 이상의 계측기에 데이터를 쓰고, 읽는 오브젝트

사용법

MultiDevice Direct I/O는 다수의 I/O 어드레스에 있는 계측기로 다양한 인코딩 방식과 포맷으로 출력 및 입력하기 위해 사용합니다.

오픈뷰 항목

오픈뷰는 실행할 트랜잭션 리스트를 디스플레이 합니다.

Direct I/O 명령어:

READ: 지정된 인코딩 방식과 포맷을 사용하여 계측기에서 데이터를 읽어옵니다.

WRITE: 지정된 인코딩 방식과 포맷을 사용하여 계측기에 데이터를 기록합니다.

EXECUTE: GPIB 계측기의 경우, Selected Device Clear, Go To Local, Go To Remote 또는 Group Execute Trigger 명령어를 계측기로 전송합니다. Serial 계측기의 경우에는 Break 또는 Reset 명령어를 계측기로 전송합니다. 이 트랜잭션을 GPIO 계측기에서 사용할 때는 Reset 명령어를 계측기로 보냅니다. VXI 메시지 기반 계측기에서 이 트랜잭션을 사용하면 Selected Device Clear, Go To Local, Go To Remote 또는 Trigger 명령어를 계측기로 전송합니다.

WAIT: 다음 트랜잭션의 실행 전에 일정 시간 동안 멈춥니다. GPIB계측기 혹은 VXI 메시지 기반 계측기는, serial poll값을 마스크 값과 각 비트별로 AND 연산을 실행한 결과가 0 (모든 비트가 zero. ALL CLEAR) 또는 하나의 비트라도 0 이 아닐 때(ANY SET)까지 기다립니다.

GPIO 계측기의 경우, READ 명령어는 IOSTATUS를 허용하고 WRITE 명령어는 IOCTL을 허용합니다.

VXI 계측기의 경우, READ 명령어와 WRITE 명령어는 REGISTER: 와 MEMORY: 를 허용합니다. WAIT 명령어는 메모리 또는 레지스터 옵셋의 값을 마스크의 값과 AND 한 결과가 ANYSET, ALL CLEAR, 또는 EQUAL 조건을 만족할 때까지 기다립니다.

오브젝트 메뉴

Edit Trans – 현재 하이라이트된 트랜잭션을 수정합니다.

Add Trans - 트랜잭션 목록에 트랜잭션을 추가합니다.

Insert Trans - 현재 선택된 트랜잭션 필드 위에 트랜잭션 필드를 추가합니다.

Cut Trans - 현재 선택된 트랜잭션 필드를 지웁니다. 여기서 삭제된 트랜잭션은 “cut-and-paste” 버퍼에 저장됩니다.

Copy Trans - 현재 선택된 트랜잭션 필드를 트랜잭션 “cut-and-paste” 버퍼에 복사합니다.

Paste Trans - 이전에 “잘라내기” 또는 “복사” 한 트랜잭션을 붙여 넣습니다.

Delete Trans – 하이라이트된 트랜잭션을 리스트에서 삭제합니다.

Move Trans Up – 하이라이트된 트랜잭션을 위로 이동합니다.

Move Trans Down - 하이라이트된 트랜잭션을 아래로 이동합니다.

Print Trans - 현재 선택된 트랜잭션 필드를 설명한 세부적인 대화 상자가 프린트됩니다.

단축키

입력과 출력 터미날 화면 영역 위에 커서를 올려놓고 CTRL+A을 누르면 데이터 터미날이 추가됩니다. CTRL+A를 누를 때마다 데이터 터미날이 추가됩니다.

입력과 출력 터미날 화면 영역 위에 커서를 올려놓고 CTRL+D을 누르면 데이터 터미날이 제거됩니다. CTRL+D를 누를 때마다 데이터 터미날이 제거됩니다.

트랜잭션을 빠르게 삽입하기 위해서는, 트랜잭션에 커서를 위치시킵니다. 커서가 위치한 트랜잭션 다음에 트랜잭션을 삽입하기 위하여 Insert 키를 누릅니다.

트랜잭션을 빠르게 삭제(“kill”)하기 위해서는, 트랜잭션에 커서를 위치시키고 Delete 키를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼에서 붙여넣기 위해서는 CTRL+V를 누릅니다.

트랜잭션 이전이나 다음으로 빠르게 이동하기 위해서는, 위 화살표 또는 아래 화살표를 누릅니다.

주의사항

MultiDevice Direct I/O는 Direct I/O와 아주 유사합니다. 그러나 MultiDevice Direct I/O는 어떤 특정한 계측기에 국한되지 않습니다. 각 트랜잭션은 다양한 I/O 어드레스로 설정된 어떤 계측기와도 통신할 수 있습니다. 트랜잭션 대화상자는 설정된 계측기에서 원하는 계측기를 지정할 수 있게 합니다.

계측기 설정시 입력된 계측기의 디폴트 어드레스나 다른 어드레스를 지정하여 사용할 수 있습니다. 계측기 어드레스가 다를 경우에는, 텍스 박스를 추가로 나타내는 Default Address 버튼을 클릭합니다. 박스에 새로운 어드레스나 변수이름을 입력하십시오.

오브젝트 위치

I/O [image] Advanced I/O [image] MultiDevice Direct I/O

관련정보

Advanced I/O 메뉴항목, 컴포넌트 드라이버, Direct I/O, Formula, Instrument Manager 대화상자, 패널 드라이버 및 To/From VXIplug&play.

Direct I/O를 이용한 데이터 읽기

Direct I/O 오브젝트 사용하기

속성창 (오브젝트)

Using the MultiInstrument Direct I/O Object

To Edit a Transaction


New 메뉴항목

작업영역을 초기화 합니다.

사용법

New는 작업영역을 초기화 하기 위해 사용합니다.

주의사항

프로그램이 저장되어 있지 않은 경우에는, 변경된 내용을 저장하도록 하는 대화상자가 나타납니다.

New는 Paste 버퍼에 있는 내용은 초기화 하지 않습니다. New는 디폴트 설정 파일인 VEE.RC에서 디폴트 Preferences 설정을 읽어 옵니다.

New는 Save와 Open 명령에서 사용하는 디렉토리 경로를 사용합니다.

단축키

프로그램을 초기화 하기 위하여 CTRL+N을 누릅니다.

오브젝트 위치

File [image] New

관련정보

Default Preferences 대화상자


Next 오브젝트

Repeat [image] 오브젝트가 다음 반복을 시작하도록 합니다.

사용법

Next는 반복 쓰레드에 남아있는 오브젝트를 실행하지 않고 현재 루프의 다음 반복을 건너뛰기 위해 사용합니다.

Next가 반복 쓰레드에 있지 않은 경우에는, 쓰레드의 모든 실행을 정지시킵니다.

주의사항

Next는 반복을 조건부로 컨트롤 하기 위하여 If/Then 오브젝트와 함께 사용합니다.

오브젝트 위치

Flow [image] Repeat [image] Next

관련정보

Break, For Count, For Log Range, For Range, If/Then/Else, On Cycle 및 Until Break.

VEE 프로그램의 일부분을 반복하기

속성창 (오브젝트)


NI-FGEN

VEE에서 NI-FGEN을 사용할 때, 여러 트랜잭션에서 핸들을 생성해야 할 필요가 있습니다. 일부 트랜잭션 다음과 같습니다:

  • AGniFgen_CreateFreqList

  • AGniFgen_CreateWaveformF64

  • AGniFgen_CreateWaveformI16

  • AGniFgen_CreateWaveformFileI16

  • AGniFgen_CreateWaveformFileF64

  • AGniFgen_CreateWaveformFileHWS

  • AGniFgen_CreateArbSequence

  • AGniFgen_CreateAdvancedArbSequence

  • AGniFgen_AllocateWaveform

이들 핸들은 출력핀을 통해서 트랜잭션으로부터 리턴되고 프로그램 내의 다른 오브젝트에 전송할 수 있습니다. 또한 동일한 To/From NI-FGEN 오브젝트 내부의 다른 트랜잭션이 내부에서 사용할 수 있습니다. 출력생성을 완료한 다음에는 위의 트랜잭션 중의 하나에 의해서 생성된 Sequence/Waveform/Frequency-List 핸들을 “클리어”해야 합니다. 위 트랜잭션의 각각에 대해서, “클리어” 트랜잭션이 있으며, 이것들은 입력핀을 통해서 핸들을 받습니다. 예들 들면;

“AGniFgen_ClearFreqList”전에 “AGniFgenAbortGeneration” 트랜잭션을 사용해야 합니다.

관련정보

To/From NIDAQ, NI-SCOPE Fetch/Read 함수, NI-DAQmx, VEE에서 NI 데이터 수집 사용법


NI-SCOPE Fetch/Read 함수

웨이브폼 데이터를 리턴하는 일부 NI-SCOPE 함수는 VEE에서 제공하는 기능과는 다른 방식으로 데이터를 리턴합니다. VEE는 스트럭쳐 포인터를 사용할 수 없습니다. 이에 해당하는 함수는 다음과 같습니다:

  • AGniScope_Fetch

  • AGniScope_FetchArrayMeasurement

  • AGniScope_FetchBinary8

  • AGniScope_FetchBinary16

  • AGniScope_FetchBinary32

  • AGniScope_Read

이들 함수는 NI-SCOPE에 대한 내쇼날인스트루먼트사의 온라인 도움말에서 서 설명하는 내용과 약간 다릅니다. 첫 째, VEE는 한 순간에 하나의 채널에 대한 Fetching/Reading을 허용합니다. 사용자에 의해 여러 채널에서 데이터를 수집하도록 설정된 경우에는, 한 번에 하나의 채널에서 개별 데이터를 가져오기 위하여 복수의 Fetches/Reads을 사용합니다. 둘 째, 다음의 필드를 가지는 niScope_wfmInfo 스트럭쳐에 포인터를 리턴하는 대신

wfmInfo

struct niScope_wfmInfo

각 웨이브폼에 대해서 다음과 같은 타이밍 및 스케일링 정보를 가진 스트럭쳐 어레이를 리턴합니다:

wfmInfo

  • relativeInitialX - 트리거가 발생한 후 페치된 웨이브폼에서 처음 샘플 까지의 시간(초)

  • absoluteInitialX -레코드와 수집을 비교할 수 있는 첫 번째 페치된 샘플의 타임스탬프; 사용하는 디지타이저가 연속 수집 기능을 지원해야 합니다.

  • xIncrement - 수집된 웨이브폼에서 포인트간의 초 단위의 시간

  • actualSamples - 페치되어 웨이브폼 어레이에 배치된 실제 샘플의 개수

  • gain - 해당 채널의 게인팩터; 이 포뮬러를 이용하여 바이너리 데이터를 스케일링하는데 유용함

  • offset - 해당 채널의 옵셋팩터;이 포뮬러를 이용하여 바이너리 데이터를 스케일링하는데 유용함

전압= 바이너리 데이터* 게인팩터+ 옵셋

VEE는 ViReal64 relativeInitialX 및 ViReal64 xIncrement을 분리된 인자로 리턴합니다. absoluteInitialX, actualSamples, gain, 또는 offset에 접근하기 위해서는 적절한 Attribute ID를 이용하여 AGniScope_GetAttributeViReal64()를 호출합니다. 이러한 방식으로 VEE에 리턴되는 값을 VEE 웨이브폼 생성에 사용할 수 있습니다.

위 프로그램은 멀티-페치, 2-채널 수집 예제입니다.

See Also

To/From NIDAQ, NI-FGEN, NI-DAQmx, Using NI Data Acquisition in VEE


Noise Generator 오브젝트

노이즈 데이터의 파형을 생성하는 오브젝트

사용법

Noise Generator는 가상의 화이트 노이즈를 생성하기 위해 사용합니다.

오픈뷰 항목

모든 항목은 오픈뷰에서 설정할 수 있으며, 데이터 입력으로 추가할 수 있습니다.

Amplitude - 최대값과 최소값의 차이값. 디폴트 값은 1입니다. Amplitude보다 큰 값은 없고, -Amplitude보다 작은 값은 없습니다.

Time Span: - 파형의 시간(초단위). 디폴트 값은 20m입니다.

Num Points: - 파형의 포인트 수. 파형의 포인트 사이의 시간은 Time Span/N입니다. Num Points는 양수여야 합니다. 디폴트 값은 256입니다.

오브젝트 위치

Device [image] Virtual Source [image] Noise Generator

관련정보

Build Arb Waveform, Build Waveform, Comparator, Function Generator, Pulse Generator 및 속성창 (오브젝트)


Note Pad 오브젝트

입력창의 내용을 RTF 형식의 대화상자로 디스플레이합니다. NotePad 대화상자를 열 때 디폴트로 표시되는 내용은 NotePad 대화상자의 사용법입니다. 디폴트 NotePad의 입력 내용은 installdir\templates 디렉토리에 있는 notepad.rtf 파일을 편집하여 수정할 수 있습니다. notepad.rtf 파일을 열어서 내용을 지우거나, NotePad의 내용을 전체 선택하여 삭제하면 NotePad 입력창의 내용을 삭제할 수 있습니다.

사용법

Note Pad는 프로그램, 라벨, 패널뷰를 문서화 하거나 주석을 작성하기 위해 사용합니다.

오픈뷰 항목

Note Pad에 정보를 입력하기 위해서는, 패널을 클릭하고 내용을 입력 하거나 RTF 형식의 어플리케이션에서 내용을 작성하고 복사하여 Note Pad로 붙여넣기 합니다.

오브젝트 메뉴

Insert File... - 기존에 작성된 텍스트나 RTF 파일을 선택하여 Note Pad에 삽입할 수 있는 대화상자를 제공합니다.

Clear All - Note Pad에 있는 모든 내용을 초기화합니다. 초기화를 실행할 건지 취소할 건지를 묻는 대화상자가 제공됩니다.

속성창

EditingEnabled - 속성을 True로 설정하면, 패널에서 내용을 편집할 수 있습니다. False로 설정하면, 편집 할 수 없습니다. 이 설정은 패널뷰에 Note Pad가 있고 다른 사용자가 내용을 수정하는 것을 원하지 않을 경우에 유용합니다.

주의사항

각 Note Pad는 독립적인 오브젝트로 다른 오브젝트와 연결되지 않습니다.

내용을 편집하거나 크기를 변경하면, 필요에 따라 스크롤바가 Note Pad에 추가되거나 제거됩니다.

텍스트 영역을 편집하기 위한 모든 VEE 편집기능을 사용할 수 있습니다.

Notepad에서는 Rich Text Format (RTF)을 사용할 수 있습니다. RTF 문서도 잘라내어 Notepad로 붙여넣을 수 있습니다.

Notepad 내용을 인쇄할 수 있으며, 인쇄 형식은 순수한 텍스트 형식입니다.

%installDir%\Templates 디렉토리에 있는 Notepad.rtf를 편집하여 Notepad 입력을 위한 템플릿을 생성할 수 있습니다.

오브젝트 위치

Display [image] Note Pad

관련정보

메뉴항목

프로그램 문서화하기


Now (System 메뉴)

시스템의 시간 및 날짜를 가져옵니다.

오브젝트 위치

System [image] DateTime [image] Now


¿ÀºêÁ§Æ® ¸Þ´º(Object Menu)

오브젝트 메뉴

오브젝트에 영향을 주는 선택항목을 제공하는 각 오브젝트에 관련된 메뉴

사용법

오브젝트의 상태를 설정, 편집, 컨트롤을 설정하고 오브젝트의 터미날을 추가하고 삭제하는데 사용합니다.

오브젝트 메뉴는 다음의 항목을 제공합니다:

Restore

Move

Size

Minimize

Clone

Replace

Help

Properties

Description

Add Terminal

Data Input

Control Input

Data Output

Error Output

Delete Terminal

Input

Output

Delete

메인 윈도우, UserObjects, 또는 UserFunctions의 패널뷰에 배치된 오브젝트의 오브젝트 메뉴는 다음 항목을 제공합니다:

Move

Size

Properties…

Go To Detail View

Delete

주의사항

많은 오브젝트 메뉴는 해당 오브젝트에 관련된 부가적인 메뉴를 제공합니다. 부가적인 메뉴 항목에 대한 자세한 내용은 오브젝트에 있는 정보를 참조하십시오.

대부분의 오브젝트는 속성창(오브젝트 메뉴의 Properties를 통해서 제공되는)에서 오브젝트와 관련된 부가적인 옵션을 제공합니다. 오브젝트의 부가적인 속성에 대한 자세한 내용은 오브젝트에 있는 정보를 참조하십시오.

단축키

오브젝트를 삭제하기 위해서는, 오브젝트 메뉴 버튼(오픈뷰에서 사용 가능)을 더블클릭 하십시오.

속성창을 나타내기 위해서는, 오브젝트의 타이틀 바(오픈뷰에서 사용 가능)를 더블클릭 하십시오.

선택한 오브젝트의 도움말을 보기 위해서는, F1키를 누릅니다.

오브젝트 위치

오브젝트의 오브젝트 메뉴를 사용하기 위해서는, 오브젝트 위에 포인터를 놓고 마우스 오른쪽 버튼을 클릭합니다. UserObject의 오픈뷰에서 오브젝트 메뉴를 사용하기 위해서는 타이틀 바 또는 터미날위에 포인터를 놓아야 하며, 다른 방법은 Edit Menu를 사용하는 것입니다.

오브젝트의 오픈뷰에서 오브젝트 메뉴를 사용하기 위해서는, 오브젝트의 메뉴 버튼(타이틀바의 좌측 중앙에 있는 바 모양의 사각 박스)에 포인터를 놓고 마우스 왼쪽 버튼을 클릭합니다.

관련정보

Move 메뉴항목 (오브젝트 메뉴), Size 항목 (오브젝트 메뉴), Minimize 메뉴항목 (오브젝트 메뉴), Restore 메뉴항목 (오브젝트 메뉴), Replace, 클론 (오브젝트 메뉴), Help 메뉴항목 (오브젝트 메뉴), 속성창 (오브젝트), Description 메뉴항목, Add Terminal 메뉴항목, Delete Terminal 메뉴항목, Control Input 메뉴항목 (오브젝트 메뉴), Data Input 메뉴항목 (오브젝트 메뉴), Data Output 메뉴항목 (오브젝트 메뉴), Error Output 메뉴항목 (오브젝트 메뉴) 및 Cut 메뉴항목 (오브젝트 메뉴).


OK 오브젝트

이 오브젝트를 누를 때까지 서브 쓰레드의 실행을 일시 정지시키는 오브젝트

사용법

OK 오브젝트는 사용자의 응답을 기다리는데 사용합니다.

속성창

Assign to Function Key - 속성을 True로 설정하면, 디테일뷰나 패널뷰에서 지정하는 기능키를 누를 때 실행합니다. 기능키는 복수의 OK 오브젝트를 지정할 수 있습니다. 디폴트 값은 False입니다.

Assign to Enter Button - 속성을 True로 설정한 상태에서 프로그램이 패널뷰에서 실행될 때, 키보드의 Enter키를 누르면 오브젝트가 실행됩니다. 컨텍스트 당 하나의 OK 오브젝트를 Enter키로 지정할 수 있습니다. 하나 이상의 OK 오브젝트를 할당한 경우에는, 이전에 설정한 OK는 선택되지 않습니다. 이 속성은 사용자가 생성한 대화상자에 있는 OK 버튼처럼 OK 오브젝트를 사용할 때 유용합니다. 디폴트 값은 False입니다.

 Assign to Escape Button - 속성을 True로 설정한 상태에서 프로그램이 패널뷰에서 실행될 때, 키보드의 Esc 키를 누르면 오브젝트가 실행됩니다. 컨텍스트 당 하나의 OK 오브젝트를 Esc키로 지정할 수 있습니다. 하나 이상의 OK 오브젝트를 할당한 경우에는, 이전에 설정한 OK는 선택되지 않습니다. 이 속성은 사용자가 생성한 대화상자에 있는 Cancel 버튼처럼 OK 오브젝트를 사용할 때 유용합니다. 디폴트 값은 False입니다.

주의사항

OK는 대화상자를 생성하거나 Selection Control 상수 오브젝트와 함께 사용합니다.

OK 버튼은 오브젝트가 동작하기 전까지는 활성화되지 않습니다.

쓰레드를 계속 진행하기 위해 GO 데이터 출력핀이나 시퀀스 출력핀을 사용할 수 있습니다.

Data   [image] Constant에서 제공하는 오브젝트를 사용할 때 쓰레드의 실행 순서를 일시 정지 하는 다른 방법은, Wait for Input 속성을 사용하는 것입니다.

오브젝트 위치

Flow [image] Confirm (OK)

관련정보

Gate, JCT, Start, Stop 메뉴항목 및 오브젝트 메뉴

기능키에 버튼 할당하기

엔터키나 ESC키에 OK버튼 할당하기

기본적인 대화상자 생성하기

디스플레이된 팝업 패널 유지하기


On Cycle 오브젝트

지정하는 간격으로 서브쓰레드를 실행하는 오브젝트

사용법

On Cycle은 주기적으로 반복해야 하는 서브쓰레드를 실행하기 위해 사용합니다. On Cycle의 출력은 현재의 날짜 및 시간입니다. 이 날짜와 시간은 Time Stamp 숫자 포맷을 지원하는 어떤 오브젝트에도 디스플레이될 수 있습니다.

지정한 간격으로 계측기를 트리거하기 위해 사용합니다.

오픈뷰 항목

입력 필드에 반복하고자 하는 초단위 시간을 직접 입력하거나, 입력터미날을 통해서 입력합니다. 값이 1 또는 -1이면, On Cycle은 계속해서 동작합니다.(Until Break와 동일함)

주의사항

On Cycle에 의해 호스팅되는 서브쓰레드의 실행은 다음 항목 중에 하나가 발생하기 전까지는 On Cycle은 출력을 계속합니다:

모든 오브젝트가 실행을 완료 한 경우. 서브쓰레드는 비활성화되고, 반복 타이머는 리셋됩니다. 서브쓰레드는 주어진 시간이 지나면 다시 활성화됩니다.

Break 오브젝트가 동작한 경우. 서브쓰레드는 비활성화되고 시퀀스 출력핀은 활성화됩니다.

Next 오브젝트가 동작한 경우. 서브쓰레드는 비활성화되고 반복 타이머가 리셋됩니다.

On Cycle은 지정하는 시간에 동작을 시작합니다. 쓰레드를 완료하기 위한 시간이 On Cycle 오브젝트에서 지정한 시간보다 긴 경우에는, 다음 반복은 다음의 반복 시간에 맞추어 시작합니다. 예를 들어, On Cycle에서 지정한 시간이 1이고 호스팅된 쓰레드가 동작을 완료하는데 1.5초가 소요된다면, 다음의 반복은 쓰레드가 동작을 완료한 후 0.5초에 시작합니다.

다음의 반복을 시작하기 위해 기다리는 동안에는, On Cycle은 다른 오브젝트나 다른 쓰레드가 동작할 수 있는 “휴면” 상태로 들어갑니다.

On Cycle 오브젝트에 의해 호스팅되는 서브쓰레드가 반복을 완료하면, 이전의 반복주기에 전송된 모든 데이터 컨테이너는 다음 반복주기가 시작되기 전에 무효화 시킵니다. 이것은 이전에 반복된 "기존" 데이터를 현재의 반복주기에서 다시 사용하는 것을 방지합니다. 반면에, 실행 플로우가 반복적인 서브쓰레드내에 있다면, 일부 오브젝트는 반복할 때 실행을 하지 않을 수도 있습니다. 이들 오브젝트에 의해 전송된 데이터 컨테이너는 다른 오브젝트가 이들 데이터를 실행하기 전에 무효화 될 수 있습니다. 이런 경우에 데이터를 전달하기 위해서는 Sample & Hold 오브젝트를 사용하십시오.

오브젝트 위치

Flow [image] Repeat [image] On Cycle

관련정보

AlphaNumeric, Break, For Count, For Log Range, For Range, Next, Sample & Hold, Until Break 및 속성창 (오브젝트)

VEE 프로그램의 일부분을 반복하기


Open 메뉴항목

작업영역으로 프로그램 파일을 로딩하여 현재 작성중인 프로그램을 대체합니다.

사용법

Open은 실행 또는 편집하기 위하여 이전에 저장한 프로그램을 VEE로 가져오는데 사용합니다. 파일이 저장된 위치로 이동하여, 파일 이름을 클릭하고 OK 버튼을 누릅니다. 프로그램이 화면에 디스플레이 됩니다.

주의사항

Open은 열고자 하는 프로그램의 파일이름을 선택할 수 있는 대화상자를 표시합니다. VEE 가 파일에 로딩될 때는, 포인터 아이콘이 모래시계로 바뀝니다.

Save 오브젝트, Save 또는 Save As를 사용하여 저장한 파일을 열 수 있습니다.

단축키

CTRL+O는 파일을 엽니다.

오브젝트 위치

File [image] Open

관련정보

Merge, Save 메뉴항목 및 Save Objects 메뉴항목

도스 명령어 옵션을 사용하여 Agilent VEE 실행하기


OS Version

OS Version 오브젝트

호스트 시스템에서 사용중인 운영체제의 버전을 가져옵니다.

오브젝트 위치

System [image] Environment [image] OS Version


Pad Left 오브젝트

스트링의 왼쪽 부분을 지정하는 문자로 채웁니다.

오브젝트 위치

System [image] String [image] Pad Left


Pad Right 오브젝트

스트링의 오른쪽 부분을 지정하는 문자로 채웁니다.

오브젝트 위치

System [image] String [image] Pad Right


패널 드라이버

실제 계측기에 있는 모든 기능과 일치하게, 오브젝트의 오픈뷰에 표시되는 컨트롤 패널의 설정을 매칭하여 제공하는 계측기 컨트롤 오브젝트.

사용법

Panel Driver는 오픈뷰에 표시되는 컨트롤 패널을 통하여 계측기의 상태를 제어하기 위해 사용합니다. Panel Driver를 사용하기 위해서는 해당 계측기용 인스트루먼트 드라이버가 설치되어 있어야 합니다.

VEE 작업영역에 Panel Driver 오브젝트를 추가하기 위해서는, 메뉴바의 I/O [image] Instrument Manager를 클릭하여 Instrument Manager 대화상자를 디스플레이합니다. 사용하고자 하는 계측기 항목을 설정된 계측기 리스트에서 확인합니다.

리스트에 사용하고자 하는 계측기가 있고, 적절하게 설정되어 있다면:

1. 계측기 항목을 클릭하여 하이라이트 시킵니다.

2. Panel Driver를 클릭하여 계측기 패널을 추가합니다.

사용하고자 하는 계측기가 리스트에 없거나 리스트에 있으나 적절히 설정되지 않은 경우에는, 계측기를 추가하고 설정해야 합니다. Instrument Manager 대화상자, Instrument Properties 대화상자 및 Advanced Instrument Properties 대화상자를 참조하십시오.

Panel Drivers 사용에 관한 자세한 내용은 Help Content Tell me about... Instrument Control Fundamentals Introduction to Panel Drivers and Component Drivers를 참조하십시오.

오브젝트 메뉴

Add Terminal by Component [image] Select Input Component – Panel Driver의 입력으로 사용하기 위하여 패널에 필드를 보이도록 추가하는데 사용합니다.

Add Terminal by Component [image] Select Output Component - Panel Driver의 출력으로 사용하기 위하여 패널에 필드를 보이도록 추가하는데 사용합니다.

Show Config - 계측기의 설정을 디스플레이합니다. (I/O   [image] Instrument Manager를 사용하여 이 설정을 편집할 수 있습니다.)

Sync - 인스트루먼트 드라이버의 상태를 다음의 조건으로 계측기의 상태로 동기화 시킵니다:

ID 코드는 동기 컴포넌트를 포함합니다.

ID 는 라이브 모드를 켭니다.

주의사항

Panel Drivers는 Live Mode off 상태에서도 동작될 수 있습니다. 이것은 계측기가 컴퓨터에 연결되어 있지 않을지라도, 계측기와 통신하지 않고 프로그램을 실행할 수 있게 합니다. 이것은 프로그램이 실제 계측기와 통신하기 전에 Live Mode를 on (Advanced Instrument Properties 대화상자를 참조하십시오.) 해야 한다는 것을 의미합니다.

Panel Drivers는 프로그램과 상호 동작하거나 프로그램내에서 사용할 수 있습니다. 각 컴포넌트의 값을 설정하기 위해서는, 컴포넌트 값을 포함하는 필드를 클릭하고 대화상자의 남아있는 부분을 완료합니다. 측정을 수행하고 결과를 디스플레이하기 위해서는, Panel Driver의 오픈뷰에 있는 numeric readout 또는 XY display를 클릭합니다.

하나의 계측기를 컨트롤하는 오브젝트를 하나 이상 생성할 수 있습니다. 즉, 동일한 프로그램에서 2개의 Panel Driver 오브젝트가 fgen을 컨트롤할 수 있습니다. 이들 오브젝트는 실행될 때 상태 리콜을 수행합니다.

Panel Driver의 컴포넌트를 위해 입력 과 출력을 추가할 수 있습니다. (Component Driver와 동일하게). 입력은 set actions, panel set actions, 및 coupled actions for the component를 수행합니다.

오브젝트 위치

I/O [image] Instrument Manager

관련정보

Advanced Instrument Properties 대화상자, Add Terminal 메뉴항목, 컴포넌트 드라이버, Direct I/O, Instrument Manager 대화상자, Instrument Properties 대화상자 및 To/From VXIplug&play.

Panel Driver 오브젝트를 이용하여 데이터 읽기


Paste 메뉴항목

Paste 버퍼에 있는 복사본을 작업영역에 배치합니다.

사용법

디테일뷰에서 Cut, Copy, 또는 Clone을 실행한 후, 오브젝트 세트의 복사본을 가져오기 위해 Paste를 사용합니다.

Paste는 잘못하여 잘라낸 오브젝트를 다시 복구할 수 있으며, 이 경우 오브젝트들과 연결된 모든 연결선도 복원합니다.

주의사항

Paste 버퍼는 가장 최근의 내용만 가지고 있으며, Clone, Cut 또는 Copy를 수행할 때마다 새로운 내용으로 대체됩니다.

Paste 버퍼는 Open, Merge, 또는 New를 사용할 때는 초기화 되지 않습니다.

Paste는 텍스트를 붙여넣지는 않습니다 – 오브젝트만 붙여 넣습니다. 텍스트를 잘라내기/복사하기 및 붙여넣기를 위해서는 키보드 키를 사용하십시오. 텍스트를 하이라이트 하고, Ctrl-C (복사하기) 또는 Ctrl-X (잘라내기)를 사용하고, 새로운 위치를 클릭하고 Ctrl-V (붙여넣기)를 사용합니다.

오브젝트 위치

Edit [image] Paste

관련정보

클론 (오브젝트 메뉴), Copy 메뉴항목, Cut 메뉴항목, Cut 메뉴항목 (오브젝트 메뉴) 및 Replace.


Pause 메뉴항목

모든 쓰레드의 실행을 일시적으로 정지하는 버튼

사용법

Pause는 프로그램의 실행을 일시적으로 정지하기 위해 사용합니다. Pause가 선택된 후에, 실행을 계속하기 위해서는 Resume을 선택합니다.

주의사항

Pause가 선택되면, 프로그램이 “일시정지” 상태로 전환됩니다. Resume 및 Step 기능은 프로그램을 다시 활성화 시키고 실행을 진행하기 위해 사용합니다.

단축키

실행되는 프로그램을 일시 정지하기 위해서 CTRL+P를 누릅니다.

오브젝트 위치

Debug [image] Pause

오브젝트 위치

Call Stack, Line Probe, Default Preferences 메뉴항목, Run/Resume 메뉴항목, Run, Show Data Flow 항목, Show Execution Flow 항목, Step Into 메뉴항목, Step Over 메뉴항목, Step Out 메뉴항목, Stop 메뉴항목, Stop (Object) 및 Toggle Breakpoint.

프로그램을 단계별로 실행하기


PComplex 오브젝트

스칼라 또는 Array 1D 형태의 상수 PComplex를 출력하는 오브젝트.

사용법

PComplex 오브젝트는 폴라 복소수를 설정하거나 사용자가 값을 입력할 수 있습니다. 값을 입력하기 위해서는 입력필드를 클릭하십시오.

사용예

PComplex 오브젝트를 패널상에 알림 기능으로 사용하기 위해서는, PComplex 오브젝트의 이름을 Enter the AC voltage: 등으로 표시하여 사용합니다. 사용자는 입력필드에 요청하는 정보를 입력할 수 있습니다.

(2,@PI/2)라고 입력하면 PComplex가 입력 내용을 자동으로 연산합니다.

속성창

DataShape - 출력되어야 할 값의 데이터 형태를 설정합니다. 사용할 수 있는 값은 스칼라 및 Array 1D입니다.

 ArraySize: - 1D Array를 선택하면, ArraySize는 어레이의 길이를 설정합니다.

 ArraySizeFixed - True로 설정하면, 어레이에는 라인을 추가하거나 삭제할 수 없습니다. 데이터 형태가 1D Array인 경우에만 사용할 수 있습니다.

 ShowArrayIndices - True로 설정하면, 어레이에 있는 각 라인은 인덱스됩니다. 데이터 형태가 1D Array인 경우에만 사용할 수 있습니다. 디폴트 값은 True입니다.

Wait for Input - True로 설정하면, 오브젝트는 값이 변경되기 전까지는 동작하지 않습니다. 속성을 False로 변경하면, 오브젝트는 제한사항을 만나는 즉시 동작하고 현재 선택된 값을 출력합니다. 디폴트 값은 False입니다.

 AutoExecute - True로 설정하면, 값이 선택되면 나머지 프로그램을 실행합니다. 만약 프로그램이 실행중이라면, AutoExecute는 무시됩니다. 디폴트 값은 False입니다.

 InitialValue - 설정되어야 할 값을 지정합니다. 디폴트 값은 (0, @0)입니다.

 InitializeAtPreRun - - True로 설정하면, InitialValue가 실행 직전에 설정됩니다. 디폴트 값은 False입니다.

 InitializeAtActivate - True로 설정하면, InitialValue가 활성화될 때 설정됩니다. 디폴트 값은 False입니다.

NumberFormat: Real: - Global Format이 off 되어 있으면, 오브젝트에 표시하는 숫자형식을 실수로 지정합니다. Fixed (예 98.6000), Scientific (예 9.8600E+01), Engineering (예 98.6000E0), Standard (예 98.6), 또는 Time Stamp (예 Wed 01/Jan/2003 17:01:38)등을 선택할 수 있습니다. 디폴트 값은 Standard입니다.

주의사항

Initialize는 UserObject내의 값을 초기화하기 위해 자주 사용합니다. 초기값을 설정하는 다른 방법은 Default Value 컨트롤핀을 사용하는 것입니다.

컨트롤 입력은 Default Value, Reset, Enable Editing 또는 Disable Editing등을 추가할 수 있습니다.

Default Value 입력은 현재의 값을 변경할 수 있습니다. Scalar 또는 Array 1D 형태의 PComplex를 입력할 수 있습니다. 상수는 입력데이터의 형태를 매칭시키기 위하여 재구성됩니다.

Reset 입력은 값을 0으로 설정합니다. 만약 상수가 Array 1D로 설정되면, 모든 값은 0으로 설정됩니다. Reset 상태에서는 입력에 있는 실제 데이터는 무시됩니다.

Enable Editing and Disable Editing 입력은 오브젝트의 오픈뷰에서 값의 변경여부를 제어합니다.

InitialValue 항목은 PComplex가 어레이로 구성되어 있더라도, 항상 스칼라입니다.

Trig Mode는 위상 값의 단위를 지정합니다. Trig Mode는 프로그램 전체적으로 또는 각 컨텍스트(UserObject 및 UserFunction) 별로 설정할 수 있습니다.

크기 및 위상을 입력할 수 있으며, 콤마로 분리되며, VEE 형식의 숫자를 가집니다.

오브젝트 위치

Data [image] Constant [image] PComplex

관련정보

Alloc PComplex, Complex, Constant, Coord, Date/Time, Selection Control, UInt8, Int16, Int32, Real32, Real64, Text, Default Preferences 및 Toggle Control.

상수 데이터 사용하기


Phase Spectrum 오브젝트

스펙트럼의 크기가 이것의 위상의 함수인 스펙트럼의 그래프를 표시하는 오브젝트

사용법

주파수 도메인에서 주파수대 스펙트럼 또는 웨이브폼을 표시하기 위해서 Phase Spectrum을 사용합니다. 웨이브폼은 푸리에 변환을 통해서 스펙트럼으로 변환됩니다. X 축은 입력 스펙트럼의 샘플링 단위를 사용합니다. Y 축은 현재 설정된 Trig Mode의 단위를 사용합니다.

오픈뷰 항목

아래 항목은 기본 오픈뷰 항목입니다. 이들 항목의 사용법과 다른 항목은 오브젝트 메뉴 및 Properties 대화상자(오브젝트 메뉴 [image] Properties)에서의 선택에 따라서 달라집니다.

Phase - Y 축의 이름.

Trace1 - 첫 번째 트레이스의 이름.

Freq - X 축의 이름.

오브젝트 메뉴

Auto Scale [image] - 이것을 클릭하면 그래프가 자동 스케일되어 에서 전체 트레이스를 볼 수 있습니다.(컨트롤 핀을 추가하거나, Scales 속성을 설정하면 데이터가 입력된 후 그래프를 자동으로 스케일할 수 있습니다.)

Auto Scale - 양 축을 자동으로 스케일합니다.

Auto Scale X - X 축을 자동으로 스케일합니다.

Auto Scale Y - Y 축을 자동으로 스케일합니다.

Zoom [image] - 그래프를 확대 또는 축소합니다.

In - 드래그하여 선택한 직사각형 안의 그래프가 전체 화면에 표시되도록 그래프를 확대합니다. 이 항목을 선택한 후, 그래프 영역에서 확대할 부분을 드래그합니다.

Out 2|5|10|20|50|100X - 선택한 숫자만큼 중심에서 X 및 Y 방향으로 그래프의 스케일을 확대합니다.

Clear Control [image] - 그래프의 내용에서 지우게 될 항목을 지정합니다.

Display - 표시된 트레이스를 지웁니다. 이 항목을 오브젝트의 컨트롤 입력으로 추가할 수 있습니다.

Next Curve - 이전 트레이스를 지우지 않고 그래프를 리셋합니다. 다음 입력되는 데이터를 그래프의 처음부터 이전 데이터와 중첩하여 그립니다. 새로운 그래프가 입력되지 전에 활성화되어야 합니다. 이 항목은 컨트롤 입력으로 추가될 수 있습니다.

Center Markers - 마커를 사용하는 경우, 마커를 트레이스의 중앙으로 이동시킵니다. 그래프를 스크롤하여 마커가 보이지 않을 때 이 기능을 이용하면 편리합니다.

Add Right Scale - 서로 다른 스케일범위를 가지는 Y 축 스케일을 최대 2 개까지 추가할 수 있습니다. 스케일을 추가 후 이 스케일을 제어하는 입력터미날을 추가할 수 있습니다.(오브젝트 메뉴 [image] Add Terminal [image] Data Input) Properties 대화상자의 Traces 및 Scales 속성을 설정하여 사용합니다.

Print - Print 대화상자를 띠웁니다. Print 대화상자에서 OK 버튼을 클릭하면 선택한 프린터로 그래프의 전체화면을 프린트 합니다. Print 항목은 컨트롤 입력으로 추가될 수 있습니다.

속성창

Declared Name - 그래프 오브젝트에 변수이름을 지정합니다. 이름을 입력하면, 사용중인 마커의 값을 읽는 것처럼 프로그램 실행 중에 이 오브젝트의 일부 속성을 가져오고/설정할 수 있습니다. 이 변수는 Object 타입이며, 디스플레이가 있는 영역의 local to the context로 지정됩니다. 상세한 내용은 주의사항을 참조하십시오.

ClearAtPreRun - 이 속성이 참으로 설정되면, 그래프가 PreRun시 초기화됩니다. 디폴트 값은 참(True) 입니다.

 ClearAtActivate - 이 속성이 참으로 설정되면, 그래프가 활성화될 때 초기화됩니다. 디폴트 값은 참(True) 입니다.

ShowTracesLegend - 오픈뷰에서, 트레이스의 이름 및 색깔의 표시여부를 제어합니다. 트레이스 레전드의 편집버튼은 EnableEditTracesAndScales 를 이용하여 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScalesLegend - 오픈뷰에서, 스케일 이름의 표시여부를 제어합니다. 스케일 레전드의 편집버튼은 EnableEditTracesAndScales 를 이용하여 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScaleLabels - 오픈뷰에서, 스케일 축 라벨의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScrollBars - 오픈뷰에서, X 및 Y 축의 스케일바의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 Show AutoScaleButton - 오픈뷰에서, Auto Scale 버튼의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 EditTracesAndScales - 오픈뷰에서, 트레이스 및 스케일 속성의 편집버튼의 기능을 제어합니다. 이 기능이 활성화되어 있을 때, 각각의 트레이스 또는 스케일의 속성을 편집하기 위해서 이들을 클릭합니다. 디폴트 값은 참(True) 입니다. 트레이스 및 스케일의 이름의 표시여부를 제어하기 위해서 Show Traces Legend 및 Show Scales Legend 를 사용합니다.

GridType - Lines. 큰 간격으로 라인을 표시하고, 작은 간격에 틱마크를 표시합니다. X 및 Y 축은 굵은선으로 표시됩니다.

Markers Category: - 그래프에 표시된 데이터의 정확한 값을 읽을 수 있습니다. 데이터가 로그 스케일로 그래프에 표시되어 있어도, 마커에 표시되는 값은 선형 데이터포인트 입니다.

마커를 다른 트레이스로 이동하기 위해서는, 그래프 하단의 마커값 표시 왼쪽의 버튼을 클릭합니다. 이 버튼을 클릭하면 현재 그래프에 표시된 트레이스를 순환하여 선택합니다.

 NumMarkers - 그래프에 표시할 마커의 수. 디폴트 값은 None 입니다.

 MarkerInterpolate - 이 속성을 참으로 설정하면, 그래프로 표시되는 데이터 포인트 사이에 마커를 배치할 수 있습니다. 마커 값은 선형 인터폴레이션으로 연산되어 표시됩니다. 디폴트 값은 거짓(False)입니다.

DisplayBackColor - 디스플레이 영역의 색상을 파레트에서 선택할 수 있도록 합니다. 디테일뷰와 패널뷰의 디스플레이를 다른 색상으로 선택할 수 있습니다.

ScaleLabelFont - 현재 사용중인 컴퓨터의 폰트목록에서 스케일 라벨에 적용할 폰트를 선택합니다. 스케일 라벨 텍스트의 디폴트 폰트는 Preferences 대화상자 Fonts 탭의 Screen Element: Graph Scale Label Text에 설정되어 있습니다.

Traces 그룹: (트레이스 마다 1 개씩)

Name - 그래프 영역의 왼쪽에 표시되는 트레이스의 이름. 이 이름은 입력터미날의 이름과 동일합니다.

Color - 트레이스의 색깔. 추가되는 트레이스는 기존 트레이스와는 다른 색깔로 표시됩니다. 첫 번째 트레이스의 디폴트 색깔은 노란색입니다.

LineStyle - 데이터 포인트를 연결하는 라인의 포맷. 디폴트는 continuous line(연속선) 입니다.

PointStyle - 각 데이터포인트를 표시하는 기호. 데이터 포인트를 연결하지 않은 상태로 표시할 때는 LineStyle 을 점(.)으로 설정하고, 사용할 PointStyle 기호를 선택합니다. 디폴트 값은 점(dot)입니다.

Scale - 2 개 이상의 Y 스케일이 있으면, 특정 트레이스가 어떤 스케일에 의해서 스케일되는지 선택합니다.

Scales 속성: (X 스케일 및 추가 Y 축 스케일을 포함한 Y 스케일 마다 1 개씩)

Show Scale: - 여러 개의 Y 스케일이 있으면, 체크박스로 선택한 스케일이 그래프 영역의 우측에 표시됩니다.

Scale Name: - 오픈뷰에서 스케일에 표시되는 이름

Automatic Scaling: - 데이터가 입력될 때 전체 그래프를 표시하기 위해서 그래프 자동 재 스케일 여부를 제어합니다. 디폴트 값은 On 입니다. 이 속성이 Off 이면, Layout 그룹 General 탭의 Auto Scale 을 클릭하거나, 오브젝트 메뉴의 Auto Scale 을 실행하여 그래프를 다시 스케일 할 수 있습니다.

Maximum: - 스케일의 최대값.

Minimum: - 스케일의 최소값.

Label Spacing: - 어떤 틱마크에 스케일된 값을 표시해야 하는지 제어합니다. X 스케일은 Every Other Tic로, Y 스케일은 Every Major Tic로 디폴트 설정되어 있습니다.

Mapping: - X 데이터 및 Y 데이터가 그래프에 매핑되는 방식. 선형 또는 로그로 매핑될 수 있습니다. 로그-로그 방식으로 표시하기 위해서는 X 축 및 Y 축을 모두 Log 로 설정합니다. 디폴트 설정은 Linear 입니다.

Log Cycles: - Automatic Scaling 이 On 상태에서 최대 x 값 및 최대 y 값으로부터 표시할 10 단위 스케일의 최대 개수. Log Cycles 은 Mapping 이 Log일 때만 사용됩니다. 트레이스 데이터의 변동 폭이 클 때 Log Cycles을 사용하면 편리합니다. 디폴트 값은 4 입니다.

Scale Color - 배경 그리드 및 틱마크의 색깔. 디폴트는 Gray 입니다.

ScaleNumberFormat 속성: (X 스케일 및 추가 Y 축 스케일을 포함함 Y 스케일 마다 1 개씩 표시됩니다.)

Global Format - 디폴트 포맷을 사용합니다. 디폴트는 On 입니다.

Real: - Global Format 이 Off 이면, 오브젝트에 표시될 실수의 숫자포맷을 지정합니다. Fixed (예, 98.6000), Scientific (예, 9.8600E+01), Engineering (예, 98.6000E0), Standard (예, 98.6) 및 Time Stamp (예, Wed 01/Jan/2003 17:01:38)를 선택할 수 있습니다. 디폴트는 Standard 입니다.

X 및 Y 마커 값은 스케일에서 사용하는 숫자포맷과 동일한 포맷을 사용합니다. X 및 Y 에 Time Stamp 을 지정하지 않았으면, 이들의 델타마커 값은 디폴트 숫자 포맷을 사용합니다. X 및 Y 의 마커1과 마커2가 Time Stamp 을 사용한 경우에는, 델타마커 값에 Delta Time 포맷이 사용됩니다.

주의사항

입력은 Spectrum, Waveform 또는 Coord (Scalar 또는 Array 1D)로 제공되어야 합니다.

Coord 타입의 입력데이터는 Spectrum 타입으로 변환되지 않고 직교좌표의 x 및 y 의 값을 이용하여 그래프로 표시됩니다.

오브젝트 메뉴에서 Add Terminal [image] Data Input 를 실행하여 트레이스를 추가합니다. 최대 12개의 트레이스를 사용할 수 있습니다.

AutomaticScaling 속성을 True 으로 설정하면(Scales 카테고리) 그래프를 그릴 때 마다 자동으로 스케일됩니다. 하나의 트레이스에 대한 전체 데이터를 그래프에 표시할 때는 빠르게 실행됩니다. 전체 데이터를 그래프에 한 번에 그리고 자동으로 스케일합니다. 데이터가 그래프에 한 개의 포인트씩 제공되면, 각 데이터 포인터를 그릴 때 마다 그래프가 자동으로 스케일되므로, 프로그램 실행 속도가 저하됩니다. 데이터가 1 개씩 발생되는 경우에는 Collector 오브젝트를 이용하여 어레이로 생성하여, 전체 데이터를 그래프에 한번에 표시하면 실행속도를 향상할 수 있습니다.

컨트롤 입력 추가

Title 컨트롤 입력핀을 추가하여 타이틀바의 이름을 지정할 수 있습니다. 이 기능을 이용하면 프로그램 실행시 타이틀의 이름을 변경할 수 있습니다.

Traces 컨트롤 입력핀을 추가할 수 있습니다. Traces 컨트롤 입력핀의 데이터에는 레코드 어레이를 사용해야 합니다.(또는 하나의 트레이스를 제어하는 경우에는 레코드 스칼라를 사용해도 됩니다.) 레코드의 어레이는 Record Constant 오브젝트 또는 Build Record 오브젝트를 이용하여 생성합니다. 각 레코드에는 다음의 필드가 제공되어야 합니다.:

정수 값을 가진 TraceNum 필드(첫 번째 트레이스는 1). TraceNum 필드의 값은 반드시 입력되어야 합니다. 값을 입력하지 않으면 에러가 발생합니다.

다음 필드 중 1 개 이상의 필드:

Name

Pen

LineType

PointType

Name 필드는 텍스트 값을 가져야 합니다. Pen, LineType 및 PointType 은 0 ~ n의 정수값을 가져야 합니다. 여기서, 0 은 아무것도 그리지 않을 때 입력하고, n 은 사용할 수 있는 값입니다.

위에서 열거된 스케일 인자를 제어하기 위해서 Scales 컨트롤 입력핀을 추가할 수 있습니다. Scales 컨트롤 입력핀의 데이터에는 레코드 어레이를 사용해야 합니다.(또는 하나의 트레이스를 제어하는 경우에는 레코드 스칼라를 사용해도 됩니다.) 레코드의 어레이는 Record Constant 오브젝트 또는 Build Record 오브젝트를 이용하여 생성합니다. 각 레코드에는 다음의 필드가 제공되어야 합니다.:

X, Y (또는 Y1), Y2, 또는 Y3값을 가지며, 이름이 Scale 인 텍스트필드. Scale 필드의 값은 반드시 입력되어야 합니다. 값을 입력하지 않으면 에러가 발생합니다.

다음 필드 중 1 개 이상의 필드:

Name - 오픈뷰에서 스케일 이름을 변경합니다. 텍스트 값을 가져야 합니다.

Min - X 스케일의 최소값을 설정합니다. 정수 또는 실수값을 사용해야 합니다.

Max - X 스케일의 최대값을 설정합니다. 정수 또는 실수값을 사용해야 합니다.

Mapping - Linear 또는 Log의 텍스트 값을 선택합니다.

AutoScale - 자동 스케일링을 제어합니다. On 또는 Off 의 텍스트 값을 선택합니다.

자세한 내용은 Using Records 및 Using Records를 참조하십시오.

프로그램 실행시 마커값을 설정하고 읽기

프로그램상으로 다른 속성을 설정하고 읽기 위해서는 To Change Properties Programmatically를 참조하십시오.

프로그램을 실행하면서 마커 값을 가져오거나 설정할 수 있습니다. 디스플레이를 준비하기 위해서, Properties 창의 Name 필드에 값을 입력합니다. Name 의 값은 디스플레이 컨텍스트의 지역변수로 사용되는 Object 변수로 지정됩니다. 다음은 Markers 그룹의 설정을 On 시킵니다. VEE는 다음 속성을 델타 값을 포함하여 X 및 Y 의 위치에 지정합니다.(Marker1 아래를 지시하고; Marker2 는 위를 지시합니다.)

Marker1X (위치를 Real64 타입으로 가져옵니다.)

Marker1Y (위치를 Real64 타입으로 가져옵니다.)

Marker2X (위치를 Real64 타입으로 가져옵니다.)

Marker2Y (위치를 Real64 타입으로 가져옵니다.)

MarkerDX (위치를 Real64 타입으로 가져옵니다.)

MarkerDY (위치를 Real64 타입으로 가져옵니다.)

Marker1 (위치를 Coord 타입으로 가져오거나 설정합니다.)

Marker2 (위치를 Coord 타입으로 가져오거나 설정합니다.)

현재 마커의 위치를 읽거나 마커를 새로운 위치로 이동하기 위해서 Marker1 및 Marker2 의 속성을 사용할 수 있습니다. 마커의 다른 속성은 읽기전용입니다. 마커를 트레이스 이외의 위치로 이동하려고 시도하면, 마커는 지정한 마커의 위치와 트레이스 상의 가장 가까운 데이터 포인트에 스냅됩니다.

Formula 오브젝트의 표현식을 이용해서도 마커 값을 읽거나 설정할 수 있습니다. 각 표현식은 디스플레이의 Declared Name 과 마커의 속성을 이용하여 작성해야 합니다. 마커의 속성과 Name 은 대소문자를 구별하지 않습니다. 예를 들어, 디스플레이의 Declared Name 이 XY이고, Delta Markers 가 활성화되어 있으면, 다음 표현식은 모든 사용가능한 마커의 값을 읽어서, Real64 스칼라 타입으로 변수 a ~ f 에 저장합니다.:

a = XY.Marker1X

b = XY.Marker1Y

c = XY.Marker2X

d = XY.Marker2Y

e = XY.MarkerDX

f = XY.MarkerDY

디스플레이의 Declared Name 은 전역변수로 지정될 수도 있습니다. Formula 오브젝트의 표현식에서 지정연산자를 사용하면서, Declare Variable 오브젝트를 함께 사용하여 전역변수로 설정할 수 있습니다. 예를 들어, globalXY 를 전역변수로, 이것의 Type을 Object로 선언하고, 디스플레이를 사용하는 컨텍스트에서 다음 표현식을 추가합니다.

Set globalXY = XY

이제는 프로그램의 다른 컨텍스트에서 다음 표현식으로 마커의 값을 읽을 수 있습니다.:

a = globalXY.Marker1X

프로그램에 따라서, 프로그램이 마커의 값을 읽기 전에 마커의 위치를 변경할 수 있도록 프로그램이 일시 정지하는 기능을 작성해야 하는 경우가 있습니다. 그래프의 시퀀스 출력과 Formula 오브젝트의 시퀀스 입력사이에 Confirm (OK) 버튼을 프로그램에 추가하여 프로그램 실행을 일시정지 할 수 있습니다. 또한 마커의 위치를 프로그램에서 제어하도록 프로그램을 작성할 수도 있습니다. 프로그램상으로 마커를 설정하는 자세한 내용은 Programmatic Properties를 참조하십시오.

오브젝트 위치

Display [image] Spectrum (Freq) [image] Phase Spectrum

관련정보

Magnitude Spectrum, Magnitude vs Phase, Spectrum (Freq), Default Preferences 대화상자 및 오브젝트 메뉴

파형 디스플레이하기, 디스플레이에서 마커 설정하기, 마커의 속성을 설정하거나 가져오기


Picture 오브젝트

그래픽 이미지를 디스플레이 하기 위해 사용하는 오브젝트

사용법

Picture는 디테일뷰나 패널뷰에 그래픽 이미지를 디스플레이 하기 위해 사용합니다. 이 오브젝트는 그림을 타일형태로 만들고, 크기를 확대하고, 자를 수도 있습니다. 그래픽 파일 이름은 Picture 오브젝트의 데이터 입력으로 추가할 수도 있습니다.

속성창

Picture 영역:

Picture는 오브젝트에 디스플레이 하고자 하는 그래픽 파일을 선택하기 위해 사용합니다. 표시되는 디렉토리는 VEE 디렉토리 아래에 있는 bitmaps 디렉토리입니다. 다른 디렉토리에서 파일을 선택하기 위해서는, Browse... 버튼을 누릅니다. 파일 이름은 데이터 입력으로 추가할 수 있습니다.

Actual | Centered | Scaled | Tiled
-- Actual을 선택하면, 오브젝트의 크기를 그래픽 이미지의 실제 크기로 조정합니다. 오브젝트의 크기가 조정되면, 이미지는 변경되지 않고 오브젝트의 좌측 상단에 디스플레이 됩니다.
-- Centered를 선택하면, 오브젝트의 크기가 변경되어도 이미지의 크기가 고정되어, 항상 오브젝트의 중앙에 위치합니다.
-- Scaled를 선택하면, 오브젝트의 크기가 변경되면 이미지의 크기도 변경됩니다.
-- Tiled를 선택하면, “벽지” 효과를 내기 위해 오브젝트에서 이미지를 수평 및 수직으로 복제합니다.

Preview – 현재 선택한 그래픽 이미지를 디스플레이 합니다.

VEE는 파일 포맷을 체크합니다. 현재 지원하는 포맷은 다음과 같습니다:

Bitmaps (*.BMP)

JPEG (*.JPG)

Windows Meta File (*.WMF)

GIF87a (*.GIF)

GIF89 (*.GIF)

Portable Network Graphics (*.PNG)

디폴트 비트맵은 VEE 디렉토리 아래에 있는 bitmaps 디렉토리에 있습니다.

주의사항

크기 속성이 Actual이외의 항목으로 선택된 경우에는, 오브젝트의 배경색은 디폴트 패널뷰의 색상과 동일합니다. 그래서 배경이 패널뷰로 섞입니다.

배경 그래픽은 UserObject 또는 UserFunction 패널, 패널에 있는 Picture 오브젝트에 추가될 수 있습니다.

GIF89의 지원은 제한적이어서, 싱글 프레임(애니메이션 GIFs가 아닌)만 지원하고 투명한 배경은 지원하지 않습니다.

오브젝트 위치

Display [image] Picture

관련정보

Label, Beep 및 UserObject.

패널에 그림 추가하기


플러그앤 플레이 디바이스 설정

VEE에서 사용할 플러그앤 플레이 계측기를 설정하거나 설정 내용을 변경할 수 있습니다.

사용법

설정된 계측기 목록에 계측기를 추가하거나 설정된 계측기를 편집하기 위해서 이 대화상자를 사용하십시오.

모든 플러그앤 플레이 드라이버가 모든 플랫폼에서 지원되지는 않습니다. 또한, VTL/VISA의 특정 버전은 모든 플랫폼에서 지원되지 않습니다. 해당 드라이버가 특정 플랫폼에서 지원되는지 여부는 그 드라이버의 제공회사로부터 확인하시기 바랍니다.

대화상자 설명

Advanced Instrument Properties 대화상자의 Plug&play Driver 탭의 내용은 3 부분으로 나누어져 있습니다:

Plug&play Driver Name: - 드라이버의 이름을 선택합니다. 컴퓨터에 설치된 드라이버에서 목록에서 선택할 수 있습니다. 드라이버가 설치된 폴더에서 선택하며, 이 항목은 필수항목입니다. 이들 드라이버의 디폴트 위치는:

C:\program files\VISA\WINNT

Parameters to init() call

Address: - 계측기를 식별하는 주소를 입력합니다. 주소 포맷은 계측기가 연결된 인터페이스 포맷에 따라 다릅니다.:

- VXI 주소 스트링. 임베디드 또는 MXIbus 컨트롤러를 가진 VXI 계측기의 경우에는 VXI[board]::VXI 논리주소[::INSTR]와 같은 형태의 주소를 갖습니다. 예를 들어, 논리주소가 24 인 계측기의 전체 주소는 VXI::24::INSTR 와 같이 표시됩니다.

- GPIB-VXI 주소 스트링. GPIB 카드를 통해서 제어되는 VXI 계측기의 경우에는 VXIGPIB-VXI[보오드]::VXI 논리주소[::INSTR] 와 같은 형태의 주소를 갖습니다. 예를 들어, 논리주소가 24 인 계측기의 전체 주소는 GPIB-VXI0::24::INSTR 와 같이 표시됩니다.

- GPIB 주소 스트링. GPIB 카드를 통해서 제어되는 비 VXI 계측기의 경우에는, GPIB[board]::GPIB 1차 주소::[GPIB 2차 주소][::INSTR] 와 같은 형태의 주소를 가집니다. 예를 들어, 계측기의 1차 주소가 4 이고, 2 차 주소가 24인 경우에는 GPIB0::4::24::INSTR와 같이 표시됩니다.

Perform Identification Query - 이 체크박스가 체크되면, 이 드라이버의 함수패널이 처음 실행될 때 계측기가 식별됩니다. 일반적으로, 이 체크박스를 체크한 상태에서 사용하는 것이 편리합니다.

Perform Reset - 이 체크박스가 선택되면, 이 드라이버의 함수패널이 처음 실행될 때 계측기가 미리 지정된 상태로 초기화됩니다. 일반적으로, 이 체크박스를 체크한 상태에서 사용하는 것이 편리합니다.

주의사항

Plug&play Driver Name 필드에서는 이미 설치된 드라이버 목록에서 드라이버 이름을 선택합니다. 각 드라이버에 필요한 파일은 드라이버와 함께 제공되는 매뉴얼을 참조해서 설치합니다. 각 VXIplug&play 드라이버는 해당 계측기 하드웨어 제조사가 작성하여 계측기와 함께 제공됩니다.

하나의 계측기를 제어하는 하나 이상의 오브젝트를 가질 수 있습니다. 또한 동일한 드라이버의 여러 개의 복사본을 사용하여, 각 복사본이 서로 물리적으로 다른 계측기를 제어할 수 있습니다. 어떤 경우에든 Plug&play Driver Name 에서 설정한 이름으로 계측기를 식별하여 제어합니다.

오브젝트 위치

I/O [image] Instrument Manager 에서 Add…버튼 또는 Properties 버튼을 클릭하여 Instrument Properties 대화상자를 띠우고, 여기서 Advanced 버튼을 클릭합니다.

관련정보

Direct I/O, Instrument Manager 대화상자, Instrument Properties 대화상자, 패널 드라이버 및 To/From VXIplug&play.


Polar Plot 오브젝트

극좌표에 그래프를 표시하는 오브젝트

사용법

반경 및 각도정보가 분리된 극좌표 스케일로 제공되는 데이터를 그래프로 표시할 때 Polar Plot 오브젝트를 사용합니다.

한 개 이상의 트레이스가 그래프로 표시될 수 있습니다, Polar Plot 오브젝트는 하나의 각도데이터 터미날을 사용할 수 있습니다. 따라서 모든 트레이스는 하나의 각도 입력데이터를 공동 사용합니다.

오픈뷰 항목

아래 항목은 기본 오픈뷰 항목입니다. 이들 항목의 사용법과 다른 항목은 오브젝트 메뉴 및 Properties 대화상자(오브젝트 메뉴 [image] Properties)에서의 선택에 따라서 달라집니다.

Y name - Y 축의 이름.

Span: - 그래프의 상하의 크기. 원점이 그래프 표시영역의 중앙이면, Span은 반경의 2 배입니다. 이 항목은 그래프의 스케일링을 제어합니다. 디폴트 값은 2 입니다.

RData1 - 첫 번째 트레이스의 이름.

Polar Reference Location - 표시된 극좌표 그래프의 일부분을 지정합니다. 이 기능을 사용하면 해당 영역으로 스크롤하는 것 보다 빠르게 이동할 수 있습니다. 참조점을 입력하면 지정된 좌표(예, (0, @0))로 이동합니다.

Ref Radius: - 굵은 격자원의 반경의 값

오브젝트 메뉴

Auto Scale [image] Auto Scale - 이것을 클릭하면 그래프가 자동 스케일되어 에서 전체 트레이스를 볼 수 있습니다. 이 기능은 극좌표의 기준위치를 중앙(0,@0)으로 초기화합니다.(컨트롤 입력핀으로 추가하거나, 데이터가 수집된 이후 표시영역을 자동으로 스케일하도록 Scales 속성에서 설정할 수 있습니다.)

Auto Scale X - 사용할 수 없습니다.

Auto Scale Y - 사용할 수 없습니다.

Zoom [image] - 그래프를 확대 또는 축소합니다.

In - 드래그하여 선택한 직사각형 안의 그래프가 전체 화면에 표시되도록 그래프를 확대합니다. 이 항목을 선택한 후, 그래프 영역에서 확대할 부분을 드래그합니다.

Out 2|5|10|20|50|100X - Expands the scales of the display by a factor in both the X and Y directions about the center.

Clear Control [image] - 그래프의 내용에서 지우게 될 항목을 지정합니다.

Display - 표시된 트레이스를 지웁니다. 이 항목을 오브젝트의 컨트롤 입력으로 추가할 수 있습니다.

Next Curve - 이전 트레이스를 지우지 않고 그래프를 리셋합니다. 다음 입력되는 데이터를 그래프의 처음부터 이전 데이터와 중첩하여 그립니다. 새로운 그래프가 입력되지 전에 활성화되어야 합니다. 이 항목은 컨트롤 입력으로 추가될 수 있습니다.

Center Markers - 마커를 사용하는 경우, 마커를 트레이스의 중앙으로 이동시킵니다. 그래프를 스크롤하여 마커가 보이지 않을 때 이 기능을 이용하면 편리합니다.

Add Right Scale - 서로 다른 스케일범위를 가지는 Y 축 스케일을 최대 2 개까지 추가할 수 있습니다. 스케일을 추가 후 이 스케일을 제어하는 입력터미날을 추가할 수 있습니다.(오브젝트 메뉴 [image] Add Terminal [image] Data Input) Properties 대화상자의 Traces 및 Scales 속성을 설정하여 사용합니다.

Print - Print 대화상자를 띠웁니다. Print 대화상자에서 OK 버튼을 클릭하면 선택한 프린터로 그래프의 전체화면을 프린트 합니다. Print 항목은 컨트롤 입력으로 추가될 수 있습니다.

속성

Declared Name - 그래프 오브젝트에 변수이름을 지정합니다. 이름을 입력하면, 사용중인 마커의 값을 읽는 것처럼 프로그램 실행 중에 이 오브젝트의 일부 속성을 가져오고/설정할 수 있습니다. 이 변수는 Object 타입이며, 디스플레이가 있는 영역의 local to the context로 지정됩니다. 상세한 내용은 주의사항을 참조하십시오.

ClearAtPreRun - 이 속성이 참으로 설정되면, 그래프가 PreRun시 초기화됩니다. 디폴트 값은 참(True) 입니다.

 ClearAtActivate - 이 속성이 참으로 설정되면, 그래프가 활성화될 때 초기화됩니다. 디폴트 값은 참(True) 입니다.

MatrixInput - 이 속성이 참으로 설정되면, Polar Plot 은 입력데이터로 2D 어레이(행, 최대 12행까지)를 입력할 수 있으며, 동시에 복수의 트레이스를 디스플레이 합니다. Polar Plot 오브젝트는 MatrixInput 속성이 참으로 설정된 경우에는 행렬-입력 그래프를 호출합니다.

   이 MatrixInput 속성은 Next Curve 컨트롤핀이 없고 Polar Plot이 단 하나의 입력핀을 가진 경우에만 참으로 설정될 수 있습니다. 유사하게, 입력핀은 행렬-입력 그래프에 추가될 수 있습니다.

   MatrixInput 속성은 패널부에서는 사용할 수 없으며, 프로그램상으로 실행중에는 토글되지 않습니다.

ShowTracesLegend - 오픈뷰에서, 트레이스의 이름 및 색깔의 표시여부를 제어합니다. 트레이스 레전드의 편집버튼은 EnableEditTracesAndScales 를 이용하여 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScalesLegend - 오픈뷰에서, 스케일 이름의 표시여부를 제어합니다. 스케일 레전드의 편집버튼은 EnableEditTracesAndScales 를 이용하여 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScrollBars - 오픈뷰에서, X 및 Y 축의 스케일바의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowAutoScaleButton - 오픈뷰에서, Auto Scale 버튼의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 EnableEditTracesAndScales - 오픈뷰에서, 트레이스 및 스케일 속성의 편집버튼의 기능을 제어합니다. 이 기능이 활성화되어 있을 때, 각각의 트레이스 또는 스케일의 속성을 편집하기 위해서 이들을 클릭합니다. 디폴트 값은 참(True) 입니다. 트레이스 및 스케일의 이름의 표시여부를 제어하기 위해서 Show Traces Legend 및 Show Scales Legend 를 사용합니다.

GridType - 디폴트 값은 Lines 입니다.

Smith Chart - 데이터를 스미스챠트(임피던스 챠트)에 표시합니다. 마커는 실수와 허수 임프던스 값으로 지정됩니다. 굵은 원은 “기준 반경”을 나타내며, 이것의 선형 반경의 값은 그래프 영역의 우측하단에 표시됩니다. 입력데이터가 정규화되어 있으면, 스미스챠트 그리드와 마커는 적절하게 스케일된 값만 표시할 수 있습니다. 데이터를 정규화하기 위해서는, 모든 크기를 특성임피던스로 나눕니다.

Inv Smith Chart - 데이터를 역스미스챠트(어드미턴스 챠트)에 표시합니다. 역스미스챠트는 그리드와 마커의 값이 임피던스 값 대신 어드미턴스 값이라는 것을 제외하고는 스미스챠트의 사용방법과 동일합니다.

Markers Category: - 그래프에 표시된 데이터의 정확한 값을 읽을 수 있습니다. 데이터가 로그 스케일로 그래프에 표시되어 있어도, 마커에 표시되는 값은 선형 데이터포인트 입니다.

마커를 다른 트레이스로 이동하기 위해서는, 그래프 하단의 마커값 표시 왼쪽의 버튼을 클릭합니다. 이 버튼을 클릭하면 현재 그래프에 표시된 트레이스를 순환하여 선택합니다.

NumMarkers - 그래프에서 사용하는 마커의 개수.

MarkerInterpolate - 이 속성을 참으로 설정하면, 그래프로 표시되는 데이터 포인트 사이에 마커를 배치할 수 있습니다. 마커 값은 선형 인터폴레이션으로 연산되어 표시됩니다. 디폴트 값은 거짓(False)입니다.

BackColor - 팔레트에서 그래프 영역의 색깔을 선택할 수 있습니다. 패널뷰와 디테일뷰에서 서로 다른 색깔을 선택할 수 있습니다.

Traces 그룹: (트레이스 마다 1 개씩).

Name: - 그래프 영역의 왼쪽에 표시되는 트레이스의 이름. 이 이름은 입력터미날의 이름과 동일합니다.

Color: - 트레이스의 색깔. 추가되는 트레이스는 기존 트레이스와는 다른 색깔로 표시됩니다. 첫 번째 트레이스의 디폴트 색깔은 노란색입니다.

LineStyle: - Line Type - 데이터 포인트를 연결하는 라인의 포맷. 디폴트는 continuous line(연속선) 입니다.

PointStyle: - 각 데이터포인트를 표시하는 기호. 데이터 포인트를 연결하지 않은 상태로 표시할 때는 LineStyle 을 점(.)으로 설정하고, 사용할 PointStyle 기호를 선택합니다. 디폴트 값은 점(dot)입니다.

Scales: - 2 개 이상의 Y 스케일이 있으면, 특정 트레이스가 어떤 스케일에 의해서 스케일되는지 선택합니다.

Scales 속성: (X 스케일 및 추가 Y 축 스케일을 포함한 Y 스케일 마다 1 개씩)

Show Scale: - 여러 개의 Y 스케일이 있으면, 체크박스로 선택한 스케일이 그래프 영역의 우측에 표시됩니다.

Scale Name: - 오픈뷰에서 스케일에 표시되는 이름

Automatic Scaling: - 데이터가 입력될 때 전체 그래프를 표시하기 위해서 그래프 자동 재 스케일 여부를 제어합니다. 디폴트 값은 On 입니다. 이 속성이 Off 이면, Layout 그룹 General 탭의 Auto Scale 을 클릭하거나, 오브젝트 메뉴의 Auto Scale 을 실행하여 그래프를 다시 스케일 할 수 있습니다.

Vertical Span: - 그래프의 상하의 크기. 디폴트 값은 2 입니다.

Scale Color - 배경 그리드 및 틱마크의 색깔. 디폴트는 Gray 입니다.

Reference Corner: - 표시된 극좌표 그래프의 일부분을 지정합니다. 이 기능을 이용하면 지정된 영역에 스크롤하는 것보다 빠르게 도달할 수 있습니다. 기준값을 변경하면 지정된 위치(예, (0, @0))을 표시하기 위해서 그래프가 스크롤됩니다. 디폴트 값은 Center 입니다.

Reference Value: - 극좌표 그래프에서 사용할 극좌표를 숫자로 지정합니다. 디폴트 값은 (0, @0) 입니다. (0,@0).

주의사항

MatrixInput 속성이 거짓인 경우에는, 입력값은 Real64 타입으로 변환할 수 있는 스칼라 또는 어레이 1D여야 합니다.

MatrixInput 속성이 참인 경우에는, Polar Plot은 입력데이터로 2D 어레이(행, 최대 12행 까지)를 입력할 수 있으며, 동시에 복수의 트레이스를 디스플레이 합니다. 입력은 Real64로 변환될 수 있는 스칼라 또는 Array 1D 를 사용할 수 있습니다.

모든 단위는 현재설정된 Trig Mode 입니다.

모든 입력은 동일한 크기의 동일한 형태를 가져야 합니다. 입력데이터의 매핑정보는 무시됩니다.

오브젝트 메뉴에서 Add Terminal [image] Data Input 를 실행하여 트레이스를 추가합니다. 최대 12개의 트레이스를 사용할 수 있습니다.

AutomaticScaling 속성을 True 으로 설정하면(Scales 카테고리) 그래프를 그릴 때 마다 자동으로 스케일됩니다. 하나의 트레이스에 대한 전체 데이터를 그래프에 표시할 때는 빠르게 실행됩니다. 전체 데이터를 그래프에 한 번에 그리고 자동으로 스케일합니다. 데이터가 그래프에 한 개의 포인트씩 제공되면, 각 데이터 포인터를 그릴 때 마다 그래프가 자동으로 스케일되므로, 프로그램 실행 속도가 저하됩니다. 데이터가 1 개씩 발생되는 경우에는 Collector 오브젝트를 이용하여 어레이로 생성하여, 전체 데이터를 그래프에 한번에 표시하면 실행속도를 향상할 수 있습니다.

컨트롤 입력 추가

Title 컨트롤 입력핀을 추가하여 타이틀바의 이름을 지정할 수 있습니다. 이 기능을 이용하면 프로그램 실행시 타이틀의 이름을 변경할 수 있습니다.

Traces 컨트롤 입력핀을 추가할 수 있습니다. Traces 컨트롤 입력핀의 데이터에는 레코드 어레이를 사용해야 합니다.(또는 하나의 트레이스를 제어하는 경우에는 레코드 스칼라를 사용해도 됩니다.) 레코드의 어레이는 Record Constant 오브젝트 또는 Build Record 오브젝트를 이용하여 생성합니다. 각 레코드에는 다음의 필드가 제공되어야 합니다.:

정수 값을 가진 TraceNum 필드(첫 번째 트레이스는 1). TraceNum 필드의 값은 받드시 입력되어야 합니다. 값을 입력하지 않으면 에러가 발생합니다.

다음 필드 중 1 개 이상의 필드:

Name

Pen

LineType

PointType

Name 필드는 텍스트 값을 가져야 합니다. Pen, LineType 및 PointType 은 0 ~ n의 정수값을 가져야 합니다. 여기서, 0 은 아무것도 그리지 않을 때 입력하고, n 은 사용할 수 있는 값입니다.

위에서 열거된 스케일 인자를 제어하기 위해서 Scales 컨트롤 입력핀을 추가할 수 있습니다. Scales 컨트롤 입력핀의 데이터에는 레코드 어레이를 사용해야 합니다.(또는 하나의 트레이스를 제어하는 경우에는 레코드 스칼라를 사용해도 됩니다.) 레코드의 어레이는 Record Constant 오브젝트 또는 Build Record 오브젝트를 이용하여 생성합니다. 각 레코드에는 다음의 필드가 제공되어야 합니다.:

다음 필드 중 1 개 이상의 필드:

Name, Name1, Name2, and/or Name3 - 텍스트 값을 가져야 합니다.

Span, Span1, Span2, and/or Span3 - 정수 또는 실수 값을 가져야 합니다.

RefPt - Must be a PComplex

자세한 내용은 Using Records 및 Using DataSets를 참조하십시오.

프로그램 실행시 마커값을 설정하고 읽기

프로그램상으로 다른 속성을 설정하고 읽기 위해서는 To Change Properties Programmatically를 참조하십시오.

프로그램을 실행하면서 마커 값을 가져오거나 설정할 수 있습니다. 디스플레이를 준비하기 위해서, Properties 창의 Name 필드에 값을 입력합니다. Name 의 값은 디스플레이 컨텍스트의 지역변수로 사용되는 Object 변수로 지정됩니다. 다음은 Markers 그룹의 설정을 On 시킵니다. VEE는 다음 속성을 델타 값을 포함하여 X 및 Y 의 위치에 지정합니다.(Marker1 아래를 지시하고; Marker2 는 위를 지시합니다.)

Marker1X (위치를 Real64 타입으로 가져옵니다.)

Marker1Y (위치를 Real64 타입으로 가져옵니다.)

Marker2X (위치를 Real64 타입으로 가져옵니다.)

Marker2Y (위치를 Real64 타입으로 가져옵니다.)

MarkerDX (위치를 Real64 타입으로 가져옵니다.)

MarkerDY (위치를 Real64 타입으로 가져옵니다.)

Marker1 (위치를 Coord 타입으로 가져오거나 설정합니다.)

Marker2 (위치를 Coord 타입으로 가져오거나 설정합니다.)

현재 마커의 위치를 읽거나 마커를 새로운 위치로 이동하기 위해서 Marker1 및 Marker2 의 속성을 사용할 수 있습니다. 마커의 다른 속성은 읽기전용입니다. 마커를 트레이스 이외의 위치로 이동하려고 시도하면, 마커는 지정한 마커의 위치와 트레이스 상의 가장 가까운 데이터 포인트에 스냅됩니다.

Formula 오브젝트의 표현식을 이용해서도 마커 값을 읽거나 설정할 수 있습니다. 각 표현식은 디스플레이의 Declared Name 과 마커의 속성을 이용하여 작성해야 합니다. 마커의 속성과 Name 은 대소문자를 구별하지 않습니다. 예를 들어, 디스플레이의 Declared Name 이 XY이고, Delta Markers 가 활성화되어 있으면, 다음 표현식은 모든 사용가능한 마커의 값을 읽어서, Real64 스칼라 타입으로 변수 a ~ f 에 저장합니다:

a = XY.Marker1X

b = XY.Marker1Y

c = XY.Marker2X

d = XY.Marker2Y

e = XY.MarkerDX

f = XY.MarkerDY

디스플레이의 Declared Name 은 전역변수로 지정될 수도 있습니다. Formula 오브젝트의 표현식에서 지정연산자를 사용하면서, Declare Variable 오브젝트를 함께 사용하여 전역변수로 설정할 수 있습니다. 예를 들어, globalXY 를 전역변수로, 이것의 Type을 Object로 선언하고, 디스플레이를 사용하는 컨텍스트에서 다음 표현식을 추가합니다.

Set globalXY = XY

이제는 프로그램의 다른 컨텍스트에서 다음 표현식으로 마커의 값을 읽을 수 있습니다.:

a = globalXY.Marker1X

프로그램에 따라서, 프로그램이 마커의 값을 읽기 전에 마커의 위치를 변경할 수 있도록 프로그램이 일시 정지하는 기능을 작성해야 하는 경우가 있습니다. 그래프의 시퀀스 출력과 Formula 오브젝트의 시퀀스 입력 사이에 Confirm (OK) 버튼을 프로그램에 추가하여 프로그램 실행을 일시정지 할 수 있습니다. 또한 마커의 위치를 프로그램에서 제어하도록 프로그램을 작성할 수도 있습니다. 프로그램상으로 마커를 설정하는 자세한 내용은 Programmatic Properties를 참조하십시오.

오브젝트 위치

Display [image] Polar Plot

관련정보

Complex Plane, Magnitude Spectrum, Magnitude vs Phase, Spectrum (Freq), Strip Chart, Waveform (Time) 및 Default Preferences 대화상자.

폴라데이터 디스플레이 하기, 디스플레이에서 마커 설정하기, 마커의 속성을 설정하거나 가져오기


팝업 리스트

Selection Control를 참조 하십시오.


인쇄 대화상자

표준 Microsoft Windows 인쇄 방법을 사용하여 인쇄하는 대화상자

사용법

Print 대화상자는 인쇄 품질과 인쇄 매수를 지정하기 위해 사용합니다.

대화상자 설명

Printer - 현재의 윈도우 시스템에서 설정된 프린터를 인식합니다. 프린터를 변경하기 위해서는, 프린터 찾기 버튼을 눌러 프린터 연결 대화상자를 디스플레이 합니다.

Print Range - VEE에서는 ‘모두’로 고정되어 있습니다.

Print Quality - 프린터에 따라 다릅니다. HP LaserJet Printers인 경우에, 디폴트 해상도는 300 dpi (300 dots-per-inch)입니다.

Copies - 인쇄하고자 하는 매수를 입력합니다 (디폴트= 1).

Collate Copies - 디폴트 값은 off (박스 체크 안됨)입니다. 한 부씩 인쇄하고자 하는 경우에는 박스를 체크합니다.

모든 입력을 마치고, 프린터가 준비된 경우에는 ‘인쇄’ 버튼을, 인쇄하지 않고 중지하고자 하는 경우에는 ‘취소’ 버튼을 클릭합니다.

주의사항

윈도우 어플리케이션에서 프린터를 설정하는 방법에 대한 자세한 내용은 Microsoft Windows 매뉴얼을 참조하십시오.

오브젝트 위치

File [image] Print Screen

File [image] Print Program

File [image] Print Objects

관련정보

Print Objects 메뉴항목, Print Program, Print Screen 메뉴항목 및 Print Setup 메뉴항목.

경계의 폭에 대한 예

VEE 프로그램 인쇄하기

VEE 프로그램에서 오브젝트 인쇄하기

VEE 윈도우 인쇄 또는 복사하기

VEE 작업공간 인쇄하기


Print Objects 메뉴 항목

선택한 오브젝트의 모든 뷰및 Description 데이터를 프린터 또는 인쇄 파일로 출력합니다.

사용법

Print Objects는 선택한 오브젝트를 인쇄하기 위해 사용합니다. Print Objects는 프린터를 설정할 수 있는 인쇄 대화상자를 디스플레이 합니다.

Print Objects는 각 오브젝트에 대한 모든 뷰(아이콘뷰, 오픈뷰, 디테일뷰, 패널뷰)를 Description 데이터와 함께 인쇄합니다.

오브젝트를 선택하지 않은 경우에는, Print Objects 메뉴는 회색으로 비활성화 됩니다.

대화상자 설명

Print Objects는 시스템을 위한 적절한 대화상자를 디스플레이 합니다; 인쇄 대화상자를 참조 하십시오. .

주의사항

선택된 오브젝트의 수가 많은 경우에는, Print Objects는 오브젝트의 이미지를 캡쳐하기 위하여 약간의 시간이 필요합니다. 이미지가 캡쳐되는 동안에, 포인터가 모래시계로 변합니다. 캡쳐가 완료될 때까지는 VEE를 사용할 수 없습니다.(포인터가 화살표로 다시 변경됩니다.)

VEE는 프린트용으로는 한 가지의 설정만 저장하므로, 하나의 VEE 프로그램에서 프린트하여 다음 VEE 프로그램으로 넘어갈 때 까지는 동일한 설정을 사용합니다.

오브젝트 위치

File [image] Print Objects

관련정보

인쇄 대화상자, Print Program, Print Screen 메뉴항목, Default Preferences 대화상자 및 Select All 메뉴항목.

프린트 설정 변경하기

VEE 프로그램 인쇄하기

VEE 프로그램에서 오브젝트 인쇄하기

VEE 윈도우 인쇄 또는 복사하기

VEE 작업공간 인쇄하기


Print Program 오브젝트

프로그램의 디테일뷰를 프린터 또는 인쇄 파일로 출력합니다.

사용법

Print Program은 전체 프로그램을 인쇄하기 위해 사용합니다. Print Program은 무엇을 프린터로 출력할건지를 지정할 수 있는 Print Options 대화상자를 디스플레이 합니다. 인쇄 옵션을 선택한 다음에, OK 버튼을 누르면 인쇄 대화상자가 나타납니다.

Print Program은 VEE 프로그램의 전체 구조를 보여주기 위하여 인덱싱된 페이지를 생성합니다. 출력은 상위 레벨 프로그램의 전체 보기와, 오브젝트의 모든 보기와 오브젝트의 Description 데이터를 보여주는 프로그램에 있는 각 오브젝트에 대한 페이지를 제공합니다. 오브젝트가 트랜잭션을 포함하는 경우에는, 트랜잭션을 설명하는 세부적인 대화상자도 인쇄 됩니다. 출력되는 각 페이지는 프로그램에 있는 이미지의 위치를 설명하는 정보도 포함합니다.

인쇄 처리에 대한 다양한 방법은 Print Options 대화상자를 통해서 개별적으로 컨트롤 됩니다.

대화상자 설명

Print Program 대화상자는 5개의 필드를 제공합니다:

Print Nested UserObjects - 현재 인쇄중인 오브젝트에 네스팅된 UserObjects를 반복적으로 인쇄합니다.

Print Object Views - 인쇄할 컨텍스트 내에 있는 모든 오브젝트를 인쇄합니다. 오브젝트가 어떻게 인쇄 되느냐는 오브젝트의 복잡함에 달려 있습니다. 즉, Gate, Junction, 또는 UntilBreak 오브젝트 같은 간단한 오브젝트는 VEE 프로그램에 보이는 대로 인쇄됩니다. Graph 또는 Sequencer 오브젝트와 같이 복잡한 오브젝트는 오픈뷰 형태로 인쇄됩니다.

Print Header and Index Page - 박스가 체크되면, VEE 프로그램의 각 페이지는 날짜, 시간, 프로그램 파일이름 및 페이지 번호를 나타내는 2라인의 머릿말을 인쇄합니다. 인쇄 마지막에 인덱싱된 항목의 페이지를 보여주는 인덱스 페이지가 인쇄됩니다.

Print Program Explorer - 박스가 체크되면, VEE 프로그램은 Program Explorer 창에 나타난 내용을 인쇄합니다.

Print Cover Page - 박스가 체크되면, 다음의 항목들을 보여주는 VEE 프로그램의 첫 페이지를 인쇄합니다:

VEE 제품 로고 이미지.

인쇄되는 프로그램의 파일 이름.

저장된 프로그램의 파일 포맷.

사용되는 VEE 소프트웨어의 개정 코드 (6.0등과 같은).

현재의 VEE 실행 모드 (VEE 6, VEE 5, 등).

Print I/O Configuration – 박스가 체크되면, 계측기 설정에 대한 확장된 구조가 인쇄됩니다. 메뉴 in I/O [image] Instrument Manager...에서 계측기 설정을 볼 수 있습니다.

When you press OK, the appropriate dialog box appears for your system; see Print.

주의사항

Print Program은 프로그램의 이미지를 캡쳐하기 위하여 약간의 시간이 필요합니다. 이미지가 캡쳐되는 동안에, 포인터가 모래시계로 변합니다. 캡쳐가 완료될 때까지는 VEE를 사용할 수 없습니다. (포인터가 화살표로 다시 변경됩니다.)

VEE는 프린트 설정을 한 가지만 저장하므로, 하나의 프린트에서 다른 프린트로 전환될 때 까지 설정이 변경되지 않습니다.

오브젝트 위치

File [image] Print Program...

관련정보

Default Preferences 대화상자, 인쇄 대화상자, Print Screen 메뉴항목, Print Objects 메뉴항목 및 Save Documentation 메뉴항목.

프린트 설정 변경하기

VEE 프로그램 인쇄하기

VEE 프로그램에서 오브젝트 인쇄하기

VEE 윈도우 인쇄 또는 복사하기

VEE 작업공간 인쇄하기


Print Screen 메뉴항목

VEE 윈도우에 디스플레이된 내용을 프린터 또는 인쇄 파일로 출력합니다.

사용법

Print Screen은 화면에 디스플레이된 모든 프로그램을 인쇄하기 위해 사용합니다. Print Screen은 프린터를 설정할 수 있는 인쇄 대화상자를 디스플레이 합니다.

대화상자 설명

Print Screen은 시스템을 위한 적절한 대화상자를 디스플레이 합니다; 인쇄 대화상자를 참조 하십시오.

주의사항

Print Objects는 오브젝트의 이미지를 캡쳐하기 위하여 약간의 시간이 필요합니다. 이미지가 캡쳐되는 동안에, 포인터가 모래시계로 변합니다. 캡쳐가 완료될 때까지는 VEE를 사용할 수 없습니다.(포인터가 화살표로 다시 변경됩니다.)

VEE 디스플레이 윈도우의 크기는 인쇄 영역의 크기를 결정합니다. 크게 인쇄하기 위해서는, VEE 윈도우를 크게 조정합니다. (이미지가 너무 큰 경우에는 이미지가 잘려서 인쇄됩니다.) 큰 이미지는 스캔하고 인쇄하는데 시간이 걸립니다.

VEE는 프린트용으로는 한 가지의 설정만 저장하므로, 하나의 VEE 프로그램에서 프린트하여 다음 VEE 프로그램으로 넘어갈 때 까지는 동일한 설정을 사용합니다.

오브젝트 위치

File [image] Print Screen

관련정보

인쇄 대화상자, Print Program, Print Objects 메뉴항목 및 Default Preferences 대화상자.

프린트 설정 변경하기

VEE 프로그램 인쇄하기

VEE 프로그램에서 오브젝트 인쇄하기

VEE 윈도우 인쇄 또는 복사하기

VEE 작업공간 인쇄하기


Print Screen 오브젝트

VEE 윈도우에서 보이는 부분의 복사본을 프린터로 인쇄하는 오브젝트

사용법

Print Screen은 프로그램이 실행되는 동안에 보이는 작업영역에 대한 복사본을 인쇄하기 위해 사용합니다.

주의사항

Print Screen (VEE 시스템 프린터)에 사용되는 프린터는 다음에 의해 설정됩니다:

File [image] Print Setup

Print Screen은 설정된 그래픽 프린터나 디렉토리로 출력합니다.

실행중인 프로그램은 Print Screen이 실행되면 일시 정지합니다. Print Screen이 끝나면 프로그램의 일시 정지 상태는 취소됩니다.

오브젝트 위치

I/O [image] Print Screen

관련정보

인쇄 대화상자, Print Program, Print Screen 메뉴항목, Print Objects 메뉴항목 및 Default Preferences 대화상자.

프린트 설정 변경하기


Print Setup 메뉴항목

표준 Microsoft Windows 인쇄 방법을 사용하여 프린터를 설정하는 인쇄설정 대화상자

사용법

인쇄설정 대화상자는 프린터 인쇄방향, 용지크기와 용지공급 방법을 선택하기 위하여 사용합니다.

대화상자 설명

프린터 – 디폴트 프린터 또는 특정한 프린터 중에서 선택합니다. 특정한 프린터를 선택할 경우에는, 윈도우즈 시스템에서 설정된 프린터 목록에서 선택할 수 있습니다.

용지 – 지원되는 선택항목의 목록중에서 용지 크기와 용지 공급을 선택합니다.

방향- 가로 또는 세로 중에서 선택합니다.

속성을 클릭하면, 세부적인 선택을 위한 대화상자가 나타납니다.

주의사항

윈도우 어플리케이션에서 프린터를 설정하는 방법에 대한 자세한 내용은 Microsoft Windows 매뉴얼을 참조하십시오.

Windows XP에서 VEE를 실행한 경우에는, 프린터 등록정보 대화상자에서 ‘비트맵으로 다운로드’를 선택할 때만 트루타입의 글꼴을 전송합니다. 이 대화상자는 메뉴 File [image] Print Setup에서 제공합니다. 인쇄설정 대화상자에서 속성을 클릭하고 글꼴 탭아래에 있는 ‘비트맵으로 다운로드’를 선택합니다.

오브젝트 위치

File [image] Print Setup

(또는 파일 메뉴에서 다른 인쇄 옵션중의 하나를 선택하면 인쇄 대화상자가 나타납니다.)

관련정보

인쇄 대화상자, Print Program, Print Objects 메뉴항목 및 Print Screen 메뉴항목.

프린트 설정 변경하기

VEE 프로그램 인쇄하기

VEE 프로그램에서 오브젝트 인쇄하기

VEE 윈도우 인쇄 또는 복사하기

VEE 작업공간 인쇄하기


Profiler 오브젝트

UserObject와 UserFunction에 관한 실행정보를 제공하는 메뉴 항목

사용법

Profiler를 실행하면, Profiler Information 대화상자가 나타납니다. Profiler Information 대화상자에서 VEE 프로그램에서 각각의 UserObject와 UserFunction에 대한 실행 파라미터들의 변화를 프로파일 할 수 있습니다.

Profiler를 시작하면, 각각의 UserObject 또는 UserFunction를 실행하는데 소요된 시간 정보를 제공합니다. 이 정보를 이용하여 VEE 프로그램의 효율을 높이고 실행속도를 향상하도록 프로그램을 수정하는데 적용할 수 있습니다.

Profiler가 활성화되어 있는 동안에는, VEE 작업영역의 우측하단의 프로그램 상태바에 PROF가 하이라이트 되어 있습니다.

대화상자 설명

Name - Name 컬럼은 프로파일 되는 각 UserObject와 UserFunction의 이름을 나열합니다.

# Executions - 이 컬럼은 프로파일 동안의 UserObject 또는 UserFunction의 실행횟수를 표시합니다.

% Time - 전체 프로그램 실행 시간에서 특정 UserObject 또는 UserFunction이 소비한 시간을 백분율로 표시합니다.

Time(sec) - 특정 UserObject 또는 UserFunction이 실행한 시간의 양을 초단위(second)로 표시합니다.

Start Profiling - Start Profiling 버튼은 Start Profiling 또는 Stop Profiling을 토글합니다. Profile을 시작하면, VEE 프로그램 상태바에서 PROF 필드가 하이라이트 됩니다.

Refresh - Profile Information 대화상자는 새 profile 데이터를 자동으로 업데이트 하지는 않습니다. Profiler는 실행, 중지, 중단으로부터 가장 마지막 Profile 데이터를 검색하므로 반드시 Refresh 버튼을 클릭해야 합니다.

Clear - Clear 버튼은 Profiler Information 대화상자의 모든 필드의 내용을 0(zero)로 재설정합니다.

Save - Profiler 데이터를 저장합니다. Options...버튼을 사용하여 저장할 파일의 이름을 기입할 수 있습니다. (아래의 Options...에서 자세한 내용이 제공됩니다.)

Options... - Profiler Option 대화상자를 불러옵니다. Profiler Option 대화상자는 아래의 필드와 버튼이 제공됩니다.

# digits for % Time - 이 필드는 Profiler 대화상자의 % Time 필드에서 디스플레이하는 자릿수(소수점 자릿수)를 설정합니다. 기본값은 소수점 두 자리 입니다.

# digits for Time(sec) - 이 필드는 Profiler 대화상자의 Time(sec) 필드에서 디스플레이하는 자릿수(소수점 자릿수)를 설정합니다. 기본값은 소수점 세 자리 입니다.

Show only executed contexts - 이 상자를 체크하면(기능 사용) UserObject와 UserFunction이 실행되는 동안에만 Profiler 데이터가 보여집니다. 이 상자가 체크되지 않은 상태가 기본설정입니다.

Save Options group - Save Options 그룹에서는 data 파일에 Profiler 데이터를 저장하는 방식을 정의합니다. 이 옵션들은 다음과 같습니다.

- Save File Name: - 이 필드는 Profiler 데이터를 저장할 파일명을 지정합니다. 이 필드를 클릭하여 Save data filename 대화상자를 불러옵니다. Save data filename 대화상자에서, 파일명, 파일 타입을 지정하여 Profiler 데이터를 저장할 수 있습니다. 기본 파일명은 profile.dat입니다.
- Overwrite data - Overwrite data를 체크하면(기능사용), 새로 수집한 Profiler data를 저장할 때마다, 이전 저장했던 파일에 덮어 씌우는 방식으로 저장합니다. 디폴트 상태에서는 Overwrite data 항목은 사용하도록 되어 있습니다.
- Comma delimited - Comma delimited 박스는 컴마로 구분된 포맷으로 데이터파일을 기록을 할 것인지, 또는 컴마 이외의 문자로 구분된 포맷으로 데이터파일을 기록을 할 것인지 지정합니다. 데이터가 Comma delimited format으로 저장다면, 데이터는 각 Profiler data 필드를 Comma로 구분하여 데이터 파일에 기록합니다. 데이터 파일에서 컴마를 사용하여 데이터를 구분하면, 다른 소프트웨어 어플리케이션 소프트웨어(스프레드시트 등)와의 쉽게 통신할 수 있습니다. 디폴트 상태에서는 Comma delimited 상자는 체크되어 있지 않습니다. (사용하지 않습니다.).
- OK - OK를 클릭하여 Profiler Options 대화상자에서 선택된 옵션들을 적용합니다.

주의사항

Profiler가 Profiler 대화상자에서 데이터를 수집하고, 디스플레이 한 후, Name 필드에서 UserObject 또는 UserFunction을 더블클릭 하면, 해당 UserObject 또는 UserFunction은 VEE 작업공간에 배치됩니다.

또한, Name, #Execution, %Time, etc.등과 같은 컬럼 라벨을 클릭하면 Profiler 대화상자에 디스플레이 되는 데이터를 내림차순으로 정렬할 수 있습니다. 다시 클릭하면 올림차순으로 정렬됩니다.

오브젝트 위치

View [image] Profiler

관련정보

Call Stack, 라인(연결선) 정리하기, Show Data Flow 항목, Show Execution Flow 항목 및 속성창 (오브젝트).

실행 파라미터 프로파일 하기


Program Explorer 메뉴항목

Program Explorer 창을 디스플레이 하는 View 메뉴항목

사용법

Program Explorer 메뉴 항목은 Program Explorer 창의 디스플레이 여부를 선택하는 토글 함수입니다. 이 항목이 체크되어 있으면, Program Explorer 창이 VEE 작업공간의 왼쪽에 디스플레이 됩니다. 다음 방법을 이용하여 Program Explorer의 디폴트 상태를 설정 할 수 있습니다:

1. View 메뉴 또는 툴바 버튼을 사용하여 Program Explorer의 현재 상태를 설정할 수있습니다.

2. 메뉴 File [image] Default Preferences를 선택합니다.

3. Default Preferences 대화상자에 있는 Save 버튼을 누릅니다.

4. Default Preferences 대화상자에 있는 OK 버튼을 누릅니다.

다음에 VEE를 시작하면, Program Explorer는 Default Preferences를 통해서 저장했던 그 상태로 시작합니다.

VEE 작업공간과 Program Explorer 창 사이에 있는 수직 분리선위에 마우스를 커서를 놓은 상태에서 Program Explorer의 넓이를 조정할 수 있습니다. 마우스 커서의 모양이 수직 분리 커서로 바뀔 때, 마우스 왼쪽 버튼을 누르고 오른쪽이나 왼쪽으로 드래그하여 윈도우의 크기를 늘리거나 줄일 수 있습니다.

Program Explorer 와 Properties 창 사이에 있는 수평 분리선위에 마우스를 커서를 놓은 상태에서 Program Explorer 창의 높이를 조정할 수 있습니다. (Program Explorer 와 Properties 창이 보이는 경우)

주의사항

Program Explorer 창의 목적은 현재 로딩된 VEE 프로그램의 계층구조를 프로그래머에게 보여주는 것입니다. 이 구조는 프로그램 종류에 따라 다른 아이콘을 사용합니다. 아이콘은 다음과 같이 프로그램 종류에 따라서 서로 다른 형태를 가진 아이콘으로 표시합니다:

UserObject의 계층구조는 메인 UserObject부터 시작합니다.

로컬 UserFunction 리스트.

임포팅된 UserFunction 라이브러리 리스트 및 관련 함수.

임포팅된 컴파일 라이브러리 및 관련 함수.

임포팅된 리모트 UserFunction 라이브러리 및 관련 함수.

전역변수, 선언된 변수 및 선언되지 않은 변수.

해당 라이브러리 아래에서 선언된 전역 라이브러리.

해당 컨텍스트 아래에서 선언된 지역 변수.

Program Explorer의 기능적인 특징은 컨텍스트 메뉴를 통해서 제공됩니다. 예를 들어, 마우스 커서를 Program Explorer 창에 있는 UserObject 아이콘 위에 놓고 마우스 오른쪽 버튼을 누르면, UserObject에 대한 컨텍스트 메뉴가 나타납니다.

Program Explorer에 있는 모든 항목이 컨텍스트 메뉴를 제공하는 것은 아니며, 항목의 타입 (UserObject 아이콘, UserFunction 아이콘, 등)에 따라 메뉴가 나타납니다. Program Explorer에서 다음의 항목들은 켄텍스트 메뉴를 제공합니다:

Program (or Root) Node

Main UserObject

UserObjects

UserFunctions

Local UserFunctions

Imported UserFunctions

Imported UserFunction Library

Remote UserFunction

Compiled Function

Global Variable

Library Global Variable

Local Variable

오브젝트 위치

View [image] Program Explorer

관련정보

Default Preferences 대화상자, UserFunction, UserObject

프로그램 구조 탐색하기


속성창 (오브젝트)

오브젝트에 영향을 미치는 선택항목을 제공하는 창. 이 페이지에서는 모든 오브젝트에서 공통으로 제공하는 일반적인 속성에 대해서만 설명합니다. 오브젝트에 따라서는 일부 옵션이나 탭이 제공되지 않을 수 있습니다.

사용법

오브젝트의 속성창에서 타이틀 변경, 브레이크 포인트 설정, 오브젝트의 색깔과 폰트 설정, 아이콘과 오픈뷰의 형태 변경 및 기타 오브젝트의 행위, 실행방법을 설정할 수 있습니다.

속성창 설명

Title - 오브젝트의 현재 타이틀을 표시하며, 이 항목을 편집할 수 있습니다.

 ShowTitleBar - 이 속성의 값이 참(True)이면, 오브젝트의 오픈뷰에 타이틀바가 표시됩니다.

 Show Terminals - 이 속성이 참이면, 오픈뷰에서 입력터미날 및 출력터미날을 표시합니다. 표시된 터미날에는 터미날의 이름이 표시됩니다. 오브젝트의 터미날을 더블클릭하면 해당 터미날의 모든 정보에 접근할 수 있습니다.

BreakpointEnabled - 이 속성이 참이면, 해당 오브젝트에 브레이크 포인트를 설정할 수 있습니다; 반대로, 이 속성이 거짓이면 해당 오브젝트에 브레이크 포인트를 설정할 수 없습니다. 해당 오브젝트가 실행되기 직전에 그 오브젝트에서 프로그램이 일시 정지하도록 하는 프로그램 디버깅 툴로서 이 속성을 사용합니다. 일시 정지된 오브젝트는 노란색 테두리(디폴트)로 표시되어 다음 실행순서라는 것을 나타냅니다. 실행을 계속하기 위해서는 툴바의 Resume 이나 Step 버튼을 클릭합니다. 속성창이나 디버그 메뉴에서 브레이크포인트가 설정되면, 브레이크포인트가 설정된 오브젝트는 오렌지색(디폴트) 테두리로 하이라이트됩니다.

 Title BackColor - 팔레트에서 타이틀바(오픈뷰) 및 타이틀(아이콘뷰)의 색깔을 선택할 수 있습니다.

 Title ForeColor - 팔레트에서 타이틀바(오픈뷰) 및 타이틀(아이콘뷰)의 색깔을 선택할 수 있습니다.

 BackColor - 팔레트에서 오브젝트의 오픈뷰의 색깔을 선택할 수 있습니다.

 ForeColor - 팔레트에서 오브젝트의 오픈뷰에서 사용하는 텍스트의 색깔을 선택할 수 있습니다. 오브젝트의 오픈뷰에 텍스트가 없으면 이 속성의 색깔을 선택할 수 없습니다.

 Title Font - 컴퓨터에서 제공하는 폰트목록에서 타이틀바(오픈뷰) 및 타이틀(아이콘뷰)의 폰트를 선택할 수 있습니다.

 Font - 컴퓨터에서 제공하는 폰트목록에서 오픈뷰에서 사용하는 텍스트의 폰트를 선택할 수 있습니다.

ShowIconTitle - 이 항목을 참으로 설정하면, 오브젝트의 아이콘뷰에 오브젝트 이름이 표시됩니다. 이 Show Title 항목이 거짓이면, 아이콘에 오브젝트의 이름이 표시되지 않습니다.

IconPicture - 이 아이콘에 표시될 그래픽 파일을 선택합니다.

여기서 표시되는 폴더는 VEE 설치폴더 아래의 bitmap 폴더입니다. 다른 폴더에서 파일을 선택하기 위해서는 Browse...버튼을 클릭합니다.

이미지의 크기가 변경되더라도 이미지의 크기를 고정하고 항상 아이콘의 중앙에 배치하기 위해서는 Centered를 선택합니다.

아이콘의 크기가 변경됨에 따라서 이미지가 스케일되도록 하기 위해서는 Scaled를 선택합니다.

Preview - 현재 선택된 그래픽 이미지를 디스플레이합니다. 현재 지원되는 그래픽 포맷에 대한 내용은 Picture 오브젝트를 참조하십시오.

VEE 설치폴더 아래의 bitmap 폴더에서 디폴트 비트맵 파일이 제공됩니다.

Border: 패널뷰 상의 오브젝트에 대해서만 사용할 수 있습니다.

None | Flat | Sunken | Raised - 패널에서 사용되는 오브젝트의 디스플레이 형태를 선택합니다.

Location: 패널뷰 상의 오브젝트에 대해서만 사용할 수 있습니다.

X: - 오브젝트의 좌측상단 코너의 수평위치(픽셀단위). 작업영역의 좌측상단이 0 입니다.

Y: - 오브젝트의 좌측상단 코너의 수직위치(픽셀단위). 작업영역의 좌측상단이 0 입니다.

Size: 패널뷰 상의 오브젝트에 대해서만 사용할 수 있습니다.

Width: - 오브젝트의 좌변부터 우변까지의 거리. 오브젝트의 경계선을 포함한 값입니다.

Height: - 오브젝트의 상변부터 하변까지의 거리. 오브젝트의 경계선을 포함한 값입니다.

주의사항

폰트 속성을 변경할 때, 폰트 대화상자에는 Automatically Resize Object on Font Change 항목이 제공됩니다. 이 항목의 체크박스를 체크하고, 폰트를 선택하고 OK 버튼을 클릭하면, 폰트의 크기에 따라서 오브젝트의 크기가 변경됩니다. 이 항목을 체크하지 않으면, 폰트의 크기가 얼마로 설정되던 간에 오브젝트의 크기는 변경되지 않습니다. Object Text 폰트 선택항목이 없으면 이 항목이 제공되지 않습니다.

오브젝트 패널뷰의 속성창에서 속성을 변경하면, 해당 오브젝트의 패널뷰에만 영향을 미칩니다. 오브젝트 패널뷰에서 설정할 수 있는 속성의 종류는 디테일뷰의 서브셋입니다.

대부분의 오브젝트는 해당 오브젝트에만 적용되는 부가 선택항목이 있습니다.(속성창은 오브젝트 메뉴에서 Properties를 실행하여 열수 있습니다.) 오브젝트의 이러한 속성에 대한 상세한 내용은 해당 오브젝트를 참조하십시오.

단축키

오브젝트의 타이틀바(오픈뷰에서 사용할 수 있습니다.)를 더블클릭하면 속성창을 열수 있습니다.

오브젝트 위치

오브젝트 메뉴 [image] Properties ...

the Main 메뉴 View [image] Properties

관련정보

Default Preferences 대화상자 또는 오브젝트 메뉴


Pulse Generator 오브젝트

펄스 파형을 생성하고 출력하는 오브젝트

사용법

Pulse Generator는 사용자가 지정하는 펄스 파형을 생성하기 위해 사용합니다.

속성창

ErroronAliasing - 이 속성을 True로 설정하면, 펄스의 주기(Time Span/Num Points)가 2배의 샘플링 주기보다 크거나 작은 경우에는 에러가 발생합니다. 이 평가의 목적은 생성되는 포인트가 생성되는 펄스를 정확하게 표시하는지를 판단하기 위해 사용합니다. 체크박스를 선택하지 않으면, 포인트를 문자로 표시합니다. 디폴트값은 True입니다.

오픈뷰 항목

모든 항목은 오픈뷰에서 설정할 수 있고, 데이터 입력으로 추가할 수도 있습니다.

Frequency - 생성하고자 하는 펄스의 비율을 Hertz로 표시.

Pulse Width - 펄스의 시간에 따른 넓이. 시간은 상향 변환의 중간 포인트에서 하향 변환의 중간 포인트 사이에서 측정됩니다. 펄스 넓이는 양의 실수여야 합니다. 디폴트 값은 5mS 입니다.

Pulse Delay - 첫번째 변환을 시작하기 위한 파형의 시작 시간.

Thresholds - Rise Time 과 Fall Time을 사용하여 한계점을 판단합니다.
Low Threshold = (first percentage) * (high - low)
High Threshold = (second percentage) * (high - low)

0%-100%

10%-90%

20%-80%

Rise Time - 하위 임계값에서 상위 임계값으로 변한하기 위한 초단위의 시간. Rise Time은 양의 실수여야 합니다.

Fall Time - 상위 임계값에서 하위 임계값으로 변한하기 위한 초단위의 시간. Fall Time은 양의 실수여야 합니다

High - 펄스가 활성화할 때 파형의 값. High는 실수여야 합니다. 디폴트 값은 1 입니다.

Low - 펄스가 비 활성화할 때 파형의 값. Low는 실수여야 합니다. Low 값이 High 값보다 큰 경우에는, 펄스는 역으로 생성됩니다. 디폴트 값은 0 입니다.

Burst Mode - 주파수에 생성되는 복수의 펄스에 대한 가능 여부. Burst Rate가 OFF 일 때, 하나의 펄스가 주파수에서 생성됩니다. Burst Rate가 ON 일 때, Burst Count 수의 펄스가 주파수에서 생성됩니다. 디폴트 값은 OFF 입니다.

Burst Count - Rep Rate에서 생성되는 펄스의 수. Burst Count는 반드시 양의 정수여야 합니다. 디폴트 값은 2 입니다.

Burst Rep Rate - Burst Count가 생성된 비율. Burst Rep Rate는 1/pulse width보다 큰 실수여야 합니다.

Time Span: - 파형의 지속시간(초 단위). 디폴트 값은 20mS 입니다.

Num Points: - 파형에 있는 포인트 수. 파형에서 포인트 사이의 시간은 Time Span/Num Points입니다. Num Points는 반드시 양수여야 하고, 디폴트 값은 256입니다.

오브젝트 위치

Device [image] Virtual Source [image] Pulse Generator

관련정보

Build Arb Waveform, Build Waveform, Comparator, Function Generator 및 Noise Generator.


Queue - Clear 오브젝트

큐(queue) 지우기

오브젝트 위치

System [image] Collections [image] Queue [image] Clear


Queue - Count 오브젝트

큐에 있는 항목을 카운트합니다.

오브젝트 위치

System [image] Collections [image] Queue [image] Count


Queue - Create 오브젝트

큐를 호출하기 위한 데이터 구조를 생성합니다.

오브젝트 위치

System [image] Collections [image] Queue [image] Create


Queue - Dequeue Item 오브젝트

큐에서 항목을 삭제합니다.

오브젝트 위치

System [image] Collections [image] Queue [image] Dequeue Item


Queue - Enqueue Item 오브젝트

큐에 아이템을 추가합니다.

오브젝트 위치

System [image] Collections [image] Queue [image] Enqueue Item


Queue - Enumerate 오브젝트

Queue – Enumerate 오브젝트

큐에 있는 항목의 리스트를 제공합니다.

오브젝트 위치

System [image] Collections [image] Queue [image] Enumerate Items


Queue - Peek an Item 오브젝트

큐에 있는 항목을 피크

오브젝트 위치

System [image] Collections [image] Queue [image] Peek Item


Radio Buttons 오브젝트

Selection Control를 참조하십시오.


Raise Error 오브젝트

관련 에러 번호 (이스케이프 코드, escape code) 및 텍스트 메시지를 제공하는 사용자 지정의 에러조건을 생성합니다. (이 오브젝트를 이전에는 Escape 오브젝트라고 불렀습니다.)

사용법

Raise Error는 현재의 UserObject의 실행을 중지하고 UserObjec나 메인 작업영역에 포함된 에러핀에 의해 검출될 수 있는 에러를 생성하기 위해 사용합니다. 에러가 검출되지 않고(UserObject에 있는 에러핀에 의해) 이스케이프 코드가 0이 아닐 경우에는, Raise Error는 프로그램을 중지하고 에러 대화상자를 생성합니다.

Raise Error는 UserFunction을 호출한 오브젝트에 있는 에러핀에 의해 검출된 에러를 생성하기 위해 UserFunction에서도 사용할 수 있습니다.

오픈뷰 항목

Code – 에러번호; 값은 Int32여야 합니다. VEE는 300에서 1,000사이의 에러번호를 사용합니다; 이 범위를 제외하고 에러번호를 사용하는 것이 좋습니다. 950에서 999 사이의 에러번호는 VSE(VEE Serious Error)로 사용되므로, 이 범위 안에 있는 에러번호는 사용할 수 없으며 그렇지 않으면 VEE 런타임 에러가 발생합니다. 입력필드에 Code를 입력할 수도 있고, 데이터 입력으로 추가할 수도 있습니다.

Message – 출력하기 위한 텍스트 메시지. 입력필드에 Message를 입력할 수도 있고, 데이터 입력으로 추가할 수도 있습니다.

주의사항

VEE가 –r 도스명령 옵션으로 실행된 경우에는, Raise Error에 의해 생성된 검출되지 않은 에러는 VEE를 종료 시키게 됩니다. stderr와 255로 기록된 Code 와 Message는 exit 코드처럼 운영체제로 되돌아 갑니다.

특정한 exit 코드를 생성하기 위해서는, Stop 오브젝트를 사용하십시오.

오브젝트 위치

Flow [image] Raise Error

관련정보

Error Output 메뉴항목 (오브젝트 메뉴), UserObject 생성, Exit UserObject, Exit Thread, Start, Stop 메뉴항목 및 속성창 (오브젝트)

To Trap an Error


Real32 오브젝트

스칼라 또는 1D 어레이 형태의 상수 4-byte 실수를 출력하는 오브젝트

사용법

Real32 오브젝트는 실수 상수를 설정하거나 사용자가 값을 입력할 수 있습니다. 값을 입력하기 위해서는 입력필드를 클릭하십시오.

사용예

Real32를 패널뷰 상에 나타나는 입력 대화상자로 사용하기 위해서는, Real32 오브젝트의 이름을 Enter the offset:와 같이 나타나도록 변경합니다. 사용자는 입력 필드에 요청한 정보를 입력합니다.

Real32 오브젝트에 100M*PI를 입력하면, 이 공식을 연산하고 오브젝트는 Real32 결과값을 디스플레이합니다.

속성창

DataShape - 출력되어야 할 값의 데이터 형태를 설정합니다. 입력할 수 있는 값은 스칼라 또는 Array 1D 형태입니다.

 ArraySize - DataShape 1D Array를 선택한 경우에, ArraySize는 어레이의 길이를 설정합니다.

 ArraySizeFixed - True로 설정하면, 어레이에는 라인을 추가하거나 삭제할 수 없습니다. 데이터 형태가 DataShape 1D Array인 경우에만 사용할 수 있습니다.

 ShowArrayIndices - True로 설정하면, 어레이에 있는 각 라인은 인덱스됩니다. 데이터 형태가 DataShape 1D Array인 경우에만 사용할 수 있습니다. 디폴트 값은 True입니다.

Wait for Input - True로 설정하면, 오브젝트는 값이 변경되기 전까지는 동작하지 않습니다. 속성을 False로 변경하면, 오브젝트는 제한사항을 만나는 즉시 동작하고 현재 선택된 값을 출력합니다. 디폴트 값은 False입니다.

 AutoExecute - True로 설정하면, 값이 선택되면 나머지 프로그램을 실행합니다. 만약 프로그램이 실행중이라면, AutoExecute는 무시됩니다. 디폴트 값은 False입니다.

InitialValue - 설정되어야 할 값을 지정합니다. 디폴트 값은 0입니다.

 InitializeAtPreRun - True로 설정하면, InitialValue가 실행 직전에 설정됩니다. 디폴트 값은 False입니다.

 InitializeAtActivate - True로 설정하면, InitialValue가 활성화될 때 설정됩니다. 디폴트 값은 False입니다.

Global Format - 디폴트 포맷을 사용합니다. 디폴트 값은 on 입니다.

Real: - Global Format이 off 되어 있으면, 오브젝트에 표시하는 숫자형식을 실수로 지정합니다. Fixed (예 98.6000), Scientific (예 9.8600E+01), Engineering (예 98.6000E0), Standard (예 98.6), 또는 Time Stamp (예 Wed 01/Jan/2003 17:01:38) 등을 선택할 수 있습니다. 디폴트 값은 Standard입니다.

주의사항

Initialize는 UserObject내의 값을 초기화하기 위해 자주 사용합니다. 초기값을 설정하는 다른 방법은 Default Value 컨트롤핀을 사용하는 것입니다.

컨트롤 입력은 Default Value, Reset, Enable Editing 또는 Disable Editing등을 추가할 수 있습니다.

Default Value 입력은 현재의 값을 변경할 수 있습니다. Scalar 또는 Array 1D 형태의 정수를 입력할 수 있습니다. 상수는 입력데이터의 형태를 매칭시키기 위하여 재구성됩니다.

Reset 입력은 값을 0으로 설정합니다. 상수가 Array 1D로 설정되면, 모든 값은 0으로 설정됩니다. Reset 상태에서는 입력에 있는 실제 데이터는 무시됩니다.

Enable Editing과 Disable Editing 입력은 오브젝트의 오픈뷰에서 값의 변경여부를 제어합니다.

InitialValue 항목은 Real32가 어레이로 구성되어 있더라도, 항상 스칼라입니다.

오브젝트 위치

Data [image] Constant [image] Real32

관련정보

Alloc Real32, Complex, Constant, Coord, Date/Time, Selection Control, UInt8, Int16, Int32, PComplex, Real64, Text 및 Toggle Control.

상수 데이터 사용하기


Real64 오브젝트

스칼라 또는 1D 어레이 형태의 상수 8-byte 실수를 출력하는 오브젝트

사용법

Real64 오브젝트는 실수 상수를 설정하거나 사용자가 값을 입력할 수 있습니다. 값을 입력하기 위해서는 입력필드를 클릭하십시오.

사용예

Real64를 패널뷰 상에 나타나는 입력 대화상자로 사용하기 위해서는, Real64 오브젝트의 이름을 Enter the offset:와 같이 나타나도록 변경합니다. 사용자는 입력 필드에 요청한 정보를 입력합니다.

Real64 오브젝트에 100M*PI를 입력하면, 이 공식을 연산하고 오브젝트는 Real64 결과값을 디스플레이합니다.

속성창

DataShape - 출력되어야 할 값의 데이터 형태를 설정합니다. 입력할 수 있는 값은 스칼라 또는 Array 1D 형태입니다.

 ArraySize: - DataShape 1D Array를 선택한 경우에, ArraySize는 어레이의 길이를 설정합니다.

 ArraySizeFixed - True로 설정하면, 어레이에는 라인을 추가하거나 삭제할 수 없습니다. 데이터 형태가 DataShape 1D Array인 경우에만 사용할 수 있습니다.

 ShowArrayIndices - True로 설정하면, 어레이에 있는 각 라인은 인덱스됩니다. 데이터 형태가 DataShape 1D Array인 경우에만 사용할 수 있습니다. 디폴트 값은 True입니다.

Stepping Category: (Datashape가 Array 1D인 경우에는 활성화되지 않습니다.)

EnableStepping - True로 설정하면, 값을 스크롤할 수 있는 스테핑 컨트롤이 입력필드의 오른쪽 끝에 나타납니다. 디폴트 값은 False입니다.

DetentSize - EnableStepping 속성이 True로 설정될 때, 이것은 값을 스크롤할 수 있는 스테핑 컨트롤에 사용하는 값의 간격을 설정합니다. 디폴트 값은 1입니다.

Wait for Input - True로 설정하면, 오브젝트는 값이 변경되기 전까지는 동작하지 않습니다. 속성을 False로 변경하면, 오브젝트는 제한사항을 만나는 즉시 동작하고 현재 선택된 값을 출력합니다. 디폴트 값은 False입니다.

 AutoExecute - True로 설정하면, 값이 선택되면 나머지 프로그램을 실행합니다. 만약 프로그램이 실행중이라면, AutoExecute는 무시됩니다. 디폴트 값은 False입니다.

InitialValue - 설정되어야 할 값을 지정합니다. 디폴트 값은 0입니다.

 InitializeAtPreRun - True로 설정하면, InitialValue가 실행 직전에 설정됩니다. 디폴트 값은 False입니다.

 InitializeAtActivate - True로 설정하면, InitialValue가 활성화될 때 설정됩니다. 디폴트 값은 False입니다.

NumberFormat: Global Format - 디폴트 포맷을 사용합니다. 디폴트 값은 on 입니다.

Real: - Global Format이 off 되어 있으면, 오브젝트에 표시하는 숫자형식을 실수로 지정합니다. Fixed (예 98.6000), Scientific (예 9.8600E+01), Engineering (예 98.6000E0), Standard (예 98.6), 또는 Time Stamp (예 Wed 01/Jan/2003 17:01:38) 등을 선택할 수 있습니다. 디폴트 값은 Standard입니다.

주의사항

Initialize는 UserObject내의 값을 초기화하기 위해 자주 사용합니다. 초기값을 설정하는 다른 방법은 Default Value 컨트롤핀을 사용하는 것입니다.

컨트롤 입력은 Default Value, Reset, Enable Editing 또는 Disable Editing등을 추가할 수 있습니다.

Default Value 입력은 프로그램 실행시 현재의 값을 변경할 수 있습니다. Scalar 또는 Array 1D 형태의 정수를 입력할 수 있습니다. 상수는 입력데이터의 형태를 매칭시키기 위하여 재구성됩니다.

Reset 입력은 프로그램 실행시 값을 0으로 설정합니다. 상수가 Array 1D로 설정되면, 모든 값은 0으로 설정됩니다. Reset 입력터미날에서 제공되는 실제 데이터는 무시됩니다.

Enable Editing과 Disable Editing 입력은 프로그램 실행시 오브젝트의 오픈뷰에서 값의 변경여부를 제어합니다.

Real64가 어레이로 설정되어 있더라도 InitialValue 필드는 항상 스칼라입니다.

오브젝트 위치

Data [image] Constant [image] Real64

관련정보

Alloc Real64, Complex, Constant, Coord, Date/Time, Selection Control, UInt8, Int16, Int32, PComplex, Real32, Text 및 Toggle Control.

상수 데이터 사용하기


Real64 Input 오브젝트

실수를 입력할 수 있는 팝업 대화상자를 디스플레이 하는 오브젝트

사용법

Real64 Input은 사용자에게 실수를 입력하도록 알리고, 숫자를 입력하고, 입력된 숫자의 유효성을 테스트하기 위해 사용합니다.

팝업 대화상자에서 OK 버튼을 누르면, 사용자가 입력한 실수가 Value 출력핀으로 출력됩니다. Cancel 버튼을 누르면, Cancel 출력핀으로 1이 출력됩니다.

오픈뷰

  • Prompt/Label - 사용자가 텍스트 필드에 데이터를 입력하도록 알려주는 스트링. 이 파라미터는 데이터 입력으로 추가할 수 있습니다. 디폴트 값은 ‘Enter Real Value:’ 입니다.

  • Default Value - 어떤 내용을 입력하기 전에 대화상자의 입력필드에 표시되는 텍스트. 사용자가 어떤 내용을 입력하지 않고 OK 버튼을 누르면 이 텍스트가 출력됩니다. 이 파라미터는 데이터 입력으로 추가할 수 있습니다. 디폴트 값은 5입니다.

  • Value Constraint - 입력하는 텍스트의 유효 여부를 검사하는 방정식. 어떤 수학 표현식이나 UserFunction을 호출하여 사용할 수 있습니다. 이 파라미터는 데이터 입력으로 추가할 수 있습니다. 디폴트 값은 ‘0<=value AND value<=10’입니다; 이것은 사용자의 입력값이 0과 10사이에 있는지를 체크합니다. 어떤 값이라도 입력될 수 있도록 하기 위해서는 표현식으로 1을 사용합니다.

  • Error Message - 사용자의 입력값이 Value Constraint를 만족하지 않은 경우에 메시지 박스에 출력하는 텍스트. 이 파라미터는 데이터 입력으로 추가할 수 있습니다. 디폴트 값은 ‘You must enter a real number between 0 and 10’입니다.

속성창

  • PopupTimeoutEnabled - 이 속성을 True로 설정하면, 오브젝트에 Timeout 출력핀이 추가됩니다. 디폴트 값은 False입니다.

  • PopUpDuration - 팝업 대화상자가 디스플레이되는 시간을 설정합니다. 설정된 시간이 지나면, 대화상자는 사라지고 Timeout 출력핀으로 1을 출력합니다. Timeout 핀이 실행되면 다른 출력핀들은 데이터를 출력하지 않습니다. 이 필드는 PopupTimeoutEnabled가 True로 되어 있을 때만 사용할 수 있습니다. 디폴트 값은 60초 입니다.

  • PopupOKLabel - OK인 경우에 버튼 라벨을 OK로 설정합니다. 필요한 경우에는 버튼 라벨로 다른 단어를 사용할 수도 있습니다. 단어를 바꾸더라도 버튼의 기능은 그대로 유지됩니다.

  • PopupCancelLabel - Cancel인 경우에 버튼 라벨을 Cancel로 설정합니다. 필요한 경우에는 버튼 라벨로 다른 단어를 사용할 수도 있습니다. 단어를 바꾸더라도 버튼의 기능은 그대로 유지됩니다.

  • PopupPasswordMasking - 이 속성을 True로 설정하면, 입력된 텍스트가 별표(*)로 디스플레이 됩니다. 이 기능은 사용자가 비밀번호 같은 민감한 데이터를 입력할 때 유용합니다. Value 출력핀으로 출력되는 스트링은 감추어지지 않습니다. 디폴트 값은 False입니다.

주의사항

팝업 대화상자의 디폴트 위치는 작업영역의 중앙 근처입니다. 이 대화상자를 이동한 경우에는, 다음에 대화상자가 팝업될 때 새로운 위치에서 팝업됩니다.

에러 메시지 대화상자의 제목은 Real64 Input 오브젝트의 제목과 동일합니다.

팝업 대화상자에서 키보드 만을 이용하여 입력하기 위해서는: 대화상자가 팝업될 때 내용을 입력하고 Enter키 또는 Esc키를 사용합니다. 입력 필드와 버튼 사이를 이동하기 위해서는 Tab키를 사용하고, 버튼을 선택하기 위해서는 Space바를 사용합니다.

팝업 대화상자와 에러 대화상자는 프로그램이 실행중일 때만 디스플레이 됩니다. 팝업 대화상자가 디스플레이 되는 동안에는 모든 프로그램의 실행이 일시 중지되고, 대화상자가 닫히면 다시 실행이 진행됩니다.

오브젝트 위치

Data [image] Dialog Box [image] Real64 Input

관련정보

File Name Selection, Int32 Input, List Box, Message Box, Text Input, UserObject 및 오브젝트 메뉴

데이터 입력 대화상자 사용하기


Real64 Knob 오브젝트

노브의 Real64값을 출력하는 오브젝트

사용법

Real64 Knob 오브젝트는 Real64 값을 입력하기 위해 사용합니다. Real64 Knob는 패널뷰에서 유용하게 사용됩니다.

오픈뷰 항목

오픈뷰는 노브의 현재값, 최소값 및 최대값을 위한 필드와 노브 컨트롤을 디스플레이 합니다.

속성창

Orientation - 노브가 디스플레이 되는 방향을 설정합니다.

 ShowDigitalDisplay - True로 설정하면, 노브의 현재값이 오브젝트 오픈뷰의 바닥에있는 편집 필드에 디스플레이 됩니다. 이 값을 수정하면 노브의 위치가 변경됩니다. 디폴트 값은 True입니다.

ShowTics - 스케일의 tic마크와 라벨의 보이기/숨기기를 컨트롤합니다. 디폴트 값은 True입니다.

 Logarithmic - True로 설정하면, 선형스케일에서 로그 스케일로 변경합니다. 디폴트 값은 False입니다. on 상태에서는 Detents가 Steps/Decade로 변경됩니다.

 LabelSpacing: - 스케일 값으로 표시되는 tic 마크를 컨트롤합니다. 디폴트 값은 EveryOtherTic입니다.

 Detents or Steps/Decade: - 선형 스케일에서는, Detents는 Slider에서 사용할 수 있는 값 사이의 간격을 설정합니다. 로그 스케일에서는, Steps/Decade는 Slider에서 각 decade내에 있는 step의 숫자를 설정합니다. 다른 값이 입력되면, 가장 가까운 detent값으로 변환됩니다. Detents (선형 스케일)의 디폴트 값은 1m입니다. Steps/Decade (로그 스케일)의 디폴트 값은 1.0입니다.

Wait for Input - True로 설정하면, 오브젝트는 값이 변경되기 전까지는 동작하지 않습니다. 속성을 False로 변경하면, 오브젝트는 제한사항을 만나는 즉시 동작하고 현재 선택된 값을 출력합니다. 디폴트 값은 False입니다.

 AutoExecute - True로 설정하면, 값이 선택되면 나머지 프로그램을 실행합니다. 만약 프로그램이 실행중이라면, AutoExecute는 무시됩니다. 디폴트 값은 False입니다.

InitialValue - 설정되어야 할 값을 지정합니다. 디폴트 값은 0입니다.

 InitializeAtPreRun - True로 설정하면, InitialValue가 실행 직전에 설정됩니다. 디폴트 값은 False입니다.

 InitializeAtActivate - True로 설정하면, InitialValue가 활성화될 때 설정됩니다. 디폴트 값은 False입니다.

NumberFormat 영역:

Global Format - 디폴트 포맷을 사용합니다. 디폴트 값은 on 입니다.

Real: - Global Format이 off 되어 있으면, 오브젝트에 표시하는 숫자형식을 실수로 지정합니다. Fixed (예 98.6000), Scientific (예 9.8600E+01), Engineering (예 98.6000E0), Standard (예 98.6), 또는 Time Stamp (예 Wed 01/Jan/2003 17:01:38)등을 선택할 수 있습니다. 디폴트 값은 Decimal입니다.

주의사항

Initialization는 UserObject내의 값을 초기화하기 위해 자주 사용합니다. 초기값을 설정하는 다른 방법은 Default Value 컨트롤핀을 사용하는 것입니다.

컨트롤 입력은 Default Value, Reset, Enable Editing, Disable Editing, MaxValue, MinValue, 또는 Detents등을 추가할 수 있습니다:

Default Value 입력은 현재의 값을 변경할 수 있습니다. 이 입력은 Int32 스칼라 값을 필요로 합니다.

Reset 입력은 값을 0으로 설정합니다. Reset 상태에서는 입력에 있는 실제 데이터는 무시됩니다.

Enable Editing과 Disable Editing 입력은 오브젝트의 오픈뷰에서 값의 변경여부를 제어합니다.

MaxValue와 MinValue 입력은 최소값과 최대값 필드를 설정합니다. 실수 스칼라 값의 입력이 필요하고, Int32로 변환됩니다.

Detents 입력은 detent 값을 설정합니다.

오브젝트 위치

Data [image] Continuous [image] Real64 Knob

관련정보

Complex, Selection Control, Int32, Int32 Slider, Int32 Knob, PComplex, Real64, Real64 Slider, Text, Toggle Control 및 오브젝트 메뉴

데이터 슬라이더 및 노브 오브젝트 사용하기


Real64 Slider 오브젝트

슬라이더의 Real64값을 출력하는 오브젝트

사용법

Real64 Slider 오브젝트는 Real64값을 입력하기 위해 사용합니다. Real64 Slider는 패널뷰에서 유용하게 사용됩니다.

오픈뷰 항목

오픈뷰는 슬라이더의 현재값, 최소값 및 최대값을 위한 필드와 슬라이더 컨트롤을 디스플레이 합니다.

속성창

Orientation - 슬라이더가 디스플레이 되는 방향을 설정합니다.

 ShowDigitalDisplay - True로 설정하면, 슬라이더의 현재값이 오브젝트 오픈뷰의 바닥에 있는 편집 필드에 디스플레이 됩니다. 이 값을 수정하면 슬라이더의 위치가 변경됩니다. 디폴트 값은 True입니다.

ShowTics - True로 설정하면, 슬라이더는 최대값과 최소값 사이에서 tic 마크와 라벨을 표시합니다. 디폴트 값은 True입니다.

 Logarithmic - True로 설정하면, 선형스케일에서 로그 스케일로 변경합니다. 디폴트 값은 False입니다. on 상태에서는 Detents가 Steps/Decade로 변경됩니다.

 LabelSpacing: - 스케일 값으로 표시되는 tic 마크를 컨트롤합니다. 디폴트 값은 EveryOtherTic입니다.

 Detents or Steps/Decade: - 선형 스케일에서는, Detents는 Slider에서 사용할 수 있는 값 사이의 간격을 설정합니다. 로그 스케일에서는, Steps/Decade는 Slider에서 각 decade내에 있는 step의 숫자를 설정합니다. 다른 값이 입력되면, 가장 가까운 detent값으로 변환됩니다. Detents (선형 스케일)의 디폴트 값은 1m입니다. Steps/Decade (로그 스케일)의 디폴트 값은 1.0입니다.

Wait for Input - True로 설정하면, 오브젝트는 값이 변경되기 전까지는 동작하지 않습니다. 속성을 False로 변경하면, 오브젝트는 제한사항을 만나는 즉시 바로 동작하고 현재 선택된 값을 출력합니다. 디폴트 값은 False입니다.

 AutoExecute - True로 설정하면, 값이 선택되면 나머지 프로그램을 실행합니다. 만약 프로그램이 실행중이라면, AutoExecute는 무시됩니다. 디폴트 값은 False입니다.

InitialValue - 설정되어야 할 값을 지정합니다. 디폴트 값은 0입니다.

 InitializeAtPreRun - True로 설정하면, InitialValue가 실행 직전에 설정됩니다. 디폴트 값은 False입니다.

 InitializeAtActivate - True로 설정하면, InitialValue가 활성화될 때 설정됩니다. 디폴트 값은 False입니다.

NumberFormat:

Global Format - – 디폴트 포맷을 사용합니다. 디폴트는 on 입니다.

Real: - Global Format이 off 되어 있으면, 오브젝트에 표시하는 숫자형식을 실수로 지정합니다. Fixed (예 98.6000), Scientific (예 9.8600E+01), Engineering (예 98.6000E0), Standard (예 98.6), 또는 Time Stamp (예 Wed 01/Jan/2003 17:01:38)등을 선택할 수 있습니다. 디폴트 값은 Decimal입니다.

주의사항

Initialize는 UserObject내의 값을 초기화하기 위해 자주 사용합니다. 초기값을 설정하는 다른 방법은 Default Value 컨트롤핀을 사용하는 것입니다.

컨트롤 입력은 Default Value, Reset, Enable Editing, Disable Editing, MaxValue, MinValue, 또는 Detents등을 추가할 수 있습니다:

Default Value 입력은 현재의 값을 변경할 수 있습니다. 이 입력은 Int32 스칼라 값을 필요로 합니다.

Reset 입력은 값을 0으로 설정합니다. Reset 상태에서는 입력에 있는 실제 데이터는 무시됩니다.

Enable Editing과 Disable Editing 입력은 오브젝트의 오픈뷰에서 값의 변경여부를 제어합니다.

MaxValue와 MinValue 입력은 최소값과 최대값 필드를 설정합니다. 실수 스칼라 값의 입력이 필요하고, Int32로 변환됩니다.

Detents 입력은 detent 값을 설정합니다.

오브젝트 위치

Data [image] Continuous [image] Real64 Slider

관련정보

Complex, Selection Control, Int32, Int32 Knob, Int32 Slider, PComplex, Real64, Real64 Knob, Text, Toggle Control 및 오브젝트 메뉴

데이터 슬라이더 및 노브 오브젝트 사용하기


Record Constant 오브젝트

Record 데이터 타입을 스칼라 또는 1 차원 어레이로 출력하는 오브젝트

사용법

Record 상수를 만들거나 기존 레코드 또는 레코드 어레이를 대화형으로 편집할 때 Record Constant 오브젝트를 사용합니다.

오픈뷰 항목

이 오브젝트의 오픈뷰에는 해당 Record 오브젝트가 가지고 있는 Field name 버튼과 Value 버튼(또는 Value 입력창)이 제공됩니다. (디폴트 상태에서는 Field name 버튼은 A, B와, 이들의 Value 입력창에는 "Text field" 및 "1.25"이 각각 제공됩니다.) 레코드의 DataShape 속성을 Array 1D로 설정하면, 어레이의 인덱스(예, 0, 1,..)를 지정할 수 있도록 추가 필드가 제공됩니다. First, Prev, Next 및 Last 버튼을 클릭하여 어레이 값을 하나씩 순차적으로 조회할 수 있습니다.

Field name -- 버튼을 클릭하면 대화상자가 출력됩니다. 이 대화상자에서 레코드 필드의 이름, 데이터 타입 및 형태를 변경할 수 있습니다. 이미 사용중인 필드의 이름을 다른 필드에 사용하면 에러가 발생합니다. 필드이름은 대소문자를 구별하지 않습니다. 데이터 타입을 변경하면, VEE는 대이터타입 변환규칙에 따라서 기존 데이터를 새로운 데이터 타입으로 변경합니다.

Value -- 필드의 값을 편집할 수 있습니다. 필드의 데이터타입이 Enum 이 아닌 스칼라이면, 값을 직접 입력할 수 있습니다. 필드의 데이터타입이 Enum 이나 Array 1D 이면, Value 필드는 버튼으로 표시됩니다. 이 버튼을 클릭하면 대화상자가 출력되고 여기서 값을 선택할 수 있습니다. 필드가 2 차 이상의 어레이인 경우에는 값을 편집할 수 없습니다.

오브젝트 메뉴

Add Record -- 레코드 어레이의 마지막에 레코드를 추가합니다. 이때 생성되는 어레이는 기존 어레이의 맨 마지막 앨리먼트의 복사본이 생성됩니다.(레코드가 스칼라이면 이 항목이 활성화되지 않습니다.)

Insert Record -- 현재 표시되고 있는 레코드 어레이 위치에 레코드를 삽입합니다. 이 때 삽입되는 레코드는 현재 표시되고 있는 오브젝트의 복사본입니다.(레코드가 스칼라이면 이 항목이 활성화되지 않습니다.)

Delete Record -- 현재 표시되고 있는 레코드 어레이를 삭제합니다.(레코드가 스칼라이면 이 항목이 활성화되지 않습니다. 또한, 어레이 레코드인 경우에라도, 하나 이상의 레코드가 선택되어야만 이 메뉴가 활성화됩니다.)

Add Field -- 필드 목록의 마지막에 필드를 추가합니다. 대화상자가 표시되며, 이 대화상자에서 필드의 이름, 타입 및 형태를 설정합니다.

Insert Field -- 지정된 위치에 레코드 필드를 삽입합니다. 첫 번째 대화상자에서 필드의 이름, 타입 및 형태를 설정합니다. 두 번째 대화상자에서는 필드가 삽입될 위치를 지정합니다.

Delete Field -- 레코드의 필드를 삭제합니다. 대화상자에서 삭제할 필드를 선택합니다. 이 항목은 레코드에 2 개 이상의 필드가 있는 경우에만 활성화됩니다.

Generate

Declared Variable –- 이 Record 설정과 동일하게 선언된 변수 오브젝트를 생성합니다. Record 상수와 선언된 변수는 동일한 숫자의 필드를 가지며, 각 필드는 동일한 이름을 가집니다.

Unbuild Record -- Record 설정과 동일하게 출력하는 Unbuild Record 오브젝트를 생성합니다.

속성창

DataShape - 이 오브젝트에서 출력되는 값의 초기 데이터형태를 설정합니다. 스칼라 또는 Array 1D를 설정할 수 있습니다.

 ArraySize: - DataShape을 Array 1D로 설정했을 때, 어레이의 길이를 설정합니다.

 ArraySizeFixed - 이 항목이 참(True)이면, 어레이에 앨리먼트를 추가하거나 삭제할 수 없습니다. DataShape이 Array 1D로 설정된 경우에만 이 속성을 사용할 수 있습니다.

 Schema Fixed - 이 속성이 참이면, 레코드의 포맷(“스키마”)가 고정되며, 변경할 수 없습니다. 이 항목은 사용자가 팝업패널에서 레코드의 값을 대화형으로 변경할 때 유용합니다.

NumberFormats:

Global Format - 디폴트 포맷을 사용합니다. 디폴트는 On 입니다.

Integer: - Global Format이 off이면, 이 오브젝트에 디스플레이 정수의 포맷을 지정합니다. Decimal (예, 42), Octal (예, #Q52), Hexadecimal (예, #H2a) 및 Binary (예, #B00101010)을 선택할 수 있습니다. 디폴트 값은 Decimal 입니다.

Real: - Global Format이 off이면, 이 오브젝트에 디스플레이 실수의 포맷을 지정합니다. Fixed (예, 98.6000), Scientific (예, 9.8600E+01), Engineering (예, 98.6000E0), Standard (예, 98.6) 및 Time Stamp (예, Wed 01/Jan/2003 17:01:38)을 선택할 수 있습니다. 디폴트 값은 Standard 입니다.

주의사항

Default Value, Reset, Enable Editing 및 Disable Editing 컨트롤 입력핀을 추가할 수 있습니다.

Default Value 컨트롤 터미날은 현재 값을 설정하는데 사용됩니다. 이 입력에는 스칼라 또는 Array 1D의 Record 값이 제공되어야 합니다. 이 오브젝트는 입력되는 데이터 형태에 호환되기 위해서 스스로 재설정됩니다.

Reset 터미날은 이 오브젝트의 값을 0으로 설정합니다. 이 오브젝트의 데이터 형태가 Array 1D이면, 모든 값은 0 으로 설정됩니다.(숫자 입력필드는 0으로, 텍스트 필드는 널 스트링이 됩니다.) Reset 입력터미날의 값은 무시됩니다.

Enable Editing 및 Disable Editing 컨트롤 입력터미날을 통해서는 해당 오브젝트의 오픈뷰 상태에서 값를 변경할 수 있는지 없는지를 설정합니다.

Default Value 컨트롤 입력터미날은 큰 어레이를 가진 레코드의 값을 편집할 때 편리합니다.(예를 들어, From DataSet 오브젝트를 이용하여 레코드 어레이를 읽어 들일 수 있습니다.) Record Constant 오브젝트의 초기값을 설정하기 위해서는 Default Value 터미날로 레코드 어레이를 전송하기만 하면 됩니다. 이후로는 전체 레코드를 보면서 대화식으로 편집하면 됩니다. 데이터 값, 타입, 형태 및 필드의 매핑을 변경할 수 있습니다.(필드 자체가 어레이가 아닌 경우에만) 일단 레코드를 편집하였으면, 새로운 데이터셋이나 파일로 출력될 수 있습니다.(DataSet 또는 To File 오브젝트를 사용하여) Record Constant 에서는 필드가 레코드이면 필드를 편집할 수 없습니다. – 필드 및 데이터를 조회할 수만 있습니다.

Record Constant 오브젝트에서는 레코드의 레코드를 생성할 수 없습니다. 즉, Record Constant에는 필드가 레코드인 필드를 추가할 수 없습니다. 그러나, VEE의 다른 모든 레코드 관련 오브젝트(Build Record 및 Set Field 등)에서는 레코드의 레코드를 생성할 수 있습니다. 시스템의 메모리 용량이 허용하는 한 회귀가 허용됩니다. 즉, 레코드는 필드가 레코드인 필드를 가질 수 있습니다. 여기서 이 필드를 다시 레코드 필드를 가지며, 이것을 메모리 용량이 허용하는 한 반복할 수 있습니다. 레코드의 형태는 스칼라 또는 1 차원 어레리가 될 수 있습니다.

오브젝트 위치

Data [image] Constant [image] Record

관련정보

Build Record, From DataSet, Merge Record, Set Field, To DataSet 및 UnBuild Record.

레코드 상수 생성하기


Remove 오브젝트

주어진 스트링에서 지정하는 서브 스트링을 제거합니다.

오브젝트 위치

System [image] String [image] Remove


Repeat 메뉴항목

메뉴 항목

사용법

Repeat는 다음의 반복자와 반복 컨트롤 오브젝트를 제공합니다.

For Count

For Range

For Log Range

Until Break

On Cycle

Next

Break

주의사항

반복자를 네스팅할 수 있습니다.

반복자에 의해 호스팅된 서브 쓰레드의 실행은 다음중의 한가지가 발생할 때까지 계속 실행합니다:

모든 오브젝트가 실행을 완료 했을 때. 서브 쓰레드의 반복이 완료됩니다.

Break 오브젝트가 동작 했을 때. 서브 쓰레드는 비활성화되고 시퀀스 출력핀이 활성화 됩니다.

Next 오브젝트가 동작 했을 때. 서브 쓰레드는 비활성화되고 반복 카운트는 증가 합니다.

반복되는 서브 쓰레드가 완료되면, 시퀀스 출력핀이 활성화 됩니다.

오브젝트 위치

Flow [image] Repeat

관련정보

Break, For Count, For Range, For Log Range, Next, On Cycle 및 Until Break.

VEE 프로그램의 일부분을 반복하기


Replace 오브젝트

오브젝트 및 연결된 라인을 다른 오브젝트로 대체합니다.

사용법

Replace는 라인의 연결은 유지하면서 오브젝트를 대체합니다.

Replace는 대체되는 오브젝트의 복사본을 Paste 버퍼에 저장합니다.

주의사항

매번 Replace는 Paste 버퍼에 있는 기존의 내용을 원(대체되는) 오브젝트로 덮어 씌웁니다.

핀은 상단에서부터 하단으로 연결됩니다. 원 오브젝트에 연결된 많은 라인이 새로운 오브젝트에 있는 핀보다 많은 경우에는, 나머지 핀은 삭제됩니다. 원 오브젝트에 연결된 라인이 새로운 오브젝트의 핀보다 적은 경우에는, 새로운 오브젝트의 맨 하단에 있는 라인이 연결되지 않은 상태로 남습니다.

Replace는 동일한 컨텍스트 내에서만 동작합니다. 예를 들어, UserObject에 있는 오브젝트를 대체하기 위해서는, 먼저 대체될 오브젝트를 UserObject 컨텍스트에 배치하십시오.

Replace는 오브젝트가 하나 이상의 다른 오브젝트와 연결되지 않았을 때는 사용할 수 없습니다.

오브젝트 위치

오브젝트 메뉴 [image] Replace

관련정보

오브젝트 메뉴, Cut 메뉴항목 (오브젝트 메뉴), Copy 메뉴항목 및 Paste 메뉴항목.


Replace (System 메뉴)

주어진 스트링에 있는 서브 스트링을 제공하는 텍스트로 대체합니다.

오브젝트 위치

System [image] String [image] Replace


Restore 메뉴항목 (오브젝트 메뉴)

오브젝트를 오브젝트의 오픈뷰로 복원시킵니다.

사용법

Restore는 오브젝트의 오픈뷰를 나타내기 위해 사용합니다.

주의사항

Restore는 모든 오브젝트의 아이콘뷰에서 사용할 수 있습니다.

최대화된 UserObject에서, Restore는 오픈뷰를 최대 사이즈가 아닌 크기로 재조정합니다.

단축키

오브젝트를 복귀시키기 위해서는, 아이콘을 더블 클릭합니다.

오브젝트 위치

각 오브젝트 메뉴 [image] Restore

관련정보

Minimize 메뉴항목 (오브젝트 메뉴).


Run/Resume 메뉴항목

프로그램이 일시 정지된 후에, 중지된 모든 쓰레드를 계속 실행합니다.

사용법

Run/Resume은 프로그램이 일시 정지된 후에 프로그램을 다시 실행하기 위해 사용합니다. 프로그램은 Pause 버튼을 누른 경우에, 브레이크포인트를 만났을 때, 또는 Step 함수가 사용되었을 때 일시 정지 합니다.

Run/Resume은 브레이크포인트 사이에서 실행을 계속하기 위해 사용 하지만, 때로는 다른 디버깅 툴과 결합하여 사용하기도 합니다.

주의사항

툴바에 있는 Run/Resume 버튼은 Run 버튼과 동일합니다. Run/Resume은 Stop 버튼이 눌러진 경우에는 사용할 수 없습니다.

단축키

CTRL + G 키 또는 F5 기능키를 누르면 Run/Resume이 동작합니다.

오브젝트 위치

Debug [image] Run/Resume

관련정보

Pause 메뉴항목, Run 메뉴항목, Start, Step Into 메뉴항목, Step Over 메뉴항목, Step Out 메뉴항목, Stop 메뉴항목 및 Toggle Breakpoint 메뉴항목.

프로그램을 단계별로 실행하기


Run 메뉴항목

프로그램에서 모든 쓰레드의 실행을 시작합니다.

사용법

Run은 프로그램의 실행을 시작하기 위해 사용합니다. Start 오브젝트가 메인 작업영역에 있는 쓰레드에 사용된 경우에는, Run 버튼 실행시 Start 오브젝트부터 실행됩니다.

Run을 클릭하면, VEE는 데이터를 초기화하기 위해 모든 쓰레드를 PreRun 합니다. Default Preferences 대화상자에 있는 Execution Mode가 VEE 4 이상으로 설정된 경우에는, VEE는 오브젝트의 실행순서를 예상하고, 어떤 라인에 어떤 데이터 타입이 흐르게 되는지 판단하여, 각 오브젝트에 대한 컴파일된 코드를 생성합니다.

주의사항

프로그램에 여러 개의 쓰레드가 있을 때 하나의 쓰레드만을 실행하고자 하는 경우에는, Start 오브젝트를 쓰레드를 연결합니다. 쓰레드를 실행 하기 위해서는 Start 오브젝트를 누릅니다.

단축키

프로그램을 실행하기 위해서 CTRL+G 또는 F5를 누릅니다.

오브젝트 위치

Debug [image] Run

관련정보

Pause 메뉴항목, Run/Resume 메뉴항목, Start, Step Into 메뉴항목, Step Over 메뉴항목, Step Out 메뉴항목 및 Stop 메뉴항목.

VEE 프로그램 시작하기


Sample & Hold 오브젝트

가장 최근에 수신한 데이터 컨테이너를 저장하는 오브젝트. XEQ 핀이 활성화되면 저장된 컨테이너를 출력합니다.

사용법

Sample & Hold는 XEQ 핀이 활성화될 때 입력핀에 있는 최근 데이터를 캡쳐하기 위해 사용합니다.

사용예

Sample & Hold는 반복되는 서브 쓰레드에 있는 If/Then/Else 또는 Conditional 오브젝트 다음에 연결되는 오브젝트에 의해 생성된 데이터를 유지하기 위해 사용합니다.

주의사항

Sample & Hold는 일반적으로 쓰레드에서 반복 또는 분기하는 데이터 흐름이 있을 때 필요합니다. 오브젝트는 디폴트로 입력핀에 있는 최근에 수신된 데이터 컨테이너를 유지합니다.

가장 최근에 InData 입력으로 수신된 데이터 컨테이너만 Sample & Hold에 저장됩니다. 새로운 데이터가 수신되면, 기존의 데이터를 덮어 씌웁니다.

Sequence In 핀이 연결된 경우에는, InData 입력 과 Sequence In 핀은 데이터 컨테이너가 기존에 저장된 데이터를 대체하기 전에 활성화 되어야 합니다.

Sample & Hold는 XEQ 핀이 활성화될 때 실행됩니다. 데이터 전송은 Sequence Out 핀이 활성화 되기 전에 진행됩니다.

Sample & Hold의 내용은 PreRun 또는 Activate에 의해 초기화됩니다. 저장된 데이터 없이 XEQ가 활성화된 경우에는, 에러가 발생합니다.

Sample & Hold에는 XEQ 가 필요하기 때문에, XEQ 핀을 삭제하거나 다른 XEQ 핀을 추가할 수 없습니다.

새로운 데이터가 수신되지 않는 경우에 XEQ가 복수로 활성화되면, 가장 최근에 저장된 데이터를 매번 다시 전송합니다.

오브젝트 위치

Flow [image] Sample & Hold

관련정보

Repeat 메뉴항목, If/Then/Else, Conditional 메뉴, UserObject, 속성창 (오브젝트) 및 오브젝트 메뉴


Save 메뉴항목

작업영역에 있는 프로그램을 최초에 지정한 파일이름으로 저장합니다.

사용법

Save는 작성한 프로그램을 주기적으로 파일에 기록하기 위해 사용합니다.

주의

Agilent VEE Pro 8.0 이상의 버전에서 저장된 파일은 이전 버전의 VEE로 실행할 수 없습니다.

주의사항

Save는 Save As 또는 Open에서 지정했던 파일이름으로 프로그램을 저장합니다. New를 사용하여 프로그램을 생성하고 Save As를 하지 않은 경우에는, Save를 클릭하면 파일 이름을 입력할 대화상자가 표시됩니다. 프로그램이 저장되고 있는 동안에는 포인터가 모래시계 아이콘으로 바뀝니다.

VEE는 프로그램 파일에 색상 및 폰트를 저장합니다( Default Preferences 대화상자에서 지정한대로). Save File 대화상자에는 Save colors and fonts with program 체크박스가 추가되어 있습니다.

VEE는 I/O 설정정보를 프로그램에 임베딩합니다. 설정정보의 임베딩을 인에이블하기 위해서, Save File 대화상자에 Save I/O configuration with program 체크박스가 추가되어 있습니다. I/O 설정 저장에 대한 자세한 내용은 Instrument Manager 대화상자 를 참조하십시오.

Save는 파일을 덮어쓸 때 확인을 요청하지 않습니다.

파일을 저장하는 것은 프로그램의 호환성에 영향을 줍니다. 예를 들어, VEE 6 버전에서 5 버전의 파일을 불러와 저장하면 VEE 5 버전과는 더 이상 호환되지 않습니다.

단축키

프로그램을 저장하기 위해서 CTRL+S를 누릅니다.

오브젝트 위치

File [image] Save

관련정보

Merge, Open 메뉴항목, Save As 메뉴항목 및 Save Objects 메뉴항목.


Save As 메뉴항목

작업영역에 있는 프로그램을 특정한 파일에 저장합니다.

사용법

Save As는 작성한 프로그램을 파일 이름을 지정하여 저장하기 위해 사용합니다.

Default Preferences 대화상자에서 선택한 모든 디폴트 색상과 폰트를 프로그램 파일에 저장하기 위해서는 Save colors and fonts with program 옵션을 선택합니다. 이것은 다른 사용자가 프로그램을 열더라도 지정한 디폴트 색상과 폰트를 사용하게 합니다. 이 옵션을 선택하지 않으면, 프로그램에서 설정한 색상과 폰트만이 프로그램파일에 저장됩니다. 이것은 다른 사용자가 프로그램을 사용하면 사용자의 디폴트 색상과 폰트를 유지하게 됩니다. 기존의 프로그램을 로딩한 경우에는, 이 옵션은 최초에 프로그램이 저장된 방법에 따라 설정됩니다.

Save As는 디폴트로 Save I/O configuration with program을 인에이블 시킵니다. I/O 설정을 임베딩하지 않기 위해서는 이 선택사항을 체크하지 않으면 됩니다. VEE에서 프로그램 자체에 I/O 설정 정보를 임베딩 시킬수 있습니다. I/O 설정을 저장하는 자세한 내용은 Instrument Manager 대화상자를 참조하십시오.

주의

Agilent VEE Pro 7.0 이상의 버전에서 저장된 파일은 이전 버전의 VEE로 실행할 수 없습니다.

주의사항

기존 파일을 덮어쓰려고 할 경우에는, 저장을 확인하는 창이 나타납니다. 프로그램이 저장되고 있는 동안에는 포인터가 모래시계 아이콘으로 바뀝니다.

Save As에서 지정한 파일 이름은 다음에 Save할 때 사용하게 됩니다.

현재의 파일은 ‘파일이름.bak’으로 저장됩니다; 새로 저장한 버전은 ‘파일이름’만 사용합니다. 파일이름이 확장자(.vee 같은)를 포함하고 있는 경우에는 확장자가 ‘.bak’으로 대체됩니다.

VEE는 veeio 리소스 파일을 사용하기 보다는 I/O 설정정보를 프로그램 자체에 임베딩합니다. 설정정보의 임베딩을 인에이블하기 위해서, Save File 대화상자에 Save I/O configuration with program 체크박스가 추가되어 있습니다. I/O 설정 저장에 대한 자세한 내용은 Instrument Manager 대화상자를 참조하십시오.

파일을 저장하는 것은 프로그램의 호환성에 영향을 줍니다. 예를 들어, VEE 6 버전에서 5 버전의 파일을 불러와 저장하면 VEE 5 버전과는 더 이상 호환되지 않습니다.

단축키

Save As하기 위해서 CTRL+W를 누릅니다.

오브젝트 위치

File [image] Save As

관련정보

Default Preferences 대화상자, Merge, Open 메뉴항목, Save 메뉴항목 및 Save Objects 메뉴항목.


Save Documentation 메뉴항목

현재 프로그램에 대한 세부 내용을 포함하는 텍스트 파일을 생성합니다.

사용법

Save Documentation은 문서화를 목적으로 프로그램을 목록화 합니다. Save Documentation의 출력 파일은 다음 정보를 제공합니다:

소오스 파일이름.

문서화된 데이터.

VEE 버전.

저장된 파일 버전.

시스템 설정(색상 및 폰트 제외).

오브젝트 이름 및 타입.

오브젝트의 오픈뷰 정보(예, 상수 값 또는 트랜잭션).

오브젝트의 Description에 입력된 세부적인 내용.

주의사항

Save Documentation은 이전 버전에서 제공했던 veedoc 유틸리티를 대체합니다.

Do, Junction, 및 Gate 오브젝트는 이들 오브젝트가 Description에 입력된 데이터를 가지고 있지 않으면, Save Documentation 파일에 저장되지 않습니다.

Save Documentation 파일에서 각 오브젝트에 할당된 숫자는, Print All을 사용하여 인쇄하는 오브젝트의 숫자와 일치합니다.

상수 데이터는 하나의 라인에 인쇄되기 때문에, 어레이와 레코드는 인쇄되지 않으므로 일반적으로 사용하는 워드 프로세서를 사용하여 파일을 읽을 수 있습니다.

Save Documentation은 색상과 폰트정보 또는 I/O 설정을 저장하지 않습니다.

오브젝트 위치

File [image] Save Documentation

관련정보

Default Preferences 대화상자, Print Program 메뉴항목, Save 메뉴항목 및 Save As 메뉴항목.

프로그램을 문서화하기


Save Objects 메뉴항목

선택한 오브젝트를 지정하는 파일에 저장합니다.

사용법

Save Objects는 오브젝트를 파일이름을 지정하여 파일에 저장하기 위해 사용합니다. Save Objects는 일반적으로 오브젝트 그룹을 다른 프로그램에도 포함되는 공통적인 함수 라이브러리로 저장하기 위해 사용합니다.

주의사항

Save Objects는 다른 프로그램에서 사용하고 있는 프로그램에서 오브젝트를 복사하기 위해 사용합니다. Save Objects는 고유한 함수 라이브러리를 생성할 수 있게 합니다. 오브젝트가 저장되고 있는 동안에는 포인터가 모래시계 아이콘으로 바뀝니다.

기존의 파일을 덮어 씌우는 경우에는, 저장을 확인하는 요청을 받게 됩니다.

Save Objects는 색상 및 폰트 또는 I/O 설정을 저장하지 않습니다.

오브젝트 위치

File [image] Save Objects

관련정보

Merge, Open 메뉴항목, Save 메뉴항목 및 Select All 메뉴항목.

UserObject 라이브러리를 생성하여 사용하기

UserObject 보안처리 하기


Send to Back 메뉴항목 (오브젝트 메뉴)

오브젝트를 보이는 화면에서 뒤로 보냅니다.

사용법

패널에 있는 오브젝트의 메뉴 선택항목으로, 오브젝트를 보이는 화면에서 뒤로 보내어 오브젝트의 z축 순서를 변경합니다.

관련정보

Bring to Front 메뉴항목 (오브젝트 메뉴)


Select All 메뉴항목

적용하고자 하는 맨 앞의 윈도우에 있는 모든 오브젝트를 저장합니다.

사용법

Edit 메뉴에 있는 오브젝트 관련 항목을 사용하기 전에, 적용하고자 하는 오브젝트나 오브젝트의 세트를 선택해야 합니다. Select All을 선택하면 맨 앞에 있거나 활성화된 윈도우에 있는 모든 오브젝트를 선택합니다. 오브젝트가 선택되면, 오브젝트는 그림자로 하이라이트 됩니다. 모든 오브젝트가 아닌 하나 이상의 오브젝트를 선택하기 위해서는, CTRL키를 누른 상태에서 마우스 왼쪽 버튼을 사용하여 오브젝트를 선택합니다. 오브젝트가 선택되고 나면, Cut 또는 Copy 같은 편집 함수를 선택하여 사용합니다.

주의사항

먼저 선택된 오브젝트는 Select All를 사용할 때 선택이 해제 됩니다.

실수로 오브젝트를 선택한 경우에는, 작업영역을 클릭하여 모든 오브젝트의 선택을 해제할 수 있습니다. 또는 CTRL키를 누른 상태에서 선택을 해제 하고자 하는 오브젝트를 클릭합니다.

동일한 VEE 컨텍스트 (UserObject, UserFunction, 등) 에 있는 오브젝트들은 한꺼번에 선택할 수 있습니다.

단축키

CTRL키를 누른 상태에서 오브젝트에 포인터를 놓고 마우스 왼쪽 버튼을 누릅니다. 또는 CTRL키를 누른 상태에서 마우스를 드래그하여 오브젝트들을 선택합니다.

이러한 단축키는 오브젝트의 선택을 토글합니다. 이 방법은 다른 오브젝트를 선택하기 전에는 이전에 선택한 모든 오브젝트의 선택을 해제 하지는 않습니다. (Select All이 했던것 처럼).

CTRL + A를 누르면 활성화된 디테일뷰/패널뷰에 있는 모든 오브젝트를 선택합니다.

오브젝트 위에서 마우스 왼쪽 버튼을 누르면 오브젝트가 선택되나, 이것은 또한 이미 선택된 오브젝트에 대해서는 선택을 해제 합니다.

오브젝트 위치

Edit [image] Select All

관련정보

Add To Panel 메뉴항목, Align 메뉴항목, Copy 메뉴항목, UserObject 생성, UserFunction 생성, Cut 메뉴항목, Print Objects 메뉴항목, Replace, Paste 메뉴항목 및 Save Objects 메뉴항목.


Selection Control 오브젝트

사용자가 생성한 목록에서 지정한 항목 또는 항목의 인덱스를 출력하는 오브젝트. Selection Control 오브젝트는 다양한 디스플레이 형식을 제공하며, 모든 오브젝트는 같은 방식으로 동작합니다.

사용법

Selection Control 오브젝트는 목록형태의 열거된 상수를 설정하고 또는 선택 목록에서 사용자가 선택하여 입력을 받기 위해 사용합니다. 목록에 있는 첫번째 항목은 위치순서 0으로 할당되고; n번째 항목은 위치순서 n-1로 할당됩니다.

오브젝트 메뉴

Edit Enum Values - 유효한 선택을 목록형태로 열거된 선택항목에 추가하거나 기존의선택항목을 편집합니다. 선택항목을 입력하고, Tab키를 눌러 목록의 다음 입력필드로 이동합니다. Shift+Tab키를 눌러 목록에서 뒤(위)로 이동할 수도 있습니다.

속성창

Format property: - Selection Control 오브젝트의 표시 형태를 지정하고, 항목을 선택하는 방식을 지정합니다. 디폴트 포맷은 메뉴에서 선택하는 오브젝트가 디폴트입니다.

Radio Buttons - 선택항목이 모두 표시됩니다. 라디오 버튼과 나란히 있는 항목을 누르면 선택이 완료됩니다.

Cyclic Button - 버튼 필드를 클릭하면 항목이 순환 표시됩니다. 만약 On/Off 또는 Stop/Go같은 2개의 선택항목이 있는 경우, 또는 다른 버튼에 의해 확인되는 선택항목이 있는 대화상자에서는 최선의 선택 방법입니다.

List - 만약 한번에 모든 선택항목을 표시할 수 없을 때는 스크롤바를 제공하는 리스트 박스에 선택항목이 표시됩니다. 합니다. 선택항목을 클릭하면 선택이 됩니다.

Drop-Down List - 필드의 오른쪽에 있는 화살표를 클릭하면 드롭다운 리스트에 선택항목이 표시됩니다. 선택항목을 클릭하면 선택이 됩니다.

Pop-Up List - 버튼 필드를 누르면 디스플레이 되는 대화상자에 있는 리스트 박스에 목록형태로 열거된 선택항목이 표시됩니다. 선택항목을 클릭하고 OK 버튼을 누르면 선택이 됩니다.

Slider List - 목록형태로 열거된 선택항목이 슬라이더에 있는 tic 라벨로 표시됩니다. 슬라이더 버튼이나 라벨을 클릭하면 선택이 됩니다.

Execution 그룹:

Wait for Input - True로 설정되면, 오브젝트는 오브젝트의 값이 변경되기 전에는 동작하지 않습니다. False로 설정되면, 오브젝트는 어떤 조건을 만나든 바로 동작합니다. 그리고 현재 선택된 값을 출력합니다. 디폴트 값은 False입니다.

Auto Execute - True로 설정되면, 값이 선택될 때 오브젝트가 실행되고 나머지 프로그램을 시작합니다. 프로그램이 실행 중이라면, Auto Execute는 무시됩니다. 디폴트 값은 False입니다.

FormatSliderLayout 속성:

Horizontal | Vertical - 디스플레이 되는 슬라이더의 방향을 설정합니다. 이 설정은 Format이 Slider List로 설정되어 있을 때만 유효합니다.

Initialization 영역:

Initial Value - 초기값으로 설정할 값을 지정합니다. 디폴트 값은 선택항목의 첫번째 항목입니다.

Initialize At PreRun - True로 설정되면, 실행직전에 Initial Value로 설정됩니다. 디폴트 값은 False입니다.

Initialize At Activate - True로 설정되면, 프로그램이 실행될 때 Initial Value로 설정됩니다. 디폴트 값은 False입니다.

주의사항

Initialize는 대부분 UserObject안에서 값을 초기화하기 위해 사용됩니다. 초기값을 설정하기 위한 다른 방식은 Default Value 컨트롤 핀입니다.

컨트롤 입력은 Default Value, Reset, Enable Editing, Disable Editing 및 Enum Values를 위해 추가됩니다.

Default Value 입력은 현재의 값을 프로그램상으로 변경합니다. 입력값은 Text 스칼라 값이 필요합니다. (Enum을 포함하여, Text 스칼라로 변환할 수 있는 모든 데이터). 이 값은 Enum 값 중의 하나와 매칭이 되야 합니다.(대소문자 구분)

Reset 입력은 현재의 값을 목록에 있는 첫번째(0 위치순서)값으로 설정합니다. Reset 입력에서는 실제 데이터가 무시됩니다.

The Enable Editing 및 Disable Editing 입력은 오브젝트 오픈뷰에서 값의 변경여부를 컨트롤합니다.

The Enum Values 입력은 Selection Control의 값 목록을 설정합니다. 입력값은 Enum, Text Array 1D 또는 Text 어레이로 변환할 수 있는 모든 데이터가 필요합니다.

Enum 컨테이너는 Collector, Concatenator, Sliding Collector와 대부분의 Formula 오브젝트를 포함하는 많은 오브젝트들을 위하여 자동으로 Text로 변환됩니다.

선택한 값의 순서값을 얻기 위해서는, 스트링을 선택하는 것보다는 Ordinal 출력에 라인을 연결하거나 또는 ordinal()를 사용하십시오.

사용예

사용자 패널에 표시할 목적으로 Selection Control을 사용하기 위해서는, 오브젝트의 이름을 "Choose the type of test:"와 같이 표시될 수 있도록 변경하십시오.

오브젝트 위치

Data [image] Selection Control

관련정보

Complex, Constant, Coord, Date/Time, UInt8, Int16, Int32, PComplex, Real32, Real64, Text, Toggle Control 및 List Box.

ordinal(x).

데이터 선택 오브젝트 사용하기


Send Mail 오브젝트

이 오브젝트는 메일을 전송할 수 있도록 합니다. 필수 조건으로 SMTP 서버가 필요합니다. 다음은 이메일을 발송하는 데 필요한 표준 항목입니다.; to, from, subject, 및 message.

오브젝트 위치

System [image] Send Mail


Service Manager

Service Manager는 리모트 함수를 사용하는데 필수조건입니다. 이것은 리모트 호스트 컴퓨터에서 실행되는 “서비스”와 로컬 호스트 컴퓨터에서 실행되는 “클라이언트” 사이에서 통신을 관리합니다. 리모트 함수를 사용하기 전에 리모트 호스트 컴퓨터에 있는 서비스 매니져를 실행해야 합니다.

Microsoft XP SP2를 사용하는 컴퓨터에서 서비스 매니져를 실행할 때, 운영체제에 있는 새로운 방화벽 기능이 문제를 일으킬 수도 있습니다. Service Manager가 최초에 실행될 때 방화벽이 실행을 차단할 수도 있습니다. 그런 경우에는 보안 경고창이 뜹니다. 보안 위험에도 불구하고, 차단해제를 선택하고 OK를 클릭합니다.

관련정보

리모트 함수


Set Field 오브젝트

기존 레코드 필드의 값을 변경하는 오브젝트

Set Field 오브젝트는 새로운 프로그램에는 사용되지 않는 오브젝트 입니다. 이 오브젝트를 이용하여 작성된 이전 프로그램에서는 계속 지원되고 있습니다. 새로운 프로그램에서는 이 오브젝트 대신 Assignment Formula 오브젝트를 사용하십시오. Assignment Formula 오브젝트는 Function & Object Browser 의 Type: Operators; Category: Assignment 에서 제공됩니다.

사용법

기존 레코드 필드의 값을 변경하기 위해서 사용하는 Set Field 오브젝트. Set Field 오브젝트는 지정연산자의 우측의 표현식의 값을 좌측 표현식에 지정하는 일종의 Formula 오브젝트입니다. 우측 표현식은 스칼라, 어레이, 다른 레코드 또는 레코드의 필드가 될 수 있습니다.

Set Field 오브젝트는 레코드를 언빌드하고, 하나의 필드의 값을 변경하여, 데이터를 다시 레코드로 빌드하는 과정을 하나로 묶은 단축 기능입니다. 2 개의 출력터미날, Result 및 Rec 을 가지고 있습니다. Result는 오브젝트에서 참조된 필드만을 출력합니다. Rec은 전체 레코드를 출력합니다. 또한, 우측 및 좌측 표현식의 결과는 종류와 형태가 일치해야 합니다. 입력레코드의 스키마(종류 및 형태)를 변경하기 위해서는 Set Field 오브젝트를 사용할 수 없습니다.

오픈뷰 항목

Expression 입력 필드-- 이 입력필드를 이용하여 레코드의 앨리먼트를 직접 변경할 수 있습니다. 좌측 표현식은 Formula 산술 구문의 일부분이며, 레코드의 필드를 지정할 수 있습니다. 변경될 레코드의 필드를 지정하기 위해서 A.B와 같이 점을 이용한 구문과 A[2]와 같이 서브어레이 구문을 사용할 수 있습니다. 허용되는 구문에 대해서는 아래 주의사항을 참조하십시오. 우측 표현식에는 Formula 오브젝트에서 사용하는 모든 산술표현식을 사용할 수 있습니다. 이 표현식에서는 모든 입력터미날과 변수 및 함수를 포함할 수 있습니다. 우측 표현식은 실행되어 그 결과값은 왼편의 표현식에서 지정한 레코드 필드에 저장됩니다.

주의사항

레코드 출력핀의 이름은 변경될 입력 레코드의 이름과 일치해야 하며, 왼편의 표현식은 그 이름으로 시작해야 합니다. 예를 들어, 이름이 Rec 인 레코드 핀이 있으면, 왼편의 표현식은 Rec.A 또는 Rec[1] 등의 형태로 작성되어야 합니다. 왼편의 표현식은 변경될 입력컨테이너 필드를 지정하는 단일 표현식이어야 합니다.

이러한 방식은 입력, 출력 및 레코드필드에 대한 혼동을 발생할 수 있습니다. 예를 들어, 레코드 입력핀의 이름과 레코드 출력핀의 이름이 Rec(이것들의 이름은 일치해야 합니다.)이면, 표현식 Rec.A는 입력레코드의 A 필드를 지정합니다. 한편, 표현식 A*2는 Set Field 오브젝트의 A 데이터 입력핀을 참조합니다. 그러므로, Rec.B=A*2 는 출력레코드의 B 필드를 A 데이터입력의 2 배로 설정합니다. 한편, Rec.B=Rec.A 은 출력레코드의 B 필드의 값을 입력레코드의 A 필드의 값으로 변경합니다.

완전한 입력 레코드 컨테이너는 지정된 필드가 변경된 레코드 출력핀의 출력입니다. 예를 들어, 입력 Rec는 2 개의 필드 x와 y를 가진 레코드이고, 여기서 x는 값이 “hello”인 스칼라 텍스트이며, y는 값이 1.2인 Real64 스칼라입니다. 왼편의 표현식이 Rec.y를 지정하고 오른편의 표현식이 5.6 이면, Rec 출력 컨테이너는 x와 y 의 2 개의 필드를 가진 레코드가 됩니다. 여기서, x는 값이 “hello”인 스칼라 텍스트이며, y는 값이 .6 인 Real64 스칼라입니다. Result 출력은 y 필드만 가지고, 이 경우 Real64스칼라는 5.6의 값을 가집니다.

왼쪽 표현식에 의해서 지정된 필드와 오른쪽 표현식의 결과는 종류와 형태(스키마)가 일치해야 합니다. 즉, Set Field 오브젝트의 연산으로 입력필드의 스키마를 변경할 수 없습니다. – 지정된 필드의 데이터 만이 변경될 수 있습니다. 예를 들어, 입력 Rec가 2 개의 필드 x(Text 스칼라)와 y(Real64스칼라)를 가진 레코드라고 가정하겠습니다. 왼편의 표현식이 Rec.y이면, 오른편의 표현식은 Real64 스칼라이거나, Real64 스칼라로 상향변환될 수 있는 타입이어야 합니다. 그렇지 않으면 에러가 발생합니다.

레코드 어레이를 사용할 때는 주의해야 할 사항이 있습니다. 레코드 어레이는 필드를 가진 레코드가 앨리먼트인 어레이입니다. 레코드 어레이에서 하나의 앨리먼트의 하나의 필드를 변경하기 위해서 Set Field 오브젝트를 사용할 수 있습니다. 예를 들어, 1차원 어레이 레코드를 생성하여 3 번째 앨리먼트의 필드의 값을 변경하기 위해서는 Rec[2].f 와 같이 표현식을 작성합니다.(어레이의 인덱스가 0 부터 시작합니다.) 이 경우, 오른편 표현식의 결과가 1차원 어레이의 3번째 앨리먼트의 f 필드에 적용됩니다. Rec[2]의 다른 필드는 영향받지 않으며, 다른 앨리먼트도 영향받지 않습니다.(예, Rec[0].f 또는 Rec[1].f)

한편, 레코드 어레이의 모든 레코드의 특정 필드를 변경하기 위해서 Set Field 오브젝트를 사용할 수 있습니다. 예를 들어, Rec 이 n 개의 앨리먼트를 가진 1차원 레코드 어레이인 경우, 왼편 표현식을 Rec.f 와 같이 작성하였다고 가정하겠습니다. 이 경우, 오른편 표현식의 결과는 모든 Rec[x].f 필드에 적용됩니다. 여기서 x 는 0부터 n-1 까지 입니다. 즉, 어레이의 모든 레코드 앨리먼트의 f필드의 값이 변경됩니다.

왼편의 표현식은 변경될 입력 레코드의 일부분을 지정하는 단일 표현식이어야 합니다. 예를 들어, Rec+2 또는 sine(Rec)는 왼편의 표현식에 사용할 수 없습니다. 또한 변수도 왼편의 표현식에 사용할 수 없습니다.

왼편의 표현식에 허용되는 구문은 다음과 같습니다:

A.B 점을 이용한 서브-레코드 구문을 레코드의 레코드에 무한반복하여 사용할 수 있습니다.(회귀 횟수에 제한이 없습니다.) 레코드 A가 b 필드를 가진다고 가정하겠습니다, 여기서 b도 레코드입니다. 가장 하단의 필드 d를 지정하기 위해서는 왼편의 표현식을 A.b.c.d 와 같이 작성합니다.

A[x] 서브어레이 구문은 제한사항이 더 많으며, 마지막 점의 앞에 한번만 사용할 수 있습니다. 예를 들어, A.b.c[1].d 는 왼편 표현식에서 사용할 수 있는 구문이지만, A[2].b.c.d 또는 A[2].b[2].c 허용되지 않습니다. 또한, A[1] 와 A.b.c[1:2]도 허용되지 않습니다. 그러나, 마지막 점 앞에 사용된 A[x] 서브어레이 구문은 “콜론과 애스터리스크” 구문을 지원합니다. 예를 들어, A[1:2].b 또는 a.b.c[2:*].d는 왼편 표현식에 사용할 수 있습니다.

A[1].b와 A.b[1]의 차이점에 주의하십시오. A[1].b은 필드 b를 가진 1 차원 레코드입니다. A.b[1]은 필드 b를 가진 스칼라 레코드이며, 여기서 필드 b는 1차원 어레이입니다.

오브젝트 위치

Data [image] Access Record [image] Set Field

Set Field 는 더 이상 사용되지 않습니다. Assignment Formula 오브젝트를 대신 사용하십시오.

관련정보

Assignment, Build Record, Formula, Get Field, Record Constant, SubRecord 및 UnBuild Record.

지정연산자 사용법

레코드의 필드 변경하기


Set File Creation Time 오브젝트

주어진 파일에 대한 생성시간을 설정합니다.

오브젝트 위치

System [image] File [image] Set File Creation Time


Set Last File Access Time 오브젝트

주어진 파일에 대하여 최근에 파일을 접근한 시간을 설정합니다.

오브젝트 위치

System [image] File [image] Set Last File Access Time


Set Mappings 오브젝트

어레이에 매핑을 할당하는 오브젝트

사용법

Set Mappings은 선형스케일 또는 로그 스케일로 실수 값의 범위로 1차원 이상의 어레이로 매핑하기 위해 사용합니다.

오픈뷰 항목

Num Dimensions - 입력 어레이에 있는 차원의 수. Num Dimensions은 정수여야 합니다. 최소값은 1이고 최대값은 10입니다. 디폴트 값은 1입니다. Num Dimensions의 값을 변경하는 것은 Mapping, From, 및 To에 대한 파라미터를 설정하기 사용할 수 있는 행수를 변경합니다. – 차원당 1개의 행.

Mapping - 각 차원에 대한 Linear 또는 Log. 디폴트 값은 Linear입니다.

From - 각 차원에 대한 매핑 범위에서 하위 한계.

To - 각 차원에 대한 매핑 범위에서 상위 한계.

From 및 To는 데이터 입력으로 추가할 수 있습니다.

주의사항

Waveform 또는 Spectrum이 입력된 경우에는, 이들의 앨리먼트는 해당 규격으로 다시 매핑됩니다. 로그 매핑은 Waveform에서는 사용할 수 없습니다.

매핑은 샘플링 간격과 동일한 포인트 수를 가집니다.

Set Mappings은 Coord 어레이가 이미 매핑이 되어 있기 때문에 입력으로 Coord 어레이는 사용할 수 없습니다.

어레이에 있는 매핑은 XY 디스플레이에서 Autoscale 및 다양한 수학 함수용으로 사용됩니다.

From 및 To 값은 반드시 달라야 합니다.

Num Dimensions 필드의 값은 입력 어레이의 차원 수와 동일해야 합니다.

오브젝트 위치

Data [image] Access Array [image] Set Mappings

관련정보

Allocate Array 메뉴항목, Collector, Get Mappings, Line Probe, Sliding Collector 및 속성창 (오브젝트)


Set Values 오브젝트

어레이 컨테이너에 있는 앨리먼트를 변경하기 위해 사용하는 Formula 오브젝트

사용법

Set Values는 임의의 타입과 사이즈를 가진 어레이의 앨리먼트를 수정하기 위해 사용합니다. 이 오브젝트는 어레이의 앨리먼트를 변경할 수 있는 표현식을 가진 Formula 오브젝트 입니다.

Set Values 오브젝트에 있는 입력터미날로 여러개의 컨테이너를 연결할 수 있습니다: 변경해야 할 어레이, 추가할 스칼라 데이터 및 스칼라 데이터를 배치하기 위해 어레이 위치를 지정하는 인덱스.

대체 하고자 하는 어레이의 새로운 값 및 앨리먼트의 인덱스를 입력합니다. 모든값이 변경되면, 이 오브젝트는 각각의 변경된 앨리먼트로 수정된 어레이를 출력합니다.

오픈뷰 항목

Expression input field - 이 입력 필드는 어레이의 앨리먼트를 직접 변경할 수 있도록 합니다. 왼쪽의 표현식은 변경하고자 하는 앨리먼트를 지정할 수 있는 Formula 수학 구문의 서브셋 입니다. A[2] 서브 어레이 구문은 변경해야 할 특정한 어레이의 앨리먼트를 지정하기 위해 사용합니다.

주의사항

모든 어레이는 0부터 시작합니다; 어레이의 인덱스는 0부터 시작합니다.

어레이를 생성하기 위해서는 Allocate Array   [image] 아래에 있는 오브젝트를 사용합니다.

어레이에 입력하는 값은 어레이와 동일한 타입이거나 동일한 타입으로 상향변환 할 수 있어야 합니다.

오브젝트 위치

Data [image] Access Array [image] Set Values

관련정보

Allocate Array 메뉴항목, Build Data, Collector, Formula , Get Values, ramp (numElem, from,thru), Set Mappings 및 Sliding Collector.

지정연산자 사용법


Set Variable 오브젝트

변수의 값을 설정하는 오브젝트

사용법

Set Variable 오브젝트는 변수(값에 의한)의 데이터 컨테이너(타입, 형태 및 값)를 설정하기 위해 사용합니다. 이 변수는 VEE 프로그램의 다른 부분에서 이름을 이용하여 사용할 수 있게 됩니다.

프로그램에 있는 하나의 컨텍스트에서 생성된 선언하지 않은 전역변수는 해당 프로그램의 다른 컨텍스트에서 데이터로 사용됩니다. 예를 들어, 프로그램의 최상위 컨텍스트에 있는 Set Variable은 선언하지 않은 전역변수를 생성할 수 있으며, 이 변수는 UserObject에서 Get Variable을 사용하여 데이터로 사용할 수 있습니다. 이것은 프로그램이 몇 개의 네스팅된 UserObjects를 가지고 있을 때 유용합니다.

Set Variable을 사용하여 설정된 변수는 다음 오브젝트의 표현식 필드에 변수이름을 입력하여 사용할 수 있습니다: Formula, If/Then/Else, Get Values, Get Field, Set Field, From DataSet 와 To FileTo File, From File, Direct I/O, From Stdin, To/From Named Pipes, 또는 Sequencer를 포함하여 트랜잭션에 표현식을 사용하는 모든 오브젝트들.

오픈뷰 항목

오픈뷰는 변수이름을 입력하기 위한 필드를 디스플레이 합니다. 변수이름은 대소문자를 구분하지 않습니다. (소문자든 대문자든 다 사용할 수 있습니다.) 그래서 globalA는 GLOBALa와 같은 변수입니다. 이름 필드는 컨트롤 입력으로 추가될 수 있습니다.

주의사항

원하지 않는 결과값을 출력하는 것을 방지하기 위하여, 프로그램에서 Get Variable 오브젝트(또는 표현식에 변수이름을 포함하고 있는 오브젝트)를 실행하기 전에 반드시 Set Variable을 이용하여 변수가 설정되어 있어야 합니다. 최선의 방법은 Set Variable 오브젝트의 시퀀스 출력핀을 Get Variable 오브젝트의 시퀀스 입력핀으로 연결하거나, 변수를 사용하는 다른 오브젝트에 연결하는 것입니다. 그러나 시퀀스 입력핀의 연결이 필요하지 않는 경우도 있습니다. 이것에 대한 자세한 사항은 VEE Advanced Techniques 매뉴얼에 있는 "Variables"을 참조하십시오.

Default Preferences에서, Delete Variables at PreRun이 on(디폴트)되어 있으면 모든 변수는 프로그램 실행 전에 삭제됩니다. Delete Variables at PreRun이 off되어 있는 경우에는 변수가 삭제되지 않게 되어, 부적절한 데이터가 전송되지 않도록 주의하여 프로그램을 작성해야 합니다.

전역변수는 UserObject 레벨에서 정의하지 않았기 때문에 틀림없는 전역변수입니다. 하나의 프로그램 컨텍스트에서 정의된 전역변수는 프로그램내의 다른 컨텍스트에서 사용할 수 있습니다. 예를 들어 최상위 프로그램 컨텍스트에서 Set Variable 오브젝트를 사용하여 전역변수를 선언하면, UserObject 또는 UserFunction에서 전역변수를 가져오기 위하여 Get Variable을 배치할 수 있습니다. 반면에, 전체 프로그램에 걸쳐서 이름의 충돌을 피하는 것이 필요합니다:

2개 이상의 Set Variable 오브젝트가 동일한 변수 값(동일한 변수이름으로)을 설정하려 하면, Set Variable이 실행할 때마다 현재의 변수 값이 덮어씌워 집니다. 이것은 이름이 중복된 것을 알지 못한 경우에는 원하지 않은 결과값이 출력될 수 있다는 것입니다.

변수이름과 동일한 이름을 가진 데이터 터미날이 있는 경우에는, 데이터 터미날이 우선순위를 가집니다.

자세한 사항은 VEE의 Help 메뉴 아래의 Contents and Index에 있는 Tell Me About... Variables을 참조하십시오.

Set Variable은 어레이나 레코드를 변수의 항목으로 설정할 수 없습니다. globAry[2] = 3을 사용하는 어레이나 globRec.field = 2를 사용하는 레코드를 처리하고자 하는 경우에는, Assignment Formula를 사용하여 이들 표현식을 입력하십시오.

Formula에 있는 Assignment와 Set Variable의 차이는 미묘합니다. Set Variable은 선언하지 않은 변수를 생성할 수 있고, 선언된 변수를 초기화할 수 있으며 모든 변수를 수정할 수 있습니다. Assignment Formula는 선언하지 않은 변수를 생성할 수 있습니다. 또한 Set Variable은 globalAry[1] = 2 같은 Assignment처럼 변수의 항목을 수정할 수 없습니다.

ActiveX 오브젝트용 변수를 설정할 때는 Assignment Formula를 사용하는 것이 좋습니다. 전역변수 g_cells이 마이크로소프트 엑셀 워크시트의 셀로 선언되고 초기화되는 경우에는, Formula에 있는 Assignment g_cells = 2는 g_cells에서 디폴트 속성의 설정이 수행됩니다. 이것은 엑셀의 해당 셀에 2를 배치하는 g_cells.item = 2와 같은 효과가 있습니다. 이 방법은 셀을 지정하는 포인터로 g_cells을 사용합니다. Set Variable을 사용하는 경우에는, 전역변수는 덮어쓰게 되어 g_cells이 정수로 변환되어 엑셀에서 셀을 지정하는 포인터로 사용할 수 없게 됩니다.

오브젝트 위치

Data [image] Variable [image] Set Variable

관련정보

Assignment, Default Preferences 대화상자, Delete Variable, Get Variable, 및 속성창 (오브젝트)

지정연산자 사용법

변수 생성하기


Shift Register 오브젝트

입력터미날의 이전 값을 출력하는 오브젝트

사용법

Shift Register는 이전에 입력된 값을 제공하기 위해 사용합니다.

주의사항

이전 값을 제공하기 위하여 Shift Register에 출력을 추가합니다.

Shift Register는 모든 출력을 nil로 설정하여 실행을 시작합니다. 매번 오브젝트는 활성화 되고, 입력에 있는 데이터를 "current" 출 터미날로 복사합니다. 현재 출력에 있는 데이터는 1 Prev 출력으로 이동됩니다. 이전 실행시 생성된 데이터는 출력터미날에서 마지막 출력터미날로 이동됩니다.

출력은 추가할 수 있으며, 사용자는 쓰레드나 프로그램에서 “n”번째의 이전 실행 데이터를 제공할 수 있습니다. 프로그램 실행시 데이터를 유지하기 위하여 속성창에서 Clear at PreRun 및 Clear at Activate를 off 합니다.

오브젝트 위치

Device [image] Shift Register

관련정보

Logging AlphaNumeric, Sliding Collector 및 속성창 (오브젝트)


Show Config 항목 (오브젝트 메뉴)

인스트루먼트 드라이버 패널, 컴포넌트 드라이버 또는 다이렉트 I/O 오브젝트의 I/O 설정을표시하는 대화상자를 디스플레이 합니다.

사용법

인스트루먼트 드라이버 패널, 컴포넌트 드라이버 또는 다이렉트 I/O 오브젝트의 오브젝트 메뉴에서, 메뉴 I/O [image] Instrument Manager에서 지정한 설정을 표시하기 위하여 Show Config를 선택합니다.

설정 파라미터를 변경하기 위해서는 I/O [image] Instrument Manager를 사용합니다. 변경된 내용은 다이렉트 I/O를 사용하는 다른 모든 계측기에 영향을 줍니다. Direct I/O에서 디바이스를 변경하기 위해서는, 새로운 디바이스를 선택하기 위하여 이름 필드를 편집합니다. Direct I/O 오브젝트에 있는 트랜잭션은 새로운 디바이스와는 호환되지 않습니다.

오브젝트 위치

인스트루먼트 드라이버 패널, 컴포넌트 드라이버 또는 다이렉트 I/O 오브젝트에서:

오브젝트 메뉴 [image] Show Config

관련정보

Instrument Manager 대화상자.


Show Data Flow 항목

프로그램에서 데이터가 흘러가는 경로를 표시 합니다.

사용법

Show Data Flow는 입력핀과 출력핀 사이에서 데이터의 흐름을 보여주기 위한 디버깅 툴로 사용합니다. 연결선을 따라 데이터 전달의 흐름을 트레이스하기 위해 작은 사각형 마커가 사용됩니다. nil 데이터 일지라도 이 방법에서는 표시됩니다.

Show Data Flow가 설정되면, 메뉴 선택항목은 왼쪽에 체크마크가 표시됩니다.

주의사항

Show Data Flow는 종종 Show Execution Flow와 함께 사용합니다. 이들 디버깅 툴은 프로그램의 실행을 느리게 합니다.

File [image] Default Preferences에서 마커의 이동속도를 변경할 수 있습니다. Default Preferences 대화상자에서, Debug 그룹에 Data Flow Rate를 설정합니다.

오브젝트 위치

Debug [image] Show Data Flow

관련정보

Line Probe, Default Preferences 대화상자, Profiler, Show Execution Flow 항목, Step Into 메뉴항목, Step Over 메뉴항목, Step Out 메뉴항목 및 Toggle Breakpoint 메뉴항목.

데이터 흐름과 프로그램 실행흐름 보기


Show Execution Flow 항목

현재 실행중인 오브젝트를 하이라이트 합니다.

사용법

Show Execution Flow는 현재 실행중인 오브젝트를 보여주기 위한 디버깅 툴로 사용합니다. 오브젝트 주위에 하이라이트된 색상 테두리(디폴트 색상은 연한 녹색입니다.)가 나타나고, 실행이 완료될 때까지 유지됩니다. Direct I/O, Sequencer, To File, From File, 등과 같은 트랜잭션 리스트를 가지는 오브젝트에서도 현재 실행되는 트랜잭션은 하이라이트 됩니다.

Show Execution Flow가 on되면, 메뉴 선택항목은 왼쪽에 체크마크가 표시됩니다.

주의사항

Show Execution Flow는 종종 Show Data Flow와 함께 사용합니다. 이들 디버깅 툴은 프로그램의 실행을 느리게 합니다.

Show Execution Flow는 이미 실행된 오브젝트에 대해서도 하이라이트 시킵니다. 어떤 오브젝트가 일시 정지된 후에 실행되었고, 현재 열린 윈도우에서 어떤 오브젝트에 에러가 발생했는지를 보기 위해서는, Show Execution Flow를 클릭하십시오.

오브젝트 위치

Debug [image] Show Execution Flow

관련정보

Line Probe, Profiler, Show Data Flow 항목, Step Into 메뉴항목, Step Over 메뉴항목, Step Out 메뉴항목 및 Toggle Breakpoint.

데이터 흐름과 프로그램 실행흐름 보기


Size 항목 (오브젝트 메뉴)

하나의 오브젝트 또는 복수의 오브젝트의 크기를 변경합니다.

사용법

Size는 아이콘, 오픈뷰 또는 윈도우의 크기를 변경하기 위해 사용합니다. Size를 선택한 다음에는, 포인터가 화살표 모양으로 변경됩니다. 오브젝트의 크기를 변경하기 위하여 화살표를 클릭하고 드래그합니다; 외곽 사각형은 오브젝트의 크기를 나타냅니다. 크기를 조정하는 다른 방법은 조정하고자 하는 오브젝트의 우측 하단 코너에 화살표 포인터를 위치하고 클릭합니다. 패널과 디테일뷰에서, CTRL 키와 마우스 왼쪽 버튼을 사용하여 여러개의 오브젝트를 선택할 수 있습니다. 선택한 다음에는, 오브젝트중에서 하나의 모서리에 커서를 놓으면 양방향 화살표가 나타납니다. 커서를 드래그하여 오브젝트의 크기를 조정합니다.

주의사항

디테일뷰에서, Size를 이용하여 크기를 변경할 경우에 다른 오브젝트와의 연결선은 유지됩니다. Automatic Line Drawing이 설정된 경우에는, 연결선을 다시 그리는데 약간의 시간이 필요합니다.

단축키

마우스를 오브젝트의 우측 하단 코너에 위치합니다. 커서의 모양이 화살표로 변경되면, 마우스 왼쪽 버튼을 클릭하고 변경하고자 하는 크기로 드래그합니다

작업영역에 오브젝트를 배치하기 전에 오브젝트의 크기를 조정할 수 있습니다. 외곽 사각형을 원하는 위치에 놓고 마우스 왼쪽 버튼을 누른 상태에서 오브젝트의 우측 하단 코너를 원하는 위치로 화살표를 드래그합니다. 마우스 버튼을 놓으면 필요한 크기와 위치에 오브젝트가 배치됩니다.

오브젝트 위치

On the object menu [image] Size

관련정보

오브젝트 메뉴.


Sliding Collector 오브젝트

Array 1D를 출력하는 오브젝트

사용법

Sliding Collector는 스칼라형태의 입력 데이터에서 Array 1D를 생성하기 위해 사용합니다.

오브젝트 메뉴

Clear - Sliding Collector의 내용을 초기화합니다.

오픈뷰 항목

Array Size - 출력 어레이의 앨리먼트 수. Array Size는 데이터 입력으로 추가될 수 있습니다. 디폴트 값은 10입니다.

Trigger Every - 어레이가 출력되기 전에 입력핀이 활성화되어야 하는 횟수. 디폴트 값은 10입니다.

2개의 파라미터는 오픈뷰 또는 데이터 입력핀으로 설정할 수 있습니다. 파라미터는 반드시 정수여야 합니다.

Enum 입력은 데이터가 어레이에 배치되기 전에 Text 타입으로 변환됩니다.

주의사항

Sliding Collector는 어레이 인덱스를 따라 자동으로 나열되어 Array 1D를 생성합니다. Array Size 및 Trigger Every는 동일한 사이즈입니다.

출력 어레이는 Array Size 길이를 가진 Array 1D입니다. 출력 어레이의 타입은 Clear 이후에 첫번째로 입력되는 데이터에 의해 결정됩니다.

Trigger Every가 Array Size보다 작은 경우에는, Sliding Collector는 즉시 출력값을 생성합니다. 예를 들어, Array Size가 4이고 Trigger Every가 2인 경우에는, Sliding Collector는 2개의 데이터가 입력되고 4개의 앨리먼트를 가진 어레이를 출력합니다. 출력값중에 첫번째 2개의 앨리먼트는 입력 데이터 앨리먼트이고, 마지막 2개의 앨리먼트는 0입니다.

Trigger Every가 Array Size보다 큰 경우에는, 일부 입력 앨리먼트는 무시됩니다. 예를 들어, Array Size가 2이고 Trigger Every가 4인 경우에는, 출력값은 마지막 2개의 데이터를 가진 2개의 앨리먼트로 구성된 어레이입니다. 첫번째로 입력된 2개의 데이터는 무시됩니다.

오브젝트 위치

Data [image] Sliding Collector

관련정보

Allocate Array 메뉴항목, Collector, Concatenator, Get Values, Set Values, 속성창 (오브젝트) 및 오브젝트 메뉴

To Collect Data into an Array


오브젝트 타입 지정

ActiveX 오토메이션 오브젝트, 컨트롤 또는 .NET 오브젝트용 변수를 선언할 때 선택항목을 지정하는 오브젝트

사용법

Specify Object Type 대화상자는, ActiveX 오브젝트용 변수를 선언할 때는 Library, Class 및 컨트롤 이벤트를 설정하고, .NET 오브젝트용 변수를 선언할 때는 Assembly, Namespace 및 Type을 설정합니다. ActiveX 또는 .NET 오브젝트용 변수를 선언하기 전에 이들을 VEE에서 사용할 수 있도록 등록해야 합니다. ActiveX 오브젝트의 경우에는 Device [image] ActiveX Automation References 또는 ActiveX Control References…을 실행하여, .NET 오브젝트의 경우에는 Device [image] .NET Assembly References를 실행하여 이들을 등록합니다.

ActiveX 오브젝트용 변수는 반드시 선언하지 않아도 됩니다. 다른 모든 변수도 마찬가지 입니다. 그러나, ActiveX 오브젝트용 변수를 선언하여 오브젝트 타입 상세내용을 지정하면, VEE는 자동적으로 타입을 체크하여 지정된 Library 와 Class 가 선언된 변수에만 지정되도록 합니다.

오토메이션 오브젝트 변수를 선언하여도 오브젝트가 실제로 생성되지는 않습니다. 프로그램에서 사용할 오토메이션 오브젝트를 생성하기 위해서는, Formula 표현식에서 CreateObject를 실행해야 합니다. 다음 표현식은 오토메이션 오브젝트를 생성하는 예제입니다:

Set Excel = CreateObject("Excel.Application")

마찬가지로, .NET 오브젝트 변수를 선언하여도 오브젝트가 실제로 생성되지는 않습니다. .NET 오브젝트를 생성하기 위해서는 Formula 표현식에서 CreateInstance 를 실행해야 합니다. 다음 표현식은 .NET 오브젝트를 생성하는 예제입니다.

Set hashtable = CreateInstance("mscorlib", "System.Collections.Hashtable");

대화상자 설명

ActiveX 오브젝트

Library: - 이 항목의 드롭다운을 클릭하면 사용할 수 있는 ActiveX 라이브러리가 표시됩니다. 여기서 표시되는 항목은 Device [image] ActiveX Automation References... 와 ActiveX Control References...에서 선택한 내용입니다

Class: - 이 항목의 드롭다운을 클릭하면 사용할 수 있는 클래스가 표시됩니다. 이것들은 선택한 라이브러리에 포함되어 있는 클래스입니다.

Enable Events - 선택한 클래스가 이벤트를 가지면 이 항목이 활성화됩니다. ActiveX 오브젝트가 발생시키는 이벤트를 사용하기 위해서는, 이 항목의 체크박스를 체크하고, 이벤트 핸들러 UserFunction을 생성해야 합니다. (오브젝트 메뉴 [image] Create Event Handler).

OK - 오브젝트 타입을 지정하였으면, OK 버튼을 클릭하여 Declare Variable 오브젝트가 효력을 발생할 수 있도록 합니다.

.NET 오브젝트

Assembly: - 이 항목의 드롭다운을 클릭하면 사용할 수 있는 .NET 어셈블리가 표시됩니다. 여기서 표시되는 항목은 Device [image] .NET Assembly References...에서 선택한 내용입니다.

Namespace: - 이 항목의 드롭다운을 클릭하면 사용할 수 있는 네임스페이스가 표시됩니다. 이것들은 선택한 어셈블리에 포함되어 있는 네임스페이스입니다.

Type: - 이 항목을 드롭다운을 클릭하면 사용할 수 있는 타입의 목록이 표시됩니다. 이것들은 선택한 네임스페이스에 포함되어 있는 네임스페이스입니다.

주의사항

ActiveX 오브젝트 변수를 선언하면서 이벤트를 인에이블하면, Declare Variable 오브젝트는 Events: Enabled을 표시합니다. 이벤트핸들러 UserFunction을 생성해야 합니다. Declare Variable의 오브젝트 메뉴에서 Create Event Handler... 를 실행하면 쉽게 이벤트핸들러를 생성할 수 있습니다.

이벤트가 .NET 오브젝트를 생성했던 동일한 쓰레드에서 오는 경우에는 VEE는 .NET 오브젝트 이벤트를 처리합니다. .NET 오브젝트 변수를 선언한 경우에는 .NET 오브젝트 이벤트를 인에이블할 수 있습니다.

오브젝트 위치

Data [image] Variable [image] Declare Variable
(Type을 Object로 , Sub-Type 지정 후 Edit... 버튼을 클릭)

관련정보

ActiveX Automation References 대화상자, ActiveX Control References 대화상자, Declare Variable.

VEE에서 ActiveX 오브젝트와 컨트롤을 사용하는 방법에 대한 자세한 정보는 메뉴 Help => Contents and Index => Tell Me About...=> Active X를 참조하십시오. .NET을 사용하는 방법에 대한 자세한 내용은 메뉴 Help => Contents and Index => Tell Me About...=> .NET Framework을  참조하십시오.


Spectrum (Freq) 메뉴항목

주파수 영역의 디스플레이를 제공하는 메뉴 항목

사용법

Spectrum (Freq)는 다음의 주파수 영역 디스플레이를 제공하기 위해 사용합니다:

Magnitude Spectrum

Phase Spectrum

Magnitude vs Phase (Polar)

Magnitude vs Phase (Smith)

주의사항

입력은 Waveform, Spectrum, 또는 Coords 어레이여야 합니다.

Waveform이 Spectrum 디스플레이로 입력된 경우에는, fft(Fast Fourier Transform) 방법에 따라 자동으로 Spectrum으로 변환됩니다.

오브젝트 위치

Display [image] Spectrum (Freq)

관련정보

Magnitude Spectrum, Magnitude vs Phase, Phase Spectrum 및 Waveform (Time).


Split 오브젝트

스트링을 두 조각으로 분리합니다. 예를 들어, ordinary라는 단어를 문자 i에서 분할합니다. 두 개의 서브스트링이 출력됩니다: ord와 nary. 문자 i는 없어집니다.

오브젝트 위치

System [image] String [image] Split


Stack - Clear 오브젝트

스택(stack)에 있는 모든 항목 지우기

오브젝트 위치

System [image] Collections [image] Stack [image] Clear


Stack - Count 오브젝트

스택에 있는 항목을 카운트합니다.

오브젝트 위치

System [image] Collections [image] Stack [image] Count


Stack - Create 오브젝트

메모리 스택을 생성합니다.

오브젝트 위치

System [image] Collections [image] Stack [image] Create


Stack - Enumerate 오브젝트

Stack – Enumerate 오브젝트

스택에 있는 항목의 리스트를 생성합니다.

오브젝트 위치

System [image] Collections [image] Stack [image] Enumerate Items


Stack - Peek an Item 오브젝트

스택에 있는 항목을 피크

오브젝트 위치

System [image] Collections [image] Stack [image] Peek Item


Stack - Pop an Item 오브젝트

스택에 있는 항목을 내보냅니다.

오브젝트 위치

System [image] Collections [image] Stack [image] Pop Item


Stack - Push Item 오브젝트

항목을 스택으로 밀어 넣습니다.

오브젝트 위치

System [image] Collections [image] Stack [image] Push Item


Start 오브젝트

버튼을 누르면 쓰레드의 실행을 시작하는 오브젝트

사용법

Start 오브젝트는, 이 버튼이 눌러지면, 오브젝트에 연결된 쓰레드의 실행을 시작하지만, 다른 쓰레드에는 영향을 주지 않습니다. (Run 버튼을 누르면 프로그램에 있는 모든 쓰레드의 실행을 시작하며, 쓰레드가 Start 오브젝트를 가지고 있는 것과는 상관없습니다.)

주의사항

프로그램이 하나 이상의 독립적인 쓰레드를 가지고 있는 경우에는, 다른 쓰레드를 실행하지 않고 하나의 쓰레드를 시작하기 위해 Start를 사용할 수 있습니다.

Run 또는 Start를 누를 때, 데이터 전달은 Start 오브젝트에서 시작합니다. 쓰레드에 하나 이상의 Start 오브젝트가 있을 경우에는, 데이터 전달은 각 Start오브젝트에서 시작하고 데이터 전달 규칙에 따라 병렬로 진행됩니다.

UserObject내에 있는 Start를 누른 경우에는, UserObject는 실행하지만 오브젝트의 데이터 출력핀은 활성화되지 않습니다; 따라서 데이터 전달이 계속되지는 않습니다.

오브젝트 위치

Flow [image] Start

관련정보

Raise Error, Exit Thread, Exit UserObject, Stop 메뉴항목 및 속성창 (오브젝트)

VEE 프로그램 시작하기


Starts With 오브젝트

스트링을 서브 스트링과 함께 시작한 경우에는, 부울 참값이 출력됩니다.

오브젝트 위치

System   [image] String [image] Starts With


Status Bar 메뉴항목

VEE 상태바에 대한 보이기 기능을 컨트롤하는 View 메뉴에 있는 토글 함수

사용법

Status Bar는 VEE 상태바를 on하고 off하기 위해 사용합니다. 보이기 기능이 on되면 체크 마크가 Status Bar 메뉴항목의 왼쪽에 나타납니다.

Status Bar는 VEE 작업공간의 하단에 있는 메시지 박스입니다. Status Bar는 다음과 같은 다양한 정보를 디스플레이 합니다:

파일 로딩 상태 및 로딩되는 파일 이름 표시.

VEE 풀다운 메뉴에 있는 각 항목에 대한 기능 설명.

VEE 툴바에 있는 각 버튼에 대한 기능 설명.

VEE 작업공간에서 오브젝트를 배치할 때의 x, y 좌표 같은 임시정보를 표시합니다. 오브젝트의 사이즈를 조정하기 위한 오브젝트의 넓이 및 높이에 대한 정보도 제공합니다.

VEE 프로그램의 실행모드 표시.

VEE 프로파일러의 상태를 표시.

VEE 프로그램의 수정 여부를 표시.

"File Saved" 또는 "3 objects selected", 등과 같은 다양한 상태를 제공합니다.

오브젝트 위치

View [image] Status Bar

관련정보

Toolbar 메뉴항목


Step Into 메뉴항목

프로그램을 한번에 하나의 오브젝트씩 실행합니다.

사용법

Step Into는 프로그램을 디버깅하기 위해 사용합니다. Step Into는 매번 하나의 오브젝트를 실행합니다. 다음에 실행할 오브젝트는 노랑색 테두리(디폴트)로 표시됩니다.

UserObject, 로컬 또는 임포팅된 UserFunction을 만나면, VEE는 오브젝트를 디테일뷰로 전환하고 디테일뷰에 있는 각각의 오브젝트를 하나씩 실행합니다.

주의사항

Step Into는 리모트, 기본제공된 또는 컴파일된 함수는 열지 않습니다. Step Into는 Formula 오브젝트 및 Call 오브젝트에서 호출한 UserFunctions은 열지만, 트랜잭션 오브젝트에서 호출한 것은 열지 않습니다.

Step Into는 UserFunction 또는 UserObject이 시분할 되었을 때 UserFunction 또는 UserObject에서만 동작합니다. UserFunction은 Call, Formula, If/Then/Else, 또는 Sequencer오브젝트(Function 필드에서 만)에서 호출되었을 때만 시분할 됩니다. To File, To String, 이와 유사한 오브젝트 또는 컨트롤 핀을 통해서 입력되는 경우에 호출 되었을 때는 UserFunction은 시분할 되지 않습니다.

VEE 4 이상의 실행모드에서는, UserObject는 독립된 쓰레드에서 사용되었을 때만 시분할 됩니다.

Step Into는 보안 처리된 프로그램에서는 사용할 수 없습니다.

PreRun은 첫번째로 Step Into를 선택 했을 때 발생합니다.

단축키

F11키는 Debug   [image] Step Into로 설정되어 있습니다.

오브젝트 위치

Debug [image] Step Into

관련정보

Call Stack, Step Over 메뉴항목, Step Out 메뉴항목, Default Preferences 대화상자, Pause, 메뉴항목, Run/Resume 메뉴항목, Run, 메뉴항목, Show Data Flow 항목, Show Execution Flow 항목, Start, Stop 메뉴항목 및 Toggle Breakpoint 메뉴항목.

프로그램을 단계별로 실행하기


Step Out 메뉴항목

현재의 UserObject 또는 UserFunction의 실행을 완료하고 다음 오브젝트에서 일시 정지됩니다.

사용법

Step Out은 프로그램을 디버깅하기 위해 사용합니다. Step Out은 매번 하나의 오브젝트를 실행합니다. 다음에 실행할 오브젝트는 노랑색 테두리(디폴트)로 표시됩니다.

UserObject 또는 UserFunction에서 실행된 경우에는, VEE는 UserObject 또는 UserFunction에 있는 모든 오브젝트의 실행을 완료하고 UserObject 또는 UserFunction에서 빠져 나옵니다.

주의사항

Step Out은 보안 처리된 프로그램에서는 사용할 수 없습니다.

PreRun은 첫번째로 Step Out을 선택 했을 때 발생합니다.

단축키

Shift-F11키는 Debug [image] Step Out로 설정되어 있습니다.

오브젝트 위치

Debug [image] Step Out

관련정보

Call Stack, Step Into 메뉴항목, Step Over 메뉴항목, Default Preferences 대화상자, Pause 메뉴항목, Run/Resume 메뉴항목, Run 메뉴항목, Show Data Flow 항목, Show Execution Flow 항목, Start, Stop, 메뉴항목 및 Toggle Breakpoint.

프로그램을 단계별로 실행하기


Step Over 메뉴항목

프로그램을 UserObjects 또는 UserFunctions을 열지 않고 한번에 하나의 오브젝트씩 실행합니다.

사용법

Step Over는 프로그램을 디버깅하기 위해 사용합니다. Step Over는 매번 하나의 오브젝트를 실행합니다. 다음에 실행할 오브젝트는 노랑색 테두리(디폴트)로 표시됩니다.

UserObject 또는 UserFunction을 만나면, VEE는 내부에 있는 모든 오브젝트를 한번에 실행합니다.

주의사항

Step Over는 보안 처리된 프로그램에서는 사용할 수 없습니다.

PreRun은 첫번째로 Step Over를 선택 했을 때 발생합니다.

단축키

F10키는 Debug [image] Step Over로 설정되어 있습니다.

오브젝트 위치

Debug [image] Step Over

관련정보

Call Stack, Step Into 메뉴항목, Step Out 메뉴항목, Default Preferences 대화상자, Pause 메뉴항목, Run/Resume 메뉴항목, Run 메뉴항목, Show Data Flow 항목, Show Execution Flow 항목, Start, Stop 메뉴항목 및 Toggle Breakpoint.

프로그램을 단계별로 실행하기


Stop 메뉴항목

프로그램에 있는 모든 쓰레드를 중지합니다.

사용법

Stop은 프로그램의 실행을 중지하기 위해 사용합니다. Stop을 선택한 다음에, 계속 실행하기 위해서는 Resume을 누릅니다.

주의사항

Stop이 선택되면, 프로그램은 하이라이트된 모든 것을 초기화하고, 열린 파일과 I/O 채널을 모두 닫은 “정지된” 상태로 됩니다.

오브젝트 위치

Debug [image] Stop

관련정보

Default Preferences 대화상자, Pause 메뉴항목, Run/Resume, 메뉴항목, Run 메뉴항목, Step Into 메뉴항목, Step Over 메뉴항목, Step Out 메뉴항목, 속성창 (오브젝트), Stop 메뉴항목 및 Toggle Breakpoint 메뉴항목.

To Step through a Program

To Stop a VEE Program


Stop 오브젝트

프로그램의 실행을 중지하는 오브젝트

사용법

Stop은 프로그램에 있는 모든 쓰레드의 실행을 정지하고 에러 코드를 출력하기 위해 사용합니다. Stop은 일반적으로 어떤 조건을 테스트한 후에 사용합니다.

오픈뷰 항목

Exit Code – 프로그램의 상태를 표시하는 숫자. Exit Code는 입력창에 입력하거나 데이터 입력핀으로 추가할 수 있습니다. Exit Code는 운영체제로 출력하는 8-bit 정수입니다; 출력이 255보다 큰 경우에는, 이것은 modulo 256 (256은 0을 출력합니다)를 출력합니다.

VEE를 –r 옵션을 사용하여 실행한 경우에는, Stop은 VEE를 빠져 나옵니다.

오브젝트 위치

Flow [image] Stop

관련정보

Exit Thread, Exit UserObject, Raise Error, Start 및 Stop 메뉴항목.

VEE 프로그램 중지하기


String - Add 오브젝트

String – Add 오브젝트

스트링 콜렉션에 스트링을 추가합니다.

오브젝트 위치

System [image] Collections [image] StringCollection [image] Add String


String Collection - Clear 오브젝트

콜렉션(collection)에 있는 모든 스트링 항목 지우기

오브젝트 위치

System [image] Collections [image] StringCollection [image] Clear StringCollection


String Collection - Create 오브젝트

스트링 항목들의 콜렉션을 생성합니다.

오브젝트 위치

System [image] Collections [image] StringCollection [image] Create


String - Contains String? 오브젝트

주어진 스트링 콜렉션이 입력되는 스트링값을 가지고 있는지를 검색합니다.

오브젝트 위치

System [image] Collections [image] StringCollection [image] Contains String?


String - Count 오브젝트

스트링 콜렉션에 있는 스트링의 수를 카운트합니다.

오브젝트 위치

System [image] Collections [image] StringCollection [image] Count


String - Get 오브젝트

콜렉션에서 제공된 인덱스의 스트링 데이터를 가져옵니다.

오브젝트 위치

System [image] Collections [image] StringCollection [image] Get String


String - Get All 오브젝트

주어진 콜렉션에서 모든 스트링을 가져옵니다.

오브젝트 위치

System [image] Collections [image] StringCollection [image] Get All Strings


String - Remove 오브젝트

스트링 콜렉션에서 스트링을 제거합니다.

오브젝트 위치

System [image] Collections [image] StringCollection [image] Remove String


String - Set 오브젝트

주어진 집합에 대하여 주어진 인덱스에 스트링 값을 설정합니다.

오브젝트 위치

System [image] Collections [image] StringCollection [image] Set String


스트링 비교

2개의 스트링 값을 비교하며, 대소문자를 구분할 수 있습니다.

오브젝트 위치

System [image] String [image] Compare


Strip Chart 오브젝트

연속으로 생성되는 데이터를 그래프로 표시하는 오브젝트

사용법

연속으로 생성되는 데이터를 최근 내용을 표시하기 위해서 Strip Chart 오브젝트를 사용합니다. X는 지정된 간격으로 증가하며, 각각의 x 값에 대응하여 y 값이 제공됩니다. 새로운 데이터가 그래프의 가장 우측에 도달하면, 가장 최근의 데이터를 표시하기 위해서 그래프가 자동으로 스크롤됩니다.

Strip Chart는 Strip Chart가 Clear 될 때까지, 버퍼가 허용하는 만큼 자신에게 제공된 모든 데이터를 저장합니다.

다른 그래프 표시 오브젝트와는 다르게, 이전 내용을 지우지 않고, 어레이 데이터가 Strip Chart 트레이스에 첨부됩니다.

오픈뷰 항목

아래 항목은 기본 오픈뷰 항목입니다. 이들 항목의 사용법과 다른 항목은 오브젝트 메뉴 및 Properties 대화상자(오브젝트 메뉴 [image] Properties)에서의 선택에 따라서 달라집니다.

Y name - Y 축의 이름.

Trace1 - 첫 번째 트레이스의 이름.

Step Size: - X 축 데이터간의 거리.

X name - X 축의 이름.

오브젝트 메뉴

Auto Scale [image] - 이것을 클릭하면 그래프가 자동 스케일되어 전체 트레이스를 볼 수 있습니다.(컨트롤 핀을 추가하거나, Scales 속성을 설정하면 데이터가 입력된 후 그래프를 자동으로 스케일할 수 있습니다.)

Auto Scale - 양 축을 자동으로 스케일합니다.

Auto Scale X - X 축을 자동으로 스케일합니다.

Auto Scale Y - Y 축을 자동으로 스케일합니다.

Zoom [image] - 그래프를 확대 또는 축소합니다.

In - 드래그하여 선택한 직사각형 안의 그래프가 전체 화면에 표시되도록 그래프를 확대합니다. 이 항목을 선택한 후, 그래프 영역에서 확대할 부분을 드래그합니다.

Out 2|5|10|20|50|100X - 선택한 숫자만큼 중심에서 X 및 Y 방향으로 그래프의 스케일을 확대합니다.

Clear Control [image] - 그래프의 내용에서 지우게 될 항목을 지정합니다.

Display - 표시된 트레이스를 지웁니다. 이 항목을 오브젝트의 컨트롤 입력으로 추가할 수 있습니다.

Next Curve - 이전 트레이스를 지우지 않고 그래프를 리셋합니다. 다음 입력되는 데이터를 그래프의 처음부터 이전 데이터와 중첩하여 그립니다. 새로운 그래프가 입력되지 전에 활성화되어야 합니다. 이 항목은 컨트롤 입력으로 추가될 수 있습니다.

Center Markers - 마커를 사용하는 경우, 마커를 트레이스의 중앙으로 이동시킵니다. 그래프를 스크롤하여 마커가 보이지 않을 때 이 기능을 이용하면 편리합니다.

Add Right Scale - 서로 다른 스케일범위를 가지는 Y 축 스케일을 최대 2 개까지 추가할 수 있습니다. 스케일을 추가 후 이 스케일을 제어하는 입력터미날을 추가할 수 있습니다.(오브젝트 메뉴 [image] Add Terminal [image] Data Input)Properties 대화상자의 Traces 및 Scales 속성을 설정하여 사용합니다.

Print - Print 대화상자를 띠웁니다. Print 대화상자에서 OK 버튼을 클릭하면 선택한 프린터로 그래프의 전체화면을 프린트 합니다. Print 항목은 컨트롤 입력으로 추가될 수 있습니다.

속성창

Declared Name - 그래프 오브젝트에 변수이름을 지정합니다. 이름을 입력하면, 사용중인 마커의 값을 읽는 것처럼 프로그램 실행 중에 이 오브젝트의 일부 속성을 가져오고/설정할 수 있습니다. 이 변수는 Object 타입이며, 디스플레이가 있는 영역의 local to the context로 지정됩니다. 상세한 내용은 주의사항을 참조하십시오.

ClearAtPreRun - 이 속성이 참으로 설정되면, 그래프가 PreRun시 초기화됩니다. 디폴트 값은 참(True) 입니다.

 ClearAtActivate - 이 속성이 참으로 설정되면, 그래프가 활성화될 때 초기화됩니다. 디폴트 값은 참(True) 입니다.

MatrixInput - 이 속성이 참으로 설정되면, Polar Plot 은 입력데이터로 2D 어레이(행, 최대 12행까지)를 입력할 수 있으며, 동시에 복수의 트레이스를 디스플레이 합니다. Polar Plot 오브젝트는 MatrixInput 속성이 참으로 설정된 경우에는 행렬-입력 그래프를 호출합니다.

이 MatrixInput 속성은 Next Curve 컨트롤핀이 없고 Polar Plot이 단 하나의 입력핀을 가진 경우에만 참으로 설정될 수 있습니다. 유사하게, 입력핀은 행렬-입력 그래프에 추가될 수 있습니다.

MatrixInput 속성은 패널부에서는 사용할 수 없으며, 프로그램상으로 실행중에는 토글되지 않습니다.

ShowTracesLegend - 오픈뷰에서, 트레이스의 이름 및 색깔의 표시여부를 제어합니다. 트레이스 레전드의 편집버튼은 EnableEditTracesAndScales 를 이용하여 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScalesLegend - 오픈뷰에서, 스케일 이름의 표시여부를 제어합니다. 스케일 레전드의 편집버튼은 EnableEditTracesAndScales 를 이용하여 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScaleLabels - 오픈뷰에서, 스케일 축 라벨의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 Show Scroll Bars - 오픈뷰에서, X 및 Y 축의 스케일바의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowAutoScaleButton - 오픈뷰에서, Auto Scale 버튼의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 EnableEditTracesAndScales - 오픈뷰에서, 트레이스 및 스케일 속성의 편집버튼의 기능을 제어합니다. 이 기능이 활성화되어 있을 때, 각각의 트레이스 또는 스케일의 속성을 편집하기 위해서 이들을 클릭합니다. 디폴트 값은 참(True) 입니다. 트레이스 및 스케일의 이름의 표시여부를 제어하기 위해서 Show Traces Legend 및 Show Scales Legend 를 사용합니다.

GridType: - None - 그리드 라인을 숨깁니다.

Markers Group: - 그래프에 표시된 데이터의 정확한 값을 읽을 수 있습니다. 데이터가 로그 스케일로 그래프에 표시되어 있어도, 마커에 표시되는 값은 선형 데이터포인트 입니다.

마커를 다른 트레이스로 이동하기 위해서는, 그래프 하단의 마커값 표시 왼쪽의 버튼을 클릭합니다. 이 버튼을 클릭하면 현재 그래프에 표시된 트레이스를 순환하여 선택합니다.

NumMarkers - 그래프에 표시하는 마커의 개수. 디폴트 값은 none 입니다.

MarkerInterpolate - 이 속성을 참으로 설정하면, 그래프로 표시되는 데이터 포인트 사이에 마커를 배치할 수 있습니다. 마커 값은 선형 인터폴레이션으로 연산되어 표시됩니다. 디폴트 값은 거짓(False)입니다.

BufferSize - 메모리에 저장할 포인트의 개수를 지정합니다. 디폴트 값은 10000 입니다.

Display BackColor: - 팔레트에서 그래프 영역의 색깔을 선택할 수 있습니다. 패널뷰와 디테일뷰에서 서로 다른 색깔을 선택할 수 있습니다. 디폴트 배경색은 Default Preferences 대화상자 Colors 탭의 Screen Element: Graph Background에 설정되어 있습니다.

Scale Label 그룹:

Text: - 현재 사용중인 컴퓨터의 폰트목록에서 스케일 라벨에 적용할 폰트를 선택합니다. 스케일 라벨 텍스트의 디폴트 폰트는 Preferences 대화상자 Fonts 탭의 Screen Element: Graph Scale Label Text에 설정되어 있습니다.

Traces 그룹: (트레이스 마다 1 개씩).

Name: - 그래프 영역의 왼쪽에 표시되는 트레이스의 이름. 이 이름은 입력터미날의 이름과 동일합니다.

Scale: - Y 스케일을 여러 개 사용하는 경우, 이 트레이스에 적용하는 Y 스케일을 지정합니다.

Color: - 트레이스의 색깔. 추가되는 트레이스는 기존 트레이스와는 다른 색깔로 표시됩니다. 첫 번째 트레이스의 디폴트 색깔은 노란색입니다.

LineStyle - 데이터 포인트를 연결하는 라인의 포맷. 디폴트는 continuous line(연속선) 입니다.

PointStyle - 각 데이터포인트를 표시하는 기호. 데이터 포인트를 연결하지 않은 상태로 표시할 때는 LineStyle 을 점(.)으로 설정하고, 사용할 PointStyle 기호를 선택합니다. 디폴트 값은 점(dot)입니다.

Scale - 2 개 이상의 Y 스케일이 있으면, 특정 트레이스가 어떤 스케일에 의해서 스케일되는지 선택합니다.

Scales 속성: (X 스케일 및 추가 Y 축 스케일을 포함함 Y 스케일 마다 1 개씩)

Show Scale: - 여러 개의 Y 스케일이 있으면, 체크박스로 선택한 스케일이 그래프 영역의 우측에 표시됩니다.

Scale Name: - 오픈뷰에서 스케일에 표시되는 이름

Automatic Scaling: - 데이터가 입력될 때 전체 그래프를 표시하기 위해서 그래프 자동 재 스케일 여부를 제어합니다. 디폴트 값은 On 입니다. 이 속성이 Off 이면, Layout 그룹 General 탭의 Auto Scale 을 클릭하거나, 오브젝트 메뉴의 Auto Scale 을 실행하여 그래프를 다시 스케일 할 수 있습니다.

Maximum: - 스케일의 최대값.

Minimum: - 스케일의 최소값.

Label Spacing: - 어떤 틱마크에 스케일된 값을 표시해야 하는지 제어합니다. X 스케일은 Every Other Tic로, Y 스케일은 Every Major Tic로 디폴트 설정되어 있습니다.

Mapping: - X 데이터 및 Y 데이터가 그래프에 매핑되는 방식. 선형 또는 로그로 매핑될 수 있습니다. 로그-로그 방식으로 표시하기 위해서는 X 축 및 Y 축을 모두 Log 로 설정합니다. 디폴트 설정은 Linear 입니다.

Log Cycles: - Automatic Scaling 이 On 상태에서 최대 x 값 및 최대 y 값으로부터 표시할 10 단위 스케일의 최대 개수. Log Cycles 은 Mapping 이 Log일 때만 사용됩니다. 트레이스 데이터의 변동 폭이 클 때 Log Cycles을 사용하면 편리합니다. 디폴트 값은 4 입니다.

Scale Color - 배경 그리드 및 틱마크의 색깔. 디폴트는 Gray 입니다.

Step Size - X 축상의 데이터 간의 간격. X 축에서만 사용합니다. 디폴트 값은 1 입니다.

ScaleNumberFormat 속성: (X 스케일 및 추가 Y 축 스케일을 포함함 Y 스케일 마다 1 개씩 표시됩니다.)

Global Format - 디폴트 포맷을 사용합니다. 디폴트는 On 입니다.

Real: - Global Format 이 Off 이면, 오브젝트에 표시될 실수의 숫자포맷을 지정합니다. Fixed (예, 98.6000), Scientific (예, 9.8600E+01), Engineering (예, 98.6000E0), Standard (예, 98.6) 및 Time Stamp (예, Wed 01/Jan/2003 17:01:38)를 선택할 수 있습니다. 디폴트는 Standard 입니다.

X 및 Y 마커 값은 스케일에서 사용하는 숫자포맷과 동일한 포맷을 사용합니다. X 및 Y 에 Time Stamp 을 지정하지 않았으면, 이들의 델타마커 값은 디폴트 숫자 포맷을 사용합니다. X 및 Y 의 마커1과 마커2가 Time Stamp 을 사용한 경우에는, 델타마커 값에 Delta Time 포맷이 사용됩니다.

주의사항

MatrixInput 속성이 거짓인 경우에는, 입력은 Real64로 변환될 수 있는 스칼라 또는 Array 1D 를 사용할 수 있습니다. Complex, PComplex 또는 Spectrum 데이터를 Strip Chart의 입력으로 사용하기 위해서는 이들을 "unbuild" 해야 합니다.

MatrixInput 속성이 참인 경우에는, Strip Charts는 입력데이터로 2D 어레이(행, 최대 12행 까지)를 입력할 수 있으며, 동시에 복수의 트레이스를 디스플레이 합니다.

Strip Chart 의 표시영역의 내용을 최신 내용으로 빠르게 업데이트하기 위해서는 일부 속성을 초기화시킬 필요가 있습니다. Grid Type 을 None 으로 설정합니다. 그래프 배치 영역에서는 꼭 필요한 내용이외의 다른 항목은 Off 시키는 것이 좋습니다. Buffer Size는 가능한 작게 하십시오. X 스케일을 최대값으로 설정하여 그래프가 가능한 적게 스크롤되도록 하십시오.

오브젝트 메뉴에서 Add Terminal [image] Data Input 를 실행하여 트레이스를 추가합니다. 최대 12개의 트레이스를 사용할 수 있습니다.

컨트롤 입력 추가

Title 컨트롤 입력핀을 추가하여 타이틀바의 이름을 지정할 수 있습니다. 이 기능을 이용하면 프로그램 실행시 타이틀의 이름을 변경할 수 있습니다.

Traces 컨트롤 입력핀을 추가할 수 있습니다. Traces 컨트롤 입력핀의 데이터에는 레코드 어레이를 사용해야 합니다.(또는 하나의 트레이스를 제어하는 경우에는 레코드 스칼라를 사용해도 됩니다.) 레코드의 어레이는 Record Constant 오브젝트 또는 Build Record 오브젝트를 이용하여 생성합니다. 각 레코드에는 다음의 필드가 제공되어야 합니다.:

정수 값을 가진 TraceNum 필드(첫 번째 트레이스는 1). TraceNum 필드의 값은 받드시 입력되어야 합니다. 값을 입력하지 않으면 에러가 발생합니다.

다음 필드 중 1 개 이상의 필드:

Name

Pen

LineType

PointType

Name 필드는 텍스트 값을 가져야 합니다. Pen, LineType 및 PointType 은 0 ~ n의 정수값을 가져야 합니다. 여기서, 0 은 아무것도 그리지 않을 때 입력하고, n 은 사용할 수 있는 값입니다.

위에서 열거된 스케일 인자를 제어하기 위해서 Scales 컨트롤 입력핀을 추가할 수 있습니다. Scales 컨트롤 입력핀의 데이터에는 레코드 어레이를 사용해야 합니다.(또는 하나의 트레이스를 제어하는 경우에는 레코드 스칼라를 사용해도 됩니다.) 레코드의 어레이는 Record Constant 오브젝트 또는 Build Record 오브젝트를 이용하여 생성합니다. 각 레코드에는 다음의 필드가 제공되어야 합니다.:

X, Y (또는 Y1), Y2, 또는 Y3값을 가지며, 이름이 Scale 인 텍스트필드. Scale 필드의 값은 반드시 입력되어야 합니다. 값을 입력하지 않으면 에러가 발생합니다.

다음 필드 중 1 개 이상의 필드:

Name - 오픈뷰에서 스케일 이름을 변경합니다. 텍스트 값을 가져야 합니다.

Min - X 스케일의 최소값을 설정합니다. 정수 또는 실수값을 사용해야 합니다.

Max - X 스케일의 최대값을 설정합니다. 정수 또는 실수값을 사용해야 합니다.

Mapping - Linear 또는 Log의 텍스트 값을 선택합니다.

AutoScale - 자동 스케일링을 제어합니다. On 또는 Off 의 텍스트 값을 선택합니다.

자세한 내용은 Using Records 및 Using DataSets를 참조하십시오.

프로그램 실행시 마커값을 설정하고 읽기

프로그램상으로 다른 속성을 설정하고 읽기 위해서는 To Change Properties Programmatically를 참조하십시오.

프로그램을 실행하면서 마커 값을 가져오거나 설정할 수 있습니다. 디스플레이를 준비하기 위해서, Properties 창의 Name 필드에 값을 입력합니다. Name 의 값은 디스플레이 컨텍스트의 지역변수로 사용되는 Object 변수로 지정됩니다. 다음은 Markers 그룹의 설정을 On 시킵니다. VEE는 다음 속성을 델타 값을 포함하여 X 및 Y 의 위치에 지정합니다.(Marker1 아래를 지시하고; Marker2 는 위를 지시합니다.)

Marker1X (위치를 Real64 타입으로 가져옵니다.)

Marker1Y (위치를 Real64 타입으로 가져옵니다.)

Marker2X (위치를 Real64 타입으로 가져옵니다.)

Marker2Y (위치를 Real64 타입으로 가져옵니다.)

MarkerDX (위치를 Real64 타입으로 가져옵니다.)

MarkerDY (위치를 Real64 타입으로 가져옵니다.)

Marker1 (위치를 Coord 타입으로 가져오거나 설정합니다.)

Marker2 (위치를 Coord 타입으로 가져오거나 설정합니다.)

현재 마커의 위치를 읽거나 마커를 새로운 위치로 이동하기 위해서 Marker1 및 Marker2 의 속성을 사용할 수 있습니다. 마커의 다른 속성은 읽기전용입니다. 마커를 트레이스 이외의 위치로 이동하려고 시도하면, 마커는 지정한 마커의 위치와 트레이스 상의 가장 가까운 데이터 포인트에 스냅됩니다.

Formula 오브젝트의 표현식을 이용해서도 마커 값을 읽거나 설정할 수 있습니다. 각 표현식은 디스플레이의 Declared Name 과 마커의 속성을 이용하여 작성해야 합니다. 마커의 속성과 Name 은 대소문자를 구별하지 않습니다. 예를 들어, 디스플레이의 Declared Name 이 XY이고, Delta Markers 가 활성화되어 있으면, 다음 표현식은 모든 사용가능한 마커의 값을 읽어서, Real64 스칼라 타입으로 변수 a ~ f 에 저장합니다.:

a = XY.Marker1X

b = XY.Marker1Y

c = XY.Marker2X

d = XY.Marker2Y

e = XY.MarkerDX

f = XY.MarkerDY

디스플레이의 Declared Name 은 전역변수로 지정될 수도 있습니다. Formula 오브젝트의 표현식에서 지정연산자를 사용하면서, Declare Variable 오브젝트를 함께 사용하여 전역변수로 설정할 수 있습니다. 예를 들어, globalXY 를 전역변수로, 이것의 Type을 Object로 선언하고, 디스플레이를 사용하는 컨텍스트에서 다음 표현식을 추가합니다.

Set globalXY = XY

이제는 프로그램의 다른 컨텍스트에서 다음 표현식으로 마커의 값을 읽을 수 있습니다.:

a = globalXY.Marker1X

프로그램에 따라서, 프로그램이 마커의 값을 읽기 전에 마커의 위치를 변경할 수 있도록 프로그램이 일시 정지하는 기능을 작성해야 하는 경우가 있습니다. 그래프의 시퀀스 출력과 Formula 오브젝트의 시퀀스 입력사이에 Confirm (OK) 버튼을 프로그램에 추가하여 프로그램 실행을 일시정지 할 수 있습니다. 또한 마커의 위치를 프로그램에서 제어하도록 프로그램을 작성할 수도 있습니다. 프로그램상으로 마커를 설정하는 자세한 내용은 Programmatic Properties를 참조하십시오.

오브젝트 위치

Display [image] Strip Chart

관련정보

Complex Plane, Default Preferences 대화상자, Magnitude Spectrum, Polar Plot, Waveform (Time), XY Trace 및 X vs Y Plot.

디스플레이에서 마커 설정하기, 마커의 속성을 설정하거나 가져오기


SubRecord 오브젝트

레코드에서 필드를 잘라낼 수 있는 오브젝트

사용법

SubRecord는 레코드에서 지정한 “잘라내기” 필드를 사용하여 원래의 레코드에 대한 서브셋을 Record 출력핀으로 출력하기 위해 사용합니다. 편집 해야 할 레코드는 Record 입력핀으로 입력됩니다. 출력 레코드에 "포함시키기" 또는 "제외시키기" 해야 하는 필드의 리스트는 Field 입력핀으로 입력됩니다.

오픈뷰에서 Include fields가 선택된 경우에는, 출력 레코드는 Fields 입력에 있는 해당 필드들로 만 이루어 집니다.

오픈뷰에서 Exclude fields가 선택된 경우에는, 출력 레코드는 원래의 레코드에서Fields 입력에 있는 해당 필드들을 제외한 모든 필드로 이루어 집니다.

오픈뷰 항목

Include fields –- (디폴트 모드) 출력 레코드는 Field 데이터 입력핀에 있는 필드 이름리스트에 해당하는 필드 만을 가지고 입력 어레이에서 생성됩니다. 이 선택항목은 Exclude fields로 토글 됩니다.

Exclude fields –- 출력 레코드는 Field 데이터 입력핀에 있는 필드 이름리스트에 해당하지 않는 필드 만을 가지고 입력 어레이에서 생성됩니다.

주의사항

Fields 입력핀은 출력 레코드에 포함하기/제외하기 위한 레코드 필드들의 이름으로 이루어진 텍스트 어레이 입니다.

입력 레코드에 없는 필드를 포함하기/제외하기 하는 경우에는, 에러가 발생합니다. 레코드의 모든 필드를 제외하는 경우에는, nil 출력 시그날이 전송됩니다.

UnBuild Record, SubRecord, 및 Get Field 오브젝트의 차이점은 다음과 같습니다.

UnBuild Record 오브젝트는 입력 레코드 필드에 대한 Name List 및 Type List용 출력을 가집니다. UnBuild Record 오브젝트의 다른(선택사항) 출력 A, B, 등은 복수의 Get Field 오브젝트가 출력하는 것처럼 동일한 결과를 출력합니다.

Get Field 오브젝트는 레코드를 언빌드하기 위해 도트 구문(A.B)을 사용하는 측면에서 Formula 오브젝트처럼 동작합니다. Get Field는 A.B.C 같은 표현식을 사용하여 한번에 레코드들에서 레코드를 언빌드할 수 있습니다. 이 프로세스는 2개의 UnBuild Record 오브젝트를 필요로 합니다.

SubRecord 오브젝트는 출력이 항상 레코드여야 한다는 측면에서는 UnBuild Record 및 Get Field와는 다릅니다. SubRecord 디바이스는 레코드에서 서브 레코드를 생성하기 위하여 필드 리스트를 포함하기 또는 제외하기 할 수 있습니다.

오브젝트 위치

Data [image] Access Record [image] SubRecord

관련정보

Build Record, From DataSet, Get Field, Record Constant, Set Field, To DataSet, UnBuild Record 및 속성창 (오브젝트)


Subtract 오브젝트

다른 시간에서 하나의 시간을 뺍니다.

오브젝트 위치

System [image] DateTime [image] Subtract


System Directory 오브젝트

호스트 시스템의 시스템 디렉토리를 가져옵니다.

오브젝트 위치

System [image] Environment [image] System Directory


Tank 오브젝트

그래픽 탱크 안에 칼라바를 이용하여 스칼라 숫자값을 그래픽으로 표시하는 오브젝트

사용법

탱크 온도계 안에 칼라바를 이용하여 아나로그 스케일 상에 숫자값을 표시할 때 Tank 오브젝트를 사용하십시오. 디지털 숫자표시는 선택항목입니다.

오픈뷰 항목

오픈뷰 상의 Thermometer의 최대 최소값은 각각 현재 값을 클릭하여 새로운 값을 입력하여 설정할 수 있습니다. 틱 마크 및 라벨은 자동으로 연산되어 표시됩니다. 최소값의 크기는 최대값의 크기보다 작아야 합니다.

컨트롤 입력으로 이것들의 값을 설정할 수 있습니다.

속성창

ClearAtPreRun - 속성을 True로 설정하면, Tank의 내용들은 PreRun시 초기화됩니다. 디폴트 값은 True입니다.

ClearAtActivate - 속성을 True로 설정하면, Tank의 내용들은 PreRun시 초기화됩니다. 디폴트 값은 True입니다.

Orientation -Tank의 디스플레이 방법을 선택합니다. 디폴트 값은 Vertical입니다.

ShowDigitalDisplay -속성을 True로 설정하면, 입력값에 대한 디지털 디스플레이가 오브젝트 오픈뷰의 하단에 표시 됩니다. 속성을 False로 설정하면, 디지털 디스플레이는 표시되지 않고 오브젝트가 좀더 빠르게 동작합니다. 디폴트 값은 True입니다

ShowTics - 스케일의 틱 마크와 라벨의 표시를 선택합니다. 디폴트 값은 True입니다.

Logarithmic - 속성을 True로 설정하면, 선형스케일을 로그스케일로 변경합니다. 디폴트 값은 False입니다.

LabelSpacing - 틱 마크에 표시된 스케일 값을 선택합니다. 디폴트 값은 Every Other Tic입니다.

HighColor - 입력된 최대 범위 데이터에 대한 색을 선택합니다. (예를 들어 High Limit보다 큰 값이 입력되면 HighColor에서 선택된 색이 화면에 나타납니다.)

High Limit - 최대 값의 한계를 정합니다. 이 값은 Low Limit보다 같거나 더 큰 값 이어야 합니다. 이 값을 컨트롤 입력으로 지정할 수 있습니다. 컨트롤 입력을 사용하면 이 속성의 값을 편집할 수 없습니다.

MidColor - 입력된 중간 범위의 값에 대한 색을 선택합니다. (즉, High Limit보다 작거나 같고, Low Limit보다 큰 값)

Low Limit - 최소 값의 범위를 지정합니다. 이 값은 High Limit 보다 같거나 더 작은 값 이어야 합니다. 이 값을 컨트롤 입력으로 지정할 수 있습니다. 컨트롤 입력을 사용하면 이 속성의 값을 편집할 수 없습니다.

LowColor - 입력된 최소 값에 대한 색을 선택한다. (즉, Low Limit보다 작은 값이 입력되면 이 색이 화면에 나타납니다.)

NumberFormat:

Global Format - 디폴트 포맷을 사용합니다. 디폴트 값은 True입니다.

Real: - Global Format이 off되면, 오브젝트에 표시할 숫자 형식을 실수로 지정합니다. Fixed (예. 98.6000), Scientific (예. 9.8600E+01), Engineering (예. 98.6000E0), Standard (예. 98.6), 및 Time Stamp (예. Wed 01/Jan/2003 17:01:38)를 선택할 수 있습니다. 디폴트 값은 Standard 입니다.

주의사항

입력값은 Scalar여야 하고, Real64로 변환될 수 있어야 합니다. (Complex, PComplex, Spectrum 및 Coord 는 먼저 스칼라로 변경되어야 합니다.)

Low Limit는 High Limit의 값보다 작아야 합니다.

2 단계의 색깔을 사용하기 위해서는 Low Limit 와 High Limit를 같은 값으로 설정합니다.

1 단계의 색깔만 이용하기 위해서는 LowColor, MidColor, 및 HighColor를 동일한 색깔로 설정합니다.

단축키

Tank의 방향을 변경하기 위해서는 크기를 변경합니다. 크기에 따라서 오리엔테이션이 자동변경됩니다.

오브젝트 위치

Display [image] Indicator [image] Tank

관련정보

AlphaNumeric, Color Alarm, Fill Bar, Logging AlphaNumeric, Meter, Thermometer 및 오브젝트 메뉴

데이터를 아날로그 디스플레이로 나타내기


Text 오브젝트

상수 스트링을 스칼라 또는 Array 1D로 출력하는 오브젝트

사용법

스트링 상수를 설정하거나 사용자 입력을 요청할 때 Text 오브젝트를 사용합니다. 입력창을 클릭하여 값을 입력합니다.

사용예

패널뷰에서 Text 를 프롬프트로 사용하기 위해서는, Text 오브젝트의 이름을 “당신의 이름은 무엇입니까?” 등으로 변경합니다. 사용자는 요청한 내용을 입력창에 입력합니다.

속성창

DataShape - 이 오브젝트에서 출력될 값의 초기 데이터 형태를 설정합니다.

ArraySize: - 1D Array를 선택한 경우에, ArraySize는 어레이의 길이를 설정합니다.

 ArraySizeFixed - True로 설정하면, 어레이에는 라인을 추가하거나 삭제할 수 없습니다. 데이터 형태가 DataShape 1D Array인 경우에만 사용할 수 있습니다

 ShowArrayIndices - True로 설정하면, 어레이에 있는 각 라인은 인덱스됩니다. 데이터 형태가 DataShape 1D Array인 경우에만 사용할 수 있습니다. 디폴트 값은 True입니다.

 PasswordMasking - True로 설정하면, 입력창의 텍스트가 반향되는 애스터리스크(*)로 표시됩니다.

Wait for Input - True로 설정하면, 오브젝트는 값이 변경되기 전까지는 동작하지 않습니다. 속성을 False로 변경하면, 오브젝트는 제한사항을 만나는 즉시 동작하고 현재 선택된 값을 출력합니다. 디폴트 값은 False입니다.

AutoExecute - True로 설정하면, 값이 선택되면 나머지 프로그램을 실행합니다. 프로그램이 실행중이라면, AutoExecute는 무시됩니다. 디폴트 값은 False입니다.

 InitialValue - 설정되어야 할 값을 지정합니다. 디폴트 값은 null 입니다.

 InitializeAtPreRun - True로 설정하면, InitialValue가 PreRun시 설정됩니다. 디폴트 값은 False입니다.

 InitializeAtActivate - True로 설정하면, InitialValue가 활성화될 때 설정됩니다. 디폴트 값은 False입니다.

주의사항

Initialize는 UserObject내의 값을 초기화하기 위해 자주 사용합니다. 초기값을 설정하는 다른 방법은 Default Value 컨트롤핀을 사용하는 것입니다.

컨트롤 입력은 Default Value, Reset, Enable Editing 또는 Disable Editing등을 추가할 수 있습니다.

Default Value 입력은 프로그램 실행시 현재의 값을 변경할 수 있습니다. Scalar 또는 Array 1D 형태의 텍스트를 입력할 수 있습니다. 상수는 입력데이터의 형태를 매칭시키기 위하여 재구성됩니다.

Reset 입력은 프로그램 실행시 값을 0으로 설정합니다. 상수가 Array 1D로 설정되면, 모든 값은 null로 설정됩니다. Reset 입력터미날에서 제공되는 실제 데이터는 무시됩니다.

Enable Editing과 Disable Editing 입력은 프로그램 실행시 오브젝트의 오픈뷰에서 값의 변경여부를 제어합니다.

이 Text 상수에서 탈출문자를 표시할 수는 없습니다. 입력한 내용만 출력핀으로 전달됩니다.

Text가 어레이로 설정되어 있더라도 InitialValue 필드는 항상 스칼라입니다.

오브젝트 위치

Data [image] Constant [image] Text

관련정보

Complex, Constant, Coord, Date/Time, UInt8, Int16, Int32, PComplex, Real32, Real64, Selection Control 및 Toggle Control.

상수 데이터 사용하기


Text Input 오브젝트

텍스트의 입력을 제공하는 팝업 대화상자를 디스플레이하는 오브젝트

사용법

Text Input 오브젝트는 사용자가 텍스트를 입력할 수 있는 대화상자를 나타내기 위해 사용하고, 입력된 텍스트의 유효여부를 체크합니다.

팝업 대화상자에서, OK 버튼을 누르면 사용자가 입력한 텍스트가 Value 출력핀으로 출력됩니다. Cancel 버튼을 누르면, Cancel 출력핀으로 1이 출력됩니다.

오픈뷰

  • Prompt/Label - 사용자가 텍스트 필드에 데이터를 입력하도록 알려주는 스트링. 이 파라미터는 데이터 입력으로 추가할 수 있습니다. 디폴트 값은 ‘Enter Text:’ 입니다.

  • Default Value - 어떤 내용을 입력하기 전에 대화상자의 입력필드에 표시되는 텍스트. 사용자가 어떤 내용을 입력하지 않고 OK 버튼을 누르면 이 텍스트가 출력됩니다. 이 파라미터는 데이터 입력으로 추가할 수 있습니다. 디폴트로 비어있습니다.

  • Value Constraint - 입력하는 텍스트의 유효 여부를 검사하는 방정식. 어떤 수학 표현식이나 UserFunction을 호출하여 사용할 수 있습니다. 이 파라미터는 데이터 입력으로 추가할 수 있습니다. 디폴트 값은 ‘strLen(value)>0’ 입니다; 이것은 사용자가 하나 이상의 문자를 입력하도록 합니다. – 널 스트링은 사용할 수 없습니다. 어떤 값이라도 입력될 수 있도록 하기 위해서는 표현식으로 1을 사용합니다.

  • Error Message - 사용자의 입력값이 Value Constraint를 만족하지 않은 경우에 메시지 박스에 출력하는 텍스트. 이 파라미터는 데이터 입력으로 추가할 수 있습니다. 디폴트 값은 ‘You must enter text’ 입니다.

속성창

  • PopupTimeoutEnabled - 이 속성을 True로 설정하면, 오브젝트에 Timeout 출력핀이 추가됩니다. 디폴트 값은 False입니다.

  • PopUpDuration - 팝업 대화상자가 디스플레이되는 시간을 설정합니다. 설정된 시간이 지나면, 대화상자는 사라지고 Timeout 출력핀으로 1을 출력합니다. Timeout 핀이 실행되면 다른 출력핀들은 데이터를 출력하지 않습니다. 이 필드는 PopupTimeoutEnabled가 True로 되어 있을 때만 사용할 수 있습니다. 디폴트 값은 60초 입니다.

  • PopupOKLabel - OK인 경우에 버튼 라벨을 OK로 설정합니다. 필요한 경우에는 버튼 라벨로 다른 단어를 사용할 수도 있습니다. 단어를 바꾸더라도 버튼의 기능은 그대로 유지됩니다.

  • PopupCancelLabel - Cancel인 경우에 버튼 라벨을 Cancel로 설정합니다. 필요한 경우에는 버튼 라벨로 다른 단어를 사용할 수도 있습니다. 단어를 바꾸더라도 버튼의 기능은 그대로 유지됩니다.

  • PopupPasswordMasking - 이 속성을 True로 설정하면, 입력된 텍스트가 별표(*)로 디스플레이 됩니다. 이 기능은 사용자가 비밀번호 같은 민감한 데이터를 입력할 때 유용합니다. Value 출력핀으로 출력되는 스트링은 감추어지지 않습니다. 디폴트 값은 False입니다.

주의사항

팝업 대화상자의 디폴트 위치는 작업영역의 중앙 근처입니다. 이 대화상자를 이동한 경우에는, 다음에 대화상자가 팝업될 때 새로운 위치에서 팝업됩니다.

에러 메시지 대화상자의 제목은 Text Input 오브젝트의 제목과 동일합니다.

팝업 대화상자에서 키보드 만을 이용하여 입력하기 위해서는: 대화상자가 팝업될 때 내용을 입력하고 Enter키 또는 Esc키를 사용합니다. 입력 필드와 버튼 사이를 이동하기 위해서는 Tab키를 사용하고, 버튼을 선택하기 위해서는 Space바를 사용합니다.

팝업 대화상자와 에러 대화상자는 프로그램이 실행중일 때만 디스플레이 됩니다. 팝업 대화상자가 디스플레이 되는 동안에는 모든 프로그램의 실행이 일시 중지되고, 대화상자가 닫히면 다시 실행이 진행됩니다.

오브젝트 위치

Data [image] Dialog Box [image] Text Input

관련정보

File Name Selection, Int32 Input, List Box, Message Box, Real64 Input 및 UserObject.

데이터 입력 대화상자 사용하기


Thermometer 오브젝트

그래픽 온도계 안에 칼라바를 이용하여 스칼라 숫자값을 그래픽으로 표시하는 오브젝트

사용법

그래픽 온도계 안에 칼라바를 이용하여 아나로그 스케일 상에 숫자값을 표시할 때 Thermometer 오브젝트를 사용하십시오. 디지털 숫자표시는 선택항목입니다.

오픈뷰 항목

오픈뷰 상의 Thermometer의 최대 최소값은 각각 현재 값을 클릭하여 새로운 값을 입력하여 설정할 수 있습니다. 틱 마크 및 라벨은 자동으로 연산되어 표시됩니다. 최소값의 크기는 최대값의 크기보다 작아야 합니다.

컨트롤 입력으로 이것들의 값을 설정할 수 있습니다.

속성창

ClearAtPreRun - 속성을 True로 설정하면, Thermometer의 내용들은 PreRun시 초기화됩니다. 디폴트 값은 True입니다.

 ClearAtActivate - 속성을 True로 설정하면, Thermometer의 내용들은 PreRun시 초기화됩니다. 디폴트 값은 True입니다.

Orientation - Thermometer 의 디스플레이 방법을 선택합니다. 디폴트 값은 Vertical입니다.

 ShowDigitalDisplay - 속성을 True로 설정하면, 입력값에 대한 디지털 디스플레이가 오브젝트 오픈뷰의 하단에 표시 됩니다. 속성을 False로 설정하면, 디지털 디스플레이는 표시되지 않고 오브젝트가 좀더 빠르게 동작합니다. 디폴트 값은 True입니다.

ShowTics - 스케일의 틱 마크와 라벨의 표시를 선택합니다. 디폴트 값은 True입니다.

Logarithmic - 속성을 True로 설정하면, 선형스케일을 로그스케일로 변경합니다. 디폴트 값은 False입니다.

 LabelSpacing - 틱 마크에 표시된 스케일 값을 선택합니다. 디폴트 값은 Every Other Tic입니다.

HighColor - 입력된 최대 범위 데이터에 대한 색을 선택합니다. (예를 들어 High Limit보다 큰 값이 입력되면 HighColor에서 선택된 색이 화면에 나타납니다.)

 High Limit - 최대 값의 한계를 정합니다. 이 값은 Low Limit보다 같거나 더 큰 값 이어야 합니다. 이 값을 컨트롤 입력으로 지정할 수 있습니다. 컨트롤 입력을 사용하면 이 속성의 값을 편집할 수 없습니다.

 MidColor - 입력된 중간 범위의 값에 대한 색을 선택합니다. (즉, High Limit보다 작거나 같고, Low Limit보다 큰 값)

 Low Limit - 최소 값의 범위를 지정합니다. 이 값은 High Limit 보다 같거나 더 작은 값 이어야 합니다. 이 값을 컨트롤 입력으로 지정할 수 있습니다. 컨트롤 입력을 사용하면 이 속성의 값을 편집할 수 없습니다.

 LowColor - 입력된 최소 값에 대한 색을 선택한다. (즉, Low Limit보다 작은 값이 입력되면 이 색이 화면에 나타납니다.)

NumberFormat:

Global Format - 디폴트 포맷을 사용합니다. 디폴트 값은 True입니다.

Real: - Global Format이 off되면, 오브젝트에 표시할 숫자 형식을 실수로 지정합니다. Fixed (예. 98.6000), Scientific (예. 9.8600E+01), Engineering (예. 98.6000E0), Standard (예. 98.6), 및 Time Stamp (예. Wed 01/Jan/2003 17:01:38)를 선택할 수 있습니다. 디폴트 값은 Standard 입니다.

주의사항

입력값은 Scalar여야 하고, Real64로 변환될 수 있어야 합니다. (Complex, PComplex, Spectrum 및 Coord 는 먼저 스칼라로 변경되어야 합니다.)

Low Limit는 High Limit의 값보다 작아야 합니다.

2 단계의 색깔을 사용하기 위해서는 Low Limit 와 High Limit를 같은 값으로 설정합니다.

1 단계의 색깔만 이용하기 위해서는 LowColor, MidColor, 및 HighColor를 동일한 색깔로 설정합니다.

단축키

Thermometer의 방향을 변경하기 위해서는 크기를 변경합니다. 크기에 따라서 오리엔테이션이 자동변경됩니다.

오브젝트 위치

Display [image] Indicator [image] Thermometer

관련정보

AlphaNumeric, Color Alarm, Fill Bar, Logging AlphaNumeric, Meter, Tank 및 오브젝트 메뉴

데이터를 아날로그 디스플레이로 나타내기


Tile Horizontally 메뉴항목

VEE 작업공간에서 윈도우를 관리하는 기능

사용법

Tile Horizontally는 축소 되지 않은 모든 열린 윈도우를 중첩하지 않고 배열하기 위해 사용합니다. 윈도우는 다른 윈도우 위에 쌓이게 됩니다.

오브젝트 위치

Window [image] Tile Horizontally

관련정보

Cascade 메뉴항목, Close All, Minimize All 및 Tile Vertically 메뉴항목.


Tile Vertically 메뉴항목

VEE 작업공간에서 윈도우를 관리하는 기능

사용법

Tile Vertically는 축소 되지 않은 모든 열린 윈도우를 중첩하지 않고 배열하기 위해 사용합니다. 윈도우는 VEE 작업공간에서 옆에서 옆으로 정렬됩니다.

오브젝트 위치

Window [image] Tile Vertically

관련정보

Cascade 메뉴항목, Close All, Minimize All 및 Tile Horizontally 메뉴항목.


Timer 오브젝트

상단에 있는 입력핀과 하단에 있는 입력핀의 활성화 시간에 대한 차이를 초단위로 출력하는 오브젝트

사용법

Timer는 오브젝트의 실행 같은 2개의 이벤트 사이에서 경과한 시간을 측정하기 위해 사용합니다. 이것은 첫번째 입력과 두번째 입력이 활성화 되었을 때 발생합니다. 두번째 입력이 첫번째 입력 이전에 활성화된 경우에는, 두번째 입력에 있는 컨테이너는 무시되고 Timer 오브젝트는 실행하지 않습니다.

주의사항

시간은 초단위로 디스플레이 됩니다.

윈도우즈에서, Timer는 시스템에서 사용할 수 있는 경우에는 고정밀 카운터를 사용합니다.

오브젝트 위치

Device [image] Timer

관련정보

Date/Time, Do, 속성창 (오브젝트) 및 오브젝트 메뉴


To 메뉴항목

메뉴 항목

사용법

To는 I/O 실행에 대한 목표가 되는 다음의 오브젝트를 제공하기 위해 사용합니다:

To File

To DataSet

To Printer

To String

오브젝트 위치

I/O [image] To

관련정보

From 메뉴항목.


To DataSet 오브젝트

레코드를 파일로 수집하는 오브젝트

사용법

To DataSet은 동일한 스키마를 가지는 레코드를 향후 재사용하기 위하여 파일로 저장할때 사용합니다. 다음의 컨트롤 핀을 추가할 수 있습니다:

File Name -- 이 컨트롤 핀은 사용자가 레코드를 저장할 파일의 이름을 변경할 수 있도록합니다.

Rewind -- 이 컨트롤 핀은 파일의 첫 부분을 지시하도록 하여, 레코드가 파일의 처음부터저장되도록 합니다. 이것은 Clear File At PreRun 체크 박스가 선택된 상태에서 레코드를 파일에 첫 번째로 전송하는 것과 동일한 효과가 있습니다.

Close -- 이 컨트롤 핀은 파일을 닫습니다.

오픈뷰 항목

To DataSet: -- 이름 필드를 클릭하면 대화상자가 디스플레이되고, Dataset을 저장할 파일 이름을 선택합니다.

Clear File At PreRun -- 이 체크 박스를 선택한 경우에는, 전체 Dataset이 초기화 되고, 첫번째 To DataSet의 실행을 다시 저장합니다 (첫번째 레코드를 전송 받았을 때). DataSet은 완벽히 지워지기 때문에, 새로운 스키마를 가진 레코드가 전송될 수 있습니다 –- 첫번째 레코드가 새로운 스키마 정의를 생성합니다.

주의사항

To DataSet 파일로 전송되는 레코드는 동일한 스키마(데이터 형태 및 타입)를 가지고 있어야 합니다. 파일에 저장된 첫번째 레코드는 다음에 처리되는 모든 레코드가 가져야 하는 스키마를 정의하게 됩니다.

To DataSet 오브젝트가 하나의 입력(하나의 입력만 가능)을 가지고 실행할 때마다, 새로운 레코드가 파일에 추가됩니다. 새로운 레코드가 어레이인 경우에는, 어레이의 각 레코드 앨리먼트가 추가됩니다. 스키마(필드 수와 각 필드의 이름, 타입 및 형태)는 각 레코드가 동일해야 하지만, 레코드의 형태(스칼라/어레이)는 상관 없습니다. To DataSet 오브젝트는 Rewind 컨트롤 입력이 활성화 되거나, Clear File At PreRun이 선택되고 PreRun이 발생할 때까지는 계속적으로 파일에 추가 합니다. 다음에 To DataSet 오브젝트가 실행되면, 첫번째 레코드의 스키마를 가지고 시작하는 것에 반하여, 실행이 시작될 때 파일에 저장하기 시작합니다. 이 스키마는 파일에 있는 스키마와는 다를 수 있습니다.

오브젝트 위치

I/O [image] To [image] DataSet

관련정보

Build Record, From DataSet, Record Constant, UnBuild Record, 속성창 (오브젝트) 및 오브젝트 메뉴.

데이터를 파일에 쓰기


To File 오브젝트

트랜잭션을 사용하여 파일에 데이터를 쓰는 오브젝트

사용법

To File 오브젝트는 다양한 인코딩 방식과 포맷을 제공하므로 파일에 다양한 방식으로 데이터를 쓸 수 있습니다. 각 파일에는 하나의 포인터만 사용되므로, 서로 다른 To File 오브젝트에 의한 데이터 출력이 오브젝트가 실행되는 순서에 따라서 파일에 쓰입니다.

To File 행위:

WRITE - 지정된 인코딩 및 포맷으로 데이터를 파일에 씁니다.

EXECUTE - 파일의 내용을 지우면서(CLEAR) 또는 파일의 내용을 지우지 않으면서(REWIND) 파일 쓰기 포인터를 파일의 맨 앞으로 이동합니다. Clear File at PreRun & Open 이 선택된 경우에는 EXECUTE REWIND 명령만 사용할 수 있습니다. VEE 프로그램이 중지되면 사용중이던 파일은 자동으로 닫힘니다. 그러나, 프로그램 실행중에는 EXECUTE CLOSE 트랜잭션을 실행하여 파일을 닫을 수 있습니다. EXECUTE DELETE는 파일을 삭제합니다.

WAIT - 다음 트랜잭션을 실행하기 까지 지정된 초 시간 동안 기다립니다.

To File 인코딩;

TEXT - 다른 소프트웨어에서도 쉽게 편집하거나 포팅할 수 있으며 사람이 읽을 수 있도록 모든 데이터 종류를 파일로 씁니다. 파일에 쓸 때 VEE 숫자 데이터는 자동적으로 텍스트로 변환됩니다.

BYTE - 숫자 데이터를 정수로 변환하고 가장 중요하지 않은 바이트(LSB)를 씁니다.

CASE - 열거형 값이나 정수를 스트링으로 매핑하여 스트링을 씁니다. 예를 들어, 에러번호를 받아들이고 에러메세지를 쓰기 위해서는 CASE를 사용합니다.

BINARY - 컴퓨터 CPU 특성에 따른 바이너리 포맷으로 모든 데이터 타입을 씁니다.

BINBLOCK - IEEE 488.2 의 한정된 크기의 블록헤더를 가진 바이너리 파일에 모든 VEE 데이터 타입을 씁니다.

CONTAINER - VEE에서 사용하는 특정 텍스트 포맷으로 모든 데이터 타입을 씁니다. 시각적인 데이터 분석을 하는 PV-WAVE로 데이터를 직접 보내기 위해서 "To File" 오브젝트에서 CONTAINER를 사용합니다.

오픈뷰 항목

Clear at PreRun & Open - 파일의 모든 내용을 지우고 파일 포인터를 파일의 맨 앞으로 재배치 합니다. 이것의 체크박스를 선택하지 않으면, 데이터가 파일의 맨 마지막에 추가됩니다.

동일한 파일을 지시하는 여러 개의 To File 오브젝트가 있으면, 이들의 체크박스가 서로 링크되어서 하나의 체크박스를 변경하면, 다른 나머지 체크박스도 모두 변경됩니다.

오픈뷰에서는 실행될 트랜잭션의 목록을 표시합니다.

오브젝트 메뉴

Edit Trans – 현재 하이라이트된 트랜잭션을 수정합니다.

Add Trans - 목록의 맨 마지막에 트랜잭션을 추가합니다.

Insert Trans - 현재 하이라이트된 트랜잭션의 앞에 트랜잭션을 추가합니다.

Cut Trans - 현재 하이라이트된 트랜잭션을 잘라내기(삭제) 합니다. 여기서 잘라낸 트랜잭션은 트랜잭션의 cut-and-paste" 버퍼에 저장됩니다.

Copy Trans - 현재 하이라이트된 트랜잭션을 "cut-and-paste" 버퍼에 복사합니다.

Paste Trans - 이전에 잘라내거나 복사된 트랜잭션을 붙여넣기 합니다.

Delete Trans – 리스트에서 하이라이트된 트랜잭션을 삭제합니다.

Move Trans Up – 하이라이트된 트랜잭션을 위로 이동합니다.

Move Trans Down - 하이라이트된 트랜잭션을 아래로 이동합니다.

Print Trans - 현재 하이라이트된 트랜잭션을 설명하는 대화상자를 프린트합니다.

속성창

EolSequence - EOL ON을 사용하는 WRITE 트랜잭션의 끝에 전송되는 문자를 지정합니다. 이 항목에는 더블 인용부호로 둘러싼 크기가 0 이거나 1 이상인 ASCII 문자가 반드시 입력되어야 합니다. 디폴트 값은 "\n" 입니다.

 ArraySeparator - WRITE TEXT 트랜잭션으로 작성된 어레이 앨리먼트를 분리하는데 사용하는 문자를 지정합니다. 이 항목의 입력값은 더블 인용부호로 입력되어야 합니다.

MultiFieldFormat 그룹  : WRITE TEXT 트랜잭션에 대해서 멀티필드 데이터 타입용으로 다음과 같은 2 종류의 포맷팅 스타일을 제공합니다. 영향받는 데이터 타입은 Coord, Complex, PComplex 및 Spectrum 입니다.

Data Only - 각 멀티필드 항목을 괄호로 둘러쌓지 않고 컴마로 분리합니다. 복소수 2+2j는 2,2 로 포맷팅됩니다.

(...) Syntax - (디폴트)각 멀티필드 항목을 괄호로 묶고 컴마로 분리합니다. 복소수 2+2j가 (2,2)로 포맷팅됩니다.

ArrayFormat 그룹: 다차원 어레이를 포맷팅하는 방법을 지정합니다.

Linear - 어레이를 선형으로 정렬합니다.

Block - (디폴트)각 열의 끝에 EOL 문자를 사용하여 2 차원 이상의 블록으로 어레이 앨리먼트를 정렬합니다.

단축키

트랜잭션을 빠르게 삽입하기 위해서는, 트랜잭션에 커서를 위치시킵니다. 커서가 위치한 트랜잭션 다음에 트랜잭션을 삽입하기 위하여 Insert 키를 누릅니다.

트랜잭션을 빠르게 삭제(“kill”)하기 위해서는, 트랜잭션에 커서를 위치시키고 Delete 키를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 잘라내기 위해서는 CTRL+X를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 복사하기 위해서는 CTRL+C를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼에서 붙여넣기 위해서는 CTRL+V를 누릅니다.

트랜잭션 이전이나 다음으로 빠르게 이동하기 위해서는, 위 화살표 또는 아래 화살표를 누릅니다.

오브젝트 위치

I/O [image] To [image] File

관련정보

Formula, From File, 오브젝트 메뉴, 데이터를 파일에 쓰기 및 트랜잭션 편집하기


To/From DDE 오브젝트

DDE(Dynamic Data Exchange)를 지원하는 마이크로소프트 윈도우 어플리케이션과 트랜잭션을 통해서 데이터를 주고 받는 오브젝트

사용법

DDE는 프로세스간 통신을 구현하는 툴입니다.

데이터를 쓰거나 읽기 위해서는 To/From DDE 오브젝트에 하나 이상의 트랜잭션을 추가해야 합니다. 트랜잭션을 추가하기 위해서는 오브젝트 메뉴에서 Add Trans를 실행합니다.

현재에는, .NET 프레임워크의 기능을 이용하면 훨씬 더 많은 기능, 더 많은 문서를 지원합니다.

.NET 프레임워크를 사용하지 않는다면,ActiveX Automation 기능을 사용하는 것이 DDE를 사용하는 것보다 더 효율적입니다. ActiveX 에 대한 자세한 내용은 Help => Contents and Index => Tell Me About... => Active X을 참조하십시오.

오픈뷰 항목

Application - DDE를 지원하는 윈도우 어플리케이션의 이름(예, 엑셀)

Topic - 어플리케이션에 따른 데이터 종류 식별자(예, Sheet1)

이들 외에, 오픈뷰에서는 실행할 트랜잭션의 목록을 볼 수 있습니다.

Application 필드와 Topic 필드는 컨트롤입력으로 추가할 수 있습니다.

오브젝트 메뉴

Edit Trans – 현재 하이라이트된 트랜잭션을 수정합니다.

Add Trans - 목록의 마지막에 트랜잭션을 추가합니다.

Insert Trans - 현재 하이라이트된 트랜잭션의 앞에 트랜잭션을 삽입합니다.

Cut Trans - 현재 하이라이트된 트랜잭션을 잘라내기(삭제) 합니다. 여기서 잘라낸 트랜잭션은 트랜잭션의 cut-and-paste" 버퍼에 저장됩니다.

Copy Trans - 현재 하이라이트된 트랜잭션을 "cut-and-paste" 버퍼에 복사합니다.

Paste Trans - 이전에 잘라내거나 복사된 트랜잭션을 붙여넣기 합니다.

Delete Trans – 리스트에서 하이라이트된 트랜잭션을 삭제합니다.

Move Trans Up – 하이라이트된 트랜잭션을 위로 이동합니다.

Move Trans Down - 하이라이트된 트랜잭션을 아래로 이동합니다.

Print Trans - 현재 하이라이트된 트랜잭션을 설명하는 대화상자를 프린트합니다.

속성창

EolSequence - EOL ON을 사용하는 WRITE 트랜잭션의 끝에 전송되는 문자를 지정합니다. 이 항목에는 더블 인용부호로 둘러싼 크기가 0 이거나 1 이상인 ASCII 문자가 반드시 입력되어야 합니다. 디폴트 값은 "\n" 입니다.

 ArraySeparator - WRITE TEXT 트랜잭션으로 작성된 어레이 앨리먼트를 분리하는데 사용하는 문자를 지정합니다. 이 항목의 입력값은 더블 인용부호로 입력되어야 합니다.

MultiFieldFormat 그룹: WRITE TEXT 트랜잭션에 대해서 멀티필드 데이터 타입용으로 다음과 같은 2 종류의 포맷팅 스타일을 제공합니다. 영향받는 데이터 타입은 Coord, Complex, PComplex 및 Spectrum 입니다.

Data Only - 각 멀티필드 항목을 괄호로 둘러쌓지 않고 컴마로 분리합니다. 복소수 2+2j는 2,2 로 포맷팅됩니다.

(...) Syntax - (디폴트)각 멀티필드 항목을 괄호로 묶고 컴마로 분리합니다. 복소수 2+2j가 (2,2)로 포맷팅됩니다.

ArrayFormat 그룹: 다차원 어레이를 포맷팅하는 방법을 지정합니다.

Linear - 어레이를 선형으로 정렬합니다.

Block - (디폴트)각 열의 끝에 EOL 문자를 사용하여 2 차원 이상의 블록으로 어레이 앨리먼트를 정렬합니다.

주의사항

To/From DDE 오브젝트를 DDE를 지원하는 윈도우 어플리케이션과의 통신채널을 제공합니다. 그러나, VEE와 특정 어플리케이션간의 성공적인 통신을 위해서 필요한 어플리케이션 특성에 적합한 프로토콜은 사용자가 선택해야 합니다. 이 내용은 고급 프로그래밍 내용으로 분류됩니다.

DDE를 지원하는 윈도우 어플리케이션은 클라이언트 또는 서버 또는 이들의 역할을 함께 가지는 모드로 동작합니다. VEE는 단지 클라이언트의 기능만을 제공합니다.

To/From DDE 는 4 종류의 트랜잭션을 사용합니다.:

READ(REQUEST) - DDE 트랜스퍼에서 데이터를 읽습니다.

WRITE(POKE) - DDE 트랜스퍼로 데이터를 씁니다.

EXECUTE - VEE가 통신하고 있는 DDE서버로 데이터를 전송합니다. 명령을 받은 서버가 명령을 실행합니다.

WAIT - 지정된 시간(초 단위)동안 기다립니다.

To/From DDE 오브젝트는 그 자신의 기능의 일부로서 DDE 동작을 시작시키고 종료시킵니다. 이들 트랜잭션을 명확하게 시작시키거나 종료시킬 필요 없습니다.

DDE를 사용하는 예제는 프로그램과 통신을 참조하십시오

단축키

트랜잭션을 빠르게 삽입하기 위해서는, 트랜잭션에 커서를 위치시킵니다. 커서가 위치한 트랜잭션 다음에 트랜잭션을 삽입하기 위하여 Insert 키를 누릅니다.

트랜잭션을 빠르게 삭제(“kill”)하기 위해서는, 트랜잭션에 커서를 위치시키고 Delete 키를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 잘라내기 위해서는 CTRL+X를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 복사하기 위해서는 CTRL+C를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼에서 붙여넣기 위해서는 CTRL+V를 누릅니다.

트랜잭션 이전이나 다음으로 빠르게 이동하기 위해서는, 위 화살표 또는 아래 화살표를 누릅니다.

오브젝트 위치

I/O [image] To/From DDE

관련정보

Formula, From 메뉴항목, From File, To File, To 메뉴항목, 오브젝트 메뉴, 및 트랜잭션 편집하기


To/From IVI-COM 오브젝트

IVI-COM 드라이버 함수를 호출하는 트랜잭션을 이용하여 계측기로 데이터를 쓰거나, 계측기로부터 데이터를 읽는 오브젝트

사용법

오픈뷰에서는 실행할 수 있는 트랜잭션 목록을 표시합니다. 각 트랜잭션은 IVI-COM 명령어입니다.(IVI-COM 드라이버에서 함수를 호출)

트랜잭션 라인을 더블클릭하면, Select an Operation from... 대화상자가 표시됩니다. 이 대화상자에서 실행할 명령어를 선택합니다. 하단의 텍스트 표시 영역에는 현재 선택된 멤버에 대한 설명이 표시됩니다. 멤버를 트리구조로 계층화하여 카테고리별로 구분하여 볼 수 있습니다. . 왼쪽에 + 기호를 가진 폴더는 하위에 자식 멤버를 가지고 있음을 나타냅니다. 왼쪽에 + 기호가 없는 멤버는 자식 멤버가 없음을 나타냅니다.

CreateInstance 트랜잭션이 가장 먼저 실행되어야 하며, 이것의 다음에는 Initialize 트랜잭션이 실행되어야 합니다. Initialize 트랜잭션 뒤에는 사용할 임의의 트랜잭션을 입력할 수 있지만 맨 마지막에는 Close 트랜잭션을 실행하여 자원사용을 해제해야 합니다.

명령어를 선택하고 OK 버튼을 클릭하면, Edit 대화상자가 표시됩니다. 이 대화상자에서 명령어의 값과 입출력터미날을 편집합니다.

이 상태에서 Cancel을 클릭하면 전체 선택 프로세스가 취소됩니다.

Edit 대화상자에는 2 개의 탭이 있습니다.

Edit Parameters 탭:

여기에 표시되는 인자는 어떤 명령어를 선택하였는가에 따라서 달라집니다. 일반적으로, 입력해야 할 항목들은 이미 디폴트 값으로 입력되어 있습니다.

Configure Terminals 탭:

일반적으로 이들의 값을 변경할 필요는 없습니다.

OK 버튼을 클릭하여 Edit 대화상자를 닫으면 트랜잭션이 생성됩니다.

기존 트랜잭션을 더블클릭하면, Edit 대화상자가 표시되고, 이전에 생성된 내용을 변경할 수 있습니다.

오브젝트 메뉴

Edit Operation – 하이라이트된 함수를 편집합니다.

Add Operation - 목록의 맨 마지막에 함수를 추가합니다.

Insert Operation - 현재 하이라이트된 함수 앞에 함수를 추가합니다

Cut Operation - 현재 하이라이트된 함수를 잘라내기(삭제) 합니다. 여기서 잘라낸 트랜잭션은 트랜잭션의 cut-and-paste" 버퍼에 저장됩니다.

Copy Operation - 현재 하이라이트된 함수를 "cut-and-paste" 버퍼에 복사합니다.

Paste Operation - 이전에 잘라내거나 복사된 함수를 현재 포인터의 위치로 붙여넣기 합니다.

Delete  Operation – 현재 목록에서 하이라이트된 함수를 삭제합니다.

Move Oper Up – 현재 하이라이트된 함수를 위로 이동합니다.

Move Oper Down - 현재 하이라이트된 함수를 아래로 이동합니다.

IVI-COM Help - IVI-COM 드라이버와 관련된 도움말 정보를 제공합니다. 이 정보는 하드웨어 제조사가 드라이버와 함께 제공하는 정보입니다.

단축키

트랜잭션을 빠르게 삽입하기 위해서는, 트랜잭션에 커서를 위치시킵니다. 커서가 위치한 트랜잭션 다음에 트랜잭션을 삽입하기 위하여 Insert 키를 누릅니다.

트랜잭션을 빠르게 삭제(“kill”)하기 위해서는, 트랜잭션에 커서를 위치시키고 Delete 키를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 잘라내기 위해서는 CTRL+X를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 복사하기 위해서는 CTRL+C를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼에서 붙여넣기 위해서는 CTRL+V를 누릅니다.

트랜잭션 이전이나 다음으로 빠르게 이동하기 위해서는, 위 화살표 또는 아래 화살표를 누릅니다.

오브젝트 위치

I/O [image] Instrument Manager...

주의사항

VI-COM 드라이버가 로딩되지 않는 경우가 있습니다. 이 경우에는 COM 오브젝트 – 에러 수정.

관련정보

To/From IVI-COM - Advanced 또는 오브젝트 메뉴


To/From IVI-COM 오브젝트 - 고급

To/From IVI-COM 오브젝트 – 고급

To/From IVI-COM의 도움말에서, To/From IVI-COM의 기본적인 사용법에 대해서 설명되었습니다. 이 오브젝트를 3 가지의 다른 방법으로 사용할 수 있습니다. 이 방법들은 고급기능이지만, 프로그램에 도움이 될 것입니다.

사용법

새로운 계측기를 추가하기 위해서 Instrument Manager를 사용합니다. 해당 계측기를 선택한 상태에서 Properties 버튼을 클릭하고 다시 Advanced 버튼을 클릭합니다. IVI-COM Driver 탭에서, IVI-COM 드라이버 타입을 선택합니다. 이 탭에는 Instrument Interchangeability 라벨을 가진 그룹이 있습니다.

Instrument Interchangeability(계측기 교환사용)은 드라이버와 계측기가 IVI 호환 조건을 만족하는 범위내에서 여러 계측기 제조사의 드라이버를 사용할 수 있는 기능을 의미합니다. 이 기능을 이용하면, 드라이버 호출과 기본기능은 표준이므로, 프로그램을 변경하지 않고 텍트로닉스의 스코프를 애질런트의 스코프로 교환하여 사용할 수 있습니다. 계측기를 교환 사용하지 못하는 경우에만 제조사 고유의 호출을 사용하면 됩니다.

VEE는 IVI-COM 드라이버를 사용하는 4 가지 방법을 제공합니다. 시나리오 1은 To/From IVI-COM에서 설명되었습니다.

시나리오 2

이 시나리오에서는, IVI-COM 드라이버를 Class Compliant Interface(클래스 호환 인터페이스)와 사용하는 방법을 설명합니다. DMM 드라이버를 사용하고 있다고 가정하면, 프로그램 내용을 변경하지 않고 IVI 호환 여러 제조사의 계측기로 교환하여 사용할 수 있습니다.

Instrument Manager에서 새로운 계측기를 추가합니다. 해당 계측기를 선택한 상태에서 Properties 버튼을 클릭하고 다시 Advanced 버튼을 클릭합니다. IVI-COM Driver 탭에서, IVI-COM 드라이버 타입을 선택합니다. 이 탭에는 Instrument Interchangeability 라벨을 가진 그룹이 있습니다. Use Class Compliant Interface 항목의 체크박스를 체크하여 선택합니다. 이 체크박스를 체크한다는 것은 VEE에서 계측기 드라이버의 클래스 호환 인터페이스만을 사용하여 계측기와 통신하겠다는 것을 의미합니다.

시나리오 3

이 시나리오는, IVI-COM 세션을 사용하는 방법입니다. 이 세션은 IVI Config Store에서 정의되어 있으며 계측기의 자원 정보를 가지고 있습니다.

Instrument Manager에서 새로운 계측기를 추가합니다. 해당 계측기를 선택한 상태에서 Properties 버튼을 클릭하고 다시 Advanced 버튼을 클릭합니다. IVI-COM Driver 탭에서, IVI-COM 드라이버 타입을 선택하고 기존 IVI-COM 세션이름을 선택합니다. IVI-COM 세션이름은 마지막에 "- 세션이름"으로 표시되고 해당 자원의 스트링은 회색으로 희미하게 표시됩니다. 세션이름은 IVI Config Store에서 정보를 모으기 위해서 사용되기 때문입니다.

Class Compliant Interface 체크박스를 체크하지 마십시오. 이 체크박스를 체크하지 않으면 VEE는 Instrument Specific 드라이버(계측기 고유 드라이버)를 사용합니다.

IVI-COM 세션을 정의하지 않았으면, Configure IVI Driver Session 버튼을 클릭하여 정의할 수 있습니다. 이 때 나타나는 화면에서는 IVI Config Store 정보를 관리할 수 있습니다. 좌측상단의 아이콘은 현재 사용중인 컴퓨터에 접속된 계측기를 찾고 IVI Config Store에서 식별된 다른 계측기의 내용을 읽습니다.

일단 계측기를 찾으면, 마우스를 계측기에 올려놓고 오른쪽 버튼을 클릭하여 Add Instrument Session를 실행하여 IVI 세션에 추가합니다. 이와 같이 세션을 정의하기 위해서는 이미 해당 계측기에 대한 IVI 드라이버가 현재 사용중인 컴퓨터에 설치되어 있어야 합니다. 이 때 나타나는 마법사에서 몇 단계를 거쳐서 IVI 세션 설정을 완료하게 됩니다. 디폴트로 제공되는 이름을 적절하게 의미있는 이름으로 변경하여 사용하는 것이 좋습니다. 설정을 저장합니다. 여기까지 실행하면 IVI Config Store가 업데이트됩니다.

이 방법과 기타 내용에 대한 자세한 사항은 도움말을 참조하시기 바랍니다.

시나리오 4

이 시나리오에서는 Class Compliant Interface(클래스 호환 인터페이스)를 이용하여 IVI-COM 세션을 사용하는 방법을 설명합니다.DMM 드라이버를 사용하고 있다면, 프로그램의 내용을 변경하지 않고 IVI 호환 DMM을 교환사용할 수 있습니다. 이 세션은 IVI Config Store에 정의되어 있으며 계측기에 대한 정보를 가지고 있습니다.

Instrument Manager에서 새로운 계측기를 추가합니다. 해당 계측기를 선택한 상태에서 Properties 버튼을 클릭하고 다시 Advanced 버튼을 클릭합니다. IVI-COM Driver 탭에서, IVI-COM 드라이버 타입을 선택하고 기존 IVI-COM 세션이름을 선택합니다. IVI-COM 세션이름은 마지막에 "- 세션이름"으로 표시되고 해당 자원의 스트링은 회색으로 희미하게 표시됩니다. 세션이름은 IVI Config Store에서 정보를 모으기 위해서 사용되기 때문입니다.

이 탭의 Instrument Interchangeability그룹에서 Use Class Compliant Interface 항목을 체크하십시오. IVI-COM 세션을 정의하지 않았으면 Configure IVI Driver Session 버튼을 클릭하여 시나리오 3 에서 설명한 과정을 실행하십시오.

관련정보

To/From IVI-COM 또는 오브젝트 메뉴


To/From NIDAQ 오브젝트

NIDAQ 드라이버를 호출하는 트랜잭션을 이용하는 계측기로부터 데이터를 읽거나 데이터를 쓰는 오브젝트

사용법

NIDAQ 드라이버를 제공하는 계측기와 통신할 때 To/From NIDAQ 오브젝트를 사용하십시오.

I/O 메뉴의 Instrument Manager를 통해서 To/From NIDAQ 오브젝트에 접근할 수 있습니다. NIDAQ 인터페이스를 추가하고 NIDMM, NISCOPE, NISWITCH, NIFGEN, NIDAQ또는 NIDAQmx를 선택합니다. 다음에는, "Create I/O Object" 에서 "NIDAQ Driver"를 선택합니다. NIDAQ 드라이버가 해당 계측기에 대해서 설정되어 있지 않으면 해당 버튼이 회색으로 비활성화 됩니다.

오픈뷰 항목

오픈뷰에서는 실행될 트랜잭션 목록을 표시합니다. 각 트랜잭션은 NIDAQ 명령입니다.(NIDAQ 드라이버에서 C 함수에 대한 호출)

빈 트랜잭션을 더블클릭하면, Select a Function Panel 대화상자가 표시됩니다.

이 대화상자에서 실행할 함수를 선택합니다. 대화상자 하단의 텍스트 영역에는 현재 선택한 패널의 설명이 제공됩니다. 트리 계층구조에서 서로 다른 카테고리의 함수 패널을 조회할 수 있습니다. 왼쪽에 a+ 기호를 가진 폴더는 하위에 폴더 및 함수패널을 더 있음을 나타냅니다. a- 기호를 가진 항목은 현재의 폴더 또는 함수패널을 나타냅니다. 전체 트리를 완전히 확장하기 위해서는, 확장할 항목을 선택하고 *키를 클릭합니다.

함수를 선택하고 OK 버튼을 클릭하면, Edit Function Panel 대화상자가 표시됩니다. 이 대화상자에서 함수패널에 대한 값을 편집하고, 변수를 설정하며, 입출력 터미날을 자동으로 생성할 수 있습니다. Cancel 버튼을 클릭하면 전체 함수 패널 선택 프로세스가 취소됩니다.

Edit Function Panel 대화상자에서는 다음 필드가 제공됩니다.

Panel 탭:

Controls (대화상자의 상단) - 각 컨트롤은 함수로 제공되는 인자를 나타냅니다. 컨트롤 안의 값을 편집하여 인자에 대한 상수를 입력할 수 있습니다. 컨트롤의 이름은 함수패널 파일로부터 지정된 라벨입니다. 컨트롤에 마우스를 올려놓고 오른쪽 버튼을 클릭하면 도움말이 표시됩니다. 특정 함수패널에는 도움말이 제공되지 않을 수 있습니다.

Configuration 탭: (모든 함수에 대해서 이 탭이 제공되지는 않습니다.) - 함수의 인자에 대한 변수를 지정할 수 있습니다.

label name 그룹: 함수 패널 파일로부터 지정된 컨트롤의 이름

Parameter Type: - 인자의 종류와 형태를 지정합니다.

Parameter Value: Constant | Variable - 인자가 (Panel 탭에서)상수로 설정되었는지 또는 변수로서 C 함수의 입력인지 지정합니다. 인자가 반드시 Variable(어레이 타입등의) 이어야 하면 Parameter Value는 회색으로 비활성화됩니다. Variable 가 선택되면, Name 및 Create Terminal 필드가 인에이블됩니다.

Name - C 함수에 의해서 전달된 변수의 이름. 디폴트 상태에서, Name 은 함수패널 파일로부터 지정된 라벨이름으로 설정됩니다. variable 이 입력변수이면 이 필드는 UserFunctions을 호출할 수 있습니다. 이 UserFunctions은 값(나중에 함수호출에 전달될 수 있음), 변수 및 런타임시 연산될 표현식을 리턴합니다.

Create Terminal - 이 체크박스가 선택되면, 현재 생성되어 있지 않으면, 입력 및/또는 출력 터미날이 생성됩니다. Name 필드가 개별 터미날 이름(UserFunction 호출 또는 표현식)으로 설정되어 있으면 이 필드는 회색으로 비활성화됩니다.

Auto-Allocate Input - Parameter Type이 어레이 또는 Text 타입이면, 데이터를 회수할 함수에 보내기 위해서 메모리를 할당해야 합니다. 어레이 앨리먼트의 개수 또는 스트링 길이만큼 VEE가 할당해야 할 메모리 크기를 입력하십시오. 값을 충분히 크게 입력하는 것이 좋습니다. 이 체크박스를 체크하지 않고 입력터미날을 이용하여 메모리를 할당할 수도 있으나, 이 방법은 권장하지 않습니다.

기존 트랜잭션을 더블클릭하면, Edit Function Panel 대화상자가 표시되고 현재 선택된 함수 호출내용을 편집할 수 있습니다. ansaction, the Edit Function Panel dialog box will appear and then you can edit the currently selected call to the function.

오브젝트 메뉴

Edit Function - 현재 하이라이트된 트랜잭션을 수정합니다.

Add Function - 목록의 맨 마지막에 트랜잭션을 추가합니다.

Insert Function - 현재 하이라이트된 트랜잭션의 앞에 트랜잭션을 추가합니다.

Cut Function - 현재 하이라이트된 트랜잭션을 잘라내기(삭제) 합니다. 여기서 잘라낸 트랜잭션은 트랜잭션의 cut-and-paste" 버퍼에 저장됩니다.

Copy Function - 현재 하이라이트된 트랜잭션을 "cut-and-paste" 버퍼에 복사합니다.

Paste Function - 이전에 잘라내거나 복사된 트랜잭션을 붙여넣기 합니다.

Delete Func - 하이라이트된 트랜잭션을 리스트에서 삭제합니다.

Move Func Up – 하이라이트된 트랜잭션을 위로 이동합니다.

Move Func Down - 하이라이트된 트랜잭션을 아래로 이동합니다.

Instrument Help - NIDAQ 드라이버와 관련된 도움말을 제공합니다.

단축키

트랜잭션을 빠르게 삽입하기 위해서는, 트랜잭션에 커서를 위치시킵니다. 커서가 위치한 트랜잭션 다음에 트랜잭션을 삽입하기 위하여 Insert 키를 누릅니다.

트랜잭션을 빠르게 삭제(“kill”)하기 위해서는, 트랜잭션에 커서를 위치시키고 Delete 키를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 잘라내기 위해서는 CTRL+X를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 복사하기 위해서는 CTRL+C를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼에서 붙여넣기 위해서는 CTRL+V를 누릅니다.

트랜잭션 이전이나 다음으로 빠르게 이동하기 위해서는, 위 화살표 또는 아래 화살표를 누릅니다.

주의사항

NIDAQ는 Advanced I/O 기능을 제공하지 않습니다.

NIDAQ 함수호출은 VEE’s Bus I/O Monitor에 나타나지 않습니다.

NIDAQ로 전달되는 어레이 인자 및 텍스트 인자에 대한 메모리를 할당해야 합니다. 이들 인자에 대해 메모리가 충분히 할당되어 있지 않으면, 해당 함수 호출은 메모리에 덮어쓰기를 하고 General Protection Fault 또는 Segmentation Violation을 유발합니다. 항상 Auto-Allocate Input 기능을 사용하고 메모리 크기를 충분히 설정할 것을 권장합니다.

VEE는 init() 및 close()를 자동호출하여 세션을 관리하므로, 드라이버에서 제공되는 init()함수를 호출할 필요없습니다. 자세한 내용은 Advanced I/O 의 도움말을 참조하십시오.

NI-FGEN에 대한 일부 호출은 핸들을 생성합니다. 이들 핸들에 대해서는 주의할 내용이 있습니다. NI-FGEN를 참조하십시오.

NI-SCOPE의 일부 호출은 VEE와 호환되지 않는 웨이브폼을 리턴합니다. NI-SCOPE Fetch/Read 함수를 참조하십시오.

오브젝트 위치

I/O [image] Instrument Manager...

관련정보

Advanced I/O 메뉴항목, 컴포넌트 드라이버, Formula, Instrument Manager 대화상자 및 패널 드라이버, To Edit a Transaction 및 NI-DAQmx .


To/From Socket 오브젝트

네트워크에 접속된 컴퓨터에서 입출력을 위해서 사용하는 오브젝트

사용법

소켓은 프로세스 간에 통신을 하기 위해서 사용하는 툴입니다. To/From Socket 오브젝트는 트랜잭션 I/O를 사용합니다.

연결 또는 바인드할 포트를 지정해야 하며, 데이터를 읽거나 쓰기 위해서 To/From Socket 오브젝트에 하나 이상의 트랜잭션을 추가해야 합니다.

To/From Socket 행위:

READ - 지정된 인코딩과 포맷을 이용하여 데이터를 읽습니다.

WRITE - 지정된 인코딩 및 포맷을 이용하여 데이터를 씁니다.

EXECUTE - 소켓연결을 종료시키기 위해서 EXECUTE CLOSE 트랜잭션을 사용합니다.

WAIT - 다음 트랜잭션을 실행하기 전 까지 지정된 시간(초)만큼 기다립니다.

To/From Socket 인코딩:

TEXT - 다른 소프트웨어에서도 쉽게 편집하거나 사용할 수 있고 사람이 읽을 수 있는 데이터 타입으로 읽거나 씁니다. VEE 숫자 데이터는 쓰여질 때 자동으로 텍스트로 변환됩니다.

BYTE - 숫자 데이터를 바이너리 정수로 변환하고 LSB(least significant byte)를 씁니다.

CASE - 열거형 값이나 정수를 스트링으로 매핑하여 스트링으로 씁니다. 예를 들어, 에러번호를 받아서 에러메세지를 쓸 때 CASE를 사용합니다.

BINARY - 모든 데이터 타입을 해당 컴퓨터에 사용하는 바이너리 포맷으로 읽거나 씁니다.

BINBLOCK - IEEE 488.2 호환 지정된 길이의 블록헤더를 가진 모든 VEE 데이터 타입을 바이너리 파일로 읽거나 씁니다.

CONTAINER - 모든 데이터 타입을 VEE에서 사용하는 특정 포맷으로 읽거나 씁니다.

오픈뷰 항목

이 오브젝트의 오픈뷰에서는 포트연결 이나 바인딩, 타임아웃 시간 및 실행될 트랜잭션 목록을 제공합니다.

Connect/Bind Port - 이 버튼을 클릭하면 바인드모드와 연결모드를 토글합니다. Bind Port 모드는 VEE가 실행되어 연결을 기다리고 있는 컴퓨터의 소켓에 바인드합니다. Connect Port모드는 바운드 소켓을 원격컴퓨터에 연결합니다. 이와 관련된 텍스트 필드에서는 포트번호를 입력해야 합니다. 5000부터 6000까지의 포트번호를 사용하십시오.

Host Name - Bind Port 모드에서는, VEE가 실행되고 있는 호스트컴퓨터의 이름을 표시합니다. Connect Port 모드에서는, 접속할 원격컴퓨터의 호스트의 이름이나 IP 주소를 입력합니다.

Timeout - 바인딩 또는 연결까지 허용된 타임아웃 기간을 초 단위의 정수로 나타냅니다. 연결된 후에는, 이 시간은 모든 READ 및 WRITE 트랜잭션에 사용됩니다. 이 값을 0으로 설정하면, 타임아웃 시간이 무한대로 지정됩니다.

오브젝트 메뉴

Edit Trans – 현재 하이라이트된 트랜잭션을 수정합니다.

Add Trans - 목록의 맨 마지막에 트랜잭션을 추가합니다.

Insert Trans - 현재 하이라이트된 트랜잭션의 앞에 트랜잭션을 추가합니다.

Cut Trans - 현재 하이라이트된 트랜잭션을 잘라내기(삭제) 합니다. 여기서 잘라낸 트랜잭션은 트랜잭션의 cut-and-paste" 버퍼에 저장됩니다.

Copy Trans - 현재 하이라이트된 트랜잭션을 "cut-and-paste" 버퍼에 복사합니다.

Paste Trans - 이전에 잘라내거나 복사된 트랜잭션을 붙여넣기 합니다.

Delete Trans – 리스트에서 하이라이트된 트랜잭션을 삭제합니다.

Move Trans Up – 하이라이트된 트랜잭션을 위로 이동합니다.

Move Trans Down - 하이라이트된 트랜잭션을 아래로 이동합니다.

Print Trans - 현재 하이라이트된 트랜잭션을 설명하는 대화상자를 프린트합니다.

속성창

EolSequence - EOL ON을 사용하는 WRITE 트랜잭션의 끝에 전송되는 문자를 지정합니다. 이 항목에는 더블 인용부호로 둘러싼 크기가 0 이거나 1 이상인 ASCII 문자가 반드시 입력되어야 합니다. 디폴트 값은 "\n" 입니다.

ArraySeparator - WRITE TEXT 트랜잭션으로 작성된 어레이 앨리먼트를 분리하는데 사용하는 문자를 지정합니다. 이 항목의 입력값은 더블 인용부호로 입력되어야 합니다.

MultiFieldFormat 그룹: WRITE TEXT 트랜잭션에 대해서 멀티필드 데이터 타입용으로 다음과 같은 2 종류의 포맷팅 스타일을 제공합니다. 영향받는 데이터 타입은 Coord, Complex, PComplex 및 Spectrum 입니다.

Data Only - 각 멀티필드 항목을 괄호로 둘러쌓지 않고 컴마로 분리합니다. 복소수 2+2j는 2,2 로 포맷팅됩니다.

(...) Syntax - (디폴트)각 멀티필드 항목을 괄호로 묶고 컴마로 분리합니다. 복소수 2+2j가 (2,2)로 포맷팅됩니다.

ArrayFormat 그룹: 다차원 어레이를 포맷팅하는 방법을 지정합니다.

Linear - 어레이를 선형으로 정렬합니다.

Block - (디폴트)각 열의 끝에 EOL 문자를 사용하여 2 차원 이상의 블록으로 어레이 앨리먼트를 정렬합니다.

단축키

트랜잭션을 빠르게 삽입하기 위해서는, 트랜잭션에 커서를 위치시킵니다. 커서가 위치한 트랜잭션 다음에 트랜잭션을 삽입하기 위하여 Insert 키를 누릅니다.

트랜잭션을 빠르게 삭제(“kill”)하기 위해서는, 트랜잭션에 커서를 위치시키고 Delete 키를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 잘라내기 위해서는 CTRL+X를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 복사하기 위해서는 CTRL+C를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼에서 붙여넣기 위해서는 CTRL+V를 누릅니다.

트랜잭션 이전이나 다음으로 빠르게 이동하기 위해서는, 위 화살표 또는 아래 화살표를 누릅니다.

주의사항

소켓에 바인드하거나 연결하도록 설정된 To/From Socket 오브젝트는 연결이 발생할 때까지 타임아웃 범위 내에서 기다리는 동안 모든 VEE 쓰레드를 블록시킵니다.

여러 개의 To/From Socket오브젝트가 하나의 동일한 포트번호에 바인딩하도록 되어 있으면 해당 소켓을 공유합니다. 마찬가지로, 동일한 소켓에 연결하기 위해서 동일한 포트번호와 호스트이름으로 설정된 모든 오브젝트는 해당 소켓을 공유합니다. 공통으로 설정된 오브젝트 중에서 처음 연결하는 오브젝트에만 연결을 설정하기 위한 오버헤드가 발생합니다.

타임아웃의 값을 0으로 설정하면, 연결을 기다리는 시간을 무한대로 확장하여, 타임아웃을 사용하지 않습니다. 타임아웃이 발생하면 에러가 발생하고 VEE의 실행이 중지됩니다.

연결이 시도되었는데 원격 호스트가 존재하지 않거나 실행되지 않으면 타임아웃 값은 무시됩니다. 연결이 실제로 실패할 때까지 VEE 인터페이스가 약 1 분 동안 동작하지 않을 수 있습니다.

프로그램 실행이 중지되면 VEE 프로그램에서 만들어진 모든 소켓 연결이 끊어집니다. 일단 연결이 끊어지면, 서버와 클라이언트 오브젝트는 연결을 재설정하기 위해서 바인드/연결 프로토콜을 다시 실행해야 합니다.

모든 READ 트랜잭션은 지정된 양 만큼의 데이터를 타임아웃 내에서 다른 쓰레드를 블록합니다. READ IOSTATUS 트랜잭션을 사용하여 소켓에 데이터가 제공되는지 확인하여 READ 트랜잭션을 실행하면, READ 쓰레드에 의한 블록 현상을 최소화할 수 있습니다.

오브젝트 위치

I/O [image] To/From Socket

관련정보

Formula, 오브젝트 메뉴 및 To Edit a Transaction


To/From VXIplug&play 오브젝트

VXIplug&play 드라이버를 호출하는 트랜잭션을 사용하는 계측기로 데이터를 쓰거나 계측기로부터 데이터를 읽는 오브젝트

사용법

VXIplug&play 드라이버를 제공하는 계측기와 통신하기 위해서 To/From VXIplug&play 오브젝트를 사용합니다. VXI 계측기 및 일반 계측기에서 모두 사용할 수 있습니다.

To/From VXIplug&play 오브젝트를 사용하기 위해서는, I/O 메뉴에서 Instrument Manager를 실행하여 Instrument List창에서 계측기를 선택합니다. Create I/O Object 창에서Plug&play Driver를 선택합니다. 해당 계측기에 대해서 VXIplug&play 드라이버가 설치되어 있지 않으면, 이 버튼은 회색으로 비활성화되어 있습니다.

모든 VXIplug&play 드라이버가 모든 플랫폼에서 지원되지는 않습니다. 또한 일부 버전의 VTL/VISA(GPIB 카드와 함께 제공됨)도 모든 플랫폼에서 지원되지는 않습니다. 플랫폼에 따른 지원여부는 제공사로부터 확인해야 합니다.

오픈뷰 항목

오픈뷰에서 실행될 트랜잭션 목록이 제공됩니다. 각 트랜잭션은 VXIplug&play 명령어 입니다.(VXIplug&play 드라이버에서 C 함수를 호출)

빈 트랜잭션을 더블클릭하면 Select a Function Panel 대화상자가 출력됩니다.

이 대화상자에서 실행할 함수를 선택할 수 있습니다. 하단의 텍스트 영역에는 현재 선택한 함수 패널에 대한 설명이 표시됩니다. 트리 계층구조로 함수목록을 제공하므로 카테고리별로 함수 패널을 볼 수 있습니다. a+로 표시된 폴더 또는 함수는 하위에 다른 폴더나 함수를 가지고 있다는 표시이며, a-로 표시되면 폴더나 함수를 표시되고 있다는 표시입니다. 왼쪽에 f(x)가 있으면 함수패널(function panel)을 나타냅니다. 트리를 완전히 확장하기 위해서는 해당 항목을 선택하고 *키를 실행합니다.

함수를 선택하고 OK 버튼을 클릭하면, Function Panel 대화상자가 출력됩니다. 이 대화상자에서 함수 패널상의 값을 변경하고, 변수를 설정하고, 입출력 터미날을 자동으로 생성할 수 있습니다. 컨트롤이 없는 임의의 위치에서 마우스 오른쪽 버튼을 클릭하면 해당 함수에 대한 도움말이 표시됩니다. 컨트롤 위에서 마우스 오른쪽 버튼을 클릭하면 해당 컨트롤을 설명을 볼수 있습니다.

이 상태에서 Cancel 버튼을 클릭하면 함수패널선택 프로세스가 취소됩니다.

Edit Function Panel 대화상자에는 다음의 필드가 제공됩니다.:

Panel 탭:

Controls (대화상자의 상단) - 각 컨트롤은 함수에 대한 인자를 나타냅니다. 컨트롤에서 값을 편집하여 인자에 대한 상수값을 지정할 수 있습니다. 컨트롤의 이름은 함수 패널 파일에서 지정된 레이블입니다. 컨트롤에서 마우스 오른쪽 버튼을 클릭하면 해당 컨트롤에 대한 도움말을 볼 수 있습니다. 특정 함수 패널에 대한 컨트롤이 없을 수도 있습니다.

Session Handle - 각 계측기의 유일한 세션핸들을 표시합니다.

Status - 함수 패널을 실행할 때 에러가 발생하면 0 이 아닌 값을 표시합니다.

Function call (대화상자의 하단) - 오브젝트가 실행될 때 호출되는 C 함수(인자 포함). 이 명령어 스트링은 오브젝트의 오픈뷰에서 트랜잭션 형태로 보입니다.

Configuration 탭: (모든 함수에 대해서 이 탭이 제공되지는 않습니다.) - 함수 인자에 대한 변수를 지정합니다.

label name 그룹: 함수 패널 파일에서 지정된 컨트롤의 이름

Parameter Type: - 인자의 타입과 형태를 지정합니다.

Parameter Value: Constant | Variable - 인자가 상수로 설정되었는지(Panel 탭에서) 또는 C 함수의 변수로 설정되었는지 지정합니다. 인자가 변수이어야 한다면, Parameter Value 는 회색으로 비활성화됩니다. Variable 을 선택하면,

Name - C 함수에 의해 전달되는 변수의 이름. 디폴트 상태에서는 함수패널파일에서 지정된 레이블 이름으로 설정됩니다. 변수가 입력변수이면, 이 필드는 값(함수 호출시 전달될), 변수 및 실행시 연산되는 표현식을 리턴하는 UserFunction을 호출할 수 있습니다.

Create Terminal - 이 체크박스가 선택되면, 입출력 터미날이 없으면, 입력 및/또는 출력 터미날이 생성됩니다. Name 필드에 유효하지 않은 터미날이름(UserFunction 호출이나 표현식)을 사용하면 이 필드는 회색으로 비활성화됩니다.

Auto-Allocate Input - Parameter Type 이 어레이 또는 Text 타입이면, 데이터를 가져올 함수에 보낼 메모리를 할당해야 합니다. 어레이 앨리먼트의 개수 또는 스트링 길이를 수용할 수 있을 만큼 할당할 메모리 양을 VEE에게 알릴 크기 필드를 편집합니다. 충분한 크기를 할당하는 것이 안전합니다. 이 체크박스를 체크하지 않고 입력터미날에서 제공되는 값으로 메모리를 할당할 수 있지만, 이 방법은 권장하지 않습니다.

기존 트랜잭션을 클릭하면, Edit Function Panel 대화상자가 출력되어, 현재 선택된 함수 호출내용을 편집할 수 있습니다.

오브젝트 메뉴

Edit Function - 하이라이트된 함수를 편집합니다.

Add Trans - 함수를 추가합니다.

Insert Trans - 현재 선택된 함수 앞에 함수를 추가합니다.

Cut Trans - 현재 하이라이트된 함수를 잘라내기하여 "cut-and-paste" 버퍼에 저장합니다.

Copy Trans - 현재 선택된 함수를 "cut-and-paste" 버퍼에 복사합니다.

Paste Function - 이전에 잘라내거나 복사된 함수를 현재 포인터의 위치로 붙여넣기 합니다.

Delete Function – 현재 목록에서 하이라이트된 함수를 삭제합니다.

Move Func Up – 현재 하이라이트된 함수를 위로 이동합니다.

Move Func Down - 현재 하이라이트된 함수를 아래로 이동합니다.

Instrument Help - VXIplug&play 드라이버 관련 도움말을 제공합니다. 이 내용은 하드웨어 제조사에 의해서 제공되며 각 드라이버에 따라서 제공됩니다.

단축키

트랜잭션을 빠르게 삽입하기 위해서는, 트랜잭션에 커서를 위치시킵니다. 커서가 위치한 트랜잭션 다음에 트랜잭션을 삽입하기 위하여 Insert 키를 누릅니다.

트랜잭션을 빠르게 삭제(“kill”)하기 위해서는, 트랜잭션에 커서를 위치시키고 Delete 키를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 잘라내기 위해서는 CTRL+X를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 복사하기 위해서는 CTRL+C를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼에서 붙여넣기 위해서는 CTRL+V를 누릅니다.

트랜잭션 이전이나 다음으로 빠르게 이동하기 위해서는, 위 화살표 또는 아래 화살표를 누릅니다.

속성창

IgnoreCautionsReturned - 이 체크박스가 선택되면, 임의의 제조사의 VXIplug&play 드라이버를 호출하는 함수에서 발생되는 경고에 의한 경고대화상자나 출력되지 않아서 프로그램이 일시 실행중지되지 않습니다. 일반적으로, 이 체크박스는 VXIplug&play 로부터 경고를 받고 경고 조건을 취급하는 프로그램을 변경한 경우에만 체크됩니다.

Configured Instrument - Instrument Manager 에서 설정된 이름에 관한 편집할 수 없는 정보를 제공합니다.

주의사항

Edit Function Panel 대화상자에서, Panel 탭의 배경에서 마우스 오른쪽 버튼을 클릭하면 함수 패널에 대한 도움말이 표시됩니다.

컨트롤에서 마우스 오른쪽 버튼을 클릭하면 인자에 대한 설명이 표시됩니다.

VXIplug&play 는 고급 I/O 기능을 지원하지 않습니다. 예를 들어, 라이브 모드(Live) 설정기능 등이 제공되지 않습니다.

VXIplug&play 함수 호출은 VEE의 Bus I/O Monitor에 표시되지 않습니다.

하나의 프로그램에서 특정 계측기와 통신하는데 VXIplug&play 함수 호출을 Direct I/O 또는 Instrument Panels등과 혼합하여 사용할 수 없습니다. 그러나, 동일한 프로그램이라도, 서로 다른 계측기에는 다른 형태의 I/O를 사용할 수 있습니다.

VXIplug&play 드라이버로 전달되는 어레이 인자 또는 텍스트 인자에 대한 메모리를 할당해야 합니다. 이들 인자에 대해서 메모리가 충분히 할당되지 않으면, 함수가 메모리에 중복쓰기(Overwrite)하여 General Protection Fault 또는 Segmentation Violation 에러의 원인이 됩니다. VXIplug&play 공유 라이브러리는 VEE에 직접 링크되어 있으므로, 이러한 상황이 발생되면 VEE가 크래시되면서 종료됩니다. 항상 Auto-Allocate Input 기능을 사용하고 메모리를 충분히 할당할 것을 권장합니다.

VEE는 init()와 close()를 호출하고 세션핸들을 스스로 관리하므로, 드라이버에서 제공되는 init() 또는 autoconnect()를 호출할 필요없습니다. 자세한 내용은 Advanced I/O 도움말을 참조하십시오.

오브젝트 위치

I/O [image] Instrument Manager...

관련정보

Advanced I/O, 컴포넌트 드라이버, Formula, Instrument Manager 대화상자 및 패널 드라이버.

Plug&play Driver 오브젝트 사용하기 및 트랜잭션 편집하기


Toggle Control 오브젝트

1(누름, 체크됨, 선택됨) 이나 0을 출력하는 오브젝트. 토글 컨트롤 오브젝트는 다양한 디스플레이 포맷을 가지고 있지만, 모두 동일한 방식으로 동작합니다.

사용법

1 또는 0을 출력할 때 토글 컨트롤 오브젝트를 사용합니다. 토글 컨트롤 오브젝트는 일반적으로 If/Then 오브젝트에 A==1 조건식을 입력하여 함께 사용합니다.

속성창

Format : - 토글컨트롤 오브젝트의 외형과 항목을 선택하는 방법을 지정합니다. 디폴트 포맷은 메뉴에서 선택한 오브젝트 입니다.

Button - 버튼을 눌러서 선택합니다.

Check Box - 체크박스를 클릭하여 선택합니다. 체크박스가 체크되면 1 이 출력됩니다.

Vertical Paddle - 수직 패들 스위치. 스위치를 위로 올려서 초록색 점이 나타나면 1 입니다.

Horizontal Paddle - 수평 패들 스위치. 초록색 점이 나타나면 1 입니다.

Vertical Rocker - 수직 로커. 초록색 점이 나타나면 1 입니다.

Horizontal Rocker - 수평 로커. 초록색 점이 나타나면 1 입니다.

Vertical Slide - 수직 슬라이드 스위치. 초록색 점이 나타나면 1 입니다.

Horizontal Slide - 수평 슬라이드 스위치. 초록색 점이 나타나면 1 입니다.

<Custom> - 이 항목으로 설정하면, CustomOn 및 CustomOff 속성에서 각각 On 및 Off에 해당하는 비트맵 이미지를 지정할 수 있습니다.

동작 그룹:

Wait for Input - 이 속성이 참(True)이면, 해당 오브젝트의 값이 변경될 때까지 실행하지 않고 기다립니다. 체크박스가 체크되지 않았으면, 해당 오브젝트는 조건이 만족되자마자 실행하며, 현재 설정된 값이 출력됩니다. 디폴트 값은 거짓(False)입니다.

AutoExecute - 이 속성이 참이면, 값이 선택될 때, 해당 오브젝트가 실행되며, 프로그램의 나머지 부분의 실행을 시작합니다. 프로그램이 이미 실행되고 있으면, 이 속성은 무시됩니다. 디폴트 값은 거짓입니다.

모양 그룹:

Scaled - 이 속성이 참이면, 토글이미지가 오브젝트의 크기로 스케일됩니다. 이 속성이 거짓이면, 토글이미지가 왼쪽으로 정렬됩니다. 디폴트 값은 거짓입니다.

Show Caption - 이 속성이 참이면, 오브젝트의 오픈뷰에 캡션이 보입니다. 이 캡션에는 타이틀바의 내용과 동일한 텍스트가 표시됩니다.

Initialization 그룹:

InitialValue - 초기에 설정될 값을 지정합니다. 디폴트 값은 0(Zero)입니다.

InitializeAtPreRun - 이 속성이 참이면, PreRun시 InitialValue에 지정된 값으로 초기화됩니다. 디폴트 값은 거짓입니다.

InitializeAtActivate - 이 속성이 참이면, 해당 오브젝트가 Activate시 InitialValue 값으로 초기화됩니다. 디폴트 값은 거짓입니다.

CustomOnPicture - 토글컨트롤이 1을 출력하는 상태에 보일 그래픽 이미지를 선택합니다.

CustomOffPicture - 토글컨트롤이 0을 출력하는 상태에 보일 그래픽 이미지를 선택합니다.

Preview - 현재 선택된 그래픽 이미지를 디스플레이

여기서 표시되는 폴더는 VEE 설치폴더 아래의 bitmap 폴더입니다. 다른 폴더에서 파일을 선택하기 위해서는 Browse…버튼을 클릭합니다.

VEE는 파일포맷을 결정하기 위해서 파일을 조회합니다. 현재 지원되는 포맷은 다음과 같습니다:

Bitmaps (*.BMP)

GIF87a (*.GIF)

Windows MetaFile (*.WMF)

Portable Network Graphic (*.PNG)

VEE 프로그램 설치폴더 아래의 bitmap 폴더에서 디폴트 비트맵 파일이 제공됩니다.

주의사항

IInitialize는 UserObject 내부의 값을 초기화하는데 자주 사용됩니다. 초기값은 Default Value 컨트롤핀에 초기값을 설정할 수도 있습니다.

Default Value, Reset, Enable Editing 및 Disable Editing 등의 컨트롤핀을 추가할 수 있습니다.

프로그램 실행시 Default Value 입력에 현재 값을 설정할 수 있습니다. 이것의 입력에는 Int32 스칼라 값이 제공되어야 합니다. 0을 제공하면 토글이 Off 되며, 다른 값을 입력하면 토글이 On 됩니다.

프로그램 실행시 Reset 입력에 임의의 값을 제공하면 해당 오브젝트가 0 으로 초기화됩니다. Reset 입력핀의 실제 데이터는 무시됩니다.

Enable Editing 및 Disable Editing 컨트롤 입력핀을 통해서는 해당 토글 오브젝트의 오픈뷰 상태에서 위치를 변경할 수 있는지 없는지를 설정합니다.

오브젝트 위치

Data [image] Toggle Control

관련정보

Complex, Constant, Coord, Date/Time, Selection Control, If/Then/Else, UInt8, Int16, Int32, PComplex, Real32, Real64 및 Text.


Toggle Breakpoint 메뉴항목

선택한 오브젝트에서 브레이크포인트의 실행을 설정하거나 초기화합니다.

사용법

Toggle Breakpoint는 브레이크포인트를 설정하거나 초기화 하기 위한 디버깅 툴로 사용합니다. 오브젝트를 선택하고 Toggle Breakpoint를 선택합니다. 이것은 브레이크포인트가 없는 선택된 오브젝트에 브레이크포인트를 설정하고, 브레이크포인트가 있는 선택된 오브젝트에 브레이크포인트를 초기화합니다.

오브젝트에 브레이크포인트를 설정하면 해당 오브젝트 직전에서 프로그램의 실행을 중지합니다. 계속 실행하기 위해서는, VEE 툴바에 있는 Resume 버튼을 누릅니다; 브레이크포인트를 가진 오브젝트 만을 실행하기 위해서는, Step 버튼중의 하나를 누릅니다.

브레이크포인트를 설정하고 나면, 오브젝트는 색상을 가진 외곽 테두리(디폴트로 오렌지색)로 하이라이트 됩니다.

주의사항

하나의 오브젝트에 브레이크포인트를 설정하기 위해서는, 오브젝트의 속성창에 있는 Breakpoint 선택을 사용합니다.

오브젝트가 Toggle Breakpoint를 통하여 브레이크포인트가 설정되면, 속성창에 있는BreakpointEnabled 항목이 True로 변경됩니다.

브레이크포인트는 프로그램과 함께 저장됩니다. 프로그램이 열릴 때 브레이크포인트가 다시 나타나지 않도록 하기 위해서는, 프로그램을 저장하기 전에 Clear All Breakpoints를 사용하십시오.

단축키

브레이크포인트를 토글하기 위해서는, 설정하고자 하는 오브젝트를 하이라이트 하고 CTRL+B를 누릅니다.

오브젝트 위치

Debug [image] Toggle Breakpoint

관련정보

브레이크포인트 활성화, 속성창 (오브젝트), 모든 브레이크포인트 해제하기, Run/Resume 메뉴항목, Select All 메뉴항목, Show Data Flow 항목, Show Execution Flow 항목, Step Into 메뉴항목, Step Over 메뉴항목 및 Step Out 메뉴항목.

브레이크포인트 컨트롤하기


Toolbar 메뉴항목

VEE Toolbar의 보이기를 컨트롤하는 View 메뉴에 있는 토글 함수의 항목

사용법

Toolbar는 VEE 툴바를 on 또는 off하기 위해 사용합니다. 툴바가 on된 경우에는 체크마크가 Toolbar 항목의 왼쪽에 나타납니다.

툴바가 나타나 있을 때는, 새로운 VEE 프로그램을 열거나, 기존에 있는 VEE 프로그램 파일을 열고 또는 VEE 프로그램의 실행을 시작하고 일시 정지하고 중지하는 것 같은 VEE 프로그램을 작성하고 디버깅할 수 있는 단축키를 제공합니다.

Toolbar 버튼 위에 마우스 커서를 위치하여 Toolbar 버튼을 선택할 수 있습니다; 버튼 아래에 툴에 대한 팁이 나타납니다. 툴팁은 버튼의 기능에 대한 간략한 설명입니다. 동시에 Toolbar 버튼의 기능에 대한 설명이 VEE 작업공간의 하단에 있는 Status Bar에도 나타납니다.

오브젝트 위치

View [image] Toolbar

관련정보

Status Bar 메뉴항목.


To Printer 오브젝트

데이터를 프린터로 보내는 오브젝트

사용법

다양한 인코딩 및 포맷을 사용하여 데이터를 프린터로 보낼 때 To Printer 오브젝트를 사용하십시오.

To Printer 행위:

WRITE - 지정된 인코딩 및 포맷으로 데이터를 프린트합니다.

WAIT - 다음 트랜잭션을 실행하기 까지 지정된 초 시간 동안 기다립니다.

To Printer 인코딩:

대부분의 경우에, 데이터를 프린트하기 위해서 TEXT 또는 CASE 인코딩을 사용해야 합니다. 다른 인코딩 방식은 고급 내용을 설정해야 합니다.

TEXT - 사람이 읽을 수 있도록 모든 데이터 종류를 파일에 기록합니다. 파일에 쓸 때 VEE 숫자 데이터는 자동적으로 텍스트로 변환됩니다.

BYTE - 숫자 데이터를 정수로 변환하고 가장 중요하지 않은 바이트(LSB)를 씁니다.

CASE - 열거형 값이나 정수를 스트링으로 매핑하여 스트링을 씁니다. 예를 들어, 에러번호를 받아들여 에러메시지를 쓸 때 CASE 인코딩을 사용합니다.

BINARY - 컴퓨터 CPU 특성에 따른 바이너리 포맷으로 모든 데이터 타입을 씁니다.

BINBLOCK - IEEE 488.2 의 한정된 크기의 블록헤더를 가진 바이너리 파일에 모든 VEE 데이터 타입을 씁니다.

CONTAINER - 컴퓨터 특성에 따른 텍스트 포맷으로 모든 데이터 타입을 씁니다.

오픈뷰 항목

오픈뷰에서는 실행될 트랜잭션의 목록을 표시합니다.

오브젝트 메뉴

Edit Trans – 현재 하이라이트된 트랜잭션을 수정합니다.

Add Trans - 목록의 맨 마지막에 트랜잭션을 추가합니다.

Insert Trans - 현재 하이라이트된 트랜잭션의 앞에 트랜잭션을 추가합니다.

Cut Trans - 현재 하이라이트된 트랜잭션을 잘라내기(삭제) 합니다. 여기서 잘라낸 트랜잭션은 트랜잭션의 cut-and-paste" 버퍼에 저장됩니다.

Copy Trans - 현재 하이라이트된 트랜잭션을 "cut-and-paste" 버퍼에 복사합니다.

Paste Trans - 이전에 잘라내거나 복사된 트랜잭션을 붙여넣기 합니다.

Delete Trans – 리스트에서 하이라이트된 트랜잭션을 삭제합니다.

Move Trans Up – 하이라이트된 트랜잭션을 위로 이동합니다.

Move Trans Down - 하이라이트된 트랜잭션을 아래로 이동합니다.

Print Trans - 현재 하이라이트된 트랜잭션을 설명하는 대화상자를 프린트합니다.

속성창

EolSequence - EOL ON을 사용하는 WRITE 트랜잭션의 끝에 전송되는 문자를 지정합니다. 이 항목에는 더블 인용부호로 둘러싼 크기가 0 이거나 1 이상인 ASCII 문자가 반드시 입력되어야 합니다. 디폴트 값은 "\n" 입니다.

ArraySeparator - WRITE TEXT 트랜잭션으로 작성된 어레이 앨리먼트를 분리하는데 사용하는 문자를 지정합니다. 이 항목의 입력값은 더블 인용부호로 입력되어야 합니다.

MultiFieldFormat 그룹: WRITE TEXT 트랜잭션에 대해서 멀티필드 데이터 타입용으로 다음과 같은 2 종류의 포맷팅 스타일을 제공합니다. 영향받는 데이터 타입은 Coord, Complex, PComplex 및 Spectrum 입니다.

Data Only - 각 멀티필드 항목을 괄호로 둘러쌓지 않고 컴마로 분리합니다. 복소수 2+2j는 2,2 로 포맷팅됩니다.

(...) Syntax -(디폴트)각 멀티필드 항목을 괄호로 묶고 컴마로 분리합니다. 복소수 2+2j가 (2,2)로 포맷팅됩니다.

ArrayFormat 그룹: 다차원 어레이를 포맷팅하는 방법을 지정합니다.

Linear - 어레이를 선형으로 정렬합니다.

Block - (디폴트)각 열의 끝에 EOL 문자를 사용하여 2 차원 이상의 블록으로 어레이 앨리먼트를 정렬합니다.

주의사항

WRITE TEXT 트랜잭션을 이용하여 프린트하는 경우에는, To Print 오브젝트는 임베드된 제어문자를 가진 ASCII 텍스트를 프린트할 수 없습니다. 대신 To File 오브젝트를 이용하고, 파일이름 입력필드에 LPT1 등의 포트번호를 입력합니다.

사용할 프린터를 설정하기 위해서는 Print Setup 오브젝트를 이용하십시오.

프로그램 안의 첫번째 To Print 오브젝트가 실행되면, 프린트를 시작합니다. 프린트는 프로그램 안의 모든 To Print 오브젝트가 공유하므로, 이들의 출력이 시퀀스핀에 출력됩니다.

프린트는 PostRun이나 EXECUTE CLOSE 트랜잭션이 실행될 때까지 또는 To Print 오브젝트의 End Job 컨트롤 입력핀이 활성화될 때까지 오픈 상태를 유지합니다. PostRun은 프로그램 안의 모든 쓰레드가 실행을 종료하거나 Stop을 2 번 클릭하면 발생합니다. End Job 컨트롤 핀은 오브젝트 메뉴에어 Add Control Input을 실행하여 추가할 수 있습니다.

단축키

트랜잭션을 빠르게 삽입하기 위해서는, 트랜잭션에 커서를 위치시킵니다. 커서가 위치한 트랜잭션 다음에 트랜잭션을 삽입하기 위하여 Insert 키를 누릅니다.

트랜잭션을 빠르게 삭제(“kill”)하기 위해서는, 트랜잭션에 커서를 위치시키고 Delete 키를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 잘라내기 위해서는 CTRL+X를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 복사하기 위해서는 CTRL+C를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼에서 붙여넣기 위해서는 CTRL+V를 누릅니다.

트랜잭션 이전이나 다음으로 빠르게 이동하기 위해서는, 위 화살표 또는 아래 화살표를 누릅니다.

오브젝트 위치

I/O [image] To [image] Printer

관련정보

Default Preferences 대화상자, Formula, To, To 메뉴항목, To File, 프린터로 데이터 전송하기 및 트랜잭션 편집하기


To String 오브젝트

포맷팅된 텍스트를 스트링으로 쓰는데 트랜잭션을 사용하는 오브젝트

사용법

트랜잭션을 사용하여 포맷팅된 텍스트를 생성하는데 To String 오브젝트를 사용하십시오.

To String 트랜잭션에 의해서 하나의 스트링만 생성되면, 출력컨테이너는 스트링 스칼라입니다. 하나 이상의 스트링이 생성되면, 출력컨테이너는 Array 1D입니다.

"EOL ON"을 사용하는 WRITE 트랜잭션은 현재의 출력 스트링을 종료시키며, To File 오브젝트의 다음 트랜잭션은 출력 컨테이너의 다음 어레이 앨리먼트에 데이터를 씁니다. 프로그래머는 End Of Line (EOL) 문자를 지정할 필요는 없습니다.

"EOL OFF" 를 사용하면 출력스트링을 종료하지 않으므로, 현재 출력스트링의 끝에 다음 WRITE 트랜잭션에서의 쓰기 내용이 첨부됩니다. To File 오브젝트의 맨 마지막 트랜잭션은 “EOL” 모드의 설정에 관계없이 항상 출력스트링을 종료합니다.

To String 행위:

WRITE - 지정된 인코딩 및 포맷으로 데이터를 씁니다.

WAIT - 다음 트랜잭션을 실행하기 까지 지정된 초 시간 동안 기다립니다.

To String 인코딩:

대부분의 경우에, TEXT인코딩 방식을 이용하여 데이터를 써야 합니다.

TEXT - 사람이 읽을 수 있도록 모든 데이터 종류를 파일로 씁니다. 파일에 쓸 때 VEE 숫자 데이터는 자동적으로 텍스트로 변환됩니다.

BYTE - 숫자 데이터를 바이너리 폼으로 변환하고 LSB에 매핑되는 ASCII 텍스트로 씁니다. 예를 들어, 다음 트랜잭션은 문자 A(십진수로 ASCII 65 값)를 씁니다.

WRITE BYTE 65

CASE - 열거형 값이나 정수를 스트링으로 매핑하여 스트링을 씁니다. 예를 들어, 에러번호를 받아들이고 에러메세지를 쓰기 위해서는 CASE를 사용합니다.

오픈뷰 항목

오픈뷰에서는 실행할 트랜잭션 목록을 표시합니다.

오브젝트 메뉴

Edit Trans – 현재 하이라이트된 트랜잭션을 수정합니다.

Add Trans - 목록의 맨 마지막에 트랜잭션을 추가합니다.

Insert Trans - 현재 하이라이트된 트랜잭션의 앞에 트랜잭션을 추가합니다.

Cut Trans - 현재 하이라이트된 트랜잭션을 잘라내기(삭제) 합니다. 여기서 잘라낸 트랜잭션은 트랜잭션의 cut-and-paste" 버퍼에 저장됩니다.

Copy Trans - 현재 하이라이트된 트랜잭션을 "cut-and-paste" 버퍼에 복사합니다.

Paste Trans - 이전에 잘라내거나 복사된 트랜잭션을 붙여넣기 합니다.

Delete Trans – 리스트에서 하이라이트된 트랜잭션을 삭제합니다.

Move Trans Up – 하이라이트된 트랜잭션을 위로 이동합니다.

Move Trans Down - 하이라이트된 트랜잭션을 아래로 이동합니다.

Print Trans - 현재 하이라이트된 트랜잭션을 설명하는 대화상자를 프린트합니다.

속성창

EolSequence - EOL ON을 사용하는 WRITE 트랜잭션의 끝에 전송되는 문자를 지정합니다. 이 항목에는 더블 인용부호로 둘러싼 크기가 0 이거나 1 이상인 ASCII 문자가 반드시 입력되어야 합니다. 디폴트 값은 "\n" 입니다.

 ArraySeparator - WRITE TEXT 트랜잭션으로 작성된 어레이 앨리먼트를 분리하는데 사용하는 문자를 지정합니다. 이 항목의 입력값은 더블 인용부호로 입력되어야 합니다.

MultiFieldFormat 그룹: WRITE TEXT 트랜잭션에 대해서 멀티필드 데이터 타입용으로 다음과 같은 2 종류의 포맷팅 스타일을 제공합니다. 영향받는 데이터 타입은 Coord, Complex, PComplex 및 Spectrum 입니다.

Data Only - 각 멀티필드 항목을 괄호로 둘러쌓지 않고 컴마로 분리합니다. 복소수 2+2j는 2,2 로 포맷팅됩니다.

(...) Syntax - (디폴트)각 멀티필드 항목을 괄호로 묶고 컴마로 분리합니다. 복소수 2+2j가 (2,2)로 포맷팅됩니다.

ArrayFormat 그룹: 다차원 어레이를 포맷팅하는 방법을 지정합니다.

Linear - 어레이를 선형으로 정렬합니다.

Block - (디폴트)각 열의 끝에 EOL 문자를 사용하여 2 차원 이상의 블록으로 어레이 앨리먼트를 정렬합니다.

사용예

To String 오브젝트는 TEXT 트랜잭션이 동작하는 방법을 관찰할 수 있는 유용한 디버깅 툴입니다. Logging AlphaNumeric 오브젝트를 To String 오브젝트에 연결하면 즉시 결과를 관찰할 수 있습니다.

단축키

트랜잭션을 빠르게 삽입하기 위해서는, 트랜잭션에 커서를 위치시킵니다. 커서가 위치한 트랜잭션 다음에 트랜잭션을 삽입하기 위하여 Insert 키를 누릅니다.

트랜잭션을 빠르게 삭제(“kill”)하기 위해서는, 트랜잭션에 커서를 위치시키고 Delete 키를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 잘라내기 위해서는 CTRL+X를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼로 복사하기 위해서는 CTRL+C를 누릅니다.

트랜잭션을 "cut-and-paste" 버퍼에서 붙여넣기 위해서는 CTRL+V를 누릅니다.

트랜잭션 이전이나 다음으로 빠르게 이동하기 위해서는, 위 화살표 또는 아래 화살표를 누릅니다.

오브젝트 위치

I/O [image] To [image] String

관련정보

Formula, To 메뉴항목, To File, 숫자를 스트링으로 변환하기 및 트랜잭션 편집하기


Type Conversion 영역

Function & Object Browser 대화사장에 있는 Built-in Functions 영역

사용법

Type Conversion은 다음 함수들을 제공합니다.

asClrType(x, t)
asComplex(x)
asCoord(x)
asInt16(x)
asInt32(x)
asPComplex(x)
asReal32(x)
asReal64(x)
asText(x)
asUInt8(x)
asVariant(x)
asVariantBool(x)
asVariantCurrency(x)
asVariantDate(x)
asVariantEmpty(x)
asVariantError(x)
asVariantNull(x)
isVariant(x)
isVariantBool(x)
isVariantCurrency(x)
isVariantDate(x)
isVariantEmpty(x)
isVariantError(x)
isVariantNull(x)
typeName(x)

오브젝트 위치

Location: Device [image] Function & Object Browser

Type: Built-in Functions
Category: Type Conversion

관련정보

Copyright (c) 1991-2007 Agilent Technologies, Inc.


UInt8 오브젝트

1 바이트 부호가 없는 상수 스칼라 정수 또는 1 차원 어레이를 출력하는 오브젝트

사용법

UInt8 오브젝트는 정수 상수를 설정하거나 사용자가 값을 입력할 수 있습니다. 값을 입력하기 위해서는 입력필드를 클릭하십시오.

사용예

UInt8 를 패널뷰 상에 나타나는 입력 대화상자로 사용하기 위해서는, UInt8 오브젝트의 이름을 Enter the number of seconds to delay:와 같이 설정합니다. 사용자는 입력 필드에 요청한 정보를 입력합니다.

UInt8 오브젝트에 12*24를 입력하면, 이것을 연산하여 UInt8 결과값을 디스플레이합니다.

속성창

DataShape - 출력되어야 할 값의 데이터 형태를 설정합니다. 입력할 수 있는 값은 스칼라 또는 Array 1D 형태입니다.

 ArraySize: - DataShape 1D Array를 선택한 경우에, ArraySize는 어레이의 길이를 설정합니다.

 ArraySizeFixed - True로 설정하면, 어레이에는 라인을 추가하거나 삭제할 수 없습니다. 데이터 형태가 DataShape 1D Array인 경우에만 사용할 수 있습니다.

 ShowArrayIndices -True로 설정하면, 어레이에 있는 각 라인은 인덱스됩니다. 데이터 형태가 DataShape 1D Array인 경우에만 사용할 수 있습니다. 디폴트 값은 True입니다.

Wait for Input - True로 설정하면, 오브젝트는 값이 변경되기 전까지는 동작하지 않습니다. 속성을 False로 변경하면, 오브젝트는 제한사항을 만나는 즉시 동작하고 현재 선택된 값을 출력합니다. 디폴트 값은 False입니다.

 AutoExecute - True로 설정하면, 값이 선택되면 나머지 프로그램을 실행합니다. 만약 프로그램이 실행중이라면, AutoExecute는 무시됩니다. 디폴트 값은 False입니다.

InitialValue - 설정되어야 할 값을 지정합니다. 디폴트 값은 0입니다.

 InitializeAtPreRun - True로 설정하면, InitialValue가 실행 직전에 설정됩니다. 디폴트 값은 False입니다.

 InitializeAtActivate - True로 설정하면, InitialValue가 활성화될 때 설정됩니다. 디폴트 값은 False입니다.

NumberFormat:

Global Format - 디폴트 포맷을 사용합니다. 디폴트 값은 on 입니다

Integer: - Global Format이 off 되어 있으면, 오브젝트에 표시하는 숫자형식을 실수로 지정합니다. Decimal (예, 42), Octal (예, #Q52), Hexadecimal (예, #H2a), 및 Binary (예, #B00101010) 등을 선택할 수 있습니다. 디폴트 값은 Decimal입니다.

주의사항

IInitialize는 UserObject내의 값을 초기화하기 위해 자주 사용합니다. 초기값을 설정하는 다른 방법은 Default Value 컨트롤핀을 사용하는 것입니다.

컨트롤 입력은 Default Value, Reset, Enable Editing 또는 Disable Editing등을 추가할 수 있습니다.

Default Value 입력은 프로그램 실행시 현재의 값을 변경할 수 있습니다. Scalar 또는 Array 1D 형태의 정수를 입력할 수 있습니다. 상수는 입력데이터의 형태를 매칭시키기 위하여 재구성됩니다.

Reset 입력은 프로그램 실행시 값을 0으로 설정합니다. 상수가 Array 1D로 설정되면, 모든 값은 0으로 설정됩니다. Reset 입력터미날에서 제공되는 실제 데이터는 무시됩니다.

Enable Editing과 Disable Editing 입력은 프로그램 실행시 오브젝트의 오픈뷰에서 값의 변경여부를 제어합니다.

Real64가 어레이로 설정되어 있더라도 InitialValue 필드는 항상 스칼라입니다.

오브젝트 위치

Data [image] Constant [image] UInt8

관련정보

Alloc UInt8, Complex, Constant, Coord, Date/Time, Selection Control, Default Preferences 대화상자, Int16, Int32, PComplex, Real32, Real64, Text 및 Toggle Control.

상수 데이터 사용하기


UnBuild Complex 오브젝트

복소수의 실수와 허수 컴포넌트를 Real64 숫자로 출력하는 오브젝트

사용법

UnBuild Complex는 직교좌표로 표시되는 복소수에서 실수와 허수 컴포넌트를 추출하기 위해 사용합니다.

주의사항

re(x) 및 imag(x)함수 또는 오브젝트를 사용하여 복소수의 컴포넌트를 추출할 수도 있습니다.

입력값이 매핑되어 있을지라도 출력값은 매핑되지 않습니다.

오브젝트 위치

Data [image] UnBuild Data [image] Complex

관련정보

Build Complex, UnBuild Data, UnBuild PComplex, 속성창 (오브젝트) 및 오브젝트 메뉴


UnBuild Coord 오브젝트

좌표값을 Real64 숫자로 출력하는 오브젝트

사용법

UnBuild Coord는 좌표 타입의 데이터에서 x, y, z ...값을 추출하기 위해 사용합니다. z와 다른 차원의 좌표용으로 출력을 추가할 수 있습니다. 출력되는 숫자는 입력 데이터의 좌표 차원의 숫자와 동일해야 합니다.

오브젝트 위치

Data [image] UnBuild Data [image] Coord

관련정보

Build Coord, UnBuild Data, 속성창 (오브젝트) 및 오브젝트 메뉴


UnBuild Data 메뉴항목

메뉴 항목

사용법

UnBuild는 데이터 타입을 변환하는 오브젝트를 다음과 같이 제공합니다:

Coord

Complex

PComplex

Waveform

Spectrum

Record

오브젝트 위치

Data [image] UnBuild Data

관련정보

Access Array 메뉴항목, Build Data, UnBuild Complex, UnBuild Coord, UnBuild PComplex, UnBuild Record, UnBuild Spectrum, UnBuild Waveform 및 오브젝트 메뉴


UnBuild PComplex 오브젝트

PComplex의 크기와 위상 컴포넌트를 추출하여 Real64 숫자로 출력하는 오브젝트

사용법

UnBuild PComplex는 PComplex에서 크기와 위상 컴포넌트를 추출하기 위해 사용합니다.

주의사항

mag(x) 및 phase(x)함수 또는 오브젝트를 사용하여 PComplex의 컴포넌트를 추출할 수도 있습니다.

입력값이 매핑되어 있을지라도 출력값은 매핑되지 않습니다.

오브젝트 위치

Data [image] UnBuild Data [image] PComplex

관련정보

Build PComplex, Default Preferences 대화상자, UnBuild Complex, UnBuild Data, 속성창 (오브젝트) 및 오브젝트 메뉴


UnBuild Record 오브젝트

레코드를 언빌드하여 각각의 컴포넌트를 복구하는 오브젝트

사용법

UnBuild Record는 레코드에서 데이터 컴포넌트를 추출하고 (A, B 등), 각 컴포넌트에 대한 Name List 와 Type List를 얻기 위해 사용합니다.

Name List 출력핀은 입력된 레코드의 필드이름에서 모든 이름을 텍스트 어레이로 출력합니다.

Type List 출력핀은 입력된 레코드에서 모든 데이터 타입을 텍스트 어레이로 출력합니다.

A, B, 등의 출력핀은 레코드에서 언빌드한 개별적인 데이터 컴포넌트를 출력합니다.

주의사항

이 오브젝트에는 임의의 숫자만큼 출력핀을 추가할 수 있습니다. 각 출력핀의 이름은 레코드의 필드 이름과 일치해야 합니다. 필드 이름은 대소문자를 구분하지 않습니다. (소문자와 대문자는 동일하게 처리됩니다.)

UnBuild Record, SubRecord, Get Field, 및 From DataSet 오브젝트의 차이점은 다음과 같습니다.

UnBuild Record 오브젝트는 입력된 레코드 필드에 대한 Name List 와 Type List을 출력합니다. UnBuild Record 오브젝트에 있는 다른 출력(선택사항)인 A, B 등은 복수의 Get Field 오브젝트가 출력하는 것과 같이 동일한 결과를 출력합니다.

Get Field 오브젝트는 레코드를 언빌드하기 위해 도트 구문(A.B)을 사용하는 Formula 오브젝트와 같이 동작합니다. Get Field는 레코드 데이터에서 A.B.C와 같은 표현식을 사용하여 한번에 레코드를 언빌드할 수 있습니다. 이 프로세스에는 2개의 UnBuild Record가 필요합니다.

SubRecord 오브젝트는 출력값이 항상 레코드라는 측면에서 UnBuild Record 및 Get Field 오브젝트와는 다릅니다. SubRecord 디바이스는 레코드에서 필드 리스트를 포함 또는 제외 하여 서브 레코드를 형성할 수 있도록 합니다.

From DataSet은 논리 표현식의 제한조건을 기준으로 레코드 파일(“데이터셋”)에서 레코드를 읽어올 수 있도록 합니다. 예를 들어, 레코드 필드에 PASS 값을 가진 모든 레코드를 추출할 수 있습니다.

오브젝트 위치

Data [image] UnBuild Data [image] Record

관련정보

Build Record, buildRecord(), Declare Variable, From DataSet, Get Field, Record Constant, Set Field, SubRecord, To DataSet, 속성창 (오브젝트) 및 오브젝트 메뉴

레코드에서 필드 추출하기


UnBuild Spectrum 오브젝트

스펙트럼의 PComplex 값과 주파수 범위를 출력하는 오브젝트

사용법

UnBuild Spectrum 오브젝트는 스펙트럼에서 Array 1D 형태의 PComplex 값과 범위 정보를 추출하기 위해 사용합니다.

오픈뷰 항목

Start/Stop | Center/Span – Spectrum의 주파수 범위를 표시하는 출력값을 변경합니다.

오브젝트 위치

Data [image] UnBuild Data [image] Spectrum

관련정보

Build Spectrum, UnBuild Data, UnBuild Waveform, 속성창 (오브젝트) 및 오브젝트 메뉴


UnBuild Waveform 오브젝트

파형의 진폭 값과 타임 스팬을 출력하는 오브젝트

사용법

UnBuild Waveform 오브젝트는 파형에서 Array 1D 형태의 진폭 값과 타임 스팬을 실수값으로 추출하기 위해 사용합니다.

주의사항

Real64 어레이가 매핑이 안된 상태로 출력됩니다.

오브젝트 위치

Data [image] UnBuild Data [image] Waveform

관련정보

Build Waveform, UnBuild Data, UnBuild Spectrum, 속성창 (오브젝트) 및 오브젝트 메뉴


Unpack 메뉴항목 (오브젝트 메뉴)

메뉴 선택항목으로, UserObject의 오브젝트 메뉴에서만 제공하며 UserObject를 “언팩”합니다. UserObject는 사라지지만, UserObject 내에 있는 오브젝트는 프로그램의 메인 컨텍스트의 일부가 됩니다.

사용법

Unpack은 UserObject를 제거하여 UserObject내에 있는 내용들을 프로그램의 메인 컨텍스트에 배치하는데 사용합니다. 또는 네스팅된 UserObject의 경우에는, 네스팅된 UserObject 내에 있는 내용들을 언팩된 UserObject가 존재하는 UserObject 컨텍스트로 배치합니다. 오브젝트들은 새로운 컨텍스트에서도 연결선이 유지된 채로 남아 있기 때문에 UserObject 내에 있는 기능은 유지됩니다.

주의사항

Unpack은 Create UserObject의 반대 기능입니다. 오브젝트를 선택하고 Create UserObject를 실행한 경우에는, 선택한 오브젝트와 연결선들은 새로운 UserObject의 일부가 됩니다. 이 UserObject에서 Unpack을 실행한 경우에는, UserObject를 생성하지 않았던 것처럼 오브젝트는 프로그램의 메인 컨텍스트로 되돌아 갑니다.

오브젝트 위치

오브젝트 메뉴 (UserObjects에서만 사용) [image] Unpack

관련정보

UserObject 생성 또는 UserObject.


Until Break 오브젝트

Break를 만나기 전까지 서브쓰레드의 실행을 반복하는 오브젝트

사용법

Until Break는 Break를 만나기 전까지 반복해야 하는 실행을 시작하기 위해 사용합니다.

주의사항

Until Break에 의해 호스팅된 서브쓰레드의 실행은 다음 항목중의 하나가 발생할 때까지는 계속 출력합니다:

모든 오브젝트가 실행을 완료 한 경우. 서브쓰레드는 비활성화됩니다. Break 오브젝트를만날 때까지 Until Break가 출력하도록 새롭게 설정되어 서브쓰레드는 다시 활성화 됩니다.

Break 오브젝트가 동작한 경우. 서브쓰레드는 비활성화되고 시퀀스 출력핀은 활성화됩니다.

Next 오브젝트가 동작한 경우. 서브쓰레드는 비활성화되고, Break 오브젝트를 만날 때까지 Until Break가 출력하도록 새롭게 설정되어 서브쓰레드는 다시 활성화 됩니다.

Until Break는 실수값 0을 가지는 출력실행 시그날을 출력합니다.

Until Break 오브젝트에 의해 호스팅되는 서브쓰레드가 반복을 완료하면, 이전의 반복주기에 전송된 모든 데이터 컨테이너는 다음 반복주기가 시작되기 전에 무효화 시킵니다. 이것은 이전에 반복된 "기존" 데이터를 현재의 반복주기에서 다시 사용하는 것을 방지합니다. 반면에, 실행 플로우가 반복적인 서브쓰레드 내에 있다면, 일부 오브젝트는 반복할 때 실행을 하지 않을 수도 있습니다. 이들 오브젝트에 의해 전송된 데이터 컨테이너는 다른 오브젝트가 이들 데이터를 실행하기 전에 무효화 될 수 있습니다. 이런 경우에 데이터를 전달하기 위해서는 Sample & Hold 오브젝트를 사용하십시오.

오브젝트 위치

Flow [image] Repeat [image] Until Break

관련정보

Break, For Count, For Log Range, For Range, Next, On Cycle, Sample & Hold 및 속성창 (오브젝트)

VEE 프로그램의 일부분을 반복하기


UserFunction 오브젝트

UserObject 또는 여러 개의 오브젝트를 모아서 생성한 사용자정의 함수

사용법

UserObject를 생성하고 Make UserFunction(자세한 내용은 UserObject 를 참조하십시오.)을 실행하여 사용자함수를 생성할 수 있습니다. 또한 여러 개의 오브젝트를 선택하고 Edit   [image] Create UserFunction...를 실행하여서도 사용자함수를 생성할 수 있습니다.

일단 사용자함수가 생성되었으면 이것을 편집할 수 있습니다. 사용자함수는 백그라운드로 존재하고 Call Function 기능이나 표현식을 이용하여 호출할 수 있습니다.

UserObject에 비해서 UserFunction이 가지는 장점은 프로그램 안에서 동일한 UserFunction을 여러 번 호출하지만, 소오스 코드는 하나만 존재한다는 것 입니다.

오브젝트 메뉴

Edit [image] - UserFunction 컨텍스트의 Edit 메뉴을 제공하는 상위 메뉴. 이 메뉴에는 메인메뉴의 Edit 메뉴에서 제공하는 항목과 중복되는 항목이 있습니다. UserFunction의 작업 영역에서 마우스 오른쪽 버튼을 클릭하면 Edit 메뉴가 팝업되고 이것을 사용할 수 있습니다.

다음 선택항목은 UserFunction의 컨텍스트에 따라 변경됩니다.:

Clean Up Lines - UserFunction 내부의 오브젝트를 연결하는 라인을 라우팅합니다.

Add To Panel - 선택된 오브젝트로 구성된 UserFunction의 패널뷰를 생성합니다(패널뷰가 이미 생성되어 있지 않다면)

Create UserObject - 현재 선택된 오브젝트로 구성된 UserObject를 생성합니다.

Create UserFunction - 현재 선택된 오브젝트로 구성된 UserFunction 을 생성합니다.

Cut - VEE 및 메모리에서 UserFunction을 삭제하고, 붙여넣기 버퍼에 임시 저장합니다. 붙여넣기 버퍼의 내용은 UserFunction의 내용과 함께, 다른 VEE 세션에 붙여넣기 할 수 있습니다. Windows 2000, 및 XP의 경우에는 UserFunction 의 내용과 이미지를 클립보드에 임시저장하여 다른 어플리케이션 프로그램에서 붙여넣기 할 수도 있습니다.

Copy - UserFunction을 붙여넣기 버퍼에 복사합니다. UserFunction과 그것의 내용을 다른 VEE 세션에 붙여넣기 할 수 있습니다. Windows 2000, 및 XP의 경우에는 UserFunction 의 내용과 이미지를 클립보드에 임시저장하여 다른 어플리케이션 프로그램에서 붙여넣기 할 수도 있습니다.

Make UserObject - Make UserFunction과 반대되는 동작. UserFunction을 UserObejct로 재변환합니다.

Save Secured Version - 사용자가 편집할 수 없는 UserFucntion 으로 저장합니다. .vee확장자로 저장될 파일이름을 입력하는 대화상자가 표시됩니다.

Locate - 프로그램 탐색기에서 해당 UserFunction의 위치를 하이라이트합니다.

Generate [image] - UserFunction의 타이틀을 참조하여 호출하는 표현식을 사용하는 다음의 오브젝트를 생성합니다.

Call은 Call 오브젝트를 생성합니다.

Formula Call은 Formula 오브젝트를 생성합니다.

If/Then/Else Call은 If/Then/Else 오브젝트를 생성합니다.

ShowPanel은 ShowPanel() 함수를 가진 Formula 오브젝트를 생성합니다.

HidePanel은 HidePanel() 함수를 가진 Formula 오브젝트를 생성합니다.

Calls - 이 UserFunction에 의해서 호출된 다른 UserFunction의 목록을 나타내는 Find Results 대화상자를 띠웁니다.

Called By - 이 UserFunction을 호출하는 다른 UserFunction의 목록을 나타내는 Find Results 대화상자를 띠웁니다.

Create Panel - UserFunction의 오브젝트가 없는 패널을 생성합니다.

Delete Panel - UserFunction 의 패널뷰를 삭제합니다. 패널뷰의 오브젝트도 함께 삭제됩니다. 패널뷰에서 삭제된 오브젝트와 대응되는 디테일뷰의 오브젝트는 삭제되지 않습니다.

Close - UserFunction 편집 윈도우를 감춥니다. UserFunction은 아직 메모리에 살아 있습니다. 프로그램을 실행하기 전에 UserFunction 편집창을 닫을 필요는 없습니다.

속성창

TrigMode 그룹:

Degrees | Radians | Gradians - 이 UserFunction 에서 사용하는 삼각함수 단위를 지정합니다.

 PopupPanelTitle: - 실행 윈도우의 패널에 표시되는 타이틀

 ShowPanelOnExecute - 이 속성을 참(True)으로 설정하면, UserFunction이 실행될 때, 이 UserFunction의 패널을 디스플레이합니다. 디폴트 값은 거짓(False)입니다.

 PopupMoveable - 이 속성을 참으로 설정하면, 사용자가 해당 팝업 패널을 이동할 수 없습니다 디폴트 값은 거짓 입니다.

 ShowPopupPanelTitle - 이 속성을 참으로 설정하면, 팝업패널의 타이틀바가 표시됩니다. 디폴트 값은 참입니다.

 ShowPopupPanelBorder - 이 속성을 참으로 설정하면, 팝업패널의 경계선이 표시됩니다. 디폴트 값은 참입니다.

주의사항

여러 개의 UserFunction 라이브러리를 생성하여, 하나의 파일로 묶어 저장하여, UserFunction 라이브러리를 생성할 수 있습니다. 이렇게 생성된 라이브러리는 Import Library 오브젝트를 통해서 프로그램 안으로 임포트하고, Delete Library 오브젝트로 삭제됩니다.

Call 함수를 이용하여 UserFunction을 호출할 수 있을 뿐만 아니라, 임의의 표현식에서도 UserFunction을 호출할 수 있습니다. Formula, If/Then/Else 및 Set Values 등의 여러 가지 오브젝트와 Sequencer 및 I/O 트랜잭션에서 표현식을 사용할 수 있습니다. 그러나, 표현식에서 사용하는 함수호출 방식에서는 하나의 값만 리턴받을 수 있습니다. 그러므로, 이러한 표현식으로 UserFunction을 호출하면 그 UserFunction의 첫 번째 출력만 리턴됩니다. 여러 개의 출력을 가진(Sequence 출력은 제외) UserFunction의 경우에는 나머지 출력터미날의 값은 사용할 수 없습니다. 출력터미날이 없는 UserFunction을 호출하면 리턴된 값은 정의되지 않습니다.

showPanel() 또는 ShowPanelonExecute을 통해서 디스플레이되는 패널에서 마우스를 패널에 올려놓고 오른쪽 버튼을 클릭하면 패널의 이름이 팝업됩니다.

UserFunction 으로 널 값을 제공하면서 requiredType 이나 requiredShape이 Any 이외의 타입이면 에러가 발생합니다.

UserFunction은 설명에 특별한 아이콘을 포함할 수 있습니다. 프로그램 탐색기와 타이틀바의 아이콘의 우측상단에 빨간색 삼각형 표시가 있으면 그 오브젝트는 설명을 가지고 있다는 표시입니다.

오브젝트 위치

Edit [image] Edit UserFunction을 실행하여 UserFunction의 이름을 선택하거나

오브젝트 메뉴 [image] Edit UserFunction을 실행하거나

프로그램 탐색기에서 해당 UserFunction을 더블클릭합니다.

관련정보

Call, Delete Library, Edit UserFunction 메뉴항목, Formula, hidePanel(), If/Then/Else, Import Library, lockPosition(), panelPosition(), panelSize(), Sequencer, showPanel(), unlockPosition(), 리모트 함수 및 UserObject.

여러 개의 오브젝트를 묶어서 UserObject로 생성하기

프로그램에서 UserFunction 생성하기


UserName 오브젝트

현재 컴퓨터에 로그인하고 있는 사용자의 이름을 가져옵니다.

오브젝트 위치

System [image] Environment [image] User Name


UserObject 오브젝트

다른 오브젝트를 포함하는 오브젝트

사용법

여러 개의 오브젝트를 논리적 및 물리적으로 그룹화하기 위해서 UserObject를 사용합니다. UserObject는 프로그램의 루트 컨텍스트와는 분리된 “컨텍스트”를 구성합니다. 프로그램 안에 여러 개의 UserObject 또는 네스팅된 UserObject를 사용할 수 있습니다.

필요한 UserObject를 생성하기 위해서, 다른 오브젝트를 UserObject의 오픈뷰 작업영역으로 이동하거나, 오브젝트를 선택하고 Edit 메뉴에서 Create UserObject를 실행할 수 있습니다.

UserObject의 오브젝트 메뉴에서 Make UserFunction을 실행하면 UserObject를 UserFunction으로 만들 수 있습니다. 이 UserFunction은 Call Function 오브젝트 또는 특정 표현식을 이용하여 호출할 수 있습니다.

작동법:

UserObject는 일반적인 다른 오브젝트처럼 동작합니다. -- UserObject 안의 오브젝트는 UserObject의 모든 입력이 활성화될 때 까지 실행되지 않습니다. 또한 UserObject 내부의 모든 동작이 완료되어야만 UserObject의 출력이 활성화됩니다.

UserObject 내부의 오브젝트가 UserObject 외부의 오브젝트와 연결되어 있으면, Create UserObject 를 실행할 때 입력 및 출력핀이 자동으로 생성됩니다. 기존 UserObject에 입력핀과 출력핀을 추가할 때는 오브젝트 메뉴에서 Add Terminal 을 실행하면 됩니다.

UserFunction 생성:

일단 UserObject를 생성하였으면, Make UserFunction(아래의 "Object Menu" 참조)을 실행하여 동일한 기능을 가진 UserFunction을 생성할 수 있습니다. UserObject는 화면에서 사라지고 새로운 UserFunction과 새로운 UserFunction 윈도우를 호출하는 Call Function 오브젝트로 대체됩니다. 이 UserFunction은 사용할 수 있는 사용자함수 목록에 추가됩니다. 사용할 수 있는 UserFunction 목록은 프로그램 안에서 백그라운드로 존재합니다. Call Function 오브젝트나 표현식에서 UserFucntion을 호출할 수 있습니다. Edit 메뉴에서 Edit UserFunction을 실행하여 UserFunction을 편집할 수 있습니다.

오브젝트 메뉴

오브젝트 메뉴 버튼을 클릭하여 UserObject의 오브젝트 메뉴를 선택할 수 있지만, UserObject 오픈뷰의 작업영역 안에서는 오브젝트 메뉴를 선택할 수 없습니다. 윈도우의 안에서, 마우스 오른쪽 버튼을 클릭하면 팝업 Edit 메뉴가 제공됩니다. 포인터가 UserObject 안의 임의의 오브젝트 위에 있을 때, 마우스 오른쪽 버튼을 클릭하면 그 오브젝트의 오브젝트 메뉴가 제공됩니다. 또한 UserObject 의 경계에 마우스를 올려놓고 마우스 오른쪽 버튼을 클릭해도 UserObject의 오브젝트 메뉴가 제공됩니다.

Edit [image] - UserObject 컨텍스트의 Edit 메뉴을 제공하는 상위 메뉴. 이 메뉴에는 메인메뉴의 Edit 메뉴에서 제공하는 항목과 중복되는 항목이 있습니다. UserObject 의 작업 영역에서 마우스 오른쪽 버튼을 클릭하면 Edit 메뉴가 팝업되고 이것을 사용할 수 있습니다.

다음 선택항목은 UserObject의 컨텍스트에 따라 변경됩니다.:

Clean Up Lines - UserObject 내부의 오브젝트를 연결하는 라인을 라우팅합니다.

Add To Panel - 선택한 오브젝트로 구성된 패널뷰를 생성합니다.(UserObject용 패널)

Create UserObject - 현재 선택된 오브젝트로 구성된 UserObject를 생성합니다.

Create UserFunction - 현재 선택된 오브젝트로 구성된 UserFunction을 생성합니다.

Maximize - UserObject의 오픈뷰의 크기를 변경하여 컴퓨터 화면의 전체 크기로 확장됩니다. Restore를 실행하면 이전의 오픈뷰 크기로 전환됩니다.

Cut - VEE 및 메모리에서 UserObject을 삭제하고, 붙여넣기 버퍼에 임시 저장합니다. 붙여넣기 버퍼의 내용은 UserObject의 내용과 함께, 다른 VEE 세션에 붙여넣기 할 수 있습니다. Windows 2000, 및 XP의 경우에는 UserObject의 내용과 이미지를 클립보드에 임시 저장하여 다른 어플리케이션 프로그램에서 붙여넣기 할 수도 있습니다.

Copy - UserObject을 붙여넣기 버퍼에 복사합니다. UserObject과 그것의 내용을 다른 VEE 세션에 붙여넣기 할 수 있습니다. Windows 2000, 및 XP의 경우에는 UserObject의 내용과 이미지를 클립보드에 임시저장하여 다른 어플리케이션 프로그램에서 붙여넣기 할 수도 있습니다.

Make UserFunction - UserObject를 UserFunction으로 변환합니다. UserObject는 작업영역에서 사라지고 새로운 UserFunction을 호출하는 표현식을 가진 Call Function 오브젝트로 변경됩니다. 이 내용을 실행하기 전에, 타이틀 필드에 고유한 이름을 입력해야 합니다. 이 이름은 UserFunction의 이름이 되며, 이 이름으로 Call Function 이나 다른 표현식에서 UserFunction을 호출하게 됩니다. 이름이 원래의 "UserObject" 이거나 고유하지 않으면, 함수의 이름을 입력하라는 창이 뜨게됩니다.

Unpack - UserObject를 삭제하지만 그 안에 포함된 오브젝트는 삭제하지 않습니다.

Save Secured Version -사용자가 편집할 수 없는 UserObject 으로 저장합니다. 보안버전의 이름을 입력하는 대화상자가 표시됩니다. 이 보안버전 파일은 .vee 확장자를 가진 파일로 저장됩니다.

Locate - 프로그램 탐색기에서 해당 UserObject의 위치를 하이라이트합니다.

Calls - 이 UserObject에 의해서 호출된 UserFunction의 목록을 나타내는 Find Results 대화상자를 띠웁니다.

Create Panel - UserObject의 오브젝트가 없는 패널을 생성합니다.

Delete Panel - UserObject의 패널뷰를 삭제합니다. 패널뷰의 오브젝트도 함께 삭제됩니다. 패널뷰에서 삭제된 오브젝트와 대응되는 디테일뷰의 오브젝트는 삭제되지 않습니다.

Close - UserObject 편집 윈도우를 감춥니다. UserObject은 아이콘 형태로 아직 프로그램 안에 살아 있습니다. 프로그램을 실행하기 전에 UserObject 편집창을 닫을 필요는 없습니다.

속성창

TrigMode 그룹:

Degrees | Radians | Gradians - 이 UserObject에서 사용하는 삼각함수 단위를 지정합니다.

PopUpPanelTitle: - 실행 윈도우의 패널에 표시되는 타이틀.

ShowPanelOnExecute - 이 속성을 참(True)으로 설정하면, UserObject이 실행될 때, 이 UserObject의 패널을 디스플레이합니다. 이 기능은 UserObject 패널뷰가 생성된 경우에만 사용할 수 있습니다.(Create Panel을 사용하여) 디폴트 값은 거짓(False)입니다.

 PopupMoveable - 이 속성을 참으로 설정하면, 사용자가 해당 팝업 패널을 이동할 수 없습니다 디폴트 값은 거짓 입니다.

 ShowPopupPanelTitle - 이 속성을 참으로 설정하면, 팝업패널의 타이틀바가 표시됩니다. 디폴트 값은 참입니다.

 ShowPopupPanelBorder - 이 속성을 참으로 설정하면, 팝업패널의 경계선이 표시됩니다. 디폴트 값은 참입니다.

주의사항

선택되어 있는 오브젝트를 UserObject로 생성하기 위해서는 Create UserObject를 실행합니다.

(Save Objects를 이용하여) 반복하여 사용될 함수의 라이브러리를 생성하기 위해서 공통 함수의 UserObjects를 저장하는 것이 편리합니다.

여러 개의 UserFunction 라이브러리를 생성하여, 하나의 파일로 묶어 저장하여, UserFunction 라이브러리를 생성할 수 있습니다. 이렇게 생성된 라이브러리는 Import Library 오브젝트를 통해서 프로그램 안으로 임포트하고, Delete Library 오브젝트로 삭제됩니다.

현재 표시되어 있는 패널의 이름을 찾기 위해서는 패널상에서 마우스 오른쪽 버튼을 클릭하면 패널이름이 팝업됩니다.

UserObject의 패널뷰는 Main의 패널뷰 또는 그 UserObject를 쌓고 있는 UserObject의 패널뷰로 추가될 수 있습니다. 즉, 패널은 네스트 될수 있습니다. 패널이 상위 패널에 추가될 때, 소오스 패널의 복사본이 생성됩니다. 소오스 패널이 변경될 때마다, 모든 중복된 패널도 함께 변경됩니다.

UserObject가 자신의 설명을 가지고 있으면, 특별한 아이콘, [image]. 도 가지게 됩니다. 이 아이콘의 우측상단에 빨간색 삼각형이 표시됩니다.

UserObject를 Main패널등의 상위 패널에 추가하기 위해서는:

1. UserObject와 그것의 패널을 생성 후, UserObject의 아이콘뷰에서 마우스 오른쪽 버튼을 클릭하면 오브젝트 메뉴가 제공됩닏.

2. 오픈뷰로 전환하기 위해서는 Restore를 클릭합니다. 패널뷰와 비슷한 형태로 표시됩니다. 이것을 삭제하지 마십시오. 이것을 삭제하면 상위 프로그램에서 UserObejct가 제거됩니다.

3. UserObejct를 선택하여 하이라이트 시키십시오.

4. Add To Panel 툴바 버튼(Edit [image] Add To Panel)을 클릭하십시오. UserObject는 상위 패널에 생성됩니다.

오브젝트 위치

Device [image] UserObject

관련정보

Add To Panel 메뉴항목, Call, UserObject 생성, Delete Library, Direct I/O, Edit UserFunction 메뉴항목, Formula, If/Then/Else, Import Library, 런타임 버전 생성, Sequencer 및 UserFunction.

여러 개의 오브젝트를 묶어서 UserObject로 생성하기

프로그램 상에서 UserObject 생성하기


UTCNow 오브젝트

시스템의 표준 시간(Greenwich Mean Time)을 가져옵니다.

오브젝트 위치

System [image] DateTime [image] UTCNow


Variable 메뉴항목

메뉴 항목

사용법

variable은 변수의 값을 설정하고 가져오는 다음의 오브젝트를 제공하기 위해 사용합니다.

Set Variable

Get Variable

Delete Variable

Declare Variable

주의사항

프로그램의 한 컨텍스트에서 정의된 변수는 프로그램내의 다른 어느 컨텍스트에서도 사용할 수 있습니다. 예를 들어 최상위 프로그램 컨텍스트에서 Set Variable 오브젝트를 사용하여 변수를 선언하면, UserObject에서 변수를 가져오기 위하여 Get Variable을 배치할 수 있습니다. 전체 프로그램에 걸쳐서 이름의 충돌을 피하는 것이 필요합니다:

2개 이상의 Set Variable 오브젝트가 동일한 변수 값(동일한 변수이름으로)을 설정하려 하면, Set Variable이 실행할 때마다 현재의 변수 값이 덮어씌워 집니다. 이것은 이름이 중복된 것을 알지 못한 경우에는 원하지 않은 결과값이 출력될 수 있다는 것입니다.

변수이름과 동일한 이름을 가진 입력터미날이 있는 경우에는, 입력터미날이 우선순위를 가집니다.

자세한 사항은 Help => Contents and Index => Tell Me About... => Variables을 참조하십시오.

오브젝트 위치

Data [image] Variable

관련정보

Default Preferences 대화상자, Declare Variable, Delete Variable, Get Variable, Set Variable, 변수 생성하기, Watch Window 메뉴항목, 변수 삭제하기 및 변수 사용하기


Variant 데이터 타입

사용법

Variant 데이터 타입은 데이터의 종류가 아닙니다. 이것은 표현식에서 다른 데이터 타입 중에서 하나의 숫자를 표시하는 값을 지정하기 위해 사용합니다. 지정하는 값을 가질 때만 이것은 하나의 데이터 타입이 됩니다. 어떤 데이터 타입도 Variant로 상향 또는 하향 변환할 수 있고, Variant는 가지고 있는 데이터에 따라 상향 또는 하향 변환할 수 있습니다. 변환 규칙은 다음과 같습니다.

이 컨테이너가 ActiveX Automation 서버나 컨트롤을 통과하는 경우에는, Variant 컨테이너에 있는 데이터 타입 대신에 VT_VARIANT로 변환됩니다. Variant 타입은 ActiveX Automation 메서드에서 VT_VARIANT 또는 ByRef VT_VARIANT 타입의 파라미터가 필요한 경우에만 사용됩니다.

사용예

sin(var)함수에서, Variant 데이터 타입(var)에 있는 데이터는 할당되어 있는 값에 따라 정수, 실수 또는 파형이 될 수 있습니다.

a=sin(var) 표현식에서, a는 (var)을 포함하고 있는 데이터 타입이 입력됩니다.

오브젝트 위치

Variant 데이터 타입을 생성하는 방법은 다음과 같습니다:

Data [image] Variable [image] Declare Variable
그리고 Variant 타입을 선택합니다; 또는

asVariant()함수를 사용합니다.

관련정보

asVariant(), Declare Variable.


Vertical Paddle 오브젝트

Toggle Control를 참조하십시오.


Vertical Rocker 오브젝트

Toggle Control를 참조하십시오.


Vertical Slide 오브젝트

Toggle Control를 참조하십시오.


디테일뷰 보기 버튼

패널뷰 화면에서 디테일뷰 화면으로 전환합니다.

사용법

버튼을 누르면 View Detail은 프로그램, UserObject, 또는 UserFunction의 디테일뷰를 디스플레이 합니다.

주의사항

UserObjects 와 UserFuntions에서, View Detail은 패널뷰를 생성한 다음에 사용할 수 있습니다.

패널뷰를 보안처리한 다음에는 To Detail 버튼이 보이지 않습니다.

오브젝트 위치

메인 VEE 윈도우, UserObject, 또는 UserFunction의 타이틀바 (관련 패널이 생성되었을 때)

관련정보

Add To Panel 메뉴항목, 패널뷰 전환 및 런타임 버전 생성.

패널에 오브젝트 추가하기

패널에서 오브젝트 삭제하기


패널뷰 전환

디테일뷰에서 패널뷰로 전환합니다.

사용법

To Panel 버튼을 To Panel 버튼을 누르면 메인 VEE 윈도우, UserObject, 또는 UserFunction에서 프로그램의 인터페이스로 생성한 패널뷰를 나타냅니다. 누르면 메인 VEE 윈도우, UserObject, 또는 UserFunction에서 프로그램의 인터페이스로 생성한 패널뷰를 나타냅니다.

T주의사항

UserObjects 또는 UserFunctions에서, To Panel 버튼은 패널뷰를 생성했을 때 보입니다.

패널뷰를 보안처리한 후에는, To Panel 버튼은 보이지 않습니다.

오브젝트 위치

메인 VEE 윈도우, UserObject, 또는 UserFunction의 타이틀바 (관련된 패널이 생성 되었을 때)

관련정보

Add To Panel 메뉴항목, 디테일뷰 보기 버튼 및 런타임 버전 생성.

패널에 오브젝트 추가하기

패널에서 오브젝트 삭제하기


View Properties 메뉴항목

속성창을 on 하거나 off하는 View 메뉴항목

사용법

Properties 메뉴항목은 속성창에 대한 디스플레이 여부를 결정하는 토글 함수입니다. 이 항목이 활성화 되면, 속성창은 VEE 작업공간의 왼쪽에 표시됩니다.

VEE 작업공간과 속성창 사이의 수직 분리선위에 마우스 커서를 놓고 드래그하여 속성창의 넓이를 조정할 수 있습니다. 마우스 커서의 모양이 수직분리 커서로 변경되면, 마우스 왼쪽 버튼을 누르고 커서를 오른쪽 또는 왼쪽으로 드래그하여 화면의 사이즈를 확대 하거나 축소합니다.

Program Explorer와 속성창 사이의 수평 분리선 위에서 마우스 커서를 드래그하여 속성창의 높이를 조정할 수 있습니다 (Program Explorer와 속성창이 표시된 경우).

속성창의 목적은 현재 선택된 오브젝트에 대한 속성을 개발자에게 보여주기 위한 것입니다. 몇 가지 경우를 제외하고는, 이 속성창은 수정할 수 있습니다.

오브젝트 위치

View [image] Properties

관련정보

속성창 (오브젝트)


Virtual Source 메뉴항목

메뉴항목

사용법

Virtual Source는 다음의 가상신호 생성 오브젝트를 제공하기 위해 사용합니다.

Function Generator

Pulse Generator

Noise Generator

주의사항

Virtual Source 오브젝트는 파형을 출력합니다.

오브젝트 위치

Device [image] Virtual Source

관련정보

Build Arb Waveform, Function Generator, Instrument Manager 대화상자, Noise Generator 및 Pulse Generator.


Watch Window 메뉴항목

Watch Window 대화상자를 ON 또는 OFF 하는 View 메뉴항목

사용법

Watch Window (VEE 8.0의 새로운 기능)를 사용하면, 다음을 할 수 있습니다.

  • 프로그램을 디버깅하는 동안에 변수와 터미날을 관찰할 수 있습니다.

  • 프로그램을 디버깅하는 동안에 변수와 터미날을 관찰할 수 있습니다.

  • 디테일뷰에 있는 오브젝트의 위치로 이동합니다. 현재 변수나 터미날이 속한 오브젝트를 쉽게 찾을 수 있습니다.

  • Watch Window에 있는 항목을 copy-paste 버퍼에 복사합니다.

대화상자 설명

Watch Window 대화상자는 4개의 탭, Locals, Globals, Watch Terminals, 및 Watch Variables을 제공합니다. 각 탭은 3개의 필드를 가집니다.

  • Name 필드는 이름 또는 변수나 터미날의 표시자를 나타냅니다.

  • Value 필드는변수나 처미날의 값을 나타내고 편집할 수 있습니다. 이 항목은 스칼라와 다차원 어레이에서 사용할 수 있습니다.

  • Type 필드는변수나 터미날의 데이터 타입과 형태를 나타냅니다.

Locals 탭:

활성화된 컨텍스트에 있는 Local to Context 변수가 Locals 탭 아래에 자동으로 나타납니다.

Locals 탭에 있는 내용은 활성화된 컨텍스트의 변경에 따라 바뀝니다. 변수는 활성화된 컨텍스트에서 삭제된 경우에는 Watch Window 대화상자에서 자동으로 사라집니다.

Globals 탭:

모든 선언된 전역변수와 Local to Library로 선언된 변수가 Globals 탭 아래에 자동으로 나타납니다.

선언되지 않은 변수(예, Set Variable 오브젝트를 통하여) 또는 임포팅된 라이브러리에 있는 변수는 프로그램에 추가되는 즉시 Watch Window에 나타나지는 않습니다. 선언되지 않은 변수는 프로그램이 Set Variable 오브젝트를 통과한 다음에 나타납니다: 임포팅된 라이브러리에 있는 전역변수는 프로그램의 실행 또는 오브젝트의 컨텍스트 메뉴에 있는 Import Library를 통하여 수동으로 로딩에 의하여 라이브러리가 임포팅된 다음에 나타납니다.

Watch Terminals 탭:

터미날을 Watch Window의 Watch Terminals 탭으로 선택하여 추가할 수 있습니다. Watch Window에 터미날을 추가하는 3가지 방법이 있습니다:

1. 다음과 같은 Input / Output Terminal Information 대화상자를 열기 위하여 입력 또는 출력 터미날을 더블 클릭합니다.

Watch 버튼을 클릭합니다. 터미날이 이미 Watch Window에 있는 경우에는, Watch Window에 다시 추가되지는 않습니다.

2. 다음과 같은 Edit Line 대화상자를 열기 위하여 출력 라인에서 오른쪽 버튼을 클릭합니다:

Watch Data를 선택합니다. 출력 터미날이 이미 Watch Window에 있는 경우에는, Watch Window에 다시 추가되지는 않습니다.

3. 다음과 같은 Line Value 대화상자를 열기 위하여 출력 라인을 더블 클릭합니다:

Watch 버튼을 클릭합니다. 출력 터미날이 이미 Watch Window에 있는 경우에는, Watch Window에 다시 추가되지는 않습니다.

Watch Terminal 탭 아래에서, 상태바는 선택한 터미날에 대한 몇가지 정보를 나타냅니다. 예를 들어, 터미날의 컨텍스트, 디바이스 이름 및 터미날 이름.

Watch Terminals 탭에 있는 Name의 형식은 다음과 같습니다:

{ 오브젝트 제목– 오브젝트ID }.출력 터미날의 이름.

예를 들어, 다음 그림에서, Watch Window에 있는 하나의 항목은 {bigNum-M.21}.Int16입니다. "bigNum"은 오브젝트 제목이고; "M.21"은 속성창에 있는 것과 일치하는 오브젝트 ID입니다. "Int16"은 툴력 터미날의 이름입니다.

Watch Variables 탭:

변수를 Watch Window의 Watch Variables 탭에 선택하여 추가할 수 있습니다. Watch Window에 변수를 추가하는 4가지 방법이 있습니다:

    1. Watch Variables 탭 아래에 있는 이름 필드에서 더블 클릭하고 입력합니다.

    2. Locals 탭 또는 Globals 탭 아래를 보기 위하여 변수에서 오른쪽 버튼을 클릭하고, Add Watch를 선택합니다.

    3. VEE 프로그램에 있는 Declare Variable 오브젝트, Set Variable 오브젝트, 또는 Get Variable 오브젝트에서 오른쪽 버튼을 클릭하고, Add Watch를 선택합니다.

    4. VEE Program Explorer에서 보기 위하여 변수에서 오른쪽 버튼을 클릭하고, Add Watch를 선택합니다.

컨텍스트 메뉴

다음과 같은 컨텍스트 메뉴를 열기 위하여 Locals 탭 또는 Globals 탭 아래에서 오른쪽 버튼을 클릭합니다.

다음과 같은 컨텍스트 메뉴를 열기 위하여 Watch Variable 탭 또는 Watch Terminals 탭 아래에서 오른쪽 버튼을 클릭합니다.

  • Copy -- 선택한 항목(Name, Value, 및 Type 필드 포함)을 "copy-paste" 버퍼로 복사합니다.

  • Copy Nested -- 어레이를 "copy-paste" 버퍼로 복사합니다. Watch Window에서 어레이가 확장되어 있지 않이도, 어레이의 모든 항목을 복사합니다.

  • Locate -- 활성화된 컨텍스트에 있는 대응되는 변수나 터미날의 위치로 빠르게 이동합니다. 이 이동 기능은 디테일뷰가 큰 경우에 쉽게 오브젝트를 찾을 수 있는 편리한 기능입니다.

  • Select All -- 현재의 탭 아래에 있는 모든 항목을 선택합니다.

  • Delete -- 선택한 변수를 Watch Variables 또는 Watch Terminals 탭에서 제거합니다.

  • Delete All -- 모든 변수를 Watch Variables 탭에서 제거 하거나, 모든 터미날을 Watch Terminals 탭에서 제거 합니다.

  • Add Watch -- 변수를 Watch Variables 탭에 추가합니다.

주의사항

  • Watch Window는 모든 항목을 알파벳 순으로 정렬합니다.

  • Watch Terminals 과 Watch Variables 탭 아래에 있는 모든 항목은 Watch Window가 닫히거나 VEE 프로그램이 닫힐 때 저장됩니다. 저장된 모든 항목은 Watch Window가 다시 열릴 때 Watch Window에 복원됩니다. VEE는 이들 항목의 이름 필드와 타입 필드만을 저장합니다. 값은 저장되지 않습니다.

값 업데이트 및 편집

Watch Window에 있는 변수와 터미날의 값은 프로그램이 일시 정지(예, 브레이크포인트를 만날 때) 또는 중지된 상태에서 만 업데이트 됩니다.

Watch Window에 있는 변수와 터미날의 값은 프로그램이 일시 정지 또는 중지된 상태에서 필요한 항목의 값 필드를 더블 클릭하여 편집할 수 있습니다. 변수와 터미날의 Name 및 타입은 변경되지 않습니다.

Watch Window에서, 항목이 편집할 수 없을 때, 항목은 회색으로 표시됩니다.

Watch Window가 지원되는 데이터 타입

Watch Window가 지원되는 데이터 타입은 다음 표에 표시합니다.

데이터 타입 | 보기 | 편집
Boolean | Yes | Yes
Uint8 | Yes | Yes
Int16 | Yes | Yes
Int32 | Yes | Yes
Int64 | Yes | Yes
Real32 | Yes | Yes
Real64 | Yes | Yes
PComplex | Yes | Yes
Complex | Yes | Yes
Waveform | Yes | Yes
Spectrum | Yes | Yes
Coord | Yes | Yes
Text | Yes | Yes
Enum | Yes | No
Record | Yes | Yes
.NET | Yes | Yes (부분적으로 지원)
COM | Minimal | No
Variant | Minimal | No
Array of Boolean,UInt8, Int16, Int32, Int64, Real32, Real64, PComplex, Complex, Coord, Text | Yes | Yes

단축키

툴바에 있는 [image] 버튼을 누릅니다.

오브젝트 위치

View [image] Watch Window


Waveform (Time) 오브젝트

시간 영역의 데이터(웨이브폼)을 2 차원 그래프로 표시하는 오브젝트

사용법

시간 영역의 웨이브폼 데이터 또는 스펙트럼 데이터를 그래프로 표시하는데 Waveform (Time) 오브젝트를 사용합니다. 스펙트럼은 IFFT를 통해서 웨이브폼으로 변환됩니다. X 축은 입력 웨이브폼의 샘플링 단위를 사용합니다.(일반적으로 초를 사용)

오픈뷰 항목

아래 항목은 기본 오픈뷰 항목입니다. 이들 항목의 사용법과 다른 항목은 오브젝트 메뉴 및 Properties 대화상자(오브젝트 메뉴 [image] Properties)에서의 선택에 따라서 달라집니다.

Mag - Y axis의 이름.

Trace1 - 첫 번째 트레이스의 이름.

Time - X axis의 이름.

오브젝트 메뉴

Auto Scale [image] - 이것을 클릭하면 그래프가 자동 스케일되어 에서 전체 트레이스를 볼 수 있습니다.(컨트롤 핀을 추가하거나, Scales 속성을 설정하면 데이터가 입력된 후 그래프를 자동으로 스케일할 수 있습니다.)

Auto Scale - 양 축을 자동으로 스케일합니다.

Auto Scale X - X 축을 자동으로 스케일합니다.

Auto Scale Y - Y 축을 자동으로 스케일합니다.

Zoom [image] - 그래프를 확대 또는 축소합니다.

In - 드래그하여 선택한 직사각형 안의 그래프가 전체 화면에 표시되도록 그래프를 확대합니다. 이 항목을 선택한 후, 그래프 영역에서 확대할 부분을 드래그합니다.

Out 2|5|10|20|50|100X - 선택한 숫자 만큼 중심에서 X 및 Y 방향으로 그래프의 스케일을 확대합니다.

Clear Control [image] - 그래프의 내용에서 지우게 될 항목을 지정합니다.

Display - 표시된 트레이스를 지웁니다. 이 항목을 오브젝트의 컨트롤 입력으로 추가할 수 있습니다.

Next Curve - 이전 트레이스를 지우지 않고 그래프를 리셋합니다. 다음 입력되는 데이터를 그래프의 처음 부터 이전 데이터와 중첩하여 그립니다. 새로운 그래프가 입력되지 전에 활성화되어야 합니다. 이 항목은 컨트롤 입력으로 추가될 수 있습니다.

Center Markers - 마커를 사용하는 경우, 마커를 트레이스의 중앙으로 이동시킵니다. 그래프를 스크롤하여 마커가 보이지 않을 때 이 기능을 이용하면 편리합니다.

Add Right Scale - 서로 다른 스케일범위를 가지는 Y 축 스케일을 최대 2 개까지 추가할 수 있습니다. 스케일을 추가 후 이 스케일을 제어하는 입력터미날을 추가할 수 있습니다.(오브젝트 메뉴 [image] Add Terminal [image] Data Input) Properties 대화상자의 Traces 및 Scales 속성을 설정하여 사용합니다.

Print - Print 대화상자를 띠웁니다. Print 대화상자에서 OK 버튼을 클릭하면 선택한 프린터로 그래프의 전체화면을 프린트 합니다. Print 항목은 컨트롤 입력으로 추가될 수 있습니다.

속성창

Declared Name - 그래프 오브젝트에 변수이름을 지정합니다. 이름을 입력하면, 사용중인 마커의 값을 읽는 것처럼 프로그램 실행 중에 이 오브젝트의 일부 속성을 가져오고/설정할 수 있습니다. 이 변수는 Object 타입이며, 디스플레이가 있는 영역의 local to the context로 지정됩니다. 상세한 내용은 주의사항을 참조하십시오.

ClearAtPreRun - 이 속성이 참으로 설정되면, 그래프가 PreRun시 초기화됩니다. 디폴트 값은 참(True) 입니다.

 ClearAtActivate - 이 속성이 참으로 설정되면, 그래프가 활성화될 때 초기화됩니다. 디폴트 값은 참(True) 입니다.

ShowTracesLegend - 오픈뷰에서, 트레이스의 이름 및 색깔의 표시여부를 제어합니다. 트레이스 레전드의 편집버튼은 EnableEditTracesAndScales 를 이용하여 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScalesLegend - 오픈뷰에서, 스케일 이름의 표시여부를 제어합니다. 스케일 레전드의 편집버튼은 EnableEditTracesAndScales 를 이용하여 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScaleLabels - 오픈뷰에서, 스케일 축 라벨의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScrollBars - 오픈뷰에서, X 및 Y 축의 스케일바의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowAutoScaleButton - 오픈뷰에서, Auto Scale 버튼의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

EditTracesAndScales - 오픈뷰에서, 트레이스 및 스케일 속성의 편집버튼의 기능을 제어합니다. 이 기능이 활성화되어 있을 때, 각각의 트레이스 또는 스케일의 속성을 편집하기 위해서 이들을 클릭합니다. 디폴트 값은 참(True) 입니다. 트레이스 및 스케일의 이름의 표시여부를 제어하기 위해서 Show Traces Legend 및 Show Scales Legend 를 사용합니다.

GridType 그룹:

None - 그리드 라인을 숨깁니다.

Tic Marks - 그래프의 4개의 변에서 모든 작은 간격(minor divisions) 및 큰 간격(major divisions) 틱 마크를 표시합니다.

Axis - 그래프의 X 및 Y 축 상에서 작은 간격 및 큰 간격의 틱 마크를 표시합니다. 실제 축이 그래프 영역을 벗어난 경우에는 축 라인이 축에 가장 가까운 위치에 표시됩니다.

Lines - 큰 간격으로 라인을 표시하고, 작은 간격에 틱마크를 표시합니다. X 및 Y 축은 굵은선으로 표시됩니다

NumMarkers 그룹: - 그래프에 표시된 데이터의 정확한 값을 읽을 수 있습니다. 데이터가 로그 스케일로 그래프에 표시되어 있어도, 마커에 표시되는 값은 선형 데이터포인트 입니다.

마커를 다른 트레이스로 이동하기 위해서는, 그래프 하단의 마커값 표시 왼쪽의 버튼을 클릭합니다. 이 버튼을 클릭하면 현재 그래프에 표시된 트레이스를 순환하여 선택합니다.

Off - 마커를 보이지 않습니다. 이 값이 디폴트 값입니다.

One - 한 개의 마커를 제공합니다.

Two - 두 개의 마커를 제공합니다.

Delta - 두 개의 마커를 제공하며, 이들 마커값의 차이를 표시합니다.

 MarkerInterpolate - 이 속성을 참으로 설정하면, 그래프로 표시되는 데이터 포인트 사이에 마커를 배치할 수 있습니다. 마커 값은 선형 인터폴레이션으로 연산되어 표시됩니다. 디폴트 값은 거짓(False)입니다.

마커의 디폴트 색깔은 yellow 입니다.

DisplayBackColor - 팔레트에서 그래프 영역의 색깔을 선택할 수 있습니다. 패널뷰와 디테일뷰에서 서로 다른 색깔을 선택할 수 있습니다. 디폴트 배경색은 Default Preferences 대화상자 Colors 탭의 Screen Element: Graph Background에 설정되어 있습니다.

 Font - 현재 사용중인 컴퓨터의 폰트목록에서 스케일 라벨에 적용할 폰트를 선택합니다. 스케일 라벨 텍스트의 디폴트 폰트는 Preferences 대화상자 Fonts 탭의 Screen Element: Graph Scale Label Text에 설정되어 있습니다.

Traces 그룹:

Name: - 그래프 영역의 왼쪽에 표시되는 트레이스의 이름. 이 이름은 입력터미날의 이름과 동일합니다.

Color: - 트레이스의 색깔. 추가되는 트레이스는 기존 트레이스와는 다른 색깔로 표시됩니다. 첫 번째 트레이스의 디폴트 색깔은 노란색입니다.

LineStyle: - 데이터 포인트를 연결하는 라인의 포맷. 디폴트는 continuous line(연속선) 입니다.

PointStyle: - 각 데이터포인트를 표시하는 기호. 데이터 포인트를 연결하지 않은 상태로 표시할 때는 LineStyle 을 점(.)으로 설정하고, 사용할 PointStyle 기호를 선택합니다. 디폴트 값은 점(dot)입니다.

Scales 그룹:

Show Scale: - 여러 개의 Y 스케일이 있으면, 체크박스로 선택한 스케일이 그래프 영역의 우측에 표시됩니다.

Scale Name: - 오픈뷰에서 스케일에 표시되는 이름

Automatic Scaling: - 데이터가 입력될 때 전체 그래프를 표시하기 위해서 그래프 자동 재 스케일 여부를 제어합니다. 디폴트 값은 On 입니다. 이 속성이 Off 이면, Layout 그룹 General 탭의 Auto Scale 을 클릭하거나, 오브젝트 메뉴의 Auto Scale 을 실행하여 그래프를 다시 스케일 할 수 있습니다.

Maximum: - 스케일의 최대값.

Minimum: - 스케일의 최소값.

Label Spacing: - 어떤 틱마크에 스케일된 값을 표시해야 하는지 제어합니다. X 스케일은 Every Other Tic로, Y 스케일은 Every Major Tic로 디폴트 설정되어 있습니다.

Mapping: - X 데이터 및 Y 데이터가 그래프에 매핑되는 방식. 선형 또는 로그로 매핑될 수 있습니다. 로그-로그 방식으로 표시하기 위해서는 X 축 및 Y 축을 모두 Log 로 설정합니다. 디폴트 설정은 Linear 입니다.

Log Cycles: - Automatic Scaling 이 On 상태에서 최대 x 값 및 최대 y 값으로부터 표시할 10 단위 스케일의 최대 개수. Log Cycles 은 Mapping 이 Log일 때만 사용됩니다. 트레이스 데이터의 변동 폭이 클 때 Log Cycles을 사용하면 편리합니다. 디폴트 값은 4 입니다.

Scale Color - 배경 그리드 및 틱마크의 색깔. 디폴트는 Gray 입니다.

ScaleNumberFormat속성: (X 스케일 및 추가 Y 축 스케일을 포함한 Y 스케일 마다 1 개씩 표시됩니다.)

Global Format - 디폴트 포맷을 사용합니다. 디폴트는 On 입니다.

Real: - Global Format 이 Off 이면, 오브젝트에 표시될 실수의 숫자포맷을 지정합니다. Fixed (예, 98.6000), Scientific (예, 9.8600E+01), Engineering (예, 98.6000E0), Standard (예, 98.6) 및 Time Stamp (예, Wed 01/Jan/2003 17:01:38)를 선택할 수 있습니다. 디폴트는 Standard 입니다.

X 및 Y 마커 값은 스케일에서 사용하는 숫자포맷과 동일한 포맷을 사용합니다. X 및 Y 에 Time Stamp 을 지정하지 않았으면, 이들의 델타마커 값은 디폴트 숫자 포맷을 사용합니다. X 및 Y 의 마커1과 마커2가 Time Stamp 을 사용한 경우에는, 델타마커 값에 Delta Time 포맷이 사용됩니다.

주의사항

입력값으로는 스칼라 또는 Array 1D를 제공해야 합니다.

데이터타입이 Coord 인 입력은 Waveform 타입으로 변환되지 않고 x 및 y 값을 이용하여 그래프로 표시됩니다.

오브젝트 메뉴에서 Add Terminal Data Input 를 실행하여 트레이스를 추가합니다. 최대 12개의 트레이스를 사용할 수 있습니다.

AutomaticScaling 속성을 True 으로 설정하면(Scales 카테고리) 그래프를 그릴 때 마다 자동으로 스케일됩니다. 하나의 트레이스에 대한 전체 데이터를 그래프에 표시할 때는 빠르게 실행됩니다. 전체 데이터를 그래프에 한 번에 그리고 자동으로 스케일합니다. 데이터가 그래프에 한 개의 포인트씩 제공되면, 각 데이터 포인터를 그릴 때 마다 그래프가 자동으로 스케일되므로, 프로그램 실행 속도가 저하됩니다. 데이터가 1 개씩 발생되는 경우에는 Collector 오브젝트를 이용하여 어레이로 생성하여, 전체 데이터를 그래프에 한번에 표시하면 실행속도를 향상할 수 있습니다.

컨트롤 입력 추가

Title 컨트롤 입력핀을 추가하여 타이틀바의 이름을 지정할 수 있습니다. 이 기능을 이용하면 프로그램 실행시 타이틀의 이름을 변경할 수 있습니다.

Traces 컨트롤 입력핀을 추가할 수 있습니다. Traces 컨트롤 입력핀의 데이터에는 레코드 어레이를 사용해야 합니다.(또는 하나의 트레이스를 제어하는 경우에는 레코드 스칼라를 사용해도 됩니다.) 레코드의 어레이는 Record Constant 오브젝트 또는 Build Record 오브젝트를 이용하여 생성합니다. 각 레코드에는 다음의 필드가 제공되어야 합니다.:

정수 값을 가진 TraceNum 필드(첫 번째 트레이스는 1). TraceNum 필드의 값은 받드시 입력되어야 합니다. 값을 입력하지 않으면 에러가 발생합니다.

다음 필드 중 1 개 이상의 필드:

Name

Pen

LineType

PointType

Name 필드는 텍스트 값을 가져야 합니다. Pen, LineType 및 PointType 은 0 ~ n의 정수값을 가져야 합니다. 여기서, 0 은 아무것도 그리지 않을 때 입력하고, n 은 사용할 수 있는 값입니다.

위에서 열거된 스케일 인자를 제어하기 위해서 Scales 컨트롤 입력핀을 추가할 수 있습니다. Scales 컨트롤 입력핀의 데이터에는 레코드 어레이를 사용해야 합니다.(또는 하나의 트레이스를 제어하는 경우에는 레코드 스칼라를 사용해도 됩니다.) 레코드의 어레이는 Record Constant 오브젝트 또는 Build Record 오브젝트를 이용하여 생성합니다. 각 레코드에는 다음의 필드가 제공되어야 합니다.:

X, Y (또는 Y1), Y2, 또는 Y3값을 가지며, 이름이 Scale 인 텍스트필드. Scale 필드의 값은 반드시 입력되어야 합니다. 값을 입력하지 않으면 에러가 발생합니다.

다음 필드 중 1 개 이상의 필드:

Name - 오픈뷰에서 스케일 이름을 변경합니다. 텍스트 값을 가져야 합니다.

Min - X 스케일의 최소값을 설정합니다. 정수 또는 실수값을 사용해야 합니다.

Max - X 스케일의 최대값을 설정합니다. 정수 또는 실수값을 사용해야 합니다.

Mapping - Linear 또는 Log의 텍스트 값을 선택합니다.

AutoScale - 자동 스케일링을 제어합니다. On 또는 Off 의 텍스트 값을 선택합니다.

자세한 내용은 Using Records 및 Using DataSets를 참조하십시오.

프로그램 실행시 마커값을 설정하고 읽기

프로그램상으로 다른 속성을 설정하고 읽기 위해서는 To Change Properties Programmatically를 참조하십시오.

프로그램을 실행하면서 마커 값을 가져오거나 설정할 수 있습니다. 디스플레이를 준비하기 위해서, Properties 창의 Declared Name 필드에 값을 입력합니다. Declared Name 의 값은 디스플레이 컨텍스트의 지역변수로 사용되는 Object 변수로 지정됩니다. 다음은 Markers 그룹의 설정을 On 시킵니다. VEE는 다음 속성을 델타 값을 포함하여 X 및 Y 의 위치에 지정합니다.(Marker1 아래를 지시하고; Marker2 는 위를 지시합니다.)

Marker1X (위치를 Real64 타입으로 가져옵니다.)

Marker1Y (위치를 Real64 타입으로 가져옵니다.)

Marker2X (위치를 Real64 타입으로 가져옵니다.)

Marker2Y (위치를 Real64 타입으로 가져옵니다.)

MarkerDX (위치를 Real64 타입으로 가져옵니다.)

MarkerDY (위치를 Real64 타입으로 가져옵니다.)

Marker1 (위치를 Coord 타입으로 가져오거나 설정합니다.)

Marker2 (위치를 Coord 타입으로 가져오거나 설정합니다.)

현재 마커의 위치를 읽거나 마커를 새로운 위치로 이동하기 위해서 Marker1 및 Marker2 의 속성을 사용할 수 있습니다. 마커의 다른 속성은 읽기전용입니다. 마커를 트레이스 이외의 위치로 이동하려고 시도하면, 마커는 지정한 마커의 위치와 트레이스 상의 가장 가까운 데이터 포인트에 스냅됩니다.

Formula 오브젝트의 표현식을 이용해서도 마커 값을 읽거나 설정할 수 있습니다. 각 표현식은 디스플레이의 Declared Name 과 마커의 속성을 이용하여 작성해야 합니다. 마커의 속성과 Name 은 대소문자를 구별하지 않습니다. 예를 들어, 디스플레이의 Declared Name 이 XY이고, Delta Markers 가 활성화되어 있으면, 다음 표현식은 모든 사용가능한 마커의 값을 읽어서, Real64 스칼라 타입으로 변수 a ~ f 에 저장합니다.:

a = XY.Marker1X

b = XY.Marker1Y

c = XY.Marker2X

d = XY.Marker2Y

e = XY.MarkerDX

f = XY.MarkerDY

디스플레이의 Declared Name은 전역변수로 지정될 수도 있습니다. Formula 오브젝트의 표현식에서 지정연산자를 사용하면서, Declare Variable 오브젝트를 함께 사용하여 전역변수로 설정할 수 있습니다. 예를 들어, globalXY 를 전역변수로, 이것의 Type을 Object로 선언하고, 디스플레이를 사용하는 컨텍스트에서 다음 표현식을 추가합니다.

Set globalXY = XY

이제는 프로그램의 다른 컨텍스트에서 다음 표현식으로 마커의 값을 읽을 수 있습니다.:

a = globalXY.Marker1X

프로그램에 따라서, 프로그램이 마커의 값을 읽기 전에 마커의 위치를 변경할 수 있도록 프로그램이 일시 정지하는 기능을 작성해야 하는 경우가 있습니다. 그래프의 시퀀스 출력과 Formula 오브젝트의 시퀀스 입력사이에 Confirm (OK) 버튼을 프로그램에 추가하여 프로그램 실행을 일시정지 할 수 있습니다. 또한 마커의 위치를 프로그램에서 제어하도록 프로그램을 작성할 수도 있습니다. 프로그램상으로 마커를 설정하는 자세한 내용은 Programmatic Properties를 참조하십시오.

오브젝트 위치

Display [image] Waveform (Time)

관련정보

Complex Plane, Magnitude Spectrum, Polar Plot, Strip Chart, X vs Y Plot, XY Trace 및 Default Preferences 대화상자.

파형 디스플레이하기, 디스플레이에서 마커 설정하기, 마커의 속성을 설정하거나 가져오기


IVI 란 무엇인가?

IVI (Interchangeable Virtual Instrument)는 IVI 조합에 의해서 작성된 새로운 표준입니다. 자세한 내용은 http://www.ivifoundation.org을 참조하십시오. IVI 조합의 목표는 우수한 품질과 성능을 유지하면서 계측기 상호호환성 기능을 제공하는 드라이버 표준을 생성하는 것입니다. 상호호환성(Interchangeability)은 Fluke 사의 임의파형발생기(ARB) 프로그램을 작성하여 Agilent 사의 임의파형발생기와 드라이버에 사용할 수 있다는 것을 의미합니다. ARB 드라이버용 IVI 표준에서는 다른 제조사의 계측기에 대해서도 동일한 함수호출을 사용하도록 규약하고 있으므로, 사용자의 프로그램을 다른 제조회사의 계측기에도 사용할 수 있습니다. 물론, 상호호환성에 일부 제약은 있습니다.

IVI-C 와 IVI-COM

IVI 조합에서는 2 가지 타입의 드라이버를 규정하고 있습니다. IVI-C 드라이버는 VXIplug&play 드라이버 규격을 확장하며 사용법도 유사합니다. IVI-COM 드라이버는 ActiveX 컨트롤과 유사합니다. 그러므로, 이들 드라이버의 기능은 유사하지만, 사용한 모델은 차이가 있습니다.

관련정보

.NET 과 IVI 드라이버


WhichOS() 오브젝트

Agilent VEE Pro가 실행되고 있는 컴퓨터의 운영체제를 출력하는 오브젝트

사용법

whichOS()는 Agilent VEE Pro가 실행되고 있는 컴퓨터의 운영체제를 가져오기 위해 사용합니다. 다음 스트링 중의 하나를 출력합니다:

Windows_2000

Windows XP

사용예

Windows XP가 운영되는 PC용 Agilent VEE Pro: whichOS()는 Windows_XP를 출력합니다.

주의사항

whichOS() 오브젝트는 whichOS() 방정식을 가지고 입력이 없이 초기화된 Formula 오브젝트입니다. 다른 Formula 오브젝트나 표현식에 whichOS()를 직접 입력하여 사용할 수도 있습니다.

오브젝트 위치

Device > Function & Object Browser

Type: Built-in Functions Category: System Information Member: whichOS

관련정보

Formula, whichVersion().


whichVersion() 오브젝트

현재 실행되고 있는 VEE의 버전을 출력하는 오브젝트

사용법

UwhichVersion()은 현재 실행되고 있는 VEE의 버전을 가져오기 위해 사용합니다. 이것은 Help [image] About 대화상자에서 나타나는 스트링과 동일합니다.

사용예

VEE 3.2 버전에 대해서는 whichVersion()은 텍스트 스트링 3.2를 출력합니다.

주의사항

whichVersion() 오브젝트는 whichVersion() 방정식을 가지고 입력이 없이 초기화된 Formula 오브젝트입니다. 다른 Formula 오브젝트나 표현식에 whichVersion()를 직접 입력하여 사용할 수도 있습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: System Information
Member: whichVersion

관련정보

Formula 또는 whichOS()


Write to Event Log 오브젝트

VEE 에러 정보를 이벤트 로그 어플리케이션에 기록합니다.

오브젝트 위치

System [image] Write to Event Log


X vs Y Plot 오브젝트

직교좌표에 그래프를 표시하는 오브젝트

사용법

X 및 Y 입력터미날에 제공되는 데이터를 그래프로 표시합니다. 하나 이상의 트레이스를 그래프로 표시할 때는 하나의 x 입력에 여러 개의 y 입력을 사용합니다. 즉, 모든 트레이스가 x 입력데이터를 공유합니다. x 입력을 공유하지 않고 서로 다른 x 입력을 사용하기 위해서는 각 트레이스의 좌표나 매핑된 어레이를 생성하여 X-Y Trace 오브젝트를 사용해야 합니다.

모든 입력데이터는 크기와 형태가 동일해야 합니다. 입력데이터의 매핑정보는 무시됩니다.

오픈뷰 항목

아래 항목은 기본 오픈뷰 항목입니다. 이들 항목의 사용법과 다른 항목은 오브젝트 메뉴 및 Properties 대화상자(오브젝트 메뉴 [image] Properties)에서의 선택에 따라서 달라집니다.

Y name - Y 축의 이름.

YData1 - 첫 번째 트레이스의 이름.

X name - X 축의 이름.

오브젝트 메뉴

Auto Scale [image] - 이것을 클릭하면 그래프가 자동 스케일되어 전체 트레이스를 볼 수 있습니다.(컨트롤 핀을 추가하거나, Scales 속성을 설정하면 데이터가 입력된 후 그래프를 자동으로 스케일할 수 있습니다.)

Auto Scale - 양 축을 자동으로 스케일합니다.

Auto Scale X - X 축을 자동으로 스케일합니다.

Auto Scale Y - Y 축을 자동으로 스케일합니다.

Zoom [image] - 그래프를 확대 또는 축소합니다.

In - 드래그하여 선택한 직사각형 안의 그래프가 전체 화면에 표시되도록 그래프를 확대합니다. 이 항목을 선택한 후, 그래프 영역에서 확대할 부분을 드래그합니다.

Out 2|5|10|20|50|100X - 선택한 숫자만큼 중심에서 X 및 Y 방향으로 그래프의 스케일을 확대합니다.

Clear Control [image] - 그래프의 내용에서 지우게 될 항목을 지정합니다.

Display - 표시된 트레이스를 지웁니다. 이 항목을 오브젝트의 컨트롤 입력으로 추가할 수 있습니다.

Next Curve - 이전 트레이스를 지우지 않고 그래프를 리셋합니다. 다음 입력되는 데이터를 그래프의 처음 부터 이전 데이터와 중첩하여 그립니다. 새로운 그래프가 입력되지 전에 활성화되어야 합니다. 이 항목은 컨트롤 입력으로 추가될 수 있습니다. Next Curve 컨트롤 핀은 행렬-입력 그래프와는 사용할 수 없으며, Matrix-Input graphs를 참조하십시오.

Center Markers - 마커를 사용하는 경우, 마커를 트레이스의 중앙으로 이동시킵니다. 그래프를 스크롤하여 마커가 보이지 않을 때 이 기능을 이용하면 편리합니다.

Add Right Scale - 서로 다른 스케일범위를 가지는 Y 축 스케일을 최대 2 개까지 추가할 수 있습니다. 스케일을 추가 후 이 스케일을 제어하는 입력터미날을 추가할 수 있습니다.(오브젝트 메뉴 [image] Add Terminal [image] Data Input) Properties 대화상자의 Traces 및 Scales 속성을 설정하여 사용합니다

Print - Print 대화상자를 띠웁니다. Print 대화상자에서 OK 버튼을 클릭하면 선택한 프린터로 그래프의 전체화면을 프린트 합니다. Print 항목은 컨트롤 입력으로 추가될 수 있습니다.

속성창

Declared Name - 그래프 오브젝트에 변수이름을 지정합니다. 이름을 입력하면, 사용중인 마커의 값을 읽는 것처럼 프로그램 실행 중에 이 오브젝트의 일부 속성을 가져오고/설정할 수 있습니다. 이 변수는 Object 타입이며, 디스플레이가 있는 영역의 local to the context로 지정됩니다. 상세한 내용은 주의사항을 참조하십시오.

ClearAtPreRun - 이 속성이 참으로 설정되면, 그래프가 PreRun시 초기화됩니다. 디폴트 값은 참(True) 입니다.

ClearAtActivate - 이 속성이 참으로 설정되면, 그래프가 활성화될 때 초기화됩니다. 디폴트 값은 참(True) 입니다.

MatrixInput - 이 속성이 참으로 설정되면, Polar Plot 은 입력데이터로 2D 어레이(행, 최대 12행까지)를 입력할 수 있으며, 동시에 복수의 트레이스를 디스플레이 합니다. Polar Plot 오브젝트는 MatrixInput 속성이 참으로 설정된 경우에는 행렬-입력 그래프를 호출합니다.

이 MatrixInput 속성은 Next Curve 컨트롤핀이 없고 Polar Plot이 단 하나의 입력핀을 가진 경우에만 참으로 설정될 수 있습니다. 유사하게, 입력핀은 행렬-입력 그래프에 추가될 수 있습니다.

MatrixInput 속성은 패널부에서는 사용할 수 없으며, 프로그램상으로 실행중에는 토글되지 않습니다.

ShowTracesLegend - 오픈뷰에서, 트레이스의 이름 및 색깔의 표시여부를 제어합니다. 트레이스 레전드의 편집버튼은 EnableEditTracesAndScales 를 이용하여 제어합니다. 디폴트 값은 참(True) 입니다.

ShowScalesLegend - 오픈뷰에서, 스케일 이름의 표시여부를 제어합니다. 스케일 레전드의 편집버튼은 EnableEditTracesAndScales 를 이용하여 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScaleLabels - 오픈뷰에서, 스케일 축 라벨의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScrollBars - 오픈뷰에서, X 및 Y 축의 스케일바의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowAutoScaleButton - 오픈뷰에서, Auto Scale 버튼의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 EnableEditTracesAndScales - 오픈뷰에서, 트레이스 및 스케일 속성의 편집버튼의 기능을 제어합니다. 이 기능이 활성화되어 있을 때, 각각의 트레이스 또는 스케일의 속성을 편집하기 위해서 이들을 클릭합니다. 디폴트 값은 참(True) 입니다. 트레이스 및 스케일의 이름의 표시여부를 제어하기 위해서 Show Traces Legend 및 Show Scales Legend 를 사용합니다.

GridType 그룹:

None - 그리드 라인을 숨깁니다.

Tic Marks - 그래프의 4개의 변에서 모든 작은 간격(minor divisions) 및 큰 간격(major divisions) 틱 마크를 표시합니다.

Axis - 그래프의 X 및 Y 축 상에서 작은 간격 및 큰 간격의 틱 마크를 표시합니다. 실제 축이 그래프 영역을 벗어난 경우에는 축 라인이 축에 가장 가까운 위치에 표시됩니다.

Lines - 큰 간격에 라인과 틱 마크를 표시합니다. X 축 및 Y 축은 굵은 선으로 표시됩니다.

Markers 그룹: - 그래프에 표시된 데이터의 정확한 값을 읽을 수 있습니다. 데이터가 로그 스케일로 그래프에 표시되어 있어도, 마커에 표시되는 값은 선형 데이터포인트 입니다.

마커를 다른 트레이스로 이동하기 위해서는, 그래프 하단의 마커값 표시 왼쪽의 버튼을 클릭합니다. 이 버튼을 클릭하면 현재 그래프에 표시된 트레이스를 순환하여 선택합니다.

NumMarkers:

Off - 마커를 보이지 않습니다. 이 값이 디폴트 값입니다.

One - 한 개의 마커를 제공합니다.

Two - 두 개의 마커를 제공합니다.

Delta - 두 개의 마커를 제공하며, 이들 마커값의 차이를 표시합니다.

 MarkersInterpolate - 이 속성을 참으로 설정하면, 그래프로 표시되는 데이터 포인트 사이에 마커를 배치할 수 있습니다. 마커 값은 선형 인터폴레이션으로 연산되어 표시됩니다. 디폴트 값은 거짓(False)입니다.

DisplayBackColor - 팔레트에서 그래프 영역의 색깔을 선택할 수 있습니다. 패널뷰와 디테일뷰에서 서로 다른 색깔을 선택할 수 있습니다. 디폴트 배경색은 Default Preferences 대화상자 Colors 탭의 Screen Element: Graph Background에 설정되어 있습니다.

Scale Label Text - 현재 사용중인 컴퓨터의 폰트목록에서 스케일 라벨에 적용할 폰트를 선택합니다. 스케일 라벨 텍스트의 디폴트 폰트는 Preferences 대화상자 Fonts 탭의 Screen Element: Graph Scale Label Text에 설정되어 있습니다.

Traces 그룹: (트레이스 마다 1 개씩)

Name: - 그래프 영역의 왼쪽에 표시되는 트레이스의 이름. 이 이름은 입력터미날의 이름과 동일합니다.

Color: - 트레이스의 색깔. 추가되는 트레이스는 기존 트레이스와는 다른 색깔로 표시됩니다. 첫 번째 트레이스의 디폴트 색깔은 노란색입니다.

LineStyle: - 데이터 포인트를 연결하는 라인의 포맷. 디폴트는 continuous line(연속선) 입니다.

PointStyle: - 각 데이터포인트를 표시하는 기호. 데이터 포인트를 연결하지 않은 상태로 표시할 때는 LineStyle 을 점(.)으로 설정하고, 사용할 PointStyle 기호를 선택합니다. 디폴트 값은 점(dot)입니다.

Scale - 2 개 이상의 Y 스케일이 있으면, 특정 트레이스가 어떤 스케일에 의해서 스케일되는지 선택합니다.

Scales 속성: (X 스케일 및 추가 Y 축 스케일을 포함한 Y 스케일 마다 1 개씩)

Show Scale: - 여러 개의 Y 스케일이 있으면, 체크박스로 선택한 스케일이 그래프 영역의 우측에 표시됩니다.

Scale Name: - 오픈뷰에서 스케일에 표시되는 이름

Automatic Scaling: - 데이터가 입력될 때 전체 그래프를 표시하기 위해서 그래프 자동 재 스케일 여부를 제어합니다. 디폴트 값은 On 입니다. 이 속성이 Off 이면, Layout 그룹 General 탭의 Auto Scale 을 클릭하거나, 오브젝트 메뉴의 Auto Scale 을 실행하여 그래프를 다시 스케일 할 수 있습니다.

Maximum: - 스케일의 최대값

Minimum: - 스케일의 최소값

Label Spacing: - 어떤 틱마크에 스케일된 값을 표시해야 하는지 제어합니다. X 스케일은 Every Other Tic로, Y 스케일은 Every Major Tic로 디폴트 설정되어 있습니다.

Mapping: - X 데이터 및 Y 데이터가 그래프에 매핑되는 방식. 선형 또는 로그로 매핑될 수 있습니다. 로그-로그 방식으로 표시하기 위해서는 X 축 및 Y 축을 모두 Log 로 설정합니다. 디폴트 설정은 Linear 입니다.

Log Cycles: - Automatic Scaling 이 On 상태에서 최대 x 값 및 최대 y 값으로부터 표시할 10 단위 스케일의 최대 개수. Log Cycles 은 Mapping 이 Log일 때만 사용됩니다. 트레이스 데이터의 변동 폭이 클 때 Log Cycles을 사용하면 편리합니다. 디폴트 값은 4 입니다.

Scale Color - 배경 그리드 및 틱마크의 색깔. 디폴트는 Gray 입니다.

ScaleNumberFormat 속성: (X 스케일 및 추가 Y 축 스케일을 포함함 Y 스케일 마다 1 개씩 표시됩니다.)

Global Format - 디폴트 포맷을 사용합니다. 디폴트는 On 입니다.

Real: - Global Format 이 Off 이면, 오브젝트에 표시될 실수의 숫자포맷을 지정합니다. Fixed (예, 98.6000), Scientific (예, 9.8600E+01), Engineering (예, 98.6000E0), Standard (예, 98.6) 및 Time Stamp (예, Wed 01/Jan/2003 17:01:38)를 선택할 수 있습니다. 디폴트는 Standard 입니다.

X 및 Y 마커 값은 스케일에서 사용하는 숫자포맷과 동일한 포맷을 사용합니다. X 및 Y 에 Time Stamp 을 지정하지 않았으면, 이들의 델타마커 값은 디폴트 숫자 포맷을 사용합니다. X 및 Y 의 마커1과 마커2가 Time Stamp 을 사용한 경우에는, 델타마커 값에 Delta Time 포맷이 사용됩니다.

주의사항

MatrixInput 속성이 거짓인 경우에는, 입력은 스칼라 또는 Array 1D를 사용할 수 있습니다.

MatrixInput 속성이 참인 경우에는, Strip Charts는 입력데이터로 2D 어레이(행, 최대 12행 까지)를 입력할 수 있으며, 동시에 복수의 트레이스를 디스플레이 합니다.

오브젝트 메뉴에서 Add Terminal   [image] Data Input 를 실행하여 트레이스를 추가합니다. 최대 12개의 트레이스를 사용할 수 있습니다.

AutomaticScaling 속성을 True로 설정하면(Scales 카테고리) 그래프를 그릴 때 마다 자동으로 스케일됩니다. 하나의 트레이스에 대한 전체 데이터를 그래프에 표시할 때는 빠르게 실행됩니다. 전체 데이터를 그래프에 한 번에 그리고 자동으로 스케일합니다. 데이터가 그래프에 한 개의 포인트씩 제공되면, 각 데이터 포인터를 그릴 때 마다 그래프가 자동으로 스케일되므로, 프로그램 실행 속도가 저하됩니다. 데이터가 1 개씩 발생되는 경우에는 Collector 오브젝트를 이용하여 어레이로 생성하여, 전체 데이터를 그래프에 한번에 표시하면 실행속도를 향상할 수 있습니다.

컨트롤 입력 추가

Title 컨트롤 입력핀을 추가하여 타이틀바의 이름을 지정할 수 있습니다. 이 기능을 이용하면 프로그램 실행시 타이틀의 이름을 변경할 수 있습니다.

Traces 컨트롤 입력핀을 추가할 수 있습니다. Traces 컨트롤 입력핀의 데이터에는 레코드 어레이를 사용해야 합니다.(또는 하나의 트레이스를 제어하는 경우에는 레코드 스칼라를 사용해도 됩니다.) 레코드의 어레이는 Record Constant 오브젝트 또는 Build Record 오브젝트를 이용하여 생성합니다. 각 레코드에는 다음의 필드가 제공되어야 합니다.:

정수 값을 가진 TraceNum 필드(첫 번째 트레이스는 1). TraceNum 필드의 값은 받드시 입력되어야 합니다. 값을 입력하지 않으면 에러가 발생합니다.

다음 필드 중 1 개 이상의 필드:

Name

Pen

LineType

PointType

Name 필드는 텍스트 값을 가져야 합니다. Pen, LineType 및 PointType 은 0 ~ n의 정수값을 가져야 합니다. 여기서, 0 은 아무것도 그리지 않을 때 입력하고, n 은 사용할 수 있는 값입니다.

위에서 열거된 스케일 인자를 제어하기 위해서 Scales 컨트롤 입력핀을 추가할 수 있습니다. Scales 컨트롤 입력핀의 데이터에는 레코드 어레이를 사용해야 합니다.(또는 하나의 트레이스를 제어하는 경우에는 레코드 스칼라를 사용해도 됩니다.) 레코드의 어레이는 Record Constant 오브젝트 또는 Build Record 오브젝트를 이용하여 생성합니다. 각 레코드에는 다음의 필드가 제공되어야 합니다.:

X, Y (또는 Y1), Y2, 또는 Y3값을 가지며, 이름이 Scale 인 텍스트필드. Scale 필드의 값은 반드시 입력되어야 합니다. 값을 입력하지 않으면 에러가 발생합니다.

다음 필드 중 1 개 이상의 필드:

Name - 오픈뷰에서 스케일 이름을 변경합니다. 텍스트 값을 가져야 합니다.

Min - X 스케일의 최소값을 설정합니다. 정수 또는 실수값을 사용해야 합니다.

Max - X 스케일의 최대값을 설정합니다. 정수 또는 실수값을 사용해야 합니다.

Mapping - Linear 또는 Log의 텍스트 값을 선택합니다.

AutoScale - 자동 스케일링을 제어합니다. On 또는 Off 의 텍스트 값을 선택합니다.

자세한 내용은 Using Records 및 Using DataSets를 참조하십시오.

프로그램 실행시 마커값을 설정하고 읽기

프로그램상으로 다른 속성을 설정하고 읽기 위해서는 To Change Properties Programmatically를 참조하십시오.

Y프로그램을 실행하면서 마커 값을 가져오거나 설정할 수 있습니다. 디스플레이를 준비하기 위해서, Properties 창의 Name 필드에 값을 입력합니다. Name 의 값은 디스플레이 컨텍스트의 지역변수로 사용되는 Object 변수로 지정됩니다. 다음은 Markers 그룹의 설정을 On 시킵니다. VEE는 다음 속성을 델타 값을 포함하여 X 및 Y 의 위치에 지정합니다.(Marker1 아래를 지시하고; Marker2 는 위를 지시합니다.)

Marker1X (위치를 Real64 타입으로 가져옵니다.)

Marker1Y (위치를 Real64 타입으로 가져옵니다.)

Marker2X (위치를 Real64 타입으로 가져옵니다.)

Marker2Y (위치를 Real64 타입으로 가져옵니다.)

MarkerDX (위치를 Real64 타입으로 가져옵니다.)

MarkerDY (위치를 Real64 타입으로 가져옵니다.)

Marker1 (위치를 Coord 타입으로 가져오거나 설정합니다.)

Marker2 (위치를 Coord 타입으로 가져오거나 설정합니다.)

현재 마커의 위치를 읽거나 마커를 새로운 위치로 이동하기 위해서 Marker1 및 Marker2 의 속성을 사용할 수 있습니다. 마커의 다른 속성은 읽기전용입니다. 마커를 트레이스 이외의 위치로 이동하려고 시도하면, 마커는 지정한 마커의 위치와 트레이스 상의 가장 가까운 데이터 포인트에 스냅됩니다.

Formula 오브젝트의 표현식을 이용해서도 마커 값을 읽거나 설정할 수 있습니다. 각 표현식은 디스플레이의 Declared Name 과 마커의 속성을 이용하여 작성해야 합니다. 마커의 속성과 Name 은 대소문자를 구별하지 않습니다. 예를 들어, 디스플레이의 Declared Name 이 XY이고, Delta Markers 가 활성화되어 있으면, 다음 표현식은 모든 사용가능한 마커의 값을 읽어서, Real64 스칼라 타입으로 변수 a ~ f 에 저장합니다.:

a = XY.Marker1X

b = XY.Marker1Y

c = XY.Marker2X

d = XY.Marker2Y

e = XY.MarkerDX

f = XY.MarkerDY

디스플레이의 Declared Name 은 전역변수로 지정될 수도 있습니다. Formula 오브젝트의 표현식에서 지정연산자를 사용하면서, Declare Variable 오브젝트를 함께 사용하여 전역변수로 설정할 수 있습니다. 예를 들어, globalXY 를 전역변수로, 이것의 Type을 Object로 선언하고, 디스플레이를 사용하는 컨텍스트에서 다음 표현식을 추가합니다.

Set globalXY = XY

이제는 프로그램의 다른 컨텍스트에서 다음 표현식으로 마커의 값을 읽을 수 있습니다.:

a = globalXY.Marker1X

프로그램에 따라서, 프로그램이 마커의 값을 읽기 전에 마커의 위치를 변경할 수 있도록 프로그램이 일시 정지하는 기능을 작성해야 하는 경우가 있습니다. 그래프의 시퀀스 출력과 Formula 오브젝트의 시퀀스 입력사이에 Confirm (OK) 버튼을 프로그램에 추가하여 프로그램 실행을 일시정지 할 수 있습니다. 또한 마커의 위치를 프로그램에서 제어하도록 프로그램을 작성할 수도 있습니다. 프로그램상으로 마커를 설정하는 자세한 내용은 프로그램 실행중 속성변경을 참조하십시오.

오브젝트 위치

Display [image] X vs Y Plot

관련정보

Complex Plane, Magnitude Spectrum, Polar Plot, Strip Chart, Waveform (Time), XY Trace, Default Preferences 대화상자 및 오브젝트 메뉴

XY값 디스플레이 하기, 디스플레이에서 마커 설정하기, 마커의 속성을 설정하거나 가져오기


XY Trace오브젝트

2 차원 직교좌표에 그래프를 표시하는 오브젝트

사용법

매핑된 어레이나 일정한 간격으로 분포된 x 에 대해서 y 값을 그래프로 표시할 때 XY Trace 오브젝트를 사용합니다. XY Trace 는 x 데이터가 스케일되어 있지 않거나 x 데이터의 스케일이 필요하지 않을 때 사용하면 편리합니다.

X 값은 트레이스 데이터의 타입에 따라서 자동적으로 생성됩니다. 예를 들어, 트레이스가 실수 값이면, x 의 값은 0,1,2…와 같이 되며, 트레이스가 웨이브폼인 경우에는 x 는 시간 값을 가지게 됩니다.

오픈뷰 항목

아래 항목은 기본 오픈뷰 항목입니다. 이들 항목의 사용법과 다른 항목은 오브젝트 메뉴 및 Properties 대화상자(오브젝트 메뉴 [image] Properties)에서의 선택에 따라서 달라집니다.

Y name - Y 축의 이름.

Trace1 - 첫 번째 트레이스의 이름.

X name - X 축의 이름.

오브젝트 메뉴

Auto Scale [image] - 이것을 클릭하면 그래프가 자동 스케일되어 에서 전체 트레이스를 볼 수 있습니다.(컨트롤 핀을 추가하거나, Scales 속성을 설정하면 데이터가 입력된 후 그래프를 자동으로 스케일할 수 있습니다.)

Auto Scale - 양 축을 자동으로 스케일합니다.

Auto Scale X - X 축을 자동으로 스케일합니다.

Auto Scale Y - Y 축을 자동으로 스케일합니다.

Zoom [image] - 그래프를 확대 또는 축소합니다.

In - 드래그하여 선택한 직사각형 안의 그래프가 전체 화면에 표시되도록 그래프를 확대합니다. 이 항목을 선택한 후, 그래프 영역에서 확대할 부분을 드래그합니다.

Out 2|5|10|20|50|100X - 선택한 숫자만큼 중심에서 X 및 Y 방향으로 그래프의 스케일을 확대합니다.

Clear Control [image] - 그래프의 내용에서 지우게 될 항목을 지정합니다.

Display - 표시된 트레이스를 지웁니다. 이 항목을 오브젝트의 컨트롤 입력으로 추가할 수 있습니다.

Next Curve - 이전 트레이스를 지우지 않고 그래프를 리셋합니다. 다음 입력되는 데이터를 그래프의 처음부터 이전 데이터와 중첩하여 그립니다. 새로운 그래프가 입력되지 전에 활성화되어야 합니다. 이 항목은 컨트롤 입력으로 추가될 수 있습니다. Next Curve 컨트롤 핀은 행렬-입력 그래프와는 사용할 수 없으며, Matrix-Input graphs를 참조하십시오.

Center Markers - 마커를 사용하는 경우, 마커를 트레이스의 중앙으로 이동시킵니다. 그래프를 스크롤하여 마커가 보이지 않을 때 이 기능을 이용하면 편리합니다.

Add Right Scale - 서로 다른 스케일범위를 가지는 Y 축 스케일을 최대 2 개까지 추가할 수 있습니다. 스케일을 추가 후 이 스케일을 제어하는 입력터미날을 추가할 수 있습니다.(오브젝트 메뉴 [image] Add Terminal [image] Data Input) Properties 대화상자의 Traces 및 Scales 속성을 설정하여 사용합니다.

Print - Print 대화상자를 띠웁니다. Print 대화상자에서 OK 버튼을 클릭하면 선택한 프린터로 그래프의 전체화면을 프린트 합니다. Print 항목은 컨트롤 입력으로 추가될 수 있습니다.

속성창

Declared Name - 그래프 오브젝트에 변수이름을 지정합니다. 이름을 입력하면, 사용중인 마커의 값을 읽는 것처럼 프로그램 실행 중에 이 오브젝트의 일부 속성을 가져오고/설정할 수 있습니다. 이 변수는 Object 타입이며, 디스플레이가 있는 영역의 local to the context로 지정됩니다. 상세한 내용은 주의사항을 참조하십시오.

ClearAtPreRun - 이 속성이 참으로 설정되면, 그래프가 PreRun시 초기화됩니다. 디폴트 값은 참(True) 입니다.

 ClearAtActivate - 이 속성이 참으로 설정되면, 그래프가 활성화될 때 초기화됩니다. 디폴트 값은 참(True) 입니다.

MatrixInput - 이 속성이 참으로 설정되면, Polar Plot 은 입력데이터로 2D 어레이(행, 최대 12행까지)를 입력할 수 있으며, 동시에 복수의 트레이스를 디스플레이 합니다. Polar Plot 오브젝트는 MatrixInput 속성이 참으로 설정된 경우에는 행렬-입력 그래프를 호출합니다.

   이 MatrixInput 속성은 Next Curve 컨트롤핀이 없고 Polar Plot이 단 하나의 입력핀을 가진 경우에만 참으로 설정될 수 있습니다. 유사하게, 입력핀은 행렬-입력 그래프에 추가될 수 있습니다.

   MatrixInput 속성은 패널부에서는 사용할 수 없으며, 프로그램상으로 실행중에는 토글되지 않습니다.

ShowTracesLegend - 오픈뷰에서, 트레이스의 이름 및 색깔의 표시여부를 제어합니다. 트레이스 레전드의 편집버튼은 EnableEditTracesAndScales 를 이용하여 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScalesLegend - 오픈뷰에서, 스케일 이름의 표시여부를 제어합니다. 스케일 레전드의 편집버튼은 EnableEditTracesAndScales 를 이용하여 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScaleLabels - 오픈뷰에서, 스케일 축 라벨의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 ShowScrollBars - 오픈뷰에서, X 및 Y 축의 스케일바의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 Show Auto Scale Button - 오픈뷰에서, Auto Scale 버튼의 표시여부를 제어합니다. 디폴트 값은 참(True) 입니다.

 EnableEditTracesAndScales - 오픈뷰에서, 트레이스 및 스케일 속성의 편집버튼의 기능을 제어합니다. 이 기능이 활성화되어 있을 때, 각각의 트레이스 또는 스케일의 속성을 편집하기 위해서 이들을 클릭합니다. 디폴트 값은 참(True) 입니다. 트레이스 및 스케일의 이름의 표시여부를 제어하기 위해서 Show Traces Legend 및 Show Scales Legend 를 사용합니다.

GridType 그룹:

None - 그리드 라인을 숨깁니다.

Tic Marks - 그래프의 4개의 변에서 모든 작은 간격(minor divisions) 및 큰 간격(major divisions) 틱 마크를 표시합니다.

Axis - 그래프의 X 및 Y 축 상에서 작은 간격 및 큰 간격의 틱 마크를 표시합니다. 실제 축이 그래프 영역을 벗어난 경우에는 축 라인이 축에 가장 가까운 위치에 표시됩니다.

Lines - 큰 간격으로 라인을 표시하고, 작은 간격에 틱마크를 표시합니다. X 및 Y 축은 굵은선으로 표시됩니다.

Markers 그룹: - 그래프에 표시된 데이터의 정확한 값을 읽을 수 있습니다. 데이터가 로그 스케일로 그래프에 표시되어 있어도, 마커에 표시되는 값은 선형 데이터포인트 입니다.

마커를 다른 트레이스로 이동하기 위해서는, 그래프 하단의 마커값 표시 왼쪽의 버튼을 클릭합니다. 이 버튼을 클릭하면 현재 그래프에 표시된 트레이스를 순환하여 선택합니다.

Markers 그룹:

Off - 마커를 보이지 않습니다. 이 값이 디폴트 값입니다.

One - 한 개의 마커를 제공합니다.

Two - 두 개의 마커를 제공합니다.

Delta - 두 개의 마커를 제공하며, 이들 마커값의 차이를 표시합니다.

 MarkerInterpolate - 이 속성을 참으로 설정하면, 그래프로 표시되는 데이터 포인트 사이에 마커를 배치할 수 있습니다. 마커 값은 선형 인터폴레이션으로 연산되어 표시됩니다. 디폴트 값은 거짓(False)입니다.

 MarkerColor - 그래프에 표시되는 마커의 색깔을 선택할 수 있습니다.

BackColor - 팔레트에서 그래프 영역의 색깔을 선택할 수 있습니다. 패널뷰와 디테일뷰에서 서로 다른 색깔을 선택할 수 있습니다. 디폴트 배경색은 Default Preferences 대화상자 Colors 탭의 Screen Element: Graph Background에 설정되어 있습니다.

Scale Label 그룹:

Text - 현재 사용중인 컴퓨터의 폰트목록에서 스케일 라벨에 적용할 폰트를 선택합니다. 스케일 라벨 텍스트의 디폴트 폰트는 Preferences 대화상자 Fonts 탭의 Screen Element: Graph Scale Label Text에 설정되어 있습니다.

Traces 그룹: (트레이스 마다 1 개씩).

Name - 그래프 영역의 왼쪽에 표시되는 트레이스의 이름. 이 이름은 입력터미날의 이름과 동일합니다.

Color - 트레이스의 색깔. 추가되는 트레이스는 기존 트레이스와는 다른 색깔로 표시됩니다. 첫 번째 트레이스의 디폴트 색깔은 노란색입니다.

Line Type - 데이터 포인트를 연결하는 라인의 포맷. 디폴트는 continuous line(연속선) 입니다.

Point Type - 각 데이터포인트를 표시하는 기호. 데이터 포인트를 연결하지 않은 상태로 표시할 때는 LineStyle 을 점(.)으로 설정하고, 사용할 PointStyle 기호를 선택합니다. 디폴트 값은 점(dot)입니다.

Scale - 2 개 이상의 Y 스케일이 있으면, 특정 트레이스가 어떤 스케일에 의해서 스케일되는지 선택합니다.

Scales 속성: (X 스케일 및 추가 Y 축 스케일을 포함한 Y 스케일 마다 1 개씩)

Show Scale - 여러 개의 Y 스케일이 있으면, 체크박스로 선택한 스케일이 그래프 영역의 우측에 표시됩니다.

Scale Name - 오픈뷰에서 스케일에 표시되는 이름

Automatic Scaling - 데이터가 입력될 때 전체 그래프를 표시하기 위해서 그래프 자동 재 스케일 여부를 제어합니다. 디폴트 값은 On 입니다. 이 속성이 Off 이면, Layout 그룹 General 탭의 Auto Scale 을 클릭하거나, 오브젝트 메뉴의 Auto Scale 을 실행하여 그래프를 다시 스케일 할 수 있습니다.

Maximum - 스케일의 최대값.

Minimum - 스케일의 최소값.

Label Spacing - 어떤 틱마크에 스케일된 값을 표시해야 하는지 제어합니다. X 스케일은 Every Other Tic로, Y 스케일은 Every Major Tic로 디폴트 설정되어 있습니다.

Mapping - X 데이터 및 Y 데이터가 그래프에 매핑되는 방식. 선형 또는 로그로 매핑될 수 있습니다. 로그-로그 방식으로 표시하기 위해서는 X 축 및 Y 축을 모두 Log 로 설정합니다. 디폴트 설정은 Linear 입니다.

Log Cycles - Automatic Scaling 이 On 상태에서 최대 x 값 및 최대 y 값으로부터 표시할 10 단위 스케일의 최대 개수. Log Cycles 은 Mapping 이 Log일 때만 사용됩니다. 트레이스 데이터의 변동 폭이 클 때 Log Cycles을 사용하면 편리합니다. 디폴트 값은 4 입니다.

Scale Color - 배경 그리드 및 틱마크의 색깔. 디폴트는 Gray 입니다.

ScaleNumberFormat 속성: (X 스케일 및 추가 Y 축 스케일을 포함함 Y 스케일 마다 1 개씩 표시됩니다.)

Global Format - 디폴트 포맷을 사용합니다. 디폴트는 On 입니다.

Real: - Global Format 이 Off 이면, 오브젝트에 표시될 실수의 숫자포맷을 지정합니다. Fixed (예, 98.6000), Scientific (예, 9.8600E+01), Engineering (예, 98.6000E0), Standard (예, 98.6) 및 Time Stamp (예, Wed 01/Jan/2003 17:01:38)를 선택할 수 있습니다. 디폴트는 Standard 입니다.

X 및 Y 마커 값은 스케일에서 사용하는 숫자포맷과 동일한 포맷을 사용합니다. X 및 Y 에 Time Stamp 을 지정하지 않았으면, 이들의 델타마커 값은 디폴트 숫자 포맷을 사용합니다. X 및 Y 의 마커1과 마커2가 Time Stamp 을 사용한 경우에는, 델타마커 값에 Delta Time 포맷이 사용됩니다.

주의사항

MatrixInput 속성이 거짓인 경우에는, 입력은 Real64로 변환될 수 있는 스칼라 또는 Array 1D 를 사용할 수 있습니다. Complex, PComplex 또는 Spectrum 데이터를 XY Trace의 입력으로 사용하기 위해서는 이들을 "unbuild" 해야 합니다.

MatrixInput 속성이 참인 경우에는, Strip Charts는 입력데이터로 2D 어레이(행, 최대 12행 까지)를 입력할 수 있으며, 동시에 복수의 트레이스를 디스플레이 합니다.

Coord 타입의 입력데이터는 Real64 타입으로 변환되지 않고 x 및 y 의 값을 이용하여 그래프로 표시됩니다.

오브젝트 메뉴에서 Add Terminal   [image] Data Input 를 실행하여 트레이스를 추가합니다. 최대 12개의 트레이스를 사용할 수 있습니다.

AutomaticScaling 속성을 True 으로 설정하면(Scales 카테고리) 그래프를 그릴 때 마다 자동으로 스케일됩니다. 하나의 트레이스에 대한 전체 데이터를 그래프에 표시할 때는 빠르게 실행됩니다. 전체 데이터를 그래프에 한 번에 그리고 자동으로 스케일합니다. 데이터가 그래프에 한 개의 포인트씩 제공되면, 각 데이터 포인터를 그릴 때 마다 그래프가 자동으로 스케일되므로, 프로그램 실행 속도가 저하됩니다. 데이터가 1 개씩 발생되는 경우에는 Collector 오브젝트를 이용하여 어레이로 생성하여, 전체 데이터를 그래프에 한번에 표시하면 실행속도를 향상할 수 있습니다.

컨트롤 입력 추가

Title 컨트롤 입력핀을 추가하여 타이틀바의 이름을 지정할 수 있습니다. 이 기능을 이용하면 프로그램 실행시 타이틀의 이름을 변경할 수 있습니다.

Traces 컨트롤 입력핀을 추가할 수 있습니다. Traces 컨트롤 입력핀의 데이터에는 레코드 어레이를 사용해야 합니다.(또는 하나의 트레이스를 제어하는 경우에는 레코드 스칼라를 사용해도 됩니다.) 레코드의 어레이는 Record Constant 오브젝트 또는 Build Record 오브젝트를 이용하여 생성합니다. 각 레코드에는 다음의 필드가 제공되어야 합니다.:

정수 값을 가진 TraceNum 필드(첫 번째 트레이스는 1). TraceNum 필드의 값은 받드시 입력되어야 합니다. 값을 입력하지 않으면 에러가 발생합니다.

다음 필드 중 1 개 이상의 필드:

Name

Pen

LineType

PointType

Name 필드는 텍스트 값을 가져야 합니다. Pen, LineType 및 PointType 은 0 ~ n의 정수값을 가져야 합니다. 여기서, 0 은 아무것도 그리지 않을 때 입력하고, n 은 사용할 수 있는 값입니다.

위에서 열거된 스케일 인자를 제어하기 위해서 Scales 컨트롤 입력핀을 추가할 수 있습니다. Scales 컨트롤 입력핀의 데이터에는 레코드 어레이를 사용해야 합니다.(또는 하나의 트레이스를 제어하는 경우에는 레코드 스칼라를 사용해도 됩니다.) 레코드의 어레이는 Record Constant 오브젝트 또는 Build Record 오브젝트를 이용하여 생성합니다. 각 레코드에는 다음의 필드가 제공되어야 합니다.:

X, Y (또는 Y1), Y2, 또는 Y3값을 가지며, 이름이 Scale 인 텍스트필드. Scale 필드의 값은 반드시 입력되어야 합니다. 값을 입력하지 않으면 에러가 발생합니다.

다음 필드 중 1 개 이상의 필드:

Name - 오픈뷰에서 스케일 이름을 변경합니다. 텍스트 값을 가져야 합니다.

Min - X 스케일의 최소값을 설정합니다. 정수 또는 실수값을 사용해야 합니다.

Max - X 스케일의 최대값을 설정합니다. 정수 또는 실수값을 사용해야 합니다.

Mapping - Linear 또는 Log의 텍스트 값을 선택합니다.

AutoScale - 자동 스케일링을 제어합니다. On 또는 Off 의 텍스트 값을 선택합니다.

자세한 내용은 Using Records 및 Using DataSets를 참조하십시오.

프로그램 실행시 마커값을 설정하고 읽기

프로그램상으로 다른 속성을 설정하고 읽기 위해서는 To Change Properties Programmatically를 참조하십시오.

프로그램을 실행하면서 마커 값을 가져오거나 설정할 수 있습니다. 디스플레이를 준비하기 위해서, Properties 창의 Name 필드에 값을 입력합니다. Name 의 값은 디스플레이 컨텍스트의 지역변수로 사용되는 Object 변수로 지정됩니다. 다음은 Markers 그룹의 설정을 On 시킵니다. VEE는 다음 속성을 델타 값을 포함하여 X 및 Y 의 위치에 지정합니다.(Marker1 아래를 지시하고; Marker2 는 위를 지시합니다.)

Marker1X (위치를 Real64 타입으로 가져옵니다.)

Marker1Y (위치를 Real64 타입으로 가져옵니다.)

Marker2X (위치를 Real64 타입으로 가져옵니다.)

Marker2Y (위치를 Real64 타입으로 가져옵니다.)

MarkerDX (위치를 Real64 타입으로 가져옵니다.)

MarkerDY (위치를 Real64 타입으로 가져옵니다.)

Marker1 (위치를 Coord 타입으로 가져오거나 설정합니다.)

Marker2 (위치를 Coord 타입으로 가져오거나 설정합니다.)

현재 마커의 위치를 읽거나 마커를 새로운 위치로 이동하기 위해서 Marker1 및 Marker2 의 속성을 사용할 수 있습니다. 마커의 다른 속성은 읽기전용입니다. 마커를 트레이스 이외의 위치로 이동하려고 시도하면, 마커는 지정한 마커의 위치와 트레이스 상의 가장 가까운 데이터 포인트에 스냅됩니다.

Formula 오브젝트의 표현식을 이용해서도 마커 값을 읽거나 설정할 수 있습니다. 각 표현식은 디스플레이의 Declared Name 과 마커의 속성을 이용하여 작성해야 합니다. 마커의 속성과 Name 은 대소문자를 구별하지 않습니다. 예를 들어, 디스플레이의 Declared Name 이 XY이고, Delta Markers 가 활성화되어 있으면, 다음 표현식은 모든 사용가능한 마커의 값을 읽어서, Real64 스칼라 타입으로 변수 a ~ f 에 저장합니다.:

a = XY.Marker1X

b = XY.Marker1Y

c = XY.Marker2X

d = XY.Marker2Y

e = XY.MarkerDX

f = XY.MarkerDY

디스플레이의 Declared Name 은 전역변수로 지정될 수도 있습니다. Formula 오브젝트의 표현식에서 지정연산자를 사용하면서, Declare Variable 오브젝트를 함께 사용하여 전역변수로 설정할 수 있습니다. 예를 들어, globalXY 를 전역변수로, 이것의 Type을 Object로 선언하고, 디스플레이를 사용하는 컨텍스트에서 다음 표현식을 추가합니다.

Set globalXY = XY

이제는 프로그램의 다른 컨텍스트에서 다음 표현식으로 마커의 값을 읽을 수 있습니다.:

a = globalXY.Marker1X

프로그램에 따라서, 프로그램이 마커의 값을 읽기 전에 마커의 위치를 변경할 수 있도록 프로그램이 일시 정지하는 기능을 작성해야 하는 경우가 있습니다. 그래프의 시퀀스 출력과 Formula 오브젝트의 시퀀스 입력사이에 Confirm (OK) 버튼을 프로그램에 추가하여 프로그램 실행을 일시정지 할 수 있습니다. 또한 마커의 위치를 프로그램에서 제어하도록 프로그램을 작성할 수도 있습니다. 프로그램상으로 마커를 설정하는 자세한 내용은 Programmatic Properties를 참조하십시오.

오브젝트 위치

Display [image] XY Trace

관련정보

Complex Plane, Magnitude Spectrum, Polar Plot, Strip Chart, Waveform (Time), X vs Y Plot, Default Preferences 대화상자 및 오브젝트 메뉴

TXY값 디스플레이 하기, 디스플레이에서 마커 설정하기, 마커의 속성을 설정하거나 가져오기


abs(x) 오브젝트

x의 절대값을 출력하는 오브젝트

사용법

abs(x)는 컨테이너 안에 있는 숫자의 절대값을 연산하기 위해 사용합니다. x에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 동일한 형태의 숫자가 출력됩니다. Complex, PComplex 또는 Spectrum에 대해서는, 절대값은 복소수의 크기입니다; 따라서 동일한 형태를 가진 Real64가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | 동일한 형태의 Real64
PComplex | 동일한 형태의 Real64
Spectrum | 동일한 형태의 Real64

사용예

abs(-34)는 34를 출력

주의사항

출력에서도 동일한 매핑이 유지됩니다. Int32중에서 음의 최대값을 입력하면 에러가 발생합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Real Parts
Member: abs

관련정보

Complex Parts 영역, mag(x), Real Parts 영역 및 signof(x).


acos(x) 오브젝트

x의 아크코사인 값을 출력하는 오브젝트

사용법

acos(x)는 x로 입력된 데이터의 아크코사인 값을 계산하는데 사용되며, 0 ~ PI 사이의 값을 출력합니다. 아크코사인 오브젝트의 입력값 x에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 동일한 형태의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

사용예

acos(1)은 Degree 모드에서는 0을 출력합니다.

acos((1.54308, @0))는 Radian 모드에서는 (0.9999, @1.87079)를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다. Default Preference에서 Trig모드를 Radian을 제외한 다른 모드로 설정할 경우에는 12자리수를 넘게 되어 정확도에서 에러가 발생합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: acos

관련정보

acosh(x) , cos(x), sin(x), tan(x), Trig 영역 및 Default Preferences 대화상자


acosh(x) 오브젝트

x의 하이퍼볼릭 아크코사인값을 출력하는 오브젝트

사용법

acos(x)은 x로 입력된 데이터의 하이퍼볼릭 아크코사인 값을 계산하는데 사용되며, 입력값x에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

사용예

acosh(1)은 0을 출력

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: acosh

관련정보

acos(x), cosh(x), Trig, sinh(x) 및 tanh(x).


acot(x) 오브젝트

x의 아크 코탄젠트 값을 출력하는 오브젝트

사용법

acot(x)는 x로 입력된 데이터의 아크 코탄젠트 값을 계산하는데 사용되며, atan(1/x)을 사용했을 때와 동일한 값을 출력합니다. acot(0)은 PI/2을 출력합니다. 입력값(x)에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태의 숫자가 출력됩니다

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

출력되는 값의 단위는 Default Preference에서 설정된 Trig모드의 단위입니다.

사용예

acot(1)은 Degree 모드에서는 45를 출력합니다.

acot((1.31303, @PI/2))는 Radian 모드에서는 (1.00, @-1.57079)를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다. Default Preference에서 Trig모드를 Radian을 제외한 다른 모드로 설정할 경우에는 12자리수를 넘게 되어 정확도에서 에러가 발생합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: acot

관련정보

acoth(x), atan2(y,x), cos(x), sin(x), tan(x), Trig 영역 및 Default Preferences 대화상자.


acoth(x) 오브젝트

x의 하이퍼볼릭 아크 코탄젠트 값을 출력하는 오브젝트

사용법

acot(x)는 x로 입력된 데이터의 하이퍼볼릭 아크 코탄젠트 값을 계산하는데 사용됩니다. 입력값(x)에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

사용예

acoth(1.5)는 0.8047을 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: acoth

관련정보

acot(x), cosh(x), coth(x), Trig 영역, sinh(x) 및 tanh(x).


a + b (add)

a + b (add) 오브젝트

두 개의 입력값을 더하는 연산을 실행하는 오브젝트

사용법

a + b는 두개의 컨테이너 값을 더하기 위해 사용합니다. 두개의 컨테이너는 어떤 타입과 형태를 가진 데이터도 입력할 수 있습니다. 하나의 컨테이너가 어레이이면, 다른 컨테이너는 스칼라 또는 같은 크기와 형태를 가진 어레이이어야 합니다. 출력값은 연산되는 숫자와 동일한 형태를 가진 최상위 타입의 컨테이너가 됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8

두개의 연산수

중에서

최상위 타입

Int16

Int32

Int64

Real32

Real64

Coord

Waveform

PComplex

Spectrum

두 개의 입력값이 Coord타입인 경우에는, 각각의 독립변수는 일치해야 하며 그렇지 않으면 에러가 발생합니다. 더하기는 종속변수(마지막)에서만 실행됩니다.

입력이 텍스트인 경우에는 텍스트를 더하여 나열합니다. 입력이 Enums인 경우에는 텍스트로 변환되어 더해집니다. 두 개의 스트링을 더하는 Add 오브젝트의 기능은 concat(x, y) 기능과는 다릅니다. concat("hello","there")는 1차원 어레이 ["hello", "there"]를 출력합니다.

사용예

어레이 와 스칼라 더하기: [1, 2, 3] + 3 은 [4, 5, 6]을 출력

두개의 Complex 스칼라 더하기: (2,4) + (1,3)은 (3,7)을 출력

두개의 어레이 더하기: [1, 2, 3] + [4, 5, 6] 은 [5, 7, 9] 을 출력.

두개의 Coord 스칼라 더하기: coord(1,3) + coord(1,5) 은 coord(1,8) 을 출력.

두개의 Coord 스칼라 더하기: coord(1,3) + coord(2,5)은 에러발생

두개의 텍스트 더하기: "hello" + "there" 은 "hellothere" 을 출력.

주의사항

하나의 컨테이너가 매핑이 되어 있다면(Waveform, Spectrum, Coord, 다른 타입으로 매핑된 어레이) 다른 컨테이너는 매핑이 안되어 있든지, 동일한 매핑을 가져야 합니다. 출력값은 입력값과 동일한 매핑을 가져야 하며, 그렇지 않는 경우에는 에러가 발생합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Arithmetic
Member: +

See Also

concat(x,y), a / b (divide), a * b (multiply) 및 a - b (subtract).


Ai(x) 오브젝트

x의 Airy fractional order Bessel 함수를 연산하는 오브젝트

사용법

Ai(x)는 x의 Airy fractional order Bessel 함수를 연산하는데 사용되며, x는 어떤 형태를 가진 데이터도 입력할 수 있으며, 같은 형태가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

입력타입이 Coord인 경우는, 연산은 종속변수에서 실행됩니다.

사용예

Ai(10)은 0.110475325528986를 출력합니다.

주의사항

숫자의 매핑은 무시되고, 출력 컨테이너는 입력과 같은 매핑을 갖습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: Ai

관련정보

Bi(x), j0(x), j1(x), jn(x,n), y0(x), y1(x) 및 yn(x,n).


a ~= b (almost equal to) 오브젝트

두개의 숫자에서 almost equal to를 연산하는 오브젝트

사용법

a ~= b를 사용하십시오. 하나의 컨테이너 값이 다른 컨테이너의 값과 비교하여 앞의 7자리가 동일한지를 연산합니다. 두 개의 컨테이너는 어떤 종류(Type)과 형태(Shape)를 가진 데이터도 사용할 수 있습니다. 정수, Enum 및 텍스트타입은 정확하게 비교가 됩니다. 만약 하나의 컨테이너가 어레이(혹은 레코드)라면 다른 컨테이너는 스칼라 이던지 같은 사이즈와 형태를 가진 어레이(혹은 레코드)가 되어야 합니다. 결과값은 0(Zero)이나 1의 값을 가진 스칼라 Int32입니다. 만약 첫 번째 숫자가 두 번째 숫자와 거의 비슷하다면 결과값은 1입니다; 다른 경우는 0(Zero)입니다.

X ~= 0 (zero)의 경우에는 의미가 없습니다. 0(Zero)은 유효 자리수가 무한대이고 크기가 없기 때문입니다. 이것은 0(Zero)와 정확하게 매칭되는 어떤 비교 값이 필요합니다. 그러므로 어떤 값 x를 0(Zero)와 비교하면, x가 정확하게 0(Zero)이 아니라면 항상 0(false)을 출력합니다.

almost equal to는 Device [image] Comparator의 비교기능과는 다릅니다. Comparator 오브젝트는 0(zero)을 포함한 파형이나 어레이를 비교할 때 사용해야 합니다. Comparator 오브젝트는 기준 데이터의 크기로부터 “Virtual Zero”의 값을 이끌어 낼 수 있습니다.

만약 두개의 숫자가 Coord 타입이라면 모든 종속변수의 앞 7자리가 매칭이 되어야 결과값이 1이 됩니다. 만약 독립변수가 매칭이 되지 않는다면 에러가 발생합니다. Complex, PComplex 또는 Spectrum 컨테이너는 연산을 위한 두 부분이 거의 매칭이 되어야 1이 출력됩니다. Enums은 연산를 위해 텍스트로 변환됩니다.

어레이는 두개의 컨테이너가 가진 각각의 값이 거의 동일해야 1을 출력합니다.

사용예

두개의 스칼라: 3.1234560 ~= 3.1234559는 1을 출력합니다.

두개의 스칼라: 3.1234560 ~= 3.1234459는 0을 출력합니다.

스칼라와 어레이: 3.1234560 ~= [3.1234559, 3.1234562, 3.1234563]는 1을 출력합니다.

스칼라와 어레이: 3.1234560 ~= [3.1234459, 3.1234562, 3.1234569]는 0을 출력합니다.

두개의 Complex 스칼라: (2.12345,3.12345) ~= (2.12344,3.12345)는 0을 출력합니다.

두개의 Complex 스칼라: (2.1234567,3.12345) ~= (2.1234566,3.12345)는 1을 출력합니다.

두개의 Coord 스칼라: coord(1,3.123456) ~= coord(1,3.123446)은 0을 출력합니다.

두개의 Coord 스칼라: coord(1,3.123456) ~= coord(2,3.123456)은 Values for independent variables must match 에러가 발생합니다.

주의사항

컨테이너가 매핑되어 있다면(Waveform, Spectrum, Coord 타입 혹은 어떤 다른 타입으로 매핑된 어레이), 다른 컨테이너는 매핑이 인되어 있든지 동일한 매핑을 가져야 합니다; 그렇지 않으면 에러가 발생합니다.

"almost equal to" 연산은 Complex 와 Polar Complex 숫자에서는 약간 다릅니다. 두개의 실수 값(a와 b)에서의 "almost equal to" 실행 결과는:

a - b <= a * 10E-7

반면에, 두개의 Complex값(a와 b)에서의 실행 결과는:

re(a) - re(b) <= mag(a) * 10E-7

여기서:

re(a) 는 a의 실수 컴포넌트

re(b) 는 b의 실수 컴포넌트

mag(a) 는 a의 벡터 크기

이 실행 결과는 Complex 와 Polar Complex 숫자에서 “almost equal”의 직교좌표나 극좌표의 모호함을 없애기 위하여 사용됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Comparison
Member: ~=

관련정보

a AND b, a == b (equal to), a > b (greater than), a >= b (greater than or equal to), a < b (less than), a <= b (less than or equal to), NOT a, a != b (not equal to), a OR b, Comparison 및 a XOR b.

Comparator, Conditional 메뉴 및 If/Then/Else.


a AND b 오브젝트

두 개의 숫자에서 논리연산 AND를 실행하는 오브젝트

사용법

A AND b는 두 개의 컨테이너 값이 논리적으로 참(0이 아닌 값)인지를 연산합니다. 두개의 컨테이너는 어떤 종류(Type)와 형태(Shape)를 가진 데이터도 사용할 수 있습니다. 하나의 컨테이너가 어레이라면 다른 컨테이너는 스칼라 이던지 같은 사이즈와 형태를 가진 어레이가 되어야 합니다. 결과 값은 숫자로써, 결과값은 0(Zero)이나 1의 숫자이며 동일한 형태를 가진 스칼라 Int32입니다. 만약 두 개의 숫자가 0(Zero)이 아니라면, AND 연산의 값은 1입니다; 다른 경우는 0(Zero)입니다.

두 개의 숫자 종류가 Coord라면, 그 숫자들은 독립변수가 정확히 매칭이 되어야 하며 그렇지 않으면 에러가 발생합니다. 단지 종속변수(마지막 자리) 만이 AND연산을 위해 사용됩니다.

PComplex 및 Spectrum 컨테이너의 경우를 예로 들면, 한 항목이라도 0(Zero)이 아니면 숫자의 값은 참입니다. 텍스트는 널 스트링이 아니면 참입니다. Enums은 연산을 위해 텍스트로 변환됩니다.

두개의 연산 숫자가 Boolean 타입인 경우에는, 출력값은 연산 숫자와 동일한 형태의 Boolean입니다.

사용예

두 개의 Boolean 스칼라: True AND False는 False를 출력합니다.

스칼라와 어레이: 3 AND [3, 3, 3]은 [1, 1, 1]을 출력합니다.

스칼라와 어레이: 3 AND [-3, 0, 3]은 [1, 0, 1]을 출력합니다.

두 개의 어레이: [1, 2, 3] AND [0, 1, (-1)]은 [0, 1, 1]을 출력합니다.

두 개의 어레이: (1,@90) AND (1,@85)은 1을 출력합니다.

두 개의 Complex 스칼라: (2,3) AND (0,1)은 1을 출력합니다.

두 개의 Complex 스칼라: (0,1) AND (1,0)은 1을 출력합니다.

두 개의 Complex 스칼라: (0,0) AND (0,0)은 0을 출력합니다.

두 개의 Coord 스칼라: coord(1,3) AND coord(1,5)은 1을 출력합니다.

두 개의 Coord 스칼라: coord(1,3) AND coord(2,3)은 에러를 출력합니다.

텍스트 스칼라와 스칼라 숫자: "too" AND 2은 1을 출력합니다.

텍스트 스칼라와 스칼라 숫자: "" AND 0은 0을 출력합니다. 왜냐하면 하나의 스트링은 널이고 다른 하나는 널 스트링이 아니기 때문(“0”)입니다.

주의사항

컨테이너가 매핑되어 있다면(Waveform, Spectrum, Coord 타입 혹은 어떤 다른 타입으로 매핑된 어레이), 다른 컨테이너는 매핑이 안되어 있던지 혹은 동일한 매핑을 가져야 합니다. 결과 값은 같은 매핑을 갖게 됩니다. 그렇지 않으면 에러가 발생합니다.

If/Then/Else 오브젝트는 모두 0(Zero)이거나 1인 경우에, 스칼라이거나 어레이인지를 평가하기 위하여 내부에 표현식이 필요합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Logical
Member: AND

관련정보

NOT a, a OR b, Comparison 영역 및 a XOR b.

Conditional 메뉴 및 If/Then/Else.


Arithmetic 영역

Function & Object Browser의 대화상자에 있는 Operators 영역

사용법

산술 연산자는 두 개의 숫자에서 아래와 같은 산술적인 연산을 수행할 때 사용합니다.

a + b

a - b

a * b

a / b

a ^ b

a MOD b

a DIV b

주의사항

다이아딕 연산(Dyadic operations, 두 개의 입력값을 연산하는 것)에서는, 서로 다른 타입의 두 개의 값이 입력될 때, 하위개념의 데이터를 상위개념의 데이터로 변환합니다. 타입 변환 및 타입의 계층구조에 대해서는 메뉴바의 Help 메뉴에서 “Using Dyadic Operators”를 참조하십시오.

다음에서 예를 든 다이아딕 연산에서는, 어레이의 각 앨리먼트에서 연산하는 어레이와 스칼라를 더합니다. 결과 값은 어레이 숫자와 같은 사이즈와 같은 형태를 가진 하나의 어레이 입니다. 예를 들면, 스칼라 더하기 4개의 앨리먼트로 구성된 선형 어레이는, 5 + [1, 2, 3, 6], 4개의 앨리먼트로 구성된 선형 어레이를 출력합니다. [6, 7, 8, 11]. 지수 연산의 경우도 동일합니다. 따라서 2 ^ [3, 4]는 [8, 16]를 출력합니다.

두 개의 어레이가 주어지는 다이아딕 연산(Dyadic operations)에서는 두 개의 수가 같은 사이즈와 형태를 가져야 합니다. 출력 값은 연산되는 수와 같은 사이즈와 형태를 가진 하나의 어레이 입니다. 이 연산은 앨리먼트 단위로 실행됩니다. 예를 들어, 각기 세 개의 앨리먼트를 가진 두 개의 선형 어레이를 더하면, 세 개의 앨리먼트를 가진 하나의 선형 어레이를 출력합니다. [1, 2, 3] + [4, 5, 6]는 [5, 7, 9]를 출력합니다. 만약 두 개의 어레이가 일치하지 않는다면 에러가 발생합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Arithmetic

관련정보

a + b (add), a / b (divide), a div b (truncated division), a ^ b (exponent), a mod b (modulo), a * b (multiply) 및 a - b (subtract).


어레이 영역

Function & Object Browser의 대화상자에 있는 Built-in Functions의 하나의 Category

사용법

Array는 어레이에서 다양한 기능을 수행하기 위한 아래와 같은 오브젝트들을 제공합니다.

init(x,val)

totSize(x)

rotate(x,numElem)

concat(x,y)

sum(x)

product(x)

sort(x)

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Array

관련정보

concat(x,y), init(x,val),
 product(x), rotate(x, numElem),
 sort(x, direction, field), sum(x),
 및 totSize(x).


asBoolean(x) 오브젝트

x 값을 부울 값으로 변환하는 오브젝트. x는 어떤 형태의 데이터도 사용이 가능합니다.

사용법

asBoolean(x) 오브젝트는 x 데이터를 부울대수 타입의 데이터로 변환합니다. x는 어떤 형태의 데이터도 사용이 가능하며 동일한 형태를 출력합니다. x가 0(zero)이 아닌 경우에는, asBoolean(x)는 True을 출력하고, 다른 경우에는 False를 출력합니다;

입력 가능한 종류(Type) 출력 종류(type)

Boolean | Boolean
UInt8 | Boolean
Int16 | Boolean
Int32 | Boolean
Int64 | Boolean
Real32 | Boolean
Real64 | Boolean
Text* | Boolean

* x가 텍스트 타입인 경우에는, 이것은 "True" 또는 "False"만 사용할 수 있습니다.

사용예

asBoolean(4.5)는 부울 값 True를 출력합니다.

asBoolean(0)는 부울 값 False를 출력합니다.

asBoolean("True")는 부울 값 True를 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asBoolean

관련정보

asComplex(x), asCoord(x), asInt16(x), asInt32(x), asInt64(x), asPComplex(x), asReal32(x), asReal64(x), asText(x), asUInt8(x), asVariant(x), asVariantBool(x), asVariantCurrency(x), asVariantDate(x), asVariantEmpty(x), asVariantError(x), asVariantNull(x).


asComplex(x) 오브젝트

x 값을 복소수 값으로 변환하는 오브젝트

사용법

asComplex(x) 오브젝트는 x 값을 복소수 값으로 변환합니다. x는 어떤 형태의 데이터도 사용할 수 있으며, 동일한 형태의 데이터를 출력합니다.

입력 가능한 종류(Type) 출력 종류(type)

UInt8 | Complex
Int16 | Complex
Int32 | Complex
Real32 | Complex
Real64 | Complex
PComplex | Complex
Text | Complex

x가 텍스트 타입인 경우에는, 복소수로 변환하기 위한 값을 반드시 가지고 있어야 합니다.

사용예

asComplex(4.5) 는 복소수 값 (4.5, 0)을 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asComplex

관련정보

asCoord(x), asInt16(x), asInt32(x), asInt64(x), asPComplex(x), asReal32(x), asReal64(x), asText(x), asUInt8(x), asVariant(x), asVariantBool(x), asVariantCurrency(x), asVariantDate(x), asVariantEmpty(x), asVariantError(x), asVariantNull(x).


asCoord(x) 오브젝트

x 값을 좌표값으로 변환하는 오브젝트

사용법

asCoord(x) 오브젝트는 x 데이터를 Coord 타입으로 변환합니다. x는 반드시 1D 어레이 형태를 가져야 하며, x와 같은 형태를 출력합니다. 만약 어레이가 매핑이 되어 있다면, Coord 어레이는 매핑을 사용하여 x 값을 생성합니다. 어레이가 매핑이 되어 있지 않다면, x값은 0(Zero)부터 시작되며 1씩 증가합니다.

입력 가능한 종류(Type) 출력 종류(type)

UInt8 | Coord
Int16 | Coord
Int32 | Coord
Real32 | Coord
Real64 | Coord

사용예

asCoord([4, 5]) 는 좌표 어레이 [(0,4), (1,5)]을 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asCoord

관련정보

asComplex(x), asInt16(x), asInt32(x), asInt64(x), asPComplex(x), asReal32(x), asReal64(x), asText(x), asUInt8(x), asVariant(x), asVariantBool(x), asVariantCurrency(x), asVariantDate(x), asVariantEmpty(x), asVariantError(x), asVariantNull(x).


asInt16(x) 오브젝트

이 오브젝트는 x값을 Int16값으로 변환합니다. 컨테이너에서 정수에 가까운 수를 얻고자 반올림한 값이 필요할 경우에는 round(x)를 사용할 수도 있습니다. x는 어떤 형태의 데이터도 입력할 수 있습니다. round(x) 함수는 x에 가장 가까운 정수(같은 데이터 종류)를 출력합니다. 반올림 기준은 0.5입니다.

사용법

asInt16(x) 은 x로 입력되는 값을 Int16 타입의 데이터로 변환합니다. 입력 값(x)에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태의 숫자가 출력됩니다.

입력 가능한 종류(Type) 출력 종류(type)

UInt8 | Int16
Int16 | Int16
Int32 | Int16
Int64 | Int16
Real32 | Int16
Real64 | Int16
Text | Int16

만약 x가 텍스트 타입이라면 Int16으로 변환하기 위한 값을 반드시 가지고 있어야 합니다.

사용예

asInt16(4.5)은 Int16값 5를 출력합니다.

asInt16(4.25)은 Int16값 4를 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asInt16

관련정보

asComplex(x), asCoord(x), asInt32(x), asInt64(x), asPComplex(x), asReal32(x), asReal64(x), asText(x), asUInt8(x), asVariant(x), asVariantBool(x), asVariantCurrency(x), asVariantDate(x), asVariantEmpty(x), asVariantError(x), asVariantNull(x).


asInt32(x) 오브젝트

이 오브젝트는 x값을 Int32 값으로 변환합니다. 컨테이너의 값과 가장 가까운 정수를 얻기위해서는 round(x) 오브젝트를 사용하여 입력값을 반올림할 수 있습니다. x에는 어떤 형태의 데이터도 입력할 수 있습니다. round(x) 함수는 x에 가장 가까운 정수(같은 데이터 종류)를 출력합니다. 반올림 기준은 0.5입니다.

사용법

asInt32(x) 은 x로 입력되는 값을 Int32 타입의 데이터로 변환합니다. 입력 값(x)에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태(Shape)의 숫자가 출력됩니다.

입력 가능한 종류(Type) 출력 종류(type)

UInt8 | Int32
Int16 | Int32
Int32 | Int32
Int64 | Int32
Real32 | Int32
Real64 | Int32
Text | Int32

I만약 x가 텍스트 타입이라면 Int32으로 변환하기 위한 값을 반드시 가지고 있어야 합니다.

사용예

asInt32(4.5)는 Int32 값 5를 출력합니다.

asInt32(4.25)는 Int32 값 4를 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asInt32

관련정보

asComplex(x), asCoord(x), asInt16(x), asInt64(x), asPComplex(x), asReal32(x), asReal64(x), asText(x), asUInt8(x), asVariant(x), asVariantBool(x), asVariantCurrency(x), asVariantDate(x), asVariantEmpty(x), asVariantError(x), asVariantNull(x).


asInt64(x) 오브젝트

이 오브젝트는 x값을 Int64 값으로 변환합니다. 컨테이너의 값과 가장 가까운 정수를 얻기위해서는 round(x) 오브젝트를 사용하여 입력값을 반올림할 수 있습니다. x에는 어떤 형태의 데이터도 입력할 수 있습니다. round(x) 함수는 x에 가장 가까운 정수(같은 데이터 종류)를 출력합니다. 반올림 기준은 0.5입니다.

사용법

asInt64(x)은 x로 입력되는 값을 Int64 타입의 데이터로 변환합니다. 입력 값(x)에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태(Shape)의 숫자가 출력됩니다.

입력 가능한 종류(Type) 출력 종류(type)

UInt8 | Int64
Int16 | Int64
Int32 | Int64
Int64 | Int64
Real32 | Int64
Real64 | Int64
Text | Int64

x가 텍스트 타입이면 Int64으로 변환하기 위한 값을 반드시 가지고 있어야 합니다.

사용예

asInt32(4.5)는 Int64 값 5를 출력합니다.

asInt32(4.25)는 Int64 값 4를 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asInt64

관련정보

asBoolean(x), asComplex(x), asCoord(x), asInt16(x), asInt32(x), asPComplex(x), asReal32(x), asReal64(x), asText(x), asUInt8(x), asVariant(x), asVariantBool(x), asVariantCurrency(x), asVariantDate(x), asVariantEmpty(x), asVariantError(x), asVariantNull(x).


asPComplex(x) 오브젝트

x 값을 폴라 복소수 값으로 변환하는 오브젝트.

사용법

asPComplex(x) 오브젝트는 x 값을 폴라 복소수 값으로 변환합니다. x는 어떤 형태의 데이터도 사용이 가능하며 동일한 형태를 출력합니다.

입력 가능한 종류(Type) 출력 종류(type)

UInt8 | PComplex
Int16 | PComplex
Int32 | PComplex
Int64 | PComplex
Real32 | PComplex
Real64 | PComplex
Complex | PComplex
Text | PComplex

x가 텍스트 타입이라면 폴라 복소수로 변환하기 위한 값을 반드시 가지고 있어야 합니다.

사용예

asPComplex(4.5)는 폴라 복소수 값 (4.5, @0)을 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asPComplex

관련정보

asComplex(x), asCoord(x), asInt16(x), asInt32(x), asInt64(x), asReal32(x), asReal64(x), asText(x), asUInt8(x), asVariant(x), asVariantBool(x), asVariantCurrency(x), asVariantDate(x), asVariantEmpty(x), asVariantError(x), asVariantNull(x).


asReal32(x) 오브젝트

x 값을 Real32 값으로 변환하는 오브젝트

사용법

asReal32(x) 오브젝트는 x 값을 Real32 값으로 변환합니다. x는 어떤 형태의 데이터도 사용이 가능하며 동일한 형태를 출력합니다.

입력 가능한 종류(Type) 출력 종류(type)

UInt8 | Real32
Int16 | Real32
Int32 | Real32
Int64 | Real32
Real32 | Real32
Real64 | Real32
Text | Real32

만약 x가 텍스트 타입이라면 Real32로 변환하기 위한 값을 반드시 가지고 있어야 합니다.

사용예

asReal32("3.1415")는 Real32 값 3.1415를 출력합니다.

asReal32(6) = 6.0

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asReal32

관련정보

asComplex(x), asCoord(x), asInt16(x), asInt32(x), asInt64(x), asPComplex(x), asReal64(x), asText(x), asUInt8(x), asVariant(x), asVariantBool(x), asVariantCurrency(x), asVariantDate(x), asVariantEmpty(x), asVariantError(x), asVariantNull(x).


asReal64(x) 오브젝트

x 값을 Real64 값으로 변환하는 오브젝트

사용법

asReal64(x) 오브젝트는 x 값을 Real64 값으로 변환합니다. x는 어떤 형태의 데이터도 사용이 가능하며 동일한 형태를 출력합니다.

입력 가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Text | Text

x가 텍스트 타입이라면 Real64로 변환하기 위한 값을 반드시 가지고 있어야 합니다.

사용예

asReal64("3.1415") 는 Real64 값 3.1415를 출력합니다.

asReal64(7) = 7.0

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asReal64

관련정보

asComplex(x), asCoord(x), asInt16(x), asInt32(x), asInt64(x), asPComplex(x), asReal32(x), asText(x), asUInt8(x), asVariant(x), asVariantBool(x), asVariantCurrency(x), asVariantDate(x), asVariantEmpty(x), asVariantError(x), asVariantNull(x).


asText(x) 오브젝트

x 값을 텍스트 값으로 변환하는 오브젝트

사용법

asText(x) 오브젝트는 x 값을 텍스트 값으로 변환합니다. x는 어떤 형태의 데이터도 사용이 가능하며 동일한 형태를 출력합니다.

입력 가능한 종류(Type) 출력 종류(type)

UInt8 | Text
Int16 | Text
Int32 | Text
Real32 | Text
Real64 | Text
Coord | Text
Waveform | Text
Complex | Text
PComplex | Text
Spectrum | Text
Text | Text

사용예

asText(3.4) 는 텍스트 값 "3.4"를 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asText

관련정보

asComplex(x), asCoord(x), asInt16(x), asInt32(x), asInt64(x), asPComplex(x), asReal32(x), asReal64(x), asUInt8(x), asVariant(x), asVariantBool(x), asVariantCurrency(x), asVariantDate(x), asVariantEmpty(x), asVariantError(x), asVariantNull(x).


asUInt8(x) 오브젝트

x 값을 부호가 없는 Int8 (바이트) 값으로 변환하는 오브젝트. 컨테이너의 값과 가장 가까운 정수를 얻기 위해서는 round(x) 오브젝트를 사용하여 입력값을 반올림할 수 있습니다. x에는 어떤 형태의 데이터도 입력할 수 있습니다. round(x) 함수는 x에 가장 가까운 정수(같은 데이터 종류)를 출력합니다. 반올림 기준은 0.5입니다.

사용법

asUInt8(x) 오브젝트는 x 값을 UInt8 값으로 변환합니다. x는 어떤 형태의 데이터도 사용이 가능하며 동일한 형태를 출력합니다.

입력 가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8
Int16 | UInt8
Int32 | UInt8
Int64 | UInt8
Real32 | UInt8
Real64 | UInt8
Text | UInt8

만약 x가 텍스트 타입이라면 UInt8로 변환하기 위한 값을 반드시 가지고 있어야 합니다.

사용예

asUInt8(4.5)는 UInt8 값 5를 출력합니다.

asUInt8(4.25)는 UInt8 값 4를 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asUInt8

관련정보

asComplex(x), asCoord(x), asInt16(x), asInt32(x), asInt64(x), asPComplex(x), asReal32(x), asReal64(x), asText(x), asVariant(x), asVariantBool(x), asVariantCurrency(x), asVariantDate(x), asVariantEmpty(x), asVariantError(x), asVariantNull(x).


asVariant(x) 오브젝트

x 값을 ActiveX Automation 타입의 Variant로 변환하는 오브젝트. x로부터 생성되는 ActiveX Automation variants는 VT_VARIANT입니다.

사용법

이 기능은 VEE 데이터 컨테이너를 VT_VARIANT 타입의 파라미터를 필요로 하는 ActiveX 컨트롤이나 ActiveX 서버에 VEE 데이터를 전송할 때 사용합니다.

출력값은 VEE Variant 데이터 종류입니다. 이 기능으로부터 출력된 값을 레코드 영역이나 어레이 앨리먼트에 할당하면, VT_VARIANT가 원래 가지고 있었던 데이터종류는 잃게 됩니다. 다음의 예를 참조하십시오.

입력 가능한 종류(Type) 출력 종류(type)

UInt8 | Variant
Int16 | Variant
Int32 | Variant
Int64 | Variant
Real32 | Variant
Real64 | Variant
Text | Variant

사용예

정상적으로 동작하는 경우:

A = asVariant(A);
Obj.method(ByRef A);

Array = asVariant(Array);

동작하지 않는 경우:

Obj.method(ByRef asVariant(A));

Array[0] = asVariant(A);

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asVariant

관련정보

asComplex(x), asCoord(x), asInt16(x), asInt32(x), asInt64(x), asPComplex(x), asReal32(x), asReal64(x), asText(x), asUInt8(x), asVariantBool(x), asVariantCurrency(x), asVariantDate(x), asVariantEmpty(x), asVariantError(x), asVariantNull(x).


asVariantBool(x) 오브젝트

x값을 ActiveX Automation 타입의 Variant로 변환하는 오브젝트. x로부터 생성되는 ActiveX Automation variants는 VT_BOOL (Boolean)입니다.

사용법

이 기능은 VEE 데이터 컨테이너를 VT_BOOL 타입의 파라미터를 필요로 하는 ActiveX 컨트롤이나 ActiveX 서버에 VEE 데이터 컨테이너를 전송할 때 사용합니다.

Variant Bool 종류의 출력을 원하는 데이터 컨테이너에 “hint” 표시와 함께 VEE Int16 데이터 종류를 출력합니다. 만약 이 컨테이너를 ActiveX Automation 서버나 컨트롤에 전송하면, VT_I2 대신에 VT_BOOL로 변경됩니다. 이 “hint” 표시는 VT_BOOL 나 ByRef VT_BOOL 종류의 파라미터가 필요한 ActiveX Automation 메서드에 사용됩니다.

이 기능으로부터 출력된 값을 레코드 영역이나 어레이 앨리먼트에 할당하면, VT_BOOL가 원래 가지고 있었던 데이터종류는 잃게 됩니다. 다음의 예를 참조하십시오.

사용예

정상적으로 동작하는 경우:

A = asVariantBool(A);
Obj.method(ByRef A);

Array = asVariantBool(Array);

동작하지 않는 경우:

Obj.method(ByRef asVariantBool(A));

Array[0] = asVariantBool(A);

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asVariantBool

관련정보

asComplex(x), asCoord(x), asInt16(x), asInt32(x), asPComplex(x), asReal32(x), asReal64(x), asText(x), asUInt8(x), asVariant(x), asVariantCurrency(x), asVariantDate(x), asVariantEmpty(x), asVariantError(x), asVariantNull(x).


asVariantCurrency(x) 오브젝트

x 값을 ActiveX Automation 타입의 Variant로 변환하는 오브젝트. x로부터 생성되는 ActiveX Automation variants는 VT_CY (Currency)입니다.

사용법

이 기능은 VEE 데이터 컨테이너를 VT_CY타입의 파라미터를 필요로 하는 ActiveX 컨트롤이나 ActiveX 서버에 VEE 데이터 컨테이너를 전송할 때 사용합니다.

Variant Currency 종류의 출력을 원하는 데이터 컨테이너에 “hint” 표시와 함께 VEE Real64 데이터 종류를 출력합니다. 만약 이 컨테이너를 ActiveX Automation 서버나 컨트롤에 전송하면 VT_CY로 변경됩니다. 이 “hint” 표시는 VT_CY 또는 ByRef VT_CY 종류의 파라미터가 필요한 ActiveX Automation 메서드에 사용됩니다.

이 기능으로부터 출력된 값을 레코드 영역이나 어레이 앨리먼트에 할당하면, VT_CY가 원래 가지고 있었던 데이터종류는 잃게 됩니다. 다음의 예를 참조하십시오.

사용예

정상적으로 동작하는 경우:

A = asVariantCurrency(A);
Obj.method(ByRef A);

Array = asVariantCurrency(Array);

동작하지 않는 경우:

Obj.method(ByRef asVariantCurrency(A));

Array[0] = asVariantCurrency(A);

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asVariantCurrency

관련정보

asComplex(x), asCoord(x), asInt16(x), asInt32(x), asPComplex(x), asReal32(x), asReal64(x), asText(x), asUInt8(x), asVariant(x), asVariantBool(x), asVariantDate(x), asVariantEmpty(x), asVariantError(x), asVariantNull(x).


asVariantDate(x) 오브젝트

x 값을 ActiveX Automation 타입의 Variant로 변환하는 오브젝트. x로부터 생성되는 ActiveX Automation variants는 VT_DATE 입니다.

사용법

이 기능은 VEE 데이터 컨테이너를 VT_DATE 타입의 파라미터를 필요로 하는 ActiveX 컨트롤이나 ActiveX 서버에 VEE 데이터 컨테이너를 전송할 때 사용합니다.

Variant Date 종류의 출력을 원하는 데이터 컨테이너에 “hint” 표시와 함께 VEE Real64 데이터 종류를 출력합니다. 만약 이 컨테이너를 ActiveX Automation 서버나 컨트롤에 전송하면 VT_DATE로 변경됩니다. 이 “hint” 표시는 VT_DATE 또는 ByRef VT_DATE종류의 파라미터가 필요한 ActiveX Automation 메서드에 사용됩니다.

이 기능으로부터 출력된 값을 레코드 영역이나 어레이 앨리먼트에 할당하면, VT_DATE가 원래 가지고 있었던 데이터종류는 잃게 됩니다. 다음의 예를 참조하십시오.

사용예

정상적으로 동작하는 경우:

A = asVariantDate(A);
Obj.method(ByRef A);

Array = asVariantDate(Array);

동작하지 않는 경우:

Obj.method(ByRef asVariantDate(A));

Array[0] = asVariantDate(A);

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asVariantDate

관련정보

asComplex(x), asCoord(x), asInt16(x), asInt32(x), asPComplex(x), asReal32(x), asReal64(x), asText(x), asUInt8(x), asVariant(x), asVariantBool(x), asVariantCurrency(x), asVariantEmpty(x), asVariantError(x), asVariantNull(x).


asVariantEmpty(x) 오브젝트

x 값을 ActiveX Automation 타입의 Variant로 변환하는 오브젝트. x로부터 생성되는 ActiveX Automation variants는 VT_EMPTY입니다.

사용법

이 기능은 VEE 데이터 컨테이너를 VT_EMPTY 타입의 파라미터를 필요로 하는 ActiveX 컨트롤이나 ActiveX 서버에 VEE 데이터 컨테이너를 전송할 때 사용합니다.

스칼라 값에서만 사용할 수 있습니다. ByRef parameter와 함께는 사용할 수 없습니다. Variant Empty 종류의 출력을 원하는 데이터 컨테이너에 “hint” 표시와 함께 같은 데이터 종류를 출력합니다. 만약 이 컨테이너를 ActiveX Automation 서버나 컨트롤에 전송하면 컨테이너의 실제 데이터 대신에 VT_EMPTY로 변경됩니다. 이 “hint” 표시는 VT_EMPTY 종류의 파라미터가 필요한 ActiveX Automation 메서드에 사용됩니다.

이 기능으로부터 출력된 값을 레코드 영역이나 어레이 앨리먼트에 할당하면, VT_EMPTY 가 원래 가지고 있었던 데이터종류는 잃게 됩니다. 다음의 예를 참조하십시오.

사용예

A = asVariantEmpty(A);
Obj.method(A);

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asVariantEmpty

관련정보

asComplex(x), asCoord(x), asInt16(x), asInt32(x), asPComplex(x), asReal32(x), asReal64(x), asText(x), asUInt8(x), asVariant(x), asVariantBool(x), asVariantCurrency(x), asVariantDate(x), asVariantError(x), asVariantNull(x).


asVariantError(x) 오브젝트

x 값을 ActiveX Automation 타입의 Variant로 변환하는 오브젝트. x로부터 생성되는 ActiveX Automation variants는 VT_ERROR입니다.

사용법

이 기능은 VEE 데이터 컨테이너를 VT_ERROR 타입의 파라미터를 필요로 하는 ActiveX 컨트롤이나 ActiveX 서버에 VEE 데이터 컨테이너를 전송할 때 사용합니다.

Variant Error 종류의 출력을 원하는 데이터 컨테이너에 “hint” 표시와 함께 VEE Int32 데이터 종류를 출력합니다. 만약 이 컨테이너를 ActiveX Automation 서버나 컨트롤에 전송하면 VT_ERROR로 변경됩니다. 이 “hint” 표시는 VT_ERROR 또는 ByRef VT_ERROR종류의 파라미터가 필요한 ActiveX Automation 메서드에 사용됩니다. 출력값은 에러번호(scode)를 표시합니다.

이 기능으로부터 출력된 값을 레코드 영역이나 어레이 앨리먼트에 할당하면, VT_ERROR 가 원래 가지고 있었던 데이터종류는 잃게 됩니다. 다음의 예를 참조하십시오.

사용예

정상적으로 동작하는 경우:

A = asVariantError(A);
Obj.method(ByRef A);

Array = asVariantError(Array);

동작하지 않는 경우:

Obj.method(ByRef asVariantError(A));

Array[0] = asVariantError(A);

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asVariantError

관련정보

asComplex(x), asCoord(x), asInt16(x), asInt32(x), asPComplex(x), asReal32(x), asReal64(x), asText(x), asUInt8(x), asVariant(x), asVariantBool(x), asVariantCurrency(x), asVariantDate(x), asVariantEmpty(x), asVariantNull(x).


asVariantNull(x) 오브젝트

x 값을 ActiveX Automation 타입의 Variant로 변환하는 오브젝트. x로부터 생성되는 ActiveX Automation variants는 VT_NULL입니다.

사용법

이 기능은 VEE 데이터 컨테이너를 VT_NULL타입의 파라미터를 필요로 하는 ActiveX 컨트롤이나 ActiveX 서버에 VEE 데이터 컨테이너를 전송할 때 사용합니다.

스칼라 값에서만 사용할 수 있습니다. ByRef parameter와는 함께 사용할 수 없습니다. Variant Null 종류의 출력을 원하는 데이터 컨테이너에 “hint” 표시와 함께 같은 데이터 종류를 출력합니다. 만약 이 컨테이너를 ActiveX Automation 서버나 컨트롤에 전송하면 컨테이너의 실제 데이터 대신에 VT_NULL로 변경됩니다. 이 “hint” 표시는 VT_NULL 종류의 파라미터가 필요한 ActiveX Automation 메서드에 사용됩니다.

이 기능으로부터 출력된 값을 레코드 영역이나 어레이 앨리먼트에 할당하면, VT_NULL가 원래 가지고 있었던 데이터종류는 잃게 됩니다. 다음의 예를 참조하십시오.

사용예

A = asVariantNull(A);
Obj.method(A);

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: asVariantNull

관련정보

asComplex(x), asCoord(x), asInt16(x), asInt32(x), asPComplex(x), asReal32(x), asReal64(x), asText(x), asUInt8(x), asVariant(x), asVariantBool(x), asVariantCurrency(x), asVariantDate(x), asVariantEmpty(x), asVariantError(x).


asin(x) 오브젝트

x의 아크사인 값을 출력하는 오브젝트

사용법

asin(x)은 x로 입력된 데이터의 아크사인 값을 계산하는데 사용되며, -PI/2부터 +PI/2까지의 실수 값을 출력합니다. 출력된 값의 단위는 Default Preference에서 설정된 Trig모드의 단위입니다. 입력값(x)에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태(Shape)의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

사용예

asin(1) 은 Degree 모드에서는 90을 출력합니다.

asin((1.1752012, @90)) 은 Degree 모드에서는 (1, @90)을 출력합니다.

주의사항

매핑은 출력터미날에 같은 형태를 유지합니다. Default Preference에서 Trig모드를 Radian을 제외한 다른 모드로 설정할 경우에는 12자리수를 넘게 되어 정확도에서 에러가 발생합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: asin

관련정보

asinh(x), cos(x), sin(x), tan(x), Trig 영역 및 Default Preferences 대화상자.


asinh(x) 오브젝트

x의 하이퍼볼릭 아크사인 값을 출력하는 오브젝트

사용법

asinh(x)은 x로 입력된 데이터의 하이퍼볼릭 아크사인 값을 계산하는데 사용되며, 입력값(x)에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태의 숫자가 출력됩니다

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

사용예

asinh(0)은 0을 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: asinh

관련정보

asin(x), cosh(x), Trig 영역, sinh(x) 및 tan(x).


Assignment 오브젝트

Formula 타입의 오브젝트로써 지역변수나 전역변수에 값을 할당하거나, 어레이 레코드의 임의의 항목에 값을 할당하는데 사용합니다.

사용법

지역변수나 전역변수에 값을 할당하거나, 어레이 레코드의 항목의 값을 수정할 때 Assignment 오브젝트를 사용합니다. Assignment 오브젝트의 출력 터미날은 지역변수나 전역변수에 할당된 새로운 값이나 변경된 어레이나 레코드의 임의의 항목을 가지고 있습니다. 예를 들면 a[2]=4를 Assignment 오브젝트의 연산자로 사용한 경우에는 출력터미날은 a[2]를 가지고 있습니다.(이것의 값은 4입니다.) 이것은 ‘a’의 모든 것을 가지고 있지는 않습니다. ‘a’의 모든 것을 갖기 위해서는 ‘a’라는 이름을 가진 출력터미날을 추가해야 합니다.

주의사항

Function & Object Browser 대화상자에서 Category 영역을 Assignment로 선택하면, Member 영역에 여러 종류의 Assignment 예문들이 나타납니다. 예문을 선택하면 Assignment 함수가 포함된 VEE 오브젝트를 가져옵니다. 제공되는 예문을 포함한 오브젝트들은 다음과 같습니다:

a[2,*,5:6,4]=b – 복잡한 어레이의 항목을 수정할 때 사용하는 Assignment 오브젝트.

a[2]=b – 어레이의 항목을 수정할 때 사용하는 Assignment 오브젝트.

globalA=2*b+3 – 전역변수나 지역변수를 수정할 때(변수를 설정하기 위하여) 사용하는 Assignment 오브젝트.

rec.field=b – 레코드의 항목을 수정할 때 사용하는 Assignment 오브젝트.

rec.field[2]=b - 레코드의 필드 항목을 수정할 때 사용하는 Assignment 오브젝트.

rec[2].field=b - 레코드 어레이의 항목을 수정할 때 사용하는 Assignment 오브젝트.

tmp=a, a=b, b=tmp - 지역변수를 이용하여 값을 바꾸고자 할 때 사용하는 Assignment 오브젝트.

tmp=a[2], a[2]=a[3], a[3]=tmp - 지역변수를 이용하여 어레이에서 변수 값을 바꾸고자할 때 사용하는 Assignment 오브젝트.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Assignment

관련정보

Function & Object Browser

어레이의 값 변경하기

지정연산자 사용법


atan(x) 오브젝트

x의 아크탄젠트 값을 출력하는 오브젝트

사용법

atan(x)는 x로 입력된 데이터의 아크탄젠트 값을 계산하는데 사용되며, -PI/2부터 +PI/2 까지의 실수 값을 출력합니다. 출력된 값의 단위는 Default Preference에서 설정된 Trig모드의 단위입니다. 입력값(x)에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태(Shape)의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

사용예

atan(1) 는 Degree 모드에서는 45를 출력합니다.

atan((1.5574, @0)) 는 Radian 모드에서는 (0.999, @0)를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다. Default Preference에서 Trig모드를 Radian을 제외한 다른 모드로 설정할 경우에는 12자리수를 넘게 되어 정확도에서 에러가 발생합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: atan

관련정보

atanh(x), atan2(y,x), cos(x), sin(x), tan(x), Trig 영역 및 Default Preferences 대화상자.


atan2(y,x) 오브젝트

x로 나누어진 y 값의 아크탄젠트 값을 출력하는 오브젝트

사용법

atan2(y,x)는 x로 나누어진 y의 아크탄젠트 값을 계산하는데 사용하며, –PI부터 +PI까지의 실수 값을 출력합니다. 만약 컨테이너중의 하나가 어레이 데이터인 경우에는 다른 한쪽은 스칼라 이던지 같은 사이즈와 같은 형태(Shape)를 가진 어레이 데이터여야 합니다. 출력값은 최상위 타입 순으로 정리된 컨테이너이며, 연산된 수와 동일한 형태를 갖습니다. x와 y의 단위는 Default Preference에서 설정된 현재의 Trig모드 단위입니다. x에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태(Shape)의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

사용예

atan2(1, -1) 는 Degree 모드에서는 135를 출력합니다.

atan2((1, 1), (5, 5)) 는 Radian 모드에서는 (0.19739, 0)를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다. Default Preference에서 Trig모드를 Radian을 제외한 다른 모드로 설정할 경우에는 12자리수를 넘게 되어 정확도에서 에러가 발생합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: atan2

관련정보

atan(x), cos(x), sin(x), tan(x), Trig 영역 및 Default Preferences 대화상자.


atanh(x) 오브젝트

x의 하이퍼볼릭 아크탄젠트 값을 출력하는 오브젝트

사용법

atanh(x)는 x로 입력된 데이터의 하이퍼볼릭 아크탄젠트 값을 계산하는데 사용되며, 입력값(x)에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태(Shape)의 숫자가 출력됩니다

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

사용예

atanh(0.5) 는 0.5493를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: atanh

관련정보

atan(x), cosh(x), sinh(x), 및 tanh(x).


bartlet(x) 오브젝트

시간축 상의 값에 대하여 Bartlet 윈도우를 적용하는데 사용하는 오브젝트

사용법

bartlet(x)는 Bartlet 함수의 스펙트럼 변환으로 x를 컨볼루션하는 것과 마찬가지 방법으로 x의 값을 필터링하기 위해 사용합니다. 이것은 주기적인 신호를 샘플링할 때 나타나는 입력값과 비연속성의 끝에 의해서 노이즈 일부를 감쇄시키는 효과를 가지고 있습니다.

x로 입력되는 값은 Array 1D 타입이어야 합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Spectrum | Spectrum

만약 x값이 스펙트럼이라면, 윈도우가 적용되기 전에 ifft(x)를 사용하여 파형으로 변환되어야 합니다. 윈도우의 출력값은 fft(x)를 사용하여 스펙트럼 타입으로 다시 변환됩니다.

사용예

bartlet([1, 1, 1, 1, 1, 1, 1, 1]) 는
[0.125, 0.375, 0.625, 0.875, 0.875, 0.625, 0.375, 0.125]를 출력합니다.

주의사항

시간영역에서의 Bartlet 함수는 2*(n+0.5)/N으로 표현됩니다. 여기에서 n은 어레이에서의 위치(인덱스)이고, N은 어레이의 사이즈 입니다. 출력값은 x와 같은 종류의 어레이가 되며, x와 같은 매핑을 갖게 됩니다.

sidelobe 레벨과 coherent 게인에 대한 사항은 Ziemer, Tranter, and Fannin, Signals and Systems, Macmillan Publishing, New York, NY, 1983. ISBN #0-02-431650-4를 참조하십시오.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Signal Processing
Member: bartlet

관련정보

blackman(x), convolve(a,b), fft(x), hamming(x), hanning(x), ifft(x) 및 rect(x).


baseName(str) 오브젝트

파일 경로 스트링에서 파일이름 부분을 출력하는 오브젝트

사용법

baseName()는 디렉토리/파일 경로의 끝에서 파일이름을 분리하는데 사용합니다.

예를 들어, pathStr이

c:\Program Files\Agilent\VEE Pro 8.0\examples\apps\chaos.vee

라면, baseName(pathStr)은 chaos.vee를 출력합니다.

슬래시(/)와 역슬래시(\)는 디렉토리(폴더) 이름 뒤에 구분문자로 사용됩니다. 만약 전체 pathStr이 단 하나의 이름을 가지고 있다면, 그 이름은 파일이름으로 처리됩니다.

주의사항

baseName() 오브젝트는 baseName()방정식을 포함하여 오브젝트의 입력으로 초기화되는 Formula 오브젝트입니다.

오브젝트 위치

Device [image] Function & Object Browser

Type: Built-in Functions
Category: System Information
Member: baseName

관련정보

dirName(), Formula


Bessel 영역

Function & Object Browser 대화상자에 있는 Built-in Functions 영역

사용법

Bessel은 입력데이터의 베셀함수를 연산할 때 사용합니다.

i0(x)

i1(x)

j0(x)

j1(x)

jn(x,n)

k0(x)

k1(x)

y0(x)

y1(x)

yn(x,n)

Ai(x)

Bi(x)

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel

관련정보

i0(x), i1(x), j0(x), j1(x), jn(x,n), k0(x), k1(x), y0(x), y1(x), yn(x,n), Ai(x) 및 Bi(x).


beta(x,y) 오브젝트

입력 값(x,y)에 대한 beta함수를 연산하는 오브젝트

사용법

beta(x,y)는 x로 입력된 값의 beta 함수를 연산하는데 사용하며, beta함수의 정의는 다음과 같습니다.

( gamma(x) * gamma(y) ) / gamma(x+y)

x와 y값은 반드시 양의 수가 되어야 합니다.

x의 입력 값은 어떤 형태 및 사이즈도 사용할 수 있으나, 두 번째 y파라미터는 반드시 같은 종류의 값이든지 x로 입력된 값과 같은 종류로 변환될 수 있어야 합니다. 두개의 입력이 어레이라면, 반드시 같은 형태와 사이즈여야 합니다. 같은 형태의 데이터가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

beta(3, 1) 는 0.333333333333333을 출력합니다.

beta(8, 7) 는 4.16250416250416E-05를 출력합니다.

beta(-1, 3) 는 에러가 발생됩니다.

주의사항

두개의 입력값이 매핑이 되어있다면, 매핑은 동일해야 합니다. 두개의 입력값중 하나라도 매핑되어 있다면, 출력값은 입력 값과 동일한 매핑을 가집니다. 만약 두개 다 매핑이 되어 있지 않다면, 출력값은 매핑이 해제 됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: beta

관련정보

comb(n,r), factorial(n), gamma(x) 및 perm(n,r).


Bi(x) 오브젝트

x의 제2종 값에 대한 B-Airy fractional order Bessel 함수를 연산하는 오브젝트

사용법

Bi(x)는 x로 입력된 값의 제2종 값에 대한 B-Airy fractional order Bessel 함수를 연산하는데 사용합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

Coord 입력은 연산이 종속변수에서 실행됩니다.

사용예

Bi(1) 는 1.20742359495287을 출력합니다.

주의사항

연산되는 수의 매핑은 무시되고, 출력 컨테이너는 입력과 동일한 매핑을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: Bi

관련정보

Ai(x), j0(x), j1(x), jn(x,n), y0(x), y1(x), 및 yn(x,n).


binomial(a,b) 오브젝트

a 컴비네이션 b를 연산하는 오브젝트

사용법

binomial(a,b) 는 a 컴비네이션 b를 연산하는데 사용합니다.

binomial(a, b) = a!/((a-b)! * b!)

! 기호는 인수(factorial)를 의미합니다.

a 에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태(Shape)의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

두번째 b 파라미터는 a의 입력값과 같은 종류이거나 같은 종류로 변환이 가능해야 합니다. 만약 두개의 입력이 어레이인 경우에는 같은 형태와 사이즈를 가져야 합니다.

binomial(a,b)오브젝트는 정수값만 사용할 수 있으므로, Int32 이외의 형태의 값이 입력되면, 연산이 실행되기 전에 Int32타입으로 변환됩니다.

사용예

binomial(10,3) 은 공식에 의해서 120을 출력합니다.:

10!/((10-3)!*3!) = 10!/(7!*3!) =(10*9*8)/(3*2*1) = 120.

binomial(10.4,3.9) 은 공식에 의해서 210을 출력합니다.:

10!/((10-4)!*4!) = 10!/(6!*4!) = (10*9*8*7)/(4*3*2*1) = 210.

실수를 반올림하는 규칙에 의해서 10.4는 10으로, 3.9는 4로 변환됩니다.

주의사항

a와 b는 양의 수여야 하고, a는 b보다 커야 합니다.

이 함수는 comb(n,r)와 동일합니다.

두개의 입력값이 매핑이 되어있다면, 매핑은 동일해야 합니다. 두개의 입력값 중에서 하나라도 매핑되어 있다면, 출력값은 입력 값과 동일한 매핑을 가집니다. 만약 두개다 매핑이 되어 있지 않다면, 출력값은 매핑이 해제 됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: binomial

관련정보

beta(x,y), comb(n,r), factorial(n), gamma(x) 및 perm(n,r).


bit(x,n) 오브젝트

특정한 비트 위치에서 바이너리 값을 출력하는 오브젝트

사용법

bit(x,n)는 x로 입력된 값의 n번째의 비트 값(0 또는 1)을 출력하는데 사용합니다. 만약 x로 입력되는 값이 Real32, Real64, Coord 또는 Waveform 타입이라면, 실행되기 전에 Int32로 변환 됩니다. n은 Int32 이던지, Int32로 변환이 가능해야 하며, 0에서 31까지의 값(x가 Int64 타입일 때는 0과 63 사이)을 가져야 합니다. n은 스칼라 이던지 x의 형태와 매칭이 되어야 합니다. x 에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태(Shape)의 숫자가 출력됩니다.

입력가능한 종류(Type) |  | 출력 종류
x | n
UInt8 | 0-31 | UInt8
Int16 |  | Int16
Int32 |  | Int32
Int64 | 0-63 | Int64
Real32 | 0-31 | Int32
Real64 |  | Int32
Coord |  | Int32
Waveform |  | Int32

사용예

bit(9,0) 은 1을 출력합니다. 왜냐하면, 9의 바이너리 값은 1001이고 0번째 비트의 값이 1이기 때문입니다.

주의사항

출력값은 x와 같은 매핑을 가지며, n의 매핑은 무시됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bitwise
Member: bit

관련정보

bits(str), Bitwisde 영역, clearBit(x,n) 및 setBit(x,n).


bitAnd(x,y) 오브젝트

x와 y의 비트별 AND 값을 출력하는 오브젝트

사용법

bitAnd(x,y)는 2개의 컨테이너에서 바이너리 AND를 연산하는데 사용합니다. 만약 입력되는 두개의 값이 어레이라면, 입력값의 형식 및 사이즈가 매칭이 되어야 합니다. 만약 x 또는 y로 입력되는 값이 Real32, Real64, Coord 또는 Waveform 타입이라면, 실행되기 전에 Int32로 변환 됩니다. 타입이 변경될 지라도 타입의 순서는 변경되지 않습니다. 데이터 타입의 순서는 여기를 참조하십시오.

입력가능한 종류(Type) 출력 종류(type)

UInt8

두개의 연산수

중에서

최상위 타입

Int16

Int32

Real32

Real64

Coord

Waveform

사용예

bitAnd(5, [3, 12]) 는 [1, 4]를 출력합니다.

주의사항

입력 파라미터가 매핑이 되어 있다면, 두값의 매핑은 동일해야 합니다. 출력 컨테이너는 입력 컨테이너의 매핑을 유지합니다. 만약 하나의 입력값만이 매핑이 되어 있다면, 출력 컨테이너는 그 매핑을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bitwise
Member: bitAnd

관련정보

a AND b, bit(x,n), bitCmpl(x), bitOr(x,y), Bitwise, bitXor(x,y), NOT a, a OR b 및 a XOR b.


bitCmpl(x) 오브젝트

x의 비트별 1의 보수(complement) 값을 출력하는 오브젝트

사용법

bitCmpl(x)는 컨테이너에서 바이너리 1's 여수(complement)값을 연산하는데 사용합니다. 만약 x의 입력값이 Real32, Real64, Coord 또는 Waveform 타입이라면, 실행되기 전에 Int32로 변환 됩니다. x 에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태(Shape)의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Int32
Real64 | Int32
Coord | Int32
Waveform | Int32

사용예

bitCmpl(7)는 -8을 출력합니다.

주의사항

매핑은 출력터미날에 같은 형태를 유지합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bitwise
Member: bitCmpl

관련정보

a AND b, bit(x,n), bitAnd(x,y), bitOr(x,y), Bitwise, bitXor(x,y), NOT a, a OR b 및 a XOR b.


bitOr(x,y) 오브젝트

x와 y의 비트별 OR 값을 출력하는 오브젝트

사용법

bitOr(x,y)는 2개의 입력 컨테이너에서 바이너리 OR를 연산하는데 사용합니다. x와 y는 어떤 형태도 입력될 수 있습니다. 입력되는 두개의 값이 어레이라면, 입력값의 형식 및 사이즈가 매칭이 되야 합니다. 만약 x 또는 y로 입력되는 값이 Real32, Real64, Coord 또는 Waveform 타입이라면, 실행되기 전에 Int32로 변환 됩니다. 타입이 변경될 지라도 타입의 순서는 변경되지 않습니다. 데이터 타입의 순서는 여기를 참조하십시오.

입력가능한 종류(Type) 출력 종류(type)

UInt8

두개의 연산수

중에서

최상위 타입

Int16

Int32

Real32

Real64

Coord

Waveform

사용예

bitOr(5, [3, 12]) 는 [7, 13]를 출력합니다.

주의사항

입력 파라미터가 매핑이 되어 있다면, 두값의 매핑은 동일해야 합니다. 출력 컨테이너는 입력 컨테이너의 매핑을 유지합니다. 하나의 입력값만이 매핑이 되어 있다면, 출력 컨테이너는 그 매핑을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bitwise
Member: bitOr

관련정보

a AND b, bit(x,n), bitAnd(x,y), bitCmpl(x), Bitwise, bitXor(x,y), NOT a, a OR b 및 a XOR b.


bits(str) 오브젝트

0들과 1들의 스트링에서 바이너리 값을 출력하는 오브젝트

사용법

bits(str)은 텍스트 스트링으로부터 2를 기준으로 Int32로 변환된, 자리수를 가진 값을 Int32 출력하는데 사용합니다. 스트링은 텍스트 컨테이너가 되어야 하며, 어떤 형태든 상관이 없습니다. 스트링은 선행 화이트 스페이스를 가질 수 있으며, 그러면 0들과 1들은 바이너리 숫자를 생성합니다.

사용예

bits("011") 은 3을 출력합니다.

주의사항

출력값은 입력 컨테이너와 같은 매핑을 가집니다. 최소 비트는 오른쪽에, 최대 비트는 왼쪽에 있습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bitwise
Member: bits

관련정보

bit(x,n), Bitwise 영역, clearBit(x,n) 및 setBit(x,n).


bitShift(x,y) 오브젝트

x값에 대하여 y의 자리수만큼 왼쪽 또는 오른쪽으로 쉬프트한 비트값을 출력하는 오브젝트

사용법

bitShift(x,y)는 y의 자리수 만큼 컨테이너 x의 비트를 쉬프트하는데 사용합니다. 만약 x로 입력되는 값이 Real32, Real64, Coord 또는 Waveform 타입이라면, 실행되기 전에 Int32로 변환 됩니다. y로 입력되는 값은 반드시 Int32 컨테이너이든지 Int32로 변환 할 수 있어야 합니다. 만약 y값이 음수일 때는 오른쪽으로 쉬프트하고, 양수일 때는 왼쪽으로 쉬프트합니다. y는 반드시 스칼라이든지 x의 형식과 매칭이 되어야 합니다. 만약 y가 31보다 크거나, -31보다 작으면 출력값은 0(Zero)가 됩니다.

입력가능한 종류 |  | 출력 종류
x | y
UInt8 | 0-31 | UInt8
Int16 |  | Int16
Int32 |  | Int32
Int64 | 0-63 | Int64
Real32 | 0-31 | Int32
Real64 |  | Int32
Coord |  | Int32
Waveform |  | Int32

사용예

bitShift([1, 7, 7], [3, 2, (-2)])는 [8, 28, 1]를 출력합니다.

bitShift(8,2)는 32를 출력합니다.

bitShift(8,-2)는 2를 출력합니다.

주의사항

매핑은 출력터미날에 같은 형태를 유지합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bitwise
Member: bitShift

관련정보

bit(x,n), bitAnd(x,y),
 bitOr(x,y), Bitwise 영역,
 bitXor(x,y), clearBit(x,n),
 rotate(x, numElem) 및 setBit(x,n).


Bitwise 영역

Function & Object Browser 대화상자에 있는 Built-in Functions 영역

사용법

Bitwise는 Int16나 Int32에서 비트를 설정, 초기화, 억세스, 쉬프트하거나, Int16나 Int32에서 바이너리 AND, OR, XOR연산을 수행합니다.

bit(x,n)

bits(str)

setBit(x,n)

clearBit(x,n)

bitAnd(x,y)

bitOr(x,y)

bitXor(x,y)

bitCmpl(x)

bitShift(x,y)

주의사항

Bitwise 메뉴에 있는 오브젝트들은 Uint8, Int16 또는 Int32타입에서만 사용이 가능합니다. 그러나 대부분의 오브젝트는 함수를 실행하기 전에 Int32로 변환하기 때문에 대부분의 데이터 종류를 사용할 수 있습니다. 이것은 오브젝트 내부에서 Real32, Real64, Coord 및 Waveforms 값들의 끝수를 버리는 것입니다.

비트는 0(zero)부터 시작됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bitwise

관련정보

bit(x,n), bits(str), bitAnd(x,y), bitCmpl(x),
 bitOr(x,y), bitShift(x,y),
 bitXor(x,y), clearBit(x,n),
 setBit(x,n), a AND b, NOT a, a OR b, Comparison
 영역 및 a XOR b.


bitXor(x,y) 오브젝트

x와 y로 입력된 값의 비트별 XOR를 출력하는 오브젝트

사용법

bitXor(x,y)는 입력된 두개의 컨테이너상에서 바이너리 XOR (exclusive OR)를 연산하는데 사용합니다. x와 y는 어떤 형태의 데이터 형태도 입력할 수 있습니다. 만약 2개의 입력값이 어레이라면, 데이터 형태 및 사이즈는 반드시 매칭되어야 합니다. x 또는 y가 Real32, Real64, Coord, 또는 Waveform 타입이라면, bitXor()를 연산하기 전에 Int32로 변환합니다. 타입이 변경될 지라도 타입의 순서는 변경되지 않습니다. 데이터 타입의 순서는 여기를 참조하십시오.

입력가능한 종류(Type) 출력 종류(type)

UInt8

두개의 연산수

중에서

최상위 타입

Int16

Int32

Real32

Real64

Coord

Waveform

사용예

bitXor(5, [3, 12]) 는 [6, 9]를 출력합니다.

주의사항

만약 입력 파라미터가 매핑이 되어 있다면, 두값의 매핑은 동일해야 합니다. 출력 컨테이너는 입력 컨테이너의 매핑을 유지합니다. 만약 하나의 입력값만이 매핑이 되어 있다면, 출력 컨테이너는 그 매핑을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bitwise
Member: bitXor

관련정보

a AND b, bit(x,n), bitAnd(x,y), bitCmpl(x), bitOr(x,y), Bitwise, NOT a, a OR b 및 a XOR b.


blackman(x) 오브젝트

블랙맨 윈도우에 시간축상의 값을 적용하는데 사용하는 오브젝트

사용법

blackman(x)는 Blackman 함수의 스펙트럼 변환을 갖는 컨볼빙 x와 같은 방법으로 x값을 필터링하는데 사용합니다. 이것은 연속되는 신호를 샘플링할 때 나타나는 입력시퀀스의 끝부분이나 끊어짐 현상으로 발생하는 노이즈를 제거하는 효과가 있습니다.

입력값은 반드시 Array 1D타입이어야 합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Spectrum | Spectrum

x로 입력되는 값이 Spectrum이라면, 윈도우에 적용되기 전에 ifft(x)를 사용하는 Waveform으로 변환되어야 합니다. 윈도우의 출력값은 fft(x)를 사용하는 Spectrum 타입으로 재변환 됩니다.

사용예

blackman([1, 1, 1, 1, 1, 1, 1, 1]) 는
[0.014, 0.172, 0.555, 0.938, 0.938, 0.555, 0.172, 0.014]를 출력합니다.

주의사항

Blackman함수는 시간영역에서 다음과 같이 표현됩니다.

0.42 - 0.5*cos(2*PI*(n+0.5)/N) + 0.08*cos(4*PI*(n+0.5)/N)

여기에서 n은 어레이에서의 인덱스 위치를 나타내고, N은 어레이의 사이즈를 나타냅니다. 출력값은 x와 같은 타입의 어레이가 되며, x와 같은 타입의 매핑을 가집니다.

사이드로브 레벨이나 코헤런트 게인에 대해서는 Ziemer, Tranter, Fannin, Signals 또는 Systems, Macmillan Publishing, New York, NY, 1983. ISBN #0-02-431650-4를 참조하십시오.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Signal Processing
Member: blackman

관련정보

bartlet(x), convolve(a,b), fft(x), hamming(x), hanning(x), ifft(x) 및 rect(x).


Calculus 영역

Function & Object Browser 대화상자에 있는 Built-in Functions 영역

사용법

Calculus는 숫자값(정수, 실수, 파형,…)들로 이루어진 1차원 어레이 또는 2차원(2항목) 좌표들의 리스트들로부터 적분계수나 미분계수를 연산하는데 사용합니다.

integral(x)

deriv(x,1)

deriv(x,2)

deriv(x,order)

defIntegral(x,a,b)

derivAt(x,1,pt)

derivAt(x,2,pt)

derivAt(x,order,pt)

주의사항

미적분 함수는 숫자값(정수, 실수, 파형,…)들로 이루어진 1차원 어레이 및 균등한 간격으로 정리된 데이터로 이루어진 2차원(2항목) 좌표들의 리스트들에 사용할 수 있습니다. 매핑이 안된 어레이의 경우에는 데이터가 균등한 간격으로 정리되어야 하고, 포인트 사이의 간격 dx가 1의 값을 가져야 합니다. 매핑된 어레이의 경우에는 간격 dx가 (Xmax-Xmin)/N이고 자동으로 스케일된 상태로 연산이 실행됩니다. 좌표값들의 리스트에서는 독립변수(첫번째 항목)값이 균등한 간격으로 정리된 것을 체크하고 나서 종속변수(두번째 항목)값에서 dx값으로 정의된 간격을 사용하여 연산이 실행됩니다.

매핑이 안된 어레이를 사용하였다면, 포인트 사이의 간격이 어떤 값 dx인 경우에만 정확히 연산된 값을 얻을 수 있습니다. 적분의 경우에는 알려진 dx값을 결과값에 곱하고, 미분의 경우에는 dx값으로 결과값을 나눕니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Calculus

관련정보

defIntegral (x,a,b), deriv(x, order), derivAt(x, order,pt) 및 integral(x).


ceil(x) 오브젝트

입력되는 값보다 작지 않은 가장 가까운 정수를 출력하는 오브젝트

사용법

ceil(x) 함수는 x의 입력값과 동일하든지, x의 입력값 보다 큰 수 중에 가장 작은 정수값(동일한 데이터 종류)을 출력합니다.

즉, 입력 값 보다 큰 정수로 변환합니다. 입력값(x)에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태(Shape)의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

ceil([23.0, 23.1, 23.9, 23.5, (-23.5)])은 [23, 24, 24, 24, -23]를 출력합니다.

주의사항

매핑은 출력터미날에 같은 형태를 유지합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Real Parts
Member: ceil

관련정보

abs(x), Complex Parts 영역, floor(x), fracPart(x), intPart(x), Real Parts 영역 및 round(x).


charToInt(a) 오브젝트

입력 스트링의 첫 문자를 십진수로 변환하는 오브젝트

사용법

charToInt(a) 오브젝트는 ASCII 입력 스트링 a의 첫 문자를 Int32 타입의 십진수로 변환하는데 사용합니다. 0 에서 255 사이의 값으로 변환될 수 있는 문자만 첫 문자로 사용할 수 있습니다.

사용예

charToInt("A")는 65를 출력합니다.

charToInt("Arthur") 또한 65를 출력합니다.

charToInt("a")는 97을 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: String
Member: charToInt

관련정보

intToChar(a) 또는 String 영역.


clearBit(x,n) 오브젝트

입력값 x의 n번째 비트를 0으로 바꾸어 x값을 출력하는 오브젝트

사용법

clearBit(x,n)는 컨테이너 x의 특정한 바이너리 자리수를 0으로 바꾸는데 사용합니다. x에는 어떤 형태(Shape)의 숫자도 입력할 수 있습니다. Real32, Real64, Coord 또는 Waveform 타입의 데이터가 입력된다면, 실행되기 전에 Int32로 변환됩니다. n은 0에서 31사이의 값(x가 Int64 타입일 때는 0과 63 사이)을 가진 Int32로 변환할 수 있는 컨테이너여야 합니다. n은 스칼라 이든지 x의 형태와 매칭되어야 합니다.

입력가능한 종류 |  | 출력 종류
x | n
UInt8 | 0-31 | UInt8
Int16 |  | Int16
Int32 |  | Int32
Int64 | 0-63 | Int64
Real32 | 0-31 | Int32
Real64 |  | Int32
Coord |  | Int32
Waveform |  | Int32

사용예

clearBit(7,1)은 5를 출력합니다. 왜냐하면 7의 바이너리 값은 111이고, 1번째 비트가 0으로 바뀌어 101(십진수 5)을 생성합니다. (비트 자리수는 0부터 시작합니다.)

주의사항

출력 컨테이너의 매핑은 x의 파라미터와 같습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bitwise
Member: clearBit

관련정보

bits(str), bit(x,n), Bitwise 영역 및 setBit(x,n).


clipLower (x,a) 오브젝트

입력데이터 x를 지정하는 최소값 a로 클립하는데 사용하는 오브젝트

사용법

clipLower(x,a)는 데이터를 최소값 a로 클립하는데 사용합니다. a보다 작은 모든 데이터를 a로 변경합니다.

x에는 어떤 사이즈와 형태(Shape)의 숫자도 입력할 수 있습니다. 클립 파라미터 a는 입력값 x와 같은 종류(Type)이거나 같은 종류로 변환될 수 있어야 하고, 데이터 형태는 Scalar이든지 Scalar가 아니라면 x와 같은 형태 및 같은 사이즈를 가져야 합니다. 만약 입력값 중의 하나가 Scalar이고 다른 하나가 Scalar가 아니라면, Scalar 입력은 Scalar가 아닌 입력과 같은 형태 및 사이즈를 가진 어레이로 처리됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform
Text | Text

사용예

x가 어레이[.1, .4, .6, .9]인 데이터에서 clipLower(x,.5)함수를 사용하면, [.5, .5, .6, .9]를 출력합니다.

clipLower([.1, .4, .6, .9],[.2, .2, .7, .7])를 사용하면, [.2, .4, .7, .9]를 출력합니다.

clipLower는 파형의 값을 임의의 최저 제한값으로 클립하는데 사용하는데 사용할 수 있습니다. 좌표 어레이는 파형에서 한계점을 지정하는데 사용합니다. 한계점은 파형의 모양을 제한하기 위해 지정하는 라인의 끝점이 됩니다. 이러한 점들이 몇 개 있을 수 있습니다. 실제 파형과 같은 점들을 가진 최저 제한 파형을 생성하기 위하여 Build Arb Waveform 오브젝트를 이용하여 좌표 어레이를 전송합니다. 새로운 파형을 입력터미날 a를 통하여 clipLower 함수로 전송합니다. clipLower(x,a)가 실행되면, 입력파형x중에서 최저 제한값 아래의 모든 값들은 a로 입력된 최소값으로 클립됩니다.

주의사항

2개의 입력값이 매핑되어 있다면, 2개의 매핑은 동일해야 하며, 출력값은 입력값과 동일한 매핑을 가집니다. 만약 입력값중의 하나만 매핑이 되어 있다면, 출력값은 매핑이 되지 않습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Data Filtering
Member: clipLower

관련정보

clipUpper (x,a), Build Arb Waveform 및 Comparator.


clipUpper (x,a) 오브젝트

입력데이터 x를 지정하는 최대값 a로 클립하는데 사용하는 오브젝트

사용법

clipUpper(x,a)는 데이터를 최대값 a로 클립하는데 사용합니다. a보다 큰 모든 데이터를 a로 변경합니다.

x에는 어떤 사이즈와 형태(Shape)의 숫자도 입력할 수 있습니다. 클립 파라미터 a는 입력값 x와 같은 종류(Type)이거나 같은 종류로 변환될 수 있어야 하고, 데이터 형태는 Scalar이든지 Scalar가 아니라면 x와 같은 형태 및 같은 사이즈를 가져야 합니다. 만약 입력값 중의 하나가 Scalar이고 다른 하나가 Scalar가 아니라면, Scalar 입력은 Scalar가 아닌 입력과 같은 형태 및 사이즈를 가진 어레이로 처리됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform
Text | Text

사용예

x가 어레이[.1, .4, .6, .9]인 데이터에서 clipUpper(x,.5)함수를 사용하면, [.1, .4, .5, .5]를 출력합니다.

clipUpper ([.1, .4, .6, .9],[.2, .2, .5, .5]) 를 사용하면, [.1, .2, .5, .5]를 출력합니다.

clipUpper는 파형의 값을 임의의 최고 제한값으로 클립하는데 사용하는데 사용할 수 있습니다. 좌표 어레이는 파형에서 한계점을 지정하는데 사용합니다. 한계점은 파형의 모양을 제한하기 위해 지정하는 라인의 끝점이 됩니다. 실제 파형과 같은 점들을 가진 최고 제한 파형을 생성하기 위하여 Build Arb Waveform 오브젝트를 이용하여 좌표 어레이를 전송합니다. 새로운 파형을 입력터미날 a를 통하여 clipUpper 함수로 전송합니다. clipUpper(x,a)가 실행되면, 입력파형 x중에서 최고 제한값을 넘어서는 모든 값들은 a로 입력된 최고값으로 클립됩니다.

주의사항

2개의 입력값이 매핑되어 있다면, 2개의 매핑은 동일해야 하며, 출력값은 입력값과 동일한 매핑을 가집니다. 만약 입력값중의 하나만 매핑이 되어 있다면, 출력값은 매핑이 되지 않습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Data Filtering
Member: clipUpper

관련정보

clipLower (x,a), Build Arb Waveform 및 Comparator.


cofactor(x, row,col) 오브젝트

r행과 c열에서 입력 행렬 x의 cofactor를 연산하는데 사용하는 오브젝트

사용법

cofactor(x,row,col)은 정방형 행렬 x의 cofactor를 연산하기 위해 사용합니다. 행렬의 cofactor는 r번째 행과 c번째 열을 지워서 얻어진 입력 행렬 x의 서브 행렬의 디터미넌트로 정의 됩니다.

입력값 x는 반드시 정방형 행렬 형태를 가져야 합니다. 지우기 위한 행(r)과 열(c)을 위한 입력값은 반드시 Int32 스칼라 이든지, Int32로 변환이 가능해야 합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Real32 | Real64
Real64 | Real64
Complex | Complex, 스칼라 형태
PComplex | PComplex, 스칼라 형태

정방형 행렬은 열과 같은 수의 행을 가집니다.

사용예

a가 행렬[ [3, -1, 2], [4, 5, 6], [7, 1, 2] ]일때, cofactor(a,0,1)는 34를 출력합니다.

주의사항

Mappings on the operand are ignored.

r과 c의 입력값은 Int32타입이 되든지, Int32타입으로 변환이 가능해야 합니다. 행렬의 행과 열은 0부터 n-1까지의 숫자로 이루어지므로, 사용하기 위한 행과 열은 주의해서 지정해야 합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Matrix
Member: cofactor

관련정보

det(x) 또는 minor(x,row, col).


comb(n,r) 오브젝트

n개의 집합 내에서 r개를 선택할 수 있는 경우의 수를 계산하는 오브젝트

사용법

comb(n,r)는 다음의 공식을 사용하여 한 번에 n개의 집합 내에서 r개를 선택한 모든 조합들을 계산합니다.

comb(n, r) = n!/((n -r)! * r!)

! 기호는 factorial이라 부릅니다.

입력n은 임의의 형태와 임의의 길이를 가질 수 있습니다. r 파라미터는 입력 n 같은 종류이어야 하거나, 같은 종류로 변환될 수 있어야 합니다. n과 r이 모두 어레이이면, 이들은 같은 형태와 같은 종류이어야 합니다.

입력 가능한 종류 출력 종류

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

comb(n, r) 오브젝트는 정수에 대해서만 연산하므로, 정수가 아닌 입력은 모두 Int32 로 변환되어 연산합니다.

사용예

comb(10,3)는 공식에 의해 120을 출력합니다.

10!/((10-3)!*3!) = 10!/(7!*3!) = (10*9*8)/(3*2*1) = 120

comb(10.4,3.9는 주어진 공식에 의해 210이 출력이 됩니다.

10!/((10-4)!*4!) = 10!/(6!*4!) = (10*9*8*7)/(4*3*2*1) = 210

실수 값을 Int32로 변환하는 규칙으로 10.4는 10으로 3.9는 4로 반올림 처리하여 계산합니다.

주의사항

n과 r이 양수 이고 n은 r보다 더 커야 합니다.

두 입력이 각각 매핑되어 있으면, 매핑되어 있는 형식이. 입력이 매핑되어 있으면 출력값도 동일한 매핑이 됩니다. 두 개의 입력이 모두 매핑되어 있지 않으면 출력도 매핑되지 않습니다.

comb(n, r)함수는 binomial(a,b)과 동일한 기능을 제공합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: comb

관련정보

beta(x,y), binomial(a,b), factorial(n), gamma(x) 및 perm(n,r).


콤마 연산자

“,”(콤마)는 다이아딕 연산자로써 표현식에 사용됩니다. “,”(콤마)는 두개의 표현식을 분리하기 위해 사용됩니다. 왼쪽에 있는 표현식을 연산하고, 결과는 버립니다. 오른쪽에 있는 표현식이 출력됩니다.

사용법

Formula 오브젝트에서 “,”(콤마) 연산자는 다음의 문법과 함께 사용합니다.

expression , expression

“,”(콤마)로 표현식을 구분하면, 왼쪽에 있는 표현식이 먼저 연산되고 출력값은 버려집니다. 그리고, 오른쪽에 있는 표현식의 결과가 출력됩니다.

사용예

UserFunc(A),A는 UserFunc이라는 함수를 호출하여 연산하고 그 연산결과를 버립니다. 그리고 A의 값을 출력합니다.

오브젝트 위치

Formula 오브젝트 또는 표현식을 가질 수 있는 오브젝트에서 사용되어야 합니다.

관련정보

Triadic Operator.


commandLine() 오브젝트

VEE를 실행하기 위해 사용했던 도스명령어 라인 파리미터를 출력하는 오브젝트

사용법

출력값은 1D 텍스트 어레이입니다. 어레이의 인덱스 0은 VEE를 시작할 때 사용했던 VEE프로그램의 이름을 포함합니다. 이어지는 어레이 앨리먼트들은 도스명령어 라인에 있는 계속되는 프로그램 이름 파라미터입니다.

출력값은 1D 텍스트 어레이입니다. 어레이의 인덱스 0은 VEE를 시작할때 사용했던 VEE프로그램의 이름을 포함합니다. 이어지는 어레이 앨리먼트들은 도스명령어 라인에 있는 계속되는 프로그램 이름 파라미터입니다. 도스 명령어 옵션을 사용하여 Agilent VEE 실행하기를 참조하십시오. 2개의 마이너스 기호(--)를 사용하는 옵션은 VEE 환경에서는 무시되고, commandLine() 오브젝트를 사용하는 VEE 프로그램에서는 가능합니다. 예를 들면:

vee.exe -maximize --radians My_Trig.vee

이 도스명령어 라인은 최대화된 윈도우로 VEE를 시작하고, --radians 옵션을 사용하는My_Trig.vee 프로그램을 로딩합니다.

주의사항

commandLine() 오브젝트는 입력이 없이 commandLine() 방정식을 포함하는 단순한 Formula 오브젝트입니다. 어떤 다른 Formula 오브젝트나 표현식에 commandLine()을 입력하여 사용이 가능합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: System Information
Member: commandLine

관련정보

installDir, programName, Formula


Comparison 영역

Function & Object Browser에 있는 Operator 영역

사용법

Comparison은 2개의 숫자를 비교 연산하는 아래의 오브젝트들을 제공합니다.

a ~= b

a == b

a != b

a < b

a > b

a <= b

a >= b

주의사항

이들 연산은 연산의 결과가 참인지 거짓인지를 지정하는 0 또는 1의 값을 가진 스칼라 Int32를 출력합니다.

이것은 2개의 숫자가 서로 동일한지, 적지는 않은지, 큰지를 비교할 수 있습니다. 매핑이 다른 Coord와 어레이를 비교하는 예를 들면, [1, 2, 6] != [2, 3, 4]의 결과는 참입니다. 그러나 2개의 숫자는 서로 크지도 작지도 않고 단지 동일하지는 않습니다. [1, 2, 6] < [2, 3, 4]의 결과는 거짓입니다. 그리고 [1, 2, 6] > [2, 3, 4]도 거짓입니다. 첫번째 어레이에 있는 각 앨리먼트는 2번째 앨리먼트에 대하여 각기 작지도, 크기도 않기 때문입니다.

또한, Comparison 아래에 있는 항목과 메뉴바의 Conditional 메뉴항목 아래에 있는 항목과는 차이가 있습니다. Comparison은 0 또는 1을 출력하고, Conditional은 If/Then/Else이고 하나의 핀을 활성화 시키는 2개의 출력을 가집니다.

출력값은 Int32타입이고, 입력되는 숫자와 같은 형식을 가집니다. 이것은 항상 스칼라 값을 출력하는 == 같은 Conditional 과는 다릅니다.

Text 타입의 데이터에 논리연산자를 사용할 때는 스트링이 널인지 아닌지만 구분합니다. “zoo” AND “”(널스트링)는 2번째 스트링이 널이기 때문에 논리적으로 거짓입니다. 텍스트 타입을 스트링이 아닌 타입과 비교할 때는 후자가 텍스트 타입으로 형식변환됩니다. 이것의 의미는 “zoo” AND “0”는 실수 0이 스트링 “0”으로 형식변환되기 때문에 참입니다. 왜냐하면, 두개의 스트링이 널이 아니기 때문에, AND 표현식은 참이고 1을 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Comparison

관련정보

a ~= b (almost equal to), a AND b, a == b (equal to), a > b (greater than), a >= b (greater than or equal to), a < b (less than), a <= b (less than or equal to), NOT a, a != b (not equal to), a OR b 및 a XOR b.

Comparator, Conditional 메뉴, and If/Then/Else.


Complex Parts 영역

Function & Object Browser 대화상자에 있는 Built-in Functions의 영역

사용법

Complex Parts에서 제공되는 오브젝트는 Complex 또는 PComplex 오브젝트가 출력하는 값들과는 다른 형태로 복소수 값을 출력합니다.

j(x)

re(x)

im(x)

mag(x)

phase(x)

conj(x)

주의사항

Complex Parts 메뉴에 있는 오브젝트들은 Complex 또는 PComplex 타입만을 사용해야 맞지만, 사용의 편의를 위해 대부분의 타입의 입력을 받아들이고 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Complex Parts

관련정보

conj(x), im(x), j(x), mag(x), phase(x), re(x) 및 Real Parts 영역.

Build Complex, Build PComplex, Complex, UnBuild Complex 및 UnBuild PComplex.


concat(x,y) 오브젝트

두개의 컨테이너를 연결하는데 사용하는 오브젝트

사용법

concat(x,y)는 두개의 컨테이너를 연결하는데 사용합니다. 입력 파리미터는 어떤 종류와 형태의 데이터도 입력할 수 있습니다. concat(x,y) 함수는 1차원보다 큰 어레이를 Array 1D 어레이로 만듭니다. 출력되는 Array 1D 어레이는 그들을 서로 연결합니다. 모든 종류의 x와 y입력을 받아들이며, 출력되는 데이터는 이들 입력되는 타입중에서 가장 상위의 타입이 적용됩니다.

사용예

만약 3의 실수 스칼라 컨테이너와 ["This", "is", "a", "test"]를 가진 텍스트 어레이 컨테이너가 입력된다면, concat(x,y)는 텍스트 어레이 컨테이너 ["3", "This", "is", "a", "test"]를 출력합니다. 이 경우 Concat함수를 실행하기 전에 숫자 3은 상위타입 텍스트 스트링 “3”으로 변환됩니다.

주의사항

만약 입력 x값이 매핑이 되어 있다면, y 값은 같은 포인트 간격으로 매핑이 되어 있든지 매핑이 안되어 있어야 합니다. 출력값은 Xmin부터 Xmin+dx*N까지 매핑됩니다. 여기서 Xmin은 x의 최소 매핑값이고, dx는 x에 있는 2개의 연속되는 포인트 사이의 간격입니다. 그리고 N은 출력 어레이의 사이즈 입니다.

concat(x,y)와 sum(x) 함수는 텍스트 입력에서는 차이가 있습니다. concat(x,y)는 모든 경우에 Array 1D를 생성합니다. sum(x)함수는 하나의 커다란 출력 스트링을 형성하기 위하여 단순하게 텍스트 스트링을 서로 연결합니다. x가 스칼라 텍스트 값 "a" 그리고 y가 스칼라 텍스트 입력 "b" 인 경우에, concat(x,y)는 Array 1D ["a","b"]를 출력합니다. 다른 경우에는, sum(["a","b"])는 텍스트 값이 "ab" 인 스칼라 컨테이너를 출력합니다.

모든 nil 입력은 0의 값을 가진 Real64 스칼라로 자동 변환됩니다. x가 nil이고, y가 5인Int32 스칼라 값이라면, concat(x,y)는 2개의 Real64 값을 가진 Array 1D [0, 5]를 출력합니다. 대조적으로 Concatenator 오브젝트는 nil과 5의 Int32 스칼라 값이 입력된다면 하나의 값을 가진 Int32 어레이 [5]를 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Array
Member: concat

관련정보

sum(x) 또는 Concatenator.


conj(x) 오브젝트

복소수 x의 켤레복소수를 출력하는 오브젝트

사용법

conj(x)는 복소수 x의 복소수 켤레복소수를 생성하는데 사용합니다. x에는 어떤 형태의 Complex, PComplex 또는 Spectrum 타입도 입력할 수 있습니다. 복소수의 복소수 켤레복소수는 허수 컴포넌트의 기호를 반대로 바꿉니다. PComplex의 복소수 켤레복소수는 위상의 기호를 반대로 바꿉니다.

사용예

conj( (2, 3) )는 (2, -3)를 출력합니다.

conj( (8, @45) )는 각도 단위로 (8, @-45)를 출력합니다.

주의사항

매핑은 출력터미날에 같은 형태를 유지합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Complex Parts
Member: conj

관련정보

im(x), j(x), mag(x), phase(x), re(x), Real Parts, Build Complex, Default Preferences 메뉴항목 및 UnBuild Complex.


convolve(a,b) 오브젝트

2개의 어레이 데이터를 컨볼루션하는 오브젝트

사용법

convolve(a,b)는 2개의 1D 어레이 a와 b의 비연속 비주기 컨볼루션(discrete aperiodic convolution) 연산에 사용합니다. 출력값은 같은 종류와 크기(Na+Nb)-1를 가진 어레이가 됩니다. 여기서 Na는 입력어레이 a의 크기, Nb는 입력어레이 b의 크기를 지칭합니다.

입력값 a와 b는 Array 1D여야 합니다. a와 b는 같은 크기를 가져야 하며, 출력되는 값은 정규화되지 않습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | 입력값의 최상위 종류
Waveform | 입력값의 최상위 종류

사용예

convolve([1, 2, 3, 4, 5],[1, 1, 1])는 [1, 3, 6, 9, 12, 9, 5]를 출력합니다.

주의사항

입력값 a와 b는 균등한 간격을 가진 데이터여야 합니다. 또한, a에 있는 2개의 값 사이의 간격은 b에 있는 2개의 값 사이의 간격과 같아야 합니다. 매핑이 안된 2개의 입력 어레이에서는 간격이 항상 1이어야 합니다. 매핑된 어레이에서는 간격이 (Xmax-Xmin)/N입니다. 여기서 Xmax 와 Xmin는 매핑을, N은 어레이의 크기를 지칭합니다. 하나의 입력이 매핑되어 있고 다른 입력이 매핑이 되어 있지 않은 경우에는, 매핑이 안된 입력 데이터는 매핑된 입력과 같은 주파수에서 샘플됩니다. 출력되는 값은 어떤 스케일 요소로도 정규화되지 않습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Signal Processing
Member: convolve

관련정보

fft(x) 또는 xcorrelate (a,b).


cos(x) 오브젝트

x의 코사인 값을 출력하는 오브젝트

사용법

cos(x)는 x로 입력된 데이터의 코사인 값을 계산하는데 사용합니다. x의 입력값은 현재 설정된 Trig Mode 단위입니다. 입력값(x)는 x에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태(Shape)의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

사용예

cos([0, 180])는 Degree 모드에서는 [1, -1]을 출력합니다.

cos((1, PI/4))는 Radian 모드에서는 (0.715684, -0.73096)를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다. Default Preference에서 Trig모드를 Radian을 제외한 다른 모드로 설정할 경우에는 12자리수를 넘게 되어 정확도에서 에러가 발생합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: cos

관련정보

acos(x), cosh(x), sin(x), tan(x), Trig 영역 및 Default Preferences 대화상자.


cosh(x) 오브젝트

x의 하이퍼볼릭 코사인 값을 출력하는 오브젝트

사용법

cosh(x)는 x로 입력된 데이터의 하이퍼볼릭 코사인 값을 계산하는데 사용합니다. 입력값(x)에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태(Shape)의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

Int8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

사용예

cosh(0)은 1을 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: cosh

관련정보

acosh(x), cos(x), sinh(x) 및 tanh(x).


cot(x) 오브젝트

x의 코탄젠트 값을 출력하는 오브젝트

사용법

cot(x)는 x로 입력된 데이터의 코탄젠트 값을 계산하는데 사용합니다. x의 입력값은 현재 설정된 Trig Mode 단위입니다. 입력값(x)는 x에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태(Shape)의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

사용예

cot([45, 90])는 Degree 모드에서는 [1, 61E-18]를 출력합니다. 이 예제의 2 번째 출력값은 0 이 되어야 하지만 0 대신 시스템에서 표시할 수 있는 가장 작은 숫자를 출력했습니다.

cot((3, @PI/2))는 Radian 모드에서는 (1.0049698, @-1.57079)를 출력합니다.

cot((3, @90))는 Degree 모드에서는 (1.0049698, @-90)를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다. Default Preference에서 Trig모드를 Radian을 제외한 다른 모드로 설정할 경우에는 12자리수를 넘게 되어 정확도에서 에러가 발생합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: cot

관련정보

acot(x), atan2(y,x), cos(x), coth(x), sin(x), tan(x), Trig 영역 및 Default Preferences 대화상자.


coth(x) 오브젝트

x의 하이퍼볼릭 코탄젠트 값을 출력하는 오브젝트

사용법

coth(x)는 x로 입력된 데이터의 하이퍼볼릭 코탄젠트 값을 계산하는데 사용합니다. 입력값(x)는 x에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태(Shape)의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

사용예

coth(0.4)는 2.631을 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: coth

관련정보

acoth(x), cot(x), sinh(x) 및 tanh(x).


Instance(AssemblyName, ClassName) 생성하기

AssemblyName과 ClassName으로 지정되는 .NET 오브젝트의 새로운 인스턴스를 생성하고 그것의 참조값을 리턴합니다. 오브젝트의 추가 파라미터를 제공하여 특별한 생성자를 만들수도 있습니다.

사용법

CreateInstance는 VEE 프로그램에 .NET 오브젝트를 생성하기 위해 사용합니다. 프로그래머가 직접 CreateInstance 공식을 표현식으로 입력해야 할 필요는 없습니다. 대신에 Function & Object Browser를 열어서 assembly, namespace, class type과 적절한 constructor를 선택하고, Create Instance 버튼을 사용하여 공식 템플릿을 생성합니다. 이것은 식을 입력하는 시간을 줄이고, 잘못 입력하는 것을 방지하기 위한 최선의 방법입니다.

AssemblyName은 .NET assembly reference 대화상자를 이용하여 참조했던 어셈블리의 이름입니다. ClassName은 네임스페이스로 지정된 클래스의 이름입니다.

CreateInstance는 오브젝트의 특정 생성자를 인용하기 위한 파라미터를 여러 번 가질 수 있습니다. 다시 한번 Function & Object Browser를 사용하여 공식 템플릿을 생성하십시오.

사용예

이 예제는 System.Collections.Hashtable 클래스의 인스턴스를 생성하고 그것의 참조값을 리턴합니다.

Set hashtable = CreateInstance("mscorlib", "System.Collections.Hashtable");

주의사항

VEE는 .NET을 지원하기 위해서는 Default Preference의 execution mode를 VEE5이상으로 설정해야 합니다.

VEE에서 .NET 타입을 사용하는 표현식을 생성하기 전에 사용할 .NET 어셈블리를 참조해야 합니다. 이것이 일반적인 방법입니다. (Device [image] .NET Assembly References...).

생성자를 가지지 않는 타입에 대해서는 CreateInstance를 호출하지 않고 직접 .NET 오브젝트를 사용할 수 있습니다.

또한, .NET 스태틱 멤버( [image] icon을 가지고 있는 member)를 호출할 때도, 먼저 CreateInstance를 호출할 필요가 없습니다. 예를 들어, System.DateTime의 Now를 사용할 때, 오브젝트 인스턴스를 생성할 필요가 없습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions

Category: .NET Automation

Member: CreateInstance

관련정보

.NET 예제 디렉토리에 있는 예제를 참조하십시오.

Microsoft .NET 예제


CreateObject(ProgID) 오브젝트

ProgID에 의해 지정되는 ActiveX Automation 오브젝트의 새로운 인스턴스를 생성하고 그것의 참조값을 리턴합니다.

ActiveX 참조 종료

사용법

CreateObject는 프로그램에 오토메이션 오브젝트를 생성하기 위해 사용합니다. 원하는 행위를 수행하기 위해 사용했던 초기의 표현식을 수정할 필요가 있습니다. 대부분의 경우 VEE가 컨트롤 해야 할 서버 어플리케이션내에 오토메이션 오브젝트의 새로운 인스턴스를 생성하게 됩니다.

오브젝트의 ProgID는 automation 오브젝트를 만든 사람이 지정한 이름(사람이 읽을 수 있는 스트링)입니다. 이것은 일반적으로 라이브러리 또는 어플리케이션 이름, 주기, 컴포넌트 또는 오브젝트 이름입니다. ActiveX Automation Server에 해당되는 ProgID는 서버와 함께 제공된 매뉴얼 등에서 찾아야 합니다.

CreateObject는 원격 호스트 컴퓨터(서버)의 이름을 지칭하는 두번째 파라미터를 옵션으로 가집니다. 이 기능은 클라이언트와 서버 컴퓨터에 설치되어야 할 DCOM을 필요로 합니다. 표현문법은 다음과 같습니다:

createObject( ProgID [, hostName ] )

여기서:

hostName은 텍스트 타입이어야 하고, 적당한 UNC 또는 DNS 도메인이름으로 지정됩니다. hostName의 예는 다음과 같습니다:

Set obj = createObject("lib.obj",
 "server")
Set obj = createObject("lib.obj", "\\\\server")
Set obj = createObject("lib.obj", "server.domain.com")
Set obj = createObject("lib.obj", "135.5.33.19")

사용예

이 예제는 Microsoft Excel의 새로운 인스턴스를 시작하고(비록 Excel이 실행되고 있더라도), 새로운 Worksheet 오브젝트의 참조값을 리턴합니다.

SET excel = CreateObject ("Excel.Sheet")

ActiveX 참조 종료

VEE 프로그램이 Automation Server(Excel 같은)를 사용하고 있다면, VEE 프로그램의 실행이 끝났더라도 Excel 어플리케이션이 항상 끝나는 것은 아닙니다. VEE는 프로그램을 종료하거나 File [image] New를 선택하여 새로운 프로그램을 실행할 때만 모든 ActiveX 참조를 종료합니다. 만약 프로그램 실행 완료와 함께 ActiveX 참조를 종료하고 싶다면, 몇 가지 프로그램을 추가해야 합니다. 다음은 해당 오브젝트가 삭제되거나 VEE 프로그램의 실행이 완료되었을 때 사용중인 Automation Server를 종료하는 방법입니다.

Default Preferences에서 Disable Debug Features를 선택합니다. 디버깅을 가능하게 하면, VEE는 라인 프로브와 함께 사용하기 위한 데이터와 포인터 참조값을 유지합니다.(어떤 것이 더 중요한지를 결정해야 합니다: 디버깅과 라인 프로빙, 프로그램 완료시에 ActiveX server를 중지하는 것)

선언되거나 선언되지 않은 모든 VEE 변수를 프로그램 완료 전에 삭제합니다. 힌트: Delete Variable오브젝트에서 All Variables를 선택합니다.

Excel 워크시트를 변경했다면, Excel은 "Do you want to save changes?"라고 물어봅니다. 비록 VEE가 모든 Excel의 참조값을 사용중지 했더라도, Excel은 종료하기 전에 어떤 응답을 요구합니다. 이러한 상황을 피하기 위해서는 Excel에 있는 Quit() 메서드를 호출합니다.

대체 방안은 모든 ActiveX 함수들을 별도의 VEE 라이브러리에 배치하는 것입니다. 그리고 Import Library 를 이용하여 이들 함수들을 불러서 사용하고, 더 이상 필요치 않을 때는 Delete Library 를 이용하여 모든 ActiveX 참조를 중지합니다. 예를 들어, 모든 Excel관련 프로그램을 VEE UserFunctions으로 생성하고 “ExcelFuncs.vee”라는 이름으로 라이브러리에 저장합니다. 메인 프로그램에서 Excel 워크시트를 사용하고자 할 때 Import Library를 이용하여 ExcelFuncs.vee를 임포트하고, 워크시트를 사용하거나 저장하기 위한 적절한 UserFunction을 호출합니다. 사용이 완료되면 Delete Library를 이용하여 ExcelFuncs.vee를 삭제합니다. 이때 Excel Automation Server의 참조값이 제거되고 Excel이 종료됩니다.

이 대체방안은 별도의 UserFunction 라이브러리를 생성하고 관리하는 별도의 작업을 수반합니다. 반면에 프로그램적으로 디버깅과 라인 포로빙을 활성화 시키고 Excel을 종료할 수 있게 합니다. 위에서 언급한 바와 같이 Delete를 호출하기 전에 워크시트의 변경된 부분을 저장하거나 Excel의 Quit()을 호출하는 것이 필요합니다.

주의사항

VEE는 ActiveX를 지원하기 위해서는 Default Preference의 실행모드를 VEE5이상으로 설정해야 합니다.

ActiveX 어플리케이션을 위한 라이브러리 타입은 어플리케이션을 컨트롤하는 표현식을 생성하기 전에 VEE에서 사용할 수 있도록 만들어져야 합니다. (Device [image] ActiveX Automation References...).

VEE는 원격 컴퓨터에 있는 오브젝트를 인스턴스화하기 위하여 보안설정을 넘어서는 컨트롤은 제공하지 않습니다.  이것은 DCOM의 한 부분인 dcomcnfg.exe 프로그램을 통해서 이루어 집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: ActiveX Automation
Member: CreateObject

관련정보

ActiveX 예제 디렉토리에 있는 예제를 참조하십시오.
 Help [image] Open Example...

ActiveX Automation References 대화상자, Default Preferences 대화상자, GetObject.


cubert(x) 오브젝트

입력값 x의 세제곱근을 출력하는 오브젝트

사용법

cubert(x)는 x로 입력되는 숫자의 세제곱근을 연산하는데 사용합니다. x에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태(Shape)의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

PComplex 입력에서는, cubert(x)는 크기에 대한 세제곱근 값과 위상의 3분의 1로 정의 됩니다. Complex는 함수가 적용되기 전에 PComplex로 변환됩니다.

사용예

cubert( (8, @90) )는 (2, @30)를 출력합니다.

cubert( (1,1) )는 (1.08, 0.291)를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Power
Member: cubert

관련정보

a ^ b (exponent), Power, sq(x) 및 sqrt(x).


Data Filtering 영역

Function & Object Browser 대화상자에 있는 Built-in Functions 영역

사용법

Data Filtering은 필터링 알고리즘을 적용하여 데이터를 추출하는데 사용합니다.

polySmooth(x)

meanSmooth(x,numPts)

movingAvg(x,numPts)

clipUpper(x,a)

clipLower(x,a)

minIndex(x)

maxIndex(x)

minX(x)

maxX(x)

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Data Filtering

관련정보

polySmooth (x), meanSmooth (x,numPts), movingAvg (x,numPts), clipUpper (x,a), clipLower (x,a), minIndex(x), maxIndex(x), minX(x), maxX(x), Regression 및 Signal Processing 영역.


defIntegral (x,a,b) 오브젝트

심슨의 1/3법칙을 이용하여 포인트 a와 b(b 의 값을 포함) 사이로 입력된 값들의 적분을 연산하는 오브젝트

사용법

defIntegral(x,a,b)는 포인트 a와 b사이의 균등 간격 값으로 배열되고 차순으로 정리된 값(x)들의 적분 근사치를 연산하는데 사용합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Waveform | Real64

사용예

defIntegral([ 0, 1, 2, 3, 4, 4, 3, 2, 1, 0 ], 2, 5)는 10.12를 출력합니다.

주의사항

defIntegral(x,a,b) 함수는 간단한 숫자들의 1차원 어레이 또는 균등간격 차수 데이터로 표현되는 2차원(2개의 필드) 좌표 리스트에서 사용할 수 있습니다. 매핑이 안된 어레이에서는, a와 b값은 어레이(0 to N-1)의 인덱스를 나타냅니다. 좌표 리스트에서는, a와 b값은 좌표 리스트(inclusive)에 있는 시작 포인트와 마지막 포인트의 x값 사이의 실수값을 나타냅니다. 매핑된 어레이에서는, a와 b값은 Xmin 매핑과 Xmax-dx (inclusive) 사이의 실수값을 나타냅니다. 여기서 dx는 연속되는 포인트 사이의 간격입니다: (Xmax-Xmin)/N.

매핑이 안된 어레이에서는, 데이터가 균등간격을 가지고 차순으로 정리된 것을 가정하고 포인트 사이의 간격 dx가 1의 값을 갖는 것을 가정합니다. 매핑된 어레이에서는, (Xmax-Xmin)/N와 동일한 간격값 dx와 자동으로 스케일이 적용된 상태에서 연산이 실행됩니다. 좌표 리스트에서는, 독립변수(첫번째 필드)값이 균등간격인지 차순으로 정리되었는지를 먼저 체크하고, dx값으로 적용했던 간격을 사용하여 종속변수(2번째 필드)값에서 연산이 실행됩니다.

매핑이 안된 어레이를 사용했을 때, 포인트 사이의 간격이 dx값을 가진 경우에는, dx값을 사용한 defIntegral(x,a,b)의 복수 결과들에 의해서 정확한 연산값이 얻어집니다.

노이즈 데이터를 표현하는 값인 경우에는, 먼저 데이터를 필터링하고 smoothing하여 defIntegral(x)의 결과값이 향상될 수 있습니다. Smoothing은 원래의 값에 있는 많은 양의 노이즈를 제거합니다. polySmooth(x) 함수 및 관련되는 smoothing 함수를 위한 예제들을 참조하십시오.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Calculus
Member: defIntegral

관련정보

integral(x).


deriv(x, order) 오브젝트

슬라이딩 4차(5 포인트) 다항식을 사용하는 모든 입력값들에 대해서 order 차 미분계수를 연산하는 오브젝트

사용법

deriv(x,order)는 균등간격 차순으로 정리된 값(x)들의 모든 포인트에 대해서 order차 미분계수를 근사값으로 연산하는데 사용합니다. 출력값은 입력값(x)와 같은 크기와 형태를 가진 어레이 데이터입니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Waveform | Waveform

사용예

deriv([0, 1, 2, 3, 3, 2, 1, 0], 1)는
[1.25, 0.9167, 1.083, 0.5833, -0.5833, -1.083, -0.9167, -1.25]를 출력합니다.

주의사항

deriv(x,order) 함수는 단순한 숫자값으로 이루어진 1차원 어레이 및 균등간격으로 정리된 2차원 좌표(2개의 필드) 리스트에 사용할 수 있습니다. 매핑된 어레이에서는, 출력되는 어레이의 매핑은 입력 x의 매핑과 동일합니다. 좌표 리스트에서는, a와 b의 값은 좌표 리스트(포함)에 있는 처음 포인트와 마지막 포인트의 x값들 사이에 있는 실수로 표현됩니다. 매핑된 어레이에서는, a와 b의 값은 Xmin 매핑 과 Xmax-dx (포함)사이에 있는 실수로 표현됩니다. 여기서 dx는 연속되는 포인트 사이의 간격입니다: (Xmax-Xmin)/N.

매핑이 안된 어레이에서는, 데이터가 균등간격을 가지고 차순으로 정리되었으며 포인트 사이의 간격 dx가 1 이라고 가정합니다. 매핑된 어레이에서는, (Xmax-Xmin)/N와 동일한 간격값 dx와 자동으로 스케일이 적용된 상태에서 연산이 실행됩니다. 좌표 리스트에서는, 독립변수(첫번째 필드)값이 균등간격인지 차순으로 정리되었는지를 먼저 체크하고, dx값으로 적용했던 간격을 사용하여 종속변수(2번째 필드)값에서 연산이 실행됩니다.

매핑이 안된 어레이를 사용했을 때, 포인트 사이의 간격이 dx값을 가진 경우에는, 정확한 연산값은 dx값을 사용하여 deriv(x,order)의 결과를 나누어 얻어집니다.

노이즈 데이터를 표현하는 값인 경우에는, 먼저 데이터를 필터링하고 smoothing하여 deriv(x,order)의 결과값을 향상시킬 수 있습니다. Smoothing은 원래의 값에 있는 많은 양의 노이즈를 제거합니다. polySmooth(x) 함수 및 관련되는 smoothing 함수를 위한 예제들을 참조하십시오.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Calculus
Member: deriv

관련정보

derivAt(x, order,pt).


derivAt(x, order,pt) 오브젝트

슬라이딩 4차(5 포인트) 다항식을 사용하는 입력데이터의 pt값에서 order 차 미분계수를 연산하는 오브젝트

사용법

derivAt(x,order,pt)는 균등 간격 값(x)으로 배열되고 차순으로 정리된 값(x)에 있는 포인트 pt에서 order 차 미분계수 근사값을 연산하는데 연산하는데 사용합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Real64

사용예

derivAt([ 0, 1, 2, 3, 3, 2, 1, 0 ], 1, 3)는 0.5833을 출력합니다.

주의사항

derivAt(x,order,pt) 함수는 단순한 숫자값(정수, 실수, 파형)으로 이루어진 1차원 어레이 및 균등간격 차순으로 정리된 2차원 좌표(2개의 필드) 리스트에 사용할 수 있습니다. 매핑이 안된 어레이에서는, a값은 어레이(0 to N-1)의 인덱스를 나타냅니다. 좌표 리스트에서는, a와 b값은 좌표 리스트(inclusive)에 있는 시작 포인트와 마지막 포인트의 x값 사이의 실수값을 나타냅니다. 매핑된 어레이에서는, a와 b의 값은 Xmin 매핑 과 Xmax-dx (포함)사이에 있는 실수로 표현됩니다. 여기서 dx는 연속되는 포인트 사이의 간격입니다: (Xmax-Xmin)/N.

매핑이 안된 어레이에서는, 데이터가 균등간격을 가지고 차순으로 정리된 것을 가정하고 포인트 사이의 간격 dx가 1의 값을 갖는 것을 가정합니다. 매핑된 어레이에서는, (Xmax-Xmin)/N와 동일한 간격값 dx와 자동으로 스케일이 적용된 상태에서 연산이 실행됩니다. 좌표 리스트에서는, 독립변수(첫번째 필드)값이 균등간격인지 차순으로 정리되었는지를 먼저 체크하고, dx값으로 적용했던 간격을 사용하여 종속변수(2번째 필드)값에서 연산이 실행됩니다.

매핑이 안된 어레이를 사용했을 때, 포인트 사이의 간격이 dx값을 가진 경우에는, 정확한 연산값은 dx값을 사용하여 derivAt(x,order,pt)의 결과를 나누어 얻어집니다.

노이즈 데이터를 표현하는 값인 경우에는, 먼저 데이터를 필터링하고 smoothing하여 derivAt(x,order,pt)의 결과값이 향상될 수 있습니다 (in a pragmatic sense). Smoothing은 원래의 값에 있는 많은 양의 노이즈를 제거합니다. polySmooth(x) 함수 및 관련되는 smoothing 함수를 위한 예제들을 참조하십시오.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Calculus
Member: derivAt

관련정보

deriv(x, order).


det(x) 오브젝트

정방형행렬에 대한 디터미넌트를 연산하는 오브젝트

사용법

det(x)는 정방형행렬 x에 대한 디터미넌트를 연산하는데 사용합니다. 입력값 x는 반드시 정방형행렬 형태를 가져야 합니다. 정방형행렬은 열과 같은 수의 행을 가집니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Complex | 스칼라 형태를 가진, Complex
PComplex | 스칼라 형태를 가진, PComplex

사용예

x가 제곱 행렬[ [1, 2], [3, 4] ]이면, det(x)는 -2를 출력합니다.

주의사항

연산되는 숫자의 매핑은 무시됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Matrix
Member: det

관련정보

identity(x), inverse(x) 및 transpose(x).


dirName(str) 오브젝트

파일 경로 스트링에서 디렉토리 부분을 출력하는 오브젝트

사용법

dirName()은 디렉토리/파일 경로에서 디렉토리 정보를 분리해 내는데 사용합니다.

예를 들어, pathStr는 다음과 같습니다:

c:\Program Files\Agilent\VEE\examples\apps\chaos.vee

그러면, dirName(pathStr)을 다음과 같이 출력합니다:

c:\Program Files\Agilent\VEE\examples\apps

슬래시(/)와 역슬래시(\)는 디렉토리(폴더) 이름 다음에 오는 구분문자로 처리됩니다. 만약 전체 pathStr이 단 하나의 이름을 가지고 있다면, 그 이름은 파일이름으로 간주합니다. 그러한 경우 dirName()는 null 스트링을 출력합니다.

주의사항

dirName()오브젝트는 하나의 입력과 dirName() 함수를 가진 Formula 오브젝트입니다. 또한 다른 Formula 오브젝트나 표현식에 dirName()을 입력하여 사용할 수도 있습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type: Built-in Functions
Category: System Information
Member: dirName

관련정보

baseName(), Formula


a div b (truncated division) 오브젝트

2 개의 입력값에 대해서 div(truncated 나누기) 산술연산을 실행하는 오브젝트

Use

하나의 값으로 다른 하나의 값을 균등하게 몇 개로 나눌 수 있는지 확인하는 오브젝트. 즉, truncated 나누기 값. 2 개의 입력값은 임의의 형태를 사용할 수 있습니다. 그러나 하나의 입력이 어레이이면, 다른 하나는 스칼라이거나 또는 동일한 크기 및 형태의 어레이어야 합니다. 출력값은 연산되는 숫자와 동일한 형태를 가진 최상위 타입의 컨테이너가 됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8

두개의 연산수

중에서

최상위 타입

Int16

Int32

Int64

Real32

Real64

Coord

Waveform

2 개의 입력이 모두 Coord 타입이면, 이것들의 독립변수는 일치해야 합니다. 독립변수가 일치하지 않으면 에러가 발생합니다. div는 종속된(마지막) 변수에만 적용됩니다.

사용예

스칼라div 어레이: 3.2 DIV [1, 2, 3, 4]는 [3, 1, 1, 0]를 출력합니다.

어레이div 스칼라: [1, 2, 3] DIV 2는 [0, 1, 1]을 출력합니다.

2개의 스칼라: 12.95 DIV 4는 3을 출력합니다.

2개의 Coord 스칼라: coord(1,3) DIV coord(1,5)는 coord(1,0)을 출력합니다.

2개의 Coord 스칼라: coord(1,3) DIV coord(2,5)는 에러가 발생합니다.

주의사항

하나의 입력값이라도 매핑되어 있으면(즉, Waveform, Coord 타입 또는 다른 타입이지만 매핑된 어레이), 다른 입력은 매핑되어 있지 않거나 동일한 매핑을 가져야 합니다. 리턴되는 값은 입력되는 값과 동일한 매핑을 가집니다; 그렇지 않으면 에러가 발생됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Arithmetic
Member: DIV

관련정보

a + b (add), a / b (divide), a * b (multiply) 및 a - b (subtract).


a / b (divide)

a / b (divide) 오브젝트

2개의 숫자에 대한 산술적인 나눗셈을 연산하는 오브젝트

사용법

a / b는 하나의 컨테이너 값을 다른 컨테이너의 값으로 나누는데 사용합니다. 2개의 컨테이너는 어떤 형태(Shape)의 데이터도 사용할 수 있습니다. 반면에 하나의 컨테이너가 어레이라면, 다른 컨테이너는 반드시 스칼라이든지 같은 크기와 형태를 가진 어레이여야 합니다. 출력값은 연산되는 숫자와 동일한 형태를 가진 최상위 타입의 컨테이너가 됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8

두개의 연산수

중에서

최상위 타입

Int16

Int32

Int64

Real32

Real64

Coord

Waveform

PComplex

Spectrum

2개의 숫자가 Coord 타입이라면, 그들의 독립변수는 정확히 매칭이 되어야 하며 매칭이 안된 경우에는 에러가 발생합니다. 나눗셈은 종속변수에서 수행이 됩니다.

이 나눗셈은 행렬을 포함하는 모든 어레이에서 병렬로 나눗셈이 수행됩니다. 행렬을 나누기할 때는, matDivide(numer,denom)함수를 참조하십시오.

사용예

스칼라를 어레이로 나눈 경우: 3.0 / [1, 2, 3]는 [3, 1.5, 1]를 출력합니다.

2개의 어레이: [4, 5, 6] / [1, 2, 3]는 [4, 2.5, 2]를 출력합니다.

2개의 PComplex 스칼라: (1,@90) / (2,@30)는 각도 단위에서는 (0.5, @60)를 출력합니다.

2개의 Coord 스칼라: coord(1,3) / coord(1,5)는 coord(1,0.6)을 출력합니다.

2개의 Coord 스칼라: coord(1,3) / coord(2,5)는 에러가 발생합니다.

주의사항

하나의 컨테이너가 매핑이 되어 있으면(Waveform, Spectrum, Coord 또는 다른 타입의 매핑된 어레이), 다른 컨테이너는 매핑이 안되 있든지 동일한 매핑을 가져야 합니다. 출력값은 연산되는 숫자와 동일한 매핑을 가집니다; 다른 경우에는 에러가 발생합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Arithmetic
Member: /

관련정보

a + b (add), a div b (truncated division), matDivide (numer, denom), a * b (multiply) 및 a - b (subtract).


dmyToDate (d,m,y) 오브젝트

d, m, y 파라미터의 값을 초로 변환한 값을 출력하는 오브젝트

사용법

dmyToDate(d,m,y)는 일, 월, 년의 3가지 값을 초로 변환하기 위해 사용합니다. d, m, y는 어떤 형태의 데이터도 입력할 수 있습니다. 만약 하나의 컨테이너가 어레이라면, 다른 컨테이너는 스칼라이든지, 같은 크기와 형태를 가진 어레이여야 합니다. 출력값은 연산되는 숫자와 같은 형태를 가진 최상위 타입의 컨테이너입니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

dmyToDate(25, 12, 1991)는 62.8293999G를 출력합니다.

주의사항

입력 파라미터가 매핑이 되어 있다면, 두 값의 매핑은 동일해야 합니다. 출력 컨테이너는 입력 컨테이너의 매핑을 유지합니다. 만약 하나의 입력값만이 매핑이 되어 있다면, 출력 컨테이너는 그 매핑을 갖습니다.

dmy는 그레고리력으로 표시하는 날짜를 사용합니다.

d(일)의 값은 1에서 31의 범위에 있어야 합니다.

m(월)의 값은 1에서 12의 범위에 있어야 합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Time & Date
Member: dmyToDate

관련정보

hmsToHour (h,m,s), hmsToSec (h,m,s), mday(aDate), month(aDate), now(), Time & Date, wday(aDate) 및 year(aDate).


a == b (equal to) 오브젝트

2개의 숫자가 서로 동일한지를 확인하는 오브젝트

사용법

a == b는 하나의 컨테이너 값이 다른 컨테이너 값과 동일한지를 확인하기 위해 사용합니다. 2개의 컨테이너는 어떤 종류와 어떤 형태도 사용할 수 있습니다. 하나의 컨테이너가 어레이라면, 다른 컨테이너는 스칼라이든지 같은 사이즈와 형태를 가진 어레이여야 합니다. 출력값은 0 또는 1의 값을 가진 스칼라 Int32입니다. 첫번째 숫자가 2번째 숫자와 동일하다면, 결과값은 1입니다; 아니면 0을 출력합니다.

2개의 숫자가 Coord 타입이라면, 독립변수와 종속변수는 정확하게 동일해야 1을 출력합니다. 독립변수가 동일하지 않다면 에러가 발생합니다. Complex, PComplex 및 Spectrum 컨테이너는 2개의 항목이 동일해야 1을 출력합니다. Enums은 비교를 위해 텍스트로 변환됩니다.

어레이는 2개의 컨테이너에 있는 각각의 값이 동일해야 1을 출력합니다.

2개의 연산수가 Boolean 타입인 경우에는, 출력값은 연산수와 동일한 형태를 가진 Boolean 타입입니다.

사용예

2개의 Boolean 스칼라: True == False는 False를 출력합니다.

스칼라와 어레이: 3.0 == [3, 3, 3]은 1을 출력합니다.

스칼라와 어레이: 3.0 == [3, 1, 3]은 0을 출력합니다.

2개의 어레이: [1, 2, 3] == [1, 2, 4]는 0을 출력합니다.

2개의 PComplex 스칼라: (1,@90) == (1,@85)는 0을 출력합니다.

2개의 Complex 스칼라: (2,3) == (2,4)는 0을 출력합니다.

2개의 Complex 스칼라: (2,3) == (2,3)는 1을 출력합니다.

2개의 Coord 스칼라: coord(1,3) == coord(1,5)는 0을 출력합니다.

2개의 Coord 스칼라: coord(1,3) == coord(2,3)는 에러를 출력합니다: Values for independent variables must match.

주의사항

하나의 컨테이너가 매핑되어 있으면(Waveform, Spectrum, Coord 또는 다른 타입의 매핑된 어레이), 다른 컨테이너는 매핑이 안되어 있든지 동일한 매핑을 가져야 합니다; 아닌경우에는 에러가 발생합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Comparison
Member: ==

관련정보

a ~= b (almost equal to), a AND b, a > b (greater than), a >= b (greater than or equal to), a < b (less than), a <= b (less than or equal to), NOT a, a != b (not equal to), a OR b, Comparison 영역, a XOR b, Comparator, Conditional 메뉴 및 If/Then/Else.


erf(x) 오브젝트

x로 입력되는 값의 에러 함수를 연산하기 위해 사용하는 오브젝트

사용법

erf(x)는 x의 에러 함수를 연산하기 위해 사용합니다. erf 함수는 다음과 같이 정의 됩니다:

(2/SQRT(PI) ) * [ ( e^(-t^2)) * dt 의 적분]

여기서 적분은 0에서 x사이의 범위에 걸쳐 연산됩니다. x로 입력되는 값은 어떤 형태와 사이즈를 가질 수 있습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

erf(.5)는 0.52049987781305를 출력합니다.

주의사항

숫자에 있는 매핑은 무시되고, 출력 컨테이너는 입력값과 동일한 매핑을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: erf

관련정보

erfc(x).


erfc(x) 오브젝트

x로 입력되는 값의 보수 에러 함수를 연산하기 위해 사용하는 오브젝트

사용법

erfc(x)는 x의 보수 에러 함수를 연산하기 위해 사용합니다. erfc 함수는 다음과 같이 정의 됩니다:

1-(2/SQRT(PI)) * [( e^(-t^2)) * dt의 적분]

여기서 적분은 0에서 x사이의 범위에 걸쳐 연산됩니다. x로 입력되는 값은 어떤 형태와 사이즈를 가질 수 있습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

erfc(.5)는 0.47950012218695를 출력합니다.

주의사항

숫자에 있는 매핑은 무시되고, 출력 컨테이너는 입력값과 동일한 매핑을 가집니다.

1.0 - erf(x)를 출력하는 erfc(x)함수는, 만약 erf(x)에 커다란 값 x가 호출된다면, 상대적으로 정확도에서는 최대의 손실이 발생되기 때문에, 출력값은 1.0에서 추출됩니다. (예를 들어, x=5, 20개의 위치가 손실됩니다.)

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: erfc

관련정보

erf(x).


errorInfo() 오브젝트

에러 출력핀에서 마지막으로 검출된 에러에 대한 정보를 제공하는 오브젝트.

사용법

errorInfo()는 에러 출력핀을 사용할 때 마지막으로 검출된 에러에 대한 정보를 제공하기 위해 사용합니다. 에러가 검출된 후에는, 에러 대화상자에 표시해야 할 모든 정보를 포함하는 레코드를 생성하기 위하여 errorInfo()오브젝트를 실행합니다. 레코드의 필드는 다음과 같습니다:

레코드 필드에 대한 세부적인 내용

첫번째 필드에 있는 Int32 숫자는 에러번호입니다.

2번째 필드에 있는 메시지 텍스트 스칼라는 에러에 관한 에러 메시지 텍스트입니다.

3번째 필드에 있는 Text 1D 어레이는 에러에 관련된 부가 정보입니다.

4번째 필드에 있는 텍스트 스칼라 이름은 에러가 발생한 오브젝트의 이름입니다.

5번째 필드에 있는 텍스트 스칼라 타입은 에러가 발생한 오브젝트의 타입입니다.

주의사항

errorInfo() 오브젝트는 입력값 없이 초기화 되고, errorInfo() 공식을 포함하는 단순한 Formula 오브젝트입니다. 또한, 다른 Formula 오브젝트나 표현식에 errorInfo()를 직접 입력하여 사용할 수도 있습니다.

만약 에러 출력핀으로 출력되는 에러가 없을 경우에는, ErrorInfo는 데이터가 없는 레코드를 생성합니다.

ErrorInfo()는 프로그램 실행중에 발생하는 에러만 검출합니다. 입력 터미날이 연결되지 않은 것과 같이 프로그램 실행전에 발생하는 에러에 대해서는 검출하지 않습니다.

ErrorInfo()는 검출되지 않은 에러(에러 메시지 대화상자를 생성하는 에러)에 대한 정보는 제공하지 않습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: System Information
Member: errorInfo

관련정보

Error Output 메뉴항목 (오브젝트 메뉴), Formula 및 Raise Error.


exp(x) 오브젝트

자연지수 e의 x 승의 값을 출력하는 오브젝트

사용법

exp(x)는 자연지수 e 의 x 승입니다. x에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태(Shape)의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

사용예

exp(10)는 22.0264657948k를 출력합니다.

exp((1,2))는 (-1.131204384, 2.471726672)를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Power
Member: exp

관련정보

exp10(x), a ^ b (exponent), log(x), log10(x) 및 Power.


exp10(x) 오브젝트

10의 x 승의 값을 출력하는 오브젝트

사용법

exp10(x)는 10의 승입니다. x에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태(Shape)의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

사용예

exp10(10)는 10G를 출력합니다.

exp10((1, 2))는 (-4.16146837, 9.09297427)를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Power
Member: exp10

관련정보

exp(x), a ^ b (exponent), log(x), log10(x) 및 Power.


a / b (divide) 오브젝트

a ^ b (exponent) 오브젝트

2개의 숫자의 산술적인 지수 연산을 수행하는 오브젝트

사용법

a ^ b는 한 숫자를 다른 숫자로 거듭제곱하는데 사용합니다. 2개의 컨테이너는 어떤 형태도 사용할 수 있습니다. 하나의 컨테이너가 어레이라면, 다른 컨테이너는 스칼라이든지 동일한 크기와 형태를 가진 어레이여야 합니다. 출력값은 연산 숫자와 동일한 형태를 가진 최상위 타입의 컨테이너가 됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | 두개의 연산수 중에서 최상위 타입*
Int16
Int32
Int64
Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

* 예를 들어, 숫자가 uint8이고 거듭제곱 숫자가 int32라면, 출력 타입은 int32입니다. 이것은 2개의 타입이 바뀌더라도 출력타입은 동일합니다.

2개의 연산 숫자가 Coord 타입이라면, 2개의 독립변수는 정확히 매칭되어야 하고, 그렇지 않으면 에러가 발생합니다. 지수 연산은 종속변수(마지막)에서 만 수행이 됩니다.

사용예

스칼라를 어레이로 거듭제곱: 3.0 ^ [1, 2, 3]는 [3, 9, 27]를 출력합니다.

어레이를 스칼로 거듭제곱: [1, 2, 3] ^ 3는 [1, 8, 27]를 출력합니다.

2개의 어레이: [4, 5, 6] ^ [1, 2, 3]는 [4, 25, 216]를 출력합니다.

2개의 Complex 스칼라: (2,3) ^ (4,5)는 (-0.753046, -0.986429)를 출력합니다.

2개의 Coord 스칼라: coord(4,3) ^ coord(4,2)는 coord(4,9)를 출력합니다.

2개의 Coord 스칼라: coord(1,3) ^ coord(2,5)는 에러가 발생합니다.

주의사항

하나의 컨테이너가 매핑이 되어 있다면 (타입은 Waveform, Spectrum, Coord 또는 다른 타입의 매핑된 어레이입니다.), 다른 컨테이너는 매핑되어 있지 않거나 동일한 매핑을 가져야 합니다. 출력값은 연산되는 숫자와 동일한 매핑을 가집니다; 다른 경우는 에러가 발생합니다.

VEE 4부터 VEE 5까지는 변경되었습니다. VEE4에서는 거듭제곱 값은 숫자가 어떤 값을 가지든 실수 타입으로 가정됩니다. 예를 들어, -1은 실수 -1.0으로 간주됩니다. VEE5에서는 거듭제곱 값은 정수로 가정됩니다. 거듭제곱 값이 1 이라면 이것은 실수로 인식됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Arithmetic
Member: ^

관련정보

exp(x) 또는 log(x).


Exponential Regression 오브젝트

지수 함수를 (x,y)데이터로 Fitting하는데 사용하는 오브젝트

사용법

exponential regression은 데이터를 방정식 y = C0 + exp(C1*x)로 Fitting하는데 사용합니다. 여기서 x는 x 좌표이고, C0 와 C1는 연산된 계수입니다. exp는 자연지수(e)를 (C1*x) 승 하는 함수입니다.

exponential regression 오브젝트는 1차원 변수를 가진 어레이 형태의 Coord 타입이 입력됩니다. (x,y) 쌍 데이터 입니다. 입력 어레이가 Coord 타입이 아니라면, 입력값을 Coord 타입으로 변환하려 합니다. 입력 데이터가 매핑되어 있으면 (Waveform, Spectrum, 또는 매핑된 어레이), Coord로 변환하기 위하여 (x,y) 쌍 데이터에서 x를 생성하기 위한 매핑정보를 사용합니다. 입력 데이터가 매핑이 안되어 있으면 (예를 들어, 어레이), (x,y) 쌍 데이터의 x는 어레이에 있는 위치로부터 생성됩니다.

오픈뷰 항목

오픈뷰에 있는 Fit Type 필드는 regression 타입을 linear, logarithmic, exponential, power curve 또는 polynomial regression으로 변경하기 위하여 사용합니다. 필드를 클릭하면, 다른 regression 타입 리스트가 나타납니다.

사용예

Coord의 Regression 변환 예제를 참조하십시오.

주의사항

Regression의 일반사항을 참조하십시오.

오브젝트 위치

Device [image] Regression

대화상자에 있는 Fit Type에서 적절한 변환타입을 선택하십시오.

관련정보

Regression, linear regression, logarithmic regression, meanSmooth (x,numPts), movingAvg (x,numPts), polynomial regression, polySmooth (x), power curve regression 및 Build Coord.


factorial(n) 오브젝트

입력 숫자 n의 팩토리얼을 연산하는데 사용하는 오브젝트

사용법

factorial(n)은 자연수 n의 팩토리얼을 연산하는데 사용합니다. 어떤 자연수 n에서의 팩토리얼은 n! = (n) * (n-1) * (n-2) . . . (3) * (2) * (1)로 정의됩니다.

입력 n에는 어떤 형태(Shape)와 크기를 가진 숫자도 입력할 수 있으며, n 입력값은 0보다 작아야 합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

factorial(n)연산은 정수에서만 실행되기 때문에, 정수이외의 입력숫자는 연산이 실행되기 전에 Int32로 변환됩니다.

사용예

factorial(6)은 6*5*4*3*2*1의 곱셈에 의해 720을 출력합니다.

factorial(6.7)은 7*6*5*4*3*2*1의 곱셈에 의해 5040을 출력합니다. 실수를 Int32로 변환하는 규칙에 의해 6.7은 7로 계산됩니다.

주의사항

연산되는 숫자에서의 매핑은 무시되고, 출력되는 컨테이너는 입력과 동일한 매핑을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: factorial

관련정보

beta(x,y), binomial(a,b), comb(n,r), gamma(x) 및 perm(n,r).


fft(x) 오브젝트

입력 데이터에서 비연속 푸리에 변환(Discrete Fourier Transform)을 연산하는 오브젝트

사용법

fft(x)는 x의 입력값에 대해 비연속 푸리에 변환(Discrete Fourier Transform)을 연산하기 위해 사용합니다. 출력값은 변환된 값의 2분의 1로 표시됩니다. 출력되는 어레이의 사이즈는 (N DIV 2)+1이 되고, 여기서 N은 입력 어레이의 사이즈입니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Complex Array
Int16 | Complex Array
Int32 | Complex Array
Int64 | Complex Array
Real32 | Complex Array
Real64 | Complex Array
Waveform | Waveform

입력값 x는 균등 간격을 가지는 차순으로 정리된 어레이 데이터여야 합니다. Waveform이 아닌 입력에 대해서는, 출력은 매핑이 안된 Complex 값들의 어레이가 됩니다. Waveform의 입력에 대해서는, 출력은 최소 주파수 0부터 최대 주파수 (1+(N DIV 2))/(Tmax-Tmin)으로 매핑됩니다. 여기서 N은 입력 어레이의 크기이고, Tmin 과 Tmax는 입력 Waveform의 매핑입니다. 출력은 정규화 되지 않습니다.

사용예

fft([0, 1, 2, 3, 4, 5, 6, 7])는

[(28,0), (-4,9.657), (-4,4), (-4,1.657), (-4,0)]를 출력합니다.

주의사항

끝자르기와 주기성; 비연속 푸리에 변환을 사용하는데 있어서 waveform h(t)은 주기신호라는 것이 기본적으로 전제되어야 합니다. 아닌 경우에는 waveform은 끝자르기가 되야 하고 주기함수로 표시되어야 합니다. 밴드 제한 주기 함수 h(t)에서는, waveform은 반드시 주기에 있는 복수의 정수에서 끝자르기가 되야 합니다; 다른 경우, 비연속 및 연속 푸리에 변환의 결과는 사이드로브, 주파수 누락 또는 급격한 비연속이 나타날 수 있는 것에서 상당한 차이가 있습니다. 이들의 차이는 윈도우를 사용하면 줄일 수 있습니다. waveform이 밴드 제한적이지 않을 경우에는, 끝자르기 간격을 조정(증가)해야 하고 시간영역에서의 끝자르기 에러를 줄이기 위해 윈도우[0,L]을 사용합니다. L은 웨이브폼의 주기입니다.

앨리어싱(Aliasing): 앨리어싱(주파수 겹침)은 샘플링 간격 T가 너무 클 때 발생합니다. 이것은 샘플링 비율이 Nyquist sampling rate에 근접할 경우에는 비연속 푸리에 변환의 성능을 저하시킬 수 있습니다. waveform이 비주기적이고 밴드 제한적이지 않을 경우에는, 끝자르기 에러와 앨리어싱을 줄이기 위하여 끝자르기 간격 [0,L]을 늘이고, 샘플링 간격 T를 줄입니다.

fft에 대한 자세한 내용은 다음 서적을 참조하십시오: E. Oran Brigham, The Fast Fourier Transform and Its Applications, Second Edition, Prentice-Hall, Inc., Englewood Cliffs, NJ, 1988. ISBN #0-13-307505-2.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Signal Processing
Member: fft

관련정보

convolve(a,b) 또는 ifft(x).


floor(x) 오브젝트

입력되는 값보다 크지 않은 가장 가까운 정수를 출력하는 오브젝트

사용법

x에는 어떤 형태(Shape)의 숫자도 입력할 수 있습니다. x의 입력값과 동일하든지, x의 입력값 보다 작은 수 중에 가장 큰 정수값(동일한 데이터 종류)을 출력합니다; 입력 값 보다 작은 정수로 변환합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real6 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

floor([23.0, 23.1, 23.9, 23.5, (-23.5)])는 [23, 23, 23, 23, -24]를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Real Parts
Member: floor

관련정보

abs(x), ceil(x), Complex Parts 영역, fracPart(x), intPart(x), Real Parts 영역 및 round(x).


fracPart(x) 오브젝트

입력값 x의 분수 부분을 출력하는 오브젝트

사용법

fracPart(x)는 컨테이너의 분수 부분을 얻기 위해 사용합니다. x에는 어떤 형태(Shape)의 숫자도 입력할 수 있습니다. fracPart(x) 함수는 입력값 x의 분수 부분을 기호와 함께 출력합니다. 이것은 x - intPart(x)를 출력합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

fracPart([23.0, 23.1, 23.9, 23.5, (-23.5)])는
0, 0.1, 0.9, 0.5, -0.5]를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Real Parts
Member: fracPart

관련정보

abs(x), ceil(x), Complex Parts 영역, floor(x), intPart(x), Real Parts 영역 및 round(x).


주파수 분포관련 함수

Function & Object Browser의 Probability & Statistics 영역에 있는 Built-in Functions의 일부 오브젝트

사용법

주파수 분포 관련함수는 임의의 범위에서의 값의 분포를 지정된 개수의 작은 범위(Sub Range)의 분포로 연산하기 위해 사용합니다. 함수는 다음과 같습니다:

magDist(x,from,thru,step)

logMagDist(x,from,thru,logStep)

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics

관련정보

Function & Object Browser 메뉴항목, logMagDist (x,from,thru, logStep) 및 magDist(x, from,thru, step).


gamma(x) 오브젝트

입력값 x에 대해 감마 함수를 연산하는 오브젝트

사용법

gamma(x)는 x의 감마 함수를 연산하는데 사용합니다. 감마 함수는 다음과 같이 정의됩니다:

([ t^(x-1) * e^(-t) * dt ]의 적분)

여기서 적분은 0부터 무한대에 걸쳐서 연산됩니다. x는 어떤 형태의 값도 입력할 수 있습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

gamma(8)은 (8-1)! = 5040을 출력합니다.

gamma(-1)은 에러가 발생합니다.

gamma(3.7)은 4.17065178379660을 출력합니다.

gamma(-3.7)은 0.251643995902422을 출력합니다.

주의사항

gamma(x) 함수는 x의 음의 적분을 위해서는 정의되지 않습니다. x가 양의 정수이면, gamma(x)는 (x-1)! (팩토리얼)로 정의 됩니다.

연산되는 숫자의 매핑은 무시되고 출력 컨테이너는 입력과 동일한 매핑을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: gamma

관련정보

beta(x,y), comb(n,r), factorial(n) 및 perm(n,r).


Generate 영역

Function & Object Browser 대화상자에 있는 Built-in Functions 영역

사용법

Generate는 특정한 값을 가지는 1차원 어레이 형태의 Real64 데이터를 생성하는 다음의 오브젝트를 제공하기 위하여 사용합니다.

ramp(numElem,from,thru)

logRamp(numElem,from,thru)

xramp(numElem,from,thru)

xlogRamp(numElem,from,thru)

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Generate

관련정보

logRamp (numElem, from,thru), ramp (numElem, from,thru), xlogRamp (numElem, from,thru) 및 xramp (numElem, from,thru).


getEnv(envStr) 오브젝트

Built-in Functions인 VEE system information에서 제공하는 오브젝트중의 하나이며, 환경변수를 제공합니다.

사용법

getEnv는 VEE에서 환경변수의 값을 제공하기 위해 사용합니다. 이 함수를 선택하면, getEnv(envStr)오브젝트가 생성됩니다. (envStr)는 찾고자 하는 환경변수의 이름을 확인하는 스트링(Text 오브젝트)을 표시합니다. 찾고자 하는 환경변수의 스트링 이름을 괄호안에 입력하십시오.

getEnv(envStr) 오브젝트를 실행하면, Text 오브젝트 같은 스트링에 의해 지정되는 환경변수의 값을 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: System Information
Member: getEnv

관련정보

errorInfo(), getHostname(),
 installDir(), whichOS()
 및 whichVersion()


getHostname() 오브젝트

Built-in Functions인 VEE system information에서 제공하는 오브젝트중의 하나이며, VEE가 실행되고 있는 호스트 컴퓨터의 이름을 제공합니다.

사용법

getHostname()는 VEE 프로그램이 실행되고 있는 호스트 컴퓨터의 이름을 찾기 위해 사용합니다. getHostname을 선택하면, getHostname()오브젝트가 생성됩니다. 이 오브젝트는 어떤 파라미터도 필요하지 않으며, 오브젝트가 실행될 때 호스트 컴퓨터의 이름을 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: System Information
Member: getHostname

관련정보

errorInfo(), getEnv(envStr),
 installDir(), whichOS()
 및 whichVersion().


GetObject(fileName, ProgID) 오브젝트

ProgID로 지정된 오브젝트를 이용하여 fileName에 저장된 ActiveX Automation 오브젝트를 로딩하고, 그것의 참조값을 리턴합니다.

사용법

GetObject는 실행중인 어플리케이션에 존재하거나, 파일에 존재하는 오브젝트를 로딩하기위하여 ActiveX 오토메이션 오브젝트를 생성하는데 사용합니다. CreateObject 함수를 사용하는 표현식에 의해 생성되었거나, VEE 프로그램 밖에서 오브젝트를 생성하였기 때문에 오브젝트는 이미 존재합니다. 원하는 행위를 실행하기 위해서 제공되는 표현식을 수정하는 것이 필요합니다.

오브젝트의 ProgID는 오토메이션 오브젝트를 작성했던 개발자에 의해 할당된 이름(읽을 수 있는 스트링데이터)입니다. 이것은 라이브러리 또는 어플리케이션의 이름, 주기, 컴포넌트나 오브젝트의 이름입니다. ActiveX Automation Server의 적절한 ProgIDs를 찾기 위하여, 서버와 함께 제공된 자료를 참고하십시오. ProgID 파라미터는 선택사항입니다. ProgID를 생략하면, VEE는 파일과 관련이 있는 어플리케이션이 무엇인지를 판단하기 위하여 COM (Component Object Model) 라이브러리를 사용합니다.

사용예

다음의 예제는 참조값을 현재 실행중인 엑셀 어플리케이션의 Application 오브젝트로 출력합니다. 엑셀은 실행중이어야 하며, 그렇지 않은 경우에는 에러의 원인이 됩니다:

SET excel = GetObject ("","Excel.Application")

다음의 예제는 파일에 존재하는 오브젝트를 로딩합니다. 이것은 참조값을 엑셀 어플리케이션이 실행중인 디렉토리에서 d:\tmp\TestData.xls 과 관련된 Sheet 오브젝트로 출력합니다. 엑셀이 실행되지 않았을 때는 오브젝트를 로딩하기 전에 엑셀을 실행합니다.

SET excel = GetObject ("d:\\tmp\\TestData.xls","Excel.Sheet")

주의사항

VEE는 ActiveX 지원을 위해서는 실행모드가 VEE5 이상으로 설정되어야 합니다(Default Preferences).

어플리케이션을 위한 오토메이션 라이브러리는 어플리케이션을 컨트롤하기 위한 표현식을 생성하기 전에, VEE에서 사용할 수 있도록 만들어져야 합니다(Device ActiveX Automation References...).

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: ActiveX Automation
Member: GetObject

관련정보

ActiveX 예제 디렉토리에 있는 예제 프로그램을 참조하십시오.
 Help [image] Open Example...

ActiveX Automation References 대화상자, Default Preferences 대화상자, CreateObject.


a > b (greater than) 오브젝트

2개의 연산 숫자에서 ‘하나의 숫자가 다른 숫자보다 크다’라는 연산을 수행하는 오브젝트.

사용법

a > b는 하나의 컨테이너의 값이 다른 컨테이너의 값보다 큰지를 연산하는데 사용합니다. 2개의 컨테이너는 어떤 형태의 데이터도 사용할 수 있습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Int32
Int16 | Int32
Int32 | Int32
Int64 | Int32
Real32 | Int32
Real64 | Int32
Coord | Int32
Waveform | Int32
Text | Int32
Enum | Int32

하나의 컨테이너가 어레이라면, 다른 컨테이너는 스칼라이든지, 동일한 사이즈와 형태를 가진 어레이여야 합니다. 출력값은 0 또는 1의 값을 가진 Int32 스칼라입니다. 첫번째 연산 숫자가 2번째 연산 숫자보다 크면, 출력값은 1입니다; 아닌 경우는 0입니다.

2개의 연산 숫자가 Coord 타입이라면, 연산이 실행되기 전까지는 숫자의 독립변수가 동일해야 합니다; 아닌 경우에는 에러가 발생합니다. Enums은 비교를 위해 텍스트로 변환됩니다. 텍스트는 ASCII 사전순서를 사용하여 비교합니다.

2개의 어레이는 각각 비교되고, 각 앨리먼트의 쌍이 연산을 위한 상관 연산자를 만족해야 1을 출력합니다.

사용예

스칼라와 어레이: 3.0 > [1, 3, 9]는 0을 출력합니다.

어레이와 스칼라: [5, 9, 7] > 4는 1을 출력합니다.

2개의 어레이: [3, 4, 7] > [2, 3, 5]는 1을 출력합니다.

2개의 어레이: [3, 4, 3] > [2, 3, 5]는 0을 출력합니다.

2개의 Coord 스칼라: coord(1,3) > coord(1,5)는 0을 출력합니다.

2개의 Coord 스칼라: coord(1,3) > coord(2,5)는 Values for independent variables must match를 출력합니다.

2개의 Text 스칼라: "too" > "zoo"는 0을 출력합니다.

주의사항

컨테이너가 매핑(예를 들어, Waveform, Coord, 또는 다른 타입으로 매핑된 어레이) 되어 있으면, 다른 컨테이너는 매핑이 안되어 있든지 동일한 매핑을 가져야 합니다; 아닌 경우는 에러가 발생합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Comparison
Member: >

관련정보

a ~= b (almost equal to), a AND b, a == b (equal to), a >= b (greater than or equal to), a < b (less than), a <= b (less than or equal to), NOT a, a != b (not equal to), a OR b, Comparison 영역, a XOR b, Comparator, Conditional 메뉴 및 If/Then/Else.


a >= b (greater than or equal to) 오브젝트

2개의 연산 숫자에서 ‘하나의 숫자가 다른 숫자보다 크거나 같다’라는 연산을 수행하는 오브젝트.

사용법

a >= b는 하나의 컨테이너의 값이 다른 컨테이너의 값보다 크거나 같은지를 연산하는데 사용합니다. 2개의 컨테이너는 어떤 형태의 데이터도 사용할 수 있습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Int32
Int16 | Int32
Int32 | Int32
Int64 | Int32
Real32 | Int32
Real64 | Int32
Coord | Int32
Waveform | Int32
Text | Int32
Enum | Int32

하나의 컨테이너가 어레이라면, 다른 컨테이너는 스칼라이든지, 동일한 사이즈와 형태를 가진 어레이여야 합니다. 출력값은 0 또는 1의 값을 가진 Int32 스칼라입니다. 첫번째 연산 숫자가 2번째 연산 숫자보다 크거나 같으면, 출력값은 1입니다; 아닌 경우는 0입니다.

2개의 연산 숫자가 Coord 타입이라면, 연산이 실행되기 전까지는 숫자의 독립변수가 동일해야 합니다; 아닌 경우에는 에러가 발생합니다. Enums은 비교를 위해 텍스트로 변환됩니다. 텍스트는 ASCII 사전순서를 사용하여 비교합니다.

2개의 어레이는 각각 비교되고, 각 앨리먼트의 쌍이 연산을 위한 상관 연산자를 만족해야 1을 출력합니다.

사용예

스칼라와 어레이: 3.0 >= [1, 3, 9]는 0을 출력합니다.

어레이와 스칼라: [4, 5, 6] >= 4는 1을 출력합니다.

2개의 어레이: [3, 3, 6] >= [2, 3, 5]는 1을 출력합니다.

2개의 어레이: [1, 4, 3] >= [2, 3, 5]는 0을 출력합니다.

2개의 Coord 스칼라: coord(1,3) >= coord(1,5)는 0을 출력합니다.

2개의 Coord 스칼라: coord(1,3) >= coord(2,5)는 Values for independent variables must match를 출력합니다.

2개의 Text 스칼라: "too" >= "zoo" 는 0을 출력합니다.

주의사항

컨테이너가 매핑(예를 들어, Waveform, Coord, 또는 다른 타입으로 매핑된 어레이) 되어 있으면, 다른 컨테이너는 매핑이 안되어 있든지 동일한 매핑을 가져야 합니다; 아닌 경우는 에러가 발생합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Comparison
Member: >=

관련정보

a ~= b (almost equal to), a AND b, a == b (equal to), a > b (greater than), a < b (less than), a <= b (less than or equal to), NOT a, a != b (not equal to), a OR b, Comparison 영역, a XOR b, Comparator, Conditional 메뉴 및 If/Then/Else.


hamming(x) 오브젝트

시간축상의 값을 해밍 윈도우에 적용하기 위해 사용하는 오브젝트

사용법

hamming(x)는 해밍 함수의 스펙트럼 변형으로 x를 컨볼빙하는 것과 같은 방법으로 x에 있는 값을 필터링하기 위해 사용합니다. 이것은 입력 시퀀스의 꼬리와 주기 신호를 샘플링할 때 나타나는 끊김 현상에 의해 발생하는 일부 노이즈를 억제하는 효과가 있습니다.

입력값 x는 Array 1D여야 합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Spectrum | Spectrum

x가 스펙트럼이라면, 이것은 윈도우가 적용되기 전에 ifft(x)를 사용하여 먼저 웨이브폼으로 변환되어야 합니다. 윈도우의 출력값은 fft(x)를 사용하여 스펙트럼으로 재 변환됩니다.

사용예

hamming([1, 1, 1, 1, 1, 1, 1, 1])은
[0.115, 0.364, 0.716, 0.965, 0.965, 0.716, 0.364, 0.115]를 출력합니다.

주의사항

해밍 함수는 시간영역에서 표시됩니다.

0.54-0.46*cos(2*PI*(n+0.5)/N)

여기서 n은 어레이에 있는 위치(인덱스)이고, N은 어레이의 사이즈입니다. 출력값은 x와 동일한 타입의 어레이가 되고 x와 동일한 매핑을 가집니다.(어떤 값이든)

사이드로브 레벨과 coherent 게인에 대한 내용은 다음 서적을 참조하십시오: Ziemer, Tranter, and Fannin, Signals and Systems, Macmillan Publishing, New York, NY, 1983. ISBN #0-02-431650-4.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Signal Processing
Member: hamming

관련정보

bartlet(x), blackman(x), convolve(a,b), fft(x), hanning(x), ifft(x) 및 rect(x).


hanning(x) 오브젝트

시간축상의 값을 해닝(Hanning) 윈도우에 적용하기 위해 사용하는 오브젝트

사용법

hanning(x)는 해닝 함수의 스펙트럼 변형으로 x를 컨볼빙하는 것과 같은 방법으로 x에 있는 값을 필터링하기 위해 사용합니다. 이것은 입력 시퀀스의 꼬리와 주기 신호를 샘플링할 때 나타나는 끊김 현상에 의해 발생하는 일부 노이즈를 억제하는 효과가 있습니다.

입력값 x는 Array 1D여야 합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Spectrum | Spectrum

x가 스펙트럼이라면, 이것은 윈도우가 적용되기 전에 ifft(x)를 사용하여 먼저 웨이브폼으로 변환되어야 합니다. 윈도우의 출력값은 fft(x)를 사용하여 스펙트럼으로 재 변환됩니다.

사용예

hanning([1, 1, 1, 1, 1, 1, 1, 1])는
[0.038, 0.309, 0.691, 0.962, 0.962, 0.691, 0.309, 0.038]를 출력합니다.

주의사항

Hanning 함수는 시간영역에서 표시됩니다.

0.5*(1-cos(2*PI*(n+0.5)/N))

여기서 n은 어레이에 있는 위치(인덱스)이고, N은 어레이의 사이즈입니다. 출력값은 x와 동일한 타입의 어레이가 되고 x와 동일한 매핑을 가집니다.(어떤 값이든)

사이드로브 레벨과 코헤런트 게인에 대한 내용은 다음 서적을 참조하십시오: Ziemer, Tranter, and Fannin, Signals and Systems, Macmillan Publishing, New York, NY, 1983. ISBN #0-02-431650-4.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Signal Processing
Member: hanning

관련정보

bartlet(x), blackman(x), convolve(a,b), fft(x), hamming(x), ifft(x) 및 rect(x).


help(topic,filename) 오브젝트

사용자가 지정하는 도움말을 연결할 수 있는 VEE의 system information에서 제공하는 Built-in Functions의 한 부분.

사용법

help 오브젝트를 사용하여 사용자가 지정하는 도움말 파일을 연결할 수 있습니다. 문법은 다음과 같습니다:

help(topic,filename)

topic - 연결하고자 하는 도움말의 이름.

filename - 도움말 내용을 포함하고 있는 파일이름.

VEE 프로그램을 시작하면 이 오브젝트가 실행되고, help 시스템은 지정하는 도움말과 연관된 파일이름을 엽니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: System Information
Member: help

관련정보

installDir()


hidePanel() 오브젝트

showPanel()에 의해 디스플레이 되었던 UserFunction 패널을 숨깁니다.

사용법

hidePanel()은 showPanel()에 의해 디스플레이 된 UserFunction 패널의 표시를 중지하기 위해 사용합니다.

오픈뷰 항목

텍스트 hidePanel()을 사용해야 하며, 괄호 안에 다음의 파라미터를 입력합니다:

UserFunction의 이름. 이름 주위에 인용부호(“ ”)를 사용해야 하며, 꼭 필요한 파라미터 입니다.

사용자는 UserFunction 이름을 설정하기 위하여 hidePanel() 오브젝트에 데이터 입력터미날을 추가할 수 있으며, 반드시 "UFname"을 입력터미날의 이름으로 변경해야 합니다.

주의사항

hidePanel() 오브젝트는 입력 없이 초기화 되고, hidePanel("UFname") 방정식을 포함하는 Formula 오브젝트입니다. 어떤 다른 Formula 오브젝트에 hidePanel()(관련된 파라미터와 함께)을 입력할 수도 있습니다.

컨트롤핀을 통해서 전체의 hidePanel()방정식을 입력할 수도 있습니다.

프로그램이 실행을 중지하면, 모든 패널은 숨겨집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Panel
Member: hidePanel

관련정보

Call, lockPosition(),
 showPanel(), panelPosition(),
 panelSize(), unlockPosition()
 및 UserFunction.


hmsToHour (h,m,s) 오브젝트

h, m, 및 s 파라미터의 값을 시간으로 변환한 값을 출력하는 오브젝트

사용법

hmsToHour(h,m,s)는 시간, 분 및 초의 3가지 값을 시간으로 변환하기 위하여 사용합니다. h, m, 및 s 파라미터는 어떤 형태의 데이터도 입력할 수 있습니다. 하나의 컨테이너가 어레이라면, 다른 컨테이너는 스칼라이든지 동일한 사이즈와 형태를 가진 어레이여야 합니다. 출력되는 컨테이너는 연산되는 숫자와 동일한 매핑을 가집니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

hmsToHour(1, [0, 12, 60], 36)는 [1.01, 1.21, 2.01]를 출력합니다.

주의사항

어떤 입력 파라미터가 매핑되어 있으면, 매핑은 동일해야 합니다. 출력 컨테이너는 입력 컨테이너의 매핑을 유지합니다. 단 하나의 입력 파라미터가 매핑되어 있다면, 출력 컨테이너는 그 매핑을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Time & Date
Member: hmsToHour

관련정보

dmyToDate (d,m,y), hmsToSec (h,m,s), mday(aDate), month(aDate), now(), Time & Date, wday(aDate) 및 year(aDate).


hmsToSec (h,m,s) 오브젝트

h, m, 및 s 파라미터의 값을 초(second)로 변환한 값을 출력하는 오브젝트

사용법

hmsToSec(h,m,s)는 시간, 분 및 초의 3가지 값을 초로 변환하기 위하여 사용합니다. h, m, 및 s 파라미터는 어떤 형태의 데이터도 입력할 수 있습니다. 하나의 컨테이너가 어레이라면, 다른 컨테이너는 스칼라이든지 동일한 사이즈와 형태를 가진 어레이여야 합니다. 출력되는 컨테이너는 연산되는 숫자와 동일한 매핑을 가집니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

hmsToSec(1,[2, 4, 6],3)는 [3723, 3843, 3963]를 출력합니다.

주의사항

어떤 입력 파라미터가 매핑되어 있으면, 매핑은 동일해야 합니다. 출력 컨테이너는 입력 컨테이너의 매핑을 유지합니다. 단 하나의 입력 파라미터가 매핑되어 있다면, 출력 컨테이너는 그 매핑을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Time & Date
Member: hmsToSec

관련정보

dmyToDate (d,m,y), hmsToHour (h,m,s), mday(aDate), month(aDate), now(), Time & Date, wday(aDate) 및 year(aDate).


Hyper Bessel

Bessel을 참조하십시오.


Hyper Trig

Trig 영역을 참조하십시오.


i0(x) 오브젝트

0 차 1종의 x의 수정된(하이퍼볼릭) 베셀함수를 연산하기 위해 사용하는 오브젝트

사용법

i0(x)는 0 차 1종의 입력값 x의 수정된(하이퍼볼릭) 베셀함수를 찾기 위하여 사용합니다. x는 어떤 사이즈와 형태를 가진 데이터도 입력할 수 있습니다. Coord 타입의 입력에서는, 종속변수에서 연산이 실행됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

i0(1)는 1.26606587775200을 출력합니다.

주의사항

연산되는 숫자의 매핑은 무시되고, 출력 컨테이너는 입력과 동일한 매핑을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: i0

관련정보

i1(x), k0(x) 및 k1(x).


i1(x) 오브젝트

1차 1종의 x의 수정된(하이퍼볼릭) 베셀함수를 연산하기 위해 사용하는 오브젝트

사용법

i1(x)는 1차 1종의 x의 수정된(하이퍼볼릭) 베셀함수를 찾기 위하여 사용합니다. x는 어떤 사이즈와 형태를 가진 데이터도 입력할 수 있습니다. Coord 타입의 입력에서는, 종속변수에서 연산이 실행됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

i1(1)은 0.565159103992485을 출력합니다.

주의사항

연산되는 숫자의 매핑은 무시되고, 출력 컨테이너는 입력과 동일한 매핑을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: i1

관련정보

i0(x), k0(x) 및 k1(x).


identity(x) 오브젝트

단위행렬(identity matrix)을 출력하기 위해 사용하는 오브젝트

사용법

identity(x)는 입력된 정방형 행렬과 동일한 사이즈를 가진 단위행렬을 출력하는데 사용합니다. 입력값 x는 반드시 정방형 행렬이어야 합니다. 정방형 행렬은 열과 동일한 행을 가집니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Complex | Complex
PComplex | PComplex

사용예

x가 정방형 행렬 [ [1, 2], [3, 4] ]인 경우, identity(x)는
[ [1, 0], [0, 1] ]를 출력합니다.

x가 복소수 정방형 행렬 [ [(1,1), (2,2)], [(3,3), (4,4)] ]인 경우, identity(x)는 [ [(1,0), (0,0)], [(0,0), (1,0)] ]을 출력합니다.

주의사항

연산되는 숫자의 매핑은 무시되고, 출력 컨테이너는 입력과 동일한 매핑을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Matrix
Member: identity

관련정보

det(x), inverse(x) 및 transpose(x).


ifft(x) 오브젝트

입력 데이터에서 역푸리에 변환(Inverse Discrete Fourier Transform)을 연산하는 오브젝트

사용법

ifft(x)는 x의 입력값에 대해 역푸리에 변환을 연산하기 위해 사용합니다. 입력값 x는 대칭의 Complex, PComplex, 또는 스펙트럼 시퀀스의 2분의 1 이어야 합니다.

입력가능한 종류 | 출력 종류
Complex | Real64
PComplex | Real64
Spectrum | Waveform

출력어레이의 사이즈는 입력되는 어레이에 따라서 결정됩니다. fft(x)에서 설명한 바와 같이, 256과 257 입력포인트에 FFT를 실행하면 129 포인트의 출력어레이를 생성합니다. 각 어레이에 있는 정보는 포인트 수에 따라서 조금씩 다릅니다. 129포인트의 어레이에 ifft(x)를 실행하면, 원래의 256 포인트 및 257 포인트 어레이가 생성됩니다. Spectrum이 아닌 입력에 대해서 ifft(x)를 실행하면, 매핑되지 않은 Real 어레이가 출력됩니다. Spectrum을 ifft(x)의 입력으로 사용하기 위해서는, 선형매핑(로그가 아닌)이어야 하며, Fmin은 0이어야 합니다. 출력은 최소 시간 0부터 최대 시간 N/(Fmax-Fmin)으로 매핑이 됩니다. 여기서 N은 입력 어레이의 싸이즈이고, Fmin 과Fmax은 입력 Spectrum의 매핑입니다. 또한, 출력은 정규화되지 않습니다.

x의 값은 정규화 되지 않은 데이터임을 전제합니다.

사용예

ifft([(3.5,0), (-1,2.414), (-1,1), (-1,0.414), (-1,0)])는
[0, 1, 2, 3, 4, 5, 6, 7]을 출력합니다.

주의사항

1. 끝자르기(Truncation)와 주기성; 비연속 푸리에 변환을 사용하는데 있어서 waveform h(t)은 주기신호라는 것이 기본적으로 전제되어야 합니다. 아닌 경우에는 waveform은 끝자르기가 되야 하고 주기함수로 표시되어야 합니다. 밴드 제한 주기 함수 h(t)에서는, waveform은 반드시 주기에 있는 복수의 정수에서 끝자르기가 되어야 합니다; 다른 경우, 비연속 및 연속 푸리에 변환의 결과는 사이드로브, 주파수 누락 또는 급격한 비연속이 나타날 수 있는 것에서 상당한 차이가 있습니다. 이들의 차이는 윈도우를 사용하면 줄일 수 있습니다. waveform이 밴드 제한적이지 않을 경우에는, 끝자르기 간격을 조정(증가)해야 하고 시간영역에서의 끝자르기 에러를 줄이기 위해 윈도우[0,L]을 사용합니다. L은 웨이브폼의 주기입니다.

2. 앨리어싱(Aliasing): 앨리어싱(주파수 겹침)는 샘플링 간격 T가 너무 클 때 발생합니다. 이것은 샘플링 비율이 Nyquist sampling rate에 근접할 경우에는 비연속 푸리에 변환의 성능을 저하시킬 수 있습니다. waveform이 비주기적이고 밴드 제한적이지 않을 경우에는, 끝자르기 에러와 앨리어싱을 줄이기 위하여 끝자르기 간격 [0,L]을 늘이고, 샘플링 간격 T를 줄입니다.

ifft 에 대한 자세한 내용은 다음 서적을 참조하십시오: E. Oran Brigham, The Fast Fourier Transform and Its Applications, Second Edition, Prentice-Hall, Inc., Englewood Cliffs, NJ, 1988. ISBN #0-13-307505-2.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Signal Processing
Member: ifft

관련정보

fft(x).


im(x) 오브젝트

복소수 x의 허수 부분을 출력하는 오브젝트

사용법

im(x)는 복소수 x의 허수 부분을 추출하기 위해 사용합니다. x는 어떤 형태를 가진 데이터도 입력할 수 있습니다. (PComplex는 먼저 Complex로 변환됩니다.)

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8, 0(zero)
Int16 | Int16, 0(zero)
Int32 | Int32, 0(zero)
Int64 | Int64, 0 (zero)
Real32 | Real32, 0(zero)
Real64 | Real64,0(zero)
Coord | Coord, 0(zero)
Waveform | Waveform, 0(zero)
Complex | Real64, 허수 부분
PComplex | Real64, 허수 부분
Spectrum | Real64, 허수 부분

사용예

im( (1,2) )는 2를 출력합니다.

im( (1,@90) )는, 각도 단위로 1을 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Complex Parts
Member: im

관련정보

conj(x), j(x), mag(x), phase(x), re(x), Real Parts 영역, Build Complex 및 UnBuild Complex.


inDaylightSavings() 오브젝트

컴퓨터의 시간이 하절기 시간을 사용하는지를 나타내는 오브젝트.

사용법

inDaylightSavings()는 컴퓨터의 시간이 하절기 시간을 사용하는지, 표준시간을 사용하는지를 나타냅니다. 현재의 컴퓨터 시간이 표준시간을 사용하는 경우에는 0을 출력합니다. 현재의 컴퓨터가 하절기 시간을 사용하는 경우에는 0이 아닌 값을 출력합니다.

주의사항

inDaylightSavings() 오브젝트는 입력핀이 없으며, inDaylightSavings() 함수를 실행되는 Formula 오브젝트입니다. Formula 오브젝트나 다른 오브젝트의 표현식에 inDaylightSavings()을 입력할 수도 있습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Time & Date
Member: inDaylightSavings

관련정보

now, Formula.


init(x,val) 오브젝트

어레이를 지정한 값으로 초기화하기 위해 사용하는 오브젝트

사용법

init(x,val)는 입력 어레이 x를 val의 값으로 초기화하는데 사용합니다. x에는 어떤 사이즈와 형태를 가진 데이터도 입력할 수 있습니다. x로 입력되는 모든 데이터의 타입에 대해서는 동일한 출력 타입이 리턴됩니다. 두번째 val 파리미터는 동일한 타입이든지, 입력값 x와 동일한 타입으로 변환될 수 있어야 합니다.

입력값 x가 어레이라면, val 파라미터는 스칼라 값 또는 어레이가 될 수 있습니다. val 값이 어레이라면, 이것은 입력값 x와 동일한 차원수와 사이즈를 가져야 합니다. 즉, x가 Array 1D라면 val은 스칼라이든지 Array 1D가 될 수 있습니다. Record의 경우에는, x와 val은 반드시 매칭되어야 합니다.

사용예

init(a,5)는 입력 어레이를 5로 초기화합니다.

init(a,[1, 2, 3])는 3개의 앨리먼트로 구성된 입력 [1, 2, 3]로 초기화합니다.

주의사항

초기값은 입력 어레이와 동일한 타입이거나, 동일한 타입으로 변환될 수 있어야 합니다. 즉, 복소수를 실수로 변환할 수 없기 때문에 실수 어레이를 복소수 값으로 초기화 할 수는 없습니다.

출력 컨테이너에 있는 매핑은 입력값 val과 동일합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Array
Member: init

관련정보

ramp (numElem, from,thru), randomize (x,low,high) 및 Allocate Array 메뉴항목.


installDir() 오브젝트

Agilent VEE가 설치된 디렉토리 경로를 출력하는 오브젝트

사용법

installDir()는 Agilent VEE가 컴퓨터의 어느 디렉토리에 설치되어 있는지를 검색하는데 사용합니다. 경로는 PC의 레지스트리에서 검색됩니다.

주의사항

설치 디렉토리와 다른 디렉토리에서 시작하도록 지정하기 위해서는 도스 명령어 옵션 -d <dirname>을 사용할 수 있습니다. –d 옵션을 사용하는 경우에는, installDir()는 도스 명령어에서 지정한 시작 디렉토리를 출력합니다.

installDir() 오브젝트는 입력핀이 없이 installDir() 방정식으로 초기화된 Formula 오브젝트입니다. 또한, Formula 오브젝트나 표현식에 installDir()을 직접 입력할 수도 있습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: System Information
Member: installDir

관련정보

errorInfo(), getEnv(envStr),
 getHostname(), whichVersion()
 및 commandLine().


integral(x) 오브젝트

심슨의 1/3법칙을 이용하여 입력된 값들의 적분을 연산하는 오브젝트

사용법

integral(x)는 차순으로 정리되고 균등 간격을 가진 값들(x)의 적분 근사치를 연산하는데 사용합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64 (매핑된 경우에는 동일한 매핑)
Int16 | Real64 (매핑된 경우에는 동일한 매핑)
Int32 | Real64 (매핑된 경우에는 동일한 매핑)
Int32 | Real64 (매핑된 경우에는 동일한 매핑)
Real32 | Real64 (매핑된 경우에는 동일한 매핑)
Real64 | Real64 (매핑된 경우에는 동일한 매핑)
Coord | Coord
Waveform | Waveform

사용예

integral([ 0, 1, 2, 3, 3, 2, 1, 0 ])는
[ 0, 0.5, 2, 4.5, 7.667, 10.17, 11.67, 12.17 ]를 출력합니다.

주의사항

integral(x)함수는 간단한 숫자들의 1차원 어레이 또는 균등간격 차수 데이터로 표현되는 2차원(2개의 필드) 좌표 리스트에서 사용할 수 있습니다. 매핑된 어레이에서는 출력되는 어레이의 매핑은 x의 매핑과 동일합니다. 좌표 리스트들에서는 각 좌표의 독립변수(첫번째 필드)는 x의 대응하는 값들과 동일해야 합니다.

매핑이 안된 어레이에서는, 데이터가 균등간격을 가지고 차순으로 정리된 것을 가정하고 포인트 사이의 간격 dx가 1의 값을 갖는 것을 가정합니다. 매핑된 어레이에서는, (Xmax-Xmin)/N와 동일한 간격값 dx와 자동으로 스케일이 적용된 상태에서 연산이 실행됩니다. 좌표 리스트에서는, 독립변수(첫번째 필드)값이 균등간격인지 차순으로 정리되었는지를 먼저 체크하고, dx값으로 적용했던 간격을 사용하여 종속변수(2번째 필드)값에서 연산이 실행됩니다.

매핑이 안된 어레이를 사용했을 때, 포인트 사이의 간격이 dx값을 가진 경우에는, dx값을 사용한 integral(x)의 복수 결과들에 의해서 정확한 연산값이 얻어집니다.

노이즈 데이터를 표현하는 값인 경우에는, 먼저 데이터를 필터링하고 smoothing하여 integral(x)의 결과값이 향상될 수 있습니다. Smoothing은 원래의 값에 있는 많은 양의 노이즈를 제거합니다. polySmooth(x) 함수 및 관련되는 smoothing 함수를 위한 예제들을 참조하십시오.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Calculus
Member: integral

관련정보

defIntegral (x,a,b).


intPart(x) 오브젝트

x의 정수 부분을 출력하는 오브젝트

사용법

intPart(x)는 입력되는 컨테이너에서 정수 부분을 추출하는데 사용합니다. x에는 어떤 형태의 데이터도 입력할 수 있습니다. intPart(x)함수는 데이터의 정수 부분을 출력합니다. 데이터가 0보다 작은 경우에는 ceil(x)을 출력합니다; 다른 경우에는 floor(x)를 출력합니다. 출력값은 x와 동일한 매핑을 가집니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

intPart([23.0, 23.1, 23.9, 23.5,(-23.5)])는
[23, 23, 23, 23, -23]를 출력합니다.

주의사항

매핑은 출력터미날에 같은 형태로 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Real Parts
Member: intPart

관련정보

abs(x), ceil(x), Complex Parts 영역, floor(x), fracPart(x), Real Parts 영역 및 round(x).


intToChar(a) 오브젝트

A입력 숫자를 ASCII 문자로 변환하는 오브젝트

사용법

intToChar(a)는 입력된 숫자를 ASCII 문자로 변환하는데 사용합니다. 먼저 32 비트 정수로 변환하고, 이 정수를 문자로 변환합니다.

주의사항

문자로 변환할 수 있는 값의 범위는 0부터 255까지 입니다. 입력된 32-비트 정수의 하위 1 바이트만을 변환하여, 범위를 벗어나는 입력값을 조정합니다. 상위 3 바이트는 무시됩니다.

VEE는 C와 C++과 동일한 TEXT(String)을 사용합니다. 따라서 intToChar(0)는 NUL 또는 비어있는 스트링과 동일합니다. NUL은 스트링 종료기호입니다. 예를 들어, 스트링 123NUL456은 스트링 123을 출력하고, 남아있는 스트링 456은 무시됩니다.

사용예

intToChar(65)는 A를 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: String
Member: IntToChar

관련정보

charToInt(a) 또는 String.


inverse(x) 오브젝트

정방형 행렬의 역수를 연산하는 오브젝트

사용법

inverse(x)는 정방형 행렬의 역수를 연산하는데 사용합니다. x의 입력값은 정방형 행렬 (열과 동일한 행을 가진)형태를 가져야 합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Complex | Complex
PComplex | PComplex

사용예

x가 정방형 행렬[ [1, 2], [3, 4] ]이면, inverse(x)은
[ [-2, 1], [1.5, -0.5] ]를 출력합니다.

주의사항

연산되는 숫자에 있는 매핑은 무시되고, 출력 컨테이너는 입력과 동일한 매핑을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Matrix
Member: inverse

관련정보

det(x), identity(x) 및 transpose(x).


isVariant(x) 오브젝트

“x”가 ActiveX variant에서 생성되었는지 판단하기 위해 쿼리합니다.

사용법

"x"가 어레이라면, 이 함수는 각 어레이 앨리먼트가 아니라 어레이 컨테이너에 대하여 실행됩니다. 예를 들어, isVariant(A)는 정상적으로 실행되나, isVariant(A[0])는 사용할 수 없습니다.

ActiveX 데이터는 Variant 타입으로 선언될 수 있고, 지정한 타입의 데이터로 할당됩니다. isVariant 함수는 변수가 Variant로 선언되었는지 또는 아닌지를 판단합니다. typeName 함수는 Variant로 할당된 현재의 데이터 타입을 판단합니다.

사용예

someMethod (ByRef x);

isVar = isVariant (x);

isVar 변수는 “x” 가 Variant 타입인지 아닌지를 나타내는 0 또는 0이 아닌 값을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: isVariant

관련정보

isVariantBool(x), isVariantCurrency(x), isVariantDate(x), isVariantEmpty(x), isVariantError(x), isVariantNull(x), typeName(x).


isVariantBool(x) 오브젝트

“x”가 Boolean 타입의 ActiveX variant에서 생성되었는지 판단하기 위해 쿼리합니다.

사용법

ActiveX Automation Boolean 타입의 데이터(VT_BOOL)는 컨테이너가 VT_BOOL 타입이라는 “힌트”와 함께 Int16 컨테이너를 VEE로 리턴합니다. 컨테이너는 Int16 타입인지 또는 Bolean 타입인지를 판단하기 위한 쿼리를 받습니다.

"x"가 어레이라면, 이 함수는 각 어레이 앨리먼트가 아니라 어레이 컨테이너에 대하여 실행됩니다. 예를 들어, isVariantBool(A)는 정상적으로 실행되나, isVariantBool(A[0])는 사용할 수 없습니다. 출력값은 Int16 타입으로, 거짓의 경우에는 0을 참인 경우에는 0이 아닌 값을 출력합니다.

사용예

someMethod (ByRef x);

isBool = isVariantBool (x);

isBool 변수는 “x” 가 VT_BOOL 타입인지 아닌지를 나타내는 0 또는 0이 아닌 값을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: isVariantBool

관련정보

isVariant(x), isVariantCurrency(x), isVariantDate(x), isVariantEmpty(x), isVariantError(x), isVariantNull(x), typeName(x).


isVariantCurrency(x) 오브젝트

“x”가 Currency 타입의 ActiveX variant에서 생성되었는지 판단하기 위해 쿼리합니다.

사용법

ActiveX Automation Currency 타입의 데이터(VT_CY)는 컨테이너가 VT_CY 타입이라는 “힌트”와 함께 Real64 컨테이너를 VEE로 리턴합니다. 컨테이너는 Real64 타입인지 또는 Currency 타입인지를 판단하기 위한 쿼리를 받습니다.

"x"가 어레이라면, 이 함수는 각 어레이 앨리먼트가 아니라 어레이 컨테이너에 대하여 실행됩니다. 예를 들어, isVariantCurrency(A) 는 정상적으로 실행되나, isVariantCurrency(A[0])는 사용할 수 없습니다. 출력값은 Int32 타입으로, 거짓의 경우에는 0을 참인 경우에는 0이 아닌 값을 출력합니다.

사용예

someMethod (ByRef x);

isCurrency = isVariantCurrency (x);

isCurrency 변수는 “x” 가 VT_CY 타입인지 아닌지를 나타내는 0 또는 0이 아닌 값을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: isVariantCurrency

관련정보

isVariant(x), isVariantBool(x), isVariantDate(x), isVariantEmpty(x), isVariantError(x), isVariantNull(x), typeName(x).


isVariantDate(x) 오브젝트

“x”가 Date 타입의 ActiveX variant에서 생성되었는지 판단하기 위해 쿼리합니다.

사용법

ActiveX Automation Date 타입의 데이터(VT_DATE)는 컨테이너가 VT_DATE 타입이라는 “힌트”와 함께 Real64 컨테이너를 VEE로 리턴합니다. 컨테이너는 Real64 타입인지 또는 Date 타입인지를 판단하기 위한 쿼리를 받습니다.

"x"가 어레이라면, 이 함수는 각 어레이 앨리먼트가 아니라 어레이 컨테이너에 대하여 실행됩니다. 예를 들어, isVariantDate(A) 는 정상적으로 실행되나, isVariantDate(A[0]) 는 사용할 수 없습니다. 출력값은 Int32 타입으로, 거짓의 경우에는 0을 참인 경우에는 0이 아닌 값을 출력합니다.

사용예

someMethod (ByRef x);

isDate = isVariantDate (x);

isDate 변수는 “x” 가 VT_DATE 타입인지 아닌지를 나타내는 0 또는 0이 아닌 값을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: isVariantDate

관련정보

isVariant(x), isVariantBool(x), isVariantCurrency(x), isVariantEmpty(x), isVariantError(x), isVariantNull(x), typeName(x).


isVariantEmpty(x) 오브젝트

“x”가 비어있는 ActiveX variant에서 생성되었는지 판단하기 위해 쿼리합니다.

사용법

isVariantEmpty(x)는 리턴된 Variant(빈 스트링을 가진 Variant 대신)가 비어있는지를 판단하기 위해 사용합니다.

"x"가 어레이라면, 이 함수는 각 어레이 앨리먼트가 아니라 어레이 컨테이너에서 실행됩니다. 예를 들어, isVariantEmpty(A)는 정상적으로 실행되나, isVariantEmpty(A[0])는 사용할 수 없습니다. 출력값은 Int32 타입으로, 거짓의 경우에는 0을 참인 경우에는 0이 아닌 값을 출력합니다.

사용예

someMethod (x);

isEmpty = isVariantEmpty (x);

isEmpty 변수는 “x” 가 비어있는 Variant 인지 아닌지를 나타내는 0 또는 0이 아닌 값을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: isVariantEmpty

관련정보

isVariant(x), isVariantBool(x), isVariantCurrency(x), isVariantDate(x), isVariantError(x), isVariantNull(x), typeName(x).


isVariantError(x) 오브젝트

“x”가 Error 타입의 ActiveX variant에서 생성되었는지 판단하기 위해 쿼리합니다.

사용법

ActiveX Automation Error 타입의 데이터(VT_ERROR)는 컨테이너가 VT_ERROR 타입이라는 “힌트”와 함께 Int32 컨테이너를 VEE로 리턴합니다. 컨테이너는 Int32 타입인지 또는 Error 타입인지를 판단하기 위한 쿼리를 받을 수 있습니다. 값은 에러번호(scode)를 나타냅니다.

"x"가 어레이라면, 이 함수는 각 어레이 앨리먼트가 아니라 어레이 컨테이너에서 실행됩니다. 예를 들어, isVariantError(A)는 정상적으로 실행되나, isVariantError(A[0]) 는 사용할 수 없습니다. 출력값은 Int32 타입으로, 거짓의 경우에는 0을 참인 경우에는 0이 아닌 값을 출력합니다.

사용예

someMethod (x);

isError = isVariantError (x);

isError 변수는 “x” 가 VT_ERROR 타입인지 아닌지를 나타내는 0 또는 0이 아닌 값을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: isVariantError

관련정보

isVariant(x), isVariantBool(x), isVariantCurrency(x), isVariantDate(x), isVariantEmpty(x), isVariantNull(x), typeName(x).


isVariantNull(x) 오브젝트

“x”가 Null을 가진 ActiveX variant에서 생성되었는지 판단하기 위해 쿼리합니다.

사용법

isVariantNull(x)는 리턴된 Variant가 VT_NULL(Int32 값 0 대신에)을 가지고 있는지를 판단하기 위해 사용합니다.

"x"가 어레이라면, 이 함수는 각 어레이 앨리먼트가 아니라 어레이 컨테이너에 대하여 실행됩니다. 예를 들어, isVariantNull(A)는 정상적으로 실행되나, isVariantNull(A[0])는 사용할 수 없습니다. 출력값은 Int32 타입으로, 거짓의 경우에는 0을 참인 경우에는 0이 아닌 값을 출력합니다.

사용예

someMethod (x);

isNull = isVariantNull (x);

isNull 변수는 “x” 가 VT_NULL 타입인지 아닌지를 나타내는 0 또는 0이 아닌 값을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: isVariantNull

관련정보

isVariant(x), isVariantBool(x), isVariantCurrency(x), isVariantDate(x), isVariantEmpty(x), isVariantError(x), typeName(x).


j(x) 오브젝트

허수부분으로 입력값 x를 가진 복소수를 출력하는 오브젝트

사용법

j(x)는 허수부분으로 x를 가지며 실수부분으로는 0를 가진, 입력값 x와 동일한 형태의 복소수를 생성하는데 사용합니다. 동일한 형태가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Complex
Int16 | Complex
Int32 | Complex
Int64 | Complex
Real32 | Complex
Real64 | Complex
Waveform | Complex

사용예

j(5)은 복소수(0,5)을 출력합니다.

주의사항

매핑은 출력값에 유지됩니다. 실수부분으로 x를 가진 복소수를 출력하기 위해서는, 실수를 복소수로 상향 변환하기 위하여 입력터미날에서 타입을 상향 변환합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Complex Parts
Member: j

관련정보

Complex Parts 영역, conj(x), im(x), mag(x), phase(x), re(x), Real Parts 영역, Build Complex 및 UnBuild Complex.


j0(x) 오브젝트

입력값 x에 대한 0차의 1종 베셀 함수를 연산하는 오브젝트

사용법

j0(x)는 입력값 x에 대한 0차의 1종 베셀 함수를 추출하기 위해 사용합니다. x에는 어떤 사이즈와 형태를 가진 숫자도 입력할 수 있습니다. Coord 타입의 입력에 대해서는 종속변수에서 연산이 이루어 집니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

j0(10)는 -0.245935764451348을 출력합니다.

주의사항

연산되는 숫자에 있는 매핑은 무시되고, 출력 컨테이너는 입력값과 동일한 매핑을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: j0

관련정보

Ai(x), Bi(x), j1(x), jn(x,n), y0(x), y1(x) 및 yn(x,n).


j1(x) 오브젝트

입력값 x에 대한 1차의 1종 베셀 함수를 연산하는 오브젝트

사용법

j1(x)는 입력값 x에 대한 1차의 1종 베셀 함수를 추출하기 위해 사용합니다. x에는 어떤 사이즈와 형태를 가진 숫자도 입력할 수 있습니다. Coord 타입의 입력에 대해서는 종속변수에서 연산이 이루어 집니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

j1(1)는 0.440050585744933을 출력합니다.

주의사항

연산되는 숫자에 있는 매핑은 무시되고, 출력 컨테이너는 입력값과 동일한 매핑을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: j1

관련정보

Ai(x), Bi(x), j0(x), jn(x,n), y0(x), y1(x) 및 yn(x,n).


jn(x,n) 오브젝트

입력값 x에 대한 n차의 1종 베셀 함수를 연산하는 오브젝트.

사용법

j1(x)는 입력값 x에 대한 n차의 1종 베셀 함수를 추출하기 위해 사용합니다. x에는 어떤 사이즈와 형태를 가진 숫자도 입력할 수 있습니다. Coord 타입의 입력에 대해서는 종속변수에서 연산이 이루어 집니다.

n 파라미터는 Int32 타입이거나 Int32로 변환할 수 있어야 합니다. 이것은 스칼라 형태 또는 x와 동일한 형태를 가져야 합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

jn(1,2)은 0.114903484931900을 출력합니다.

주의사항

두개의 입력이 매핑된 경우에는, 매핑은 동일해야 합니다. 입력값 중의 하나라도 매핑된 경우에는 출력값은 입력과 동일한 매핑을 가집니다. 두개의 입력값들이 매핑되지 않은 경우에는, 출력은 매핑되지 않습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: jn

관련정보

Ai(x), Bi(x), j0(x) , j1(x), y0(x), y1(x) 및 yn(x,n).


k0(x) 오브젝트

입력값 x에 대한 0차의 2종 수정(하이퍼볼릭) 베셀 함수를 연산하는 오브젝트

사용법

k0(x)는 입력값 x에 대한 0차의 2종 수정(하이퍼볼릭) 베셀 함수를 추출하기 위해 사용합니다. x에는 어떤 사이즈와 형태를 가진 숫자도 입력할 수 있습니다. Coord 타입의 입력에 대해서는 종속변수에서 연산이 이루어 집니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

k0(1)는 0.421024438240708을 출력합니다.

주의사항

연산되는 숫자에 있는 매핑은 무시되고, 출력 컨테이너는 입력값과 동일한 매핑을 가집니다.

x 인수는 양수가 되어야 합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: k0

관련정보

i0(x), i1(x) 및 k1(x).


k1(x) 오브젝트

입력값 x에 대한 1차의 2종 수정(하이퍼볼릭) 베셀 함수를 연산하는 오브젝트

사용법

k1(x)는 입력값 x에 대한 1차의 2종 수정(하이퍼볼릭) 베셀 함수를 추출하기 위해 사용합니다. x에는 어떤 사이즈와 형태를 가진 숫자도 입력할 수 있습니다. Coord 타입의 입력에 대해서는 종속변수에서 연산이 이루어 집니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

k1(1)는 0.601907230197234을 출력합니다.

주의사항

연산되는 숫자에 있는 매핑은 무시되고, 출력 컨테이너는 입력값과 동일한 매핑을 가집니다.

x 인수는 양수가 되어야 합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: k1

관련정보

i0(x), i1(x) 및 k0(x).


a < b (less than) 오브젝트

두개의 연산 숫자에서 ‘하나의 숫자가 다른 숫자보다 적다’라는 연산을 수행하는 오브젝트

사용법

a < b는 하나의 컨테이너의 값이 다른 컨테이너의 값보다 작은가를 연산하는데 사용합니다. 2개의 컨테이너는 어떤 형태의 데이터도 사용할 수 있습니다. 하나의 컨테이너가 어레이라면, 다른 컨테이너는 스칼라이든지, 동일한 사이즈와 형태를 가진 어레이여야 합니다. 출력값은 0 또는 1의 값을 가진 Int32 스칼라입니다. 첫번째 연산 숫자가 2번째 연산 숫자보다 작으면, 출력값은 1입니다; 아닌 경우는 0입니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Int32
Int16 | Int32
Int32 | Int32
Real32 | Int32
Real64 | Int32
Coord | Int32
Waveform | Int32
Text | Int32
Enum | Int32

2개의 연산 숫자가 Coord 타입이라면, 연산이 실행되기 전까지는 숫자의 독립변수가 동일해야 합니다; 아닌 경우에는 에러가 발생합니다. Enums은 비교를 위해 텍스트로 변환됩니다. 텍스트는 ASCII 사전순서를 사용하여 비교합니다.

2개의 어레이는 각각 비교되고, 각 앨리먼트의 쌍이 연산을 위한 상관 연산자를 만족해야 1을 출력합니다.

사용예

스칼라와 어레이: 3.0 < [1, 3, 9]는 0을 출력합니다.

어레이와 스칼라: [1, 2, 3] < 4는 1을 출력합니다.

2개의 어레이: [1, 2, 3] < [2, 3, 5]는 1을 출력합니다.

2개의 어레이: [1, 4, 3] < [2, 3, 5]는 0을 출력합니다.

2개의 Coord 스칼라: coord (1,3) < coord(1,5)는 1을 출력합니다.

2개의 Coord 스칼라: coord(1,3) < coord(2,5)는 Values for independent variables must match를 출력합니다.

2개의 Text 스칼라: "too" < "zoo"는 0을 출력합니다.

주의사항

컨테이너가 매핑(예를 들어, Waveform, Coord, 또는 다른 타입으로 매핑된 어레이) 되어 있으면, 다른 컨테이너는 매핑이 안되어 있든지 동일한 매핑을 가져야 합니다; 아닌 경우는 에러가 발생합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Comparison
Member: <

관련정보

a ~= b (almost equal to), a AND b, a == b (equal to) , a > b (greater than), a >= b (greater than or equal to), a <= b (less than or equal to), NOT a, a != b (not equal to), a OR b, Comparison 영역, a XOR b, Comparator, Conditional 메뉴 및 If/Then/Else.


a <= b (less than or equal to) 오브젝트

두개의 연산 숫자에서 ‘하나의 숫자가 다른 숫자보다 작거나 같다’라는 연산을 수행하는 오브젝트.

사용법

a <= b는 하나의 컨테이너의 값이 다른 컨테이너의 값보다 작거나 같은지를 연산하는데 사용합니다. 2개의 컨테이너는 어떤 형태의 데이터도 사용할 수 있습니다. 하나의 컨테이너가 어레이라면, 다른 컨테이너는 스칼라이든지, 동일한 사이즈와 형태를 가진 어레이여야 합니다. 출력값은 0 또는 1의 값을 가진 Int32 스칼라입니다. 첫번째 연산 숫자가 2번째 연산 숫자보다 작거나 같으면, 출력값은 1입니다; 아닌 경우는 0입니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Int32
Int16 | Int32
Int32 | Int32
Real32 | Int32
Real64 | Int32
Coord | Int32
Waveform | Int32
Text | Int32
Enum | Int32

2개의 연산 숫자가 Coord 타입이라면, 연산이 실행되기 전까지는 숫자의 독립변수가 동일해야 합니다; 아닌 경우에는 에러가 발생합니다. Enums은 비교를 위해 텍스트로 변환됩니다. 텍스트는 ASCII 사전순서를 사용하여 비교합니다.

2개의 어레이는 각각 비교되고, 각 앨리먼트의 쌍이 연산을 위한 상관 연산자를 만족해야 1을 출력합니다.

사용예

스칼라와 어레이: 3.0 <= [1, 3, 9]는 0을 출력합니다.

어레이와 스칼라: [1, 2, 4] <= 4는 1을 출력합니다.

2개의 어레이: [1, 2, 3] <= [2, 3, 3]는 1을 출력합니다.

2개의 어레이: [1, 4, 3] <= [2, 3, 5] 는 0을 출력합니다.

2개의 Coord 스칼라: coord(1,3) <= coord(1,5)는 0을 출력합니다.

2개의 Coord 스칼라: coord(1,3) <= coord(2,5)는 ‘Values for independent variables must match’를 출력합니다.

2개의 Text 스칼라: "too" <= "zoo" 는 0을 출력합니다.

주의사항

컨테이너가 매핑(예를 들어, Waveform, Coord, 또는 다른 타입으로 매핑된 어레이) 되어 있으면, 다른 컨테이너는 매핑이 안되어 있든지 동일한 매핑을 가져야 합니다; 아닌 경우는 에러가 발생합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Comparison
Member: <=

관련정보

a ~= b (almost equal to), a AND b, a == b (equal to), a > b (greater than), a >= b (greater than or equal to), a < b (less than), NOT a, a != b (not equal to), a OR b, Comparison 영역, a XOR b, Comparator, Conditional 메뉴 및 If/Then/Else.


선형 Regression 오브젝트

A(x,y) 데이터에 선형회귀선을 적용하기 위해 사용하는 오브젝트

사용법

선형회귀는 y = C0 + C1*x 방정식을 사용하여 데이터를 직선으로 적용하기 위하여 사용합니다. 여기서 x는 x 좌표, co 및 c1은 연산된 계수입니다. 이러한 회귀 타입은 데이터에서 최고의 직선으로 맞추는 것으로 생각해야 합니다.

선형 회귀 오브젝트는 하나의 독립변수를 가진 어레이 형태의 좌표 데이터가 입력됩니다. 즉, (x, y) 쌍. 입력 어레이가 좌표 타입이 아닌 경우에는, 입력 데이터를 좌표로 변환하려는 시도가 이루어집니다. 입력 데이터가 매핑 (Waveform, Spectrum, 또는 매핑된 어레이) 되어 있으면, 좌표로의 변환은 (x,y)쌍의 x부분을 생성하기 위한 매핑정보를 이용합니다. 입력 데이터가 매핑(예, 어레이)되어 있지 않다면, (x,y)쌍의 x부분은 무조건 어레이에 있는 위치에서 생성됩니다.

오픈뷰 항목

오픈뷰에 있는 Fit Type 항목은 회귀 타입을 linear, logarithmic, exponential, power curve 또는 polynomial regression으로 변경하기 위해 사용합니다. 항목을 클릭하면 다른 회귀타입 리스트를 디스플레이 합니다.

사용예

좌표에서의 Regression 예제를 참조하십시오.

주의사항

Regression에 있는 회귀에 대한 일반적인 내용을 참조하십시오.

오브젝트 위치

Device [image] Regression

대화상자에 있는 Fit Type 필드에서 적절한 Fit Type을 선택하십시오.

관련정보

Regression, exponential regression, logarithmic regression, meanSmooth (x,numPts), movingAvg (x,numPts), polynomial regression, polySmooth (x), power curve regression 및 Build Coord.


lockPosition() 오브젝트

디스플레이 되는 UserFunction의 패널이 움직이는 것을 방지하는 오브젝트

사용법

UserFunction 패널을 디스플레이 하기 위하여 showPanel()을 사용할 때, unlockPosition()을 사용했거나 사용자가 패널을 이동할 수 있게 하기 위하여 PopupMoveable 속성을 체크하지 않았을 경우에는 lockPosition()을 사용하여 사용자가 패널을 움직이지 못하도록 합니다.

오픈뷰

텍스트 lockPosition()를 포함해야 합니다. 괄호 안에 다음의 파라미터를 입력합니다:

"UFname" – UserFunction의 이름. 이름은 인용부호(“ ”)를 사용해야 하고 꼭 필요한 파라미터입니다.

UserFunction 이름을 설정하기 위하여 lockPosition() 오브젝트에 데이터 입력핀을 추가할 수 있습니다. 이 경우에는 반드시 "UFname"을 입력 터미날 이름으로 변경해야 합니다.

주의사항

lockPosition() 오브젝트는 입력핀이 없이 lockPosition() 방정식으로 초기화된 Formula 오브젝트입니다. 다른 Formula 오브젝트나 표현식에 lockPosition()를 입력할 수도 있습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Panel
Member: lockPosition

관련정보

Call, hidePanel(),
 panelPosition(), panelSize(),
 showPanel(), unlockPosition()
 및 UserFunction.


log(x) 오브젝트

입력값 x의 자연로그를 출력하는 오브젝트

사용법

log(x)는 x의 자연로그(base e)를 생성하기 위해 사용합니다. x에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태(Shape)의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

사용예

log([10, 2])는 [2.302585092994, 0.693147180559945]를 출력합니다.

log((1,2))는 (0.804718956, 1.10714872)를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Power
Member: log

관련정보

exp(x), exp10(x), a ^ b (exponent), log10(x) 및 Power.


log10(x) 오브젝트

입력값 x의 상용로그를 출력하는 오브젝트

사용법

log10(x)는 x의 상용로그(base 10)를 생성하기 위해 사용합니다. x에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태(Shape)의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

사용예

log10([10, 2])는 [1, 0.301029995663981]를 출력합니다.

log10((1,2))는 [0.349485, 0.480828579]를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Power
Member: log10

관련정보

exp(x), exp10(x), a ^ b (exponent), log(x) 및 Power.


로그 Regression 오브젝트

데이터에 로그곡선을 적용하기 위해 사용하는 오브젝트

사용법

로그회귀는 데이터에 다음의 방정식을 적용하기 위해 사용합니다:

y = C0 + C1*log(x)

여기서 x는 x 좌표, co 및 c1은 연산된 계수입니다. 이 로그함수는 자연로그입니다. 입력 데이터 x는 항상 0보다 커야 합니다.

로그회귀 오브젝트는 하나의 독립변수를 가진 어레이 형태의 좌표 데이터가 입력됩니다. 즉, (x, y) 쌍. 입력 어레이가 좌표 타입이 아닌 경우에는, 입력 데이터를 좌표로 변환하려는 시도가 이루어집니다. 입력 데이터가 매핑 (Spectrum 또는 매핑된 어레이) 되어 있으면, 좌표로의 변환은 (x,y)쌍의 x부분을 생성하기 위한 매핑정보를 이용합니다. 입력 데이터가 매핑(예, 어레이)되어 있지 않다면, (x,y)쌍의 x부분은 무조건 어레이에 있는 위치에서 생성됩니다.

오픈뷰 항목

오픈뷰에 있는 Fit Type 항목은 회귀 타입을 linear, logarithmic, exponential, power curve 또는 polynomial regression으로 변경하기 위해 사용합니다. 항목을 클릭하면 다른 회귀타입 리스트를 디스플레이 합니다.

사용예

좌표에서의 Regression 예제를 참조하십시오.

주의사항

Regression에 있는 회귀에 대한 일반적인 내용을 참조하십시오.

이 함수는 매핑이 안된 어레이에서는 동작하지 않습니다. 매핑이 안된 어레이는 x=0으로 시작되는 좌표로 변환되고, 이것은 로그함수에서는 실패합니다. 이 함수는 동일한 이유로 파형에서도 동작하지 않습니다.

오브젝트 위치

Device [image] Regression

대화상자에 있는 Fit Type 필드에서 적절한 Fit Type을 선택하십시오.

관련정보

Regression, exponential regression, meanSmooth (x,numPts), movingAvg (x,numPts), polynomial regression, polySmooth (x), power curve regression 및 Build Coord.


Logical 영역

Function & Object Browser 대화상자에 있는 Operator 영역

사용법

Logical은 연산 숫자에서 논리적인 동작을 하는 다음의 오브젝트를 제공합니다:

a AND b

a OR b

a XOR b

NOT a

주의사항

논리 조건이 충족되면, 1이 출력됩니다. 논리 조건을 충족하지 못하면, 0이 출력됩니다.

출력값은 Int32 타입이고 연산 숫자와 동일한 형태를 가집니다. 이것은 항상 스칼라값을출력하는 == 같은 조건문과는 다릅니다.

논리 연산자는 스트링이 null 인지 아닌지의 판단에서는 텍스트 타입을 위해서만 정의됩니다. 즉, "zoo" AND "" (null 스트링)은 2번째 스트링이 null이기 때문에 논리적으로 거짓입니다. 텍스트 타입을 스트링이 아닌 타입과 비교할 때는 후자는 텍스트 타입으로 상향 변환 됩니다. 이것은 "zoo" AND 0는 실수 0이 스트링 “0”으로 상향 변환되기 때문에 참입니다. 2개의 스트링은 null이 아니기 때문에 AND 표현식은 참이고 1을 출력 합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Logical

관련정보

a AND b, NOT a, a OR b, a XOR b, Comparison 영역, Conditional 메뉴 및 If/Then/Else.


logMagDist (x,from,thru, logStep) 오브젝트

로그 스케일로 제공되는 입력 컨테이너에서 숫자의 분포를 연산하기 위해 사용되는 오브젝트

사용법

logMagDist(x,from,thru,logStep)는 입력 어레이에 있는 값에 대한 log10값의 분포를 연산하기 위해 사용합니다. 분포는 logStep의 사이즈에 의해서 from에서 thru까지의 범위에서 진행됩니다. logStep 파라미터는 로그값이 정렬된 log10 영역에 있는 서브범위 사이즈입니다. (예를 들어, 0.2의 logStep은 10에 대해 5 서브범위와 동일합니다.)

x에는 어떤 사이즈도 입력할 수 있으며, 형태는 어레이여야 합니다. Complex, PComplex, 및 Spectrum 타입의 입력에서는 복소수의 크기가 먼저 연산되고, 그 크기는 주파수 분포를 결정하는데 사용됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64 Array 1D
Int16 | Real64 Array 1D
Int32 | Real64 Array 1D
Int64 | Real64 Array 1D
Real32 | Real64 Array 1D
Real64 | Real64 Array 1D
Coord | Real64 Array 1D
Waveform | Real64 Array 1D
Complex | Real64 Array 1D
PComplex | Real64 Array 1D
Spectrum | Real64 Array 1D

log10(x)는 x<=0인 값을 위해 정의된 것이 아니기 때문에, 입력값은 양수가 되어야 합니다.

모든 타입의 입력에서, Real64 Array 1D가 출력됩니다. 각 어레이 앨리먼트는 얼마나 많은 입력값이 각 분포 범위에 맞는지를 표시합니다.

from, thru 및 logStep 파라미터는 스칼라 형태여야 하고 Real64 타입이든지 Real64 타입으로 변환될 수 있어야 합니다.

from 파라미터는 thru 파라미터보다 작아야 합니다.

logStep 파라미터는 0보다 커야 합니다.

사용예

logMagDist(x,1,100,1), 여기서 x는 어레이입니다:

[1, 2, 3, 10, 40, 50, 100, 100 ,100]

어레이[3, 6]를 출력합니다. 예제에서 2 서브범위는 1에 의한 1부터 2까지의 범위입니다. 출력 어레이는 얼마나 많은 입력 숫자가 각 범위에 포함되는지 나타냅니다.

주의사항

분포를 위한 서브범위는 다음의 범위 파라미터에 의해 결정됩니다:

Range 1

Range Minimum: "from" parm

range: <= range1

Range Maximum: < "from" parm + "step" parm(range1limit)

Range 2

Range Minimum: range1limit

range: <= range2

Range Maximum: < range1limit + "step" parm (range2limit)

Range 3

Range Minimum: range2limit

range: <= range3

Range Maximum: < range2limit + "step" parm (range3limit)

Range n-1

Range Minimum: range(n-2)limit

range: <= range(n-1)

Range Maximum: <= "thru" parm

"from" 과 "thru" 파라미터의 log10은 범위 분포가 결정되기 전에 연산됩니다.

연산 숫자에 있는 매핑은 무시되고, 출력값은 매핑되지 않습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: logMagDist

관련정보

magDist(x, from,thru, step).


logRamp (numElem, from,thru) 오브젝트

로그 스케일로 분할된 어레이를 생성하는 오브젝트

사용법

logRamp(numElem,from,thru)는 numElem의 길이를 가지며 from부터 thru까지 로그스케일로 분할된 값을 가지는 1차원 어레이 형태의 Real64값을 생성하는데 사용합니다. numElem은 0보다 큰 값을 가지는 스칼라 컨테이너이든지 Int32 타입으로 변환될 수 있어야 합니다. from과 thru는 스칼라 컨테이너든지 실수로 변환될 수 있어야 합니다. from이 thru보다 작으면 분할은 양수입니다; 아닌 경우는 자동으로 음수로 분할됩니다. from 과 thru는 0보다 큰 수를 가져야 합니다.

사용예

logRamp(3, 1, 100)는 1D Array [1, 10, 100]를 출력합니다.

주의사항

출력값은 매핑을 갖지 않습니다.

값을 생성하는 알고리즘은 다음과 같습니다:

Y[I]=exp10(log10(from)+I*((log10(thru)-log10(from))/numElem-1))
for I=0..numElem-1

이것은 출력 어레이에 있는 마지막 앨리먼트가 thru 값을 가지는데 영향을 줍니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Generate
Member: logRamp

관련정보

Alloc Real64 또는 ramp (numElem, from,thru).


mag(x) 오브젝트

PComplex x의 크기를 출력하는 오브젝트

사용법

mag(x)는 PComplex x의 크기를 추출하기 위해 사용합니다. Integer, Real, Coord, 및 Waveform 타입에서는 동일한 값을 동일한 타입으로 출력합니다. Complex, PComplex, 및 Spectrum 타입에서는, mag(x)는 PComplex의 크기를 가진 실수 컨테이너를 출력합니다. (Complex는 먼저 PComplex로 변환됩니다.)

입력가능한 종류(Type) 출력 종류(type)

UInt8 | 동일한 값을 가진 Uint8
Int16 | 동일한 값을 가진 Int16
Int32 | 동일한 값을 가진 Int32
Int64 | 동일한 값을 가진 Int64
Real32 | 동일한 값을 가진 Real32
Real64 | 동일한 값을 가진 Real64
Coord | 동일한 값을 가진 Coord
Waveform | 동일한 값을 가진 Waveform
Complex | Real64
PComplex | Real64
Spectrum | Real64

사용예

mag( (1,@45) )는 1을 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Complex Parts
Member: mag

관련정보

conj(x), im(x), j(x), phase(x), re(x), Real Parts 영역, Build Complex, Default Preferences 메뉴상자 및 UnBuild Complex.


magDist(x, from,thru, step) 오브젝트

입력 컨테이너에 있는 숫자 분포를 연산하기 위해 사용하는 오브젝트

사용법

magDist(x,from,thru,step)는 입력 컨테이너에 있는 숫자 분포를 연산하기 위해 사용합니다. 분포는 step의 크기에 의한 from부터 thru까지의 범위에서 실행됩니다. step 파라미터는 서브 어레이의 크기 입니다.

x에는 어떤 사이즈의 데이터도 입력할 수 있습니다. Complex, PComplex, 및 Spectrum 타입 어레이의 입력에 대해서는, 복소수의 크기가 먼저 연산되고 그 크기가 주파수 분포를 연산하는데 사용됩니다. x의 입력 형태는 반드시 Array여야 합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64 Array 1D
Int16 | Real64 Array 1D
Int32 | Real64 Array 1D
Int64 | Real64 Array 1D
Real32 | Real64 Array 1D
Real64 | Real64 Array 1D
Coord | Real64 Array 1D
Waveform | Real64 Array 1D
Complex | Real64 Array 1D
PComplex | Real64 Array 1D
Spectrum | Real64 Array 1D

출력되는 어레이에 있는 각 앨리먼트는 얼마나 많은 입력값이 각 범위 분포에 적합한지를 표시합니다.

from, thru 및 step 파리미터는 Scalar 형태를 가진 Real64 타입이든지, Real64 타입으로 변환할 수 있어야 합니다.

From 파라미터는 thru 파라미터보다 작아야 합니다.

from 파라미터는 0보다 커야 합니다.

사용예

magDist(x,1,5,1)는, 여기서 x가 어레이[1, 2, 3, 4, 5, 5, 3, 3, 3, 2, 2, 2]이면, 어레이[1, 4, 4, 3]을 출력합니다. 이 예제에는 1씩 증가하면서 1부터 5까지의 크기를 가진 4개의 서브 어레이가 있습니다. 출력 어레이는 각 서브 범위에 포함되는 입력 숫자를 나타냅니다.

주의사항

분포의 서브 범위는 다음의 범위 파라미터에 의해 결정됩니다:

Range 1

Range Minimum: "from" parm

range: <= range1

Range Maximum: < "from" parm + "step" parm(range1limit)

Range 2

Range Minimum: range1limit

range: <= range2

Range Maximum: < range1limit + "step" parm (range2limit)

Range 3

Range Minimum: range2limit

range: <= range3

Range Maximum: < range2limit + "step" parm (range3limit)

Range n-1

Range Minimum: range(n-2)limit

range: <= range(n-1)

Range Maximum: <= "thru" parm

연산되는 숫자에 있는 매핑은 무시되고, 출력값은 매핑되지 않습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: magDist

관련정보

logMagDist (x,from,thru, logStep).


matDivide (numer, denom) 오브젝트

이 오브젝트는 2개의 행렬 A와 B를 나눕니다. matDivide(numer,denom) 연산은 대수 조건에서는 A/B로 정의됩니다; 행렬(선형 대수) 조건에서는 inv(B)*A로 정의됩니다.

사용법

matDivide(numer,denom)는 하나의 행렬을 다른 행렬로 나누기 위해 사용합니다. 선형 시스템 BX=A이 주어 졌을 때, 여기서 B와 A 행렬을 알고 있다면 행렬 X를 구합니다. 대수 조건에서는, 해법은 A를 B로 나누어 X를 구하는 것입니다: X = A/B. 선형대수 행렬 법칙으로 방정식을 구하면, 연산은 X = inv(B)*A입니다. 이 연산은 n이 알려지지 않은 상태에서 n 방정식의 선형시스템의 해법을 찾을 때 유용합니다.

B가 n x n (정방형) 행렬이면, 선형시스템 BX = A는 n이 알려지지 않은 상태에서 n 방정식의 시스템입니다. B는 정칙행렬이 아님을 전제합니다. inv(B)(B의 역수)가 존재하고 양쪽에서 BX = A를 inv(B)로 곱하면, X = inv(B)*A를 얻게 됩니다.

inv(B)*A의 곱셈을 얻기 위한 해법은 주어진 선형시스템을 구하는 해법입니다. B가 정칙행렬이 아니라면, 시스템을 구할 수 있는 해법이 있습니다.

사용예

matDivide(A,B), 여기서 A가 3x1 행렬[ [8], [24], [8] ]이고
B가 3x3 행렬[ [1, 1, 1], [0, 2, 3], [5, 5, 1] ]이면,
3x1 행렬[ [0], [0], [8] ]을 출력합니다.

주의사항

연산되는 숫자에 있는 매핑은 무시되고, 출력값은 매핑되지 않습니다.

matDivide(A,B)는 B의 역수를 사용합니다; B는 반드시 정방형 행렬이어야 합니다. matMultiply(A,B)의 법칙은 inv(B) * A 연산에 적용합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Matrix
Member: matDivide

관련정보

a / b (divide) 또는 matMultiply (A,B).


matMultiply (A,B) 오브젝트

선형 대수 규칙에 따라 2개의 행렬을 곱하는 오브젝트.

사용법

matMultiply(A,B)는 2개의 입력 행렬 A와 B를 곱하기 위해 사용합니다. A는 m x p 행렬이 되고 B는 p x n 행렬이 됩니다. A와 B의 matMultiply는 새로운 행렬 z이며, m x n 행렬입니다. A가 m x p 행렬이고 B가 p x n 행렬인 경우에만 행렬의 곱셈을 실행할 수 있습니다.(즉, 2번째 행렬에 있는 행의 숫자는 첫번째 행렬에 있는 열의 숫자와 동일해야 합니다.)

입력되는 행렬은 동일한 행렬 형태를 가져야 합니다. 2개의 행렬이 동일한 타입이 아닐 경우에는, 하위 타입의 행렬이 상위 타입으로 상향 변환되고 출력값은 최상위 타입의 행렬이 됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8

두개의 연산수

중에서

최상위 타입

Int16

Int32

Int64

Real32

Real64

Complex

PComplex

사용예

matMultiply(A,B)는, 여기서 A는 2x1 행렬[ [3], [1] ]이고 B는 1x2 행렬[2, 4]인경우에, 2x2 행렬[ [6, 12], [2, 4] ]를 출력합니다.

주의사항

연산되는 숫자에 있는 매핑은 무시되고, 출력값은 매핑되지 않습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Matrix
Member: matMultiply

관련정보

matDivide (numer, denom) 또는 a * b (multiply).


Matrix 영역

Function & Object Browser 대화상자에 있는 Built-in Functions 영역.

사용법

Matrix 연산은 행렬에서 상용 선형대수를 연산하기 위해 사용합니다.

det(x)

inverse(x)

transpose(x)

identity(x)

minor(x,row,col)

cofactor(x,row,col)

matMultiply(A,B)

matDivide(numer,denom)

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Matrix

관련정보

cofactor(x, row,col), det(x), identity(x), inverse(x), matMultiply (A,B), matDivide (numer, denom), minor(x,row, col) 및 transpose(x).


max(x) 오브젝트

입력 컨테이너에 있는 최대값을 출력하는데 사용하는 오브젝트.

사용법

max(x)는 입력 컨테이너에 있는 최대값을 출력하기 위해 사용합니다.

X에는 어떤 사이즈와 형태를 가진 데이터도 입력할 수 있으며, 연산은 종속변수에서 실행됩니다. Text 타입의 데이터가 입력된 경우에는, 알파벳 순서로 정렬시 가장 빠른 텍스트 스트링인 max(x)가 출력이 됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8, 스칼라 형태
Int16 | Int16, 스칼라 형태
Int32 | Int32, 스칼라 형태
Int64 | Int64, 스칼라 형태
Real32 | Real32, 스칼라 형태
Real64 | Real64, 스칼라 형태
Coord | Coord, 스칼라 형태
Waveform | Real 64, 스칼라 형태
Text | Text, 스칼라 형태

사용예

max(x)는, 여기서 x가 어레이[5, 34, 1, 54, 6, 2, 9, 7, 16, 42]이면, 54를 출력합니다.

2개의 스칼라 값을 연산하기 위해서는, 어레이를 생성하기 위한 어레이 생성 구문을 사용하고 어레이에서 max()를 호출합니다. 예를 들면:

주의사항

연산되는 숫자에 있는 매핑은 무시됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: max

관련정보

maxIndex(x), maxX(x), mean(x), median(x), min(x), mode(x), rms(x), sdev(x) 및 vari(x).


maxIndex(x) 오브젝트

입력 어레이에서 가장 큰 앨리먼트의 인덱스를 출력하는데 사용하는 오브젝트

사용법

maxIndex(x)는 1D 어레이에서 가장 큰 앨리먼트의 인덱스를 출력하는데 사용합니다. x의 입력값은 Array 1D 형태를 가져야 합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Int32
Int16 | Int32
Int32 | Int32
Int64 | Int32
Real32 | Int32
Real64 | Int32
Coord | Int32
Waveform | Int32
Text | Int32

사용예

어레이에 maxIndex(x)를 적용하면, 여기서 x가 어레이 [.1, .4, .6, .9]이면, .9가 어레이에서 가장 큰 앨리먼트이기 때문에 3을 출력합니다.

["Ken", "Sue", "Randy", "Bill", "Doug"]에 대한 maxIndex(x)는, "Sue"가 알파벳 순으로 가장 큰 차례를 나타내므로 1을 출력합니다.

주의사항

어레이 인덱스는 0부터 시작합니다.

연산되는 숫자에 있는 매핑은 무시됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Data Filtering
Member: maxIndex

관련정보

max(x), maxX(x), min(x), minIndex(x) 및 minX(x).


maxX(x) 오브젝트

매핑된 Array 1D에서 최고 포인트의 x 값을 출력하는데 사용하는 오브젝트

사용법

maxX(x)는 1D (선형)어레이에서 가장 큰 앨리먼트의 Xindex를 출력하는데 사용합니다. x의 입력값은 Array 1D 형태를 가져야 합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64 Scalar
Int16 | Real64 Scalar
Int32 | Real64 Scalar
Real32 | Real64 Scalar
Real64 | Real64 Scalar
Coord | Real64 Scalar
Waveform | Real64 Scalar
Text | Real64 Scalar

데이터가 매핑되어 있으면, 출력되는 값은 입력 데이터의 y의 최고값에 대응하는 x값을 출력합니다. x 값은 어레이 매핑을 사용하여 연산됩니다. 데이터가 매핑되어 있지 않으면, 출력되는 값은 어레이에 있는 y의 최대값의 인덱스입니다. 즉, 어레이에 있는 x의 최대값의 위치를 출력합니다.

Coord 타입은 y의 최대값에 대응하는 독립변수 x를 출력합니다.

이 함수는 매핑된 데이터 또는 Coord 타입에 사용할 수 있습니다. 매핑이 안된 데이터에서는 maxIndex(x)를 사용하는 것과 동일합니다.

사용예

256 포인트를 가지며 0부터 20mS까지 매핑되어 있는 사인파형 타입의 maxX(x)를 연산하면, 출력값은 .009219입니다.

x가 매핑이 안된 어레이 [.1, .4, .6, .9]의 maxX(x)를 연산하면,.9가 어레이에서 가장 큰 앨리먼트이기 때문에 출력값은 3입니다. 이것은 maxIndex(x)와 동일합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Data Filtering
Member: maxX

관련정보

max(x), maxIndex(x), min(x), minIndex(x), minX(x), Get Mappings 및 Set Mappings.


mday(aDate) 오브젝트

입력된 시간 x의 일자를 출력하는 오브젝트

사용법

mday(x)는 주어진 시간 x를 일자(1일부터 31일 까지)로 변환하기 위해 사용합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

mday(dmyToDate(25,12,1991))는 월의 25번째 일자인 25를 출력합니다.

주의사항

mday(aDate)는 0-30이 아닌 1-31을 출력합니다. 즉, 이 오브젝트는 0 대신 1을 기반으로 사용하는 VEE 함수입니다. 출력값에 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Time & Date
Member: mday

관련정보

dmyToDate (d,m,y), hmsToHour (h,m,s), hmsToSec (h,m,s), month(aDate), now(), Time & Date, wday(aDate) 및 year(aDate).


mean(x) 오브젝트

입력 컨테이너에 있는 데이터의 평균값을 연산하기 위해 사용하는 오브젝트

사용법

mean(x)는 컨테이너의 평균값을 출력하기 위해 사용합니다. 입력 컨테이너에 있는 숫자를 더하고, 그 합을 입력된 앨리먼트의 수로 나눕니다. x에는 어떤 사이즈와 형태의 데이터도 입력할 수 있습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64 Scalar
Int16 | Real64 Scalar
Int32 | Real64 Scalar
Real32 | Real64 Scalar
Real64 | Real64 Scalar
Coord | Real64 Scalar
Waveform | Real64 Scalar

Coord 타입에서는 종속변수에서 연산이 실행됩니다.

사용예

x가 어레이 [1, 2, 3, 11, 12, 34]이면, mean(x)는 10.5를 출력합니다.

주의사항

연산되는 숫자에 있는 매핑은 무시됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: mean

관련정보

max(x), median(x), min(x), mode(x), rms(x), sdev(x) 및 vari(x).


meanSmooth (x,numPts) 오브젝트

매끄러운 포인트 데이터를 연산하기 위한 포인트데이터 들에 대해, 지정한 숫자의 평균을 사용하여 입력데이터를 매끄럽게 만들기 위해 사용하는 오브젝트

사용법

meanSmooth(x,numPts)는 polySmooth(x)과 유사하게 데이터를 매끄럽게 하기 위해 사용합니다. 알고리즘은 매끄럽게 하고자 하는 포인트를 둘러싸는 numPts 포인트 데이터들의 산술평균을 연산합니다. 예를 들어, numPts가 5이면, 다음의 포인트들의 평균값을 취합니다; 현 포인트 이전의 2개의 포인트, 현재의 포인트, 현 포인트 뒤의 2개의 포인트. numPts가 짝수이면, 알고리즘은 홀수를 만든 포인트의 수에 1을 더합니다. x 입력은 Array 1D 형태를 가져야 합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

Coord 타입의 독립변수는 등거리여야 합니다. 즉, 인접한 포인트들의 x 간격이 상수여야 합니다. smoothing은 종속변수에서 이루어집니다.(Coord의 y 데이터).

이 연산의 노이즈 억제 능력은 지정한 평균의 numPts 사이즈에 대한 함수입니다. numPts의 큰 값은 노이즈를 numPts의 작은 값보다 큰 각도로 억제합니다. 종종 이 함수는 데이터를 선처리 한 경우에 다른 함수(deriv(x,order))의 결과를 향상시키기 위해 사용합니다.

주의사항

입력 파라미터에 있는 매핑은 무시되고, 출력은 입력 파라미터 x와 동일한 매핑을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Data Filtering
Member: meanSmooth

관련정보

movingAvg (x,numPts), polySmooth (x), Regression types 및 Signal Processing 영역.


median(x) 오브젝트

입력 컨테이너의 메디안 값을 연산하기 위해 사용하는 오브젝트

사용법

median(x)는 컨테이너의 중간 값을 출력하기 위해 사용합니다. x에는 어떤 사이즈와 형태를 가진 데이터도 입력할 수 있습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64 Scalar
Int16 | Real64 Scalar
Int32 | Real64 Scalar
Int64 | Real64 Scalar
Real32 | Real64 Scalar
Real64 | Real64 Scalar
Coord | Real64 Scalar
Waveform | Real64 Scalar

Coord 타입에서는, 연산이 종속변수에서 이루어집니다.

사용예

median([1, 2, 3, 8, 20])는 3을 출력합니다.

median(x), 여기서 x가 어레이[1, 2, 5, 11, 12, 33]이면, 8을 출력합니다. 메디안 값은 숫자의 범위에 있는 하나의 값입니다. 짝수의 숫자가 있는 경우에는, 메디안은 2개의 중간 숫자의 평균값으로 연산됩니다. 이 경우, 메디안 값은 5와 11의 평균값인 8입니다.

median([20, 5, 10])은 10을 출력합니다.

주의사항

연산되는 숫자에 있는 매핑은 무시됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: median

관련정보

max(x), mean(x), min(x), mode(x), rms(x), sdev(x) 및 vari(x).


min(x) 오브젝트

입력 컨테이너에 있는 최소값을 출력하는데 사용하는 오브젝트

사용법

min(x)는 입력 컨테이너에 있는 최소값을 출력하기 위해 사용합니다. x에는 어떤 사이즈와 형태를 가진 데이터도 입력할 수 있습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8, 스칼라 형태
Int16 | Int16, 스칼라 형태
Int32 | Int32, 스칼라 형태
Int64 | Int64, 스칼라 형태
Real32 | Real32, 스칼라 형태
Real64 | Real64, 스칼라 형태
Coord | Coord, 스칼라 형태
Waveform | Real64, 스칼라 형태
Text | Text, 스칼라 형태

Coord 타입의 입력에 대해서는, 연산은 종속변수에서 실행됩니다. Text 타입의 데이터가 입력되는 경우에는 알파벳순으로 가장 빠른 스트링이 출력됩니다.

사용예

min(x)는, 여기서 x가 어레이[5, 34, 1, 54, 6, 2, 9, 7, 16, 42]이면, 1을 출력합니다.

2개의 스칼라 값을 연산하기 위해서는, 어레이를 생성하기 위한 어레이 생성 구문을 사용하고 어레이에서 max()를 호출합니다. 예를 들면:

주의사항

연산되는 숫자에 있는 매핑은 무시됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: min

관련정보

max(x), mean(x), median(x), minIndex(x), minX(x), mode(x), rms(x), sdev(x) 및 vari(x).


minIndex(x) 오브젝트

입력 어레이에서 가장 작은 앨리먼트의 인덱스를 출력하기 위해 사용하는 오브젝트

사용법

minIndex(x)는 1D 어레이에서 가장 작은 앨리먼트의 인덱스를 출력하기 위해 사용합니다. x에는 어떤 사이즈와 형태를 가진 데이터도 입력할 수 있습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Int32
Int16 | Int32
Int32 | Int32
Int64 | Int32
Real32 | Int32
Real64 | Int32
Coord | Int32
Waveform | Int32
Text | Int32

사용예

x가 [.1, .4, .6, .9]인 어레이에 minIndex(x)을 적용하면, .1이 어레이에서 가장 작은 앨리먼트 이기 때문에 0을 출력합니다.

["Ken", "Randy", "Doug", "Bill", "Sue"]에 대한 minIndex(x)는 "Bill"이 알파벳 순으로 가장 빠르므로 3을 출력합니다.

주의사항

어레이 인덱스는 0부터 시작합니다.

연산되는 숫자에 있는 매핑은 무시됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Data Filtering
Member: minIndex

관련정보

max(x), maxIndex(x), maxX(x), min(x) 및 minX(x).


minor(x,row, col) 오브젝트

행렬의 r행과 c열의 부분행렬식을 연산하는 오브젝트

사용법

minor(x,row,col)는 입력된 정방형 행렬 x의 부분행렬식을 연산하기 위해 사용합니다. 부분행렬식은 r번째 행과 c번째 열의 삭제로 얻어진 입력 행렬 x의 서브행렬입니다. 입력값 x는 반드시 정방형 행렬(열과 동일한 숫자의 행을 가진 행렬)의 형태를 가져야 합니다. 삭제하기 위한 행과 열(r과 c)의 입력은 반드시 스칼라이든지 Int32 타입으로 변환할 수 있어야 합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Complex | Complex, 스칼라 형태
PComplex | PComplex, 스칼라 형태

사용예

minor(a,1,2), 여기서 a가 행렬[ [3, -1, 2], [4, 5, 6], [7, 1, 2] ]이면,
-34를 출력합니다.

주의사항

연산되는 숫자에 있는 매핑은 무시됩니다.

r과 c의 입력은 Int32 타입 또는 Int32 타입으로 변환할 수 있어야 합니다. 행렬의 행과 열은 0부터 n-1의 숫자로 이루어지므로, 사용하기 위한 행과 열을 지정할 때는 주의해야 합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Matrix
Member: minor

관련정보

cofactor(x, row,col) 또는 det(x).


minX(x) 오브젝트

매핑된 Array 1D에서 최소 포인트의 x 값을 출력하는데 사용하는 오브젝트

사용법

minX(x)는 1D (선형)어레이에서 가장 작은 앨리먼트의 Xindex를 출력하는데 사용합니다. x의 입력값은 Array 1D 형태를 가져야 합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64 Scalar
Int16 | Real64 Scalar
Int32 | Real64 Scalar
Int64 | Real64 Scalar
Real32 | Real64 Scalar
Real64 | Real64 Scalar
Coord | Real64 Scalar
Waveform | Real64 Scalar
Text | Real64 Scalar

데이터가 매핑되어 있으면, 출력되는 값은 입력 데이터의 y의 최소값에 대응하는 x값을 출력합니다. x 값은 어레이 매핑을 사용하여 연산됩니다. 데이터가 매핑되어 있지 않으면, 출력되는 값은 어레이에 있는 y의 최소값의 인덱스입니다. 즉, 어레이에 있는 x의 최소값의 위치를 출력합니다.

Coord 타입은 y의 최대값에 대응하는 독립변수 x를 출력합니다.

이 함수는 매핑된 데이터 또는 Coord 타입에 사용할 수 있습니다. 매핑이 안된 데이터에서는 maxIndex(x)를 사용하는 것과 동일합니다.

사용예

256 포인트를 가지며 0부터 20mS까지 매핑되어 있는 사인파형 타입의 minX(x)를 연산하면, 출력값은 .0107입니다.

x가 매핑이 안된 어레이 [.1, .4, .6, .9]의 minX(x)를 연산하면, .1이 어레이에서 가장 작은 앨리먼트이기 때문에 출력값은 0입니다. 이것은 minIndex(x)와 동일합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Data Filtering
Member: minX

관련정보

max(x), maxIndex(x), maxX(x), min(x), minIndex(x), Get Mappings 및 Set Mappings.


a mod b (modulo) 오브젝트

2개의 연산 숫자에서 산술 modulo (나머지)를 연산하는 오브젝트

사용법

a mod b는 2개의 컨테이너에 대한 나눗셈의 나머지를 연산하는데 사용합니다. 2개의 컨테이너는 어떤 형태의 데이터도 입력할 수 있습니다. 하나의 컨테이너가 어레이인 경우에는, 다른 컨테이너는 반드시 스칼라이든지 동일한 사이즈와 형태를 가진 어레이여야 합니다. 출력값은 연산되는 숫자와 동일한 형태를 가진 최상위 타입입니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8

두개의 연산수

중에서

최상위 타입

Int16

Int32

Int64

Real32

Real64

Coord

Waveform

2개의 연산 숫자가 Coord 타입인 경우에는, 독립변수는 반드시 매칭되어야 하고, 그렇지 않으면 에러가 발생합니다. modulo는 연산은 종속변수에서만 실행됩니다.

사용예

스칼라 modulo 어레이: 3.2 MOD [1, 2, 3]는 [0.2, 1.2, 0.2]를 출력합니다.

어레이 modulo 스칼라: [1, 2, 3] MOD 2는 [1, 0, 1]를 출력합니다.

2개의 Coord 스칼라: coord(1,3) MOD coord(1,5)는 coord(1,2)를 출력합니다.

2개의 Coord 스칼라: coord(1,3) MOD coord(2,5)는 에러가 발생합니다.

2개의 스칼라: 12.95 mod 2는 0.95를 출력합니다.

2개의 스칼라: 12.95 mod 2.1는 0.35를 출력합니다.

주의사항

하나의 컨테이너가 매핑(Waveform, Coord 타입 또는 어떤 다른 타입의 매핑된 어레이)된 경우에는, 다른 컨테이너는 반드시 매핑이 안되어 있거나, 동일한 매핑을 가져야 합니다. 출력값은 연산 숫자와 동일한 매핑을 가집니다; 그렇지 않은 경우에는 에러가 출력됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Arithmetic
Member: MOD

관련정보

a + b (add), a div b (truncated division), a / b (divide), a * b (multiply) 및 a - b (subtract).


mode(x) 오브젝트

입력 컨테이너에 있는 데이터의 모드(mode)를 연산하는 오브젝트

사용법

mode(x)는 입력 컨테이너에 있는 값의 모드를 출력하기 위해 사용합니다. 모드 값은 데이터에서 자주 찾은 값입니다. bimodal 데이터(동일한 배수의 숫자를 표시하는 2개의 숫자) 또는 그 이상의 경우에는, mode(x)는 어레이 컨테이너에서 가장 낮은 모드의 값을 출력합니다.

모드값이 없을 경우에는(각 숫자자 유일한 경우), 입력 컨테이너에 있는 첫번째 값이 출력됩니다.

X에는 어떤 사이즈와 형태를 가진 데이터도 입력할 수 있습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Real64 Scalar
Waveform | Real64 Scalar

Coord 타입의 입력에 대해서는, 연산은 종속변수에서 실행됩니다.

사용예

Single 모드: x가 어레이[2, 1, 12, 11, 2, 33]이면, mode(x)는 2를 출력합니다.

Bimodal: x가 어레이 [2, 1, 2, 12, 11, 12]이면, mode(x)는 2를 출력합니다.

No 모드: x가 어레이 [3, 2, 1, 11, 12, 33]이면, mode(x)는 3을 출력합니다.

주의사항

연산되는 숫자에 있는 매핑은 무시됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: mode

관련정보

max(x), mean(x), median(x), min(x), rms(x), sdev(x) 및 vari(x).


month(aDate) 오브젝트

입력된 시간 x의 월을 출력하는 오브젝트

사용법

month(aDate)는 주어진 시간 x를 월(1월부터 12월까지)로 변환하기 위해 사용합니다. x에는 어떤 형태의 데이터도 입력할 수 있으며, 동일한 형태가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

month(dmyToDate(25,12,1991))는 년의 12번째 월인 12를 출력합니다.

주의사항

month(aDate)는 0-11이 아닌 1-12를 출력합니다. 즉, 이 오브젝트는 0 대신 1을 기반으로 사용하는 VEE 함수입니다. 출력값에 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Time & Date
Member: month

관련정보

dmyToDate (d,m,y), hmsToHour (h,m,s), hmsToSec (h,m,s), mday(aDate), now(), Time & Date, wday(aDate) 및 year(aDate).


movingAvg (x,numPts) 오브젝트

매끄러운 포인트 데이터를 연산하기 위한 포인트데이터 들에 대해 지정한 숫자의 평균을 사용하여 입력데이터를 매끄럽게 만들기 위해 사용하는 오브젝트

사용법

movingAvg(x,numPts)는 meanSmooth(x,numPts)루틴과 유사하게 데이터를 매끄럽게 하기 위해 사용합니다. 알고리즘은 numPts 포인트 데이터들의 산술평균을 연산합니다. x 입력은 Array 1D 형태를 가져야 합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

Coord 타입의 독립변수는 등거리여야 합니다. 즉, 인접한 포인트들의 x 간격이 일정해야 합니다. smoothing은 종속변수에서 이루어집니다.(Coord의 y 데이터).

어레이에 있는 임의의 포인트에 대한 평균값은 이전 포인트에서 연산되기 때문에, 이 함수는 좀더 "히스토리컬" 뷰를 표시합니다. polySmooth(x) 및 meanSmooth(x,numPts)의 경우처럼, 양끝에 있는 2개의 포인트에서 연산되는 평균값과는 대비됩니다.

사용예

numPts가 5이면, 4개의 이전 포인트와 나머지 포인트의 평균값이 매끄럽게 되야 할 포인트를 연산하기 위해 사용됩니다.

주의사항

입력 파라미터에 있는 매핑은 무시되고, 출력은 입력 파라미터 x와 동일한 매핑을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Data Filtering
Member: movingAvg

관련정보

meanSmooth (x,numPts), polySmooth (x), Regression types 및 Signal Processing 영역.


a * b (multiply) 오브젝트

2개의 연산 숫자에서 곱셈을 연산하는 오브젝트

사용법

a * b는 2개의 컨테이너 값을 곱하기 위해 사용합니다. 2개의 컨테이너는 어떤 타입과 형태를 가진 데이터도 입력할 수 있습니다. 하나의 컨테이너가 어레이인 경우에는, 다른 컨테이너는 반드시 스칼라이든지 동일한 사이즈와 형태를 가진 어레이여야 합니다. 출력값은 연산되는 숫자와 동일한 형태를 가진 최상위 타입의 컨테이너가 됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8

두개의 연산수

중에서

최상위 타입

Int16

Int32

Int64

Real32

Real64

Coord

Waveform

PComplex

Spectrum

2개의 연산 숫자가 Coord 타입인 경우에는, 독립변수는 정확히 매칭되어야 하며, 그렇지 않은 경우에는 에러가 발생합니다. 곱셈은 종속변수(마지막)에서만 수행됩니다.

하나의 컨테이너가 텍스트인 경우에는, 다른 컨테이너는 반드시 Int32여야 합니다. 텍스트의 곱셈은 Int32값으로 주어지는 횟수만큼 스트링을 반복하는 것으로 이루어집니다. Enums는 곱셈을 위해 텍스트로 변환됩니다.

곱셈은 행렬을 포함하여 어레이에 있는 모든 앨리먼트에서 병렬로 연산됩니다. 행렬에 대해서는, matMultiply(A,B) 함수를 참조하십시오.

사용예

어레이 곱하기 스칼라: [1, 2, 3] * 3는 [3, 6, 9]를 출력합니다.

2개의 어레이: [4, 5, 6] * [1, 2, 3]는 [4, 10, 18]를 출력합니다.

2개의 PComplex 스칼라: (2,@45) * (3,@90)는 각도 단위로 (6,@135)를 출력합니다.

2개의 Coord 스칼라: coord(1,3) * coord(1,5)는 coord(1,15)를 출력합니다.

2개의 Coord 스칼라: coord(1,3) * coord(2,5)는 에러가 발생합니다.

텍스트 곱하기 스칼라: "hello" * 3은 "hellohellohello"를 출력합니다.

텍스트 어레이 곱하기 어레이: ["hello", "b"] * [3, 2]는
["hellohellohello", "bb"]를 출력합니다.

주의사항

하나의 컨테이너가 매핑되어 있다면(Waveform, Spectrum, Coord, 또는 다른 타입의 매핑된 어레이), 다른 컨테이너는 반드시 매핑이 안되어 있든지 동일한 매핑을 가져야 합니다. 출력값은 연산 숫자와 동일한 매핑을 가집니다; 다른 경우는 에러가 발생합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Arithmetic
Member: *

관련정보

a + b (add), a / b (divide), matMultiply (A,B) 및 a - b (subtract).


NOT a 오브젝트

연산되는 숫자에서 논리연산 NOT를 처리하는 오브젝트

사용법

NOT a는 컨테이너의 값에 대한 논리적인 반대 값을 연산하기 위해 사용합니다. 컨테이너는 어떤 타입과 형태도 입력할 수 있습니다. 출력은 연산되는 숫자와 동일한 형태를 가진 Int32값 0 또는 1입니다. 연산 숫자가 거짓(0)인 경우에는, NOT 연산 값은 1입니다; 다른 경우는 0입니다.

연산되는 숫자가 Boolean 타입인 경우에는, 출력값은 연산되는 숫자와 동일한 형태를 가진Boolean 타입이 됩니다.

Coord 컨테이너에 대해서는, NOT 연산은 종속변수(마지막)에서만 처리됩니다.

Complex, PComplex, 및 Spectrum 컨테이너에 대해서는, 2개의 항목이 0이 아닐 경우에는 숫자의 값은 참입니다. 텍스트는 nill이 아닌 경우에 참입니다. Enums는 연산을 위해 텍스트로 변환됩니다.

사용예

Boolean 스칼라: NOT False는 True를 출력합니다.

스칼라: NOT 3은 0을 출력합니다.

스칼라: NOT 0은 1을 출력합니다.

어레이: NOT [-3, 0, 3]은 [0, 1, 0]을 출력합니다.

PComplex 스칼라: NOT (1,@90)은 0을 출력합니다.

Complex 스칼라: NOT (0,1)은 0을 출력합니다.

Complex 스칼라: NOT (0,0)은 1을 출력합니다.

Coord 스칼라: NOT coord(1,3)은 0을 출력합니다.

Coord 스칼라: NOT coord(1,0)은 1을 출력합니다.

Text 스칼라: NOT "too"는 0을 출력합니다.

Text 스칼라: NOT ""은 1을 출력합니다.

주의사항

출력값은 연산되는 숫자와 동일한 매핑을 가집니다.

If/Then/Else 오브젝트는 모두 0(Zero)이거나 1인 경우에, 스칼라이거나 어레이인지를 평가하기 위하여 내부에 표현식이 필요합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Logical
Member: NOT

관련정보

Conditional 메뉴 또는 If/Then/Else.


a != b (not equal to) 오브젝트

2개의 숫자가 서로 동일하지 않은지를 확인하는 오브젝트

사용법

a != b는 하나의 컨테이너 값이 다른 컨테이너 값과 동일하지 않은지를 확인하기 위해 사용합니다. 2개의 컨테이너는 어떤 종류와 어떤 형태도 사용할 수 있습니다. 하나의 컨테이너가 어레이라면, 다른 컨테이너는 스칼라이든지 같은 사이즈와 형태를 가진 어레이여야 합니다. 출력값은 0 또는 1의 값을 가진 스칼라 Int32입니다. 첫번째 숫자가 2번째 숫자와 동일하지 않다면, 결과값은 1입니다; 아니면 0을 출력합니다.

Coord 컨테이너에 대해서는, 독립변수가 동일하지 않으면 에러가 발생합니다. Complex, PComplex 및 Spectrum 컨테이너에 대해서는, 하나의 항목 또는 2개의 항목이 동일하지 않으면 1을 출력합니다. Enums은 비교를 위해 텍스트로 변환됩니다.

어레이는 하나 이상의 값이 동일하지 않아야 1을 출력합니다.

2개의 연산되는 숫자가 Boolean 타입인 경우에는, 출력값은 연산되는 숫자와 동일한 형태를 가진 Boolean 타입이 됩니다.

사용예

2개의 Boolean 스칼라: True != False는 True를 출력합니다.

스칼라와 어레이: 3.0 != [3, 3, 3]은 0을 출력합니다.

스칼라와 어레이: 3.0 != [3, 1, 3]은 1을 출력합니다.

2개의 어레이: [1, 2, 3] != [1, 2, 4]는 1을 출력합니다.

2개의 PComplex 스칼라: (1,@90) != (1,@85)는 1을 출력합니다.

2개의 Complex 스칼라: (2,3) != (2,4)는 1을 출력합니다.

2개의 Complex 스칼라: (2,3) != (2,3) 는 0을 출력합니다.

2개의 Coord 스칼라: coord(1,3) != coord(1,5)는 1을 출력합니다.

2개의 Coord 스칼라: coord(1,3) != coord(2,3)는 Values for independent variables must match를 출력합니다.

주의사항

하나의 컨테이너가 매핑되어 있으면(Waveform, Spectrum, Coord 또는 다른 타입의 매핑된 어레이), 다른 컨테이너는 매핑이 안되어 있든지 동일한 매핑을 가져야 합니다; 다른 경우에는 에러가 발생합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Comparison
Member: !=

관련정보

a ~= b (almost equal to), a AND b, a == b (equal to), a > b (greater than), a >= b (greater than or equal to), a < b (less than), a <= b (less than or equal to), NOT a, a OR b, Comparison 영역, a XOR b, Comparator 및 Conditional 메뉴.


now() 오브젝트

현재의 시간을 출력하는 오브젝트

사용법

now()는 현재의 시간을 Real64 스칼라 컨테이너로 출력합니다. Real64 값은 UTC 기준 00:00 hours 1 January 0001 AD부터의 초 단위 숫자입니다.

사용예

now()는 약 63.3017G 을 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Time & Date
Member: now

관련정보

dmyToDate (d,m,y), hmsToHour (h,m,s), hmsToSec (h,m,s), mday(aDate), month(aDate), Time & Date, wday(aDate) 및 year(aDate).


a OR b 오브젝트

2개의 연산 숫자에서 논리연산 OR를 처리하는 오브젝트

사용법

a OR b는 2개의 컨테이너의 중에 하나가 논리적으로 참(0이 아닌 값)인지를 연산하기 위해 사용합니다. 2개의 컨테이너는 어떤 타입과 형태도 입력할 수 있습니다. 하나의 컨테이너가 어레이인 경우에는, 다른 컨테이너는 스칼라이든지 동일한 사이즈와 형태를 가진 어레이여야 합니다. 출력은 연산되는 숫자와 동일한 형태를 가진 Int32값 0 또는 1입니다. 2개의 연산 숫자 또는 둘중에 하나가 0이 아닌 경우에는, OR 연산 값은 1입니다; 다른 경우는 0입니다.

2개의 연산되는 숫자가 Boolean 타입인 경우에는, 출력값은 연산되는 숫자와 동일한 형태를 가진 Boolean 타입이 됩니다.

2개의 숫자가 Coord 타입이라면, 2개의 독립변수는 매칭되어야 하며 그렇지 않은 경우에는 에러가 발생합니다. OR 연산은 종속변수(마지막)에서만 처리됩니다.

Complex, PComplex, 및 Spectrum 컨테이너에 대해서는, 둘중에 하나의 항목이 0이 아닐 경우에는 숫자의 값은 참입니다. 텍스트는 nill이 아닌 경우에 참입니다. Enums는 연산을 위해 텍스트로 변환됩니다.

사용예

2개의 Boolean 스칼라: True OR False는 True를 출력합니다.

스칼라와 어레이: 3 OR [3, 3, 3]는 [1, 1, 1]을 출력합니다.

스칼라와 어레이: 0 OR [-3, 0, 3]는 [1, 0, 1]을 출력합니다.

2개의 어레이: [1, 0, 0] OR [0, 1, (-1)]는 [1, 1, 1]을 출력합니다.

2개의 PComplex 스칼라: (1,@90) OR (1,@85)는 1을 출력합니다.

2개의 PComplex 스칼라: (0,0) OR (0,1)는 1을 출력합니다.

2개의 PComplex 스칼라: (0,1) OR (1,0)는 1을 출력합니다.

2개의 Complex 스칼라: (0,0) OR (0,0)는 0을 출력합니다.

2개의 Coord 스칼라: coord(1,3) OR coord(1,5)는 1을 출력합니다.

2개의 Coord 스칼라: coord(1,3) OR coord(2,3)는 에러가 발생합니다.

텍스트 스칼라와 스칼라 숫자: "too" OR 0은 1을 출력합니다.

텍스트 스칼라와 스칼라 숫자: "" OR 0은 0이 스트링 “0”으로 상향 변환되어 null이 아니기 때문에 1을 출력합니다.

주의사항

하나의 컨테이너가 매핑되어 있다면(Waveform, Spectrum, Coord, 또는 다른 타입의 매핑된 어레이), 다른 컨테이너는 반드시 매핑이 안되어 있든지 동일한 매핑을 가져야 합니다. 출력값은 연산 숫자와 동일한 매핑을 가집니다; 다른 경우는 에러가 발생합니다.

If/Then/Else 디바이스는 모두 0이거나 모두 1인 스칼라 또는 어레이를 연산하기 위하여표현식이 필요합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Logical
Member: OR

관련정보

a AND b, NOT a, Comparison 영역, a XOR b, Conditional 메뉴 및 If/Then/Else.


ordinal(x)

ordinal(x) 오브젝트

x의 서수를 출력하는 오브젝트

사용법

ordinal(x)는 컨테이너의 서수 값을 연산하기 위해 사용합니다. x에는 어떤 형태(Shape)의 숫자도 입력할 수 있습니다. 예를 들어, 정수, 실수, Coord 및 Waveform에 대해서는 출력은 동일한 매핑을 가진 인수와 동일합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform
Enum | Int32

Enum에 대해서는, 출력값은 Enum의 서수 값을 가진 x와 같은 형태의 Int32입니다. Enum은 0부터 시작하여 n-1까지의 서수 값을 가진 Enum 상수에서 생성됩니다. 여기서 n은 리스트에 있는 Enum값의 숫자입니다.

사용예

Enum 상수가 "a", "b", 및 "c"의 순서를 가진 스트링으로 생성되고 현재의 값 “a”가 선택 경우에는, 컨테이너에서의 ordinal(x)는 첫번째 값이 선택되었기 때문에 0을 출력합니다. VEE는 0부터 시작합니다. 동일한 Enum 상수에서 현재 선택한 값이 “c”인 경우에는, 컨테이너에서의 ordinal(x)는 첫번째 선택된 값의 옵셋인 2를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Real Parts
Member: ordinal

관련정보

Complex Parts 영역, Selection Control 및 Real Parts 영역.


panelPosition() 오브젝트

UserFunction 패널의 위치를 출력하는 오브젝트

사용법

UserFunction 패널을 디스플레이하기 위해 showPanel()을 사용 했을 때, 패널의 위치를출력하기 위해 panelPosition()를 사용합니다. 출력값은 UserFunction 패널(패널에 테두리 및 타이들 영역이 있는 경우에는 이것들을 제외하고)의 좌측 상단의 위치를 포함하는 좌표입니다. 위치는 작업영역의 좌측 상단부터의 픽셀 숫자입니다.

오픈뷰

panelPosition()텍스트를 사용해야 하며, 괄호안에 다음의 파라미터를 입력합니다:

"UFname" – UserFunction의 이름. 이름 주위에 인용부호(“ ”)를 사용해야 하며, 꼭 필요한 파라미터 입니다.

사용자는 UserFunction 이름을 설정하기 위하여 panelPosition() 오브젝트에 데이터 입력터미날을 추가할 수 있으며, 반드시 "UFname"을 입력터미날의 이름으로 변경해야 합니다.

주의사항

UserFunction이 패널뷰를 가지고 있지 않거나 패널뷰가 프로그램에 디스플레이된 적이 없는 경우에는, panelPosition()는 Coord(0, 53)을 출력합니다.

UserFunction 패널이 디스플레이 되지 않은 경우에는, panelPosition()는 최근에 디스플레이 되었던 패널의 위치를 출력합니다.

panelPosition()오브젝트는 입력 없이 초기화 되고, panelPosition() 방정식을 포함하는 Formula 오브젝트입니다. 어떤 다른 Formula 오브젝트나 표현식에 panelPosition()을 입력할 수도 있습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Panel
Member: panelPosition

관련정보

Call, hidePanel(),
 lockPosition(), panelSize(),
 showPanel(), unlockPosition()
 및 UserFunction.


panelSize() 오브젝트

UserFunction 패널의 크기를 출력하는 오브젝트

사용법

UserFunction 패널을 디스플레이하기 위해 showPanel()을 사용 했을 때, 패널의 크기를출력하기 위해 panelSize()를 사용합니다. 출력값은 UserFunction 패널의 픽셀 단위 크기를 포함하는 좌표입니다. 크기는 테두리 및 타이틀 영역의 크기는 포함하지 않습니다. (패널에 존재 하는 경우)

오픈뷰

panelSize() 텍스트를 사용해야 하며, 괄호안에 다음의 파라미터를 입력합니다:

"UFname" - UserFunction의 이름. 이름 주위에 인용부호(“ ”)를 사용해야 하며, 꼭 필요한 파라미터 입니다.

사용자는 UserFunction 이름을 설정하기 위하여 panelSize()오브젝트에 데이터 입력터미날을 추가할 수 있으며, 반드시 "UFname"을 입력터미날의 이름으로 변경해야 합니다.

주의사항

UserFunction이 패널뷰를 가지고 있지 않거나 패널뷰가 프로그램에 디스플레이된 적이 없는 경우에는, panelSize()는 Coord (0, 0)을 출력합니다.

UserFunction 패널이 디스플레이 되지 않은 경우에는, panelSize()는 최근에 디스플레이 되었던 패널의 위치를 출력합니다.

panelSize() 오브젝트는 입력 없이 초기화 되고, panelSize()방정식을 포함하는 Formula 오브젝트입니다. 어떤 다른 Formula 오브젝트나 표현식에 panelSize()을 입력할 수도 있습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Panel
Member: panelSize

관련정보

Call, hidePanel(),
 lockPosition(), panelPosition(),
 showPanel(), unlockPosition()
 및 UserFunction.


perm(n,r) 오브젝트

n개중 서로 다른 r개를 뽑아내는 조합의 경우의 수를 연산하는 오브젝트

사용법

perm(n,r)은 다음의 공식을 사용하여 r을 가진 n개의 조합을 연산하기 위해 사용합니다:

Perm(n, r) = n! / (n - r)!

! 기호는 팩토리얼을 의미합니다. n은 어떤 타입과 형태를 가진 데이터도 입력할 수 있습니다. 두번째 r 파라미터는 입력값 n과 동일한 타입이든지, 동일한 타입으로 변환될 수 있어야 합니다. 2개의 입력값이 어레이인 경우에는, 어레이는 동일한 형태와 사이즈를 가져야 합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

perm(n, r)연산은 정수에서만 실행되기 때문에, 정수 이외의 입력숫자는 연산이 실행되기 전에 Int32로 변환됩니다.

사용예

perm(10,3)은 다음 공식에 의해 구해진 값 720을 출력합니다.
10!/(10-3)! = 10!/7! = 10*9*8 = 720.

perm(10.4,3.9)는 다음 공식에 의해 구해진 값 5040을 출력합니다.
10!/(10-4)! = 10!/6! = 10*9*8*7 = 5040. 실수를 Int32로 변환하는 규칙에 따라 10.4를 10으로, 3.9를 4로 변환합니다.

주의사항

n과 r은 반드시 양수여야 하고 n은 r보다 커야 합니다. 2개의 입력값이 매핑된 경우에는, 매핑은 동일해야 합니다. 입력값중의 하나가 매핑된 경우에는 출력값은 입력값과 동일한 매핑을 가져야 합니다. 2개의 입력값이 매핑되지 않은 경우에는 출력은 매핑되지 않습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: perm

관련정보

beta(x,y), binomial(a,b), comb(n,r), factorial(n) 및 gamma(x).


phase(x) 오브젝트

PComplex 숫자 x의 위상값을 출력하는 오브젝트

사용법

phase(x)는 PComplex 숫자 x의 위상값을 추출하기 위해 사용합니다. x에는 어떤 형태의 데이터도 입력할 수 있습니다. Complex, PComplex, 및 Spectrum 타입에 대해서는, phase(x)는 PComplex 숫자의 폴라 위상 각도를 가진 Real64 컨테이너를 출력합니다. (Complex는 먼저 PComplex로 변환됩니다.)

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8, 0 (zero)
Int16 | Int16, 0 (zero)
Int32 | Int32, 0 (zero)
Int64 | Int64, 0 (zero)
Real32 | Real32, 0 (zero)
Real64 | Real64, 0 (zero)
Coord | Coord, 0 (zero)
Waveform | Waveform, 0 (zero)
Complex | Real64
PComplex | Reail64
Spectrum | Real64

phase(x)값은 현재의 Trig Mode 단위로 출력합니다.

사용예

phase((1,@45))는 45를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Complex Parts
Member: phase

관련정보

conj(x), im(x), j(x), mag(x), re(x), Real Parts 영역, Build PComplex, Default Preferences 대화상자 및 UnBuild PComplex.


poly(x,vec) 오브젝트

poly(x,[a0, a1]), poly(x,[a0, a1, a2]), poly(x,[a0, a1, a2, a3]), 및poly(x,[a0, a1, ... aN])오브젝트에 대한 표기법 요약. 이들 오브젝트는 x와 vec 값에 대한 다항식을 출력합니다.

사용법

poly(x,vec)는 x 데이터와 vec 계수에 대한 다항식 결과를 생성하기 위해 사용합니다. vec는 스칼라이든지 1차원 어레이여야 합니다. poly(x,vec)는 vec의 앨리먼트는 다항식 계수로, x는 데이터로 취합니다. vec는 a0부터 시작하고 a1, 등으로, vec의 길이까지 입니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64

다항 방정식은 다음과 같이 계산됩니다:

a0 + a1*x + a2*x*x + a3*x*x*x + ...

사용예

poly([10, 2], [3, 2, 4])는 [423, 23]를 생성합니다.

주의사항

출력되는 컨테이너의 매핑은 입력 컨테이너 x와 동일합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Power
Member: poly

관련정보

ramp (numElem, from,thru).


Polynomial Regression 오브젝트

x,y)데이터에 임의의 각도의 다항곡선을 적용하기 위해 사용하는 오브젝트.

사용법

다항회귀는 데이터에 다음 방정식을 적용하기 위해 사용합니다.
y = C0 + C1*x + C2*x^2 + ... , 여기서 x는 x 좌표이고 C0, C1, 등은 계수로 연산됩니다. 다항 커브피팅을 연산하기 위해서는 Order 입력필드에 다항식의 차수가 제공되어야 합니다.

다항회귀 오브젝트는 하나의 독립변수를 가진 Coord 타입의 데이터 즉, (x,y)쌍이 입력되어야 합니다. 입력 어레이가 Coord 타입이 아닌 경우에는, 어레이를 Coord로 변환합니다. 입력 데이터가 매핑 (Waveform, Spectrum, 또는 매핑된 어레이)되어 있으면, Coord로 변환하는 것은 (x, y)쌍에서 x 부분을 생성하기 위한 매핑 정보를 사용합니다. 입력 데이터가 매핑되어 있지 않은 경우(예를 들어, 어레이)에는, (x, y)쌍에서 x 부분은 어레이에 있는 위치에서 생성됩니다.

오픈뷰 항목

오픈뷰에 있는 Fit Type 필드에서는 회귀 타입을 linear, logarithmic, exponential, power curve 또는 polynomial regression으로 설정합니다. 버튼을 클릭하면 전체 회귀 타입의 목록이 표시됩니다.

Order 입력 필드에는 데이터를 피팅할 다항식의 차수를 입력합니다. 다항식 차수는 1보다 크거나 동일합니다. 1차 다항식 커브피팅은 데이터를 직선으로 피팅하며, linear regression 을 선택한 결과와 같습니다.

사용예

좌표에서의 Regression 예제를 참조하십시오.

주의사항

Regression에 있는 회귀에 대한 일반적인 내용을 참조하십시오.

오브젝트 위치

Device [image] Regression

대화상자에 있는 Fit Type 필드에서 적절한 Fit Type을 선택하십시오.

관련정보

Regression, exponential regression, linear regression, logarithmic regression, meanSmooth (x,numPts), movingAvg (x,numPts), polySmooth (x), power curve regression 및 Build Coord.


polySmooth (x) 오브젝트

데이터의 다항식 피팅을 사용하여 데이터를 매끄럽게 하는 오브젝트

사용법

polySmooth(x)는 데이터를 매끄럽게 하기 위해 사용합니다. 4차 다항식이 데이터에 적용되고 새로운 데이터는 다항식을 사용하여 곡선 맞추기를 기준으로 연산됩니다. 4차 곡선 맞추기를 처리하기 위해서는, 5개의 포인트가 사용됩니다. 5개의 포인트는 적용 되어야 하는 데이터의 다른 사이드에 있는 2개의 포인트, 데이터 포인트, 2개의 마지막 포인트입니다. x 입력은 Array 1D 형태를 가져야 합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

Coord 타입의 독립변수는 등거리여야 합니다. 즉, 인접한 포인트들의 x 간격이 상수여야 합니다. smoothing은 종속변수에서 이루어집니다.(Coord의 y 데이터).

주의사항

5-앨리먼트 슬라이딩 윈도우에, 4차 Stirling collocation 다항식용 표준 공식을 적용하는 방식이 사용됩니다. Francis Scheid, Schaum's Outline of Theory and Problems of Numerical Analysis, McGraw Hill, New York, NY, 1968. ISBN #07-055197-9를 참조하십시오.

연산 숫자에 있는 매핑은 무시되고, 출력 컨테이너는 입력 값과 동일한 매핑을 가집니다.

이 기술을 적용하여 필터링하면, 데이터에서 노이즈를 억제한 고정된 “주파수응답”을 얻을 수 있습니다. 더 많은 노이즈 억제가 필요한 경우에는, 노이즈를 더 많이 억제할 수 있는 meanSmooth(x,numPts)함수를 참조하십시오.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Data Filtering
Member: polySmooth

관련정보

meanSmooth (x,numPts), movingAvg (x,numPts), Regression types 및 Signal Processing 영역.


Power 영역

Function & Object Browser 대화상자에 있는 Built-in Functions 영역

사용법

Power 그룹에는 제곱근, 제곱, 로그, 지수 및 상용로그 등의 파워함수(power functions)를 연산하는 다음과 같은 오브젝트를 제공합니다.

sq(x)

sqrt(x)

cubert(x)

recip(x)

log(x)

log10(x)

exp(x)

exp10(x)

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Power

관련정보

cubert(x), exp(x), exp10(x), log(x), log10(x), recip(x), sq(x), sqrt(x), a + b (add), a / b (divide), a ^ b (exponent), a * b (multiply) 및 a - b (subtract).


Power Curve Regression 오브젝트

(x,y)데이터에 파워커브를 적용하기 위해 사용하는 오브젝트

사용법

거듭제곱 회귀는 데이터에 방정식 y = C0 * x^C1을 적용하기 위해 사용합니다. 여기서 x는 x 좌표이고 C0, C1, 등은 계수로 연산됩니다.

검정력 곡선(power curve) 하나의 독립변수를 가진 Coord 타입의 데이터 즉, (x,y)쌍이 입력되어야 합니다. 입력 어레이가 Coord 타입이 아닌 경우에는, 어레이를 Coord로 변환합니다. 입력 데이터가 매핑 (Waveform, Spectrum, 또는 매핑된 어레이)되어 있으면, Coord로 변환하는 것은 (x, y)쌍에서 x 부분을 생성하기 위한 매핑 정보를 사용합니다. 입력 데이터가 매핑되어 있지 않은 경우(예를 들어, 어레이)에는, (x, y)쌍에서 x 부분은 어레이에 있는 위치에서 생성됩니다.

오픈뷰 항목

오픈뷰에 있는 Fit Type 필드는 회귀 타입을 linear, logarithmic, exponential, power curve 또는 polynomial regression으로 변경하기 위해 사용합니다. 버튼을 클릭하면 다른 회귀 타입의 리스트를 가져옵니다.

사용예

좌표에서의 Regression 예제를 참조하십시오.

주의사항

Regression에 있는 회귀에 대한 일반적인 내용을 참조하십시오.

이 함수는 매핑이 되지 않은 어레이에서는 동작하지 않습니다. 매핑이 되지 않은 어레이는 x=0으로 시작되는 Coord로 변환되며, 이 0을 로그함수에 사용하면 에러가 발생합니다. 로그함수는 내부 회귀 연산에 사용됩니다.

오브젝트 위치

Device [image] Regression

대화상자에 있는 Fit Type 필드에서 적절한 Fit Type을 선택하십시오.

관련정보

Regression, exponential regression, linear regression, logarithmic regression, meanSmooth (x,numPts), movingAvg (x,numPts), polynomial regression, polySmooth (x) 및 Build Coord.


Probability & Statistics 영역

Function & Object Browser에 있는 Built-in Functions 영역

사용법

Probability & Statistics 함수는 랜덤 숫자, 확률 및 통계 연산을 위해 사용합니다.

beta(x,y)

binomial(a,b)

comb(n,r)

erf(x)

erfc(x)

factorial(n)

gamma(x)

logMagDist(x,from,thru,logStep)

magDist(x,from,thru,step)

max(x)

mean(x)

median(x)

min(x)

mode(x)

perm(n,r)

random(low,high)

randomize(x,low,high)

randomSeed(seed)

rms(x)

sdev(x)

vari(x)

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics

관련정보

beta(x,y), binomial(a,b), comb(n,r), erf(x), erfc(x), factorial(n), gamma(x), logMagDist (x,from,thru, logStep), magDist(x, from,thru, step), max(x), mean(x), median(x), min(x), mode(x), perm(n,r), random (low,high), randomize (x,low,high), randomSeed (seed), rms(x), sdev(x) 및 vari(x)


product(x) 오브젝트

입력 어레이에 있는 모든 앨리먼트를 곱하는 오브젝트

사용법

product(x)는 입력 어레이에 있는 모든 앨리먼트를 곱하기 위해 사용합니다. x에는 어떤 사이즈와 형태를 가진 데이터도 입력할 수 있습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8
Int16 | Int16
Int32 | Int32
Int32 | Int64
Real32 | Real32
Real64 | Real64
Coord | Real64 scalar
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | PComplex Scalar

이 오브젝트의 출력은 입력 컨테이너에 포함된 모든 데이터의 산술 곱이며, 스칼라 형태를 가집니다.

사용예

x가 어레이[1, 2, 3, 4]이면, product(x)는 24를 출력합니다.

주의사항

연산되는 숫자에 있는 매핑은 무시됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Array
Member: product

관련정보

a * b (multiply) 또는 sum(x).


programName() 오브젝트

현재 실행중인 VEE 프로그램의 이름을 출력합니다.

사용법

현재 실행중인 VEE 프로그램에 대해 이름을 포함하는 전체 경로를 출력합니다. 이 함수는 파라미터가 없습니다.

주의사항

programName()오브젝트는 입력핀 없이 programName()방정식으로 초기화된 Formula 오브젝트입니다. 다른 Formula 오브젝트나 표현식에 programName()을 직접 입력하여 사용할 수도 있습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: System Information
Member: programName

관련정보

installDir, commandLine, Formula


ramp (numElem, from,thru) 오브젝트

선형으로 분할된 어레이를 생성하는 오브젝트

사용법

ramp(numElem,from,thru)는 from에서 thru (포함)까지 선형으로 분할된 값을 가진 numElem 길이의 Real64 1차원 어레이를 생성합니다. numElem는 스칼라 컨테이너든지 0보다 큰 값을 가진 Int64로 변환될 수 있어야 합니다. from 과 thru는 스칼라 컨테이너든지 Real64로 변환될 수 있어야 합니다.

from이 thru보다 작은 경우에는, 양의 수로 분할됩니다; 다른 경우에는 자동으로 음의 수로 분할됩니다.

사용예

ramp(3, 0.5, 0)은 [0.5, 0.25, 0]값을 가진 1차원 어레이를 출력합니다.

ramp(5, 2, 10)은 [2, 4, 6, 8, 10]값을 가진 1차원 어레이를 출력합니다.

주의사항

출력값은 매핑되지 않습니다.

값을 생성하는 알고리즘은 다음과 같습니다:

Y[I] = from + I*(thru-from/numElem-1)
for I=0..numElem-1

이것은 출력되는 어레이에 있는 마지막 앨리먼트가 thru 값을 가지도록 합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Generate
Member: ramp

관련정보

Alloc Real64, logRamp (numElem, from,thru) 및 xramp (numElem, from,thru).


random (low,high) 오브젝트

하위 값과 상위 값 사이에서 랜덤 숫자를 생성하는 오브젝트. 이 함수는 선형 합동(congruential) 알고리즘과 48-bit 정수 산술연산을 사용하여 가상의 랜덤 숫자를 생성합니다.

사용법

random(low,high)는 low와 high 값 사이에서 가상의 랜덤 숫자를 생성하기 위해 사용합니다. 생성되는 숫자는 하위 값은 포함하나 상위 값은 포함하지 않는 "[l h)"로 표시되는 간격에 있습니다. l과 h는 반드시 스칼라 형태를 가져야 합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64

Real64 스칼라는 "[l h)"의 범위에 있는 모든 경우를 출력합니다.

이 함수는 하나의 스칼라 값을 출력합니다. 어레이 입력을 가지는randomize(x,low,high) 함수는 스케일된 랜덤 숫자의 어레이를 생성합니다.

l 값이 h 보다 큰 경우에는, 출력되는 랜덤 숫자의 범위는 "(l h]" 간격 안에 있습니다.

사용예

random(0,1)는 (0.0 1.0) 범위에 있는 실수를 생성합니다. 즉, 0.0을 포함하나 1.0은 포함하지 않습니다.

주의사항

random(low,high)는 "(0.0 1.0)" 범위에 있는 실수 컨테이너를 출력합니다.

random(low,high)는 프로그램에서 사용한 시간에 따라 또는 반복자 오브젝트에 의해 매번 활성된 경우에 각기 다른 숫자를 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: random

관련정보

randomize (x,low,high) 또는 randomSeed (seed)


randomize (x,low,high) 오브젝트

이 오브젝트는 [low high) 범위에서 입력 컨테이너의 숫자를 무작위로 추출하기 위해 사용합니다. 생성되는 숫자는 low를 포함하나, high는 포함하지 않는 "[low high)"로 표시되는 범위에서 생성됩니다. 이 함수는 선형 합동(congruential) 알고리즘과 48-bit 정수 산술연산을 사용하여 가상의 랜덤 숫자를 생성합니다.

이 오브젝트는 Text 입력 컨테이너에서 [low high] 범위에 있는 스트링을 무작위로 추출하기 위해서도 사용합니다.

사용법

숫자인 경우:

randomize(x,low,high)는 하위 값과 상위 값 사이인 low 와 high 사이에서 가상의 랜덤 숫자를 생성하기 위해 사용합니다. 입력 컨테이너에 있는 모든 데이터 x는 가상의 랜덤 숫자로 덮어씌워집니다. x는 어떤 사이즈와 형태를 가진 데이터도 입력할 수 있습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord, 아래 참조
Waveform | Waveform
Complex | Complex
PComplex | PComplex, 아래 참조
Spectrum | Spectrum, 아래 참조

PComplex 및 Spectrum 타입에 대해서는, 숫자의 크기만 [low high)범위 안에서 사용합니다. 위상은 (-PI to PI) 범위 안에서 사용하는 랜덤입니다. Coord 타입에 대해서는, 단지 종속변수만이 무작위로 추출됩니다.

low 및 high 입력은 스칼라 형태를 가져야 하며, 출력되는 랜덤 숫자의 범위는 (low high] 간격 안에 있습니다.

low 값이 high 값 보다 크면, 출력되는 랜덤 숫자의 범위는 (low high] 간격 안에 있습니다.

스트링인 경우:

스트링에서 무작위로 추출하기 위해서는, 텍스트 데이터 타입의 입력값에서randomize(x,low,high)를 사용합니다. 입력 스트링(x 입력에 있는 데이터 컨테이너)은 [low high] 범위 안에서 가상의 랜덤 차순의 ASCII 문자 출력 스트링에 의해 덮어 씌워집니다. 여기서 low는 low 입력 컨테이너에 있는 첫번째 문자이고 high는 high 입력 컨테이너에 있는 첫번째 문자입니다. (범위는 숫자 값과는 다르게 low 및 high 값을 포함합니다. 출력 스트링의 길이는 입력 스트링의 길이와 동일합니다.

low 및 high의 디폴트 값은 스페이스(" ", ASCII 32) 와 틸더("~", ASCII 126) 입니다.

주의
디폴트 값은 low 또는 high의 입력데이터가 "" (널 스트링)일 때 사용됩니다.

사용예

숫자인 경우:

x 입력에 있는 컨테이너가 Real64 타입의 데이터인 경우에는, randomize(x,0,10)는 입력 컨테이너 x의 모든 값을 (0.0 10.0) 범위 내에서 실수 값으로 무작위로 추출합니다.

스트링인 경우:

randomize("abcdef","a","b")는 "abbaba"를 출력할 수 있습니다.

randomize("abcabcabcab","a","z")는 "pterodactyl"를 출력할 수 있습니다.(다른 값이 출력될 수 있습니다.!)

randomize("abcabc","","")는 "Al@z~#" 를 출력할 수 있습니다. (low 와 high가 널 스트링일 때, 디폴트 한계-- ASCII 32에서 126까지 --가 사용됩니다.)

randomize("aaaaa","go","stop")는 "smjpg"을 출력할 수도 있습니다. (단지 low 와high에 있는 첫번째 문자가 범위에 사용됩니다.)

randomize("aaaaa","97","99")는 "99999"를 출력합니다. (low 와 high 값은 ASCII십진수가 아니라 스트링으로 변환됩니다.

주의사항

입력 파라미터에 있는 매핑은 무시되고, 출력은 입력 파라미터 x와 동일한 매핑을 가집니다.

숫자 입력에 대해서는, randomize(x)는 (0.0 - 1.0) 범위에서 무작위로 추출된 데이터를 입력 x와 동일한 사이즈와 형태를 가진 컨테이너로 출력합니다.

스트링 입력에 대해서는, 출력되는 컨테이너 세트는 low = ASCII 32 및 high = ASCII 126의 한계를 벗어나서는 지정할 수 없습니다. 즉, 무작위 추출된 스트링에서 32 아래 및 126 위의 ASCII 문자는 출력되지 않습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: randomize

관련정보

random (low,high) 또는 randomSeed (seed).


randomSeed (seed) 오브젝트

random(low,high) 및 randomize(x,low,high)함수의 초기 값을 설정하는 오브젝트

사용법

randomSeed(s)는 random(low,high) 및 randomize(x,low,high)함수에 사용되는 선형 합동(congruential) 알고리즘의 초기 랜덤 포인트를 입력하기 위해 사용합니다.

초기 입력 s는 스칼라 형태를 가져야 하며 Int32 타입 또는 Int32 타입으로 변환할 수 있어야 합니다. 이 함수의 출력값은 s 초기값입니다.

사용예

randomSeed(97)는 가상의 랜덤 숫자 알고리즘을 초기화합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: randomSeed

관련정보

random (low,high) 또는 randomize (x,low,high).


re(x) 오브젝트

복소수 x의 실수 부분을 출력하는 오브젝트

사용법

re(x)는 복소수 x의 실수부분을 추출하는데 사용합니다. x는 어떤 형태의 데이터도 입력할 수 있습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8, 동일한 값
Int16 | Int16, 동일한 값
Int32 | Int32, 동일한 값
Int64 | Int64, 동일한 값
Real32 | Real32, 동일한 값
Real64 | Real64, 동일한 값
Coord | Coord, 동일한 값
Waveform | Waveform, 동일한 값
Complex | Real64, 복소수의 실수 부분
PComplex | Real64, 복소수의 실수 부분
Spectrum | Real64, 복소수의 실수 부분

PComplex는 먼저 복소수로 변환됩니다.

사용예

re( (1,2) )는 1을 출력합니다.

re(1,@180)는 각도 단위로, -1을 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Complex Parts
Member: re

관련정보

Complex Parts 영역, conj(x), im(x), j(x), mag(x), phase(x) 및 Real Parts 영역.

Build Complex 또는 UnBuild Complex.


Real Parts 영역

Function & Object Browser 대화상자에 있는 Built-in Functions 영역

사용법

Real Parts는 컨테이너의 다른 실수 부분을 출력하는 다음의 오브젝트를 제공합니다:

abs(x)

signof(x)

ordinal(x)

round(x)

floor(x)

ceil(x)

intPart(x)

fracPart(x)

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Real Parts

관련정보

abs(x), ceil(x), floor(x), fracPart(x), intPart(x), ordinal(x), round(x), signof(x) 및 Complex Parts 영역.


recip(x) 오브젝트

x값의 역수를 출력하는 오브젝트

사용법

recip(x)는 숫자의 역수를 생성하는데 사용합니다; 즉, 1을 x로 나눈 값입니다. x에는 어떤 형태를 가진 데이터도 입력할 수 있으며, 동일한 형태가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

PComplex에 대해서는, recip(x)는 크기의 역수로 정의되고 위상의 부호는 반대로 됩니다. 복소수는 함수가 적용되기 전에 PComplex로 변환됩니다.

사용예

recip( (5, @45) )는 (0.2, @-45)를 출력합니다.

recip( (1,-1)) )는 (0.5, 0.5)를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Power
Member: recip

관련정보

a / b (divide), Power, sq(x) 및 sqrt(x).


rect(x) 오브젝트

시간 영역의 값에 직교좌표 윈도우를 적용하기 위해 사용하는 오브젝트

사용법

rect(x)는 직교좌표 함수의 스펙트럼 변환을 사용하여 x를 컨볼빙하는 것과 같은 방법으로 x를 필터링하기 위해 사용합니다. 이것은 입력 시퀀스의 꼬리와 주기 신호를 샘플링할 때 나타나는 끊김 현상에 의해 발생하는 일부 노이즈를 억제하는 효과가 있습니다. 입력값 x는 Array 1D여야 합니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Spectrum | Spectrum

x가 스펙트럼이라면, 이것은 윈도우가 적용되기 전에 ifft(x)를 사용하여 먼저 웨이브폼으로 변환되어야 합니다. 윈도우의 출력값은 fft(x)를 사용하여 스펙트럼으로 재 변환됩니다.

사용예

rect([1, 1, 1, 1, 1, 1, 1, 1])는 [1, 1, 1, 1, 1, 1, 1, 1]를 출력합니다.

주의사항

rect함수는 시간영역의 모든 값에 대해서 1 의 값을 가집니다. 여기서, 0 <= n <= N -1 의 범위이고, n은 어레이에 있는 위치(인덱스)이고, N은 어레이의 사이즈입니다. 출력값은 x와 동일한 타입의 어레이가 되고 x와 동일한 매핑을 가집니다.(어떤 값이든)

사이드로브 레벨과 coherent 게인에 대한 내용은 다음 서적을 참조하십시오: Ziemer, Tranter, and Fannin, Signals and Systems, Macmillan Publishing, New York, NY, 1983. ISBN #0-02-431650-4.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Signal Processing
Member: rect

관련정보

bartlet(x), blackman(x), convolve(a,b), fft(x), hamming(x) 및 hanning(x).


Regression 오브젝트

메뉴 항목

사용법

Regression은 데이터에 다양한 타입의 회귀 방정식을 피팅하기 위해 사용합니다.

linear

logarithmic

exponential

power curve

polynomial

주의사항

모든 Regression 오브젝트는 어레이 형태의 Coord 타입이 입력됩니다. 입력 어레이가 Coord 타입이 아닌 경우에는, 입력값은 Coord 타입으로 변환됩니다. Coord 타입으로 변환은 표준타입변환 규칙을 따릅니다. 입력 어레이가 매핑되어 있지 않으면, (x,y)쌍 데이터의 x는 어레이에 있는 위치로부터 생성됩니다. x 값은 0부터 시작하여 n-1까지 입니다. 여기서 n은 데이터의 포인트 수입니다. 입력 어레이가 매핑되어 있으면 생성된 x 데이터는 매핑의 하위 값부터 상위 값까지의 범위를 가집니다

Regression 오브젝트는 선택한 방정식으로 피팅한 어레이 데이터를 출력합니다. 출력 어레이의 포인트 수는 입력 어레이 데이터와 동일합니다. 각 회귀 타입별에 대한 상수에 대응하는 계수 어레이도 출력합니다. 데이터를 피팅할 방정식을 선택하기 위해서는 각 회귀타입을 참조하십시오. 세번째 출력은 R 제곱 또는 “적합도” 계수입니다. 범위는 -1에서 1사이 입니다. -1 또는 1에 대한 피팅은 정확한 피팅이고, -1과 1사이에서 있는 숫자는 적합도에 대한 다양한 차수를 표시합니다.

사용예

매핑되지 않은 어레이[10, 20, 30, 40, 50]이 입력되면, 이 어레이는 Coord 어레이로 변환됩니다: [ (0, 10), (1, 20), (2, 30), (3, 40), (4, 50) ].

입력 어레이가 어레이[1, 2, 3, 4, 5]이고, 1부터 2까지 매핑되어 있으면, 이 어레이는 Coord 어레이로 다음과 같이 변환됩니다:

[ (1, 1), (1.25, 2), (1.5, 3), (1.75, 4), (2, 5) ].

오브젝트 위치

Device [image] Regression

관련정보

exponential regression, linear regression, logarithmic regression, polynomial regression, power curve regression, meanSmooth (x,numPts), movingAvg (x,numPts) 및 polySmooth (x).

속성창 (오브젝트)


rms(x) 오브젝트

입력 컨테이너에 있는 데이터의 평균제곱근(Root Mean Square)을 출력하는 오브젝트

사용법

rms(x)는 입력 컨테이너의 평균제곱근 값을 연산하기 위해 사용합니다. 평균 제곱근은 [(The sum of x^2)/N]의 제곱근으로 정의됩니다. 여기서 N은 포인트 수입니다. x에는 어떤 사이즈와 형태를 가진 데이터도 입력할 수 있습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64 Scalar
Int16 | Real64 Scalar
Int32 | Real64 Scalar
Int64 | Real64 Scalar
Real32 | Real64 Scalar
Real64 | Real64 Scalar
Coord | Real64 Scalar
Waveform | Waveform

Coord 타입에 대해서는, 실행은 종속변수에서 이루어집니다.

사용예

x가 어레이 [1, 2, 3, 4, 5, 11, 12, 13, 14, 34]이면, rms(x)는 13.319159를 출력합니다.

주의사항

연산되는 숫자에 있는 매핑은 무시됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: rms

관련정보

max(x), mean(x), median(x), min(x), mode(x), sdev(x) 및 vari(x).


rotate(x, numElem) 오브젝트

어레이 있는 앨리먼트를 로테이션 시키는 오브젝트

사용법

rotate(x,n)는 입력 어레이의 앨리먼트를 n 위치만큼 로테이션 시키기 위해 사용합니다. x에는 어떤 사이즈와 형태를 가진 데이터도 입력할 수 있습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum
Text | Text

n 입력값은 Int32 스칼라이거나 Int32 타입으로 변환될 수 있어야 합니다. n 로테이션 값이 양수인 경우에는, 로테이션 방향은 어레이를 아래방향(앞으로)으로 내립니다. 예를 들어, n이 2인 경우에는, 어레이의 첫번째 앨리먼트는 3번째 위치(x[2])로 이동하고, 두번째 앨리먼트는, 4번째 위치로 이동합니다. n 값이 음수인 경우에는, 어레이 앨리먼트는 어레이 위로(뒤로) 로테이션합니다.

로테이션 숫자 n이 어레이에 있는 앨리먼트 숫자보다 큰 경우에는, 로테이션 숫자를 어레이의 개수로 나눈 modulo(나머지)가 로테이션 숫자가 됩니다. 예를 들어, 입력 어레이가 5개의 앨리먼트로 구성되고 어레이를 13자리만큼 로테이션하는 경우에는, modulo 실행(13 MOD 5 = 3)은 어레이가 3자리만큼 로테이션 되도록 연산합니다.

사용예

rotate(x,5)는 입력 어레이 앨리먼트를 5 위치만큼 어레이에서 오른쪽으로 로테이션 시킵니다.

rotate(x,15), 여기서 입력 어레이 x가 15개의 앨리먼트를 가진 경우에는, 어레이를 로테이션하여 제자리로 돌아왔기 때문에 변화가 없습니다.

rotate([1, 2, 3, 4, 5], 1)는 [5, 1, 2, 3, 4]를 출력합니다.

주의사항

어레이는 로테이션 함수를 사용할 때 어레이에 있는 마지막 앨리먼트가 첫번째 앨리먼트로연결되는 것을 의미하는 순환리스트로 생각할 수도 있습니다. 어레이 앨리먼트를 어레이의 끝을 지나 로테이션할 때는, 로테이션은 리스트의 상단으로 되돌아 갑니다. 예를 들어, 어레이가 10개의 앨리먼트로 구성되고 rotate(A,5)를 실행하면, 10번째 어레이 앨리먼트가 어레이에서 5번째 위치로 이동합니다.

입력 어레이에 있는 매핑은 무시되고 출력은 입력 파라미터 x와 동일한 매핑을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Array
Member: rotate

관련정보

concat(x,y) 또는 init(x,val).


round(x) 오브젝트

x의 반올림 값을 출력하는 오브젝트

사용법

round(x)는 컨테이너의 가장 가까운 정수인 반올림 값을 얻기 위해 사용합니다. x에는 어떤 사이즈와 형태를 가진 데이터도 입력할 수 있습니다. round(x)함수는 x에 가장 근접한 정수(동일한 타입으로)를 출력합니다. 반올림을 위해 나누는 라인은 0.5입니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

round([23.0, 23.1, 23.9, 23.5, (-23.5)])는
[23, 23, 24, 24, -23]를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Real Parts
Member: round

관련정보

abs(x), ceil(x), Complex Parts 영역, floor(x), fracPart(x), intPart(x) 또는 Real Parts 영역.


savePanelImage(UFName, fileName, numColors) 오브젝트

UFName에서 지정하는 UserFunction의 패널 이미지를 numColors의 픽셀을 사용하여fileName 파일에 저장합니다.

사용법

savePanelImage(UFName, fileName, numColors)는 VEE UserFunction 패널을 프로그램상에서 표준 그래픽 파일로 만들기 위해 사용합니다. 이것은 VEE UserFunction 패널을 레포트에서 사용할 수 있게 합니다. UserObject 패널은 savePanelImage 함수에서는 지원하지 않습니다.

프로그램을 반복적으로 실행할 때, 그래픽 파일은 fileName을 변경하지 않는 한 따로 알리지 않고 덮어 씌웁니다.

오픈뷰

이 함수는 3개의 파라미터를 제공합니다; 단지 UFName만 필요합니다:

"UFName" - (필요사항) UserFunction 타이틀 바에 있는 이름. "UFName" 위치에 특별한 이름 "Execution Window"(여기에 나타낸 바와 같이 정확히 입력해야 합니다.)를 사용할 수 있습니다. 파일이름은 인용부호(“”)를 사용해야 합니다.

"fileName" - (선택사항) 만든 이미지를 위한 저장할 드라이브와 디렉토리를 포함하는 타겟 파일이름. 파일이름은 인용부호를 사용해야 합니다. 디폴트 파일 이름은 UFName의 기본 이름을 사용합니다. UFName이 Execution Window인 경우에는, 디폴트 파일 이름은 Execution이 됩니다. 디폴트 저장위치는 VEE 디폴트 작업 디렉토리이며, VEE를 표준으로 설치했을 때는 "C:\My Documents" 위치 입니다.

fileName의 확장자는 출력 파일의 그래픽 포맷을 결정합니다. 디폴트 그래픽 포맷은 JPEG입니다. 지원되는 포맷은 다음과 같습니다.

.bmp - 비트맵

.jpg/.jpeg - Joint Photographic Experts Group (JPEG)

numColors - (선택사항) 픽셀당 최대의 색상 숫자를 지정하는 색상의 깊이. 이 숫자는 2의 거듭제곱 (2, 4, 8, ... 2M)입니다. 디폴트 값은 256입니다.

주의
numColors는 비트맵 그래픽 파일(.bmp)에만 적용됩니다. 적은 숫자를 지정하면 출력되는 파일의 사이즈를 줄이고 이미지의 선명도가 낮아 집니다.

사용예

다음 예제는 디폴트 파라미터를 사용하여 my_userfunc으로 지정된 로컬 UserFunction의 이미지를 만듭니다. 파일은 현재의 VEE 작업 디렉토리에 my_userfunc.jpeg로 저장됩니다.

savePanelImage("my_userfunc")

다음 예제는 현재 상태에서 실행 윈도우를 저장하는 것을 제외 하고는 이전 예제와 유사합니다.

savePanelImage("Execution Window")

다음 예제는 JPEG 포맷으로 someUF라는 이름의 로컬 UserFunction에 대한 이미지를 만들어, d:\tmp\somedir 위치에 myimage.jpeg 파일이름으로 저장합니다.

savePanelImage("someUF", "d:/tmp/somedir/myimage.jpeg")

다음 예제는 BMP 포맷을 사용하여 someUF라는 이름의 로컬 UserFunction에 대한 이미지를 만들어, d:\tmp\somedir위치에 myimage.bmp 파일이름으로 저장합니다. 이것은 디폴트 256 대신에 픽셀당 16 컬러를 사용하여 저장합니다.

savePanelImage("someUF", "d:/tmp/somedir/myimage.bmp", 16)

다음 예제는 lib1 라이브러리에 있는 statusPanel이라는 이름의 임포팅된 UserFunction에 대한 이미지를 만듭니다. 이것은 JPEG 포맷을 사용하여 /usr/lib/veepanels 디렉토리에 status.jpeg 파일이름으로 저장합니다.

savePanelImage("lib1.statusPanel", "/usr/lib/veepanels/status.jpeg")

주의사항

savePanelImage()함수는 3개의 파라미터용 데이터 입력을 가진 Formula 오브젝트로 생성됩니다. savePanelImage()함수는 다른 Formula 오브젝트에 입력할 수 있습니다.

Formula 오브젝트에 이름을 붙힌 컨트롤 입력핀을 추가하여 프로그램상에서 전체 표현식을 입력할 수 있습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Panel
Member: savePanelImage

관련정보

Call, Execution Window, hidePanel(), showPanel() 및 UserFunction.


sdev(x) 오브젝트

입력 컨테이너에 있는 데이터의 표준편차를 출력하는 오브젝트

사용법

sdev(x)는 컨테이너의 표준편차를 연산하기 위해 사용합니다. sdev(x)는 vari(x)의 제곱근으로 정의됩니다. x에는 어떤 사이즈와 형태를 가진 데이터도 입력할 수 있습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64 Scalar
Int16 | Real64 Scalar
Int32 | Real64 Scalar
Int64 | Real64 Scalar
Real32 | Real32 Scalar
Real64 | Real64 Scalar
Coord | Real64 Scalar
Waveform | Real64 Scalar

Coord 타입의 입력에 대해서는, 연산은 종속변수에서 이루어집니다.

사용예

x 가 어레이[1, 2, 3, 4, 5, 11, 12, 13, 14, 34]이면, sdev(x)는 9.50789를 출력합니다.

주의사항

연산되는 숫자에 있는 매핑은 무시됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: sdev

관련정보

max(x), mean(x), median(x), min(x), mode(x), rms(x) 및 vari(x).


setBit(x,n) 오브젝트

n번째 비트가 1로 설정된 x를 출력하는 오브젝트

사용법

setBit(x,n)는 컨테이너 x에 대하여 특정한 바이너리 숫자를 1로 설정하기 위하여 사용합니다. x에는 어떤 형태의 숫자도 입력할 수 있습니다. x가 Real32, Real64, Coord 또는 Waveform 타입인 경우에는, 실행되기 전에 Int32로 변환됩니다.

입력가능한 종류 |  | 출력 종류
x | n
UInt8 | 0-31 | UInt8
Int16 |  | Int16
Int32 |  | Int32
Int64 | 0-63 | Int64
Real32 | 0-31 | Int32
Real64 |  | Int32
Coord |  | Int32
Waveform |  | Int32

n은 Int32 컨테이너든지 Int32로 변환될 수 있어야 하며 0부터 31(포함)사이(x가 Int64 타입인 경우에는 0부터 63 사이). 의 값을 가집니다 n은 스칼라 이든지 x의 형태와 동일해야 합니다.

사용예

setBit(8,0)은 9를 출력합니다.

setBit(8.24,0.9)는 9를 출력합니다.

주의사항

출력값의 매핑은 x 파라미터와 동일합니다.

가장 작은 유효 비트는 오른쪽에 있고, 가장 큰 유효 비트는 왼쪽에 있습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bitwise
Member: setBit

관련정보

bit(x,n), bits(str), Bitwise 및 clearBit(x,n).


showPanel() 오브젝트

UserFunction 패널을 디스플레이 하는 오브젝트

사용법

showPanel()은 hidePanel()이 실행되거나 프로그램이 실행을 완료할 때까지UserFunction 패널을 디스플레이 하기 위해 사용합니다. showPanel()은 패널을 필요할 때까지 디스플레이할 수 있습니다. showPanel()을 사용하기 위해서는, UserFunction에 있는 Show Panel on Execute 항목이 선택되어 있지 않아야 합니다.

오픈뷰

3 종류의 showPanel() 오브젝트가 있습니다. 편집 필드에 텍스트 showPanel()을 사용해야 합니다. 괄호 안에 다음의 파라미터를 입력할 수 있습니다:

"UFname" - UserFunction의 이름. 이름 주위에 인용부호(“ ”)를 사용해야 하며, 꼭 필요한 파라미터 입니다.

x, y - UserFunction 패널(테두리 부분 및 타이틀바가 있는 경우에는 포함하여)의 좌측 상단 코너의 위치(픽셀 단위). 이 파라미터는 선택사항 입니다; x와 y 좌표를 지정하지 않은 경우에는, 패널은 작업영역의 중앙에 디스플레이됩니다.

width, height - 패널의 사이즈(픽셀 단위). 이 파라미터는 선택사항 입니다; width 및height를 지정하는 경우에는, x, y 파라미터를 반드시 지정해야 합니다. width 및 height를 지정하지 않은 경우에는, 현재의 패널 사이즈가 사용됩니다. width 및 height 설정은 패널뷰의 오른쪽 공간은 추가하고 왼쪽 공간은 제외하며, 타이틀바와 테두리가 있는 경우에는 이를 포함합니다.

파리미터를 동일한 이름을 가진 입력 터미날로 대체한 경우에는, 입력 파라미터를 설정하기 위하여 showPanel()에 데이터 입력핀을 추가할 수 있습니다.

주의사항

showPanel()은 UserFunction을 실행하지는 않으며, 단지 패널뷰를 디스플레이 합니다. 패널을 보고 UserFunction을 실행하기 위해서는, showPanel()을 사용한 다음에 UserFunction을 호출합니다.

UserFunction이 실행될 때 패널뷰 만을 보기 위해서는, showPanel()을 사용하는 대신에UserFunction에서 Show Panel on Execute 항목을 선택합니다.

The showPanel()오브젝트는 입력 없이 초기화 되고, showPanel(...) 방정식을 포함하는 Formula 오브젝트입니다. Formula 또는 Sequencer 오브젝트와 같이 표현식을 입력할 수 있는 오브젝트에 showPanel()(관련된 파라미터와 함께)을 입력할 수도 있습니다.

컨트롤핀을 통해서 전체의 showPanel() 방정식을 입력할 수도 있습니다.

VEE는 작업영역의 크기에 따른 팝업패널의 위치를 제한하지는 않습니다. 패널을 “off-screen”(화면에서 보이지 않게)상에 x와 y를 지정할 수도 있습니다.

showPanel()로 설정된 모든 패널은 프로그램이 실행되는 동안에만 나타납니다.

한번에 하나의 UserFunction 패널만을 디스플레이할 수 있습니다. UserFunction 이름과 동일한 이름을 가진 showPanel()을 추가적으로 호출한 경우에는, 최근에 호출한 패널이 나타나고 이전 패널은 숨겨집니다.

디스플레이 되는 패널의 이름을 보기 위해서는, 패널에서 마우스 오른쪽 버튼을 누르면 패널 이름이 팝업 됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Panel
Member: showPanel

관련정보

Call, hidePanel(),
 lockPosition(), panelPosition(),
 panelSize(), unlockPosition()
 및 UserFunction.


Signal Processing 영역

Function & Object Browser 대화상자에 있는 Built-in Functions 영역

사용법

Signal Processing 그룹은 1차원 어레이(UInt8, Int16, Int32, Real32, Real64, Complex, PComplex, Waveform, Spectrum) 및 2 차원 좌표 목록에 적용되는 시그날 프로세싱 함수를 제공합니다.

fft(x)

ifft(x)

convolve(a,b)

xcorrelate(a,b)

bartlet(x)

hamming(x)

hanning(x)

blackman(x)

rect(x)

주의사항

Signal Processing 그룹에서 제공되는 내장함수는 순차적인 동일간격의 1차원 어레이에 적용할 수 있습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Signal Processing

관련정보

bartlet(x), blackman(x), convolve(a,b), fft(x), hamming(x), hanning(x), ifft(x), rect(x) 및 xcorrelate (a,b).


signof(x) 오브젝트

x의 부호를 출력하는 오브젝트

사용법

signof(x)는 컨테이너의 부호를 얻기 위해 사용합니다. x에는 어떤 형태의 숫자도 입력할 수 있으며 같은 형태의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Int32
Real64 | Int32
Coord | Int32
Waveform | Int32

출력값은 x 값이 음수, 0, 또는 양수인지에 따라 -1, 0, 또는 +1을 가집니다. x가 음수인 경우에는, -1을 출력합니다; x가 0이면, 0이 출력됩니다; x가 양수이면 +1을 출력합니다.

사용예

signof([23, 0, -1])는 [1, 0, -1]을 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Real Parts
Member: signof

관련정보

abs(x), Complex Parts 영역 및 mag(x).


sin(x) 오브젝트

x의 사인값을 출력하는 오브젝트

사용법

sin(x)는 x의 사인값을 생성하기 위해 사용합니다. x는 현재 설정된 Trig Mode 단위임을 전제합니다. x에는 어떤 형태의 숫자도 입력할 수 있으며 같은 형태의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

사용예

sin([0, PI/2])는 라디안 값으로 [0, 1]을 출력합니다.

sin((1, @PI))는 라디안 값으로 (0.84147, @3.14159)를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다. Default Preference에서 Trig모드를 Radian을 제외한 다른 모드로 설정할 경우에는 12자리수를 넘게 되어 정확도에서 에러가 발생합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: sin

관련정보

asin(x), cos(x), tan(x), sinh(x), Trig 영역 및 Default Preferences 대화상자.


sinh(x) 오브젝트

x의 하이퍼볼릭 사인값을 출력하는 오브젝트

사용법

sinh(x)는 x의 하이퍼볼릭 사인값을 생성하기 위해 사용합니다. x에는 어떤 형태의 숫자도 입력할 수 있으며 같은 형태의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

사용예

sinh(1.2)는 1.509를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: sinh

관련정보

asinh(x), cosh(x), Trig 영역, sin(x) 및 tanh(x).


sort(x, direction, field) 오브젝트

어레이 데이터(어떤 데이터 타입이든)를 정렬하는 함수

사용법

Formula 오브젝트에서 sort 함수는 입력 x에 있는 어레이 데이터를 정렬하기 위해 사용합니다. 모든 데이터 타입을 사용할 수 있고, 데이터는 디폴트로 오름차순으로 정리됩니다. Formula 오브젝트에 sort를 사용하는 경우에 구문은 다음과 같습니다:

sort(x [,방향[,필드] ] )

여기서:

정렬방향(선택사항)은 정렬하는 방향을 지정합니다. 디폴트 값은 오름차순이고, 0이 아닌 값은 오름차순을 지정합니다. 0은 내림차순으로 정렬하는 것을 지정합니다.

field (선택사항)는 정렬해야 할 어레이에 있는 필드를 지정합니다:

실수, 정수 및 텍스트 타입의 데이터에 대해서는, 이 파라미터는 무시됩니다.

Complex 타입의 데이터에 대해서는, 실수 필드에서 정렬하기 위해서 0 또는 “실수”를 지정합니다. 허수 필드에서 정렬하기 위해서는 1 또는 “허수”를 지정합니다. 3개의 모든 파라미터는 지정되어야 합니다.

PComplex 타입의 데이터에 대해서는, 크기 필드에서 정렬하기 위해서 0 또는 “mag”를 지정합니다. 위상 필드에서 정렬하기 위해서는 1 또는 “phase”를 지정합니다. 3개의 모든 파라미터는 지정되어야 합니다.

Coordinate타입의 데이터에 대해서는, 어레이는 디폴트로 종속변수에 의해 정렬됩니다. (x-y 쌍에서 "y", x-y-z 세 쌍에서는 "z"). x 필드에서 정렬하기 위해서는 0 또는 "x" 를 지정하고, y 필드에서 정렬하기 위해서는 1 또는 "y"를 지정합니다. (Coordinate 타입의 데이터 에서는, 필드 이름은 입력 터미날의 이름을 변경할 지라도 항상 x, y, z, w, v, u, t, s, r, q가 되어야 합니다.)

Record타입의 데이터에 대해서는, 어레이는 디폴트로 첫번째 필드에 의해 정렬됩니다. 또는 숫자(0, 1, 등)나 이름("operator", "date", 등)으로 필드를 지정할 수 있습니다.

사용예

sort(x)는 실수 어레이 x를 오름차순으로 정렬합니다.

sort(x,0)는 실수 어레이 x를 내림차순으로 정렬합니다.

sort(x,1,"real") 또는 sort(x,1,0)는 Complex 어레이 x를 실수 필드를 기준으로 오름차순으로 정렬합니다.

sort(x,0,"phase") 또는 sort(x,0,1)는 PComplex 어레이 x를 위상을 기준으로 내림차순으로 정렬합니다.

sort(x,1,"A") 또는 sort(x,1,0) Coordinate 어레이 x를 "A"를 기준으로 내림차순으로 정렬합니다.

sort(x,1,1)는 Record 어레이 x를 두번째 필드를 기준으로 내림차순으로 정렬합니다.

주의사항

텍스트 데이터는 표준 ASCII 문자코드 순서에 의해 정렬됩니다. 대문자는 소문자보다 앞섭니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Array
Member: sort

관련정보

Formula.


sq(x) 오브젝트

x값의 제곱을 출력하는 오브젝트

사용법

sq(x)는 숫자 x의 제곱을 연산하는데 사용합니다(x를 x로 곱합니다). x에는 어떤 형태의 숫자도 입력할 수 있으며 같은 형태의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

사용예

sq([1, 4])는 [1, 16]를 출력합니다.

sq((1,2))는 복소수 (-3,4)를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Power
Member: sq

관련정보

Power 또는 sqrt(x).


sqrt(x) 오브젝트

x값의 제곱근을 출력하는 오브젝트

사용법

sqrt(x)는 숫자 x의 제곱근을 연산하는데 사용합니다. x에는 어떤 형태의 숫자도 입력할 수 있으며 같은 형태의 숫자가 출력됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

PComplex에 대해서는, sqrt(x)는 크기에 대한 제곱근과 위상의 반값으로 정의됩니다. Complex는 함수가 적용되기 전에 PComplex로 변환됩니다.

사용예

sqrt( (16, @90) )는 (4, @45)를 출력합니다.

sqrt( (1,1) )는 (1.1, 0.455)를 출력합니다.

sqrt([4, 9, 64])는 [2, 3, 8]를 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Power
Member: sqrt

관련정보

cubert(x), a ^ b (exponent), Power 및 sq(x).


Statistics

Probability & Statistics 영역을 참조하십시오.


strDown(str) 오브젝트

스트링에 있는 모든 알파벳 대문자를 소문자로 변경하는 오브젝트

사용법

strDown(str)은 입력 스트링 str에 있는 모든 문자를 소문자로 변경하기 위해 사용합니다. 모든 알파벳 대문자("A" 에서 "Z" 까지)는 해당하는 소문자로 변환됩니다. 알파벳 문자가 아닌 ASCII 문자는 변경되지 않고 남습니다.

사용예

strDown("ABCdefg%+#")는 "abcdefg%+#"를 출력합니다.

strDown("123456")는 "123456"를 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: String
Member: strDown

관련정보

strRev(str), strTrim (str,trimlist), strUp(str) 및 String.


strFromLen (str,from,len) 오브젝트

지정하는 길이와 지정하는 포인트에서 시작하는 서브 스트링을 출력하는 오브젝트

사용법

strFromLen(str,from,len)는 입력 스트링 str에서, 인덱스 위치 from에서 시작하고 바이트 단위인 len 까지의 길이를 가지는 서브 스트링을 출력하기 위해 사용합니다. from = 0인 경우에는, 서브 스트링은 입력 스트링의 시작 포인트부터 시작합니다. 스트링은 0부터 인덱싱 됩니다.

주의사항

len 값이 0보다 작거나 같은 경우에는, nil 스트링이 출력됩니다.

from 값이 입력 스트링 str의 길이보다 큰 경우에는, nil 스트링이 출력됩니다.

len 값이 입력 스트링 str의 길이보다 큰 경우에는, 출력되는 스트링은 입력 스트링의 끝에서 정지합니다.

입력 스트링이 스트링 어레이인 경우에는, 입력 어레이의 각 앨리먼트는 각기 다른 스트링으로 처리됩니다. 출력값은 스트링 어레이입니다.

사용예

strFromLen("Now is the time",0,6)는 "Now is"를 출력합니다.

strFromLen("Now is the time",6,9)는 " the time"를 출력합니다.

strFromLen("Now is the time",0,30)는 "Now is the time"를 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: String
Member: strFromLen

관련정보

strFromThru (str,from, thru), strPosChar (str,char), strPosStr (str1,str2) 및 String 영역.


strFromThru (str,from, thru) 오브젝트

지정하는 길이와 지정하는 포인트에서 끝나는 서브 스트링을 출력하는 오브젝트

사용법

strFromThru(str,from,thru)는 입력 스트링 str에서, 인덱스 위치 from에서 시작하고 인덱스 위치 thru에서 끝나는 서브 스트링을 출력하기 위해 사용합니다. from = 0인 경우에는, 서브 스트링은 입력 스트링의 시작 포인트부터 시작합니다. 스트링은 0부터 인덱싱 됩니다.

주의사항

from 이나 true 값이 음수인 경우에는 0으로 변환됩니다.

from 이나 true 값이 입력 스트링 str의 길이보다 큰 경우에는 입력 스트링에 있는 마지막 문자의 인덱싱 위치로 변환됩니다.

from 값이 입력 스트링 str의 길이보다 크거나, thru 보다 큰 경우에는, nil 스트링이 출력됩니다.

입력 스트링이 스트링 어레이인 경우에는, 입력 어레이의 각 앨리먼트는 각기 다른 스트링으로 처리됩니다. 출력값은 스트링 어레이입니다.

사용예

strFromThru("Now is the time",0,6)는 "Now is "를 출력합니다.

strFromThru("Now is the time",0,0)는 "N"를 출력합니다.

strFromThru("Now is the time",6,9)는 " the"를 출력합니다.

strFromThru("Now is the time",0,30)는 "Now is the time"를 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: String
Member: strFromThru

관련정보

strFromLen (str,from,len), strPosChar (str,char), strPosStr (str1,str2) 및 String 영역.


String 영역

Function & Object Browser 대화상자에 있는 Built-in Functions 영역

사용법

String 함수는 스트링 데이터에서 다음과 같은 연산을 수행하기 위해 사용합니다:

strDown(str)

strFromLen(str,from,len)

strFromThru(str,from,thru)

strLen(str)

strPosChar(str,char)

strPosStr(str1,str2)

strRev(str)

strTrim(str)

strUp(str)

intToChar(a)

charToInt(a)

주의사항

모든 스트링 함수는 스트링 어레이 입력에서 연산됩니다. 출력값은 텍스트 또는 숫자 어레이가 됩니다. 연산은 입력 어레이의 개별 앨리먼트에서 처리됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: String

관련정보

charToInt(a), intToChar(a), strDown(str), strFromLen (str,from,len), strFromThru (str,from, thru), strLen(str), strPosChar (str,char), strPosStr (str1,str2), strRev(str), strTrim (str,trimlist) 및 strUp(str).


strLen(str) 오브젝트

스트링의 길이를 바이트 단위로 연산하기 위한 오브젝트

사용법

strLen(str)는 입력 스트링 str의 길이를 연산하기 위해 사용합니다. 출력값은 바이트 수로 표시되는 스칼라 형태의 Int32입니다. Kanji 문자와 다른 16-bit 문자는 2 바이트 단위로 계산됩니다.

주의사항

입력 스트링이 어레이인 경우에는, 각 앨리먼트의 길이가 출력 어레이로 리턴됩니다.

사용예

strLen("ABCdefg%+#")는 10을 출력합니다.

strLen("123456")는 6을 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: String
Member: strLen

관련정보

String 영역.


strPosChar (str,char) 오브젝트

입력 스트링 str내에서 문자 리스트 char에 있는 문자의 인덱스 값을 출력하는 오브젝트

사용법

strPosChar(str,char)는 입력 스트링 str내에서 문자 리스트 char에 있는 문자 중에서 가장 먼저 일치하는 문자의 인덱스 값을 출력하기 위해 사용합니다. 스트링은 0부터 인덱싱 됩니다.

주의사항

문자 리스트에 있는 하나 이상의 문자가 한번 이상 발견된 경우에는, 문자 리스트에 있는 문자 중에서 첫번째로 발견된 문자가 출력됩니다.

문자 리스트 char에 있는 문자가 입력 str에서 발견되지 않으면, -1이 출력됩니다.

str 또는 char 이 nil 스트링인 경우에는, -1이 출력됩니다.

문자의 매칭은 대소문자를 구분합니다.

입력 스트링이 어레이인 경우에는, 어레이의 각 앨리먼트는 독립적인 스트링으로 검색됩니다. 스트링에 있는 문자의 위치가 출력 어레이에 리턴됩니다.

사용예

strPosChar("Now is the time","Nwme")는 0을 출력합니다.

strPosChar("Now is the time","nwme")는 2을 출력합니다.

strPosChar("Now is the time","x yz ")는 3을 출력합니다.

strPosChar("Now is the time","")는 -1을 출력합니다.

strPosChar("Now is the time","xyz")는 -1을 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: String
Member: strPosChar

관련정보

strFromLen (str,from,len), strFromThru (str,from, thru), strPosStr (str1,str2) 및 String 영역.


strPosStr (str1,str2) 오브젝트

스트링 str1내에서 스트링 str2의 인덱스 값을 출력하는 오브젝트

사용법

strPosStr(str1,str2)는 스트링 str1내에서 가장 먼저 일치하는 스트링 str2의 인덱스 값을 출력하기 위해 사용합니다 - - 즉, str1에서 str2가 시작하는 인덱스 위치입니다. 스트링은 0부터 인덱싱 됩니다.

주의사항

str2가 str1에서 한번 이상 발견된 경우에는, 첫번째로 발견된 인덱스가 출력됩니다.

str2가 str1에서 발견되지 않으면, -1이 출력됩니다.

str1 또는 str2가 nil 스트링인 경우에는, -1이 출력됩니다.

문자의 매칭은 대소문자를 구분합니다.

입력 스트링이 어레이인 경우에는, 어레이의 각 앨리먼트는 독립적인 스트링으로 검색됩니다. 스트링 앨리먼트에 있는 스트링의 위치가 어레이로 출력됩니다.

사용예

strPosStr("Now is the time","Now")는 0을 출력합니다.

strPosStr("Now is the time","is the")는 4을 출력합니다.

strPosStr("Now is the time","")는 -1을 출력합니다.

strPosStr("Now is the time","is The") returns -1을 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: String
Member: strPosStr

관련정보

strFromLen (str,from,len), strFromThru (str,from, thru), strPosChar (str,char) 및 String 영역.


strRev(str) 오브젝트

스트링의 순서를 역으로 바꾸는 오브젝트

사용법

strRev(str)는 스트링에 있는 문자의 순서를 역으로 바꾸기 위해 사용합니다.

주의사항

입력 스트링이 어레이인 경우에는, 출력값은 각 앨리먼트가 역으로 변경된 스트링 어레이 입니다.

사용예

strRev("ABCdefg%+#")는 "#+%gfedCBA"를 출력합니다.

strRev("123456")는 "654321"를 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: String
Member: strRev

관련정보

strDown(str), strTrim (str,trimlist), strUp(str) 및 String 영역.


strTrim (str,trimlist) 오브젝트

스트링의 앞과 뒤에서 스페이스와 탭 문자를 잘라내는 오브젝트

사용법

strTrim(str) 오브젝트는 입력 스트링 str에서 앞이나 뒤에 있는 스페이스 및 탭 문자를 잘라내기 위해 사용합니다. 첫 스페이스나 탭이 아닌 문자 앞에 있거나, 마지막 스페이스나 탭이 아닌 문자 뒤에 있는 모든 스페이스와 탭 문자는 잘라냅니다. Formula 오브젝트에서 사용하는 구문은 다음과 같습니다:

strTrim(str [,trimlist] )

strTrim(str,trimlist)는 str에서 trimlist에 포함된 모든 문자를 잘라냅니다. 이들 문자는 str에서 맨 앞에 있거나 맨 뒤에 있는 경우에만 잘라냅니다.

주의사항

이 함수에 대한 구문은 strTrim(str,trimlist)으로 확장하여 2개의 입력을 가진Formula 오브젝트에서 사용할 수도 있습니다. 이 경우에, trimlist 스트링에 있는 모든 문자가 맨 앞에 있거나 맨 뒤에 있는 경우에는, 입력 스트링 str에서 모두 잘라냅니다.

입력 스트링이 어레이인 경우에는, 출력값은 각 앨리먼트가 잘라진 스트링 어레이입니다.

사용예

strTrim(" ABCdefg%+#")는 "ABCdefg%+#"를 출력합니다.

strTrim("eeeABCdefg%+#","eg#")는 "ABCdefg%+"를 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: String
Member: strTrim

관련정보

strDown(str), strRev(str), strUp(str) 및 String 영역.


strUp(str) 오브젝트

스트링에 있는 모든 알파벳 소문자를 대문자로 변경하는 오브젝트

사용법

strUp(str)은 입력 스트링 str에 있는 문자를 대문자로 변경하기 위해 사용합니다. 모든 알파벳 소문자("a" 에서 "z" 까지)는 해당하는 대문자로 변환됩니다. 알파벳 문자가 아닌 ASCII 문자는 변경되지 않고 남습니다.

주의사항

입력 스트링이 어레이인 경우에는, 출력값은 각 앨리먼트가 개별적인 스트링으로 처리된 스트링 어레이 입니다.

사용예

strUp("ABCdefg%+#")는 "ABCDEFG%+#" 를 출력합니다.

strUp("123456")는 "123456"를 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: String
Member: strUp

관련정보

strDown(str), strRev(str), strTrim (str,trimlist) 및 String영역.


a - b (subtract) 오브젝트

2 개의 입력에 대해서 산술 뺄셈을 연산하는 오브젝트

사용법

하나의 컨테이너에서 다른 컨테이너를 뺄셈할 때 a-b 오브젝트를 사용하십시오. 2 개의 컨테이너는 임의의 형태를 사용할 수 있으며, 동일한 형태의 컨테이너가 출력됩니다. 출력값은 연산되는 숫자와 동일한 형태를 가진 최상위 타입의 컨테이너가 됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8

두개의 연산수

중에서

최상위 타입

Int16

Int32

Int64

Real32

Real64

Coord

Waveform

PComplex

Spectrum

하나의 컨테이너가 어레이이면, 다른 컨테이너는 스칼라 또는 같은 크기와 형태를 가진 어레이이어야 합니다. 출력값은 입력값과 같은 형태(Shape)를 갖는 상위 타입의 컨테이너 입니다.

두 개의 입력값이 Coord타입인 경우에는 각각의 독립변수는 일치해야 하며 그렇지 않으면 에러가 발생합니다. 빼기는 종속변수(마지막)에서만 실행됩니다.

사용예

어레이 빼기 스칼라: [1, 2, 3] - 3 는 [-2, -1, 0]을 출력.

스칼라 빼기 어레이: 3 - [1, 2, 3] 는 [2, 1, 0]을 출력.

2 개의 어레이: [4, 5, 6] - [3, 2, 1] 는 [1, 3, 5]을 출력.

2 개의 Complex 스칼라: (2,4) - (1,3) 는 (1,1)을 출력.

2 개의 Coord 스칼라: coord(1,3) - coord(1,5) 는 coord(1,-2)을 출력.

2 개의 Coord 스칼라: coord(1,3) - coord(2,5) 는 에러를 발생합니다.

주의사항

하나의 컨테이너가 매핑이 되었다면(Waveform, Spectrum, Coord, 다른타입으로 매핑된 어레이) 다른 컨테이너는 매핑이 안되어 있던지, 동일한 매핑을 가져야 합니다. 출력값은 입력값과 같은 매핑을 가져야 하며, 그렇지 않는 경우는 에러가 발생합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Arithmetic
Member: -

관련정보

a + b (add), a / b (divide) 및 a * b (multiply).


sum(x) 오브젝트

입력어레이의 모든 앨리먼트의 합을 연산하는 오브젝트

사용법

입력어레이의 모든 앨리먼트의 합을 연산하는데 Sum(x) 오브젝트를 사용하십시오. x 입력은 임의의 크기의 임의의 형태가 될 수 있습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Coord | Real64 Scalar
Waveform | Real64 Scalar
Complex | Complex
PComplex | PComplex
Spectrum | PComplex
Text | Text Scalar

입력이 숫자인 경우, 이 오브젝트의 출력은 입력컨테이너 안의 모든 데이터의 산술 합이며, 스칼라입니다. 입력이 Text 타입인 경우에는, 출력은 스칼라 Text 컨테이너이며, 모든 Text 앨리먼트를 하나의 큰 스트링으로 연결한 것입니다.

sum(x) 오브젝트의 Text 스트링 더하기 연산은 덧셈연산자의 Text 스트링 더하기 규칙을 따릅니다.

예제

x가 [1, 2, 3, 4]인 어레이 이면, sum(x)는 10을 리턴합니다.

x가 ["first", "second", "third"]인 어레이이면, sum(x)은 "firstsecondthird"을 리턴합니다.

주의사항

입력값의 매핑은 무시됩니다.

텍스트가 입력으로 제공될 때 concat(x,y) 와 sum(x)에는 차이점이 있습니다. concat(x,y)는 모든 경우에 1차원 어레이를 생성합니다. sum(x)는 단지 모든 텍스트 스트링을 하나의 큰 스트링으로 연결합니다. 즉, x와 y가 각각 Text 스칼라 “a”와 “b”이면, concat(x,y)은 1 차원 어레이 ["a","b"]를 생성합니다. 그러나 sum(["a","b"])는 “ab”를 출력합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Array
Member: sum

관련정보

a + b (add), concat(x,y) 및 product(x).


tan(x) 오브젝트

x 의 탄젠트 값을 리턴하는 오브젝트

사용법

tan(x)는 x로 입력된 데이터의 탄젠트 값을 계산하는데 사용합니다. 입력값(x)는 x에는 어떤 형태(Shape)의 숫자도 입력할 수 있으며 같은 형태(Shape)의 숫자가 출력됩니다. x의 입력값은 현재 설정된 Trig Mode 단위입니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

사용예

tan([0, 45])는 Degree 모드에서 [0, 1] 을 출력합니다.

tan((1, 2))는 Radian 모드에서 (33.8128m, 1.01479)을 출력합니다.

tan((3, @PI/2))는 Radian 모드에서 (0.99505, @1.57079)을 출력합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다. Default Preference에서 Trig모드를 Radian을 제외한 다른 모드로 설정할 경우에는 12자리수를 넘게 되어 정확도에서 에러가 발생합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: tan

관련정보

atan(x), atan2(y,x), cos(x), cot(x), sin(x), tanh(x), Trig 영역 및 Default Preferences 대화상자.


tanh(x) 오브젝트

x의 하이퍼볼릭 탄젠트를 리턴하는 오브젝트

사용법

x의 하이퍼볼릭 탄젠트를 생성하는데 tanh(x) 오브젝트를 사용하십시오. x는 임의의 형태의 데이터를 사용할 수 있으며 동일한 형태가 리턴됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform
Complex | Complex
PComplex | PComplex
Spectrum | Spectrum

사용예

tanh(0.6)는 0.537을 리턴합니다.

주의사항

출력에서도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig
Member: tanh

관련정보

atanh(x), cosh(x), Trig 영역, sinh(x) 및 tan(x).


Time & Date 영역

Function & Object Browser 대화상자에 있는 Built-in Functions 영역

사용법

Time & Date는 날짜와 시간을 변환하는 다음의 오브젝트를 제공합니다.

now()

wday(aDate)

mday(aDate)

month(aDate)

year(aDate)

dmyToDate(d,m,y)

hmsToSec(h,m,s)

hmsToHour(h,m,s)

주의사항

now() 및 dmyToDate(d,m,y)함수는 기원(서기 0001년 1월 1일 0시)부터 현재까지의 시간을 초단위로 출력하고 UTC(Universal Coordinated Time) 포맷으로 저장합니다. 즉, 거주지역 시간과 GMT (Greenwich Mean Time) 사이의 시차를 보정합니다. wday(), mday(), month(), 및 year() 함수는 입력값 (now(), dmyToDate,(), Time Stamp 또는 Date Time 상수에서)으로 UTC 타입의 시간이 입력되기 때문에, 연산을 하기 전에 적용했던 보정값을 제거하게 됩니다.

hmsToSec(h,m,s) 및 hmsToHour(h,m,s)는 델타(경과된) 시간으로만 변환하고 UTC 보정은 적용하지 않습니다. Alphanumeric 디스플레이(타임 포맷으로)에서 디스플레이 되는 이들 함수의 출력되는 값은 거주지역 시간과 UTC 사이의 시간의 차이만큼 오차가 발생됩니다. Delta Time을 사용하여 이 시간의 차이를 디스플레이할 필요가 있습니다: AlphaNumeric의 출력포맷을 Time Stamp로 설정하면 시간을 표시할 수 있습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Time & Date

관련정보

dmyToDate (d,m,y), hmsToHour (h,m,s), hmsToSec (h,m,s), mday(aDate), month(aDate), now(), wday(aDate), year(aDate) 및 To String.


totSize(x) 오브젝트

컨테이너의 전체 크기를 Int32값으로 출력하는 오브젝트

사용법

Formula 오브젝트에 있는 totSize(x)함수는 입력 x에 있는 컨테이너의 크기를 연산하기 위해 사용합니다. x가 스칼라 이거나 하나의 앨리먼트를 가진 어레이인 경우에는, totSize(x)는 1을 출력합니다.

사용예

x= 스칼라인 경우: totSize(x)는 1을 출력합니다.

x= [1]인 경우: totSize(x)는 1을 출력합니다.

x= [1, 2]인 경우: totSize(x)는 2을 출력합니다.

x= [ [1, 2] ,[3 ,4] ]인 경우: totSize(x)는 4를 출력합니다.

주의사항

totSize(x)함수는 Get Values 오브젝트에 있는 TotSize 핀과 동일한 기능을 연산합니다.

오브젝트는 앨리먼트가 0인 어레이는 사용할 수 없습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Array
Member: totSize

관련정보

Formula 또는 Get Values.


transpose(x) 오브젝트

2 차원 어레이(행렬)의 트랜스포우즈를 연산하는 오브젝트

사용법

매트릭스의 트랜스포우즈를 연산하는데 transpose(x) 오브젝트를 사용하십시오. x는 임의의 2 차원 행렬입니다. 반드시 정방형 행렬이 아니어도 됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | UInt8
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real64
Complex | Complex
PComplex | PComplex
Text | Text

사용예

x가 정방형 행렬 [ [1, 2], [3, 4] ] 이면, transpose(x)는 [ [1, 3], [2, 4] ]을 리턴합니다.

x가 행렬 [ [1, 2, 3], [4, 5, 6] ] 이면, transpose(x)는 [ [1, 4], [2, 5], [3, 6] ]을 리턴합니다.

주의사항

입력값의 매핑은 무시되며 출력컨테이너는 트랜스포우즈된 매핑을 가집니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Matrix
Member: transpose

관련정보

det(x), identity(x) 및 inverse(x).


Triadic Operator 오브젝트

이 연산자는 조건문이 참인 경우에 한 표현식의 결과를 출력하지만, 조건문이 거짓인 경우에는 다른 표현식의 결과를 출력합니다.

사용법

다음 구문을 사용하여 Formula 오브젝트에 삼항연산자를 사용합니다:

(조건문? 표현식: 표현식)

조건문이 참인 경우에는, 첫번째 표현식의 결과가 출력됩니다.

조건문이 거짓인 경우에는, 두번째 표현식의 결과가 출력됩니다.

이 삼항연산자는 Formula 오브젝트 또는 표현식을 사용할 수 있는 다른 오브젝트와 함께 사용해야 합니다.

사용법

(A<10 ? A*2 : A*3)는 A<10이 참인 경우에는 A*2의 결과를 출력하지만, A<10이 거짓인 경우에는 A*3를 출력합니다.

주의사항

구문은 괄호를 사용해야 합니다.

삼항연산자는 "IF/THEN/ELSE"의 조건 테스트를 설정할 때 유용합니다. 구문은 C언어에서 사용하는 삼항연자와 동일합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Miscellaneous
Member: (a ? b : c)

관련정보

콤마 연산자, Formula, If/Then/Else 및 기타 연산자.


Trig 영역

Function & Object Browser 대화사장에 있는 Built-in Functions 영역

사용법

Trig는 데이터에 대한 삼각함수를 연산하는 다음과 같은 오브젝트를 제공하기 위해 사용합니다.

acos(x)

acosh(x)

acot(x)

acoth(x)

asin(x)

asinh(x)

atan(x)

atan2(y,x)

atanh(x)

cos(x)

cosh(x)

cot(x)

coth(x)

sin(x)

sinh(x)

tanh(x)

tan(x)

주의사항

모든 Trig 연산은 라디안 값에서 처리됩니다. Trig Mode가 각도(Degree)로 설정된 경우에는, 모든 컨테이너는 함수가 연산되기 전에 각도에서 라디안으로 변환됩니다. 가장 빠르게 처리하기 위해서는, Trig Mode를 라디안으로 설정하여 사용하십시오.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Trig

관련정보

acos(x), acosh(x), acot(x), acoth(x), asin(x), asinh(x), atan(x), atan2(y,x), atanh(x), cos(x), cosh(x), cot(x), coth(x), sin(x), sinh(x), tanh(x), tan(x) 및 Default Preferences 대화상자.


typeName(x) 오브젝트

x의 데이터 종류를 리턴하는 오브젝트

사용법

컨테이너 x 안의 임의의 크기와 형태의 데이터타입을 확인하는데 typeName(x)오브젝트를 사용합니다. 다음 항목중 1 개가 Text로 리턴됩니다.

VEE 6 모드 이외의 모드

Uint8 | Uint8
Int16 | Int16
Int32 | Int32
Int64 | Int64
Real32 | Real32
Real64 | Real
Complex | Complex
PComplex | PComplex
Text | Text
Enum | Enum
Coord | Coord
Waveform | Waveform
Spectrum | Spectrum
Record | Record
Object | Object

사용예

x 가 Complex 어레이이면,
typeName(x)은 Complex를 리턴합니다.

주의사항

X가 Variant로 선언되면, typeName(x)는 x의 컨테이너의 데이터타입을 리턴합니다. 예를 들어, x가 현재 Int32를 가지고 있는 Variant 이면, typeName(x)는 Int32를 리턴합니다.

오브젝트 위치

Location: Device [image] Function & Object Browser

Type: Built-in Functions
Category: Type Conversion

관련정보

isVariant(x), isVariantBool(x), isVariantCurrency(x), isVariantDate(x), isVariantEmpty(x), isVariantError(x), isVariantNull(x).


unlockPosition() 오브젝트

현재 디스플레이된 UserFunction 패널을 이동할 수 있도록 하는 오브젝트

사용법

UserFunction 패널을 디스플레이 하기 위하여 showPanel()을 사용할 때, 사용자가패널을 이동하는 것을 방지하기 위하여 lockPosition()을 사용하거나 PopupMoveable 속성을 체크한 경우에는, 사용자에게 패널을 이동할 수 있도록 하기 위해 unlockPosition()을 사용합니다.

오픈뷰

텍스트 lockPosition()를 포함해야 합니다. 괄호안에 다음의 파라미터를 입력합니다:

"UFname" – UserFunction의 이름. 이름은 인용부호(“ ”)를 사용해야 하고 꼭 필요한 파라미터입니다.

UserFunction 이름을 설정하기 위하여 lockPosition() 오브젝트에 데이터 입력핀을 추가할 수 있습니다. 이 경우에는 반드시 "UFname"을 입력 터미날 이름으로 변경해야 합니다.

주의사항

unlockPosition() 오브젝트는 입력핀이 없이 lockPosition() 방정식으로 초기화된 Formula 오브젝트입니다. 다른 Formula 오브젝트나 표현식에 unlockPosition()를 입력할 수도 있습니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Panel
Member: unlockPosition

관련정보

Call, hidePanel(),
 lockPosition(), panelPosition(),
 panelSize(), showPanel()
 및 UserFunction.


vari(x) 오브젝트

입력컨테이너의 데이터의 변이를 리턴하는 오브젝트

사용법

입력컨테이너의 데이터의 변이를 연산하는데 vari(x) 오브젝트를 사용하십시오. X 는 임의의 크기와 형태를 가질 수 있습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64 Scalar
Int16 | Real64 Scalar
Int32 | Real64 Scalar
Int64 | Real64 Scalar
Real32 | Real64 Scalar
Real64 | Real64 Scalar
Coord | Real64 Scalar
Waveform | Real64 Scalar

Coord 입력 타입의 경우, 종속변수상에서 연산됩니다.

vari(x)는 다음과 같이 정의됩니다.:
[(Xi - Xmean)^2 의 합] 나누기 (numPts - 1), 여기서 Xi는 각각의 데이터포인트, Xmean은 데이터포인트의 평균, numPts는 입력어레이 x의 앨리먼트의 개수 입니다.

사용예

x 가 [1, 2, 3, 4, 5, 11, 12, 13, 14, 34]인 어레이면,
vari(x)는 90.4을 리턴합니다.

주의사항

입력값의 매핑은 무시됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Probability & Statistics
Member: vari

관련정보

max(x), mean(x), median(x), min(x), mode(x), rms(x) 및 sdev(x).


wday(aDate) 오브젝트

x 시간의 요일을 리턴하는 오브젝트

사용법

시간 x를 각 요일에 해당하는 0~6의 값으로 변환할 때 wday(aDate)오브젝트를 사용합니다. 0은 일요일, 1 은 월요일, …,6은 토요일에 해당합니다. X는 임의의 형태를 사용할 수 있으며, 동일한 형태의 출력이 리턴됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

wday(dmyToDate(2,1,2003))는 4를 리턴합니다. 따라서, Jan 2, 2003는 목요일입니다.

주의사항

입력값의 매핑은 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Time & Date
Member: wday

관련정보

dmyToDate (d,m,y), hmsToHour (h,m,s), hmsToSec (h,m,s), mday(aDate), month(aDate), now(), Time & Date 및 year(aDate).


xcorrelate (a,b) 오브젝트

2 개의 어레이의 데이터를 상호비교(cross-correlate)하는 오브젝트 입니다.

사용법

2 개의 1 차원 어레이 a와 b의 비연속 상호비교(discrete cross-correlation)를 연산하는데 xcorrelate(a,b) 오브젝트를 사용합니다. 동일한 타입의 크기가 (Na+Nb)-1인 어레이가 출력됩니다. 여기서, Na와 Nb는 각각 입력어레이 a와 b의 크기입니다.

a와 b의 입력값은 1차원 어레이이며, 동일한 크기를 사용할 수 없습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

리턴되는 타입은 입력의 가장 높은 타입과 같습니다. 결과값은 정규화되지 않습니다.

사용예

xcorrelate([1, 2, 3, 4, 5],[3, 2, 1])는 [1, 4, 10, 16, 22, 22, 15]를 리턴합니다.

주의사항

입력 a와 b는 균등한 간격의 데이터를 가져야 합니다. 또한, a의 임의의 2 개의 값의 간격은 b의 임의의 2 개의 값의 간격과 같아야 합니다. 2 개의 매핑되지 않은 어레이의 경우에는, 간격이 (Xmax-Xmin)/N 입니다. 여기서 Xmax 와 Xmin는 매핑이고, N은 어레이의 크기입니다. 하나의 입력이 매핑되어 있고, 다른 하나는 매핑되어 있지 않으면, 매핑되지 않은 입력은 매핑된 입력과 동일한 주파수로 샘플링되었다고 간주합니다. 출력값은 정규화되지 않습니다.

xcorrelate(a,b) 알고리즘은, 2 번째 입력이 컨볼루션에서 처럼 순서가 역으로 되지 않은 것을 제외하고는, 비연속 컨볼루션용 표준 알고리즘과 동일합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Signal Processing
Member: xcorrelate

관련정보

convolve(a,b).


xlogRamp (numElem, from,thru) 오브젝트

로그로 매핑된 1D Array의 좌표 변환용 x값을 생성하기 위해 사용했던 동일한 방법으로 로그 스케일로 분할된 어레이를 생성하는 오브젝트

사용법

xlogRamp(numElem,from,thru)는 numElem의 길이를 가지며 from부터 thru까지 로그스케일로 분할된 값을 가지는 1차원 어레이 형태의 Real64값을 생성하는데 사용합니다. numElem은 0보다 큰 값을 가지는 스칼라 컨테이너이든지 Int32 타입으로 변환될 수 있어야 합니다. from과 thru는 스칼라 컨테이너든지 Real64로 변환될 수 있어야 합니다. from이 thru보다 작으면 분할은 양수입니다; 아닌 경우는 자동으로 음수로 분할됩니다. from 과 thru는 0보다 큰 수를 가져야 합니다.

사용예

xlogRamp(3, 1, 100)는 1D Array [1, 10, 100]를 출력합니다.

주의사항

출력값은 매핑을 갖지 않습니다.

값을 생성하는 알고리즘은 다음과 같습니다:

Y[I]=exp10(log10(from)+I*((log10(thru)-log10(from))/numElem))
for I=0..numElem-1

이것은 출력 어레이에 있는 마지막 앨리먼트가 다음 공식에 의해 thru 보다 작은 값을 가지는데 영향을 줍니다:

exp10(log10(thru)-log10(from)/numElem).

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Generate
Member: xlogRamp

관련정보

Alloc Real64, logRamp (numElem, from,thru) 및 xramp (numElem, from,thru).


a XOR b 오브젝트

2개의 연산 숫자에서 논리연산 exclusive OR를 처리하는 오브젝트

사용법

a XOR b는 2개의 컨테이너의 중에 하나가 논리적으로 참(0이 아닌 값)인지를 연산하기 위해 사용합니다. 2개의 컨테이너는 어떤 타입과 형태도 입력할 수 있습니다. 하나의 컨테이너가 어레이인 경우에는, 다른 컨테이너는 스칼라이든지 동일한 사이즈와 형태를 가진 어레이여야 합니다. 출력은 연산되는 숫자와 동일한 형태를 가진 Int32값 0 또는 1입니다. 2개의 연산 숫자 또는 둘중에 하나가 0이 아닌 경우에는, XOR 연산 값은 1입니다; 다른 경우는 0입니다.

2개의 연산되는 숫자가 Boolean 타입인 경우에는, 출력값은 연산되는 숫자와 동일한 형태를 가진 Boolean 타입이 됩니다

2개의 숫자가 Coord 타입이라면, 2개의 독립변수는 매칭되어야 하며 그렇지 않은 경우에는 에러가 발생합니다. XOR 연산은 종속변수(마지막)에서만 처리됩니다.

Complex, PComplex, 및 Spectrum 컨테이너에 대해서는, 둘중에 하나의 항목이 0이 아닐 경우에는 숫자의 값은 참입니다. 텍스트는 nill이 아닌 경우에 참입니다. Enums는 연산을 위해 텍스트로 변환됩니다.

사용예

2개의 Boolean 스칼라: True XOR False는 True를 출력합니다.

스칼라와 어레이: 3 XOR [3, 3, 3]는 [0, 0, 0]을 출력합니다.

스칼라와 어레이: 3 XOR [-3, 0, 3]는 [0, 1, 0]을 출력합니다.

2개의 어레이: [1, 2, 3] XOR [0, 1, (-1)]는 [1, 0, 0]을 출력합니다.

2개의 PComplex 스칼라: (1,@90) XOR (1,@85)는 0을 출력합니다.

2개의 Complex 스칼라: (0,1) XOR (1,0)는 1을 출력합니다.

2개의 Complex 스칼라 (0,1) XOR (1,0)는 0을 출력합니다.

2개의 Complex 스칼라 (0,0) XOR (0,0)는 0을 출력합니다.

2개의 Coord 스칼라: coord(1,3) XOR coord(1,5)는 0을 출력합니다.

2개의 Coord 스칼라: coord(1,3) XOR coord(2,3)는 에러가 발생합니다.

텍스트 스칼라와 스칼라 숫자: "too" XOR 0은 1을 출력합니다.

텍스트 스칼라와 스칼라 숫자: "" XOR 0은 0이 스트링 “0”으로 상향 변환되어 null이 아니기 때문에 1을 출력합니다.

주의사항

하나의 컨테이너가 매핑되어 있다면(Waveform, Spectrum, Coord, 또는 다른 타입의 매핑된 어레이), 다른 컨테이너는 반드시 매핑이 안되어 있든지 동일한 매핑을 가져야 합니다. 출력값은 연산 숫자와 동일한 매핑을 가집니다; 다른 경우는 에러가 발생합니다.

If/Then/Else 디바이스는 모두 0이거나 모두 1인 스칼라 또는 어레이를 연산하기 위하여표현식이 필요합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Operators
Category: Logical
Member: XOR

관련정보

a AND b, NOT a, a OR b, Comparison 영역, Conditional 메뉴 및 If/Then/Else.


xramp (numElem, from,thru) 오브젝트

매핑된 1D Array(예, Waveform)의 좌표 변환용 x값을 생성하기 위해 사용했던 동일한 방법으로 선형으로 분할된 어레이를 생성하는 오브젝트

사용법

xramp(numElem,from,thru)는 from에서 thru (포함)까지 선형으로 분할된 값을 가진 numElem 길이의 Real64 1차원 어레이를 생성합니다. numElem는 스칼라 컨테이너든지 0보다 큰 값을 가진 Int32로 변환될 수 있어야 합니다. from 과 thru는 스칼라 컨테이너든지 Real64로 변환될 수 있어야 합니다.

from이 thru보다 작은 경우에는, 양의 수로 분할됩니다; 다른 경우에는 자동으로 음의 수로 분할됩니다.

사용예

xramp(3, 0.5, 0)은 [0.5, 0.3333, 0.1667]값을 가진 1차원 어레이를 출력합니다.

xramp(5, 2, 10)은 [2, 3.6, 5.2, 6.8, 8.4]값을 가진 1차원 어레이를 출력합니다.

주의사항

출력값은 매핑되지 않습니다.

값을 생성하는 알고리즘은 다음과 같습니다:

Y[I] = from + I*(thru-from/numElem)
for I=0..numElem-1

이것은 출력 어레이에 있는 마지막 앨리먼트가 다음과 같은 샘플링 간격의 크기에 의해 thru 보다 작은 값을 가지는데 영향을 줍니다: (thru-from)/numElem.

thru 값을 포함하여 분할하고자 하는 경우에는, ramp(numElem,from,thru)를 사용하십시오.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Generate
Member: xramp

관련정보

Alloc Real64, ramp (numElem, from,thru) 및 xlogRamp (numElem, from,thru).


y0(x) 오브젝트

0 차 2 종의 x의 베셀함수를 연산하는 오브젝트

사용법

0 차 2 종의 x의 베셀함수를 찾기 위해서 y0(x) 오브젝트를 사용합니다. x는 임의의 크기 및 형태를 사용할 수 있습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

Coord 입력 타입의 경우, 종속적인 변수상에서 연산이 실행됩니다.

사용예

y0(2)는 0.510375672649745을 리턴합니다.

주의사항

입력의 매핑은 무시되며 출력컨테이너는 입력과 동일한 매핑을 가집니다.

x의 값은 0 보다 커야 합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: y0

관련정보

Ai(x), Bi(x), j0(x), j1(x), jn(x,n), y1(x) 및 yn(x,n).


y1(x) 오브젝트

1 차 2 종의 x의 베셀함수를 연산하는 오브젝트

사용법

1 차 2 종의 x의 베셀함수를 찾기 위해서 y1(x) 오브젝트를 사용합니다. x는 임의의 크기 및 형태를 사용할 수 있습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

Coord 입력 타입의 경우, 종속적인 변수상에서 연산이 실행됩니다.

사용예

y1(9)는 0.104314575196715을 리턴합니다.

주의사항

입력의 매핑은 무시되며 출력컨테이너는 입력과 동일한 매핑을 가집니다.

x의 값은 0 보다 커야 합니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: y1

관련정보

Ai(x), Bi(x), j0(x), j1(x), jn(x,n), y0(x) 및 yn(x,n).


year(aDate) 오브젝트

시간 x의 년도를 리턴하는 오브젝트

사용법

시간 x를 시간 x의 년도의 값을 가지는 동일한 형태의 컨테이너로 변환하기 위해서 year(aDate)오브젝트를 사용합니다. X는 임의의 형태를 사용할 수 있으며, 동일한 형태의 출력이 리턴됩니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

사용예

year(dmyToDate(25,12,1991))는 1991를 리턴합니다.

주의사항

출력값에도 동일한 매핑이 유지됩니다.

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Time & Date
Member: year

관련정보

dmyToDate (d,m,y), hmsToHour (h,m,s), hmsToSec (h,m,s), mday(aDate), now(), month(aDate), Time & Date 및 wday(aDate).


yn(x,n) 오브젝트

n 차 2 종의 x의 베셀함수를 연산하는 오브젝트

사용법

0 차 2 종의 x의 베셀함수를 찾기 위해서 yn(x,n) 오브젝트를 사용합니다. x는 임의의 크기 및 형태를 사용할 수 있습니다.

입력가능한 종류(Type) 출력 종류(type)

UInt8 | Real64
Int16 | Real64
Int32 | Real64
Int64 | Real64
Real32 | Real64
Real64 | Real64
Coord | Coord
Waveform | Waveform

Coord 입력 타입의 경우, 종속적인 변수상에서 연산이 실행됩니다.

n 인자는 Int32 타입이거나 Int32 타입으로 변환될 수 있어야 합니다. 또한 n 인자는 스칼라이거나 x와 동일한 형태이어야 합니다.

사용예

yn(10,4)은 -0.144949511868093을 리턴합니다.

주의사항

2 개의 입력이 모두 매핑되어 있으면, 매핑의 형태는 동일해야 합니다. 2 개의 입력 중에서 하나의 입력이라도 매핑되어 있으면, 리턴되는 값은 입력과 동일한 매핑을 사용합니다. 2 개의 입력이 모두 매핑되어 있지 않으면 출력도 매핑되지 않습니다.입력의 매핑은 무시되며 출력컨테이너는 입력과 동일한 매핑을 가집니다.

x의 값은 0 보다 커야 합니다

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Bessel
Member: yn

관련정보

Ai(x), Bi(x), j0(x), j1(x), jn(x,n), y0(x) 및 y1(x).


I/O 트랜잭션 요약

Table 1은 VEE의 I/O 트랜잭션 타입에 대한 요약하며, Table 2 는 I/O 트랜잭션 오브젝트의 요약합니다.

Table 1 I/O 트랜잭션 타입 요약

동작 | 설명
WRITE | 오브젝트에서 지정한 목적지에 데이터를 씁니다.
READ | 오브젝트에서 지정한 소오스로부터 데이터를 읽습니다.
EXECUTE | 오브젝트와 관련된 파일, 계측기 또는 인터페이스를 제어하기 위해서 기초 명령어를 실행합니다. EXECUTE는 파이프와 파일을 닫고 계측기 및 하드웨어 인터페이스의 기초제어를 제공하기 위해서 파일 포인터를 조정하는데 사용합니다.
WAIT | 다음 트랜잭션을 실행하기 전 까지 지정된 숫자의 시간(초)까지 기다립니다. Direct I/O 오브젝트에서는, WAIT 지정된 시리얼 폴 응답이나 접근할 수 있는 VXI 계측기 레지스터에서 지정된 값을 기다릴 수 있습니다.
SEND | IEEE 488-정의 버스 메시지(버스 명령어나 데이터)를 GPIB 인터페이스에 전송합니다.
READ(REQUEST) | 다른 어플리케이션에서 DDE 데이터를 읽습니다.
WRITE(POKE) | 다른 어플리케이션으로 DDE 데이터를 씁니다.

Table 2 I/O 트랜잭션 오브젝트 요약

오브젝트 | 지원되는 트랜잭션
 | EXECUTE | WAIT | READ | WRITE | SEND
To File | X | X |  | X |
From File | X | X | X |  |
To Printer |  | X |  | X |
To String |  | X |  | X |
From String |  | X | X |  |
To/From Socket | X | X | X | X |
Direct I/O | X | X | X | X |
MultiInstrument Direct I/O | X | X | X | X |
Interface Operations | X |  |  |  | X
To/From DDE | X | X | X | X |

관련정보

EXECUTE 트랜잭션, READ 트랜잭션, SEND 트랜잭션, WRITE 트랜잭션, WAIT 트랜잭션


WRITE 트랜잭션

이 절에서는 다음 테이블의 WRITE 트랜잭션을 설명합니다. 모든 WRITE 인코딩에 적용되는 내용은 이 절의 시작부분에서 설명되어 있습니다.

Path-Specific Behaviors

일부 WRITE 트랜잭션은 목적지의 I/O 경로에 따라서 다르게 동작합니다. 이들 동작을 구별하기 위해서 이 절에서는 다음과 같은 용어를 사용합니다.:

• MS-DOS path는 MS-DOS 파일, 스트링 또는 프린터 등의 계측기를 제외한 모든 경로입니다.

• Direct I/O path는iDirect I/O를 이용하여 접근할 수 있는 모든 계측기의 경로입니다.

모든 경로에 대한 동작

다음 테이블에서 설명되는 동작은 특별히 표시된 경우를 제외한 모든 경로에 적용됩니다.

테이블 WRITE 인코딩 및 포맷

인코딩 | 포맷
TEXT | DEFAULT STRING QUOTED STRING BYTE INT16 INT32 INT64 BOOLEAN OCTAL HEX REAL32 REAL64 COMPLEX PCOMPLEX COORD TIME STAMP
BYTE | Not Applicable
CASE | Not Applicable
BINARY | STRING BYTE INT16 INT32 INT64 BOOLEAN REAL32 REAL64 COMPLEX PCOMPLEX COORD
BINBLOCK | BYTE INT16 COMPLEX INT32 INT64 BOOLEAN PCOMPLEX REAL32 REAL64 COORD
CONTAINER | 해당사항 없음
STATE a | 해당사항 없음
REGISTER b | BYTE WORD16 WORD32 REAL32
MEMORY b | BYTE WORD16 WORD32 REAL32 WORD32*2 REAL64
IOCONTROL c | Not Applicable

a. GPIB 용 Direct I/O에만 적용됨

b. VXI 용 Direct I/O에만 적용됨.

c. GPIO 용 Direct I/O에만 적용됨.

관련정보

TEXT 인코딩, BYTE 인코딩, CASE 인코딩, BINARY 인코딩, BINBLOCK 인코딩, CONTAINER 인코딩, STATE 인코딩, REGISTER 인코딩, MEMORY 인코딩, IOCONTROL 인코딩


TEXT 인코딩

WRITE TEXT 트랜잭션은 다음과 같은 포맷입니다.:

WRITE TEXT ExpressionList [Format]

ExpressionList는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다.

Format 은 다음의 테이블에서 설명되는 포맷중의 하나를 지정하는 선택항목입니다.

테이블 WRITE TEXT 트랜잭션용 포맷

포맷 | 설명
DEFAULT | 쓰려고 하는 항목의 데이터 타입에 기반하여 VEE가 적절한 텍스트 표현방식을 자동으로 결정합니다.
STRING | 텍스트 데이터를 변환하지 않고 씁니다. 숫자 데이터 타입은 숫자 정밀도를 최대로 하여 텍스트로 변환하여 씁니다.
QUOTED STRING | STRING과 동일한 포맷으로 데이터를 씁니다. 데이터는 더블인용부호로 묶입니다.(ASCII 34 십진수)
BYTE | 8-비트 2의 보수 정수를 십진수 형태의 데이터로 씁니다.
INT16 | 16-비트 2의 보수 정수를 십진수 형태의 데이터로 씁니다.
INT32 | 32-비트 2의 보수 정수를 십진수 형태의 데이터로 씁니다.
INT64 | 64-비트 2의 보수 정수를 십진수 형태의 데이터로 씁니다.
BOOLEAN | 데이터를 부우린 상수(True 또는 False)로 씁니다.
OCTAL | 32-비트 2의 보수 정수를 8진수 형태의 데이터로 씁니다.
HEX | 32-비트 2의 보수 정수를 16진수 형태의 데이터로 씁니다.
REAL32 | 고정소수점 십진수 및 엔지니어링 표기방식을 포함한 다양한 표기 방식의 32-비트 부동소수점 숫자 형태의 데이터를 씁니다.
REAL64 | 고정소수점 십진수 및 엔지니어링 표기방식을 포함한 다양한 표기 방식의 64-비트 부동소수점 숫자 형태의 데이터를 씁니다.
COMPLEX | 복소수를 나타내는 콤마로 구분된 64-비트 부동소수점 숫자쌍을 씁니다. 첫 번째 숫자는 실수, 두 번째 숫자는 허수입니다.
PCOMPLEX | 복소수를 나타내는 콤마로 구분된 64-비트 부동소수점 숫자쌍을 씁니다. 첫 번째 숫자는 크기, 두 번째 숫자는 위상이며, 위상의 값은 트랜잭션에서 정의된 위상의 단위를 사용합니다.
COORD | 직교좌표를 나타내는 콤마로 구분된 64-비트 부동소수점 숫자쌍을 씁니다.
TIME STAMP | 실수(예, now() 함수의 출력)를 의미있는 형태로 변환하여 년, 월, 일 및 시간의 다양한 조합으로 씁니다.

관련정보

DEFAULT 포맷, STRING 포맷, QUOTED STRING 포맷, INTEGER 포맷, OCTAL 포맷, HEX 포맷, REAL32 및 REAL64 포맷, COMPLEX, PCOMPLEX 및 COORD 포맷, TIME STAMP 포맷

BYTE 인코딩, CASE 인코딩, BINARY 인코딩, BINBLOCK 인코딩, CONTAINER 인코딩, STATE 인코딩, REGISTER 인코딩, MEMORY 인코딩, IOCONTROL 인코딩


DEFAULT 포맷

WRITE TEXT (디폴트) 트랜잭션은 다음과 같은 포맷입니다:

WRITE TEXT ExpressionList

ExpressionList하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다.

이 트랜잭션은 ExpressionList의 각 아이템을 의미있는 스트링으로 변환하여 씁니다. 아래의 스칼라변수 x를 쓰는 간단한 예를 검토하겠습니다.:

  • • X 가 다음과 같은 텍스트를 가지면:

   bird cat dog

변환되지 않고, 이 트랜잭션은 12개의 문자를 씁니다.

  • • X가 스칼라 정수를 가지면, 예를 들어:

8923 tX의 값(십진수 표기법)

이 숫자값은 텍스트로 변환되어 VEE는 4 글자를 씁니다.

  • • X 스칼라 실수값을 가지면, 예를 들어:

1.2345678901234567 X의 값(17-자리 디지털 스칼라 실수 값)

16개 까지의 중요 자리수만 씁니다. VEE의 내부 바이너리 폼과 십진수 표시간의 변환으로 인해서 중요하지 않은 자리수는 근사값으로 표시됩니다. 트랜잭션을 이용하여 이 스칼라 실수 값을 사용하면:

WRITE TEXT a EOL

을 실행하면 VEE는 다음을 출력합니다.:

1.234567890123457 16-자리 값

숫자의 절대값이 너무 크거나 너무 작으면, 지수방식으로 표시합니다. Coord, Complex, 및 PComplex의 서브앨리먼트를 구성하는 실수값도 동일한 방식으로 표시됩니다.

모든 WRITE TEXT DEFAULT 트랜잭션에 EOL ON이 설정되어 있으면, 해당 오브젝트에 대해서 EOL Sequence 필드에서 지정된 문자는 ExpressionList의 마지막 문자 다음에 작성됩니다.


STRING 포맷

WRITE TEXT STRING 트랜잭션은 다음과 같은 포맷입니다.:

WRITE TEXT ExpressionList STR

ExpressionList는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다.

WRITE TEXT STRING의 동작은 WRITE TEXT(디폴트) 트랜잭션의 동작과 기본적으로 동일합니다(한가지 차이점에 대해서 설명합니다.). 중요한 차이점은 STRING 필드의 폭, 정렬 및 문자의 개수 등을 포함하는 출력 포맷팅에 관련된 추가사항을 지정할 수 있습니다.

필드폭과 정렬

트랜잭션이 DEFAULT FIELD WIDTH를 지정하면, ExpressionList 안의 항목을 Text로 변환한 문자들만 출력됩니다.

트랜잭션이 FIELD WIDTH: F를 지정하면, 변환된 텍스트는 F개의 문자 만큼의 공간 내에서 왼쪽 또는 오른쪽으로 정렬됩니다.

다음 트랜잭션은 모든 문자가 20 문자 길이의 필드 안에서 왼쪽으로 정렬하여 출력하라고 지정합니다.

WRITE TEXT X STR FW:20 LJ EOL
WRITE TEXT Y STR FW:20 LJ EOL

X와 Y가 다음 값을 가지면:

bird cat dog X의 텍스트 값

12345678901234567 Y의 실수 값

VEE는 다음과 같이 출력합니다.:

bird cat dog

12345678901234567

^ ^

캐럿 문자(^)는 VEE에 의해서 작성되지 않으며, 필드의 폭을 시각적으로 보이기 위해서 표시되었습니다. dog의 오른쪽부터 및 두 번째 7 의 오른쪽 부터는 공백(ASCII 32 십진수) 입니다.

정렬을 RIGHT JUSTIFY로 변경하면, 트랜잭션이 다음과 같이 표시됩니다.

WRITE TEXT X STR FW:20 RJ EOL
WRITE TEXT Y STR FW:20 RJ EOL

X와 Y가 다음 값을 가지면:

bird cat dog X의 텍스트 값

12345678901234567 Y의 실수 값

VEE는 다음과 같이 출력합니다.:

bird cat dog

12345678901234567

^ ^

캐럿 문자(^)는 VEE에 의해서 작성되지 않으며, 필드의 폭을 시각적으로 보이기 위해서 표시되었습니다. bird 의 왼쪽까지 및 첫 번째 1 의 왼쪽 까지는 공백(ASCII 32 십진수) 입니다.

스트링의 길이가 지정된 필드의 폭을 초과하면, 전체 스트링이 출력됩니다. 필드폭으로 지정된 값으로는 스트링이 잘리지 않습니다. MAX NUM CHARS에 지정된 값만으로 문자를 자를 수 있습니다.

다음 트랜잭션은 모든 문자가 4 문자 길이의 필드 안에서 왼쪽으로 정렬하여 출력하라고 지정합니다.

WRITE TEXT X STR FW:4 LJ

X가 다음 값을 가지면:

bird cat dog X의 텍스트 값, 12 문자

VEE는 다음과 같이 출력합니다.:

bird cat dog 전체 12 문자

필드의 폭이 4 문자로 지정되었지만, 스트링의 전체 12개의 문자를 출력합니다.

문자의 개수

ALL CHARS로 지정하면, ExpressionList 안의 각 항목의 변환에 의해서 생성된 모든 문자가 출력됩니다. MAX NUM CHARS: M으로 지정하면, ExpressionList 안의 각 항목의 처음 M 문자만 출력됩니다.

다음 트랜잭션은 각 필드에 최대 7 문자를 쓰고, 필드의 폭은 20 문자이고, 데이터를 왼쪽으로 정렬하는 명령입니다.

WRITE TEXT X STR:7 FW:20 LJ EOL
WRITE TEXT Y STR:7 FW:20 LJ EOL

X와 Y가 다음 값을 가지면:

bird cat dog the X의 텍스트 값

12345678901234567 Y의 실수 값

VEE는 다음과 같이 출력합니다.:

bird ca

1234567

^ ^

Y 의 숫자값은 먼저 Text로 변환되고 문자는 잘립니다. 숫자값은 MAX NUM CHARS에 의해서는 반올림되지 않습니다.

캐럿 문자(^)는 VEE에 의해서 작성되지 않으며, 필드의 폭을 시각적으로 보이기 위해서 표시되었습니다. ca의 오른쪽부터 및 7 의 오른쪽 부터는 공백(ASCII 32 십진수) 입니다.

Direct I/O를 이용해서 어레이를 출력

Direct I/O 경로에 어레이를 쓰는 WRITE TEXT STR 트랜잭션은 Direct I/O 오브젝트에 설정된 어레이 분리자를 무시합니다. 이들 트랜잭션은 항상 줄바꿈(ASCII 10 십진수)을 이용하여 어레이(스트링)의 각 앨리먼트를 분리합니다. 이런한 방식은 대부분의 계측기에서 사용하고 있는 방식입니다.

주의

어레이에 대한 이러한 특별한 동작은 다른 형태의 트랜잭션에는 적용되지 않습니다.


QUOTED STRING 포맷

WRITE TEXT QUOTED STRING 트랜잭션은 다음과 같은 포맷입니다.:

WRITE TEXT ExpressionList QSTR

ExpressionList는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다

일반적으로, STRING 포맷에서 설명된 동작은 QUOTED STRING 포맷에 적용됩니다. STRING 과 QUOTED STRING 사이에는 2 가지 차이점이 있습니다.

• QUOTED STRING의 경우, 더블인용부호(ASCII 34 십진수)가 스트링의 처음과 끝에 추가됩니다. 더블인용부호는 지정된 필드폭 내에서 스트링을 정렬하기 위해서 공백을 추가하기 전에 더블인용부호가 먼저 추가됩니다.

• 더블인용 스트링안에서 사용되는 제어문자(ASCII 0-31 십진수), 이스케이프문자(이스케이프 문자) 및 ‘ 문자(ASCII 39 십진수), “ 문자(ASCII 34 십진수)는 특별히 취급됩니다.

필드폭과 정렬

DEFAULT FIELD WIDTH를 지정하면, ExpressionList 안의 항목을 Text로 변환하여 생긴 문자와 더블인용부호만 출력됩니다.

FIELD WIDTH: F를 지정하면, 변환된 Text와 이것을 감싸는 인용부호가 F 개의 문자의 공간 내에서 왼쪽 또는 오른 쪽으로 정렬되어 출력됩니다.

다음 트랜잭션은 모든 문자를 더블인용 스트링으로 20 문자 길이의 필드 안에서 왼쪽으로 정렬하여 출력하라고 지정합니다.

아래 트랜잭션은

WRITE TEXT X QSTR FW:20 LJ EOL
WRITE TEXT Y QSTR FW:20 LJ EOL

X와 Y가 다음 값을 가지면:

bird cat dog X의 텍스트 값

12345678901234567 Y의 실수 값

VEE는 다음과 같이 출력합니다.:

"bird cat dog"

"12345678901234567"

^ ^

캐럿 문자(^)는 VEE에 의해서 작성되지 않으며, 필드의 폭을 시각적으로 보이기 위해서 표시되었습니다. dog" 오른쪽부터 및 두 번째 7”의 오른쪽 부터는 공백(ASCII 32 십진수) 입니다.

정렬을 RIGHT JUSTIFY로 변경하면, 트랜잭션이 다음과 같이 표시됩니다.

WRITE TEXT X QSTR FW:20 RJ EOL
WRITE TEXT Y QSTR FW:20 RJ EOL

X와 Y가 다음 값을 가지면:

bird cat dog X의 텍스트 값of X

12345678901234567 Y의 실수 값

VEE는 다음과 같이 출력합니다.:

"bird cat dog"

"12345678901234567"

^ ^

캐럿 문자(^)는 VEE에 의해서 작성되지 않으며, 필드의 폭을 시각적으로 보이기 위해서 표시되었습니다. “bird 의 왼쪽까지 및 “1 의 왼쪽 까지는 공백(ASCII 32 십진수) 입니다.

스트링의 길이가 지정된 필드의 폭을 초과하면, 전체 스트링이 출력됩니다. 필드폭으로 지정된 값으로는 스트링이 잘리지 않습니다. MAX NUM CHARS에 지정된 값만으로 문자를 자를 수 있습니다.

다음 트랜잭션은 모든 문자가 4 문자 길이의 필드 안에서 왼쪽으로 정렬하여 출력하라고 지정합니다.

WRITE TEXT X QSTR FW:4 LJ

X가 다음 값을 가지면:

bird cat dog X의 텍스트 값, 12 문자

VEE는 다음과 같이 출력합니다.:

"bird cat dog" 전체 12 문자

문자의 개수

ALL CHARS로 지정하면, ExpressionList 안의 각 항목의 변환에 의해서 생성된 모든 문자와 더블인용부호가 출력됩니다. MAX NUM CHARS: M으로 지정하면, ExpressionList 안의 각 항목의 처음 M 문자와 더블인용부호만 출력됩니다. 즉, ExpressionList 안의 각 항목에 대해서 전체 M+2 글자를 출력합니다.

다음 트랜잭션은 각 필드에 최대 7 문자를 쓰고, 필드의 폭은 20 문자이고, 데이터를 왼쪽으로 정렬하는 명령입니다.

WRITE TEXT X QSTR:7 FW:20 LJ EOL
WRITE TEXT Y QSTR:7 FW:20 LJ EOL

X와 Y가 다음 값을 가지면:

bird cat dog X의 텍스트 값

12345678901234567 Y의 실수 값

VEE는 다음과 같이 출력합니다.:

"bird ca"

"1234567"

^ ^

캐럿 문자(^)는 VEE에 의해서 작성되지 않으며, 필드의 폭을 시각적으로 보이기 위해서 표시되었습니다. ca"의 오른쪽부터 및 7"의 오른쪽부터는 공백(ASCII 32 십진수) 입니다.

임베드된 제어문자 및 이스케이프 문자

여기서 사용하는 용어, 제어문자(control character)와 이스케이프 문자(escape character)는 특별한 의미를 가집니다. 제어문자는 십진수 ASCII 값 0 ~ 31 사이의 문자입니다. 예를 들어, 줄바꿈(linefeed)은 십진수 ASCII 10이고, 이 문서에서는 <LF>로 표시합니다. 스트링 \n은 사람이 읽을 수 있으며, VEE가 줄바꿈으로 인식하는 이스케이프 문자입니다. VEE는 인용부호 안의 스트링에서 제어문자를 표현하기 위해서 이스케이프 문자를 사용합니다.

다음 테이블의 각 이스케이프 문자의 기능입니다.

Escape 문자 | ASCII Code (십진수) | 기능
\n | 10 | Newline
\t | 9 | Horizontal Tab
\v | 11 | Vertical Tab
\b | 8 | Backspace
\r | 13 | Carriage Return
\f | 12 | Form Feed
\" | 34 | Double Quote
\' | 39 | Single Quote
\\ | 92 | Backslash
\ddd |  | 3 자리 8진수 ddd와 같은 ASCII 문자

다음 트랜잭션을 통해서 다양한 임베드된 이스케이프 문자의 효과를 검토하겠습니다.

WRITE TEXT X QSTR EOL

  • • X가 다음 값을 가지면:

bird\ncat dog

VEE는 다음과 같이 출력합니다.:

"bird<LF>cat dog"

여기서 <LF> 줄바꿈을 표시하는 한 개의 문자입니다.(ASCII 10 decimal).

  • • X가 다음 값을 가지면:

bird \"cat\" dog

VEE는 시리얼인터페이스용 Direct I/O에 다음과 같이 출력합니다.:

"bird \"cat\" dog"

동일한 트랜잭션과 데이터을 가지고, GPIB 인터페이스에 출력하면 다음과 같이 됩니다.:

"bird ""cat"" dog"

IEEE 488.2를 지원하기 위해서 GPIB 인터페이스에는 기타 인터페이스와는 다른 고유한 결과가 출력됩니다.


INTEGER 포맷

WRITE TEXT INTEGER 트랜잭션은 다음과 같은 포맷입니다.:

WRITE TEXT ExpressionList INT16

WRITE TEXT ExpressionList INT32

WRITE TEXT ExpressionList INT64

ExpressionList는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다.

이 트랜잭션에 의해서 생성되는 정수타입은 16-비트, 32-비트 또는 64-비트 2의 보수 정수입니다. 16-비트 정수는 -32768 부터 +32767까지 입니다. 32-비트 정수의 범위는 -2 147 483 648 부터 +2 147 483 647까지 입니다. 64-비트 정수는 9223372036854775808 부터 +9223372036854775807 까지 입니다. 이들 숫자를 표현하는데 사용할 수 있는 문자는 ??0123456789 입니다.

VEE는 ExpressionList 안의 각 아이템을 마지막 포맷인 Text로 포맷하기 전에 Int64, Int32, 또는 Int16 데이터타입으로 변환하려고 시도합니다. VEE는 일반적인 변환법칙을 사용합니다. 자세한 내용은 Help  => Contents 및 Index => TTell Me About...에서 Data Type Conversion을 참조하십시오.

Real32가 INT16, INT32, 또는 INT64를 사용하여 작성되었으면:

• Int16 의 유효범위를 벗어나는 실수값은 에러를 발생합니다.

• Int64, Int32 또는 Int16의 유효범위 이내의 실수값은 실수의 분수부분을 잘라내고(truncation) 변환됩니다.

Real64가 INT16, INT32, 또는 INT64포맷으로 작성되었으면:

• Int32 또는 Int16 의 유효범위를 벗어나는 실수값은 에러를 발생합니다.

• Int64, Int32 또는 Int16의 유효범위 이내의 실수값은 실수의 분수부분을 잘라내고(truncation) 변환됩니다.

자리수

DEFAULT NUM DIGITS로 숫자의 자리수를 설정하면, 그 트랜잭션은 정수의 값을 표현하는데 필요한 자리수만을 사용하여 출력합니다. 자리수를 채우기 위해서 숫자 앞에 0 을 사용하지 않습니다.

MIN NUM DIGITS: M로 설정하면, 그 트랜잭션은 자리수를 M개로 맞추기 위해서 숫자 앞에 0 을 추가하여 출력할 수 있습니다.

다음의 Int16 또는 Int32 트랜잭션은 출력하는 숫자의 자리수만 다른 경우입니다.

WRITE TEXT X INT16 EOL자리수가 디폴트로 지정됨
WRITE TEXT X INT16:6 EOL 자리수가 6 개

or

WRITE TEXT X INT32 EOL 자리수가 디폴트로 지정됨

WRITE TEXT X INT32:6 EOL 자리수가 6 개

X의 값이:

4567

이면, VEE는 각각 다음의 값을 출력합니다.:

4567

004567

MIN NUM DIGITS으로 설정하면 출력스트링의 잘림(truncation)이 발생하지 않습니다. 아래 트랜잭션은 자리수의 최소 개수를 1로 지정한 경우입니다.

WRITE TEXT X INT16:1 EOL

or

WRITE TEXT X INT32:1 EOL

X의 값이:

12345678

이면, VEE는 다음의 값을 출력합니다.:

12345678 이면, VEE는 다음의 값을 출력합니다.:

부호 접두문자

WRITE TEXT INT 트랜잭션에서 다음 테이블의 부호 접두문자의 한 가지를 선택항목으로 지정할 수 있습니다.

접두문자 | 설명
/- | 양수는 접두문자, + 또는 공백,를 사용하지 않습니다, 음수는 – 접두문자를 사용합니다.
+/- | 모든 양수는 + 접두문자를 사용합니다. 모든 음수는 – 접두문자를 사용합니다.
" "/- | 모든 양수는 공백 접두문자를 사용합니다.(ASCII 32 십진수) 모든 음수는 – 접두문자를 사용합니다.

접두문자로 사용하는 부호는 MIN NUM DIGITS에서 지정한 자리수에 포함되지 않습니다. 아래 트랜잭션은 양수와 음수의 부호표시를 명시적으로 지정하고 있습니다.

WRITE TEXT X INT16:6 SIGN:"+/-" EOL
WRITE TEXT Y INT32:6 SIGN:"+/-" EOL

X 와 Y의 값이 각각:

123 X의 정수값

-123 Y의 정수값

이면, VEE는 다음의 값을 출력합니다.:

+000123 6개의 자리수 + 부호

-000123


OCTAL 포맷

WRITE TEXT OCTAL 트랜잭션은 다음과 같은 포맷입니다.:

   WRITE TEXT ExpressionList OCT

ExpressionList은 하나의 표현식이거나, 콤마로 분리된 여러 표현식입니다

이 트랜잭션에 의해서 작성되는 정수의 타입은 64-비트 2의 보수 정수입니다. 이 정수의 범위는 --9223372036854775808 부터 +9223372036854775807까지 입니다. 이들 16진수 숫자를 표현하기 위해서 사용되는 문자는 01234567입니다. 다른 문자를 사용하여 접두문자를 옵션으로 지정할 수 있습니다.

VEE는 마지막 포맷인 Text로 포맷하기 전에 8진수로 작성된 모든 데이테를 Int64데이터타입으로 변환하려고 시도합니다. VEE가 사용하는 변환법칙은 다음과 같습니다.:

실수값이 8진수 포맷으로 작성되었으면:

• Int64의 유효범위를 벗어나는 실수값은 에러를 발생합니다.

• Int64의 유효범위 내의 실수값은 실수값의 소수부분을 잘라내고 변환됩니다.

자리수

DEFAULT NUM DIGITS 및 MIN NUM DIGITS의 동작은 WRITE TEXT INTEGER 트랜잭션의 자리수에서 설명한 내용과 동일합니다.

8진수 접두문자

WRITE TEXT OCTAL 트랜잭션에 다음의 접두문자 중에서 하나를 지정할 수 있습니다.

접두문자 | 설명
NO PREFIX | 접두문자가 없는 8진수 숫자를 씁니다. 출력에 01234567 문자만 표시됩니다.
DEFAULT PREFIX | Direct I/O 경로에 대해서, 각 16진수 숫자 앞에 #Q를 붙입니다. 이 방법은 IEEE 488.2에서 정의된8진수 Non-Decimal Numeric 데이터 포맷을 지원합니다.
PREFIX:string | string에서 지정된 문자로 8진수 접두문자를 붙입니다.

다음 트랜잭션은 디폴트 접두문자와 6 개의 자리수를 지정합니다.:

WRITE TEXT X OCT:6 PREFIX EOL

  • x가 이 값을 가지면:

15 십진수 정수값 15

VEE는 이것을 Direct I/O 경로에 씁니다.:

#Q000017 6자리수 숫자와 접두문자

아래 트랜잭션은 사용자 고유의 접두문자와 자리수를 10으로 지정합니다.:

WRITE TEXT X OCT:10 PREFIX:"oct>" EOL

  • X가 이 값을 가지면:

15 십진수 정수값 15

VEE는 이것을 Direct I/O 경로에 씁니다.:

oct>000017

DEFAULT PREFIX에 의해서 작성되는 접두문자는 목적지에 따라서 달라집니다. 그러나 PREFIX에 의해서 작성되는 접두문자는 목적지에 관계 없습니다.


HEX 포맷

WRITE TEXT HEX 트랜잭션은 다음과 같은 포맷입니다.:

   WRITE TEXT ExpressionList HEX

이 트랜잭션에 의해서 작성되는 정수의 타입은 64-비트 2의 보수 정수입니다. 이 정수의 범위는 --9223372036854775808 부터 +9223372036854775807까지 입니다. 이들 16진수 숫자를 표현하기 위해서 사용되는 문자는 0123456789abcdef 입니다. 다른 문자를 사용하여 접두문자를 옵션으로 지정할 수 있습니다.

WRITE TEXT HEX의 동작은 WRITE TEXT OCTAL의 동작과 거의 동일합니다. 차이점은 사용할 수 있는 접두문자의 종류와 DEFAULT PREFIX의 동작입니다.

16진수 접두문자

WRITE TEXT HEX 트랜잭션에 다음의 접두문자 중에서 하나를 지정할 수 있습니다.

접두문자 | 설명
NO PREFIX | 접두문자가 없는 16진수 숫자를 씁니다. 출력에 0123456789abcdef 문자만 표시됩니다.
DEFAULT PREFIX | Direct I/O 경로에 대해서, 각 16진수 숫자 앞에 #H를 붙입니다. 이 방법은 IEEE 488.2에서 정의된16진수 Non-Decimal Numeric 데이터 포맷을 지원합니다.
PREFIX:string | string에서 지정된 문자로 16진수 접두문자를 붙입니다.

다음 트랜잭션은 디폴트 접두문자와 6 개의 자리수를 지정합니다.:

WRITE TEXT X HEX:6 PREFIX EOL

x가 이 값을 가지면:

15 십진수 정수값 15

VEE는 이것을 Direct I/O 경로에 출력합니다.:

#H00000f 6자리수 숫자와 접두문자

아래 트랜잭션은 사용자 고유의 접두문자와 자리수를 3으로 지정합니다.:

WRITE TEXT X HEX:3 PREFIX:"hex>" EOL

X가 이 값을 가지면:

15 t십진수 정수값 15

VEE는 이것을 Direct I/O 경로에 출력합니다.:

hex>00f 3 자리수 숫자와 접두문자

DEFAULT PREFIX에 의해서 작성되는 접두문자는 목적지에 따라서 달라집니다. 그러나 PREFIX에 의해서 작성되는 접두문자는 목적지에 관계 없습니다.


REAL32 및 REAL64 포맷

WRITE TEXT REAL32 트랜잭션은 다음과 같은 포맷입니다.:

WRITE TEXT ExpressionList REAL32

이 트랜잭션에 의해서 생성되는 실수는 32-비트 IEEE 754 부동소수점 숫자입니다. 이 숫자의 범위는:

-3.40282347E38 to 3.40282347E38

WRITE TEXT REAL64 트랜잭션은 다음과 같은 포맷입니다.:

WRITE TEXT ExpressionList REAL64

T이 트랜재션에 의해서 생성된 실수는 64비트 IEEE 754 부동소수점 숫자입니다. 이 숫자의 크기는 :

-1.797 693 134 862 315E+308 부터 1.797 693 134 862 315E+308

까지 입니다.

이들 숫자를 표현하기 위해서 사용할 수 있는 문자는

+-.0123456789E.

표기법 및 자리수

WRITE TEXT REAL 트랜잭션에서 다음 테이블의 표기법의 한 가지를 선택항목으로 지정할 수 있습니다.

표기법 | 설명
STANDARD | 표시해야 할 실수값에 대해서 고정소수점 표기법(소수점을 사용해야 하며, 지수는 사용하지 않음) 또는 지수표기법을 자동선택합니다. 의미를 가지지 않는 0 은 사용하지 않습니다.
FIXED | 실수값을 고정소수점 표기법으로 표시합니다. 소수점 이하의 값을 가지는 숫자는 NUM FRACT DIGITS에서 지정된 자리수가 되도록 자동으로 반올림됩니다. 소수점 이하의 자리수가 지정된 자리수보다 적으면 0 으로 채워집니다.
SCIENTIFIC | 실수값을 지수표기법으로 표시합니다. 지수는 부호(+ 또는 -)를 명시적으로 표시하며 항상 대문자 E를 사용합니다. 소수점 이하의 값을 가진 숫자는 NUM FRACT DIGITS에서 지정된 자리수가 되도록 자동으로 반올림됩니다. 소수점 이하의 자리수가 지정된 자리수보다 적으면 0 으로 채워집니다.

다음 트랜잭션은 STANDARD 표기법으로 자리수가 4 자리인 실수를 출력하는 예제입니다.

WRITE TEXT X REAL32 STD:4 EOL
WRITE TEXT Y REAL64 STD:4 EOL
WRITE TEXT Z REAL32 STD:4 EOL

X, Y 및 Z가 다음과 같은 값을 가지면:

1.23456E2 X의 Real32 값

1.23456E09 Y의 Real64 값

1.23 Z의 Real32 값

VEE는 아래와 같이 출력합니다.:

123.5 가수가 지정된 만큼 반올림 되었음

1.235E+09 지수표기법으로 표시한 큰 숫자

1.23 숫자뒤에 0 을 채우지 않음

다음 트랜잭션은 FIXED 표기법으로 자리수가 4 자리인 실수를 출력하는 예제입니다.

WRITE TEXT X REAL64 FIX:4 EOL
WRITE TEXT Y REAL32 FIX:4 EOL
WRITE TEXT Z REAL64 FIX:4 EOL

X, Y 및 Z가 다음과 같은 값을 가지면:

1.2345678E2 X의 Real32 값

1.2345678E-09 Y의 Real64 값

1.23 Z의 Real32 값

VEE는 아래와 같이 출력합니다.:

123.4568 가수가 지정된 만큼 반올림 되었음 required

0.0000 작은 숫자는 0 으로 반올림됨

1.2300 필요한 만큼 0 으로 채워짐

다음 트랜잭션은 SCIENTIFIC 표기법으로 자리수가 4 자리인 실수를 출력하는 예제입니다.

WRITE TEXT X REAL32 SCI:4 EOL
WRITE TEXT Y REAL64 SCI:4 EOL
WRITE TEXT Z REAL32 SCI:4 EOL

X, Y 및 Z가 다음과 같은 값을 가지면:

1.2345678E2 X의 Real32 값

-1.2345678E-09 Y의 Real64 값

0 Z의 Real32 값

VEE는 아래와 같이 출력합니다.:

1.2346E+02 지수가 E와 부호를 가진 2 자리숫자로 표시됨

-1.2346E-09 마지막 숫자가 반올린 되었음

0.0000E+00 필요한 만큼 0 으로 채워짐


COMPLEX, PCOMPLEX 및 COORD 포맷

COMPLEX, PCOMPLEX 및 COORD Formats

COMPLEX, PCOMPLEX 및 COORD은 동일한 이름을 가진 VEE 다중-필드 데이터 타입입니다. 이들의 READ 포맷의 동작은 매우 유사합니다. 여기서 설명된 동작은 별도 표기된 경우를 제외하고는 이들 3 개의 포맷에 동일하게 적용됩니다.

VEE 데이터타입 Complex, PComplex 및 Coord이 여러 개의 Real64 숫자로 구성되어 있는 것과 마찬가지로, COMPLEX, PCOMPLEX 및 COORD포맷도 REAL64 포맷의 합성입니다. 다중필드의 각 구성되는 Real 값은 개별 REAL64로 포맷된 값에 적용되는 동일한 규칙을 사용하여 읽습니다.

다중필드 포맷을 가지는 트랜잭션의 최종 출력은 관련된 오브젝트에 대한 Multi-Field Format 설정에 의해서 영향받습니다. Direct I/O 오브젝트에 대한 Multi-Field Format은 I/O => Instrument Manager를 통해서 접근하고 다른 모든 오브젝트에 대해서는 오브젝트 메뉴의 Config를 통해서 접근합니다. Multi-Field Format은 다음과 같이 2 가지 방법으로 설정할 수 있습니다:

• Data Only. 이것은 다중필드 데이터 포맷을 괄호없이 여러 개의 숫자를 콤마로 구분하여 작성합니다.

• (...) Syntax. 이것은 다중필드 데이터 포맷을 괄호로 묶인 여러 개의 숫자를 콤마로 구분하여 작성합니다.

아래 예제에서 이들의 동작을 설명합니다.

COMPLEX 포맷

WRITE TEXT COMPLEX 트랜잭션은 다음과 같은 포맷입니다:

WRITE TEXT ExpressionList CPX

아래 트랜잭션은 고정 십진수 표기방식을 지정합니다. 맨 앞에 부호가 있으며, 10개의 문자로 필드가 구성되고, 오른쪽으로 정렬됩니다.

WRITE TEXT X CPX FIX:3 SIGN:"+/-" FW:10 RJ EOL

  • Multi-Field Format이 (...) 구문으로 설정되어 있으면, X는 다음 값을 가집니다.:

( -1.23456 , 9.8 ) X의 허수값

VEE는 다음과 같이 작성합니다.:

( -1.235 , +9.800)

^ ^ ^ ^

  • Multi-Field Format이 Data Only로 설정된 경우에도 X는 동일한 값을 가집니다. VEE는 다음과 같이 작성합니다.:

-1.235, +9.800

^ ^ ^ ^

캐럿 문자(^)는 VEE에 의해서 작성되지 않으며, 필드의 폭을 시각적으로 보이기 위해서 표시되었습니다. 문자들은 +의 왼쪽부터 (ASCII 32 십진수) 공백을 가집니다.

(...) Syntax로 설정된 경우에는, 공백-콤마-공백으로 10 개-문자 폭을 분리합니다. 이 문자는 Complex 숫자의 실수부 및 허수부를 가집니다. 어떤 Multi-Field Format을 사용해도 실수부 및 허수부용의 분리 10-문자필드가 있습니다. 괄호 또는 공백을 가진 콤마구분자가 필드에 포함되지 않습니다.

PCOMPLEX 포맷

WRITE TEXT PCOMPLEX 트랜잭션은 다음과 같은 포맷입니다:

WRITE TEXT ExpressionList PCX

PCOMPLEX 포맷은 그것이 작성하는 극복소수 숫자용 위상단위를 지정합니다. 위상단위는 Properties창에서 설정된 Trig Mode 설정과는 관계없습니다. 다음 그림을 참조하십시오,

단위 | 설명
DEG | 각도
RAD | 래디안
GRAD | 그래디안

아래 첫 번째 트랜잭션은 위상을 각도 단위로 측정하며, 2 번째 트랜잭션은 위상을 래디안 단위로 측정합니다.

WRITE TEXT X PCX:DEG STD EOL
WRITE TEXT X PCX:RAD STD EOL

Multi-Field Format이 Data Only로 설정되어 있으면, X는 다음의 값을 가집니다.:

(-1.23456, @90) X,위상을 각도로 표시한 PComplex

VEE는 다음과 같이 출력합니다.:

1.23456,-90

1.23456,-1.570796326794897

아래 트랜잭션은 래디안 단위, 고정숫자, 소수점 3 자리, 맨 앞에 부호, 10개의 문자길의 필드, 오른쪽 정렬로 위상을 측정하도록 설정합니다.

WRITE TEXT X PCX:RAD FIX:3 SIGN:"+/-" FW:10 RJ EOL

  • • Multi-Field Format이 (...) Syntax로 설정되어 있으면 X는 다음의 값을 출력합니다.:

(-1.23456 , @9.8) X를 래디안으로 표시한 PComplex

VEE는 다음 값을 출력합니다.:

( +1.235 , @ +0.375)

^ ^ ^ ^

VEE는 크기를 양의 값으로 하고 위상의 값을 +p 와 –p 사이로 하기 위해서 모든 PComplex를 정규화합니다.

  • • Multi-Field Format이 Data Only로 설정되어 있으면, X는 동일한 값을 가집니다. VEE는 다음과 같이 출력합니다.:

+1.235, +0.375

^ ^ ^ ^

캐럿 문자(^)는 VEE에 의해서 작성되지 않으며, 필드의 폭을 시각적으로 보이기 위해서 표시되었습니다. 문자들은 +의 왼쪽부터 (ASCII 32 십진수) 공백을 가집니다.

COORD 포맷

WRITE TEXT COORD 트랜잭션은 다음과 같은 포맷입니다:

WRITE TEXT ExpressionList COORD

COORD 포맷은 COMPLEX 포맷과 동일한 기능을 제공합니다. 한 가지 차이점은, COORD는 임의의 개수의 필드를 가지며, COMPLEX는 반드시 2 개의 필드를 가집니다.


TIME STAMP 포맷

WRITE TEXT TIME STAMP 트랜잭션은 다음과 같은 포맷입니다.:

WRITE TEXT ExpressionList [DATE:DateSpec] [TIME:TimeSpec]

ExpressionList는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다

DateSpec은 다음과 같이 미리 정의된 날짜 및 시간의 조합입니다.:

• Date

• Time

• Date&Time

• Time&Date

• Delta Time

Date를 포함하는 트랜잭션을 지정하면, Weekday DD/Month/YYYY 또는 DD/Month/YYYY 형태의 DateSpec을 지정할 수 있습니다.

Time을 포함하는 트랜잭션을 지정하면, TimeSpec을 지정할 수 있습니다. TimeSpec은 다음의 미리 정의된 포맷의 조합입니다.:

• HH:MM (시간 및 분)

• HH:MM:SS (시간, 분 및 초)

• 12 HOUR

• 24 HOUR

ExpressionList 안의 각 항목은 Real로 변환되어서 날짜 및 시간으로 인식됩니다. 이 실수 숫자는 January 1, AD 1 UTC로부터 현재까지의 시간을 초 단위로 표시한 것입니다. 이 실수값를 제공하는 가장 일반적인 소오스는 Time Stamp 오브젝트 입니다. 이 실수 숫자를 사람이 읽을 수 있는 날짜 및/또는 시간으로 의미있는 스트링으로 변화하기 위해서는 TIME STAMP 포맷을 사용해야 합니다.

TIME STAMP 포맷은 날짜와 시간을 다양하게 표시하는 표기법을 제공합니다. 실수 숫자가 다음 값을 가지고:

62806574669.31164

TIME STAMP에 각 표기법을 적용하면 결과는 아래 표와 같습니다.

표기법

출력결과

Date 와 Weekday

DD/Month/YYYY

Thu 04/Apr/1999

Time 과 HH:MM:SS and 24 HOUR

15:44:29

Date&Time 과 Weekday
DD/Month/YYYY, HH:MM:SS,
및 24 HOUR

Thu 04/Apr/1999 15:44:29

Time&Date 과 HH:MM:SS, 24 HOUR 및 Weekday DD/Month/YYYY

15:44:29 Thu 04/Apr/1999

Delta Time 과 HH:MM:SS

17446270:44:29

Date 와 Weekday DD/Month/YYYY

Thu 04/Apr/1999

Date 와 DD/Month/YYYY

04/Apr/1999

Time과 HH:MM:SS 및 24 HOUR

15:44:29

TIME과 HH:MM and 24 HOUR

15:44

TIME과 HH:MM:SS 및 24 Hour

15:44:29

TIME과 HH:MM:SS 및 12 Hour

3:44:29 PM


BYTE 인코딩

BYTE 트랜잭션은 다음과 같은 포맷입니다.:

WRITE BYTE ExpressionList

여기서 ExpressionList 는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다.

VEE 5 이하의 실행모드에서는 ExpressionList 안의 각 아이템을 Int16(16-비트 2의 보수 정수)로 변환하여 하위 8-비트를 씁니다. VEE 6 실행모드에서는 ExpressionList 안의 각 아이템을 UInt8(8-비트 2의 보수 정수)로 변환하여 씁니다. 이 트랜재션은 계측기에 하나의 문자를 씁니다. ExpressionList 안의 각 표현식은 스칼라입니다.

VEE 6 이상의 실행모드에서는, 256 보다 큰 값은 에러를 발생합니다. 예를 들어, VEE 5 이하의 모드에서 아래 트랜잭션은 다음 문자를 출력합니다.

   ABCAA

WRITE BYTE 65,66,67
WRITE BYTE 65+1024,65+2048

VEE 6 이상의 실행모드에서, 위 2 번째 트랜잭션은 에러를 발생합니다.

관련정보

TEXT 인코딩, CASE 인코딩, BINARY 인코딩, BINBLOCK 인코딩, CONTAINER 인코딩, STATE 인코딩, REGISTER 인코딩, MEMORY 인코딩, IOCONTROL 인코딩


CASE 인코딩

WRITE CASE 트랜잭션은 다음과 같은 포맷입니다.:

WRITE CASE ExpressionList1 OF ExpressionList2

여기서 ExpressionList 는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다.

VEE는 ExpressionList1 안의 각 아이템을 정수로 변환하여 ExpressionList2의 인덱스로 사용합니다. ExpressionList2안의 인덱스된 아이템은 WRITE TEXT (디폴트)와 같은 스트링 포맷으로 작성됩니다.

ExpressionList2의 인덱스는 0-기반 인덱싱입니다.

아래 트랜잭션은 CASE 포맷의 행위를 설명합니다.

WRITE CASE 2,1 OF "Str0","Str1","Str2"
WRITE CASE X OF 1,1+A,3+A

변수의 값이 다음과 같다면:

2 the Real32 value of X

0.1 the Real64 value of A

VEE 의 출력은 다음과 같습니다.:

Str2Str1

3.1

관련정보

TEXT 인코딩, BYTE 인코딩, BINARY 인코딩, BINBLOCK 인코딩, CONTAINER 인코딩, STATE 인코딩, REGISTER 인코딩, MEMORY 인코딩, IOCONTROL 인코딩


BINARY 인코딩

WRITE BINARY 트랜잭션은 다음과 같은 포맷입니다:

WRITE BINARY ExpressionList DataType

여기서, ExpressionList는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다.

DataTypes는 다음과 같이 미리 지정된 포맷의 VEE 데이터타입입니다:

• Boolean - 32-비트 2의 보수 정수

• BYTE - 8-비트 부호 없는 바이트

• INT16 - 16-비트 2의 보수 정수

• INT32 - 32-비트 2의 보수 정수

• INT64 - 64-비트 2의 보수 정수

• REAL32 - 32-비트 IEEE 754 부동소수점 숫자

• REAL64 - 64-비트 IEEE 754 부동소수점 숫자

• STRING – 널(null)로 끝나는 스트링

• COMPLEX – 2 개의 REAL64와 동일함

• PCOMPLEX -2 개의 REAL64와 동일함

• COORD - 2 개 이상의 REAL64와 동일함

주의

VEE 5 이하의 실행모드에서는 모든 정수타입의 숫자를 INT32 데이터타입으로, 모든 실수데이터는 Real(즉, REAL64) 데이터타입으로 저장하고 관리합니다. 그러므로 INT16 및 REAL32 데이터타입은 입출력시에만 사용하는 포맷입니다. VEE 5 이하의 실행모드에서는 계측기 입력 트랜잭션에서 다음과 같이 데이터타입을 변환합니다.

INT32는 INT16으로 변환되어 계측기로 출력됩니다. 그러나, INT16는 -32768 부터 32767의 값을 가지므로, 이 범위를 벗어나는 데이터는 16비트로 끝이 잘립니다.

REAL64는 REAL32으로 변환되어 계측기로 출력됩니다. 그러나, REAL32 데이터타입은 REAL64 보다 값의 범위가 작으므로, 이 범위를 벗어나는 데이터는 REAL32로 변환되지 못하고 에러를 발생합니다.

VEE 6실행모드에서는 데이터가 적절한 타입으로 변환되고, 데이터가 범위를 벗어나면 에러가 발생됩니다.

BINARY 인코딩된 트랜잭션은 ExpressionList 에서 지정된 값을 DataType으로 지정한 데이터타입으로 변환합니다. 변환된 각 아이템은 지정된 바이너리 포맷으로 쓰여집니다. 그러나, 쓰여진 바이너리 데이터는 컴퓨터 메모리 내용의 복사이므로, 다른 컴퓨터 아키텍쳐 또는 하드웨어에 따라서 공유하기 쉽지 않습니다.

BINARY 인코딩된 데이터는 매우 컴팩트하다는 장점을 가집니다. READ BINARY 트랜잭션은 대응하는 WRITE BINARY 데이터를 읽을 수 있습니다.

BINARY 인코딩은 데이터에서 숫자 부분만을 씁니다. 예를 들어, Complex 및 Coord 데이터와 같이 텍스트 인코딩으로 괄호나 콤마를 가진 데이터는 BINARY 인코딩을 사용할 수 없습니다.

마찬가지로, 어레이를 쓸 때, BINARY 인코딩은 어레이 분리자를 쓰지 않습니다. WRITE BINARY 트랜잭션에서 EOL ON을 지정할 수 있습니다. 숫자 데이터 타입이 고정된 길이이며 스트링이 널-종료되어 있으므로, BINARY 트랜잭션에서 EOL을 사용하는 경우는 많지 않습니다.

관련정보

TEXT 인코딩, BYTE 인코딩, CASE 인코딩, BINBLOCK 인코딩, CONTAINER 인코딩, STATE 인코딩, REGISTER인코딩, MEMORY 인코딩, IOCONTROL 인코딩


BINBLOCK 인코딩

여기서 ExpressionList는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다.

DataType는 다음과 같이 미리 지정된 포맷의 VEE 데이터타입입니다.:

• Boolean - 32-비트 2의 보수 정수

• BYTE - 8-비트 부호 없는 바이트

• INT16 - 16-비트 2의 보수 정수

• INT32 - 32-비트 2의 보수 정수

• INT64 - 64-비트 2의 보수 정수

• REAL32 - 32-비트 IEEE 754 부동소수점 숫자

• REAL64 - 64-비트 IEEE 754 부동소수점 숫자

• STRING – 널(null)로 끝나는 스트링

• COMPLEX – 2 개의 REAL64와 동일함

• PCOMPLEX -2 개의 REAL64와 동일함

• COORD - 2 개 이상의 REAL64와 동일함

BINBLOCK은 ExpressionList의 각 아이템을 분리된 데이터 블록으로 씁니다. 사용된 블록헤더는 WRITE를 실행하는 오브젝트의 타입과 오브젝트의 설정에 따라서 변경됩니다.

Non-GPIB BINBLOCK

오브젝트가 GPIB통신용 Direct I/O가 아니면, WRITE BINBLOCK은 항상 IEEE 488.2 한정 길이 임의 블록 응답데이터(IEEE 488.2 Definite Length Arbitrary Block Response Data) 블록을 씁니다. 이 데이터포맷은, 다른 오브젝트에 의해서 사용되기는 하지만, Direct I/O를 사용한 GPIB 계측기와의 통신용으로 우선 사용됩니다.

각 한정길이 임의 블록은 다음의 형태입니다.:

#<Num_digits><Num_bytes><Data>

여기서:

  • # 은 # 문자입니다.

  • <Num_digits> 은 <Num_bytes>의 자리수를 십진수로 나타내는 한 자리 ASCII 문자입니다.

  • <Num_bytes>는 <Data>의 바이트의 개수를 십진수로 나타내는 ASCII 문자입니다.

  • <Data> 는 임의의 개수의 8-비트 데이터 바이트입니다.

GPIB BINBLOCK

오브젝트가 GPIB 통신용 Direct I/O 이면, WRITE BINBLOCK 트랜잭션의 동작은 호환성 및 Binblock용 Direct I/O 설정에 따라서 달라집니다. 이들 설정은 I/O Þ Instrument Manager에서 접근할 수 있습니다.

호환성이 IEEE 488.2로 설정되어 있으면, WRITE BINBLOCK은 항상 IEEE 488.2 한정 길이 임의 블록 응답데이터(IEEE 488.2 Definite Length Arbitrary Block Response Data) 블록을 씁니다.

호환성이 IEEE 488로 설정되어 있으면, 사용된 헤더의 타입은 Binblock에 따라서 결정됩니다. Binblock은 IEEE 728 #A, #T, 또는 #I 블록헤더를 지정합니다. Binblock이 None 이면, WRITE BINBLOCK은 IEEE 488.2 한정 길이 임의 블록 응답데이터(IEEE 488.2 Definite Length Arbitrary Block Response Data) 블록을 씁니다.

IEEE 728 블록헤더는 다음의 형태입니다.:

#A<Byte_Count><Data>

#T<Byte_Count><Data>

#I<Data><END>

여기서:

  • # 은 # 문자입니다.

  • A,T, I 는 각각 A,T, I 문자입니다.

  • <Byte_Count>는 2 개의 바이트로 구성됩니다. <Data>의 바이트의 개수를 16-비트 부호없는 정수로 표시합니다.(VEE가 이것을 자동으로 연산합니다.)

  • <Data>는 임의의 바이트 스트림입니다.

  • <END>는 마지막 데이터 바이트가 전송되면 EOI가 어저트되었음을 나타냅니다.

관련정보

TEXT 인코딩, BYTE 인코딩, CASE 인코딩, BINARY 인코딩, CONTAINER 인코딩, STATE 인코딩, REGISTER 인코딩, MEMORY 인코딩, IOCONTROL 인코딩


CONTAINER 인코딩

WRITE CONTAINER 트랜잭션은 다음과 같은 포맷입니다:

WRITE CONTAINER ExpressionList

ExpressionList는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다.

WRITE CONTAINER 트랜잭션은 VEE에서 사용하는 특별한 방식을 이용하여 ExpressionList 안의 각 아이템을 씁니다.

이 표현방식에는 형태, 크기 및 이름 등의 VEE의 모든 속성을 포함합니다. WRITE CONTAINER를 이용하여 작성한 데이터는 정보를 잃어버리지 않고 READ CONTAINER 통해서 가져올 수 있습니다.

예를 들어, 다음 트랜잭션:

WRITE CONTAINER 1.2345

은 아래 내용을 씁니다.:

(Real

(data 1.2345)

)

관련정보

TEXT 인코딩, BYTE 인코딩, CASE 인코딩, BINARY 인코딩, BINBLOCK 인코딩, STATE 인코딩, REGISTER 인코딩, MEMORY 인코딩, IOCONTROL 인코딩


STATE 인코딩

WRITE STATE 트랜잭션은 다음과 같은 포맷입니다.:

WRITE STATE [DownloadString]

해당 계측기에 대해 Direct I/O에서 다운로드 스트링을 지정하기 않았으면 DownloadString에 다운로드 스트링을 지정할 수 있습니다. 이 내용은 다음의 내용에서 더 자세히 설명됩니다.

WRITE STATE 트랜잭션은 Direct I/O 오브젝트에서 계측기로 런스트링을 다운로드 하기 위해서 사용됩니다. Direct I/O 오브젝트의 각 인스턴스와 관계된 런스트링은 한 개만 존재합니다. 이 런스트링은 Direct I/O 오브젝트 메뉴의 Upload을 체크하여 업로드됩니다. 런스트링은 Upload가 처음으로 선택되기 전 까지는 널스트링을 가집니다.

WRITE STATE의 동작은 Direct I/O 설정에서 Conformance 및 Download String의 설정 내용에 의해서 영향받습니다. 이들은 I/O => Instrument Manager 메뉴를 선택하여 설정할 수 있습니다. Conformance를 IEEE 488로 설정하면, WRITE STATE 트랜잭션은 Download String 다음에 런스트링을 씁니다. Conformance를 IEEE 488.2로 설정하면, IEEE 488.2에서 지정된 것과 같이 접두문자 없이 런스트링을 다운로드 합니다. WRITE STATE 트랜잭션에 대해서는 Controlling Instruments with VEE 를 참조하십시오.

관련정보

TEXT 인코딩, BYTE 인코딩, CASE 인코딩, BINARY 인코딩, BINBLOCK 인코딩, CONTAINER 인코딩, REGISTER 인코딩, MEMORY 인코딩, IOCONTROL 인코딩


REGISTER 인코딩

WRITE REGISTER는 VXI 계측기의 A16 메모리에 값을 쓰기 위해서 사용합니다.

WRITE REGISTER 트랜잭션은 다음과 같은 포맷입니다.:

WRITE REG: SymbolicName ExpressionList INCR

-또는-

WRITE REG: SymbolicName ExpressionList

여기서:

SymbolicName는 VXI 계측기 설정시 정의한 이름입니다. 이 이름은 계측기의 레지스터 공간 안의 특정 주소를 참조합니다. WRITE REGISTER 트랜잭션에서 사용할 수 있는 데이터 타입은 다음과 같습니다.:

• BYTE - 8 비트 부호 없는 정수

• WORD16 - 16-비트 2의 보수 정수

• WORD32 - 32-비트 2의 보수 정수

• REAL32 - 32-비트 IEEE 754 부동 소수점 숫자

• WORD32*2 - Int32 어레이의 근접한 앨리먼트의 2 개의 32-비트 2의 보수 정수

• REAL64 - 64-비트

이들 데이터 타입은 VXI 계측기의 설정시에도 지정할 수 있으며, 트랜잭션에는 표시되지 않습니다.

ExpressionList는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다.

INCR은 SymbolicName으로 지정된 레지스터 주소에서 시작하여 증가하면서 어레이 데이터를 쓰는 것을 지정합니다. 시작 주소에서 어레이의 첫 번째 앨리먼트에 값이 쓰입니다. 모든 어레이 앨리먼트가 쓰일 때까지, 그 주소에 데이터 타입의 바이트 수 길이 만큼의 옵셋을 더한 2 번째 앨리먼트, 등의 방식으로 앨리먼트에 값을 씁니다. INCR이 트랜잭션에서 지정되지 않았으면, 전체 어레이는 SymbolicName에서 지정한 하나의 위치에 쓰입니다.

관련정보

TEXT 인코딩, BYTE 인코딩, CASE 인코딩, BINARY 인코딩, BINBLOCK 인코딩, CONTAINER 인코딩, STATE 인코딩, MEMORY 인코딩, IOCONTROL 인코딩


MEMORY 인코딩

WRITE MEMORY는 VXI 계측기의 A24 또는 A32 메모리에서 값을 쓰기 위해서 사용합니다.

WRITE MEMORY 트랜잭션은 다음과 같은 포맷입니다.:

WRITE MEM: SymbolicName ExpressionList INCR

-또는-

WRITE MEM: SymbolicName ExpressionList

여기서:

SymbolicName는 VXI 계측기 설정시 정의한 이름입니다. 이 이름은 계측기의 확장 메모리 안의 특정 주소를 참조합니다. WRITE MEMORY 트랜잭션에서 사용할 수 있는 데이터 타입은 다음과 같습니다.:

• BYTE - 8 비트 부호 없는 정수

• WORD16 - 16-비트 2의 보수 정수

• WORD32 - 32-비트 2의 보수 정수

• REAL32 - 32-비트 IEEE 754 부동 소수점 숫자

• WORD32*2 - Int32 어레이의 근접한 앨리먼트의 2 개의 32-비트 2의 보수 정수

• REAL64 - 64-비트 IEEE 754 부동 소수점 숫자.

이들 데이터 타입은 VXI 계측기의 설정시에도 지정할 수 있으며, 트랜잭션에는 표시되지 않습니다.

ExpressionList는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다.

INCR은 SymbolicName으로 지정된 메모리 주소에서 시작하여 증가하면서 어레이 데이터를 쓰는 것을 지정합니다. 시작 주소에서 어레이의 첫 번째 앨리먼트에 값이 쓰입니다. 모든 어레이 앨리먼트가 쓰일 때까지, 그 주소에 데이터 타입의 바이트 수 길이 만큼의 옵셋을 더한 2 번째 앨리먼트, 등의 방식으로 앨리먼트에 값을 씁니다. INCR이 트랜잭션에서 지정되지 않았으면, 전체 어레이는 SymbolicName에서 지정한 하나의 메모리 위치에 쓰입니다.

관련정보

TEXT 인코딩, BYTE 인코딩, CASE 인코딩, BINARY 인코딩, BINBLOCK 인코딩, CONTAINER 인코딩, STATE 인코딩, REGISTER 인코딩, IOCONTROL 인코딩


IOCONTROL 인코딩

WRITE IOCONTROL 트랜잭션은 다음과 같은 포맷입니다.:

WRITE IOCONTROL CTL ExpressionList

-또는-

WRITE IOCONTROL PCTL ExpressionList

ExpressionList는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다.

IOCONTROL 인코딩은 GPIO 인터페이스용 Direct I/O 에서만 사용됩니다.

이 트랜잭션은 GPIO 인터페이스의 제어라인을 설정합니다.:

WRITE IOCONTROL CTL a

VEE는 a의 값을 정수로 변환합니다. 정수값의 하위 x 비트는 인터페이스의 제어라인으로 매핑됩니다. 여기서 x는 제어라인의 개수입니다.

예를 들어, HP 98622A GPIO 인터페이스는 2 개의 제어라인, CTL0 과 CTL1을 사용합니다.

쓰인 값 | CTL1 | CTL0
0 | 0 | 0
1 | 0 | 1
2 | 1 | 0
3 | 1 | 1

위의 테이블에서, 1 은 활성화된 제어라인을, 0은 클리어된 제어라인을 나타냅니다. 이 트랜잭션은 GPIO 인터페이스의 컴퓨터-구동 핸드쉐이크 라인을 제어합니다.

WRITE IOCONTROL PCTL a

a의 값이 0 이 아니면, PCTL 라인이 설정됩니다. 값이 0 이면, 아무런 동작이 일어나지 않습니다. PCTL은 주변기기가 핸드쉐이크 필요조건을 만족하면 인터페이스에 의해서 자동적으로 클리어됩니다.

관련정보

TEXT 인코딩, BYTE 인코딩, CASE 인코딩, BINARY 인코딩, BINBLOCK 인코딩, CONTAINER 인코딩, STATE 인코딩, REGISTER 인코딩, MEMORY 인코딩


READ 트랜잭션

Read 인코딩과 포맷에 대해서는 다음 테이블을 참조하십시오.

인코딩 | 포맷
TEXT | CHAR TOKEN STRING QUOTED STRING BYTE INT16 INT32 INT64 BOOLEAN OCTAL HEX REAL32 REAL64 COMPLEX PCOMPLEX COORD TIME STAMP
BINARY | STR BYTE INT16 INT32 INT64 BOOLEAN REAL32 REAL64 COMPLEX PCOMPLEX COORD
BINBLOCK | BYTE INT16 INT32 INT64 BOOLEAN REAL32 REAL64 COMPLEX PCOMPLEX COORD
CONTAINER | 해당사항 없음
IOSTATUS | 해당사항 없음
REGISTERa | BYTE WORD16 WORD32 REAL32
MEMORYa | BYTE WORD16 WORD32 WORD32*2 REAL32 REAL64

a.VXI 용 Direct I/O에만 적용됨.

관련정보

TEXT 인코딩, BINARY 인코딩, BINBLOCK 인코딩, CONTAINER 인코딩, IOSTATUS 인코딩,

REGISTER 인코딩, MEMORY 인코딩

READ TEXT에 대한 일반적인 주의사항


TEXT 인코딩

READ TEXT 트랜잭션은 부적절한 데이터를 읽어서 버리고 중요한 데이터를 선택하여 읽을 수 있습니다. 대부분의 경우에 이 방식을 적용할 수 있습니다. 그러나 종종 VEE가 부적절하다고 판단하거나 중요하다고 판단한 것을 주의하여 분석해야할 필요가 있습니다.

이것은 VEE가 텍스트파일에 쓸 때 사용했던 동일한 포맷을 사용하여 텍스트 파일을 읽으면 문제가 되는 경우가 거의 없습니다. 다른 어플리케이션 소프트웨어를 사용하여 파일을 임포트할 때 문제가 발생할 수 있습니다.

다음 테이블은 일반적인 방식의 경우에 대해서만 READ TEXT의 동작을 설명하고 있습니다. 이 절의 모든 내용을 읽으면 다른 경우에 대해서도 이해할 수 있습니다.

포맷 | 설명
CHAR | 임의의 8-비트 문자를 읽습니다.
TOKEN | 연속되는 문자를 토큰(token) 단위로 읽습니다. 토큰은 지정된 분리문자(사용자가 분리문자를 지정합니다.)에 의해서 분리됩니다. 예를 들어, 일반적인 영어 문장에서, 단어가 토큰이며 공백이 분리문자입니다.
STRING | 8-비트 문자 단위로 읽습니다. 대부분의 제어문자는 읽어서 버립니다. 지정된 개수의 문자를 읽었거나 새줄(newline)문자를 만날 때가 스트링의 끝입니다.
QSTRING | 양끝을 더블인용부호(ASCII 34)로 묶어서 지정된 IEEE 488.2 호환 임의의 길이의 스트링을 8-비트 문자로 읽습니다. 제어문자를 버리지 않습니다. 이스케이프 문자를 해당 제어문자로 확장됩니다. 스트링의 끝은 더블인용부호 문자(ASCII 34)를 만날 때까지 입니다.
BYTE | 문자를 읽어서 십진수 또는 다른 방식의 8-비트 정수로 표시합니다. 십진수 정수 부분에서 사용할 수 있는 문자는 0123456789-+ 입니다. VEE는 접두문자 0x (hex)와 IEEE 488.2에서 지정된 모든 십진수 이외의 숫자포맷을 인식합니다.: #H (16진수), #Q (8진수), #B (2진수).
INTEGER16 | 문자를 읽어서 십진수 또는 다른 방식의 16-비트 정수로 표시합니다. 십진수 정수 부분에서 사용할 수 있는 문자는 0123456789-+ 입니다. VEE는 접두문자 0x (hex)와 IEEE 488.2에서 지정된 모든 십진수 이외의 숫자포맷을 인식합니다.: #H (16진수), #Q (8진수), #B (2진수).
INTEGER32 | 문자를 읽어서 십진수 또는 다른 방식의 32-비트 정수로 표시합니다. 십진수 정수 부분에서 사용할 수 있는 문자는 0123456789-+ 입니다. VEE는 접두문자 0x (hex)와 IEEE 488.2에서 지정된 모든 십진수 이외의 숫자포맷을 인식합니다.: #H (16진수), #Q (8진수), #B (2진수).
INTEGER64 | 문자를 읽어서 십진수 또는 다른 방식의 64-비트 정수로 표시합니다. 십진수 정수 부분에서 사용할 수 있는 문자는 0123456789-+ 입니다. VEE는 접두문자 0x (hex)와 IEEE 488.2에서 지정된 모든 십진수 이외의 숫자포맷을 인식합니다.: #H (16진수), #Q (8진수), #B (2진수).
BOOLEAN | 문자를 읽어서 부울린 데이터로 표시합니다.
OCTAL | 문자를 읽어서 8진수 방식의 정수로 표시합니다. 8진수 정수 부분에서 사용할 수 있는 문자는 01234567 입니다. VEE는 IEEE 488.2에서 지정된 십진수 이외의 8 진수 숫자를 나타내는 접두문자 #Q 을 인식합니다.
HEX | 문자를 읽어서 16진수 방식의 정수로 표시합니다. 16진수 정수 부분에서 사용할 수 있는 문자는 0123456789abcdefABCDEF입니다. 0x가 디폴트 접두문자이며, 이것은 숫자의 일부분이 아니므로, 읽어서 버립니다. VEE는 IEEE 488.2에서 지정된 십진수 이외의 16 진수 숫자를 나타내는 접두문자 #H 을 인식합니다.
REAL32 | 문자를 읽어서 실수 32-비트(부동소수점) 십진수 숫자로 표시합니다. 맨 앞의 부호, 부호를 가진 지수 및 십진수 자리표시점을 포함하여 대부분의 표기방식을 인식합니다. REAL32에서 사용할 수 있는 문자는 0123456789-+.Ee입니다. VEE는 또한 특정 문자를 실수에서 사용하는 첨자 곱셈기로 인식합니다.(Table 참조)
REAL64 | 문자를 읽어서 실수 64-비트(부동소수점) 십진수 숫자로 표시합니다. 맨 앞의 부호, 부호를 가진 지수 및 십진수 자리표시점을 포함하여 대부분의 표기방식을 인식합니다. REAL32에서 사용할 수 있는 문자는 0123456789-+.Ee입니다. VEE는 또한 특정 문자를 실수에서 사용하는 첨자 곱셈기로 인식합니다.(Table 참조)
COMPLEX | 2 개의 REAL64 숫자를 읽어서 복소수로 인식합니다. 첫 번째 숫자는 실수부이며 두 번째 숫자는 허수부 입니다.
PCOMPLEX | 2 개의 REAL64 숫자를 읽어서 극좌표의 복소수로 인식합니다. 일부 엔지니어링 명칭으로는 이것을 “위상 표기방식”이라고 합니다. 첫 번째 숫자는 크기이며, 두 번째 숫자는 각도입니다. 위상에서 사용하는 단위는 트랜잭션에서 지정할 수 있습니다.
COORD | 2 개 이상의 REAL64 숫자를 읽어서 직교좌표로 인식합니다.
TIME STAMP | 날짜 및/또는 시간을 나타내는 VEE시간 스탬프 포맷중의 하나를 읽습니다.

관련정보

CHAR 포맷, TOKEN 포맷, STRING 포맷, QUOTED STRING 포맷, INT16 및 INT32 포맷, REAL32 및 REAL64 포맷, HEX 포맷, OCTAL 포맷, COMPLEX, PCOMPLEX 및 COORD 포맷

BINARY 인코딩, BINBLOCK 인코딩, CONTAINER 인코딩, IOSTATUS 인코딩,

REGISTER 인코딩, MEMORY 인코딩


READ TEXT에 대한 일반적인 주의사항

Read to End

READ TEXT 포맷에서는 지정된 개수의 앨리먼트를 읽을 것인지 EOF를 만날 때 까지 읽을 것인지 선택할 수 있습니다. 트랜잭션에서 NumElements는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식이먀, VarList의 각 변수의 차원을 지정합니다.

트랜잭션의 첫 번째 표현식이 애스터리스크(*)이면, EOF를 만날 때 까지 데이터를 읽습니다. EOF를 만날 때 까지 데이터를 읽는 동작을 지원하는 오브젝트는 다음과 같습니다.:

• From File

• From String

• From StdIn

• Execute Program

첫 번째 차원만 숫자대신 애스터리스크를 가질 수 있습니다.

예를 들어, 다음 트랜잭션이 하나의 파일에서 데이터를 읽으면,

READ TEXT a REAL ARRAY:*,10

EOF를 만날 때 까지 데이터를 읽어서, 10 개의 행을 가지는 2 차원 어레이를 생성합니다. 열의 개수는 파일의 데이터의 양에 따라서 변경됩니다. 읽은 데이터 앨리먼트의 전체 개수는 디멘젼 크기의 곱으로 같은 크기로 나눌 수 있어야 합니다. 여기서 디멘젼의 크기는 10 입니다.

READ당 문자의 개수

READ TEXT 포맷에서 DEFAULT NUM CHARS 또는 MAX NUM CHARS을 선택할 수 있습니다.:

STRING

INT16

INT32

INT64

BOOLEAN

OCTAL

HEX

REAL32

REAL64

이 절에서는 이들 포맷에서 DEFAULT NUM CHARS과 MAX NUM CHARS의 효과에 대해서 설명합니다.

이들 포맷을 이용할 때 DEFAULT NUM CHARS과 MAX NUM CHARS의 차이에 다음과 같습니다.

• DEFAULT NUM CHARS으로 설정하면, 사용해야 할 숫자나 문자가 아닌 것은 읽어서 버립니다.

• MAX NUM CHARS로 설정하면, 지정된 숫자만큼 읽어서 지정된 숫자 타입이나 스트링 타입으로 변환합니다. VEE는 READ를 완료하자마자 읽기를 중단합니다. 모든 문자를 읽으면, 트랜잭션에서 지정한 내용으로 데이터 타입을 변환합니다.

DEFAULT NUM CHARS으로 지정하면, 트랜잭션은 가능한 많은 문자를 읽어서 각 변수를 채웁니다. 지정된 데이터 타입이 아닌 문자는 읽어서 버립니다.

MAX NUM CHARS로 지정하면, 읽은 데이터가 지정된 데이터타입이 아니면 문자를 정렬하지 않습니다. 의미를 가지지 않은 데이터를 만나면, 그 문자를 읽은 후 에러가 발생하게 됩니다.

DEFAULT NUM CHARS와 MAX NUM CHARS의 어떤 것으로 지정하든, 새로운 라인과 파일의 끝은 스트링이나 숫자에 대해서 종결문자로 인식됩니다. 숫자 포맷의 경우, 숫자 앞의 공백은 읽어서 버립니다. 일단 숫자를 읽기 시작한 이후에 공백이나 숫자 이외의 문자를 만나면 현 READ 트랜잭션을 종료합니다. 이것은 일반적인 행위입니다. 더 자세한 내용은 다음 예제를 참조하십시오.

INT32 포맷을 이용하여 DEFAULT NUM CHARS과 MAX NUM CHARS의 역할을 구분하는 예제입니다. 다음 데이터를 가지고 있는 파일을 읽는다고 가정하겠습니다.:

bird dog cat 12345 horse

READ TEXT INT32 트랜잭션에 MAX NUM CHARS으로 설정하여 이 데이터에서 정수 12345를 추출하는 것은 불가능합니다. 왜냐하면 숫자를 읽기 전에 항상 bird dog cat 문자를 읽고, 이들 문자는 정수로 변환될 수 없으므로 에러가 발생하기 때문입니다.

DEFAULT NUM CHARS로 설정하면 정수 12345를 추출할 수 있습니다. bird dog cat 문자를 읽어서 무시하고 5 다음의 공백을 분리문자로 간주합니다.

인용부호로 묶은 스트링의 효과

인용부호로 묶은 스트링을 READ TEXT QSTR 및 READ TEXT TOKEN 트랜잭션에서 경로로 사용할 때 및 READ TEXT STRING 트랜잭션에서 계측기 또는 인터페이스 I/O를 사용할 때 주의해야 합니다. 여기서, 인용부호로 묶인 스트링이란 문자의 시작과 끝이 더블 인용문자로 쌓였으며, 내부에 더블 인용부호를 가지지 않은(non-escaped) 문자를 의미합니다. 더블 인용부호는 ASCII로 34입니다. 더블 인용부호는 이들 READ 트랜잭션이 문자를 스트링과 토큰으로 그룹화하는 방법과 임베드된 제어문자 및 이스케이프 문자(Escape)를 취급하는 방법에 영향을 미칩니다.

여기서 사용하는 용어, 제어문자(control character)와 이스케이프 문자(escape character)는 특별한 의미를 가집니다. 제어문자는 십진수 ASCII 값 0 ~ 31 사이의 문자입니다. 예를 들어, 줄바꿈(linefeed)은 십진수 ASCII 10이고, 이 문서에서는 <LF>로 표시합니다. 스트링 \n은 사람이 읽을 수 있으며, VEE가 줄바꿈으로 인식하는 이스케이프 문자입니다.

인용부호를 가진 스트링을 취급하는 트랜잭션의 행위는 측정 I/O 경로에 따라서 달라집니다. 계측기 I/O를 제외한 모든 I/O 경로에 대해서, READ TEXT STRING은 인용부호를 가진 스트링을 인식하지 못합니다.

계측기 I/O용으로 사용할 수 있는 READ TEXT QSTR 트랜잭션은 없습니다. 대신, READ TEXT STRING은 인용부호를 인식하므로 사용할 수 있습니다. IEEE 488.2 규격에서 인용부호를 가진 스트링은 특별한 의미를 가지고 있습니다. 계측기를 포함한 모든 I/O 경로에 대해서, READ TEXT TOKEN은 인용부호를 가진 스트링을 특별히 취급합니다. 다음 사례에서 사용하는 I/O경로는 파일 I/O라고 간주하겠습니다.

스트링이 인용부호로 묶여있지 않으면, READ TEXT STRING 트랜잭션 및 SPACE DELIM로 설정한 READ TEXT TOKEN 트랜잭션은 줄바꿈 이외의 제어문자는 읽어서 버립니다. \n (newline) 등의 이스케이프 문자는 단순히 2 개의 문자, \ 및 n로 읽힙니다.

READ TEXT QSTR 및 READ TEXT TOKEN 트랜잭션에서는 인용부호 내의 모든 스트링을 읽어서(제어문자를 포함) 입력 변수에 저장합니다. 임베드된 줄바꿈 문자도 읽혀서 다른 문자와 같이 취급합니다.-이 경우에는 현재 READ 트랜잭션이 종료되지 않습니다. 이스케이프 문자는 대응되는 하나의 문자로 변역됩니다.

그룹화 효과는 다음 예제를 통하여 설명합니다. 이 절이 나머지 부분에서는, 다음 내용을 가지는 파일을 읽는다고 가정합니다.

"This is in quotes." This is not.

다음 트랜잭션을 가진 From File 오브젝트를 이용하여 위의 파일을 읽는다고 가정하겠습니다.:

READ TEXT x QSTR

READ TEXT y QSTR

파일을 읽은 결과는 다음과 같습니다.:

x = This is in quotes.

y = This is not.

더블인용부호는 구분문자로 해석되고 입력변수에는 표시되지 않습니다.

다시, 다음 트랜잭션을 가진 From File 오브젝트를 이용하여 위의 파일을 읽는다고 가정하겠습니다.:

READ TEXT x QSTR MAXFW:4

READ TEXT y QSTR

파일을 읽은 결과는 다음과 같습니다.

x = This

y = This is not.

여기서도 더블인용부호는 아직 분리문자로 동작합니다. 첫 번째 트랜잭션은 더블인용부호에서 더블인용부호까지 읽어서 처음 4 개의 문자를 x 에 지정합니다. 두 번째 트랜잭션이 시작되기 전에 파일의 읽기포인터의 위치는 변경되지 않습니다. 두 번째 트랜잭션은 이전과 같은 스트링을 읽습니다.

다음에는 아래 트랜잭션을 가진 From File 오브젝트를 이용하여 위의 파일을 읽는다고 가정하겠습니다.:

READ TEXT x TOKEN

READ TEXT y QSTR

파일을 읽은 결과는 다음과 같습니다.:

x = This is in quotes.

y = This is not.

더블인용부호는 첫 번째 문장을 하나의 토큰으로 만듭니다. 디폴트 TOKEN 구분문자는 공백이지만, 전체 인용부호로 묶인 스트링은 하나의 토큰으로 취급됩니다. 또한, TOKEN은 더블인용부로 문자를 읽어서 버립니다.


CHAR 포맷

READ TEXT CHAR 트랜잭션은 다음과 같은 포맷입니다.:

READ TEXT VarList CHAR:NumChar ARRAY:NumStr

VarList는 하나의 Text 변수이거나, 콤마로 분리된 여러 개의 Text 변수입니다.

NumChar는 VarList안의 각 변수의 값을 채우기 위해서 읽어야 하는 8-비트 문자의 숫자를 지정합니다.

NumStr는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다. NumStr는 VarList안의 각 변수의 차수를 지정합니다. 트랜잭션이 스칼라를 읽도록 설정되었으면, 트랜잭션에 ARRAY 키워드가 표시되지 않습니다.

ARRAY:1 은 하나의 앨리먼트를 가지는 1 차원 어레이입니다. VEE에서는 하나의 앨리먼트를 가지는 1차원 어레이와 스칼라가 구별됩니다.

CHAR 포맷은 단순히 한 번에 하나의 문자를 읽거나, 입력되는 데이터를 무시하지 않고 모든 문자를 읽어야 할 때 사용하면 편리합니다.

이 트랜잭션은 2 개의 2-차원 Text 어레이를 읽습니다. 각 어레이의 각 앨리먼트는 2 개의 문자를 가집니다.

READ TEXT X,Y CHAR:2 ARRAY:2,2

이전 트랜잭션에서 읽은 파일은 이들 문자를 포함합니다.:

<space>ABCDEFG"AB"<LF>'CD

READ를 실행하면 변수 X 와 Y는 다음 값을 가집니다.:

X [0 0] = <space>A

X [0 1] = BC

X [1 0] = DE

X [1 1] = FG

Y [0 0] = "A

Y [0 1] = B"

Y [1 0] = <LF>'

Y [1 1] = CD

<space>는 공백(ASCII 값으로 32)입니다. <LF>는 라인피드(ASCII 값으로 10)입니다. 공백, 라인피드 및 더블인용부호는 특별한 고려없이 또는 해석없이 읽힙니다.

관련정보

TEXT 인코딩, BINARY 인코딩, BINBLOCK 인코딩, CONTAINER 인코딩, IOSTATUS 인코딩, REGISTER 인코딩, MEMORY 인코딩


TOKEN 포맷

READ TEXT TOKEN 트랜잭션은 다음과 같은 포맷을 가집니다:

READ TEXT VarList TOKEN Delimiter ARRAY:NumElements

VarList는 하나의 Text 변수 또는 콤마로 분리된 Text 변수들의 리스트입니다.

Delimiter는 각 토큰의 구분문자입니다.

NumElements는 VarList에 있는 각 변수의 차원을 지정하는 하나의 표현식 또는 콤마로 구분된 표현식 리스트입니다. 트랜잭션이 스칼라를 읽도록 설정된 경우에는, ARRAY 키워드는 트랜잭션에 나타나지 않습니다. ARRAY:1는 하나의 앨리먼트를 가지는 1차원 어레이입니다. VEE에서는 스칼라 데이터와 단 하나의 앨리먼트를 가지는 1차원 어레이를 사용하는 방법이 동일하지 않습니다.

TOKEN 포맷은 Delimiter들 중에 하나를 사용하는 토큰에 대한 구분문자(경계)를 지정할 수 있도록 합니다:

• SPACE DELIM

• INCLUDE CHARS

• EXCLUDE CHARS

다음 구분문자들에 대한 내용은 아래의 항목들을 사용하여 파일(file1)을 읽을 때 영향을 주는 구분문자의 선택 방법을 설명합니다:

A phrase.
"A phrase."
Tab follows.
XOXXOOXXXOOOXXXX
XAXXBCXXXDEF

파일은 숫자 0(zero)가 아닌 문자 o를 포함합니다.

위의 파일에서 4개의 각 라인의 끝에는 줄바꿈 문자가 있지만 보이지는 않습니다. 이것은 vi 등의 텍스트 에디터를 사용하면 볼 수 있습니다.

SPACE DELIM

SPACE DELIM을 사용하는 경우에는, 토큰을 공백으로 구분합니다. 스페이스, 탭, 뉴라인과 EOF(end-of-file) 등이 SPACE DELIM에 해당합니다. SPACE DELIM을 사용하면, 텍스트로 작성된 파일을 읽어서 각각의 단어를 추출해낼 수 있습니다.

따옴표(“”)가 사용된 스트링은 특별하게 처리됩니다. 따옴표가 사용된 스트링은 하나의 토큰으로 읽어오고 따옴표는 떼어냅니다. 따옴표가 사용된 컨트롤 문자(ASCII 0-31 십진수)는 출력변수로 리턴됩니다. 따옴표가 사용된 탈출문자(\n 같은)는 동일한 컨트롤문자로 변환됩니다.

따옴표가 사용된 스트링의 특별 처리는 단지 SPACE DELIM 트랜잭션에만 적용됩니다. INCLUDE CHARS과 EXCLUDE CHARS는 따옴표, 탈출문자, 컨트롤 문자를 다른 문자와 동일하게 처리합니다.

SPACE DELIM를 사용하여 file1에 있는 데이터를 읽는 트랜잭션은 다음과 같습니다:

READ TEXT a TOKEN ARRAY:8

변수 a에는 다음의 값이 저장됩니다:

a[0] = A

a[1] = phrase.

a[2] = A phrase.

a[3] = Tab

a[4] = follows

a[5] = .

a[6] = XOXXOOXXXOOOXXXX

a[7] = XAXXBCXXXDEF

INCLUDE CHARS

INCLUDE CHARS을 사용하는 경우에는, READ에 의해 리턴되는 토큰에서 “포함되어야 하는” 문자들의 리스트를 지정할 수 있습니다. 지정된 INCLUDE 문자 외에 다른 임의의 문자를 만나면 현재의 토큰이 종료됩니다. 종료문자는 토큰에 포함되지 않고 떼어냅니다.

INCLUDE CHARS를 사용하여 file1에 있는 데이터를 읽는 트랜잭션은 다음과 같습니다:

READ TEXT a TOKEN INCLUDE:"X" ARRAY:7

변수 a에는 다음의 값이 저장됩니다:

a[0] = X

a[1] = XX

a[2] = XXX

a[3] = XXXX

a[4] = X

a[5] = XX

a[6] = XXX

VEE가 INCLUDE CHARS를 사용하여 file1에 있는 데이터를 읽기 위해서는 트랜잭션은 다음과 같습니다:

READ TEXT a TOKEN INCLUDE:"OXZ" ARRAY:4

변수 a에는 다음의 값이 저장됩니다:

a[0] = XOXXOOXXXOOOXXXX

a[1] = X

a[2] = XX

a[3] = XXX

INCLUDE 리스트에 있는 첫 번째 문자는 숫자 0(zero)이 아닌 문자 o입니다.

다음과 같은 데이터를 포함하는 파일(file2)을 읽는다고 가정합니다.

111 222 333 444 555

file2에 있는 데이터를 읽기 위해서는 다음의 트랜잭션을 사용합니다:

READ TEXT x,y,z TOKEN INCLUDE:"1234567890"

Text 변수 x, y 및 z는 다음의 값을 포함합니다:

x = 111

y = 222

z = 333

다른 방법은 1보다 큰 ARRAY를 어레이로 읽어오는 것입니다. 예를 들어, 위에 있는 데이터를 읽기 위해서는 다음의 트랜잭션을 사용합니다:

READ TEXT x TOKEN INCLUDE:"1234567890" ARRAY:3

Text 변수 x는 다음의 값을 포함합니다:

x[0] = 111

x[1] = 222

x[2] = 333

EXCLUDE CHARS

EXCLUDE CHARS를 사용하는 경우에는, 현재의 토큰을 종료하는 문자의 리스트를 지정할 수 있습니다. 종료문자는 토큰에 포함되지 않습니다. 이들은 읽고 나서 버립니다.

EXCLUDE을 사용하여 file1에 있는 데이터를 읽기 위해서는 다음의 트랜잭션을 사용합니다:

READ TEXT a TOKEN EXCLUDE:"X" ARRAY:8

변수 a는 다음의 값을 포함합니다:

a[0] = A phrase.<LF>"A phrase."<LF>Tab follows .<LF>

a[1] = O

a[2] = OO

a[3] = OOO

a[4] = <LF>

a[5] = A

a[6] = BC

a[7] = DEF<LF>

아래의 데이터가 계측기에서 VEE로 전송된다고 가정합니다.

++1.23++4.98++0.45++2.34++0.01++23.45++12.2++

VEE가 위의 데이터를 읽기 위해서는 다음의 트랜잭션을 사용합니다:

READ TEXT x TOKEN EXCLUDE:"+" ARRAY:7

변수 x는 다음의 값을 포함합니다:

x[0] = null string (empty)

x[1] = 1.23

x[2] = 4.98

x[3] = 0.45

x[4] = 2.34

x[5] = 0.01

x[6] = 23.45

7개의 ”숫자”를 사용할 수 있을지라도, 단지 6개만 읽습니다. 이 트랜잭션의 마지막에서, 임의의 데이터로 채워지기 전에 종료된 첫 번째 문자를 추가하여, VEE는 +에 의해 종료된 7개의 토큰을 읽어옵니다.

주의사항

EXCLUDE CHARS의 동작은 VEE 5 실행모드 이상과 VEE 4 실행모드 이하에서는 차이가 있습니다. 이들 차이점에 대한 자세한 내용은 Read Text 트랜잭션을 참조하십시오.


STRING 포맷

READ TEXT STRING 트랜잭션은 다음과 같은 포맷입니다.:

READ TEXT VarList STR ARRAY:NumElements

-또는-

READ TEXT VarList STR MAXFW:NumChars ARRAY:NumElements

VarList는 하나의 정수 변수이거나, 콤마로 분리된 여러 개의 정수 변수입니다.

NumChars 는 읽어야 할 8-비트 문자의 최대 개수입니다.

NumElements는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다. VarList 안의 각 변수의 차수입니다. 이 트랜잭션이 스칼라를 읽도록 설정되었으면, ARRAY 키워드가 트랜잭션에 표시되지 않습니다. ARRAY:1은 하나의 앨리먼트를 가진 1 차원 어레이입니다. VEE에서는 스칼라와 하나의 앨리먼트를 가진 어레이가 동일하게 취급되지 않습니다.

이 트랜잭션은 모든 입력문자를 읽어서 스트링으로 리턴합니다. 문자 앞에 있는 공백은 삭제됩니다. 여기서는 GPIB 또는 VXI 등의 계측기 입출력과 관련된 내용을 설명합니다. 이들을 제외한 파일이나 name12-파이프 등의 입출력 등에서는 인용부호를 가진 스트링을 특별하게 취급되지 않습니다. READ TEXT STRING 트랜잭션에서 더블인용부호를 가진 스트링의 효과에 대한 자세한 내용은 READ TEXT에 대한 일반적인 주의사항을 참조하십시오.

제어문자 및 이스케이프 문자의 효과

여기서 사용하는 용어, 제어문자(control character)와 이스케이프 문자(escape character)는 특별한 의미를 가집니다. 제어문자는 십진수 ASCII 값 0 ~ 31 사이의 문자입니다. 예를 들어, 줄바꿈(linefeed)은 십진수 ASCII 10이고, 이 문서에서는 <LF>로 표시합니다. 스트링 \n은 사람이 읽을 수 있으며, VEE가 줄바꿈으로 인식하는 이스케이프 문자입니다. VEE는 인용부호 안의 스트링에서 제어문자를 표현하기 위해서 이스케이프 문자를 사용합니다.

제어문자와 이스케이프문자는 더블 인용부호 안에서 사용되는가 밖에서 사용되는가에 따라 다르게 취급됩니다.

더블인용부호 밖에서 사용된 줄바꿈 이외의 제어문자는 읽어서 버려집니다. 데이터를 읽을 때 더블인용부호 밖에 있는 줄바꿈 문자를 만나면 현재 스트링을 읽고 있는 트랜잭션을 종료시킵니다. \n 등의 이스케이프 문자는 (\ 와 n)의 개별 2 개의 문자로 읽힙니다.

더블인용부호 안에서 사용된 제어문자와 이스케이프문자는 읽혀서 READ 트랜잭션에 의해서 리턴되는 스트링에 포함됩니다. 데이터를 읽을 때 더블인용부호 안에서 줄바꿈 문자를 만나도 현재 스트링을 읽고 있는 트랜잭션을 종료시키지 않습니다. \n 등의 이스케이프 문자는 자신들의 단일 문자(<LF>)로 인식되며, 리턴되는 스트링에서도 제어문자로 포함됩니다.

READ TEXT STRING 트랜잭션을 사용하여 다음 스트링 데이터를 읽는다고 가정하겠습니다.:

Simple string.

Random \n % $ * ‘A'

"In quotes."

"In quotes

with control."

"In quotes\nwith escape."

  • 다음 트랜잭션을 사용하여 스트링 데이터를 읽으면:

READ TEXT x STR ARRAY:5

변수 x에는 다음과 같이 값이 리턴됩니다.:

a[0] = Simple string.

a[1] = Random \n % $ * 멇'

a[2] = In quotes.

a[3] = In quotes<LF>with control.

a[4] = In quotes<LF>with escape.

  • 다음 트랜잭션을 사용하여 동일한 데이터를 읽으면:

READ TEXT x STR MAXFW:16 ARRAY:5

변수 x에는 다음과 같이 값이 리턴됩니다.:

a[0] = Simple string.

a[1] = Random \n % $ *

a[2] = ‘A'

a[3] = In quotes.

a[4] = In quotes<LF>with c

이 트랜잭션은 16 개의 문자(a[1])를 읽었거나 인용부호를 가지지 않는 <LF> (a[2])를 읽었을 때 현재의 READ 트랜잭션을 종료합니다. 인용부호에서 인용부호까지의 스트링의 내용을 읽습니다. 더블인용부호 안의 스트링의 길이가 긴 경우에는 앞에서 16개 까지의 문자만(a[4]) 리턴됩니다.


QUOTED STRING 포맷

READ TEXT QUOTED STRING 트랜잭션은 다음과 같은 포맷입니다.:

READ TEXT VarList QSTR ARRAY:NumElements

-또는-

READ TEXT VarList QSTR MAXFW:NumChars ARRAY:NumElements

VarList는 하나의 텍스트 변수이거나, 콤마로 분리된 여러 개의 텍스트 변수입니다.

NumChars 는 읽어야 할 8-비트 문자의 개수입니다.

NumElements는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다. VarList 안의 각 변수의 차수입니다. 이 트랜잭션이 스칼라를 읽도록 설정되었으면, ARRAY 키워드가 트랜잭션에 표시되지 않습니다. ARRAY:1은 하나의 앨리먼트를 가진 1 차원 어레이입니다. VEE에서는 스칼라와 하나의 앨리먼트를 가진 어레이가 동일하게 취급되지 않습니다.

이 트랜잭션은 입력되는 모든 문자를 읽어서 스트링으로 리턴합니다. 아래의 내용은 계측기 이외의 I/O 경로에 관한 내용입니다. 계측기 I/O 경로에는 READ TEXT QSTR 트랜잭션을 적용할 수 없습니다. READ TEXT STRING에서 더블인용부호를 가진 스트링의 효과에 대한 내용은 READ TEXT에 대한 일반적인 주의사항을 참조하십시오.

관련정보 : STRING 포맷.


INTEGER 포맷

READ TEXT INTEGER 트랜잭션은 다음과 같은 포맷입니다.:

READ TEXT VarList INT16(or INT32, INT64) ARRAY:NumElements

-또는-

READ TEXT VarList INT16(or INT32, INT64) MAXFW:NumChars ARRAY:NumElements

VarList는 하나의 정수 변수이거나, 콤마로 분리된 여러 개의 정수 변수입니다.

NumChars는 읽어야 할 문자(8-비트)의 개수입니다.

NumElements는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다. VarList 안의 각 변수의 차수입니다. 이 트랜잭션이 스칼라를 읽도록 설정되었으면, ARRAY 키워드가 트랜잭션에 표시되지 않습니다. ARRAY:1은 하나의 앨리먼트를 가진 1 차원 어레이입니다. VEE에서는 스칼라와 하나의 앨리먼트를 가진 어레이를 구별합니다.

READ TEXT INT16 트랜잭션은 입력 문자를 16-비트 2의 보수 정수로 표시합니다. 이 정수의 유효한 범위는 32767 부터 -32768까지 입니다. 이 범위를 벗어나는 숫자는 감겨서 오버플로우가 발생하지 않습니다. 예를 들어, 32768는 -32768로 인식됩니다.

READ TEXT INT32 트랜잭션은 입력 문자를 32-비트 2의 보수 정수로 표시합니다. 이 정수의 유효한 범위는 2 147 483 647 부터 -2 147 483 648까지 입니다. 이 범위를 벗어나는 숫자는 감겨서 오버플로우가 발생하지 않습니다. 예를 들어, 2 147 483 648는 -2 147 483 648로 인식됩니다.

READ TEXT INT64 트랜잭션은 입력 문자를 64-비트 2의 보수 정수로 표시합니다. 이 정수의 유효한 범위는 -9223372036854775808 부터 +9223372036854775807까지 입니다. 이 범위를 벗어나는 숫자는 감겨서 오버플로우가 발생하지 않습니다. 예를 들어, 9223372036854775808 는 -9223372036854775808로 인식됩니다.

트랜잭션이 숫자를 생성함에 따라서, VEE는 숫자로 인식되지 않는 모든 앞의 문자를 버립니다. 일단 VEE가 숫자를 읽었으면 이후에 발생되는 숫자로 인식되지 않는 문자를 만나면 READ 트랜잭션을 중지합니다. 다음 테이블에서는 INT16, INT32 또는 INT64의 일부로 인식되는 문자의 조합에 대해서만 설명합니다.

표기방식 | 인식된 문자
Decimal | 유효한 문자는 ?0123456789 입니다. 앞의 0은 VEE 데이터 엔트리 필드에 있으므로 8 진수 접두문자로 인식되지 않습니다.
VEE hexadecimal | 0x를 16진수 접두문자로 인식합니다. 이 접두문자 다음에 사용할 수 있는 문자는 0123456789aAbBcCdDeEfF입니다.
IEEE 488.2 binary | #b 또는 #B를 2 진수의 접두문자로 인식합니다. 이 접두문자 다음에 사용할 수 있는 문자는 0 과 1 입니다.
IEEE 488.2 octal | #q 또는 #Q \를 8 진수의 접두문자로 인식합니다. 이 접두문자 다음에 사용할 수 있는 문자는 01234567입니다.
IEEE 488.2 hexadecimal | #h 또는 #H를 16진수 숫자의 접두문자로 인식합니다. 이 접두문자 다음에 사용할 수 있는 문자는 0123456789aAbBcCdDeEfF입니다.

다음의 모든 표시내용은 십진수의 값 15를 나타냅니다.:

15

+15

015

0xF

0xf

#b1111

#Q17

#hF


OCTAL 포맷

READ TEXT OCTAL 트랜잭션은 다음과 같은 포맷입니다.:

READ TEXT VarList OCT ARRAY:NumElements

-또는-

READ TEXT VarList OCT MAXFW:NumChars

여기서:

ARRAY:NumElements

VarList은 하나의 정수변수이거나, 콤마로 분리된 여러 개의 정수변수입니다

NumChars 는 읽어야 할 8-비트 문자의 개수입니다.

NumElements는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다. VarList 안의 각 변수의 차수입니다. 이 트랜잭션이 스칼라를 읽도록 설정되었으면, ARRAY 키워드가 트랜잭션에 표시되지 않습니다. ARRAY:1은 하나의 앨리먼트를 가진 1 차원 어레이입니다. VEE에서는 스칼라와 하나의 앨리먼트를 가진 어레이가 동일하게 취급되지 않습니다.

READ TEXT OCTAL 트랜잭션은 입력 문자를 64-비트 8진수 2의 보수 정수로 표시합니다. 이 정수의 유효한 범위는 십진수 -9223372036854775808 부터 십진수 +9223372036854775807 까지 입니다.

트랜잭션이 MAX NUM CHARS (MAXFW)으로 설정되면, 읽은 8진수 숫자는 64비트 이상의 데이터를 가질 수 있습니다. 예를 들어, VEE가 다음 8진수 데이터를 읽었다고 가정하겠습니다.:

37723745621456724377745277234

이 트랜잭션을 이용하여:

READ TEXT x OCT MAXFW:32

VEE는 16진수 데이터에서 모든 자리수를 읽지만, 마지막 22 자리(5621456724377745277234)만을 이용하여 숫자를 생성합니다. 각각의 자리가 3 비트이고 8진수 숫자가 64비트 길이의 VEE 정수로 저장되어야 하기 때문입니다. 8진수로 22자리수를 가진 숫자는 66비트를 가지며, VEE의 값과 일치시키기 위해서 상위 2 비트는 제거됩니다. 오버플로우가 발생할 가능성은 없습니다.

주의

VEE 6&7 및 이전 버전에서는, READ TEXT OCTAL 트랜잭션은 입력 문자를 32-비트 8 진수 2의 보수로 인식합니다. 이들 정수의 유효한 범위는 십진수 2 147 483 647 부터 10진수 -2 147 483 648 까지 입니다.

트랜잭션이 DEFAULT NUM CHARS로 설정되어 있으면, VarList의 각 변수가 채워질 때까지 문자를 읽습니다. 줄바꿈 문자를 읽어도 READ 트랜잭션이 중단되지 않습니다. 예를 들어, 다음 트랜잭션은:

READ TEXT x OCT ARRAY:4

아래의 각 라인이 동일한 4 개의 8진수를 가지고 있다고 인식합니다.:

0345 067 003<LF>0377<LF>

345 67 3 377<EOF>

345,67,3,377,45,67<EOF>

<LF>기호는 줄바꿈문자(ASCII 10 십진수)를 나타내며, <EOF>기호는 파일종료문자(End-of-file)를 나타냅니다.


HEX 포맷

READ TEXT HEX 트랜잭션은 다음과 같은 포맷입니다.:

READ TEXT VarList HEX ARRAY:NumElements

-또는-

READ TEXT VarList HEX MAXFW:NumChars ARRAY:NumElements

VarList는 하나의 정수 변수이거나, 콤마로 분리된 여러 개의 정수 변수입니다.

NumChars 는 읽어야 할 16-비트 문자의 개수입니다.

NumElements는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다. VarList 안의 각 변수의 차수입니다. 이 트랜잭션이 스칼라를 읽도록 설정되었으면, ARRAY 키워드가 트랜잭션에 표시되지 않습니다. ARRAY:1은 하나의 앨리먼트를 가진 1 차원 어레이입니다. VEE에서는 스칼라와 하나의 앨리먼트를 가진 어레이가 동일하게 취급되지 않습니다.

READ TEXT HEX 트랜잭션은 입력 문자를 64-비트 16진수 2의 보수 정수로 표시합니다. 이 정수의 유효한 범위는 십진수 -9223372036854775808 부터 십진수 +9223372036854775807 까지 입니다.

트랜잭션이 MAX NUM CHARS (MAXFW)으로 설정되면, 읽은 16진수 숫자는 64비트 이상의 데이터를 가질 수 있습니다. 예를 들어, VEE가 다음 16진수 데이터를 읽었다고 가정하겠습니다.:

ad2469Ff725BCdef37964 hexadecimal data

이 트랜잭션을 이용하여:

READ TEXT x HEX MAXFW:32

VEE는 16진수 데이터에서 모든 자리수를 읽지만, 마지막 16 자리(9Ff725BCdef37964)만을 이용하여 숫자를 생성합니다. 각각의 자리가 4 비트이고 16진수 숫자가 하나의 64비트 길이의 VEE 정수로 저장되어야 하기 때문입니다. 16진수로 16자리수를 가진 숫자는 64비트를 가집니다. 오버플로우가 발생할 가능성은 없습니다.

주의

VEE 6&7 및 이전 버전에서는, READ TEXT HEX 트랜잭션은 입력 문자를 32-비트 8 진수 2의 보수로 인식합니다. 이들 정수의 유효한 범위는 십진수 2 147 483 647 부터 10진수 -2 147 483 648 까지 입니다.

VEE는 동일한 16진수 데이터를 읽지만, 서로 다른 MAX NUM CHARS로 설정되어 있다고 가정합니다.:

READ TEXT x HEX MAXFW:3 ARRAY:7

이 경우, 트랜잭션은 동일한 데이터를 읽어서 그것을 7 개의 정수로 인식합니다. 각 정수는 자리수가 3 인 16진수 입니다.

트랜잭션이 DEFAULT NUM CHARS로 설정되어 있으면, VarList의 각 변수가 채워질 때까지 문자를 읽습니다. 각 숫자는 8 개의 16진수 데이터를 읽습니다. 줄바꿈 문자를 읽어도 READ 트랜잭션이 중단되지 않습니다.

VEE가 동일한 16진수 데이터를 읽으며, 다음 트랜잭션은 DEFAULT NUM CHARS로 설정되었다고 가정합니다.:

READ TEXT x HEX ARRAY:2

이 경우, 트랜재션은 동일한 데이터를 읽어서 그것을 2 개의 정수로 해석합니다. 각 데이터는 8 개의 자리수를 가진 16진수로 구성됩니다. 마지막 5 개의 자리수(37946)를 읽지 않습니다.


REAL32 및 REAL64 포맷

READ TEXT REAL32 및 READ TEXT REAL64 트랜잭션은 다음과 같은 포맷입니다.:

READ TEXT VarList REAL32(or REAL64) ARRAY:NumElements

-또는-

READ TEXT VarList REAL32(or REAL64) MAXFW:NumChars ARRAY:NumElements

VarList는 하나의 실수 변수이거나, 콤마로 분리된 여러 개의 실수 변수입니다.

NumChars는 읽어야 할 문자(8-비트)의 개수입니다.

NumElements 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다. VarList 안의 각 변수의 차수입니다. 이 트랜잭션이 스칼라를 읽도록 설정되었으면, ARRAY 키워드가 트랜잭션에 표시되지 않습니다. ARRAY:1은 하나의 앨리먼트를 가진 1 차원 어레이입니다. VEE에서는 스칼라와 하나의 앨리먼트를 가진 어레이를 구별합니다.

이 트랜잭션으로 읽은 십진수는 VEE의 Real32로 인식됩니다. VEE의 Real32 포맷은 32-비트 IEEE 754 부동소소점 숫자입니다. 이 숫자의 범위는:

-1.175 494 35E-38

-3.402 823 47E+38

에서

3.402 823 47E+38

1.175 494 35E-38

이 트랜잭션으로 읽은 십진수는 VEE의 Real64로 인식됩니다. VEE의 Real64 포맷은 64-비트 IEEE 754 부동소소점 숫자입니다. 이 숫자의 범위는:

-1.797 693 134 862 315E+308

-2.225 073 858 507 202E-307

에서

2.225 073 858 507 202E-307

1.797 693 134 862 315E+308

이 트랜잭션에서 MAX NUM CHARS (MAXFW)를 정의하였으면, 읽은 실수에는 17 자리수 이상의 데이터를 가질 수 있습니다. 예를 들어, VEE가 다음 실수를 읽는다고 가정하면:

1.234567890123456789 real number data

이 트랜잭션을 사용하여:

READ TEXT x REAL64 MAXFW:19

VEE는 모든 자리를 실수로 읽지만, 가수의 상위 17개의 자리수만을 사용합니다. 각 실수가 54비트 가수를 가지며, 이 54비트는 자리수가 16 개보다 크고 17개 보다는 작기 때문입니다. 결과적으로 x의 출력은 1.2345678901234567 이 됩니다.

Text를 Real로 변환하더라도 가장 하위의 숫자까지 동일한 값을 가진다는 것을 보장할 수 없습니다. 두 개의 가장 하위의 비트를 비교하는 것은 추천하지 않습니다.

VEE가 서로 다른 MAX NUM CHARS를 가진 동일한 실수를 읽는다고 가정하겠습니다.:

READ TEXT x REAL64 MAXFW:6 ARRAY:3

이 경우, 이 트랜잭션은 동일한 데이터를 읽어서, 그것들이 각각 6 개의 십진수 문자를 가지는 3 개의 실수로 인식합니다. 마지막 2 개의 문자는 읽지 않습니다.

트랜잭션이 DEFAULT NUM CHARS로 설정되어 있으면, VarList의 각 변수가 채워질 때까지 문자를 읽습니다. 각 숫자는 최대 17 십진수 자리까지 데이터를 읽습니다. 17개의 숫자를 읽기 전에 줄바꿈 문자, 공백 또는 숫자 이외의 다른 문자를 읽으면 READ 트랜잭션이 중단됩니다.

READ TEXT REAL64 및 REAL32 트랜잭션은 부호, 십진수 소수점 및 부호를 가진 지수를 포함하는 실수에 대한 십진수 표기법을 인식합니다. +-.0123456789Ee 문자를 모든 READ TEXT REAL 트랜잭션에서 사용하는 실수부분으로 사용할 수 있습니다. 트랜잭션에서 DEFAULT NUM CHARS를 지정하면, 다음 테이블의 첨자를 인식합니다. 첨자는 숫자 다음에 공백없이 붙여야 합니다.

첨자 | 배율
P | 1015
T | 1012
G | 109
M | 106
k or K | 103
m | 10-3
u | 10-6
n | 10-9
p | 10-12
f | 10-15

다음 텍스트 데이터는 6 개의 실수의 예입니다.:

1001

+1001.

1001.0

1.001E3

+1.001E+03

1.001K

  • • 다음 트랜잭션으로 실수 텍스트 데이터를 읽으면:

READ TEXT x REAL64 ARRAY:6

실수 변수 x의 각 앨리먼트는 값 1001을 가집니다.

  • • 동일한 데이터를 다음 트랜잭션으로 읽으면:

READ TEXT x REAL64 MAXFW:20 ARRAY:6

실수 변수 x의 처음 5 개의 앨리먼트는 값 1001을 가지면, 6 번째 앨리먼트는 1.001을 가집니다.


COMPLEX, PCOMPLEX 및 COORD 포맷

COMPLEX, PCOMPLEX 및 COORD은 동일한 이름을 가진 VEE 다중-필드 데이터 타입입니다. 이들의 READ 포맷의 동작은 매우 유사합니다. 여기서 설명된 동작은 별도 표기된 경우를 제외하고는 이들 3 개의 포맷에 동일하게 적용됩니다.

VEE 데이터타입 Complex, PComplex 및 Coord이 여러 개의 Real64 숫자로 구성되어 있는 것과 마찬가지로, COMPLEX, PCOMPLEX 및 COORD포맷도 REAL64 포맷의 합성입니다. 다중필드의 각 구성되는 Real 값은 개별 REAL64로 포맷된 값에 적용되는 동일한 규칙을 사용하여 읽습니다.

COMPLEX 포맷

READ TEXT COMPLEX 트랜잭션은 다음과 같은 포맷입니다:

READ TEXT VarList CPX ARRAY:NumElements

각 READ TEXT COMPLEX 트랜잭션은 REAL로 포맷된 2 개의 숫자를 읽습니다. 첫 번째 숫자는 실수로, 두 번째 숫자는 허수로 인식됩니다.

PCOMPLEX 포맷

READ TEXT PCOMPLEX 트랜잭션은 다음과 같은 포맷입니다.:

READ TEXT VarList PCX:PUnit ARRAY:NumElements

PUnit는 각도 측정값의 단위를 지정합니다. PComplex의 위상이 측정됩니다.

각 READ TEXT PCOMPLEX 트랜잭션은 2 개의 REAL로 포맷된 숫자를 읽습니다. 첫 번째 읽은 숫자는 크기로, 2 번째 숫자는 위상으로 인식됩니다.

COMPLEX, PCOMPLEX, 또는 COORD 형태의 데이터를 트랜잭션으로 읽을 때는 괄호를 사용합니다.

다음과 같이 괄호를 사용하는 데이터를 가지는 파일을 읽을 때:

(1.23 , 3.45 (6.78 , 9.01) (1.23 , 4.56)

VEE가 다음 트랜잭션으로 데이터를 읽으면:

READ TEXT x,y CPX

변수 x 와 y는 다음 복소수 값을 가집니다.:

x = (1.23 , 3.45)

y = (1.23 , 4.56)

트랜잭션은 닫는 괄호를 찾기 위해서 6.78 과 9.01를 읽습니다. 괄호가 없으면 y는 (6.78 , 9.01)의 값을 가지게 됩니다.

COORD 포맷

READ TEXT COORD 트랜잭션은 다음과 같은 포맷입니다.:

READ TEXT VarList COORD:NumFields ARRAY:NumElements

VarList는 하나의 Coord 변수이거나, 콤마로 분리된 여러 개의 Coord 변수입니다.

NumFields는 하나의 변수이거나 표현식입니다. 이것은 각 Coord 값에서 직각 차원의 개수를 지정하며, 2 이상의 값을 가져야지만 READ 트랜잭션에서 에러가 발생하지 않습니다.

NumElements는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다. VarList 안의 각 변수의 차수입니다. 이 트랜잭션이 스칼라를 읽도록 설정되었으면, ARRAY 키워드가 트랜잭션에 표시되지 않습니다. ARRAY:1은 하나의 앨리먼트를 가진 1 차원 어레이입니다. VEE에서는 스칼라와 하나의 앨리먼트를 가진 어레이가 동일하게 취급되지 않습니다.


BINARY 인코딩

READ BINARY 트랜잭션은 다음과 같은 포맷입니다.:

READ BINARY VarList DataType ARRAY:NumElements

여기서, VarList는 하나의 변수이거나, 콤마로 분리된 여러 개의 변수입니다.

DataType는 다음과 같이 미리 지정된 포맷의 VEE 데이터타입입니다.:

• Boolean - 32-비트 2의 보수 정수

• BYTE - 8-비트 부호 없는 바이트

• INT16 - 16-비트 2의 보수 정수

• INT32 - 32-비트 2의 보수 정수

• INT64 - 64-비트 2의 보수 정수

• REAL32 - 32-비트 IEEE 754 부동소수점 숫자

• REAL64 - 64-비트 IEEE 754 부동소수점 숫자

• STRING – 널(null)로 끝나는 스트링

• COMPLEX – 2 개의 REAL64와 동일함

• PCOMPLEX -2 개의 REAL64와 동일함

• COORD - 2 개 이상의 REAL64와 동일함

주의

VEE 5 이하의 실행모드에서는 모든 정수타입의 숫자를 INT32 데이터타입으로, 모든 실수데이터는 Real(즉, REAL64) 데이터타입으로 저장하고 관리합니다. 그러므로 INT16 및 REAL32 데이터타입은 입출력시에만 사용하는 포맷입니다. VEE 5 이하의 실행모드에서는 계측기 입력 트랜잭션에서 다음과 같이 데이터타입을 변환합니다.

계측기에서 받은 INT16은 VEE 5 이하의 실행모드에서 INT32로 변환됩니다. 여기서 INT16 데이터는 부호를 가진 숫자로 간주됩니다. 결과값을 부호없는 INT32형로 받아야 하는 경우에는, 다음의 연산식으로 데이터를 변환하면 됩니다.

BITAND(a, 0xFFFF)

계측기에서 받은 REAL32 값은 VEE 5 이하의 실행모드에서 REAL64로 변환됩니다.

VEE 6 실행모드에서는 데이터타입을 유지합니다.

NumElements는 다일표현식 또는 콤마로 분리된 표현식 목록입니다. 이 표현식 목록은 VarList의 각 변수의 차원을 지정합니다. 첫 번째 표현식이 애스터리스크(*)이면, 트랜잭션은 EOF를 만날 때 까지 데이터를 읽습니다(Read to End) EOF를 만날 때 까지 데이터를 읽는 동작을 지원하는 오브젝트는 다음과 같습니다.:

• From File

• From String

• From StdIn

• Execute Program

첫 번째 차원만 숫자대신 애스터리스크를 가질 수 있습니다. 트랜잭션이 스칼라를 읽도록 설정되어 있으면, ARRAY 키워드가 트랜잭션에 표시되지 않습니다. ARRAY:1은 하나의 앨리먼트를 가지는 1 차원 어레이입니다. VEE에서는 하나의 앨리먼트를 가지는 1차원 어레이와 스칼라가 구별됩니다.

예를 들어, 하나의 파일에서 데이터를 읽는, 다음 트랜잭션은

READ BINARY a REAL64 ARRAY:*,10

EOF를 만날 때 까지 데이터를 읽어서, 10 개의 행을 가지는 2 차원 어레이를 생성합니다. 열의 개수는 파일의 데이터의 양에 따라서 변경됩니다. 읽은 데이터 앨리먼트의 전체 개수는 디멘젼 크기의 곱으로 같은 크기로 나눌 수 있어야 합니다. 여기서 디멘젼의 크기는 10 입니다.

READ BINARY 트랜잭션은 읽어 들이는 데이터는 WRITE BINARY 트랜잭션에 적용되었던 포맷을 가진다고 간주합니다. BINARY 인코딩된 데이터는 매우 컴팩트하다는 장점을 가지지만, VEE이외의 다른 프로그램에서 공유하기는 쉽지 않습니다.

관련정보

TEXT 인코딩, BINBLOCK 인코딩, CONTAINER 인코딩 , IOSTATUS 인코딩,

REGISTER 인코딩, MEMORY 인코딩


BINBLOCK 인코딩

READ BINBLOCK 트랜잭션은 다음의 형태입니다.:

READ BINBLOCK VarList DataType ARRAY:NumElements

여기서, VarList 하나의 변수이거나, 콤마로 분리된 여러 개의 변수입니다.

DataType는 다음과 같이 미리 지정된 포맷의 VEE 데이터타입입니다.:

• Boolean - 32-비트 2의 보수 정수

• BYTE - 8-비트 부호 없는 바이트

• INT16 - 16-비트 2의 보수 정수

• INT32 - 32-비트 2의 보수 정수

• INT64 - 64-비트 2의 보수 정수

• REAL32 - 32-비트 IEEE 754 부동소수점 숫자

• REAL64 - 64-비트 IEEE 754 부동소수점 숫자

• STRING – 널(null)로 끝나는 스트링

• COMPLEX – 2 개의 REAL64와 동일함

• PCOMPLEX -2 개의 REAL64와 동일함

• COORD - 2 개 이상의 REAL64와 동일함

NumElements는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다. 이 값은 VarList안의 각 변수의 차수를 지정합니다. 행의 개수는 binblock에 포함된 채널의 개수와 같습니다. 열의 개수는 채널당 읽은 개수와 같습니다. 첫 번째 차원만 숫자대신 애스터리스트를 가질 수 있습니다.

첫 번째 표현식이 애스터리스크(*)이면, 트랜잭션은 EOF를 만날 때 까지 데이터를 읽습니다. EOF를 만날 때 까지 데이터를 읽는 기능은 다음의 트랜재션에서만 지원됩니다.:

  • From File

  • From String

  • From StdIn

  • Execute Program

트랜잭션이 1 차원 어레이를 읽도록 설정되어 있으면, 하나의 채널에 대해서, 하나의 차원은 열을 나타내며, 애스터리스크를 가질 수 있습니다.

예를 들어, 파일에서 데이터를 읽는, 다음 트랜잭션은

READ BINBLOCK a REAL64 ARRAY:*,10

EOF를 만날 때 까지 데이터를 읽어서, 10 개의 행을 가지는 2 차원 어레이를 생성합니다. 각 행은 계측기의 채널을 나타냅니다.

열의 개수는 각 채널의 데이터의 양에 따라서 변경됩니다. Binblock에 의해서 포함된 데이터 앨리먼트의 전체 개수는 행의 개수로 같은 크기로 나눌 수 있어야 합니다. 여기서 행의 개수는 10 입니다.

블록 헤더가 충분한 정보를 가지고 있으므로, 입력되는 데이터의 포맷에 대해서 추가 정보를 지정할 필요는 없습니다. READ BINBLOCK은 WRITE BINBLOCK 트랜잭션으로 이전에 설명한 블록포맷의 데이터를 읽을 수 있습니다.

다음 트랜잭션은 하나의 오실로스코우프에서 2 개의 트랜잭션을 읽습니다. 이 오실로스코우프는 IEEE 488.2 한정 길이 임의 블록 응답데이터(IEEE 488.2 Definite Length Arbitrary Block Response Data) 블록으로 트레이스를 포맷합니다.:

READ BINBLOCK a,b REAL64

관련정보

TEXT 인코딩, BINARY 인코딩, CONTAINER 인코딩, IOSTATUS 인코딩,

REGISTER 인코딩, MEMORY 인코딩


CONTAINER 인코딩

READ CONTAINER 트랜잭션은 다음과 같은 포맷입니다:

READ CONTAINER VarList

VarList는 하나의 변수이거나, 콤마로 분리된 여러 개의 변수입니다.

READ CONTAINER 트랜잭션은 WRITE CONTAINER 트랜잭션에 의해서 특별한 형식의 텍스트로 작성되어 저장된 데이터를 읽습니다. 포맷 등의 정보는 컨테이너의 일부분의 정보이므로 READ CONTAINER에 포맷 등의 추가 규격을 지정할 필요가 없습니다.

관련정보

TEXT 인코딩, BINARY 인코딩, BINBLOCK 인코딩, IOSTATUS 인코딩,

REGISTER 인코딩, MEMORY 인코딩


REGISTER 인코딩

READ REGISTER는 VXI 계측기의 A16 메모리에서 값을 읽기 위해서 사용합니다.

READ REGISTER 트랜잭션은 다음과 같은 포맷입니다.:

READ REG: SymbolicName ExpressionList INCR ARRAY:NumElements

-또는-

READ REG: SymbolicName ExpressionList ARRAY:NumElements

여기서:

SymbolicName는 VXI 계측기 설정시 정의한 이름입니다. 이 이름은 계측기의 레지스터 공간 안의 특정 주소를 참조합니다. READ REGISTER 트랜잭션에서 사용할 수 있는 데이터 타입은 다음과 같습니다.:

• BYTE - 8 비트 부호 없는 정수

• WORD16 - 16-비트 2의 보수 정수

• WORD32 - 32-비트 2의 보수 정수

• REAL32 - 32-비트 IEEE 754 부동 소수점 숫자

이들 데이터 타입은 VXI 계측기의 설정시에도 지정할 수 있으며, 트랜잭션에는 표시되지 않습니다.

ExpressionList는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다.

INCR은 SymbolicName으로 지정된 레지스터 주소에서 시작하여 증가하면서 어레이 데이터를 읽는 것을 지정합니다. 시작 주소에서 어레이의 첫 번째 앨리먼트에 값을 읽습니다. 모든 어레이 앨리먼트를 읽을 때까지, 그 주소에 데이터 타입의 바이트 수 길이 만큼의 옵셋을 더한 2 번째 앨리먼트, 등의 방식으로 앨리먼트에서 값을 읽습니다. INCR이 트랜재셕에서 지정되지 않았으면, 전체 어레이는 SymbolicName에서 지정한 하나의 위치에서 읽습니다.

NumElements는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다. VarList 안의 각 변수의 차수입니다. 이 트랜잭션이 스칼라를 읽도록 설정되었으면, ARRAY 키워드가 트랜잭션에 표시되지 않습니다. ARRAY:1은 하나의 앨리먼트를 가진 1 차원 어레이입니다. VEE에서는 스칼라와 하나의 앨리먼트를 가진 어레이가 동일하게 취급되지 않습니다.

관련정보

TEXT 인코딩, BINARY 인코딩, BINBLOCK 인코딩, CONTAINER 인코딩, IOSTATUS 인코딩,

MEMORY 인코딩


MEMORY 인코딩

READ MEMORY는 VXI 계측기의 A24 또는 A32 메모리에서 값을 읽기 위해서 사용합니다.

READ MEMORY 트랜잭션은 다음과 같은 포맷입니다.:

READ MEM: SymbolicName ExpressionList INCR ARRAY:NumElements

-또는-

READ MEM: SymbolicName ExpressionList ARRAY:NumElements

여기서:

SymbolicName는 VXI 계측기 설정시 정의한 이름입니다. 이 이름은 계측기의 확장 메모리 안의 특정 주소를 참조합니다. READ MEMORY 트랜잭션에서 사용할 수 있는 데이터 타입은 다음과 같습니다.:

• BYTE - 8 비트 부호 없는 정수

• WORD16 - 16-비트 2의 보수 정수

• WORD32 - 32-비트 2의 보수 정수

• REAL32 - 32-비트 IEEE 754 부동 소수점 숫자

• WORD32*2 - Int32 어레이의 근접한 앨리먼트의 2 개의 32-비트 2의 보수 정수

• REAL64 – 64-비트 IEEE 754 부동 소수점 숫자.

이들 데이터 타입은 VXI 계측기의 설정시에도 지정할 수 있으며, 트랜잭션에는 표시되지 않습니다.

ExpressionList는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다.

INCR은 SymbolicName으로 지정된 메모리 주소에서 시작하여 증가하면서 어레이 데이터를 읽는 것을 지정합니다. 시작 위치에서 어레이의 첫 번째 앨리먼트에 값을 읽습니다. 모든 어레이 앨리먼트를 읽을 때까지, 그 주소에 데이터 타입의 바이트 수 길이 만큼의 옵셋을 더한 2 번째 앨리먼트, 등의 방식으로 앨리먼트에서 값을 읽습니다. INCR이 트랜재셕에서 지정되지 않았으면, 전체 어레이는 SymbolicName에서 지정한 하나의 메로리 위치에서 읽습니다.

NumElements는 하나의 표현식이거나, 콤마로 분리된 여러 개의 표현식입니다. VarList 안의 각 변수의 차수입니다. 이 트랜잭션이 스칼라를 읽도록 설정되었으면, ARRAY 키워드가 트랜잭션에 표시되지 않습니다. ARRAY:1은 하나의 앨리먼트를 가진 1 차원 어레이입니다. VEE에서는 스칼라와 하나의 앨리먼트를 가진 어레이가 동일하게 취급되지 않습니다.

관련정보

TEXT 인코딩, BINARY 인코딩, BINBLOCK 인코딩, CONTAINER 인코딩, IOSTATUS 인코딩,

REGISTER 인코딩


IOSTATUS 인코딩

READ IOSTATUS 트랜잭션은 다음과 같은 포맷입니다.:

READ IOSTATUS STS Bits VarList

-또는-

READ IOSTATUS DATA READY VarList

VarList는 하나의 정수 변수이거나, 콤마로 분리된 여러 개의 정수 변수입니다.

READ IOSTATUS 트랜잭션은 GPIO 인터페이스용 Direct I/O, From StdIn, 및To/From Named Pipe에 의해서 사용됩니다.

GPIO용 READ IOSTATUS 트랜잭션은 인터페이스 상에 제공되는 주변기기 상태비트를 읽습니다. 읽은 비트의 개수는 인터페이스의 모델번호에 따라서 변경됩니다. 모든 상태 비트의 비트별 가중치로 합산한 하나의 정수가 리턴됩니다.

예를 들어, HP 98622A GPIO 인터페이스는 2 개의 주변기기 상태 라인, STI0 과 STI1을 지원합니다. 다음 테이블은 이 트랜잭션에서 x의 값을 어떻게 해석하는지 설명합니다.

READ IOSTATUS STS Bits a

읽은 값 | STI1 | STI0
0 | 0 | 0
1 | 0 | 1
2 | 1 | 0
3 | 1 | 1

READ IOSTATUS 트랜잭션은 상태 라인의 순간적인 값을 읽습니다. 상태 라인은 어떤 방법으로도 래치되거가 버퍼되지 않습니다.

READ IOSTATUS 트랜잭션은 읽을 데이터가 있으면 부울린 YES(1)을 리턴합니다. 데이터가 없으면, 부울린 NO(0)이 리턴됩니다. READ IOSTATUS은 데이터가 제공될 때까지 프로그램 실행을 블록하는 READ 트랜잭션을 피하기 위해서 사용할 수 있습니다.

관련정보

TEXT 인코딩, BINARY 인코딩, BINBLOCK 인코딩, CONTAINER 인코딩,

REGISTER 인코딩, MEMORY 인코딩


EXECUTE 트랜잭션

EXECUTE 트랜잭션은 특정 오브젝트와 관련된 파일, 계측기, 또는 인터페이스를 제어하는 기초 명령어를 전송합니다. EXECUTE는 파일 포인터를 조정하고, 버퍼를 지우고, 하드웨어 인터페이스를 기초명령어로 제어합니다. 다양한 EXECUTE 명령어를 아래와 같이 사용할 수 있습니다.

명령어 | 설명
To File, From File
REWIND | 파일의 내용을 변경하기 않고 읽기 포인터(From File) 또는 쓰기 포인터(To File)를 설정합니다.
CLEAR | (To File 에서만 사용). 파일 안의 기존 내용을 지우고, 쓰기 포인터를 파일의 맨 앞으로 이동합니다.
CLOSE | 파일을 명시적으로 닫습니다. 여러 개의 프로세스가 동일한 파일을 읽거나 쓸 때 유용합니다.
DELETE | 명시적으로 파일을 삭제합니다. 임시 파일을 삭제할 때 유용합니다.
인터페이스 명령
CLEAR | GPIB의 경우에는, DCL (Device Clear)을 전송하여 모든 계측기를 클리어합니다. VXI의 경우에는, 인터페이스를 리셋하고 자원관리자를 실행합니다.
TRIGGER | GPIB의 경우에는, GET (Group Execute Trigger)를 전송하여 수신으로 지정된 모든 계측기를 트리거합니다. VXI의 경우에는, 지정된 백플레인 트리거 라인이나 임베디드 컨트롤러 상의 외부 트리거 라인을 트리거합니다.
LOCAL | GPIB의 경우에는, REN (Remote Enable) 라인을 릴리즈하고 계측기를 로컬모드로 전환합니다.
REMOTE | GPIB에 대해서, REN (Remote Enable) 라인을 활성화합니다.
LOCAL LOCKOUT | GPIB에 대해서, LLO (Local Lockout) 메시지를 전송합니다. LLO가 전송되는 시점의 원격의 모든 계측기의 전면판 동작이 잠깁니다.
ABORT | IFC (Interface Clear) 라인을 활성화하여 GPIB 인터페이스를 클리어합니다.
LOCK INTERFACE | 공유자원을 가지는 다중 프로세스 시스템에서, 다른 프로세스가 자원을 사용하려고 시도하는 것을 방지하기 위해서, 주요한 섹션동안은 자신만이 그 자원을 사용하도록 프로세스가 자원을 잠급니다.
UNLOCK INTERFACE | 프로세스가 자원을 자신만이 사용하도록 잠근 다중 프로세스 시스템에서, 다른 프로세스가 자원을 사용할 수 있도록 잠금은 엽니다.
Direct I/O 에서 GPIB로
CLEAR | SDC (Selected Device Clear)를 전송하여 Direct I/O 오브젝트의 주소에 있는 계측기를 클리어합니다.
TRIGGER | GET (Group Execute Trigger)를 전송하여 Direct I/O 오브젝트의 주소에 있는 계측기를 트리거합니다.
LOCAL | Direct I/O 오브젝트의 주소에 있는 계측기를 로컬모드로 전환합니다.
REMOTE | Direct I/O 오브젝트의 주소에 있는 계측기를 원격모드로 전환합니다.
Direct I/O 에서 GPIO로
RESET | PRESET 라인을 펄싱하여(Peripheral Reset) Direct I/O에 관계된 GPIO 인터페이스를 리셋합니다.
Direct I/O 에서 메시지기반 VXI로
CLEAR | 16비트 명령어 클리어(0xffff)를 전송하여 Direct I/O에 관계된 VXI 계측기를 클리어합니다.
TRIGGER | 16비트 명령어 트리거(0xedff)를 전송하여 Direct I/O에 관계된 VXI 계측기를 트리거합니다.
LOCAL | 16비트 명령어 Clear Lock(0xefff)를 전송하여 Direct I/O에 관계된 VXI 계측기를 로컬 상태로 전환합니다.
REMOTE | 16비트 명령어 Set Lock(0xeeff)를 전송하여 Direct I/O에 관계된 VXI 계측기를 리모트 상태로 전환합니다.
Direct I/O에서 Serial 인터페이스로
RESET | Direct I/O에 관계된 시리얼 인터페이스를 리셋합니다.
BREAK | 다음과 같이 Direct I/O에 관계된 시리얼 인터페이스의 Data Out 라인상에 신호를 전송합니다.: 400 밀리초 동안 High 신호 60 밀리초 동안 Low 신호
CLOSE | Direct I/O에 관계된 시리얼 인터페이스와의 연결을 닫습니다. 다음 연결을 시도한다면 다음 결에서 연결이 복원됩니다.
Execute Program, To/From Named Pipe
CLOSE READ PIPE | (To/From)오브젝트와 관련된 읽기 네임드 파이프 또는 (Execute Program)와 관련된 stdin 파이프를 닫습니다
CLOSE WRITE PIPE | (To/From)오브젝트와 관련된 쓰기 네임드 파이프 또는 (Execute Program)와 관련된 stdout 파이프를 닫습니다
To/From Socket
CLOSE | 클라이언트 및 서버 소켓간의 연결을 닫습니다. 연결을 재성정하기 위해서는, 클라이언트와 서버가 bin12-accept 및 connect-to 프로토콜을 반복해야 합니다.
Direct I/O, MultiInstrument Direct I/O, Interface Operations 에서 GPIB, VXI, Serial, 및 GPIO로
LOCK | 공유자원을 가지는 다중 프로세스 시스템에서, 다른 프로세스가 자원을 사용하려고 시도하는 것을 방지하기 위해서, 주요한 섹션동안은 자신만이 그 자원을 사용하도록 프로세스가 자원을 잠급니다.
UNLOCK | 프로세스가 자원을 자신만이 사용하도록 잠근 다중 프로세스 시스템에서, 다른 프로세스가 자원을 사용할 수 있도록 잠금은 엽니다.

GPIB에 대한 상세한 내용

Direct I/O에서 GPIB 계측기로 보내지는 EXECUTE 명령어와 인터페이스 명령어는 유사하지만 다릅니다.

• Direct I/O EXECUTE 명령어는 명령어를 받을 계측기를 지정합니다.

• Interface Operations EXECUTE 명령어는 이미 듣도록 지정된 다수의 계측기에 영향을 미칩니다.

다음 6 개의 테이블은 Direct I/O의 EXECUTE 명령과 Interface Operations의 EXECUTE 명령에 의해서 실행되는 버스의 행위를 설명합니다.

EXECUTE ABORT GPIB 동작

Direct I/O | 인터페이스 명령
해당 사항 없음. | IFC (>=100 탎ec)
 | REN
 | ATN

EXECUTE CLEAR GPIB 동작

Direct I/O | 인터페이스 명령
ATN | ATN
MTA | DCL
UNL |
LAG |
SDC |

EXECUTE TRIGGER GPIB 동작

Direct I/O | 인터페이스 명령
ATN | ATN
MTA | GET
UNL |
LAG |
GET |

EXECUTE LOCAL GPIB 동작

Direct I/O | 인터페이스 명령
ATN | REN
MTA | ATN
UNL |
LAG |
GTL |

EXECUTE REMOTE GPIB 동작

Direct I/O | 인터페이스 명령
REN | REN
ATN | ATN
MTA |
UNL |
LAG |

EXECUTE LOCAL LOCKOUT GPIB 동작

Direct I/O | 인터페이스 명령
Not applicable. | ATN
 | LLO

VXI에 대한 상세한 내용

Direct I/O에서 VXI 계측기로 보내지는 EXECUTE 명령어와 인터페이스 명령어는 유사하지만 다릅니다. 메시지 기반 VXI 계측기에 대한 참조는 I-SCPI에서 지원되는 레지스터 기반 VXI 계측기에도 적용됩니다.

• Direct I/O EXECUTE 명령어는 16비트 직렬 명령어를 받을 메시지 기반 VXI 계측기를 지정합니다

• Interface Operations EXECUTE 명령어는 VXI 인터페이스에 직접적으로 영향을 미치며, 인터페이스 영역내의 VXI 계측기에 영향을 미칩니다.

Interface Operations 오브젝트의 EXECUTE TRIGGER 트랜잭션은 다음과 같은 포맷입니다:

EXECUTE TRIGGER TriggerType Expression TriggerMode

TriggerType 은 EXECUTE TRIGGER 트랜잭션에 의해서 사용될 그룹을 지정합니다. 여기에 해당하는 그룹은:

• TTL - VXI 백플레인 상의 8 개의 TTL 트리거 라인을 지정합니다.

• ECL - VXI 백플레인 상의 4 개의 ECL 트리거 라인을 지정합니다

• EXT - 임베디드 VXI 컨트롤러 상의 외부 트리거를 지정합니다.

Expression은 특정 TriggerType 에 대해서 어떤 트리거 라인이 트리거되어야 하는지 나타내는 비트 패턴을 표시하는 하나의 정수 변수를 연산합니다. 값 5는 바이너리로 101로 표시되며, TTL 라인 0 과 2가 트리거됨을 표시합니다. 255는 모든 8 개의 TTL 라인입니다. TriggerMode는 트리거 라인이 활성화되는 방법을 나타냅니다.

• PULSE - 디스크리트 시간 한계 동안 라인이 펄스됩니다.(TriggerType dependent).

• ON - 트리거 라인을 활성화시키고, 이것들을 활성화한 상태로 유지합니다.

• OFF - 이전 ON 트랜잭션에서 활성화되었던 트리거 라인을 활성화 해제 합니다.

다음 테이블은 Direct I/O EXECUTE 트랜잭션과 Interface Operations EXECUTE 트랜잭션에 의해서 실행되는 버스 행위를 나타냅니다.

EXECUTE CLEAR VXI 동작

Direct I/O | 인터페이스 명령
16비트 직렬 명령어 Clear(0xffff) | Pulse SYSRESET 라인, Resource Manager 재실행

EXECUTE TRIGGER VXI 동작

Direct I/O | 인터페이스 명령
16비트 직렬 명령어 Trigger(0xedff) | 임베디드 VXI 컨틀롤러 상의 백플레인의 TTL 또는 ECL 트리거 라인이나 외부 트리거를 트리거합니다. 각 트리거 타입에 대해서 어떤 라인이 트리거되는지 설정할 수 있습니다.

EXECUTE LOCAL VXI 동작

Direct I/O | 인터페이스 명령
16비트 직렬 명령어 Set Lock(0xeeff) | Not applicable.

EXECUTE REMOTE VXI 동작

Direct I/O | 인터페이스 명령
16비트 직렬 명령어 Clear Lock(0xefff) | 해당사항 없음.


WAIT 트랜잭션

4 종류의 WAIT 트랜잭션이 있습니다.:

• WAIT INTERVAL

• WAIT SPOLL (GPIB 및 메시지-기반 VXI 계측기 Direct I/O 에서만 사용)

• WAIT REGISTER (VXI 계측기 Direct I/O 에서만 사용)

• WAIT MEMORY (VXI 계측기 Direct I/O 에서만 사용)

WAIT INTERVAL 트랜잭션은 다음 트랜잭션을 실행하기 전까지 지정된 시간(초) 만큼 기다립니다. 예를 들어, 다음 트랜잭션은 10초 동안 기다립니다.:

WAIT INTERVAL:10

WAIT SPOLL 트랜잭션은 다음과 같은 포맷입니다.:

WAIT SPOLL Expression Sense

Expression 은 정수로 표시된 연산식입니다. 이 정수는 비트 마스크로 이용됩니다.

Sense필드에서는 다음의 2 종류의 값을 선택하여 설정할 수 있습니다.

• ANY SET

• ALL CLEAR

WAIT SPOLL 트랜잭션은 관련 계측기의 시리얼 폴 응답 바이트가 특정 조건을 만날 때 까지 기다립니다. 시리얼 폴 응답을 지정된 마스크 값과 비트별로 AND 연산이나 OR 연산을 실행하여 하나의 테스트 비트로 테스트됩니다. WAIT SPOLL 다음의 트랜잭션은 다음 조건 중의 하나를 만나면 실행합니다.:

• 트랜잭션이 ANY (ANY SET)로 설정되어 있으며, 테스트 비트가 참(1)일 때.

• 트랜잭션이 CLEAR (ALL CLEAR)로 설정되어 있으며, 테스트 비트가 거짓(0)일 때.

다음 트랜잭션은 WAIT SPOLL을 사용하는 방법입니다.

WAIT SPOLL:256 ANY 하나의 비트라도 설정될 때까지 기다림.

WAIT SPOLL:256 CLEAR 모든 비트가 클리어될 때까지 기다림.

WAIT SPOLL:0x40 ANY 비트 6이 설정될 때까지 기다림..

WAIT SPOLL:0x40 CLEAR 비트 6이 클리어될 때까지 기다림.

WAIT REGISTER 및 WAIT MEMORY 트랜잭션은 다음과 같은 포맷입니다.:

WAIT REG:SymbolicName MASK:Expression Sense [Expression]

-또는-

WAIT MEM:SymbolicName MASK:Expression Sense [Expression]

여기서:

SymbolicName은 VXI 계측기 설정시 정의된 이름입니다. 이 이름은 계측기의 A16 또는 확장 메모리 안의 특정 주소를 참조합니다.

MASK:Expression은 정수로 표시되는 연산식입니다. 이 정수는 비트 마스크로 사용됩니다. 이 마스크 값의 크기는 바이트로 나타내며 SymbolicName이 설정된 데이터 타입에 따라서 변경됩니다.

Sense필드에서는 다음의 3 종류의 값을 선택하여 설정할 수 있습니다.

• ANY SET

• ALL CLEAR

• *EQUAL

[Expression] 는 값을 비교하는 선택항목이며, 정수로 표시됩니다. 이 정수는 Sense가 EQUAL인 경우에만 사용됩니다.

WAIT REGISTER 또는 MEMORY 트랜잭션은 관련 VXI 계측기에서 SymbolicNames으로 지정된 레지스터 또는 메모리에서 읽은 값이 특정 조건을 만족할 때까지 기다립니다.

읽은 값은 MASK:Expression에서 지정된 비트마스크로 논리 AND되어 테스트 값을 생성합니다. 테스트 값의 크기는 지정된 레지스터 또는 메모리에 설정된 데이터 타입에 따라서 변경됩니다. WAIT SPOLL 다음의 트랜잭션은 다음 조건 중의 한가지를 만나면 실행됩니다.:

• 트랜잭션이 ANY (ANY SET)로 설정되어 있으며, 테스트 값의 하나의 비트라도 참(1)일 때.

• 트랜잭션이 CLEAR(ANY SET)로 설정되어 있으며, 테스트 값의 모든 비트가 거짓(0)일 때.

• 트랜잭션이 EQUAL로 설정되어 있으며, 테스트 값의 모든 비트가 [Expression]에서 지정된 비교 값과 비트별로 같을 때.


SEND 트랜잭션

SEND transactions트랜잭션은 다음과 같은 포맷입니다.:

SEND BusCmd

BusCmd는 다음 테이블에서 설명되는 버스 명령의 하나입니다.

SEND 트랜잭션은 GPIB 인터페이스를 통해서 기초 버스 메시지를 전송하기 위해서 Interface Operations 오브젝트 안에서 사용됩니다. 이들 메시지는 IEEE 488.1에 자세히 정의되어 있습니다.

명령 | 설명
COMMAND | ATN을 참으로 설정하고 지정된 데이터 바이트를 전송합니다. ATN이 참이면 데이터가 버스 명령어임을 나타냅니다.
DATA | ATN을 거짓으로 설정하고 지정된 바이트를 전송합니다. ATN이 거짓이면 데이터가 계측기관련 정보임을 나타냅니다.
TALK | 1차 주소(0~31)를 가진 하나의 계측기를 토커(Talker)로 지정합니다.
LISTEN | 1차 주소(0~31)를 가진 하나의 계측기를 리스너(Listener)로 지정합니다.
SECONDARY | TALK 또는 LISTEN 명령 다음에 2 차 버스주소를 지정합니다. 2차 주소는 카드케이지 계측기에서 많이 사용합니다. 이 경우 카드케이지가 1 차 주소를 가지고, 각 플러그인 모듈이 2차 주소를 가집니다.
UNLISTEN | 모든 계측기의 리스닝을 강제로 중지시키고 UNL을 보내도록 합니다.
UNTALK | 모든 계측기의 토킹을 강제로 중지시키고 UNL을 보내도록 합니다.
MY LISTEN ADDR | VEE를 실행하는 컴퓨터를 리슨으로 지정하고 MLA를 전송합니다.
MY TALK ADDR | VEE를 실행하는 컴퓨터를 토크로 지정하고 MLA를 전송합니다.
MESSAGE | 다중-라인 버스 메시지를 전송합니다. 자세한 내용은 IEEE 488.1를 참조하십시오. 다중-라인 메시지는: DCL Device Clear SDC Selected Device Clear GET Group Execute Trigger GTL Go To Local3 LLO Local Lockout SPE Serial Poll Enable SPD Serial Poll Disable TCT Take Control


WRITE(POKE) 트랜잭션

WRITE(POKE) 트랜잭션은 To/From DDE 오브젝트에서만 사용할 수 있다는 것을 제외하고는 WRITE 트랜잭션과 매우 유사합니다, WRITE(POKE)의 가장 큰 차이점은 항목의 이름을 지정해야 한다는 것입니다. 예를 들어,

WRITE ITEM:"r2c3" TEXT a EOL

다음과 같은 인코딩 방식을 사용할 수 있습니다.:

• TEXT

• BYTE

• CASE

• CONTAINER

이들 포맷에 대한 자세한 내용은 WRITE 트랜잭션을 참조하십시오.


READ(REQUEST) 트랜잭션

READ(REQUEST) 트랜잭션은 To/From DDE 오브젝트에서만 사용할 수 있다는 것을 제외하고는 READ 트랜잭션과 매우 유사합니다, READ(REQUEST)의 가장 큰 차이점은 항목의 이름을 지정해야 한다는 것입니다. 예를 들어,

READ ITEM:"r2c3" TEXT a EOL

READ(REQUEST)은 윈도우용 VEE에서만 지원됩니다.

다음 인코딩 방식을 사용할 수 있습니다.:

• TEXT

• CONTAINER

이들 포맷에 대한 자세한 내용은 READ 트랜잭션을 참조하십시오.


웹에서 Agilent VEE Pro사이트 참조하기

VEE 웹사이트에서는 유용한 리소스들을 제공하고 있습니다. 웹사이트를 참조하기 위해서는 VEE에 있는 Help 메뉴를 사용하십시오.

Help [image] Agilent VEE on the Web

VEE Users Group (vrf)
수천명의 VEE 사용자들로부터 양질의 정보를 제공받을 수 있습니다. 질문을 게시하고, 사용 팁을 검색하고, 다른 VEE 전문가를 찾을 수 있도록 합니다.

Support
드라이버를 다운로드하고 제품을 업데이트 하고, 생산성을 향상할 수 있는 다른 리소스를참조하는 등의 다양한 서비스를 제공합니다.

Instrument Drivers
드라이버를 다운로드하기 위한 다양한 서비스를 제공합니다. 사용할 수 있는 드라이버는 HP/Agilent 게측기용 IVI Drivers, VXIplug&play Drivers 및 Panel Drivers등을 제공합니다.

Education/Training
애질런트의 교육과 트레이닝에 대한 정보를 제공합니다.

Agilent VEE Home Page
뉴스, 정보, 어플리케이션 및 VEE에 대한 다른 지원사항들을 제공합니다.

Agilent Developers Network
드라이버 다운로드, 제품 업데이트, 기술정보, 백서 및 생산성을 향상할 수 있는 다른 리소스등을 제공하기 위한 다양한 서비스를 제공합니다.

Agilent Technologies Home Page
Agilent Technologies 회사에 대한 뉴스와 정보를 제공하고, 측정이나 분석에 대한 솔루션을 제공하는 다른 사이트의 링크를 제공합니다.

애질런트 홈페이지는 다음과 같습니다:

http://www.agilent.com

VEE 홈페이지는 다음과 같습니다:

http://www.agilent.com/find/vee


계측기 드라이버 다운로드하기

VEE 지원 웹사이트에서 Startup Support지원을 받을 수 있습니다.

VEE 지원 웹사이트를 방문하기 위해서는, VEE에 있는 Help 메뉴를 보십시오.

Help [image] Agilent VEE on the Web [image] Support

- 그리고 -

http://www.agilent.com/find/adn에서 드라이버를 다운로드 할 수 있습니다.

계측기 드라이버는 무상으로 다운받을 수 있습니다. 애질런트는 24/7 드라이버, 백서, 그리고 다른 무료서비스를 제공합니다.


콜 센터

세계의 주요지역에 위치한 콜 센터에서 다양한 지원을 제공합니다. 이들 콜센터는 무료로 프로그램의 처음 시작하기, 온라인 기술 지원, 관련정보 또는 영업지원을 제공합니다. 해당지역의 전화번호로 전화 주십시오.

다음의 웹사이트에서 연락처를 찾을 수 있습니다.

http://www.agilent.com/find/assist


VEE Pro RunTime 제품에 대하여

VEE Pro RunTime 제품은 VEE 프로그램을 실행할 수 있는 환경을 제공하며, VEE Pro development 환경과는 구별됩니다. VEE Pro RunTime으로는 프로그램을 개발할 수 없습니다. VEE development 환경에서만 VEE 프로그램을 생성, 테스트, 디버깅하고 수정할 수 있습니다. 컴퓨터에 VEE Pro RunTime을 설치하면, VEE 프로그램을 실행할 수 있습니다; 예를 들어, 프로세스를 컨트롤하거나 테스트 시스템을 실행할 수 있습니다. 운영자는 VEE 프로그램을 사용할 수 있으나 수정할 수는 없습니다. 단지, 프로그램은 패널뷰를 통해서만 실행됩니다.

대부분의 경우, 무언가를 테스트하고 모니터링하기 위하여 VEE 프로그램을 개발합니다. VEE 프로그램이 실행되는 시스템은 계측기와의 상호 동작을 위한 인터페이스 카드가 필요합니다. VEE 프로그램을 ‘문서화’ 하지 않고 개발 하였다면, 반드시 런타임 환경에서 프로그램이 동작하기 위해서 필요한 인터페이스 카드가 어떤 것인지를 알아야 하기 때문에, 프로그램을 사용할 운영자에게 반드시 필요한 정보를 제공해야 합니다. (지원되는 인터페이스 카드에 대한 의문 사항은, 애질런트 영업 사무소로 연락하여 주십시오.)

인터페이스 카드 외에도, VEE 프로그램을 실행할 시스템은 Agilent I/O Libraries Suite (버전 14.2이상)가 필요할 수도 있습니다.계측기를 컨트롤하는데 필요한 자세한 정보는 개요를 참조하십시오.

VEE Pro RunTime 제품은 VEE Pro development 환경을 포함하고 있는 CD-ROM에 같이 제공됩니다. VEE Pro CD에서 setup.exe를 실행할 때 VEE Pro RunTime 또는 VEE Pro development 환경을 선택하여 설치할 수 있습니다.

VEE 프로그램 배포하기

배포하기 위하여 프로그램을 개발할 때 필요한 자세한 내용은 VEE Help 메뉴 아래에 있는 How Do I … Build an Operator Interface 항목을 참조하십시오. Build an Operator Interface 아래의 Preparing a Program for Distribution to Others 아래에 있는 Creating a Distribution Package 항목에 있는 내용을 참조하십시오. 다른 시스템에서 프로그램을 실행하기 위하여 프로그램을 이전하는 것에 대한 자세한 정보는 배포용 패키지 생성하기를 참조하십시오..

중요 사항

프로그램을 실행하기 위한 VEE Pro RunTime 버전은 프로그램을 개발할 때 사용했던 VEE의 버전과 같거나 더 높아야 합니다.

Agilent I/O 라이브러리의 버전은 프로그램을 개발할 때 사용했던 VEE Pro development 환경의 버전과 동일해야 합니다. VEE Pro RunTime 버전도 동일합니다. (VEE 8.0의 경우는 Agilent I/O Libraries Suite 버전 14.2 또는 그 이상이 필요함) 이러한 호환을 보장하기 위해서는 VEE와 함께 납품된 Agilent I/O 라이브러리를 사용하십시오. 웹사이트를 통해서 다운로드 가능한 패치를 이용하여 VEE를 업그레이드 할 경우에는 반드시 Agilent I/O 라이브러리의 버전을 확인하십시오.

주의사항

VEE Pro 제품에 포함되어 있는 VEE Pro RunTime과 Agilent I/O 라이브러리는 무제한으로 설치 및 배포가 가능한 Agilent VEE Pro 라이센스입니다. VEE 프로그램을 배포하고자 할 경우, 회사 내부 및 외부의 시스템에 VEE Pro RunTime및 Agilent I/O를 설치할 수 있습니다.

관련정보

VEE Pro RunTime의 설치를 위한 시스템요구사항은 VEE Pro RunTime을 위한 시스템 요구사항를 참조하십시오.설치방법은 VEE Pro RunTime 설치하기를 참조하고, RunTime 버전의 프로그램을 생성할 때 필요한 설정방법은 VEE Pro RUNTime 설정하기를 참조하십시오.


VEE Pro RunTime을 위한 시스템 요구사양

VEE Pro RunTime을 위한 최소 시스템 요구사양은 다음과 같습니다:

.NET Framework 2.0

Pentium 120 MHz CPU를 가진 PC(266 MHz Pentium II 이상 권장)

Windows 2000(SP4), 또는 Windows XP(SP1) 운영체제

Windows 2000/Windows XP에서는 48 MB RAM

HDD 저장공간: 최소 70 MB (MATLAB 및 안내서 설치 시 105MB)

CD-ROM 드라이브

15-인치 모니터 800x600 Super VGA (17-인치 1024x768 Ultra VGA 이상 권장)

PC 키보드

22-버튼 마우스(3번째 버튼이 있을지라도 사용하지 않음)

사용 계측기, 인터페이스 카드, 필요한 다른 주변기기


VEE Pro RunTime 설치하기

VEE 프로그램을 개발하여 다른 시스템에서 실행하고자 할 수 있습니다. VEE 프로그램은 단독실행 .exe 파일을 생성하지 않습니다. VEE 프로그램을 실행할 수 있는 개발버전의 프로그램과는 다른 버전의 VEE가 설치되어 있어야 합니다. VEE Pro 개발버전은 VEE 프로그램을 실행하기 위해 사용할 수는 있으나, “실행만 수행”하는 시스템에서는 VEE Pro RunTime을 설치하여 사용하는 것이 더 경제적입니다.

여기서는 VEE가 설치되지 않은 윈도우 시스템에 VEE Pro RunTime을 설치하는 방법을 설명합니다.

주의사항

VEE Pro 사용자는 VEE Pro RunTime 제품을 무제한으로 설치하고 배포할 수 있습니다. VEE 프로그램을 배포 하고자 할 때, VEE Pro RunTime을 회사 내부 또는 외부에 있는 시스템에 설치할 수 있습니다. 프로그램과 함께 설치지침서를 제공하는 것이 필요할 수도 있습니다.

VEE Pro 개발시스템은 VEE Pro Software License Agreement 및 License to Use에 의해 허가된 바와 같이 시스템에 설치할 수 있습니다.

Windows 2000, 또는 Windows XP 운영체제를 가지고 있는 컴퓨터에 VEE Pro RunTime을 설치할 수 있는 시스템 관리자가 있어야 합니다.

설치를 시작하기 위해서는, 윈도우를 실행하고 모든 어플리케이션을 중지해야 합니다. CD-ROM 드라이브에 CD-ROM을 삽입하십시오. 자동으로 설치가 시작될 때까지 기다립니다. 다음의 2개의 항목중의 하나가 발생할 수 있습니다.

1. 개발환경 또는 런타임환경을 설치 할 수 있는 화면이 나타납니다.

run-time environment를 선택하면, 여러 개의 화면을 거쳐서 런타임 환경이 설치됩니다.

2. CD-ROM 설치과정이 자동으로 시작하지 않을 경우에는, 다음의 명령어를 실행하여 run-time environment의 설치할 수 있습니다.

e:\runtime\setup.exe

이 명령어에서는 CD-ROM 드라이브가 E: 라고 가정했습니다. 윈도우 태스크에서 시작 버튼을 선택합니다. 실행을 선택하고 명령어를 입력합니다.


VEE Pro RunTime 설정하기

런타임 환경은 프로그램을 실행하기 위해 사용되며 프로그램을 수정 할 수는 없습니다. 그러므로 VEE Pro RunTime만 설치된 시스템상에서는 메인 VEE 윈도우와 작업영역은 사용할 수 없습니다. 메인 VEE 윈도우에서 메뉴를 선택하여 사용할 수 있는 VEE 환경의 특징은, VEE Pro RunTime을 사용하도록 설정되어야 합니다. 2개의 중요한 구성 선택 영역은 도스명령어 입력라인의 옵션을 통해서도 사용할 수 있습니다. 이들 항목은 Agilent VEE Pro 8.0 RunTime Config 스타트 메뉴그룹에 있는 아이콘을 사용할 수도 있습니다.

계측기 구성을 수정하기 위해서는 다음의 도스 명령어를 실행합니다.

veerun.exe -ioconfig

이 명령은 VEE Pro RunTime을 실행하고, Instrument Manager를 열어서 사용자가 I/O 설정을 수정하고 저장할 수 있게 합니다. 이것은 프로그램에 I/O 설정이 임베딩 되지 않았을 때 유용합니다.

Default Preferences를 수정하기 위해서는 다음의 도스 명령어를 실행합니다.

veerun.exe -prefconfig

이 명령은 VEE Pro RunTime을 실행하고, Default Preferences 대화상자를 열어서 사용자가 Default Preferences를 수정하고 저장할 수 있게 합니다. RunTime 사용자에게 중요한 일부 설정은 다음과 같습니다:

Web Server 설정

Execution Mode (Remote User Functions을 사용하는데 매우 중요합니다.)

Check Instrument Addresses at PreRun

Delete Variables at PreRun

Printing 설정

Colors and Fonts (만약 프로그램과 함께 저장되지 않았을 경우)

주의 사항

시스템상에는 VEE Pro와 VEE Pro RunTime이 존재하며, 이 두 개의 버전은 같은 구성으로 설정될 수도 있고 다르게 설정될 수도 있습니다. 만약 사용자가 HOME 환경변수를 설정했다면, 2개의 버전은 HOME 디렉토리에서 설정파일을 찾게 됩니다. 이것은 2개의 버전이 같은 Default Preferences를 가지고 있다는 것입니다. 만약 사용자가 HOME 환경변수를 가지고 있지 않다면, VEE Pro와 VEE Pro RunTime은 설정데이터를 다른 디렉토리에 저장하게 됩니다. 이 경우 각 버전의 설정은 각기 다르게 설정되어야 합니다.

Instrument Manager 또는 Default Preferences 대화상자가 VEE 윈도우 화면에 맞지 않으면, 크기 옵션을 사용하여 VEE 또는 VEERun 윈도우를 좀더 크게 설정할 수 있습니다. 자세한 정보는 도스 명령어 옵션을 사용하여 Agilent VEE 실행하기를 참조하십시오.


about vee express 8.0

VEE Express 8.0에 대하여

Agilent VEE Express 8.0은 VEE Pro 8.0의 서브셋입니다.

다음 표는 Agilent VEE Pro 8.0 과 Agilent VEE Express 8.0의 차이점을 나타냅니다.

항 목 |  | Agilent VEE Pro 8.0 | Agilent VEE Express 8.0
Interfaces | GPIB, LAN, RS-232,VXI, PXI, SCXI | 지원 | 지원안함
 | USB | 지원 | 지원(LiveMode 상태의 Agilent USB 디바이스)
MatlabScript 오브젝트 및 MatlabScript 엔진 |  | 지원 | 지원안함
Agilent VEE 런타임 버전 및 Agilent VEE 오브젝트의 보안처리 된 버전 생성 |  | 지원 | 지원안함
계측기 주소를 프로그램 실행중 변경 |  | 지원 | 지원안함
콜러블 서버 기능. 예, Agilent VEE를 ActiveX automation 서버로 호출 |  | 지원 | 지원안함
리모트 함수 기능. 예, 리모트 호스트 컴퓨터에 있는 다른 Agilent VEE 프로세스에서 실행하는 UserFunction을 임포팅 하는것 |  | 지원 | 지원안함
다른 기능들 |  | 지원 | 지원

주의사항

Agilent VEE Express 8.0은 Agilent USB 계측기만을 지원합니다. 다른 계측기를 사용하고자 하는 경우에는, Agilent VEE Pro를 구매하거나 업그레이드 하십시오. 계측기주소 등의 계측기 속성은 프로그램상에서 변경할 수 없습니다.

Agilent VEE Express 8.0은 MatlabScript 오브젝트는 지원하지 않습니다. 새로운 MatlabScript 오브젝트를 프로그램에 추가하거나 MatlabScript 오브젝트를 사용하는 프로그램을 실행할 수는 없지만, MatlabScript오브젝트를 사용하는 프로그램을 열수는 있습니다.

Agilent VEE 프로그램, UserObjects 및 UserFunctions은 VEE Express 8.0에서 런타임/보안처리 된 버전으로 저장할 수 없습니다. 그러나 VEE 프로그램의 런타임 버전을 열거나 보안처리 된 UserObject 또는 UserFunction을 VEE 프로그램으로 임포팅 할 수는 있습니다.

Agilent VEE Express가 제공하지 않는 지원사항이 추가적으로 필요한 경우에는, Agilent VEE Pro를 구매하거나 업그레이드 하십시오.


VDC 어레이의 형식

어레이에 있는 여러 종류의 VEE Data Container 패키지 데이터. VEE 내부에서는, Build Coordinate 같은 오브젝트는 어레이에서 데이터를 추출해 냅니다. VEE 외부(예를 들어, 비주얼베이직)에서는, 에러나 혼동을 피하기 위하여 어레이에 대하여 먼저 선언을 하고 사용을 해야 합니다.

‘3차원 좌표(3D Coordinate)로 된 VEE 1차원 어레이(VEE 1D Array)’라는 문장을 예로 들면 다음과 같습니다. 문장에서 보듯이 하나의 용어가 혼용되어, ‘차원(dimension)’이라는 용어가 두 개의 다른 개념을 설명하는데 사용되었습니다. ‘좌표(Coordinate)’에서는 ‘차원(dimension)’이라는 용어는 축("X", "Y", 혹은"Z")을 나타냅니다. ‘어레이(Array)’에서는 ‘차원(dimension)’이라는 용어는 어떤 어레이의 인덱스("행" 혹은 "열")를 나타냅니다. VEE에서는 데이터 타입이 1행(row)의 저장위치를 가지며, 각 저장위치는 하나의 좌표값을 나타냅니다. 변수이름이 "MyVeeData"라고 가정하면, 첫번째 좌표는 MyVeeData[0]이며, 열번째 좌표는 MyVeeData[9]입니다.

비주얼베이직은 3차원 데이터 타입을 갖고 있지 않기 때문에 하나의 저장위치로 전체 좌표를 표현할 수 없습니다. MyVeeData" 어레이의 모든 데이터를 비주얼베이직 내에서는 패키징하여 2차원 어레이 데이터를 생성합니다. 이 어레이의 행(row)은 좌표를 나타내고, 열(column)은 각 좌표의 ‘X, Y, Z’값을 나타냅니다.

"MyVbData"라는 변수가 있다면, 첫번째 좌표의 Z값은 MyVbData(0,2)가 되고, X값은 MyVbData(9,0)이 됩니다.

이와 유사한 배열은 다른 VEE 데이터 타입에도 사용됩니다. VEE Complex 데이터를 VB 어레이로 생성할 때, MyVbData(Element, 0)은 실수값이고, MyVbData(Element, 1)는 허수값입니다. 다음은 적용 가능한 VEE 데이터 타입 및 어레이 형식입니다.

VDC 데이터 타입 및 어레이 형식

Complex 1D 어레이의 행은 복소수입니다.
열 0 은 실수 값입니다.
열 1 은 허수 값입니다.

Polar Complex 1D 어레이의 행은 폴라 복소수입니다.
열 0 은 크기 값입니다.
열 1 은 위상 값입니다.

2D Coordinate 1D 어레이의 행은 좌표입니다.
열 0 은 X 값입니다.
열 1 은 Y 값입니다.

3D Coordinate 1D 어레이의 행은 좌표입니다.
열 0 은 X 값입니다.
열 1 은 Y 값입니다.
열 2 는 Z 값입니다.

Coordinate 1D 어레이의 행은 좌표입니다.
열 0 은 X 값입니다.
열 1 은 Y 값입니다.
열 N 은 N번째 차원의 값입니다.


buildRecord(fieldNameTextArray, field1, field2, fieldN) 오브젝

buildRecord(fieldNameTextArray, field1, field2, fieldN) 오브젝트

실행시에 필드이름과 필드 값을 지정하여 레코드를 생성하는 오브젝트

사용법

buildRecord()는 실행 전 까지는 알 수 없는 필드이름과 값을 가진 레코드를 생성하기 위해 사용합니다. 첫 번째 파라미터는 필드이름에 대한 스트링 어레이입니다. 두 번째 파리미터 부터는 각 필드의 값이며, 이 파라미터의 개수는 어레이 길이와 동일해야 합니다.

buildRecord()는 지정한 필드이름과 필드 값을 가진 레코드 스칼라입니다.

사용예

buildRecord(fieldNameList2Long, field1, field2);

builldRecord(fieldNameList8Long, field1, field2, field3... field8);

오브젝트 위치

Device [image] Function & Object Browser

Type:  Built-in Functions
Category: Type Conversion
Member: buildRecord

관련정보

Build Record


.topic 0
Click the NI button to create an NI object for the instrument currently selected.
This could be an NI-DMM, NI-SWITCH, NI-FGEN, NI-DAQ, or NI-SCOPE.

.topic 0
Launches a new VEE with the sample file loaded. Since the correct instrument address
is already configured for the instrument you selected, all you have to do is press
Run.

.topic 0
Click the IVI-COM button to  create an IVI-COM object for the instrument currently selected. (If there is no IVI-COM driver for the instrument, this button remains grayed out.)

.topic 0
When the Profiler is started, it provides comparative information about the execution time of each UserObject and UserFunction. Clicking on any column label (such as Name, or Time) displays the Profiler data sorted on that field. Clicking again reverses the sort. Double-click on any UserObject or UserFunction shown in the Name field, and its view opens in the VEE workspace.

.topic 0
When this box is checked, data is written to the data file with commas as delimiters (separators) between the various Profiler data fields. Using comma delimiters makes it easier to import the data into some other applications, such as spreadsheets.  When this box is not checked, the data fields are aligned using multiple spaces.

.topic 0
Specifies the local directory that will be accessible to the remote Web browser. VEE uses the file index.html in the Root Directory as its home page. A default homepage is installed as ~installDir/www/index.html. This file can be modified and/or copied to a different Root Directory.

.topic 0
When OK is pressed, any changes to Default Preferences become valid for the current work session only. When you exit and restart VEE, the previous Default Preferences(saved in the "veerc" file) are restored.

.topic 0
The Fonts property allows you to choose the default font for any screen element in your VEE program.

.topic 0
The Program Explorer button shows or hides the Program Explorer window. The Program Explorer shows the hierarchical structure of the current VEE program.

.topic 0
The Delete Line button provides the Delete Line cursor, which you then click on the line to be deleted. (A handy shortcut to delete lines is Ctrl-Shift-Click.)

.topic 0
The Call Stack button aids debugging by displaying the hierarchy of UserObjects or UserFunctions invoked to reach the current paused UserObject or UserFunction. Clicking on any entry in the Call Stack dialog opens that UserObject or UserFunction in the VEE workspace.

.topic 0
Click the (Interface) Properties button to view specific details about the currently selected interface. Note that VEE cannot modify the hardware characteristics of an interface or alter the configuration performed by the operating system or the I/O Config utility. If you enter different values in any of the Interface Properties fields, you must use values that match an existing, configured interface.

.topic 0
Click the Save button to save the instrument configuration to disk and close the Instrument Manager. This overwrites the vee.io file with the current configuration.  If the instrument configuration is embedded in the program, a Save from the InstrumentManager is not necessary, because an embedded configuration is saved when the programis saved.

.topic 0
The Clear button resets all Profiler data values to 0 (zero).

.topic 0
The Number tab allows you to choose the default format for displaying numbers in your VEE program.

.topic 0
The Stop button stops execution of all program threads and closes any open files.  When a program is in the stopped state, pressing Step or Run/Resume restarts program execution from the beginning.

.topic 0
The Step Over button aids debugging by executing one primitive object at a time.  When a UserObject or UserFunction is encountered, it is executed in its entirety and is not opened into a detail view.

.topic 0
The Run button starts execution of all threads in a program. If your program has several threads, and you want to run only one of them, use a Start object to that thread instead of the Run button.

.topic 0
The Instrument Manager button provides the Instrument Manager dialog. This dialog provides convenient editing, viewing, and creating of I/O resources such as instrument transactions and drivers.

.topic 0
The Add To Panel button places the selected objects onto the panel view of the program.  If a panel view does not already exist, one is created. Panels are associated with the current context and can be nested.

.topic 0
Click the Add button to add an instrument to your I/O configuration. A manual Add operation is needed for instruments that are not discovered by the Find Instruments button. For example, RS-232 instruments or instruments connected via a LAN gateway.(An interface entry is automatically added when you add an instrument associated with that interface.)

.topic 0
The bottom line of the VEE window is a status message area. This status line shows various types of information, depending upon the current operation. For example, the program run state, error messages, pixel position of moved objects, and helpful hints.

.topic 0
Specifies the maximum time (in seconds) that the Web server will wait for VEE to respond.

.topic 0
When Enable Server is checked, VEE's built-in Web server is activated. The Web server allows you to monitor a VEE program from a remote Web browser.

.topic 0
The Step Out button aids debugging by executing one primitive object at a time. If the execution is in a UserObject or UserFunction, VEE completes execution of all objects in that UserObject or UserFunction.

.topic 0
The Pause button stops execution of all program threads temporarily. When a program is in the paused state, either Step or Run/Resume can be used to proceed with program execution from the point it was paused.

.topic 0
This field indicates the scope of the search. The default is the Entire Program.  If you want to limit the scope of a search, open the Find dialog from the ProgramExplorer by clicking with the right mouse button on a particular context, such as a UserFunction or UserObject.

.topic 0
The Save button writes the Profiler data to the file name specified using the Options button.

.topic 0
When instrument checking is enabled, VEE checks the configured instruments during prerun to verify that they are accessible. If an address does not respond, you are iven the opportunity to power-on the instrument, choose a different bus address, etc. When this box is not checked, disconnected or improperly configured instruments will probably cause a timeout error when the program is running.

.topic 0
The Show Execution Flow button aids debugging by highlighting the currently executing object(s) while the program is running. In the paused or error state, Show Execution Flow highlights all objects that have already executed.

.topic 0
The Copy button places a copy of the selected objects in the Paste buffer and on the Windows Clipboard.

.topic 0
When this box is checked (the default), the search traverses all levels of nested User Objects. If not checked, only the current level is searched.

.topic 0
Creates a Formula object to Set the value of the currently selected member (property).Place the Formula in a program context. It is simply a template which can be edited as desired.

.topic 0
Click the Plug&play Driver button to create a VXIplug&play driver object for the instrument currently selected. (A VXIplug&play driver is an industry standard API based upon VISA.)

.topic 0
The Settings dialog controls some of the actions performed during instrument discovery.  If Detect only is selected, the Find Instruments button simply detects whether a device is present at each bus address. If Detect, identify, and configure... is selected, the Find Instruments button also performs an identification and driver configuration for each instrument detected. If Ask before sending... is checked, a confirmation dialog is presented before *IDN? is sent to identify each instrument. If not checked, *IDN? is sent to all instruments without operator confirmation. You may want the confirmation dialog if your system contains old, non-IEEE-488.2 instruments.

.topic 0
When this box is checked, Profiler data is shown only for those UserObjects and UserFunctions that executed.

.topic 0
Specifies the file path to the http.log file. This file records all incoming requests processed by the Web server and can grow without bounds.

.topic 0
When Binary RunTime File Format is checked, .vxe files are saved using a binary formatwhich gives improved security and smaller file size. When this box is not checked, .vxe files are stored in ASCII format (similar to .vee files).

.topic 0
When this box is checked, the Find text must match the entire field of the text being searched.

.topic 0
When this box is checked, a match is reported if the Find text occurs at the end of the text being searched.

.topic 0
Specifies the number of pixels placed between objects when you perform an Edit  Align... operation. This Alignment Spacing value is used only when Space Equally is enabled.

.topic 0
The New button clears the VEE workspace. You will be prompted if there are any unsaved changes in the current program.

.topic 0
The Default Preferences button provides the Default Preferences dialog. This dialog has six tabs containing many and varied customizable VEE settings.

.topic 0
The Property buttons can be used to constrain the search according to various object properties. Once a Property is selected, specify the desired constraint in the Value column. For example, if you select Breakpoint/On, then only objects with active break points are searched.

.topic 0
This field specifies the number of digits displayed to the right of the decimal point.

.topic 0
The Trig Mode selection chooses the default trigonometric units used in the program.  Radians are VEE's default (and fastest) units.

.topic 0
When Reset is pressed, any pending changes to Default Preferences are discarded, and the previous Default Preferences (saved in the "veerc" file) are restored.

.topic 0
Specifies the magnification used when printing a VEE program. Smaller numbers create a smaller image. The value you specify might be rounded by some printer drivers.

.topic 0
The Toggle Breakpoint button aids debugging by setting or clearing execution breakpoints at the selected objects. A breakpoint on an object pauses program execution immediately before that object. Breakpoints can also be accessed in the Object Menu Properties.

.topic 0
The Start Profiling button is a toggle function that starts or stops profiling.

.topic 0
Profile data is collected whenever the Profiler is running, but the data displayed in the dialog box is not updated automatically. You must click the Refresh button to cause the Profiler to display the latest profile data.

.topic 0
The Step Into button aids debugging by executing one primitive object at a time.  When a UserObject or local or imported UserFunction is encountered, VEE puts it into its detail view and executes each object in that view.

.topic 0
This area displays the run state of the program. Indicators are: Blank, Ready (stopped), Green Arrow Running, Yellow Bars Paused, Red Bars Error

.topic 0
The Function & Object Browser button provides the Function & Object Browser dialog.  This browser provides convenient access to various math operations, objects, and properties.

.topic 0
Creates a Formula object for the currently selected function or operator.  Place the Formula in a program context. It is simply a template which can be edited as desired.

.topic 0
This field indicates if the currently loaded program has any unsaved changes (modifications).When the box is "grayed out," no unsaved changes are pending.

.topic 0
This field shows the Execution Mode of the currently loaded VEE program. ExecutionMode allows newer versions of VEE to run older VEE programs with complete backwards compatibility. The possible modes are VEE 3, VEE 4, etc. up through the current VEE version. Execution Mode is saved with the VEE program and can be changed in the Default Preferences dialog.

.topic 0
This field specifies the file name where Profiler data is saved. Click this field to bring up the Save data filename dialog box.

.topic 0
The Appearance Property Group allows you to choose the default color for any screen element in your VEE program.

.topic 0
The Object Type property constrains the search to objects of the type(s) selected in the Value list. The default is all object types. To constrain the search, click the Value button and check or uncheck the desired types. Select All and Clear All buttons are provided for convenience.

.topic 0
Creates a Formula object to Get the value of the currently selected member (property).Place the Formula in a program context. It is simply a template which can be edited as desired.

.topic 0
Click the Component Driver button to create a Component Driver object for the currently selected instrument. (A Component Driver is an efficient link to one component of an instrument's Panel Driver.)

.topic 0
Click the (Instrument) Properties button to view or modify the I/O-related properties of the currently selected instrument. The interface type determines the set of properties available. For example, RS-232 instruments have a Properties field for setting the Baud rate, while GPIB instruments have a Properties field for setting the bus address.

.topic 0
If Detect only is selected, the Find Instruments button simply detects whether a device is present at each bus address. If Detect, identify, and configure... is selected, the Find Instruments button also performs an identification and driver configuration for each instrument detected.

.topic 0
The Options button brings up the Profiler Options dialog box. These options customize the format of displayed and saved data.

.topic 0
When this box is checked, the printout includes an open view of all nested UserObjects.

.topic 0
When Print Cover Page is checked, a cover section is generated at the beginning of the printout. This default format choice can be overridden in the Print Program dialog.

.topic 0
The Open button loads a program file into the VEE workspace, replacing any existing program. You will be prompted if there are any unsaved changes in the current program.

.topic 0
The Cut button deletes the selected objects and places them in the Paste buffer and on the Windows Clipboard.

.topic 0
The Find button provides a dialog box used to search for text strings and certain object properties in your VEE program. Various search properties, such as Match Case and Object Type, can be used to constrain your searches. To limit the scope of a search, open Find from the Program Explorer by clicking a specific context with the right-hand mouse button.

.topic 0
The Configure Drivers button identifies the selected instrument and configures any available VXIplug&play and Panel Drivers for that instrument. (Only IEEE 488.2 (and most VXI) instruments can be identified.)

.topic 0
Click the Direct I/O button to create a Direct I/O object for the instrument currently selected. (A Direct I/O object allows low-level transactions with the instrument.)

.topic 0
Click the OK button to save the instrument configuration in an internal cache and close the Instrument Manager. The current configuration is used by the program, but is not yet saved to disk.

.topic 0
When Disable Debug is checked, all debugging features are disabled, giving the fastest program execution speed.

.topic 0
When Auto Line Routing is checked, the lines between objects are automatically rerouted when an object is connected, moved, or resized. Auto-routing uses only horizontal and vertical lines, and gives the same results as Edit -> Clean Up Lines. When auto-routing is off, lines are drawn directly from pin to pin, often diagonally.

.topic 0
The Profiler button provides the Profiler dialog. The Profiler provides comparative information about the execution time of each UserObject and UserFunction.

.topic 0
The Print Screen button sends the visible contents of the VEE window to a printer.  To configure the printer, use File -> Print Screen.

.topic 0
When the root node is selected, click the Find Instruments button to search for available interfaces and instruments. When a specific interface is selected, click this button to search for all instruments connected to the selected interface. The exact operations performed by the Find Instruments button are controlled by the Settings dialog.

.topic 0
The Print button brings up a standard Windows Print dialog. The Instrument Manager printout is a bitmap dump of the full Instrument List tree view.

.topic 0
This field indicates if Profiling is currently enabled. When the box is "grayed out, "profiling is stopped.

.topic 0
When this box is checked, each printout page is given a page number and other header information, and an Index is generated at the end of the printout.

.topic 0
Sets the speed at which the Data Flow markers move. Select a rate from 1 to 10. The default is 6 and the fastest is 10.

.topic 0
Save colors and fonts with program saves all the default colors and fonts in the program file that are selected in the Default Preferences dialog box. This ensures that whoever opens your program will also get all of your default colors and fonts.  If this option is not selected, only the colors and fonts explicitly set in your program are saved in your program file. This allows others using your program to retain their own default colors and fonts. If an existing program is loaded, the option is set according to how the program was saved previously.

.topic 0
This field indicates if the VEE Web Server is currently enabled. When the box is "grayed out," the Web Server is disabled. The VEE Web Server is controlled in the Default Preferences dialog.

.topic 0
Specifies the port number used by VEE's Web server. This port number must be allocated in your system's services file and must not be used by any other Web server.

.topic 0
When Delete Variables at PreRun is checked, the values stored in all variables are deleted before each program runs. Therefore, Get Variable objects will error if their values have not been properly set. When this box is not checked, Get Variable objects can access old data left from the previous program run. Such old data may or may not be valid for the new program run.

.topic 0
Save I/O configuration with program saves the veeio I/O configuration information with the program file, and not in the veeio resource file. The configuration information is specified in the Instrument Manager. If this option is not selected, the current program's configuration information is saved in the veeio file. If an existing program is loaded, the option is set according to how the program was saved previously.

.topic 0
The View Variables button displays a list of all variables that are currently defined.  Double-click a variable's name to view details such as type, shape, and data values.

.topic 0
When this box is checked, the search is constrained to exact matches of the letter-case specified in the Find line. The default is off, which treats upper-case and lower-case letters as equal.

.topic 0
Click the Remove button to delete an instrument entry from the I/O configuration.(An interface entry is automatically removed when all the instruments associated with that interface are removed.)

.topic 0
When this box is checked, a match is reported if the Find text occurs anywhere in the text being searched.

.topic 0
When this box is checked, all matches are reported for each object. The default is off, which reports only the first match found for each object.

.topic 0
Creates a Call object for the currently selected function. Place the Call in a program context. It is simply a template which can be edited as desired.

.topic 0
When this box is checked, each click of the Save button overwrites the data previously saved in the Profiler data file. When this box is not checked, each Save appends to the existing data.

.topic 0
When this box is checked, the printout includes a detailed view of each object in the program. All but the simplest objects are printed in open view form.

.topic 0
When Save is pressed, any changes to Default Preferences become valid for the curren work session and are saved in the "veerc" file. When you exit and restart VEE, the new saved Default Preferences are used. (The exact path to the "veerc" file is system dependent.)

.topic 0
When Print Header and Index Page is checked, each printout page is given a page number and other header information, and an Index is generated at the end of the printout.  This default format choice can be overridden in the Print Program dialog.

.topic 0
When Print Program Explorer is checked, the printout includes the overview information contained in the Program Explorer window. This default format choice can be overridden in the Print Program dialog.

.topic 0
The Find Results button displays the results from the most recent Find search. You can change the sorting order of a column by clicking on the column header.

.topic 0
Enter the text string you want to find in your VEE program. If you leave this line blank, the search will match any text.

.topic 0
When this box is checked, a match is reported if the Find text occurs at the beginning of the text being searched.

.topic 0
Click the Remove button to delete an instrument entry from the I/O configuration.(An interface entry is automatically removed when all the instruments associated with that interface are removed.)

.topic 0
When this box is checked, the printout includes the overview information contained in the Program Explorer window.

.topic 0
When this box is checked, a cover section is generated at the beginning of the printout.

.topic 0
When Print I/O Configuration is checked, the printout includes the expanded treeview of the I/O configuration (from the Instrument Manager). This default format choice can be overridden in the Print Program dialog.

.topic 0
The B&W Printer Darkness setting allows you to choose a shade of gray for each screen element in your VEE program. This shade of gray is used when you print the program on a non-color printer. (The settings in the Appearance Property Group are used for a color printer.)

.topic 0
The Show Data Flow button aids debugging by visually indicating the route that data takes through the program. The speed of the small square data marker is set in the Default Preferences   General tab, Debug area.

.topic 0
The Save button writes the current program to the previously specified file name.  Save uses the file shown in the VEE window title bar. If this is a New program that has not been saved previously, you will be prompted for a file name. To change filenames, use File -> Save As.

.topic 0
When this box is checked, the printout includes the expanded tree view of the I/O configuration (from the Instrument Manager).

.topic 0
If Ask before sending... is checked, a confirmation dialog is presented before *IDN? is sent to identify each instrument. If not checked, *IDN? is sent to all instruments without operator confirmation. You may want the confirmation dialog if your system contains old, non-IEEE-488.2 instruments.

.topic 0
The Paste button places a copy of the Paste buffer onto the VEE workspace. You can Paste objects that were accidentally Cut, and connections to those objects will be restored.

.topic 0
The Reset button restores the default Property/Value list, which is all object typeswith no constraints.

.topic 0
This browser presents functions and objects in a hierarchical arrangement. Choose the broad classification from the left column, the sub-category from the middle column, and the specific function or object from the right column. Then click one of the Create... buttons (or double-click the selection) to create a VEE object from your selection. Place this VEE object in a program context and edit it as desired.

.topic 0
Displays Help for the currently selected function or object (not Help about the Browser).

.topic 0
Click the Panel Driver button to create a VEE Panel Driver object for the currently selected instrument. (A Panel Driver is the full-featured graphical simulation of an instrument's front panel.)


.NET 과 COM

하나의 프로그램에서 .NET 오브젝트와 COM 오브젝트를 동시에 사용하기 위해서는 별도의메모리 관리기법이 필요합니다. .NET 오브젝트는 관리할 수 있는 메모리에 상주하여, CLR에 의해서 컨트롤되고, 속도향상을 위해 실행중에 이동할 수도 있습니다. .COM 오브젝트는 관리할 수 없는 메모리에 상주하여, 그들의 포인터를 이동할 수가 없습니다.

2개의 메모리 관리기법이 많이 틀리므로, 서로 통신을 할 수 있도록 wrapper가 필요합니다. 아래의 다이어그램은 .NET이 2개의 오브젝트 사이에서 통신하기 위하여 어떻게 wrapper를 사용하는지를 보여줍니다. 이 2개의 wrapper는 .NET 프레임워크에서 COM interop 를 사용하는 기본 방식입니다. Runtime Callable Wrapper와 COM Callable Wrapper의 자세한 내용에 대해서는 Mike Gunderloy이 작성한 MSDN 기사를 참조하십시오. 기사 제목은 “Calling COM Components from .NET Clients” 와 “Calling a .NET Component from a COM Component”입니다.


756번 에러

756번 에러는 VEE에서 CreateInstance 내장 함수를 사용하여 .NET 오브젝트 생성을 실패하였을 경우 발생합니다. 아래 항목을 참조하면 이 에러를 수정하는데 도움이 됩니다.

756번 에러 체크목록

  1. .NET 클래스에 속하는 어셈블리 참조를 추가하였습니까?

  2. Function & Object Browser를 열고, .NET/CLR objects, assembly, 및 사용할 클래스의 namespace를 차례로 선택합니다. 사용할 클래스가 보이지 않는다면, 해당 클래스의 .NET 오브젝트를 생성 할 수 없습니다.

  3. 해당 클래스의 생성자가 있습니까? 클래스 생성자가 없다면, 해당 클래스의 .NET 오브젝트를 생성할 수 없습니다.

  4. 템플릿을 생성하는 Create Instance 버튼을 사용하였습니까? Create Instance 버튼을 사용하면, 어셈블리 또는 클래스의 명칭을 입력하면서 발생하는 사소한 에러를 많이 줄일 수 있습니다.

  5. COM의 CreateObject 를 사용하는 경우와는 다르게 .NET 클래스 생성자는 임의의 개수의 인자를 가집니다. 따라서 CreateInstance를 호출할 정확한 개수와 정확한 타입의 인자를 제공해야 합니다. Function & Object Browser를 사용하면, VEE는 올바른 생성자를 선택하고, 입력인자의 개수만큼의 인자의 자리를 제공합니다. 인자의 타입도 정확히 지정해야 합니다.

  6. VEE 에러 대화상자를 읽으시오. 일반적으로 .NET 예외사항은 COM보다는 많은 내용을 제공합니다. 여기서 제공되는 내용이 충분하지 않고, .NET 클래스 라이브러리에서 에러가 발생하였으면 MSDN을 참조하시기 바랍니다.


300¹ø ¿¡·¯

300번 에러
입력 터미널 <n>이 연결되지 않았습니다.

해결방안

다음의 3 가지 상황에서 300번 에러메시지가 발생됩니다.

1. 데이터 입력 핀이 연결되지 않은 경우
모든 오브젝트의 데이터 입력 터미널은 프로그램 실행 전에 반드시 다른 오브젝트의 핀과 연결되어야만 합니다. 에러를 발생한 오브젝트를 찾아서 (붉은 선으로 둘러 쌓인 오브젝트), 터미널에 필요한 선을 연결합니다.

2. UserObject/UserFunction에서 내부의 출력 터미널 핀이 연결되지 않은 경우

에러메시지가 출력 버퍼의 입력 터미널에 관한 내용이라면, UserObject 또는 UserFunction에서 이 에러가 발생합니다. 이 에러메시지는 UserObject(UserFunction) 내부의 출력 터미널 핀이 내부의 오브젝트와 연결되지 않았음을 의미합니다. 프로그램을 실행하기 이전에 UserObject(UserFunction)내부의 모든 출력터미널 핀은 연결되어 있어야만 합니다.

어떤 핀이 연결되지 않았는지는 UserObject 또는 UserFunction의 오픈뷰에서 확인해야 합니다. 터미널을 볼 수 있도록 속성 창에서 Show Terminals를 True 로 선택하십시오.

3. UserFunction을 임포팅할 때.

UserFunction을 임포트할 때, 이 에러가 발생하면, UserFunction의 내부에 입력 터미널을 연결하지 않는 오브젝트가 있는 경우입니다. File [image] Open File [image] Merge Library 를 실행하여 UserFunction을 임포트하여 UserFunction을 수정하고 저장해야 합니다. 프로그램을 다시 열고 실행하면 UserFunction 이 정상적으로 임포트될 것 입니다.


553번 에러
ActiveX 오브젝트는 <name>을 <action>하는 동안 에러를 발생시켰습니다.

해결방안

이 에러는 ActiveX 오브젝트가 DISP_E_EXCEPTION 에러코드를 리턴할 경우에 발생합니다. 속성 또는 메소드에 올바르지 않은 값을 전달할 것에서 원인을 찾을 수 있습니다. ActiveX 오브젝트가 어떠한 상황에서 “error”를 요구할 경우에도 이 에러의 원인이 될 수 있습니다. 예를 들어 Windows Common Dialog 컨트롤은 여러 가지 대화상자에서 사용됩니다. 사용자가 Cancel 버튼을 눌렀을 경우, 대화상자에서 “error”를 출력하도록 설정할 수 있습니다. 이 경우에는 ActiveX 오브젝트는 사용자가 설정한 바와 같이 Cancel 버튼이 눌러졌으므로 에러를 리턴합니다.


553번 에러

557번 에러
ActiveX 오브젝트가 생성되지 않았습니다.

해결방안

VEE에서 ActiveX 오브젝트를 생성하지 못하는 여러 가지 이유가 있습니다. 발생한 에러코드에 따라서 에러 해결방법이 달라집니다.

에러코드가 0x80080005이면, 윈도우가 레지스트리의 정보를 기반으로는 ActiveX 서버나 ActiveX 컨트롤을 불러오지 못하는 것입니다. ActiveX 서버 또는 ActiveX 컨트롤이 경로명에 공백을 포함하는 긴 파일명을 사용하는 경우와 동일한 폴더에 유사한 디렉토리명이 존재하면 557에러를 발생시킬 수 있습니다. 자세한 정보는 Microsoft Knowledge Base Article Q179690을 참조하십시오. 해결방법은 프로그램 경로에 공백이 없는 디렉토리, 또는 동일한 폴더에 유사한 이름을 가진 디렉토리 및 파일이 없는 디렉토리에 ActiveX 서버나 ActiveX 컨트롤을 인스톨하는 것입니다.

에러코드가 0x80040112 이면, 컨트롤이 라이센스된 경우입니다. 라이센스를 갖는 컨트롤이 완전히 설치가 안되었을 경우에 이 에러가 발생할 수 있습니다. 전체 컨트롤 패키지가 정상적으로 설치된 경우에는, VEE 프로그램을 개발할 때, 컨트롤의 인스턴스를 생성하는데 사용되는 라이센스가 존재합니다. VEE는 컨트롤로부터 라이센스 키를 요구하고, VEE 프로그램과 함께 이 키를 저장합니다. 이 방법으로 하나 이상의 컴퓨터로 프로그램과 함께 컨트롤 파일의 복사본을 배포할 수 있습니다. VEE는 이 키를 배포대상 컴퓨터의 컨트롤에 제출하고, 배포대상 컴퓨터에서 컨트롤의 인스턴스를 생성할 수 있도록 허가 받습니다.

배포대상 컴퓨터에서 컨트롤을 사용하려할 때, 이 에러 메시지가 발생합니다. 새로운 프로그램을 생성하기 위해서 이 컨트롤을 사용할 수 없으며, 기존 프로그램에서 그 컨트롤을 클론 또는 복사/붙여넣기를 할 수 없습니다. 배포대상 컴퓨터에서 컨트롤을 사용하도록 라이센스를 얻지 못하였음을 주의해야 합니다. 라이센스 키는 단지 VEE가 컨트롤을 참조할 수 있다는 의미입니다. 전체 컨트롤 패키지를 구매하여 설치해야만 합니다.


593번 에러
MATLAB Script 실행 에러입니다.

해결방안

다수의 MATLAB 실행 에러들은 VEE 에러 593으로 표시됩니다. 에러메시지 대화상자의 “Go To” 버튼을 클릭하면, 오브젝트 내부의 각각의 MATLAB 프로그램 구문이 아닌, MATLAB Script 오브젝트를 표시합니다. 이것은 593번 에러를 발생 하는 구문을 사용자가 직접 찾아야 한다는 것을 의미합니다. 에러를 발생한 구문을 찾는데 도움이 되는 방법이 두 가지가 있습니다. MATLAB 에러메시지를 읽고, msgbox 함수를 사용하는 것입니다. 다음 예제에서 이러한 내용이 설명되어 있습니다.

이 예제는 파일에서 벡터 Y 값을 읽고, X데이터를 선형으로 생성하고, 두 벡터 데이터를 사용하여 X-Y그래프에 그립니다. 프로그램 실행할 때, 다음 에러가 발생한다고 가정하겠습니다.

이 대화상자의 두 번째 단락에 MATLAB에 의해 발생한 에러 메시지 ‘Invalid fid’ 가 표시되어 있습니다. (VEE 버전 및 OS에 따라 세 번째 단락일 수 있습니다.) 이는 fscanf 함수에 유효하지 않은 식별자가 제공되었음을 의미합니다. 더 자세히 검토하기 위해서, fopen 함수에 의해 반환된 값을 디스플레이 하겠습니다. 예를 들어, 다음 프로그램을 추가 하십시오.

dfile=fopen('C:sineWave.txt','r')
uiwait(msgbox(int2str(dfile)))
ydat=fscanf(dfile,'%f')

두 번째 줄의 구문은 MATLAB Script에서 사용할 수 있는 디버깅 기술입니다. uiwait(msgbox(...))구문은 텍스트 박스를 표시하고 사용자가 OK 버튼을 누를 때까지 대기합니다. MATLAB 변수의 값을 확인할 수 있는 "line probes" 또는 "watch windows"가 제공되지 않으므로, 디버깅하는 동안 메시지박스를 사용하여 데이터를 디스플레이 하는 것이 좋습니다. msgbox 함수는 스트링 인자를 사용해야 합니다. 그러므로 int2str 함수를 사용하여 file ID숫자를 스트링으로 변환합니다.

예제에 디버깅 구문을 추가하여 실행을 하면, 메시지박스는 -1이라는 파일 ID를 알립니다. fopen을 실패하였을 때 -1의 값을 반환한다고 MATLAB 도움말에 설명되어 있습니다. 즉, fscanf 함수는 파일을 열 수 없으므로 파일 ID 오류를 인식하게 됩니다. 경로를 잘못 기입, 접근 권한 없음 등의 전형적인 파일 시스템 관련이유로 이러한 에러를 발생시킬 수 있습니다. 파일 경로를 정정하고 예제를 다시 실행하면, 에러가 다음과 같이 변경됩니다.

다시 MATLAB 에러 메시지의 두 번째 단락(혹은 세 번째 단락)을 검토하겠습니다. 이 경우에는 X와 Y 벡터의 길이가 일치하지 않아서 plot 함수가 에러를 발생시켰습니다. xdat 와 ydat 데이터의 길이를 확인하기 위해서 msgbox를 띄우거나, MATLAB 콜론 연산자를 검토할 수 있습니다. 어떠한 방법을 사용하던지, 유의해야 할 점은 MATLAB 어레이의 인덱스는 “0” 부터 시작한다는 것입니다. length(ydat)가 256이라면 xdat 257 개의 앨리먼트: 0..256 을 생성합니다. 수정된 표현식을 다음과 같습니다.

xdat=0:1:length(ydat)-1;

가상의 예제 프로그램이지만 MATLAB Script 오브젝트를 디버깅할 때 매우 유용한 테크닉을 소개하였습니다. 예제 프로그램의 중요한 점을 요약하자면 다음과 같습니다.

MATLAB 에러메시지를 자세히 보십시오. “VEE Run Time Error”대화상자의 두 번째 단락에 실패한 MATLAB 함수와 에러를 발생시킨 구문이 기록되어 있습니다.

데이터를 디스플레이 하는 msgbox 함수를 추가하십시오. 디스플레이 하기 전에 실수 값을 문자열로 변환하십시오. 더 이상 디버깅이 필요치 않을 경우, msgbox 구문을 삭제 하십시오.

MATLAB 문서를 참고 하십시오. MATLAB 도움말은 다음의 경로에서 제공됩니다. Help [image] MATLAB Script [image] Help Desk


601번 에러
유효하지 않은 표현식: <description>

해결방안

Formula 오브젝트 표현식에서 구문에러와 관련하여 <description>을 가진 에러가 발생하면 다음의 조건을 체크하십시오:

1. 각 표현식이 “;”(세미콜론)으로 종료되었음을 확인하십시오. 확인된 에러의 위치가 아닌, 이전 구문(이전 구문이 있다면) 끝에 세미콜론을 넣지 않아 에러가 발생할 수 있습니다.

2. 상위 실행모드(예. VEE 6&7)에서 키워드로 사용되는 단어를, 하위 실행모드(예. VEE5, VEE4)에서 변수로 사용하지 마십시오. Set과 ByRef는 키워드에 포함되어 있습니다. 프로그램의 실행모드 설정은 VEE 창의 우측 하단의 상태바에서 확인할 수 있습니다.

3. VEE 내장 함수에 데이터를 할당하지 마십시오. VEE 5 (또는 그 이상의) 실행모드에서 VEE는 다음의 내장함수를 정의 합니다. : TRUE, FALSE, PI

4. 3항 연산자는 괄호 안에 모든 수식을 넣어야 합니다.:

옳은 표현:
(a==0 ? TRUE : FALSE)

틀린 표현:
a==0 ? TRUE : FALSE

5. 수식에서 어레이를 만들거나 수정을 할 경우, 어레이의 앨리먼트는 콤마로 구분해야 합니다.:

옳은 표현:
[1,1,0]

틀린 표현:
[1 1 0]


739번 에러
Compiled function<function_name>에서 리턴 된 후, 스택 포인터를 사용할 수 없습니다.

해결방안

스택 포인터 오류가 발생되는 대부분의 원인은 함수에 대하여 정확하게 함수를 호출하지 못하였기 때문입니다. 선언된 내용은 정의파일(.h, 헤더파일)에 정의되어 있습니다. 규칙을 지정하지 않고 함수를 호출하면, VEE는 _cdecl 규칙을 이용하였다고 가정합니다. 예를 들어, 아래의 2 가지 방식으로 선언한 내용은 VEE 입장에서는 동일하며, 결과적으로 _cdecl 함수를 사용한 것과 같습니다:

long func1(long a, long b)
long _cdecl func1(long a, long b)

일반적으로 많이 사용하는 대안은 __stdcall 규칙입니다. __stdcall 규칙은 명시적으로 지정하거나 일반적인 마크로를 사용하여 지정할 수 있습니다. 예를 들어서, 아래의 2 가지는 모두 __stdcall 함수로 선언되었습니다.

long __stdcall func2(long x)
long WINAPI func2(long x)

호출 규약의 주 목적은 스택을 “깨끗이 하는가” 입니다. 호출하거나(VEE) 호출 받는(일반적인 함수) 측에서 스택을 청소해야 합니다. 기본적으로 스택을 청소하려면 하나의 장소에서 하나의 스택만을 사용해야 합니다. 호출 받은 함수가 DLL의 함수코드와 일치되지 않으면, 스택 포인터는 두 군데 위치로 바꾸거나, 전혀 바꾸지 않게 됩니다. 어떠한 상황이 되었든 스택이 일치되지 않으면, 프로그램 실행에 중대한 에러가 발생할 가능성이 있습니다.

대부분의 Win32 API 함수들은 __stdcall 호출 규약을 사용합니다. 인자의 개수가 일정하지 않은 Win32 API 함수들만 _cdecl 호출규약을 사용합니다. Visual Basic을 사용하여 작성한 DLL파일은 __stdcall 호출 규약을 사용합니다. __stdcall로 선언된 함수 또는 the/Gz Microsoft compiler 옵션으로 컴파일한 DLL은 제외하고, C언어로 작성된 대부분의 DLL들은 _cdecl 호출 규약을 사용합니다.

__stdcall 규약을 사용하는 함수 중에서 스택 포인터 오류의 다른 원인은 호출한 함수에 인자의 개수가 잘못 지정되었거나, 잘못된 인자 타입이 지정되었을 경우입니다.

.NET Framework 2.0 이상 및 VEE 8.0이상의 버전에서는, .NET 실행 엔진에 의해 이런 스택 포인트 오류가 파악됩니다. 일부의 경우에는, .NET 실행 엔진은 이러한 스택오류를 보안 위험상황으로 인식하여 VEE 프로세스를 종료하게 됩니다. VEE는 종료되기 전에 VEE를 종료할 것이라는 대화상자를 띠웁니다. 스택 포인터 오류시 VEE는 이전 실행상태로 복구되지 않습니다.

이러한 에러를 수정하는 가장 빠른 방법은 DLL의 행위에 일치하도록 정의파일(.h)을 수정하여 로 수정하는 것입니다. VEE를 다시 실행하면, 새로 작성한 정의파일을 읽습니다 (definition 파일의 명칭을 보려면 VEE의 Import Library 오브젝트를 참조하십시오. )


751번 에러

751번 에러가 발생하는 대부분의 원인은 .NET operation이 실행하는 동안에 System.MissingMemberException 또는 System.MissingMethodException이 발생했기 때문입니다. 이 경우엔, 디버깅 및 에러수정에 도움될만한 여러 가지 내용이 있습니다.

751번 에러 체크목록

1. 템플릿을 생성하기 위해서 Function & Object Browser를 사용했습니까? Function & Object Browser을 사용하면 대부분의 751번 에러를 방지할 수 있습니다.

2. 호출하려는 멤버의 철자를 검토하십시오.

3. 메서드를 호출하려고 합니까 아니면 속성을 호출하려고 합니까? 메서드는 인자를 사용하지 않더라도 괄호“()”를 사용해야 합니다. 색인 속성과 변수화된 속성을 제외한 일반적인 속성은 일반적으로 괄호를 사용하지 않습니다.

4. 인자의 개수를 정확이 제공했습니까?

5. 각각의 인자는 올바른 타입을 가졌습니까? VEE에서 사용하는 .NET 오브젝트는 일반적으로 정밀도-확장 데이터 타입을 받아들이지만 정밀도-축소 데이터 타입은 받아들이지 못합니다. Int16 타입을 사용해야 하는 .NET 오브젝트에 VEE가 UInt8타입의 데이터를 제공할 수 있습니다. 그러나 반대의 경우에는 동작하지 않습니다. 또한 .NET operation이 ByRef 인자를 받아들이고, 이것을 리턴하는 .NET 오브젝트의 경우에는 VEE에서 이 인자와 정확히 일치하는 인자를 제공해야 합니다. .NET 메소드가 ByRef Int32 타입의 인자를 사용한다면, VEE는 ByRef Int32 데이터 타입만 제공해야 합니다. 리턴 값을 가져올 필요가 없다면, ByRef 키워드를 사용할 필요없이 일반적인 인자를 사용하면 됩니다.

6. Function & Object Browser 에서 ‘S’로 표시된 스태틱(즉 공유) 멤버를 호출하는 경우에는, 인스턴스 변수를 사용할 수 없습니다. 스태틱(즉, 공유) 멤버를 불러오는 클래스 명을 사용해야 합니다. Function & Object Browser는 클래스 명(네임스페이스를 스스로 임포트하는 것은 물론)을 사용한 멤버호출 구문을 자동으로 생성합니다.

관련정보

Agilent VEE Pro에서의 .NET 에러


810번 에러

인스트루먼트 드라이버 에러 <n> : <description>
자세한 설명은 계측기 매뉴얼을 참고하십시오.

해결방안

계측기 에러가 발생되었습니다. 이 에러는 계측기에서 에러가 발생하여, 그 에러가 VEE 내부의 인스트루먼트 드라이버로 전달되었음을 나타냅니다.

예를 들어, 다음의 에러는 다음과 같은 형태입니다.:
Instrument driver error 1051: Device xxx reported error nnn

"xxx" - I/O [image] Instrument Manager에서 지정한 계측기의 명칭입니다. .

"nnn" - 계측기의 에러메시지입니다. 자세한 내용은 계측기의 매뉴얼을 참조하십시오.


811번 에러
I/O 에러 또는 타임아웃이 발생하였습니다.

해결방안

VEE가 계측기와 통신할 수 없을 경우에 이러한 에러가 발생합니다. 이 문제는 아래의 사항을 점검하여 해결할 수 있습니다.

계측기가 컴퓨터에 접속되어 있는지, 전원을 인가하였는지 체크하십시오.

계측기와 통신케이블이 제대로 연결되어있는지 확인하십시오.

I/O 주소가 올바른지 확인하십시오.

인스트루먼트 드라이버를 사용할 경우, 올바른 드라이버 파일인지 확인하십시오.

주의사항

주의사항: 많은 데이터를 통신하거나 계측기에서 데이터를 처리하는 속도가 느릴 때, I/O [image] Instrument Manager에서 타임아웃 값을 증가시킬 필요가 있습니다.


851번 에러
호스트 <name>에 서비스 관리자가 없습니다.

해결방안

서비스 관리자를 시작할 수 없습니다. 다음의 상황에서 851번 에러가 발생합니다.

1. 서비스를 제공하는 컴퓨터의 서비스 관리자를 시작할 수 없습니다.

윈도우 NT에서 프로그램을 실행할 때:

서비스 관리자는 VEE 설치 디렉토리에 있는 콘솔 어플리케이션 veesm.exe 입니다. 윈도우의 시작메뉴의 실행…을 클릭하여 서비스 관리자를 실행할 수 있습니다.

"C:\Program Files\Agilent\VEE 5.0\veesm.exe"

서비스 관리자를 시작메뉴에 추가하면 윈도우가 실행될 때 자동으로 시작됩니다. 서비스 관리자의 창이 최소화되도록 단축아이콘 속성을 설정합니다.


906번 에러
START 오브젝트가 필요한 피드백 쓰레드입니다.

해결방안

피드백은 최초의 값을 설정하거나 이전 루프로부터 값을 액세스하도록 허용합니다.

피드백을 사용하기 위해서는, 피드백 루프 안에 있는 어떤 오브젝트(또는 서브 쓰레드)가 가장 먼저 실행하는지 알리기 위해서 가장 먼저 실행되는 오브젝트에 Start 오브젝트를 연결해야 합니다.


910 번 에러
프로세스를 실행할 메모리가 부족합니다. 프로그램을 즉시 저장하십시오.

해결방안

다른 파일명으로 프로그램을 즉시 저장하십시오..

Window NT에서 프로그램을 실행할 경우:

프로그램이 사용 가능한 스왑공간을 모두 사용하였습니다.

가능성이 있는 원인은 매우 큰 어레이나 레코드를 프로그램에서 사용하고, 모든 기능을 수행하기 때문입니다. 이럴 경우에는 한 부분에서만 동작할 수 있도록 프로그램을 수정합니다.

그렇지 않으면, VEE가 모든 스왑공간을 사용하기 전에 더 많은 스왑공간을 할당 해야 합니다.

윈도우 NT에서 : ‘내 컴퓨터’ 위에 마우스 커서를 놓고, 오른쪽 버튼을 클릭합니다. 속성을 선택합니다. 고급(Performance) 탭을 선택하고 가상메모리(Virtual Memory)버튼을 선택하여 적당한 가상메모리를 설정합니다.


935번 에러
피드백 사이클의 내부에 Junction이 필요합니다.

해결방안

VEE 4(또는 그 이상)의 호환모드에서, 피드백 사이클의 내부에 Junction 오브젝트가 필요합니다. Start 오브젝트는 더 이상 필요하지 않습니다.

Help => Contents and Index => Tell me about.. => I/O Transaction를 참조하십시오.


937번 에러
Sample & Hold에 데이터가 제공되지 않았습니다.

해결방안

Sample & Hold 오브젝트의 XEQ핀을 생성하여 활성화 시킵니다. 그러나 이 오브젝트에는 데이터가 없으므로, 출력할 데이터도 없습니다. XEQ핀이 실행되기 전에 Sample & Hold 오브젝트에 데이터가 전달되도록 프로그램을 수정하십시오. 이 에러는 VEE 4 이상의 버전의 호환모드에서만 발생합니다.


938번 에러
VEE는 이 부분의 프로그램을 컴파일 할 수 없습니다.

해결방안

VEE 3.x 및 이하의 버전에서 반복 오브젝트들 사이를 연결 할 수 있었습니다. 실행 순서는 정해지지는 않지만 연결선이 만들어진 순서에 영향을 받았습니다. 실제로 VEE 3 호환모드에서도 이러한 방식으로 실행되었습니다.

VEE 4.x 이상의 버전에서, VEE 4 (또는 이상의 버전) 호환모드에서는 Junction 오브젝트를 통해서만 연결된 루프만 허용합니다. 다른 방식의 루프는 에러를 발생합니다.

Help => Contents and Index => Tell me about.. => I/O Transaction를 참조하십시오.


939번 에러
쓰레드가 입력 터미날에 연결될 때 START 버튼을 누를 수 없습니다.

해결방안

UserObject 오브젝트 혹은 UserFunction 오브젝트가 Start 오브젝트와 연결되고 Start 오브젝트를 누르면 컨텍스트 밖으로 발생된 데이터가 실린 쓰레드가 실행됩니다. Start를 누른 컨텍스트 안에 오브젝트만 실행되기 때문에 데이터가 누락되어 하나 이상의 오브젝트를 실행하지 못하게 합니다 이에 누락된 데이터는 에러를 발생시킵니다. VEE 4 (그 이상의 버전) 호환모드에서 이 에러가 발생됩니다.

해결책 추가

오브젝트에 데이터를 입력합니다. 일시적으로 UserObject 오브젝트 혹은 UserFunction 오브젝트의 입력 터미날 핀에 연결된 연결선을 지우고 그 핀에 데이터를 출력하는 Constant 오브젝트나 다른 오브젝트를 연결합니다. 또는 초기값을 입력하는 Junction오브젝트를 사용합니다.

디버깅하고자 하는 부분을 별도의 UserObject로 분리하여 그 오브젝트만 따로 실행합니다.


940번 에러
잘못된 형태의 피드백

해결방안

이 에러는 VEE 4 이상의 호환모드에서 반복자(iterator)없이 피드백 루프를 사용할 때 발생합니다. 반복자가 없으므로, 피드백 루프가 완료되지 않습니다.

루프를 완료할 수 있도록 프로그램 안에 반복자를 넣거나, 피드백을 제거하기 위해서 Junction 오브젝트를 꺼내야 합니다.


941번 에러
T1은 T2가 실행하기 전에 활성화되어야 합니다.

해결방안

VEE 4(그 이상의 버전) 호환모드에서는 Timer 오브젝트 상단 데이터 입력 핀(T1)이 하단 데이터 입력 핀보다 먼저 실행되야 합니다. 연결선의 위치(T1과 T2간의)를 바꾸거나, 핀이 올바른 순서로 실행되도록 프로그램의 로직을 변경합니다.


950번부터 999번 에러

Agilent VEE 내부연산에서 이 코드를 사용합니다. 일반적인 연산에는 이 에러 코드가 발생하지 않습니다. 950 ~ 999의 에러가 발생한다면 아래의 그림과 같은 형태입니다.

에러 보고서의 내용을 읽기 전에 check for updates를 확인합니다. 애질런트사는 문제점을 보완한 패치파일을 제공합니다. 내부에러 종류, 에러번호, 오브젝트 이름, 및 오브젝트 종류는 에러에 따라 다릅니다. 이름과 이메일 주소를 적고 Send Error Report 버튼을 누르십시오. mini-dump내용이 애질런트로 발송됩니다. 애질런트는 Mini dump의 내용을 검토하여 해당 문제점를 교정하는데 참조합니다. 애질런트사는 발생한 문제를 재현하기 위해 도움이 필요합니다. 제공한 이메일 주소를 사용하여 연락하기도 합니다. 애질런트로부터 연락 받기를 원하지 않는다면 이메일 필드를 공란으로 남겨 주십시오. 또한 에러 보고서를 보내 주십시오. 에러를 재현하지 못하더라도 이 보고서가 제품에 대한 유용한 정보를 제공합니다. 이 문서의 마지막에서 mini-dumps에 대한 추가정보를 확인하십시오.

주의사항

이런 종류의 에러가 발생하면, 작성중인 VEE 프로그램을 저장할 수 없습니다. 그러나 에러가 발생한 프로그램을 다른 이름으로는 저장할 수 있습니다. 수정한 프로그램은 여러 날 문제없이 프로그램을 로드하고 실행할 수도 있지만, 향후 프로그램의 손상된 부분을 실행하면 이 에러 혹은 비슷한 에러가 반복되어 나올 수 있습니다.

이 에러는 하드 디스크에 저장한 원본의 프로그램에 영향을 주지 않습니다. 이러한 에러가 발생시 해야 할 일은 아래의 내용을 따르십시오.

1. 새로운 파일 이름으로 프로그램을 저장하고 VEE를 종료하십시오.

2. 새로운 VEE 윈도우에서 프로그램을 열고, 모든 쓰레드를 확인할 수 있도록 실행하여, 프로그램이 손상되었는지 확인합니다. 프로그램 실행 결과에 따라서 다음의 선택사항을 실행하십시오,

a. 새로운 프로그램을 열고 실행했는데 에러가 없다면, 이 프로그램을 계속 사용합니다. 수정된 부분이 여전히 존재하는지 확인합니다. 프로그램이 안정적으로 동작한다면 손상된 부분이 없는 것입니다.

b. 새로운 프로그램을 열고 실행했을 때 에러가 발생하지 않았더라도, 잠재적인 에러가 발생하는 것을 방지하기 위해서 이 프로그램을 사용하지 않아도 됩니다. 원본 프로그램에 저장되지 않은 변경된 부분을 참조하기 위해서 사용할 수 있습니다. 복사본에는 손상된 부분이 포함되어 있을 수 있으므로, 새로운 프로그램의 쓰레드를 원래의 파일에 복사하지 마십시오. 애질런트에 문제점을 제시할 자료로 사용하기 위해서 프로그램을 보관하십시오.

c. 새로운 프로그램이 손상되었다면, 그 프로그램을 지우지 마십시오. 애질런트에 문제점을 제시할 자료로 사용하기 위해서 프로그램을 보관하십시오. 유용한 정보가 이 프로그램 안에 들어 있을지 모릅니다. 프로그램을 저장하지 말고 VEE프로그램을 종료하십시오. 그리고 새로운 VEE 윈도우에 원본 프로그램을 열고 프로그램을 작성하십시오.

Mini-Dumps

VEE는 현재 실행된 프로세스에 대한 대부분의 세부 사항을 재구성하는데 필요한 정보를 저장하기 위해 미니덤프를 사용합니다. 각 함수들의 파라미터 값뿐만 아니라 포인터가 있는 로컬 변수와 관련된 메모리, 혹은 그 이상의 정보가 포함됩니다. 이러한 정보는 애질런트가 에러의 원인을 분석하는데 도움이 됩니다.

미니덤프는 VEE실행파일, 로드된 DLL파일, Import Library 오브젝트를 통해서 포함된 파일 등의 경로 정보를 가집니다. VEE 프로그램에 패스워드나 코드 이름 등과 같은 민감한 정보가 포함되어 있으면, 이들 정보를 미니덤프에 포함되어 애질런트에 전송될 수 있습니다. 애질런트는 이 에러 보고서에 포함된 개인의 정보를 보호하기 위해 합리적인 조치를 취할 것입니다. 그러나, 이 미니덤프 에러 보고서를 애질런트로 보낼 의무는 없습니다.


What has been Fixed in This Release

8.0버전에서 수정된 에러들

ID | 에러 설명 | 버전
27961 | VSE: Junction 오브젝트가 출력하지 않아야 할 경우에 NULL을 통과시킵니다. non-nil로 판단되는 경우에, 다운스트림 표현식에서 VSE 발생. | 7.52
28140 | DropDownList 항목이 변경되면 VEE 어플리케이션이 무한 루프로 들어갑니다. | 7.52
28234 | Instrument Manager에서 계측기를 삭제하면 VSE 발생. | 7.52
28141 | 디스에이블된 DropDownLists를 사용자가 컨트롤할 수 있었음 | 7.52
27672 | VSE: 입력 파라미터의 숫자가 3이 아닐 때 savePanelImage가 VSE를 발생 | 7.52
28508 | 샘플 코드 에러: 언플러그된 디바이스를 감지할 수 있음. | 7.52
28110 | 이름이 일본어로 된 UF를 로딩할 수 없습니다. | 7.52
28362 | XYTrace 오브젝트에 있는 컨트롤 입력핀 "scales"을 더블 클릭하면 VSE 발생. | 7.52
27997 | 다이나믹 IO Active X 컨트롤에서 – USB 인터페이스가 알려지지 않은 디바이스(unknown)로 나타납니다. | 7.52
28118 | 프로그램이 정지하면 VEE가 .NET 오브젝트의 Dispose를 자동으로 호출해야 합니다. | 7.52
28479 | 예제: Games\Starveego\network의 출력이 매칭되지 않습니다. | 7.52
28225 | .NET 컨트롤용 이벤트 핸들러를 생성하면 에러 401을 팝업합니다. | 7.52
28278 | 텍스트 어레이를 편집하면 vee가 HANG 됩니다. | 7.52
28130 | .NET 오퍼레이션 빌더의 스트링에서 이스케이프 캐릭터를 사용할 수 없습니다. | 7.52
28151 | 레코드 필드의 데이터를 여러 개 선택하거나 삭제하면 vee가 hang됩니다. | 7.52
28107 | 일본어 OS에서 System 메뉴에 있는 GetFile(path)을 사용하여 올바른 전체 파일 이름을 가져올 수 없습니다. | 7.52
27776 | X번 실행한 다음에 USB 계측기가 타임아웃 됩니다. | 7.52
27871 | NI DAQ 드라이버를 Toolkit Driver Session 마법사로 임포팅 할 수 없습니다. | 7.52
27811 | 임베디드 IO를 가지는 파일을 여는 과정에서 무한 루프 발생. | 7.52
28087 | 리스트 박스에 있는 텍스트가 박스를 이동하면 다시 포맷됩니다. | 7.52
28285 | Program Explorer에 중복된 변수가 나타납니다. | 7.52
28235 | "adding instrument" 대화상자에서 "Abort"를 클릭할 때 "unexpected error"가 팝업 됩니다. | 7.52
28204 | 공식을 통하여 계측기의 주소를 0으로 변경하면 "live mode off" 상태로 만들지 않습니다. | 7.52
28187 | Result 터미날 이름을 자동으로 생성하지 않아야 합니다. | 7.52
28295 | 레코드 상수에서 Coord 타입의 데이터를 사용하여 작업하는 경우에 VSE 발생. | 7.52
28155 | Concatenator 가 2개 이상의 다른 Int 타입 상수를 조합하는데 실패함. | 7.52
27702 | 선언된 변수의 타입을 변경하고 VEE를 닫아도 경고 메시지가 나타나지 않습니다. | 7.52
28089 | 선언된 변수의 타입을 변경하고 VEE를 닫아도 경고 메시지가 나타나지 않습니다. | 7.52
28311 | VEE를 빠져 나온 다음에도 DExplore가 아직 살아 있습니다. | 7.52
28049 | "Declare Variable" & Real64의 알 수 없는 동작. | 7.52
28158 | DateTime.Compare 오브젝트에 있는 입력핀이 공식과 매칭되지 않습니다. | 7.52
27665 | 비동기/버퍼된 데이터로 추측되는 NIDAQ SCAN_Start() 함수를 사용하면 VSE 발생. | 7.51
28457 | FOB에서 PageUp을 사용하면 문제가 발생합니다. | 7.51
28379 | RPC 함수 또는 DLL 함수에서 showPanel/hidePanel을 사용하면 VSE 발생. | 7.51
27293 | 편집시에는 .NET Op Builder의 타입 체크를 완화할 필요 있음. | 7.51
27179 | COM 타입 변환은 QueryInterface을 활용할 수 없습니다. | 7.51
27668 | 에러 번호 514 "Numeric overflow in function Regression" | 7.51
27696 | IVI-COM 오브젝트가 다수의 반복 후에는 System.__Com 오브젝트가 됩니다. | 7.51
27574 | IVI-COM 드라이버의 접두사가 SoftwareModuleName과 매칭되지 않는 경우에는 VEE는 자동으로 이 드라이버를 찾는데 실패합니다. | 7.51
27135 | NIDAQ: NIMAX가 디바이스 주소로 할당된 경우에는, VEE는 오버래핑을 처리할 수 없습니다. | 7.51
27438 | Description 인디케이터가 초기화되지 않습니다. | 7.51
27126 | IVI-COM 예제는 관련이 없는 계측기 참조를 가지고 있습니다. | 7.51
27650 | USB 또는 TCPIP 계측기를 추가할 때 중복된 인터페이스 발생. | 7.51
28268 | VSE: 텍스트를 읽을 때 iopath.m에서 모드 0 이고 dimSizeBlock이 0이면 VSE 발생. | 7.5
28200 | 닷넷 폼 컨트롤로 구성된 라이브러리를 임포팅할 때 Vee 경고가 발생. | 7.5
27635 | NIDAQ 오브젝트는 복사/붙여넣기가 원할하지 않습니다. | 7.5
27674 | LockPosition에 대한 온라인 도움말이 변경된 Lock Panel Position을 참조 | 7.5
23402 | Vxipnp & DllFunc가 Unit8(Int16으로 변경됩니다.)을 지원하지 않음 | 7.0
23296 | DynamicFindRemoteInstruments.vee는 LAN 인터페이스로 연결된 계측기는 찾지 못하고, GPIB 인터페이스로 연결된 계측기 만을 찾습니다. | 7.0
28333 | contextView.m에서 디바이스 이름이 200보다 길 때 VSE Print 프로그램. | 7.0
27684 | VEE 팝업 패널이 포커싱되고, .NET 대화상자가 팝업되며, 프로그램이 정지하면, VSE 발생 - kbdFocusView = freed id from popupPanel | 7.0
27990 | XY트레이스가 실행된 다음에 XY 트레이스가 패널에 추가 되었을 때 패널에 있는 XY 트레이스를 선택하여 VEE를 빠져 나올 때 VSE 발생. | 7.0
27889 | 선택하는 동안에 에러가 발생한 오브젝트의 선택을 해제할 때 VSE 발생, 예를 들어, Picture 오브젝트가 부적합한 bmp/jpg를 선택하는 경우. | 7.0
27571 | ACE를 통하여 I/O 설정에 변경된 내용은 VEE를 빠져 나오거나/다시 시작하기 전에는 볼 수 없습니다. | 7.0
28421 | Vee가 부적절한 IO 에러 메시지를 디스플레이합니다. | 7.0
26948 | .NET이 VEE의 부동소수점 에러 처리 방식을 변경합니다. | 7.0
28378 | TCPIP와 USB 계측기에서 SRQ (RQS) 누락. | 7.0
27770 | 상위 컨텍스트가 없는 UO의 Cut을 취소하는 경우에는 PropGrid에 틀린 값을 표시합니다. | 7.0
23994 | Real64 입력과 Int32 입력 오브젝트에서 Value Constraint 필드를 편집하면 문제 발생. | 7.0
27656 | viewFor/devCarrierFor dd를 NPort devId 'dd'이 없는 상태에서 파싱하여 잘못 저장된 파일 'Cannot create views for component'를 로딩할 때 VSE 발생. | 7.0
28079 | UO(UF가 아닌)에 있는 아이콘화된 PCall을 더블 클릭하면 미니덤프 파일을 기록합니다. | 7.0
28030 | 레코드 필드의 속성에서 중복된 타입(int16). | 6.2
28097 | vee.io 파일에 있는 GPIB 게이트웨이 호스트이름이 32 캐릭터보다 긴 경우에 VSE 발생. | 6.0
27998 | 하나의 라이브러리에 있는 Call 사용자 함수를 클릭하면 틀린 라이브러리로 점프합니다. | 6.0
27494 | VSE. 팝업 패널이 실행중에 오브젝트의 컨텍스트 메뉴에서 오른쪽 버튼은 오브젝트가 free한 상태가 된 다음에 MENUPICKEVENT를 전송 할 수 있습니다. | 6.0
27596 | Unit8 데이터 어레이에서 논리연산 OR는 틀린 답을 리턴합니다. (때때로) | 6.0
27463 | 프로그램이 실행중이거나 일시 정지 상태에서는 File->Create Runtime Version은 회색으로 음영처리 되어야 합니다. | 6.0
27838 | UO 이름 isValidName:true이고 NameSpace에 중복된 이름이 있는 경우에 UserObject -> "Make UserFunction"에서 VSE 발생. | 5.0
27687 | Rec 어레이의 rec을 sort()하면 'compareValues not defined for this type' VSE 발생. | 5.0
27729 | VSE. 프로그램이 일시 정지 상태이고 팝업 패널이 나타난 상태에서 F1을 누르면 팝업 패널은 selectList를 인식할 수 없습니다. | 5.0
27799 | 글로벌-스코프 DeclVar를 가진 서브-UO를 가진 UO를 삭제하면 VSE 발생. | 4.0
27683 | DeclVar 글로벌 스코프를 가진 서브-UO를 가진 UO를 free한 상태로 놓고 veerun이 빠져나올 때 VSE 발생. | 4.0
28411 | IODevCreate.m 파일에서의 메모리 누출. | 4.0
27544 | 호스트 이름이 문자가 아닌 숫자로 시작된 경우에 Veesm은 연결되지 않음 | 3.0
27573 | 열고 OK를 전송하지 않는 한, EnabledIf 표현식(다큐먼트에서 설명한 대로)에서 Sequencer 변수 "thisTest"를 사용할 수 없음. | 3.0
27608 | 에러 코드 950-999를 가진 Raise Error에서 VSE 발생. VSE가 아닌 사소한 에러 "don't do this"를 주어야 합니다. | 3.0

VSE: VEE Serious Error


HC_BrowserCall

현재 선택된 함수에 대한 Call 오브젝트를 생성하고, 프로그램 컨텍스트에 Call 오브젝트를 배치합니다. 이 템플릿은 원하는 대로 편집할 수 있습니다.


HC_BrowserFormula

현재 선택된 함수나 연산자에 대한 Formula 오브젝트를 생성하고, 프로그램 컨텍스트에 Formula 오브젝트를 배치합니다. 이 템플릿은 원하는 대로 편집할 수 있습니다.


HC_BrowserGet

현재 선택된 멤버(속성)의 값을 가져오기 위한 Formula 오브젝트를 생성하고, 프로그램 컨텍스트에 Formula 오브젝트를 배치합니다. 이 템플릿은 원하는 대로 편집할 수 있습니다.


HC_BrowserHelp

현재 선택된 함수나 오브젝트에 대한 도움말을 디스플레이 합니다. (브라우저에 대한 도움말이 아닙니다.)


HC_BrowserSelectArea

이 브라우저는 계층구조에 의해 함수나 오브젝트를 표시합니다. 왼쪽영역에서는 대분류를, 중간에 있는 영역에서는 중분류를, 오른쪽영역에서는 특정 함수나 오브젝트를 선택합니다. 그리고 Create... 버튼중의 하나를 클릭(선택항목을 더블클릭)하여 VEE 오브젝트를 생성합니다. 프로그램 컨텍스트에 배치하고, 원하는 대로 편집합니다.


HC_BrowserSet

현재 선택된 멤버(속성)의 값을 설정하기 위한 Formula 오브젝트를 생성하고, 프로그램 컨텍스트에 Formula 오브젝트를 배치합니다. 이 템플릿은 원하는 대로 편집할 수 있습니다.


HC_FindAllMatches

체크 박스가 체크되어 있으면, 모든 매칭 상태가 각 오브젝트로 전달됩니다. 디폴트 값은 Off이며, 각 오브젝트에 대한 첫 번째 매칭만 전달됩니다.


HC_FindMatchCase

체크 박스가 체크되어 있으면, Find 라인에 있는 대소문자까지 정확한 매칭을 검색합니다. 디폴트 값은 Off이며, 대소문자를 동일하게 처리합니다.


HC_FindNested

체크 박스가 체크되어 있으면(디폴트), 검색은 네스팅된 UserObject의 모든 레벨에서 이루어집니다. 만약 체크를 하지 않으면, 현재의 레벨에서만 검색이 이루어집니다.


HC_FindObjectType

Object Type 속성은 Value 리스트에서 검색하고자 하는 오브젝트 타입을 선택하여 설정합니다. 디폴트 값은 All Type입니다. 검색에 제한을 두기 위해서는 Value 버튼을 클릭하고, 원하는 타입을 체크하거나 체크를 해제하십시오. 필요시 Select All 또는 Clear All 버튼을 사용하십시오.


HC_FindOtherProperty

Property 버튼은 다양한 오브젝트 속성을 지정하여 검색할 때 사용합니다. Property를 선택하고 나면, Value 항목에서 원하는 조전을 선택하십시오. 예를 들어, Breakpoint/On를 선택한 경우에는, 브레이크포인트가 활성화된 오브젝트만을 검색합니다.


HC_FindReset

Reset 버튼은 디폴트로 설정된 Property/Value 리스트를 설정합니다. 디폴트 값은 검색 제한 조건이 없는 모든 오브젝트를 검색하도록 합니다.


HC_FindSearchIn

이 항목은 검색영역을 지정합니다. 디폴트 값은 Entire Program입니다. 만약 검색영역에 제한을 두고 싶다면, Program Explorer 창에서 UserFunction 또는 UserObject 같은 특정한 컨텍스트에서 마우스 오른쪽 버튼을 클릭하여 Find 대화상자를 엽니다.


HC_FindShowBegin

이 박스가 체크되어 있으면, 검색하고자 하는 텍스트로 시작하는 오브젝트가 검색되었을 때 매칭 결과를 디스플레이 합니다.


HC_FindShowContain

이 박스가 체크되어 있으면, 검색하고자 하는 텍스트를 포함하는 오브젝트가 검색되었을 때 매칭 결과를 디스플레이 합니다.


HC_FindShowEnd

이 박스가 체크되어 있으면, 검색하고자 하는 텍스트는 마지막에 있는 오브젝트가 검색되었을 때 매칭 결과를 디스플레이 합니다.


HC_FindShowExact

이 박스가 체크되어 있으면, 검색하고자 하는 텍스트의 전체 필드가 매칭되어야 합니다.


HC_FindTarget

VEE 프로그램에서 찾고자 하는 텍스트 스트링을 입력합니다. 검색어를 입력하지 않는 경우에는 모든 텍스트가 매칭되었다고 검색결과를 디스플레이 합니다.


HC_IconAddToPanel

Add To Panel 버튼은 프로그램의 패널뷰로 선택한 오브젝트를 배치합니다. 만약 패널뷰가 생성되어 있지 않은 경우에는 패널뷰가 생성됩니다. 패널은 현재의 컨텍스트와 관련되며, 네스팅 될 수 있습니다.


HC_IconBreakpoint

Toggle Breakpoint 버튼은 선택한 오브젝트에서 브레이크포인트를 설정하거나 해제할 수 있습니다. 오브젝트의 브레이크포인트는 선택한 오브젝트를 실행하기 직전에 일시 정지합니다. 브레이크포인트는 오브젝트 메뉴의 속성창을 통해서도 사용할 수 있습니다.


HC_IconCallStack

Call Stack 버튼은 현재 일시 정지된 UserObject 또는 UserFunction를 찾기 위하여 UserObjects 또는 UserFunctions을 계층구조로 디스플레이하여 디버깅하는데 사용합니다. Call Stack 대화상자에 있는 항목을 클릭하여 VEE 작업영역에 있는 UserObject 또는 UserFunction을 엽니다.


HC_IconCopy

Copy 버튼은 Paste 버퍼와 윈도우 클립보드에 있는 선택된 오브젝트의 복사본을 배치합니다.


HC_IconCut

Cut 버튼은 선택한 오브젝트를 삭제하고, Paste 버퍼와 윈도우 클립보드에 저장합니다.


HC_IconDefaultPrefs

Default Preferences 버튼은 Default Preferences 대화상자를 제공합니다. 이 대화상자는 VEE 설정을 사용자가 다양하게 수정할 수 있도록 6개의 탭을 제공합니다.


HC_IconDelLine

Delete Line 버튼은 Delete Line 커서를 제공하며, 삭제하고자 하는 라인을 클릭하여삭제합니다. (단축키 Ctrl-Shift-클릭을 실행하면 라인을 더욱 간단히 삭제할 수 있습니다.)


HC_IconFind

Find 버튼은 VEE 프로그램에서 텍스트 스트링이나 오브젝트 속성을 찾기 위한 대화상자를 제공합니다. Match Case 또는 Object Type과 같은 다양한 검색 속성은 검색에 제한을 주는 조건으로 사용됩니다. 검색의 영역을 제한하기 위해서는 Program Explorer 창에서 특정한 컨텍스트를 클릭하고 마우스 오른쪽 버튼을 클릭하여 나타나는 Find 항목을 사용하십시오.


HC_IconFindResults

Find Results 버튼은 가장 최근에 Find로 검색한 결과를 디스플레이 합니다. 컬럼의 헤더를 클릭하여 컬럼의 정렬순서를 변경할 수 있습니다.


HC_IconFuncBrowser

Function & Object Browser 버튼은 Function & Object Browser 대화상자를 제공합니다. 이 브라우저는 다양한 수학 연산자, 오브젝트 및 속성들을 제공합니다.


HC_IconInstrMgr

Instrument Manager 버튼은 Instrument Manager 대화상자를 제공합니다. 이 대화상자는 계측기 트랜잭션과 드라이버 같은 I/O 리소스의 수정, 열람 또는 생성하는 기능을 제공합니다.


HC_IconNew

New 버튼은 VEE 작업공간을 초기화 합니다. 만약 현재 프로그램에서 저장되지 않은 변경내용이 있을 경우에는, 저장 여부를 묻는 대화상자가 나타납니다.


HC_IconOpen

Open 버튼은 프로그램 파일을 VEE 작업영역에 로딩하고, 현재의 프로그램을 대체합니다. 현재의 프로그램에서 저장이 안된 변경 부분이 있다면 저장여부를 묻는 대화상자가 나타납니다.


HC_IconPaste

Paste 버튼은 붙여넣기 버퍼에 있는 복사본을 VEE 작업영역에 배치합니다. 잘못하여 잘라낸 오브젝트를 붙여넣을 수 있으며, 붙여넣은 오브젝트는 복구됩니다.


HC_IconPause

Pause 버튼은 모든 프로그램 쓰레드의 실행을 임시로 정지시킵니다. 프로그램이 일시 정지 상태 있다면, Step 또는 Run/Resume 키를 사용하여 일시 정지된 지점부터 프로그램을 다시 실행할 수 있습니다.


HC_IconPrint

Print Screen 버튼은 VEE 윈도우에 있는 내용을 프린터로 전송합니다. 프린터를 설정하기 위해서는 File [image] Print Screen를 사용하십시오.


HC_IconProfiler

Profiler 버튼은 Profiler 대화상자를 제공합니다. Profiler는 UserObject 및 UserFunction의 실행시간에 대한 비교 정보를 제공합니다.


HC_IconProgExplorer

Program Explorer 버튼은 Program Explorer 창의 보기/숨기기 기능을 제공합니다. Program Explorer 창은 현재 작성중인 VEE 프로그램의 계층구조를 보여줍니다.


HC_IconRun

Run 버튼은 프로그램에 있는 모든 쓰레드들의 실행을 시작합니다. 프로그램이 다수의 쓰레드를 가지고 있을 경우에, 쓰레드들 중에서 단 하나의 쓰레드를 실행하고 싶다면 Run 버튼 대신에 Start 오브젝트를 사용합니다.


HC_IconRunState

이 영역은 프로그램의 실행 상태를 디스플레이합니다. 인디케이터들은 다음과 같습니다.:

Blank Ready (stopped)
Green Arrow Running
Yellow Bars Paused
Red Bars Error


HC_IconSave

Save 버튼은 현재의 프로그램을 사전에 지정했던 파일이름에 저장합니다. Save는 VEE 윈도우 타이틀바에 표시된 파일이름을 사용합니다. 만약 이것이 이전에 저장하지 않았던 새로운 프로그램 이라면, 파일이름의 선택을 위한 대화상자가 나타납니다. 파일이름을 변경하기 위해서는 File [image] Save As를 사용합니다.


HC_IconShowData

Show Data Flow 버튼은 디버깅을 목적으로 사용되며, 프로그램을 통해서 얻어지는 데이터의 흐름을 시각적으로 표시합니다. 작은 사각박스로 표시되는 데이터 마커의 속도는 Default Preferences [image] General 탭에 있는 Debug 영역에서 설정할 수 있습니다.


HC_IconShowExec

Show Execution Flow 버튼은 프로그램이 실행중일 때 현재 실행되는 오브젝트를 하이라이트하여 디버깅할 목적으로 사용됩니다. 프로그램이 일시 정지 또는 에러 상태에서는, Show Execution Flow 는 이미 실행된 모든 오브젝트를 하이라이트 합니다.


HC_IconStepIn

Step Into 버튼은 한번에 하나의 오브젝트를 실행하여 프로그램을 디버깅할 목적으로 사용합니다. UserObject, 로컬 UserFunction 또는 임포팅된 UserFunction을 만나면, VEE는 디테일뷰로 전환하고 화면에 있는 각 오브젝트를 하나씩 실행합니다.


HC_IconStepOut

Step Out 버튼은 한번에 하나의 오브젝트를 실행하여 프로그램을 디버깅할 목적으로 사용합니다. 실행이 UserObject 또는 UserFunction내에 있으면, VEE는 UserObject 또는 UserFunction에 있는 모든 오브젝트의 실행을 완료합니다.


HC_IconStepOver

Step Over 버튼은 한번에 하나의 오브젝트를 실행하여 프로그램을 디버깅할 목적으로 사용합니다. UserObject 또는 UserFunction을 만나면, 오브젝트 전체를 한번에 실행하고 디테일뷰를 열지 않습니다.


HC_IconStop

Stop 버튼은 모든 프로그램 쓰레드를 정지하고 열린 파일을 닫습니다. 프로그램이 정지상태에 있다면, Step 또는 Run/Resume을 눌러 프로그램을 처음부터 다시 실행합니다.


HC_IconViewVars

View Variables 버튼은 현재 정의된 모든 변수의 리스트를 디스플레이 합니다. 변수 이름을 더블 클릭하여 변수의 종류, 형태 또는 데이터 값과 같은 세부내용을 표시합니다.


HC_InstrMgrDlgAdd

Add 버튼을 클릭하여 I/O configuration에 계측기를 추가합니다. 수동으로 하는Add 동작은 Find Instruments 버튼에 의해 찾을 수 없었던 계측기를 추가하는데 필요합니다. 예를 들어, RS-232 계측기 또는 LAN 게이트웨이를 통해 연결된 계측기. (이와 같은 인터페이스와 관련된 계측기를 추가할 때 인터페이스 엔트리는 자동으로 추가됩니다.)


HC_InstrMgrDlgComponent

Component Driver 버튼은 현재 선택된 계측기를 위한 Component Driver 오브젝트를 생성할 때 클릭합니다. (Component Driver는 계측기의 Panel Driver에 연결할 때 효율적입니다.)


HC_InstrMgrDlgConfigDrivers

Configure Drivers 버튼은 선택한 계측기를 인식하고, 사용 가능한 VXIplug&play 와 Panel Drivers를 설정합니다. (단지, IEEE 488.2, 대부분의 VXI, 인식된 계측기.)


HC_InstrMgrDlgDirectIO

Direct I/O 버튼은 현재 선택한 계측기를 위한 Direct I/O 오브젝트를 생성하기 위해 클릭합니다. (Direct I/O 오브젝트는 계측기와의 low-level transactions 을 전송할 수 있습니다.)


HC_InstrMgrDlgFindInstr

최상위에 있는 루트 노드를 선택하고, 가능한 인터페이스와 계측기를 찾기 위하여 Find Instruments 버튼을 클릭합니다. 지정한 인터페이스가 선택되면, 이 버튼을 클릭하여 선택한 인터페이스에 연결된 모든 계측기를 찾기 위하여 이 버튼을 클릭합니다. Find Instruments 버튼에 의해 수행되는 정확한 동작은 Settings 대화상자에 의해 컨트롤 됩니다.


HC_InstrMgrDlgIVICOM

Click the IVI-COM button to create an IVI-COM object for the instrument currently selected. (If there is no IVI-COM driver for the instrument, this button remains grayed out.)


HC_InstrMgrDlgLoadSampls

Launches a new VEE with the sample file loaded. Since the correct instrument address is already configured for the instrument you selected, all you have to do is press Run.


HC_InstrMgrDlgNidaq

현재 선택된 계측기를 위한 NI 오브젝트를 생성하기 위하여 NI 버튼을 클릭합니다. 이것은 NI-DMM, NI-SWITCH, NI-FGEN, NI-DAQ, NI-SCOPE 또는 NI-DAQmx이 될 수도 있습니다.


HC_InstrMgrDlgOK

내부 캐쉬에 계측기 설정을 저장하고 Instrument Manager를 닫기 위하여 OK 버튼을 클릭합니다. 프로그램에서 현재의 설정을 사용할 수 있으나, 아직 컴퓨터 디스크에 저장되지는 않았습니다..


HC_InstrMgrDlgPanel

현재 선택된 계측기를 위한 VEE Panel Driver 오브젝트를 생성하기 위하여 Panel Driver 버튼을 클릭합니다. (Panel Driver는 계측기의 프론트 패널에 있는 모든 그래픽 시뮬레이션 항목을 제공합니다.)


HC_InstrMgrDlgPnP

현재 선택된 계측기를 위한 VXIplug&play driver 오브젝트를 생성하기 위하여 Plug&play Driver 버튼을 클릭합니다. (VXIplug&play driver는 VISA에 근거한 산업표준 API입니다.)


HC_InstrMgrDlgPrint

Print 버튼은 표준으로 제공되는 윈도우 인쇄 대화상자를 표시합니다. Instrument Manager는 Instrument List에 있는 모든 트리 구조를 비트맵 덤프화면으로 인쇄합니다.


HC_InstrMgrDlgPropertiesInstr

현재 선택한 계측기의 I/O관련 속성을 디스플레이 하거나 수정하기 위하여 (Instrument) Properties 버튼을 클릭합니다. 인터페이스 타입은 가능한 인터페이스 관련 속성을 설정합니다. 예를 들어, RS-232 계측기는 Baud rate를 설정할 수 있는 속성 필드를 제공하고, 반면에 GPIB 계측기는 버스 어드레스를 설정할 수 있는 속성필드를 제공합니다.


HC_InstrMgrDlgPropertiesIntf

현재 선택한 인터페이스에 대한 세부적인 내용을 디스플레이하기 위하여 (Interface) Properties 버튼을 클릭합니다.

VEE는 인터페이스의 하드웨어 특성을 변경할 수는 없습니다. 또한 운영체제나 I/O 설정 유틸리티 프로그램으로 설정한 내용도 변경할 수 없습니다. 만약 인터페이스 속성 필드에 다른 값을 입력할 경우에는, 설정된 계측기와 정확히 일치하는 값을 입력해야 합니다.


HC_InstrMgrDlgRemoveInstr

I/O configuration에 있는 계측기 항목을 제거하기 위하여 Remove 버튼을 클릭합니다. (인터페이스 항목은 관련된 모든 계측기가 제거될 때 자동으로 제거됩니다.)


HC_InstrMgrDlgRemoveIntf

I/O configuration에 있는 계측기 항목을 제거하기 위하여 Remove 버튼을 클릭합니다. (인터페이스 항목은 관련된 모든 계측기가 제거될 때 자동으로 제거됩니다.)


HC_InstrMgrDlgSave

계측기 설정을 컴퓨터 디스크에 저장하고 Instrument Manager 대화상자를 닫기 위해 Save 버튼을 클릭합니다. 이것은 vee.io 파일에 현재의 설정을 덮어씌웁니다.

계측기 설정이 프로그램에 임베딩 되어 있다면, Instrument Manager 대화상자에 있는 Save 버튼은 필요치 않습니다. 왜냐하면, 프로그램이 저장될 때 임베딩된 설정이 저장되기 때문입니다.


HC_InstrMgrDlgSettings

Settings 대화상자는 계측기를 찾는 동안에 수행하는 몇가지 행위를 컨트롤 합니다.

Detect only를 선택하고, Find Instruments 버튼을 누르면 단순하게 각 버스 어드레스로 연결된 계측기를 검색합니다. Detect, identify, and configure... 을 선택하고, Find Instruments 버튼을 누르면, 검색된 계측기를 인식하고 드라이버 설정을 수행합니다.

Ask before sending... 을 체크하면, 각 계측기를 인식하기 위하여 *IDN?을 전송하기 전에 확인하는 대화상자가 디스플레이 됩니다. 체크가 안된 경우에는, 사용자의 확인 없이 모든 계측기로 *IDN?을 전송합니다. 계측기가 오래되어 IEEE-488.2 계측기가 아닌 경우에는 확인하는 대화상자가 필요할 수도 있습니다.


HC_InstrMgrDlgSettingsFind

ss


HC_InstrMgrDlgSettingsId

Ask before sending... 을 체크하면, 각 계측기를 인식하기 위하여 *IDN?을 전송하기 전에 확인하는 대화상자가 디스플레이 됩니다. 체크가 안된 경우에는, 사용자의 확인없이 모든 계측기로 *IDN?을 전송합니다. 계측기가 오래되어 IEEE-488.2 계측기가 아닌 경우에는 확인하는 대화상자가 필요할 수도 있습니다.


HC_PrefsAutoLineRoute

Auto Line Routing을 체크하면, 오브젝트가 연결되거나, 이동하거나, 크기가 재조정되면 오브젝트에 연결된 라인이 자동으로 재 조정됩니다. Auto Line Routing은 수평선과 수직선만을 사용하며, 메뉴에서 Edit [image] Clean Up Lines과 같은 동작을 합니다. Auto Line Routing을 체크하지 않으면, 라인은 핀에서 핀으로 직선으로 연결되고, 때로는 비스듬히 연결됩니다.


HC_PrefsBinaryRunTime

Binary RunTime File Format을 체크하면, 향상된 보안기능과 좀더 작은 파일사이즈를 제공하는 바이너리 포맷을 사용하여 .vxe 파일이 저장됩니다. 이 박스를 체크하지 않으면, ASCII 포맷(.vee 파일과 유사한 포맷)으로 .vxe 파일이 저장됩니다.


HC_PrefsCheckAddrs

계측기 체크가 활성화되어 있으면, VEE는 계측기에 접근이 가능한지를 확인하기 위하여 prerun하는 동안에 설정된 계측기를 체크합니다. 해당 어드레스가 응답하지 않는 경우에는, 계측기의 전원을 켜거나, 다른 버스 어드레스를 선택하는 등의 조치를 취해야 합니다. 이 박스를 체크하지 않으면, 연결되지 않았거나 비정상적으로 설정된 계측기의 경우에 프로그램을 실행하면 타임아웃 에러가 발생합니다.


HC_PrefsColors

Copyright (c) 1991-2007 Agilent Technologies, Inc.

Appearance 속성 그룹에서는 VEE 프로그램에 있는 스크린 앨리먼트의 디폴트 색상을 선택할 수 있습니다.


HC_PrefsDelVars

Delete Variables at PreRun을 체크하면, 모든 변수에 저장된 값들은 각 프로그램이 실행되기 전에 삭제됩니다. 변수가 적당한 값으로 설정하지 않은 상태에서, Get Variable 오브젝트를 사용하면 에러가 발생합니다. 이 박스를 체크하지 않으면, Get Variable 오브젝트는 이전 프로그램이 실행하여 저장한 기존의 변수 값을 사용할 수 있습니다. 일부의 기존 데이터는 새로운 프로그램을 실행하기에 적당할 수도 있고 아닐 수도 있습니다.


HC_PrefsDisableDebug

Disable Debug를 체크하면, 모든 디버깅 항목이 비활성화되고 프로그램의 실행속도를 향상시킵니다.


HC_PrefsExecMode

실행모드를 선택하여 이전 버전의 VEE에서 작성된 프로그램을 사용할 수 있습니다. 실행모드는 VEE 프로그램과 함께 저장되고, Default Preferences 대화상자에서 변경할 수 있습니다.

실행모드가 현재 사용중인 버전보다 이전버전으로 설정되면, 프로그램은 새로운 VEE 기능을 사용할 수 없게 됩니다. 불가피하게 이전 버전의 모드로 프로그램을 작성해야 하는 경우를 제외하고는 최신 실행모드를 사용할 것을 권장합니다.


HC_PrefsFlowRate

Data Flow 마커가 이동하는 속도를 설정합니다. 1부터 10까지의 비율을 선택합니다. 디폴트 값은 6이고, 가장 빠른 것은 10입니다.


HC_PrefsFonts

Fonts 탭은 VEE 프로그램에서 화면에 디스플레이 되는 디폴트 폰트를 선택할 수 있도록 합니다.


HC_PrefsNumberFormat

Number 탭은 VEE 프로그램에서 디스플레이 되는 숫자에 대한 디폴트 포맷을 선택할 수 있도록 합니다.


HC_PrefsOKButton

OK 버튼을 누르면, 변경한 Default Preferences가 현재의 작업세션에만 유효하게 됩니다. VEE를 빠져 나오고 다시 시작하면, 이전의 Default Preferences(“vee.rc” 파일에 저장된)로 복원됩니다.


HC_PrefsPrintCover

Print Cover Page가 체크되면, 커버 페이지가 인쇄물의 맨 앞에 생성됩니다. Print Program 대화상자에 있는 디폴트 포맷 선택은 덮어 씌웁니다.


HC_PrefsPrintDarkness

Copyright (c) 1991-2007 Agilent Technologies, Inc.

B&W Printer Darkness 설정은 VEE 프로그램에서 각 스크린 앨리먼트에 대하여 회색의 그림자를 선택할 수 있도록 합니다. 이 회색 그림자는 흑백 프린터에서 프로그램을 인쇄할 때 사용됩니다. (Appearance Property Group에 있는 이 설정은 칼라프린터에 사용됩니다.)


HC_PrefsPrintExplorer

Print Header and Index Page를 체크하면, 인쇄되는 각 페이지는 페이지 번호와 다른 헤더 정보가 인쇄되고, 인덱스가 인쇄물의 마지막에 생성됩니다. Print Program 대화상자에 있는 디폴트 포맷 선택은 덮어 씌웁니다.


HC_PrefsPrintHeaderIdx

When Print Header and Index Page is checked, each printout page is given a page number and other header information, and an Index is generated at the end of the printout. This default format choice can be overridden in the Print Program dialog.


HC_PrefsPrintIOConfig

Print I/O Configuration을 체크하면, 인쇄물은 I/O 설정(Instrument Manager에서)에 대한 확장된 트리 뷰를 포함합니다. Print Program 대화상자에 있는 디폴트 포맷 선택은 덮어 씌웁니다.


HC_PrefsPrintMag

VEE 프로그램을 인쇄할 때 사용하는 인쇄비율을 지정합니다. 숫자가 작으면 작은 이미지를 생성합니다. 지정하는 숫자는 일부 프린터 드라이버에 의해 반올림 될 수도 있습니다.


HC_PrefsResetButton

Reset을 누르면, Default Preferences를 변경한 내용을 무시하고, 초기의 Default Preferences(“vee.rc” 파일에 저장된)로 복원됩니다.


HC_PrefsSaveButton

Save를 누르면, Default Preferences를 변경한 내용이 현재의 작업 세션에 적용되고, "vee.rc" 파일에 저장됩니다. VEE 빠져 나오고 다시 시작하면, 새로 저장한 Default Preferences가 사용됩니다. ("veerc" 파일의 정확한 경로는 시스템에 달려 있습니다.)


HC_PrefsSpacing

Edit [image] Align...을 실행할 때 오브젝트 사이에 배치될 픽셀수를 지정합니다. Alignment Spacing 값은 Space Equally 항목이 인에이블 된 경우에만 사용됩니다.


HC_PrefsTrigMode

Trig Mode 항목은 디폴트 삼각함수 단위를 선택합니다. 라디안은 VEE의 본래(가장 빠른) 단위입니다.


HC_PrefsWebEnable

Enable Server를 체크하면, VEE에서 기본 제공하는 웹서버가 활성화 됩니다. 이 웹서버는 원격에서 웹을 통하여 VEE프로그램을 모니터링할 수 있도록 합니다.


HC_PrefsWebLogFile

http.log 파일의 경로를 지정합니다. 이 파일은 웹서버에 의해 처리된 모든 요구사항을 기록하고 저장 한계가 없습니다.


HC_PrefsWebPortNum

VEE 웹서버에서 사용하는 포트 번호를 지정합니다. 이 포트 번호는 컴퓨터의 services 파일에 있어야 하고 다른 웹서버에서는 사용할 수 없습니다.


HC_PrefsWebRootDir

리모트 웹서버에서 사용할 수 있는 로컬 디렉토리를 지정합니다. VEE는 홈페이지와 동일하게 Root Directory에 있는 index.html을 사용합니다. 디폴트 홈페이지는 ~installDir/www/index.html로 설치됩니다. 이 파일은 수정하거나 다른 Root Directory로 복사할 수 있습니다.


HC_PrefsWebTimeout

웹서버가 VEE의 응답을 기다리는 최대시간(초단위)을 지정합니다.


HC_PrintPrgCover

이 박스가 체크되면, 표지가 인쇄물의 시작 부분에 생성됩니다.


HC_PrintPrgExplorer

이 박스가 체크되면, Program Explorer 윈도우가 가지고 있는 개괄적인 정보를 포함하여 인쇄합니다.


HC_PrintPrgHeaderIdx

이 박스가 체크되면, 인쇄되는 각 페이지는 페이지 번호와 다른 헤더 정보가 인쇄되고, 인덱스가 인쇄물의 마지막에 생성됩니다.


HC_PrintPrgIOConfig

이 박스가 체크되면, 인쇄물은 I/O 설정(Instrument Manager에서)에 대한 확장된 트리 뷰를 포함합니다.


HC_PrintPrgNested

이 박스가 체크되면, 인쇄물은 네스팅된 모든 UserObjects의 오픈뷰를 포함합니다.


HC_PrintPrgObjects

이 박스가 체크되면, 인쇄물은 프로그램에 있는 각 오브젝트의 디테일뷰를 포함합니다. 그러나 가장 간단한 오브젝트는 오픈뷰 형식으로 인쇄됩니다.


HC_ProfilerClear

Clear 버튼은 모든 Profiler 데이터 값을 0(zero)으로 리셋합니다.


HC_ProfilerCommas

이 박스를 체크하면, 데이터는 다양한 Profiler 데이터 필드 사이에서 콤마를 구분문자(분리기호)로 사용하여 데이터 파일에 저장됩니다. 콤마 구분문자는 데이터를 스프레드시트 같은 다른 어플리케이션으로 임포트하는 것을 용이하게 합니다. 이 박스가 체크되지 않으면, 데이터 필드는 복수의 스페이스를 사용하여 정렬됩니다.


HC_ProfilerFileName

이 필드는 Profiler 데이터가 저장될 파일 이름을 지정합니다. 이 필드를 클릭하면 Save data filename 대화상자가 나타납니다.


HC_ProfilerNumDigits

이 필드는 소수점의 오른쪽에 표시하는 자리수를 지정합니다.


HC_ProfilerOnlyExecuted

이 박스가 체크되면, Profiler 데이터는 단지 실행된 UserObjects 와 UserFunctions에 대해서만 표시됩니다.


HC_ProfilerOptions

Options 버튼을 누르면 Profiler Options 대화상자를 표시합니다. 이 옵션은 디스플레이 되고 저장되는 데이터의 포맷을 커스터마이징 합니다.


HC_ProfilerOverwrite

이 박스가 체크되면, Save 버튼을 누를 때마다 이전에 Profiler 데이터 파일에 저장된 데이터를 덮어씌웁니다. 이 박스가 체크되지 않으면, Save 버튼을 누를 때마다 기존의 데이터에 추가합니다.


HC_ProfilerRefresh

Profiler가 실행될 때마다 프로파일 데이터가 저장되지만, 대화상자에 디스플레이 되는 데이터는 자동으로 업데이트 되지는 않습니다. Profiler가 최근의 프로파일 데이터를 디스플레이 하기 위해서는 Refresh 버튼을 클릭해야 합니다.


HC_ProfilerResults

Profiler가 시작되면, Profiler는 각 UserObject와 UserFunction의 실행시간에 대한 비교 정보를 제공합니다. 컬럼 라벨(Name 또는 Time 같은)을 클릭하면 필드상에 정렬된 Profiler 데이터를 디스플레이 합니다. 다시 클릭하면 역으로 정렬됩니다. Name 필드에 표시된 UserObject 또는 UserFunction을 더블 클릭하면, 오브젝트의 뷰가 VEE 작업공간에서 열립니다.


HC_ProfilerSave

Save 버튼은 Profiler 데이터를 Options 버튼을 사용하여 지정하는 파일 이름에 저장합니다.


HC_ProfilerStart

Start Profiling 버튼은 프로파일을 시작하거나 중지하는 토글 함수입니다.


HC_SaveAsDlgColorsFonts

프로그램과 함께 색상과 폰트를 저장 Default Preferences에서 선택한 모든 디폴트 색상과 폰트를 프로그램에 저장합니다. 이것은 누가 프로그램을 열든지 지정한 디폴트 색상과 폰트를 사용하게 됩니다. 이 옵션을 선택하지 않으면, 프로그램에서 설정한 색상과 폰트만 프로그램 파일에 저장됩니다. 이것은 프로그램을 사용하는 다른 사용자들에게 사용자가 지정한 디폴트 색상과 폰트를 유지하게 합니다. 기존의 프로그램이 로딩된 경우에는, 옵션은 이전에 프로그램이 설정된 방법에 따라 설정됩니다.


HC_SaveAsDlgDeviceConfig

프로그램과 함께 I/O 설정 저장 veeio I/O 설정 정보를 프로그램과 함께 저장하지만, veeio 리소스 파일에는 저장하지는 않습니다. 설정 정보는 Instrument Manager에서 지정됩니다. 이 옵션을 선택하지 않는 경우에는, 현재 프로그램의 설정 정보가 veeio 파일에 저장됩니다. 기존의 프로그램이 로딩되는 경우에는, 이 옵션은 이전에 프로그램이 저장된 방법에 따라 설정됩니다.


HC_StatusExecMode

이 필드는 현재 로딩된 VEE 프로그램의 실행 모드를 표시합니다. 실행 모드는 새로운 버전의 VEE에서 완벽한 호환성을 유지하며 이전 버전의 VEE 프로그램을 실행할 수 있도록 합니다. 사용할 수 있는 모드는 VEE3, VEE4등부터 현재의 VEE 버전까지 입니다. 실행 모드는 VEE 프로그램과 함께 저장되고 Default Preferences 대화상자에서 변경할 수 있습니다.


HC_StatusModified

이 필드는 현재 로딩된 프로그램의 변경(수정)된 내용이 저장되지 않은 경우를 나타냅니다. 박스가 “회색”이면, 저장되지 않은 변경된 내용이 없다는 것입니다.


HC_StatusMsg

VEE 윈도우의 하단에 있는 라인은 상태 메시지 영역입니다. 이 상태 라인은 현재의 실행 행위에 따라 다양한 타입의 정보를 표시합니다. 예를 들어, 프로그램의 실행 상태, 에러 메시지, 이동된 오브젝트의 픽셀 위치 및 유용한 힌트.


HC_StatusProfiler

이 필드는 프로파일 기능이 인에이블된 것을 표시합니다. 박스가 “회색”이면, 프로파일 하는것이 중지됩니다.


HC_StatusWebServer

이 필드는 VEE 웹서버가 인에이블된 것을 표시합니다. 박스가 “회색”이면, 웹서버는 디스에이블 됩니다. VEE 웹서버는 Default Preferences 대화상자에서 컨트롤됩니다.


GPIB 계측기의 속성

다음 속성은 GPIB 인터페이스를 통해서 연결된 계측기에 사용할 수 있습니다.

속성 데이터 종류 설명

address | Int16 | VEE 형식으로 표시한 계측기의 주소. 예: 723
enableEOI | Text | Write 트랜잭션의 마지막 바이트에 있는 EOI 인에이블. 0=enable;0이 아니면=disable. 디폴트값은 disable입니다.
eolSequence | Text | Write 트랜잭션의 마지막에 전송되는 문자. 디폴트 값은 new-line 문자입니다.
hostname | Text | 리모트 서버의 호스트이름 또는 IP 어드레스 (원격컴퓨터가 있는 경우)
interfaceType | Text | GPIB계측기에 대해서 “GPIB”를 출력합니다.
pnpResource | Text | 계측기의 VISA 어드레스. 예: GPIB0::23::INSTR
readTerm | Int32 | Read 트랜잭션을 종료하는 문자. 디폴트 값은 new-line 문자입니다.
timeout | Real64 | 초 단위의 트랜잭션 타임아웃. 디폴트 값은 5초입니다.

오브젝트 위치

Device [image] Function & Object Browser [image] Instruments

관련정보

Instrument Manager 대화상자, GPIO 계측기의 속성, Serial 계측기의 속성, VXI 계측기 속성.


GPIO 계측기의 속성

다음 속성은 GPIO 인터페이스를 통해서 연결된 계측기에 사용할 수 있습니다.

속성 데이터 종류 설명

address | Int32 | VEE 형식으로 표시한 계측기의 주소. 예: 12
eolSequence | Text | Write 트랜잭션의 마지막에 전송되는 문자. 디폴트 값은 new-line 문자입니다.
hostname | Text | 리모트 서버의 호스트이름 또는 IP 어드레스 (원격컴퓨터가 있는 경우)
interfaceType | Text | GPIO계측기에 대해서 “GPIO”를 출력합니다.
pnpResource | Text | GPIO에서는 사용할 수 없음.
readTerm | Int32 | Read 트랜잭션을 종료하는 문자. 디폴트 값은 new-line 문자입니다.
timeout | Real64 | 초 단위의 트랜잭션 타임아웃. 디폴트 값은 5초입니다.

오브젝트위치

Device [image] Function & Object Browser [image] Instruments

관련정보

Instrument Manager 대화상자, GPIB 계측기의 속성, Serial 계측기의 속성, VXI 계측기 속성.


Serial 계측기의 속성

다음 속성은 serial (RS-232) 인터페이스를 통해서 연결된 계측기에 사용할 수 있습니다.

속성 데이터 종류 설명

address | Int32 | VEE 형식으로 표시한 계측기의 주소. 예: 9
baudRate | Int32 | RS-232 인터페이스의 Baud rate. 디폴트 값은 9600입니다.
charSize | Int32 | 문자 프레임당 데이터 비트. 5부터 8까지 사용. 디폴트 값은 8입니다.
eolSequence | Text | Write 트랜잭션의 마지막에 전송되는 문자. 디폴트 값은 new-line 문자입니다.
handshake | Text | 현재의 연결을 위한 파싱 메카니즘. None, XonXoff, RtsCts, 및 DtrDsr이 있음. 디폴트 값은 None입니다.
hostname | Text | 리모트 서버의 호스트이름 또는 IP 어드레스 (원격컴퓨터가 있는 경우)
interfaceType | Text | RS-232 계측기에 대해서 “Serial”를 출력합니다.
parity | Text | 패리티 비트의 생성/확인. None, Even, Odd, Mark, 및Space가 있음. 디폴트 값은 none입니다.
pnpResource | Text | VISA 형식으로 표시한 계측기 I/O 주소. 예: ASRL0::INSTR.
readTerm | Int32 | Read 트랜잭션을 종료하는 문자. 디폴트 값은 new-line 문자입니다.
timeout | Real64 | 초 단위의 트랜잭션 타임아웃. 디폴트 값은 5초입니다.

오브젝트 위치

Device [image] Function & Object Browser [image] Instruments

관련정보

Instrument Manager 대화상자, GPIO 계측기의 속성, GPIB 계측기의 속성, VXI 계측기 속성.


TCPIP 계측기의 속성

다음 속성은 TCPIP 인터페이스를 통해서 연결된 계측기에 사용할 수 있습니다.

속성 데이터 종류 설명

eolSequence | Text | Write 트랜잭션의 마지막에 전송되는 문자. 디폴트 값은 new-line 문자입니다.
hostname | Text | 리모트 서버의 호스트이름 또는 IP 어드레스 (원격컴퓨터가 있는 경우)
interfaceType | Text | TCPIP계측기에 대해서 “TCPIP”를 출력합니다.
readTerm | Int32 | Read 트랜잭션을 종료하는 문자. 디폴트 값은 new-line 문자입니다.
timeout | Real64 | 초 단위의 트랜잭션 타임아웃. 디폴트 값은 5초입니다.
visaAddress | Text | 계측기의 VISA 어드레스. 예, TCPIP::[Instrument IP Address]::inst0::INSTR

오브젝트 위치

Device [image] Function & Object Browser [image] Instruments

관련정보

Instrument Manager 대화상자, GPIO 계측기의 속성, Serial 계측기의 속성, VXI 계측기 속성.


USB 계측기의 프로퍼티

다음 속성은 USB 인터페이스를 통해서 연결된 계측기에 사용할 수 있습니다.

속성 데이터 종류 설명

eolSequence | Text | Write 트랜잭션의 마지막에 전송되는 문자. 디폴트 값은 new-line 문자입니다.
hostname | Text | 리모트 서버의 호스트이름 또는 IP 어드레스 (원격컴퓨터가 있는 경우)
interfaceType | Text | USB 계측기에 대해서 “USB ”를 출력합니다.
readTerm | Int32 | Read 트랜잭션을 종료하는 문자. 디폴트 값은 new-line 문자입니다.
timeout | Real64 | 초 단위의 트랜잭션 타임아웃. 디폴트 값은 5초입니다.
visaAddress | Text | 계측기의 VISA 어드레스. 예, USB0::2391::1031::123456789::0::INSTR
visaAlias | Text | 계측기용 VISA 앨리어스. visaAddress는 너무 길고 사용하기가 어색하기 때문에, 좀더 쉽게 작업하기 위하여 앨리어스가 사용됩니다.

오브젝트 위치

Device [image] Function & Object Browser [image] Instruments

관련정보

Instrument Manager 대화상자, GPIO 계측기의 속성, Serial 계측기의 속성, VXI 계측기 속성.


VXI 계측기 속성

다음 속성은 VXI 인터페이스를 통해서 연결된 계측기에 사용할 수 있습니다.

속성 데이터 종류 설명

address | Int32 | VEE 형식으로 표시한 계측기의 주소. 예: 16
enableEOI | Int16 | Write 트랜잭션의 마지막 바이트인 EOI를 인에이블. 0=enable;0이 아니면=disable. 디폴트값은 disable입니다.
eolSequence | Text | Write 트랜잭션의 마지막에 전송되는 문자. 디폴트 값은 new-line 문자입니다.
hostname | Text | 리모트 서버의 호스트이름 또는 IP 어드레스 (원격컴퓨터가 있는 경우)
interfaceType | Text | VXI 계측기에 대해서 “VXI”를 출력합니다.
pnpResource | Text | VISA 형식으로 표시한 계측기 I/O 주소. 예: VXI0::24::INSTR
readTerm | Int32 | Read 트랜잭션을 종료하는 문자. 디폴트 값은 new-line 문자입니다.
timeout | Real64 | 초 단위의 트랜잭션 타임아웃. 디폴트 값은 5초입니다.

오브젝트 위치

Device [image] Function & Object Browser [image] Instruments

관련정보

Instrument Manager 대화상자, GPIO 계측기의 속성, Serial 계측기의 속성, GPIB 계측기의 속성.


New Topic

Type topic text here.


New Topic1

Type topic text here.


No Help Topic Available

제공되는 도움말이 없습니다

이 오브젝트나 대화상자에 대한 도움말은 제공되지 않습니다.


NotOnNet

Error

This computer is not connected to the network.

Sorry for any inconvenience.


Polynomial 메뉴항목

메뉴 항목

사용법

Polynomial은 데이터와 계수에서 Real64 다항식 결과를 생성하는 다음의 오브젝트를 제공합니다. 이들 오브젝트는 poly(x,vec)로 요약됩니다.

poly(x,[a0, a1])

poly(x,[a0, a1, a2])

poly(x,[a0, a1, a2, a3])

poly(x,[a0, a1, ... aN])

L

Math [image] Polynomial

관련정보

Generate 영역, poly(x,vec).


Agilent VEE에서 사용하는 RGB 값

사용자지정 비트맵을 생성하고 색깔과 일치시킬 때(패널의 배경색과 같은 색으로 변경하는 등) RGB 값을 사용합니다.

색깔의 목록과 각 색깔에 대응하는 RGB 값은 다음과 같습니다. 이들 값은 향후 제공되는 VEE에서는 변경될 수 있습니다.

Black | r:0 | g:0 | b:0
Dark Beige | r:105 | g:95 | b:80
Darkest Gray | r:96 | g:96 | b:96
Dark Gray | r:128 | g:128 | b:128
Med Dark Gray | r:160 | g:160 | b:164
Gray | r:192 | g:192 | b:192
Med Light Gray | r:208 | g:208 | b:208
Light Gray | r:224 | g:224 | b:224
Lightest Gray | r:240 | g:240 | b:240
White | r:255 | g:255 | b:255
Darkest Red | r:121 | g:0 | b:21
Dark Red | r:128 | g:0 | b:0
Med Red | r:207 | g:14 | b:48
Warning Red | r:230 | g:30 | b:30
Red | r:255 | g:0 | b:0
Light Warning Red | r:229 | g:64 | b:93
Med Light Red | r:247 | g:102 | b:129
Light Red | r:255 | g:128 | b:128
Med Pale Red | r:253 | g:164 | b:181
Pale Red | r:255 | g:197 | b:207
Darkest Orange | r:113 | g:32 | b:0
Dark Orange | r:188 | g:55 | b:0
Med Dark Orange | r:243 | g:91 | b:27
Med Orange | r:245 | g:123 | b:73
Orange | r:255 | g:128 | b:0
Golden Orange | r:239 | g:145 | b:0
Light Orange | r:255 | g:162 | b:124
Light Golden Orange | r:246 | g:191 | b:105
Pale Orange | r:252 | g:209 | b:193
Pale Golden Orange | r:253 | g:227 | b:186
Dark Brown | r:96 | g:64 | b:64
Med Brown | r:113 | g:68 | b:0
Golden Brown | r:163 | g:105 | b:0
Dark Gold | r:149 | g:108 | b:54
Brown | r:150 | g:110 | b:75
Gold | r:176 | g:145 | b:91
Beige | r:148 | g:139 | b:123
Golden Beige | r:175 | g:160 | b:126
Light Gold | r:203 | g:182 | b:128
Light Beige | r:220 | g:211 | b:184
Darkest Yellow | r:78 | g:79 | b:0
Darkest Green Yellow | r:118 | g:121 | b:0
Dark Green Yellow | r:150 | g:150 | b:0
Med Green Yellow | r:179 | g:185 | b:0
Dark Yellow | r:192 | g:192 | b:0
Med Dark Yellow | r:213 | g:213 | b:45
Med Yellow | r:234 | g:236 | b:94
Yellow | r:255 | g:255 | b:0
Light Yellow | r:255 | g:255 | b:128
Pale Yellow | r:252 | g:254 | b:185
Dark Green | r:0 | g:96 | b:0
Forest Green | r:49 | g:101 | b:1
Med Dark Green | r:0 | g:130 | b:70
Med Green | r:67 | g:142 | b:0
Green | r:0 | g:193 | b:19
Med Yellow Green | r:64 | g:229 | b:10
Yellow Green | r:128 | g:255 | b:0
Light Yellow Green | r:163 | g:242 | b:95
Light Green | r:128 | g:255 | b:128
Pale Green | r:219 | g:255 | b:184
Darkest Teal | r:0 | g:78 | b:71
Med Dark Teal | r:0 | g:107 | b:97
Dark Teal | r:0 | g:128 | b:128
Med Teal | r:0 | g:150 | b:136
Teal | r:0 | g:160 | b:160
Med Light Teal | r:0 | g:183 | b:165
Light Teal | r:0 | g:192 | b:192
Blue Gray | r:120 | g:184 | b:210
Cyan | r:0 | g:255 | b:255
Pale Cyan | r:140 | g:244 | b:234
Dark Blue | r:0 | g:0 | b:128
Med Dark Blue | r:70 | g:0 | b:240
Blue | r:0 | g:0 | b:255
Dark Sky Blue | r:51 | g:101 | b:251
Med Light Blue | r:0 | g:128 | b:255
Lavender | r:128 | g:128 | b:255
Light Blue | r:96 | g:192 | b:255
Sky Blue | r:162 | g:193 | b:254
Pale Blue | r:193 | g:206 | b:255
Light Blue Gray | r:195 | g:211 | b:219
Darkest Purple | r:80 | g:0 | b:147
Dark Purple | r:90 | g:0 | b:170
Med Purple | r:123 | g:0 | b:228
Purple | r:128 | g:0 | b:255
Violet Purple | r:146 | g:52 | b:219
Light Violet Purple | r:183 | g:96 | b:249
Med Light Purple | r:200 | g:120 | b:253
Light Purple | r:212 | g:159 | b:255
Med Pale Purple | r:227 | g:190 | b:255
Pale Purple | r:240 | g:210 | b:255
Dark Magenta | r:128 | g:0 | b:128
Dark Pink Magenta | r:181 | g:0 | b:105
Hot Pink | r:255 | g:0 | b:128
Light Pink Magenta | r:217 | g:49 | b:146
Med Magenta | r:236 | g:24 | b:200
Magenta | r:255 | g:0 | b:255
Light Magenta | r:255 | g:128 | b:255
Pink | r:255 | g:128 | b:192
Light Pink | r:243 | g:159 | b:209
Pale Pink | r:253 | g:192 | b:229


Set Last File Write Time 오브젝트

주어진 파일에 대하여 최근에 파일을 저장한 시간을 설정합니다.

오브젝트 위치

System [image] File [image] Set Last File Write Time


Tab Index 항목

패널뷰에서만 활성화 되며, Tab Index는 패널에 있는 오브젝트에 대한 탭 순서를 설정합니다.

사용법

속성창을 통해서 제공되며, Tab Index는 패널뷰에 있는 오브젝트의 탭 순서를 설정할 수 있게 합니다. 이것은 사용자가 키보드만을 가지고 있는 경우에 아주 유용합니다.

관련정보

패널뷰 네비게이션 기술

To Change Properties Programmatically

Programmatic Properties


일반적인 팁

프로그램을 개발할 때, 화면의 해상도를 배포하여 사용할 목표 시스템과 동일(또는 유사하게)하게 사용합니다. 패널뷰는 스크롤할 필요가 없는 크기의 윈도우(픽셀수 지정)로 만듭니다. 패널뷰는 목표 시스템의 화면에 맞추는 것이 필요합니다.

프로그램을 생성하기 전에 VEE 윈도우의 크기를 지정할 수 있습니다. VEE를 시작할 때, 디테일뷰의 크기를 지정하기 위하여 도스 명령어 옵션 –geometry를 사용하면 패널뷰가 생성될 때 패널뷰의 크기가 지정됩니다. 도스 명령어 옵션을 사용하는 방법은 도스 명령어 옵션을 사용하여 Agilent VEE 실행하기를 참조하십시오.

목표 시스템 타입이 복수인 경우에는, 프로그램을 개발할 때 가장 낮은 공통분모를 가지는 시스템을 사용하여 최고로 낮은 해상도(텍스트의 가독성), 실행 속도 및 사용하는 색상에 대한 느낌을 갖도록 합니다.

프로그램 개발을 마무리하기 전에 목표 시스템에서 프로그램을 테스트 하십시오.

키보드의 차이는 사용자에게 사용 지침서를 제공할 때 중요한 사항이 될 수 있습니다.

바이너리 데이터 파일은 사용하지 마십시오. 데이터 파일은 ASCII로 저장합니다.


To Create a UserFunction in a Program

프로그램에서 UserFunction 생성하기

다음 사용예는, 프로그램에서 간단한 UserFunction을 생성하고 이것을 연결하는 방법을, 단계적으로 보여 줍니다. UserFunction에서 사용된 오브젝트들은 각각의 특정한 태스크를 수행해야 합니다.

1. 메인 작업영역에 UserFunction을 추가합니다(Device [image] UserFunction). UserFunction의 편집 윈도우가 나타납니다.

2. UserFunction 작업영역에 오브젝트를 추가하고, 필요한 만큼 오브젝트들의 터미날을 연결합니다. ‘UserObject 작업영역에 오브젝트 추가하기’에서 설명한 대로 UserFunction에 오브젝트를 추가하기 위하여 동일한 방법을 사용합니다.

3. UserFunction용 입력 터미날 및 출력 터미날을 추가하고 연결합니다:

a. UserFunction의 입력 터미날 영역에 마우스 커서를 놓고 Ctrl+A를 누릅니다. 데이터 입력 터미날이 편집 윈도우의 터미날 영역에 나타납니다.

b. 편집 윈도우에서, 입력 터미날의 내부 핀을 UserFunction 내부에 있는 적절한 오브젝트에 연결합니다.

c. UserFunction의 출력 터미날 영역에 마우스 커서를 놓고 Ctrl+A를 누릅니다. 데이터 출력 터미날이 편집 윈도우의 터미날 영역에 나타납니다.

d. 편집 윈도우에서, 출력 터미날의 내부 핀을 UserFunction 내부에 있는 적절한 오브젝트에 연결합니다.

4. UserFunction의 제목을 기능설명 형식의 이름으로 변경하여 프로그램에서 이 이름을 보고 인식할 수 있도록 합니다. UserFunction 편집 윈도우의 타이틀바를 더블 클릭합니다. 속성창에서, 새로운 이름을 입력합니다. 제목은 스페이스를 포함할 수 없습니다.

5. 프로그램에 Call 오브젝트를 추가합니다. UserFunction의 편집 윈도우의 오브젝트 메뉴에서, Generate [image] Call을 클릭합니다. Call 오브젝트는 UserFunction에서 추가했던 것과 일치하게 제목과 터미날이 생성됩니다.

UserFunction의 목적에 따라, Generate 메뉴에서 다른 오브젝트들 중의 하나를 호출하여 생성할 수 있습니다.

6.Call 오브젝트에 있는 입력 터미날과 출력 터미날을 연결합니다.

7. UserFunction을 테스트하기 위하여 프로그램을 실행합니다.

다음 사용예는 UserFunction의 편집 윈도우를 가진 프로그램을 나타냅니다.

관련정보

UserFunction 패널 생성하기

프로그램에서 UserFunction 호출하기

여러 개의 오브젝트를 묵어서 하나의 UserObjet로 생성하기

UserFunction 편집하기

UserFunction

To Call a UserFunction from an Expression


레코드 반복하기

Copyright (c) 1991-2007 Agilent Technologies, Inc.


To Iterate an Array

Copyright (c) 1991-2007 Agilent Technologies, Inc.


VEE Lady 소개

VEE Lady는 Agilent VEE Pro에 있어서는 더 이상 논의할 필요가 없는 아주 신뢰할만한 전문가입니다. (VEE Answer Man조차도 어떻게 해서라도 피하려고 합니다.) VEE Lady는 냉담하고, 버릇없고, 아주 생색을 부리는 사람으로 되지만, 때로는 지독하고, 호전적이고, 뻔뻔스럽고, 아주 자만심이 강한 사람으로 부릅니다. 그녀의 VEE 관련 기술 능력은 두번째로 치더라도, VEE Lady의 외모는 사람을 돌처럼 취급하는 아주 무시무시하게 생겼습니다. VEE Lady가 배우나 승무원들이 하는 눈가리개와 특별히 실딩한 마스크를 착용하고 있지만, 어쨌든 우리는 여러분을 VEE의 여왕에게 안내해야 합니다.


환영합니다!

Agilent VEE Express 도움말에 오신 것을 환영합니다. 참고하고자 하는 주제를 찾기 위해서는, 목차 또는 색인 탭을 누르십시오.

Agilent VEE Express 8.0은 Agilent VEE Pro 8.0의 서브셋이기 때문에, Agilent VEE Pro 8.0과 동일한 온라인 도움말을 제공합니다. 온라인 도움말에서 참고하고자 하는 일부 페이지가 Agilent VEE Express에서는 제공되지 않을 수도 있습니다. 2개의 제품에 대한 차이점은 VEE Express 8.0에 대하여 을 참조 하십시오.

Agilent VEE Pro 8.0 New 기능

8.0버전에서 수정된 에러들

Microsoft®, MS-DOS®, Windows®, MS Windows®, Windows NT®, Excel®, Word®, .NET®, Outlook®, ActiveX®, Visual Basic®, Visual C# ® 은 미국 그리고/또는 다른 나라에 있는 Microsoft Corporation의 상표 또는 등록상표 입니다.

PostScript®은 Adobe Systems Incorporated의 상표 입니다.

MATLAB®은 MathWorks, Inc의 등록상표 입니다.

National Instruments®, NI®, LabVIEW® 및 SCXI®은 National Instruments Corporation의 등록상표 입니다.

PXI®은 PXI System Alliance의 등록상표 입니다.

IVI® and IVIplug&play®은 IVI Foundation의 등록상표 입니다.

Pentium®은 Intel Corporation의 미국 등록상표 입니다.

Arial® 및Times New Roman®은 Monotype Corporation의 미국 등록상표 입니다.


Whati New in previous versions

버전정보

아래 내용은 버전5, 6.0, 7.0 및 7.5의 새로운 기능 및 향상된 항목입니다. 아래 버전명을 클릭하면 각 버전의 상세 내용이 설명된 위치로 이동합니다.

Version 7.5

Version 7.0

Version 6.0
Version 5.0

Agilent VEE Pro 7.5의 새로운 기능

VEE Pro 7.0 또는 7.5에서 저장된 프로그램은 이전 버전의 VEE에서는 로딩되지 않습니다.

Excel Library 추가

Excel Library를 이용하며 Microsoft Excel과 VEE 사이를 간단하게 연결할 수 있습니다. 복잡한 ActiveX를 이용하여 연결할 필요가 없습니다. 메뉴 선택과 옵션 설정을 사용하여 엑셀에서 필요한 기능을 사용할 수 있도록 완벽하게 제공됩니다. 자세한 정보는 Help [image] How Do I [image] Use the VEE Excel Library를 참조하십시오.

For Each 구문

For Each 구문은 For Count 또는 For Range 구문과 유사하며, 어레이에 있는 각 앨리먼트에 대하여 구문 블록을 실행합니다. 이것은 10차원까지 지원합니다. 자세한 정보는 For Each를 참조하십시오.

NI 데이터 수집 지원 (PXI 및 PCI)

NI-SWITCH, NI-DMM, NI-SCOPE, NI-DAQ, 및 NI-FGEN을 포함하여 NI의 데이터 수집 드라이버를 지원합니다. 이들 라이브러리에 있는 모든 함수와 각 함수에 대한 온라인 도움말도 제공합니다. To/From NIDAQ를 참조하십시오.

.NET 오퍼레이션 빌더

.NET Operation Builder는 메서드 및 프로퍼티를 사용하여 쉽게 .NET 타입을 선택하고, .NET 오퍼레이션을 생성할 수 있도록 합니다. 오퍼레이션은 기존에 존재하는 To/From 트랜잭션 박스와 유사한 박스로 생성됩니다. 이 새로운 툴에 대해서는 .NET Operation Builder를 참조하십시오.

.NET 컨트롤

.NET 프레임웍은 System.Windows.Forms 어셈블리에서 풍부한 표준 컨트롤들을 제공합니다. 이 컨트롤들은 VEE에서 .NET 컨트롤 항목을 이용하여 쉽게 사용할 수 있습니다. Device [image] Windows Forms Controls을 선택하면 VEE 작업공간에 추가할 수 있는 컨트롤의 리스트들이 표시됩니다. 다음의 항목은 리스트의 일부분입니다.

선택한 계측기용 예제 프로그램 로딩하기

Instrument Manager에 표시된 계측기를 선택하고 Load Sample을 선택합니다. 사용할 수 있는 예제들이 나타납니다. 예제를 선택한 다음에는, 선택한 계측기를 사용하는 새로운 VEE 세션이 실행됩니다. 계측기는 자동으로 설정되고, Run을 누르면 예제 프로그램이 실행됩니다.

Description 표시자

오브젝트가 설명을 가지고 있는지 판단하기 어려웠습니다. Default Preferences에서 이 인디케이터를 인에블하도록 선택하면, 설명을 가지고 있는 오브젝트의 우측 상단에 작은 적색 삼각형이 나타납니다.

IVI-COM과 Instrument Manager

Instrument Manager에서 IVI-COM 드라이버를 선택할 수 있습니다. 계측기에 대하여 IVI-COM 드라이버를 설정하고 사용하는 것을 훨씬 용이해 졌습니다.

디테일 컨텍스트 메뉴에서 패널로 이동하기

패널 컨텍스트 메뉴에 Go to Detail항목이 있었습니다. 디테일 컨텍스트 메뉴에 Go To Panel항목이 추가되었습니다.

Agilent VEE Pro 7.0 의 새로운 기능

애질런트 VEE Pro 7.0 은 속성창 및 마이크로소프트 닷넷 프로그래밍 등의 새로운 기능을 제공합니다. 이 기능은 VEE Pro 7.0 에서만 제공되므로, VEE Pro 7.0 으로 저장된 프로그램은 이전 버전이 VEE 에서는 열 수 없습니다.

실행취소/재실행

가장 많이 요청되었던 기능 중의 하나가 실행취소 기능이었습니다. 실행취소와 재실행은 VEE 여러 부분에 적용되었습니다. 예를 들어, 라인 지우기, 터미날 지우기, 패널에서 오브젝트 지우기, 오브젝트 붙여넣기, 오브젝트 이동하기 등 다양한 환경에서 이 기능을 사용할 수 있습니다.

Undo 또는 Redo를 참조하십시오.

오브젝트 속성 편집

비주얼베이직 등에서 사용하는 속성창과 유사한 속성 편집창을 제공합니다. 이 속성창에서 VEE 오브젝트의 속성을 쉽게 변경할 수 있습니다. 대부분의 경우에, 간단히 값을 입력하거나, 더블클릭하여 속성을 변경할 수 있습니다. 여러 개의 오브젝트를 선택하여 동시에 공통 속성을 변경하는 기능도 제공됩니다. 속성창은 디테일뷰와 패널뷰에서 사용할 수 있습니다.

Properties (Object)를 참조하십시오.

패널 편집 기능

패널뷰에 있는 오브젝트도 쉽게 편집할 수 있습니다. 다음 기능이 추가되었습니다.: 그리드 표시, 오브젝트 정렬, 패널 생성 중 발생하는 일상적인 기능에 대한 실행취소, 맨 앞으로 가져오기, 맨 뒤로 보내기, 탭 순서 지정 등.

Notepad 및Description 에서 RTF 포맷 사용

주석 또는 설명의 편집이 더욱 간편해졌습니다. .NET 에서 제공하는 기능이 Notepad 와 Description 에 구현되었습니다. 더욱이, Notepad 와 Description 에는 하이퍼링크 자동탐색 기능이 제공되므로, 해당 링크를 클릭하여 웹브라우저를 실행할 수 있습니다. 이들 모두 실행취소(CTRL-Z)와 재실행(CTRL-Y)를 포함한 대부분의 단축키를 사용할 수 있습니다. .rtf 파일에서 일부 내용을 잘라내기하여 Notepad 또는 Description 으로 직접 붙여넣기 할 수 있습니다. 또한, 사용자 고유의 템플릿을 생성할 수 있습니다.(Notepad 및Description의 디폴트 템플릿은 각각 templates\notepad.rtf and templates\description.rtf 입니다.) 메뉴에서 새로운 오브젝트를 생성할 때 마다 이들 템플릿이 사용됩니다. 이들 디폴트 템플릿 삭제하여 디폴트 템플릿 없이 사용할 수도 있습니다.

VEE 프로그램 상에서 .NET 어셈블리 사용

수 많은 종류의 .NET 클래스가 제공되며, 향후에는 더 많은 클래스가 제공될 것 입니다. 이들 클래스가 제공하는 기능이 VEE에서는 제공되지 않거나 VEE 제공되는 기능보다 유용할 수 있습니다. .NET 에서 제공하는 기능을 사용하기 위해서, VEE7.0 에서는 Microsoft .NET Framework Library 를 사용하는 별도의 방법을 제공합니다. VEE 5.X 이상에서 ActiveX를 사용하는 유사한 방식으로 이들 .NET 라이브러리를 사용할 수 있습니다. DotNet examples 디렉토리에서 제공하는 예제를 참조하면 VEE의 기능을 향상시킬 수 있는 .NET Framework의 기능을 검토할 수 있습니다.

.NET 의 네임스페이스를 임포트할 수 있는 부가기능도 제공됩니다. Device > .NET Assembly References 메뉴에서 "Import namespaces after closing" 체크상자를 클릭합니다. 한 개 이상의 .NET 어셈블리를 선택하면, 네임스페이스를 선택하는 대화상자가 표시됩니다. Device 메뉴에서 Import .NET Namespaces 를 선택할 수도 있습니다. 왜 이것을 해야 하는가요? 네임스페이스를 임포트하지 않으면, VEE에서 System.IO.File.Exists()를 직접 입력해야 합니다. 네임스페이스를 입력하면, 메서드를 호출할 때 상위부분을 생략하고 File.Exists() 와 같이 사용할 수 있습니다. 클릭을 한번 더 하여, 많은 직접 입력내용을 생략할 수 있습니다.

형변환 기능을 제공하는 새로운 오브젝트 asClrType 가 추가되었습니다. 이 오브젝트는 VEE 데이터타입을 .NET/CLR 데이터 타입으로 변환합니다. 여기서 사용할 수 있는 .NET/CLR 데이터는 모든 원시 데이터 타입(Boolean, Byte, SByte, Int16, Int32, Uint32, Int64, Char, Double 및 Single), Decimal, DataTime 및 String 이 해당됩니다. 대부분의 경우 VEE는 VEE와 .NET 사이의 데이터를 자동으로 형 변환하므로, asClrType 을 자주 사용할 필요는 없습니다. asClrType를 사용하는 사례에 대해서는, examples\dotnet\datetime.vee를 참조하십시오

목차의 Tell Me About > .NET Framework 참조

USB 기반 계측기 연결

VEE를 애질런트의 가장 최신의 계측기와 사용할 수 있고 경쟁력 있는 소프트웨어로 유지하는 것은 애질런트의 목표중의 하나입니다. 이것을 실현하기 위해서, USB 통신기능을 제공하는 계측기를 수용하도록 VEE I/O 서브시스템이 향상되었습니다. 또한 USB 앨리어스를 사용할 수 있어서, 길고 기억하기 어려운 실제 USB 주소를 간단한 USB 앨리어스로 대체할 수 있습니다.

LAN 기반 계측기 연결

USB 기반 계측기 연결에서 설명한 바와 같이 기존 방식을 대체할 수 있는 연결방식이 표준으로 자리잡고 있습니다. 이러한 변화를 수용하기 위해서, VEE에는 LAN 기반 계측기와 통신할 수 있는 기능을 추가하였습니다.

IVI-COM 드라이버 사용

IVI-COM 은 계측기간의 호환성을 제공하는 가장 최신의 표준입니다. IVI Foundation에 의해서 표준이 제정되었으며, 이를 적용하면 계측기 제조사마다 다른 회사의 계측기와 호환되는 계측기를 생산하여 제공할 수 있습니다. VEE는 이 표준을 채택하여, 모든 애질런트 IVI-COM 드라이버뿐만 아니라 다른 협력업체에서 제공하는 IVI-COM 드라이버도 수용합니다.

VEE 는 IVI-COM 드라이버의 Primary Interop Assembly (PIA)를 찾아서 IVI-COM 드라이버와 통신합니다. 어셈블리는 .EXE 또는 .DLL 파일 확장자를 가지며 .NET 어플리케이션에서 생성된 프로그램의 한 종류 입니다. PIA 는 COM 기반 컴포넌트의 형태로 제공되는 .NET 어셈블리의 한 가지 형태입니다. IVI-COM 드라이버는 COM 기반 컴포넌트 이므로, VEE는 해당 IVI-COM 드라이버에 대한 PIA 를 찾으려고 시도합니다. 일단 PIA 를 찾으면, 다른 .NET 어셈블리와 마찬가지로 VEE에서 IVI-COM 드라이버를 사용할 수 있습니다.

What is IVI? 참조

에러 보고 방식 향상

애질런트는 VEE 에러 보고 방식을 변경하였습니다. 자세한 내용은 Minidumps에서 참조할 수 있습니다.

Agilent VEE 6.0의 새로운 기능

Agilent VEE 소프트웨어 제품군에 오신 것을 환영합니다. 6.0버전의 새로운 특징 및 향상된 기능은 아래와 같습니다. 이들 기능의 자세한 정보는 "New Features" 또는 "Enhancements."를 클릭하십시오. Agilent VEE 소프트웨어 안의 기능에 대해서는 인덱스나 도움말을 참조하시기 바랍니다.

새로운 기능

멀티미디어 안내서
MATLAB® 스크립트 통합
Callable VEE ActiveX Automation Server (다른 프로그램에서 VEE 호출하여 사용 가능)
새로운 데이터 타입
VEE 6 실행 모드
새로운 함수
VEE I/O 설정 파일을 프로그램과 함께 저장
프로그램 가능한 계측기 속성
동적인 I/O Automation Server
I/O 자가 진단기능의 추가
Instrument Manager 툴바 버튼
VXI 64비트 메모리 엑세스 지원
PC 플러그인 카드 지원
Program Explorer 메뉴 지원
새로운 런타임 옵션
레지스트리에 저장된 프로그램 셋팅
MAPI 이메일 지원
Microsoft Intellimouse Wheel 지원

Agilent VEE (마이크로소프트 윈도우용) 에는 생산성을 향상하는 멀티미디어 안내서가 포함되어 있습니다. 다음 순서에 따라서 멀티미디어 안내서를 사용하십시오:

1. CD 드라이브에 VEE CD를 장착하십시오.
2. VEE 실행하고 Welcome 창에서 "Tutorials" 버튼을 클릭하십시오.
3. 7 개로 나누어져 안내서가 제공됩니다. 이들의 내용을 참조하십시오.

MATLAB® 스크립트 제공

애질런트 VEE 6.0 에서는 MATLAB의 강력한 기능을 사용할 수 있습니다. VEE 6.0 에는 MATLAB 스크립트의 런타임 버전이 함께 제공됩니다. Device 메뉴에 MATLAB Script 오브젝트가 추가되었습니다. VEE 에서 사용할 수 있는 모든 MATLAB 함수는 VEE의 Function & Object Browser 에서 표시됩니다.(VEE 에서는 HP-UX 용 MATLAB 은 지원하지 않습니다.)

Callable VEE ActiveX Automation Server

이전 버전의 VEE 에서는 다른 프로그램 개발환경에서 2 가지 방식으로 VEE 프로그램을 호출할 수 있었습니다.: C-to-VEE API 및 Callable VEE ActiveX Control. 애질런트 VEE Pro 6.0 에서는 구 ActiveX Control 을 ActiveX Automation Server로 대체하여, 비주얼베이직 등의 프로그램 개발환경에서 VEE 프로그램을 더욱 쉽게 사용할 수 있게 되었습니다.(Callable VEE Server 는 윈도우에서만 지원됩니다.)

더 자세한 정보에 대해서는 VEE CallServer 도움말을 참조하십시오.

새로운 데이터 타입

애질런트 VEE 6.0 에 UInt8, Int16, Real32 및 Variant 데이터 타입이 추가되었습니다. 이들을 포함한 모든 데이터 타입은 모든 실행모드와, WRITE TEXT INT16 등의 새로운 트랜잭션에서 사용할 수 있습니다. 그러나, 이전 실행모드에서는 새로운 트랜잭션도 이전 트랜잭션처럼 실행됩니다. 예를 들어, VEE 5 실행모드에서는, WRITE BINARY INT16 가 WRITE BINARY INT32 로 실행되고, 데이터를 Int16으로 변환하지 않습니다. VEE 6 실행모드에서는, WRITE BINARY INT16 실행시 데이터를 Int16으로 변환합니다. VEE 실행모드에 따라서 프로그램 실행이 변화하는 것에 대해서는 Execution Mode 도움말을 참조하십시오.

VEE 6 실행모드

Data [image] Constant [image] UInt8
Data [image] Constant [image] Int16
Data [image] Constant [image] Real32
Data [image] Allocate Array [image] UInt8
Data [image] Allocate Array [image] Int16
Data [image] Allocate Array [image] Real32

VEE 6 실행모드

VEE6 실행모드가 Default Preferences 대화상자에 추가되었습니다. 이에 대한 자세한 내용은 Execution Mode 도움말을 참조하십시오.

새로운 함수

VEE에 새로운 데이터 타입이 제공되어서 ActiveX automation 서버와의 호환성을 확장할 수 있습니다. 또한, 새로운 함수가 추가되어 VEE 대안이 없는 다른 ActiveX 데이터 타입(예, Currency 및 Date)을 보다 쉽게 사용할 수 있습니다. 자세한 내용은 Type Conversion 도움말을 참조하십시오. 애질런트 VEE 6.0 에 추가된 새로운 함수는 다음과 같습니다.:

asVariant()
asVariantBool()
asVariantCurrency()
asVariantDate()
asVariantError()
asVariantEmpty()
asVariantNull()
baseName(pathStr)
commandLine()
dirName(pathStr)
inDaylightSavings()
isVariant()
isVariantBool()
isVariantCurrency()
isVariantDate()
isVariantError()
isVariantEmpty()
isVariantNull()
programName()
typeName(x)

VEE I/O 설정파일을 프로그램과 함께 저장

VEE 6.0 에서는, veeio resource 파일을 사용하는 대신, I/O 설정정보를 VEE 프로그램에 임베드할 수 있습니다. 설정정보를 임베딩하기 위해서 Save File 대화상자에 Save I/O configuration with program 체크박스가 추가되었습니다. I/O 설정을 저장하는 방법에 대한 더욱 자세한 내용에 대해서는 Instrument Manager 를 참조하십시오.

위치 : File -> Save (Save a new program)

File -> Save As (Save As)

계측기 속성 변경

VEE 6.0 에서는 프로그램 실행시 계측기 변수(예, Timeout 등)를 변경할 수 있는 기능이 추가되었습니다. 이 기능을 사용하면 Direct I/O 오브젝트의 컨트롤 입력을 사용할 필요가 없으며, 변경할 수 있는 계측기 변수를 프로그램 실행시 변경할 수 있습니다.(Direct I/O 오브젝트의 컨트롤 입력을 사용할 필요는 없어졌지만, 컨트롤 터미날 추가 기능은 계속 제공됩니다.) 이와 관련하여 사용할 수 있는 기능은 Function and Object Browser의 Instruments 타입과 하위 메뉴에서 제공되며, 이들 목록에서 직접 오브젝트를 생성할 수 있습니다.

사용할 수 있는 속성에 대한 내용은, GPIB Instrument Properties , GPIO Instrument Properties , Serial Instrument Properties 및 VXI Instrument Properties에서 참조할 수 있습니다. 또한, 아래의 2 개의 예제도 참조하십시오.:

examples\InstrumentIO\ProgrammableInstrProperty1.vee

examples\InstrumentIO\ProgrammableInstrProperty2.vee

Dynamic I/O Automation Server

이전 버전의 VEE 에서는 VEE I/O 설정파일에 저장된 계측기 주소가 정정(고정값)이었습니다. VEE 6.0 버전에서는 Dynamic I/O Automation Server 를 사용하여 계측기를 프로그램 상에서 동적으로 찾고 식별할 수 있습니다. 이 기능을 제공하여 새로운 단계의 유연성을 제공합니다. 예를 들어, 모든 계측기를 찾아서 Direct I/O 오브젝트에 적용할 계측기 속성을 프로그램으로 설정할 수 있습니다. (Dynamic I/O Automation Server는 윈도우에서만 적용됩니다.)

더 자세한 내용은 Dynamic I/O Automation Server 를 참조하십시오.

I/O 자가진단 기능 추가

VEE 6.0 에는 중요한 I/O 자가진단 기능이 추가되었습니다. 이 기능은 에러 예방, 에러 복구, 계측기 우선체크 기능으로 구성되어 있습니다.

에러 예방

VEE 6.0 에는 VEE 메인 프로그램이 실행되기 전에 계측기를 체크할 수 있습니다. File -> Default Preferences 에서 Instrument Addresses at PreRun을 체크하면 계측기 체크 기능이 활성화됩니다. 자세한 정보는 Default Preferences ("Debug" 그룹)을 참조하십시오.

에러 복구

VEE 6.0 에는, I/O timeout 에러 발생시 표시되는, VEE Run Time Error 대화상자에 Troubleshooting 버튼이 추가되었습니다. 이때 확인되는 자가진단 I/O 에러는 Error 811 - Timeout or General I/O Error 입니다.

인터페이스 카드가 없거나 버스상의 주소를 사용할 수 없어서 계측기와 통신하지 못하는 경우에는, 이 자가진단 기능에서 에러의 형태를 나타내고 해당 에러를 복구할 수 있는 방법을 제안합니다.

Instrument Manager 툴바 버튼

VEE6.0 에는 Instrument Manager 대화상자를 쉽게 사용하도록 툴바에 Instrument Manager 아이콘이 추가되었습니다. 기존 방식을 이용하여 I/O -> Instrument Manager…를 클릭하여 Instrument Manager 대화상자를 띠울 수도 있습니다.

VXI 64-비트 메모리 사용

Agilent I/O Libraries G.02.02 에서는 특정 VXI 계측기의 메모리를 사용할 수 있도록 64 비트를 지원합니다. 이 기능으로 VEE 프로그램에서 64-비트 단위로 메모리를 읽거나 쓸수 있습니다. G.02.02(또는 이상)이 설치되어 있으면, Advanced Instrument Properties 대화상자에서 A24/A32 Space 탭을 이용하면 이 기능을 활성화 할 수 있습니다.

위치 : I/O -> Instrument Manager

(VXI 계측기 선택) Instrument Properties -> Advanced... -> A24/A32 Space 탭.

PC 플러그인 카드 지원

VEE 6.0 에서는 ODAA (Open Data Acquisition Association) 호환 소프트웨어 드라이버를 제공하는 PC 플러그인 카드를 지원합니다. 이들 카드를 사용하기 위해서는, 하드웨어와 소프트웨어를 설치하고 제조사의 설명에 따라서 서브시스템을 설정해야 하고, VEE Instrument Manager에서 Find Instruments 버튼을 클릭합니다.

PC 플러그인 카드가 정상적으로 설정되었으면, Instrument Manager 에 설정된 서브시스템이 표시됩니다. 사용하고자 하는 서브시스템을 선택하고, PCPI 드라이버 버튼을 클릭하여 Formula 오브젝트를 생성합니다. 속성과 메서드를 검색하여 Function & Object Browser 대화상자에서 해당 서브시스템의 Formula 오브젝트를 생성할 수 있습니다.

Program Explorer에 서브메뉴 추가

VEE 6.0 에는 프로그램 탐색기에 Globals을 보다 편리하게 사용할 수 있는 서브메뉴(“Generate")가 추가되었습니다. 이 “Generate" 서브메뉴에서 Global 변수등을 사용하는데 필요한 Get, Set 및 If/Then/Else 등의 기능을 직접 실행할 수 있습니다.

RunTime 옵션 추가

VEE Pro RunTime 에 모든 필요한 파일이 제공되고 있는지 확인하기 위한 옵션 -enablewarnings 을 사용할 수 있습니다. -enablewarnings 옵션 없이 RunTime 을 실행하면, "Picture file is missing." 과 같이 중요하지 않은 에러에 대해서는 경고를 띠우지 않고 프로그램을 실행합니다.

프로그램 설정을 레지스트리에 저장

VEE 4.x 와 5.0 에서는 특정 정보(Toolbar 보기, StatusBar 보기 등)가 default preferences 파일(vee.rc)에 저장되었습니다. 6.0 버전에서는 이들 정보를 더 이상 vee.rc 파일에 저장하지 않습니다.

또한, 이전 버전의 윈도우용 프로그램에서는 일부 설정내용을 v.ini 파일에 저장했지만, 6.0 에서는 MS 윈도우 상에서는 더 이상 v.ini 파일을 사용하지 않습니다. 모든 설정은 사용자마다 레지스트리의 HKEY_CURRENT_USER\Software\Agilent\VEE에 저장됩니다.

HP-UX의 경우에는, 사용자의 $HOME 디렉토리의 .vee-settings 파일에 정보가 저장됩니다.(이 파일은 과거에는 .vee-history이었습니다.)

VEE가 종료될 때 설정이 자동저장되므로, 프로그램 설정저장에 필요한 모든 내용을 사용자가 실행할 필요는 없습니다. 다음 번 VEE를 실행할 때, VEE 가 동일한 위치에서, 동일한 크기로, 동일한 사용자 인터페이스를 가지고 열리게 됩니다.

MAPI Email 지원

MAPI 프로파일이 설치된 컴퓨터에서 사용하는 VEE 6.0 에는 File 메뉴에서 "Send Program by Email" 메뉴가 제공됩니다. MAPI 가 설치되지 않은 HP-UX 시스템 및 PC 에서는 이 기능이 제공되지 않습니다.

위치: File -> Send Program by Email

Microsoft Intellimouse Wheel 지원

VEE 6.0 에는 마이크로소프트 인텔리마우스 지원 기능이 추가되었습니다. 마이크로소프트 인텔리마우스 또는 호환 마우스를 사용하는 경우에는, 리스트뷰가 활성된 상태에서 마우스 휠을 돌리면, 리스트뷰가 스크롤 됩니다.

기능향상

설치 프로그램 개선
VEE 데이터 종류 변환 다양화 – 개선된 어레이 핸들링
Automation Server 사용으로 발생하는 메모리 관리기능 향상
추가적인 그래픽 파일 지원
개선된 XY Marker 속성
트랜잭션 대화상자에서의 입출력 핀 자동 생성
Get 및 Set Formula 버튼
함수추가
개선된 PC 실행 오브젝트
Instrument Manager 업데이트
편리한 오브젝트 사이즈 조정
키보드 단축키 추가
개선된 시퀀스 라인 색상
저장 옵션 설정

설치 프로그램 기능 개선

윈도우용의 새로운 설치 프로그램에는 이전 버전에서 제공하지 않았던 여러 기능이 추가 되었습니다. VEE를 설치 후, 제어판의 “프로그램 추가/삭제”를 실행하여 Aglient VEE 를 선택하면, 새로운 기능을 확인할 수 있습니다. Agilent VEE를 제거할 수 있을 뿐만 아니라, 기존 설치된 내용을 변경할 수 있습니다. 따라서, Non-HP 패널 드라이버 등의, 처음 설치시 설치하지 않았던 컴포넌트를 설치할 수 있습니다. 또한, 더 이상 사용하지 않는 컴포넌트를 제거할 수도 있습니다. 복구 기능을 사용해서는 이미 설치된 VEE를 복구도 할 수 있습니다.

Variant 에서 VEE 데이터 타입으로 변환 – 어레이 사용 개선

ActiveX Automation Server (예, Excel) 또는 ActiveX control에서 데이터가 리턴될 때, VEE는 오토메이션 데이터 타입을 VEE 데이터 타입으로 변환해야 합니다. VEE 5.0 에서는, Variants 어레이가 VEE Record 로 변환되었습니다. VEE 6.0 에서(VEE6.0 실행모드)는 Variants 어레이의 모든 앨리먼트가 동일한 데이터 타입이면, Variants 어레이가 VEE 어레이로 변환됩니다.(데이터 타입이 혼합된 경우에는 VEE 5.0 과 같은 방식으로 변환됩니다.)

Variant 의 소오스 Safearray 의 모든 앨리먼트가 동일한 데이터 타입이면, Variant 의 데이터 타입은 종류에 따라서 다음과 같이 VEE 데이터 타입으로 변환됩니다.(이 기능은 VEE 6 실행모드에서 제공됩니다.)

Variant 어레이의 앨리먼트 타입 VEE 6.0 데이터 타입

VT_UI1 UInt8
VT_BOOL Int32
VT_I2 Int16
VT_UI2 Int16
VT_I4 Int32
VT_UI4 Int32
VT_R4 Real32
VT_R8 Real64
VT_DATE Real64
VT_CY Real64
VT_BSTR Text
VT_DISPATCH Object

IAutomation Server 참조 제거 개선

VEE 프로그램이 중지될 때, 가끔 Automation Server (예Excel)를 사용했지만, 해당 프로그램(예, Excel)은 종료되지 않았다는 경고창이 표시되는 경우가 있습니다. VEE 6.0 에서는 ActiveX 참조를 사용하고, 더 이상 사용되지 않는 포인터를 제거하는 기능을 개선하였습니다. ActiveX 참조를 제거와 관련된 프로그램 방식에 대해서는 CreateObject 에 대한 도움말을 참조하십시오.

그래픽 파일 지원 추가

VEE 6.0 에는 Windows 95/98/NT 에서 JPG, WMF 및 PNG 포맷의 읽기 전용기능이 추가되었습니다. BMP 와 GIF 포맷도 읽을 수 있습니다. Picture 오브젝트의 도움말을 참조하십시오.

XY 마커 속성 개선

VEE 6.0 에서는 마커의 위치를 여러 가지 표현방식으로 읽어올 수 있습니다. 이 기능에 대한 자세한 내용은 XY Display 의 "Programmatically Setting and Reading Marker Values" 도움말을 참조하십시오. XY Display 종류에는 XY Trace, Magnitude Spectrum 및 Polar Plot 등이 있습니다. 또한, To Get and Set Marker Properties 을 참조하십시오.

트랜잭션 핀 생성방법 개선

트랜잭션을 가진 오브젝트에서는 트랜잭션에서 사용하는 터미날 이름에 따라서 입력과 출력을 자동으로 생성합니다. 이 기능을 사용할 때 이미 사용중인 지역변수나 전역변수와 중복되는 이름이 있으면, VEE는 이를 자동으로 감지하여 핀을 생성하지 않습니다.

Get 및 Set Formula 버튼

Function & Object Browser 에서는 ActiveX, VEE 오브젝트 및 Instruments 그룹에서 속성에 대한 표현식을 생성할 수 있습니다. 해당 기능에 대해서 각각 버튼을 클릭하여 “Get Property” 또는 "Set Property” 표현식을 생성할 수 있습니다.

함수 추가

다음 함수가 VEE 6.0 에 추가되었습니다.

Windows 98 및Windows 2000 에 whichOS() 가 추가되었습니다.

hostname 파라미터 옵션에 createObject() 이 추가되었습니다.

PC Execute 오브젝트 기능 개선

PC Execute 오브젝트는 실행된 프로그램으로부터 실행종료 코드를 리턴하고 관련 프로그램을 실행하기 위해서 등록된 확장자를 사용할 수 있습니다. Execute Program (PC) 의 도움말을 참조하십시오.

Instrument Manager 개선

VEE 6.0 에서는 Instrument Manager 대화상자에서 "Configure Drivers" 버튼을 제공하여 인스트루먼트 드라이버를 보다 쉽게 설정할 수 있습니다. 하나의 계측기, 하나의 인터페이스 카드 또는 전체 I/O 설정을 선택하여, 버튼 한번 클릭으로 드라이버를 설정할 수 있습니다. 더 자세한 내용은 Instrument Manager 도움말을 참조하십시오.

오브젝트의 크기를 쉽게 변경

VEE 6.0 에서는 모든 오브젝트 각 코너를 드래그하여 오브젝트의 크기를 변경할 수 있습니다. 이 기능은 패널뷰와 디테일뷰 양쪽에서 사용할 수 있습니다.

오브젝트의 크기를 변경할 때는 디폴트로 그리드 크기에 맞추어 집니다. 이 기능은 패널뷰와 디테일뷰에서 모두 적용됩니다. 오브젝트의 코너에서 마우스를 클릭하면 오브젝트의 일반적인 크기 변경(그리드의 크기에 맞추어짐)이 시작됩니다. 키보드의 시프트키를 누른 상태에서 마우스를 클릭하여 오브젝트의 크기를 변경하면 1 픽셀 단위로 오브젝트 정밀하게 크기가 변경됩니다. 그리드의 크기는 디테일뷰에서는 10 픽셀로 고정되어 있으며, 패널뷰에서는 디폴트로 10 픽셀로 설정되어 있습니다.

VEE 5.0 의 패널뷰에서는 그리드 크기에 맞추어짐 기능만 제공되고, 디테일뷰에서는 정밀하게 맞추어짐 기능만 제공되었습니다.

키보드 추가 단축키

디버깅에 도움이 되는 추가 단축키 입니다.:

F5 또는 Ctrl-G 는 "Run" 에 해당됩니다.

F10 는 "Step Over"에 해당됩니다.

F11 는 "Step Into"에 해당됩니다.

Shift-F11 는 "Step Out"에 해당됩니다

VEE 에서 사용할 수 있는 모든 단축키에 대한 내용은 Using Keyboard Shortcuts 을 참조하십시오.

시퀀스 라인 색깔 개선

VEE 6.0 에서는 시퀀스 입력으로 연결된 모든 라인의 폭이 1 픽셀이고 회색이므로, 라인을 따라서 데이터가 전달되는 것을 관찰하기 용이해졌습니다.(VEE 프로그램에서 사용하는 대부분의 라인이 데이터를 사용하기 위해서라기 보다는 시퀀스를 사용하기 위한 경우가 더 많습니다.)

저장 옵션 설정

VEE6.0 에서는 "Default Preferences" 대화상자에서 "Save colors/fonts with program" 및 "Save Device Configuration" 기능을 삭제하고, "Save File" 대화상자에 다음의 기능을 추가하였습니다.:

옵션

[ ] Save colors and fonts with program

[ ] Save I/O configuration with program

이들 저장 옵션의 사용방법에 대한 자세한 내용은 Save As를 참조하십시오.

위치: File -> Save As...

HP VEE 5.0의 새로운 기능

HP VEE를 선택해 주셔서 감사합니다. 이 버전에는 많은 새로운 기능이 추가되거나 이전 버전에서 변경되었습니다. HP VEE 도움말 섹션에서 변경 및 추가된 내용이 설명되고 있습니다. 새로운 기능과 기존 작성된 프로그램과의 호환성 문제에 대해서 아래 주제를 스크롤하여 검토하시기 바랍니다. 해당 내용에 대해서는 링크를 클릭하여 더 자세한 정보를 확인할 수도 있습니다. 이들 새로운 기능과 기존의 모든 기능에 대한 자세한 정보는 HP VEE 의 도움말 및 색인을 참조하십시오.

HP VEE 웹사이트에서는 지원관련 정보, 인스트루먼트 드라이버 다운로드 방법 및 기타 유용한 정보를 제공합니다. VEE 윈도우에서 Help => HP VEE on the Web를 클릭하여 HP VEE 웹사이트에 접속할 수 있습니다.

주의사항

VEE 3.x 다음 버전부터는 파일 저장포맷이 변경되었습니다. 만약 VEE 4.0이상에서 VEE 3.x 프로그램을 저장하면 VEE 3.x 와 그 이전 버전에서는 프로그램을 사용할 수 없습니다.

VEE 4.x부터 VEE 5.x저장 파일 포맷은 동일하게 유지됩니다. 반면에 두 버전 사이에 서로 프로그램을 이동할 경우에 정상적으로 동작하지 않을 수도 있습니다. 예를 들어 VEE 4.x 프로그램을 VEE 5.x에서 오픈하여 새로운 기능을 사용하고 저장했다면, VEE 4.x에서 다시 오픈할 경우 사용했던 새로운 기능들이 삭제 되어 프로그램이 오동작 할 수도 있습니다.

ActiveX 지원: Windows® 95/NT® 4.0 혹은 그 이상(UNIX는 지원하지 않음)이 설치된 PC에서 ActiveX automation 및 controls을 지원합니다.

ActiveX automation : VEE를 Automation Controller로 사용할 수 있습니다. Microsoft® Word, Excel 및 Access 같은 다른 애플리케이션을 제어할 수 있어 보고서를 생성하기 위해 애플리케이션에 데이터를 전송할 수 있습니다. 이러한 것들은 자동화가 가능한 애플리케이션들을 위한 현재의 애플리케이션 제어 솔루션이나 Dynamic Data Exchange (DDE)를 완벽히 대체합니다.

ActiveX 컨트롤 : 여러 회사로부터 제공되는 ActiveX 컨트롤에 대하여, ActiveX automation 속성, 메서드, 이벤트를 통한 고유한 기능 제공으로 VEE의 기능이 한층 향상되었습니다. 대부분의 ActiveX 제어는 날짜를 바탕으로 한 이벤트를 실행하기 위한 Calendar같은 제어를 처리하는 사용자 인터페이스도 제공합니다.

Web Monitoring : VEE는 표준의 HTTP 프로토콜을 사용하는 웹 브라우져를 이용하여 VEE 프로그램을 모니터링 하고 오류의 원인을 찾을 수 있도록 내장된 웹서버를 제공합니다. 따라서 이러한 기능은

  • 공장의 생산라인에서 운용되는 시스템을 수정하고,

  • VEE 프로그램으로부터 정보를 입수하고,

  • 테스트 시스템을 모니터링 하는데 사용할 수 있습니다.

VEE 오브젝트 및 기능

XY Displays : 스케일 라벨, 라벨 간격지정, 숫자 형식 설정 등을 지정할 수 있는 일부 향상된 기능을 제공합니다.

Knob, Slider 및 Indicator 오브젝트 : 로그 스케일, 선형 스케일, 숫자 형식 설정, 눈금표시라벨 및 라벨 간격 등을 지정할 수 있는 일부 향상된 기능을 제공합니다.

Formula 오브젝트 : 표현식의 사용이 다양해 졌습니다. 하나 혹은 그 이상의 표현식을 입력할 경우, 한 라인에 하나의 표현식을 입력할 수도 있고, 표현식을 나누어 여러 라인에 걸쳐서 입력할 수도 있습니다.

UserFunction 메뉴 : 오브젝트로부터 UserFunction을 자동으로 호출하여 사용할 수 있도록 하고, UserFunction을 호출하는데 다음과 같은 자주 사용하는 여러가지 기능을 제공합니다: Call, Formula, If/Then/Else, showPanel() 및 hidePanel().

SavePanelImage 기능 : 보고서에 VEE 패널을 포함할 수 있도록 하는 VEE UserFunction 패널을 파일로 저장할 수 있습니다.

개발환경

VEE 개발 환경이 일부 변경되었습니다.

  • 대화상자에 있는 실행모드가 호환 가능한 모드로 변경되었습니다; 실행모드는 VEE 3, VEE 4와 Standard입니다.

  • Select Function 대화상자는 Function & Object Browser로 변경되었습니다. (Device 메뉴). 이것은 UNIX에 있는 Function Browser입니다.

  • VEE로부터 다른 윈도우 애플리케이션으로 오브젝트 비트맵을 복사할 수 있도록, 클립보드의 기능이 확장 되었습니다.

  • 좀더 작은 크기의 .vxe 바이너리 파일 포맷과 런타임 프로그램을 위한 더 나은 보안기능

  • 좀더 편리한 온라인 도움말기능

Instrument Manager

Instrument Manager 대화상자에서 사용하는 버튼의 레이블이 변경되었습니다. 설정부분에서 사용하는 버튼의 레이블은 계측기 목록에서 어떤 노드가 선택되었는가에 따라서 동적으로 변경됩니다. 이 기능으로 각 노드에 대한 설정변경에 관한 정보를 더 쉽게 알 수 있습니다. 더 자세한 정보는 Instrument Manager 를 참조하십시오.

ActiveX 지원

윈도우용 HP VEE는 Windows 95/NT 4.0 또는 이상을 사용하는 PC에서 ActiveX 오토메이션 및 컨트롤을 지원합니다.(UNIX 에서는 지원하지 않습니다.)

주의

ActiveX 를 사용하기 위해서는, Default Preferences 대화상자의 General 탭에서 HP VEE가 반드시 표준모드로 설정되어야 합니다. VEE에서 새로운 프로그램을 생성하면 이 기능이 디폴트 기능입니다. VEE를 표준모드로 설정할 때의 메뉴, 오브젝트 및 기능에 대한 자세한 내용은 Development Environment 에서 “Execution Mode" 섹션을 참조하십시오.

ActiveX Automation 기능을 사용할 때 HP VEE는 오토메이션 컨트롤러로 동작합니다. 이 기능을 이용하여 보고서생성 등을 위해서 데이터를 마이크로소프트 워드, 엑셀 및 엑세스 등의 어플리케이션에 전송할 수 있습니다. 이 기능은 기존 DDE(Dynamic Data Exchange) 기술을 통한 어플리케이션 제어 방식을 완전히 대체합니다.

여러 회사로부터 제공되는 ActiveX 컨트롤은 ActiveX automation 속성, 메서드 및 이벤트를 제공하여 HP VEE의 기능을 확장할 수 있습니다. 대부분의 ActiveX 컨트롤은 날짜를 기반으로 이벤트를 발생하는 Calendar 등과 같이 사용자 인터페이스를 제공합니다.

추천 도서

Microsoft Office 97 Visual Basic Programmer's Guide
Microsoft Press, 1997
ISBN 1-57231-340-4

HP VEE에서 ActiveX를 어떻게 사용하는 가는 알기 위해서는 HP VEE Advanced Programming Techniques 매뉴얼의 "Using ActiveX Automation Objects and Controls" 절을 읽으십시오. ActiveX 와 관련된 여러 개의 예제 프로그램이 \examples 디렉토리에 추가되었습니다. HP VEE 윈도우에서 Help => Open Example 를 클릭하고 \ActiveXAutomation and \ActiveXControls 디렉토리에서 이들 예제 프로그램을 열 수 있습니다.

웹 모니터링

HP VEE에는 웹서버가 내장되어 있어서 표준 HTTP 프로토콜을 사용하는 원격 웹브라우져에서 HP VEE 어플리케이션 프로그램을 모니터링하고 진단할 수 있습니다. 이 기능을 다음 항목에 적용할 수 있습니다.:

  • 공장에서 실행되고 있는 시스템 진단.

  • HP VEE 프로그램에서 정보를 가져올 때.

  • 테스트 프로그램 모니터링.

Default Preferences 대화상자의 Web Server 탭을 이용하여 웹서버를 활성화할 수 있습니다. HP VEE는 네트워크에 접속된 시스템에서 실행되어야 합니다. 웹브라우져를 통해서 VEE 프로그램을 원격 모니터링하기 위해서는 시스템의 호스트명을 알아야 합니다. 자세한 정보는 Default Preferences를 참조하십시오.

HP VEE 오브젝트 및 함수

XY Display에는 새로운 기능이 추가되어 스케일 레이블, 스케일의 간격 및 숫자 포맷을 정의할 수 있습니다. 변경된 내용은 각각의 속성 대화상자에서 확인할 수 있습니다. 아래는 변경된 내용에 대한 요약입니다. 자세한 내용은 XY Trace 등의 디스플레이 오브젝트의 도움말을 참조하십시오. 각 디스플레이마다 고유한 기능을 제공하기 위해서 설정내용이 약간씩 다를 수 있습니다.

  • • 각 XY 디스플레이 오브젝트의 속성 대화상자의 Colors 탭에서 배경색깔을 변경할 수 있습니다. 여기서 변경한 내용은 Default Preferences에 저장된 내용보다 우선권이 있어서 이 내용이 적용됩니다.

  • Information about traces and scales has changed on the display object's open view. The editable fields for traces and scales have changed to flat buttons. The scales' major tic marks are now labeled, and the min/max values cannot be edited on the open view.

속성을 편집하기 위해서는, 오픈뷰 상태에서 트레이스 또는 스케일의 이름을 클릭하면 편집 대화상자가 표시됩니다. 또는 오브젝트의 타이틀바를 더블 클릭하면 속성 대화상자가 표시됩니다. General 탭에서 Traces 및 Scales 버튼이 없어지고, Traces 및 Scales 탭이 새로 제공됩니다.

트레이스 속성은 HP VEE 4.x 에서 변경된 내용이 없습니다.

Scales 속성은 변경되었습니다. 다른 속성과 함께 min/max 값을 변경할 수 있으며, Label Spacing 및 Automatic Scaling 속성을 추가되어 이들을 사용할 수 있습니다. 각 스케일(오른쪽의 추가 속성을 포함하여)의 속성은 각각 설정될 수 있습니다.

메이저 틱 마크상에서 레이블 간격을 설정하기 위해서는 Label Spacing 의 풀다운메뉴를 클릭하여, 여기서 표시되는 항목중 한 가지를 선택하면 됩니다. 새로운 프로그램을 실행하면, X 스케일은 Every Major Tic으로, Y 스케일은 Every Other Tic 로 디폴트 설정되어 있습니다. 이전 버전에서는 오래된 스타일의 디스플레이 오브젝트와 유사한 형태를 유지하기 위해서 Only Max & Min 가 디폴트 설정값으로 사용되었습니다.

디스플레이 오브젝트의 Properties 대화상자의 Fonts 탭에서 레이블 폰트를 오브젝트의 폰트와 다르게 설정할 수 있습니다. Scale Label 영역에서 폰트를 변경하면 Default Preferences 대화상자에서 설정한 내용이 무시됩니다. 레이블의 색깔에는 Default Preferences 대화상자 또는 오브젝트의 Properties 대화상자에서 설정한 오브젝트 텍스트의 색깔이 적용됩니다.

Autoscale 속성이 변경되어 지금은 Automatic Scaling 모드 기능도 제공됩니다. 오픈뷰에서 Auto Scale 버튼은 선택항목입니다. Layout 영역의 General 탭의 Properties 대화상자에서 버튼을 숨기거나 보이게 할 수 있습니다. X 및 Y-Main 스케일에 대한 다른 속성을 설정하는 동안 Automatic Scaling 모드를 설정할 수 있습니다. Automatic Scaling 모드가 ON 일 때, 입력되는 데이터의 크기에 따라서 스케일이 자동변경됩니다. 디스플레이의 오른쪽에 추가한 스케일(Y2 및Y3)은 Y-Main의 스케일이 적용됩니다. Strip Chart 에서는 이 모드가 지원되지 않습니다.

기존 디스플레이 오브젝트를 사용하는 이전 프로그램에서는, Automatic Scaling 이 OFF로 설정되어 실행됩니다. 오래된 스타일의 디스플레이 오브젝트와 유사한 형태를 유지하기 위해서, 오픈뷰에서는 Auto Scale 버튼이 표시됩니다. 이전 프로그램에 새로운 디스플레이 오브젝트를 추가하면 디폴트 설정이 사용됩니다.: X 및 Y-Main 이 Automatic Scaling 모드 On으로 설정되고, Auto Scale 버튼은 제공되지 않습니다.

Auto Scale X, Auto Scale Y 및 Auto Scale의 컨트롤 입력은 변경되지 않았습니다. Scales의 컨트롤 입력 레코드에는 필드이름이 AutoScale 인 텍스트 필드가 추가되었습니다. 이 필드의 값은 On 또는 Off 입니다. 이 기능을 이용하면 Automatic Scaling을 프로그램에서 제어할 수 있습니다. Strip Chart 에서는 이 기능이 제공되지 않습니다.

  • Properties 대화상자의 Number 탭에서 각 스케일의 숫자 포맷을 설정할 수 있습니다.

마커 값에는 스케일에서 사용하는 동일한 숫자 포맷이 적용됩니다. X 및 Y 스케일의 Delta Markers에는 Default Preferences 대화상자에서 설정한 디폴트 숫자 포맷이 적용됩니다. 그러나, X 및 Y 스케일의 Marker1 과 Marker2 가 Time Stamp 포맷을 사용하면, Delta Marker 는 Delta Time 포맷을 사용합니다.

  • • Properties 대화상자의 General 탭의 Layout 영역이 변경되었습니다. 여기서 변경된 선택사항으로 오픈뷰의 형태와 보안을 더 유연하게 제어할 수 있습니다:

    • Show Traces Legend 에 따라서 Trace 편집 버튼이 On 또는 Off 됩니다.

    • Show Scales Legend 에 따라서 X 및 Y 스케일 편집 버튼이 On 또는 Off 됩니다.

    • Show Scales Legend 에 따라서 축의 스케일 레이블이 On 또는 Off 됩니다.

    • Show Scroll Bars 에 따라서 스크롤바가 On 또는 Off 됩니다.

    • Show Auto Scale Button 에 따라서 Auto Scale 버튼이 On 또는 Off 됩니다.

    • Enable Trace/Scale Editing 에 따라서 각각 Trace 및 Scales 편집 버튼의 편집기능을 통제할 수 있습니다.

Knob, Slider 및 Indicator 오브젝트

새로운 버전에서는 로그 스케일 또는 선형 스케일을 선택하고, 숫자 포맷을 설정하며, 틱 마크 레이블 및 이들 레이블의 간격을 조정할 수 있습니다. 이들 향상된 기능은 Integer/Real Knob 및 Slider, Meter, Thermometer, Fill Bar 및 Tank 오브젝트의 사용에 영향을 미칩니다. Color Alarm 오브젝트에는 숫자 포맷 변경기능만 추가되었습니다. 여기서 변경된 내용은 각 오브젝트의 속성 대화상자에서 사용할 수 있습니다.

  • Scale 영역의 General 탭에서 선형 스케일 및 로그 스케일을 선택할 수 있습니다. Integer Knob/Slider 오브젝트에서는 로그 스케일이 지원되지 않습니다.

  • Scale 영역의 General 탭에서 메이저 틱 마크의 레이블 간격을 설정할 수 있습니다. Label Spacing 의 풀다운 메뉴를 클릭하여 임의의 항목을 선택합니다.

  • Knob, Thermometer, Fill Bar 및 Tank 오브젝트에서 틱 마크와 레이블을 On 또는 Off 할 수 있습니다. 이 기능은 이전 버전에서는 Slider 및 Meter 오브젝트에서만 제공되었습니다.

  • Thermometer, Fill Bar, Tank 및 Color Alarm 오브젝트의 속성 대화상자에 Number format 탭이 추가되었습니다. Knob, Slider 및 Meter 오브젝트가 현재 설정된 숫자 포맷으로 그것들의 최소/최대 값 및 틱 레이블 값을 표시할 수 있습니다.

  • 자세한 내용은 Integer KnobInteger_Knob, Integer SliderInteger_Slid, Real KnobReal_Knob, Real SliderReal_Slider, Fill BarFill_Bar, MeterMeter, TankTank, ThermometerThermo을 참조하십시오.

Formula 오브젝트에는 여러 줄의 명령을 입력할 수 있습니다. Formula 오브젝트에서 긴 명령어를 사용할 때는 상하 또는 좌우로 오브젝트의 크기를 늘일 수 있습니다. 이전 프로그램에서 작성한 Formula 오브젝트를 새로운 버전의 VEE에서 열면 새로운 기능이 적용됩니다. 하나 이상의 표현식을 입력하기 위해서는, 각 라인에 하나의 표현식을 사용하거나, 다음 예제와 같이 여러 개의 라인에 걸쳐서 작성된 표현식을 단일 표현식으로 구분하여 작성해야 합니다.

(a == someLongExpr

? "return someLongTrue"

: "return someLongFalse"

)

  • 각 라인의 끝에 carriage return (\r) 이 구분자로 추가되었습니다. 이 문자는 시각적으로 보이지는 않습니다. Formula 에서 떠나면 VEE파서가 유효한 표현식인지 체크합니다. 다음 2 개의 예제에서, 첫 번째 예제는 변수이름에 공백이 사용되었으므로 구문에러를 발생합니다. 여기서 발생하는 에러메시지는 에러발생 위치 정보를 함께 제공합니다.

2 * A +

3 - foo

bar - snafu

다음 예제에서는 foo 다음에 연산자를 추가하여 위에서 발생한 문제를 해결합니다.

2 * A +

3 - foo -

bar - snafu

  • Formula 오브젝트의 컨트롤 입력은 어레이 또는 스칼라 텍스트를 사용할 수 있습니다.

  • Formula 오브젝트에 편집기능이 추가되어 여러 개의 라인이나 표현식을 입력시 보다 편리하게 작업할 수 있습니다.

  • 자세한 내용은 Formula 오브젝트의 도움말을 참조하십시오.

UserFunction 메뉴의 Generate 서브메뉴에는 오브젝트에서 여러 가지 방법으로 UserFunction 을 호출하는 기능이 추가되었습니다.: Call, Formula, If/Then/Else, showPanel() 및 hidePanel(). 이전 버전에서는 Call 오브젝트만 자동 생성되었습니다. 새로 추가된 메뉴에서는 보다 적합한 오브젝트에서 UserFunctions 을 호출할 수 있게 되었습니다. 즉, If/Then/Else 오브젝트와 같이 부울린 기능을 참조하거나, showPanel() 또는 hidePanel() 기능으로 프로그램의 시각적인 형태를 제어하는 기능을 제공합니다. Generate 메뉴에 접근하는 방식은 이전 버전과 동일합니다.

  • Program Explorer에서, 해당 UserFunction 의 이름에 마우스를 올려 놓고 오른쪽 버튼을 클릭합니다.

  • UserFunction 윈도우에서 오브젝트 메뉴를 사용합니다.

  • 자세한 내용은 UserFunction 도움말을 참조하십시오.

savePanelImage() 오브젝트를 이용하여, 프로그램 상에서, HP VEE UserFunction의 패널을 파일로 저장할 수 있습니다. 이 기능을 이용하면 HP VEE UserFunction의 패널을 보고서에 동적으로 임베딩할 수 있습니다. UserObject 의 패널에는 이 기능을 사용할 수 없습니다. savePanelImage() 오브젝트는 Function & Object Browser의 Panel 카테고리의 Built-in Functions 에서 제공됩니다. Formula 오브젝트는 함수를 호출할 수 있습니다. savePanelImage()는 윈도우 비트맵(윈도우에서만)과 JPEG(윈도우 및 UNIX) 그래픽 포맷을 지원합니다. 자세한 내용은 savePanelImage() 오브젝트의 도움말을 참조하십시오.

개발환경

실행모드는 Default Preferences 의 General 탭에서 Compatibility Mode 로 변경되었습니다. 지원되는 모드는 Standard, VEE 4 및 VEE 3 입니다. 또한, Disable Debug Features 체크박스의 위치가 Debug 영역으로 이동되었습니다. VEE 4 및 VEE 3 모드는 HP VEE 4.x 에서 설정한 호환정의를 그대로 유지합니다. 아래 설명된 기타 사소한 변경도 있었는데, 원래의 모드에서 프로그램을 실행하면, 이들은 기존 프로그램에는 영향을 미치지 않습니다.

새로이 적용된 Standard 모드는 VEE 4 모드의 확장기능이며, 프로그램의 호환에 영향을 미치는 중요 변경사항도 있습니다. 대부분의 변경 내용은 ActiveX 오토메이션 기능과 관련되어 있습니다. ActiveX를 사용하지는 않지만 아래에 설명된 기능을 사용한다면 프로그래밍 방식에 영향을 미칩니다. ActiveX 오토메이션 및 컨트롤에 대한 더 자세한 내용은 ActiveX Support을 참조하십시오.

VEE 5.0 에서 새로운 프로그램은 Standard 모드로 열립니다. 이전 프로그램은, 원하는 경우, in Default Preferences에서 수작업을 통해서 새로운 모드로 변경되어야 합니다. 프로그램을 Standard 모드로 변경할 때, 에러가 발생하고, 더 이상 허용되지 않는 목록이 표시될 수 있습니다. HP VEE 가 Standard 모드로 전환되기 전에 프로그래머가 이들 내용을 수정해야 합니다. HP VEE 는 이들 에러를 수정하기 위해서 작성된 프로그램을 이전 상태로 복구하지는 않습니다. Standard 모드의 호환성 변경에 대한 요약은 아래에 설명되어 있으며 이 내용을 이용하면 에러를 수정하는데 도움이 됩니다.

주의

호환 모드에 대한 자세한 내용은 HP VEE Advanced Programming Techniques 매뉴얼의 부록 “Using the Compatibility Mode”을 참조하십시오. HP VEE 3.x 프로그램을 Standard 모드로 변환하기 위해서는 그 프로그램이 VEE 4 모드에서 실행되는지 먼저 확인하고, Standard 모드로 변환해야 합니다.

Standard 모드 지원을 위해서 변경된 내용:

  • HP VEE 프로그램이 컴파일 됩니다.

  • Formula 오브젝트에서:

    • ActiveX 오토메이션을 사용하기 위해서 SET 및 ByRef 키워드가 추가되었으며, 이들은 다른 터미날에서 사용할 수 없음.

    • excel.worksheets(1).cells(1,2) = 2 등과 같은 구문이 ActiveX 오토메이션을 위해서 사용됨

    • [1 2 3] 과 같이 콤마를 사용하지 않고 어레이를 생성하고, Formula 오브젝트에서 이탈하면 에러가 발생함

    • 1 과 같은 값은 Interger의 경우 1 을, 실수의 경우는 1.0을 리턴함. 이전에는 양쪽 모두 실수값을 리턴하였음

    • ActiveX 오토메이션 기능을 사용하기 위해서 새로운 2 가지 기능이 추가되었음. CreateObject() and GetObject().

  • Default Preferences대화상자에서 Delete Variables at PreRun 을 선택한 경우, 전역변수가 ActiveX controls 을 참조하고 있으면, 그 전역변수를 삭제할 수 없음

  • Declare Variable 오브젝트는 ActiveX 오토메이션 기능을 사용하기 위해서 타입이 Object인 새로운 변수타입을 제공함

  • 새로운 변수 타입인 Object 타입은 입력터미날의 Required Type에서도 선택하여 사용할 수 있음. 강제사항은 아님

  • Device 메뉴에서 새로운 메뉴가 제공됨.: ActiveX Automation References..., ActiveX Control References... 및 ActiveX Controls.

  • Global 네임스페이스 규칙 변경:

    • Local UserFunctions, Library names, 선언된 전역변수, 선언되지 않은 전역변수 및 local to library 선언된 변수가 모두 동일한 네임스페이스에 존재하면, 중복되는 이름을 사용할 수 없음.

    • Library에서, 지역 UserFunctions 과 local-to-library 선언된 변수가 동일한 네임스페이스에 존재하면 동일한 이름을 사용할 수 없음.

  • To String 및 From String 등의 오브젝트에서 READ TEXT 트랜잭션이 EXCLUDE CHARS 의 TOKEN 포맷을 사용할 때, 읽기 포인터가 동작하는 방법이 변경되었음. 새로운 버전에서는, READ TEXT 트랜잭션 후, 포인터가 다음 non-excluded 문자로 이동하여, 다음 트랜잭션을 준비함. VEE 3 및 VEE 4 에서는 포인터가 excluded 문자에서 정지함.

  • VEE 3 및 VEE 4 모드에서, EXECUTE REWIND트랜잭션을 사용하는 To File 또는 From File 오브젝트에서 To DataSet 이나 From DataSet 오브젝트와 동일한 파일에 접근하면 예기치 못한 상황을 발생하여, 데이터가 부정확하게 쓰여짐. Standard 모드에서는, 이러한 예기치 못한 상황이 수정되어 데이터가 정확이 작성됨.

모든 모드에서의 변경 내용:

  • 이전 버전의 프로그램을 열면, 이들 프로그램이 저장된 상태에 따라서 VEE 3 또는 VEE 4 모드로 열립니다. [1 2 3] 과 같이 콤마를 사용하지 않은 어레이 구문은 프로그램이 로딩될 때 다시 파싱되어 콤마가 자동입력됩니다.

  • lib.func(a,b) = RightHandExpr 와 같은 새로운 구문형식이 Formula 오브젝트에서 허용됩니다.

이 내용은 모든 모드에서 올바르게 파싱되며, Standard 모드에서만 올바르게 실행됩니다.(VEE 4 및 VEE 3 런타임 모드에서는 에러 발생)

  • UNIX 프로그램은 Standard 모드에서 사용할 수 있습니다. 이것은 위에서 설명한 바와 같이 전역 네임스페이스에 영향을 미칩니다. 그러나, ActiveX 는 UNIX 에서는 지원되지 않으므로 ActiveX 메뉴항목은 나타나지 않습니다. CreateObject()와 같이 ActiveX를 지원하는 HP VEE함수를 호출하는 프로그램은 에러를 발생합니다. 선언된 오브젝트 변수타입을 가진 Standard 모드 프로그램은 UNIX에서 로딩될 수 있지만, 정상적으로 실행되지는 않습니다.

Select Function

이 대화상자의 이름이 Function & Object Browser(Device 메뉴)로 변경되면서, 기존 math 연산자 및 함수와 함께 ActiveX 오토메이션과 컨트롤을 여기서 제공합니다. UNIX 에서는 Function Browser 입니다. Function and Object Browser 에 대한 더 자세한 내용은 HP VEE Advanced Programming Techniques 매뉴얼의 "Using ActiveX Objects and Controls" 를 참조하십시오.

클립보드 지원기능 확장

비트맵 렌더링을 지원하는 다른 윈도우 프로그램에 HP VEE의 오브젝트를 cut/copy/paste 할 수 있습니다. 이전 버전의 VEE에서는 VEE 프로그램 내에서만 오브젝트를 cut/copy/paste 할 수 있었습니다. Cut 또는 Copy할 하나 이상의 오브젝트를 선택하고 HP VEE Edit 메뉴 또는 클립보드로 오브젝트를 렌더링할 툴바를 사용합니다. UserObject 및UserFunction 의 오브젝트메뉴에 Copy 메뉴가 추가되었습니다.

RunTime 프로그램 보안 기능 향상

이 내용은 .vxe 파일에만 적용됩니다. 작성한 VEE 프로그램의 RunTime 버전을 바이너리 모드로 저장하여 파일 크기를 작게하고 보안기능을 향상하였습니다.(File => Save Secured RunTime Version) Default Preferences 대화상자의 General 탭에서, Binary RunTime File Format 옵션이 디폴트로 선택되어 있습니다. 이 옵션항목을 체크하지 않으면 ASCII 포맷으로 저장됩니다. 향상된 보안기능으로 인해서, .vxe 가 바이너리 포맷으로 저장되어 있든 그렇지 않든, HP VEE는 더 이상 .vxe 파일을 다른 프로그램에 통합하지 않습니다. 그러나 .vxe 파일로 저장된 라이브러리는 계속하여 임포트합니다.

HP VEE 도움말

다음의 기능을 제공하여 정보를 더 쉽게 사용할 수 있습니다.:

  • HP VEE 가 실행되지 않고 있을 때, F1 키를 누르면 해당 오브젝트의 도움말이 표시됩니다. 프로그램의 디테일뷰에서 F1 키를 누르면 최종 선택되었던 오브젝트의 도움말이 표시됩니다. 이 외의 경우에는 HP VEE 도움말 윈도우가 표시됩니다.

  • Help 메뉴에 유용한 웹사이트 링크가 포함되었습니다.(윈도우에서만 제공)

  • HP VEE 도움말 윈도우에는 HP VEE 예제 프로그램에 대한 요약과 도움말에서 이들 프로그램을 직접 실행할 수 있는 링크가 포함되었습니다.


개요

VEE에서 계측기를 제어하는 방법은 다음과 같습니다:

• Direct I/O 오브젝트는 하드웨어 인터페이스를 통하여 해당 계측기의 명령을 직접 송신하고 데이터를 수신할 수 있습니다.

• VXIplug&play 드라이버는 C언어의 함수를 호출하여 계측기를 제어합니다. 이들은 Agilent Technologies 및 계측기를 제공하는 벤더들로부터 제공됩니다.

• NI Data Acquisition 라이브러리는 내쇼날 인스트루먼트의 PXI/PCI 카드를 연결한 계측기를 제어하는 데 사용할 수 있습니다. 또한 일부 SCXI를 지원합니다.

• “패널” 드라이버는 컴퓨터 화면을 통하여 계측기를 제어할 수 있는 간단한 사용자 인터페이스(또는 프론트 패널이라고 하기도 함)를 제공합니다. VEE 패널 드라이버에서 파라미터를 변경하면, 이 파라미터에 해당하는 계측기의 상태도 변경됩니다. 패널 드라이버는 VEE 구매시 함께 제공되며 450 여 종류의 계측기에 대한 드라이버가 제공됩니다.

• I/O 라이브러리는 PC 플러그인 보드를 제어하기 위하여 임포팅 될 수 있고, Call 오브젝트를 사용하여 라이브러리로부터 함수를 호출합니다. 이 라이브러리들은 보통 DLL(Dynamic Link Libraries) 형태로 제공됩니다.

패널 드라이버

Agilent VEE는 450 여 종류의 패널 드라이버를 제공합니다. 패널 드라이버는 VEE 프로그램에서 디스플레이에서 계측기의 설정을 물리적으로 제어할 수 있습니다. 패널 드라이버는 사용상의 편의성을 제공하고, 개발 시간을 크게 절약할 수 있습니다. 다음 그림은 패널 드라이버의 사례입니다.

플러그인 보드와 I/O 라이브러리

PC 플러그인 보드를 제어하기 위해서 일반적으로 DLL(Dynamically Linked Libraries)형태의 I/O 라이브러리들이 PC 플러그 인 보드와 함께 제공됩니다. (이들 DLL들은 PC 플러그인 보드 제작사로부터 제공됩니다.) VEE는 Call 오브젝트를 사용하여 라이브러리 함수를 호출하여 PC 플러그인 보드를 제어합니다. 다음 그림은 VEE에서 사용 가능한 함수를 만드는 Import Library 오브젝트의 사례입니다.

NI 데이터수집 라이브러리

NI의 데이터수집 라이브러리를 VEE에서 사용할 수 있습니다. 지원되는 라이브러리는 niDMM, niSWITCH, niFGEN, niSCOPE, niDQAmx, 및 niDAQ 입니다. 다음 그림은 VEE에서의 niDMM ConfigureMeasurement 트랜잭션 예제입니다.

VXIplug&play 드라이버

VXIplug&play 드라이버는 계측기 종류에 따라서 계측기 제조사 또는 Agilent Technologies사에서 제공됩니다. (VXIplug&play 드라이버의 리스트는 Agilent Technologies의 VEE 자료나 Introduction to VXIplug&play를 참조하십시오. 타 회사의 VXIplug&play 드라이버는 계측기 제조사에 문의해야 합니다.) VEE는 VXIplug&play 드라이버를 호출하여 계측기를 제어합니다. 다음 그림은 VEE에서 VXIplug&play 드라이버를 호출하는 예제입니다.

다른 I/O 기능

1 I/O [image] Advanced I/O 서브 메뉴에 있는 다음과 같은 VEE의 I/O 항목을 참조합니다: Interface Operations, Instrument Event, Interface Event, 및 MultiInstrument Direct I/O.

2 I/O 메뉴에 있는 Bus I/O Monitor를 사용하여 버스의 동작을 디스플레이하고, 인쇄하고, 저장할 수 있습니다.

3 VEE는 프로그램상에서 계측기를 검색하기 위한 ActiveX Automation 서버를 제공합니다.

4 I/O 설정을 실행시에 프로그램상에서 변경할 수 있습니다.

관련정보

실습 3-1: 계측기 설정

실습 3-2: 패널 드라이버 사용법

실습 3-3: Direct I/O 사용법

Using PC Plug-in Boards

Using NI Data Acquisition in VEE

IVI-COM 및 the Instrument Manager

Using a VXIplug&play Driver

Using ActiveX Automation in VEE


ActiveX Automation in Agilent VEE

Agilent VEE에서의 ActiveX Automation

이 단원에서 사용되는 ActiveX Automation은 Automation 서버 어플리케이션(예, MS Excel, MS Word, MS Access, …)의 Automation 컨트롤러로서 동작하기 위한 VEE의 능력을 말합니다. 이 실습은 측정 프로그램의 보고서를 생성하기 위한 Microsoft의 ActiveX 기술의 사용방법에 초점을 두고 설명합니다.

관련정보: Lab 6-1: 실습 6-1: Agilent VEE 데이터를 MS Excel로 전송

Lab 6-2: 실습 6-2: 측정결과를 MS Excel 템플릿으로 전송하는 Agilent VEE 프로그램 생성

Lab 6-3: 실습 6-3: MS Word를 이용한 Agilent VEE 보고서 작성


사용할 수 있는 IO 인터페이스

다음 표는 각 플랫폼에서 사용할 수 있는 I/O 인터페이스 목록입니다.

플랫폼 | 사용 가능한 I/O 인터페이스
Windows 2000 및 Windows XP | GPIBa, Serial,GPIO, USB, TCP/IP, NIDAQ, VXI


코드 자동완성기능 사용하기

코드 자동완성 기능으로 코드 자동 윈도우를 통하여 유효한 멤버, 속성 또는 변수를 빠르게 사용할 수 있습니다. (다음 그림)

코드 자동완성 기능 제공

  • 자동으로 코드 자동완성 기능 제공하기

  1. 코드 자동완성 윈도우는 사용할 수 있는 모든 선택항목을 자동으로 표시하고, 해당 항목에 대한 간략한 설명을 표시합니다. 이것을 즉시 완성(Instant Completion)이라고 합니다.

즉시 완성에서 사용할 수 있는 항목은 다음과 같습니다.

        • 변수(Global, Local to Context, Local to Library)

        • VEE 상수

        • 터미날(현재의 Formula 오브젝트의 입력터미날 및 출력터미날 포함. 출력터미날 "Result"는 포함되지 않음)

        • VEE 내장함수

        • .NET 네임스페이스 및 클래스

        • COM 상수

  2. Formula 오브젝트에서 오브젝트(OK 버튼, Toggle 컨트롤, .NET 오브젝트, COM 오브젝트 등의 VEE 오브젝트)의 이름 다음에 "."을 입력하면, 코드 자동완성 윈도우가 자동으로 표시되면서 해당 오브젝트에서 사용할 수 있는 모든 멤버와 속성을 제공합니다. 다음은 코드 자동완성 윈도우의 예제 입니다. arraylist는 .NET 오브젝트입니다. arraylist의 모든 멤버가 코드 자동완성 윈도우에 리스트로 표시됩니다.

VEE 오브젝트(예, OK 버튼, Label, 등)의 Declared Name 속성을 설정한 경우에는, 해당 오브젝트의 속성도 코드 자동완성 윈도우에 표시됩니다. Declared Name 속성에 대한 자세한 정보는 프로그램 실행 중 속성 변경을 참조하십시오.

  3. 3. 네임드 오브젝트에 대하여 색상 속성을 설정하기 위하여 '='를 사용하거나, 미리 정의된 COM 상수 오브젝트의 속성을 설정하기 위하여 '=?을 사용하거나, 열거형 타입의 .NET 오브젝트의 속성을 설정하기 위해 '=?을 사용하는 경우에는, 코드 자동완성 윈도우는 '='이 입력된 다음에 나타나고 모든 사용할 수 있는 항목이 표시합니다. 다음 그림에서, XYSin은 네임드 오브젝트입니다. 모든 속성이 코드 자동완성 윈도우에 리스트로 표시됩니다.

다음 그림에서는, g_ActiveMovie은 COM 오브젝트입니다. 이 오브젝트의 Appearance 속성은 COM 상수입니다. 코드 자동완성 윈도우는 '='이 입력된 다음에 나타납니다.

다음 그림에서는, 버튼은 .NET 오브젝트입니다. 이 오브젝트의 Anchor 속성은 열거형 타입입니다. 코드 자동완성 윈도우와 네임스페이스는 '='이 입력된 다음에 나타납니다.

  • • 수동으로 코드 자동완성 기능 제공하기

입력필드에 커서가 있는 상태에서, "Ctrl + SPACE"를 누르면 코드 자동완성 윈도우와 함께, 사용할 수 있는 모든 항목이 코드 자동완성 윈도우에 표시됩니다. 사용할 수 있는 항목이 없는 경우에는 윈도우가 표시되지 않습니다. 다음 그림은, "Ctrl + SPACE"를 눌러서 코드 자동완성 윈도우를 표시한 경우입니다..

변수 이름이나 네임스페이스 이름을 입력하는 중간에 코드 자동완성 윈도우가 트리거 된 경우에는 사용할 수 있는 모든 변수와 .NET 네임스페이스가 리스트로 표시됩니다.

코드 완성하기

코드 자동완성 윈도우에서 임의의 항목을 더블 클릭하거나, 항목을 선택하고 탭키 또는 엔터키를 누르면 해당 항목이 선택됩니다. 선택항목의 내용을 수동으로 입력할 수도 있습니다. 항목을 수동으로 입력하는 동안에는 가장 유사한 항목이 하이라이트 됩니다. 다음 그림에서는, Con이 입력되는 동안에, Contains이 하이라이트 됩니다. 항목을 선택하면 해당 항목에 대한 간략한 설명이 나타납니다.

.

주의사항

VEE 코드 자동완성 기능은 디폴트로 인에이블됩니다. 메뉴 File => Default Preferences의 General 탭 아래에서 이 기능을 디스에이블 할 수도 있습니다.

Default Preferences 대화상자에서, 기본제공 함수 또는 COM 상수에 대한 코드 자동완성 기능을 인에이블 하거나 디스에이블 할 수도 있습니다.

관련정보

코드 인싸이트 기능


코드 인싸이트 기능

Formula 오브젝트에서 함수를 입력할 때, 코드 인싸이트 기능이 제공됩니다. 코드 인싸이트 윈도우(코드 인싸이트 윈도우)에는 현 시점에서 사용할 수 있는 함수의 종류와 인자가 표시됩니다. 코드 인싸이트 윈도우는 네스팅된 함수에 대해서도 표시됩니다.

코드인싸이트 기능 트리거하기

Formula 오브젝트에서 함수 이름(예, VEE 사용자 함수의 이름, .NET 메서드, 등) 다음에 괄호 열기를 입력하면, 코드 인싸이트 윈도우(즉, 노란색 툴-팁)가 표시됩니다. 이 윈도우에는 현 시점에서 사용할 수 있는 함수와 그 함수의 리턴값과 파라미터가 표시됩니다. 코드 인싸이트 윈도우의 세부 내용은 표시되는 내용에 따라서 다양합니다. 예를 들어, .NET 함수에 대한 세부 설명은 .NET 어셈블리가 해당 XML 문서 파일과 함께 제공된 경우에만 나타납니다. 현재 입력해야할 인자는 굵은 글씨로 디스플레이 됩니다. 다음 그림을 참조하십시오:

"2 of 9 METHOD Int32 IndexOf (System.Char value)"이 코드 인싸이트 윈도우에 디스플레이 되었습니다.

'2 of 9'는 동일한 이름 "IndexOf"를 가진 9개의 메서드가 있고, 이것은 두 번째 메서드라는 것을 의미합니다. 코드 인싸이트 윈도우에서 위 또는 아래 화살표를 누르면, 9 개의 메서드가 차례로 표시됩니다. Int32가 리턴값 입니다. 이 메서드는 하나의 인자를 사용하고 있습니다.

코드 인싸이트 윈도우 닫기

코드 인싸이트 윈도우가 디스플레이 된 상태에서, 코드 인싸이트 윈도우를 닫기 위해서는 ESC 키를 누르거나, 괄호 닫기를 입력합니다. 커서를 콤마 또는 가장 왼쪽에 있는 괄호 열기를 지나서 이동하여도 이 윈도우가 사라집니다.

함수를 완성하기 전에 코드 인싸이트 윈도우가 닫힌 경우에 다시 이 윈도우를 보기 위해서는, CTRL+SHIFT+SPACE를 누릅니다.

주의사항

코드 인싸이트 기능은 디폴트로 인에이블 됩니다. 메뉴 File [image] Default Preferences의 General 탭 아래에서 이 기능을 디스에이블 할 수도 있습니다.

코드 인싸이트가 지원되는 오브젝트

  • .NET 오브젝트의 메서드

  • 로컬 User Functions

  • 임포팅된 User Functions

  • 기본제공 함수

  • 임포팅된 리모트 함수

  • 임포팅된 컴파일 함수

  • COM 오브젝트

관련정보

코드 자동완성기능 사용하기


VEE에 사용된 키워드 및 상수

키워드

키워드는 Agilent VEE에 의해 사용이 예약되어 있으며 생성하는 오브젝트나 터미날의 이름 또는 IO 트랜잭션에서 사용할 수 없습니다.

다음 표는 생성하는 오브젝트나 터미날의 이름으로 사용할 수 없는 모든 키워드를 표시합니다.

AND | ASAWF | ASBOOLEAN | ASCOMPLEX | ASCOORD
ASDOUBLE | ASFS | ASINT | ASINT16 | ASINT32
ASINT64 | ASINTEGER | ASLONG | ASLONGINT | ASPCOMPLEX
ASREAL | ASREAL32 | ASREAL64 | ASSHORT | ASSPECTRUM
ASSTR | ASSTRING | ASTEXT | ASUINT8 | ASWAVEFORM
Builtin | ByRef | COORD | DIV | Main
MAXINT | MAXINT16 | MaxInt16 | MAXINT32 | MaxInt32
MAXINT64 | MaxInt64 | MaxLong | MAXLONG | MaxShort
MAXSHORT | Me | MinInt | MININT | MININT16
MinInt16 | MinInt32 | MININT32 | MinInt64 | MININT64
MOD | NOT | OR | PI | SET
XOR | XYZZY |  |  |

다음 표는 IO 트랜잭션에서 사용할 수 없는 모든 예약된 단어를 표시합니다.

ABORT | ACK | ALL | ARRAY | BEL
BINARY | BINBLOCK | BOOL | BOOLEAN | BREAK
BS | BYTE | CAN | CASE | CHAR
CLEAR | CLOSE | CLOSEREAD | CLOSEWRITE | CMD
CMND | CONTAINER | COORD | COUNT | CPX
CR | CTL | CTS | DATA | DATAREADY
DATE | DC1 | DC2 | DC3 | DC4
DCL | DEG | DELETE | DELTIME | DLE
DMY | DSR | DTR | ECL | EM
ENQ | EOI | EOL | EOT | EQUAL
ERR | ESC | ETB | ETX | EXCLUDE
EXECUTE | EXT | FF | FIX | FS
FW | GET | GRAD | GS | GTL
H12 | H24 | HEX | HM | HMS
HT | INCLUDE | INCR | INT | INT16
INT32 | INT64 | INTERVAL | IOCONTROL | IOSTATUS
ITEM | LF | LISTEN | LJ | LLO
LOCAL | LOCALLOCKOUT | LOCK | MASK | MAXFW
MEM | MLA | MSG | MTA | NAK
NOEND | NOP | NUL | OCT | OF
OFF | ON | PASS_CONTROL | PCTL | PCX
PPC | PPU | PREFIX | PULSE | QSTR
RAD | READ | REAL | REAL32 | REAL64
REG | REMOTE | RESET | REWIND | RJ
RS | SCI | SDC | SEC | SEND
SET | SI | SIGN | SO | SOH
SPD | SPE | SPEC | SPOLL | STATE
STD | STR | STS | STX | SUB
SYN | TALK | TCT | TEXT | TIME
TOKEN | TRIGGER | TTL | UNL | UNLOCK
UNT | US | VT | WAIT | WDMY
WF | WRITE | RTS |  |

주의사항

디폴트로 True와 False는 Boolean 데이터로 간주됩니다. True와 False를 오브젝트 이름으로 사용하는 것은 권장하지 않습니다.

상수

다음 표는 Agilent VEE에 있는 상수와 해당 값을 표시합니다:

상수 | 값
MaxInt | 2147483647
MinInt | -2147483648
MaxInt16 | 32767
MinInt16 | -32768
MaxInt32 | 2147483647
MinInt32 | -2147483648
MaxInt64 | 9223372036854775807
MinInt64 | -9223372036854775808
MaxLong | 2147483647
MaxShort | 32767
PI | 3.142


NI-DAQmx 드라이버

VEE 8.0 버전부터는, VEE는 NI의 NIDAQmx 라이브러리를 지원합니다.

VEE NI-DAQmx 드라이버는 다른 VEE NIDAQ 드라이버와 유사하게 동작합니다. -- NI-DMM, NI-SCOPE, NI-SWITCH, NI-FGEN 및 기존 NIDAQ. To/From NI-DAQmx 트랜잭션 오브젝트는 NI의 NI-DAQmx 라이브러리에 있는 대부분의 함수를 사용할 수 있습니다. 이들 트랜잭션은 NI의 NI-DAQmx C Reference Help 파일에 있는 함수와 1대1로 일치 합니다. 트랜잭션 리스트를 브라우징 하는 동안에 "Function Help" 버튼을 누르면, 해당 함수에 대한 도움말을 제공합니다. 여기서는 NI-DAQmx API에 익숙하고 NI의 DAQmx “물리적인 채널 구조”를 이해한다는 것을 전제로 합니다.

VEE NI-DAQmx 드라이버는 다른 VEE NIDAQ 드라이버와는 다릅니다. 다른 드라이버는 VEE Instrument Manager에서 표시되는 특정 디바이스에 종속되어 있지만, NI-DAQmx 라이브러리는 그렇지 않습니다. NI-DAQmx 트랜잭션은 NI "물리적인 채널 구조"를 사용하여 동일한 트랜잭션 오브젝트에서 여러 개의 디바이스/포트를 프로그램 할 수 있습니다. 이러한 이유로, "물리적인 채널" 파라미터에 대하여 제공되는 디폴트("Dev1/Line0" 등) 값은 어떤 종류의 인자가 입력되어야 하는지에 대한 도움말 기능을 합니다. 이 기능이 제공되므로, NI의 DAQmx "물리적인 채널 구조"를 익숙하게 사용하고, 적절한 스트링을 입력할 수 있습니다.

관련정보

To/From NIDAQ, NI-FGEN, NI-SCOPE Fetch/Read 함수, VEE에서 NI 데이터수집 사용법


VISA 형식 디바이스의 표준화

I/O 디바이스를 선언하고/사용할 때 동일 표준의 접근방식(VISA)을 제공하기 위하여 오래되어 잘 맞지 않는 I/O 디바이스(SICL & VISA가 혼용된)를 점차 제거하고 있습니다. 사용자들에게 새로운 형식의 계측기를 사용할 것을 “권장” 하지만, 이전 버전에 대한 역 호환성은 유지됩니다.

Instrument Manager는 NIDAQ 디바이스를 제외하고, ACE (Agilent Connection Expert)에서 설정된 계측기 만을 검색 합니다. ACE에서 계측기에 대한 필요한 설정 작업을 마친 다음에, VEE Instrument Manager에서 Find Instruments 버튼을 누르면 계측기가 연결되어 있는 한 향후에 추가로 설정하는 작업 없이 해당 게측기를 검색합니다.

디폴트로, Agilent VEE 8.0은 SICL 형식의 디바이스는 Instrument Manager에 추가하지 않습니다. 전통적인 디바이스를 찾기 위해서는, Default Preference에 있는 IO 탭 아래에서 Enable Pre 8.0 Legacy IO 항목을 체크 하십시오.

주의사항

Agilent VEE 7.5에서는, Instrument Manager에 있는 Find Instruments를 사용하면 항상 Serial 인터페이스를 검색했습니다. Agilent VEE 8.0에서는, Serial 인터페이스는 시리얼 디바이스가 연결된 경우에만 검색합니다.

관련정보

Instrument Manager 대화상자