# Fluke NetDAQ

> Fluke NetDAQ(2640A, 2645A)와 2680 Series(2680A, 2686A) 데이터 수집 장치를 태그로 구성하고, 32비트 보조 프로세스에서 Fluke 자체 라이브러리로 읽습니다. 장치와 계측기 카드, 태그의 포인트와 기능, 읽기, 쓰기, 그리고 드라이버가 Logic에 맡기는 일을 설명합니다.

**Fluke NetDAQ** 드라이버는 Fluke의 네트워크형 데이터 수집 장치를 읽고 씁니다. 대상은 NetDAQ 2640A와 2645A, 그리고 2680 Series의 2680A와 2686A입니다. 장치 하나는 네트워크의 장비 하나이고,태그 하나는 그 포인트 하나입니다. 포인트는 아날로그 채널과 그 채널에서 측정하는 것(열전대, 직류 전압,저항, 측온 저항체), 디지털 라인 하나, 2680 Series DIO 모듈의 릴레이 하나, 또는 적산기입니다.스테이션은 태그로 장비를 구성합니다. 연결할 때마다 구성 전체를 보내 장비에 있던 구성을 바꾸므로,장비는 스테이션의 태그가 말하는 그대로 측정합니다.

드라이버는 Fluke 자체 라이브러리 `NTOOL32.dll`을 통해 장비와 통신합니다. 이 장비들의 LabVIEW드라이버가 기반으로 하는 바로 그 라이브러리이며, 스테이션이 드라이버와 함께 배포합니다. 드라이버와장치는 [Connector](connector) 페이지에서 추가합니다.

## 시작하기 전에 {#before-you-start}

