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

📄 runprogram.cpp

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

extern bool WX[160];//字输入寄存器
extern bool WY[160];//字输出寄存器
extern bool WR[1000];//通用字寄存器(内部寄存器)
extern bool T[9];//定时器

extern int DT[100];//通用数据寄存器
extern bool objectregister[2];//中间寄存器,存放中间结果
extern int objectsign;//中间寄存器指向标志
extern int instructionnumber;//指令数
extern instructionframe instructionstore[300];//指令存储器
bool isend;
extern int sp;//栈顶指针
extern bool parforDF[100];//为DF指令的特殊寄存器
extern int signinput[8];
extern int signoutput[10];
int isrunsign;

void produceaddress();

void instruction1(); void instruction3(); void instruction4();
void instruction5(); void instruction6(); void instruction7();
void instruction8(); void instruction9(); void instruction10();
void instruction11(); void instruction12(); void instruction13();
void instruction14(); void instruction15(); void instruction16();
void instruction17(); void instruction19(); void instruction20();
void instruction25(); void instruction26(); void instruction27();
void instruction28(); void instruction29(); void instruction30();
void instruction31(); void instruction32(); void instruction33();
void instruction34(); void instruction35(); void instruction36();
void instruction37(); void instruction38(); void instruction39();
void instruction40(); void instruction41(); void instruction42();
void instruction43(); void instruction44(); void instruction45();
void instruction46(); void instruction47(); void instruction48();
void instruction49(); void instruction50(); void instruction51();
void instruction52(); void instruction53(); void instruction54();
void instruction55(); void instruction56(); void instruction57();
void instruction58(); void instruction59(); void instruction60();
void instruction61(); void instruction62(); void instruction63();
void instruction64(); void instruction65(); void instruction66();
void instruction67(); void instruction68(); void instruction69();
void instruction70(); void instruction71(); void instruction72();
void instruction73(); void instruction74(); void instruction75();
void instruction76(); void instruction77(); void instruction78();
void instruction79(); void instruction80(); void instruction81();
void instruction82(); void instruction83(); void instruction84();
void instruction85(); void instruction86(); void instruction87();
void instruction88(); void instruction89(); void instruction90();
void instruction91(); void instruction92(); void instruction93();
void instruction94(); void instruction95(); void instruction96();
void instruction97(); void instruction98(); void instruction99();
void instruction100(); void instruction101(); void instruction102();
void instruction103(); void instruction104(); void instruction105();
void instruction106(); void instruction107(); void instruction108();
void instruction109(); void instruction110(); void instruction111();
void instruction112(); void instruction113();

void startinitializtion()   //运行实验前的初始化
{

	 for(int i=0;i<instructionnumber;i++)
	{
		switch(instructionstore[i].instructionname)
		{
		case 14: parforDF[i]=true;break;
		case 15: parforDF[i]=false;break;
		case 20: parforDF[i]=true;break;
		default:break;
		}
	 }
	 for(i=0;i<9;i++)
		 T[i]=false;
	 for(i=1;i<8;i++)
	  signinput[i]=0;
     for(i=1;i<10;i++)
	  signoutput[10]=0;
	 for(i=0;i<160;i++)
	 {
		 WX[i]=false; WY[i]=false;
	 }
}
void initializtion()  //每次运行PLC程序前的初始化
{
	sp=0;
	objectsign=2;
    isrunsign=0;
	isend=false;	
}

