Кто-нибудь использует в CODESYS объявление структур с привязкой к памяти (доступной извне)? Получается такой закос под сименс, все элементы структуры доступны автоматически, с определенным адресом... (косвенная или прямая адресация называется?)

Комментарии: 30

  1. Alexander

    Это как?

    • Anvar

      Звучит похоже на AT

      • Alexander

        Как структура из оперативной памяти может быть доступной извне?

    • Michael

      Ну есть функц.блок насоса например. Все входные и выходные параметры пишутся в структуру. А структуру мы выставляем наружу, и используем для управления и диспетчеризации. Но вот есть пара способов, как ее выставить Первый - поэлементно привязываем к адресам

      • Alexander

        Что за способы К каким?

  2. Anvar

    Попробуй вот так https://help.codesys.com/api-content/2/codesys/3.5.13.0/en/_cds_at_declaration/#b5920923c60c0a8640e00a56648-id-bdd5259420923c60c0a8640e0106fc26

    • Michael

      второй - AT %MW... всей структуры Я так и пробую, и интересуюсь, кто еще так балуется

      • Alexander

        Я не понимаю зачем

      • Anvar

        Я так не делал, но попадался код, который таким образов переворачивал биты местами

      • Alexander

        И как потом обратится к этой структуре извне?

        • Michael

          насос работает - одна привязка. Насос в аварии - вторая, насос то-се - третья. А тут всю структуру вывалил - и обращайся В том порядке, в каком они расположены в структуре, с учетом размера данных начиная с объявленного адреса

          • Alexander

            Что такое обратиться извне?

            • Michael

              модбас Как у тебя панель обращается извне к плк?

              • Alexander

                Ну ты можешь по модбас у обратиться напрямую к памяти или ты какую то часть структуры привязываешь к регистру модбас к которому ты обращаешься К регистру модбас но не к памяти плк

                • Michael

                  Чтобы обратиться напрямую к памяти, надо для начала туда что-то положить. Я предлагаю вариант вывалить в открытый доступ всю структуру одной строчкой

                  • Alexander

                    Дай код пожалуйста Как ты через модбас обращаешься к памяти плк

                    • Michael

                      Причем это строчка даже не кода программы, а декларация переменной как у тебя панель общается с плк? Вот про эту область памяти я и говорю

                      • Alexander

                        Понял

                      • Maksim

                        Получилось так в кодесисе? В Шнайдере просто такое идёт автоматом. Обьявил и готово

      • Evgeniy

        Мы так делаем.

        • Michael

          Я планировал использовать такую фишку: закидывать это объявление в RETAIN. А теперь не уверен, прокатит ли.

          • Evgeniy

            После компиляции на TwinCat - check overmapping areas, вроде в кодесис тоже было подобная проверка , не помню Да вроде должно работать

            • Michael

              выше ссылка на хелп.кодесис, там оговорка про persistent

              • Evgeniy

                Тогда могу дезинформировать ) остаётся последний вариант как всегда, читать man'ы )

                • Michael

                  С этими retain persistent мало кто что понимает, поэтому надо брать плк, и тестить самому ))

                  • Evgeniy

                    Так и есть )

Не нашли ответ?

Вам также может быть интересно