基于win32api的PLC与MFC通信

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012839256/article/details/82782152

作者使用欧姆龙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】或【定时器】或【线程】。

完事儿!!!

猜你喜欢

转载自blog.csdn.net/u012839256/article/details/82782152