ubuntu下libmodbus庫的使用

2021-08-29 23:38:54 字數 2561 閱讀 5501

tar -zxvf libmodbus-3.0.6.tar.gz

進入libmodbus-3.0.6目錄:

cd libmodbus-3.0.6

配置:./configure

編譯與安裝:

make && make install

demo:

modbus_t *mb;

uint16_t tab_reg[32]

; mb =

modbus_new_tcp

("127.0.0.1"

,1502);

modbus_connect

(mb)

;/* read 5 registers from the address 0 */

modbus_read_registers

(mb,0,

5, tab_reg)

;modbus_close

(mb)

;modbus_free

(mb)

;

測試modbus-tcp協議通訊,**裡使用本地回環位址,埠1502:

進入tests目錄開啟乙個終端,啟動server程式:

./unit-test-server tcp

在目錄開啟另乙個終端,啟動client程式:

./unit-test-client tcp

啟動會列印出很多資訊。

而自己使用也需要精簡例子**,並按實際需要更改ip和埠:

libmodbus-3.0.6目錄下新建乙個mytest目錄。

mkdir mytest

將所需標頭檔案拷入,標頭檔案均位於目錄src中:

cp modbus.h modbus-rtu.h modbus-tcp.h ../mytest

進入該目錄:

cd mytest

建立自己**main.c如下:

#include

#include

#include

#include

#include

#include

#include

const uint16_t ut_input_registers_address =

0x1;

const uint16_t ut_bits_address =

0x04

;const uint16_t ut_input_registers_nb =

0xa;

const uint16_t ut_input_registers_tab=

;int

main

(int argc,

char

const

*argv)

if(modbus_connect

(ctx)==-

1)while(1

) rc =

modbus_read_bits

(ctx, ut_bits_address,

1, tab_rp_bits)

;printf

("modbus_read_bits 1 \n modbus_read_bits: \n");

if(rc !=1)

printf

("tab_rp_bits [0] is %d\n"

,tab_rp_bits[0]

);memset

(tab_rp_bits,

0, nb *

sizeof

(uint8_t));

sleep(1

);rc =

modbus_write_bit

(ctx, ut_bits_address,0)

;if(rc !=1)

rc =

modbus_read_bits

(ctx, ut_bits_address,

1, tab_rp_bits)

;printf

("modbus_read_bits 0 \n modbus_read_bits: \n");

if(rc !=1)

printf

("tab_rp_bits [0] is %d\n"

,tab_rp_bits[0]

);sleep(1

);}modbus_close

(ctx)

;modbus_free

(ctx)

;return0;

}

ip192.168.1.120

502編譯:

cc -o main main.c -lmodbus -i ./執行:

./main

ubuntu下Eclipse下新增GBK編碼

把windows下的工程匯入到了linux下eclipse中,由於以前的工程 都是gbk編碼的 windows下的eclipse 缺省會去讀取系統的編碼,所以widnwos下的eclipse的編碼為gbk 而ubuntu預設是不支援gbk編碼的。所以,首先我們要先讓 ubuntu支援gbk,方法如下...

ubuntu下源配置

更新源,更新系統 編輯源 sudo gedit etc apt sources.list 配置乙個源足矣,越多越麻煩。系統似乎不會自動識別速度最快的源,源越多隻會導致update和upgrade的速度減慢。中國科學技術大學更新伺服器 教育網,推薦校園網和網通使用者使用 電信cn99的源 推薦電信使用...

UBUNTU下軟體安裝

先簡單說介紹一下ubuntu。ubuntu的中文發音大約為 烏班圖。ubuntu這個單詞源自非洲,意謂 班圖精神 誰都不是一座孤島,自成一體。每個人都包孕於人類,因他人存在而存在,因他人幸福而幸福。下面介紹下在ubuntu下如何裝軟體。linux系統中,軟體通常以源 或者預編譯包的形式提供。1 軟體...