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

В какой переменной mom_ хранится замечание к операции?


Stanislav

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

В какой переменной mom_ хранится замечание к операции?

 

Идея писать коментарий к операции дабы потом через постпроцессор вывести простой операционный листинг технологии. Оформление технологических карт по стандарту от меня не требуется. Но написать технологию по операциям нужно. 

Потом это можно вывести в виде текстового файла, либо html таблицы. (далее тетеньки через Ctrl+C, Ctrl+V оформят технологию по ЕСКД) 

 

 

1.jpg

Изменено пользователем Stanislav
Ссылка на сообщение
Поделиться на других сайтах


UnPinned posts

Пробовал искать по note но переменной нет в справочнике. 

Спасибо за подсказку, буду пробовать. 

 

1.jpg

 

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

Странная переменная mom_operation_notes(). Вроде бы действительно массив, но какой то странный состоит из одного элемента.  В конце программы попытка прогнать через forech дает одно последнее значение. 

Значение всегда содержится в элементе с индексом 0, mom_operation_notes(0).  

 

Пытаюсь собрать массив замечаний в событии начала операции. В общем-то массив собирается. Зачем хранить данные в массиве почему по операции нельзя было просто в переменной  mom_operation_notes хранить замечание по аналогии с именем операции?  Есть нюанс если в операции нет замечания то, mom_operation_notes(0)  - имеет значение от последнего присвоенного  значения, что то вроде модального значения.

 

Может я как то не так работаю с массивом? 

Пример кода формирования массивов операций и комментариев к ним и их вывод:

 

# CREATION array_operation_name
set array_operation_name($count_operation) "$mom_operation_name"

# CREATION array_operation_notes
if { ![info exists "mom_operation_notes(0)"] } {
 set array_operation_notes($count_operation) ""
} else {
 set array_operation_notes($count_operation) "$mom_operation_notes(0)"
# if { $count_operation >= "2" } {
#  if { $array_operation_notes([expr $count_operation - 1]) == "$array_operation_notes($count_operation)" } {
#   set array_operation_notes($count_operation) "*"
#  }
# }
}

Вывод:

foreach id [array name array_operation_name] {
 puts $temp_file "$array_operation_name($id) - $array_operation_notes($id)"
}

 

Рузультат работы:

S5_TOREC -  (тут нет значения первая операция)
S5_KARMAN_1_PR - ZAMEHANIE  1
S5_KARMAN_1_OK - Zamechanie 2
S5_KARMAN_2_PR - Zamechanie 2  (здесь нет замечания но оно наследуется от предыдущего)
S5_KARMAN_2_OK - Zamechanie 2  (здесь нет замечания но оно наследуется от предыдущего)
S5_CENTROVAT_2OTV_POD_M8 - ZZZZZZ 3
S5_SVER_2OTV_POD_M8_PR - ZZZ 4
S5_FREZ_OTV_6.7_POD_M8 - ZZZZ 5
S5_FREZ_KANAVKU_D8.5H1.5 - ZZZZ 5  (здесь нет замечания но оно наследуется от предыдущего)
S5_M8_1.25 - ZZZZ 5 (здесь нет замечания но оно наследуется от предыдущего)
S5_CENTROVAT_2OTV_POD_M4 - ZZZZ 5 (здесь нет замечания но оно наследуется от предыдущего)
S5_SVER_2OTV_POD_M4 - ZZZ 6
S5_M4_0.7 - ZZZ 6  (здесь нет замечания но оно наследуется от предыдущего)

Изменено пользователем Stanislav
Ссылка на сообщение
Поделиться на других сайтах
45 минут назад, Stanislav сказал:

Значение всегда содержится в элементе с индексом 0, mom_operation_notes(0).

Если замечание в одну строку написано, то в 0. Напишите в две строки - значение будет в элементах 0 и 1 построчно

 

47 минут назад, Stanislav сказал:

Есть нюанс если в операции нет замечания то, mom_operation_notes(0)  - имеет значение от последнего присвоенного  значения, что то вроде модального значения.

