Пожалуйста: http://www.owen.ru/catalog/programmi...k_100/46885663
Вот информация из РЭ: 2017-08-25_10-56-23.png
С размером конфигурации до 100кБ ПЛК ведёт себя корректно. Всё, что выше используйте на свой страх и риск. О последствиях я уже рассказывал:
Бывает не видишь, а оно на самом видном месте)
Но не смотря на некоторую ясность, вопросов по-прежнему много.
1. Все же необходима, ясность. Как это так, размер конфигурации 122 Кб, 12 выход мигает, 998 регистр опрашивается. А потом, я программирую, программирую и раз все перестало работать?
На мой взгляд, необходимо при компиляции или еще где-то (как-то) выдавать сообщение, что конфигурация больше 100 Кб, если она превысила эти размеры.
2. В РП на ПЛК110 М02 на стр. 9 сказано, цитата: "По умолчанию суммарный объем
памяти ввода (%I) и вывода (%Q) установлен равным 16кБ. Этого доста-
точно для большинства задач, но этот объем может быть увеличен поль-
зователем до 32 кБ (на вкладке «Memory Layout» окна «Target Setting», в
строках Input и Output, см. рисунок 2.4)."
Так до 100 Кб или до 32 Кб?
3. Рисунка 2.4 я в РП так и не смог найти.
4. Все равно есть некоторая неточность. Если я конфигурирую 999 регистров по 4 байта, то для меня сконфигурированная область обмена по смыслу равна 999*4 = 3996 байт или 3,9 Кб. Но на деле, ввиду того, что в конфигурации еще масса каких-то дополнительных объявлений эти 3,9 Кб "съедают" все 100 Кб.
Требует пояснений в инструкции.
5. Желательно тогда дать возможность пользователю просто выделять кусок памяти в Modbus Slave, например, через объявление String или Array.
1. Да, было бы хорошо, но 3S перестала развивать 2-й КоДеСис и теперь только ручками. Но 99% пользователей никогда не добираются до предела.
2. Память I/O и размер конфигурации это 2 абсолютно разные вещи
4. Конфигурация - это описание всего, что вставили в дерево конфигурации, описание гораздо больше данных I/O, формат не "компактный" у КоДеСиса.
5. Welcome to library, young Padawan!
P.S. Второй slave проверьте!
Тролль-наседка, добрый, нежный и ласковый
1. Второй слейв проверю, но позже (понедельник, вторник). Сейчас не доступен ПК с CoDeSys.
Все же не понятно, как это так, что может работать с конфигурацией больше 100 Кб, а может не работать?
Было бы легче, если бы всегда не работал.
2. Если у меня не получается через конфигуратор организовать 999 регистров (без бубна имеется ввиду) для передачи на верхний уровень, то как я тогда организую 32 Кб памяти I/O.
И разве регистры для передачи на верхний уровень не являются памятью I/O?
Т.е. в РЭ имеется ввиду только I/O, когда ПЛК мастер?
3. Подправьте РП, там нет рисунка 2.4.
4. Уж больно не компактный формат у КоДеСиса.
5. Звездным войнам предпочитаю советские фильмы, а потому вопрос:
Для Modbus Masterа можно для модуля добавить String переменную, значит должно быть можно и для слейва.
Разве это зашивается не в таргет файл?
Быть может это решит все вопросы?
Провел тест.
В конфигурацию добавлено 2 слейва. 1-й с 999 регистрами (dwordами), второй с 500 регистрами (dwordами).
Размер пустого проекта (только конфигурация) составляет 148 611 байт (см. файл TestRegsCount2SlaveWith1500Regs.rar), что явно больше 100 Кб.
При этом проект прекрасно работает:
1. Из Modbus Master OPC сервера опрашиваются регистры 1-й и 999-й первого слейва, и 1-й и 500-й второго слейва (см. рисунок).
2. "Мигают" четные и нечетные дискретные выходы ПЛК (алгоритм мигания можно понять по коду программы см. "Весь код ПЛК".jpg)
3. После перезагрузки по питанию проект продолжает свою работу (выходы мигают, регистры опрашиваются).
Проект прикрепляю.
Итак, вопрос открытый:
Конфигурация больше 100 Кб, но все работает. Почему?
Конфигурация внутри разбирается по логическим частям. Если часть не лезет в 100к - происходит эпик фейл.
Тролль-наседка, добрый, нежный и ласковый