libmodbus 중국어 설명서

무료무료 기술 자료

이 글은 바로 읽을 수 있으며 기초 학습과 검색 유입에 적합합니다.

libmodbus 중국어 설명서

특징

lib mod bus 는 빠르고 크 로 스 플랫폼 의 Mod bus 라이 브 러 리 입니다 .

설명

lib mod bus 는 Mod bus 프로토 콜 을 사용하는 장치 와 데이터를 전송 / 수신 하는 라이 브 러 리 입니다 .라이 브 러 리 에는 다양한 네트워크를 통해 통신 하는 다양한 백 엔 드가 포함되어 있습니다 (예를 들어 , R TU 모 드의 직 렬 포 트 또는 TCP / IPv 6 의 이 더 넷).

http : / / www . mod bus . org 웹 사이트 는 http : / / www . mod bus . org / spe cs . ph p 에서 프로토 콜 사 양 문 서를 제공합니다 .

lib mod bus 는 낮은 통신 계 층 의 추 상 화를 제공 하며 지원 되는 모든 플랫폼 에서 동일한 API 를 제공합니다 .

이 문서 에서는 lib mod bus 개념을 소개 하고 , lib mod bus 가 다양한 하드 웨어 및 플랫폼 에서 Mod bus 통신 을 구현 하는 방법을 설명 하며 , lib mod bus 라이 브 러 리에서 제공하는 함 수에 대한 참조 매 뉴 얼 을 제공합니다 .

컨 텍 스트 (con text)

R TU 백 엔 드 (원 격 터 미 널 유 닛) 는 직 렬 포 트 통신 에 사용 되며 프로토 콜 통신 에 사용되는 데이터 의 컴 팩 트 한 이 진 표현 을 사용합니다 . R TU 형 식은 데이터 신뢰 성을 보장 하기 위해 오류 검사 메 커 니 즘 으로 명령 / 데이터 및 CR C (순 환 이 중 화 검사) 를 따 릅니다 . Mod bus R TU 는 Mod bus 에 사용할 수있는 가장 일반적으로 사용되는 구현 입니다 . http://en.wikipedia.org/wiki/Modbus Modbus RTU消息必须连续보내기,不能有문자间隔(摘自Wikipedia,Modbus,

Mod bus R TU 프레 임 워크 는 슬 레이 브 스테 이션 , Mod bus 요청을 처리 하는 장치 / 서버 및 요청을 보내는 클 라이언 트 (마 스터 스테 이션) 를 호출 합니다 .통신 은 항상 마스터 서버 에 의해 시작 됩니다 .

많은 Mod bus 장치 가 동일한 물리적 링크 (버 스 구조) 에서 함께 연결 될 수 있으므로 메시지를 보내 기 전에 mod bus _ set _ slave 를 사용하여 슬 레이 브 (수 신 장치) ID 를 설정 해야합니다 .슬 레이 브 스테 이션 을 실행 중 인 경우 해당 슬 레이 브 스테 이션 번호 가 수신 된 메시지를 필 터 링 하는 데 사용됩니다 .

Mod bus R TU 환경 만들기

초기 화 R TU 환경 포인 터 mod bus _ t * mod bus _ new _ r tu (con st char * device , int baud , char par ity , int 데이터 _ bit , int stop _ bit)

mod bus _ t * mod bus _ new _ r tu (con st char * device , int baud , char par ity , int 데이터 _ bit , int stop _ bit);
 
 
/ / 참조 코드 :
mod bus _ t * c ct x ;
 
c t x = mod bus _ new _ r tu ("/ dev / tt y US B 0 ", 115 200 , ' N ', 8, 1);
if (ct x == N ULL) {
    f print f (st der r , " lib mod bus 컨 텍 스트 를 만들 수 없습니다 . \ n ");
    return - 1;
}

이 mod bus _ new _ r tu () 함 수는 직 렬 라 인 에서 R TU 모 드를 사용하여 통신 하기 위해 mod bus 구조 를 생성 하고 초기 화 합니다 .

