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

📄 instruction_define.cpp

📁 开发虚拟的被控对象及虚拟的PLC,模似PLC的工作过程进行实验。用户可根据具体的实验,确定其输入和输出的控制条件,用虚拟的连线和虚拟的PLC连接,用户利用梯形图的编程方式编写PLC程序控制被控对象的动
💻 CPP
📖 第 1 页 / 共 3 页
字号:
			else objectregister[objectsign]=false;
		}
	}
}
void instruction36()
{
	int sum1,sum2;
	if(objectregister[objectsign==0?2:objectsign-1])
	{
		if(objectregister[objectsign])
		{
			sum1=getconst1();
			sum2=getconst2();
			if(sum1>=sum2)		
				objectregister[objectsign]=true;
			else objectregister[objectsign]=false;
		}
	}
}
void instruction37()
{
	int sum1,sum2;
	if(objectregister[objectsign==0?2:objectsign-1])
	{
		if(objectregister[objectsign])
		{
			sum1=getconst1();
			sum2=getconst2();
			if(sum1<=sum2)		
				objectregister[objectsign]=true;
			else objectregister[objectsign]=false;
		}
	}
}
void instruction38()
{
	int sum1,sum2;
	if(objectregister[objectsign==0?2:objectsign-1])
	{
		if(!objectregister[objectsign])
		{
			sum1=getconst1();
	        sum2=getconst2();
	        if(sum1==sum2)		
		    objectregister[objectsign]=true;
	        else objectregister[objectsign]=false;
		}
	}
}
void instruction39()
{
	int sum1,sum2;
    if(objectregister[objectsign==0?2:objectsign-1])
	{
		if(!objectregister[objectsign])
		{
			sum1=getconst1();
	        sum2=getconst2();
	        if(sum1>sum2)		
		    objectregister[objectsign]=true;
	        else objectregister[objectsign]=false;
		}
	}
}
void instruction40()
{
	int sum1,sum2;
	if(objectregister[objectsign==0?2:objectsign-1])
	{
		if(!objectregister[objectsign])
		{
			sum1=getconst1();
	        sum2=getconst2();
	        if(sum1<sum2)		
		    objectregister[objectsign]=true;
	        else objectregister[objectsign]=false;
		}
	}
}
void instruction41()
{
	int sum1,sum2;
	if(objectregister[objectsign==0?2:objectsign-1])
	{
		if(!objectregister[objectsign])
		{
			sum1=getconst1();
	        sum2=getconst2();
	        if(sum1!=sum2)		
		    objectregister[objectsign]=true;
	        else objectregister[objectsign]=false;
		}
	}
}
void instruction42()
{
	int sum1,sum2;
	if(objectregister[objectsign==0?2:objectsign-1])
	{
		if(!objectregister[objectsign])
		{
			sum1=getconst1();
	        sum2=getconst2();
	        if(sum1>=sum2)		
		    objectregister[objectsign]=true;
	        else objectregister[objectsign]=false;
		}
	}
}
void instruction43()
{
	int sum1,sum2;
	if(objectregister[objectsign==0?2:objectsign-1])
	{
		if(!objectregister[objectsign])
		{
			sum1=getconst1();
	        sum2=getconst2();
	        if(sum1<=sum2)		
		    objectregister[objectsign]=true;
	        else objectregister[objectsign]=false;
		}
	}
}
void instruction44()
{
	long sum1,sum2;
	if(objectregister[objectsign])
	{
		sum1=getconst3();
		sum2=getconst4();
		if(sum1==sum2)		
			objectregister[(objectsign==0)?1:0]=true;
		else objectregister[(objectsign==0)?1:0]=false;
	}
	objectsign=(objectsign==2?0:objectsign+=1);
}
void instruction45()
{
	long sum1,sum2;
	if(objectregister[objectsign])
	{
		sum1=getconst3();
		sum2=getconst4();
		if(sum1>sum2)		
			objectregister[objectsign==2?0:objectsign+=1]=true;
		else objectregister[objectsign==2?0:objectsign+=1]=false;
	}
	objectsign=(objectsign==2?0:objectsign+=1);
}
void instruction46()
{
	long sum1,sum2;
	if(objectregister[objectsign])
	{
		sum1=getconst3();
		sum2=getconst4();
		if(sum1<sum2)		
			objectregister[objectsign==2?0:objectsign+=1]=true;
		else objectregister[objectsign==2?0:objectsign+=1]=false;
	}
	objectsign=(objectsign==2?0:objectsign+=1);
}
void instruction47()
{
	long sum1,sum2;
	if(objectregister[objectsign])
	{
		sum1=getconst3();
		sum2=getconst4();
		if(sum1!=sum2)		
			objectregister[objectsign==2?0:objectsign+=1]=true;
		else objectregister[objectsign==2?0:objectsign+=1]=false;
	}
	objectsign=(objectsign==2?0:objectsign+=1);
}
void instruction48()
{
	long sum1,sum2;
	if(objectregister[objectsign])
	{
		sum1=getconst3();
		sum2=getconst4();
		if(sum1>=sum2)		
			objectregister[objectsign==2?0:objectsign+=1]=true;
		else objectregister[objectsign==2?0:objectsign+=1]=false;
	}
	objectsign=(objectsign==2?0:objectsign+=1);
}
void instruction49()
{
	long sum1,sum2;
	if(objectregister[objectsign])
	{
		sum1=getconst3();
		sum2=getconst4();
		if(sum1<=sum2)		
			objectregister[objectsign==2?0:objectsign+=1]=true;
		else objectregister[objectsign==2?0:objectsign+=1]=false;
	}
	objectsign=(objectsign==2?0:objectsign+=1);
}
void instruction50()
{
	long sum1,sum2;
	if(objectregister[objectsign==0?2:objectsign-1])
	{
		if(objectregister[objectsign])
		{
			sum1=getconst3();
			sum2=getconst4();
			if(sum1==sum2)		
				objectregister[objectsign]=true;
			else objectregister[objectsign]=false;
		}
	}
}
void instruction51()
{
	long sum1,sum2;
	if(objectregister[objectsign==0?2:objectsign-1])
	if(objectregister[objectsign])
	{
		sum1=getconst3();
		sum2=getconst4();
		if(sum1>sum2)		
			objectregister[objectsign]=true;
		else objectregister[objectsign]=false;
	}
}
void instruction52()
{
	long sum1,sum2;
	if(objectregister[objectsign==0?2:objectsign-1])
	{
		if(objectregister[objectsign])
		{
			sum1=getconst3();
	        sum2=getconst4();
			if(sum1<sum2)		
				objectregister[objectsign]=true;
			else objectregister[objectsign]=false;
		}
	}
}
void instruction53()
{
	long sum1,sum2;
	if(objectregister[objectsign==0?2:objectsign-1])
	{
		if(objectregister[objectsign])
		{
			sum1=getconst3();
			sum2=getconst4();
			if(sum1!=sum2)		
				objectregister[objectsign]=true;
			else objectregister[objectsign]=false;
		}
	}
}
void instruction54()
{
	long sum1,sum2;
	if(objectregister[objectsign==0?2:objectsign-1])
	{
		if(objectregister[objectsign])
		{
			sum1=getconst3();
			sum2=getconst4();
			if(sum1>=sum2)		
				objectregister[objectsign]=true;
			else objectregister[objectsign]=false;
		}
	}
}
void instruction55()
{
	long sum1,sum2;
	if(objectregister[objectsign==0?2:objectsign-1])
	{
		if(objectregister[objectsign])
		{
			sum1=getconst3();
			sum2=getconst4();
			if(sum1<=sum2)		
				objectregister[objectsign]=true;
			else objectregister[objectsign]=false;
		}
	}
}
void instruction56()
{
	long sum1,sum2;
	if(objectregister[objectsign==0?2:objectsign-1])
	{
		if(!objectregister[objectsign])
		{
			sum1=getconst3();
	        sum2=getconst4();
	        if(sum1==sum2)		
		    objectregister[objectsign]=true;
	        else objectregister[objectsign]=false;
		}
	}
}
void instruction57()
{
	long sum1,sum2;
	if(objectregister[objectsign==0?2:objectsign-1])
	{
		if(!objectregister[objectsign])
		{
			sum1=getconst3();
	        sum2=getconst4();
	        if(sum1>sum2)		
		    objectregister[objectsign]=true;
	        else objectregister[objectsign]=false;
		}
	}
}
void instruction58()
{
	long sum1,sum2;
	if(objectregister[objectsign==0?2:objectsign-1])
	{
		if(!objectregister[objectsign])
		{
			sum1=getconst3();
	        sum2=getconst4();
	        if(sum1<sum2)		
		    objectregister[objectsign]=true;
	        else objectregister[objectsign]=false;
		}
	}
}
void instruction59()
{
	long sum1,sum2;
	if(objectregister[objectsign==0?2:objectsign-1])
	{
		if(!objectregister[objectsign])
		{
			sum1=getconst3();
	        sum2=getconst4();
	        if(sum1!=sum2)		
		    objectregister[objectsign]=true;
	        else objectregister[objectsign]=false;
		}
	}
}
void instruction60()
{
	long sum1,sum2;
	if(objectregister[objectsign==0?2:objectsign-1])
	{
		if(!objectregister[objectsign])
		{
			sum1=getconst3();
	        sum2=getconst4();
	        if(sum1>=sum2)		
		    objectregister[objectsign]=true;
	        else objectregister[objectsign]=false;
		}
	}
}
void instruction61()
{
	long sum1,sum2;
	if(objectregister[objectsign==0?2:objectsign-1])
	{
		if(!objectregister[objectsign])
		{
			sum1=getconst3();
	        sum2=getconst4();
	        if(sum1<=sum2)		
		    objectregister[objectsign]=true;
	        else objectregister[objectsign]=false;
		}
	}
}

