您当前的位置:五五电子网电子知识plc技术PLC通信基于VC++的上位机和丰炜PLC串行通信的实现 正文
基于VC++的上位机和丰炜PLC串行通信的实现

基于VC++的上位机和丰炜PLC串行通信的实现

点击数:7619 次   录入时间:03-04 11:50:11   整理:http://www.55dianzi.com   PLC通信

函数WriteFile()的功能是将资料写入串口,函数原型如下:

BOOL WriteFileHANDLE hFile, LPCVOID lpBuffer,DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped

参数HANDLE hFile指定通信设备的句柄;参数LPCVOID lpBuffer设置写入字符串的首地址;参数DWORD nNumberOfBytesToWrite设置要写入的字符的个数;参数LPDWORD lpNumber

OfBytesWritten设置实际写入的字符的个数;参数LPOVERLAPPED lpOverlapp

ed设置i/o重构结,通常为NULL

4  参考程序

参考程序的目的是在键盘上输入“0”,使PLCY0输出端导通(ON);在键盘上输入“1”,使PLCY1输出端导通(ON);在键盘上输入“a”,使PLCY0输出端关闭(OFF);在键盘上输入“b”,使PLCY1输出端关闭(OFF)。

以使Y0输出端导通(ON)为例,说明来计算上位机给PLC发送命令的内容的过程。起始码是字元STX,对应的ASCII Code02H;站号是字元0,因为站号占用两个字元,所以实际站号是字元00,对应的ASCII Code30H30H;使位元元件为ON的字元是70,对应的ASCII Code37H30HY0对应的字元是0040,转换后的字元是0200,对应的ASCIICode30H32H30H30H;结束码是字元ETX,对应的ASCII Code03H; 30H30H37H30H30H32H30H30H03H加和的结果是18C,取后两位是8C,对应的ASCII Code38H43H。综上,要实现Y0ON,发送的数据为0x02,0x30,0x30,0x37,0x30,0x30,0x32,0x30,0x30,0x03, 0x38,0x43;同理可得:要实现Y0OFF,发送的数据为0x02,0x30,0x30,0x37,0x31,0x30,0x32,0x30,0x30,0x03,0x38,0x44;要实现Y1ON,发送的数据0x02,0x30,0x30,0x37,0x30,0x30,0x32,0x30,0x31,0x03,0x38,0x44;要实现Y1OFF,发送的数据为0x02,0x30,0x30,0x37,0x31,0x30,0x32,0x30,0x31,0x03,0x38,0x45

计算出上位机给PLC发送命令的具体内容后,利用WINOOWs API函数就可以编写上位机的VC++程序,参考程序如下所示,本程序经过编译运行,达到了设计的要求。

上一页  [1] [2] [3] [4] [5] [6]  下一页


本文关键字:通信  和丰  PLC通信plc技术 - PLC通信