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

Переменные блока FC (Step7)


Viktor2004

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

Уважаемые коллеги помогите пожалуйста

В функциональном блоке FC используются переменные типа IN OUT IN_OUT STAT

А чему они соответствуют? Как понимать их адреса, например

#IN7 (адрес 10.0)

или

#STAT157 (адрес 86.0)

может они соответствуют каким-то адресам в блоках DB, или адреса ввода-вывода соответствуют как-то входным и выходным адресам?

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


UnPinned posts
6 часов назад, Viktor2004 сказал:

Уважаемые коллеги помогите пожалуйста

В функциональном блоке FC используются переменные типа IN OUT IN_OUT STAT

А чему они соответствуют? Как понимать их адреса, например

#IN7 (адрес 10.0)

или

#STAT157 (адрес 86.0)

может они соответствуют каким-то адресам в блоках DB, или адреса ввода-вывода соответствуют как-то входным и выходным адресам?

Всё-таки STAT используются только в FB блоках и это переменные, которые хранятся в блоке данных, назначенном для данного номера FB (так называемые instance data block). В блоках FC на ряду с In, Out и другими, используются локальные переменные TEMP, которые хранятся в локальном L стеке памяти контролера и действуют только в этом блоке до его закрытия. Значения адреса напротив каждой переменной, означает адрес (смещение) в этом локальном стеке. По этим адресам, если мне не изменяет память, можно обратиться к конкретной переменной при определённых условиях, вроде при косвенной адресации. В других случаях к ним обращаются по заданному имени, например L #TEMP1 или S #TEMP2. А вообще в симатик менеджере отличная встроенная справка, которая раскрывает глаза на многие вопросы прямо не отходя от кассы, как говорится.

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



    Читал. Мало помогла. Вот например:

 

M030: A(    
           AN    DB34.DBX  108.2
            A     DB34.DBX  110.5
            ON    #OUT46

            )

 


    Куда он выдает этот OUT ? И кто и как им может воспользоваться?

 

 

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



    Читал. Мало помогла. Вот например:

 

M030: A(    
           AN    DB34.DBX  108.2
            A     DB34.DBX  110.5
            ON    #OUT46

            )

 


    Куда он выдает этот OUT ? И кто и как им может воспользоваться?

 

 

Сейчас всё поймёте, это достаточно просто

Вот пример вызова блока на языке STL, который используется в вашем примере. Здесь из блока OB1 (основной блок по которому крутится цикл контроллера) вызывается блок FB4 и ему назначается Instant data block DB110, который используется только этим функциональным блоком. CALL FB4, DB110. Обратите внимание на ниже идущие записи IN := и OUT :=. Это и есть ввод и вывод переменных для вашего блока. Т.е. из блока OB1 из которого я вызвал FB4 я передаю ему на обработку через вход IN1 бит из блока данных DB100.DBX340.3, который будет обработан внутри блока FB4 по какому-либо алгоритму, а из блока FB4 назад в блок OB1 из которого он был вызван, возвращается результат действия алгоритма, через выход OUT17, например. И этот результат пишется DB100.DBX340.2. В качестве ввода вывода могут выступать и целые байты, слова и т.д., а не только биты. Это просто как пример.

Call in stl.jpg

Тоже самое и в LAD исполнении. Тут уже вводят в блок и выводят из него двойные слова. Соответственно в самом блоке FC67 для IN и OUT назначаются форматы данных DWORD

Call in lad.jpg

1 час назад, Viktor2004 сказал:



    Читал. Мало помогла. Вот например:

 

M030: A(    
           AN    DB34.DBX  108.2
            A     DB34.DBX  110.5
            ON    #OUT46

            )

 


    Куда он выдает этот OUT ? И кто и как им может воспользоваться?

 

 

Простыми словами выдаёт он этот OUT46 наружу блока FC или FB внутри которого присутствует данная запись. А там снаружи используется тем блоком, из которого данный FC или FB был вызван. Если выдаёт бит, то при вызове указываете в какой бит или маркер этот OUT46 будет записан

Надеюсь не запутал ещё больше:biggrin:. Так то сименс достаточно понятная система

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

возвращается результат действия алгоритма, через выход OUT17, например. И этот результат пишется DB100.DBX340.2.

Спасибо. В данном примере все понятно. Есть конкретные команды присваивания. А если в цепочках просто используются IN OUT но не присваиваются никаким DB, Как с ними быть?

Если не затруднит, посмотрите пожалуйста этот проект https://cloud.mail.ru/public/Rmrv/nGrYXnFhy

Блок FB240 Network 8 Там множество OUT непонятно куда

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

Спасибо. В данном примере все понятно. Есть конкретные команды присваивания. А если в цепочках просто используются IN OUT но не присваиваются никаким DB, Как с ними быть?

Если не затруднит, посмотрите пожалуйста этот проект https://cloud.mail.ru/public/Rmrv/nGrYXnFhy

Блок FB240 Network 8 Там множество OUT непонятно куда

