У меня сейчас следующая задача: вычисляется контрольная сумма, представляется в виде целого чиссла, 2 байта. Мне нужно взять младший байт (это не проблема) и представить его 16-значение в виде строки, т.е. если значение младшего байта = 16#В6, то строка должна будет выглядеть как 'B'+'6'. Это для меня проблема, т.к. инструкции преобразования ASCII преобразовывают десятичные значения в строку. Может, я что-то упустил? Не хотелось бы подвязывать Дельфи для преобразования на рабочей станции.
Зарегистрирован: Mar 09, 2006 Сообщения: 29 Рейтинг: +2/-0 Откуда: Kharkov
Добавлено: Ср 07 Мар, 2007 12:29:05 Заголовок сообщения:
Да, действительно,
разработчики Роквэл-Автомэйшн почему-то посчитали, что такая инструкция в контроллере ненужна (в отличие от разработчиков Сименса )
У меня тоже возникала такая проблема. Я сам написал функцию в ControlLogix которая делает преобразование хексо-строки в dint и наоборот.
Если очень надо могу поделиться
Зарегистрирован: May 14, 2005 Сообщения: 290 Рейтинг: +9/-0 Откуда: г.Самара
Добавлено: Пн 12 Мар, 2007 15:33:00 Заголовок сообщения:
Доброго вечера всем!
Serega, мой ящик dimioks@rambler.ru. Жду письма. Сегодня начал писать свой алгоритм преобразования 16# в ASCII и обратно. Вобщем-то все не так уж и сложно, интересно, чей код окажется более оптимальным Я завтра, наверное, использую For Next, для преобразования строк, содержащих 16# представление числа, где длина STRING будет индексом цикла, а так-же, наверное, степенью, соответственно разряду в массиве DATA структуры типа STRING. Вобщем, подумаю, как лучше.
Зарегистрирован: May 14, 2005 Сообщения: 290 Рейтинг: +9/-0 Откуда: г.Самара
Добавлено: Пт 16 Мар, 2007 6:27:33 Заголовок сообщения:
Доброе утро всем!
Как я могу посмотреть (определить) состояние очереди инструкций ASCII (например, скоко инструкций в данный момент находятся в ожидании очереди)?
Прблема в скорости обработки инструкции чтения буфера: сторожевой таймер, работающий с момента прихода 11 байт ответа до момента полного чтения (переноса) символов из буфера показывает TIMER.ACC<1 до TIMER.ACC=32 при скорости обмена 38400, остальные настройки по умолчанию. Работает периодическая задача с приоритетом 1 и временем вызова 1мсек. При этом пакет ответа содержит корректные значения, которые корректно читаются. Но время 32мсек крайне не устраивает (это еще без учета времени на запрос). Какие системные процессы могут тормозить обработку инструкций?
Зарегистрирован: Mar 09, 2006 Сообщения: 29 Рейтинг: +2/-0 Откуда: Kharkov
Добавлено: Ср 21 Мар, 2007 10:13:53 Заголовок сообщения:
DIMIOKS писал(а):
Я завтра, наверное, использую For Next, для преобразования строк, содержащих 16# представление числа, где длина STRING будет индексом цикла, а так-же, наверное, степенью, соответственно разряду в массиве DATA структуры типа STRING.
Письмо выслал.
Я от использования FOR отказался. Лишних N вызовов процедур увеличат время выполнения программы. Вместо этого я использовал безусловные переходы и метки. Хотя какой вариант будет работать быстрее нужно проверить экспериментально. Удачи
Письмо получил, но реально посмотрю только через несколько дней. Дела, дела... Насчет FOR спасибо за напоминание! Еще давно я полностью отказался от использования этой процедуры, тоже из-за времени выполнения. Но согласитесь, что на этапе разработки это довольно удобная инструкция... А оптимизация всегда остается. Главно, чтобы этот блок программы работал
Еще раз спасибо за сотрудничество!
Кстати, у Вас не было проблем со временем выполнения инструкций ASCII, связаных с портом? Про асинхронный режим выполнения данных инструкций и очереди я в курсе И по алгоритму вроде как только одна инструкция записи или чтения буфера в работе, однако... загадочность некоторых чисто системных процессов приводит к разбросу от <1мс до >20мс...
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
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.129 секунды