1.准备好modbus slave和虚拟串口软件,在虚拟串口软件里面将COM3和COM4配置在一起。
2.打开VS2015,建立一个win32的控制台程序工程,选择空项目。
3.将libmodbus库里面的文件拷贝到工程路径下,包括
modbus.dll
modbus.h
modbus.lib
modbus-rtu.h
modbus-tcp.h
modbus-version.h
4.将modbus.lib和modbus.h放在资源管理器下的资源文件里面
5.新建一个cpp文件,编写程序
(1)在调用头文件过程中,有
#include <stdio.h>//标准C输入输出库
#ifndef _MSC_VER//VS版本号
#include <unistd.h>//unix系统移植头文件
#endif
#include <string.h>//字符串头文件
#include <stdlib.h>//C标准库头文件
#include <errno.h>//抓error头文件
#include "modbus.h"//调用libmodbus库
(2)其余有宏定义
#define LOOP 1 //循环次数
#define server_ID 17//从端设备地址
#define address_Start 0//测试寄存器起始地址
#define address_End 99//测试寄存器终止地址
(3)对于主函数内容,变量定义有
int main()
{
modbus_t *ctx;//定义一个结构体指针
}
对于libmodbus,核心结构体有两个,一个是_modbus(即modbus_t)和modbus_mapping_t。modbus_t结构体定义在modbus_private.h中,内容有
struct _modbus
{
/* Slave address */
int slave; //从站设备地址
/* Socket or file descriptor */
int s;//TCP模式下为Socket套接字;RTU下为串口句柄
int debug;//是否启用debug模式
int error_recovery;//错误恢复模式
struct timeval response_timeout;//响应超时设置
struct timeval byte_timeout;//字节超时设置
struct timeval indication_timeout;
//包括一系列共通函数指针
const modbus_backend_t *backend;
//上面共通之外的数据
void *backend_data;
};