Страница 2 из 9 ПерваяПервая 1234 ... ПоследняяПоследняя
Показано с 11 по 20 из 86

Тема: Помогите разобраться...

  1. #11
    Пользователь
    Регистрация
    13.08.2012
    Адрес
    Питер
    Сообщений
    127

    По умолчанию

    И еще один дурацкий вопрос: Где более правильно обзывать входы ПЛК? В глобальных переменных, или как я - в конфигураторе ПКЛ?

    Я так понимаю, что если в глобальных переменных, то получится более "универсальный" код, однако при замене платформы адреса все равно съедут... Или я неправ?

    Или может есть какой способ "перетаскивания" из конфигуратора ПЛК в GLOBAL_VARS ? Типа обозвал входы-выходы, написал комментарии - а оно бабах, и красота...

    И что бы два раза не вставать - как вообще меняется платформа? Вот написал я под ПЛК110-60, а потом решил использовать этот же проект на ПЛК-100... В настройках целевой платформы я поменял платформу, а дальше?

  2. #12

    По умолчанию

    Объявлять переменные можно где удобней. Особой разницы нет. Если вы меняете платформу, то в любом случае необходимо ручками переписывать переменные, хоть объявленные в конфигураторе, хоть по прямым адресам.

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

    По умолчанию

    Теперь осталось понять, как правильно вызывать таймер по IF...
    С условием по выходу триггера проще делать без таймера:
    Код:
    VAR
    	timeout: TIME;
    	output: BOOL;
    END_VAR
    
    IF что-нибудь THEN
    	timeout := TIME() + T#5s;
    END_IF
    
    output := TIME() >= timeout;

  4. #14
    Пользователь
    Регистрация
    13.08.2012
    Адрес
    Питер
    Сообщений
    127

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    С условием по выходу триггера проще делать без таймера:
    Код:
    VAR
    	timeout: TIME;
    	output: BOOL;
    END_VAR
    
    IF что-нибудь THEN
    	timeout := TIME() + T#5s;
    END_IF
    
    output := TIME() >= timeout;
    Сейчас кодесиса под рукой нет... Я правильно понимаю эту конструкцию, что
    "Если 'что-нибуть' TRUE, то через 5 сек. output будет TRUE"... Так?

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

    По умолчанию

    А у нас TIME() меньше 0 при старте ?
    То что изображено - это NOT TOF.Q

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

    По умолчанию

    А у нас TIME() меньше 0 при старте ?
    К первому циклу уже больше, если не ошибаюсь.
    "Если 'что-нибуть' TRUE, то через 5 сек. output будет TRUE"... Так?
    В данном случае немного иначе: «если „что-нибудь“ TRUE, то на следующие 5 секунд output сделать FALSE, в остальное время держать TRUE».

    Таймер в таких ситуациях задалбывает требованием его вызывать. Если б хоть можно было писать timer(IN := ..., NOT Q => output) — ан нет, хрен тебе (при том, что в диаграммах отрицание ставится на любой вход или выход). В итоге лишние строки. Конечно, когда условие включения таймера держится, то лучше использовать нормальные TON, TOF и т.п.
    Последний раз редактировалось Yegor; 18.09.2012 в 06:15.

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

    По умолчанию

    Код:
    VAR
    	timeout: TIME;
    	output: BOOL;
    END_VAR
    
    IF что-нибудь THEN
    	timeout := TIME() + T#5s;
    END_IF
    
    output := TIME() >= timeout;
    А ничего, что при постоянном что-нибудь=TRUE output будет иногда подниматься ?

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

    По умолчанию

    При «постоянном что-нибудь=TRUE» output будет постоянно FALSE. Ну и вообще я не просто так ограничил применимость этого решения:
    С условием по выходу триггера

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

    По умолчанию

    Авторы Arian-5 тоже так предполагали

    Т.е. этот код зависит не только от "что-нибудь" ?

    В 1996 году отличились французы. Из-за ошибок в программном обеспечении 4 июня был прерван полет космической ракеты Ariane 5. Убытки в результате составили более 500 миллионов долларов. А причина крылась в том, что по недосмотру переменная, которая описывала горизонтальную скорость ракеты, была представлена целым 16-битным числом. В результате, как только эта значение переменной превысило 32 768 (2 в 15-й степени), система управления ракетой, что называется, “подвисла”, а “сошедшую с ума” ракету пришлось уничтожить.
    уже в 90-х годах. На этот раз пострадали бравые американские военные ракетчики, принимавшие участие в операции “Буря в пустыне”. К их удивлению, ракеты “Пэтриот”, использовавшиеся для перехвата в воздухе иракских ракет, периодически проходили мимо цели. Разбирательства начались после того, как пропущенная иракская ракета привела к гибели 28 американских солдат. Первоначально зародилось подозрение, что часть “Пэтриотов” технически неисправны. Однако созданная по этому поводу комиссия с удивлением обнаружила, что все обследованные ракеты абсолютно работоспособны. Вы уже, наверное, догадались, где пряталась ошибка? Конечно же, в программном обеспечении, использовавшимся американским зенитно-ракетным комплексом. Выяснилось, что система создавалась в расчете на то, что время ее непрерывной работы не будет превышать 14 часов, однако на практике комплексы непрерывно работали по 100 и более часов.Вроде бы пустяк, но оказалось, что используемое для определения времени программное обеспечение накапливало ошибки. За 100 часов работы набегала разница в 0,34 секунды. Программисты, оказывается, знали об этом, да посчитали факт несущественным...
    Последний раз редактировалось Валенок; 18.09.2012 в 16:00.

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

    По умолчанию

    При «постоянном что-нибудь=TRUE» output будет постоянно FALSE. Ну и вообще я не просто так ограничил применимость этого решения ..c условием по выходу триггера
    Да хоть и триггером - те же проблемы. И тогда же :
    ввиду, когда пройдет 49 с хвостиком суток от включения плк
    Бывает такая нездоровая фигня как стабильное питание и безаварийная работа. Ну мы ж сразу закладываем броски и ПНР бесконечно-периодический...

Страница 2 из 9 ПерваяПервая 1234 ... ПоследняяПоследняя

Похожие темы

  1. помогите разобраться
    от Барон в разделе ПЛК1хх
    Ответов: 16
    Последнее сообщение: 17.11.2010, 08:30
  2. помогите разобраться
    от a_l_e_x в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 02.07.2010, 16:51
  3. Помогите разобраться...
    от xaker_tm в разделе ПЛК1хх
    Ответов: 7
    Последнее сообщение: 08.02.2010, 17:33
  4. ТРМ 12, помогите разобраться.
    от SEREG@ в разделе Эксплуатация
    Ответов: 3
    Последнее сообщение: 12.01.2009, 14:21
  5. Помогите разобраться !!
    от viking в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 21.11.2007, 14:31

Ваши права

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