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

📄 fetch_communicate.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 "Instruction_define.h"

int signinput[8];//输入接口状态存储
int signoutput[10];//输出接口状态存储

extern int stockinputlink[7][7];//连线存储
extern int stockoutputlink[9][7];
extern bool WX[160];
extern bool WY[160];
extern CPLC_DEMOView *forsend;

void send_inputmessage()
{
	forsend->GetDlgItem(IDC_INPUT1)->SetWindowText(
		WX[1]?"on":"off");
	forsend->GetDlgItem(IDC_INPUT2)->SetWindowText(
		WX[2]?"on":"off");
	forsend->GetDlgItem(IDC_INPUT3)->SetWindowText(
		WX[3]?"on":"off");
    forsend->GetDlgItem(IDC_INPUT4)->SetWindowText(
		WX[4]?"on":"off");
    forsend->GetDlgItem(IDC_INPUT5)->SetWindowText(
		WX[5]?"on":"off");
	forsend->GetDlgItem(IDC_INPUT6)->SetWindowText(
		WX[6]?"on":"off");
	forsend->GetDlgItem(IDC_INPUT7)->SetWindowText(
		WX[7]?"on":"off");	

    forsend->GetDlgItem(IDC_SWITCH1)->SetWindowText(
		signinput[1]?"on":"off");
	forsend->GetDlgItem(IDC_SWITCH2)->SetWindowText(
		signinput[2]?"on":"off");
	forsend->GetDlgItem(IDC_SWITCH3)->SetWindowText(
	signinput[3]?"on":"off");
	forsend->GetDlgItem(IDC_SWITCH4)->SetWindowText(
		signinput[4]?"on":"off");
	forsend->GetDlgItem(IDC_SWITCH5)->SetWindowText(
		signinput[5]?"on":"off");
	forsend->GetDlgItem(IDC_SWITCH6)->SetWindowText(
		signinput[6]?"on":"off");
	forsend->GetDlgItem(IDC_SWITCH7)->SetWindowText(
		signinput[7]?"on":"off");
}
void input_fetch_message()
{
	for(int i=0;i<7;i++)
	{
		if(!stockinputlink[i][0])
			continue;
		else 
			WX[stockinputlink[i][2]]=
			(signinput[stockinputlink[i][1]]?true:false);
	}
	send_inputmessage();
}
void send_outputmessage()
{
	forsend->GetDlgItem(IDC_OUTPUT1)->SetWindowText(
		WY[1]?"on":"off");
	forsend->GetDlgItem(IDC_OUTPUT2)->SetWindowText(
		WY[2]?"on":"off");
	forsend->GetDlgItem(IDC_OUTPUT3)->SetWindowText(
		WY[3]?"on":"off");
    forsend->GetDlgItem(IDC_OUTPUT4)->SetWindowText(
		WY[4]?"on":"off");
    forsend->GetDlgItem(IDC_OUTPUT5)->SetWindowText(
		WY[5]?"on":"off");
	forsend->GetDlgItem(IDC_OUTPUT6)->SetWindowText(
		WY[6]?"on":"off");
	forsend->GetDlgItem(IDC_OUTPUT7)->SetWindowText(
		WY[7]?"on":"off");
	forsend->GetDlgItem(IDC_OUTPUT8)->SetWindowText(
		WY[8]?"on":"off");
	forsend->GetDlgItem(IDC_OUTPUT9)->SetWindowText(
		WY[9]?"on":"off");

	forsend->GetDlgItem(IDC_OUTCONTROL1)->SetWindowText(
		signoutput[1]?"on":"off");
	forsend->GetDlgItem(IDC_OUTCONTROL2)->SetWindowText(
		signoutput[2]?"on":"off");
	forsend->GetDlgItem(IDC_OUTCONTROL3)->SetWindowText(
		signoutput[3]?"on":"off");
	forsend->GetDlgItem(IDC_OUTCONTROL4)->SetWindowText(
		signoutput[4]?"on":"off");
    forsend->GetDlgItem(IDC_OUTCONTROL5)->SetWindowText(
		signoutput[5]?"on":"off");
    forsend->GetDlgItem(IDC_OUTCONTROL6)->SetWindowText(
		signoutput[6]?"on":"off");
    forsend->GetDlgItem(IDC_OUTCONTROL7)->SetWindowText(
		signoutput[7]?"on":"off");
    forsend->GetDlgItem(IDC_OUTCONTROL8)->SetWindowText(
		signoutput[8]?"on":"off");
    forsend->GetDlgItem(IDC_OUTCONTROL9)->SetWindowText(
		signoutput[9]?"on":"off");
}
void output_fetch_message()
{
	for(int i=0;i<9;i++)
	{
		if(!stockoutputlink[i][0])
			continue;
		else 
			signoutput[stockoutputlink[i][2]]=
			(WY[stockoutputlink[i][1]]?1:0);
	}
	send_outputmessage();
}

⌨️ 快捷键说明

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