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

Тема: ФБ vs функция + тип

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

    По умолчанию

    ООП - это способ программирования. С этим никто и не спорит.
    Вот только реальных инструментов для его реализации в языках МЭК61131 нет.
    Есть попытки тех кто привык к хорошему структурированию программ, реализовать свою программу на языках МЭК в стиле ООП.

    Но это все не предмет этой темы.

  2. #12
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    1. ФБ обращаются только к функциям и своим внутренностям.
    2. Ничто не обращается ко внутренностям ФБ.
    3. Функции обращаются только к своим внутренностям и другим функциям.
    4. Программы состоят преимущественно из ФБ.
    5. Гармония и реюзабельность.

    Это не ООП. Это лишь его (но не только его) часть под названием инкапсуляция.

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

    По умолчанию

    Вспомнил пример из собственной практики, когда в буквальном смысле пришлось использовать подход функция + тип, вместо ФБ.
    Этот пример не совсем корректен здесь, так как случился на Сименсе. Но все же приведу. Мало ли кому пригодится где-то как идея.
    В одном из проектов использовали S7-300. При написании кода был создан ФБ сушильная установка, код которого занимал где-то 60 Кб.
    При отладке на PLCSim (имитатор контроллера в Сименсе) все работало отлично. Впоследствии, при наладке на реальном контроллере оказалось, что в контроллере блоки не должны превышать размера в 16 Кб.
    Пришлось переменные ФБ сушильная установка сделать как тип, а весь код разделить на 4 функции (~ по 15 Кб), которые вызывать последовательно.

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

    По умолчанию

    Цитата Сообщение от SKV Посмотреть сообщение
    . был создан ФБ.., код которого занимал где-то 60 Кб..
    За всю жизнь ни разу ни на чем не написал функции/процедуры/ф.блока/подпрограммы/ метода/свойства/прерывания.. более 2-4 визуальных страниц. Сейчас по возможности стараюсь укладываться в 10..20 строк. Старею.

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

    По умолчанию

    да не, не стареете, у степа есть много особенностей, там если в инпутвар добавить указатель на структуру, ПОУ раздувается прилично, как только на вход такого ПОУ подать только нужные элементы структуры, объем сокращается, правда это касается языков кроме ST там размер не так сильно изменяется
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

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

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    За всю жизнь ни разу ни на чем не написал функции/процедуры/ф.блока/подпрограммы/ метода/свойства/прерывания.. более 2-4 визуальных страниц. Сейчас по возможности стараюсь укладываться в 10..20 строк. Старею.
    В контроллере обрабатывались 2 сушильные установки, т.е. фактически кроме вызова 2-х ФБ "сушильная установка" более ничего там не было.
    Получается, что 60 Кб - это весь код контроллера. Разве это много?

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

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    да не, не стареете, у степа есть много особенностей, там если в инпутвар добавить указатель на структуру, ПОУ раздувается прилично, как только на вход такого ПОУ подать только нужные элементы структуры, объем сокращается,
    А там точно именно указатель передается ? При передаче указателя неимеет значения размер структуры на какой он указывает.


    ПОУ раздувается прилично,
    Если раздувается конечный программный код, то допускаю что компилятор неявно генерит перед каждым обращением к указателю код с проверкой его на предмет указывания им на допустимую область памяти (и/или на null )
    Последний раз редактировалось Валенок; 27.08.2015 в 14:18.

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

    По умолчанию

    Цитата Сообщение от SKV Посмотреть сообщение
    В контроллере обрабатывались 2 сушильные установки, т.е. фактически кроме вызова 2-х ФБ "сушильная установка" более ничего там не было.
    Получается, что 60 Кб - это весь код контроллера. Разве это много?
    Для всего проекта - норм. Туда ведь цепляются и системные вещи. Но если 60кБ это 1 программный блок, это не просто много, это п-ц.

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

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    А там точно именно указатель передается ? При передаче указателя неимеет значения размер структуры на какой он указывает.



    Если раздувается конечный программный код, то допускаю что компилятор неявно генерит перед каждым обращением к указателю код с проверкой его на предмет указывания им на допустимую область памяти (и/или на null )
    я там на ST пишу, может и ошибаюсь, просто парень чтоб что то залить постоянно стопил плк, удалял ПОУ и только после этого загружал, кажется в объявлениях у него было имя UDT, это как бы не совсем указатель, но он мне показывал, что когда все элементы структуры отдельно заводил в аргументы, объем ПОУ сокращался на порядок
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

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

    По умолчанию

    Что разрасталось - размер компилированого проекта / sizeof экземпляра / текст исходника ?
    Последний раз редактировалось Валенок; 27.08.2015 в 16:45.

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

Похожие темы

  1. ФБ "Кусочно-линейная функция", вопрос
    от Bulat в разделе Master SCADA 3
    Ответов: 6
    Последнее сообщение: 20.12.2022, 10:43
  2. ТРМ151 тип реле
    от Радик в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 27.11.2013, 07:21
  3. тип "время" и тип "вещественный"
    от _Asket_ в разделе Master SCADA 3
    Ответов: 3
    Последнее сообщение: 20.12.2010, 16:46
  4. Тип кабеля Ethernet
    от Sergey_Cherepovets в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 17.05.2010, 13:09

Ваши права

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