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

Тема: Динамический вызов функций либо FB, и все-таки...

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

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

    ПЛК1хх поддерживают только КДС2.3
    Извиняюсь, capzap, не совсем верно понял первый Ваш вопрос и уточнение, поэтому отреагировал не вполне адекватно.
    Как я делаю (или точнее - хочу сделать):
    - создаю экземпляр FB (fbSNORMAL: fbNORMAL; fbSSTBY: fbSTBY; ).
    - получаю и сохраняю адрес
    - в ходе исполнения беру сохраненный адрес и вызываю метод fbInst^.run();
    (это то я даже проверил и "оно" работает)

    Индекс тоже можно получить на стадии инициализации, куда его только потом запихать не нашел. И этот путь "Закомментировал".
    В чистом Си (при программировании для ПЛК или МК) классы (и ООП в целом) не использую, там я вместо FB использую функции void*... (Объявляю прототип, позже объявляю, сохраняю указатель в массиве и т.д.)
    Тут с использованием функций в интересующем русле вообще тупик, поэтому и зашел со стороны FB, которые "появляются в памяти" и у которых есть действия.

    По поводу ПЛК1хх - промашка моя вышла, Вы правы. Тем более обиднее, и 63й и 73й для задачи подходят.

    И, видимо, придется махнуть рукой и делать как делал. Интересно, а вообще либа для CS2.3 существует, которая делает нечто вроде CB_CallFunctionByIndex в либе CAA_Callback.lib?...
    За ссылку про программистов НАСА спасибо Понравилось, видел раньше.
    Боюсь показаться слишком самоуверенным, но я не очень уважаю программистов НАСА и вообще... пишущих на клавиатурах без ЙЦУКЕН.
    Я там был (в том числе, в ЦУП Хьюстон кстати, но не в отделе разработки ПО), и своими глазами Видел, Кто пишет код для НАСА, "нефтянки" и иже с ними
    Последний раз редактировалось dorofeevms; 11.03.2019 в 12:29.

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

    По умолчанию

    Цитата Сообщение от dorofeevms Посмотреть сообщение
    - в ходе исполнения беру сохраненный адрес и вызываю метод fbInst^.run();
    (это то я даже проверил и "оно" работает)
    вызываете действие, а сами ФБ выполняются или только объявлены
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  3. #3

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    вызываете действие, а сами ФБ выполняются или только объявлены
    Вызываются только действия. Я полагаю, что компилятор организует и выделяет память для fb при объявлении, для действий где-то же он место выделяет.
    Есть мысли, что если вызвать блок поведение будет другим ? Или сделать что-то вроде "инициализации" блока , вызвав его код (добавить конечно) ?
    Можно попробовать вызывать сам FB (типа (fbInst^)() - на что-то страшное похоже ... ). А вообще интересно очень что получится... эх, cs нет на работе....
    У меня по ходу обсуждения появилась еще затея ... Ради эксперимента вечером покопаюсь еще.

Похожие темы

  1. Ответов: 8
    Последнее сообщение: 16.08.2016, 08:01
  2. Всё-таки как правильно работать с файлами?
    от Андрей Шатохин в разделе ПЛК1хх
    Ответов: 24
    Последнее сообщение: 17.02.2016, 16:39
  3. ЕКОН-134 Подводный камень или решение все-таки есть?
    от EFrol в разделе Сетевые технологии
    Ответов: 1
    Последнее сообщение: 15.10.2015, 10:17
  4. codesys 3.5 График! трасировка либо тренд
    от ChernovR в разделе СПК1xx (архив)
    Ответов: 4
    Последнее сообщение: 05.07.2015, 18:17
  5. Переменные в отладке функций.
    от Edik_Ponomarenko в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 30.12.2011, 10:01

Ваши права

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