Страница 5 из 6 ПерваяПервая ... 3456 ПоследняяПоследняя
Показано с 41 по 50 из 52

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

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

    По умолчанию

    А если мне нужно обратиться с гл прогр.в прогр1,с прог1 в прог2,тутже с гл в прог2 и тд. Токак? Можно конечно через главную но это больше программа.Как я понял поу можно объявить только в одном месте и только один раз.

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

    По умолчанию

    Цитата Сообщение от zendo057 Посмотреть сообщение
    С POU я разобрался с FB не очень.
    FB это тот же POU. В разделе объявления переменных задаете переменную, в качестве типа задаете имя функционального блока. Все. Экземпляр функционального блока описан. Теперь можете его использовать как POU. И таких переменных может быть много.
    Например, у Вас есть FB с именем PR. В PLC_PRG в разделе объявления переменных описываете переменную

    var1:PR;

    После чего в программе вызываете

    var1();

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

    По умолчанию

    Цитата Сообщение от zendo057 Посмотреть сообщение
    А если мне нужно обратиться с гл прогр.в прогр1,с прог1 в прог2,тутже с гл в прог2 и тд. Токак? Можно конечно через главную но это больше программа.Как я понял поу можно объявить только в одном месте и только один раз.
    Что значит обратиться к какой-либо программе? Тут могут быть разные варианты. Можно программе на вход послать какое-то значение или наоборот, с выхода прочитать результат. При вызове программа, используя входные параметры, выполняется и выдает результат с помощью выходных параметров. Если вы еще раз вызвали POU в этом же цикле ПЛК, с другими значениями, то выходные значения также изменятся. Если выходные значения POU, к примеру, меняют состояние дискретных выходов ПЛК, то они будут соотвествовать результату после последнего вызова POU.

    Если вам надо использовать повторяющийся код, но использовать его независимо, то используйте ФБ, для каждого независимого повторяющегося фрагмента свой экземпляр. Код будет один и тот же, а данные разные.

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

    По умолчанию

    При открытии ФБ вываливается ассистент ввода и два варианта:экземпляры и реализация.При нажатии одного и второго все работает, но при наж. реализация цепочка как бы не активна, хотя она включена.А это для чего?

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

    По умолчанию

    [QUOTE=amn;117064]Что значит обратиться к какой-либо программе?

    A если так.Есть поу1,поу2 и тд.В поу2 пишу програмку.Переменная вход контроллера-перем с поу1-перем с гл прогр-выход.Ведь перем с поу1 не видна в поу2.А с гл прогр поу1 тоже вызывается.А поу объявляется только в одном месте.

  6. #46
    Пользователь Аватар для Василий Кашуба
    Регистрация
    20.11.2011
    Адрес
    Ставрополь
    Сообщений
    2,525

    По умолчанию

    [QUOTE=zendo057;117066]
    Цитата Сообщение от amn Посмотреть сообщение
    Что значит обратиться к какой-либо программе?

    A если так.Есть поу1,поу2 и тд.В поу2 пишу програмку.Переменная вход контроллера-перем с поу1-перем с гл прогр-выход.Ведь перем с поу1 не видна в поу2.А с гл прогр поу1 тоже вызывается.А поу объявляется только в одном месте.
    Если переменные глобальные, то их видят все ПОУ, в которых они объявлены.
    Последний раз редактировалось Василий Кашуба; 20.08.2013 в 11:52.

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

    По умолчанию

    Цитата Сообщение от zendo057 Посмотреть сообщение
    Переменная вход контроллера-перем с поу1-перем с гл прогр-выход.Ведь перем с поу1 не видна в поу2.А с гл прогр поу1 тоже вызывается.А поу объявляется только в одном месте.
    Что-то я не совсем осознал вопрос. Можно его задать по-другому? Лучше на конкретном задании, чтобы было понятно о чем идет речь. Когда задаете имя входу или выходу контроллера то эти переменные уже глобальные и доступны везде. Когда вызываете программу, доступны только входные и выходные переменные этой программы. В нее (в программу) передаете в качестве параметров те переменные, которые хотите использовать внутри программы.

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

    По умолчанию

    Цитата Сообщение от amn Посмотреть сообщение
    Что значит обратиться к какой-либо программе? Тут могут быть разные варианты. Можно программе на вход послать какое-то значение или наоборот, с выхода прочитать результат. При вызове программа, используя входные параметры, выполняется и выдает результат с помощью выходных параметров. Если вы еще раз вызвали POU в этом же цикле ПЛК, с другими значениями, то выходные значения также изменятся. Если выходные значения POU, к примеру, меняют состояние дискретных выходов ПЛК, то они будут соотвествовать результату после последнего вызова POU.

    Если вам надо использовать повторяющийся код, но использовать его независимо, то используйте ФБ, для каждого независимого повторяющегося фрагмента свой экземпляр. Код будет один и тот же, а данные разные.
    Можно использовать по всякому (разному) , но ЗНАЧЕНИЯ ВЫХОДАМ ДОЛЖНЫ БЫТЬ ПРИСВОЕНЫ В ПОСЛЕДНЕМ ВЫЗОВЕ ( кроме прерываний) и в таком случае будет работать актуальный . Он по любому будет работать (актуальный - последний в цепочке вызовов) , это надо понять и принять ( и простить) , так работает программа на любом контроллере .
    Все промежуточные вычисления(и действия) имеют смысл если они остаются актуальными на момент ПОСЛЕДНЕГО ВЫЗОВА ,но результаты этих действий присвоенные промежуточным переменным будут актуальными. Например можно вызывать одну функцию с разными входными и результаты присваивать разным переменным , но с функциональным блоком это может не пройти , т.к будут рекурсии ( вернее псевдорекурсии) .
    ВООБЩЕ к чему это все???? Чего хотите конкретно , есть множество способов запуска программ "через цикл" (в разных циклах контроллера) с целью равномерной нагрузки на процессор.

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

    По умолчанию

    Благодарю amn и Василий Кашуба.Все так просто,глобальные переменные видны везде,а я не додул. Это сказывается отсутствие опыта.Но про ,,действие,,вы расскажите.Пожалуйста.

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

    По умолчанию

    Цитата Сообщение от zendo057 Посмотреть сообщение
    Благодарю amn и Василий Кашуба.Все так просто,глобальные переменные видны везде,а я не додул. Это сказывается отсутствие опыта.Но про ,,действие,,вы расскажите.Пожалуйста.
    "Действие" или Action есть подпрограмма , вызываемая из "своей" программы и исползует переменные своей программы или глобальные , результаты могут быть любыми.

    Опыт является результатом накопления результатов собственной деятельности. Поделится опытом можно с любым ,но усвоит его тот, кто достиг уровня усвоения , поэтому надо работать , пробовать и... накапливать собственный багаж, по другому бесполезно.

Страница 5 из 6 ПерваяПервая ... 3456 ПоследняяПоследняя

Похожие темы

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

Ваши права

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