Объявление

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

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

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

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

    Список учебных материалов, примеров, видеороликов по программированию на Codesys?

    1. Видеоуроки по программированию АГАВА ПЛК-40 в среде CODESYS в youtube. Найти уроки можно по ключевым словам "агава плк-40".

  • #2
    Сообщение от Таушканов Посмотреть сообщение
    Список учебных материалов, примеров, видеороликов по программированию на Codesys?

    1. Видеоуроки по программированию АГАВА ПЛК-40 в среде CODESYS в youtube. Найти уроки можно по ключевым словам "агава плк-40".
    Там все уроки рассказывает один чувак, который умеет только самые простые примеры. датчик подключить. реле какое нибудь, толкового по модбасу вообще ничего нету,, Я по этой теме весь ютьюб пересмотрел, Без Андрея бы даже и на разобрался. Да и думаю я не один такой, поэтому нужно больше уроков по этому контроллеру.

    Комментарий


    • #3
      ModbusMaster для ПЛК-40. Вроде все расписал что куда. Не понятно будет спрашивайте. Список датчиков в global список запросов в TagsList, Чтение из буфера и перевод в значение Tbegin/LoadValues
      Вложения

      Комментарий


      • #4
        ModbusSlave для ПЛК-40. Список датчиков в globals, список регистров в MapReg
        Вложения

        Комментарий


        • #5
          Пример чтения и записи двух регистров, при помощи библиотеки ModbusEx.
          Вложения

          Комментарий


          • #6
            Сообщение от Пушкарев Андрей Посмотреть сообщение
            Пример чтения и записи двух регистров, при помощи библиотеки ModbusEx.
            Отличная реализация, Все понятно что откуда берется, Только еще word и float добавить на чтение и запись в пример. И тогда с модбасом вообще никаких проблем не будет.

            Комментарий


            • #7
              LinksTest_extend.zip - Пример использования библиотеки IoDrvAgavaLinks для работы c 1 портом RS485 по протоколу ModbusRTU.
              В примере показана работа со Slave устройством, а именно:

              - Запись 2 int регистров
              - Чтение 2 int регистров
              - Запись 2 float регистров
              - Чтение 2 float регистров

              1. Список тегов(запросов) формируется в области глобальных переменных "TagsList".
              2. Настройки конфигурации порта устанавливаются в программе "SettingPort".
              3. Список запросов формируется в методе "FillTagsList" класса "TUnit".
              4. Результат выполнения запросов на чтение\запись получаем в методе "LoadValues" класса "TBegin".


              LinksTest_twoPorts.zip - Пример использования библиотеки IoDrvAgavaLinks для работы c 2 портами RS485 по протоколу ModbusRTU.
              Пример аналогичен предыдущему, только реализована работа по 2 портам RS485.

              ModbusRTUMaster_ModBusRTUSlave.zip - пример одновременной работы Modbus RTU Master и Slave.
              Вложения
              Последний раз редактировалось Administrator; 18-03-2019, 08:53 AM. Причина: Добавил вложения.

              Комментарий


              • Никадим
                Никадим комментирует:
                Редактировать комментарий
                Здравствуйте!
                Посмотрел вложенные примеры в среде Codesys 3.5 SP14.
                Обновил устройства во всех примерах на Agava PLC-40/50 TV/WV 3.5.10.0. (такой выдали)
                Во всех 3 примерах ругается на функциональный блок TUnit и его методы и свойства, расположенный в разделе POU.
                231 сообщение об ошибке следующего содержания: "Идентификатор ' ' не задан"

                Можно ли попросить один пример работы с ПЛК-40 WV в режиме мастера (если можно с визуализацией), где было бы расписано на русском, как это реализовать (в частности чтение Holding регистра)?

                В примере ModbusRTUMaster из SDK не понятно куда считываются данные (т.е переменные соответствующие регистрам) и где настраивается время ответа на запрос.

            • #8
              Пример использования ПЛК - 40 в качестве Slave устройства (Modbus TCP Slave)

              - Пример использования функционального блока TModbusTCPSlave из библиотеки AgavaModbus

              В примере показана работа с ПЛК - 40 в качестве Slave устройства, а именно:


              - Чтение 4 Float(Real) регистров ПЛК - 40

              1. Приемные буферы определены в области глобальных переменных Globals
              2.
              Адреса регистров для чтения задаются в программе MapReg
              3.
              Настройка соединение TCP происходит в программе TCPSlave
              Вложения

              Комментарий


              • #9
                Сообщение от Пушкарев Андрей Посмотреть сообщение
                Пример использования ПЛК - 40 в качестве Slave устройства (Modbus TCP Slave)

                - Пример использования функционального блока TModbusTCPSlave из библиотеки AgavaModbus

                В примере показана работа с ПЛК - 40 в качестве Slave устройства, а именно:


                - Чтение 4 Float(Real) регистров ПЛК - 40

                1. Приемные буферы определены в области глобальных переменных Globals
                2.
                Адреса регистров для чтения задаются в программе MapReg
                3.
                Настройка соединение TCP происходит в программе TCPSlave
                Я его пробовал. вроде только первые 10 регистров передает. Уточню еще

                Комментарий


                • #10
                  Сообщение от Пушкарев Андрей Посмотреть сообщение
                  Пример использования ПЛК - 40 в качестве Slave устройства (Modbus TCP Slave)

                  - Пример использования функционального блока TModbusTCPSlave из библиотеки AgavaModbus

                  В примере показана работа с ПЛК - 40 в качестве Slave устройства, а именно:


                  - Чтение 4 Float(Real) регистров ПЛК - 40

                  1. Приемные буферы определены в области глобальных переменных Globals
                  2.
                  Адреса регистров для чтения задаются в программе MapReg
                  3.
                  Настройка соединение TCP происходит в программе TCPSlave
                  Добрый день, Андрей!

                  Если в этом примере записать функцией 16 переменную 32bit Float, то она помещается в буфер RegHoldingBuf в два регистра word. А как потом извлечь переменную из 2 регистров word в регистр dword с типом данных real? Объявить адрес регистрам word - %MW?

                  Комментарий


                  • #11
                    Сообщение от Гаврилин Дмитрий Посмотреть сообщение

                    Добрый день, Андрей!

                    Если в этом примере записать функцией 16 переменную 32bit Float, то она помещается в буфер RegHoldingBuf в два регистра word. А как потом извлечь переменную из 2 регистров word в регистр dword с типом данных real? Объявить адрес регистрам word - %MW?
                    Добрый день, можно например через UNION извлечь, создаете структуру и объявляете экземпляр.

                    type Modbus2WordReal :
                    union
                    AsWord : array[0..1] of word;
                    AsReal : real;
                    end_union
                    end_type



                    FloatVar : Modbus2WordReal;

                    Далее уже в теле программы присваиваете приемные буфер к структуре.

                    FloatVar.AsWord[0] := RegHoldingBuf[0];
                    FloatVar.AsWord[1] := RegHoldingBuf[1];

                    Значение Real получите тут. FloatVar.AsReal

                    Комментарий


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

                      Добрый день, можно например через UNION извлечь, создаете структуру и объявляете экземпляр.

                      type Modbus2WordReal :
                      union
                      AsWord : array[0..1] of word;
                      AsReal : real;
                      end_union
                      end_type



                      FloatVar : Modbus2WordReal;

                      Далее уже в теле программы присваиваете приемные буфер к структуре.

                      FloatVar.AsWord[0] := RegHoldingBuf[0];
                      FloatVar.AsWord[1] := RegHoldingBuf[1];

                      Значение Real получите тут. FloatVar.AsReal
                      Работает, спасибо!

                      Комментарий


                      • #13
                        Пробую пример #8 для TCPSlave, Пишет нет библиотек, Все таргеты от вас загружал.
                        Может ещё что-то надо. Прошу скинуть

                        Комментарий


                        • #14
                          Сообщение от Nitros23 Посмотреть сообщение
                          Пробую пример #8 для TCPSlave, Пишет нет библиотек, Все таргеты от вас загружал.
                          Может ещё что-то надо. Прошу скинуть
                          Вам нужно скачать, последнюю версию AgavaLibraries, она лежит в SDK на сайте. http://files.kb-agava.ru/apps/files/...SDK&fileid=445
                          6 Дней назад, была обновлена. Наблюдалась проблема с установкой некоторых биб-к. Старые библиотеки необходимо удалить через менеджер пакетов, затем установить новые.

                          Комментарий


                          • #15
                            Может кто нибудь обьяснить мне как новичку. Зачем полный гемор сложностей для опроса одного захудалого регистра? нельзя добавить устройство Модбас мастер и к нему модбас слейв как обычно в кодесис ? Это именно в Агаве надо выеживаться с десятком библиотек, глобальных переменных и ФБлоков чтоб опросисть устройство по RS?

                            Комментарий

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