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

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

  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,490

    По умолчанию

    Цитата Сообщение от 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
    Адрес
    Краснодар
    Сообщений
    10,583

    По умолчанию

    Делал для подсчета на 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
    Адрес
    Краснодар
    Сообщений
    10,583

    По умолчанию

    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
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,225

    По умолчанию

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

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

    Спасибо.
    запароленая библиотека Вам поможет
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

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

    По умолчанию

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

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

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

Ваши права

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