Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 28

Тема: MB Slave. Максимальное количество регистров

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    04.09.2012
    Адрес
    Омск
    Сообщений
    268

    По умолчанию

    Такое в общем то громадное количество регистров - думаю куда столько?)))
    Посмотрел картинки - такое ощущение что дискретный сигнал (бит - суда по названию) передаётся 2byte (1 регистр).
    Если так конечно можно.
    Может все таки оптимизировать проект?
    Последний раз редактировалось Rask; 06.04.2023 в 16:13.

  2. #2

    По умолчанию

    Цитата Сообщение от Rask Посмотреть сообщение
    Такое в общем то громадное количество регистров - думаю куда столько?)))
    Посмотрел картинки - такое ощущение что дискретный сигнал (бит - суда по названию) передаётся 2byte (1 регистр).
    Если так конечно можно.
    Может все таки оптимизировать проект?
    там задержка на появление аварии.
    в целом есть где можно оптимизировать, но я сомневаюсь, что в 2 раза

  3. #3
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    1,037

    По умолчанию

    Привожу пример такой конфигурации в картинках.
    На картинка видно, что проект содержит 2 Modbus Slave.
    В первом слейве 981 dword (т.е. в регистрах 1962).
    Во втором слейве 303 dword (т.е. 606 регистров).

    Конфигурация при этом 146 Кб, если ее вычислять по указанному выше способу.
    И все работает и грузится.

    Читайте тему на форуме о размере конфигурации (то что выше). Там Филоненко говорит о каких-то блоках по 100 Кб.
    В общем тут нужно методом проб, но как факт конфигурация может быть большой!
    Изображения Изображения

  4. #4

    По умолчанию

    Цитата Сообщение от Спорягин Кирилл Посмотреть сообщение
    Привожу пример такой конфигурации в картинках.
    На картинка видно, что проект содержит 2 Modbus Slave.
    В первом слейве 981 dword (т.е. в регистрах 1962).
    Во втором слейве 303 dword (т.е. 606 регистров).

    Конфигурация при этом 146 Кб, если ее вычислять по указанному выше способу.
    И все работает и грузится.

    Читайте тему на форуме о размере конфигурации (то что выше). Там Филоненко говорит о каких-то блоках по 100 Кб.
    В общем тут нужно методом проб, но как факт конфигурация может быть большой!
    Подскажите, каким образом вы делаете "упаковку" данных в сетевые "dword"-ы (ну явно не вся же передаваемая информация имеет размер 4 байта) ?

    Опоздал немного, а как производится "наводка"?

  5. #5
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    1,037

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    Подскажите, каким образом вы делаете "упаковку" данных в сетевые "dword"-ы (ну явно не вся же передаваемая информация имеет размер 4 байта) ?

    Опоздал немного, а как производится "наводка"?
    Где-то на форуме я это описывал, но уже сам не смог найти где, поэтому коротко повторю.

    Я создаю структуры для нужных мне элементов.
    Например.
    Struct Valve
    Command : word;
    State : word;
    Mode : word;
    Alarm : word;
    end_struct

    И общую структуру, которая включает в себя эти структуры.
    Struct PanelData
    Valve1 : Valve;
    Valve2 : Valve;
    Valve3 : Valve;
    и т.д.
    end_struct

    Затем объявляю (обычно в глобальных данных) данную структуру следующим образом:

    PanelData AT %QD7.1.0 : PanelData;

    где %QD7.1.0 - адрес первого 4х байтового элемента в нужном мне Модбас слейве.

    ВСЕ!

    Далее, если в Valve1.Alarm := 1, она появляется в нужном месте в области передачи в слейв.

    Желательно в панели тоже использовать средства "наведения", чтобы в панели самому не считать номер получившегося регистра.
    Но не на всех панелях это работает, поэтому этот метод не всегда хорош.

  6. #6

    По умолчанию

    Цитата Сообщение от Спорягин Кирилл Посмотреть сообщение
    Где-то на форуме я это описывал, но уже сам не смог найти где, поэтому коротко повторю.

    Я создаю структуры для нужных мне элементов.
    Например.
    Struct Valve
    Command : word;
    State : word;
    Mode : word;
    Alarm : word;
    end_struct

    И общую структуру, которая включает в себя эти структуры.
    Struct PanelData
    Valve1 : Valve;
    Valve2 : Valve;
    Valve3 : Valve;
    и т.д.
    end_struct

    Затем объявляю (обычно в глобальных данных) данную структуру следующим образом:

    PanelData AT %QD7.1.0 : PanelData;

    где %QD7.1.0 - адрес первого 4х байтового элемента в нужном мне Модбас слейве.

    ВСЕ!

    Далее, если в Valve1.Alarm := 1, она появляется в нужном месте в области передачи в слейв.

    Желательно в панели тоже использовать средства "наведения", чтобы в панели самому не считать номер получившегося регистра.
    Но не на всех панелях это работает, поэтому этот метод не всегда хорош.
    Понятно, спасибо!
    Интересно, конфигурация, составленная из DWORD-ов и конфигурация из переменных нужного размера с одинаковым общим размером переменных будут иметь разницу в итоговом размере?

  7. #7
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    1,037

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    Понятно, спасибо!
    Интересно, конфигурация, составленная из DWORD-ов и конфигурация из переменных нужного размера с одинаковым общим размером переменных будут иметь разницу в итоговом размере?
    Думаю, что способ с dword компактнее. Но не проверял.

  8. #8
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    1,037

    По умолчанию

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

  9. #9
    Пользователь
    Регистрация
    10.11.2014
    Адрес
    Санкт-Петербург
    Сообщений
    1,037

    По умолчанию

    Замечу также, что я разумеется не указываю имена переменным в конфигурации, а навожу на конфигурацию структуру данных, поэтому в конфигурации ничего, кроме "голых" элементов.

  10. #10

    По умолчанию

    Ужал в 6 раз количество регистров. При этом размер того самого файла после ключевого слова CommConf стал равен 85кбайт. Возможно будет меньше, если у каждого регистра убрать описание. Пока полет нормальный.
    Есть несколько вопросов:
    1) Создал загрузочный проект в онлайне. Контроллер стал уходить в бесконечный рестарт при сбросе питания со шкафа. Порт Ethernet перестает работать, USB остается рабочим. Подключаешься по USB к ПЛК и он перестает перезагружаться. Что это вообще за странное поведение?
    Основную программу, в которой вызываются другие блоки, перенес из Freewheeling в Cyclic с временем t#40ms. Все стало ок. В чем может быть проблема ? Понимаю, что стоит выложить debug.txt, но возможность только во вторник будет...
    2) Почему сохраняемые переменные (Retain) реинициализируются при загрузке изменной аппаратной конфигурации. Как сделать, чтобы этого не происходило?
    3) Являются ли переменные MB Slave сохраняемыми?
    4) Точно ли 160м02 считается плк для средних систем автоматизации ?
    - Retain памяти слишком мало (16кб), что в 2 раза меньше, чем у малыша S7-312 и в 5 раз меньше, чем у самой базовой модели S7-1511.
    - Нужно задумываться о размере некоего файла, который отвечает за описание аппаратной конфигурации. И не дай бог, чтобы он превысил 100кб. Это же абсурд.
    - Отсутствие нормального диагностического буфера.
    - Неработающие переключатели режимов на борту ПЛК. Переводишь в СТОП, он продолжает работать. Переводишь в Работа, он остается в СТОП. Режим менять получается только через Codesys.
    - Рестарты плк. Программа без косвенной адресации, без обращения к несуществующим областям памяти. Все прописано строго через обращение к символьным именам переменным.
    Спасибо.
    Последний раз редактировалось sanya0971; 15.04.2023 в 11:11.

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

  1. Ответов: 2
    Последнее сообщение: 28.10.2014, 14:34
  2. максимальное количество экранов и алармов ип320.
    от mva2204 в разделе Панели оператора (HMI)
    Ответов: 4
    Последнее сообщение: 13.10.2014, 11:15
  3. Максимальное количество элементов для визуализации
    от Борисов Дмитрий в разделе СПК2xx (архив)
    Ответов: 4
    Последнее сообщение: 27.12.2013, 22:17
  4. Ответов: 16
    Последнее сообщение: 04.09.2012, 10:01
  5. Ответов: 5
    Последнее сообщение: 10.12.2009, 11:16

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •