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

Тема: функциональный блок с тремя входами

  1. #1

    По умолчанию функциональный блок с тремя входами

    объявил фб
    .....................
    VAR_INPUT
    inL:WORD;
    in_real_TD:REAL;
    in_real_resistor_L:REAL;
    END_VAR
    VAR_OUTPUT
    outL:WORD;
    END_VAR
    VAR
    l:word;
    tempL: REAL;
    //in_real: REAL;
    END_VAR
    ...........................................
    тело
    ..........................
    l:=inL;
    IF masL[l]-in_real_TD > deltaL THEN
    masL[l]:=in_real_resistor_L;
    masTD[l]:=in_real_TD;
    arrN[l]:=(td-td_nul)/k_td;
    tempL:=masL[l] -deltaL;
    l:=l+1;
    outL:=l;
    masL[n]:=tempL ;
    END_IF
    .......................
    как в тексте программы передатьв него значения и из него тоже???
    fbL(inL:=n;in_real_TD:=td;in_real_resistor_L:=t1; ); //дает ошибку
    Последний раз редактировалось in37usd; 28.04.2015 в 15:51.

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

    По умолчанию

    Вы для каждого вопроса будете тему создавать, лучше внимательно исследуйте свой код, какого типа у Вас переменная outL ?
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

  3. #3

    По умолчанию

    word
    нет вопросов -нет работы

  4. #4

    По умолчанию

    В CODESYS нажимаете F1. В Справке - Понятия и основные компоненты--->Программные компоненты-"POU"--->Функциональный блок--->Вызов функционального блока.

    Обращайте внимание на синтаксис, в частности, проверьте, сколько ";" вы используете в вызове функционального блока, и сколько нужно на самом деле.

  5. #5

    По умолчанию

    у меня рус help и нет выз фб
    посмотрю в англ
    Последний раз редактировалось in37usd; 28.04.2015 в 16:12.

  6. #6

    По умолчанию

    Цитата Сообщение от in37usd Посмотреть сообщение
    у меня рус help и нет выз фб
    Вы уверены?

    28-04-2015 16-07-58.png

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

    По умолчанию

    Цитата Сообщение от in37usd Посмотреть сообщение
    объявил фб
    .....................
    VAR_INPUT
    inL:WORD;
    in_real_TD:REAL;
    in_real_resistor_L:REAL;
    END_VAR
    VAR_OUTPUT
    outL:WORD;
    END_VAR
    VAR
    l:word;
    tempL: REAL;
    //in_real: REAL;
    END_VAR
    ...........................................
    тело
    ..........................
    l:=inL;
    IF masL[l]-in_real_TD > deltaL THEN
    masL[l]:=in_real_resistor_L;
    masTD[l]:=in_real_TD;
    arrN[l]:=(td-td_nul)/k_td;
    tempL:=masL[l] -deltaL;
    l:=l+1;
    outL:=l;
    masL[n]:=tempL ;
    END_IF
    .......................
    как в тексте программы передатьв него значения и из него тоже???
    fbL(inL:=n;in_real_TD:=td;in_real_resistor_L:=t1; ); //дает ошибку
    теперь вижу что подправили, а дальше что, Вам не видно что у вас подчеркивается красным цветом?
    word напишите заглавными буквами
    комменты ввиде // не проходят, используйте (* *)
    (inL:=2, in_real_TD:=36.6, in_real_resistor_L:=25.5, outL=>x ); это выдал асистент(нажатие на клавишу F2)
    вобщем читайте документацию
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

  8. #8

    По умолчанию

    у меня уже без ошибок
    а как писать , если три выхода- три указателя ЧЕРЕЗ ЗАПЯТУЮ????
    Последний раз редактировалось in37usd; 28.04.2015 в 16:37.

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

    По умолчанию

    Цитата Сообщение от in37usd Посмотреть сообщение
    у меня уже без ошибок
    а как писать , если три выхода??
    так же, либо через => , либо экземпляр_фб.выходная_переменная
    в документации всё это расписано
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

  10. #10

    По умолчанию

    а где тут задавать новые появившиеся вопросы - прямо в этой теме??
    у меня проблема такая :
    условие
    if masL[n]-t1>deltaL Then

    где masL[n] real
    t1-real
    deltaL:real:=184.4;
    "СРАБАТЫВАЕТ "по разному - в лучшем случае при 185=masL[n]-t1, а в худшем при 536=masL[n]-t1
    что делать?
    оно всегда должно срабатывать при 185!!!!!!!!!!!!!
    Последний раз редактировалось in37usd; 29.04.2015 в 14:23.

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

Похожие темы

  1. LD + функциональный блок
    от дрю в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 26.04.2014, 09:47
  2. Функциональный блок в PLC_PRG
    от -=OLeGA=- в разделе ПЛК1хх
    Ответов: 7
    Последнее сообщение: 20.10.2008, 20:32
  3. Программа и функциональный блок
    от Geniu$ в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 27.05.2008, 21:25

Ваши права

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