Не знаю как, но заработало. Копался в менеджере визуализации, ничего не поменял, потом заработало.
Вид для печати
Не знаю как, но заработало. Копался в менеджере визуализации, ничего не поменял, потом заработало.
Вложение 25784 Прозрачность все так же не регулируется, в других свойствах прозрачность не отыскал.
Поставьте вот эту галочку:
Вложение 25786
Вложение 25788 Таки дела. Есть ещё вопрос. SysLibDir.lib это стандартная библиотека? Не могу найти её в списке системных
Вложение 25789 Самая крайняя версия SP9 patch1. С русским интерфейсом совсем беда, можно ли удалить русский язык?
Доброго дня! Есть вопрос, на форуме ничего толком не нашел, никаких примеров.
Вложение 25834 Есть такая форма, нампада, для ввода пароля, ибо стандартные не подходят по стилистике.
Как через нее реализовать форму ввода пароля?
А как её редактировать? Ибо если её просто открыть, то в заголовке написано "Read_only" хоть и галочка на свойствах снята. (Гет, алсо)
Благодарю, уже нашел)
А можно каким-либо образом выбрать свой цвет для текста? В свойствах текста только дефолтные
Тогда, вероятно, вам придется отказаться от встроенного механизма User Managment'a и реализовать его в своей программе.
Я с самого начала так и хотел. На форуме по реализации подобного нема(((
Есть какие-нибудь гайды как написать ?
Я набросал это таким образом.
На СПК110 есть кнопка для открытия настроек.
При её нажатии должен выскочить нампад с заголовком Введите пароль (Пароль при этом будет константой).
Вводим пароль, программа сравнивает его с константой, при верном вводе выводит визуализацию настроек,
при не верном выдает визуализацию: "Пароль не верен" с кнопкой "Ок" и выкидывает опять на нампад.
Как-то так
Понятно. Тогда, вероятно, наиболее простой способ - создать свой диалог Numpad внутри проекта и заранее наложить на него сообщение "Пароль не верен", которое по умолчанию будет невидимой. В поле ввода пароля STRING переменная, при нажатии цифр записываем их туда (через CONCAT) и по нажатию кнопки ОК сравниваем введенный пароль с существующим. Если совпадают - переключаем экраны через CurrentVisu и затираем введенный пароль, если нет - делаем видимым сообщение "Пароль не верен", по нажатию кнопки ОК делаем его опять невидимым и затираем введенный пароль.
А как затереть пароль и как сделать запись цифр через CONCAT. Если использовать NumPad из VisuDialogs? Он выдает фрейм элемента и кнопку ОК в него входит, хз как запрограмировать
Здравствуйте! нужна помощь! На СПК 110 для отображения надписей в визуализации на русском языке необходимо включить Unicode. Но при этом пропадает правильное отображение значения текстовых переменных на элементах (прямоугольник, кнопка) визуализации!!! Есть ли решение данной проблеммы?
Здравствуйте! нужна помощь! На СПК 110 для отображения надписей в визуализации на русском языке необходимо включить Unicode. Но при этом пропадает правильное отображение значения текстовых переменных на элементах (прямоугольник, кнопка) визуализации!!! Есть ли решение данной проблеммы?
Текст %2.1f% текстовая переменная REAL, при вкл. Unicode просто текст %2.1f% а не действительное значение с датчика!!!
Спасибо! попробую!
Подскажите источники информации по реализации взаимодействия плк3хх с купюроприемником в CodeSys 3.x (на руках плк 323 и приемник OryONE LB-MC02)
Добрый день!
На сколько я знаю готовых решений нет и придется реализовывать самостоятельно.
Начать я бы посоветовал с выбора интерфейса и протокола, по которым устройства будут общаться между собой.
Наиболее простым я считаю реализацию импульсного протокола. Имея его описание (должно быть в руководстве по эксплуатации на приемник) можно приступать к реализации в CODESYS.
Для начала работы в CODESYS можно ознакомиться с первыми шагами
Добрый день! есть более 20 агрегатов которые необходимо запускать последовательностью которая будет постоянно уточняться(линия новая и тех процес пока на коленках) создал визуализацию в одном столбеце будет указываться переменная с номером агрегата (он будет меняться с экрана СПК) а второй столбец это номерация которая отрожает номер в очереди пуска она меняться не будет Вложение 26346. Создал масив глобальных переменных по количиству агрегатов
VAR_GLOBAL
NOMER_AGR: ARRAY[1..27] OF INT;
END_VAR
В которых , собственно и предпологаеться хранить номер агрегата заданый оператором. Программа будет последовательно перебирать окошки с номерами агрегатов, распозновать их и выдержав задержку включать. А теперь собственно вопрос: Как привязать окошко с переменной номера агрегата к ячейки масива? Другими словами первое окошко это ячейка масива 1, второе 2, третье 3 и.т.д. Как связывать графичиские примитивы в визуализации с переменными я знаю а как с индексами масива не поиму. Подскажите как это будет выглядеть на ST, если это возможно. Спасибо.
Не приклеилось изображение, Вложение 26350
Спасибо буду пробовать , обязательно отпишусь.
я похожую штуку сделал так:
- массив ArrArg[1...24]
- переменная(ые) для диалогового окна DialogArg
- в этом диалоговом окне на визуализацию привязана именно эта переменная DialogArg
- N - переменная определяющая номер (индекс элемента массива) выбранного агрегата
- при открытии этого диалог окна для конкретного агрегата N выполняю ST : DialogAgr:=ArrArg[N];
- открываем диалог - видим нужное значение(ия) по выбранному агрегату
- Если из диалога менять что-то, то выполняю обратную операцию при закрытии диалога : ArrArg[N]:=DialogArg;
- Сам выбор номера N (агрегата) можно сделать в виде стандартного элемента управления комб.окно-массив или комб.окно-целочисленный. В первом случае будут представлены в виде таблицы, в другом в виде списка выбора
PS: от гуру прошу так же покритиковать такой метод
посмотрел еще раз - имхо оптимальной будет таблица из 1ого столбца=массива, номер строки есть по умолчанию, к нему и привязать индекс элемента массива.
выбираем нужный шаг (строку в таблице) - открываем диалог, вводим/выбираем номер агрегата, закрываем (= записываем значение в выбранный элемент массива)
переходим к следующему шагу.
Если выбран 0 - тогда идем к след шагу.
+ Можно сделать n-мерный массив типа [1..n, 1..27] типа стринг, тогда можно и коментарии к шагам оставлять)) но, если делать это ретайнами (сохраняемыми) много памяти сожрать может.
Евгений большое спасибо ! Работает как вы сказали, в документации этого не нашёл и пришлось просить помощь зала. Благодарю!
RA,Добрый день. Вы похоже решали задачу похожею на мою, скажите а каким методом вы определяли в проге номер агрегата,т.е. вы извлекли из масива ,например, 15 и как опредилили что нужно включить 15 , а не 14?
ну у меня немного другая задача была: массив заданий: состоящий из количества штук и длины производимой заготовки.
после старта задания назначаю индекс массива = 1, беру из этих элементов массива длину и кол-во
анализирую если кол-во = 0, увеличиваю индекс (+1)
если кол-во больше 0, тогда длину и кол-во "передаю на изготовление"
в ходе изготовления считаю сделанные единицы и вычитаю из начального задания
как только этот остаток станет равен 0 - перехожу на след шаг - снова увеличиваю индекс (+1)
и т.д.
естественно следим чтобы индекс не вылезал за размер массива
в конце задания индекс ставлю =0. И останавливаю процесс - т.е. весь описанный выше код не исполняется, а как только пускаю (в ручную) изменю индекс на 1.
и да, эта программа на 90% состоит из проверок, а сами переключения по шагам в одном repeat сделаны.
Примерн с инкриментом индекса и я собираюсь делать, а что такое *repeat* и на каком языке пишите?