Показано с 1 по 10 из 28

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

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

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

    По умолчанию

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

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

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

  2. #2

    По умолчанию

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

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

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

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

  3. #3
    Пользователь
    Регистрация
    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, она появляется в нужном месте в области передачи в слейв.

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

  4. #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, она появляется в нужном месте в области передачи в слейв.

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

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

    По умолчанию

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

  6. #6

    По умолчанию

    Цитата Сообщение от Спорягин Кирилл Посмотреть сообщение
    Думаю, что способ с dword компактнее. Но не проверял.
    Проверил, из ~22кб (212 регистров, в основном 2byte) получилось ~13.

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

    По умолчанию

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

Похожие темы

  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

Ваши права

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