Просмотр полной версии : СПК110 Конфигурация ввода Проверка данных
Unreality
07.12.2024, 18:37
Доброго времени суток
Пытаюсь решить следующую задачу:
1. Есть N+1 рецепты, которые предопределены в проекте
2. Есть те рецепты которые будет создавать пользователь
Те рецепты которые будет создавать пользователь, будут иметь названия скорее всего отличные от рецептов по умолчанию
Вопросы:
1. Можно ли организовать проверку последовательности в "конфигурации ввода"
То есть
Сначала мы выполняем ST код, который смотрит в переменную, и если все "ок" то далее продолжаем выполнять функцию создания рецепта.
Если не ок, то прерываем создание рецепта
все "ок" - означает, что длина названия рецепта не превышена.
Плюс дополнительный вопрос - кирилицу при вводе можно отключить?
2. Так как внутри FAQ, и справке внутри CODESYS я не нашел методов работы с рецептами, вопрос выглядит так:
Могу ли я в ST применять методы к рецептам?
Вопрос может звучать странно, но в примерах, код выполнения задается через "Команды конфигурации"
От сюда возникает вопрос, можно ли через ST эти команды использовать?
Если да, то где то справка по ним есть?
Если, нет, то можно организовать последовательность проверки как в пункте №1 ?
***
Нашел вот тут онлайн справку
https://content.helpme-codesys.com/en/libs/Recipe%20Management/Current/pou-RecipeManCommands/CreateRecipe.html
Собственно эти методы в СПК110 будут работать?
RecipeManCommands.CreateRecipe (METH) - как пример
Евгений Кислов
07.12.2024, 18:43
Добрый день.
1. Можно ли организовать проверку последовательности в "конфигурации ввода"
Нет.
Собственно эти методы в СПК110 будут работать?
Да.
https://www.youtube.com/watch?v=A1WrZVJUWhY
Плюс дополнительный вопрос - кирилицу при вводе можно отключить?
Уточните, что именно вы имеете в виду.
Unreality
07.12.2024, 18:49
Добрый день.
Нет.
Да.
https://www.youtube.com/watch?v=A1WrZVJUWhY
Уточните, что именно вы имеете в виду.
Имею ввиду, возможность по "русски" набирать текст на встроенной клавиатуре
Это настройки клавиатуры на панели нужно менять?
***
Плюс дополнительно ограничения нашел вот тут
80611
Евгений Кислов
07.12.2024, 18:58
Если речь о клавиатуре ПК - то я предполагаю, что ограничить ввод каких-либо символов не получится.
Можно разве что валидировать введенную строку в программе контроллера.
Unreality
07.12.2024, 19:07
Если речь о клавиатуре ПК - то я предполагаю, что ограничить ввод каких-либо символов не получится.
Можно разве что валидировать введенную строку в программе контроллера.
Нет, я имею ввиду клавиатуру панели.
То вызвать клавиатуру и на ней писать.
В ней есть ограничения какие то?
Евгений Кислов
07.12.2024, 19:08
Нет, я имею ввиду клавиатуру панели.
То вызвать клавиатуру и на ней писать.
В ней есть ограничения какие то?
Ограничения на что?
Попробуйте, пожалуйста, конкретизировать ваш вопрос.
Unreality
07.12.2024, 19:09
Ограничения на что?
Попробуйте, пожалуйста, конкретизировать ваш вопрос.
я внутри CODESYS это еще не тестировал.
как я понимаю, ввод данных внутри панели через встроенную клавиатуру происходит.
Экранная клавиатура
Соответственно в ней можно ограничить переключение языков или в ней только латиница?
Евгений Кислов
07.12.2024, 19:34
я внутри CODESYS это еще не тестировал.
как я понимаю, ввод данных внутри панели через встроенную клавиатуру происходит.
Экранная клавиатура
Соответственно в ней можно ограничить переключение языков или в ней только латиница?
В стандартной экранной клавиатуре из библиотеки VisuDialogs только латиница и некоторое количество немецких символов с умляутами.
Unreality
07.12.2024, 21:26
Итого путем проверок выявил следующее:
Ограничения действуют только для типа STRING
Можно задать внутри окна "Конфигурация ввода" при выборе "Записать переменную"
Есть ограничения которые работают как с переменными так и с числами, которые могут быть указаны в диалоговом окне.
Одно ограничение - это использование WSTRING. При этом типе все ограничения снимаются - внутри диалога, данные игнорируются.
Возможно в рамках теста у меня не хватило знаний установить ограничения. Другая проблема, почему при переходе из STRING в WSTRING - редактор ничего не говорит. Ограничения есть, но пользователь понятия не имеет работают они или нет.
Видимо это вопрос уже к CODESYS
Дополнительно про клавиатуру ОВЕН - она конечно, гораздо удобней, чем стандартная из набора (понравилась, да), но почему она тоже при компиляции проекта ничего не говорит про WSTRING???
Если Использовать со STRING переменными, то клавиатура при вызове автоматически предлагает русский язык - который фактически не может быть записан в переменную (ограничения, будут "квакозябры" написаны...).
Может это можно в рамках компиляции как то сообщать? Предупреждение какое то?
Или клавиатура ОВЕН может отключать "русскую" раскладку?
В общем, задачу описанную в первом сообщении решил на половину.
Евгений Кислов
07.12.2024, 21:42
Извините, но я мало что понял из написанного.
Лучше напишите в понедельник утром в телеграм - посмотрим через AnyDesk, что именно вы наблюдаете и обсудим, что именно вам нужно.
Unreality
07.12.2024, 21:47
Договорились
Unreality
18.12.2024, 22:35
Решил задачу №1 из первого поста:
1. использовать можно только переменную STRING - для стандартных окон работы с вводом
2. Переменные типа WSTRING можно использовать только в спец. версиях окон - таких как owen visu dialogs и т.д.
3. при использовании ввода, можно задать сразу данные о длине строки минимум и максимум. Но как сказано ранее, только для переменных STRING и только при использовании стандартных окон ввода.
При нестандартных окнах - тоже можно, но эта информация не будет отображаться, в самом окне ввода (то есть не будут указаны ограничения)
Вопрос №2 из поста выше - ответы по теме внутри, к рецептам можно применять методы, проще всего искать описание в самой библиотеке из которой берется блок рецептур и тому подобные блоки.
Справка в действующей версии CODESYS 3.5 переведенная на русский язык - "так себе".
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot