This is topic Отправка данных через UniversalPLC_type. in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.
По сообщению от Nico 01-03-2014 13:28 из топика: Подключение принтера VideoJet 43s
================================
1) создать call.move. 34atr становить = 8. создать аргументы input создать output привязать к строкам если нужно ничего сложного нет
2) аргументы all.vector не причем Параметр=8,9 – записывает в аргумент OUT результат конкатенации строковых представлений предшествующих аргументов IN (если Параметр=9 – через пробел). Если к аргументу OUT привязан атрибут (140, ARG00) канала CALL, отличного от CALL.STRING, коды символов итоговой строки записывается в аргументы CALL следующим образом: в аргумент SINT/USINT – 1 символ; в аргумент INT/UINT – 2 символа; в аргумент другого типа данных – 4 символа; 4) результат направить куда надо 3) отработать например
====================================
Nico, благодарю Вас за помощь, но появились еще вопросы: Не могу понять, к примеру нужно передать на принтер в ASCII коде сообщение:
Тип:X Номер:Y Оператор:Z
где X,Y - слова, Z - число и они могут меняться.
Для проверки результата конкатенации CALL.MOVE хочу склеить 2 слова и вывести их на ГЭ"Текст". С числами при аргументах числового типа это получается, а со словами и аргументах типа String нет. Да и что/как тогда записать в параметр UniversalPLC_type Дополнительно SENDCMD = ??? ASCII; Слова Тип: Номер: Оператор: это постоянные значения. Получается их можно уже сразу забить в в параметр Дополнительно? Но как, вы могли бы объяснить?
Posted by Nico (Участник № / Member № 5342) on :
для хранения сток использовать Call.String
.аргументы call.move залинкованы на аргуметы call.string и такие аргументы не должны быть STRING
результат смотрим в аргументе CALL.string привязанном к output аргументы call.move
Posted by Ave Oleg (Участник № / Member № 6246) on :
Спасибо, Nico! "...результат смотрим в аргументе CALL.string привязанном к output аргументы call.move..." с числами этот вариант работает, а со словами все равно нет. Но получилось по другому Out аргумент call.move привязал к call.string по атрибуту Комментарий. Теперь выходят сложенные слова на ГЭ "Текст" Работает!! Однако слова введеные через ГЭ "Кнопка" передают не более 4-х символов. Это получается еще и call.ChGrougReq нужно создавать для передачи большего количества символов? Или же для каждой кнопки делать индивидуальный call.string с привязкой по атрибуту Комментарий?
Posted by Nico (Участник № / Member № 5342) on :
.У call.string ВСЕ аргументы должны быть String и не привязаны быть привязаны не к чему
..У call.move аргументы НЕ должны быть String и к ним привязаны call.string аргументы
...аргумент call.screen в который вводится слово должен быть String и к нему привязан call.string аргумент
Posted by Ave Oleg (Участник № / Member № 6246) on :
Nico, спасибо большое, теперь работает!
Теперь нужно передать SENDCMD = <команда>; ASCII; на источник UniversalPLC_type (на принтер). Получается такая связка: 1. Данные из call.string складываются через аргументы call.move. (Это все работает!) 2. Далее идут из call.move в call.vector по атрибуту 47,MF. (Правильно ли?) 3. С call.vector данные идут на привязанный к нему источник UniversalPLC_type т.е. на принтер.
4.Правильно ли составлена связка? 5.Назначение Com-порта - Host Variant? 6.Можно ли управлять call.vector подавая на его атрибут "Состояние" значение 1 или 0 из ST программы?
Posted by Nico (Участник № / Member № 5342) on :
1-5 вроде да. 6 да. Но отслеживать отработку у выключать канал Сложно. Наверное лучше output или период однократно