基於win32api的PLC與MFC通訊
阿新 • • 發佈:2018-12-10
作者使用歐姆龍PLC,採用FCS校驗,用Win32API,在MFC上實現通訊。
話說,這個賊簡單,直接上程式碼
(1)首先,建立埠,並初始化引數。
hCom=CreateFile("COM4", GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); SetupComm(hCom,1024,1024); GetCommState(hCom, &myDCB); myDCB.BaudRate=9600;// 波特率 myDCB.fBinary=TRUE;// 通訊方式=二進位制 myDCB.fParity=TRUE;// 奇偶校驗 TRUE=使用,FALSE=不使用 myDCB.Parity=2; // 校驗方式:0-無 1-奇 2-偶 3-標誌 4-空格 myDCB.ByteSize=7;// 資料位數 myDCB.StopBits=2;// 停止位數:0-1位 1-1.5位 2-2位 SetCommState(hCom, &myDCB);
(2)然後直接傳送 讀取資料。
BYTE datas[17] = {'@',48,48,'R','R',48,49,48,48,48,48,48,49,52,48,'*',13};
WriteFile(hCom, &datas, 17, NULL, NULL); //往緩衝區發資料
BYTE myByte[15];
ReadFile(hCom, &myByte, 15, NULL, NULL);//讀取緩衝區資料
(3)同樣,如果需要多次傳送和接收請求,用【while】或【定時器】或【執行緒】。