Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 16

Тема: Не передаются параметры функции

  1. #1

    По умолчанию Не передаются параметры функции

    Здравствуйте!!!Хотел уточнить.
    Есть Функц.блок Block() в нем есть условие:
    IF Условие THEN
    Func(Source);
    END_IF;
    У этого блока есть входная переменная, и она как раз передается в функцию.
    Условие истинно, т.е.должна вызваться функция и ей должен передаться параметр Source.Но параметр почему то не передается, но функция вызывается и напротив переменной знаки вопроса.Куда копать надо?

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

    По умолчанию

    для подстраховки, можете Func(Source) заменить на Func(IN:=Source), где IN это имя объявленной входной переменной в функции, а вообще знаки вопросов и должны быть, это же функция, она не сохраняет своих внутренних значений, выполнилась и потерялась сразу же. А если хотите все же посмотреть, то попробуйте не передавать переменную в функцию, а в функции использовать глобальную переменную и перед вызовом функции присваивать глобальной переменной, то что пытаетесь передать в функцию
    Когда после такого тестирования, работа функции Вас удовлетворит, вернетесь к прежнему исполнению
    Последний раз редактировалось capzap; 30.05.2012 в 15:11.

  3. #3

    По умолчанию

    Я уже пробывал Func(IN:Source) результатов не дало(

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

    По умолчанию

    точка останова в функции ?

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

    По умолчанию

    IN:Source так точно не даст, даже не откомпилится
    используйте глобальную

  6. #6

    По умолчанию

    сейчас по подробнее объясню:
    FUNCTION SetAlarmMessage : INT
    VAR_INPUT
    Source: BYTE := 0;
    AlarmNum: BYTE := 0;
    Priority: BYTE := 0;
    Data: REAL := 0;
    END_VAR
    VAR
    Alarm_Msg: State_Message;
    END_VAR
    State_Message-это структура:
    Тело функции:
    Alarm_Msg.Source := Source;
    Alarm_Msg.VarNum := AlarmNum;
    Alarm_Msg.VarType := 1;

    Alarm_Msg.Data := Data;
    Alarm_Msg._time := tick_PLC;

    Alarm_Buffer(In:=Alarm_Msg, WD:=TRUE);
    TYPE State_Message :
    STRUCT
    Source,
    VarNum,
    VarType: BYTE;
    Data: REAL;
    _time : DWORD;
    END_STRUCT
    END_TYPE
    а вызывается эта функция из ФБ:
    IF VE1.DataInt[V_Open].New = 1 AND VE1.DataInt[V_Open].Current = 1 THEN
    SetAlarmMessage(Automate_Num,101,0,1);
    END_IF;
    Условие выполняется и Automate_Num равен 2.Но в Alarm_Buffer не передаются параметры т.е. Source должен быть равен Automte_Num,но почему то он равен 0.

  7. #7

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    точка останова в функции ?
    Я вообще всю прогрмму отладчиком проходил, и когда дходил до вызова функции, она вызывалась,но там были одни лишь знаки "?"

  8. #8

    По умолчанию

    Есть какие нибудь мысли?

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

    По умолчанию

    там были одни лишь знаки "?"
    Это потому что вы смотрели на объявление, а не на экземпляр. Чтобы посмотреть экземпляр, закройте окно со знаками вопросов и попробуйте открыть снова из дерева проекта — появится окно, где в списке слева будет Instances, а в списке справа — все экземпляры функционального блока.

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

    По умолчанию

    У функций нет же экземпляров

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Функции.
    от Jonikk в разделе Программируемые реле
    Ответов: 11
    Последнее сообщение: 13.09.2011, 18:57
  2. повторение функции Fbd
    от Olk_74 в разделе ПЛК1хх
    Ответов: 15
    Последнее сообщение: 03.11.2010, 12:01
  3. трм-138 мат.функции
    от мастер в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 14.07.2008, 07:47
  4. Функции
    от mettled в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 13.02.2008, 10:16

Ваши права

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