morningstar sunsaver MPPT 용 데이터를 읽는 C 프로그램을 작성하려고합니다.Modbus를 통한 등록
이것은 net에서 찾은 간단한 프로그램입니다. 하지만 내 프로그램은 레지스터에서 데이터를 읽을 수 없습니다.
#include <stdlib.h>
#include <errno.h>
#include "src/modbus.h"
int main(void)
{
modbus_t *ctx;
uint16_t tab_reg[64];
int rc;
int i;
ctx = modbus_new_rtu("/dev/ttyS0", 115200, 'N',8,1);
if (ctx == NULL) {
fprintf(stderr, "Connection failed: %s\n", modbus_strerror(errno));
modbus_free(ctx);
return -1;
}
rc = modbus_read_registers(ctx, 0, 10, tab_reg);
if (rc == -1) {
fprintf(stderr, "%s\n", modbus_strerror(errno));
return -1;
}
for (i=0; i < rc; i++) {
printf("reg[%d]=%d (0x%X)\n", i, tab_reg[i], tab_reg[i]);
}
modbus_close(ctx);
modbus_free(ctx);
}
나를 위해 작동하지 않습니다. 나는 다음과 같은 오류 메시지가 얻을 다음 documentation from LibModBus을 읽어
잘못된 파일 기술자
시스템에'는/dev/ttyS0' 파일 존재인가에서 깨닫게? – ouah
예 선물합니다. – PRP