OS 가 처리 하는 직 렬 포 트의 이름을 지정 합니다 (예 : / dev / tt y S 0 또는 / dev / tt y US B 0), Windows 시스템 에서는 COM 번호 가 9 보다 큰 경우 COM 앞에 \ . \ 을 추가 해야 합니다 .예를 들어 , \\ . \ COM 10 은http : / / ms dn . micr oso ft . com / en - us / library / aa 365 24 7 (v = vs . 8 5). as px 참조

보 트 : 96 00, 19 200 , 57 600 , 115 200 등 과 같은 연결 의 보 트 속도를 지정 합니다 .

패 리티 : 패 리티 비트 를 나타내 며 다음과 같은 값을 갖 습니다 . Par ity : Par ity bit repres ents par ity bits , and has the following values :

N 패 리티 없음

E 짝 수 검사

O 홀 수 검 증

데이터 _ bit : 데이터 의 비트 수 를 지정 하며 , 허용 되는 값 은 5, 6, 7, 8 입니다 .

stop _ bit : 1 과 2 사이의 허용 값 으로 정 지 비트 수 를 지정 합니다 .

복 귀 : 빌 드가 성공 하면 mod bus _ new _ r tu () 함 수는 mod bus _ t 구조 에 대한 포인 터를 반환 합니다 .그렇지 않으면 N ULL 을 반환 하고 err no 를 An invalid argument was given . 로 설정 합니다 .

직 렬 포 트 모 드 설정

