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

Поиск переменных параметра инструмента и вывода процедуры


ArtemGerasimov

Рекомендованные сообщения

Всем доброго времени суток. Ищу помощи по ряду вопросов. Буду благодарен если кто подскажет.

1) Есть необходимость написания процедуры c проверкой по выводу в УП пользовательского текста в событии Auto Tool Change, но главный нюанс заключается в том, что вывод должен произойти только когда инструмент вызывается ПЕРВЫЙ РАЗ. Если этот же инструмент будет вызываться повторно 2 и более раз во всей программе- строки больше не выводятся. Это правило должно работать для всех инструментов (screen1). Вызов инструмента происходит по имени

2) Ищу mom переменные хвостовика осевых инструментов- диаметр и длину, поискал в браузере от постбилдера по shank но там не то что нужно (screen2)

3) Ищу mom переменную поля описания инструмента (если таковая есть) (screen3)

Screenshot_1.jpg

Screenshot_2.jpg

Screenshot_3.jpg

Ссылка на сообщение
Поделиться на других сайтах


11 час назад, ArtemGerasimov сказал:

1) Есть необходимость написания процедуры c проверкой по выводу в УП пользовательского текста в событии Auto Tool Change, но главный нюанс заключается в том, что вывод должен произойти только когда инструмент вызывается ПЕРВЫЙ РАЗ. Если этот же инструмент будет вызываться повторно 2 и более раз во всей программе- строки больше не выводятся. Это правило должно работать для всех инструментов (screen1). Вызов инструмента происходит по имени

Дык делайте массив с занесением туда имён уже вызванных инструментов, сравнивайте имя текущего с элементами массива и либо выводите, либо нет. Это же не сложно.

Ссылка на сообщение
Поделиться на других сайтах
23 часа назад, grOOmi сказал:

Дык делайте массив с занесением туда имён уже вызванных инструментов, сравнивайте имя текущего с элементами массива и либо выводите, либо нет. Это же не сложно.

К сожалению мой уровень познания tcl поверхностный, пишу простенькие процедуры с set, if, else. Логика с массивом понятна более чем, а вот с массивами не работал. Если не затруднит могли бы Вы накидать клочок кода как это должно выглядеть (занесение переменной в массив/ проверка на наличие занесенной переменной во всем массиве)?

Ссылка на сообщение
Поделиться на других сайтах

@ArtemGerasimov Накидал пример с массивом, очень простой и топорный, надеюсь нигде не ошибся. С каким-нибудь list было бы интереснее.

 

#где-то инициализируем массив, обьявив массив TOOLS_BUFFER и счетчик элементов TOOLS_BUFFER_COUNT
global TOOLS_BUFFER TOOLS_BUFFER_COUNT
set TOOLS_BUFFER_COUNT 0


#проверка на наличие такого элемента в массиве
global flag
set flag "FALSE"
for { set i 0 } { $i < $TOOLS_BUFFER_COUNT } { incr i } {
    #если нашли то добавлять не нужно
    if { $TOOLS_BUFFER($i)=="имя текущего инструмента" } {
        set flag "TRUE"    
    }
}
#если не нашли то нужно добавлять в массив
if { $flag=="FALSE" } {

    #добавляем новую запись в массив
    set TOOLS_BUFFER($TOOLS_BUFFER_COUNT) "имя текущего инструмента"

    #увеличиваем счетчик элементов массива
    incr TOOLS_BUFFER_COUNT
}

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, mr_Voden сказал:

@ArtemGerasimov Накидал пример с массивом, очень простой и топорный, надеюсь нигде не ошибся. С каким-нибудь list было бы интереснее.

 

#где-то инициализируем массив, обьявив массив TOOLS_BUFFER и счетчик элементов TOOLS_BUFFER_COUNT
global TOOLS_BUFFER TOOLS_BUFFER_COUNT
set TOOLS_BUFFER_COUNT 0


#проверка на наличие такого элемента в массиве
global flag
set flag "FALSE"
for { set i 0 } { $i < $TOOLS_BUFFER_COUNT } { incr i } {
    #если нашли то добавлять не нужно
    if { $TOOLS_BUFFER($i)=="имя текущего инструмента" } {
        set flag "TRUE"    
    }
}
#если не нашли то нужно добавлять в массив
if { $flag=="FALSE" } {

    #добавляем новую запись в массив
    set TOOLS_BUFFER($TOOLS_BUFFER_COUNT) "имя текущего инструмента"

    #увеличиваем счетчик элементов массива
    incr TOOLS_BUFFER_COUNT
}

Спасибо. Попробую с этим разобраться. Придется еще почитать литературу похоже

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • jtok
      Он сильно зависит от марки PP, от расчетной температуры и от расчетного срока службы (количества циклов нагружения). Поищите стандарт DVS 2205, части 1 и 2. В нем есть номограммы долговременной прочности. Он на немецком, но ничего лучше нет. Номограммы эти приведены по ссылке, внизу страницы, раздел "Список приложений".  Например, диаграмма для PP type 1 по ссылке: В оригинале же выглядят они вот так (для PP type 1): Также был древний документ на русском по этой теме, прицеплен к сообщению. _raschet_emkosti DVS 2205-2.pdf
    • Andrey_kzn
      - тут возможно смысл сообщения в том, что оси не синхронизированы, только вот зачем синхронизировать  оси X и Y не понятно. В случае двух шпинделей например,  coupled будет означать синхронизацию.
    • niagara39
      Правильно ХУ на этом станке не перпендекулярны. Тормоз оси У включен постоянно, отключается только при перемещении самой оси У. Координаты не  меняются... Знать бы что за параметры, пока ничего подобного не нашли
    • nicomed
      Поднял старые записи. Из того что было максимально похоже на то, что можно было назвать "получалось" :   Самому не совсем понятно поведение СкетчМенеджера при отрисовке линии от координат 0,0,0 - частенько слетает в произвольное место на виде. 
    • maxx2000
      на втором  скрине PLC сообщает что-то типа "старт программы запрещён потому что оси ХУ не связаны". Возможно станок в режиме точения должен заблокировать перемещение У, включить тормоз или что-то ещё для произвольного смещения под нагрузкой. Возможно косяк в тексте программы.
    • maxx2000
      @sneg0vik как это? Если ХУ не перпендикулярны то это уже не У, а скажем ось В. Нет, конечно в теории можно построить станок с неперпендикулярными ХУ. Вопрос зачем? Gildemeister CTX 420 это же токарно-фрезерный с осью У
    • sneg0vik
      На станке ось "X" является наклонной по отношению к оси "Y" (т. е. они не перпендикулярны). Поэтому надо полагать (учитывая текст ошибки) у вас отключена связь оси "Y" с осью "X".   Проверьте меняются ли координаты оси "X", когда вы двигаете ось "Y". И наоборот. Если - нет, то ищите как включить (наверное через параметры) взаимосвязь оси "Y" с осью "X".
    • ДОБРЯК
      Если ваш Заказчик и такую работу примет, то необходимо в шпоночное отверстие добавить и массу воды. Примерно 1/4 от той массы которую вы будете добавлять.  Да и еще и не забыть добавить момент инерции от воды.
    • Soprin
      В функции MOVE по F7.3 должно же из R270 переносить в R278?
    • niagara39
      Причина все еще не найдена... Но заметил, что сразу после включения в меню диагностики появляется следующее предупреждающее сообщение: 10155 M: Y-axis: Y-axis and X-axis not coupled , но причина его появления и его смысл неизвестны
×
×
  • Создать...