Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Подскажите пример таймера с привязкой к реальному времени.
Mitsubishi Electric. Контроллеры, преобразователи частоты, HMI > Контроллеры Melsec FX > Программирование
pavel72
Здравствуйте. Подскажите начинающему- как сделать таймер, что бы он срабатывал в определенное время суток. Изучая мануал, подозреваю, что наиболее подходит для этого инструкция FNC 160 (TCMP), но почему-то пытаясь повторить пример, не вводятся D0, D1 и далее.
Upd. Контроллер FX1N, среда программирования GX Developer FX.
VAL_64
Цитата(pavel72 @ 5.11.2017 - 11:36) *
Здравствуйте. Подскажите начинающему- как сделать таймер, что бы он срабатывал в определенное время суток. Изучая мануал, подозреваю, что наиболее подходит для этого инструкция FNC 160 (TCMP), но почему-то пытаясь повторить пример, не вводятся D0, D1 и далее.
Upd. Контроллер FX1N, среда программирования GX Developer FX.

Я делал так, в GX IEC Developer 7.04 EN
Вроде работает.
pavel72
Цитата(VAL_64 @ 5.11.2017 - 13:23) *
Цитата(pavel72 @ 5.11.2017 - 11:36) *
Здравствуйте. Подскажите начинающему- как сделать таймер, что бы он срабатывал в определенное время суток. Изучая мануал, подозреваю, что наиболее подходит для этого инструкция FNC 160 (TCMP), но почему-то пытаясь повторить пример, не вводятся D0, D1 и далее.
Upd. Контроллер FX1N, среда программирования GX Developer FX.

Я делал так, в GX IEC Developer 7.04 EN
Вроде работает.

В FX к сожалению FBD нет. Но все равно спасибо,попытаюсь разобраться.
Sergei Troizky
Цитата(pavel72 @ 5.11.2017 - 10:36) *
Здравствуйте. Подскажите начинающему- как сделать таймер, что бы он срабатывал в определенное время суток. Изучая мануал, подозреваю, что наиболее подходит для этого инструкция FNC 160 (TCMP), но почему-то пытаясь повторить пример, не вводятся D0, D1 и далее.
Upd. Контроллер FX1N, среда программирования GX Developer FX.

Что значит "не вводятся". Если не удается записать значение извне, регистр скорее всего получает значение в результате работы программы.
Поскольку никто не знает, какой пример и из какого мануала Вы пытаетесь повторить, выложите свою программу, лучше в pdf, если проблема еще актуальна.
И еще: Вы только включать хотите по таймеру, или и выключать тоже?
pavel72
Цитата(Sergei Troizky @ 7.11.2017 - 05:42) *
Цитата(pavel72 @ 5.11.2017 - 10:36) *
Здравствуйте. Подскажите начинающему- как сделать таймер, что бы он срабатывал в определенное время суток. Изучая мануал, подозреваю, что наиболее подходит для этого инструкция FNC 160 (TCMP), но почему-то пытаясь повторить пример, не вводятся D0, D1 и далее.
Upd. Контроллер FX1N, среда программирования GX Developer FX.

Что значит "не вводятся". Если не удается записать значение извне, регистр скорее всего получает значение в результате работы программы.
Поскольку никто не знает, какой пример и из какого мануала Вы пытаетесь повторить, выложите свою программу, лучше в pdf, если проблема еще актуальна.
И еще: Вы только включать хотите по таймеру, или и выключать тоже?

Здравствуйте. Я пытался повторить пример из этого мануала.

Нажмите для просмотра прикрепленного файла

Таймер нужен на включение и выключение в определенное время суток.
m_by
Нажмите для просмотра прикрепленного файла
Наверное не правильно вводите строку ...
pavel72
Цитата(m_by @ 7.11.2017 - 11:35) *
Нажмите для просмотра прикрепленного файла
Наверное не правильно вводите строку ...

Первая строка с инструкцией TCMP вводится нормально, а последующие как в примере на картинке (т.е. D0,D1 и т.д.) никак, выдает ошибку.
m_by
)) это не инструкции, а описание
m0 включается если значение в регистрах d0 d1 d2 соответственно меньше заданных значений 10:30:50
pavel72
Цитата(m_by @ 7.11.2017 - 16:02) *
)) это не инструкции, а описание
m0 включается если значение в регистрах d0 d1 d2 соответственно меньше заданных значений 10:30:50

Это я понял, подскажи как правильно, с точки зрения синтаксиса ввести эти самые d0,d1,d2 и 10:30:50.
Нажмите для просмотра прикрепленного файла
m_by
так не надо ничего вводить, только одна верхняя строка и всё
и она работает постоянно, управляет маркерами m0...m2

а далее только код выполнения необходимого, по нужному маркеру

для выше описанного примера, если
d0 = 10
d1 = 30
d2 = 50
то включится маркер m1

что бы работало с реальным временем на контроллере необходимо заменить в команде TCMP
d0 - d8013
d1 - d8014
d2 - d8015



Sergei Troizky
Если нужно и включать, и выключать в определенное время, то бишь держать включенным в течении определенного интервала времени, есть прямой смысл воспользоваться инструкцией TZCP.
Если же пользуетесь TCMP, не стройте логику на результате равенства (флаг М1). Если контроллер почему-то не будет работать именно в эту минуту, устройство не включится.
pavel72
Цитата(m_by @ 7.11.2017 - 16:50) *
так не надо ничего вводить, только одна верхняя строка и всё
и она работает постоянно, управляет маркерами m0...m2

а далее только код выполнения необходимого, по нужному маркеру

для выше описанного примера, если
d0 = 10
d1 = 30
d2 = 50
то включится маркер m1

что бы работало с реальным временем на контроллере необходимо заменить в команде TCMP
d0 - d8013
d1 - d8014
d2 - d8015

Блин, дошло наконец-то. ohmy.gif Я-то дурень думал, что строки в примере с d0...d2 <=>10:30:50 необходимо вводить в программу. Спасибо большое.
pavel72
Цитата(Sergei Troizky @ 7.11.2017 - 17:14) *
Если нужно и включать, и выключать в определенное время, то бишь держать включенным в течении определенного интервала времени, есть прямой смысл воспользоваться инструкцией TZCP.
Если же пользуетесь TCMP, не стройте логику на результате равенства (флаг М1). Если контроллер почему-то не будет работать именно в эту минуту, устройство не включится.

Спасибо за совет, про отключение контроллера я не подумал, учту.
Единственное, смущает фраза в руководстве-"...выходной операнд остается после отключения условий выполнения TZCP функции включенным " т.е. после каждого цикла его надо выключать?
Sergei Troizky
Цитата(pavel72 @ 7.11.2017 - 18:27) *
... смущает фраза в руководстве-"...выходной операнд остается после отключения условий выполнения TZCP функции включенным " т.е. после каждого цикла его надо выключать?

Фраза эта означает, что флаги-результаты сравнения выставляются инструкцией при ее выполнении, а затем остаются неизменными (как включенные, так и выключенные), пока та же, либо другая, выполненная инструкция не изменит их состояние, в этом же, либо в более позднем цикле программы.
Обычно, они используются в тексте программы сразу после сравнения, но необязательно.
Ничто не запрещает программисту сохранять их состояние, либо их сбрасывать, смотря как требует логика программы.
Русская версия IP.Board © 2001-2024 IPS, Inc.