unsigned char Y0_ON[12] =
{0x02,0x30,0x30,0x37,0x30,0x30,0x32,0x30,0x30,0x03,0x38,0x43};
unsigned char Y0_OFF[12] =
{0x02,0x30,0x30,0x37,0x31,0x30,0x32,0x30,0x30,0x03,0x38,0x44};
unsigned char Y1_ON[12]
{0x02,0x30,0x30,0x37,0x30,0x30,0x32,0x30,0x31,0x03,0x38,0x44};
unsigned char Y1_OFF[12] =
{0x02,0x30,0x30,0x37,0x31,0x30,0x32,0x30,0x31,0x03,0x38,0x45};
DWORD wCount = 0;
while(1)
{switch(getch())
{case WriteFile(myCOM, Y0_ON, 12, &wCount, NULL); break;
case WriteFile(myCOM, Y1_ON, 12, &wCount, NULL); break;
case WriteFile(myCOM, Y0_OFF, 12, &wCount, NULL); break;
case WriteFile(myCOM, Y1_OFF, 12, &wCount, NULL); break; } }
return(0);
5 结束语
本文介绍了一种基于VC++的上位机和丰炜PLC串行通信的实现方法。首先介绍了丰炜PLC的串行通信协议,研究了丰炜PLC接受上位机的命令格式和数据帧格式;给出了命令的具体内容的计算过程。然后介绍了VC++关于串行通信的WINOOWs API,分别介绍了每个API函数的功能、原型和参数,使用WINOOWs API实现上位机和PLC的串行通信,与使用串行通信控件MSComm的方法相比,功能更强,可移植性更好。最后给出了基于VC++的上位机和丰炜PLC串行通信的参考程序,经过编译运行,实现了设计目的,该程序可应用于其它类型的PLC和上位机的串行通信,具有一定的参考价值。