Есть аналоговый канал 12 бит - 4095 единиц. Требуемое напряжение 5 Вольт - коефициент для канала 5/4095= 0.01221 А как вычислять следующее: Необходим шаг дисретизации 0.05В (0.05, 0.10, 0.15...) на экране и в архиве. Не так уж и легко оперировать апертурой, дрейфом, сглаживанием и т.д. Кроме того шумы около 10-40 единиц.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Штатных готовых функций, позволяющих реализовать подобную процедуру, у нас нет. Однако, это легко сделать с помощью FBD, в состав которой входят 3 FB (DIV, FLOOR, * (умножение)), последовательно соединенные. В качестве делителя в Вашем случае надо принять 40.95, в качестве множителя 0.05. А вообще, задача, видимо, заслуживает того, чтобы в дальнейшем такая функция была реализована на системном уровне.
Posted by CONSAT (Участник № / Member № 51) on :
А если у нас всего около 500 аналоговых канаолов и к каждому из них мы подключим эту FBD-программу то как это отразится на скорости работы проекта в целом? на 1, 5, 10 %%медленее???
Posted by Потемкин В.В. (Участник № / Member № 31) on :
Какое оборудование Вы используете: Ш711 + PCL-818 ?
Posted by Wizard (Участник № / Member № 109) on :
Для контроля времени, затраченного на последний пересчёт базы каналов можно использовать канал подтипа Системный->Время пересчёта.
Posted by CONSAT (Участник № / Member № 51) on :
Ш711 (8*60) + PCL818(789) 16*6 = 576 А перед тем как посмотреть в канал для оценки времени - нужно убедиться что єто теоретически правильній подход...
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Никакими теоретическими методами нельзя достоверно оценить, сколько времени уходит на обработку базы каналов с конкретной математикой - не только количество вызываемых FBD, но и их содержание влияет на затрачиваемые ресурсы, а также - свойства ОС, быстродействие и архитектура ПК. А экспериментальная оценка получается очень просто и убедительно. Возьмите Ваш проект, запустите с командной строки сервер, и на его консоли Вы увидите реальное время пересчета. Если вы хотите оценить, сколько требует времени конкретная FBD, сделайте 100-200 пробных каналов с этой формулой и определите ее вклад в общие потребности. В частности, рекомендованная Вам формула на 5000 вызовов потребовала около 60 мс (Celeron 433).
Posted by Потемкин В.В. (Участник № / Member № 31) on :
Плата PCL-818 имеет 12 разрядов, цена одного разряда равна U/4095, где U - входной диапазон. Для того, что-бы цена разряда была равна 0.05 В , входной диапазон должен быть 0.05*4095 = 204,75 В, что невозможно. По совету наших коллег, можно поставить входной делитель с отношением плечей например 10/204,75. Тогда цена деления будет равна 0,05 В.
Posted by Pentagon (Участник № / Member № 74) on :
Да все получилось....
У нас был задан множитель (атрибут канала) и Неработало, то тех пор, пока его не убрали - должно ли быть так?
А если мы имеем различные диапазоны требуемых значений (всего 19). Будет ли в этом случае разумно сделать 1 FBD где множитель и делитель - аргументы (берут значения с каналов) или лучше сделать 19 FBD с константами? Этим вопросом, мы хотим понять как правильнее (корректнее, лучше, быстрее...) делать. Может ТМ'ду легче работать с константами.... consat@zp.ukrtel.net