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

📄 plccontrol.cpp

📁 开发虚拟的被控对象及虚拟的PLC,模似PLC的工作过程进行实验。用户可根据具体的实验,确定其输入和输出的控制条件,用虚拟的连线和虚拟的PLC连接,用户利用梯形图的编程方式编写PLC程序控制被控对象的动
💻 CPP
字号:
// PLCcontrol.cpp : implementation file
//

#include "stdafx.h"
#include "PLC_DEMO.h"
#include "PLCcontrol.h"

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

/////////////////////////////////////////////////////////////////////////////
// CPLCcontrol dialog
extern char  temporarilystr[300][20];//文本输入空间
extern int copyline;//文本输入行
void Tidythetext();//整理文本
void Storeinstruction();// 存储文本检查语法错误

CPLCcontrol::CPLCcontrol(CWnd* pParent /*=NULL*/)
	: CDialog(CPLCcontrol::IDD, pParent)
{
	//{{AFX_DATA_INIT(CPLCcontrol)
	m_nprogram = -1;
	//}}AFX_DATA_INIT
    if(Create(CPLCcontrol::IDD,pParent))
		ShowWindow(SW_SHOW);

}
void CPLCcontrol::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPLCcontrol)
	DDX_Radio(pDX, IDC_INPUTPROGRAM, m_nprogram);
	//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPLCcontrol, CDialog)
	//{{AFX_MSG_MAP(CPLCcontrol)
	ON_WM_PAINT()
	ON_BN_CLICKED(IDC_INPUTPROGRAM, OnInputprogram)
	ON_BN_CLICKED(IDC_CHECKPROGRAM, OnCheckprogram)	
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPLCcontrol message handlers
void CPLCcontrol::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
    CPen penBlack(PS_SOLID,1,RGB(0,0,0));
	CPen* pOldPen=NULL;
	pOldPen=dc.SelectObject(&penBlack);
	
	dc.MoveTo(220,85);//直线
    dc.LineTo(220,100);
    dc.MoveTo(200,85);
	dc.LineTo(200,100);
	dc.MoveTo(220,360);
	dc.LineTo(220,382);
	dc.MoveTo(200,360);
	dc.LineTo(200,382);	
	dc.MoveTo(90,120);
	dc.LineTo(90,350);
    dc.MoveTo(339,53);
    dc.LineTo(339,350);
	dc.MoveTo(339,53);
	dc.LineTo(400,53);
	dc.MoveTo(93,120);
	dc.LineTo(93,350);
    dc.MoveTo(336,50);
	dc.LineTo(336,350);
	dc.MoveTo(336,50);
	dc.LineTo(400,50);
	dc.MoveTo(440,50);
	dc.LineTo(488,50);
	dc.MoveTo(90,120);
	dc.LineTo(130,120);
    dc.MoveTo(293,120);
	dc.LineTo(336,120);
    dc.MoveTo(93,178);
	dc.LineTo(130,178);
	dc.MoveTo(293,178);
	dc.LineTo(336,178);
	dc.MoveTo(93,234);
	dc.LineTo(130,234);
    dc.MoveTo(293,234);
	dc.LineTo(336,234);
	dc.MoveTo(93,290);
	dc.LineTo(130,290);
    dc.MoveTo(293,290);
	dc.LineTo(336,290);
	dc.MoveTo(90,350);
	dc.LineTo(130,350);
    dc.MoveTo(293,350);
	dc.LineTo(339,350);

	dc.SelectObject(pOldPen);
	// TODO: Add your message handler code here
	// Do not call CDialog::OnPaint() for painting messages
}
void CPLCcontrol::OnInputprogram() 
{
	// TODO: Add your control notification handler code here
	GetDlgItem(IDC_PROGRAM)->ShowWindow(SW_SHOW);//显示编辑匡
}
void CPLCcontrol::OnCheckprogram() 
{
	// TODO: Add your control notification handler code here
    Inputthetext();//得到输入文本
	Tidythetext();//整理输入文本
	Storeinstruction();//存储输入和检查有无语法错误
}
void CPLCcontrol::Inputthetext()	//输入指令文本
{                                //将它们存入temporarilystr数组
	CEdit* pGetprogram=(CEdit*)GetDlgItem(IDC_PROGRAM);	
    int i,copynumber;
	copyline=pGetprogram->GetLineCount();
	for (i=0;i<copyline;i++)
	{
		copynumber=pGetprogram->GetLine(i,temporarilystr[i],20);
		temporarilystr[i][copynumber]='\0';
	}	
}
void CPLCcontrol::OnClearedit() 
{
	// TODO: Add your control notification handler code here
    CEdit *clearedit=(CEdit*)GetDlgItem(IDC_PROGRAM);
	clearedit->Clear();
}


⌨️ 快捷键说明

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