/// <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); }