#ifndef _LINE_DEFINE_H #define _LINE_DEFINE_H #include #include //using namespace baosight; //#define E 2.71828183 #define PI 3.1415926 //define pi for calc #define WELD_ERROR_RANGE 60000 //焊缝误差50mm #define TCMBEFOREXM 125 //轧机前X米定义长度 #define MIN_LOOP 0 //活套物理最小极限套量% #define ENC_DRIVE_SCALE_S_1 14 //电机与S辊的传动比例 1#S辊 #define ENC_DRIVE_SCALE_S_2 14 //电机与S辊的传动比例 2#S辊 #define ENC_DRIVE_SCALE_S_3 14 //电机与S辊的传动比例 3#S辊 #define ENC_DRIVE_SCALE_S_4 14 //电机与S辊的传动比例 4#S辊 #define ENC_DRIVE_SCALE_S_5 14 //11.731 //电机与S辊的传动比例 5#S辊 //const int ZONE_COUNT = 22; const int LP_COUNT = 3; const int WPD_COUNT = 7; const int ROLL_S_COUNT = 6; //const int WELD_MAX = 10; const double roll_dima = 500; //辊半径 const double roll_dima_1 = 500;//modify 2014-2-19 const double roll_dima_2 = 500;//modify 2014-2-19 const double roll_dima_3 = 500;//modify 2014-2-19 const double roll_dima_4 = 500;//modify 2014-2-19 const double roll_dima_5 = 500;//modify 2014-2-19 //const long ENC_MAX = (long)(2147483648);//= 2e31;//脉冲最大值 const long ENC_MAX = (long)(32767);//= 2e31;//脉冲最大值 //const int ENC_DRIVE_ONE_CYCLE = 4096; //电机转动一圈的脉冲值变化 //const int ENC_DRIVE_ONE_CYCLE = 1024; //电机转动一圈的脉冲值变化 const int ENC_DRIVE_ONE_CYCLE = 256; //电机转动一圈的脉冲值变化 class IHDB { public: static const int CACHE_BUFF = 10000; static const int CACHE_SIZE = 1000; }; typedef float IHDB_CACHE[IHDB::CACHE_SIZE][IHDB::CACHE_BUFF]; struct Roll{ //long speed; long pulse; }; struct RollS{ int BrPulse; // S辊编码器 int BrImp; // #S辊 }; struct Welder{ float ok; // 焊机焊接完成指令(手工确认) float up; // 焊机焊接完成指令(手工确认) float down; // 焊机焊接完成指令(手工确认) }; struct SCut{ float UTailLen; float LHeadLen; float LMiddleLen; float LTailLen; float UHSampleLen; float UTSampleLen; float LHSampleLen; float LTSampleLen; float HSrapLen; float TSrapLen; }; struct TrackSign{ float PorOn[2]; float TorModel[2]; float TailOff[2]; float TrOn[2]; float TrModel[2]; float channel; }; struct Cut{ float tr; float up; float down; float DCut; }; struct Len{ float por1; float por2; float por; float tr; }; struct WD_COIL{ float weld_inner; char weld_coil[40]; char weld_ay[16]; char weld_sg[32]; char weld_code[4]; float weld_thick; float weld_width; }; struct SCRAP{ int ent_scrap_up; int ent_scrap_low; int ext_scrap_tail; int ext_sample_tail; int ext_scrap_head; int ext_sample_head; }; struct BR{ float BR_GR; float BR_DIA; float BR_RUAND; float BR_PLG; }; struct SignData{ BR Br[ROLL_S_COUNT]; // #S辊 float loop[LP_COUNT]; //活套n的活套量3 10000% float wpd[WPD_COUNT]; //n#焊缝检测仪信号3 Welder welder; //焊机信号3 Cut cut; Len len; char por1Id[24]; char por2Id[24]; char tr1Id[24]; char tr2Id[24]; float speed[5]; float loop_pos[LP_COUNT]; float ti; TrackSign trksign;// zmtr 跟踪数据,放结尾 }; /* 入口段1#S辊计速 出口活套段2#S辊计速 联机活套段4#S辊计速 轧机入口6#S辊辊计速*/ struct OnceMove{ float length[ROLL_S_COUNT];//每段S辊区间的移动长度 mm }; struct CalcData{ OnceMove oncemove; long groupstep[10]; //Length difference between groups long loopstep[5]; };// calculated data #endif