void tranconstto16array(int k)
{
	for(int i=0;i<16;i++)
	{
		*(firstaddress+i)=false;
	}
	for(i=1;i<=k;i++)
	{
		int m=0;
		while((*(firstaddress+m)!=false)&&(m<16))
			m++;
		*(firstaddress+m)=true;
		for(int n=m;n>=0;n--)
			*(firstaddress+n-1)=false;
	}
}
void tranconstto32array(int k)
{
	for(int i=0;i<32;i++)
	{
		*(firstaddress+i)=false;
	}
	for(i=1;i<=k;i++)
	{
		int m=0;
		while((*(firstaddress+m)!=false)&&(m<32))
			m++;
		*(firstaddress+m)=true;
		for(int n=m;n>=0;n--)
			*(firstaddress+n-1)=false;
	}
}
void getfirst16address()
{
	switch(instructionstore[isrunsign].register1)
	{
	case '1':firstaddress=
		&WX[(instructionstore[isrunsign].register1number)*16];
		break;
	case '2':firstaddress=
		&WY[(instructionstore[isrunsign].register1number)*16];
		break;
	case '3':firstaddress=
		&WR[(instructionstore[isrunsign].register1number)*16];
		break;
	case '4':firstaddress=
		&DT[(instructionstore[isrunsign].register1number)*16];
		break;
	case '5':tranconstto16array
			(instructionstore[isrunsign].register1number);
	}
}
void turnover1()
{
		for(int i=0;i<16;i++)
			*(firstaddress+i)=!(*(firstaddress+i));
}
void getfirst32address()
{
	switch(instructionstore[isrunsign].register1)
	{
	case '1':firstaddress=
		&WX[(instructionstore[isrunsign].register1number)*16];
		break;
	case '2':firstaddress=
		&WY[(instructionstore[isrunsign].register1number)*16];
		break;
	case '3':firstaddress=
		&WR[(instructionstore[isrunsign].register1number)*16];
		break;
	case '4':firstaddress=
		&DT[(instructionstore[isrunsign].register1number)*16];
		break;
	case '5':tranconstto32array
			(instructionstore[isrunsign].register1number);
	}
}
void turnover2()
{
	for(int i=0;i<32;i++)
			*(firstaddress+i)=!(*(firstaddress+i));
}
void getaim16address1()
{
	switch(instructionstore[isrunsign].register2)
	{
	case '1':aimaddress=
		&WX[(instructionstore[isrunsign].register2number)*16];
		break;
	case '2':aimaddress=
		&WY[(instructionstore[isrunsign].register2number)*16];
		break;
	case '3':aimaddress=
		&WR[(instructionstore[isrunsign].register2number)*16];
		break;
	case '4':aimaddress=
		&DT[(instructionstore[isrunsign].register2number)*16];
		break;
	default: AfxMessageBox("有错");
	}
}
void getaim16address2()
{
	switch(instructionstore[isrunsign].register3)
	{
	case '1':aimaddress=
		&WX[(instructionstore[isrunsign].register3number)*16];
		break;
	case '2':aimaddress=
		&WY[(instructionstore[isrunsign].register3number)*16];
		break;
	case '3':aimaddress=
		&WR[(instructionstore[isrunsign].register3number)*16];
		break;
	case '4':aimaddress=
		&DT[(instructionstore[isrunsign].register3number)*16];
		break;
	default: AfxMessageBox("有错");
	}
}
void sendto1()
{
	for(int i=0;i<16;i++)
	*(aimaddress+i)=*(firstaddress+i);
}
void getaim32address1()
{
	switch(instructionstore[isrunsign].register2)
	{
	case '1':aimaddress=
		&WX[(instructionstore[isrunsign].register2number)*16];
		break;
	case '2':aimaddress=
		&WY[(instructionstore[isrunsign].register2number)*16];
		break;
	case '3':aimaddress=
		&WR[(instructionstore[isrunsign].register2number)*16];
		break;
	case '4':aimaddress=
		&DT[(instructionstore[isrunsign].register2number)*16];
		break;
	default: AfxMessageBox("有错");
	}
}
void getaim32address2()
{
	switch(instructionstore[isrunsign].register3)
	{
	case '1':aimaddress=
		&WX[(instructionstore[isrunsign].register3number)*16];
		break;
	case '2':aimaddress=
		&WY[(instructionstore[isrunsign].register3number)*16];
		break;
	case '3':aimaddress=
		&WR[(instructionstore[isrunsign].register3number)*16];
		break;
	case '4':aimaddress=
		&DT[(instructionstore[isrunsign].register3number)*16];
		break;
	default: AfxMessageBox("有错");
	}
}
void sendto2()
{
	for(int i=0;i<32;i++)
	*(aimaddress+i)=*(firstaddress+i);
}
void instruction62()
{
	if(objectregister[objectsign])
	{
		getfirst16address();
		getaim16address1();
		sendto1();
	}
}
void instruction63()
{	
	if(objectregister[objectsign])
	{
		getfirst32address();
		getaim32address1();
		sendto2();
	}
}
void instruction64()
{
	if(objectregister[objectsign])
	{
		getfirst16address();
		turnover1();
		getaim16address1();
		sendto1();
	}
}
void instruction65()
{
	if(objectregister[objectsign])
	{
		getfirst32address();
		turnover2();
		getaim32address1();
		sendto2();
	}
}
void instruction66()
{
	if(objectregister[objectsign])
	{
		getfirst16address();
		getaim16address2();
		sendto1();
		for(int i=1;i<=(instructionstore[isrunsign].register2number
		-instructionstore[isrunsign].register1number);i++)
		{
			firstaddress++;
			aimaddress++;
			sendto1();
		}
	}
}
void instruction67()
{
	if(objectregister[objectsign])
	{
		getfirst16address();
		getaim16address1();
		sendto1();
		for(int i=1;i<=(instructionstore[isrunsign].register3number
		-instructionstore[isrunsign].register2number);i++)
		{
			aimaddress++;
			sendto1();
		}
	}
}
void instruction68()
{
	if(objectregister[objectsign])
	{
		bool a[16];
		getaim16address1();
		for(int i=0;i<16;i++)
			a[i]=*(aimaddress+i);
		getfirst16address();
		sendto1();
		for(i=0;i<16;i++)
			*(firstaddress+i)=a[i];
	}
}
void instruction69()
{
	if(objectregister[objectsign])
	{
		bool a[32];
		getaim16address1();
		for(int i=0;i<32;i++)
			a[i]=*(aimaddress+i);

⌨️ 快捷键说明

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