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

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

  1. #11

    По умолчанию

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

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

    По умолчанию

    Цитата Сообщение от sanya0971 Посмотреть сообщение
    Благодарю за рекомендацию.
    П.с размер 220кбайт получился((
    Про 860 регистров - это все же не верная информация, я в своих проектах передаю на верх по 5 Кб (т.е. если в регистрах, то 2,5 тыс., но у меня все же это Кб, так как все по dword) и все работает.
    Но, если Вы передаете 1 бит с помощью регистра, то оптимизировать проект разумеется надо.

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

    По умолчанию

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

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

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

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

    По умолчанию

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

  5. #15

    По умолчанию

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

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

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

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

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

    По умолчанию

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

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

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

    По умолчанию

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

  8. #18

    По умолчанию

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

    Я создаю структуры для нужных мне элементов.
    Например.
    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-ов и конфигурация из переменных нужного размера с одинаковым общим размером переменных будут иметь разницу в итоговом размере?

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

    По умолчанию

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

  10. #20

    По умолчанию

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

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

Похожие темы

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

Ваши права

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