Страница 301 из 1190 ПерваяПервая ... 201251291299300301302303311351401801 ... ПоследняяПоследняя
Показано с 3,001 по 3,010 из 11900

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

  1. #3001
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    1. Если значение с аналогового входа меньше определенной уставки в течение некоторого времени (единицы секунд, точность не важна), то выполнить определенное действие, при этом нужно не блокировать основной поток, т.е. "получить значение со входа, подождать 10 секунд, опять получить значение", а в это время контроллер более ничем не занят не подходит.
    Код:
    VAR
        timer: TON := (PT := T#10s);
     END_VAR
    
    timer(IN := AI1 < 5);
    IF timer.Q THEN
     (* Значение ниже уставки дольше 10 секунд *)
     (* Выполняем определённые действия *)
     END_IF
    Кстати на ПЛК вообще не принято вешать поток. Об этом можно не сообщать дополнительно. Если вы напишете что-то в духе WHILE AI1 > 5, то сторожевой таймер просто перезагрузит устройство через пару секунд.
    2. Чем и как считать время наработки (логической единицы на одном из входов)?
    Код:
    VAR
         sectrig: R_TRIG;
         running: BOOL; (* Логический вход *)
    END_VAR
    VAR RETAIN
        uptime: DWORD := 0; (* Наработка в секундах *)
    END_VAR
    
    sectrig(CLK := TIME_TO_DWORD(TIME()) MOD 1000 > 500); (* Тик-так *)
      uptime := uptime + BOOL_TO_DWORD(sectrig.Q AND running); (* Раз в секунду выражение в скобках даёт TRUE. Соответственно за скобками — единица *)
    Кто-то вместо этого суммирует дельту между проходами по TIME(), но они упираются в 49 суток, т.к. больше в 32-битный TIME не помещается. При счёте секундами предел, очевидно, в 1000 раз больше (130 с чем-то лет).

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

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    Код:
    VAR
        timer: TON := (PT := T#10s);
     END_VAR
    
    timer(IN := AI1 < 5);
    IF timer.Q THEN
     (* Значение ниже уставки дольше 10 секунд *)
     (* Выполняем определённые действия *)
     END_IF
    Кстати на ПЛК вообще не принято вешать поток. Об этом можно не сообщать дополнительно. Если вы напишете что-то в духе WHILE AI1 > 5, то сторожевой таймер просто перезагрузит устройство через пару секунд.
    Код:
    VAR
         sectrig: R_TRIG;
         running: BOOL; (* Логический вход *)
    END_VAR
    VAR RETAIN
        uptime: DWORD := 0; (* Наработка в секундах *)
    END_VAR
    
    sectrig(CLK := TIME_TO_DWORD(TIME()) MOD 1000 > 500); (* Тик-так *)
      uptime := uptime + BOOL_TO_DWORD(sectrig.Q AND running); (* Раз в секунду выражение в скобках даёт TRUE. Соответственно за скобками — единица *)
    Кто-то вместо этого суммирует дельту между проходами по TIME(), но они упираются в 49 суток, т.к. больше в 32-битный TIME не помещается. При счёте секундами предел, очевидно, в 1000 раз больше (130 с чем-то лет).
    Забыли добавить, что сравнивать две величины можно функциями GT(Больше чем) или LT(Меньше чем).

  3. #3003
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,346

    По умолчанию

    Делал для подсчета на CFC, сперва на ПР, потом перенес на Codesys.
    Считать можно все, что угодно, бутылки, ящики, контейнеры и т.д., в примере время в секундах, минутах, часах, днях, а так же сбрасывать необходимые ячейки битовой маской по условиям.
    Сорри, что без описания, как есть.

    4 миллиарда дней в примере поделите на года
    переписывать на ST лень, потому как запутаюсь я там, может у кого-то быстро получится переписать.

    забыл, можно объеденить в стек для дальнейшего подсчета, годов, веков )

  4. #3004
    Пользователь Аватар для Shpilli Willi
    Регистрация
    09.07.2014
    Адрес
    г.Кемерово
    Сообщений
    29

    По умолчанию

    Добрый день!

    Делаю связь между плк100 и плк110 по модбасу. Мастер плк 100. Вопрос такой:
    1) Как правильно раздавать порты (и что физически эти порты означают). Какой порт нужно задать в слейве, и какой в мастере?
    2) Когда мы создаем элемент Модбас (мастер) (в конфигурации ПЛК), то мы не можем заменить Debug RS232 на ТСР. При выборе RS485 не работает (РТУ поставил). На что правильно заменить?

    Проверял в лектусе при тех же настройках, нужное значение в него пришло.

    Заранее спасибо за ответы!

  5. #3005
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,346

    По умолчанию

    Shpilli Willi должен меняться Debug на TCP, правой клавишей по нему и Заменить, либо добавить и потом удалить Дебуг.

  6. #3006
    Пользователь Аватар для Shpilli Willi
    Регистрация
    09.07.2014
    Адрес
    г.Кемерово
    Сообщений
    29

    По умолчанию

    melky Может у меня КоДеСис не правильный?Вложение 14200

  7. #3007
    Пользователь Аватар для Shpilli Willi
    Регистрация
    09.07.2014
    Адрес
    г.Кемерово
    Сообщений
    29

    По умолчанию

    Извините, вопрос снят Просто нужно было перезагрузить контролллер)

  8. #3008

    По умолчанию

    Здравствуйте!

    Как можно защитить проект от редактирования, но сохранить возможность записи его в ПЛК? В идеале было бы запретить просмотр кода?

    Спасибо.

  9. #3009
    Banned
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,664

    По умолчанию

    Цитата Сообщение от vvu2011 Посмотреть сообщение
    Здравствуйте!

    Как можно защитить проект от редактирования, но сохранить возможность записи его в ПЛК? В идеале было бы запретить просмотр кода?

    Спасибо.
    запароленая библиотека Вам поможет

  10. #3010
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,153

    По умолчанию

    Или пароли на группы. Можно что показать, что-то скрыть. При это грузить

Страница 301 из 1190 ПерваяПервая ... 201251291299300301302303311351401801 ... ПоследняяПоследняя

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

Ваши права

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