當前位置:首頁 » 合同協議 » dcb協議

dcb協議

發布時間: 2020-12-05 16:45:50

㈠ RS485通過modbus rtu協議通信和通過pc載入器協議通信

(一)、通訊口設置
DCB dcb;
hCom=CreateFile("COM1",
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL);
if(hCom==INVALID_HANDLE_VALUE)
{
MessageBox("createfile error,error");
}
BOOL error=SetupComm(hCom,1024,1024);
if(!error)
MessageBox("setupcomm error");
error=GetCommState(hCom,&dcb);
if(!error)
MessageBox("getcommstate,error");
dcb.BaudRate=2400;
dcb.ByteSize=8;

dcb.Parity=EVENPARITY;//NOPARITY;
dcb.StopBits=ONESTOPBIT;
error=SetCommState(hCom,&dcb);

(二)、CRC校驗碼計算
UINT crc
void calccrc(BYTE crcbuf)
{
BYTE i;
crc=crc ^ crcbuf;
for(i=0;i<8;i++)
{
BYTE TT;
TT=crc&1;
crc=crc>>1;
crc=crc&0x7fff;
if (TT==1)
crc=crc^0xa001;
crc=crc&0xffff;
}
}
(三)、數據發送
zxaddr=11;//讀取地址為11的巡檢表數據
zxnum=10;//讀取十個通道的數據
writebuf2[0]=zxaddr;
writebuf2[1]=3;
writebuf2[2]=0;
writebuf2[3]=0;
writebuf2[4]=0;
writebuf2[5]=zxnum;
crc=0xffff;
calccrc(writebuf2[0]);
calccrc(writebuf2[1]);
calccrc(writebuf2[2]);
calccrc(writebuf2[3]);
calccrc(writebuf2[4]);
calccrc(writebuf2[5]);
writebuf2[6]=crc & 0xff;
writebuf2[7]=crc/0x100;
WriteFile(hCom,writebuf2,8,&comnum,NULL);

(四)、數據讀取
ReadFile(hCom,writebuf,5+zxnum*2,&comnum,NULL);//讀取zxnum個通道數據可增加錯誤處理程序,如地址碼錯誤、CRC碼錯誤判斷、通訊故障處理等。

別外還有其他說明,請登陸聚英電子網--搜索--modbus rtu協議

㈡ 用c++編寫的串口通信程序,其中有要求:1.通信數據格式(ASCII編碼格式) 2.通信協議(自定義ASCII)

推薦看書
Visual C++_Turbo C串口通信編程實踐

㈢ 求高人寫個modbus RTU的通訊協議 怎麼收發數據

看你的問題掛了好多天了,給你點資料吧。

http://www.modbus.org/tech.php
這是modbus的官網技術資源匯總。
在計算回機上實現modbus,如無特殊要答求一般不需要自己寫代碼,直接用現成的動態庫。
搜索ActiveX試試,我沒用過,但我知道同事有用過,具體用的哪一個不知道,但據說效果還不錯。

熱點內容
美發店認證 發布:2021-03-16 21:43:38 瀏覽:443
物業糾紛原因 發布:2021-03-16 21:42:46 瀏覽:474
全國著名不孕不育醫院 發布:2021-03-16 21:42:24 瀏覽:679
知名明星確診 發布:2021-03-16 21:42:04 瀏覽:14
ipad大專有用嗎 發布:2021-03-16 21:40:58 瀏覽:670
公務員協議班值得嗎 發布:2021-03-16 21:40:00 瀏覽:21
知名書店品牌 發布:2021-03-16 21:39:09 瀏覽:949
q雷授權碼在哪裡買 發布:2021-03-16 21:38:44 瀏覽:852
圖書天貓轉讓 發布:2021-03-16 21:38:26 瀏覽:707
寶寶水杯品牌 發布:2021-03-16 21:35:56 瀏覽:837