Beispiel #1
0
        /// <summary>
        /// Управление работой шпинделя
        /// </summary>
        /// <param name="shpindelON">Вкл/Выключен</param>
        /// <param name="numShimChanel">номер канала 1,2, или 3</param>
        /// <param name="ts">Тип сигнала</param>
        /// <param name="SpeedShim">Значение определяющее форму сигнала</param>
        /// <returns></returns>
        public static byte[] pack_B5(bool shpindelON, int numShimChanel = 0, TypeSignal ts = TypeSignal.None, int SpeedShim = 0)
        {

            int tmpSpeed = SpeedShim;

            //что-бы не привысить максимум, после которого контроллер вырубается с ошибкой...
            if (tmpSpeed > 65000) tmpSpeed = 65000;


            byte[] buf = new byte[64];

            buf[0] = 0xB5;
            buf[4] = 0x80;


            if (shpindelON)
            {
                buf[5] = 0x02;
            }
            else
            {
                buf[5] = 0x01;
            }

            buf[6] = 0x01; //х.з.

            switch (numShimChanel)
            {
                case 2:
                    {
                        buf[8] = 0x02;
                        break;
                    }
                case 3:
                    {
                        buf[8] = 0x03;
                        break;
                    }
                default:
                    {
                        buf[8] = 0x00; //доступен только 2 и 3 канал, остальные не подходят....
                        break;
                    }
            }


            switch (ts)
            {
                case TypeSignal.Hz:
                    {
                        buf[9] = 0x01;
                        break;
                    }

                case TypeSignal.RC:
                    {
                        buf[9] = 0x02;
                        break;
                    }
                default:
                    {
                        buf[9] = 0x00;
                        break;
                    }
            }




            int itmp = tmpSpeed;
            buf[10] = (byte)(itmp);
            buf[11] = (byte)(itmp >> 8);
            buf[12] = (byte)(itmp >> 16);


            //buf[10] = 0xFF;
            //buf[11] = 0xFF;
            //buf[12] = 0x04;

            //зафиксируем
            PlanetCNC_Controller.LastStatus.Machine.SpindelON = shpindelON;

            return buf;
        }
        /// <summary>
        /// Управление работой шпинделя
        /// </summary>
        /// <param name="shpindelON">Вкл/Выключен</param>
        /// <param name="numShimChanel">номер канала 1,2, или 3</param>
        /// <param name="ts">Тип сигнала</param>
        /// <param name="SpeedShim">Значение определяющее форму сигнала</param>
        /// <returns></returns>
        public static byte[] pack_B5(bool shpindelON, int numShimChanel = 0, TypeSignal ts = TypeSignal.None, int SpeedShim = 0)
        {
            byte[] buf = new byte[64];

            buf[0] = 0xB5;
            buf[4] = 0x80;


            if (shpindelON)
            {
                buf[5] = 0x02;
            }
            else
            {
                buf[5] = 0x01;
            }

            buf[6] = 0x01; //х.з.

            switch (numShimChanel)
            {
            case 2:
            {
                buf[8] = 0x02;
                break;
            }

            case 3:
            {
                buf[8] = 0x03;
                break;
            }

            default:
            {
                buf[8] = 0x00;     //доступен только 2 и 3 канал, остальные не подходят....
                break;
            }
            }


            switch (ts)
            {
            case TypeSignal.Hz:
            {
                buf[9] = 0x01;
                break;
            }

            case  TypeSignal.RC:
            {
                buf[9] = 0x02;
                break;
            }

            default:
            {
                buf[9] = 0x00;
                break;
            }
            }



            int itmp = SpeedShim;

            buf[10] = (byte)(itmp);
            buf[11] = (byte)(itmp >> 8);
            buf[12] = (byte)(itmp >> 16);


            //buf[10] = 0xFF;
            //buf[11] = 0xFF;
            //buf[12] = 0x04;

            return(buf);
        }