Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Mitsubishi Electric. Контроллеры, преобразователи частоты, HMI _ Программирование _ Подскажите пример таймера с привязкой к реальному времени.

Автор: pavel72 5.11.2017 - 10:36

Здравствуйте. Подскажите начинающему- как сделать таймер, что бы он срабатывал в определенное время суток. Изучая мануал, подозреваю, что наиболее подходит для этого инструкция FNC 160 (TCMP), но почему-то пытаясь повторить пример, не вводятся D0, D1 и далее.
Upd. Контроллер FX1N, среда программирования GX Developer FX.

Автор: 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
Вроде работает.

 

Автор: pavel72 5.11.2017 - 19:19

Цитата(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 7.11.2017 - 05:42

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

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

Автор: pavel72 7.11.2017 - 10:16

Цитата(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 7.11.2017 - 11:35

 1.bmp ( 600.38 килобайт ) : 24

Наверное не правильно вводите строку ...

Автор: pavel72 7.11.2017 - 14:02

Цитата(m_by @ 7.11.2017 - 11:35) *
 1.bmp ( 600.38 килобайт ) : 24

Наверное не правильно вводите строку ...

Первая строка с инструкцией TCMP вводится нормально, а последующие как в примере на картинке (т.е. D0,D1 и т.д.) никак, выдает ошибку.

Автор: m_by 7.11.2017 - 16:02

)) это не инструкции, а описание
m0 включается если значение в регистрах d0 d1 d2 соответственно меньше заданных значений 10:30:50

Автор: pavel72 7.11.2017 - 16:19

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

Это я понял, подскажи как правильно, с точки зрения синтаксиса ввести эти самые d0,d1,d2 и 10:30:50.

Автор: m_by 7.11.2017 - 16:50

так не надо ничего вводить, только одна верхняя строка и всё
и она работает постоянно, управляет маркерами m0...m2

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

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

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




Автор: Sergei Troizky 7.11.2017 - 17:14

Если нужно и включать, и выключать в определенное время, то бишь держать включенным в течении определенного интервала времени, есть прямой смысл воспользоваться инструкцией TZCP.
Если же пользуетесь TCMP, не стройте логику на результате равенства (флаг М1). Если контроллер почему-то не будет работать именно в эту минуту, устройство не включится.

Автор: pavel72 7.11.2017 - 18:20

Цитата(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 7.11.2017 - 18:27

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

Спасибо за совет, про отключение контроллера я не подумал, учту.
Единственное, смущает фраза в руководстве-"...выходной операнд остается после отключения условий выполнения TZCP функции включенным " т.е. после каждого цикла его надо выключать?

Автор: Sergei Troizky 8.11.2017 - 08:12

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

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

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)