在Linux上編寫modbus程序可以使用一些開源的庫,比如libmodbus。以下是一個簡單的步驟指導:
sudo apt-get install libmodbus-dev
#include <modbus.h>
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
int main() {
modbus_t *ctx;
uint16_t tab_reg[32];
ctx = modbus_new_rtu("/dev/ttyS0", 9600, 'N', 8, 1);
if (modbus_connect(ctx) == -1) {
fprintf(stderr, "Connection failed: %s\n", modbus_strerror(errno));
modbus_free(ctx);
return -1;
}
modbus_read_registers(ctx, 0, 1, tab_reg);
printf("Value of register 0: %d\n", tab_reg[0]);
modbus_close(ctx);
modbus_free(ctx);
return 0;
}
gcc -o modbus_example main.c -lmodbus
./modbus_example
這樣就可以在Linux上編寫和運行modbus程序了。需要注意的是,程序中的/dev/ttyS0是串口設備的路徑,需要根據具體的硬件設置正確的路徑和波特率等參數。