Modbus封装库(Com,tcp,udp一应俱全)
最佳答案 问答题库648位专家为你答疑解惑
自行封装在用的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 ++
99%的人还看了
相似问题
- PC 与 嵌入式板 传输文件的方式汇总 / SSH、NFS、TFTP,USB,串口
- stm32HAL库串口错误回调函数的使用
- MFC串口通信(SerialPort)
- macos端串口调试推荐 serial直装激活 for mac
- Luatos Air700 改变BL0942串口波特率
- 【全志H616 使用标准库 完成自制串口库(分文件实现) orangepi zero2(开源)】.md updata: 23/11/07
- 【软件STM32cubeIDE下H73xx配置串口uart1+中断接收/DMA收发+HAL库+简单数据解析-基础样例】
- 【PC电脑windows-学习样例tusb_serial_device-ESP32的USB模拟串口程序+VScode建立工程+usb组件添加+-基础样例学习】
- QT串口接收数据并进行波形显示(含源码)
- Golang 串口通信
猜你感兴趣
版权申明
本文"Modbus封装库(Com,tcp,udp一应俱全)":http://eshow365.cn/6-34459-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!