获取当前시리얼 포트모드 int modbus_rtu_get_serial_mode(modbus_t *

int mod bus _ r tu _ get _ serial _ mode (mod bus _ t * c t x);

 返回:如果成功, 函数应返回그렇지 않으면 - 1 을 반환 하고 er R no 를 현재 lib mod bus 백 엔 드가 R TU 가 아닙니다 .

R TU 환경 에서만 사용할 수 있습니다 .

 设置시리얼 포트모드

int mod bus _ r tu _ set _ serial _ mode (mod bus _ t * c t x , int mode);

mode : MO DB US _ R TU _ RS 23 2 또는 MO DB US _ R TU _ RS 48 5 를 입력 합니다 .

반환 값 : 성공 하면 함 수는 0 을 반환 합니다 .。그렇지 않으면 - 1 을 반환 하고 err no 를 아래에 정의 된 값 중 하나로 설정 합니다 .

E IN V AL 현재 lib mod bus 백 엔 드가 R TU 가 아닙니다 .

EN O TS UP 이 함 수는 플랫폼 에서 지원 되지 않습니다 .

io ct l () 에 대한 호출 이 실패 하면 io ct l 에 대한 오류 코 드가 반환 됩니다 .

在 RTU환경下 中获取当前RTS모드 int modbus_rtu_get_rts(modbus_t *ctx)

int mod bus _ r tu _ get _ r ts (mod bus _ t * c ct x);

현재 c t x 환경에서 요청을 전송 하는 모 드를 얻을 수 있습니다 .

값 반환 :

   MO DB US _ R TU _ R TS _ N ONE

   MO DB US _ R TU _ R TS _ UP

   MO DB US _ R TU _ R TS _ DO WN

   - 1 은 lib mod bus 백 엔 드가 R TU 가 아니라는 것을 의미합니다 . 

在RTU환경下获取设置RTS모드 int modbus_rtu_set_rts(modbus_t *ctx, int mode)

int mod bus _ r tu _ set _ r ts (mod bus _ t * c t x , int mode);
 
/ / 예 : 양 극 성 R TS 모 드를 시작합니다 .
mod bus _ t * c ct x ;
uint16_t tab_reg
 
c t x = mod bus _ new _ r tu ("/ dev / tt y S 0 ", 115 200 , ' N ', 8, 1);
mod bus _ set _ slave (ct x , 1);
mod bus _ r tu _ set _ serial _ mode (ct x , MO DB US _ R TU _ RS 48 5) ;
mod bus _ r tu _ set _ r ts (ct x , MO DB US _ R TU _ R TS _ UP);
 
if (mod bus _ connect (ct x) == - 1) {
    f print f (st der r , " 연 결 실패 : % s \ n ", mod bus _ str er ror (err no));
    mod bus _ free (ct x)
    return - 1;
}
 
r c = mod bus _ read _ register s (ct x , 0, 7, tab _ reg);
if (r c == - 1) {
    f print f (st der r , " % s \ n ", mod bus _ str er ror (err no));
    return - 1;
}
 
mod bus _ close (ct x);
mod bus _ free (ct x)

RS 48 5 직 렬 버 스를 통해 통신 하기 위해 전송 요청 모 드를 설정 합니다 . 기본 모 드는 MO DB US _ R TU _ R TS _ N ONE 이며 데이터가 라 인에 쓰 기 전 까지는 신호 가 전송 되지 않습니다 .

R TS 모 드를 활성화 하려면 MO DB US _ R TU _ R TS _ UP 또는 MO DB US _ R TU _ R TS _ DO WN 을 사용 해야 하며 , 이 모 드는 R TS 모 드를 활성화 하고 극 성을 설정 합니다 . MO DB US _ R TU _ R TS _ UP 를 사용하면 R TS 플 래 그 를 Ena bled 로 설정 하고 io ct l 호출 을 수행 한 다음 1 밀 리 초 지 연 후 버 스에 데이터를 기록 한 다음 R TS 플 래 그 를 Ena bled 로 설정 하여 또 다른 io ct l 호출 을 수행 하고 다시 1 밀 리 초 지 연 합니다 . MO DB US _ R TU _ R TS _ DO WN 모 드는 이와 비슷 하지만 반대 R TS 플 래 그 비 트를 사용합니다 .

성공 하면 함 수는 0 을 반환 합니다 .그렇지 않으면 - 1 을 반환 하고 err no 를 R TU 로 설정 합니다 . lib mod bus 백 엔 드는 R TU 가 아니며 인 수에 지정 된 모 드는 무 효 입니다 .

自定义RTS实现 int modbus_rtu_set_custom_rts(modbus_t *ctx, void (set_rts) (modbus_t  ctx, int on))

int mod bus _ r tu _ set _ custom _ r ts (mod bus _ t * c t x , vo id (set _ r ts) (mod bus _ t c t x , int on));

전송 전 및 후에 R TS PIN 을 설정 하여 호출 할 사용자 정의 함 수를 설정 합니다 . 기본적으로 기본적으로 I OC TL 호출 을 사용하여 R TS PIN 을 전환 하는 내부 함 수로 설정 됩니다 .

이 함 수는 R TS 모 드를 따르 며 MO DB US _ R TU _ R TS _ UP 또는 MO DB US _ R TU _ R TS _ DO WN 값을 사용하여 호출 해야 합니다 .

반환 : 성공 하면 mod bus _ r tu _ set _ custom _ r ts () 함 수는 0 을 반환 합니다 .그렇지 않으면 - 1 을 반환 하고 err no 를 lib mod bus 백 엔 드가 R TU 가 아닙니다 .

相关标签
실제 프로젝트에 이 자료를 활용하시겠습니까?

도구 센터에서 프레임 분석, CRC 검증, 장비 디버깅을 진행하거나 요청을 제출하여 선정 및 연동 제안을 받아보세요.

엔지니어 회원

이 글을 실행 가능한 디버깅 자료로 활용하세요

가입하면 고급 프레임 분석, 자료 패키지 다운로드, 코드 예제, 엔지니어링 사례, 우선 기술 지원을 이용할 수 있어 실제 프로젝트 납품에 적합합니다.

고급 도구 무제한 이용
자료 패키지와 코드 패키지
완전한 엔지니어링 사례 라이브러리
우선 기술 지원 채널

답글 작성

이메일 주소는 공개되지 않습니다. 必填项已用 * 标注