Simatic: Pointer и Any- какая разница?

Поділитися
Вставка
  • Опубліковано 8 лют 2024
  • Наш Telegram канал: t.me/SlavaSlavinASU
    Многие программисты Simatic употребляют выражение "указатель" к типу данных ANY. А тем временем, между ANY и POINTER лежит почти пропасть) Попробуем разобраться что к чему, и что опять не так с этими указателями.
    #pointer #any #simatic
    По просьбам зрителей - карта МИР 2202 2013 9829 3288 Вячеслав Викторович С.Целевое назначение - развитие канала (оборудование для съёмки, м.б. какие то мини стенды и т.п.
    Все плейлисты: / @slavaslavin1
    Станьте спонсором канала, и вы получите доступ к эксклюзивным бонусам. Подробнее:
    / @slavaslavin1
  • Наука та технологія

КОМЕНТАРІ • 17

  • @mi4ell
    @mi4ell 5 місяців тому

    Вячеслав, спасибо за ролик, он как нельзя вовремя)

  • @SERVICE_KARELIA
    @SERVICE_KARELIA 3 місяці тому

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

    • @SlavaSlavin1
      @SlavaSlavin1  3 місяці тому

      Любая работа с массивов, это почти всегда цикл. То есть SCL. На канале есть видео про массивы

  • @user-sf5om2mv2f
    @user-sf5om2mv2f 5 місяців тому

    Спасибо за видео… вот я не помню - возможно ли на SC в. Var_input задавать pointer или нет… надо пробовать

  • @carljonson555
    @carljonson555 5 місяців тому

    Вячеслав рад приветствовать🤝, вы решили продолжать снимать новые видео на канале? В каком то видео говорили что в завязке с тематикой АСУТП)

    • @SlavaSlavin1
      @SlavaSlavin1  5 місяців тому

      Здравствуйте. Я не говорил, что в завязке) Говорил, что род деятельности поменялся, и видео будут выходить реже. вроде не обманул))

  • @diy-remont
    @diy-remont 5 місяців тому

    Спасибо, что потратили на меня время.
    Этот способ, который вы показали, не приводит к изменениям. сейчас семь раз из OB1 вызываются FCшки, в которых содержатся вызовы X_PUT/GET с прописанными на входах VAR_ADDR и RD/SD P#DBx.DBXy.z BYTE n.
    Теперь же это будет FB(FC) с X_PUT/GET c переменной #TBlock:Any, но опять с жесткими ссылками в блоке BLKMOV выше, то есть опять надо создавать семь разных FB. Или я не догоняю?

    • @SlavaSlavin1
      @SlavaSlavin1  5 місяців тому +1

      На вход подайте столько Any и др переменных, сколько нужно. Ну и да, будет вызов семи FB или 7 x-put/get в одном FB, а Вы как хотели? Может есть такой put/get, который навроде IBLKMOV - работает с Pointer, я не знаю. На изначальный запрос как мог ответил

    • @diy-remont
      @diy-remont 5 місяців тому

      @@SlavaSlavin1 __На изначальный запрос как мог ответил__ Да, конечно, еще раз огромное спасибо, наверное, лучше переформулировать вопрос.

    • @diy-remont
      @diy-remont 5 місяців тому

      @@SlavaSlavin1 Я, в принципе, нарыл на сайте сименса кое-какую инфу, но как ею здесь поделиться? все ссылки зарубятся... если коротко, то из INPUT в ТЕМP секцию ANY передается через AR. То есть, если в секции input test:ANY, а в секции temp test2:ANY, то
      L P##test
      LAR1
      // копирование содержимого test - 10 байт в test2
      L W[AR1,P#0.0]
      T LW 0
      L W[AR1,P#2.0]
      T LW 2
      L W[AR1,P#4.0]
      T LW 4
      L D[AR1,P#6.0]
      T LD 6
      CALL "X_PUT"
      VAR_ADDR := #test2
      ...

  • @SERVICE_KARELIA
    @SERVICE_KARELIA 3 місяці тому

    Нужен тактовый генератор для счётчиков, которые должны работать синхронно от одного генератора. Как это можно сделать?

    • @SlavaSlavin1
      @SlavaSlavin1  3 місяці тому

      В настройках самого ПЛК, железа, можно указать какой байт из области М будет являться тактовым генератором с фиксироваными частотами (8 штук, по количеству бит)

    • @SERVICE_KARELIA
      @SERVICE_KARELIA 3 місяці тому

      @@SlavaSlavin1 это я знаю. Tia portal предупреждает о том, что генератор и программа будут работать не синхронно. Может быть нужно использовать циклический OB для счёта импульсов?
      Мне нужно по событиям определять количество посчитаных импульсов, сравнивать значения на разных счётчиках и мн.др.

    • @SlavaSlavin1
      @SlavaSlavin1  3 місяці тому

      @@SERVICE_KARELIA что значит синхронно? Можно и в циклических ОВ запускать код.

  • @user-wi5qq2ij3c
    @user-wi5qq2ij3c 5 місяців тому

    Здравствуйте, Слава. Пожалуйста, помогите мне. Взгляните на мою программу и, если возможно, снимите видео с моими ошибками. Это может быть полезно начинающим программистам в будущем. В этой программе я получаю значения массы с весового терминала под названием "Масса К", используя протокол UDP. Я хочу добиться такой же функциональности, используя TCP/IP, но мне не хватает необходимых знаний. Кроме того, у меня возникла проблема, из-за которой мой ПЛК S7-1200 выпадает из сети и перестает отвечать на запросы через определенный промежуток времени (это может быть час или полчаса). Он становится недоступным, и я теряю с ним связь. ПЛК полностью работоспособен, и на нем установлена прошивка версии 2.2.0, плк 1211С, пробовал тоже самое на 1212С, тоже виснет через случайный промежуток времени. И ещё пишу полученное значение в блок данных на s7-300, через opc kepserverex6, но задержка 30 секунд. хотя опрос и запись в настройках 50мс. хз что делать... если найдётся время сделайте разбор и пните в нужную сторону )))
    drive.google.com/file/d/1DdQCwIV9mtPJLz1E-SpaCtV4JUvUcUFm/view?usp=sharing

    • @SlavaSlavin1
      @SlavaSlavin1  5 місяців тому

      Здравствуйте, не уверен, что чем то смогу помочь. Тут нужно конкретно, по месту разбираться. На конкретно собранной схеме. С вашим ОРС я не работал, чего ему для счастья не хватает могу только фантазировать. Но как нибудь найду время, открою Ваш проект и постараюсь проникнуться)

    • @user-wi5qq2ij3c
      @user-wi5qq2ij3c 5 місяців тому +1

      @@SlavaSlavin1 ну если будет время и желание, если нет то нет )