⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plc2.cpp

📁 管道疲劳强度检测试验系统
💻 CPP
字号:
// Plc.cpp: implementation of the CPlc class.
//

//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "PLC.h"
#include "Plc2.h"
//#include "Mainfrm.h"


#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif


//extern CPLCConctView* m_GpView;	
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CPlc2::CPlc2()
{
	m_RcvPress=0;
	flag=FALSE;
	m_datapr.SetSize(11);	
	FunNo=0;
	Syn_Steps_Count=0;
}

CPlc2::~CPlc2()
{

}

/*//////////////////////////////////////////////////////////////////////////////////
BYTE bFunc是输入的功能号信息
char dData是相对应的数据串

/////////////////////////////////////////////////////////////////////////////////*/
void CPlc2::PLCSend(unsigned char lpFunc,char *pData)
{		
	unsigned char checksum=0, buf[11]={0x2d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfe};	// 内部用的缓冲区	
	buf[3]=lpFunc;	
	for(int i=0;i<9;i++)
		checksum+=buf[i];
	if (checksum==0xfe) 
		checksum=0x7d;
	buf[9]=checksum;

//	memcpy(m_datapr,buf,11);///////?????????????
	
	for(int ii=0;ii<11;ii++)
		m_datapr[ii]=buf[ii];
}



bool CPlc2::PLCRcv(BYTE *bData,int count)
{
	WORD tmpword=0;
	int ii=0,iget=0;
	BYTE bread[15];
	while( !(bData[ii]==0x2d&& bData[ii+1]==0x00&& bData[ii+2]==0x00) && ii<count-9)////寻找数据包头
		ii++;

	if(ii<count-9)
	{	
		for(;ii<count;ii++)
		{
			bread[iget]=bData[ii];
			iget++;
			if(iget>14)
				break;
		}
	}
	else return FALSE;
/////再找数据包尾				
	if(bread[10]!=0xfe)
		return FALSE;
///////正确性检查	
	if(!Check(bread))
		return FALSE;

///////若正确性检查通过,则可以取出数据包中的数据
///////	
	
//读取压力
 
		m_RcvPress=bread[3];
	return TRUE;
}


///////正确性检查
BOOL CPlc2::Check(BYTE *lpBuf)
{
	BYTE ch=0,crc_char=lpBuf[9];	
	int ii=0;
	while(ii<9)
	{
		ch+=lpBuf[ii];
		ii++;
	}
	if(ch==crc_char || (ch==0xfe && crc_char==0x7d))
		return TRUE;
	else
		return FALSE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -