![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1
|
|
Читатель ![]() Группа: Пользователи Сообщений: 7 Регистрация: 4.11.2017 Пользователь №: 10935 ![]() |
Здравствуйте. Подскажите начинающему- как сделать таймер, что бы он срабатывал в определенное время суток. Изучая мануал, подозреваю, что наиболее подходит для этого инструкция FNC 160 (TCMP), но почему-то пытаясь повторить пример, не вводятся D0, D1 и далее.
Upd. Контроллер FX1N, среда программирования GX Developer FX. Сообщение отредактировал pavel72 - 5.11.2017 - 10:38 |
|
|
![]()
Сообщение
#2
|
|
Гигант мысли ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 253 Регистрация: 21.01.2017 Пользователь №: 10799 ![]() |
Здравствуйте. Подскажите начинающему- как сделать таймер, что бы он срабатывал в определенное время суток. Изучая мануал, подозреваю, что наиболее подходит для этого инструкция FNC 160 (TCMP), но почему-то пытаясь повторить пример, не вводятся D0, D1 и далее. Upd. Контроллер FX1N, среда программирования GX Developer FX. Я делал так, в GX IEC Developer 7.04 EN Вроде работает.
Прикрепленные файлы
|
|
|
![]()
Сообщение
#3
|
|
Читатель ![]() Группа: Пользователи Сообщений: 7 Регистрация: 4.11.2017 Пользователь №: 10935 ![]() |
Здравствуйте. Подскажите начинающему- как сделать таймер, что бы он срабатывал в определенное время суток. Изучая мануал, подозреваю, что наиболее подходит для этого инструкция FNC 160 (TCMP), но почему-то пытаясь повторить пример, не вводятся D0, D1 и далее. Upd. Контроллер FX1N, среда программирования GX Developer FX. Я делал так, в GX IEC Developer 7.04 EN Вроде работает. В FX к сожалению FBD нет. Но все равно спасибо,попытаюсь разобраться. |
|
|
![]()
Сообщение
#4
|
|
Гигант мысли ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 377 Регистрация: 30.12.2004 Пользователь №: 108 ![]() |
Здравствуйте. Подскажите начинающему- как сделать таймер, что бы он срабатывал в определенное время суток. Изучая мануал, подозреваю, что наиболее подходит для этого инструкция FNC 160 (TCMP), но почему-то пытаясь повторить пример, не вводятся D0, D1 и далее. Upd. Контроллер FX1N, среда программирования GX Developer FX. Что значит "не вводятся". Если не удается записать значение извне, регистр скорее всего получает значение в результате работы программы. Поскольку никто не знает, какой пример и из какого мануала Вы пытаетесь повторить, выложите свою программу, лучше в pdf, если проблема еще актуальна. И еще: Вы только включать хотите по таймеру, или и выключать тоже? -------------------- Делать надо сразу хорошо. Плохо само получится.
|
|
|
![]()
Сообщение
#5
|
|
Читатель ![]() Группа: Пользователи Сообщений: 7 Регистрация: 4.11.2017 Пользователь №: 10935 ![]() |
Здравствуйте. Подскажите начинающему- как сделать таймер, что бы он срабатывал в определенное время суток. Изучая мануал, подозреваю, что наиболее подходит для этого инструкция FNC 160 (TCMP), но почему-то пытаясь повторить пример, не вводятся D0, D1 и далее. Upd. Контроллер FX1N, среда программирования GX Developer FX. Что значит "не вводятся". Если не удается записать значение извне, регистр скорее всего получает значение в результате работы программы. Поскольку никто не знает, какой пример и из какого мануала Вы пытаетесь повторить, выложите свою программу, лучше в pdf, если проблема еще актуальна. И еще: Вы только включать хотите по таймеру, или и выключать тоже? Здравствуйте. Я пытался повторить пример из этого мануала. ![]() Таймер нужен на включение и выключение в определенное время суток. Сообщение отредактировал pavel72 - 7.11.2017 - 10:17 |
|
|
![]()
Сообщение
#6
|
|
Гигант мысли ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 252 Регистрация: 15.11.2007 Пользователь №: 6407 ![]() |
|
|
|
![]()
Сообщение
#7
|
|
Читатель ![]() Группа: Пользователи Сообщений: 7 Регистрация: 4.11.2017 Пользователь №: 10935 ![]() |
Первая строка с инструкцией TCMP вводится нормально, а последующие как в примере на картинке (т.е. D0,D1 и т.д.) никак, выдает ошибку. |
|
|
![]()
Сообщение
#8
|
|
Гигант мысли ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 252 Регистрация: 15.11.2007 Пользователь №: 6407 ![]() |
)) это не инструкции, а описание
m0 включается если значение в регистрах d0 d1 d2 соответственно меньше заданных значений 10:30:50 |
|
|
![]()
Сообщение
#9
|
|
Читатель ![]() Группа: Пользователи Сообщений: 7 Регистрация: 4.11.2017 Пользователь №: 10935 ![]() |
)) это не инструкции, а описание m0 включается если значение в регистрах d0 d1 d2 соответственно меньше заданных значений 10:30:50 Это я понял, подскажи как правильно, с точки зрения синтаксиса ввести эти самые d0,d1,d2 и 10:30:50. ![]() |
|
|
![]()
Сообщение
#10
|
|
Гигант мысли ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 252 Регистрация: 15.11.2007 Пользователь №: 6407 ![]() |
так не надо ничего вводить, только одна верхняя строка и всё
и она работает постоянно, управляет маркерами m0...m2 а далее только код выполнения необходимого, по нужному маркеру для выше описанного примера, если d0 = 10 d1 = 30 d2 = 50 то включится маркер m1 что бы работало с реальным временем на контроллере необходимо заменить в команде TCMP d0 - d8013 d1 - d8014 d2 - d8015 |
|
|
![]()
Сообщение
#11
|
|
Гигант мысли ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 377 Регистрация: 30.12.2004 Пользователь №: 108 ![]() |
Если нужно и включать, и выключать в определенное время, то бишь держать включенным в течении определенного интервала времени, есть прямой смысл воспользоваться инструкцией TZCP.
Если же пользуетесь TCMP, не стройте логику на результате равенства (флаг М1). Если контроллер почему-то не будет работать именно в эту минуту, устройство не включится. -------------------- Делать надо сразу хорошо. Плохо само получится.
|
|
|
![]()
Сообщение
#12
|
|
Читатель ![]() Группа: Пользователи Сообщений: 7 Регистрация: 4.11.2017 Пользователь №: 10935 ![]() |
так не надо ничего вводить, только одна верхняя строка и всё и она работает постоянно, управляет маркерами m0...m2 а далее только код выполнения необходимого, по нужному маркеру для выше описанного примера, если d0 = 10 d1 = 30 d2 = 50 то включится маркер m1 что бы работало с реальным временем на контроллере необходимо заменить в команде TCMP d0 - d8013 d1 - d8014 d2 - d8015 Блин, дошло наконец-то. ![]() |
|
|
![]()
Сообщение
#13
|
|
Читатель ![]() Группа: Пользователи Сообщений: 7 Регистрация: 4.11.2017 Пользователь №: 10935 ![]() |
Если нужно и включать, и выключать в определенное время, то бишь держать включенным в течении определенного интервала времени, есть прямой смысл воспользоваться инструкцией TZCP. Если же пользуетесь TCMP, не стройте логику на результате равенства (флаг М1). Если контроллер почему-то не будет работать именно в эту минуту, устройство не включится. Спасибо за совет, про отключение контроллера я не подумал, учту. Единственное, смущает фраза в руководстве-"...выходной операнд остается после отключения условий выполнения TZCP функции включенным " т.е. после каждого цикла его надо выключать? Сообщение отредактировал pavel72 - 7.11.2017 - 18:41 |
|
|
![]()
Сообщение
#14
|
|
Гигант мысли ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 377 Регистрация: 30.12.2004 Пользователь №: 108 ![]() |
... смущает фраза в руководстве-"...выходной операнд остается после отключения условий выполнения TZCP функции включенным " т.е. после каждого цикла его надо выключать? Фраза эта означает, что флаги-результаты сравнения выставляются инструкцией при ее выполнении, а затем остаются неизменными (как включенные, так и выключенные), пока та же, либо другая, выполненная инструкция не изменит их состояние, в этом же, либо в более позднем цикле программы. Обычно, они используются в тексте программы сразу после сравнения, но необязательно. Ничто не запрещает программисту сохранять их состояние, либо их сбрасывать, смотря как требует логика программы. Сообщение отредактировал Sergei Troizky - 8.11.2017 - 08:24 -------------------- Делать надо сразу хорошо. Плохо само получится.
|
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 13.06.2024 - 12:30 |