Перейти к публикации

Таблица лидеров


Популярные публикации

Отображаются публикации с наибольшей репутацией на 02.10.2021 в Сообщения

  1. 1 балл
    Операторы IF, CASE при старте программы исполняются не верно. Следующий код, где условие равно FALSE - операция выполняется при старте программы IF (Условие) THEN Операция; END_IF; Но не все так плохо. Наличие различных функций содержащих встроенное условие позволяют практически отказаться от конструкций IF. Что собственно я и сделал. И пересобрал прошивку (******************************************************************************************* Входы/Выходы X0 - Сигнал датчику нуля оси Z Y0 - STEP. Выход на драйвер ШД Y4 - DIR. Выход на драйвер ШД Регистры M0 Bit Fix Запускает/останавливает движение по заданным координатам M1 Bit Act Ручное движение вверх M2 Bit Act Ручное движение вниз M3 Bit Fix Режим скорости ручного перемещения (0 - медленно S1, 1 - быстро S) M4 Bit Act Корректировка высоты заготовки M5 Bit Fix Поимк нулевой точки M8 Bit Fix Отключение лимитов при ручном движении D9 DWORD Уставка Z в импульсах D128 INT Высота стола (0.1 мм) D132 INT Высота заготовки (0.1 мм) D136 INT Количество импульсов на 1 мм перемещения по оси Z D140 INT Скорость движения по оси Z (мм/сек). Автоматический режим D142 INT Скорость движения по оси Z (мм/сек). Ручное управление D144 INT Текущая координата Axis Z (0.1 мм) D148 INT Текущая высота от заготовки до линзы Work Z (0.1 мм) D152 INT Текущий номер линзы Lens (1..4) D156 INT Фокусное расстояние линзы F1 (0.1 мм) D160 INT Фокусное расстояние линзы F2 (0.1 мм) D164 INT Фокусное расстояние линзы F3 (0.1 мм) D168 INT Фокусное расстояние линзы F4 (0.1 мм) D172 INT MaxZ. Максимальное значение Z D176 INT Фокусное расстояние выбранной линзы D8140 DWORD Текущее значение координаты Z в импульсах M8029 Bit Сигнал завершения позиционирования (в одном цикле) M8147 Bit 1 - происходит перемещение (Занято), 0 - ожидание команды ********************************************************************************************) (* Выполняется однократно при старте программы *) RST(M8002, M0); RST(M8002, M1); RST(M8002, M2); RST(M8002, M4); RST(M8002, M5); (* Вычисляем чатсоту импульсов *) dK := INT_TO_DINT(D136); (* K *) HiSpeed := INT_TO_DINT(D140); (* Hi Speed *) HiFreq := (dK * HiSpeed) / 10; LoSpeed := INT_TO_DINT(D142); (* Lo Speed *) LoFreq := (dK * LoSpeed) / 10; CASE D152 OF 1: (* Линза 1 *) D176 := D156; FLeanse := INT_TO_DINT(D156); 2: (* Линза 2 *) D176 := D160; FLeanse := INT_TO_DINT(D160); 3: (* Линза 3 *) D176 := D164; FLeanse := INT_TO_DINT(D164); 4: (* Линза 4 *) D176 := D168; FLeanse := INT_TO_DINT(D168); ELSE D176 := 0; FLeanse := 0; END_CASE; (* Вычисляем заданную координату Z в импульсах *) TableH := INT_TO_DINT(D128); (* Высота стола *) Mesure := INT_TO_DINT(D132); (* Высота заготовки *) MaxZ := INT_TO_DINT(D172 ); (* MaxZ смещение*) DestZ := MaxZ - (TableH + Mesure + FLeanse) ; (* Значение Z в 0,1 мм с учетом смещения MaxZ*) DestPulsZ := DestZ * (dK/10); (* Вычисляем количество импульсов для смещения *) DMOV( M8000, DestPulsZ , D9); (* Вычисляем текущую координату Z в 0,1 мм*) DMOV( M8000, D8140 , HardZ); AxisZ := MaxZ - (HardZ * 10) / dK; D144 := DINT_TO_INT(AxisZ); (* Вычисляем текущее расстояние от заготовки до линзы Z1 в 0,1 мм*) WorkZ := AxisZ - (TableH + Mesure); D148 := DINT_TO_INT(WorkZ); (* Soft Limit max *) RST((AxisZ > MaxZ), M0); (* Soft Limit min *) RST((AxisZ <= (TableH + Mesure)), M0); RST(((AxisZ <= (TableH + Mesure)) AND NOT M8), M2); (* По сигналам ручного управления отключить автоматическое M0 *) RST((M1 OR M2), M0); RST((M1 OR M2), M5); DDRVA( M0 , DestPulsZ, HiFreq, Y0 , Y4); (* Переключение скорости перемещения в ручном режиме *) IF M3 THEN HandSpeed := HiFreq; ELSE HandSpeed := LoFreq; END_IF; DDRVI( (M1 AND NOT X0) , -80000 , HandSpeed , Y0 , Y4 ); (* Если достигли датчика - прекратить движение вверх *) DDRVI( M2 , 80000 , HandSpeed , Y0 , Y4 ); Y7 := M8147; (* Поиск референтной точки/ мащинный 0 по датчику *) DZRN( M5 , HiFreq, MaxZ * dK, X0 , Y0 ); DMOV(X0, 0, D8140); RST(X0, M5); (* Корректировка высоты заготовки *) MOVP(M4, (D144 - D128 - D176), D132); (* Сброс M0 по оканчании позиционирования *) RST(M8029, M0); RST(M8029, M5); ============= END =============== Axis Z on fiber v8.gxw Axis Z on fiber7.dp2 Прикладываю файлы проекта в формате GXWorks2 для контроллера FX1N и OP320 Edit Tools для панели оператора OP320
  2. 1 балл
    Как вариант — второй лазер Желательно Trotec, ULS, ...etc. У нас иногда после резки на Рейлоджике потом гравируем на Тротеке, так быстрее выходит. По диодным лазерам — их в чпу фрезер наверно хорошо ставить. Почти ничего не весят и оптического тракта не надо.
  3. 1 балл
    Привет, у меня стоит л1800 без дела , купил сыну набрал порошка плёнки и чернил, пока продал только одну футболку...не хочет или ленится
RAYLOGIC 11G
Mira
Nova
×
×
  • Создать...