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

Sdílet
Vložit
  • čas přidán 5. 02. 2022
  • Сегодня мы начнем решать задачу с собеседования. Писать программу будем в TIA Portal.
    Это первая часть. В этом видео я напишу программу двух основных блоков программы.
    Наша группа ВК: clickclacklogic

Komentáře • 18

  • @user-hx5il7xj3t
    @user-hx5il7xj3t Před 2 lety +2

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

    • @ClickClackLogic
      @ClickClackLogic  Před 2 lety

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

  • @seoonlyRU
    @seoonlyRU Před 2 lety +1

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

    • @ClickClackLogic
      @ClickClackLogic  Před 2 lety

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

  • @user-wg6xg8tu4b
    @user-wg6xg8tu4b Před 2 měsíci +1

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

    • @ClickClackLogic
      @ClickClackLogic  Před 2 měsíci +1

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

    • @user-wg6xg8tu4b
      @user-wg6xg8tu4b Před 2 měsíci +1

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

    • @ClickClackLogic
      @ClickClackLogic  Před 2 měsíci +1

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

  • @user-dy9we9rj8y
    @user-dy9we9rj8y Před 8 měsíci +1

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

    • @ClickClackLogic
      @ClickClackLogic  Před 6 měsíci

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

    • @user-dy9we9rj8y
      @user-dy9we9rj8y Před 5 měsíci

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

  • @user-ru7xk5oq4z
    @user-ru7xk5oq4z Před 2 lety

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

    • @ClickClackLogic
      @ClickClackLogic  Před 2 lety

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

    • @user-ru7xk5oq4z
      @user-ru7xk5oq4z Před 2 lety

      @@ClickClackLogic спасибо

  • @carljonson555
    @carljonson555 Před rokem

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

    • @ClickClackLogic
      @ClickClackLogic  Před rokem +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 Před rokem

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

    • @ClickClackLogic
      @ClickClackLogic  Před rokem

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