사용자 도구

사이트 도구


products:mpaino_x

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
products:mpaino_x [2026/09/07 00:48] – 바깥 편집 127.0.0.1products:mpaino_x [2026/10/25 11:33] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 ====== MPAINO 아날로그 입력 X모듈 ====== ====== MPAINO 아날로그 입력 X모듈 ======
  
-MPAINO Series에서 I/O 모듈에 아날로그 입력 X모듈을 추가할 수 있습니다. (쇼핑몰 상세페이지의 옵션)+MPAINO Series는 주문할 때 I/O 모듈에 아날로그 입력 X모듈을 추가할 수 있습니다.
  
 DC 0~5V, DC 0~10V, DC 0(4)~20mA, NTC서미스터 온도센서 입력을 채널별로 딥스위치로 선택하여 사용할 수 있습니다. DC 0~5V, DC 0~10V, DC 0(4)~20mA, NTC서미스터 온도센서 입력을 채널별로 딥스위치로 선택하여 사용할 수 있습니다.
줄 11: 줄 11:
 DC 4~20mA는 ''analogRead2()'', ''analogRead2Avg()'', ''IanalogRead2()'' 함수를 사용합니다. DC 4~20mA는 ''analogRead2()'', ''analogRead2Avg()'', ''IanalogRead2()'' 함수를 사용합니다.
  
-===== 주요 사양 =====+===== 제품 사양서 =====
  
