Есть неоптимзированный блок с массивом на 2976 ячеек, при размере ячейки массива 16 байт, свободно в work memory было 190 байт. Я "оптимизировал" размер ячейки до 9 байт. Перекомпилировал, сделал мемори ресет, залил пересобранный проект. И work memory всеравно свободно 190 байт !!! Ничего не понимаю... В чем прикол то ??? Как освободить память ?
PS: обнаружил что системные Modbus_Comm_Load (3379) и Modbus_Master(7331) что то много жрут... Это нормальное явление такое потребление памяти этими ф-циями ? Или я что то сделал не так ?
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
S7 1200 вопрос по "work memory"
Модератор: Глоб.модераторы
-
- не первый раз у нас
- Сообщения: 386
- Зарегистрирован: 31 янв 2017, 11:08
- Имя: Николай
- Благодарил (а): 8 раз
- Поблагодарили: 122 раза
S7 1200 вопрос по "work memory"
У вас массив или структура? Для одной ячейки массива 16 байт как-то многовато (что за переменные?).
Если имелся ввиду не оптимизированный блок с массивом и ячейкой на 16 бит (1 WORD) и вы его уменьшили до 9 бит, то он все равно будет занимать 16 бит. Уменьшите до 8 бит (1 BYTE), тогда и свободного места прибавится.
P.S. Проверил на TIA15.1 все работает.
P.P.S. У меня Modbus_Comm_Load (load ~3k bytes / work ~500 bytes) и Modbus_Master (load ~6k bytes / work ~3k bytes). Если не хватает места, можете использовать старые блоки MB_COMM_LOAD и MB_MASTER, они занимают меньше места.
Если имелся ввиду не оптимизированный блок с массивом и ячейкой на 16 бит (1 WORD) и вы его уменьшили до 9 бит, то он все равно будет занимать 16 бит. Уменьшите до 8 бит (1 BYTE), тогда и свободного места прибавится.
P.S. Проверил на TIA15.1 все работает.
P.P.S. У меня Modbus_Comm_Load (load ~3k bytes / work ~500 bytes) и Modbus_Master (load ~6k bytes / work ~3k bytes). Если не хватает места, можете использовать старые блоки MB_COMM_LOAD и MB_MASTER, они занимают меньше места.
Последний раз редактировалось M3f 03 ноя 2021, 11:32, всего редактировалось 1 раз.
EPLAN Electric P8 Professional+ 2.7 HF1 11496 | TIA Portal Professional V17 Upd1 | Creo Parametric 4.0 M070
-
- здесь недавно
- Сообщения: 52
- Зарегистрирован: 20 дек 2019, 10:54
- Имя: Денис
- Страна: CA
- Благодарил (а): 5 раз
S7 1200 вопрос по "work memory"
Массив структур, каждая теперь по 9 байт. И я же написал "байт" а не "бит"... Меня сейчас больше волнует то что какие то коммуникационные ф-ции жрут аж на 10 килобайт памяти.
-
- не первый раз у нас
- Сообщения: 386
- Зарегистрирован: 31 янв 2017, 11:08
- Имя: Николай
- Благодарил (а): 8 раз
- Поблагодарили: 122 раза
S7 1200 вопрос по "work memory"
Вы написали: "...неоптимзированный блок с массивом на 2976 ячеек, при размере ячейки массива 16 байт...", где тут про массив структур? Поэтому и возник вопрос про байты и биты.
P.P.S. У меня Modbus_Comm_Load (load ~3k bytes / work ~500 bytes) и Modbus_Master (load ~6k bytes / work ~3k bytes). Если не хватает места, можете использовать старые блоки MB_COMM_LOAD и MB_MASTER, они занимают меньше места.
P.P.S. У меня Modbus_Comm_Load (load ~3k bytes / work ~500 bytes) и Modbus_Master (load ~6k bytes / work ~3k bytes). Если не хватает места, можете использовать старые блоки MB_COMM_LOAD и MB_MASTER, они занимают меньше места.
EPLAN Electric P8 Professional+ 2.7 HF1 11496 | TIA Portal Professional V17 Upd1 | Creo Parametric 4.0 M070
-
- здесь недавно
- Сообщения: 52
- Зарегистрирован: 20 дек 2019, 10:54
- Имя: Денис
- Страна: CA
- Благодарил (а): 5 раз
S7 1200 вопрос по "work memory"
Какая разница структура или не структура, размер в байтах тот же... Что же эта хрень так память жрет. В любом случае Receive_P2P Send_P2P занимают еще меньше места.
-
- не первый раз у нас
- Сообщения: 386
- Зарегистрирован: 31 янв 2017, 11:08
- Имя: Николай
- Благодарил (а): 8 раз
- Поблагодарили: 122 раза
S7 1200 вопрос по "work memory"
Проверил с массивом структур на 1000 ячеек:
- Блок со структурами по 16 байт: load ~18k bytes / work ~16к bytes
- Блок со структурами по 9 байт: load ~11k bytes / work ~10к bytes
- Блок со структурами по 16 байт: load ~18k bytes / work ~16к bytes
- Блок со структурами по 9 байт: load ~11k bytes / work ~10к bytes
EPLAN Electric P8 Professional+ 2.7 HF1 11496 | TIA Portal Professional V17 Upd1 | Creo Parametric 4.0 M070
-
- здесь недавно
- Сообщения: 52
- Зарегистрирован: 20 дек 2019, 10:54
- Имя: Денис
- Страна: CA
- Благодарил (а): 5 раз
S7 1200 вопрос по "work memory"
переделал под Receive_P2P/Send_P2P удалось выиграть более 9 килобайт. Но как то оно странно работает в ответ принимается пакет без CRC. Опрашиваю MAGFLOW 6000 того же сименса, и такой прикол с CRC только с этим устройством, другие выдают нормальный пакет.