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

📄 graph.cpp

📁 Vxworks 下重矿设备应用开发
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/*
 * 控制界面程序
 */

#include <stdlib.h>
#include "graph.h"

extern float  DC_MotorCur_MIN;    		//单锤破电机电流,最小值
extern float  DC_MotorCur_MAX;    		//单锤破电机电流,最大值
extern float  DC_Axle1DevX_MIN;		//单锤破轴承一X方向振动幅值,最小值
extern float  DC_Axle1DevX_MAX;		//单锤破轴承一X方向振动幅值,最大值
extern float  DC_Axle1DevY_MIN;		//单锤破轴承一Y方向振动幅值,最小值
extern float  DC_Axle1DevY_MAX;		//单锤破轴承一Y方向振动幅值,最小值
extern float  DC_Axle2DevX_MIN;		//单锤破轴承二X方向振动幅值,最小值
extern float  DC_Axle2DevX_MAX;		//单锤破轴承二X方向振动幅值,最大值
extern float  DC_Axle2DevY_MIN;		//单锤破轴承二Y方向振动幅值,最小值
extern float  DC_Axle2DevY_MAX;		//单锤破轴承二Y方向振动幅值,最小值
extern float  DC_Axle1Temp_MIN;   		//单锤破轴承一温度,最小值
extern float  DC_Axle1Temp_MAX;   		//单锤破轴承一温度,最大值
extern float  DC_Axle2Temp_MIN;   		//单锤破轴承二温度,最小值
extern float  DC_Axle2Temp_MAX;   		//单锤破轴承二温度,最大值
extern float  BW_MotorCur_MIN;    		//板喂机电机电流,最小值
extern float  BW_MotorCur_MAX;    		//板喂机电机电流,最大值

extern int sc;
extern unsigned32 net_client_id;
extern char ConnectState;

extern bool CPI[8], CPO[8];			//软PLC输入量和输出量数组
extern void InitDisp(void);			//初始化软PLC界面显示

extern void cb_DCpoweron();
extern void cb_DCpoweroff();
extern void cb_DCstart();
extern void cb_DCstop();
extern void cb_DCreset();
extern void cb_DCemcstop();
extern void cb_BWstart();
extern void cb_BWstop();
extern "C" void cltnet(void*p);

extern void Read_Para(void);

extern void DispChg(void);

//extern "C" void Connect_BW(void);

Fl_Window *data_window=(Fl_Window *)0;		//数据显示窗口
Fl_Window *para_window=(Fl_Window *)0;		//参数设置窗口


Fl_Light_Button *lb_DCpoweron	= (Fl_Light_Button *)0;
Fl_Light_Button *lb_DCstart		= (Fl_Light_Button *)0;
Fl_Light_Button *lb_DCpoweroff	= (Fl_Light_Button *)0;
Fl_Light_Button *lb_DCstop		= (Fl_Light_Button *)0;
Fl_Light_Button *lb_DCreset		= (Fl_Light_Button *)0;
Fl_Light_Button *lb_DCemcstop	= (Fl_Light_Button *)0;
Fl_Light_Button *lb_BWstart		= (Fl_Light_Button *)0;
Fl_Light_Button *lb_BWstop		= (Fl_Light_Button *)0;

Fl_Light_Button *lb_ConnectBW	= (Fl_Light_Button *)0;

Fl_Output *output1=(Fl_Output *)0; 		//单锤破电机电流
Fl_Output *output2=(Fl_Output *)0; 		//单锤破轴承一X方向振动幅值
Fl_Output *output3=(Fl_Output *)0;		//单锤破轴承一Y方向振动幅值
Fl_Output *output4=(Fl_Output *)0;		//单锤破轴承二X方向振动幅值
Fl_Output *output5=(Fl_Output *)0;		//单锤破轴承二Y方向振动幅值
Fl_Output *output6=(Fl_Output *)0;		//单锤破轴承一温度
Fl_Output *output7=(Fl_Output *)0;		//单锤破轴承二温度
Fl_Output *output8=(Fl_Output *)0;		//板喂机电机电流

//Fl_Output *output9=(Fl_Output *)0;		//CPO[0],测试用
//Fl_Output *output10=(Fl_Output *)0;		//CPO[1],测试用

Fl_Value_Input *input11=(Fl_Value_Input *)0;	//单锤破电机电流,最小值
Fl_Value_Input *input12=(Fl_Value_Input *)0; 	//单锤破电机电流,最大值
Fl_Value_Input *input21=(Fl_Value_Input *)0;	//单锤破轴承一X方向振动幅值,最小值
Fl_Value_Input *input22=(Fl_Value_Input *)0;   	//单锤破轴承一X方向振动幅值,最大值
Fl_Value_Input *input31=(Fl_Value_Input *)0;	//单锤破轴承一Y方向振动幅值,最小值
Fl_Value_Input *input32=(Fl_Value_Input *)0;	//单锤破轴承一Y方向振动幅值,最大值
Fl_Value_Input *input41=(Fl_Value_Input *)0;	//单锤破轴承二X方向振动幅值,最小值
Fl_Value_Input *input42=(Fl_Value_Input *)0;	//单锤破轴承二X方向振动幅值,最大值
Fl_Value_Input *input51=(Fl_Value_Input *)0;	//单锤破轴承二Y方向振动幅值,最小值
Fl_Value_Input *input52=(Fl_Value_Input *)0;	//单锤破轴承二Y方向振动幅值,最大值
Fl_Value_Input *input61=(Fl_Value_Input *)0;	//单锤破轴承一温度,最小值
Fl_Value_Input *input62=(Fl_Value_Input *)0;	//单锤破轴承一温度,最大值
Fl_Value_Input *input71=(Fl_Value_Input *)0;	//单锤破轴承二温度,最小值
Fl_Value_Input *input72=(Fl_Value_Input *)0;	//单锤破轴承二温度,最大值
Fl_Value_Input *input81=(Fl_Value_Input *)0;	//板喂机电机电流,最小值
Fl_Value_Input *input82=(Fl_Value_Input *)0;	//板喂机电机电流,最大值


