PDA

Просмотр полной версии : Редактирование библиотек



farta
25.11.2020, 15:15
Здравствуйте.

Есть такая проблема: для большей удобности необходимо изменить размеры диалогов, если быть конкретнее, то VisuUserManagement_Login и VisuUserManagement_UserManagement. Для проекта они слишком маленькие, поскольку экран всего 7 дюймов. Необходимо просто увеличить размер визуализации с минимальным вмешательством в код (хочу изменить тип данных string на wstring, чтобы читался unicode). Действовал по руководству, но программа не дает изменить размеры визуализации. Думал отдельно открыть конкретную библиотеку в CDS как проект, но не вышло. Подскажите, как быть и что нужно сделать. Заранее спасибо.

Евгений Кислов
25.11.2020, 16:21
Здравствуйте.

Есть такая проблема: для большей удобности необходимо изменить размеры диалогов, если быть конкретнее, то VisuUserManagement_Login и VisuUserManagement_UserManagement. Для проекта они слишком маленькие, поскольку экран всего 7 дюймов. Необходимо просто увеличить размер визуализации с минимальным вмешательством в код (хочу изменить тип данных string на wstring, чтобы читался unicode). Действовал по руководству, но программа не дает изменить размеры визуализации. Думал отдельно открыть конкретную библиотеку в CDS как проект, но не вышло. Подскажите, как быть и что нужно сделать. Заранее спасибо.

Добрый день.
Какую версию CODESYS вы используете?

farta
25.11.2020, 16:47
Добрый день.
Какую версию CODESYS вы используете?

Версия 3.5
Если это важно, то номер патча сейчас не вспомню

Евгений Кислов
25.11.2020, 16:51
Версия 3.5
Если это важно, то номер патча сейчас не вспомню

Важна версия сервис-пака (SP).
Если вы программируете старый СПК1хх (без Ethernet) в CODESYS V3.5 SP5 Patch 5 - то вариантов нет.
Если вы используете СПК1хх [M01] с Ethernet - то исходник библиотеки (уже с WSTRING) можно взять здесь и подправить размеры диалогов:
https://owen.ru/forum/showthread.php?t=28167&page=5&p=300498&viewfull=1#post300498

farta
26.11.2020, 07:41
Важна версия сервис-пака (SP).
Если вы программируете старый СПК1хх (без Ethernet) в CODESYS V3.5 SP5 Patch 5 - то вариантов нет.
Если вы используете СПК1хх [M01] с Ethernet - то исходник библиотеки (уже с WSTRING) можно взять здесь и подправить размеры диалогов:
https://owen.ru/forum/showthread.php?t=28167&page=5&p=300498&viewfull=1#post300498

Я использую CDS V3.5 SP11 Patch 5 Hotfix4

Перешел по ссылке, там не нашел конкретного пункта "изменение/редактирование библиотеки". Из пункта 45 скачал русскоязычные диалоги, их тоже отредактировать не смог. Размеры так и остаются стандартными.

P.S. Установил эти библиотеки, активировал их в менеджере визуализации, однако в Dialog Setting не могу выбрать их как стандартные. В панели инструментов они появились.

Евгений Кислов
26.11.2020, 07:55
Скриншотами, пожалуйста, продемонстрируйте проблему - я пока не могу понять, что значит "отредактировать не смог". Что именно помешало вам это сделать?

farta
26.11.2020, 08:12
Пытаюсь изменить параметры ширина и высота, а они остаются неизменными

52178

P.S. Пытался отдельно изменить библиотеку, открыв её в новом проекте, но результат тот же

P.P.S. Необходимо сделать этот и другие диалоги на весь экран
52179

Евгений Кислов
26.11.2020, 08:34
1. Откройте библиотеку в CODESYS (Файл - Открыть проект)
2. В дереве проекта нажмите ПКМ на нужный диалог, перейдите на вкладку Визуализация и установите нужные размеры.

52180

3. Нажмите Файл - Сохранить и установить в репозиторий библиотек (или см. желтую иконку на скриншоте).

farta
26.11.2020, 08:51
Открыл библиотеку проектом, а она как будто пустая, древо проекта полностью пустое

52181

Библиотеку стандартных диалогов вообще не смог открыть, у неё формат скомпилированной библиотеки, CDS почему-то не видит её, если пытаться открыть проектом

Редактировать русскоязычные диалоги хочется в последнюю очередь, поскольку они работают не так, как встроенные. Поставил русскоязычные диалоги как стандартные, стала вылазить такая ошибка

52183 52187

P.S. Нашел нескомпилированную библиотеку, но вылезла вот такая ошибка

52188

Евгений Кислов
26.11.2020, 11:27
Свяжитесь, пожалуйста, со мной через скайп или почту.
Я могу подключиться по TeamViewer и посмотреть, что у вас происходит.
https://www.teamviewer.com/ru/

farta
08.12.2020, 11:49
Появился вопрос, касающийся одного из диалогов.
При авторизации хочу сделать выпадающее меню, чтобы выбирать пользователя из списка, а не вводить через клавиатуру. Поискал переменную, чтобы привязать ее к элементу, но не нашел нужную.

52356

Подскажите с этой переменной, или тут какой-то более сложный процесс?

Евгений Кислов
08.12.2020, 13:47
Там более сложный процесс.
Проще будет отказаться от встроенного управления пользователями и написать свою реализацию со своими диалогами.

farta
08.12.2020, 14:29
Хорошо, я вас понял.

Мы поговорили с коллегами и решили, что в качестве логина лучше использовать табельный номер работника. Это решает проблему, которую я описывал в сообщении выше. Но есть такой нюанс: этот табельный номер необходимо записывать в архив. Подскажите :confused:, как всё таки можно обратиться к переменной логина, чтобы, к примеру, копировать значение логина в другую переменную и уже её заносить в архив. Заранее спасибо.

Евгений Кислов
08.12.2020, 14:55
Посмотрите этот пример:
https://owen.ru/forum/showthread.php?t=28167&p=336956&viewfull=1#post336956

Там показывается, как получить информацию о входе пользователя.
Дальше можно архивировать через OwenArchiver или библиотеки.

farta
08.12.2020, 16:10
Попытался открыть пример, про который вы говорили, и вот что из этого вышло

Евгений Кислов
08.12.2020, 16:15
Какую версию CODESYS вы используете?
Пример создан в V3.5 SP14 Patch 3 - рекомендую обновить проект и прошивку контроллера, чтобы работать в ней.

farta
23.12.2020, 19:19
Можно ли как-то редактировать библиотеки, скомпилированные самим Codesys?

Евгений Кислов
23.12.2020, 19:25
Можно ли как-то редактировать библиотеки, скомпилированные самим Codesys?

Нет, такая возможность отсутствует.

farta
25.12.2020, 13:11
Чтобы не плодить темы, я напишу сюда.
В общем, образовалась такая проблема: "отвалился" переход на другие экраны визуализации, я нажимаю кнопки, в конфигурации по нажатию которых прописано "изменение отображаемой визуализации", но переход не осуществляется.

Последнее, что сделал - я изменил общий стиль в менеджере визуализации (пытался увеличить шрифт на всплывающей клавиатуре). Скопировал стиль и отредактировал, собственно после чего залил в систему и началась вся эта вакханалия. Версия Codesys 3.5.14.3, прикрепляю файл проекта. https://dropmefiles.com/6L3U7

Евгений Кислов
25.12.2020, 13:21
Переход осуществляется, просто вы не успеваете этого заметить.
См. строку 19 в PLC_PRG.

farta
25.12.2020, 13:47
См. строку 19 в PLC_PRG.

Это код для автоматического перехода на главный экран визуализации только после успешной авторизации. Раньше всё работало как часы, почему только сейчас начались эти коллизии. Подскажите тогда пожалуйста, как корректно написать код, чтобы кодесис не ругался. Раньше я добавлял это действие через конфигурацию задач, но через него работает не так. Может где-то есть пункт "выполнить действие после авторизации", или как тогда это можно исполнить кодом? Заранее спасибо.

Евгений Кислов
25.12.2020, 13:54
Это код для автоматического перехода на главный экран визуализации только после успешной авторизации. Раньше всё работало как часы, почему только сейчас начались эти коллизии. Подскажите тогда пожалуйста, как корректно написать код, чтобы кодесис не ругался. Раньше я добавлял это действие через конфигурацию задач, но через него работает не так. Может где-то есть пункт "выполнить действие после авторизации", или как тогда это можно исполнить кодом? Заранее спасибо.

Я уверен, что оно и раньше (с тех пор, как имена пользователей стали числами) работало не "как часы" - просто, видимо, вы этого не замечали.

Ваша проблема связана с тем, что вы используете системную переменную CurrentUserName в коде программы.

См. информацию из документа про визуализацию (примечание):

52755


Это код для автоматического перехода на главный экран визуализации только после успешной авторизации

См. пример:
https://owen.ru/forum/showthread.php?t=28167&p=312297&viewfull=1#post312297

Или можно сделать на базе другого примера, который я выкладывал на прошлой странице:
https://owen.ru/forum/showthread.php?t=34040&p=344838&viewfull=1#post344838

farta
25.12.2020, 15:21
Я уверен, что оно и раньше (с тех пор, как имена пользователей стали числами) работало не "как часы" - просто, видимо, вы этого не замечали.

Ваша проблема связана с тем, что вы используете системную переменную CurrentUserName в коде программы.

Нет, проблем раньше точно не было, ведь все остальные переключения визуализации работают как скрипты, срабатывают только при нажатии кнопки. Тут ошибка была вот в чем: у меня в теле цикла триггер по переднему фронту был объявлен второй и третий раз. Из-за этого и были коллизии переменной Q (системная переменная функции R/F_TRIG)

Евгений Кислов
25.12.2020, 15:34
Не буду спорить - вам виднее, конечно.
https://dropmefiles.com/ecwQ3