void Runtheplcprogram()
{
	initializtion();
	while(!isend)
	{
		switch(instructionstore[isrunsign].instructionname)
		{
		case 1:instruction1();produceaddress();break;
		case 2:instruction1();instruction4();produceaddress();break;
		case 3:instruction3();produceaddress();break;
		case 4:instruction4();produceaddress();break;
		case 5:instruction5();produceaddress();break;
		case 6:instruction6();produceaddress();break;
		case 7:instruction7();produceaddress();break;
		case 8:instruction8();produceaddress();break;
		case 9:instruction9();produceaddress();break;
		case 10:instruction10();produceaddress();break;
		case 11:instruction11();produceaddress();break;
		case 12:instruction12();produceaddress();break;
		case 13:instruction13();produceaddress();break;
		case 14:instruction14();produceaddress();break;
        case 15:instruction15();produceaddress();break;
        case 16:instruction16();produceaddress();break;
        case 17:instruction17();produceaddress();break;
        case 18:produceaddress();break;
        case 19:instruction19();produceaddress();break;
		case 20:instruction20();produceaddress();break;
        case 21:produceaddress();break;
        case 22:produceaddress();break;
        case 23:produceaddress();break;
        case 24:produceaddress();break;  
		case 25:instruction25();break;
		case 26:instruction26();produceaddress();break;
		case 27:instruction27();produceaddress();break;
        case 28:instruction28();produceaddress();break;
	    case 29:instruction29();produceaddress();break;
		case 30:instruction30();produceaddress();break;
		case 31:instruction31();produceaddress();break;
		case 32:instruction32();produceaddress();break;
        case 33:instruction33();produceaddress();break;
	    case 34:instruction34();produceaddress();break;
	    case 35:instruction35();produceaddress();break;
        case 36:instruction36();produceaddress();break;
        case 37:instruction37();produceaddress();break;
        case 38:instruction38();produceaddress();break;
        case 39:instruction39();produceaddress();break;
        case 40:instruction40();produceaddress();break;
        case 41:instruction41();produceaddress();break;
        case 42:instruction42();produceaddress();break;
        case 43:instruction43();produceaddress();break;
        case 44:instruction44();produceaddress();break;
        case 45:instruction45();produceaddress();break;
        case 46:instruction46();produceaddress();break;
        case 47:instruction47();produceaddress();break;
        case 48:instruction48();produceaddress();break;
        case 49:instruction49();produceaddress();break;
        case 50:instruction50();produceaddress();break;
        case 51:instruction51();produceaddress();break;
        case 52:instruction52();produceaddress();break;
        case 53:instruction53();produceaddress();break;
        case 54:instruction54();produceaddress();break;
        case 55:instruction55();produceaddress();break;
        case 56:instruction56();produceaddress();break;
        case 57:instruction57();produceaddress();break;
        case 58:instruction58();produceaddress();break;
        case 59:instruction59();produceaddress();break;
        case 60:instruction60();produceaddress();break;
        case 61:instruction61();produceaddress();break;
        case 62:instruction62();produceaddress();break;
        case 63:instruction63();produceaddress();break;
        case 64:instruction64();produceaddress();break;
        case 65:instruction65();produceaddress();break;
        case 66:instruction66();produceaddress();break;
        case 67:instruction67();produceaddress();break;
        case 68:instruction68();produceaddress();break;
        case 69:instruction69();produceaddress();break;
        case 70:instruction70();produceaddress();break;
        case 71:instruction71();produceaddress();break;
        case 72:instruction72();produceaddress();break;		
        case 73:instruction73();produceaddress();break;		
        case 74:instruction74();produceaddress();break;		
        case 75:instruction75();produceaddress();break;
        case 76:instruction76();produceaddress();break;
        case 77:instruction77();produceaddress();break;
        case 78:instruction78();produceaddress();break;		
        case 79:instruction79();produceaddress();break;
        case 80:instruction80();produceaddress();break;	
        case 81:instruction81();produceaddress();break;	
        case 82:instruction82();produceaddress();break;	
        case 83:instruction83();produceaddress();break;	
        case 84:instruction84();produceaddress();break;	
        case 85:instruction85();produceaddress();break;	
        case 86:instruction86();produceaddress();break;	
        case 87:instruction87();produceaddress();break;	
        case 88:instruction88();produceaddress();break;	
        case 89:instruction89();produceaddress();break;	
        case 90:instruction90();produceaddress();break;	
        case 91:instruction91();produceaddress();break;	
        case 92:instruction92();produceaddress();break;
        case 94:instruction94();produceaddress();break;	
        case 95:instruction95();produceaddress();break;	
        case 96:instruction96();produceaddress();break;	
        case 97:instruction97();produceaddress();break;	
        case 98:instruction98();produceaddress();break;	
        case 99:instruction99();produceaddress();break;	
        case 100:instruction100();produceaddress();break;
        case 101:instruction101();produceaddress();break;
        case 102:instruction102();produceaddress();break;
        case 103:instruction103();produceaddress();break;		
        case 106:instruction106();produceaddress();break;
        case 107:instruction107();produceaddress();break;
        case 108:instruction108();produceaddress();break;
        case 109:instruction109();produceaddress();break;
        case 110:instruction110();produceaddress();break;
        case 111:instruction111();produceaddress();break;
		case 112:instruction112();produceaddress();break;
		case 113:instruction113();produceaddress();break;
		case 114:produceaddress();break;
		case 115:produceaddress();break;
		case 116:produceaddress();break;
		}	
	}
}

⌨️ 快捷键说明

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