Это просто какой-то стандартный блок производителя и по мере добавления каких-либо функций станка он просто прописывает логику для тех или иных #OUT, а в данный момент он просто их опрашивает по "ИЛИ" на ноль. На примере OUT54, для него в объявлении переменных блока задано начальное значение - Initial value - FALSE, т.е. он всегда 0. Так как в блоке он больше нигде не используется (есть там ещё место, но он там тоже просто опрашивается) и не устанавливается, то условия в данном случае всегда будут выполнены, вне зависимости от состояния сигналов DB42.DBX  108.2 и DB42.DBX  110.5, потому что результат логической операции (RLO), при опросе на 0, переменной которая всегда равна 0, будет всегда 1.

M028: A(    
      AN    DB42.DBX  108.2
      A     DB42.DBX  110.5
      ON    #OUT54
      )     

Т.е. в сименсе можно "опросить" не только состояние входа или метки или бита блока данных, но и состояние выхода. Причём я могу опросить как состояние физического выхода (например A Q8.2), так и локальной переменной OUT, для того, чтобы просто узнать в каком он состоянии.
fb240.jpg

А вот ниже, в ветке 19, производитель уже добавил какую-то функцию и в этом стандартном блоке прописал условия для OUT41

  M045: A     #STAT110
      A     #IN22
      S     #OUT41

Т.е. опросил вход IN22 и установил выход OUT41

 

И для этих входа и выхода, в блоке FC244 Network2 из которого он вызывается, назначил на них биты в блоке данных DB18.DBX70.0 и DB18.DBX70.1

FC244.jpg

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

Блок FB240 Network 8 Там множество OUT непонятно куда

Виктор поинтересуйтесь описанием интерфейсных блоков PLC <-> NCK в Function Manual и SINUMERIK Safety Integrated Function manual для вашей CNC.

image.png

image.png

И чего это вы в логику полезли ?

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

И чего это вы в логику полезли ?

Да потому что как раз эта Safety Integrated Function не проходит.

В начале сообщение DB2.DBX  242.7 о том что необходимо запустить эту Safety Integrated Function

а когда запустил, тогда висит сообщение DB2.DBX  242.4 о том что эта Safety Integrated Function выполняется.

 

Станок SPINNER VC1160 с SINUMERIK 840D

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

Да потому что как раз эта Safety Integrated Function не проходит.

А раньше как, проходило ?

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

А раньше как, проходило ?

Там перестал крутиться шпиндель. Ошибок при этом никаких не выдавал. Приходил специалист с Сименса,  протестировал все приводы, сказал что по Сименсу все исправно, а неисправен станок.  Я сохранил архивы NC и PMC и залил старый архив.  Стало только хуже. Тогда восстановил со снятых мной архивов. После этого станок перестал проходить этот тест безопасности. При нажатии кнопки для запуска теста слышу как срабатывает снятие с тормоза вертикальной оси. Проверил автономно работу тормоза. Подавал 24В ось благополучно освободилась и шпиндель сел на заранее представленную деревянную колоду. Тормоз работает

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

Станок SPINNER VC1160 с SINUMERIK 840D

И что рекомендует производитель станка по поводу  700752  в РЭ?

Например у меня на шпинере если регулятор подачи на пульте оператора выставлен в 0 функция контроля  не отрабатывает пока его не выкрутишь хотябы на 50% для контроля снятия с тормоза ось должна переместится иначе функция контроля безопасности считается невыполненной. Вот картинка какие функции включает в себя SPL.

 

image.png

А может быть вы просто дверь рабочей зоны неправильно закрываете или замок неправильно работает?

 

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

У вас привода Sinamics?

Если да то можете просто выключить функцию acceptence test при помощи Sinamics startdrive полностью или частично.

image.png

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

Тормоз работает

И еще вопрос у вас в станке есть реле безопасности PILZ ?

если да то рекомендую к проверке достаточно глючная штука мы на DMU c ними намучались.

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

Производитель по сообщениям 700752 и 700755 ничего не пишет. А что писать? И так всё ясно. Одно говорит что надо запустить проверку, второе говорит что проверка запущена.  Реле безопасности есть. Оба дают разрешение. Одно реле контроль аварийных кнопок, второе контроль замков. Оба дают разрешение

Сегодня я на другом станке, а там пока тайм-аут взял

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

второе говорит что проверка запущена. 

Я понимаю что она должна закончиться,но не заканчивается.

..............

Если шпиндель не стартовал ,проверяйте импульсы на включение привода и ответ, кажись клемма 663 (если не ошибаюсь.)

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

......А ответ от привода должен быть именно лог 0, что было странно для меня.(вроде так )

23 минуты назад, Viktor2004 сказал:

Производитель по сообщениям 700752 и 700755 ничего не пишет. А что писать?

Вызовите уполномоченный сервис.

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

ызовите уполномоченный сервис.

Наше руководство считает что отсутствие знаний всегда компенсируется частотой повторений.

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

Производитель по сообщениям 700752 и 700755 ничего не пишет

