S7-1200 & Modbus TCP. Server & Client

Поділитися
Вставка
  • Опубліковано 30 лип 2022
  • Наш Telegram канал: t.me/SlavaSlavinASU
    Рассмотрим методику формирования опроса по протоколу Modbus TCP в ПЛК S7-1200 Simatic. Поговорим как о создании серверной части, когда ПЛК является источником данных для сторонних устройств, так и клиентской, когда ПЛК сам опрашивает какие то устройства (ПЧ, например).
    #s71200modbus #simaticmodbustcp
    По просьбам зрителей - карта МИР 2202 2013 9829 3288 Вячеслав Викторович С.Целевое назначение - развитие канала (оборудование для съёмки, м.б. какие то мини стенды и т.п.
    Все плейлисты: / @slavaslavin1
    Станьте спонсором канала, и вы получите доступ к эксклюзивным бонусам. Подробнее:
    / @slavaslavin1
  • Наука та технологія

КОМЕНТАРІ • 17

  • @under-Psyterror
    @under-Psyterror 8 місяців тому +1

    Спасибо товарищъ

  • @asutp2089
    @asutp2089 Рік тому +2

    Laik and coment

  • @Hip67channel
    @Hip67channel Рік тому

    У вас реквест для клиента происходит каждый скан? У меня в таком случае функция ругалась, что невозможно выполнить 2 запроса одновременно. Для этого я перед реквестом ставил условие NOT BUSY. Кстати, снимать оптимизацию с блока с данными не обязательно. У меня отлично работает и так.

    • @SlavaSlavin1
      @SlavaSlavin1  Рік тому

      Запрос хотя бы раз, но выполнился бы. Не стал перегружать видео информацией о синхронизации запросов.
      Не будет работать P# поинтер при оптимизированном доступе. По кр мере в таком виде как я показал. Это указатель на адрес.

    • @PersonalNIK
      @PersonalNIK Рік тому

      @@SlavaSlavin1 В новых сериях ПЛК (1200\1500) 4 вида указателей (Pointer, ANY, REF и Variant) Последние 2 работают только с оптимизированными блоками. Есть операции разименования (перед := нужно поставить ^). Я пока не понимаю зачем это нужно применять, но например универсальные блоки с автоматическим определением типа данных в коде стало значительно удобным. Прада большинство фишек работает только на 1500. Там например есть новые типы данных, тот же 64 битный word.

    • @SlavaSlavin1
      @SlavaSlavin1  Рік тому

      @@PersonalNIK Спасибо, что то проясняется в голове) Разименование - это стандартная процедура в традиционном программировании. Передача переменной по ссылке, означает что Вы передаёте только её адрес в памяти. А при разименовании, Вы получаете само значение. И ещё момент. В классике, ANY - это тип переменной, а Pointer, это метод обращения к такому типу. Тот самый указатель. Думаю, что тут также))

    • @PersonalNIK
      @PersonalNIK Рік тому

      @@SlavaSlavin1 any от pointer отличается только тем, что в первом случаи известна длина соответственно размер переменной этого типа имеет большей размер, как тип данных, можно было оба использовать. Хотя я могу уже что-то и позабыть. Ну и по разименования, я понимаю что это, но не понимаю применение в контексте программирования плк. Но адреса видеть прикольно) В общем Siemens в портале добавили очень много фишек, которых не было в классике, что-то прям совсем поменяли, мне понравилось неплохая фишка по тестирование блоком и возможность писать типа гайда, при компиляции если Вы ему не следуете будет предупреждения слать в лог. Ну и я если честно не помню, было это раньше, но на свои блоки прям в проект можно добавить pdf-ку с докой, которая будет доступна по ctr+f1

    • @Hip67channel
      @Hip67channel Рік тому

      @@PersonalNIK для тиа и 1000 серии есть интересный гайдлайн по программированию. там очень много полезного вычитал. кстати там рекомендуют забыть про прямые адреса и переходить только к именованным переменным

  • @PersonalNIK
    @PersonalNIK Рік тому +1

    Обычный plc sim не поддерживает ethernet соединения. Если хотите потестить работу с ethernet портом, необходимо использовать plc sim advance. Но он не поддерживает работу с 1200, там возможно использовать только 1500 и et200cpu. Но в случаи с modbus разницы в программирование 1500 и 1200 нет. В случаи с connect, у неё есть графический интерфейс) FB с одноимённым названием

    • @PersonalNIK
      @PersonalNIK Рік тому

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

    • @SlavaSlavin1
      @SlavaSlavin1  Рік тому

      Понятно, спасибо. Да, разницы в этой теме между 1200-1500 мало, кроме того, что на 1500 можно использовать сконфигурированные соединения. Как я понял - только на 1500

    • @SlavaSlavin1
      @SlavaSlavin1  Рік тому

      Сказал )

    • @PersonalNIK
      @PersonalNIK Рік тому

      @@SlavaSlavin1 это и на 1200 можно, есть отличия в блоках, которые я не помню)

    • @SlavaSlavin1
      @SlavaSlavin1  Рік тому

      @@PersonalNIK Понял, отличие как минимум в этой структуре, которая на CONNECT подаётся