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

Тема: Codesys 3.5 - FB или FUN? Что оптимальнее использовать???

  1. #1

    По умолчанию Codesys 3.5 - FB или FUN? Что оптимальнее использовать???

    Добрый день.

    Занимаюсь написанием программы на ПЛК210 и задался вопросом:
    А как писать код более оптимизированно?

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

    Подскажите, какая разница, с точки зрения нагрузки на процессор, в использовании FB и FUN?

  2. #2

    По умолчанию

    Вряд ли это непосредственно связанные вещи - нагрузка процессора и ваш выбор между FB и FUN.

    А внутренние состояния при использовании функций вы тоже будете в структурах хранить?

  3. #3

    По умолчанию

    Если они требуют сохранения данных в течении нескольких циклов обработки то да. Если же есть переменные, которые необходимы только во время обработки (например какой-нибудь промежуточный буфер), то они будут расположены внутри функции, чтобы при выходе из функции они просто исчезали.

  4. #4

    По умолчанию

    Цитата Сообщение от Androidmatis Посмотреть сообщение
    Если они требуют сохранения данных в течении нескольких циклов обработки то да. Если же есть переменные, которые необходимы только во время обработки (например какой-нибудь промежуточный буфер), то они будут расположены внутри функции, чтобы при выходе из функции они просто исчезали.
    Можно использовать ФБ и INOUT для работы со структурой

  5. #5

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    Можно использовать ФБ и INOUT для работы со структурой
    Как вариант. При вызове функции, в оперативной памяти выделяется место под переменные функции, а после выхода они удаляются, итак происходит при каждом вызове. А при создании блока память выделяется один раз и до конца работы программы. И мне был интересен момент как раз таки того, на сколько сильно отличается нагрузка процессора при постоянном вызове функции и выделении памяти для функции от вызова блока, который уже жестко определен в памяти.

  6. #6

    По умолчанию

    ПОЖАЛУЙСТА! Я написал для новичков отличную статью про разницу между FUN и FB!
    Вот она: https://cs-cs.net/funkciya-fun-i-fun...esys-owenlogic
    ПОЖАЛУЙСТА почитай её! Там прям как раз есть разные примеры применения и даже про VAR_IN_OUT рассказано.

    Про память переживать не надо. CodeSys 3.5 - это НЕ микроконтроллер, и там выделение мелких объёмов памяти не так важно, как в микроконтроллерах.
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab

  7. #7

    По умолчанию

    Цитата Сообщение от Androidmatis Посмотреть сообщение
    Как вариант. При вызове функции, в оперативной памяти выделяется место под переменные функции, а после выхода они удаляются, итак происходит при каждом вызове. А при создании блока память выделяется один раз и до конца работы программы. И мне был интересен момент как раз таки того, на сколько сильно отличается нагрузка процессора при постоянном вызове функции и выделении памяти для функции от вызова блока, который уже жестко определен в памяти.
    Я думаю, что в подавляющем большинстве задач ПЛК (тем более такого как ПЛК210) более важен понятный легко модифицируемый и поддерживаемый код, чем ловля микросекунд, получение низкой нагрузки на процессор и перетасовка данных в структурах для экономии памяти.
    Конечно, если в программе производится много вызовов одного и того-же ФБ или функции, на его оптимизацию имеет смысл потратить время

  8. #8

    По умолчанию

    PRG и структуры в VAR IN OUT тоже прекрасно работают

Похожие темы

  1. Так какую версию CoDeSyS использовать?
    от Hoolde в разделе СПК2xx (архив)
    Ответов: 4
    Последнее сообщение: 10.06.2018, 15:30
  2. как использовать SysComSetSettingsEx ?
    от Михаил_И в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 08.02.2018, 08:29
  3. Что можно использовать ?
    от ValeriyIm в разделе Подбор Оборудования
    Ответов: 7
    Последнее сообщение: 15.08.2013, 08:06
  4. трм 133 - второй цап - как его использовать?
    от Const в разделе Подбор Оборудования
    Ответов: 2
    Последнее сообщение: 03.09.2010, 14:29
  5. как использовать буфер
    от николай72 в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 18.04.2009, 21:25

Ваши права

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