| 필요한 것 | 이유 |
| --- | --- |
| 컴퓨터의 32비트 Microsoft Visual C++ 2005 런타임 | Fluke 라이브러리에 필요하며, Ganter Lab에는 이를 포함할 수 없습니다. 스테이션이 있는지 직접 확인하고, 없는 동안에는 드라이버 페이지, 각 장치의 페이지, 각 장치의 마지막 오류가 이를 알리며 [Visual C++ 2005 런타임 설치](#installing-the-visual-c-2005-runtime)의 단계를 안내합니다. |
| 네트워크에 연결된 장비. 일반 네트워크 모드(General)이고, IP 주소와 기본 채널 번호(BCN)가 전면 패널에 설정되어 있어야 합니다 | 스테이션은 장비의 IP 주소로 TCP 포트 4369를 통해 연결하고, Fluke 라이브러리는 기본 채널 번호로 장비를 부릅니다. |
| 한 번에 한 컴퓨터 | 장비는 한 컴퓨터와만 통신합니다. 다른 프로그램(Fluke DAQ, NetDAQ Logger, LabVIEW 프로그램)이 사용하는 동안 스테이션은 장비를 열 수 없습니다. |
| 내장 소프트웨어가 2.0 이상인 NetDAQ | Fluke 라이브러리는 그보다 오래된 NetDAQ를 구성하지 않습니다. 장치 연결이 실패하고 장비를 업데이트해야 한다고 알려 줍니다. |

이 드라이버는 Windows에서만 동작합니다.

## Visual C++ 2005 런타임 설치 {#installing-the-visual-c-2005-runtime}

스테이션은 장치를 기다리지 않고 Windows가 Fluke 라이브러리를 불러올 수 있는지 직접 확인합니다. 드라이버 페이지, 그 장치의 페이지 또는 에이전트가 처음 물을 때 확인하고, 런타임이 없는 동안에는 30초마다 다시 확인합니다. Connector가 시작되기 전에는 런타임이 있는지 알 수 없으므로 아무것도 표시하지 않습니다. 없는 동안에는 다음과 같습니다.

| 위치 | 표시 내용 |
| --- | --- |
| 드라이버 페이지 | 주의 알림 "이 컴퓨터에는 Microsoft Visual C++ 2005 런타임이 설치되어 있지 않습니다"와 아래 단계. 링크는 Microsoft 페이지를 컴퓨터의 브라우저에서 엽니다. |
| 각 장치의 페이지 | 같은 알림. |
| 각 장치의 마지막 오류 | 같은 단계를 드라이버 자체 원인과 마찬가지로 영어로 표시합니다. |
| 에이전트 | `driver_capabilities`가 `prerequisite` 아래에 `installed`를 false로 하여 단계를 알려 줍니다. |

설치 단계:

1. Microsoft 페이지 [Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package MFC Security Update](https://www.microsoft.com/download/details.aspx?id=26347)를 엽니다. Microsoft의 지원되는 최신 Visual C++ 다운로드 목록이 Visual C++ 2005에 대해 알려 주는 페이지입니다.
2. 64비트 Windows에서도 `vcredist_x86.exe` 파일(2.6MB)을 고르십시오. Fluke 라이브러리는 32비트이므로 `vcredist_x64.exe`로는 되지 않습니다.
3. 관리자 권한으로 실행하십시오. Windows가 컴퓨터를 다시 시작하라고 요청할 수 있습니다.

설치된 프로그램 목록에 이미 "Microsoft Visual C++ 2005 Redistributable"이 보이더라도 그대로 설치하십시오. 이미 있는 것에는 C 런타임만 있고 Fluke 라이브러리에 필요한 MFC 부분이 없을 수 있습니다.

설치하고 30초 안에 알림이 사라지고, Ganter Lab을 다시 시작하지 않아도 이 드라이버의 장치가 지금 설정 그대로 연결됩니다.

## 장치 {#device}

이 드라이버의 장치에는 연결 카드의 **호스트** 칸과 그 아래의 **계측기** 카드가 있습니다.

| 칸 | 의미 | 기본값 |
| --- | --- | --- |
| **호스트** | 네트워크에서 장비의 IP 주소, 또는 IPv4 주소로 해석되는 이름. 포트는 없습니다. 모든 장비가 TCP 포트 4369에서 응답합니다. | 비어 있음 |
| **기본 채널** | 장비 전면 패널에 설정한 기본 채널 번호(BCN)이며 1부터 99까지입니다. Fluke 라이브러리가 이 번호로 장비를 부르므로 스테이션의 두 장치가 같은 번호를 쓸 수 없습니다. | 비어 있음 |
| **스캔 속도** | 느림, 보통, 빠름. 느린 스캔일수록 적분 시간이 길어 분해능이 높고 잡음이 적으며, 빠른 스캔일수록 초당 더 많은 채널을 스캔합니다. | 느림 |
| **읽기 주기 (ms)** | 스테이션이 장치의 태그를 읽는 간격입니다. 태그가 자기 간격을 정하면 그것을 따릅니다. 장비는 장치의 태그 중 가장 짧은 읽기 주기로 스캔하므로, 읽을 때마다 새 스캔이 있습니다. | 1000 |

새 장치에는 호스트도 기본 채널도 없으며, 스테이션은 둘 다 있을 때까지 연결을 시도하지 않습니다.그 행은 호스트를 입력할 때까지 "호스트를 아직 입력하지 않음", 그다음 기본 채널을 입력할 때까지"기본 채널을 아직 입력하지 않음"으로 표시되고, 페이지는 무엇을 채워야 하는지 알려 줍니다. 머리글의기본 URI는 `netdaq://192.168.0.21/1?speed=slow`이며 호스트, 기본 채널, 스캔 속도를 나타냅니다.

스테이션의 다른 NetDAQ 장치가 이미 쓰고 있는 기본 채널을 가진 장치는 어느 호스트에서든 저장이 거부됩니다. "기본 채널 번호 5은(는) 이미 Fluke NetDAQ 장치 'Logger'의 것입니다. 다른 기본 채널 번호를 선택하십시오." 기본 채널을 아직 기다리는 장치는 번호를 갖지 않으며, 장치는 다시 저장되어도 자기 번호를 유지합니다.

**계측기** 카드는 스테이션이 마지막으로 연결했을 때 장비가 알려 준 자신의 정보도 보여 줍니다. **장비 모델**(2640A, 2645A, 2680A 또는 2686A)과 내장 소프트웨어의 **펌웨어 버전**이며, 둘 다 저널에도 기록됩니다. 장비가 연결되기 전에는 "아직 읽지 않음"으로 표시됩니다. 둘 다 저장하지는 않으므로 같은 장치가 오늘은 2640A를, 내일은 2645A를 가리켜도 됩니다.

## 태그 주소 지정 {#tag-addressing}

### 포인트 {#the-point}

태그의 신호원 카드에는 태그가 장비에서 읽는 것을 고르는 포인트 선택과, 그 포인트에 필요한 칸이있습니다. 이것들이 태그의 주소 전체입니다.

| 포인트 | 칸 | 데이터 형식 | 접근 | 값 |
| --- | --- | --- | --- | --- |
| **아날로그 채널** | 채널과 **기능**, 기능별 칸 | Double 또는 Float | 읽기 전용 | 기능의 단위로 된 측정값 |
| **디지털 라인** | 라인. NetDAQ에서는 0부터 7, 2680 Series DIO 모듈에서는 0부터 19 | Boolean | 읽기 전용(기본값) 또는 읽기와 쓰기 | 라인이 High인 동안 true |
| **릴레이** | 릴레이. 2680 Series DIO 모듈에서 0부터 7 | Boolean | 읽기와 쓰기(기본값) 또는 읽기 전용 | 릴레이가 닫혀 있는 동안 true |
| **적산기** | 없음 | Int64 또는 Double | 읽기 전용(기본값) 또는 읽기와 쓰기 | 적산기 입력의 카운트 |

NetDAQ는 아날로그 채널에 1부터 20까지 번호를 붙입니다. 2680 Series는 모듈과 채널로 번호를 붙입니다.모듈(1부터 6) 다음에 그 모듈의 채널(01부터 20)이 오므로, 모듈 2의 채널 3은 203입니다. 다른 포인트를고르면, 태그가 그 포인트가 허용하지 않는 데이터 형식이나 접근을 갖고 있던 경우 허용되는 것으로바뀝니다.

### 아날로그 채널의 기능 {#the-function-of-an-analog-channel}

| 기능 | 단위 | 칸 |
| --- | --- | --- |
| **직류 전압** | 볼트 | **레인지**: 자동, `90 mV`, `300 mV`, `3 V`, `30 V`, `50 V`, `150/300 V` |
| **교류 전압** | 볼트 | **레인지**: 자동, `300 mV`, `3 V`, `30 V`, `150/300 V` |
| **저항** | 옴 | **레인지**: 자동, `300 Ω`, `3 kΩ`, `30 kΩ`, `300 kΩ`, `3 MΩ`; **결선** |
| **주파수** | 헤르츠 | 없음 |
| **측온 저항체(RTD)** | 섭씨 | **저항 R0 (Ω)**, 10부터 1010까지(Pt100은 100); **결선**, 기본값은 4선식. 알파 0.00385의 백금 측온 저항체입니다 |
| **열전대** | 섭씨 | **열전대 종류**: J, K(기본값), E, T, R, S, B, C, N, 그리고 2680 Series에서는 L과 U; **열전대 단선 검사**, 기본값은 켜짐 |
| 전류 | 밀리암페어 또는 퍼센트 | **레인지**: `100 mA`(밀리암페어로 읽음) 또는 **4~20 mA(백분율)**(4 mA에서 0, 20 mA에서 100으로 읽음); **션트 저항값 (Ω)**, 전류가 흐르는 저항으로 10부터 250까지(기본값 250) |
| **서미스터** | 섭씨 | **Steinhart-Hart 계수**: 서미스터 데이터시트의 A, B, C이며 각각 0보다 크고 최대 0.1; **결선**. 2680 Series 전용 |

**결선**은 **2선식** 또는 **4선식**입니다. 4선식 채널은 감지 쌍으로 10번 위의 채널을 씁니다(채널 3은13). 그래서 장비나 모듈의 4선식 채널은 1부터 10까지뿐이며, 감지 채널의 태그는 자기 값을 읽지않습니다. 다른 기능을 고르면 그 기능의 레인지와 결선으로 바뀝니다.

일부 레인지와 결선은 한 계열의 입력부에만 있습니다.

| 입력부 | 장비 | 그것에만 있는 것 |
| --- | --- | --- |
| 고속 | 2645A와 2680 Series의 FAI 모듈 | `50 V` 레인지. 측온 저항체와 `300 Ω`, `3 kΩ` 레인지는 4선식만 |
| 정밀 | 2640A와 2680 Series의 PAI 모듈 | `150/300 V` 레인지(채널 1과 11에서는 300 V, 나머지는 150 V) |

어느 장비가 응답할지는 스테이션이 연결할 때에야 알 수 있으므로 패널은 모든 레인지를 보여 줍니다.연결된 장비가 읽을 수 없는 태그는 구성에서 빠지고 그 이유를 오류로 표시하며, 장비의 나머지는구성되고 읽힙니다.

읽기 전용 **신호원 주소 (버스)** 줄에는 드라이버가 받는 주소가 표시됩니다. 예: `ch=3&fn=tc&tc=T&otc=on`, `ch=5&fn=vdc&range=3v`, `ch=1&fn=rtd&r0=100&wires=4`, `ch=9&fn=current&range=4-20ma&shunt=250`, `dio=0`, `relay=2`, `totalizer`.

## 스테이션이 장비를 구성하는 방법 {#how-the-station-configures-the-instrument}

| 단계 | 스테이션이 하는 일 |
| --- | --- |
| 연결 | 기본 채널 번호로 장비를 열고 모델을 읽습니다. |
| 구성 | 장비의 스캔을 멈추고, 태그로 만든 구성을 보내며(아날로그 태그마다 자기 채널을 구성하고 나머지 채널은 꺼짐), 태그 중 가장 짧은 읽기 주기와 장치의 스캔 속도로 스캔을 다시 시작합니다. |
| 장비가 거부한 채널 | 그 채널은 빠지고, 그 태그는 장비가 말한 이유를 표시하며, 나머지를 다시 보냅니다. |
| 연결 해제 | 장비의 스캔을 멈추고 연결을 닫습니다. |
| 연결 끊김 | 장비는 얼마 뒤 스스로 스캔을 멈춥니다. 이것이 PAI 모듈 릴레이의 마모를 막습니다. 스테이션은 다시 연결할 때 장비를 다시 구성합니다. |

장비 전면 패널이나 다른 프로그램에서 한 구성은 바뀝니다. 같은 채널을 서로 다르게 구성하는 두 태그는둘 다 읽을 수 없으며, 두 번째 태그는 첫 번째 태그의 주소를 오류로 표시합니다.

## 읽기 {#reading}

장비는 자기 시계로 스캔합니다. 읽기는 장비의 마지막 스캔을 가져오고, 스캔 하나는 장치의 모든아날로그 태그에 그중 가장 짧은 읽기 주기의 절반 동안 쓰입니다. 2680 Series는 모듈별로 읽습니다.디지털 라인, 릴레이, 적산기도 같은 방식으로 장비에서 직접 읽습니다. 장비의 응답에 따라 태그가보여 주는 것이 정해집니다([값 파이프라인](connector-value-pipeline) 참조).

| 장비 | 태그 |
| --- | --- |
| 측정값 | 태그 자체 단계가 변환하기 전의, 기능 단위로 된 값 |
| 과부하 | 양 또는 음의 무한대 |
| 단선된 열전대(검사 켜짐) | NaN. 숫자가 아닌 값에 대한 태그의 정책이 처리를 정합니다 |
| 구성 직후로 아직 스캔이 없음 | 첫 스캔까지 아무것도 없음 |
| 제때 응답 없음 | 무응답. 응답하지 않은 장치에 대한 태그의 정책이 표시를 정합니다 |
| 연결 끊김, 또는 다른 컴퓨터가 사용 중 | 장치가 다시 연결하고 장비를 다시 구성합니다 |

## 쓰기 {#writes}

| 포인트 | 쓰기가 하는 일 |
| --- | --- |
| **디지털 라인**, **릴레이** | true(또는 1)로 라인을 High로 하거나 릴레이를 닫고, false(또는 0)로 그 반대로 합니다. 다른 값은 거부합니다. |
| **적산기** | 카운트를 0으로 되돌립니다. 받는 값은 0뿐이며 다른 값은 거부합니다. |
| **아날로그 채널** | 아무것도 하지 않습니다. 아날로그 채널은 읽기만 합니다. |

장비가 거부한 쓰기는 거부로 돌아오며, Fluke의 오류 코드와 라이브러리 자체의 설명이 저널에 남습니다.

## Fluke 라이브러리와 32비트 보조 프로세스 {#flukes-library-and-the-32-bit-helper}

Fluke 라이브러리는 32비트 라이브러리여서 64비트 스테이션이 불러올 수 없습니다. 그래서 이 드라이버는 [OPC DA](driver-opc-da) 드라이버처럼 스테이션의 32비트 보조 프로세스 `Lab.Desktop.DriverBridge.exe`에서 동작합니다. 보조 프로세스는 드라이버의 장치가 처음 연결하거나 스테이션이 Visual C++ 2005 런타임을 확인할 때 시작되며, 그 장치와 태그는 다른 것과 똑같이 읽고 쓰고 저널에 기록됩니다. 보조 프로세스가 멈추면 장치는 그것이 멈췄다고 표시하고 새 보조 프로세스를 통해 다시 연결합니다.

라이브러리는 연결하는 장비 목록을 자체 파일 `ccf.cfg`에 보조 프로세스 옆(프로그램 폴더의 `bridge-x86\ccf.cfg`)에 둡니다. 이 파일은 스테이션이 직접 씁니다. 설정할 것은 없으며, 지워도 다음 연결 때 다시 씁니다. 라이브러리는 한 번에 장비 하나만 부르므로 스테이션의 장비는 하나씩 차례로 읽힙니다.

## 알아 둘 한계 {#limits-worth-knowing}

| 하지 않는 일 | 대신 하는 곳 |
| --- | --- |
| 장비 자체의 알람과 알람 출력 | 태그의 [알람](logic-alarms), 그리고 디지털 라인이나 릴레이를 움직이는 Logic 액션 |
| 계산 채널과 채널 연산 | Logic의 [변수](logic-variables) |
| 2686A의 PC Card 기록과 장비의 스캔 대기열 | 스테이션 자체의 이력: [Process](process) 실행 또는 [데이터로그](process-datalogs) |
| 검색 | 없음. 장비마다 호스트와 기본 채널로 추가합니다 |
| macOS | 이 드라이버는 Windows에서만 동작합니다 |
