PDA

Просмотр полной версии : СПК207 и переменные STRING



Yaroslav_22
06.06.2018, 07:24
Здравствуйте

Продолжая осваивать СПК207, появился следующий вопрос:
1. есть переменная типа STRING, в которой появляется тот или иной текст, хочу этот текст выводить на панель, Создаю в визуализации элемент "Текстовое поле", в настройках во вкладке "Текстовые переменные" указываю ссылку на эту переменную, загружаю проект и текста нет - что не так делаю?
2. хочу на панели писать текст (номер телефона, текст СМС) и в дальнейшем передавать его в плк, а тот в модем ПМ1 и далее отправляется СМС - не смог найти клавиатуру и как эту функцию реализовать?

Может есть готовый "базовый" проект с реализацией данных функций?

Евгений Кислов
06.06.2018, 07:49
Добрый день.

В параметре Тексты/Текст надо поставить спецификатор %s.
Если вы планируете набирать sms на русском, то потребуется в визуализации использовать тип данных WSTRING.
Для конвертации в STRING (для передачи на ПЛК) используйте библиотеку OwenStringUtils.
Русскоязычную клавиатуру для ввода и информацию по работе с ней можно найти здесь:
http://www.owen.ru/forum/showthread.php?t=22038&p=214830&viewfull=1#post214830

Не забудьте установить галочку Использовать строки Unicode в Менеджере визуализации.

Yaroslav_22
06.06.2018, 07:51
большое спасибо, буду изучать...

Yaroslav_22
06.06.2018, 09:25
я правильно понял, что бы я мог вводить на спк русский текст, мне нужно переустановить CS с SP5 на SP6 и выше?
с этим связано то, что не отображается русский текст из СМС? или где то настраивается, галочка на поддержку юникода выставлена.
37569

Евгений Кислов
06.06.2018, 09:32
Чтобы вводить - да.

Ваш случай с этим не связан. Вы, видимо, тип переменной на WSTRING не изменили или неправильно конвертировали STRING в WSTRING.

Yaroslav_22
06.06.2018, 09:53
буду перестанавливать...

все заработало, неправильно сконвертировал!

Евгений Кислов
06.06.2018, 09:58
Переустанавливать не надо, версии CODESYS ставятся независимо.
Просто поставьте ее в другую папку.

Yaroslav_22
06.06.2018, 10:33
если текст слишком большой и не влазит в одну строчку, то для переноса нужно ввести команду %s и команду $N в каком поле вводить $N?

Евгений Кислов
06.06.2018, 10:38
$N - это часть значения переменной.

wsVar: WSTRING := "первая строка$Nвторая строка";

Yaroslav_22
06.06.2018, 10:43
не совсем правильно объяснил: текст СМС приходит слишком длинный и не влезает в одну строку37570 возможно ли осуществить перенос не влезшего текста?

Евгений Кислов
06.06.2018, 11:16
В этом случае надо в программе анализировать размер полученного смс и вставлять в нужном вам месте символ переноса.

Yaroslav_22
06.06.2018, 12:25
можно ли из типа STRING выделить количество символов?
установил клавиатуру, все работает, но есть баг, скорее относится к CS
37571

Евгений Кислов
06.06.2018, 12:33
1. См. функцию LEN в библиотеке Standard
2. Баг локализации, в англоязычной версии интерфейса все нормально.