사용자 도구

사이트 도구

English

cublocapp:an41007:index

AN41007 - 모아콘끼리 상호 통신

MODBUS RTU 를 이용해서 모아콘끼리 상호 통신하실 수 있습니다. 한쪽을 슬레이브로 만들고, 다른 한쪽에서 마스터 함수를 이용하는 방식입니다.

그림에서처럼 RS232 채널 0 의 2 번,3 번은 서로 교차 연결하고, 5 번은 5 번끼리 연결하십시오. 슬레이브에는 다음과 같은 소스를 사용하였습니다.

#include "moacon500.h"
void cmain(void)
{
 static u8 MDcoil[100];
 static u16 MDregister[100];
 openCom(0,57600, C8N1);
 startModbusRtu(0,1,MDregister, MDcoil);
 clcdI2cInit(0);
 clcdPower(1);
 delay(100);
 for(;;) {
 MDregister[0]++;
 MDregister[1]++;
 MDcoil[0]++;
 MDcoil[1]++;
 delay(100);
 clcdPrint(0,0,"%2X %2X %4X",MDcoil[0],MDcoil[1],MDregister[0]);
 }
} 

마스터에는 다음과 같은 소스를 사용하였습니다.

#include "moacon500.h"
void cmain(void)
{
 short res;
 int errtime=0,errtime2=0;
 static u8 MBcoilBuffer[4];
 static u16 MBregisterBuffer[4];
 clcdI2cInit(0);
 clcdPower(1);
 delay(100);
 clcdCls();
 delay(100);
 clcdCsr(0);
 openCom(0,57600,C8N1);
 while(1) {
 res = RTU_readCoils(0,1,MBcoilBuffer,0,16);
 if (res != -1) {
 clcdPrint(0,2,"Error FC1 %d #%d",res,++errtime);
 }
 delay(200);
 res = RTU_readInRegs(0,1,MBregisterBuffer,0,1);
 if (res != -1) clcdPrint(0,3,"Error FC3 %d #%d",res,++errtime2);
 delay(200);
 clcdPrint(1,1,"%2X %2X %4X",MBcoilBuffer[0],MBcoilBuffer[1],MBregisterBuffer[0]);
 }
} 

마스터에서 슬레이브의 정보를 읽어와서 LCD 상에 표시합니다. 결과적으로 양쪽 LCD 창에는 같은 정보가 표시됩니다.

한단계 뒤로

cublocapp/an41007/index.txt · 마지막으로 수정됨: 2017/10/19 22:52 저자 Comfile Technology