-[[https://www.ilogics.net/docs/_media/products:mpaino-x-body.svg|{{ :products:mpaino-x-body.svg?nolink&180 |MPAINO 아날로그 입력 X모듈}}]]+{{:products:mpaino-option-x-front.png?220|X 아날로그 입력 모듈 전면}}
  
 ^ 항목 ^ 내용 ^ ^ 항목 ^ 내용 ^
줄 40: 줄 40:
 | X5 | 5개 | 20점 | 0~19 | | X5 | 5개 | 20점 | 0~19 |
  
-※ 표의 채널 번호는 아날로그 입력 옵션을 X모듈만으로 구성한 경우입니다. F(PT100 입력)와 혼합한 제품은 출고 구성의 모듈 순서와 채널표를 확인하십시오.+※ 표의 채널 번호는 아날로그 입력 옵션을 X모듈만으로 구성한 경우입니다. F(PT100 입력)와 혼합한 제품은 출고 구성의 모듈 순서와 채널표를 확인해주시기 바랍니다.
  
-  * 주문할 때 사용할 신호 종류와 필요한 입력 점수를 확인하십시오. 4채널은 하나의 측정값을 네 번 읽는 것이 아니라 서로 다른 입력 4점을 의미합니다.+  * 주문할 때 사용할 신호 종류와 필요한 입력 점수를 확인해주시기 바랍니다. 4채널은 하나의 측정값을 네 번 읽는 것이 아니라 서로 다른 입력 4점을 의미합니다.
   * X는 **입력** 모듈입니다. 전압·전류를 출력하려면 Y모듈, PT100 센서를 읽으려면 F모듈이 필요합니다.   * X는 **입력** 모듈입니다. 전압·전류를 출력하려면 Y모듈, PT100 센서를 읽으려면 F모듈이 필요합니다.
   * 선택한 모듈이 조립되어 출고됩니다. 사용자가 모듈을 추가하거나 제거하는 방식이 아닙니다.   * 선택한 모듈이 조립되어 출고됩니다. 사용자가 모듈을 추가하거나 제거하는 방식이 아닙니다.
-  * 다른 옵션과 조합할 때에는 주문 제품의 구성 가능 여부를 확인하십시오.+  * 다른 옵션과 조합할 때에는 주문 제품의 구성 가능 여부를 확인해주시기 바랍니다.
  
 [[products:mpaino|MPAINO 제품군과 옵션 구성 비교 →]] [[products:mpaino|MPAINO 제품군과 옵션 구성 비교 →]]
줄 57: 줄 57:
 ==== 센서 출력에 맞춰 채널별로 설정하십시오 ==== ==== 센서 출력에 맞춰 채널별로 설정하십시오 ====
  
-각 채널에는 ''10V'', ''20mA'', ''NTC'', ''GND'' 설정이 있습니다. 입력 방식에 해당하는 조합을 선택하고 **GND 스위치는 항상 ON으로 유지**하십시오. GND는 출고 시 ON 상태입니다.+각 채널에는 ''10V'', ''20mA'', ''NTC'', ''GND'' 설정이 있습니다. 입력 방식에 해당하는 조합을 선택하고 **GND 스위치는 항상 ON으로 유지**해야 합니다. GND는 출고 시 ON 상태입니다.
  
 ^ 연결할 신호 ^ 10V ^ 20mA ^ NTC ^ GND ^ 읽은 값의 해석 ^ ^ 연결할 신호 ^ 10V ^ 20mA ^ NTC ^ GND ^ 읽은 값의 해석 ^
줄 69: 줄 69:
 **설정할 때 지켜야 할 사항** **설정할 때 지켜야 할 사항**
  
-  - 제품과 연결 기기의 전원을 차단하고 입력 신호가 제거된 상태에서 작업하십시오. +  - 제품과 연결 기기의 전원을 차단하고 입력 신호가 제거된 상태에서 작업해야 합니다. 
-  - 해당 채널의 스위치 묶음인지 먼저 확인하십시오. CH0을 사용할 때 CH1의 스위치를 바꾸어도 CH0 설정은 바뀌지 않습니다. +  - 해당 채널의 스위치 묶음인지 먼저 확인해주시기 바랍니다. CH0을 사용할 때 CH1의 스위치를 바꾸어도 CH0 설정은 바뀌지 않습니다. 
-  - 스위치 몸체에 표시된 **ON 방향**을 기준으로 설정하십시오. 사진의 좌우 방향만 보고 판단하지 마십시오. +  - 스위치 몸체에 표시된 **ON 방향**을 기준으로 설정해주시기 바랍니다. 사진의 좌우 방향만으로 판단해서는 안 됩니다. 
-  - ''10V'', ''20mA'', ''NTC''를 임의로 동시에 ON하지 마십시오. 위 표의 조합을 사용하십시오. +  - ''10V'', ''20mA'', ''NTC''를 임의로 동시에 ON해서는 안 됩니다. 위 표의 조합을 사용해야 합니다. 
-  - 배선과 설정을 다시 확인한 뒤 전원을 공급하십시오.+  - 배선과 설정을 다시 확인한 뒤 전원을 공급해주시기 바랍니다.
  
 프로그램은 DIP 스위치의 위치를 자동으로 알아내지 않습니다. ''analogReadInit()''도 입력 방식을 바꾸는 명령어가 아닙니다. **하드웨어 설정과 프로그램의 환산 범위가 일치해야 합니다.** 프로그램은 DIP 스위치의 위치를 자동으로 알아내지 않습니다. ''analogReadInit()''도 입력 방식을 바꾸는 명령어가 아닙니다. **하드웨어 설정과 프로그램의 환산 범위가 일치해야 합니다.**
줄 79: 줄 79:
 ==== 채널마다 다른 입력을 사용할 수 있나요? ==== ==== 채널마다 다른 입력을 사용할 수 있나요? ====
  
-채널별 스위치로 입력 방식을 선택하므로 CH0은 0~10V, CH1은 4~20mA, CH2는 NTC처럼 설정할 수 있습니다. 프로그램에서도 각 채널에 맞는 읽기 명령어와 환산식을 사용하십시오. NTC 채널에 전압·전류 신호를 인가하지 마십시오.+채널별 스위치로 입력 방식을 선택하므로 CH0은 0~10V, CH1은 4~20mA, CH2는 NTC처럼 설정할 수 있습니다. 프로그램에서도 각 채널에 맞는 읽기 명령어와 환산식을 사용해야 합니다. NTC 채널에 전압·전류 신호를 인가해서는 안 됩니다.
  
 ===== 신호별 연결 방법 ===== ===== 신호별 연결 방법 =====
줄 91: 줄 91:
 | CH3 | CH3 + / CH3 − | 3 | | CH3 | CH3 + / CH3 − | 3 |
  
-같은 채널의 +와 −를 한 쌍으로 사용하십시오. 아래 그림은 **연결 관계를 설명하는 개념도**이며 제품 외형이나 단자의 실제 위치·간격을 나타내는 도면이 아닙니다. 실제 제품의 채널명과 극성을 우선 확인하십시오.+같은 채널의 +와 −를 한 쌍으로 사용해야 합니다. 아래 그림은 **연결 관계를 설명하는 개념도**이며 제품 외형이나 단자의 실제 위치·간격을 나타내는 도면이 아닙니다. 실제 제품의 채널명과 극성을 우선 확인해주시기 바랍니다.
  
 {{ :products:mpaino-x-wiring.svg?760 |전압 출력의 신호 플러스와 리턴, 수동 NTC 센서를 X모듈의 같은 채널 플러스 마이너스에 연결하는 개념도}} {{ :products:mpaino-x-wiring.svg?760 |전압 출력의 신호 플러스와 리턴, 수동 NTC 센서를 X모듈의 같은 채널 플러스 마이너스에 연결하는 개념도}}
줄 97: 줄 97:
 ==== DC 0~5V / 1~5V / 0~10V ==== ==== DC 0~5V / 1~5V / 0~10V ====
  
-  - 센서의 **아날로그 전압 출력 +**를 사용할 채널의 ''+''에 연결합니다. +  - 센서의 **아날로그 전압 출력 +**를 사용할 채널의 ''+''에 연결해주시기 바랍니다. 
-  - 센서의 **신호 리턴(−)**을 같은 채널의 ''−''에 연결합니다. +  - 센서의 **신호 리턴(−)**을 같은 채널의 ''−''에 연결해주시기 바랍니다. 
-  - 센서 전원은 센서 제조사의 결선도에 따라 별도로 연결합니다. 센서 전원 +와 신호 출력 +를 혼동하지 마십시오. +  - 센서 전원은 센서 제조사의 결선도에 따라 별도로 연결해주시기 바랍니다. 센서 전원 +와 신호 출력 +를 혼동해서는 안 됩니다. 
-  - DIP 설정표에서 전압 범위를 선택합니다. 1~5V 센서는 0~5V와 같은 스위치 설정입니다.+  - DIP 설정표에서 전압 범위를 선택해주시기 바랍니다. 1~5V 센서는 0~5V와 같은 스위치 설정입니다.
  
 예를 들어 측정 범위가 0~30000 L/min이고 출력이 0~10V인 유량계는, CH0을 0~10V로 설정한 뒤 0~32767 원시값을 0~30000 L/min으로 환산합니다. 아래 실행 예제에서 같은 조건을 사용합니다. 예를 들어 측정 범위가 0~30000 L/min이고 출력이 0~10V인 유량계는, CH0을 0~10V로 설정한 뒤 0~32767 원시값을 0~30000 L/min으로 환산합니다. 아래 실행 예제에서 같은 조건을 사용합니다.
줄 106: 줄 106:
 ==== DC 0~20mA / 4~20mA ==== ==== DC 0~20mA / 4~20mA ====
  
-해당 채널의 ''20mA''와 ''GND''를 ON으로 설정합니다. 전류 신호는 센서 제조사의 결선도에 따라 **같은 채널의 +/−를 통해 전류가 흐르도록** 연결해야 합니다.+해당 채널의 ''20mA''와 ''GND''를 ON으로 설정해주시기 바랍니다. 전류 신호는 센서 제조사의 결선도에 따라 **같은 채널의 +/−를 통해 전류가 흐르도록** 연결해야 합니다.
  
-**2선식 루프 전원형 센서와 3·4선식 센서는 결선이 같지 않습니다.** 센서의 전원 방식, 전류 출력의 극성, 출력 리턴을 먼저 확인하십시오. 신호원 사양을 모르는 상태에서 전압 입력 예제와 똑같이 연결하거나 채널 +/−에 전원 전압을 직접 인가하지 마십시오. 결선도가 없으면 센서 모델명과 자료를 확인한 후 연결하십시오.+**2선식 루프 전원형 센서와 3·4선식 센서는 결선이 같지 않습니다.** 센서의 전원 방식, 전류 출력의 극성, 출력 리턴을 먼저 확인해야 합니다. 신호원 사양을 모르는 상태에서 전압 입력 예제와 똑같이 연결하거나 채널 +/−에 전원 전압을 직접 인가해서는 안 됩니다. 결선도가 없으면 센서 모델명과 자료를 확인한 후 연결해주시기 바랍니다.
  
 0~20mA와 4~20mA는 하드웨어 스위치 설정이 같습니다. 차이는 프로그램에서 4mA를 측정 범위의 시작값으로 처리하는지 여부입니다. ''analogRead2()''가 센서에 전류를 공급하거나 DIP 설정을 바꾸는 것은 아닙니다. 0~20mA와 4~20mA는 하드웨어 스위치 설정이 같습니다. 차이는 프로그램에서 4mA를 측정 범위의 시작값으로 처리하는지 여부입니다. ''analogRead2()''가 센서에 전류를 공급하거나 DIP 설정을 바꾸는 것은 아닙니다.
줄 115: 줄 115:
  
   - **NTC 10kΩ(25°C), β3950** 규격인지 확인합니다. 저항값만 같고 B값이 다르면 온도 환산이 맞지 않습니다.   - **NTC 10kΩ(25°C), β3950** 규격인지 확인합니다. 저항값만 같고 B값이 다르면 온도 환산이 맞지 않습니다.
-  - 전원이 없는 수동 NTC 센서의 두 선을 같은 채널의 +/−에 연결합니다. +  - 전원이 없는 수동 NTC 센서의 두 선을 같은 채널의 +/−에 연결해주시기 바랍니다. 
-  - 해당 채널의 ''NTC''와 ''GND''를 ON으로 설정합니다.+  - 해당 채널의 ''NTC''와 ''GND''를 ON으로 설정해주시기 바랍니다.
   - ''ntcReadf(ch)''로 °C 값을 읽거나, ''ntcRead(ch)''로 온도 × 10 정수를 읽습니다.   - ''ntcReadf(ch)''로 °C 값을 읽거나, ''ntcRead(ch)''로 온도 × 10 정수를 읽습니다.
  
-PT100, 열전대, 전압 출력형 온도 트랜스미터는 이 NTC 설정의 대상이 아닙니다. 전압·전류 출력형 온도 트랜스미터는 출력 신호에 맞는 전압·전류 모드로 읽고 센서의 온도 범위로 환산하십시오.+PT100, 열전대, 전압 출력형 온도 트랜스미터는 이 NTC 설정의 대상이 아닙니다. 전압·전류 출력형 온도 트랜스미터는 출력 신호에 맞는 전압·전류 모드로 읽고 센서의 온도 범위로 환산해주시기 바랍니다.
  
 ===== 모듈 표시와 프로그램 채널 번호 ===== ===== 모듈 표시와 프로그램 채널 번호 =====
줄 132: 줄 132:
 | 다섯 번째 | 16 | 17 | 18 | 19 | | 다섯 번째 | 16 | 17 | 18 | 19 |
  
-※ X모듈만으로 구성한 경우의 논리 채널표입니다. 모듈 순서는 출고 구성 기준으로 확인하십시오.+※ X모듈만으로 구성한 경우의 논리 채널표입니다. 모듈 순서는 출고 구성 기준으로 확인해주시기 바랍니다.
  
-예를 들어 X2 제품에서 두 번째 X모듈의 CH1을 읽으려면 ''analogRead(5)''를 사용합니다. **MPAINO에서는 모듈 논리 번호를 사용하며, 이 페이지의 0을 Arduino의 A0로 바꾸어 입력하지 마십시오.** 디지털 입력 0번과 아날로그 입력 0번도 서로 다른 기능의 번호입니다.+예를 들어 X2 제품에서 두 번째 X모듈의 CH1을 읽으려면 ''analogRead(5)''를 사용합니다. **MPAINO에서는 모듈 논리 번호를 사용하며, 이 페이지의 0을 Arduino의 A0로 바꾸어 입력해서는 안 됩니다.** 디지털 입력 0번과 아날로그 입력 0번도 서로 다른 기능의 번호입니다.
  
-최대 번호가 19라고 해서 모든 제품에 20채널이 설치되어 있는 것은 아닙니다. 실제 장착된 채널만 읽으십시오. 잘못된 번호나 미장착 채널의 반환값을 정상적인 센서값으로 사용해서는 안 됩니다.+최대 번호가 19라고 해서 모든 제품에 20채널이 설치되어 있는 것은 아닙니다. 실제 장착된 채널만 읽어야 합니다. 잘못된 번호나 미장착 채널의 반환값을 정상적인 센서값으로 사용해서는 안 됩니다.
  
 ===== 처음 측정하는 순서 ===== ===== 처음 측정하는 순서 =====
  
-  - **센서 확인:** 전압·전류·NTC 중 신호 종류와 범위, 센서 전원, 결선도를 확인합니다.+  - **센서 확인:** 전압·전류·NTC 중 신호 종류와 범위, 센서 전원, 결선도를 확인해주시기 바랍니다.
   - **채널 결정:** 처음에는 첫 번째 X모듈의 CH0 한 채널만 사용합니다.   - **채널 결정:** 처음에는 첫 번째 X모듈의 CH0 한 채널만 사용합니다.
-  - **전원 차단 후 설정:** 위 DIP 표에 맞게 CH0을 설정하고 극성을 확인하여 배선합니다. +  - **전원 차단 후 설정:** 위 DIP 표에 맞게 CH0을 설정하고 극성을 확인하여 배선해야 합니다. 
-  - **개발 환경 선택:** Arduino IDE에서 실제 MPAINO 모델에 맞는 ILOGICS 보드와 다운로드 포트를 선택합니다. ''Analog Input Module'' 메뉴가 있는 보드 패키지는 출고 구성에 맞는 ''X / X2 / X3 / X4 / X5''를 선택합니다. 다른 옵션도 실제 구성과 일치시킵니다. +  - **개발 환경 선택:** Arduino IDE에서 실제 MPAINO 모델에 맞는 ILOGICS 보드와 다운로드 포트를 선택해주시기 바랍니다. ''Analog Input Module'' 메뉴가 있는 보드 패키지는 출고 구성에 맞는 ''X / X2 / X3 / X4 / X5''를 선택해주시기 바랍니다. 다른 옵션도 실제 구성과 일치시켜야 합니다. 
-  - **원시값 확인:** 아래 예제 1을 업로드하고 시리얼 모니터를 115200 baud로 엽니다. +  - **원시값 확인:** 아래 예제 1을 업로드하고 시리얼 모니터를 115200 baud로 열어주시기 바랍니다. 
-  - **입력 변화 확인:** 정격 범위 안의 알려진 신호를 입력하여 값이 예상 방향으로 변하는지 확인합니다. +  - **입력 변화 확인:** 정격 범위 안의 알려진 신호를 입력하여 값이 예상 방향으로 변하는지 확인해주시기 바랍니다. 
-  - **물리량 환산:** 전압·전류 측정이 확인된 뒤 유량·압력 등 센서의 측정 범위로 환산합니다. +  - **물리량 환산:** 전압·전류 측정이 확인된 뒤 유량·압력 등 센서의 측정 범위로 환산해주시기 바랍니다. 
-  - **채널 확대:** 한 채널이 정상임을 확인한 다음 나머지 채널을 하나씩 추가합니다.+  - **채널 확대:** 한 채널이 정상임을 확인한 다음 나머지 채널을 하나씩 추가해주시기 바랍니다.
  
-아래 예제는 각각 독립적인 Arduino 스케치입니다. **한 번에 하나의 예제만 사용**하십시오. 현재 MPAINO 내장 명령어를 기준으로 하며, 별도 ''ILIB.h''를 포함하거나 ''IADC'' 객체를 직접 만들 필요가 없습니다. 명령어가 선언되지 않았다는 오류가 나면 선택한 보드와 설치한 ILOGICS 보드 패키지를 확인하십시오.+아래 예제는 각각 독립적인 Arduino 스케치입니다. **한 번에 하나의 예제만 사용**해야 합니다. 현재 MPAINO 내장 명령어를 기준으로 하며, 별도 ''ILIB.h''를 포함하거나 ''IADC'' 객체를 직접 만들 필요가 없습니다. 명령어가 선언되지 않았다는 오류가 나면 선택한 보드와 설치한 ILOGICS 보드 패키지를 확인해주시기 바랍니다.
  
 ===== 예제 1 · 원시값부터 확인하기 ===== ===== 예제 1 · 원시값부터 확인하기 =====
줄 177: 줄 177:
 | 4~20mA를 원시값으로 읽을 때 | 4mA → 약 6553 | 12mA → 약 19660 | 20mA → 약 32767 | | 4~20mA를 원시값으로 읽을 때 | 4mA → 약 6553 | 12mA → 약 19660 | 20mA → 약 32767 |
  
-표는 이상적인 환산 기준이며 허용 오차 판정표가 아닙니다. **4mA에서 원시값이 0이 아닌 것은 정상**입니다. 4mA를 0으로 맞추려면 예제 3을 참고하십시오. NTC는 이 선형 환산표가 아니라 전용 온도 명령어를 사용합니다.+표는 이상적인 환산 기준이며 허용 오차 판정표가 아닙니다. **4mA에서 원시값이 0이 아닌 것은 정상**입니다. 4mA를 0으로 맞추려면 예제 3을 참고해주시기 바랍니다. NTC는 이 선형 환산표가 아니라 전용 온도 명령어를 사용합니다.
  
 ===== 예제 2 · 0~10V 유량계 읽기 ===== ===== 예제 2 · 0~10V 유량계 읽기 =====
  
-조건: 첫 번째 X모듈 CH0, ''10V=ON / 20mA=OFF / NTC=OFF / GND=ON'', 센서 출력 0~10V, 측정 범위 0~30000 L/min입니다. 다른 센서라면 ''fullScaleFlow''를 센서의 실제 범위에 맞추십시오.+조건: 첫 번째 X모듈 CH0, ''10V=ON / 20mA=OFF / NTC=OFF / GND=ON'', 센서 출력 0~10V, 측정 범위 0~30000 L/min입니다. 다른 센서라면 ''fullScaleFlow''를 센서의 실제 범위에 맞춰주시기 바랍니다.
  
 <code cpp> <code cpp>
줄 217: 줄 217:
 | 1~5V 센서의 범위 비율 | 먼저 ''voltage = raw * (5.0F / 32767.0F)'', 다음 ''ratio = (voltage - 1.0F) / 4.0F'' | | 1~5V 센서의 범위 비율 | 먼저 ''voltage = raw * (5.0F / 32767.0F)'', 다음 ''ratio = (voltage - 1.0F) / 4.0F'' |
  
-1~5V 센서의 물리량은 ''최소값 + ratio * (최대값 - 최소값)''으로 환산합니다. ''ratio''가 0 미만 또는 1 초과이면 범위를 벗어난 상태이므로 센서 사양에 따라 별도 처리하십시오. 무조건 0~1로 잘라 표시하면 이상 상태가 숨겨질 수 있습니다. ''analogRead2()''는 4~20mA용이므로 1~5V 신호에 사용하지 마십시오.+1~5V 센서의 물리량은 ''최소값 + ratio * (최대값 - 최소값)''으로 환산합니다. ''ratio''가 0 미만 또는 1 초과이면 범위를 벗어난 상태이므로 센서 사양에 따라 별도로 처리해야 합니다. 무조건 0~1로 잘라 표시하면 이상 상태가 숨겨질 수 있습니다. ''analogRead2()''는 4~20mA용이므로 1~5V 신호에 사용해서는 안 됩니다.
  
-계산 중 16bit 정수 오버플로를 피하도록 예제처럼 실수 상수를 사용하십시오. 예를 들어 ''raw * 30000''을 먼저 정수로 계산한 뒤 나누는 방식은 피해야 합니다.+계산 중 16bit 정수 오버플로를 피하도록 예제처럼 실수 상수를 사용해야 합니다. 예를 들어 ''raw * 30000''을 먼저 정수로 계산한 뒤 나누는 방식은 피해야 합니다.
  
 ===== 예제 3 · 4~20mA 압력계와 오류 처리 ===== ===== 예제 3 · 4~20mA 압력계와 오류 처리 =====
  
-조건: 첫 번째 X모듈 CH0, ''10V=OFF / 20mA=ON / NTC=OFF / GND=ON'', 센서 출력 4~20mA, 측정 범위 0~10bar입니다. 센서의 실제 압력 범위가 다르면 ''fullScalePressure''를 바꾸십시오.+조건: 첫 번째 X모듈 CH0, ''10V=OFF / 20mA=ON / NTC=OFF / GND=ON'', 센서 출력 4~20mA, 측정 범위 0~10bar입니다. 센서의 실제 압력 범위가 다르면 ''fullScalePressure''를 바꿔주시기 바랍니다.
  
-''analogRead2()''는 4mA 오프셋을 처리하여 측정 범위를 0~32767로 환산합니다. **오류값 65535를 저장할 수 있도록 uint16_t로 받으십시오.** AVR의 일반 ''int''로 받지 마십시오.+''analogRead2()''는 4mA 오프셋을 처리하여 측정 범위를 0~32767로 환산합니다. **오류값 65535를 저장할 수 있도록 uint16_t로 받아야 합니다.** AVR의 일반 ''int''로 받아서는 안 됩니다.
  
 <code cpp> <code cpp>
줄 261: 줄 261:
 | 6554 초과~32767 | 0~32767로 환산 | 4~20mA 측정 범위의 비율 | | 6554 초과~32767 | 0~32767로 환산 | 4~20mA 측정 범위의 비율 |
  
-따라서 4mA보다 조금 작다고 항상 오류가 발생하는 것은 아닙니다. 오류가 나면 단선뿐 아니라 센서 전원, 극성, 모드 설정, 채널 번호도 확인하십시오. 정상 범위의 반환값만으로 배선 정상이나 과전류 없음이 보증되지는 않습니다. 안전 제어에는 설비에 맞는 별도 진단과 안전 대책이 필요합니다.+따라서 4mA보다 조금 작다고 항상 오류가 발생하는 것은 아닙니다. 오류가 나면 단선뿐 아니라 센서 전원, 극성, 모드 설정, 채널 번호도 확인해주시기 바랍니다. 정상 범위의 반환값만으로 배선 정상이나 과전류 없음이 보증되지는 않습니다. 안전 제어에는 설비에 맞는 별도 진단과 안전 대책이 필요합니다.
  
-평균 명령어 ''analogRead2Avg()''는 오류를 **−1**로 반환하므로 ''int32_t''로 받고 ''ANALOG_READ2_AVG_ERROR''와 비교합니다. 일반 읽기의 오류값 65535와 혼동하지 마십시오.+평균 명령어 ''analogRead2Avg()''는 오류를 **−1**로 반환하므로 ''int32_t''로 받고 ''ANALOG_READ2_AVG_ERROR''와 비교해야 합니다. 일반 읽기의 오류값 65535와 구분해야 합니다.
  
 ===== 예제 4 · NTC 온도 읽기 ===== ===== 예제 4 · NTC 온도 읽기 =====
줄 286: 줄 286:
 </code> </code>
  
-정수로 다루려면 ''int temperature10 = ntcRead(0);''을 사용하십시오. 반환값 ''253''은 25.3°C, ''-55''는 −5.5°C입니다. ''ntcReadf()''는 같은 결과를 °C 실수로 바꾸므로 더 높은 측정 분해능을 제공하는 별도 방식은 아닙니다.+정수로 다루려면 ''int temperature10 = ntcRead(0);''을 사용해주시기 바랍니다. 반환값 ''253''은 25.3°C, ''-55''는 −5.5°C입니다. ''ntcReadf()''는 같은 결과를 °C 실수로 바꾸므로 더 높은 측정 분해능을 제공하는 별도 방식은 아닙니다.
  
-현재 온도 환산표는 **−40.0~120.0°C에서 값을 제한**합니다. 이는 연결 센서와 완제품의 사용 온도 보증 범위가 아닙니다. 단선·단락에 대한 전용 오류코드를 반환하지 않으므로 끝값이 반복되면 실제 온도라고 단정하지 말고 센서와 배선을 확인하십시오. 잘못된 채널 번호의 0 반환도 정상 0°C와 구분할 수 없으므로 실제 장착 채널을 정확히 지정해야 합니다.+현재 온도 환산표는 **−40.0~120.0°C에서 값을 제한**합니다. 이는 연결 센서와 완제품의 사용 온도 보증 범위가 아닙니다. 단선·단락에 대한 전용 오류코드를 반환하지 않으므로 끝값이 반복되면 실제 온도라고 단정하지 말고 센서와 배선을 확인해주시기 바랍니다. 잘못된 채널 번호의 0 반환도 정상 0°C와 구분할 수 없으므로 실제 장착 채널을 정확히 지정해야 합니다.
  
 ===== 값의 흔들림과 측정 속도 ===== ===== 값의 흔들림과 측정 속도 =====
줄 309: 줄 309:
 </code> </code>
  
-평균 개수는 최대 20입니다. 0은 평균하지 않은 새 값을 반환하고 20 초과는 20으로 제한됩니다. 평균을 늘리면 표시가 부드러워질 수 있지만 변화에 대한 응답도 느려집니다. 예제는 호출 간격이 약 100ms 이상이므로 충분히 쌓인 8개 값은 약 0.8초에 걸친 측정을 포함합니다. 먼저 배선과 신호원을 확인하고 필요한 만큼만 평균하십시오.+평균 개수는 최대 20입니다. 0은 평균하지 않은 새 값을 반환하고 20 초과는 20으로 제한됩니다. 평균을 늘리면 표시가 부드러워질 수 있지만 변화에 대한 응답도 느려집니다. 예제는 호출 간격이 약 100ms 이상이므로 충분히 쌓인 8개 값은 약 0.8초에 걸친 측정을 포함합니다. 먼저 배선과 신호원을 확인하고 필요한 만큼만 평균해주시기 바랍니다.
  
-4~20mA는 ''analogRead2Avg()''를 사용하고 오류 −1을 먼저 확인하십시오. 평균 필터는 이상 배선을 정상으로 만드는 기능이 아니며 메모리 확보에 실패하면 새 원시값으로 대체될 수 있습니다.+4~20mA는 ''analogRead2Avg()''를 사용하고 오류 −1을 먼저 확인해주시기 바랍니다. 평균 필터는 이상 배선을 정상으로 만드는 기능이 아니며 메모리 확보에 실패하면 새 원시값으로 대체될 수 있습니다.
  
 ==== analogReadInit은 속도 설정입니다 ==== ==== analogReadInit은 속도 설정입니다 ====
줄 324: 줄 324:
 내부에서는 이전 채널의 변환값이 섞이지 않도록 한 번 읽을 때 두 번 변환합니다. 실제 속도에는 변환 대기, SPI 통신, 채널 수, 시리얼 출력, ''delay()'' 등이 영향을 줍니다. 특히 475 설정은 실제 475회/초를 보증하지 않습니다. 내부 최대 860 SPS에서 두 번 변환하므로 변환 시간만 고려해도 약 430회/초 이하이며 다른 처리 시간은 추가됩니다. 내부에서는 이전 채널의 변환값이 섞이지 않도록 한 번 읽을 때 두 번 변환합니다. 실제 속도에는 변환 대기, SPI 통신, 채널 수, 시리얼 출력, ''delay()'' 등이 영향을 줍니다. 특히 475 설정은 실제 475회/초를 보증하지 않습니다. 내부 최대 860 SPS에서 두 번 변환하므로 변환 시간만 고려해도 약 430회/초 이하이며 다른 처리 시간은 추가됩니다.
  
-여러 채널을 순서대로 읽는 전체 갱신 시간은 각 읽기 시간을 합한 값입니다. 빠른 설정을 사용하기 전에 필요한 응답 시간과 값의 흔들림을 실제 입력 조건에서 확인하십시오.+여러 채널을 순서대로 읽는 전체 갱신 시간은 각 읽기 시간을 합한 값입니다. 빠른 설정을 사용하기 전에 필요한 응답 시간과 값의 흔들림을 실제 입력 조건에서 확인해주시기 바랍니다.
  
 ===== 증상별 확인 사항 ===== ===== 증상별 확인 사항 =====
줄 350: 줄 350:
   * 정격 범위 안의 알려진 입력으로 실제 측정과 환산을 확인했습니까?   * 정격 범위 안의 알려진 입력으로 실제 측정과 환산을 확인했습니까?
  
-입력 범위를 넘는 신호를 연결하지 마십시오. 신호의 전원 방식, 공통 전위, 절연 필요 여부가 불명확하면 연결 전에 센서 자료와 설비 구성을 확인하십시오. 이 페이지의 예제는 측정값 확인용이며 설비의 안전 인터록을 구현하지 않습니다.+입력 범위를 넘는 신호를 연결해서는 안 됩니다. 신호의 전원 방식, 공통 전위, 절연 필요 여부가 불명확하면 연결 전에 센서 자료와 설비 구성을 확인해주시기 바랍니다. 이 페이지의 예제는 측정값 확인용이며 설비의 안전 인터록을 구현하지 않습니다.
  
 ===== 관련 명령어와 문서 ===== ===== 관련 명령어와 문서 =====
줄 361: 줄 361:
 | NTC 온도 읽기 | [[commands:reference:ntcread|ntcRead]] · [[commands:reference:ntcreadf|ntcReadf]] | | NTC 온도 읽기 | [[commands:reference:ntcread|ntcRead]] · [[commands:reference:ntcreadf|ntcReadf]] |
 | 제품 구성 / 배선 기본 | [[products:mpaino|MPAINO Series]] · [[guide:wiring|배선 안내]] | | 제품 구성 / 배선 기본 | [[products:mpaino|MPAINO Series]] · [[guide:wiring|배선 안내]] |
 +
 +[[products:mpaino_f|F PT100 입력]] · [[products:mpaino_y|Y 아날로그 출력]] · [[products:mpaino_k|K 고속펄스 출력]]
  
 [[products:mpaino|← MPAINO Series로 돌아가기]] [[products:mpaino|← MPAINO Series로 돌아가기]]
  
products/mpaino_x.1788709731.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki