Вопрос: Как решить проблему | Добавлено: 08.01.12 12:50 |
Автор вопроса: ![]() |
Ответы | Всего ответов: 27 |
Номер ответа: 16 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #16 | Добавлено: 11.01.12 21:25 |
я даже не понимаю в чем может состоять проблема сохранения предыдущего значения. Язык совершенно не важен. |
Номер ответа: 17 Автор ответа: ![]() ![]() Вопросов: 1 Ответов: 14 |
Профиль | Цитата | #17 | Добавлено: 11.01.12 22:15 |
Winand пишет:
в любом случае нельзя использовать переменную Vb1 до её объявления var Vb1. И присваивать значение Vb в двух подряд строках бессмысленно. Вы можете предложить что то взамен....может надо использовать куки или массивы для сохранение начального значения или все таки достаточно переменных... |
Номер ответа: 18 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #18 | Добавлено: 12.01.12 22:25 |
если использовать массив, то можно хоть график строить. Вы бы пояснили как именно это работает. Как программа узнает о новом значении? и в какие моменты времени это происходит |
Номер ответа: 19 Автор ответа: ![]() ![]() Вопросов: 1 Ответов: 14 |
Профиль | Цитата | #19 | Добавлено: 12.01.12 23:43 |
Попробую объяснить. На самом деле это газовая котельная, в котельной установлен контролер который управляет режимом работы котельной. В контролер сведены все необходимые рабочие параметры (температуры, давления, какое оборудование в работе.........) которые необходимы для управления, в том числе и показания газового счетчика, который передает свои показания. Эти показания (в контролере) меняются в момент изменения показаний самого счетчика. На самом деле на самом счетчике имеется свой корректор, который показывает все параметры газа (давление, температуру, количество газа, моментальный расход....), все эти показания я вижу на корректоре счетчика, и все они передаются в режиме реального времени через модем в газовую компанию. НО нам разрешили и выдали только один сигнал с газового счетчика это его показания, т.е. показания Vb количество газа на данный момент, ну это типа как показания водо счетчика, эти показания накопительные. На самом счетчике который считает и передает показания установлен обычный геркон, и замыкания контактов зависит от расхода газа, если большой расход контакты замыкаются чаще, и показания меняются быстрее, если медленнее, значит все наоборот.
Далее все эти показания контролер передает на сервер, показания передаются с некоторой задержкой каждые 5 миллисекунд, это время обмена данными между контролером и сервером. На сервере установлены несколько программ которые преобразуют все сигналы в графическую картинку и позволяющую управлять котельной в режиме реального времени с любого компьютера в режиме реального времени. Одна из этих программ это SKADA, в ней собственно все программирование и происходит, я не имею ввиду режим управления котельной, это делает контролер в котельной, я имею ввиду управления котельной или задание или изменение каких либо процессов, ручное управление и так далее. Так вот мы имеем изменение показаний газового счетчика в режиме реального времени это одна переменная....и которую нужно пересчитать в другую......сейчас на счетчике 100 через некоторое время 200, надо (200-100/(t2-t1), еще через какое то время показания изменились на 300, надо (300-200)/(t3-t2) |
Номер ответа: 20 Автор ответа: ![]() ![]() Вопросов: 0 Ответов: 140 |
Профиль | Цитата | #20 | Добавлено: 13.01.12 01:56 |
В scada есть, как оказалось, встроенный редактор, со своим веселым синтаксисом:
|
Номер ответа: 21 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #21 | Добавлено: 13.01.12 15:56 |
t2,3 - это время, когда присланы значения? а если линия плохая и они будут приходить с разной скоростью? |
Номер ответа: 22 Автор ответа: ![]() ![]() Вопросов: 1 Ответов: 14 |
Профиль | Цитата | #22 | Добавлено: 13.01.12 16:39 |
Winand пишет:
t2,3 - это время, когда присланы значения? а если линия плохая и они будут приходить с разной скоростью? Связь между контролером и сервером устойчивая, обмен данными происходят каждые 5 миллисекунд и и естественно обновления происходят каждые 5 миллисекунд, т.е. за одну секунду обновления происходят 200 раз, а вот значения изменения показаний счетчика меняются во времени и зависит это от расхода газа. Расход газа величина не постоянная, зависит от уличной температуры, если на улице холодно значит расход больше, и показания меняются часто, если тепло на улице то показания меняются медленнее. В данное время когда на улице около нуля показания изменяются в районе 2 минут... |
Номер ответа: 23 Автор ответа: ![]() ![]() Вопросов: 1 Ответов: 14 |
Профиль | Цитата | #23 | Добавлено: 13.01.12 16:46 |
Ким Чен Ир пишет:
Global Real v1 = 0; Function Real MyFunc(Real v2) Real ret = (v2 - v1); v1 = v2; Return (ret); End Протестировал данный скрипт, у меня почему то не работает......может что то не правильно делаю....... |
Номер ответа: 24 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #24 | Добавлено: 13.01.12 18:38 |
это не скрипт, а функция, вычисляющая дельту между показаниями. Естественно её нужно вызывать откуда-то. Но мы не знаем как конкретно вы используете данный код. |
Номер ответа: 25 Автор ответа: ![]() ![]() Вопросов: 1 Ответов: 14 |
Профиль | Цитата | #25 | Добавлено: 13.01.12 18:56 |
Winand пишет:
это не скрипт, а функция, вычисляющая дельту между показаниями. Естественно её нужно вызывать откуда-то. Но мы не знаем как конкретно вы используете данный код. Допустим var Vb = getTag( 'queu'), Vb это присвоение переменной, показания счетчика, а queu это адрес по которому обращаемся к счетчику |
Номер ответа: 26 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #26 | Добавлено: 13.01.12 20:32 |
Соответственно нужно Vb = MyFunc(getTag('queu'))
В первый раз выдаст сам переданный параметр, а в последующие разы разницу значений |
Номер ответа: 27 Автор ответа: ![]() ![]() Вопросов: 1 Ответов: 14 |
Профиль | Цитата | #27 | Добавлено: 13.01.12 21:50 |
Winand пишет:
Соответственно нужно Vb = MyFunc(getTag('queu')) В первый раз выдаст сам переданный параметр, а в последующие разы разницу значений Попробовал протестировать, функция не работает, скрипт выдает ошибку |
|