Тогда найдите логику формирования этих сообщений и смотрите PLC онлайн но также не помешает посмотреть какие safety integrated опции у вас включены в приводах.

А то что паузу взяли это правильно как говорится -  утро вечера....

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

 

Тогда найдите логику формирования этих сообщени

Я просто отвечал на Ваш первоначальный вопрос, зачем я полез в PLC. Для того и полез

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

Я просто отвечал на Ваш первоначальный вопрос

У вас не возникает ни одной ошибки NCK или SINAMICS связанных с safety function только не завершается функция проверки PLC?

Если есть еще и ошибки NCK то их можно игнорировать MD10094 $MN_SAFE_ALARM_SUPPRESS_LEVEL

 

О чем написано здесь 

 

image.png

 

image.png

 

 

6 часов назад, Viktor2004 сказал:

Я сохранил архивы NC и PMC и залил старый архив.  Стало только хуже. Тогда восстановил со снятых мной архивов. После этого станок перестал проходить этот тест безопасности.

Особенно интересно то что эта ошибка появились после манипуляции с архивами ...

 

 

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Мрачный
      Верно, по кубу. Значит не на порядок, а раз в 5.   
    • jtok
      Если быть точным, то только в третьей.
    • ДОБРЯК
      Вы две недели писали много букв и слов, что-то доказывали, чтобы в итоге сказать, что всё давно забыли. Мудро...
    • Максим Пядов
      Здравствуйте. Помогите кто чем может. Есть листогиб FINN POWER B 125-3060 с ЧПУ Cybelec dnc 900.  ЧПУ запускается но в нем не прописаны параметры машинный.  Мануалов и инструкций нет. 
    • Мрачный
      2014SP0 Заменил макрос на более свежий, как советовал, все стало как должно быть. Спасибо тебе, мил-человек, сохранил мне чутка нервных клеток!
    • Мрачный
      1. Прочность балки (момент сопротивления) вырастет при утолщении, может и существенно (в швеллере не в 10 раз толщина изменится). Жесткость - обычно несущественно. Момент инерции зависит от высоты в 4ой степени. Увеличили высоту в 2 раза - жесткость выросла в 16 раз (на порядок примерно). 2. Сталь ст3 или 09Г2С - модуль Юнга и там и там одинаковый 2.1*10^11Па примерно. Речь же идет о металлоконструкции, а не о стропилах крыши?  3. Ребро жесткости усиливает локально конструкцию. Общая жесткость от них не увеличится почти. Ну налепишь этих ребер и что? Раму после приварки ребер в бараний рог скрутит, да еще наплодишь кучу концентраторов для трещин. Швеллер заменить на трубу - я про это выше писал.   Для м/к машиностроительной прогиб должен быть не больше 1/400-1/600 пролета, очень грубое соотношение. На 6 метрах 1-2 см это норма, не 10 см, это уже падение.
    • Snake 60
      Как вариант усилить ребрами жесткости, где это возможно , не попадая на отверстия. или использовать трубу вместо швеллера. А вообще по уму считать надо, статический расчет в том же симулейшене, если мы говорим про SW. Если нет необратимых (пластических деформаций) и допускаются получаемые перемещения, то и пусть себе прогибается.
    • luffyfuffy
      Друзья, Вновь подниму данный вопрос. Если с инструкцией по прошивке и замой прошивкой в виде бинарника или HEX всё понятно, как сказал ранее @Niki85:   Но возникает вопрос, как добавляется в КД (и добавляется ли вообще?), исходный код на прошивку? В прекрасном РД 107.2.1002 есть документ с кодом Д40, с отсылкой к загадочному понятию «конструкторская документация программного обеспечения», которое помимо РД 107.2.1002 встречается только в достаточно свежем ГОСТ Р 58711-2019 по авиационной технике: При этом возникает противоречие КД на ПО составные части которого «необходимые и достаточные для загрузки программного обеспечения в память изделия», т.е. фактически идёт речь именно про прошивку)   Понимаю, что можно махнуть на всё и добавить свой собственный код для документа ДХХХ, но хотелось бы оставаться хоть в каком-то регламентированном поле. Или для исходного кода всё же создаётся вообще отдельная программная документация в соответствии с ЕСПД, которая в КД на изделие с микросхемой и прошивкой не попадает?
    • maxx2000
      @Nick_ULN я полагаю речь идёт об анализе движения и построении траектории движения какой-то точки (датчика).Затем можно расставить датчики с требуемым интервалом которые будут отображать величину параметра.  могу дать видео с таким анализом движения в CREO По большому счёту, даже и анализ проводить не надо. Ветерок правильно сказал, сечение вагона это и есть искомая траектория, достаточно создать параметр который измеряет расстояние от датчика до этой кривой с заданным интервалом
    • Ветерок
      Что в вашем понимании "эскиз"? И что в вашем понимании "сечение"? В моём понимании и то, и другое - это линия. Поэтому можете называть её как угодно. (хотя, на самом деле сечение тела - это плоская поверхность, но её граница - это линия). Расставить на линии точки можно с любым шагом.
×
×
  • Создать...