Страница 799 из 1041 ПерваяПервая ... 299699749789797798799800801809849899 ... ПоследняяПоследняя
Показано с 7,981 по 7,990 из 10404

Тема: ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)

  1. #7981

    По умолчанию

    тогда что я сделал не так в посте выше - дублирую. Вложение 50935

  2. #7982

    По умолчанию

    мне объявлять переменные не нужно? они привязаны с библиотекой. я просто вызываю в программе функцию?

  3. #7983

    По умолчанию

    Объявлять нужно именно переменные, а вы пытаетесь объявить функцию. Начните с просмотра примеров, тогда все станет ясно.

  4. #7984

    По умолчанию

    можно пример
    или что у меня нет еще разВложение 50938

  5. #7985

    По умолчанию

    Цитата Сообщение от stepavel Посмотреть сообщение
    можно пример
    или что у меня нет еще разВложение 50938
    Вот так: x123:=Scale_R();

  6. #7986

    По умолчанию

    Вложение 50949
    какие параметры, входы и выходы нужно писать в скобках функции?
    x123:=SCALE_R(X, I_LO, I_HI, O_LO, O_HI); правильно я сделал? какой порядок очередности нужно соблюдать ввода в скобках в библиотеке это не написано, в библиотеке.

  7. #7987

    По умолчанию

    stepavel, Вы меня извините, конечно, но если для Вас вызов функции вызывает сложности, то может стоит начать с самого начала, а именно с мат. части по программированию на темы, например, "Что такое функция?", "Для чего нужна функция?" и т.д. и т.п.? На эти темы куча, уже существующей, информации на просторах сети Интернет, где все подробно расписано.

  8. #7988

    По умолчанию

    да тоже приношу свои извинения, работы много времени нет все читать и искать. да я понимаю что такое функция и для чего она нужна. но раз тема для новичков я и пишу в эту тему если нет желания можете не читать. если кому не сложно объяснить буду благодарен. У меня вопрос был как правильно на языке st в кодесис пишится функция мне ответили в примере для меня это понятно, но что в скобках нужно указывать формулу или вводные параметры функции? я прочитал справку кодесис, но хочется уточнения. как я понял что в скобках пишется через запятую вводные данные функции - это правильно? ввод воходных значений можно не через переменную а сразу число, и порядок вводных значений обязательно соблюдать?

  9. #7989

    По умолчанию

    stepavel Ага... работы много нетвремени песыт верно прастите тут запятая это мне функция нужна в общем лучше бы подсказали чем обижать и выпендриваться своими знаниями.
    Так, да? А уважить тех, у кого просишь помощи (написать понятно и ясно) - это тоже работы много? Может у нас всех тоже работы много, и нам много работы в текст без знаковы препинаний и абзацев вчитываться работы много... Пхх.

    Короче, функция на языке st в кодисись пишется при помощи отдельного POU которай надо дабавить в праэкд при пом прав кноп мыще но тебе функция нужна не вызов функциональуго блока нужен а это разные вещи функцыйа чтото вычисляет и возвращает результат о функционал блог работает как минепрограмма и может эметь много парам на вх-вых вот тебе это и надо ты объявляешь такой ФБ как переменную вразделе перем сверху так MyFB: FUNCTION_BLOCK; а потом в коде вставляешь его выхзов по кнопке F2 как вызов экземпляра и там будет чтоить типа MyFB (InVar :=, InVar2 :=, OutVar1 =>, OutVar2 =>) куда надо подставить те переменные куда ты хочешь передать или записать значения это если ты вызываешь заранее сделанный FB из библиотеки например таймер счётчик а свои функции надо объявлять через POU а не в VAR это не паскаль ни разу

    Вот тут написан верный ответ. У меня тоже, как у тебя - работы много времени нет всё писать разборчиво разберись сам

  10. #7990

    По умолчанию

    Cs-Cs, не нагружайте человека дополнительной информацией. Ему нужна функция, а не функциональный блок. Не нужно смешивать все в кучу - еще больше запутается. Что такое FB, как он работает и чем от простой функции отличается - это уже "темы" последующих "уроков".
    лучше бы подсказали чем обижать и выпендриваться своими знаниями
    Даже и мысли не возникало кого-то обидеть. Дело не в выпендреже и не в блеске знаний, а в том, что человеку (на будущее) нужно дать не просто информацию, а знания, чтобы при написании той или иной строчки кода, человек понимал (сам, своей головой) что он пишет и зачем. У меня, например, вызывает сложности написание доходчивого (для другого человека) толкования, с примерами (в картинках), на "несколько листов А4". Мои тараканы, конечно, знают и понимают то, что им нужно, но по-своему. По азам есть много авторов, которые, на мой взгляд, более подробно и грамотно смогут объяснить, в изложенных ими материалах, те или иные моменты с нюансами/тонкостями, с примерами (примеры очень важны, потому как теория без практики очень плохо усваивается и быстро забывается). Первое, что попалось под руку - "РП ПЛК63.73.pdf", страница 32 - краткое описание, что из себя представляет функция. Вот тут есть информация как вызывать функцию. Чтобы вызвать функцию, нужно чтобы она присутствовала в проекте, не важно где, написанная собственноручно в перечне POU или в добавленной к проекту библиотеке.
    Пример от меня: Задача - "склеить" две строки в одну. Для этого можно воспользоваться функцией "CONCAT" из библиотеки "STANDARD.LIB". Если библиотека не добавлена в проект, то необходимо ее добавить, для этого переходим на вкладку "Ресурсы", двойной клик по "Менеджер библиотек", правой кнопкой мыши в окне перечня библиотек, выбираем "Добавить библиотеку...", идем в (путь по умолчанию) "C:\Program Files\3S Software\CoDeSys V2.3\Library", ищем там файл "STANDARD.LIB", двойной клик по нему. Всё, библиотека добавлена в проект.
    Код:
    PROGRAM PLC_PRG
    VAR
       Str1 : STRING; (*первая склеиваемая строка*)
       Str2 : STRING; (*вторая склеиваемая строка*)
       Str3 : STRING; (*Конечный результат*)
    END_VAR
    
       Str1 := 'Привет,';
       Str2 := ' МИР!';
       Str3 := CONCAT(Str1, Str2);
    В результате работы функции "CONCAT", мы получим значение "Привет, МИР!" в переменной Str3.

    Бывает необходимо, чтобы функция выполнила какие-либо действия, но возвращаемый ею (функцией) результат нам не важен. В таком случае, функция просто вызывается в теле кода с параметрами. Например, есть такая функция, которая очищает экран ПЛК63 (например) - "ClearScreen", находящаяся в библиотеке "Work_Mode.lib" (тоже должна быть добавлена в проект), которая после выполнения возвращает значение типа DINT (при успешном выполнении номер очищенного экрана или -1 в случае ошибки). Нас, допустим, не интересует возвращаемое значение, нам нужно, чтобы функция просто выполнила какие-то действия (в нашем случае очистила экран), тогда функция будет вызываться так:
    Код:
    PROGRAM PLC_PRG
    VAR
    END_VAR
       ClearScreen(0);

    Пример собственноручно написанной функции:
    В проекте, на вкладке "POU", жмем правой кнопки мыши по изображению папки с названием "POU" в дереве проекта, выбираем "Добавить объект...", в открывшемся окне вводим имя добавляемой нами функции в поле "Имя нового POU", например, "MathsPlus", выбираем "Тип POU" - "Функция", выбираем "Язык реализации" - "ST", выбираем "Тип результата:" - "INT", жмем кнопку "ОК". В дереве проекта появится новый POU с именем "MathsPlus" и откроется окно для редактирования кода. В области переменных оставляем только VAR_INPUT.

    Код:
    FUNCTION MathsPlus : INT
    VAR_INPUT
       Par1 : INT;
       Par2 : INT;
    END_VAR
       MathsPlus := Par1 + Par2;
    Открываем "PLC_PRG", добавляем в область объявления переменных переменную "Res", в области кода вызываем, добавленную нами собственноручно, функцию с параметрами (с присваиванием/передачей значений переменным функции):
    Код:
    PROGRAM PLC_PRG
    VAR
       Res : INT;
    END_VAR
       Res := MathsPlus(1, 3);
    В результате работы функции и кода в "PLC_PRG", переменная "Res" будет содержать значение 4 (четыре).

    Как-то так... озадачили меня с утра... тараканы еще проснуться не успели, а я их палкой...

Страница 799 из 1041 ПерваяПервая ... 299699749789797798799800801809849899 ... ПоследняяПоследняя

Метки этой темы

Ваши права

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