fetch_communicate.cpp

来自「开发虚拟的被控对象及虚拟的PLC,模似PLC的工作过程进行实验。用户可根据具体的」· C++ 代码 · 共 115 行

CPP
115
字号
#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 + =
减小字号Ctrl + -
显示快捷键?