Страница 5 из 7 ПерваяПервая ... 34567 ПоследняяПоследняя
Показано с 41 по 50 из 67

Тема: CODESYS V3.5. Онлайн-FAQ

  1. #41

    По умолчанию 40. Как защитить загруженный в контроллер проект от копирования?

    Вопрос: в контроллер загружен проект и создано загрузочное приложение. Как защитить его от копирования? (при условии, что исходники проекты никому не передаются)

    Комментарий: приведенная ниже информация актуальна для контроллеров, программируемых в CODESYS V3.5 SP11 Patch 5 или выше.
    Обратите внимание, что проект загружается в контроллер в скомпилированном виде - таким образом, "вытащить" из него исходные коды невозможно.
    Исходники проекта могут находиться в контроллере исключительно в том случае, если они были загружены владельцем исходников в CODESYS с помощью команды Файл - Загрузка исходного кода.

    Ответ: для гарантированной защиты проекта от копирования рекомендуется выполнить все перечисленные ниже пункты:

    1. В конфигураторе установить пароль на вход в конфигуратор, отличающийся от стандартного (owen).

    2. Установить пароль на доступ к контроллеру из среды CODESYS (см. видео) - чтобы нельзя было воспользоваться функцией Backup&Restore или скачать файлы проекта через Device - Файлы.
    Альтернативный вариант - использовать ФБ PlcOperationControl из библиотеки Component Manager: он позволяет из кода программы запретить выполнение заданных действий (например, выгрузку файлов).
    См. видео и описание:
    https://help.codesys.com/webapp/_cds...rsion=3.5.10.0

    PlcControl.png

    3. Использовать в программе привязку к серийному номеру конкретного контроллера (в дереве проекта узел Info - папка Информация об устройстве - канал SERIAL) - и, например, при несовпадении заданного и считанного номеров не выполнять никаких действий. Привязка к серийному номеру делает бессмысленным копирование файлов проекта, даже если пароли, установленные в п. 1 и 2, были скомпрометированы.

  2. #42

    По умолчанию 41. Как реализовать управление пользователями визуализации из кода?

    Вопрос: в проекте используется управление пользователями визуализации (User Managment). Для логина/выхода используются кнопки (InputConfiguration - OnMouseClick - Управление пользователями).
    А как сделать тоже самое из кода программы?

    Комментарий: приведенная ниже информация актуальна только для контроллеров, программируемых в CODESYS V3.5 SP11 Patch 5 или выше.

    Ответ: в первую очередь необходимо получить контекст пользователя (pstClientData) - см. соответствующий пример.
    Зная контекст, вы можете организовать логин или отключение данного клиента из кода программы:

    Код:
    // dwGroupId - ID группы пользователей (DWORD)
    // wsLogin, wsPassword - имя пользователя и пароль (WSTRING)
    // эта информация задается в Менеджере визуализации на вкладке Управление пользователями
    VisuUserManagement.g_VisuUserMgmt2.LoginToUserGroup(pstClientData, dwGroupId, wsLogin, wsPassword);
    Код:
    VisuElems.Visu_FctLogoutUser(pstClientData);

  3. #43

    По умолчанию 42. Как проверить проект в эмуляции?

    Вопрос: как проверить проект в эмуляции, без подключения к контроллеру?

    Ответ: для запуска проекта в режиме эмуляции следует выполнить команду Онлайн - Эмуляция и Онлайн - Логин.

    Следует отметить, что режим эмуляции имеет множество ограничений:

    • не поддерживается обмен (по любым интерфейсам);
    • не поддерживается работа с файлами (из-за этого в частности не будут работать тренды и таблица тревог);
    • не поддерживается веб-визуализация.


    Альтернативным и более функциональным вариантом, лишенным всех описанных недостатков, является использование виртуального контроллера.

    Запустить виртуальный контроллер можно с помощью иконки на панели задач Windows:

    1.png

    После этого следует в проекте выбрать выбрать таргет-файл CODESYS Control Win V3 (Device - Обновить устройство) и подключить к нему (Device - Сканирование сети).
    Желательно выбирать версию, соответствующую версию системы исполнения реального ПЛК, на котором впоследствии будет запускаться проект.

    2.png

    Следует обратить внимание, что и в режиме эмуляции, и при работе с виртуальным контроллером не поддерживаются:

    • функционал таргет-файлов (узлы OwenRTC, Buzzer и т.д.);
    • внешние (реализованные в прошивке контроллера) библиотеки - например, CmpSysExec.


    Примечание:

    1. для одновременного запуска нескольких экземпляров виртуального контроллера следует воспользоваться ярлыком 3S CODESYS - CODESYS Control Win V3 из меню Пуск или ярлыком с ссылкой типа

    "D:\Soft\3S CODESYS 3.5 SP11 Patch5\GatewayPLC\CODESYSControlService.exe" -d

    2. рабочая директория для виртуального контроллера (для CODESYS V3.5 SP11 и выше):

    C:\ProgramData\CODESYS\CODESYSControlWinV3\<иденти фикатор_версии> (например, для 3.5.11.5 идентификатор = 35A42129)

  4. #44

    По умолчанию 43. Modbus TCP - изменение сетевых настроек из кода программы

    Вопрос: в приложении настроен обмен по протоколу Modbus TCP через конфигурацию в дереве проекта. Как изменить из кода сетевые настройки?

    Ответ:

    1. если контроллер работает в режиме Modbus TCP Slave, то достаточно изменить сетевые настройки через узел Network.

    2. если контроллер работает в режиме Modbus TCP Master и необходимо менять сетевые настройки опрашиваемых slave-устройств, то следует:

    На вкладке Device - Установки ПЛК установить галочку Включить диагностику для устройств.

    3.png

    В программе использовать следующий код:

    Код:
    // новый IP-адрес для слэйва
    abyNewSlaveIp:          ARRAY [0..3] OF BYTE := [10, 2, 11, 177];
    // бит обновления настроек слэйва
    xUpdate:	  	BOOL;
    
    
    // Modbus_TCP_Slave - имя нужного компонента из дерева проекта
    
    4.png
    
    Modbus_TCP_Slave.xConfirmError := FALSE;
    
    IF xUpdate THEN	
    	
    		// тормозим опрос слэйва
    		Modbus_TCP_Slave.Enable := FALSE;
    		
    		// проверяем, что слэйв остановлен
    		IF Modbus_TCP_Slave.ComState = 0 THEN
    	
    			// задаем новые настройки
    			Modbus_TCP_Slave.UpdateCommunicationSettings(ipAddress := abyNewSlaveIp, uiPort := 502);
    
    			// включаем слэйв в работу	
    			Modbus_TCP_Slave.xConfirmError := TRUE;
    			Modbus_TCP_Slave.Enable := TRUE;
    			xUpdate := FALSE;
    		END_IF	
    END_IF
    Обратите внимание, что при перезагрузке контроллера слэйв инициализируется с настройками, заданными в компоненте, поэтому следует повторять процедуру при старте программы.

  5. #45

    По умолчанию 44. Как настроить обмен с электросчетчиками Меркурий?

    Вопрос: как настроить обмен с электросчетчиками Меркурий?

    Ответ: компания ОВЕН разработала библиотеки для опроса счетчиков Меркурий 206 и Меркурий 23x:
    https://www.owen.ru/product/codesys_v3/libraries

    Обзор библиотек приведен в статье Артема Трофимова, опубликованной в журнале АиП, №6 (№1/16).

    Пример от пользователя SA104 с опросом счетчика Меркурий 230: скачать

    Пример создан в CODESYS V3.5 SP11 Patch 5 для виртуального контроллера и может быть с легкостью портирован на СПК1хх [М01] - достаточно изменить таргет-файл и указать нужный номер СOM-порта.
    В примере значение потребленной энергии (в кВт⋅ч) считывается в переменную resultat.

  6. #46

    По умолчанию 45. Как использовать кириллицу для логинов/паролей?

    Вопрос: хотелось бы в настройках Управления пользователями задавать русскоязычные логины и пароли. Но как их потом вводить в визуализации?

    Комментарий: приведенная ниже информация актуальна только для контроллеров, программируемых в CODESYS V3.5 SP11 Patch 5 или выше.

    Ответ:

    1. Установите библиотеку VisuKeyboardEnRu 1.3.0.0.
    2. Установите библиотеку VisuUserMgmtDialogsRu.
    3. Создайте проект и добавьте библиотеки VisuKeyboardEnRu 1.3.0.0, VisuUserMgmtDialogsRu и VisuUserMgmtDialogs.

    01.png

    4. В Менеджере визуализации на вкладке Dialogs Settings для управления пользователями выберите диалоги из библиотеки VisuUserMgmtDialogsRu.

    02.png

    5. В Менеджере визуализации на вкладке Визуализации должны быть активированы диалоги из п. 4 и диалог VisuKbEnRu/Keypad.

    03.png

    6. Создайте проект, добавьте в него Управление пользователями (см., например, п. 10.3.7 из документа CODESYS V3.5. Визуализация), установите для пользователей русскоязычные имена и пароли.

    Готовый пример: Example_UserManagmentWstring.projectarchive

    04.png

  7. #47

    По умолчанию 46. Как обновить изображение в визуализации с USB- или SD-накопителя?

    Вопрос: в проекте используются рецепты. Периодически они меняются, и хотелось бы вместе с этим изменять их пиктограммы без перезаливки программы. В связи с этим вопрос - можно ли обновить в проекте графические файлы с USB- или SD-накопителя?

    Ответ: это возможно.

    Предположим, в Пул изображений добавлена картинка с именем test.png:

    11-03-2019 7-20-21.png

    Она отображается в визуализации с помощью элемента Изображение. К параметру Динамическое изображение/Версия изображения привяжем переменную типа DWORD:

    11-03-2019 7-21-46.png

    Подготовим USB-накопитель, в корне которого будет находиться новое изображение с названием test.png.
    Необходимо заменить старый файл (который находится в памяти контроллера в директории /visu) на новый файл с USB-накопителя.

    Для этого можно воспользоваться ФБ Copy из библиотеки CAA File:

    123.png

    По переднему фронту переменной xCopyFile старый файл будет перезаписан на новый, после чего инкрементируется переменная версии изображения - это приведет к обновлению изображения в визуализации.

    Примечание:

    1. Рекомендуется выполнять копирование файла только при определении подключенного накопителя (см. узел Drives в дереве проекта).
    2. В случае использования SD-накопителя при вызова ФБ Copy на входе sFileNameSource требуется указать путь /mnt/ufs/media/mmcblk0p1/test.png
    3. Для контроллеров СПК1хх (без Ethernet) и СПК207 при вызова ФБ Copy на входе sFileNameDest требуется указать путь /mnt/ufs/root/CoDeSysSP_wrk/visu/test.png

  8. #48

    По умолчанию 47. Как выполнить фрагмент кода однократно при старте приложения?

    Вопрос: как выполнить фрагмент кода однократно при старте приложения?

    Ответ: пример кода:

    Код:
    PROGRAM PLC_PRG
    
    VAR 
       xIsPlcStarted: BOOL;
    END_VAR
    
    IF NOT(xIsPlcStarted) THEN
    
        // нужные операции
        //  ...
        xIsPlcStarted := TRUE;
    
    END_IF

  9. #49

    По умолчанию 48. Как отключить устройство из опроса при обмене через конфигурацию?

    Вопрос: как отключить устройство из опроса при обмене через конфигурацию?

    Ответ:

    1. В компоненте Device на вкладке Установки ПЛК поставьте галочку Включить диагностику для устройств.

    29-04-2019 13-18-38.png

    2. Для отключения устройства из опроса в программе присвойте переменной <имя_устройства_из_дерева_проекта>.Enable значение FALSE.

    30-04-2019 6-32-04.png

    3. Для возобновления опроса присвойте переменной <имя_устройства_из_дерева_проекта>.Enable значение TRUE.

    4. При использовании шаблонов соответствующий канал доступен на вкладке Соотнесение входов-выходов:

    29-04-2019 13-27-05.png

  10. #50

    По умолчанию 49. Что делать, если в визуализации происходит "наложение" текстов?

    Вопрос: что делать, если в визуализации происходит "наложение" текстов?

    ScrAfterChange.png

    Ответ: у элементов, в которых наблюдается наложение, параметру Цвета/Нормальное состояние/Цвет заливки/Прозрачность следует присвоить значение 255 (полностью непрозрачный).

    29-04-2019 13-37-30.png

    При использовании аварийного состояния следует выполнить аналогичную процедуру для параметра Цвета/Аварийное состояние/Цвет заливки/Прозрачность.

Страница 5 из 7 ПерваяПервая ... 34567 ПоследняяПоследняя

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 29.06.2017, 11:21

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •