Страница 627 из 1041 ПерваяПервая ... 127527577617625626627628629637677727 ... ПоследняяПоследняя
Показано с 6,261 по 6,270 из 10404

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

  1. #6261
    Пользователь Аватар для Эдуард_Н
    Регистрация
    22.09.2014
    Адрес
    Курган
    Сообщений
    1,612

    По умолчанию

    Подскажите я правильно вот это:Вложение 35545 изобразил в ST: Вложение 35546

  2. #6262

    По умолчанию

    Цитата Сообщение от RV9WFJ Посмотреть сообщение
    что мешает просто вызов основной программы сделать по состоянию дискретного входа?
    В PLC_PRG:
    IF bIn1 THEN
    ProgMain();
    END_IF;
    Не силен в ST. Как можно реализовать на CFC? И потом мне не нужно вызывать программу.
    Мне нужно в любой момент остановить ее.

  3. #6263

    По умолчанию

    Приветствую.
    Не совсем понял, как пользоваться режимом работы modbus мастера Work mode - by command.
    Для записи или считывания регистров слейва мне достаточно записать 0xFF в регистр %QB8.2.0? Как будет это работать, если я каждый цикл ПЛК буду писать это значение?
    Спасибо.
    Вложение 35552

  4. #6264

    По умолчанию

    Здравствуйте.
    Можно ли на ПЛК160 поднять одновременно Modbus TCP мастер и слейв.
    Стоит задача: по модбас вычитывать данные с нескольких устройств (до восьми), производить над этими данными ряд арифметических действий, а потом отправлять результат на другое устройство (одно), тоже по модбас.
    Все эти устройства в одной сети. Всюду Modbus TCP.

  5. #6265

    По умолчанию

    Всем привет.

    Делаю первые шаги ПЛК100-24-P-L.

    Хочу сделать так:

    При срабатывании входа DI0 (контролируется Триггером по переднему фронту TrDI0) должен вызываться таймер TOF - включать выход yellow1 и спустя 5 сек. - выключать его.

    Если просто в тело PLC_PRG написать:

    TOF_Yellow1(IN:=TrDI0, PT:=T#5s , Q=> , ET=> );
    yellow1:=TOF_Yellow1.Q;

    то работает;

    а если написать

    IF TrDI0=TRUE THEN

    TOF_Yellow1(IN:=TRUE, PT:=T#5s , Q=> , ET=> ); ВЗВОЖУ ТАЙМЕР должен появиться Q=TRUE;
    TOF_Yellow1.IN:=FALSE; ЗАПУСКАЮ ОТСЧЁТ должен начаться отсчёт
    yellow1:=TOF_Yellow1.Q; Выход yellow1 = TRUE с момента взвода таймера и до конца отсчёта.
    уходим на проверку IF
    END_IF

    не работает.

    Что я делаю не так?

    Спасибо.

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

    По умолчанию

    Цитата Сообщение от Garikrus Посмотреть сообщение
    Всем привет.

    Делаю первые шаги ПЛК100-24-P-L.

    Хочу сделать так:

    При срабатывании входа DI0 (контролируется Триггером по переднему фронту TrDI0) должен вызываться таймер TOF - включать выход yellow1 и спустя 5 сек. - выключать его.

    Если просто в тело PLC_PRG написать:

    TOF_Yellow1(IN:=TrDI0, PT:=T#5s , Q=> , ET=> );
    yellow1:=TOF_Yellow1.Q;

    то работает;

    а если написать

    IF TrDI0=TRUE THEN

    TOF_Yellow1(IN:=TRUE, PT:=T#5s , Q=> , ET=> ); ВЗВОЖУ ТАЙМЕР должен появиться Q=TRUE;
    TOF_Yellow1.IN:=FALSE; ЗАПУСКАЮ ОТСЧЁТ должен начаться отсчёт
    yellow1:=TOF_Yellow1.Q; Выход yellow1 = TRUE с момента взвода таймера и до конца отсчёта.
    уходим на проверку IF
    END_IF

    не работает.

    Что я делаю не так?

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

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  7. #6267

    По умолчанию

    Capzap, спасибо.

    Я никак не пойму - как выполняется программа на ST?

    Контроллер каждую строчку друг за дружкой читает и выполняет?

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

    Что такое этот пресловутый цикл? - Пробежка от начала программы до конца?

    Почему даже 1 раз не запускается у меня таймер в IF ?

    Один же раз в каком-нибудь цикле TrDI0 становится TRUE - я же жму кнопку и Триггер видит это.


    Я изменил TrDI0 на просто сигнал входа DI0.

    IF DI0=TRUE THEN

    TOF_Yellow1(IN:=TRUE, PT:=T#5s , Q=> , ET=> ); ВЗВОЖУ ТАЙМЕР должен появиться Q=TRUE;
    TOF_Yellow1.IN:=FALSE; ЗАПУСКАЮ ОТСЧЁТ должен начаться отсчёт
    yellow1:=TOF_Yellow1.Q; Выход yellow1 = TRUE с момента взвода таймера и до конца отсчёта.
    уходим на проверку IF
    END_IF

    В этом случае при нажатии кнопки - DI0 - включается выход yellow1 и продолжает быть true. Таймер не срабатывает на начало отсчёта даже после отпускания кнопки.

    Почему IF даже один раз не выполняется? Не могу понять.

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

    По умолчанию

    смысл таймера в контроллерах это зафиксировать по фронту входного сигнала текущее время и далее выполняя каждый прогон программы сравнивать текущее время с запомненным, если разница стала превышать, установленное значение в РТ, то таймер завершает свою работы и выдает на выход соответствующее состояние. Поэтому ни кто ни кого не ждет.
    Постройте сперва самую простую комбинацию, например TOF_Yellow1(IN:=NOT TOF_Yellow1.Q, PT:=T#5s) без всяких условий и посмотрите как это работает, раскройте в онлайне его внутренности в окне объявлений и понаблюдайте
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  9. #6269

    По умолчанию

    Capzap, я посмотрел - всё ясно, как устроен TOF TON и т.д. Мягко говоря - непривычно.

    Как запустить ОТДЕЛЬНЫЙ таймер, отдельно от программы? Который сам считает свою задержку и независимо от цикла делает то, что ему сказано?

    Здесь что, и инструкции в FOR DO будут исполняться не пока FOR сравняется с заданным, а один раз, затем, когда программа прокрутится по кругу - ещё раз?

    Непонятно... где объясняется, как выполняется программа и что такое цикл?

    Хочу сделать простейшее - по нажатию на кнопку лампа должна включится и погаснуть 10 раз. 2 сек. горит, 3 не горит.

    И это должно быть в IF.

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

    По умолчанию

    Цитата Сообщение от Garikrus Посмотреть сообщение
    Capzap, я посмотрел - всё ясно, как устроен TOF TON и т.д. Мягко говоря - непривычно.

    Как запустить ОТДЕЛЬНЫЙ таймер, отдельно от программы? Который сам считает свою задержку и независимо от цикла делает то, что ему сказано?

    Здесь что, и инструкции в FOR DO будут исполняться не пока FOR сравняется с заданным, а один раз, затем, когда программа прокрутится по кругу - ещё раз?

    Непонятно... где объясняется, как выполняется программа и что такое цикл?

    Хочу сделать простейшее - по нажатию на кнопку лампа должна включится и погаснуть 10 раз. 2 сек. горит, 3 не горит.

    И это должно быть в IF.
    Вы хотя бы с одним из этих документов ознакомились? http://www.owen.ru/catalog/codesys_v2/51162335
    Бессмысленно объяснять если основ не знаете
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

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

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

Ваши права

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