Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 16

Тема: Два ПЛК100

  1. #1

    По умолчанию Два ПЛК100

    Вчера поступили два ПЛК100 впервые с ними сталкиваюсь и до этого не разу не программировал на CODESYS, вот сижу с ними разбираюсь, но что то совсем трудно всё даётся.
    Для начала знакомство с этой программой при создании программы выбираю язык реализации CFC.
    Пробывал писать примитивные программки на один ПЛК получается.
    Но дали задания чтоб один ПЛК был в режиме slave а другой в режиме Master.
    И они через Ethernet передавали сигналы друг другу.
    К примеру чтоб на "ПЛК slave" замкнули контакт а реле сработало на "ПЛК Master"
    Но это не как не получается сделать.
    Настройки IP адреса как я понял необходимо менять в программе во вкладке "ПЛК-Браузер"
    С компьютера пинги проходят значит адреса вроде поменял правильно.
    Вот картинки
    slave.jpg
    мастер.jpg
    А дальше уже идут танцы с бубном связать их не получается вместе
    первая программа slave.pro
    первая программа Master.pro

    Может кто подскажет в каком направлении двигаться.
    Последний раз редактировалось Женя84; 07.03.2015 в 21:03.

  2. #2
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,851

    По умолчанию

    Цитата Сообщение от Женя84 Посмотреть сообщение
    Вчера поступили два ПЛК100 впервые с ними сталкиваюсь и до этого не разу не программировал на CODESYS, вот сижу с ними разбираюсь, но что то совсем трудно всё даётся.
    Для начала знакомство с этой программой при создании программы выбираю язык реализации CFC.
    Пробывал писать примитивные программки на один ПЛК получается.
    Но дали задания чтоб один ПЛК был в режиме slave а другой в режиме Master.
    И они через Ethernet передавали сигналы друг другу.
    К примеру чтоб на "ПЛК slave" замкнули контакт а реле сработало на "ПЛК Master"
    Но это не как не получается сделать.
    Настройки IP адреса как я понял необходимо менять в программе во вкладке "ПЛК-Браузер"
    С компьютера пинги проходят значит адреса вроде поменял правильно.
    Поменял вот картинки
    slave.jpg
    мастер.jpg
    А дальше уже идут танцы с бубном связать их не получается вместе
    первая программа slave.pro
    первая программа Master.pro

    Может кто подскажет в каком направлении двигаться.
    Для начала пример посмотрите http://kipshop.ru/Primeri/Samples_pl...dbus%20TCP.zip он так же есть на диске ПЛК.
    Далее почитайте про конфигурацию ПЛК, а то у Вас все модули UMD имеют один и тот же адрес регистра "0", а должны соответствовать адресам регистров в слейве второго контроллера. Кроме того, IP контроллера, который Slave, 10.162.137.130. Вот этот IP и нужно прописать в настройках UMD в мастере второго контроллера, а у Вас там стоит 10.162.137.131.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  3. #3

    По умолчанию

    Цитата Сообщение от petera Посмотреть сообщение
    Для начала пример посмотрите http://kipshop.ru/Primeri/Samples_pl...dbus%20TCP.zip он так же есть на диске ПЛК.
    Далее почитайте про конфигурацию ПЛК, а то у Вас все модули UMD имеют один и тот же адрес регистра "0", а должны соответствовать адресам регистров в слейве второго контроллера. Кроме того, IP контроллера, который Slave, 10.162.137.130. Вот этот IP и нужно прописать в настройках UMD в мастере второго контроллера, а у Вас там стоит 10.162.137.131.
    Прочитал про конфигурацию ПЛК, выходит во вкладке POU нечего не надо делать. Только необходимо настроить во вкладке Ресурсы в Конфигурации ПЛК ? Чтоб реле передавались от slave к Master ?

  4. #4
    Пользователь Аватар для smk1635
    Регистрация
    06.09.2010
    Адрес
    Брянск
    Сообщений
    1,241

    По умолчанию

    Цитата Сообщение от Женя84 Посмотреть сообщение
    Прочитал про конфигурацию ПЛК, выходит во вкладке POU нечего не надо делать. Только необходимо настроить во вкладке Ресурсы в Конфигурации ПЛК ? Чтоб реле передавались от slave к Master ?
    В принципе, да.
    Скажем так, конфигуратор решает за Вас кучу проблем по организации связи. Но как любой универсальный инструмент он не идеален. Хотя для большинства задач более чем достаточен.
    ИМХО Своим ребятам советую сразу паковать биты в WORD. Modbus изначально заточен для работы с переменными WORD. За одно возможных ошибок в выравнивании регистров избежите.
    Добавьте библиотеку Util и используйте функциональные блоки PACK и UNPACK.
    Теория и практика иногда сталкиваются. Когда это случается, теория проигрывает. Всегда. (Закон Линуса)

  5. #5
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,851

    По умолчанию

    Цитата Сообщение от Женя84 Посмотреть сообщение
    Прочитал про конфигурацию ПЛК, выходит во вкладке POU нечего не надо делать. Только необходимо настроить во вкладке Ресурсы в Конфигурации ПЛК ? Чтоб реле передавались от slave к Master ?
    Правильно, сначала нужно создать конфигурацию в Slave. В зависимости от формата используемых переменных, использовать соответствующие модули 8bits, 2byte, 4byte или Float. Затем определить адреса, руководствоваться нужно картинкой из руководства по конфигурации ПЛК.
    Адреса регистров:

    Предположим, что в Slave такое распределение регистров
    Захват-2.png
    Обратите внимание на разрыв в номерах бит, это следствие "выравнивания" адресов
    Тогда в мастере для чтения этих регистров нужна такая конфигурация
    Захват-4.png
    В параметрах UMD в этом случае нужно выбрать режим Work mode - By poll time.
    Адреса регистров для модулей
    Захват-7_6.png
    Захват-9-8.png
    Захват-12a.png
    Если же нужно записывать в регистры в Slave, то нужно добавить в мастере еще один UMD, для него режим Work mode - By value change. В этом случае вместо модулей input, нужно выбирать модули output, адресация регистров -аналогичная.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  6. #6
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,851

    По умолчанию

    Цитата Сообщение от smk1635 Посмотреть сообщение
    ИМХО Своим ребятам советую сразу паковать биты в WORD. Modbus изначально заточен для работы с переменными WORD. За одно возможных ошибок в выравнивании регистров избежите.
    Добавьте библиотеку Util и используйте функциональные блоки PACK и UNPACK.
    С чего это Modbus изначально заточен для работы с переменными WORD?
    Во первых операции чтения регистров (4х, 3х) и бит (0х, 1х) оперируют байтами, и практически совпадают по структуре.
    Минимальное количество байт в запросе и ответе для 4х, 3х -два байта, а для 0х и 1х -один байт (8 подряд идущих бит упакованы в один байт).
    И при записи 4х используются байты, по два байта на один регистр.
    Тогда уж Modbus изначально заточен для работы с переменными BYTE
    Это только при записи бит 0х на каждый бит расходуется целых два байта.

    Для ПЛК ОВЕН использование всяких PACK и UNPACK для замены в Slave нескольких модулей 8bits на 2byte, 4byte бессмысленно. Потому, что в конфигурации области 0х, 1х и 4х, 3х находятся в общем адресном пространстве физической памяти.
    С точки зрения Мастера, при использовании в UMD Register input(output) module, совершенно не важно, что прописано в конфигурации Slave или два подряд 8bits или один 2byte, результат будет одинаковым -16 бит идущих по порядку, которые будут получены одним запросом. А как интерпретировать содержимое Register input(output) module или как упакованные в один WORD 16 бит или как один регистр WORD уже Ваше дело.
    А вот в ПЛК мастере, при использовании конфигуратора, вполне оправдано замена нескольких,подряд идущих, 8 bit input(output) module на Register input(output) module и даже на 32bit input(output) module. Это нужно для уменьшения трафик по шине Modbus.
    Только вот незадача, PACK и UNPACK работают с BYTE, а нужен WORD или DWORD. Не проще ли обращаться к отдельным битам через точку?
    Если не нравится обезличенное CMD_Panel.11, то
    Объявить в глобальных переменных константы
    Захват-1.png
    И использовать их имена для обращения к отдельным битам регистров
    Захват-2.png
    Захват-3.png
    Последний раз редактировалось petera; 09.03.2015 в 04:59.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  7. #7
    Пользователь Аватар для smk1635
    Регистрация
    06.09.2010
    Адрес
    Брянск
    Сообщений
    1,241

    По умолчанию

    petera вот всё правильно написали, но учитывайте что человек первый раз работает с КДС.
    Сперва по проще, потом сам начнет разбираться. Тем более, видно что документацию читает внимательно.
    Да и судя по выбору языка, человеку удобней работать с ФБ.

    Своих приучаю работать с WORD по двум причинам:
    1. Как Вы правильно заметили, для уменьшения трафика обмена.
    2. Для избежания ошибок с адресацией. Если в Slave все регистры типа Word, то с адресацией в Mastere, как правило у
    новичков проблем не бывает.

    И да, забыл что PACK и UNPACK работают с BYTE. Своими ФБ пользуемся.
    Последний раз редактировалось smk1635; 09.03.2015 в 10:13.
    Теория и практика иногда сталкиваются. Когда это случается, теория проигрывает. Всегда. (Закон Линуса)

  8. #8
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,712

    По умолчанию

    Цитата Сообщение от smk1635 Посмотреть сообщение
    petera вот всё правильно написали, но учитывайте что человек первый раз работает с КДС.
    Сперва по проще, потом сам начнет разбираться. Тем более, видно что документацию читает внимательно.
    Да и судя по выбору языка, человеку удобней работать с ФБ.

    Своих приучаю работать с WORD по двум причинам:
    1. Как Вы правильно заметили, для уменьшения трафика обмена.
    2. Для избежания ошибок с адресацией. Если в Slave все регистры типа Word, то с адресацией в Mastere, как правило у
    новичков проблем не бывает.

    И да, забыл что PACK и UNPACK работают с BYTE. Своими ФБ пользуемся.
    Каждый блочек-место на холсте , нафиг оно надо распаковывать-запаковывать , если в синтаксисе предусмотрено
    Ну почему не сделать хоть так:
    1. Экшн на St
    2 Any_swith:=In_word_mv110.0;(*In_word_mv110.0 - маска входов МВшки , ну или ПЛКшк, да хоть чего*)

  9. #9
    Пользователь Аватар для smk1635
    Регистрация
    06.09.2010
    Адрес
    Брянск
    Сообщений
    1,241

    По умолчанию

    Цитата Сообщение от Sergey666 Посмотреть сообщение
    Каждый блочек-место на холсте , нафиг оно надо распаковывать-запаковывать , если в синтаксисе предусмотрено
    Ну почему не сделать хоть так:
    1. Экшн на St
    2 Any_swith:=In_word_mv110.0;(*In_word_mv110.0 - маска входов МВшки , ну или ПЛКшк, да хоть чего*)
    Да можно, конечно же можно.
    Только прога у человека на СFC, а не на ST. И человек первый раз работает с КДС.
    И самая первая, основная ошибка у новичков (по моему опыту), это выравнивание регистров и их адресация.
    Вторая - это гонять по сети кучу битов.
    С блоками нагляднее и биты не гоняют.
    Ну если Женя84 знаком с языком ST, знает как работает конфигуратор, изучил дополнительные библиотеки, то может и по проще сделать, как советуют.
    А то и вовсе на прямую с портами работать, без конфигуратора.

    Я то давал совет из расчета что человек только начинает изучение КДС.
    Последний раз редактировалось smk1635; 09.03.2015 в 11:23.
    Теория и практика иногда сталкиваются. Когда это случается, теория проигрывает. Всегда. (Закон Линуса)

  10. #10
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,712

    По умолчанию

    Цитата Сообщение от smk1635 Посмотреть сообщение
    Да можно, конечно же можно.
    Только прога у человека на СFC, а не на ST. И человек первый раз работает с КДС.
    И самая первая, основная ошибка у новичков (по моему опыту), это выравнивание регистров и их адресация.
    Вторая - это гонять по сети кучу битов.
    С блоками нагляднее и биты не гоняют.
    Ну если Женя84 знаком с языком ST, знает как работает конфигуратор, изучил дополнительные библиотеки, то может и по проще сделать, как советуют.
    А то и вовсе на прямую с портами работать, без конфигуратора.

    Я то давал совет из расчета что человек только начинает изучение КДС.
    Акшн присобачивается к Любой программе на Любом языке , надо только правым кнопарем ткнуть.
    Ну и потренироваться канэээчно , а куды без ентого.

    Акциями не заслуженно пренебрегают , а зря , очень удобно структурировать значение переменных в программе и ветвление алгоритма.
    Последний раз редактировалось Sergey666; 09.03.2015 в 12:27.

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Продам два ПЛК100-К-М, за умерянную цену. (Украина)
    от Edik_Ponomarenko в разделе Трёп (Курилка)
    Ответов: 0
    Последнее сообщение: 22.12.2013, 03:52
  2. Межинверторный обмен. Два ПЧ + два насоса.
    от Shayker в разделе Трёп (Курилка)
    Ответов: 29
    Последнее сообщение: 21.07.2013, 10:52
  3. ПК + ПЛК100 + МУ110 + два ТРМ138
    от 10_000 в разделе ПЛК1хх
    Ответов: 16
    Последнее сообщение: 02.07.2013, 11:29
  4. два монитора
    от kao в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 28.06.2012, 18:26
  5. связать два контроллера
    от незарегистрированный в разделе Сетевые технологии
    Ответов: 1
    Последнее сообщение: 15.01.2008, 15:38

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •