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

Форум

Ресурсы Rockwell

Product Directory

Essential Components

Literature Library

Knowledge Base

Electronic News&Magazines

Блог

Encompass Program

Product Certification

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

Преобразование в ASCII

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


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

СообщениеДобавлено: Пн 26 Фев, 2007 8:15:31    Заголовок сообщения: Преобразование в ASCII Ответить с цитатой

Доброго дня всем!

У меня сейчас следующая задача: вычисляется контрольная сумма, представляется в виде целого чиссла, 2 байта. Мне нужно взять младший байт (это не проблема) и представить его 16-значение в виде строки, т.е. если значение младшего байта = 16#В6, то строка должна будет выглядеть как 'B'+'6'. Это для меня проблема, т.к. инструкции преобразования ASCII преобразовывают десятичные значения в строку. Может, я что-то упустил? Не хотелось бы подвязывать Дельфи для преобразования на рабочей станции.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Serega
Частый гость
Частый гость


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

СообщениеДобавлено: Ср 07 Мар, 2007 12:29:05    Заголовок сообщения: Ответить с цитатой

Да, действительно,
разработчики Роквэл-Автомэйшн почему-то посчитали, что такая инструкция в контроллере ненужна (в отличие от разработчиков Сименса Wink)
У меня тоже возникала такая проблема. Я сам написал функцию в ControlLogix которая делает преобразование хексо-строки в dint и наоборот.
Если очень надо могу поделиться
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
oldDad
Site Admin
Site Admin


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

СообщениеДобавлено: Ср 07 Мар, 2007 13:30:49    Заголовок сообщения: Ответить с цитатой

А и в самом деле, если не жалко поделиться с коллегами - выложите сюда, или пришлите, а я выложу в "Файлы".

В RSLogix5000 v16 эта проблема будет решена, можно будет самостоятельно Add-On инструкции и создавать библиотеки.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
DIMIOKS
Эксперт
Эксперт


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

СообщениеДобавлено: Ср 07 Мар, 2007 14:23:07    Заголовок сообщения: Ответить с цитатой

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


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

СообщениеДобавлено: Пн 12 Мар, 2007 7:39:27    Заголовок сообщения: Ответить с цитатой

На какой адрес высылать? Я так понимаю движок сайта вложения отсылать не позволяет.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DIMIOKS
Эксперт
Эксперт


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

СообщениеДобавлено: Пн 12 Мар, 2007 15:33:00    Заголовок сообщения: Ответить с цитатой

Доброго вечера всем!

Serega, мой ящик dimioks@rambler.ru. Жду письма. Сегодня начал писать свой алгоритм преобразования 16# в ASCII и обратно. Вобщем-то все не так уж и сложно, интересно, чей код окажется более оптимальным Drinks or Beer Я завтра, наверное, использую For Next, для преобразования строк, содержащих 16# представление числа, где длина STRING будет индексом цикла, а так-же, наверное, степенью, соответственно разряду в массиве DATA структуры типа STRING. Вобщем, подумаю, как лучше.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
DIMIOKS
Эксперт
Эксперт


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

СообщениеДобавлено: Пт 16 Мар, 2007 6:27:33    Заголовок сообщения: Ответить с цитатой

Доброе утро всем!

Как я могу посмотреть (определить) состояние очереди инструкций ASCII (например, скоко инструкций в данный момент находятся в ожидании очереди)?

Прблема в скорости обработки инструкции чтения буфера: сторожевой таймер, работающий с момента прихода 11 байт ответа до момента полного чтения (переноса) символов из буфера показывает TIMER.ACC<1 до TIMER.ACC=32 при скорости обмена 38400, остальные настройки по умолчанию. Работает периодическая задача с приоритетом 1 и временем вызова 1мсек. При этом пакет ответа содержит корректные значения, которые корректно читаются. Но время 32мсек крайне не устраивает (это еще без учета времени на запрос). Какие системные процессы могут тормозить обработку инструкций?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Serega
Частый гость
Частый гость


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

СообщениеДобавлено: Ср 21 Мар, 2007 10:13:53    Заголовок сообщения: Ответить с цитатой

DIMIOKS писал(а):
Я завтра, наверное, использую For Next, для преобразования строк, содержащих 16# представление числа, где длина STRING будет индексом цикла, а так-же, наверное, степенью, соответственно разряду в массиве DATA структуры типа STRING.

Письмо выслал.
Я от использования FOR отказался. Лишних N вызовов процедур увеличат время выполнения программы. Вместо этого я использовал безусловные переходы и метки. Хотя какой вариант будет работать быстрее нужно проверить экспериментально. Удачи
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
DIMIOKS
Эксперт
Эксперт


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

СообщениеДобавлено: Вт 03 Апр, 2007 16:35:26    Заголовок сообщения: Ответить с цитатой

Добрый вечер!

Письмо получил, но реально посмотрю только через несколько дней. Дела, дела... Насчет FOR спасибо за напоминание! Еще давно я полностью отказался от использования этой процедуры, тоже из-за времени выполнения. Но согласитесь, что на этапе разработки это довольно удобная инструкция... А оптимизация всегда остается. Главно, чтобы этот блок программы работал Rolling Eyes

Еще раз спасибо за сотрудничество!

Кстати, у Вас не было проблем со временем выполнения инструкций ASCII, связаных с портом? Про асинхронный режим выполнения данных инструкций и очереди я в курсе Rolling Eyes И по алгоритму вроде как только одна инструкция записи или чтения буфера в работе, однако... загадочность некоторых чисто системных процессов приводит к разбросу от <1мс до >20мс...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить 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.125 секунды
/n