====== 모아콘과의 연결방법 ====== RS232C는 다음과 같이 3가닥으로 연결합니다. (모아콘은 채널0, 1, 2중 하나에서만 MODBUS-RTU 을 지원합니다.) {{ :comfilehmi:hmi_connection_moacon:connectionmoacon.png?nolink |}} {{ :comfilehmi:hmi_connection_moacon:dsc04034.jpg?nolink&500 |}} 모아콘 악세사리중 <[[http://www.comfile.co.kr/shop/goods/goods_view.php?goodsno=88&category=004002|RS232 터미널블록 CONTACT]]> 제품을 사용하여 연결하세요. {{ :comfilehmi:hmi_connection_moacon:dsc04033.jpg?nolink&500 |}} \\ RS485로 연결시에는 다음과 같이 연결합니다. {{ :comfilehmi:hmi_connection_moacon:rs485.png?nolink |}} ===== HMI의 프로젝트 통신 구성 ====== 제조사는 모델명은 으로 하세요. {{ :comfilehmi:hmi_connection_moacon:moasetting1.png?nolink |}} ====== 모아콘 기본소스 ====== 모아콘 스튜디오는 최신버젼을 사용하세요. RS232C 채널0과 MODBUS-RTU를 활성화 시키는 최소한의 소스는 다음과 같습니다. #include "moacon500.h" void cmain(void) { static u8 MDcoil[100]; static u16 MDregister[100]; openCom(0,115200, C8N1); // RS232C 채널0을 115200으로 오픈 startModbusRtu(0,1,MDregister, MDcoil); // MODBUS RTU의 시작, 슬레이브 어드레스는 1 delay(100); for(;;) { // 무한루프 } } ===== 주의사항 ===== * 모아콘은 단 한개의 채널에서만 모드버스 슬레이브를 지원합니다. 동시에 2개 채널에서 모드버스 슬레이브를 사용할 수 없습니다. * 만약 여러분이 작성한 모아콘 소스에서 통신이 잘 안된다면, 위 소스를 이용해서 점검을 해보시기 바랍니다. 모아콘 프로그램에서 문제가 있을 경우에도 HMI와의 통신이 잘 안될 수 있습니다. ===== coil함수, coilSet함수 ===== 다음은 편의기능을 넣은 소스코드입니다. 코일영역 (비트 어드레스)을 쉽게 접근하기 위한, coil함수와 coilSet함수를 포함하고 있습니다. * coil(어드레스) : 모드버스의 어드레스(비트영역)에서 한 비트를 읽어와서 0 또는 1을 반환 * coilSet(어드레스,값) : 모드버스의 어드레스(비트영역)에 한 비트를 기입 (값은 0또는 1) #include "moacon500.h" static u8 MDcoil[100]; static u16 MDregister[100]; // // 모드버스 어드레스를 가지고 비트의 상태를 읽어오는 함수 // a = coil(9); // 이렇게 하면 00009 비트 어드레스위치를 찾아서 해당 비트를 읽어온다. u8 MDbitDecode[8] = {1,2,4,8,16,32,64,128}; u8 coil(u16 MDBSadr) { MDBSadr--; if (MDcoil[MDBSadr>>3] & MDbitDecode[MDBSadr & 7]) return 1; return 0; } // // 모드버스 어드레스로 비트의 상태를 변경 // coilSet(9,0); // 00009어드레스를 0으로 만든다. // coilSet(9,1); // 00009어드레스를 1로 만든다. // void coilSet(u16 MDBSadr, u8 MDBSdata) { u16 arrayindex; MDBSadr--; arrayindex = MDBSadr>>3; // 배열에서의 위치 if (MDBSdata==0) { MDcoil[arrayindex] &= ~MDbitDecode[MDBSadr & 7]; } else { MDcoil[arrayindex] |= MDbitDecode[MDBSadr & 7]; } } void cmain(void) { openCom(0,115200, C8N1); startModbusRtu(0,1,MDregister, MDcoil); clcdI2cInit(0); clcdPower(1); delay(100); portInit(3,0); for(;;) { MDregister[0]++; // 증가하는것을 확인하기 위해서 MDcoil[0]++; // 코일 1~8까지 순차증가 if (coil(17) != 0) portOn(30); else portOff(30); if (portIn(0)==0) coilSet(18,0); else coilSet(18,1); delay(1); } } 이 프로그램으로 아래의 동영상을 만들었습니다. ====== 동작 동영상 ======
[[http://www.comfile.co.kr/download/hmi/MOACON_TEST.zip|위 동영상에서 사용한 ComfileHMI용 프로젝트 파일]] <= 폴더를 하나 만들어서 그안에 압축파일을 풀어서 사용하세요. {{ :comfilehmi:hmi_connection_moacon:moacontest2.png?nolink |}} ====== 모아콘에서 실수사용예 ====== [[https://blog.naver.com/cubloc/221075342066|HMI와 모아콘 실수 교환방법 ]] [[comfilehmi:index#ComfileHMI_하드웨어|상위 페이지로 가기]]