91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 13.1MB
    文件類型: .zip
    金幣: 1
    下載: 0 次
    發布日期: 2023-07-16
  • 語言: C/C++
  • 標簽: C++??modbus??

資源簡介

因為項目需要,自己參考網上的代碼加上自己寫的modbus客戶端C++源碼,實現了0x03和0x06的讀寫功能。可以拿來直接用!!!!

資源截圖

代碼片段和文件信息

#include
#include
#include
#include
#include?“MODBUS_SHARE.h“
#include?“MODBUS_SERVER.h“
#include?“PORT.h“

unsigned?char?buff[256];

////////////////////////////////////////////////////////////////////////////////////////////////////
/*1.對單個PLC操作*/
/*讀一個或多個模擬量??參數:站號,開始地址,?讀的數量,?返回數據變量指針??返回:-1表示CRC校驗失敗,-2表示無應答,?大于零表示接收數據成功*/
/*40000*/
int?MODBUS_S_ReadMultiRegD(unsigned?char?rtu?unsigned?short?int?RegAdd?unsigned?short?int?RegCount?short?int?*list)
{
unsigned?short?int?crc16;
unsigned?short?int?crctmp;
short?int?vartmp;
//1?word?=?2?byte?一個寄存器存一個word,即?16?bit?若一次讀了32bits,則表示一次連續讀了兩個寄存器
memset(buff?0x00?255);
buff[0]?=?rtu;??//從設備地址
buff[1]?=?0x03;//功能碼
buff[2]?=?(unsigned?char)((RegAdd?-?40001)?>>?8);//起始地址高位
buff[3]?=?(unsigned?char)(RegAdd?-?40001);//起始地址低位
buff[4]?=?(unsigned?char)(RegCount?>>?8);//寄存器數高位(表示一次連續度多少個寄存器)
buff[5]?=?(unsigned?char)RegCount;//寄存器數低位
crc16?=?CRC16(buff?6);
buff[6]?=?(unsigned?char)(crc16?>>?8);//差錯校驗
buff[7]?=?(unsigned?char)crc16;

//發送數據
unsigned?long?strlen;
if?(IsOpen())
{
//發送X03查詢報文
strlen?=?WriteChar(8?(char?*)buff);
if?(strlen?==?8)
{
//讀響應報文3+reg_count*2+2
memset(buff?0x00?255);
Sleep(50);
strlen?=?ReadChar(255?(char?*)buff?1000);
if?(strlen?==?0)
{
//無返回
return(-2);
}
else
{
//返回長度有效解析接收緩沖區
if?(strlen?==?(3?+?(RegCount?*?2)?+?2)?&&?buff[0]?==?rtu?&&?buff[1]?==?0x03)
{
crc16?=?CRC16(buff?3?+?(RegCount?*?2));
crctmp?=?buff[strlen?-?2];
crctmp?=?crctmp?< if?(crc16?==?crctmp)
{
for?(int?i?=?0;?i {
vartmp?=?buff[3?+?(2?*?i)];
vartmp?=?vartmp?< vartmp?=?vartmp?|?buff[3?+?((2?*?i)?+?1)];

list[i]?=?vartmp;
}
}
else
{
return(-1);
}
}
else
{
return(-1);
}
}
}
else
{
return(-2);
}
}
else
{
return(-2);
}

return(1);
}

/*讀一個或多個開關量??參數:站號,開始地址,?讀的數量,?返回數據變量指針??返回:-1表示CRC校驗失敗,-2表示無應答,?大于零表示接收數據成功*/
/*00000*/
char?MODBUS_S_ReadMultiRegM(unsigned?char?rtu?unsigned?short?int?RegAdd?unsigned?short?int?RegCount?bool?*list)
{
unsigned?short?int?crc16;
unsigned?short?int?crctmp;

memset(buff?0x00?255);
buff[0]?=?rtu;
buff[1]?=?0x01;
buff[2]?=?(unsigned?char)(RegAdd?>>?8);
buff[3]?=?(unsigned?char)RegAdd;
buff[4]?=?(unsigned?char)(RegCount?>>?8);
buff[5]?=?(unsigned?char)RegCount;
crc16?=?CRC16(buff?6);
buff[6]?=?(unsigned?char)(crc16?>>?8);
buff[7]?=?(unsigned?char)crc16;

//發送數據
unsigned?long?strlen;
if?(IsOpen())
{
//發送數據
strlen?=?WriteChar(8?(char?*)buff);
if?(strlen?==?8)
{
//讀數據
memset(buff?0x00?255);
Sleep(50);
strlen?=?ReadChar(255?(char?*)buff?1000);
if?(strlen?==?0)
{
//無返回
return(-2);
}
else
{
//返回長度有效解析接收緩沖區

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-07-27?15:12??ModbusClient\
?????目錄???????????0??2018-07-27?10:08??ModbusClient\.git\
?????文件????????2581??2018-07-27?10:08??ModbusClient\.gitattributes
?????文件????????3997??2018-07-27?10:08??ModbusClient\.gitignore
?????文件?????????691??2018-07-27?10:08??ModbusClient\.git\config
?????文件??????????73??2018-07-27?10:08??ModbusClient\.git\description
?????文件??????????23??2018-07-27?10:08??ModbusClient\.git\HEAD
?????目錄???????????0??2018-07-27?10:08??ModbusClient\.git\hooks\
?????文件?????????177??2018-07-27?10:08??ModbusClient\.git\hooks\README.sample
?????文件?????????472??2018-07-27?10:08??ModbusClient\.git\index
?????目錄???????????0??2018-07-27?10:08??ModbusClient\.git\info\
?????文件?????????113??2018-07-27?10:08??ModbusClient\.git\info\exclude
?????目錄???????????0??2018-07-27?10:08??ModbusClient\.git\logs\
?????文件?????????330??2018-07-27?10:08??ModbusClient\.git\logs\HEAD
?????目錄???????????0??2018-07-27?10:08??ModbusClient\.git\logs\refs\
?????目錄???????????0??2018-07-27?10:08??ModbusClient\.git\logs\refs\heads\
?????文件?????????330??2018-07-27?10:08??ModbusClient\.git\logs\refs\heads\master
?????文件?????????150??2018-07-27?10:08??ModbusClient\.git\ms-persist.xml
?????目錄???????????0??2018-07-27?10:08??ModbusClient\.git\objects\
?????目錄???????????0??2018-07-27?10:08??ModbusClient\.git\objects\03\
?????文件?????????457??2018-07-27?10:08??ModbusClient\.git\objects\03\c8628ac32f6c2debacf6ab9582d84eb675e621
?????目錄???????????0??2018-07-27?10:08??ModbusClient\.git\objects\0d\
?????文件??????????89??2018-07-27?10:08??ModbusClient\.git\objects\0d\76fe4328089e5b63a9c4190badacfc35ef2624
?????目錄???????????0??2018-07-27?10:08??ModbusClient\.git\objects\13\
?????文件?????????189??2018-07-27?10:08??ModbusClient\.git\objects\13\8d76029c15dfdaf4f4f96a44ed85676f26876c
?????目錄???????????0??2018-07-27?10:08??ModbusClient\.git\objects\1c\
?????文件????????1863??2018-07-27?10:08??ModbusClient\.git\objects\1c\9a181a44b4f9a105f0dc71a40ad0284ab6a7c4
?????目錄???????????0??2018-07-27?10:08??ModbusClient\.git\objects\1f\
?????文件?????????751??2018-07-27?10:08??ModbusClient\.git\objects\1f\f0c423042b46cb1d617b81efb715defbe8054d
?????目錄???????????0??2018-07-27?10:08??ModbusClient\.git\objects\6a\
?????文件?????????160??2018-07-27?10:08??ModbusClient\.git\objects\6a\733dd9460f213b7407a6757e58840b80b32000
............此處省略48個文件信息

評論

共有 條評論