Сообщение от Роман1210
Посмотреть сообщение
Объявление
Свернуть
Пока нет объявлений.
Примеры программирования
Свернуть
Это закреплённая тема.
X
X
-
Последний раз редактировалось Пушкарев Андрей; 30-01-2023, 08:50 AM.
-
Мне неободимо понять Modbus Master TCP\RTU от 3S и опрос с помощью ФБ Агавы полностью идентичны по своему результату?
Верно ли понимаю чтобы опросить Slave устройство мне нужно добавить экземляр ФБ ModbusRTUMaster (и задать все параметры).
Потом открыть соединение ModbusRTUMaster.Open(). Затем с помощью экземляра TTag (например tag1) указать с какого устройства, какой регистр, кикие данные и какой функцией считать?
После этого могу присвоить переменной INT типа скажем вот таким методом iW1:=tag1.AsInt ?
Во всех примерах много ненужного. Массивы тегов, обаботка ошибок, пересброс соединения. Концепцию обмена проследить сложно на первый взгляд
Комментарий
-
Сообщение от Роман1210 Посмотреть сообщениеМне неободимо понять Modbus Master TCP\RTU от 3S и опрос с помощью ФБ Агавы полностью идентичны по своему результату?
Верно ли понимаю чтобы опросить Slave устройство мне нужно добавить экземляр ФБ ModbusRTUMaster (и задать все параметры).
Потом открыть соединение ModbusRTUMaster.Open(). Затем с помощью экземляра TTag (например tag1) указать с какого устройства, какой регистр, кикие данные и какой функцией считать?
После этого могу присвоить переменной INT типа скажем вот таким методом iW1:=tag1.AsInt ?
Во всех примерах много ненужного. Массивы тегов, обаботка ошибок, пересброс соединения. Концепцию обмена проследить сложно на первый взгляд
В Com добавляете 3s master, к мастеру добавляете Slave, далее описываете адресацию Slave, штатными средствами конфигуратора 3s(Описываете все каналы, функции, адреса итп).
Не забываете указать у 3s Master, обновление шины, тип 2(Включено всегда). Далее в разделе соотнесения, производите связи с переменными из ПО, получаете данные с устройства. В общем штатный функционал от 3s.
Если же вы хотите чтобы ПЛК был в качестве Slave устройства(Отдавал данные на верхний уровень), тут уже нужно использовать биб-ку AgavaModbus, в ней ФБ TСPSlave\RTUSlave.
Настраиваете сервер. Пример смотрите тут http://forum.kb-agava.ru/forum/contr...BD%D0%B8%D1%8F TCPSlave\RTUSlaveПоследний раз редактировалось Пушкарев Андрей; 30-01-2023, 09:55 AM.
Комментарий
-
Сообщение от Роман1210 Посмотреть сообщениеАндрей спасибо что отвечаете. Опрашивать устройства штатными средсвами кодесис через добавление устройства я умею. Мне нужно это реализовать именно через библиотеку Агавы. Какие ФБ обязательны к использованию для опроса слейва
Комментарий
-
По rs485 modbus rtu работает хорошо штатными средствами codesys. Modbus TCP штатными средствами codesys, запустить не получается. Добавил Ethernet 3s, далее TCP мастер, далее TCP Slave. Настроил IP адреса и задал ID slave устройства (одинаковые в codesys и в эмуляторе). Залил в ПЛК 60. ПЛК 60 нормально увидел эмулятор modbus tcp slave устройства (в codesys зеленые кружочки). В качестве tcp slave использовал виртуалку с modbus эмулятором. Эмулятор 100% рабочий и ведет лог приходящих и отсылаемых команд. До эмулятора пакеты доходят. Эмулятор отправляет ответ, а данные в контроллере не меняются. Галочка опроса, в codesys стоит. Перепробовал все возможные варианты при добавлении Ethernet. Ethernet Агава не позволяет добавлять модбас. Что делаю не так?
Комментарий
-
Сообщение от Пушкарев Андрей Посмотреть сообщение3S Modbus TCP master работать должен штатно и он проверялся. Вероятно что то не так с настройками, опция "всегда обновлять переменные" - Вкл.2 в соотнесении?
Комментарий
-
[QUOTE=Пушкарев Андрей;n1459]
Если Вам нужен Мастер, Вы хотите опросить Slave устройство, просто, штатно в проект добавляете COM, настраиваете адреса порта, скорость четность, стоп биты. Адреса порта зависят от типа ПЛК, ПЛК-40: RS485_1 - Адрес 3, RS485_2 - Адрес 4. ПЛК-50: RS485_1 - Адрес 3, RS485_2 - Адрес 4, RS485_3 - Адрес 1. ПЛК-60: RS485_1 - Адрес 3, RS485_2 - Адрес 4.
В Com добавляете 3s master, к мастеру добавляете Slave, далее описываете адресацию Slave, штатными средствами конфигуратора 3s(Описываете все каналы, функции, адреса итп).
Не забываете указать у 3s Master, обновление шины, тип 2(Включено всегда). Далее в разделе соотнесения, производите связи с переменными из ПО, получаете данные с устройства. В общем штатный функционал от 3s.
Пользуюсь этим способом для Мастера на RS485 и RS232, но впечатление что хоть и работает, но там не очень идеально, особенно на RS232 (хотя терминал вроде отключил по инструкции).В связи с этим хотел уточнить: какие версии Modbus_COM, Modbus_Master_COM, Modbus_Slave_COM надо использовать? Я использую соответственно версии 3.5.11.20, 3.5.14.0, 3.5.10.30
Комментарий
-
Сообщение от Пушкарев Андрей Посмотреть сообщение
Если Вам нужен Мастер, Вы хотите опросить Slave устройство, просто, штатно в проект добавляете COM, настраиваете адреса порта, скорость четность, стоп биты. Адреса порта зависят от типа ПЛК, ПЛК-40: RS485_1 - Адрес 3, RS485_2 - Адрес 4. ПЛК-50: RS485_1 - Адрес 3, RS485_2 - Адрес 4, RS485_3 - Адрес 1. ПЛК-60: RS485_1 - Адрес 3, RS485_2 - Адрес 4.
В Com добавляете 3s master, к мастеру добавляете Slave, далее описываете адресацию Slave, штатными средствами конфигуратора 3s(Описываете все каналы, функции, адреса итп).
Не забываете указать у 3s Master, обновление шины, тип 2(Включено всегда). Далее в разделе соотнесения, производите связи с переменными из ПО, получаете данные с устройства. В общем штатный функционал от 3s.
Комментарий
-
[QUOTE=Альберт Ром;n1666]Сообщение от Пушкарев Андрей Посмотреть сообщение
Если Вам нужен Мастер, Вы хотите опросить Slave устройство, просто, штатно в проект добавляете COM, настраиваете адреса порта, скорость четность, стоп биты. Адреса порта зависят от типа ПЛК, ПЛК-40: RS485_1 - Адрес 3, RS485_2 - Адрес 4. ПЛК-50: RS485_1 - Адрес 3, RS485_2 - Адрес 4, RS485_3 - Адрес 1. ПЛК-60: RS485_1 - Адрес 3, RS485_2 - Адрес 4.
В Com добавляете 3s master, к мастеру добавляете Slave, далее описываете адресацию Slave, штатными средствами конфигуратора 3s(Описываете все каналы, функции, адреса итп).
Не забываете указать у 3s Master, обновление шины, тип 2(Включено всегда). Далее в разделе соотнесения, производите связи с переменными из ПО, получаете данные с устройства. В общем штатный функционал от 3s.
Пользуюсь этим способом для Мастера на RS485 и RS232, но впечатление что хоть и работает, но там не очень идеально, особенно на RS232 (хотя терминал вроде отключил по инструкции).В связи с этим хотел уточнить: какие версии Modbus_COM, Modbus_Master_COM, Modbus_Slave_COM надо использовать? Я использую соответственно версии 3.5.11.20, 3.5.14.0, 3.5.10.30
Так как задачи под мастеров не создаются, то мастер "садится" на родительскую задачу( для него это будет самая быстрая задача в проекте ), что может привести к нестабильной его работе, в виду того, что такая задача может быть нагружена логикой других пользовательских программ, выполнение которых может занимать время.
Рекомендую создать под мастера собственную задачу, с настройками: приоритет - 31, время цикла - 100мc. в настройках мастера указать эту задачу, тогда работа мастера не будет зависеть от времени исполнения сторонних пользовательских программ, что должно увеличить стабильность его работы.
По поводу RS232, дополнительно можно попробовать сделать блокировку вывода в консоль при загрузке, как это сделать описано тут http://docs.kb-agava.ru/view/Руковод...АВА_ПК-40. 5.3.1 Блокирование вывода сообщений в консоль при загрузке контроллера
В Runtime 3.5.10.0, особого смысла использовать более "свежие" версии мастеров нет, т.к новый функционал относится к новой версии runtime, то что он работает, не означает что с ним все хорошо, часть функционала может просто не поддерживаться в более старой версии 3.5.10.0, поэтому рекомендуется использовать версии, которые соответствуют версии runtime 3.5.10.0Последний раз редактировалось Пушкарев Андрей; 11-10-2023, 09:32 AM.
Комментарий
-
[QUOTE=Пушкарев Андрей;n1668]Сообщение от Альберт Ром Посмотреть сообщение
В Runtime 3.5.10.0, особого смысла использовать более "свежие" версии мастеров нет, т.к новый функционал относиться к новой версии runtime, то что он работает, не означает что с ним все хорошо, часть функционала может просто не поддерживаться в более старой версии 3.5.10.0, поэтому рекомендуется использовать версии которые соответствуют версии runtime 3.5.10.0
Комментарий
-
[QUOTE=Альберт Ром;n1669]Сообщение от Пушкарев Андрей Посмотреть сообщение
Спасибо, но жаль что нет чёткой и однозначной инструкции. Я первоначально и пытался следовать этой парадигме, но экспериментируя мне показалось, что на старых версиях хуже работает и методом проб и ошибок пришёл к такому сочетанию версий. Потом увидел в YouTube у Петренко примерно тоже самое и посчитал что это нормально. Что ж попробую ещё раз старые версии.
Комментарий
-
Попробовал, создал новый тестовый проект со встроенным конфигуратором 3S для Мастера на RS485 с версиями соответственно для COM| Master| Slave 3.4.0, 3.5.5, 3.4 (либо 3.5.10.30) и работает, но тоже иногда происходят ошибка чтения и почему-то во всех каналах в свойствах сообщение: Лицензия некорректна или отсутствует; запущен демо-режим - так должно быть?
Комментарий
Комментарий