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

Форум

Ресурсы Rockwell

Product Directory

Essential Components

Literature Library

Knowledge Base

Electronic News&Magazines

Блог

Encompass Program

Product Certification

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

WinCC, как разложить по битам слово длиной в 32 бита?

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


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

СообщениеДобавлено: Вт 12 Янв, 2010 7:18:00    Заголовок сообщения: WinCC, как разложить по битам слово длиной в 32 бита? Ответить с цитатой

Здравствуйте!
Проблема в следующем:
WinCC как OPC клиент получает дискретные сигналы в запакованном виде Unsigned 32-bit value. Как этот тэг разобрать по битам? Чтобы можно было каждый бит(соответсвующее событию или состоянию) в AlarmLogging прописать, и на GraficsDesigner нарисовать?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DIMIOKS
Эксперт
Эксперт


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

СообщениеДобавлено: Вт 12 Янв, 2010 11:02:53    Заголовок сообщения: Ответить с цитатой

Доброго дня всем!
Мне когда-то надо было перевести Дельфовский Integer в стринговые значения и обратно:
http://www.vdt-automation.com.ua/modules.php?name=Forums&file=viewtopic&t=737&highlight=

А вообще стандартная задача, регистровый сдвиг, AND, сравнение результата, например, на 0, и так до конца.

Вот только насчет возможностей именно WinCC, увы, не знаю, что там можно использовать для этого.

P.S. Еще для разнообразия:
Код:
//Возвращает значение бита в целом
function Bit(Value, Index: Integer): Boolean;
asm
   bt eax, edx
   setc al
   and eax, 0FFh
end;

//Устанавливает бит в слове ABit-номер бита
function SetBit(AWord: word; ABit: byte; AState: boolean = true): word;
begin
  if AState then
    Result := AWord or (1 shl ABit)
  else
    Result := AWord and (not (1 shl ABit));
end;
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов 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.136 секунды
/n