繼前面開發(fā)環(huán)境設(shè)置和libmodbus庫的移植后,本文主要介紹通過米爾-全志T113-i開發(fā)板實(shí)現(xiàn)與modbus設(shè)備的連接和操作。
一、設(shè)備簡介
剛好手頭有個(gè)modbus溫度傳感設(shè)備。
各種參數(shù)也挺好,就直接拿來用了。
二、程序設(shè)計(jì)
目標(biāo)功能就是讀取溫度傳感設(shè)備的溫度,libmodbus庫提供了相關(guān)API,跟網(wǎng)絡(luò)編程的socket一樣好用。
涉及的主要API包括:modbus_new_rtu、modbus_set_slave、modbus_read_registers和modbus_close 以及 modbus_free等接口。顧名思義,各種API的功能都很清晰。
具體程序功能包括周期性讀取連接到米爾-全志T113-i開發(fā)板上的溫度傳感器,源碼如下:
#include #include #include #include #include #include int main(int argc, char *argv[]) { uint16_t tab_reg[2]; modbus_t *ctx; int i; int rc; uint32_t *ireal; ctx = modbus_new_rtu("/dev/ttyAS4", 115200, 'N', 8, 1); if (ctx == NULL) { fprintf(stderr, "Unable to allocate libmodbus contextn"); return -1; } modbus_set_debug(ctx, TRUE); modbus_set_slave(ctx, 1); if (modbus_connect(ctx) == -1) { fprintf(stderr, "Connection failed: %sn", modbus_strerror(errno)); modbus_free(ctx); return -1; } while(1) { printf("--------------------n"); rc = modbus_read_registers(ctx, 0x0000, 1, tab_reg); if(rc == -1) { fprintf(stderr,"%sn",modbus_strerror(errno)); return -1; } for(i=0; i2; i++) { printf("reg[%d] = %d(0x%x)n",i,tab_reg[i],tab_reg[i]); } ireal = (uint32_t *)tab_reg; printf("Resd data %f n", (*ireal)/10.0); usleep(1000000); } modbus_close(ctx); modbus_free(ctx); return 0; }
其它Modbus的協(xié)議在此不再接受,網(wǎng)絡(luò)上到處都是。
三、功能執(zhí)行
首先根據(jù)線序連接好溫度傳感器和米爾-全志T113-i開發(fā)板。
編譯好源碼。
root@EliteDesk800:~/libmodbus-3.1.10/tests$ make make all-am make[1]: Entering directory '/home/libmodbus-3.1.10/tests' CC mod-client.o CCLD mod-client make[1]: Leaving directory '/home/libmodbus-3.1.10/tests' root@EliteDesk800:~
再將編譯后的可執(zhí)行程序SCP至米爾-全志T113-i開發(fā)板上,chmod + x后再執(zhí)行。
其中的debug信息是modbus_set_debug函數(shù)設(shè)置的結(jié)果打印log。
根據(jù)執(zhí)行結(jié)果,讀出的溫度OK。
四、結(jié)論
1、米爾-全志T113-i開發(fā)板提供了豐富的接口和穩(wěn)定的操作系統(tǒng)環(huán)境,很適合工業(yè)控制軟件程序開發(fā);
2、依托l(wèi)ibmodbus這個(gè)modbus協(xié)議庫,對于linux應(yīng)用下的modbus通信開發(fā),簡直就是一款神器,能夠極大的方便工業(yè)控制程序的開發(fā)。
審核編輯 黃宇
-
MODBUS
+關(guān)注
關(guān)注
28文章
1805瀏覽量
76992 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5050瀏覽量
97456
發(fā)布評論請先 登錄
相關(guān)推薦
評論