Проблема с замораживанием изменяющегося значеня
Имеется газовый счетчик, который передает показания газа. Эти показания меняются. Необходимо найти моментальный расход газа по формуле Qb(t)=(Vb(t1+t2-t1)−Vb(t1))/(t2-t1).
Qb - моментальный расход газа м3/ч Vb - показание счетчика в определенный момент времени Проблема в том как зафиксировать начальное показание, т.е. Vb |
var startVb = Vb //зафиксировали в переменной startVb |
Может я не правильно сформулировал вопрос, попробую подробнее. var Vb = getTag( 'Vb') Переменная Vb допустим на данный момент имеет значение 100, через какое то время изменилось на 200, т.е. мне нужно (200-100)/(t1-t2)
|
Цитата:
vb1 = VB t1 = (new Date).getTime() //как прошло время нужное тебе и значение и время изменились вычитаешь vb2 = VB t2 = (new Date).getTime() (vb1-vb2)/(t1-t2) |
В результате получаю ноль, я полагаю что vb1=vb2
|
Цитата:
|
100-100=0
и 0/(t1-t2 ) получаю 0 Необходимо первое число заморозить 200-100 |
Цитата:
мы заморозили первое число и время, потом мы вычислили разницу. делайте вывод что значение не изменилось. вот и получается ноль. |
Проблема в том, что я должен разницу чисел поделенную на время в течении которого произошли изменения,т.е. если предположить что изменения между 100 и 200 произошли через 5 сек, получаем
(200-100)/5=20 |
Цитата:
через какое время ты начинаешь vb2 вычислять и проверять разницу)? |
VB меняет значения постоянно, этот сигнал приходит от счетчика, если идет большой расход показания меняются часто, если расход маленький показания меняются реже, т.е. скажем сейчас он показывает 100 а через 10 или 30 сек может показать 200 зависит от расхода в данное время, и смысл заключается найти моментальной расход газа
|
Показания меняются постоянно. При малом расходе сигнал в среднем поступает каждые 5-7 сек.
|
Когда я vb1 = VB меняю на vb1 = 100 начинает считать
|
какая сила заставляет в твой сайт поступать значения щетчика?
|
На самом деле это один из объектов газовой котельной, которой можно управлять через интернет. На котельной имеется контролер который передает всю инфу на сервер. На сервере установлена прога SCADA и еще ряд программ, которые в общей сложности дают графическую и визуальную картинку о работе оборудования.
|
Цитата:
|
Страница обновляется автоматически, все параметры давление температура включение и выключения насосов колов и т.д отображаются в реальном времени. А с газового, водяного и тепло счетчика сигнал приходит как поступил импульс со счетчика в контролер, в счетчике обычный геркон, магнит замкнул контакты пошел импульс.
|
Т.е. страница таки обновляется. Значит алгоритм такой(если знаний мало и заморачиваться не охота):
1. Получаем предыдущее значение и Date из cookie. 2. Пишем текущее значение и Date в cookie. 3. Производим вычисления со старым и текущим значениями и временем. |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Если вам нужен конкретный работающий код: Вы просите готовый скрипт с нуля. Это работа, и за нее обычно платят деньги. Для таких сообщений предназначен раздел форума "Работа". Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела. |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
![]() |
Цитата:
|
Цитата:
либо можно переписать страничку так чтобы она не обновлялась а просто давала запросы серверу каждую секунду и получала данные)) либо чтобы сервер сам эти данные считал) открою одну штуку что сервер сам НЕ МОЖЕТ данные страничке передавать без запроса со стороны странички) то есть в страничке есть скрипт который отсылает запросы) в котельную |
Цитата:
|
var Vb = getTag( 'Vb') || 0;
var vb2 = Vb; var t1 = (new Date).getTime(); var vb1 = Vb; var t2 = (new Date).getTime(); var y = (vb2-vb1)/(t2-t1); setTag( 'Vb1', y); |
Цитата:
|
страничка находится на самом сервере
|
Не надо отслеживать страницу.....надо взять показания Vb газового счетчика привязать ко времени.....ну это как в машине моментальный расход топлива
|
или расход топлива на 100 км
|
Цитата:
нужно чтобы срабатывало событие.. бля короче давай код страницы сохрани засуй в архив и скинь мне на мыло посмотрю что там Livanderiamarum@gmail.com |
Цитата:
|
Попробую объяснить по другому
var v = getTag( 'queu') || 0; v>99? v=0: v++; for (i=0; i<10; i++) { setTag( 'queu_msec0' + i, v); } setTag( 'queu', v); Это генератор чисел, он выдает числа 1,2,3,4,5........100. Если его использовать как имитатор счетчика, скажем в определенное время имеем число 10, через какое то время стало 11, надо (10+11)/(t2-t1), далее число поменялось на 12, надо (11+12)/ (t3-t2), и так далее. Если это будет работать все остальное мелочи. |
Цитата:
Фиксируешь значение , потом после его изменения достаешь и проивзводишь сравнения. Я думаю реализовать сам сможешь) переменными пользоваться умеешь)? событиями пользоваться умеешь)? куками пользоваться умеешь)? просто ты уже что-то непонятное говоришь) я скажу один секрет, только ни кому, программный код выполняется моментально)) он не может самовызываться в определенное время без какой либо силы)) ты думаешь обратное) |
Цитата:
|
Цитата:
![]() |
Часовой пояс GMT +3, время: 23:11. |