Возможно, стоит сделать unset для mom_operation_notes в end_of_path

 

48 минут назад, Stanislav сказал:

foreach id [array name array_operation_name] { puts $temp_file "$array_operation_name($id) - $array_operation_notes($id)" }

foreach использовал только для list, увы, не в курсе. Так-то, вроде можно и для массивов.

Сделайте вывод в цикле, а наличие значения проверяйте через info exist, раз через foreach не удается.

 

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • streamdown
      Коллеги приветствую! IPS 8. Подскажите пожалуйста, кто какое серверное железо использует? Интересуют параметры при одновременной работе, ну например, 400 пользователей онлайн
    • gudstartup
      так он так и позиционируется по m19 pmc выдает g70.6 а чпу отвечает f45.7 но ориентацию и смещение в 4077 он отрабатывает нормально шпиндель встает ровно и смена происходит хорошо. вопрос почему после ввода команды управления скоростью он все еще продолжает контролировать число импульсов между нуль метками хотя в принципе уже должен отменить позиционный контроль и просто считать обороты по 0 метке как он это делает без М19? это все понятно но почему оно продолжает проверять это после завершения ориентации мне непонятно
    • Александр1979
      SP9047 SSPA:47 ILLEGAL SIGNAL OF POSITION CODER "The relationship between the A/B phase and 1-rotation signal is incorrect (Pulse interval mismatch)." "Неправильное значение счетчика импульсов сигнала на энкодере ALPHAi. На фазах A и B энкодера за один оборот шпинделя насчитывается 4096 импульсов обратной связи. Программное обеспечение по управлению шпинделем проверяет количество импульсов на фазах A и B, соответствующее энкодеру, при каждой генерации сигнала одного оборота. Данный аварийный сигнал срабатывает, если регистрируется число импульсов, нарушающее заданный диапазон."
    • vs3dpro
      Добрый день! У нас на есть SLA принтер 600х600х400мм. Можно напечатать мастер- модели, и можно приехать посмотреть. mail@iges.space
    • gudstartup
      после ввода 789 в edit mod надо перейти в режим ручное упр. нажать mod а потом помощь и откроется wzw.hlp  с возможностью выполнения команд управления atc. если не появляется содержимое wzw.hlp то возможно что у вас другой код хотя 789 'это стандарт для dmg в этом случае надо смотреть ваш plc раздел у меня пароль прописан в файле wzw_rett.mod
    • Anat2015
      SERVO TURRET AMP ALARM - переводить не пробовали, учитывая, что AMP - это и есть сервопривод? Что тут не ясного, язык не знаком?
    • Viktor2004
      я бы попробовал позиционировать шпиндель сигналом G70.6 Ответный сигнал, шпиндель сориентирован F45.7
    • gudstartup
      Здравствуйте уважаемые участники форума попрошу вас поделится мнениями. Имеется фрезерный шпиндель с позиционным кодером (зубчатое колесо и считывающая головка). Ошибку 9047 выдает после того отрабатывает M19 c последующим включением оборотов Sxxx M3 причем обороты могут быть любыми от 100-макс. Если задавать обороты без предварительной ориентации то 9047 не возникает и шпиндель нормально вращается на любой скорости при этом обороты не гуляют точность поддержания +-1 об\мин. Кабель заменен заменить сам датчик нет возможности. Мой вопрос в следующем почему шпиндель после M19 и включении управления скоростью Sxxx M3 остается в режиме позиционирования а не сразу переходит врежим управления скоростью и даже явная отмена ориентации кодом M20 ничего не меняет ведь режим позиционного управления должен быть отменен или он остается и отменяется не сразу после подачи команды M3 и кода скорости? Станок достаточно старый 2009 года плату управления шпинделем меняли на соседний ничего не изменилось. Это может быть логика PMC или скорее всего это датчик?   PMC-SB.001
    • Killerchik
      А мы-то думали, что пропорциональный гидравлический.....
    • Grig75
×
×
  • Создать...