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

Форум

Ресурсы Rockwell

Product Directory

Essential Components

Literature Library

Knowledge Base

Electronic News&Magazines

Блог

Encompass Program

Product Certification

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

Переполнение с остановкой программы

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


Зарегистрирован: May 25, 2010
Сообщения: 13
Рейтинг: +0/-0

СообщениеДобавлено: Ср 21 Июл, 2010 4:30:35    Заголовок сообщения: Переполнение с остановкой программы Ответить с цитатой

Для измерения температуры используем Pt100, подключенные к 1769-IR6.
Масштабирование производим в блоке SCP с параметрами (-32768,32767)->(-200,850) - по документации.
Калибровку выполняем с помощью магазина сопротивлений и таблицы для использ. датчиков Pt100. Все работает и правильно пересчитывает в температуру, пока не достигаем сопротивления прибл. 220 Ом (прибл. 300 Цельсия). Выскакивает флаг переполнения и загорается FAULT в среде программирования. Вынуждены были в конце каждого цикла сбрасывать флаг переполнения, тогда остановки не происходит. Непонятна причина переполнения, т.к. при указанном сопротивлении до границ диапазона далеко. Характерно, что при отсоединении магазина (обрыв, бесконечное сопротивление) переполнения не возникает.
Подскажите, плз, если кто сталкивался с этим.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
ITop
Частый гость
Частый гость


Зарегистрирован: Apr 19, 2010
Сообщения: 15
Рейтинг: +1/-0

СообщениеДобавлено: Ср 21 Июл, 2010 6:24:03    Заголовок сообщения: Ответить с цитатой

Попробуйте локализовать место возникновения переполнения в программе.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
cskcsk
Частый гость
Частый гость


Зарегистрирован: May 25, 2010
Сообщения: 13
Рейтинг: +0/-0

СообщениеДобавлено: Ср 21 Июл, 2010 9:35:02    Заголовок сообщения: Ответить с цитатой

Так больше ничего и нет (с аналогами). Значение FLOAT с выхода SCP множится на 100 (для сохранения десятичных цифр) и сохраняется в виде INT для чтения по модбас.
Как можно локализовать ошибку?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
dv_
Эксперт
Эксперт


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

СообщениеДобавлено: Чт 22 Июл, 2010 10:59:38    Заголовок сообщения: Ответить с цитатой

cskcsk писал(а):
Так больше ничего и нет (с аналогами). Значение FLOAT с выхода SCP множится на 100 (для сохранения десятичных цифр) и сохраняется в виде INT для чтения по модбас.
Как можно локализовать ошибку?

Смотри выход SCP во Float, потом INT умноженный на 100.
При твоей верхней темепературе (850) надо умножать на 10, иначе твой максимум будет 327.67 град.

Лучше поручить масштабирование в градусы модулю, он умеет.
Поведение при обрыве тоже настраивается.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Serega
Частый гость
Частый гость


Зарегистрирован: Mar 09, 2006
Сообщения: 29
Рейтинг: +2/-0
Откуда: Kharkov

СообщениеДобавлено: Чт 22 Июл, 2010 13:07:34    Заголовок сообщения: Ответить с цитатой

Я уже давно не занимался контроллерами Allen Bradley, однако позволю себе выказать идею. Я думаю, что переполнение происходит при попытке преобразовать REAL значение в INT.

Цитата:
Все работает и правильно пересчитывает в температуру, пока не достигаем сопротивления прибл. 220 Ом (прибл. 300 Цельсия).



Цитата:
Значение FLOAT с выхода SCP множится на 100 (для сохранения десятичных цифр) и сохраняется в виде INT для чтения по модбас.


Итак, допустим, Вы измерили температуру, и она равна 330 град. С. Затем Вы умножили ее на 100 и получили 33000. Далее пытаетесь преобразовать ее в INT. Насколько я помню, тип INT в контроллерах Allen Bradley - это знаковое 16-разрядное целое, а значит его диапазон равен -32768..32768. Вы же пытаетесь записать в эту переменную значение 33000, что вызывает переполнение.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов 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.132 секунды
/n