; Добавляется в Define.h строка ~49 ; #include Proj_Dir\Cfg\V2_Cfg1.inc ;Сведения об соответствии аппаратной конфигурации и выводов мелкопроца ; Конфигурация первого (ЧПУ шпиндель 2.2 КВт 400 Гц) №2.01, асинхронная запись в LCD = R/W задействован, ; Родоначальник второго варианта исполнения, 02/10/2018 внедрён, 25/09/2023 сгорел (вероятна внешняя причина - скачок напруги). ; Пробило тормозные транзисторы, 400 вольт в затворы унесли за собой ОУ, резисторы ограничения тока ШИМ, силовой модуль (сорвало пластик). ; Допаял стабилитроны 5 и 16 вольт, изменяю тормоз на резисторный, обновляю прошивку, добавляю старое ; (регулировку от переменника и старую схему управления силовым модулем) ; Есть коэффициенты для тактовых из перечня 40,48,50 МГц выбираемые из списка #define ClkMHz 48 ; Тактовая в мегагерцах - для вычислений - деление ; глючит - асм не научили делить без ошибок за много лет ; Толку нет - при BulkErase стирается всё включая ЕПРОМ ; #define NotEpromParamProg No ; Запрет прошивки в ЕПРОМ из \EPROM\EPROM_Data.inc ; Переехало из Define_PCPWM_3F.inc ; Мозги №2_1 ; #define PCPWM_NoReverseKey Yes ; Кнопа "реверс" меняется на "выбор источника оборотов АЦП-0" #define SetTermistorOutput bcf TRISA,1,ACCESS ;делаем ногу термистора вЫходом #define SetTermistorInput bsf TRISA,1,ACCESS ;делаем ногу термистора входом #define OffChargeRelay bcf LATA,1,ACCESS ;Чистим выход термистора для отключения реле #define ChargeRelayOn bsf LATA,1,ACCESS ;Ставим выход термистора для включения реле ; Переехало из Table_1W.inc SN_Ds18B20 macro ; Серийники тут определены db d'0',d'2' ; Количество идущих далее серийников датчиков db 0x28,0xEC,0x14,0xED,0x09,0x00,0x00,0x73 ; Новый датчик №2-1-1 Чип&Дип db 0x28,0x7E,0x12,0xED,0x09,0x00,0x00,0x30 ; Новый датчик №2-1-2 Чип&Дип ; db 0x28,0xEC,0x14,0xED,0x09,0x00,0x00,0x73 ; Новый датчик №2-1 Чип&Дип ; db 0x28,0x5D,0x1F,0xED,0x09,0x00,0x00,0x33 ; Новый датчик тэльфер в обмотках Чип&Дип ; db 0x28,0x52,0xE4,0x00,0x00,0x00,0x00,0x9B ; Новый датчик 6 ; db 0x28,0x4C,0x70,0x39,0x01,0x00,0x00,0x0B ; Первый датчик 0724C3-422AE на плате короткие ноги endm ; #define CyrTable Yes ; Таблица и код подмены кирилики из Win1251 в HD44780 #define LcdWorkScrNum d'2' ; Количество раб экранов WorkScreens macro ;Переехало из LCD_Text_FA.inc ;******* Рабочий Экран №0 ******** Скорость ****** Msg7 ; Альтернативная строка для вывода 10 раз в сек, рабочий экран . db d'39',HexUByte1ch ; Позиционирование начала строки и dw Tic_10; вывод десятых долей сека в конец 3 строки db SendByte2CmdReg,d'72',DecSWordTemp6ch; dw Adc_Volt+2 ; Термистор IRAMX db SendByte2CmdReg,d'71',"T=" ; Забиваем лишний символ ? #ifdef PCPWM_12b; Yes ; 12 бит вычисления вместо 8 бит - пробуем на скорость db SendByte2CmdReg,d'19' ; Третья строка начало db HexUWord4ch;; вывод слова Hex - 4 симв #else ;#ifdef PCPWM_12b; db SendByte2CmdReg,d'20' ; Третья строка начало db HexUByte2ch; вывод байта Hex - 2 симв #endif ;#ifdef PCPWM_12b; dw PCPWM_AmpSin ; Отладочная польза выше db DecSWordTemp6ch ; dw Adc_Volt+0 ; Вольтаж №0 db "V" ; db SendByte2CmdReg,d'84' ; ****** Четвёртая ***** строка начало db SubStringOut,0 ; 4 строка выбор варианта + смещение dw LCD_4_Buf;,F,BANKED; Выводимый Номер под 4 строки #ifdef W1_Pin ; ****** Вторая ***** строка дополнение db SendByte2CmdReg,d'78',DecSWordTemp6ch ;, dw DS1820_ScratctPad1+0 ; Дополним вторую строку одним датчиком db SendByte2CmdReg,d'64',DecSWordTemp6ch ;, dw DS1820_ScratctPad1+2 ; и вторым ,0x19,DS1820_ScratctPad1+4 ;,0; 10 byte db "," ; #endif ; #ifdef W1_Pin db SendByte2CmdReg,d'7',SubStringOut,0 ; + смещение dw PCPWM_AnimeSubStr ;; Полный адрес переменной db SubStringOut,0 ; + смещение dw PCPWM_ForwardReverse; db 0 ; Конец строки ; Не используется 04/11/2023 ;Msg9; ****** Рабочий Экран №2 ****** Ускорение ********* ; db d'39',HexUByte1ch ; Позиционирование начала строки и ; dw Tic_10; вывод десятых долей сека в конец 3 строки ; ; db SendByte2CmdReg,d'00'," Ускорение =" ; db ParamRegulate,0x31,0xFF, HexUByte2ch ; ; dw PCPWM_Accelerate ;,F,BANKED; Оперативно настраиваемая ; db " " ; ; ; ; db SendByte2CmdReg,d'72',DecSWordTemp6ch; ; dw Adc_Volt+2 ; Термистор IRAMX ; db SendByte2CmdReg,d'71',"T=" ; Забиваем лишний символ ? ; ; db SendByte2CmdReg,d'84' ; Четвёртая строка начало ;; Контекст подстрока через SubStringOut команду ; db SubStringOut,0 ; 4 строка выбор варианта + смещение ; dw LCD_4_Buf;,F,BANKED; Выводимый Номер под 4 строки ; ; #ifdef W1_Pin ; db SendByte2CmdReg,d'78',DecSWordTemp6ch ;, ; dw DS1820_ScratctPad1+0 ; Дополним вторую строку одним датчиком ; db SendByte2CmdReg,d'64',DecSWordTemp6ch ;, ; dw DS1820_ScratctPad1+2 ; и вторым ,0x19,DS1820_ScratctPad1+4 ;,0; 10 byte ; db "," ; ; #endif ; #ifdef W1_Pin ; db 0 ; Конец строки ;****** Рабочий Экран №1 *******" ВерхПорогТока=" ************ Msg8 ; Альтернативная строка для вывода 10 раз в сек, рабочий экран №2. db d'39',HexUByte1ch ; Первая позиция курсора dw Tic_10; вывод десятых долей сека в конец 3 строки db SendByte2CmdReg,Beg_1_Str+d'00',"Ток=",HexUByte2ch;; ВерхПорогТока=" dw I_DC+1;Adc_AmpPeak ; Текущий ток ; Копия пикового тока db ", Порог=" ;, db ParamRegulate,0x4,0xAF, HexUByte2ch ; dw Par_A ;,F,BANKED; Оперативно настраиваемая db " " ; db SendByte2CmdReg,Beg_3_Str+d'00',"M=",HexUByte2ch; dw Par_OC;I_DC+1;Adc_AmpPeak ;Мягкий порог ; Текущий ток ; Копия пикового тока db " ",HexUWord4ch dw DS1820_Err_CRC ;dw OC_RevCnt;I_DC+1;Adc_AmpPeak; счётчик оборотов db SendByte2CmdReg,d'72',DecSWordTemp6ch; dw Adc_Volt+2 ; Термистор IRAMX db SendByte2CmdReg,d'71',"T=" ; Забиваем лишний символ ? db SendByte2CmdReg,Beg_4_Str+d'00' ; Четвёртая строка начало ; Контекст подстрока через SubStringOut команду db SubStringOut,0 ; 4 строка выбор варианта + смещение dw LCD_4_Buf;,F,BANKED; Выводимый Номер под 4 строки #ifdef W1_Pin db SendByte2CmdReg,Beg_2_Str+d'14',DecSWordTemp6ch ;, dw DS1820_ScratctPad1+0 ; Дополним вторую строку одним датчиком db SendByte2CmdReg,Beg_2_Str+d'00',DecSWordTemp6ch ;, dw DS1820_ScratctPad1+2 ; и вторым ,0x19,DS1820_ScratctPad1+4 ;,0; 10 byte db "," ; #endif ; #ifdef W1_Pin db 0 ; Конец строки Msg9; *** Раб №2 не используется - вместо него №10 ; #endif ;#ifdef WorkScreens ; ;***************** Раб Экран №3 = Автомат вывод версий *************************** ; Msg10 ; Автомат вывод версий endm ; Переехало из Define_1W.inc ; Назначение ноги 1-варе ;; #else ;2431 Мозги №2 #define W1_TRIS TRISC #define W1_Lat LATC #define W1_Port PORTC #define W1_Pin 7 ; RC7 = 1Ware ; 18 нога 2431 ; #endif ; #define W1_Clear bcf W1_Lat,W1_Pin,ACCESS #define W1_Set bsf W1_Lat,W1_Pin,ACCESS #define W1_Output bcf W1_TRIS,W1_Pin,ACCESS #define W1_Input bsf W1_TRIS,W1_Pin,ACCESS ; ; Переехало из Define_Beeper.inc ; Назначение ноги Beeper ; Pin and port: ;#else ;2431 ; Мозги №2 #define Beeper_TRIS TRISC #define Beeper_Lat LATC #define Beeper_Port PORTC #define Beeper_Pin 6 ; RC6 = Beeper ; 17 нога 2431 #define BeeperPin Beeper_Lat,Beeper_Pin,ACCESS ;#define BeeperOutPut bsf Beeper_TRIS,Beeper_Pin,ACCESS ; Macros for sound: #define Beeper_Output bcf Beeper_TRIS,Beeper_Pin,ACCESS ;#define Beeper_Input bsf Beeper_TRIS,Beeper_Pin,ACCESS ;#define Beeper_Clear bcf BeeperPin ;#define Beeper_Set bsf BeeperPin #define Beeper_Toggle btg BeeperPin #define Beeper_TrisTogl btg Beeper_TRIS,Beeper_Pin,ACCESS ; Присвоение адресов буфера каналов АЦП для обработчиков - назначение каналов ; Мозги №2_1 - Начальник Рода - старая схема пайки каналов АЦП #define SensorInput ADC_Out+0 ;АN0 = Нога 2 = Вход датчика/переменника или QEA #define Fault_TempMon ADC_Out+2 ;АN1 = Нога 3 = Термистор #define I_DC ADC_Out+4 ;АN2 = Нога 4 = Ток потребления от DC шины #define U_DC ADC_Out+6 ;АN3 = Нога 5 = Напруга на DC шине ;Фикс Добавка к регулируемому смещению нуля. ; #define I_DC_Zero d'4864' ;d'2621' ; 0xFFFF/25 ; ~1/25=0.2V от полной амплитуды примерно минимальное смещение нуля #define I_DC_Zero 0x0000 ; d'23456' ; d'26214' 2*0xFFFF/5 ; 1/3-2/5 от полной амплитуды примерно = 1.7-2 V минимальное смещение нуля ; Коэффициенты Настройки показометра общего тока - быстро забывается как оно там работает. ; Используется в ADC_Step.inc строка ~151 ; FXM0808SL Adc_Corr+2,bnk,d'13'; Умножение корректорчика на коэфф "побольше" ; Add16L PRODL,acs,0x1eff*0x8;максимум измерений например 495=0x1ef добавляем тетраду F ; FXM1616U2 ADC_Work+0,bnk ,ADC_Out+4,bnk ,PRODL,acs, ADC_Work+7,bnk; ; RShift16_N ADC_Work+2,bnk,3 ; 3 правых сдвига 2х байт ; movff_N ADC_Work+2,Adc_Volt+2,2; Готовый результат - в буфера для вывода #define I_DC_RevCnt d'3' ; ; Количество оборотов при достижении мягкого порога #define I_DC_MulCorr d'61' ; ; Умножение корректорчика на коэфф "побольше" ; Множитель "корректорчика" должен быть таким, чтоб избежать переполнения ; при сложении с нормированным максимумом измерений. ; Модуль 30А, шунт ~9.6 мОм, делитель после шунта 1/2, делитель после ОУ 1/2, ; Дифф усиление ~10 раз, 5 сдвигов, 32*16 коэфф умножения: ; Точка нуля около 1/4 от общего диапазона АЦП, итого после вычитания смещения нуля ; диапазон входа максимум около 50К, преобразовать в индикатор ~ 30 А ; I_DC_AddCorr Подобран опытным путём по нулевой коррекциии - усиление видимо меньше ожидаемого. ; Буфер АЦП тока в покое #define I_DC_AddCorr d'23728' ; d'26767' ; d'42921'; =512*5/0.096 Для максимума 5/0,096 умноженного на нормирующий коэфф 512 #define I_DC_ShiftCorr 5; RShift16_N ADC_Work+2,bnk,5 ; 1 левый сдвиг 2х байт - быстрее 7 сдвигов 2 байт - но не работает, потому и правый. #define AnSens_SubZero d'13107'; Холостой ход ан.опто около 1 вольта = 65536/5 = 13107 #define AnSens_MulZero d'13'; Умножает корректор нуля на "побольше" #define AnSens_MulCorr d'43'; Умножает корректор наклона на "побольше" #define AnSens_AddCorr d'49555'; Прибавка фикс сдвига для попадания результата в целевой диапазон #define AnSens_ShiftCorr 5 ; 21 правый сдвиг = 16 (отброс 2 байт) + 5 сдвигов 2х байт ; Определяем кнопы - используются в прогах состояния мотора #define Key_Up PortB_Buf,2,ACCESS ; Вверх ++ #define Key_Down PortB_Buf,1,ACCESS ; Вниз ++ #define Key_Left PortB_Buf,3,ACCESS ; Левая ++ #define Key_Right PortB_Buf,4,ACCESS ; Правая ++ #define Key_E_Up PortB_Buf,7,ACCESS ; Внешн. верхний пин ++ #define Key_E_Down PortB_Buf,6,ACCESS ; Внешн. нижний пин #define Key_Encoder PortB_Buf,5,ACCESS ; Кнопа Енкодера ++ #define Key_EncMask andlw b'00100000'; Оставим лишь Кнопу Енкодера ++ #define Encoder_B0 Encoder_Bits,6,BANKED ; Фаза0 Енкодера #define Encoder_B1 Encoder_Bits,7,BANKED ; Фаза1 Енкодера ; В SpeedChange_2 собственные наименования кноп определены: #define DoubleFreqKey Key_Right ; PortB_Buf,4,ACCESS ;Кнопа правая #define HalfFreqKey Key_Left ; PortB_Buf,3,ACCESS ;Кнопа левая #define Mem_0_Key Key_Up ; PortB_Buf,1,ACCESS ;Кнопа центр верхняя #define Mem_1_Key Key_Down ; PortB_Buf,2,ACCESS ;Кнопа центр нижняя #define RevRunKey Key_E_Down ; Encoder_Buf,7,BANKED;PortB_Buf,7,ACCESS ;Кнопа крутим Реверс 7F #define ForwRunKey Key_E_Up ; Encoder_Buf,6,BANKED;PortB_Buf,6,ACCESS; Кнопа крутим Прямо BF ; В SpeedChange_3 собственные наименования кноп определены зачем-то: ;#define RevRunKey Encoder_Buf,7,BANKED;PortB_Buf,7,ACCESS ;Кнопа крутим Реверс 7F ;#define ForwRunKey Encoder_Buf,6,BANKED;PortB_Buf,6,ACCESS; Кнопа крутим Прямо BF #define StartTimDefLd d'50';0x50 ; Десятые доли сека до загрузки EncoderBitsInput Macro ; Строка енкодера и кнопы енкодера - могут быть не распаяны ; Мозги №3 ; movb LCD_Key_Port0, Encoder_Bits,7,BANKED ; Encoder_B1; Биты ; movb LCD_Key_Port2, Encoder_Bits,6,BANKED ; Encoder_B0; Енкодера ; Возврат к мозгам №2 ; 14/01/2020 заменил на Encoder_Bits movb LCD_Key_Port2,Encoder_Bits,7,BANKED ; Биты movb LCD_Key_Port0,Encoder_Bits,6,BANKED ; Енкодера endm KeysRow1Input Macro ; Строка 1 внутренних и одной внешней кнопы ; Мозги №3 ; movb LCD_Key_Port2, PortB_Buf,7,ACCESS ; Key_E_Down ; Побитовый ; movb LCD_Key_Port0, PortB_Buf,6,ACCESS ; Key_E_Up ; клавы ; movb LCD_Key_Port1, PortB_Buf,4,ACCESS ; Key_Left ; Левая кнопа - работает всегда ;Возврат к схеме мозгов №2 movb LCD_Key_Port3,PortB_Buf,4,ACCESS ; Побитовый ; movb LCD_Key_Port2,PortB_Buf,2,ACCESS ; клавы movb LCD_Key_Port1,PortB_Buf,5,ACCESS ; Побитовый ; movb LCD_Key_Port1,PortB_Buf,0,ACCESS ; клавы ; LCD_KeyInp LED0_Output ; В поисках неработающего СД ;*** bsf LATA,6,ACCESS ; Тест 10 ноги ; movbi LCD_InKey,PortB_Buf,7,ACCESS ; Внешние кнопы тянут к +5 вольтам bsf PortB_Buf,7,ACCESS ; затычка - кнопка не запаяна endm KeysRow2Input Macro ; Строка 3 опциональных кноп - могут быть не распаяны. ; Мозги №2 movb LCD_Key_Port3,PortB_Buf,3,ACCESS ; Для работы ожидания кноп нужен movb LCD_Key_Port2,PortB_Buf,2,ACCESS ; Key_Down ; ввод второй строки movb LCD_Key_Port1,PortB_Buf,1,ACCESS ; Key_Right ; клавы movb LCD_Key_Port0,PortB_Buf,0,ACCESS ; Key_Up ; в буфер енкодера ; movbi LCD_InKey,PortB_Buf,6,ACCESS ; Внешние кнопы тянут к +5 вольтам bsf PortB_Buf,6,ACCESS ; затычка - кнопка не запаяна endm #define LED0_Pin 6 ; Нога 10 = RA6 = белый СД к нулю #ifdef LED0_Pin #define LED0_PORT LATA #define LED0_TRIS TRISA #define Debug_LED0 LED0_PORT,LED0_Pin,ACCESS #define LED0_Output bcf LED0_TRIS,LED0_Pin,ACCESS #define LED0_Set bsf Debug_LED0 ; Диод к 0 вольт #define LED0_Clear bcf Debug_LED0 ; присоединён #define LED0_Toggle btg Debug_LED0 #else #define LED0_Output nop #define LED0_Set nop #define LED0_Clear nop #define LED0_Toggle nop #endif #define LED1_Pin 6 ; Нога 27 = RB6 #ifdef LED1_Pin #define LED1_PORT LATB #define LED1_TRIS TRISB #define Debug_LED1 LED1_PORT,LED1_Pin,ACCESS #define LED1_Output bcf LED1_TRIS,LED1_Pin,ACCESS #define LED1_Set bsf Debug_LED1 #define LED1_Clear bcf Debug_LED1 #define LED1_Toggle btg Debug_LED1 #else #define LED1_Output nop #define LED1_Set nop #define LED1_Clear nop #define LED1_Toggle nop #endif FactoryDefaultsValue macro ; Опциональный вынос в индивидуальный конфиг ;#else ; Боевая буратина с припаянной периферией АЦП - ток, напряжение, термистор ; Генерация строк для EPROM\EPROM_Data.inc ; из PCPWM_3F\Parameters_PSW_12b.xls/Param:N4:N35 db 0x02 ; Номер мотора 0-15=PCPWM_MotorNum db 0x5 ;4 Защита дребезга=LCD_DebounceTimeOut ; db d'53';0x22;09 LCD_6_4 ; Номер подстроки для 4 строки экрана 6 db d'1';0x53 ; вариант 4 строки=LCD_6_4 ; Добавлено 09/06/2020 для алгоритма поддержания давления по аналоговому датчику db 0x70; PCPWM_SpdMin; в) минимальная скорость двигла перед остановкой db 0x28; PCPWM_SpdDelta г) дэльта скорости двигла между остановкой и стартом db 0x81; PCPWM_K_Prop д) К усиления пропорции ПИД db 0x82; PCPWM_K_Integr е) К усиления интеграла ПИД db 0x83; PCPWM_K_Diff ж) К усиления дифф ПИД db 0x10; PCPWM_Alrm_Tim з) время ожидания перезапуска после аварийного останова db 0x00; Adc_Corr+5; б) AN датчик усиление подстройка db 0x26; Adc_Corr+4; а) AN датчик подстройка нуля db 0x80; 0x05 ; Ток подстройка нуля =Adc_Corr+3 db d'12' ; Термистор подстр=Adc_Corr+2 db d'13';0x09 ; Ток усиление подстройка=Adc_Corr+1 db d'41';-d'9' ;0xAB ; -085 Напр подстройка=Adc_Corr+0 db 0xD2 ; Сверх Напруга=Par_V db 0x10 ; 1D ; Par_VS; 10=Дэльта защиты тока/напруги db 0xF4 ; 0xA6 ; Сверх Термистор =Par_T #ifdef W1_Pin db 0x70 ; W1 Temp=Par_K db 0x65 ; W1 temp1=Par_K1 #endif ;#ifdef W1_Pin db 0x10 ; Компенсация DC шины=PcDC_Kf ; db 0x8A ; Номинал напряжения DC шины=PcDC_VN db 0x0A ; мкСек Интервал заряда конд=PcPwmTopDT db 0x18 ; DTCON 0-63 защитный интервал=DTCON db 0x01 ; Delay Curiosity=DelayCuriosityIndex ; Конец блока общих параметров ;#endif ;#ifdef PCPWM_Board ; Пороги для учебной платы без цепей АЦП ; 10/12/2022 Ноль измерителя тока около 0x60, соответственно защита выше, полная шкала ~50A. ; Блок параметров двигла №0 индивидуальных по двиглам db 0x07 ; скорость мотора=PCPWM_Speed db 0xbb ; V/F Amp=PCPWM_Amp db 0x46 ; V/F Start=PCPWM_VFStart db 0x27 ; Accelerate=PCPWM_Accelerate db 0x78 ; СверхТок=Par_A db 0x00 ; Макс Скор Индекс=PCPWM_MaxSpdIndx db 0x0A ; Частота ШИМ 0-20=PcPwmFrqInd db 0x03 ; Междуфазный Угол Поля 0-3=PcPwmAngInd db 0x75 ; Скорость автостарта -127:127=PCPWM_AutoStart db 0x01 ; Номер проги состояний мотора=PcPwmProg db 0x8A ; Номинал напряжения DC шины=PcDC_VN db 0x70 ; 60 ; Недо Напруга (реле и защита)=Par_UV ; переехала в индивидуальные db 0x20 ; Ячейка памяти скорости 1=PCPWM_Speed_M0 db 0x30 ; Ячейка памяти скорости 2=PCPWM_Speed_M1 ;; Записал на бумаге настройки для сверлилки: ;; db d'00';0x10;10 PCPWM_MaxSpdIndx; 0=100 Гц Макс, Индекс максимальной скорости вращения поля синтезатора. ;; db 0xBB;01 PCPWM_Amp ;; db 0x46;02 PCPWM_VFStart ;; db 0x1;07 DelayCuriosityIndex ;; db 0x27;03 PCPWM_Accelerate ускорение вращения поля синтезатора. ;; Ещё параметр 07 Over Current = 78 - подобран руками по усилию отключения/перегрузки сверлилки ;; при больших значениях оператор начинает вращаться сверлом - опасно. ;;; Записал на бумаге настройки для 400 Гц 2.2 КВт 220 вольт шпинделя: ;; db d'03';0x10;10 PCPWM_MaxSpdIndx; 3=800 Гц Макс, автостарт на 400 Гц. ;; db 0x93;01 PCPWM_Amp - почти наугад, по звуку на раб оборотах 18-24К ;; db 0x06;02 PCPWM_VFStart - но маловато - терял поле в конце торможения. ;; db 0x1;07 DelayCuriosityIndex ;; db 0xFF;03 PCPWM_Accelerate ускорение вращения поля синтезатора. ;;; Ещё параметр 07 Over Current = F8; ; Блок параметров двигла №1 индивидуальных по двиглам ; Сварочный вращатель здесь живёт - 1.5 КВт 4 полюса 220/380 в звезде. ; Максимум ~30 Гц, рабочая ~ 3 Гц. db 0xFF ; скорость мотора=PCPWM_Speed db 0x80 ; V/F Amp=PCPWM_Amp db 0x54 ; V/F Start=PCPWM_VFStart db 0xFF ; Accelerate=PCPWM_Accelerate db 0x70 ; СверхТок=Par_A db 0x04 ; Макс Скор Индекс=PCPWM_MaxSpdIndx db 0x00 ; Частота ШИМ 0-20=PcPwmFrqInd db 0x03 ; Междуфазный Угол Поля 0-3=PcPwmAngInd db 0x00 ; Скорость автостарта -127:127=PCPWM_AutoStart db 0x01 ; Номер проги состояний мотора=PcPwmProg db 0x8A ; Номинал напряжения DC шины=PcDC_VN db 0x70 ; 60 ; Недо Напруга (реле и защита)=Par_UV ; переехала в индивидуальные db 0x80 ; Ячейка памяти скорости 1=PCPWM_Speed_M0 db 0x40 ; Ячейка памяти скорости 2=PCPWM_Speed_M1 ; Блок параметров двигла №2 индивидуальных по двиглам ;;; Настройки для 450 Гц 2.2 КВт 220 вольт шпинделя: ;; db d'106';=450 Гц PCPWM_MaxSpdIndx; 106.=0x6A=450 Гц Макс, автостарт на 225 Гц. ;; db 0xB3;01 PCPWM_Amp - почти наугад, по звуку на раб оборотах 18-24К ;; db 0x0A;02 PCPWM_VFStart - но маловато - терял поле в конце торможения. ;; db 0x1;07 DelayCuriosityIndex ;; db 0xFF;03 PCPWM_Accelerate ускорение вращения поля синтезатора. ;;; Ещё параметр 07 Over Current = 0x50; примерно db 0x55 ; скорость моторCPWM_Speed db 0xA0 ;03/10/2023 ; 0xB3 ; V/F Amp=PCPWM_Amp db 0x21 ;03/10/2023 ; 0x0A ; V/F Start=PCPWM_VFStart db 0xF2 ; Accelerate=PCPWM_Accelerate db 0x6D ;03/10/2023 ; 0x72 ; СверхТок=Par_A db 0x6A ; Макс Скор Индекс=PCPWM_MaxSpdIndx db 0x0A ; Частота ШИМ 0-20=PcPwmFrqInd db 0x03 ; Междуфазный Угол Поля 0-3=PcPwmAngInd db 0x00 ; Скорость автостарта -127:127=PCPWM_AutoStart db 0x01 ; Номер проги состояний мотора=PcPwmProg db 0x8A ; Номинал напряжения DC шины=PcDC_VN db 0x70 ; 60 ; Недо Напруга (реле и защита)=Par_UV ; переехала в индивидуальные db 0x52 ; Ячейка памяти скорости 1=PCPWM_Speed_M0 db 0xA2 ; Ячейка памяти скорости 2=PCPWM_Speed_M1 ; Блок параметров двигла №3 индивидуальных по двиглам ;;; Параметры для тестового мотора 1.5 КВт 4 полюса 220 вольт треугольник, на которых снималось видео первого экземпляра: ;; db 0x10;=70 Гц; d'00';04 PCPWM_MaxSpdIndx; 0=100 Гц Макс, Индекс максимальной скорости вращения поля синтезатора. ;; db 0xB0;05 PCPWM_Amp ;; db 0x27;06 PCPWM_VFStart ;; db 0x1;07 DelayCuriosityIndex ;; db 0x40;08 PCPWM_Accelerate ускорение вращения поля синтезатора. ;;; Конец параметров тестового 4 полюса 1.5 КВт мотора db 0x33 ; скорость мотора=PCPWM_Speed db 0xB0 ; V/F Amp=PCPWM_Amp db 0x27 ; V/F Start=PCPWM_VFStart db 0x93 ; Accelerate=PCPWM_Accelerate db 0x73 ; СверхТок=Par_A db 0x10 ; Макс Скор Индекс=PCPWM_MaxSpdIndx db 0x00 ; Частота ШИМ 0-20=PcPwmFrqInd db 0x03 ; Междуфазный Угол Поля 0-3=PcPwmAngInd db 0x99 ; Скорость автостарта -127:127=PCPWM_AutoStart db 0x00 ; Номер проги состояний мотора=PcPwmProg db 0x8A ; Номинал напряжения DC шины=PcDC_VN db 0x70 ; 60 ; Недо Напруга (реле и защита)=Par_UV ; переехала в индивидуальные db 0x77 ; Ячейка памяти скорости 1=PCPWM_Speed_M0 db 0xAA ; Ячейка памяти скорости 2=PCPWM_Speed_M1 ; Блок параметров двигла №4 индивидуальных по двиглам ;;; Параметры для тестового мотора ИЭ-1025 250 Вт 200 Гц 36 Вольт 2 полюса от 30 вольт DC ;; db d'106';=450 Гц; ;04 PCPWM_MaxSpdIndx; 0=100 Гц Макс, Индекс максимальной скорости вращения поля синтезатора. ;; db 0xB0;05 PCPWM_Amp ;; db 0x27;06 PCPWM_VFStart ;; db 0x1;07 DelayCuriosityIndex ;; db 0xFF;08 PCPWM_Accelerate ускорение вращения поля синтезатора. db 0x44 ; скорость мотора=PCPWM_Speed db 0xB0 ; V/F Amp=PCPWM_Amp db 0x27 ; V/F Start=PCPWM_VFStart db 0xF4 ; Accelerate=PCPWM_Accelerate db 0x74 ; СверхТок=Par_A db 0x6A ; = ~400 Hz Макс Скор Индекс=PCPWM_MaxSpdIndx db 0x0B ; = ~6 KHz Частота ШИМ 0-20=PcPwmFrqInd db 0x03 ; =1/3 Rev Междуфазный Угол Поля 0-3=PcPwmAngInd db 0x04 ; Скорость автостарта -127:127=PCPWM_AutoStart db 0x00 ; Номер проги состояний мотора=PcPwmProg db 0x0A ; Номинал напряжения DC шины=PcDC_VN db 0x70 ; 60 ; Недо Напруга (реле и защита)=Par_UV ; переехала в индивидуальные db 0x77 ; Ячейка памяти скорости 1=PCPWM_Speed_M0 db 0xBB ; Ячейка памяти скорости 2=PCPWM_Speed_M1 ; Блок параметров двигла №5 индивидуальных по двиглам ; Голова ФВ-6 и мотор 4АМ100L4У3 4 КВт 4 полюса 50 Гц макс ; Синус с 3 гармоникой был но сплыл, надо заново подбирать db 0xFF ; скорость мотора=PCPWM_Speed db 0x8B ; V/F Amp=PCPWM_Amp db 0x43 ; V/F Start=PCPWM_VFStart db 0x81 ; Accelerate=PCPWM_Accelerate db 0x87 ; СверхТок=Par_A db 0x0C ; = ~ 65 Hz Макс Скор Индекс=PCPWM_MaxSpdIndx db 0x00 ; = ~ 1.5 KHz Частота ШИМ 0-20=PcPwmFrqInd db 0x03 ; = 1/3 Rev Междуфазный Угол Поля 0-3=PcPwmAngInd db d'200'; Скорость автостарта -127:127=PCPWM_AutoStart db 0x00 ; Номер проги состояний мотора=PcPwmProg db 0xA2 ; Номинал напряжения DC шины=PcDC_VN db 0x87 ; 60 ; Недо Напруга (реле и защита)=Par_UV ; переехала в индивидуальные db 0x88 ; Ячейка памяти давления 5 атм 1=PCPWM_Speed_M0 db 0xAA ; Ячейка памяти давления 8 атм 2=PCPWM_Speed_M1 ; Блок параметров двигла №6 индивидуальных по двиглам ;"3Kw 75Hz ИТ-1М кнопы" ,0;6 db 0x66 ; скорость мотора=PCPWM_Speed db 0x8D ; V/F Amp=PCPWM_Amp db 0x3F ; V/F Start=PCPWM_VFStart db 0x5D ; Accelerate=PCPWM_Accelerate db 0x91 ; СверхТок=Par_A db 0x0B ; ~ 75 Hz Макс Скор Индекс=PCPWM_MaxSpdIndx db 0x00 ; ~ 1.5 KHz Частота ШИМ 0-20=PcPwmFrqInd db 0x03 ; Междуфазный Угол Поля 0-3=PcPwmAngInd db 0xC0 ; Скорость автостарта -127:127=PCPWM_AutoStart db 0x02 ; Номер проги состояний мотора=PcPwmProg db 0x8A ; Номинал напряжения DC шины=PcDC_VN db 0x8E ; 60 ; Недо Напруга (реле и защита)=Par_UV ; переехала в индивидуальные db 0x66 ; Ячейка памяти скорости 1=PCPWM_Speed_M0 db 0xBB ; Ячейка памяти скорости 2=PCPWM_Speed_M1 ; Блок параметров двигла №7 индивидуальных по двиглам ;"АИР71В4У2 0,75 Kw 60Hz Фрезер Джойстик Пускатели" db 0x38 ; скорость мотора=PCPWM_Speed db 0x81 ; V/F Amp=PCPWM_Amp db 0x39 ; V/F Start=PCPWM_VFStart db 0x65 ; Accelerate=PCPWM_Accelerate db 0x67 ; СверхТок=Par_A db 0x08 ; Макс Скор Индекс=PCPWM_MaxSpdIndx db 0x07 ; Частота ШИМ 0-20=PcPwmFrqInd db 0x03 ; Междуфазный Угол Поля 0-3=PcPwmAngInd db 0x00 ; Скорость автостарта -127:127=PCPWM_AutoStart db 0x02 ; Номер проги состояний мотора=PcPwmProg db 0x90 ; Номинал напряжения DC шины=PcDC_VN db 0x70 ; 60 ; Недо Напруга (реле и защита)=Par_UV ; переехала в индивидуальные db 0x07 ; Ячейка памяти скорости 1=PCPWM_Speed_M0 db 0x07 ; Ячейка памяти скорости 2=PCPWM_Speed_M1 ; Блок параметров двигла №8 индивидуальных по двиглам db 0x08 ; скорость мотора=PCPWM_Speed db 0x08 ; V/F Amp=PCPWM_Amp db 0x08 ; V/F Start=PCPWM_VFStart db 0xF8 ; Accelerate=PCPWM_Accelerate db 0x68 ; СверхТок=Par_A db 0x00 ; Макс Скор Индекс=PCPWM_MaxSpdIndx db 0x08 ; Частота ШИМ 0-20=PcPwmFrqInd db 0x03 ; Междуфазный Угол Поля 0-3=PcPwmAngInd db 0x08 ; Скорость автостарта -127:127=PCPWM_AutoStart db 0x00 ; Номер проги состояний мотора=PcPwmProg db 0x2A ; Номинал напряжения DC шины=PcDC_VN db 0x70 ; 60 ; Недо Напруга (реле и защита)=Par_UV ; переехала в индивидуальные db 0x08 ; Ячейка памяти скорости 1=PCPWM_Speed_M0 db 0x08 ; Ячейка памяти скорости 2=PCPWM_Speed_M1 ; Блок параметров двигла №9 индивидуальных по двиглам db 0x09 ; скорость мотора=PCPWM_Speed db 0x09 ; V/F Amp=PCPWM_Amp db 0x09 ; V/F Start=PCPWM_VFStart db 0xF9 ; Accelerate=PCPWM_Accelerate db 0x69 ; СверхТок=Par_A db 0x00 ; Макс Скор Индекс=PCPWM_MaxSpdIndx db 0x09 ; Частота ШИМ 0-20=PcPwmFrqInd db 0x03 ; Междуфазный Угол Поля 0-3=PcPwmAngInd db 0x09 ; Скорость автостарта -127:127=PCPWM_AutoStart db 0x00 ; Номер проги состояний мотора=PcPwmProg db 0x8A ; Номинал напряжения DC шины=PcDC_VN db 0x70 ; 60 ; Недо Напруга (реле и защита)=Par_UV ; переехала в индивидуальные db 0x09 ; Ячейка памяти скорости 1=PCPWM_Speed_M0 db 0x09 ; Ячейка памяти скорости 2=PCPWM_Speed_M1 ; Блок параметров двигла №10 индивидуальных по двиглам db 0x10 ; скорость мотора=PCPWM_Speed db 0x10 ; V/F Amp=PCPWM_Amp db 0x10 ; V/F Start=PCPWM_VFStart db 0xE0 ; Accelerate=PCPWM_Accelerate db 0x70 ; СверхТок=Par_A db 0x00 ; Макс Скор Индекс=PCPWM_MaxSpdIndx db 0x0A ; Частота ШИМ 0-20=PcPwmFrqInd db 0x03 ; Междуфазный Угол Поля 0-3=PcPwmAngInd db 0x10 ; Скорость автостарта -127:127=PCPWM_AutoStart db 0x00 ; Номер проги состояний мотора=PcPwmProg db 0x8A ; Номинал напряжения DC шины=PcDC_VN db 0x70 ; 60 ; Недо Напруга (реле и защита)=Par_UV ; переехала в индивидуальные db 0x10 ; Ячейка памяти скорости 1=PCPWM_Speed_M0 db 0x10 ; Ячейка памяти скорости 2=PCPWM_Speed_M1 ; Блок параметров двигла №11 индивидуальных по двиглам db 0x11 ; скорость мотора=PCPWM_Speed db 0x11 ; V/F Amp=PCPWM_Amp db 0x11 ; V/F Start=PCPWM_VFStart db 0xE1 ; Accelerate=PCPWM_Accelerate db 0x71 ; СверхТок=Par_A db 0x00 ; Макс Скор Индекс=PCPWM_MaxSpdIndx db 0x0B ; Частота ШИМ 0-20=PcPwmFrqInd db 0x03 ; Междуфазный Угол Поля 0-3=PcPwmAngInd db 0x11 ; Скорость автостарта -127:127=PCPWM_AutoStart db 0x00 ; Номер проги состояний мотора=PcPwmProg db 0x8A ; Номинал напряжения DC шины=PcDC_VN db 0x70 ; 60 ; Недо Напруга (реле и защита)=Par_UV ; переехала в индивидуальные db 0x11 ; Ячейка памяти скорости 1=PCPWM_Speed_M0 db 0x11 ; Ячейка памяти скорости 2=PCPWM_Speed_M1 ; Блок параметров двигла №12 индивидуальных по двиглам ; 02/11/2021 - ИЭ-8201БУ2 3*36V 1065W 20A 48.6 c-1 1986 г. db 0x17 ; скорость мотора=PCPWM_Speed db 0x82 ; V/F Amp=PCPWM_Amp db 0x70 ; V/F Start=PCPWM_VFStart db 0xFF ; Accelerate=PCPWM_Accelerate db 0xA9 ; СверхТок=Par_A db 0x08 ; Макс Скор Индекс=PCPWM_MaxSpdIndx db 0x05 ; Частота ШИМ 0-20=PcPwmFrqInd db 0x03 ; Междуфазный Угол Поля 0-3=PcPwmAngInd db 0x21 ; Скорость автостарта -127:127=PCPWM_AutoStart db 0x02 ; Номер проги состояний мотора=PcPwmProg db 0x14 ; Номинал напряжения DC шины=PcDC_VN db 0x07 ; 60 ; Недо Напруга (реле и защита)=Par_UV ; переехала в индивидуальные db 0x33 ; Ячейка памяти скорости 1=PCPWM_Speed_M0 db 0x55 ; Ячейка памяти скорости 2=PCPWM_Speed_M1 ; Блок параметров двигла №13 - мотор HDD от 15 вольт БП db 0x02 ; скорость мотора=PCPWM_Speed db 0x3C ; V/F Amp=PCPWM_Amp db 0x6F ; V/F Start=PCPWM_VFStart db 0xFF ; Accelerate=PCPWM_Accelerate db 0x61 ; СверхТок=Par_A db 0x01 ; Макс Скор Индекс=PCPWM_MaxSpdIndx db 0x0E ; Частота ШИМ 0-20=PcPwmFrqInd db 0x03 ; Междуфазный Угол Поля 0-3=PcPwmAngInd db 0x08 ; Скорость автостарта -127:127=PCPWM_AutoStart db 0x00 ; Номер проги состояний мотора=PcPwmProg db 0x06 ; Номинал напряжения DC шины=PcDC_VN db 0x05 ; 60 ; Недо Напруга (реле и защита)=Par_UV ; переехала в индивидуальные db 0x23 ; Ячейка памяти скорости 1=PCPWM_Speed_M0 db 0x83 ; Ячейка памяти скорости 2=PCPWM_Speed_M1 ; Блок параметров №14 - ИЭ-1025 от регулируемого БП 0-30 вольт db 0x63 ; скорость мотора=PCPWM_Speed db 0x9D ; V/F Amp=PCPWM_Amp db 0x35 ; V/F Start=PCPWM_VFStart db 0xFF ; Accelerate=PCPWM_Accelerate db 0x6A ; СверхТок=Par_A db 0x24 ; Макс Скор Индекс=PCPWM_MaxSpdIndx db 0x09 ; Частота ШИМ 0-20=PcPwmFrqInd db 0x03 ; Междуфазный Угол Поля 0-3=PcPwmAngInd db 0x04 ; Скорость автостарта -127:127=PCPWM_AutoStart db 0x01 ; Номер проги состояний мотора=PcPwmProg db 0x10 ; Номинал напряжения DC шины=PcDC_VN db 0x07 ; 60 ; Недо Напруга (реле и защита)=Par_UV ; переехала в индивидуальные db 0x28 ; Ячейка памяти скорости 1=PCPWM_Speed_M0 db 0x14 ; Ячейка памяти скорости 2=PCPWM_Speed_M1 ; Блок параметров двигла №15 отладочный __dbbug ; 02/11/2021 - ИЭ-8201БУ2 3*36V 1065W 20A 48.6 c-1 1986 г. db 0x05 ; скорость мотора=PCPWM_Speed db 0xEE ; V/F Amp=PCPWM_Amp db 0xE6 ; V/F Start=PCPWM_VFStart db 0x33 ; Accelerate=PCPWM_Accelerate db 0x99 ; СверхТок=Par_A db 0x04 ; Макс Скор Индекс=PCPWM_MaxSpdIndx db 0x00 ; Частота ШИМ 0-20=PcPwmFrqInd db 0x03 ; Междуфазный Угол Поля 0-3=PcPwmAngInd db 0x03 ; Скорость автостарта -127:127=PCPWM_AutoStart db 0x01 ; Номер проги состояний мотора=PcPwmProg db 0x15 ; Номинал напряжения DC шины=PcDC_VN db 0x07 ; 60 ; Недо Напруга (реле и защита)=Par_UV ; переехала в индивидуальные db 0x88 ; Ячейка памяти скорости 1=PCPWM_Speed_M0 db 0x66 ; Ячейка памяти скорости 2=PCPWM_Speed_M1 endm ;CfgMotorName macro ; Опциональные имена моторов в конфиге ; Под строки наименований индивидуальных настроек моторов ; на манер LCD_SubStr.inc ~658 ; endm #define LCD_Present Proj_Dir\Cfg\Lcd_Drv2431_1.inc ;YES ; Версия файла драйвера #include Proj_Dir\Cfg\Lcd_Def2431_1.inc ;включаемое файло для лёгкости смены конфы драйвера.