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

📄 run_traffic_lump_control.cpp

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

#include "PLC_DEMODoc.h"
#include "PLC_DEMOView.h"
#include "Input_link.h"
#include "Output_link.h"

#include "Run_traffic_lump_control.h"
#include "Makesure_in_out_point.h"
#include "Draw_function.h"

void clearpart(int,int,int,int,CBrush*,CDC*);
void drawround(int,int,int,int,CDC*);
bool R91enable=true;
extern int signinput[8],signoutput[10];
extern CPLC_DEMOView *forrun;
extern int fortrafficlumpinput[5];
extern int fortrafficlumpoutput[6];

void traffic_lump_beginset()
{
  forrun->SetTimer(15,300,NULL);
}

void traffic_lump_outresult()
{
	CDC *thisDC=forrun->GetDC();
	CPen blackpen(PS_SOLID,1,RGB(0,0,0));
	CPen redpen(PS_SOLID,1,RGB(255,0,0));
	CPen bluepen(PS_SOLID,1,RGB(0,255,0));
	CPen yellowpen(PS_SOLID,1,RGB(255,255,0));
	CBrush blackbrush(RGB(0,0,0));
	CBrush redbrush(RGB(255,0,0));
	CBrush bluebrush(RGB(0,255,0));
	CBrush yellowbrush(RGB(255,255,0));
    CPen *oldpen=thisDC->SelectObject(&blackpen);
	CBrush *oldbrush=thisDC->SelectObject(&blackbrush);
	thisDC->SetBkMode(TRANSPARENT);

	if(signoutput[fortrafficlumpoutput[0]])
	{
		thisDC->SelectObject(&yellowpen);
		thisDC->SelectObject(&yellowbrush);
		drawround(490,145,8,8,thisDC);
		drawround(610,355,8,8,thisDC);
	}
	else
	{
		thisDC->SelectObject(&blackpen);
		thisDC->SelectObject(&blackbrush);
		drawround(490,145,8,8,thisDC);
		drawround(610,355,8,8,thisDC);
	}
	if(signoutput[fortrafficlumpoutput[1]])
	{
		thisDC->SelectObject(&bluepen);
	    thisDC->SelectObject(&bluebrush);
		drawround(510,145,8,8,thisDC);
		drawround(590,355,8,8,thisDC);
		}
	else
	{
			thisDC->SelectObject(&blackpen);
		    thisDC->SelectObject(&blackbrush);
			drawround(510,145,8,8,thisDC);
			drawround(590,355,8,8,thisDC);
	}

	if(signoutput[fortrafficlumpoutput[2]])
	{
		thisDC->SelectObject(&redpen);
		thisDC->SelectObject(&redbrush);
		drawround(530,145,8,8,thisDC);//北
		drawround(570,355,8,8,thisDC);//南
	}
	else
	{
		thisDC->SelectObject(&blackpen);
		thisDC->SelectObject(&blackbrush);
		drawround(530,145,8,8,thisDC);//北
		drawround(570,355,8,8,thisDC);//南
	}
	if(signoutput[fortrafficlumpoutput[3]])
	{
		thisDC->SelectObject(&yellowpen);
		thisDC->SelectObject(&yellowbrush);
		drawround(445,310,8,8,thisDC);
		drawround(655,190,8,8,thisDC);
	}
	else
	{
		thisDC->SelectObject(&blackpen);
		thisDC->SelectObject(&blackbrush);
		drawround(445,310,8,8,thisDC);
		drawround(655,190,8,8,thisDC);
	}
	if(signoutput[fortrafficlumpoutput[4]])
	{
		thisDC->SelectObject(&bluepen);
		thisDC->SelectObject(&bluebrush);
		drawround(445,290,8,8,thisDC);
		drawround(655,210,8,8,thisDC);
	}
	else
	{
		thisDC->SelectObject(&blackpen);
		thisDC->SelectObject(&blackbrush);
		drawround(445,290,8,8,thisDC);
		drawround(655,210,8,8,thisDC);
	}
	if(signoutput[fortrafficlumpoutput[5]])
	{
		thisDC->SelectObject(&redpen);
		thisDC->SelectObject(&redbrush);
		drawround(445,270,8,8,thisDC);//西
		drawround(655,230,8,8,thisDC);//东
	}
	else
	{
		thisDC->SelectObject(&blackpen);
		thisDC->SelectObject(&blackbrush);
		drawround(445,270,8,8,thisDC);//西
		drawround(655,230,8,8,thisDC);//东
	}
	if(signinput[fortrafficlumpinput[0]])
	{
		thisDC->SelectObject(&redpen);
		thisDC->SelectObject(&redbrush);
		drawround(330,370,8,8,thisDC);
	}
	else
	{
		thisDC->SelectObject(&blackpen);
		thisDC->SelectObject(&blackbrush);
		drawround(330,370,8,8,thisDC);
	}
    if(signinput[fortrafficlumpinput[1]])
	{
	 	thisDC->SelectObject(&redpen);
		thisDC->SelectObject(&redbrush);
		drawround(330,392,8,8,thisDC);
	   }
    else 
	{
		thisDC->SelectObject(&blackpen);
		thisDC->SelectObject(&blackbrush);
		drawround(330,392,8,8,thisDC);
	}
	if(signinput[fortrafficlumpinput[2]])
	{
		thisDC->SelectObject(&redpen);
		thisDC->SelectObject(&redbrush);
		drawround(330,414,8,8,thisDC);
    }	
	else 
	{
		thisDC->SelectObject(&blackpen);
		thisDC->SelectObject(&blackbrush);
		drawround(330,414,8,8,thisDC);
	}
	
	if(signinput[fortrafficlumpinput[3]])
	{
		thisDC->SelectObject(&redpen);
		thisDC->SelectObject(&redbrush);
		drawround(330,436,8,8,thisDC);
	}
	else 
	{
		thisDC->SelectObject(&blackpen);
		thisDC->SelectObject(&blackbrush);
		drawround(330,436,8,8,thisDC);
	}
	if(signinput[fortrafficlumpinput[4]])
	{
		thisDC->SelectObject(&redpen);
		thisDC->SelectObject(&redbrush);
		drawround(330,458,8,8,thisDC);
	}
	else
	{
		thisDC->SelectObject(&blackpen);
		thisDC->SelectObject(&blackbrush);
		drawround(330,458,8,8,thisDC);
	}	
	thisDC->SelectObject(oldpen);
	thisDC->SelectObject(oldbrush);
	forrun->ReleaseDC(thisDC);
}

⌨️ 快捷键说明

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