PDA

Просмотр полной версии : Сетевые переменные между CoDeSys v2 и v3



Солнечный заяц
30.05.2011, 10:44
Планируется создание проекта состоящего из 3-х контроллеров ПЛК110 (CoDeSys v2), одного СПК207 (CoDeSys v3) и одного ПК (CoDeSys HMI).
Каждый ПЛК110 управляет своими технологическими процессами, записывает параметры в сетевые переменные и читает из сетевых переменных управляющие сигналы.
СПК207 и ПК по сути дублируют друг-друга: читают сетевые переменные из всех ПЛК110 и записывают управляющие сетевые переменные.
Хотелось бы спросить следующие:
1. Возможет ли обмен сетевыми переменными между контроллерами использующими CoDeSys v2 и CoDeSys v3?
2. Нет ли особых требований к хабам? Какого производителя Вы бы рекомендовали?
3. Какой HMI на ПК предпочтительнее: v2 или v3?

Спасибо.

Александр Приходько
30.05.2011, 10:52
Здравствуйте.
1) Возможен на базе Modbus TCP
2) Порекомендовали бы ОВЕН, очень интересно что за задачи вы пытаетесь решать на базе ПЛК.
3) Вопрос не ясен. HMI - это человеко машинный интерфейс(по сути средство отображения и ввода информации). Обычно под этим термином имеют ввиду панель оператора. Codesys - это среда программирования. В зависимости от выбранного контролера она может быть версии 2 или 3, тут нет вопроса что предпочтительнее.

Евгений Сергеевич
30.05.2011, 12:55
В принципе вы можете использовать веб визуализацию с СПК на компьютере: не придется заново ничего рисовать и не будет привязки к конкретному ПК

Солнечный заяц
30.05.2011, 13:26
2 Александр Приходько
1. В теме "Примеры и полезности" есть инструкция по настройке сетевых переменных по UDP протоколу, которая (настройка) производится в папке глобальных переменных. Что потребуется изменить в настройках списка сетевых переменных, чтобы передача производилась по протоколу Modbus TCP? Записать вместо UDP Modbus TCP, или придется описывать сетевые переменные в конфигурации ПЛК?
2. Решаются задачи автоматизации "обвязки" водогрейных котлов (управление группами насосов, контроль уровней) со сложными алгоритмами действий в аварийных ситуациях.
ОВЕН разве занимается поставками сетевого оборудования? Ни концентраторов, ни коммутаторов найти в Вашем каталоге мне не удалось.
3. В CoDeSys ведь есть возможность создания визуализации, которую возможно использовать например при отладке программы ПЛК. Разве я не могу установить на ПК, например CoDeSys v3, создать необходимые сетевые переменные в проекте, купить лицензию на CoDeSys HMI, и управлять технологическим процессом? Или я что-то не так понимаю?

Солнечный заяц
30.05.2011, 13:36
2 Евгений Сергеевич
Все таки хотелось бы сделать отдельную визуализацию на ПК.
Во-первых, мы чуть-чуть выигрываем в надежности.
Во-вторых, на мониторе ПК совсем другое разрешение, и визуализация соответственно должна быть более детальна и сложна...

Евгений Сергеевич
30.05.2011, 15:10
вы можете сделать так как говорили (при помощи CoDeSys), но так как данные вы будете получать с ПЛК110 то и HMI на ПК должно быть v2. или же с помощью их ОРС -сервера завести данные на любую удобную вам СКАДА систему

тестирования на совметимость сетевых переменных из второй версии с третьей не проводились, по отдельности они работают.

нет мы не производим сетевое оборудование.

Александр Приходько
31.05.2011, 11:20
Здравствуйте. Да, немного недопонял вопрос. Ситуация следующая:
В визуализацию Codesys 3 вы не сможете на данный момент добавить ПЛК110, т.к. они работают в Codesys 2 и GateWay у них различен.

1) Можно дождаться выхода ПЛК110 с Codesys 3, но это не скоро.
2) Можно немного отойти от начального плана, собрать все данный на один плк, например ПЛК110 и вывести в визуализацию Codesys 2. Но тут тоже нужно учесть, что СПК в свободной продаже нет(но его можно взять на тестирование). Обмен можно организовать на Modbus TCP (Ethernet) или Modbus RTU (RS485).
3) Можно использовать скаду, по разным OPC собирать данные в скаду. Если нужен обмен между ПЛК, то можно его сделать прям из скады, но это не надежно, потому смотрим конец пункта 2.
4) Отказаться от разных платформ. Думаю это самое верное решение. Собрать систему на ПЛК110 с панельками СП270 (локально), а данные выводить на верхний уровень, в скаду или HMI Codesys. Но тут опять же надо понимать, что вторая версия работает одновременно только с 1 !!!! ПЛК. В итоге или скада или сетевой обмен между плк.

