Author |
Message |
Written on: 10. 01. 2010 [20:24]
|
sonder
Олександр Клюшин
Topic creator
registered since: 24.12.2009
Posts: 47
|
По мере изучения возможностей и приемов работы возникают вопросы.
Предлагаю тыкать носом в описания и прочие документы а также вправлять мозги изучающим в этой теме.
Вопросы.
1. Ограничен ли вычислитель (насколько я понял то оба) функциями описанными в http://wiki.oscada.org/Doc/JavaLikeCalc?v=ael#h101-15
2. (частный случай первого) Как реализовать функции таймеров, задержек по времени или секундомеров?
Для Алексея: Проверка работоспособности вентилятора будет выглядеть примерно так:
if (start&&!runsensor)
{
delay(10);
alarm=start&&!runsensor;
}
где start - команда на запуск, runsensor - датчик перепада давления, alarm - выход аварии, delay - функция задержки (приостановки выполнения на 10 сек)
Это связано с тем, что датчик перепада срабатывает не сразу после запуска. Лучше конечно использовать более продвинутую функцию задержки где отсчет ведется только при выполнении условия - тогда еще будет исключаться "дребезг"
[This article was edited 2 times, at last 10.01.2010 at 20:26.]
|
Written on: 10. 01. 2010 [20:43]
|
Aleksey
Aleksey Popkov
Contributor
registered since: 31.07.2008
Posts: 326
|
Правильно, но можно также используя JavaLikeCalc писать собственные функции, которые потом можно использовать в блочных вычислителях. Например, в моем случае, мне требовалось в разных местах программы делать select из разных баз. Писать 10 строк кода в теле скрипта и копировать их потом по необходимости показалось не правильным подходом, поэтому был написан вычислитель с этими 10-ю строками и вызывался 1-ой строкой из осного скрипта в нужных местах с передачей небходимых параметров. Ну и API встроенные функции тоже посмотрите их тоже можно использовать ))))))
2. (частный случай первого) Как реализовать функции таймеров, задержек по времени или секундомеров?
Недавно был у меня такой вопрос тоже. Выполнено это было в скрипте виджета, с секундным интервалом выполнения.
Переменной был присвоено время в секундах и потом в цикле переменная вычитывалась.
Вот как я это сделал:
using Special.FLibSYS;
if (f_start) {calcCnt=20; metka=false;bt_Start_active=false;
if (SignalReady==true) {bt_StartPrimary_active=bt_Start_active=true; bt_Start_colorText="green";}
}
if( (SignalReady==true) && (calcCnt==0) && (metka==true) ) {bt_Start_active=true; bt_Start_colorText="green"; calcCnt=20;}
else if( (SignalReady==false) || (calcCnt!=20) ) {metka=true; calcCnt--; bt_Start_active=false;bt_Start_colorText="";
if ( (SignalReady==false) && (calcCnt==0) ) {calcCnt=20;metka=true;bt_Start_active=false;bt_Start_colorText="";}
;}
else if( (SignalReady==true) && (metka==true)) {calcCnt=20;bt_Start_active=true;bt_Start_colorText="green";}
Тут, до тех пор пока false, счетчик срабатывает в холостую, когда true счетчик досчитывает 20 секунд и активирует кнопку.
Функцию конечно можно использовать, но тут нужно кое-чего допиливать. Если текущий отсчет равен 5 и появляется true тогда вычитается 5-ка до 0 и активируется кнопка, а планировалось немного по другому. ((((( Основной смысл думаю понятен )))))
Для Алексея: Проверка работоспособности вентилятора будет выглядеть примерно так:
if (start&&!runsensor)
{
delay(10);
alarm=start&&!runsensor;
}
где start - команда на запуск, runsensor - датчик перепада давления, alarm - выход аварии, delay - функция задержки (приостановки выполнения на 10 сек)
Это связано с тем, что датчик перепада срабатывает не сразу после запуска. Лучше конечно использовать более продвинутую функцию задержки где отсчет ведется только при выполнении условия - тогда еще будет исключаться "дребезг"
Тут я ничего конкретного не подскажу, те условия с которыми мне пришлось последнее время столкнуться, датчики давления отдавали данные довольно шустро ))) Хотя можно выше показанным примером сделать, ну естественно немного попилив.
[This article was edited 1 times, at last 10.01.2010 at 20:51.]
|
Written on: 12. 01. 2010 [09:41]
|
sonder
Олександр Клюшин
Topic creator
registered since: 24.12.2009
Posts: 47
|
Следующий вопрос
Модуль сбора данных Модбас РТУ
Включаю контроллер - надпись статуса через пару секунд гласит - ..... прочитано 0(3) регистров ..... ошибок соединения 4, запроса 0.
При этом если обновлять постоянно параметр, то он то считывается то впадает в ошибку.
Что означают эти значения статуса? Что такое ошибка соединения и ошибка запроса?
Где копать чтобы это исправить?
Прилагаются скриншоты с настройками
[This article was edited 1 times, at last 12.01.2010 at 09:42.]
Attachment
Снимок1.png (File type: image/png, Size: 89.01 kilobytes) — 2347 downloads
Снимок2.png (File type: image/png, Size: 47.17 kilobytes) — 2352 downloads
Снимок3.png (File type: image/png, Size: 63.29 kilobytes) — 2296 downloads
Снимок4.png (File type: image/png, Size: 5.22 kilobytes) — 2329 downloads
Снимок5.png (File type: image/png, Size: 57.95 kilobytes) — 2327 downloads
|
Written on: 12. 01. 2010 [14:42]
|
sonder
Олександр Клюшин
Topic creator
registered since: 24.12.2009
Posts: 47
|
Свою проблему разрывов связи решил путем подбора (увеличения) временных интервалов настройки транспорта последов. интерфейса. Нормально работает при 600:3:293.
Возник следующий вопрос.
У меня проблема в том, что если проект открывать в рабочем пользовательском интерфейсе, то картинки(виджет на основе медиа) видно а если через веб - картинок не видно. Что мне нужно исправить?
|
Written on: 12. 01. 2010 [16:12]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
Демо работает?
Learn, learn and learn better than work, work and work.
|
Written on: 12. 01. 2010 [16:52]
|
sonder
Олександр Клюшин
Topic creator
registered since: 24.12.2009
Posts: 47
|
Демо работает.
... Искал где в деме лежат огонек и вентилятор - так и не нашел....
|
Written on: 12. 01. 2010 [17:02]
|
Aleksey
Aleksey Popkov
Contributor
registered since: 31.07.2008
Posts: 326
|
sonder wrote:
Демо работает.
... Искал где в деме лежат огонек и вентилятор - так и не нашел....
Mime данные кадра.
|
Written on: 12. 01. 2010 [17:03]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
Значит формат ваших медиа-файлов не поддерживается браузером.
Learn, learn and learn better than work, work and work.
|
Written on: 12. 01. 2010 [17:05]
|
Aleksey
Aleksey Popkov
Contributor
registered since: 31.07.2008
Posts: 326
|
Библиотека "Тестовая" -> Ctrl-P -> Mime данные
|
Written on: 12. 01. 2010 [18:25]
|
sonder
Олександр Клюшин
Topic creator
registered since: 24.12.2009
Posts: 47
|
roman wrote:
Значит формат ваших медиа-файлов не поддерживается браузером.
формат .gif не анимированный.
Ни если задавать путь напряму ни через MIME не работает.
Пробовал формат png - тоже не работает (но в Демо ж работает и тот и другой).
Что-то я все-таки делаю не так, но что.....
Попробовал выдрать рисунок из Демо и вставить себе.... все равно не показывает в браузере....
[This article was edited 3 times, at last 13.01.2010 at 09:14.]
|