Modbus封装库(Com,tcp,udp一应俱全)

自行封装在用的Modbus通迅库,集成了com,tcp,udp, 做个笔记吧, 以下头文件,

#pragma once

#include <functional>

#include <vector>

#include <string>

#include <memory>

#ifdef LIBMODBUS_EXPORTS

#define LIBMODBUS_EXPORT_API __declspec(dllexport)

#else

#define LIBMODBUS_EXPORT_API __declspec(dllimport)

#endif

class LIBMODBUS_EXPORT_API RTUModbus {

public:

//devflag is 1 as default value

RTUModbus();

~RTUModbus();

public:

std::string getAddrPLC();

uint16_t getDevflag();

int getPort();

void sendBit(uint16_t addrstart, bool mvalue);

bool readBit(uint16_t addrstart, uint8_t* destBit);

void sendDataRegister(uint16_t addrstart, uint16_t mvalue);

void sendDataRegisters(uint16_t addrstart, uint16_t* mvalue);

void sendDataRegisters(uint16_t addrstart,const int len, uint16_t* mvalue);

bool readDataRegisters(uint16_t addrstart, uint16_t* destBit);

bool readDataRegisters(uint16_t addrstart,const int len, uint16_t* destBit);

bool isConnected();

void setPLCParam(const int mport, std::string ipra);

void disconnect();

bool connectPLCbyNet(const int port, const int devflag, std::string addr);

bool connectPLC(const int devflag);

//mport :com1 ,flag:0 Rs232,1:RS485

bool connectPLCbySerial(const char * mport, const int flag, const int baud = 115200,

char parity = 'N', const int data_bit = 8, const int stopbit = 1);

bool connectTo_UDP(std::string strIP, const int mport);

private:

std::shared_ptr<void> _modClient;

};

应用标例:

RTUModbus* mBus=new RTUModbus();

网口连接:

//tcp:

bool res=mBus->connectPLCbyNet(9000,1,"192.168.3.58");

//udp

bool res=connectTo_UDP("192.168.3.58",9000);

串口:

bool res=connectPLCbySerial("com1",1,115200);

读写方式,三者(串口、网口tcp,udp)都是共用的

下载地址:

LibModbus库(udp,tcp.com)一应俱全

https://download.csdn.net/download/sukeman/88504938

平台;VC++2015 ++

相关推荐
2401_873479405 小时前
IP属地为什么有时显示外省?用IP查询工具核查动态分配、运营商出口与GeoIP库
python·tcp/ip·ip
可爱系程序猿6 小时前
WSD 打印机时好时坏:从发现服务、地址变化到 Standard TCP/IP 端口的迁移记录
网络·网络协议·tcp/ip·程序人生·电脑
2501_916008899 小时前
全平台抓包工具,Windows、iPhone、Linux三个平台抓包测试
网络协议·计算机网络·网络安全·ios·adb·https·udp
Cx330❀10 小时前
【Linux网络】网络层 IP 协议:从网段划分到内核源码解析
大数据·linux·服务器·网络·tcp/ip·性能优化·langchain
爱学习的程序媛14 小时前
TCP / UDP 协议详解
网络·网络协议·udp·tcp·通信协议
javaDocker16 小时前
生产事件BUG跟进-【curl 卡在 Client Hello 问题复盘】
tcp/ip·生产事件
myy-learn16 小时前
33-HTTP协议TCP网页设计相关知识
tcp/ip·http
java_nnnn18 小时前
面试题(网络部分前传)-13问
服务器·网络·网络协议·tcp/ip·面试
上海云盾-小余19 小时前
业务被 DDoS 打崩?四层、七层攻击特征与防护方案复盘
网络·网络协议·tcp/ip·ddos
IpdataCloud1 天前
高可用的IP数据接口平台有哪些?从可用性、P99延迟到离线部署的评估框架(含代码)
数据库·tcp/ip·ip