/*************************************************************
 *                    Code Start                             *
 *************************************************************/



/*
 * 切换至参数设置窗口
 */
static void change_to_para_window(Fl_Button*, void*) {
	data_window->hide();
  	para_window->show();
}


/*
 * 切换至数据显示窗口
 */
static void change_to_data_window(Fl_Button*, void*) {
  	para_window->hide();
  	data_window->show();
}



/*
 * 连接板喂机实现函数
 */
static void Connect_BW() {
  //	para_window->hide();
  //	data_window->show();
 
//  taskSpawn("NETCLIENT",90,0,8*1024,cltnet,0,0,0,0,0,0,0,0,0,0);

 sc = OSTaskCreate(" net_client",
			90,  
			16*1024,
			OS_PREEMPT|OS_NO_TIMESLICE|OS_NO_ASR|OS_INTERRUPT_LEVEL(0),
			OS_FP|OS_LOCAL,
			&net_client_id);
			
	if (sc != OS_OK)	{
			printf("Can't create task \n");
			return;
		}
   
		
	sc = OSTaskStart(net_client_id ,cltnet, 0);
	
	if (sc != OS_OK)	{
			printf("Can't start cltnet task \n");
			return;
		}		
  
}



/*
 * 参数设置
 */
//static void parameterset(Fl_Button*, void*) {
static void parameterset() {
	DC_MotorCur_MIN  = input11->value();
	DC_MotorCur_MAX  = input12->value();
	DC_Axle1DevX_MIN = input21->value();
	DC_Axle1DevX_MAX = input22->value();
	DC_Axle1DevY_MIN = input31->value();		
	DC_Axle1DevY_MAX = input32->value(); 		
	DC_Axle2DevX_MIN = input41->value();
	DC_Axle2DevX_MAX = input42->value();
	DC_Axle2DevY_MIN = input51->value();		
	DC_Axle2DevY_MAX = input52->value(); 		
	DC_Axle1Temp_MIN = input61->value();   
	DC_Axle1Temp_MAX = input62->value();   
	DC_Axle2Temp_MIN = input71->value();   
	DC_Axle2Temp_MAX = input72->value();   
	BW_MotorCur_MIN  = input81->value();
	BW_MotorCur_MAX  = input82->value();
}

void Para_Display() {
	input11->value(DC_MotorCur_MIN);
	input12->value(DC_MotorCur_MAX);
	input21->value(DC_Axle1DevX_MIN);
	input22->value(DC_Axle1DevX_MAX);
	input31->value(DC_Axle1DevY_MIN);
	input32->value(DC_Axle1DevY_MAX);
	input41->value(DC_Axle2DevX_MIN);
	input42->value(DC_Axle2DevX_MAX);
	input51->value(DC_Axle2DevY_MIN);
	input52->value(DC_Axle2DevY_MAX);
	input61->value(DC_Axle1Temp_MIN);
	input62->value(DC_Axle1Temp_MAX);
	input71->value(DC_Axle2Temp_MIN);
	input72->value(DC_Axle2Temp_MAX);
	input81->value(BW_MotorCur_MIN);
	input82->value(BW_MotorCur_MAX);
}


Fl_Window* make_window() {
	Fl_Window* w;

	/*
	 * 初始化数据显示窗口
	 */
  	{	Fl_Window* o = data_window = new Fl_Window(638, 472, "重矿设备嵌入式控制系统数据显示窗口");
	    w = o;
	   	
	    { Fl_Box* o = new Fl_Box(163, 25, 225, 40, "重矿设备嵌入式控制系统");
	      o->box(FL_NO_BOX);
	      o->align(FL_ALIGN_TOP);
	    }

	   	{ Fl_Group* o = new Fl_Group(7, 57, 240, 405);
	      o->box(FL_THIN_DOWN_BOX);
	      o->align(FL_ALIGN_TOP_LEFT);
	      
		  { Fl_Box* o = new Fl_Box(65, 81, 147, 30, "单锤破主要数据显示");
	      	o->box(FL_NO_BOX);
	      	o->align(FL_ALIGN_TOP);
	      }

		  { Fl_Box* o = new Fl_Box(65, 392, 147, 30, "板喂机主要数据显示");
	      	o->box(FL_NO_BOX);
	      	o->align(FL_ALIGN_TOP);
	      }
	      
	      { output1 = new Fl_Output(133, 106, 100, 25, "电机电流 (A)");
	        output1->box(FL_THIN_DOWN_BOX);
	      }
	      
	      { output2 = new Fl_Output(133, 142, 100, 25, "轴承一X方向振动(m/s2)");
	        output2->box(FL_THIN_DOWN_BOX);
	      }
	      
	      { output3 = new Fl_Output(133, 179, 100, 25, "轴承一Y方向振动(m/s2)");
	        output3->box(FL_THIN_DOWN_BOX);
	      }
	      
	      { output4 = new Fl_Output(133, 216, 100, 25, "轴承二X方向振动(m/s2)");
	        output4->box(FL_THIN_DOWN_BOX);
	      }
	      
	      { output5 = new Fl_Output(133, 252, 100, 25, "轴承二Y方向振动(m/s2)");
	        output5->box(FL_THIN_DOWN_BOX);

⌨️ 快捷键说明

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