products:mpaino_8a8r
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| products:mpaino_8a8r [2026/09/07 18:23] – 바깥 편집 127.0.0.1 | products:mpaino_8a8r [2026/11/01 00:49] (현재) – 바깥 편집 127.0.0.1 | ||
|---|---|---|---|
| 줄 5: | 줄 5: | ||
| 선택한 I/ | 선택한 I/ | ||
| - | [[products: | + | [[products: |
| + | [[products: | ||
| + | [[products: | ||
| + | [[products: | ||
| MPAINO-8A8R은 디지털 입력 8점과 릴레이 출력 8점을 제공하며 RS-232, RS-485, UART, I²C 통신을 사용할 수 있습니다. | MPAINO-8A8R은 디지털 입력 8점과 릴레이 출력 8점을 제공하며 RS-232, RS-485, UART, I²C 통신을 사용할 수 있습니다. | ||
| Arduino IDE(Arduino C/C++) 또는 MPINO STUDIO 2(Arduino C/C++ & 래더로직)로 프로그램할 수 있습니다. | Arduino IDE(Arduino C/C++) 또는 MPINO STUDIO 2(Arduino C/C++ & 래더로직)로 프로그램할 수 있습니다. | ||
| + | |||
| + | [[: | ||
| + | |||
| + | |||
| + | |||
| + | |||
| \\ | \\ | ||
| 줄 27: | 줄 36: | ||
| | 릴레이 출력 | | 릴레이 출력 | ||
| | 고속 입력·인터럽트 | | 고속 입력·인터럽트 | ||
| - | | ::: | 2점 \\ (비절연) | + | | ::: | 2점 \\ (비절연) |
| | 통신 채널 | | 통신 채널 | ||
| | ::: | 1채널 \\ (비절연) | | ::: | 1채널 \\ (비절연) | ||
| 줄 39: | 줄 48: | ||
| ===== 디지털 입력 ===== | ===== 디지털 입력 ===== | ||
| + | [[: | ||
| ^ 그룹 ^ 단자 ^ 입력 구성 ^ 단자대 및 결선 예시 ^ | ^ 그룹 ^ 단자 ^ 입력 구성 ^ 단자대 및 결선 예시 ^ | ||
| | COM0 | D0~D3 | 절연 디지털 입력 4점 \\ D0·D1은 INT0·INT1 겸용 | {{: | | COM0 | D0~D3 | 절연 디지털 입력 4점 \\ D0·D1은 INT0·INT1 겸용 | {{: | ||
| 줄 45: | 줄 55: | ||
| 디지털 입력은 포토커플러로 절연되어 있으며 DC 5~24V의 NPN 또는 PNP 방식 스위치·센서를 연결할 수 있습니다. 입력 방식은 각 COM 단자의 결선 방향으로 선택합니다. | 디지털 입력은 포토커플러로 절연되어 있으며 DC 5~24V의 NPN 또는 PNP 방식 스위치·센서를 연결할 수 있습니다. 입력 방식은 각 COM 단자의 결선 방향으로 선택합니다. | ||
| - | * 입력 단자에 DC 5~24V가 들어오는 구성: 해당 COM을 GND에 연결합니다. | + | * 입력 단자에 DC 5~24V가 들어오는 구성: 해당 COM을 GND에 연결해주시기 바랍니다. |
| - | * 입력 단자에 GND가 들어오는 구성: 해당 COM을 DC 5~24V에 연결합니다. | + | * 입력 단자에 GND가 들어오는 구성: 해당 COM을 DC 5~24V에 연결해주시기 바랍니다. |
| 아날로그 출력 또는 고속펄스 출력 옵션인 YK, Y2K, K2, Y3, Y4 모듈이 포함되어도 프로그램에서는 디지털 입력 D0~D7을 동일하게 사용합니다. 해당 구성에서는 INT0·INT1을 사용할 수 없습니다. | 아날로그 출력 또는 고속펄스 출력 옵션인 YK, Y2K, K2, Y3, Y4 모듈이 포함되어도 프로그램에서는 디지털 입력 D0~D7을 동일하게 사용합니다. 해당 구성에서는 INT0·INT1을 사용할 수 없습니다. | ||
| 줄 72: | 줄 82: | ||
| === 함수 예제 · 연속 판독 필터: IdigitalRead() === | === 함수 예제 · 연속 판독 필터: IdigitalRead() === | ||
| + | |||
| + | **상세 설명:** [[commands: | ||
| **함수 원형** | **함수 원형** | ||
| 줄 94: | 줄 106: | ||
| === 함수 예제 · 채터링 방지: Ibounce(), IbounceOn(), | === 함수 예제 · 채터링 방지: Ibounce(), IbounceOn(), | ||
| + | |||
| + | **상세 설명:** [[commands: | ||
| **함수 원형** | **함수 원형** | ||
| 줄 136: | 줄 150: | ||
| === 함수 예제 · 입력 토글: Ialt() === | === 함수 예제 · 입력 토글: Ialt() === | ||
| + | |||
| + | **상세 설명:** [[commands: | ||
| **함수 원형** | **함수 원형** | ||
| 줄 168: | 줄 184: | ||
| ===== 릴레이 출력 ===== | ===== 릴레이 출력 ===== | ||
| + | [[: | ||
| ^ 그룹 ^ 출력 단자 ^ 접점 구성 ^ 단자대 및 결선 예시 ^ | ^ 그룹 ^ 출력 단자 ^ 접점 구성 ^ 단자대 및 결선 예시 ^ | ||
| | COM2 | D64~D67 | 릴레이 출력 4점이 COM2 공유 | {{: | | COM2 | D64~D67 | 릴레이 출력 4점이 COM2 공유 | {{: | ||
| 줄 199: | 줄 216: | ||
| ^ 단자 ^ 구성 ^ 최대 입력 주파수 ^ 함께 사용할 수 없는 기능 ^ 엔코더 결선 ^ | ^ 단자 ^ 구성 ^ 최대 입력 주파수 ^ 함께 사용할 수 없는 기능 ^ 엔코더 결선 ^ | ||
| - | | D0(INT0), D1(INT1) / COM0 | 절연 입력 | 8kHz | YK·Y2K·K2·Y3·Y4 옵션 구성 | {{: | + | | D0(INT0), D1(INT1) / COM0 | 절연 입력 | 최대 |
| - | | SDA(D20·INT2), | + | | SDA(D20·INT2), |
| 엔코더는 SDA(D20)를 A상, SCL(D21)을 B상으로 사용하여 연결할 수 있습니다. SDA·SCL을 엔코더 또는 인터럽트 입력으로 사용하면 같은 단자에서 I²C 통신을 동시에 사용할 수 없습니다. | 엔코더는 SDA(D20)를 A상, SCL(D21)을 B상으로 사용하여 연결할 수 있습니다. SDA·SCL을 엔코더 또는 인터럽트 입력으로 사용하면 같은 단자에서 I²C 통신을 동시에 사용할 수 없습니다. | ||
| 줄 206: | 줄 223: | ||
| ==== 예제 프로그램 · 펄스 카운트 ==== | ==== 예제 프로그램 · 펄스 카운트 ==== | ||
| - | I²C 단자의 SDA(D20)는 4.7kΩ 풀업 입력입니다. 이 예제는 I²C 통신과 동시에 사용하지 않습니다. | + | I²C 단자의 SDA(D20)는 4.7kΩ 풀업 입력입니다. 이 예제는 I²C 통신과 동시에 사용하지 않습니다. |
| <code cpp> | <code cpp> | ||
| 줄 231: | 줄 248: | ||
| ==== 예제 프로그램 · 엔코더 입력 ==== | ==== 예제 프로그램 · 엔코더 입력 ==== | ||
| - | I²C 단자의 SDA(D20)는 4.7kΩ 풀업 입력입니다. 이 예제는 I²C 통신과 동시에 사용하지 않습니다. | + | I²C 단자의 SDA(D20)는 4.7kΩ 풀업 입력입니다. 이 예제는 I²C 통신과 동시에 사용하지 않습니다. |
| <code cpp> | <code cpp> | ||
| 줄 276: | 줄 293: | ||
| <code cpp> | <code cpp> | ||
| - | // MP 다운로드 | + | // USB 다운로드 |
| void setup() { | void setup() { | ||
| Serial.begin(115200); | Serial.begin(115200); | ||
| 줄 295: | 줄 312: | ||
| <code cpp> | <code cpp> | ||
| - | // MP 다운로드 | + | // USB 다운로드 |
| void setup() { | void setup() { | ||
| Serial.begin(115200); | Serial.begin(115200); | ||
| 줄 314: | 줄 331: | ||
| <code cpp> | <code cpp> | ||
| - | // MP 다운로드 | + | // USB 다운로드 |
| void setup() { | void setup() { | ||
| Serial.begin(115200); | Serial.begin(115200); | ||
| 줄 368: | 줄 385: | ||
| === 함수 예제 · Modbus RTU Slave: ImodbusRTUMem(), | === 함수 예제 · Modbus RTU Slave: ImodbusRTUMem(), | ||
| + | |||
| + | **상세 설명:** [[commands: | ||
| **함수 원형** | **함수 원형** | ||
| 줄 380: | 줄 399: | ||
| 입력 0 상태를 M[0], 동작 시간(초)을 D[0]에 넣어 상대 기기에서 읽습니다. RS-485(Serial2), | 입력 0 상태를 M[0], 동작 시간(초)을 D[0]에 넣어 상대 기기에서 읽습니다. RS-485(Serial2), | ||
| - | M과 D는 코어가 제공하는 공유 전역 메모리입니다. 이 스케치는 단독 실행하며, | + | M과 D는 코어가 제공하는 공유 전역 메모리입니다. 이 스케치는 단독 실행하며, |
| <code cpp> | <code cpp> | ||
| 줄 412: | 줄 431: | ||
| === 함수 예제 · Modbus RTU Master: ImodbusRTUmasterInit(), | === 함수 예제 · Modbus RTU Master: ImodbusRTUmasterInit(), | ||
| + | |||
| + | **상세 설명:** [[commands: | ||
| **함수 원형** | **함수 원형** | ||
| 줄 452: | 줄 473: | ||
| === 함수 예제 · LS산전 Cnet SLave: ICnetMem(), ICnetAdr(), ICnetInit(), | === 함수 예제 · LS산전 Cnet SLave: ICnetMem(), ICnetAdr(), ICnetInit(), | ||
| + | |||
| + | **상세 설명:** [[commands: | ||
| **함수 원형** | **함수 원형** | ||
| 줄 462: | 줄 485: | ||
| </ | </ | ||
| - | 입력 0 상태를 M[0], 동작 시간(초)을 D[0]에 넣어 HMI에서 읽습니다. 상대 기기는 LS산전 Cnet, RS-232, 국번 1, 9600bps, 8N1로 설정합니다. 비트는 %MX00000(M[0]), | + | 입력 0 상태를 M[0], 동작 시간(초)을 D[0]에 넣어 HMI에서 읽습니다. 상대 기기는 LS산전 Cnet, RS-232, 국번 1, 9600bps, 8N1로 설정해주시기 바랍니다. 비트는 %MX00000(M[0]), |
| - | M·D·R은 코어가 제공하는 공유 전역 메모리이며, | + | M·D·R은 코어가 제공하는 공유 전역 메모리이며, |
| <code cpp> | <code cpp> | ||
| 줄 497: | 줄 520: | ||
| ===== 옵션 모듈 ===== | ===== 옵션 모듈 ===== | ||
| + | |||
| + | 제품에 아래 옵션 모듈을 추가할 수 있습니다. 선택한 구성으로 조립되어 출고됩니다. \\ | ||
| + | 사용자가 I/O모듈 및 옵션 모듈을 추가하거나 제거할 수 없습니다. | ||
| + | |||
| + | ^ 코드 ^ 기능 ^ 모듈당 점수 ^ 최대 구성 ^ 핵심 특징 ^ | ||
| + | | [[products: | ||
| + | | [[products: | ||
| + | | [[products: | ||
| + | | [[products: | ||
| + | |||
| + | 아날로그 입력과 PT100Ω 온도센서 입력의 합이 최대 20점을 초과할 수 없습니다. \\ | ||
| + | 아날로그 출력과 고속펄스 출력의 합이 최대 12점을 초과할 수 없습니다. \\ | ||
| + | 옵션 모듈을 추가할 경우, 커스텀 제작으로 진행되어 교환이나 환불이 어렵습니다. | ||
| 출고 시 해당 옵션 모듈이 포함된 제품에서 사용하는 예제입니다. 예제에 표시한 모듈 구성과 실제 출고 구성을 일치시킵니다. | 출고 시 해당 옵션 모듈이 포함된 제품에서 사용하는 예제입니다. 예제에 표시한 모듈 구성과 실제 출고 구성을 일치시킵니다. | ||
| 줄 502: | 줄 538: | ||
| ==== 예제 프로그램 · 아날로그 입력 (X 모듈 장착 시) ==== | ==== 예제 프로그램 · 아날로그 입력 (X 모듈 장착 시) ==== | ||
| - | X 모듈 1개를 실제 장착하고 Analog Input Module → X를 선택한 구성입니다. analogRead(0~3)은 첫 X 모듈의 ADS1118 원시값(0~32767)을 읽습니다. 채널별 DIP와 배선을 입력 신호에 맞춥니다. | + | X 모듈 1개를 실제 장착하고 Analog Input Module → X를 선택한 구성입니다. analogRead(0~3)은 첫 X 모듈의 ADS1118 원시값(0~32767)을 읽습니다. 채널별 DIP와 배선을 입력 신호에 맞춰야 합니다. |
| <code cpp> | <code cpp> | ||
| 줄 522: | 줄 558: | ||
| === 함수 예제 · 입력 범위 환산: IanalogRead(), | === 함수 예제 · 입력 범위 환산: IanalogRead(), | ||
| + | |||
| + | **상세 설명:** [[commands: | ||
| **함수 원형** | **함수 원형** | ||
| 줄 553: | 줄 591: | ||
| === 함수 예제 · 4~20mA 범위 환산: IanalogRead2(), | === 함수 예제 · 4~20mA 범위 환산: IanalogRead2(), | ||
| + | |||
| + | **상세 설명:** [[commands: | ||
| **함수 원형** | **함수 원형** | ||
| 줄 586: | 줄 626: | ||
| === 함수 예제 · 이동 평균: analogReadAvg(), | === 함수 예제 · 이동 평균: analogReadAvg(), | ||
| + | |||
| + | **상세 설명:** [[commands: | ||
| **함수 원형** | **함수 원형** | ||
| 줄 635: | 줄 677: | ||
| === 함수 예제 · NTC 온도 변환: ntcRead(), ntcReadf() === | === 함수 예제 · NTC 온도 변환: ntcRead(), ntcReadf() === | ||
| + | |||
| + | **상세 설명:** [[commands: | ||
| **함수 원형** | **함수 원형** | ||
| 줄 666: | 줄 710: | ||
| === 함수 예제 · PT100 입력값 읽기: pt100Read() === | === 함수 예제 · PT100 입력값 읽기: pt100Read() === | ||
| + | |||
| + | **상세 설명:** [[commands: | ||
| **함수 원형** | **함수 원형** | ||
| 줄 673: | 줄 719: | ||
| </ | </ | ||
| - | F 모듈 1개를 실제 장착하고 | + | F 모듈 1개가 실제로 장착된 제품에서 |
| <code cpp> | <code cpp> | ||
| 줄 694: | 줄 740: | ||
| ==== 예제 프로그램 · 아날로그 출력 (Y 모듈 장착 시) ==== | ==== 예제 프로그램 · 아날로그 출력 (Y 모듈 장착 시) ==== | ||
| - | Y 모듈 1개를 실제 장착하고 | + | Y 모듈 1개가 실제로 장착된 제품에서 |
| <code cpp> | <code cpp> | ||
| 줄 710: | 줄 756: | ||
| === 함수 예제 · 출력 범위 환산: IanalogWrite(), | === 함수 예제 · 출력 범위 환산: IanalogWrite(), | ||
| + | |||
| + | **상세 설명:** [[commands: | ||
| **함수 원형** | **함수 원형** | ||
| 줄 735: | 줄 783: | ||
| ==== 예제 프로그램 · PWM 출력 (K 모듈 장착 시) ==== | ==== 예제 프로그램 · PWM 출력 (K 모듈 장착 시) ==== | ||
| - | K 모듈 1개를 실제 장착하고 | + | K 모듈 1개가 실제로 장착된 제품에서 |
| <code cpp> | <code cpp> | ||
| 줄 751: | 줄 799: | ||
| === 함수 예제 · 듀티값 지정: PWM() === | === 함수 예제 · 듀티값 지정: PWM() === | ||
| + | |||
| + | **상세 설명:** [[commands: | ||
| **함수 원형** | **함수 원형** | ||
| 줄 771: | 줄 821: | ||
| === 함수 예제 · 주파수·듀티 설정: FDPWM() === | === 함수 예제 · 주파수·듀티 설정: FDPWM() === | ||
| + | |||
| + | **상세 설명:** [[commands: | ||
| **함수 원형** | **함수 원형** | ||
| 줄 791: | 줄 843: | ||
| === 함수 예제 · 지정 개수 펄스 출력: NPWM_BEGIN(), | === 함수 예제 · 지정 개수 펄스 출력: NPWM_BEGIN(), | ||
| + | |||
| + | **상세 설명:** [[commands: | ||
| **함수 원형** | **함수 원형** | ||
| 줄 813: | 줄 867: | ||
| === 함수 예제 · 채널 출력 정지·재개: | === 함수 예제 · 채널 출력 정지·재개: | ||
| + | |||
| + | **상세 설명:** [[commands: | ||
| **함수 원형** | **함수 원형** | ||
| 줄 840: | 줄 896: | ||
| === 함수 예제 · PWM 타이머 정지·초기화: | === 함수 예제 · PWM 타이머 정지·초기화: | ||
| + | |||
| + | **상세 설명:** [[commands: | ||
| **함수 원형** | **함수 원형** | ||
| 줄 866: | 줄 924: | ||
| CPU 모듈의 STATUS LED는 D128로 제어합니다. | CPU 모듈의 STATUS LED는 D128로 제어합니다. | ||
| + | |||
| + | CPU 모듈의 STATUS LED를 사용자 프로그램의 동작 표시등으로 사용할 수 있습니다. 이 LED는 외부 부하 출력 단자가 아닙니다. | ||
| + | |||
| + | 제어하려면 먼저 '' | ||
| + | |||
| + | ==== 예제 · STATUS LED 점멸 ==== | ||
| + | |||
| + | 다음 예제는 CPU 모듈의 STATUS LED를 500ms마다 켜고 끕니다. | ||
| + | |||
| + | <code cpp> | ||
| + | void setup() { | ||
| + | pinMode(LED_BUILTIN, | ||
| + | } | ||
| + | |||
| + | void loop() { | ||
| + | digitalWrite(LED_BUILTIN, | ||
| + | delay(500); | ||
| + | digitalWrite(LED_BUILTIN, | ||
| + | delay(500); | ||
| + | } | ||
| + | </ | ||
| ==== 예제 프로그램 · 상태 LED ==== | ==== 예제 프로그램 · 상태 LED ==== | ||
| 입력 0의 상태를 CPU 모듈 STATUS LED(LED_BUILTIN, | 입력 0의 상태를 CPU 모듈 STATUS LED(LED_BUILTIN, | ||
| + | |||
| + | **출력 설정:** 아래 입력 상태 표시 예제를 사용할 때도 '' | ||
| <code cpp> | <code cpp> | ||
| 줄 884: | 줄 965: | ||
| ===== 개발 환경 설정 ===== | ===== 개발 환경 설정 ===== | ||
| - | - 컴퓨터와 CPU 모듈의 다운로드 포트를 USB 케이블로 연결합니다. | + | - 컴퓨터와 CPU 모듈의 다운로드 포트를 USB 케이블로 연결해주시기 바랍니다. |
| - | - 장치 관리자에서 다운로드 포트의 COM 번호를 확인합니다. | + | - 장치 관리자에서 다운로드 포트의 COM 번호를 확인해주시기 바랍니다. |
| - | - Arduino IDE의 도구 → 포트에서 확인한 COM 번호를 선택합니다. | + | - Arduino IDE의 도구 → 포트에서 확인한 COM 번호를 선택해주시기 바랍니다. |
| - | - 도구 → 보드에서 '' | + | - 도구 → 보드에서 '' |
| - | - 도구 → 프로그래머에서 | + | - Arduino IDE 상단에서 |
| [[https:// | [[https:// | ||
| 줄 909: | 줄 990: | ||
| | [[https:// | | [[https:// | ||
| - | [[products:mpaino|← MPAINO | + | [[https:// |
| + | [[products: | ||
products/mpaino_8a8r.1788773001.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1
