Siemens STL 01 - Задача на собеседовании

Поделиться
HTML-код
  • Опубликовано: 15 ноя 2024

Комментарии • 24

  • @seoonlyRU
    @seoonlyRU 2 года назад +1

    спасибо за живой пример! лайк с ходу от легендарного вебмастера СЕООНЛИ

    • @ClickClackLogic
      @ClickClackLogic  2 года назад

      Не знаю кто он, но спасибо! Мы старались.

  • @АртемНеволин-ф1з
    @АртемНеволин-ф1з 2 года назад +2

    Спасибо, за Ваш труд! Отличное видео. Много полезного узнал. Если это возможно, то сделайте ещё видео с реальными примерами, где используются "сдвиги" , а также косвенная адресация на STL и SCL.
    Заранее, спасибо!

    • @ClickClackLogic
      @ClickClackLogic  2 года назад

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

  • @АлексейБороздин-ю1м
    @АлексейБороздин-ю1м 7 месяцев назад +2

    А если мы посмотрим в кросреференс на используемые таймер Т1 там будет показан как используемый? Как потом инженеру в большой программе понять какие таймер используются, а какие нет? Просмотреть всю программу и увидеть место где на вход функции подается номер таймер. А если он не заметит то он просто использует таймер два раза. К чему это приведет? на стимуляторе конечно ничего не случиться, а с реальным оборудованием ...

    • @ClickClackLogic
      @ClickClackLogic  7 месяцев назад +1

      Добрый день. Мне приходилось обслуживать десятки немецких станков различного назначения где весь код написан через указатели и косвенную адресацию. Были даже программы, где перекрестные ссылки показывали, что в программе вызывается только OB1, а все остально друг с другом не связано 🤷🏻‍♂️. Иногда к такому коду шла документация с перечислением занятых ресурсов плк. Но чаще всего, если я что-то и писал дополнительно, то как правило либо уже досконально знал, какие ресурсы свободны, либо использовал программные аналоги таймеров и счетчиков. А пример этот в том, что такой подход встречается сплошь и рядом в различный станках. Правильно это ли нет… наверное скорее нет, чем да. Но имеем, что имеем…

    • @АлексейБороздин-ю1м
      @АлексейБороздин-ю1м 7 месяцев назад +1

      @@ClickClackLogic Да согласен, что так пишут. Делается это для того, чтобы максимально завязать покупателя на производителя. Но говорить о том как делать правильно с мыслью о том, что этот код в дальнейшем будет инструментом диагностики оборудования. Такие компании как Jacobs или General Motors разрешают в требованиях к оборудованию писать код на только на lad. Все остальные языки запрещены. Так как когда это модернизация то время затраченное на нее обычно не на что не влияет. Точнее все время на заводах влияет на деньги но в случае модернизации это недополученная прибыль, а в случае ремонта это огромные потери денег просто потому, что поиск занимает больше времени чем мог бы занимать при правленом написании кода. Учите писать правильный код это действительно улучшит положение на заводах, тогда не придется людям разбираться в "помойках".

    • @ClickClackLogic
      @ClickClackLogic  7 месяцев назад +1

      Есть другая сторона медали. Я работал на предприятии, где на замену и ПНР нового станка в поточной линии дают 1.5-2 недели максимум. Так вот, в качестве поставщика станков всегда выбирали KHS или KRONES, так как эти фирмы сейчас производят модульные станки. Такой станок монтируется в течении 1 недели, потом представители производителя заливают в него свою типовую программу (вся на косвенной и по сути универсальная под все комплектации), и производят конфигурирование через HMI, согласно приобретенной конфигурации, без программирования и уже на следующий или даже в этот же день можно запускать продукцию и производить корректировку рецептов.
      Конечно покупатель вправе выбирать поставщиков и даже вправе предъявлять свои требования, но вот такой «модульный» принцип конфигурирования имеет свои преимущества… ведь позже можно просто докупить еще какой то модуль, установить его самостоятельно, а производитель просто по удаленке активирует его, изменив конфигурацию.
      И если производство уже «подсело» на подобный способ модернизации, то никто как правило уже не спрашивает у инженеров эксплуатации будет ли ему удобно возиться в подобной «лапше»…
      И как правило проблемы на заводах были именно потому, что люди впринципе не понимали, что возможно писать подобный код и всегда надеялись на перекресные ссылки. Из-за этого потом, как вы правильно заметили, возникали коллизии и остановки линий.
      Код в видео лишь показывает, что такая возможность есть, а пользоваться ей или нет пусть решает каждый сам.

  • @АртурСагеев
    @АртурСагеев Год назад +2

    Можете, пожалуйста разобрать на канале использование языка SCL и LAD? Именно эти два языка составляют костяк в написании кода

    • @ClickClackLogic
      @ClickClackLogic  11 месяцев назад

      Добрый день. Я подумаю. Нужно придумать хороший пример для этого.

    • @АртурСагеев
      @АртурСагеев 10 месяцев назад

      @@ClickClackLogic у меня на совбесе в начале лета была задача сделать программу по схеме

  • @fara0n333
    @fara0n333 Месяц назад

    S5Time))) Ви що в древній вік живете)))) Акамулятори це треш повний :D

    • @ClickClackLogic
      @ClickClackLogic  Месяц назад

      Собственно чему вы удивляетесь?! На чем немцы новейшие станки нам в 2022-2024 году поставляют, то и обслуживаем. Зато код очень быстро работает и места мало занимает. 🤷🏻‍♂️ Такие фирмы как Krones, KHS свой код на STL даже в 1500е перетащили. Им видимо так удобнее.

  • @electroengener9348
    @electroengener9348 24 дня назад

    Объясните для чего нужен вообще этот сдвиг,что он даёт

    • @ClickClackLogic
      @ClickClackLogic  22 дня назад

      В данном случае это просто решение абстрактной задачи самым изуверским способом, чтобы просто продемонстрировать возможности STL :)
      А по факту подобными сдвигами иногда создают стеки (виртуальный конвейер) для отслеживания состояния продукции в станках, где вся работа завязана на такты и нет возможности контролировать наличие продукта датчиками. Ставится один датчик на входе, который по такту машины фиксирует наличие продукта в бит 0 и далее этот бит двигается каждый такт в лево. На остальных участках, где требуется выполнить манипуляции с продуктом его наличие проверяется по наличию 1 в том или ином бите. Надеюсь получилось объяснить.

    • @electroengener9348
      @electroengener9348 22 дня назад +1

      @@ClickClackLogic ну про случай в примере я так и понял)))).
      Про пример с станками наверное надо самому попробовать посдвигать,т .к ни разу сам не пользовался этими сдвигами и нету представления как они точно работают.
      Возможно тогда картинка сложится более четко

    • @ClickClackLogic
      @ClickClackLogic  22 дня назад

      Я подобные «виртуальные конвейеры» на блоках розлива, термоупаковочных машинах и машинах для выдува ПЭТ бутылок впервые встретил.

  • @ВячеславА-д8х
    @ВячеславА-д8х 2 года назад

    Здравствуйте. Объясните пожалуйста, про добавленный таймер Т1 в FC1 не понял как именно мы его настроили?

    • @ClickClackLogic
      @ClickClackLogic  2 года назад

      Добрый день. Перед вызовом команды "SD T1" мы загружаем в память контроллера время "L S5T#1S". Команда запуска таймера при запуске использует содержимое аккумулятора 1 в качестве уставки времени. Таким образом таймер T1 запускается с параметром в 1 секунду.

    • @ВячеславА-д8х
      @ВячеславА-д8х 2 года назад

      @@ClickClackLogic спасибо

  • @carljonson555
    @carljonson555 Год назад

    Почему у вас на видео, на слайде младший байт аккумулятора это байт 0 а не 1?

    • @ClickClackLogic
      @ClickClackLogic  Год назад +1

      Добрый день.
      ACCU1 устроен следующим образом:
      ACCU1-H-H ACCU1-H-L ACCU1-L-H ACCU1-L-L
      Поэтому когда мы говорим о расположении информации в аккумуляторе, то мы оперируем этой структурой.
      При выполнении команды
      L MB10 - Содержимое MB10 попадет в ACCU1-L-L
      При выполнении команды
      L MW10 - Данные распределяться так, MB10 в ACCU1-L-H, а MB11 в ACCU1-L-L
      www.siemens-pro.ru/docs/simatic/s7-300/STEP7.V53_STL_r.pdf
      Стр. 128

  • @carljonson555
    @carljonson555 Год назад

    И опять же на 15.12 выговорите про младший байт аккумулятора а в комментариях возле строки кода пишите старший байт.

    • @ClickClackLogic
      @ClickClackLogic  Год назад

      Мы действительно сохраняем младший байт аккумулятора, в котором содержится старший байт загруженного в него слова.