Вход на форум 
В начало e-Mail

Форум

Ресурсы Rockwell

Product Directory

Essential Components

Literature Library

Knowledge Base

Electronic News&Magazines

Блог

Encompass Program

Product Certification

  
Smart Solutions VDT :: Просмотр темы - Обнуление переменной в блоке ADD.
 FAQFAQ   ПоискПоиск   ГруппыГруппы   ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Обнуление переменной в блоке ADD.

 
Начать новую тему   Ответить на тему    Список форумов Smart Solutions VDT -> Программные средства систем автоматизации
Предыдущая тема :: Следующая тема  
Автор Сообщение
mp3corp
Эксперт
Эксперт


Зарегистрирован: Dec 12, 2012
Сообщения: 164
Рейтинг: +2/-0

СообщениеДобавлено: Вт 01 Июл, 2014 5:41:38    Заголовок сообщения: Обнуление переменной в блоке ADD. Ответить с цитатой

Сделал накопитель, через анал. сигнал от расходомера
Рис1, так же необходима возможность обнуления накопительного расхода, первое что пришло на ум, просто в скаде присвоить значению переменной накопительного расхода - 0, однако обнуления не происходит. Пришлось делать нечто вроде этого: Рис2. Что-то не могу понять почему сразу нельзя записать - 0 в переменную накопительного расхода, так и должно быть?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
oldDad
Site Admin
Site Admin


Зарегистрирован: May 05, 2005
Сообщения: 2773
Рейтинг: +89/-5

СообщениеДобавлено: Вт 01 Июл, 2014 7:16:53    Заголовок сообщения: Ответить с цитатой

Предполагаю по логике программы, что "переменная накопительного расхода" - это тэг "Acc".

Если это так, то в примере 1 Вы, может быть, на какое-то мгновенье и обнулите этот тэг от SCADA, но он немедленно, - самое позднее через время цикла 1 скана - снова запишется актуальным значением.
_________________
Обращайтесь к профессионалам.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
mp3corp
Эксперт
Эксперт


Зарегистрирован: Dec 12, 2012
Сообщения: 164
Рейтинг: +2/-0

СообщениеДобавлено: Вт 01 Июл, 2014 7:58:44    Заголовок сообщения: Ответить с цитатой

Это понятно, просто когда делаю обнуление через MOV то все прекрасно обнуляется.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


Зарегистрирован: Sep 14, 2006
Сообщения: 776
Рейтинг: +41/-1
Откуда: Донецк

СообщениеДобавлено: Вт 01 Июл, 2014 8:16:55    Заголовок сообщения: Ответить с цитатой

mp3corp писал(а):
Это понятно, просто когда делаю обнуление через MOV то все прекрасно обнуляется.
Потому что внутри AOI (я правильно понял "в блоке ADD"?).

ACC какой тип: In, Out, InOut?

C Float для ACC будешь иметь проблемы: большое значение ACC и маленькое Cur - плавно подойдешь к насыщению.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
mp3corp
Эксперт
Эксперт


Зарегистрирован: Dec 12, 2012
Сообщения: 164
Рейтинг: +2/-0

СообщениеДобавлено: Вт 01 Июл, 2014 8:45:07    Заголовок сообщения: Ответить с цитатой

Да, 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
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


Зарегистрирован: Sep 14, 2006
Сообщения: 776
Рейтинг: +41/-1
Откуда: Донецк

СообщениеДобавлено: Вт 01 Июл, 2014 9:03:16    Заголовок сообщения: Ответить с цитатой

mp3corp писал(а):
Да, 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, там будет сложнее, но тоже можно
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
mp3corp
Эксперт
Эксперт


Зарегистрирован: Dec 12, 2012
Сообщения: 164
Рейтинг: +2/-0

СообщениеДобавлено: Вт 01 Июл, 2014 9:32:16    Заголовок сообщения: Ответить с цитатой

На скриншоте была логика запущенная на эмулятора, на самом объекте значение расхода довольно таки больше, запустил тренд на эмуляторе сейчас наблюдаю за результатами. Что бы в моем случае произошло перенасыщение, то потребуется несколько лет)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


Зарегистрирован: Sep 14, 2006
Сообщения: 776
Рейтинг: +41/-1
Откуда: Донецк

СообщениеДобавлено: Вт 01 Июл, 2014 20:53:18    Заголовок сообщения: Ответить с цитатой

mp3corp писал(а):
На скриншоте была логика запущенная на эмулятора, на самом объекте значение расхода довольно таки больше, запустил тренд на эмуляторе сейчас наблюдаю за результатами. Что бы в моем случае произошло перенасыщение, то потребуется несколько лет)
Никто не обещал что будет легко Very Happy
Посмотри дома на счетчик электроэнергии (воды, газа) - сколько знаков?
Что будет после 99999.99 (набрано от фонаря), к этому значению + 0.01. Что будет? Подсказываю - 0 и перенос. Потому что Целочисленноые вычисления.
Float (Real) - коварные представления - см. выше про машинный ноль (мне про это в институте объясняли..., а память у меня хорошая + опыт).

PS. Правильно oldDad пишет: "Обращайтесь к профессионалам.".
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
mp3corp
Эксперт
Эксперт


Зарегистрирован: Dec 12, 2012
Сообщения: 164
Рейтинг: +2/-0

СообщениеДобавлено: Ср 02 Июл, 2014 7:13:31    Заголовок сообщения: Ответить с цитатой

dv_ писал(а):
mp3corp писал(а):
На скриншоте была логика запущенная на эмулятора, на самом объекте значение расхода довольно таки больше, запустил тренд на эмуляторе сейчас наблюдаю за результатами. Что бы в моем случае произошло перенасыщение, то потребуется несколько лет)
Никто не обещал что будет легко Very Happy
Посмотри дома на счетчик электроэнергии (воды, газа) - сколько знаков?
Что будет после 99999.99 (набрано от фонаря), к этому значению + 0.01. Что будет? Подсказываю - 0 и перенос. Потому что Целочисленноые вычисления.
Float (Real) - коварные представления - см. выше про машинный ноль (мне про это в институте объясняли..., а память у меня хорошая + опыт).

PS. Правильно oldDad пишет: "Обращайтесь к профессионалам.".

Протестировал на эмуляторе накопитель, да действительно при привышении значения накопителя 999999.9 появляется экспанента, но в моем случае когда часовой расход будет в районе 60м3-70м3 данная проблема не актуальна. Хотя буду по вашему совету смотреть в сторону использования "TOT", если с ним все получится то буду его использовать там где "большие" цифры расходов. Спс за помощь.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


Зарегистрирован: Sep 14, 2006
Сообщения: 776
Рейтинг: +41/-1
Откуда: Донецк

СообщениеДобавлено: Ср 02 Июл, 2014 8:08:07    Заголовок сообщения: Ответить с цитатой

mp3corp писал(а):
Хотя буду по вашему совету смотреть в сторону использования "TOT", если с ним все получится то буду его использовать там где "большие" цифры расходов. Спс за помощь.

Для TOT внутренний счетчик в Double - надолго отодвигает проблему. Идеальный интегратор - прямая линия в бесконечность, реальный - экспонента. Борьба с недоучетом - работать на прямом участке и вовремя сбрасывать в ноль.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Smart Solutions VDT -> Программные средства систем автоматизации Часовой пояс: GMT + 1
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах

Powered by phpBB © 2001, 2005 phpBB Group
Яндекс цитирования

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.144 секунды
/n