📄 runprogram.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 + -