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

  • 大小: 232KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-17
  • 語言: C/C++
  • 標簽: MODBUS協議??

資源簡介

(原創)MODBUS協議的 C語言實現 學習MODBUS 可以參考下 實現功能 1 2 3 4 5 6 15 16

資源截圖

代碼片段和文件信息

#include?
#include?
//循環位移?a?數據?N?數據長度?n要移動的長度
#define??ROTATE_LEFT(aNn)??(a>>(N-n))|(a<#define??ROTATE_RIGHT(aNn)??(a<<(N-n))|(a>>n)

/**********************************************************************************************************************************/
//組成請求包???buffer
int??modbus_pack_q_coil(unsigned?char?funcunsigned?short?addrunsigned?short?lengthunsigned?char*?bufferunsigned?short?bufferlen)
//?func????請求代碼
//?addr???請求地址
//?databuffer?需要寫入buffer的緩存值?
//?length?數據數量??(線圈數量)
//?buffer????生成的數據存放的緩存
//?bufferlen?buffer長度
//?????????格式:?功能碼?起始地址?線圈數量
{
int?i;
unsigned?short?utemp;
i?=?0;??????????????????????
memset(buffer0bufferlen);
//功能碼
buffer[i]?=?func;
i?=?i?+?1;
//地址
utemp?=?addr;
utemp?=?ROTATE_RIGHT(utemp168);
memcpy(&(buffer[i])&utempsizeof(utemp));
i?=?i?+?2;

//請求長度
utemp?=?length;
utemp?=?ROTATE_RIGHT(utemp168);
memcpy(&(buffer[i])&utempsizeof(utemp));
i?=?i?+?2;

return?i;?

}





/*********************************************************************************************************************************/
//組成回復包?????databuffer?->?buffer
int?modbus_pack_r_coil(unsigned?char?errcodeunsigned?char?funcunsigned?short?addrunsigned?char*?databufferunsigned?short?lengthunsigned?char*?bufferunsigned?short?bufferlen)
//?func???請求代碼
//?databuffer?需要寫入buffer的緩存值?
//?length?數據數量
//?buffer????生成的數據存放的緩存
//?bufferlen?buffer長度?????
//?????????格式:?功能碼?字節數??線圈狀態
{????
int?i?=?0;
unsigned?char?jr;????//?j?輸出字節數??r?輸出地址整數
unsigned?char?nm;??//?n?輸出長度余數????m??地址余數
unsigned?char?k;
unsigned?char?temp=0temp1=0temp2=0;
//unsigned?char?temp3temp4temp5;

memset(buffer0bufferlen);
//?基礎請求頭部
buffer[i]?=?func;

//?如果有錯誤碼
if(errcode?!=?0)
{
i?++;
buffer[i]?=?errcode?+?0x80;
return?i;
}

i?++;

j?=?length?>>?3;??//?輸出字節數
n?=?length?%?8;???//?輸出數量余數
if(n?!=?0)
j?++;
buffer[i]?=?j;
i?++;


r?=?addr?>>?3;??//?輸出地址
m?=?addr?%?8;???//?輸出地址余數
?
for(k?=?i;?k? {
temp1?=?databuffer[r]?>>?m;
temp2?=?databuffer[r?+?1]?< temp?=?temp1?|?temp2;
buffer[k]?=?temp;
r?++;
}?
if(n?!=?0)??????//非整輸出字節數
{
temp?=?0xff;
temp?=?temp?>>?(8?-?n);????????????//?高位為0?低位為1
buffer[k-1]?=?buffer[k-1]?&?temp;???//??高位補零
}
return?k;

}



?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????2604??2013-05-30?16:40??lee?modbus\01.cpp

?????文件???????1109??2013-05-30?16:40??lee?modbus\01.h

?????文件???????2593??2013-06-08?11:08??lee?modbus\02.cpp

?????文件???????1111??2013-06-08?11:04??lee?modbus\02.h

?????文件???????2165??2013-05-30?16:40??lee?modbus\03.cpp

?????文件???????1118??2013-05-30?16:40??lee?modbus\03.h

?????文件???????2175??2013-06-08?11:11??lee?modbus\04.cpp

?????文件???????1128??2013-06-08?11:11??lee?modbus\04.h

?????文件???????2902??2013-06-08?10:31??lee?modbus\05.cpp

?????文件???????1181??2013-06-03?14:18??lee?modbus\05.h

?????文件???????2388??2013-05-30?16:40??lee?modbus\06.cpp

?????文件???????1125??2013-05-30?16:40??lee?modbus\06.h

?????文件???????3351??2013-06-08?16:44??lee?modbus\15.cpp

?????文件???????1167??2013-06-08?11:19??lee?modbus\15.h

?????文件???????2570??2013-06-08?14:49??lee?modbus\16.cpp

?????文件???????1176??2013-06-08?14:35??lee?modbus\16.h

?????文件???????4570??2013-06-08?17:23??lee?modbus\Debug\01.obj

?????文件???????4574??2013-06-08?17:23??lee?modbus\Debug\02.obj

?????文件???????4292??2013-06-08?17:23??lee?modbus\Debug\03.obj

?????文件???????4312??2013-06-08?17:23??lee?modbus\Debug\04.obj

?????文件???????4827??2013-06-08?17:23??lee?modbus\Debug\05.obj

?????文件???????4542??2013-06-08?17:23??lee?modbus\Debug\06.obj

?????文件???????5397??2013-06-08?17:23??lee?modbus\Debug\15.obj

?????文件???????4835??2013-06-08?17:23??lee?modbus\Debug\16.obj

?????文件???????2548??2013-06-09?09:51??lee?modbus\Debug\BuildLog.htm

?????文件?????135168??2013-06-09?09:51??lee?modbus\Debug\len?modbus.exe

?????文件?????443212??2013-06-09?09:51??lee?modbus\Debug\len?modbus.ilk

?????文件?????445440??2013-06-09?09:51??lee?modbus\Debug\len?modbus.pdb

?????文件??????24405??2013-06-09?09:51??lee?modbus\Debug\main.obj

?????文件??????68608??2013-06-09?09:51??lee?modbus\Debug\vc70.idb

............此處省略11個文件信息

評論

共有 條評論