Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| comfilepi:modport_example:index [2026/02/15 06:28] – [구성및 인터페이스] admin | comfilepi:modport_example:index [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Modport를 이용한 ComfilePi 어플리케이션====== | ||
| - | MODPORT는 데이터 수집용 필드 I/O 제품입니다. ComfilePi와 결합하여 산업현장의 각종 데이터 수집및 제어를 할 수 있습니다. 또한 | ||
| - | 본 장에서는 ComfilePi를 이용하여 MODPORT의 모듈 사용법, 제어, 상태값을 표시하는 내용을 다루고 있습니다. | ||
| - | {{ : | ||
| - | [[: | ||
| - | \\ | ||
| - | ===== 구성및 인터페이스 ====== | ||
| - | |||
| - | * Modport는 RS485로 통신합니다. ComfilePI에 RS232-TO-RS485 컨버터를 사용해 통신합니다. | ||
| - | * Modbus RTU 프로토콜를 사용합니다. | ||
| - | * 보레이트도 57600,8,N,1 고정입니다 | ||
| - | * 각 모듈별로 고유의 Start address가 있습니다. [[fieldio: | ||
| - | * 모듈의 로터리 스위치로 Slave ID를 설정할 수 있습니다. | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | |||
| - | ===== 예제1) In/Output 제어 ====== | ||
| - | * 사용모듈 : MD-DIDC8-디지털 입력, MD-DORL8- 릴레이 출력 | ||
| - | * MD-DIDC8 : SlaveID -> 1, StartAddress -> 0~7 | ||
| - | * MD-DORL8 : SlaveID -> 1, StartAddress -> 3200 ~ 3207 | ||
| - | * 예제프로그램 다운로드 {{ : | ||
| - | |||
| - | ** 위 소스는 참고용으로 배포합니다. 저희 회사는 이에 대한 전화 기술지원은 제공하고 있지 않은점 양해부탁드립니다. ** | ||
| - | |||
| - | {{ : | ||
| - | \\ | ||
| - | |||
| - | Serial통신 설정은 아래와같이 프로그램합니다. ComfilePi의 COM0은 **/ | ||
| - | <code xbasic> | ||
| - | string portName = Environment.OSVersion.Platform == PlatformID.Win32NT ? " | ||
| - | SerialPort port = new SerialPort(portName, | ||
| - | port.ReadTimeout = 50; | ||
| - | port.WriteTimeout = 50; | ||
| - | port.Open(); | ||
| - | </ | ||
| - | MD-DORL8 출력 비트값을 제어합니다. | ||
| - | <code xbasic> | ||
| - | master.WriteMultipleCoils(1, | ||
| - | </ | ||
| - | MD-DIDC8 입력 상태값을 읽어옵니다. | ||
| - | <code xbasic> | ||
| - | var inputs = master.ReadCoils(1, | ||
| - | </ | ||
| - | |||
| - | \\ | ||
| - | ===== 예제2) ADIn/ | ||
| - | * 사용모듈 : MD-ADIN4- AD 입력, MD-THRT4- 온도센서 | ||
| - | * MD-ADIN4 : SlaveID -> 1, StartAddress -> 40101 ~ 40104 | ||
| - | * MD-THRT4 : SlaveID -> 1, StartAddress -> 40301 ~ 40304 | ||
| - | * 예제프로그램 다운로드. {{ : | ||
| - | |||
| - | {{ : | ||
| - | \\ | ||
| - | |||
| - | MD-ADIN4 아날로}}그 상태값을 읽어옵니다. | ||
| - | <code xbasic> | ||
| - | var AD_CH = master.ReadHoldingRegisters(1, | ||
| - | </ | ||
| - | |||
| - | MD-THRT4 온도값을 소수 1자리와 영하(-)의 값으로 읽어옵니다.. | ||
| - | <code xbasic> | ||
| - | var TEMP_CH = master.ReadHoldingRegisters(1, | ||
| - | double[] Ftemp = new double[4]; | ||
| - | for (int i = 0; i < 4; i++){ | ||
| - | Ftemp[i] = Convert.ToDouble(TEMP_CH[i]); | ||
| - | |||
| - | if ((Ftemp[i] > 0x8000) ){ | ||
| - | Ftemp[i] = Ftemp[i] - 0x8000; | ||
| - | Ftemp[i] = Ftemp[i] * (-1); | ||
| - | } | ||
| - | Ftemp[i] = Ftemp[i] / 10.0; | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | [[comfilepi: | ||