Солнечный заяц
31.05.2011, 13:53
Скорее всего попробуем реализовать 2-й вариант: собирать данные со всех ПЛК110 на СПК207 по Modbus TCP и делать визуализацию на CoDeSys HMI v3.
Не нашел информации по Web-визуализации в СПК207. Существует ли возможность разделить визуализацию для пользователя панели и веб-пользователя? Т.е. я получаю простой удаленный доступ к экрану панели, или есть возможность создавать отдельную визуализацию для веба? Если так, то можно сэкономить на CoDeSys HMI.

Евгений Сергеевич
31.05.2011, 17:40
да вы можете разделить их. У вас есть два вида визуализации(с точки зрения где она отображается): целевая и ВЕБ. они могут использовать одни и те же визуализации (с точки зрения созданных экранов). вы можете их разделить, для интернета использовать одни экраны а на самом СПК другие.

Солнечный заяц
01.06.2011, 08:22
Спасибо за Ваши ответы.
Если не забуду - отпишусь о результате попыток создания сетевых переменных, между CoDeSys v2 и CoDeSys v3.

Badrey
01.07.2013, 19:24
Спасибо за Ваши ответы.
Если не забуду - отпишусь о результате попыток создания сетевых переменных, между CoDeSys v2 и CoDeSys v3.

Здравствуйте остро возник вопрос по по данной теме, как сейчас обстоят дела с совместимостью сетевых переменных V2 и V3?
как вы решили проблему?

Солнечный заяц
02.07.2013, 15:23
Сетевые переменные переменные между CDSv2 и CDSv3 в штатной конфигурации не работают (во всяком случае в версии 3.4). Но передавать данные по MB_TCP можено довольно просто. В одном из проектов я связывал СПК207 и 10хПЛК154:
Все нижеописанное относится к CDSv3.4
http://www.owen.ru/forum/attachment.php?attachmentid=9155&d=1372764287
1. Создаете Ethernet соединение (рис.1 п.1)
2. Создаете структуру для записи и для чтения (если никогда не использовали структуры, почитайте о них в справке). Почему именно структуру? А вот почему:
а) Если Вы будете одновременно записывать и читать данные из контроллера, и Вам понадобится добавить еще переменных, то вся таблица связей, в конфигурации слейва, будет очищена. При использовании же структуры, вы просто добавляете эти переменные в структуру, меняете количество принимаемых слов данных и корректируете адрес структуды (если у вас больше одного слейва).
б) При использовании переменных типа Real вам не придется их преобразовывать из 2хWord.
http://www.owen.ru/forum/attachment.php?attachmentid=9156&d=1372764299
3. Объявляете структуры приема и передачи данных в глобальных переменных (рис.2 п.3),
4. Присваивая им (структурам) адреса первого слова данных передаваемого (принимаемого) на (от) устройство(а) (обратите внимание, что принимаемые и передаваемые адреса имеют разную кодировку (%QW и %IW) и оба начинаются с нуля). Соответственно, если у Вас одно слейв устройство - присваиваете %QW0 структуре записи и %IW0 структуре чтения.
5. Ах да, еще нужно сделать сдвиг адресов (в моем случае чтения), при конфигурации слейва (рис.2 п.5). Сдвиг равен количеству слов данных, которые Вы принимаете/передаете в первой строке (в моем случае 36=16#24).

Примечания:
a) Желательно давать каждому слейву уникальный Unit-ID (рис.4), т.к. при определенной конфигурации локальной сети, не смотря на уникальный IP каждого устройства, при одинаковом Unit-ID, я иногда получал отсутствие связи.
b) Если вы пользуетесь CDSv3.5, то обязательно включите автопереподключение (рис.5), иначе после сбоя сети вы потеряете связь. В CDSv3.4 нужно городить подпрограмму переподключения.
c) В CDSv2 просто создаете MB_TCP слейв и прописываете подряд все переменные, что будут оттуда/туда читаться/писаться, в том же порядке, что и в CDSv3. Не забудьте указать в поле адреса Unit-ID (рис.3)
d) Передавать можно только типы данных из 2-х и 4-х байт, соответственно, если вы передаете переменную Real(Float), то при конфигурации в CDSv3 считайте ее как 2 слова данных.

Badrey
12.07.2013, 16:14
Спасибо за такой подробный ответ! Это мне очень помогло.

MasterDarius
08.06.2016, 17:28
Добрый день.
Как мне записать регистр (25, вроде) следующий за всеми, которые в таблице. Не могу нащупать ни сдвиг ни запись. Либо не записывается, либо шина падает.
24845
Спасибо