Сделал накопитель, через анал. сигнал от расходомера
Рис1, так же необходима возможность обнуления накопительного расхода, первое что пришло на ум, просто в скаде присвоить значению переменной накопительного расхода - 0, однако обнуления не происходит. Пришлось делать нечто вроде этого: Рис2. Что-то не могу понять почему сразу нельзя записать - 0 в переменную накопительного расхода, так и должно быть?
Предполагаю по логике программы, что "переменная накопительного расхода" - это тэг "Acc".
Если это так, то в примере 1 Вы, может быть, на какое-то мгновенье и обнулите этот тэг от SCADA, но он немедленно, - самое позднее через время цикла 1 скана - снова запишется актуальным значением. _________________ Обращайтесь к профессионалам.
Да, Cur и Acc оба Float, про перенасыщение немного не понял. Какие проблемы могут возникнуть? Блок ADD, не мной написан я его брал из стандартной палитры компонентов. Согласно доки
SourceA REAL Value to add to SourceB.
Valid = any float
SourceB REAL Value to add to SourceA.
Valid = any float
Вроде как и должны быть FLoat
Да, Cur и Acc оба Float, про перенасыщение немного не понял. Какие проблемы могут возникнуть?
Не "перенасыщение", а насыщение.
Cur может быть машинным нулем для Acc.
Сделай простую программу:
Код:
Acc = Acc + 1.0
Посмотри тренд для Acc - все поймешь сам.
KB ID 9878 The IEEE Single Precision Floating Point standard affects totalization applications and compute or math errors occur when adding ... писал(а):
The IEEE Single Precision Floating Point standard requires the exponents in the two operands to be the same. Since the fractional component is only 23 bits, as the exponent gets larger, the fractional component approaches zero.
The effect of this can be easily seen when adding 1 to a number over a period of time.
When the sum is in the 16 million range, the number 1 becomes 0 because the exponent is so large, a "1" is insignificant, and gets shifted out of the equation. The result is that a 0 is added instead of a 1.
This is a limitation of the Single Precision Floating Point Math Standard. As an example, when adding 1 to a number, you will see a zero added at 1.677722e+007.
Для Logix используй команду TOT в FBD.
mp3corp писал(а):
Блок ADD, не мной написан я его брал из стандартной палитры компонентов.
ADD - команда, обнуляться должно (если ACC не используется для JSR как вход и выход). Из-за слова блок я подумал что, этот код применяется в AOI, там будет сложнее, но тоже можно
На скриншоте была логика запущенная на эмулятора, на самом объекте значение расхода довольно таки больше, запустил тренд на эмуляторе сейчас наблюдаю за результатами. Что бы в моем случае произошло перенасыщение, то потребуется несколько лет)
На скриншоте была логика запущенная на эмулятора, на самом объекте значение расхода довольно таки больше, запустил тренд на эмуляторе сейчас наблюдаю за результатами. Что бы в моем случае произошло перенасыщение, то потребуется несколько лет)
Никто не обещал что будет легко
Посмотри дома на счетчик электроэнергии (воды, газа) - сколько знаков?
Что будет после 99999.99 (набрано от фонаря), к этому значению + 0.01. Что будет? Подсказываю - 0 и перенос. Потому что Целочисленноые вычисления.
Float (Real) - коварные представления - см. выше про машинный ноль (мне про это в институте объясняли..., а память у меня хорошая + опыт).
PS. Правильно oldDad пишет: "Обращайтесь к профессионалам.".
На скриншоте была логика запущенная на эмулятора, на самом объекте значение расхода довольно таки больше, запустил тренд на эмуляторе сейчас наблюдаю за результатами. Что бы в моем случае произошло перенасыщение, то потребуется несколько лет)
Никто не обещал что будет легко
Посмотри дома на счетчик электроэнергии (воды, газа) - сколько знаков?
Что будет после 99999.99 (набрано от фонаря), к этому значению + 0.01. Что будет? Подсказываю - 0 и перенос. Потому что Целочисленноые вычисления.
Float (Real) - коварные представления - см. выше про машинный ноль (мне про это в институте объясняли..., а память у меня хорошая + опыт).
PS. Правильно oldDad пишет: "Обращайтесь к профессионалам.".
Протестировал на эмуляторе накопитель, да действительно при привышении значения накопителя 999999.9 появляется экспанента, но в моем случае когда часовой расход будет в районе 60м3-70м3 данная проблема не актуальна. Хотя буду по вашему совету смотреть в сторону использования "TOT", если с ним все получится то буду его использовать там где "большие" цифры расходов. Спс за помощь.
Хотя буду по вашему совету смотреть в сторону использования "TOT", если с ним все получится то буду его использовать там где "большие" цифры расходов. Спс за помощь.
Для TOT внутренний счетчик в Double - надолго отодвигает проблему. Идеальный интегратор - прямая линия в бесконечность, реальный - экспонента. Борьба с недоучетом - работать на прямом участке и вовремя сбрасывать в ноль.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
Smart Solutions VDT GmbH | Friedrich-List-Allee 38, D-41844 Wegberg-Wildenrath, Germany Tel.: +49 2432 933 57 83 | e-Mail: office@vdt-solutions.de Все товарные знаки и торговые марки являются собственностью их владельцев.
При использовании материалов сайта ссылка на данный сайт обязательна. Открытие страницы: 0.134 секунды