Esempio n. 1
0
        private void Timer位置显示_Tick(object sender, EventArgs e)
        {
            Min_Vel起始速度 = Int32.Parse(Text起始速度.Text);                                //'起始速度设定
            Max_Vel运行速度 = Int32.Parse(Text运行速度.Text);                                //'运行速度设定
            Tacc加速时间    = Convert.ToDouble(Text加速时间.Text);                           //  '加速时间设定
            Tdec减速时间    = Convert.ToDouble(Text减速时间.Text);                           //'减速时间设定
            Sacc加速脉冲    = Convert.ToInt32(Text加速脉冲.Text);                            //'加速脉冲设定
            Sdec减速脉冲    = Int32.Parse(Text减速脉冲.Text);                                //'减速脉冲设定
            //#################X/Y/Z/U/A/B位置设定################
            Text0X轴当前位置.Text = Convert.ToString(Dmc2610.d2610_get_position(X轴));     //  '位置设定"
            Text1Y轴当前位置.Text = Convert.ToString(Dmc2610.d2610_get_position(Y轴));     //  '位置设定"
            Text2Z轴当前位置.Text = Convert.ToString(Dmc2610.d2610_get_position(Z轴));     //  '位置设定"
            Text3U轴当前位置.Text = Convert.ToString(Dmc2610.d2610_get_position(U轴));     //  '位置设定"
            Text4A轴当前位置.Text = Convert.ToString(Dmc2610.d2610_get_position(A轴));     //  '位置设定"
            Text5B轴当前位置.Text = Convert.ToString(Dmc2610.d2610_get_position(B轴));     //  '位置设定"
            //#####################X/Y/Z/U/A/B当前速度读取#######################
            Text3X轴速度.Text = Convert.ToString(Dmc2610.d2610_read_current_speed(X轴)); //    'X轴当前速度读取
            Text4Y轴速度.Text = Convert.ToString(Dmc2610.d2610_read_current_speed(Y轴)); //    'Y轴当前速度读取
            Text5Z轴速度.Text = Convert.ToString(Dmc2610.d2610_read_current_speed(Z轴)); //    'Z轴当前速度读取
            Text6U轴速度.Text = Convert.ToString(Dmc2610.d2610_read_current_speed(U轴)); //    'Z轴当前速度读取
            Text7A轴速度.Text = Convert.ToString(Dmc2610.d2610_read_current_speed(A轴)); //    'A轴当前速度读取
            Text8B轴速度.Text = Convert.ToString(Dmc2610.d2610_read_current_speed(B轴)); //    'B轴当前速度读取
            //*****************插补轴数选择及位置设置*************
            Text轴数.Text = Convert.ToString(nNum插补轴数);                                //插补轴数显示
            nNum插补轴数    = 0;
            if (CheckX轴.Checked)                                                     //X轴选种
            {
                nAxis轴号[nNum插补轴数]  = X轴;                                             //   'X轴号存入
                Dist位置设定[nNum插补轴数] = ushort.Parse(TextX轴位置.Text);                    //'X轴位置设置(Int32.Parse字符串转整数数据类型【数据类型.Parse()方法】
                nNum插补轴数           = nNum插补轴数 + 1;                                   //X轴号插补轴数存入
            }
            if (CheckY轴.Checked)                                                     //Y轴选种
            {
                nAxis轴号[nNum插补轴数]  = Y轴;                                             //   'X轴号存入
                Dist位置设定[nNum插补轴数] = ushort.Parse(TextY轴位置.Text);                    //'Y轴位置设置ushort.Parse字符串转整数数据类型】
                nNum插补轴数           = nNum插补轴数 + 1;                                   //Y轴号插补轴数存入
            }
            if (CheckZ轴.Checked)                                                     //Z轴选种
            {
                nAxis轴号[nNum插补轴数]  = Z轴;                                             //   'Z轴号存入
                Dist位置设定[nNum插补轴数] = ushort.Parse(TextZ轴位置.Text);                    //'Z轴位置设置(ushort.Parse字符串转整数数据类型)
                nNum插补轴数           = nNum插补轴数 + 1;                                   //Z轴号插补轴数存入
            }
            if (CheckU轴.Checked)                                                     //U轴选种
            {
                nAxis轴号[nNum插补轴数]  = U轴;                                             // U轴号存入
                Dist位置设定[nNum插补轴数] = ushort.Parse(TextU轴位置.Text);                    //'U轴位置设置(ushort.Parse字符串转整数数据类型)
                nNum插补轴数           = nNum插补轴数 + 1;                                   //U轴号插补轴数存入
            }
            if (CheckA轴.Checked)                                                     //A轴选种
            {
                nAxis轴号[nNum插补轴数]  = A轴;                                             // 'A轴号存入
                Dist位置设定[nNum插补轴数] = ushort.Parse(TextA轴位置.Text);                    //'A轴位置设置(ushort.Parse字符串转整数数据类型)
                nNum插补轴数           = nNum插补轴数 + 1;                                   //U轴号插补轴数存入
            }
            if (CheckB轴.Checked)                                                     //B轴选种
            {
                nAxis轴号[nNum插补轴数]  = B轴;                                             //   B轴号存入
                Dist位置设定[nNum插补轴数] = ushort.Parse(TextB轴位置.Text);                    //'B轴位置设置(ushort.Parse字符串转整数数据类型)
                nNum插补轴数           = nNum插补轴数 + 1;                                   //U轴号插补轴数存入
            }
            //*************运动模式转换**********************8
            if (radio相对模式.Checked)
            {
                模式 = 0; // '0相对位移,1绝对位移
            }
            else if (radio绝对模式.Checked)
            {
                模式 = 1; // '0相对位移,1绝对位移
            }
            //'**************X轴运动状态检测**********************
            string X检测 = "";

            X轴运动检测 = Dmc2610.d2610_check_done(X轴);
            switch (X轴运动检测)//X轴运行状态信息显示
            {
            case 0:
                X检测 = "正在运行";
                break;

            case 1:
                X检测 = "脉冲输出停止";
                break;
            }
            string Y检测 = "";

            Y轴运动检测 = Dmc2610.d2610_check_done(Y轴);
            switch (Y轴运动检测)//Y轴运行状态信息显示
            {
            case 0:
                Y检测 = "正在运行";
                break;

            case 1:
                Y检测 = "脉冲输出停止";
                break;
            }
            string Z检测 = "";

            Z轴运动检测 = Dmc2610.d2610_check_done(Z轴);
            switch (Z轴运动检测)//Z轴运行状态信息显示
            {
            case 0:
                Z检测 = "正在运行";
                break;

            case 1:
                Z检测 = "脉冲输出停止";
                break;
            }
            string U检测 = "";

            U轴运动检测 = Dmc2610.d2610_check_done(U轴);
            switch (U轴运动检测)//U轴运行状态信息显示
            {
            case 0:
                U检测 = "正在运行";
                break;

            case 1:
                U检测 = "脉冲输出停止";
                break;
            }
            string A检测 = "";

            A轴运动检测 = Dmc2610.d2610_check_done(A轴);
            switch (A轴运动检测)//U轴运行状态信息显示
            {
            case 0:
                A检测 = "正在运行";
                break;

            case 1:
                A检测 = "脉冲输出停止";
                break;
            }
            string B检测 = "";

            B轴运动检测 = Dmc2610.d2610_check_done(B轴);
            switch (B轴运动检测)//U轴运行状态信息显示
            {
            case 0:
                B检测 = "正在运行";
                break;

            case 1:
                B检测 = "脉冲输出停止";
                break;
            }
            Lab运检测.Text = "X轴:" + X检测 + " " + "Y轴:" + Y检测 + " " + "Z轴:" + Z检测
                          + " " + "U轴:" + U检测 + " " + "A轴:" + A检测 + " " + "B轴:" + B检测; // 'X\Y\Z轴运行状态信息显示

            //*****************各轴缓冲检测**********************************
            int X缓冲检测 = Dmc2610.d2610_prebuff_status(X轴);

            switch (X缓冲检测)
            {
            case 0:
                LaX缓冲.Text = "X缓冲:空";
                break;

            case 1:
                LaX缓冲.Text = "X缓冲:满";
                break;

            default:
                break;
            }
            int Y缓冲检测 = Dmc2610.d2610_prebuff_status(X轴);

            switch (Y缓冲检测)
            {
            case 0:
                LaY缓冲.Text = "Y缓冲:空";
                break;

            case 1:
                LaY缓冲.Text = "Y缓冲:满";
                break;

            default:
                break;
            }
            int Z缓冲检测 = Dmc2610.d2610_prebuff_status(X轴);

            switch (Z缓冲检测)
            {
            case 0:
                LaZ缓冲.Text = "Z缓冲:空";
                break;

            case 1:
                LaZ缓冲.Text = "Z缓冲:满";
                break;

            default:
                break;
            }
            int U缓冲检测 = Dmc2610.d2610_prebuff_status(X轴);

            switch (U缓冲检测)
            {
            case 0:
                LaU缓冲.Text = "U缓冲:空";
                break;

            case 1:
                LaU缓冲.Text = "U缓冲:满";
                break;

            default:
                break;
            }
            int A缓冲检测 = Dmc2610.d2610_prebuff_status(A轴);

            switch (A缓冲检测)
            {
            case 0:
                LaA缓冲.Text = "A缓冲:空";
                break;

            case 1:
                LaA缓冲.Text = "A缓冲:满";
                break;

            default:
                break;
            }
            int B缓冲检测 = Dmc2610.d2610_prebuff_status(B轴);

            switch (B缓冲检测)
            {
            case 0:
                LaB缓冲.Text = "B缓冲:空";
                break;

            case 1:
                LaB缓冲.Text = "B缓冲:满";
                break;

            default:
                break;
            }

            //*******************输入输出读取写出*****************
            if (Dmc2610.d2610_read_inbit(0, 1) == 1)
            {
                La输入1.Text = "La输入1:信号输入";           //'读取指定控制卡的第一位输入口电平。
                Dmc2610.d2610_write_outbit(0, 1, 1); // '指定控制卡的第一位输出口置位为高电平。
            }
            else
            {
                Dmc2610.d2610_write_outbit(0, 1, 0);// '指定控制卡的第一位输出口置位为低电平。
                La输入1.Text = "La输入1:信号断开";
            }

            if (Dmc2610.d2610_read_outbit(0, 1) == 1)//'读取指定控制卡的第一位输出口电平。
            {
                La1输出.Text = "La输出1:信号输出";
            }
            else
            {
                La1输出.Text = "La输出1:信号关闭";
            }

            if (Dmc2610.d2610_read_inbit(0, 2) == 1)//'读取指定控制卡的第一位输入口电平。
            {
                La输入2.Text = "La输入2:信号输入";
                Dmc2610.d2610_write_outbit(0, 2, 1);// '指定控制卡的第一位输出口置位为高电平。
            }
            else
            {
                Dmc2610.d2610_write_outbit(0, 2, 0);//'指定控制卡的第一位输出口置位为低电平。
                La输入2.Text = "La输入2:信号断开";
            }

            if (Dmc2610.d2610_read_inbit(0, 3) == 1)//'读取指定控制卡的第一位输入口电平。
            {
                La输入3.Text = "La输入3:信号输入";
                Dmc2610.d2610_write_outbit(0, 3, 1);// '指定控制卡的第一位输出口置位为高电平。
            }
            else
            {
                Dmc2610.d2610_write_outbit(0, 3, 0);//'指定控制卡的第一位输出口置位为低电平。
                La输入3.Text = "La输入3:信号断开";
            }
            if (Dmc2610.d2610_read_outbit(0, 3) == 1)//'读取指定控制卡的第一位输出口电平。
            {
                La3输出.Text = "La输出3:信号输出";
            }
            else
            {
                La3输出.Text = "La输出3:信号关闭";
            }
            //************ 实时在线改变速度**************
            变速数据       = HScrollBar1.Value;//'在线运行中改变指定单轴运行速度
            la变速度.Text = Convert.ToString(变速数据);
            if (Check单轴变速.Checked & Radio单轴T形连续运动.Checked || Radio单轴S形连续运动.Checked)
            {
                Dmc2610.d2610_change_speed(nAxis轴号[0], 变速数据);// '在线改变指定单轴的当前运行速度
            }
        }