Страница 4 из 6 ПерваяПервая ... 23456 ПоследняяПоследняя
Показано с 31 по 40 из 53

Тема: Организация программы для ПЛК (переход с AVR на ПЛК)

  1. #31

    По умолчанию

    Цитата Сообщение от morcat Посмотреть сообщение
    В общем буду делать так:

    1) В конигурации ПЛК в ModBus(slave) "забиваю" переменные необходимые для отправки на панель с несколько изменёнными именами. Если имена переменных будут одинаковые - компилятор ругается.

    Вложение 5028

    2) В Global_Variables(RETAIN) задаю переменную с таким же адресом уже с начальным значением:
    Код:
    PVent_Enable AT %QX7.1.0.0: BOOL := TRUE;
    По крайней мере так работает.
    и какой смысл в дублировании переменных?

  2. #32
    Пользователь
    Регистрация
    03.10.2011
    Адрес
    Псков
    Сообщений
    48

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    А если в системных событиях, взять событие старт, установить галочку и создать этому событию функцию, в которой переменной из модбас присвоить начальное значение, так не получится?
    Спасибо за идею. Получается, но не всё.
    Выбираем событие старт, устанавливаем галочку, справа пишем название POU (например INIT), которое будет вызываться при событии СТАРТ. В самом POU пишем что нам надо.
    Далее в PLC-PRG(CFC) вводим элемент с названием INIT. После изучения документации на библиотеку SysLibCallback получаем:
    Event.jpg

    Так и не понял: что такое dwFilter.

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

    Коллеги: что делаю не так?

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

    По умолчанию

    а зачем её где то еще добавлять, ПЛК стартует, наступает событие старт, выполняется единожды функция, где Вы не смотря на область объявления, присваиваете нужным переменным свои первоначальные значения и все.
    загрузите прогу, после старта задайте какой-нибудь переменной отличное от начального значение, нажмите стоп потом старт и переменная должна обновится до первоначального

  4. #34
    Пользователь
    Регистрация
    03.10.2011
    Адрес
    Псков
    Сообщений
    48

    По умолчанию

    а зачем её где то еще добавлять, ПЛК стартует, наступает событие старт, выполняется единожды функция
    В том-то и дело, что функция почему-то не выполняется, ни единожды, ни циклически - вообще никак.

    Что ещё нужно сделать помимо
    Выбираем событие старт, устанавливаем галочку, справа пишем название POU (например INIT), которое будет вызываться при событии СТАРТ. В самом POU пишем что нам надо.
    Или как правильно вызвать эту самую функцию?

  5. #35
    Пользователь
    Регистрация
    03.10.2011
    Адрес
    Псков
    Сообщений
    48

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    вроде все правильно, у меня работает, смотрите видео
    Вроде всё правильно, а у меня не работает. Проект в студию:
    П17_В27.rar

    Отслеживаю модбас переменную PVent_Enable.

  6. #36
    Пользователь
    Регистрация
    03.10.2011
    Адрес
    Псков
    Сообщений
    48

    По умолчанию

    Целевая платформа выбрана PLC160-L.

    Target.jpg

  7. #37
    Пользователь
    Регистрация
    03.10.2011
    Адрес
    Псков
    Сообщений
    48

    По умолчанию

    Цитата Сообщение от swerder Посмотреть сообщение
    и какой смысл в дублировании переменных?
    Как такового дублирования не происходит. При таком объявлении
    В Global_Variables(RETAIN) задаю переменную с таким же адресом уже с начальным значением
    никаких новых переменных не появляется - проверил по данным компиляции (Использовано данных: Энергонезависимых данных: )

    Поскольку событие СТАРТ у меня почему-то не работает, остаётся действовать таким способом (пост #30).

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

    По умолчанию

    не сдавайтесь, в конфигурации ПЛК есть еще модуль статистика, а там битовый канал "Power Status", его привязываете к такому коду
    rtg(CLK:=power_status);
    IF rtg.Q THEN INIFUN(0,0,0); END_IF
    где rtg - это R_TRIG,а INIFUN та функция где устанавливаете первоначальные значения

  9. #39
    Пользователь
    Регистрация
    03.10.2011
    Адрес
    Псков
    Сообщений
    48

    По умолчанию

    Загадка разрешилась. EVENT_START и POWER_STATUS работают.

    Ключик: режим эмуляции нужно убрать. Работает только с реальным контроллером (online)!

    Спасибо capzap и swerder за помощь

  10. #40
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    Цитата Сообщение от morcat Посмотреть сообщение
    Загадка разрешилась. EVENT_START и POWER_STATUS работают.
    Ключик: режим эмуляции нужно убрать. Работает только с реальным контроллером (online)!
    А вот у меня что-то не получается с модулем Статистика. запускаю с реальным ПЛК, в онлайн вижу нулевые значения всех переменных. Что не так?
    111129_StatisticsModule.jpg

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

Похожие темы

  1. Организация работы системы
    от DSV в разделе Сетевые технологии
    Ответов: 16
    Последнее сообщение: 21.08.2011, 17:39
  2. Организация связи PLC - modbus - HMI
    от interprog в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 09.06.2010, 23:35
  3. организация сети по Rs485 (плк, ип320, пк)
    от lsass в разделе Сетевые технологии
    Ответов: 6
    Последнее сообщение: 29.11.2009, 21:30
  4. Организация работы по сети
    от dmm в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 30.07.2009, 15:46

Ваши права

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