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

Переменные блока 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 пользователей

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




×
×
  • Создать...