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

Форум

Ресурсы Rockwell

Product Directory

Essential Components

Literature Library

Knowledge Base

Electronic News&Magazines

Блог

Encompass Program

Product Certification

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

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


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

СообщениеДобавлено: Вс 26 Окт, 2008 12:50:35    Заголовок сообщения: обработка слова DINT Ответить с цитатой

Здравствуйте, товарищи! Передо мной возникла такая задача: необходимо в RSview вытаскивать тэги состояния устройства из контроллера L63. Все эти тэги дискретные и если тянуть их отдельно цифровыми - дискретными тэгами типа BOOL то возникнет большой расход тэгов, тк устройств несколько сотен и по каждому порядка 20 дополнительных тэгов, а в RSview лицензия 5k. Возникла идея вытаскивать слово-состояние DINT по каждому устройству. При этом меня интересует как лучше поступить при организации алармов для таких слов, тк каждое такое слово будет содержать несколько битов тревоги. Правильно ли я поступлю, если создам для каждого бита свой Derived Tag? И вообще существует ли какой то предел по количеству Derived Tags в RSview не отобразится ли это на скорости работы графики?


PS. а RSLogics возникла в свою очередь другая задача. Слово DINT я получаю путем задания тэгов типа BOOL алиасами для отдельных битов слова DINT, тут возникает некая проблемка: 4 тэга типа BOOL являются также алиасами для каналов модулей вв/выв. Можно ли один тэг быть алиасом для 2-х других?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
oldDad
Site Admin
Site Admin


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

СообщениеДобавлено: Вс 26 Окт, 2008 15:46:03    Заголовок сообщения: Ответить с цитатой

Тут не только "большой расход тэгов" наступит но и сеть будет перегружена, да и Вы своими derived tags интенсивно загрузите рабочую станцию.

Зачем вообще делать какие-то вычисления (которых много) в рабочей станции под RSView? Зачем её этим грузить? Почему бы не написать программу обработки алармов прямо в контроллере, используя, например, удобную индексную адресацию и команды обработки алармов, которые есть в RSLogix?

Эта программа может проверять все ошибки, а затем создавать массив, содержащий какие-то слова состояния: где случилось, что случилось и т.п. И тогда пусть RSView смотрит на эти слова состояния (если вообще хотя бы один аларм имеет место). Тогда Вы ещё и сеть освободите от пересылки по ней никому не нужной ерунды (сотен и сотен битовых тэгов).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
maxim
Эксперт
Эксперт


Зарегистрирован: Feb 16, 2007
Сообщения: 123
Рейтинг: +7/-0
Откуда: Енакиево

СообщениеДобавлено: Пн 27 Окт, 2008 6:43:29    Заголовок сообщения: Re: обработка слова DINT Ответить с цитатой

Med писал(а):
Все эти тэги дискретные и если тянуть их отдельно цифровыми - дискретными тэгами типа BOOL то возникнет большой расход тэгов, тк устройств несколько сотен и по каждому порядка 20 дополнительных тэгов ...

В документе pm0016 находим следующее:
"Важно: Минимизируйте использование массивов BOOL. "
там же сказано :
"Также можно использовать отдельные биты тега DINT или массив данных типа
DINT."
а для выборки нужных вам алармов и т.п. можете использовать битовую маску и статусные теги каналов

Med писал(а):
Правильно ли я поступлю, если создам для каждого бита свой Derived Tag?

я бы посоветовал Вам все вычисления перенести в контроллер, собственно для этого он и нужен Smile . Удачи.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Med
Частый гость
Частый гость


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

СообщениеДобавлено: Пн 27 Окт, 2008 16:06:16    Заголовок сообщения: Ответить с цитатой

Это понятно все, но тут вот в чем проблема: по уcтройствам несколько видов аварийных сигналов, отображения любого из них нужно получать в RSView. А если брать аналоговые параметры, то по каждому необходимо иметь возможность изменять уставочные пороги алармов, а их 4 по каждому аналогу, поэтому я и решил не тянуть их в контроллер, а обрабатывать их в RSView, тем более, что эти алармы не участвуют в выполнении логики, поэтому я и решил обрабатывать слова DINT по каждому устройству при помощи битовой маски
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
oldDad
Site Admin
Site Admin


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

СообщениеДобавлено: Пн 27 Окт, 2008 20:54:27    Заголовок сообщения: Ответить с цитатой

Почему бы не настроить уставки алармов один раз в жизни прямо в контроллере? Они же меняются не каждый день, и даже не каждую неделю. Даже, наверное, не каждый месяц. Или я ошибаюсь? Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Med
Частый гость
Частый гость


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

СообщениеДобавлено: Ср 29 Окт, 2008 15:57:26    Заголовок сообщения: Ответить с цитатой

Ваша позиция ясна, все вполне логично. Но здесь иная ситуация и требования заказчиков очень экзотичны), здесь нужно иметь возможность менять уставки на уровне пользователей, а не на уровне программистов, поэтому и приходится так заморачиваться с кучей дополнительных тэгов но при этом в 5к уложиться
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
oldDad
Site Admin
Site Admin


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

СообщениеДобавлено: Ср 29 Окт, 2008 21:01:55    Заголовок сообщения: Ответить с цитатой

Сочувствую...

Просто интересно: как часто в реальной жизни оператор, пользующийся системой автоматизации для управления технологичесим процессом, будет устанавливать уставки алармов? И, главное. зачем это ему нужно?

