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

Тема: Програмные компоненты

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

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

    По умолчанию

    Цитата Сообщение от zendo057 Посмотреть сообщение
    Что бы все понять создал пример. Запускаю на симуляторе,включаю вход с1, реагирует только PLC_PRG.Может поправите на примере, как обратится к другим PRG.
    неплохо бы еще воспользоваться меню КДС: Проект->Контроль->Неиспользуемые переменные чтоб убрать ненужный мусор

  2. #2
    Пользователь
    Регистрация
    11.07.2012
    Адрес
    г. МИНСК
    Сообщений
    544

    По умолчанию

    Ура! Вроде все получилось. Все работает. Только вот компилятор говорит- Предупреждение 1503:POU не имеет выходов. Результату присвоено значение TRUE. Так и должно быть? Теперь буду учиться создавать FB.

  3. #3
    Пользователь
    Регистрация
    19.11.2011
    Адрес
    г. Белгород
    Сообщений
    357

    По умолчанию

    Цитата Сообщение от zendo057 Посмотреть сообщение
    Ура! Вроде все получилось. Все работает. Только вот компилятор говорит- Предупреждение 1503:POU не имеет выходов. Результату присвоено значение TRUE. Так и должно быть? Теперь буду учиться создавать FB.
    Наверное в вашем ФБ есть входы и нет выходов. Если так и было задумано, то нормально. Но обычно ФБ выполняет какую-то отдельую задачу. И для этого ему нужды входные параметры. После выполнения он должен выдать результат, вызвавшей его программе, для этого нужны выходные параметры. Если нет выходных параметров, то очевидно, что ФБ использует глобальные переменные, которые доступты везде. Старайтесь не использовать глобальные переменные, только в крайнем случае, если это оправдано. Это избавит вас от ошибок, которые трудно будет найти.

  4. #4
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,799

    По умолчанию

    Цитата Сообщение от amn Посмотреть сообщение
    Наверное в вашем ФБ есть входы и нет выходов. Если так и было задумано, то нормально. Но обычно ФБ выполняет какую-то отдельую задачу. И для этого ему нужды входные параметры. После выполнения он должен выдать результат, вызвавшей его программе, для этого нужны выходные параметры. Если нет выходных параметров, то очевидно, что ФБ использует глобальные переменные, которые доступты везде. Старайтесь не использовать глобальные переменные, только в крайнем случае, если это оправдано. Это избавит вас от ошибок, которые трудно будет найти.
    А , чё это ?????????
    Если нет выходных параметров то очевидно головотяпство , но на выполнение программы это не влияет .
    Причем здесь глобальные переменные ???? В чем они виноваты???? Если вы претендуете на роль учителя и благодетеля своими примерами - корректно выражайтесь. Человеку , не желающему разбиратся , "глобальная переменная" ни о чем не говорит.
    Например в моих проектах 90% переменных глобальные и все работает .

    Мож книгу написать . Так её читать не будут или начнут и бросят , ведь может быть на форуме найдется добрячёк , который весь код напишет.

  5. #5
    Пользователь
    Регистрация
    11.07.2012
    Адрес
    г. МИНСК
    Сообщений
    544

    По умолчанию

    Уважаемый Sergey666. Я еще совсем новичек и если знаете-подскажите, как это делает amn идругие учасники. Но нравоучения,да еще в такой форме,поменьшей мере даже в чем то оскарбительны.Теперь по теме.Я пытаюсь создать не FB a POU Вкратце еще раз. большая программа с входами и выходами все работает. Хочу разбить ни подпраграммы .Делаю следующее:1.Создаю новые POU с названиями

    2 В PLC_PRG в новой строке создаю напр. TON переименовую его в название POU
    3.Принимает такой вид(во вложении)
    4.компилирую-выдает предупреждения по каждому POU. Это нормально?
    Вложения Вложения
    • Тип файла: rar POU.rar (24.7 Кб, Просмотров: 159)

  6. #6
    Пользователь
    Регистрация
    19.11.2011
    Адрес
    г. Белгород
    Сообщений
    357

    По умолчанию

    Цитата Сообщение от Sergey666 Посмотреть сообщение
    А , чё это ?????????
    Если нет выходных параметров то очевидно головотяпство , но на выполнение программы это не влияет .
    Причем здесь глобальные переменные ???? В чем они виноваты???? Если вы претендуете на роль учителя и благодетеля своими примерами - корректно выражайтесь. Человеку , не желающему разбиратся , "глобальная переменная" ни о чем не говорит.
    Например в моих проектах 90% переменных глобальные и все работает .

    Мож книгу написать . Так её читать не будут или начнут и бросят , ведь может быть на форуме найдется добрячёк , который весь код напишет.
    Хороший тон программирования предполагает использовать локальные переменные всюду, где это возможно, и стараться не использовать глобальных переменных вообще, кроме случаев, где это оправдано. Разве не так?

    На роль учителя мне еще рано претендовать. Мне нравится этот форум за то, что тут "живут" отзывчивые люди. Мне помогают, и я стараюсь помочь, чем могу. Заодно и учусь в процессе.

    С уважением, Михаил.

  7. #7
    Пользователь
    Регистрация
    11.07.2012
    Адрес
    г. МИНСК
    Сообщений
    544

    По умолчанию

    Но если одни и те же переменные в разных POU то как без глобальных. Локальные ведь не будут видны . И вы мне скажите предупреждения которые выдает компилятор. ЭЭЭто нормально. Или должно быть 0 ошибок 0 предупреждений. проект в LD.

  8. #8
    Пользователь
    Регистрация
    19.11.2011
    Адрес
    г. Белгород
    Сообщений
    357

    По умолчанию

    Цитата Сообщение от zendo057 Посмотреть сообщение
    Но если одни и те же переменные в разных POU то как без глобальных. Локальные ведь не будут видны . И вы мне скажите предупреждения которые выдает компилятор. ЭЭЭто нормально. Или должно быть 0 ошибок 0 предупреждений. проект в LD.
    В основной программе (PLC_PRG) у вас есть какие-то переменные. Чтобы они стали доступны POU надо их передать ему в качестве параметров. Чтобы такая возможность появилась, в POU объявляете переменные следующим образом:

    VAR_INPUT
    var1: BOOL; (*первый входной параметр блока*)
    var2: BOOL; (*второй входной параметр блока*)
    END_VAR
    VAR_OUTPUT
    q1: BOOL; (*первый выходной параметр блока*)
    q2: BOOL; (*второй выходной параметр блока*)
    END_VAR
    VAR
    var3: BOOL; (*первая локальная переменная блока*)
    var4: BOOL; (*вторая локальная переменная блока*)
    END_VAR

    В этом случае в блоке POU появятся дополнительные входы и выходы. Обратите внимание, у вас в примере у блоков нет параметров и поэтому они выглядят пустыми квадратиками.

    Кстати, имена переменных, которые вы передаете в качестве параметров в POU из основной программы не обязательно должны быть такими же как и объявленные внутри POU.

    Если сделаете все правильно будет 0 ошибок и 0 предупреждений.

Похожие темы

  1. Ответов: 3
    Последнее сообщение: 30.09.2010, 21:30
  2. не могу найти компоненты;v2.3
    от ГоршенинВладимир в разделе ПЛК1хх
    Ответов: 5
    Последнее сообщение: 21.12.2009, 10:21

Ваши права

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