Какой такой "word_to_string"?
Предложенный способ повышения скорости обмена с панелью с использованием в мастере ПЛК модулей String output module/String input module здесь http://www.owen.ru/forum/showthread....l=1#post141316
Смотрите внимательно пример программы для ПЛК
Захват-1.png
Никаких преобразований числовых значения в ASCII коды здесь нет
А панель вообще не знает о том, что ее регистры читаются какими-то String input module. Т.е. никаких дополнительных телодвижений в проекте для панели делать не требуется, в том числе и преобразовать числовые значения в ASCII коды.
ЗЫ, Т.к. ссылка больше не работает привожу описание способа использования String output /String input модулей
1. Определяем приемлемое количество регистров в одном запросе, у меня в примере будет 16 регистров в одной группе.
Для каждой группы будем использовать ОДИН модуль String
Слишком много в группе делать не стоит.
а) для модуля String есть "магическая" цифра 80 (перманентное число байт в модуле String), по этому если модулей String будет больше одного, то в каждом можно использовать не более 80 байт или 40 регистров. Так получилось, что в реальном распределении памяти адрес каждого последующего модуля String совпадает с адресом 41 регистра предыдущего и все регистры старше 41 будут переписываться информацией из первых регистров последующих модулей.
Больше 40 регистров можно если модуль String всего один.
2.Помещаем String output и String input модули в разные UMD
Для UMD с String output задаем режим работы по изменению значения
Захват-5.png
В String output используем для записи 16 функцию
Захват-1.png
3. Смотрим в конфигурации какие адреса получились для модулей String, например AT %QB7.1.0.0 и/или AT %QB7.1.1.0 и/или %QB7.1.2.0 и т.д
Захват-2.png
4. Создаем в разделе описания переменных нужное количество групп регистров в виде массивов вида Blok1 AT %QB7.1.0.0:ARRAY [0..15] OF WORD
где после AT приводим адреса из конфигурации.
Захват-3.png
число байт в модуле String д.б. в два раза больше числа регистров в группе
Захват-4.png
5. В программе обращаемся к элементам массивов
Захват-6.png
Вот еще один пример - чтение из панели значений Float
Захват-2.png Захват-3.png





Ответить с цитированием