А почему нельзя приобрести версию RSView32 c бОльшим количеством тэгов? Почему вообще надо приобретать устаревшую RSView32 с ограниченным количеством физических тэгов, а не новую современную RSViewSE, где количество тэгов никак не ограничивается?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Med
Частый гость
Частый гость


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

СообщениеДобавлено: Чт 30 Окт, 2008 17:49:14    Заголовок сообщения: Ответить с цитатой

Уставки меняются не часто, несколько раз в год, в зависимости от сезона, но заказчики не имеют собственного программиста, который мог бы сидеть вбивать эти уставки, поэтому задача стоит построить систему "на дурака", чтобы обслуживающий персонал имел возможность это сделать. То что 5к это очень мало я сам понимаю, но меня очень попросили влезть в эти рамки.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
oldDad
Site Admin
Site Admin


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

СообщениеДобавлено: Чт 30 Окт, 2008 22:29:48    Заголовок сообщения: Ответить с цитатой

Цитата:
Уставки меняются не часто, несколько раз в год, в зависимости от сезона


Так это алармы или рецептуры, т.е. параметры технологического процесса?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Med
Частый гость
Частый гость


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

СообщениеДобавлено: Сб 01 Ноя, 2008 15:49:00    Заголовок сообщения: Ответить с цитатой

это больше как параметры срабатывания аврийной сигнализации по измеряемым физическим параметрам (давление ,температура и тд). Как раз по этому поводу еще вопрос. Как сделать, чтобы введеные в запущенном проекте значения аналоговых тэгов не сбрасывались при перезагрузке проекта. Можно для хранения этих значений использовать какую-либо внешнюю таблицу Екселя?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
oldDad
Site Admin
Site Admin


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

СообщениеДобавлено: Сб 01 Ноя, 2008 16:21:52    Заголовок сообщения: Ответить с цитатой

Храните их в контроллере Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
dv_
Эксперт
Эксперт


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

СообщениеДобавлено: Пн 03 Ноя, 2008 9:13:32    Заголовок сообщения: Ответить с цитатой

Med писал(а):
Как сделать, чтобы введеные в запущенном проекте значения аналоговых тэгов не сбрасывались при перезагрузке проекта. Можно для хранения этих значений использовать какую-либо внешнюю таблицу Екселя?

У RS была внешняя программа для этих целей - мне не понравилась.
Используй VBA - изменяй значения тега по умолчанию, пуск кода по закрытию экрана изменения тегов.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DIMIOKS
Эксперт
Эксперт


Зарегистрирован: May 14, 2005
Сообщения: 290
Рейтинг: +9/-0
Откуда: г.Самара

СообщениеДобавлено: Вт 04 Ноя, 2008 18:38:54    Заголовок сообщения: Ответить с цитатой

Цитата:
Можно для хранения этих значений использовать какую-либо внешнюю таблицу Екселя?


С помощью VBA так-же можно все енто дело вносить в текстовик, Ексель, какую-нибудь БД. Смотрите в примере, который идет вместе с RSView32.
Хотя я сам и не использую VBA на рабочих проектах, но ради интереса баловался, все получалось.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Med
Частый гость
Частый гость


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

СообщениеДобавлено: Вт 04 Ноя, 2008 19:54:13    Заголовок сообщения: Ответить с цитатой

ясно, надо попробовать, может что и получится, правда сложновато будет, с синтаксисом VBA не знаком
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DIMIOKS
Эксперт
Эксперт


Зарегистрирован: May 14, 2005
Сообщения: 290
Рейтинг: +9/-0
Откуда: г.Самара

СообщениеДобавлено: Чт 27 Ноя, 2008 6:09:06    Заголовок сообщения: Ответить с цитатой

Привет всем!
Попутно касательно снижения количества тегов (для меня это тоже актуально)
можно привести следующий код:

Код:
//Перевод знакового 4-байтного целого в строку как набор битов
function IntToStrBool(a:integer):string;
var
  MyStr: string;
  i, b, c, d: integer;
begin
  try
    MyStr := '00000000000000000000000000000000';
    i := 0; b := 0; c := 0; d := 0;
    for i := 31 downto 0 do
      begin
        b := a shr i;   //Сдвигаем битовый массив a вправо на i-разрядов
        c := b xor d;   //Операция "исключающее ИЛИ"
        case c of
          0:  begin
                MyStr[32-i] := '0';
              end;
          1:  begin
                MyStr[32-i] := '1';
                inc(d); //Увеличиваем на d +1
              end;
        end;
        d := d shl 1; //Сдвигаем битовый d массив влево
      end;
    result := MyStr;
  except
    //Обработка исключений
  end;
end;

//Перевод набор битов в строке в знаковое 4-байтное целое
function StrBoolToInt(MyStr: string):integer;
var
  i, a: integer;
begin
  try
    i := 0; a := 0;
    for i := 1 to 32 do
      begin
        a := a shl 1; //Сдвигаем битовый a массив влево на 1 разряд
        if MyStr[i] ='1' then inc(a); //Увеличиваем a на +1
      end;
    result := a;
  except
    //Обработка исключений
  end;
end;


А вот кто приведет аналог на VBA, то было-бы вообще классно Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Smart Solutions VDT -> Программные средства систем автоматизации Часовой пояс: GMT + 1
На страницу 1, 2  След.
Страница 1 из 2

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

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