Объявление

Свернуть
Пока нет объявлений.

Примеры программирования

Свернуть
Это закреплённая тема.
X
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • #16
    Сообщение от Роман1210 Посмотреть сообщение
    Может кто нибудь обьяснить мне как новичку. Зачем полный гемор сложностей для опроса одного захудалого регистра? нельзя добавить устройство Модбас мастер и к нему модбас слейв как обычно в кодесис ? Это именно в Агаве надо выеживаться с десятком библиотек, глобальных переменных и ФБлоков чтоб опросисть устройство по RS?
    Добрый день, чем Вас не устраивает Modbus Master TCP\RTU от 3s? штатное решение от Cds. С ПЛК в качестве слейва тут соглашусь. Нужно использовать нашу биб-ку и всего одну, решается все просто. Например можно почитать тут, и выполнить по примеру. Примеры программирования - Форум КБ АГАВА (kb-agava.ru)
    Последний раз редактировалось Пушкарев Андрей; 30-01-2023, 08:50 AM.

    Комментарий


    • #17
      Мне неободимо понять Modbus Master TCP\RTU от 3S и опрос с помощью ФБ Агавы полностью идентичны по своему результату?
      Верно ли понимаю чтобы опросить Slave устройство мне нужно добавить экземляр ФБ ModbusRTUMaster (и задать все параметры).
      Потом открыть соединение ModbusRTUMaster.Open(). Затем с помощью экземляра TTag (например tag1) указать с какого устройства, какой регистр, кикие данные и какой функцией считать?
      После этого могу присвоить переменной INT типа скажем вот таким методом iW1:=tag1.AsInt ?

      Во всех примерах много ненужного. Массивы тегов, обаботка ошибок, пересброс соединения. Концепцию обмена проследить сложно на первый взгляд

      Комментарий


      • #18
        Сообщение от Роман1210 Посмотреть сообщение
        Мне неободимо понять Modbus Master TCP\RTU от 3S и опрос с помощью ФБ Агавы полностью идентичны по своему результату?
        Верно ли понимаю чтобы опросить Slave устройство мне нужно добавить экземляр ФБ ModbusRTUMaster (и задать все параметры).
        Потом открыть соединение ModbusRTUMaster.Open(). Затем с помощью экземляра TTag (например tag1) указать с какого устройства, какой регистр, кикие данные и какой функцией считать?
        После этого могу присвоить переменной INT типа скажем вот таким методом iW1:=tag1.AsInt ?

        Во всех примерах много ненужного. Массивы тегов, обаботка ошибок, пересброс соединения. Концепцию обмена проследить сложно на первый взгляд
        Если Вам нужен Мастер, Вы хотите опросить 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.
        Если же вы хотите чтобы ПЛК был в качестве 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.

        Комментарий


        • #19
          Андрей спасибо что отвечаете. Опрашивать устройства штатными средсвами кодесис через добавление устройства я умею. Мне нужно это реализовать именно через библиотеку Агавы. Какие ФБ обязательны к использованию для опроса слейва

          Комментарий


          • #20
            Сообщение от Роман1210 Посмотреть сообщение
            Андрей спасибо что отвечаете. Опрашивать устройства штатными средсвами кодесис через добавление устройства я умею. Мне нужно это реализовать именно через библиотеку Агавы. Какие ФБ обязательны к использованию для опроса слейва
            Если Вы хотите реализовать опрос устройства с помощью биб-к агава, можно использовать 2 биб-ки AgavaModbus Фб TCPmaster\RTUMaster, и AagvaModbusEx - рекомендую использовать ее, она чуть проще, проблема может возникнуть в извлечении данных, в пример показал как это сделать в методах ReadValue и WriteValue, Во вложении прикрепил пример чтения и записи регистров из Slave устройства. Ознакомьтесь.
            Вложения

            Комментарий


            • #21
              По 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 Агава не позволяет добавлять модбас. Что делаю не так?

              Комментарий


              • #22
                3S Modbus TCP master работать должен штатно и он проверялся. Вероятно что то не так с настройками, опция "всегда обновлять переменные" - Вкл.2 в соотнесении?

                Комментарий


                • #23
                  Сообщение от Пушкарев Андрей Посмотреть сообщение
                  3S Modbus TCP master работать должен штатно и он проверялся. Вероятно что то не так с настройками, опция "всегда обновлять переменные" - Вкл.2 в соотнесении?
                  Спасибо. Теперь все работает.

                  Комментарий


                  • #24
                    [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

                    Комментарий


                    • #25
                      Сообщение от Пушкарев Андрей Посмотреть сообщение

                      Если Вам нужен Мастер, Вы хотите опросить 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

                      Комментарий


                      • #26
                        [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
                        3S мастера в runtime 3.5.10.0 а так же в 3.5.14 при добавлении в проект не создают своей задачи. В новых версиях Runtime вероятно это исправили.

                        Так как задачи под мастеров не создаются, то мастер "садится" на родительскую задачу( для него это будет самая быстрая задача в проекте ), что может привести к нестабильной его работе, в виду того, что такая задача может быть нагружена логикой других пользовательских программ, выполнение которых может занимать время.

                        Рекомендую создать под мастера собственную задачу, с настройками: приоритет - 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.

                        Комментарий


                        • #27
                          [QUOTE=Пушкарев Андрей;n1668]
                          Сообщение от Альберт Ром Посмотреть сообщение

                          В Runtime 3.5.10.0, особого смысла использовать более "свежие" версии мастеров нет, т.к новый функционал относиться к новой версии runtime, то что он работает, не означает что с ним все хорошо, часть функционала может просто не поддерживаться в более старой версии 3.5.10.0, поэтому рекомендуется использовать версии которые соответствуют версии runtime 3.5.10.0
                          Спасибо, но жаль что нет чёткой и однозначной инструкции. Я первоначально и пытался следовать этой парадигме, но экспериментируя мне показалось, что на старых версиях хуже работает и методом проб и ошибок пришёл к такому сочетанию версий. Потом увидел в YouTube у Петренко примерно тоже самое и посчитал что это нормально. Что ж попробую ещё раз старые версии.

                          Комментарий


                          • #28
                            [QUOTE=Альберт Ром;n1669]
                            Сообщение от Пушкарев Андрей Посмотреть сообщение

                            Спасибо, но жаль что нет чёткой и однозначной инструкции. Я первоначально и пытался следовать этой парадигме, но экспериментируя мне показалось, что на старых версиях хуже работает и методом проб и ошибок пришёл к такому сочетанию версий. Потом увидел в YouTube у Петренко примерно тоже самое и посчитал что это нормально. Что ж попробую ещё раз старые версии.
                            Если с линией RS все хорошо, помех нет, задачи в CDS настроены верно, мастера настроены верно, то 3S мастер может работать стабильно. Это можно проверить если создать пустую программу лишь с одним мастером, настроить его и проверить стабильность его работы. Или же проверить опрос сторонним мастером , например Modbus Pool, убедиться что слейвы все опрашиваются без ошибок, тогда уже искать причину в ПО.

                            Комментарий


                            • #29
                              Попробовал, создал новый тестовый проект со встроенным конфигуратором 3S для Мастера на RS485 с версиями соответственно для COM| Master| Slave 3.4.0, 3.5.5, 3.4 (либо 3.5.10.30) и работает, но тоже иногда происходят ошибка чтения и почему-то во всех каналах в свойствах сообщение: Лицензия некорректна или отсутствует; запущен демо-режим - так должно быть?

                              Комментарий

                              Обработка...
                              X