Показано с 1 по 8 из 8

Тема: Экземпляры ФБ

  1. #1

    По умолчанию Экземпляры ФБ

    Нужна помощь. В моей программе 20 экземпляров функциональных блоков (А1,А2....А20). Необходимо добавить еще с десяток экземпляров ФБ, но при компиляции получаю ошибку "...уменьшите количество используемых данных". Действительно, число используемых данных приближается к 131072 байт. Контроллер ОВЕН 110.60.L. Вопрос: как обойти это ограничение и дописать программу? "Один функциональный блок может иметь произвольное число экземпляров"_цитата.

  2. #2
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    Цитата Сообщение от k501 Посмотреть сообщение
    20 экземпляров функциональных блоков
    сложно понять без наглядности что Вы имеете ввиду, т.е. у Вас 100 ФБ и у каждого 20 экземпляров или как?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #3
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    PLC_PRG.AO1_3 экземпляр AO1_3
    PLC_PRG.AO1_7 экземпляр AO1_3

    а AO1_1: AO1_1 то что выделено по содержимому кода совпадает с выделенным AO1_5: AO1_3?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  4. #4
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,642

    По умолчанию

    не смотрел, некогда. каждый FB резервирует под себя память, а функции не резервируют, выполнили действия и выгрузились. может стоит посмотреть в реализации в эту сторону ?

  5. #5

    По умолчанию

    k501, если бы мне достался Ваш проект, то скорее всего бы сразу переделал на ST. Ушли бы эти нагромождения из FB автоматически.
    Однако проект Ваш, а моя цель попробовать что-то посоветовать что бы как то улучшить картину.
    1. Таймеры. Возможно ли оптимизировать? Сократить? Смотрите картинку.
    Вложение 45823
    FB VVERX. Вы используете три экземпляра блоков TON, с близким временем. TON1 работает сразу при вызове блока и дает Вам 0,8 секунд.
    Точно надо столько? Может убрать из кода первый и выше где-то пустить, где уже вызывается этот экземпляр?
    Коробит жутко. Один таймер ИМХО хватит. Лучше не TON, а TP. Отработало, отключилось. Условие перехода TP.Q в ноль (N переход).
    2. А обязательно ли TON вообще? Взять конструкцию по добавлению целочисленной INT переменной. Добрала до нужной константы, сброс и переход. Правда подбирать число придется. Не всегда удобно, но облегчит код заметно.
    3. Вызовы всяких там "A02_1". Ну они же похожи все как братья. Какая высокая цель так делать? Приведите к универсальному виду. желательно к одному, и просто не используйте то, что не нужно. Сделайте FB параметрируемым (отключайте ненужное)
    Вложение 45824
    4. Всякие там "SLIV40s". Я может смотрел невнимательно, но какая в них разница? Время? Сделайте один, а время как параметр на ножку.

    Вообще смотрю я на LAD как он тут по Step7-мовски безмозгло организован. Людей жалко прям. Ну не программисты они, электрики. Так зачем так измываться то?
    Вот эти нити (строки) нафига нужны в данном языке? Schneider Electric вон заботится о людях - ссылка.
    Вложение 45825
    5. Если Вы уйдете от этого мягко сказать "неудачного" LAD ну пусть в CFC, то там код упростится однозначно. Не нужно будет лепить столько временных переменных.
    6. Посмотрел состав выходных сигналов и еще пуще расстроился. Там же совсем немного сигналов. Зачем столько всего? Может нужно как-то программу продумать?

    На мой взгляд у Вас примитивная задача и тут вагон возможности для оптимизации.
    Последний раз редактировалось krollcbas; 27.11.2019 в 06:40.
    +79104444236
    С уважением,
    Лапшин Вячеслав

  6. #6
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,276

    По умолчанию

    Тоже посмотрел. Большую часть выше сказали.
    Если не любите st, то тут лучше бы sfc а не сfc подошел исходя из смысла задачи

  7. #7
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,642

    По умолчанию

    простите, а какая разница на каком языке программа ? для FB без разницы, из какого языка вызов, объявили FB, значит память под него выделилась.

  8. #8

    По умолчанию

    melky, открой, глянь там программа состоит из 10 или примерно выходов. Код создан так, что "масло масляное". Там не нужно столько FB. Просто LAD в той реализации как в Codesys для данной задачи подходит плохо.
    Понятно для парня, но для контроллера - муть.
    +79104444236
    С уважением,
    Лапшин Вячеслав

Ваши права

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