Просмотр полной версии : TON
Доброго времени суток. В таймере TON время на входе PT записывается только в программе или его можно менять, например, с панели оператора?
Владимир Ситников
03.04.2016, 14:04
Можно менять. В PT передаёте любое значение. Хоть константу, хоть переменную (которую из панели получили).
Можно менять. В PT передаёте любое значение. Хоть константу, хоть переменную (которую из панели получили).
Из панели получаю WORD, а в PT записывать нужно TIME. C преобразованием у меня что-то никак не получается.
Эдуард_Н
03.04.2016, 15:26
Из панели получаю WORD, а в PT записывать нужно TIME. C преобразованием у меня что-то никак не получается.
Попробуйте так:
Что у вас там в WORD? Секунды? Минуты-секунды? Или как?
Допустим, в WORD секунды (соответственно от 0 до 65535). Значит, в TIME переводим так: DWORD_TO_TIME(your_word * 1000).
Или, например, в WORD у вас в одном байте минуты, а в другом - секунды. Тогда так: DWORD_TO_TIME(SHR(your_word, 8) * 60000) + DWORD_TO_TIME((your_word AND 255) * 1000).
Что у вас там в WORD? Секунды? Минуты-секунды? Или как?
Допустим, в WORD секунды (соответственно от 0 до 65535). Значит, в TIME переводим так: DWORD_TO_TIME(your_word * 1000).
Или, например, в WORD у вас в одном байте минуты, а в другом - секунды. Тогда так: DWORD_TO_TIME(SHR(your_word, 8) * 60000) + DWORD_TO_TIME((your_word AND 255) * 1000).
У меня секунды. Преобразовавал и умножал, но таймер срабатывает сразу не зависимо от того какое время на TP/
У меня секунды. Преобразовавал и умножал, но таймер срабатывает сразу не зависимо от того какое время на TP/
Скорее всего потому что время в место 3 секунд получаете 3 милисекуны . На 1000 умножить надо. Так сделайте:
23587
Я и умножаю на 1000 и на входе TP появляется нужное значение, но задержки нет.23588
Я и умножаю на 1000 и на входе TP появляется нужное значение, но задержки нет.23588
значит идите читайте как работает TON, у меня всё работает.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot