사용자 도구

사이트 도구

English

comfilehmi:hmi_connection_moacon:index

차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
comfilehmi:hmi_connection_moacon:index [2020/02/22 13:32]
Comfile Technology [모아콘에서 실수사용예]
comfilehmi:hmi_connection_moacon:index [2023/03/30 23:47]
Comfile Technology [동작 동영상]
줄 1: 줄 1:
 +====== 모아콘과의 연결방법 ======
  
 +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의 프로젝트 통신 구성 ======
 +
 +제조사는 <​COMFILE>​ 모델명은 <​MOACON>​으로 하세요.
 +
 +{{ :​comfilehmi:​hmi_connection_moacon:​moasetting1.png?​nolink |}}
 +====== 모아콘 기본소스 ======
 +
 +모아콘 스튜디오는 최신버젼을 사용하세요.
 +
 +RS232C 채널0과 MODBUS-RTU를 활성화 시키는 최소한의 소스는 다음과 같습니다.
 +
 +<code c>
 +#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(;;) {
 +                   // 무한루프
 + }
 +}
 +</​code>​
 +
 +===== 주의사항 =====
 + 
 +  * 모아콘은 단 한개의 채널에서만 모드버스 슬레이브를 지원합니다. 동시에 2개 채널에서 모드버스 슬레이브를 사용할 수 없습니다.
 +
 +  * 만약 여러분이 작성한 모아콘 소스에서 통신이 잘 안된다면,​ 위 소스를 이용해서 점검을 해보시기 바랍니다. 모아콘 프로그램에서 문제가 있을 경우에도 HMI와의 통신이 잘 안될 수 있습니다.
 +
 +===== coil함수, coilSet함수 =====
 +
 +다음은 편의기능을 넣은 소스코드입니다. 코일영역 (비트 어드레스)을 쉽게 접근하기 위한, coil함수와 coilSet함수를 포함하고 있습니다.
 +
 +  * coil(어드레스) : 모드버스의 어드레스(비트영역)에서 한 비트를 읽어와서 0 또는 1을 반환
 +  * coilSet(어드레스,​값) : 모드버스의 어드레스(비트영역)에 한 비트를 기입 (값은 0또는 1)
 +
 +<code c>
 +#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);​
 + }
 +}
 +</​code>​
 +
 +이 프로그램으로 아래의 동영상을 만들었습니다.
 +
 +====== 동작 동영상 ======
 +
 +<​html>​
 +<​center>​
 +<iframe width="​560"​ height="​315"​ src="​https://​www.youtube.com/​embed/​3eWGlo67NHI"​ frameborder="​0"​ allowfullscreen></​iframe>​
 +</​center>​
 +</​html>​
 +
 +[[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_하드웨어|상위 페이지로 가기]]
comfilehmi/hmi_connection_moacon/index.txt · 마지막으로 수정됨: 2023/03/30 23:47 저자 Comfile Technology