background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "74. Вывод сообщений в лог контроллера (CmpLog)"

input logo icon
Теги видео
|

Теги видео

CODESYS V3
ОВЕН
ПЛК210
ПЛК200
СПК
СПК1хх
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:02
говорить о когда сестре 5 и сегодня
00:00:04
давайте разберемся как вывести сообщение
00:00:06
в лог контроллера из кода программы
00:00:10
в моем примере уже создан функциональный
00:00:13
блок в котором нет никакого кода просто
00:00:16
вход прокинуть на выход для демонстрации
00:00:18
описанной задачи этого вполне хватит в
00:00:22
программе соответственно у меня объявлен
00:00:24
экземпляр этого функционального блока и
00:00:26
при старте программа он сразу вызывается
00:00:29
и давайте при вызове блока выйдем в
00:00:33
жернова контроллера сообщения
00:00:36
соответственно для этого нам потребуется
00:00:38
от ловить момент в который блок начинает
00:00:40
вызываться для этого мы используем
00:00:43
функциональный блок r trigger из
00:00:46
библиотеки стандарт
00:00:56
на вход r триггера мы заводим наш сигнал
00:01:00
включении блока xml и соответственно
00:01:03
когда он изменит свое значение от фолз
00:01:05
гтра на выходе триггера будет
00:01:07
сгенерирован единичный импульс и
00:01:11
отложив этот единичный импульс мы сможем
00:01:14
однократно выполнить нужный мог нам код
00:01:16
в частности вы ещё сообщения
00:01:18
журнал контроллера теперь давайте
00:01:21
добавим фраг необходимые библиотеки
00:01:22
первая библиотека которая нам нужна в
00:01:25
биотек отцам полок собственно именно она
00:01:28
используется для работа
00:01:29
журналом контроллера из кода программы
00:01:36
кроме того давайте добавим для тех
00:01:38
у-компонент менеджер чуть позже станет
00:01:40
понятно зачем она была нужна
00:01:47
теперь перейдем в наш функциональный
00:01:50
блок и первое что мы сделаем это как уже
00:01:52
говорили вы видим сообщение в журнал при
00:01:54
старте при старте нашего блока
00:01:57
обращаемся библиотеки с помощью
00:01:59
пространство имен
00:02:01
пространство имен отображается в столбцы
00:02:05
в малибу библиотек столбце
00:02:08
дополнительное имя как мы видим у
00:02:10
библиотеки cm полок пространство имен
00:02:13
совпадает с именем библиотеки
00:02:16
так ставим точку и выбираем из списка
00:02:20
нужный на функцию она называется log n 2
00:02:22
добавление сообщения журнала контроллера
00:02:25
первым аргументом функции является
00:02:27
дескриптор лаггера мы будем использовать
00:02:30
стандартный лагер codesys поэтому опять
00:02:34
таки обращаемся глуби отёки
00:02:36
находим список
00:02:38
констант лак констанс и убираем чудо ним
00:02:43
стандартного лаггера который называется
00:02:44
esta de la guerra
00:02:46
второй аргумент это ильич катар
00:02:49
компонента
00:02:50
поскольку у нас собственно компания так
00:02:52
пока речи не идет давайте просто зададим
00:02:54
какую-то константу например 40000
00:02:57
следующий аргумент это класс сообщения
00:03:00
опять-таки обращаемся к библиотеке
00:03:02
находим список глобальных констант
00:03:06
лог класс и тут мы можем выбрать 1 из
00:03:11
1 из 5 классов сообщений которые
00:03:14
поддерживаются журнале это отладочное
00:03:16
сообщение класс дебаг сообщения об
00:03:18
ошибках сообщение об исключениях
00:03:21
информационное сообщение и
00:03:23
предупреждения кроме того здесь видны
00:03:26
два специальных элементы толокна который
00:03:29
означает что класс не задан и lock hole
00:03:32
это
00:03:35
сумма всех классов он используется при
00:03:38
фильтрации журнала и поэтому как
00:03:40
написано в комментарии не стоит пытаться
00:03:42
использовать его при добавлении
00:03:44
сообщение журнал когда his кроме того
00:03:47
есть специальный класс слог юзер на
00:03:49
тихой который может комбинироваться с
00:03:51
другими классами через оператор or он
00:03:55
работает следующим образом если ваш ваши
00:03:58
сообщения поддерживают этот класс и вы
00:04:00
подключены к среде программирования в
00:04:04
режиме онлайн отладки когда у вас
00:04:06
вызывается функция то в самой среде
00:04:08
будет отображено всплывающее окно с
00:04:10
сообщением об ошибке
00:04:12
для нашего сообщения о старте блока
00:04:15
разумнее всего было бы выбрать класс лог
00:04:18
info но поскольку при старте контроллера
00:04:21
и так слишком много сообщений от этого
00:04:23
класса давайте для теста выберем лак
00:04:25
воллинг то есть предупреждение
00:04:28
следующий аргумент это код ошибки
00:04:30
принципе он нигде не используется
00:04:32
единственно верное его можно увидеть это
00:04:34
вот во всплывающем окне если вы
00:04:36
используете класс сообщений лак на тифа
00:04:39
и
00:04:40
подразумевается что в качестве кодов
00:04:42
передаются коды berry kids empires если
00:04:45
вы не хотите вообще об этом думать
00:04:46
просто передавайте 0
00:04:48
следующее вход это
00:04:51
номер записи
00:04:54
из номер записи
00:04:57
локализованные версии сообщения которая
00:04:59
должна быть объявлена
00:05:01
файле описание устройства например файле
00:05:04
описание контроллера или файле описание
00:05:06
компонента поскольку у нас речи
00:05:08
компонентов не идет мы в данный момент
00:05:10
не разрабатываем свой компонент и
00:05:12
редактировать файл описания контроллера
00:05:14
то есть таргет файла мы не собираемся
00:05:16
можно опять таки передать 0
00:05:19
последний аргумент это
00:05:21
текст сообщения здесь поддерживает
00:05:24
столик только латиница и
00:05:26
это вход типа string давайте пока просто
00:05:29
напишем что-нибудь в духе
00:05:32
имя нашего функционального блока и
00:05:40
текст и started и
00:05:43
теперь давайте посмотрим как пока как
00:05:46
все это работает данный момент
00:05:50
загружаем наш проект в контроллер
00:06:04
переходим в журнал и
00:06:06
видим что при старте блока действительно
00:06:09
была выведена сообщение в журнал с нашим
00:06:11
текстом в толпе компонент отображается
00:06:15
значение фокси которые мы передали на
00:06:18
второй вход функции то есть это 40 тысяч
00:06:21
фиксе это не очень информативно и нам бы
00:06:24
хотелось наверно это выражать имя
00:06:25
компонента виде текста как вот например
00:06:27
и удар в watch dogs и так далее давайте
00:06:31
так и сделаем компоненты как такового у
00:06:33
нас нет то есть компания то обычно
00:06:35
представляет собой как минимум блок из
00:06:37
библиотеки файл описания но тем не менее
00:06:39
можем представить что вот наш блок это
00:06:42
не некий некая заготовка для будущего
00:06:45
компонента мы используем для тех у
00:06:48
компонент менеджер для регистрации
00:06:50
нашего нашего компонентов
00:06:52
обращаемся к библиотеке через
00:06:54
пространство имен и находим функцию всем
00:06:56
от компании ан-2
00:06:59
первый аргумент это как раз имя
00:07:01
компонента который мы будем видеть
00:07:03
журнале давайте введём и мы компонента
00:07:05
который будет падать зимним
00:07:06
функционального блока
00:07:08
следующий вход опциональный эта версия
00:07:11
компонента в принципе явно видел нигде
00:07:13
не отображается давайте введем 35 17 1
00:07:18
надо вводить фиксе по разрядам
00:07:20
соответственно 03 05
00:07:22
11 1 fixed a
00:07:25
17.01 и
00:07:28
следующие два входа это входы на которые
00:07:32
передаются указателя по первому
00:07:34
указателю возвращается номер компонента
00:07:37
после регистрации и она возвращает
00:07:40
функция и последний вход это указатель
00:07:42
на результат работы функции давайте
00:07:45
сразу объем нужной на переменные
00:07:47
айди компонента это переменной типа you
00:07:50
behind
00:07:58
результат выполнения работы функции это
00:08:01
тоже перемена типа и дэнт
00:08:06
но для нее используются чудо ним и
00:08:09
давайте мы так и поступим значит
00:08:11
обращаемся библиотеки компонент менеджер
00:08:14
у неё вложенная библиотека чистой abs и
00:08:17
в ней есть такой вот чудо ним ртс и я
00:08:20
крис old по сути это псевдоним для типа
00:08:22
you doing
00:08:25
передаем на входы функции указатель на
00:08:28
объявлены нами переменные и
00:08:32
теперь полученный или гифка тур
00:08:35
компонента мы передаем в нашу функцию
00:08:37
log n 2 в качестве второго аргумента в
00:08:40
качестве идентификатора компонента
00:08:44
опять загружаем проект
00:08:54
запускаем его и переходим журнал
00:08:59
теперь мы видим что в толпе компонент
00:09:01
отображается действительно какое-то
00:09:04
символьное имя это гораздо лучше чем
00:09:06
просто число но можно отметить что у
00:09:09
нашего способа еще один недостаток в
00:09:11
proxy может быть несколько экземпляров
00:09:12
нашего блока а текст для при запуск
00:09:15
каждый из них будет выводиться общих
00:09:17
будет водить столько имя функционально
00:09:19
блока аниме экземпляра конечно было бы
00:09:21
удобнее вывести им экземпляров и давай
00:09:23
сейчас мы этим займемся
00:09:26
объявляем в нашем функциональном блоке
00:09:28
атрибут reflection который позволяет
00:09:31
получить информацию об в коде блока а
00:09:33
имени экземпляра этого блока объявим
00:09:37
сразу переменную типа string в которой
00:09:39
будет записано имя
00:09:41
экземпляра и
00:09:44
добавляем сюда специальные атрибута еще
00:09:49
два атрибута значит первое требует это
00:09:51
атрибут
00:09:53
который называется instance ps как раз
00:09:56
за счет этого атрибута в эту перемену
00:09:58
будет автоматически помещено имя
00:09:59
экземпляра при создании экземпляра а
00:10:02
второй атрибут спят атрибут но у и нет
00:10:05
который заключает количеству
00:10:06
инсталлировать эту переменную ну то есть
00:10:09
присваивать ей пустую строку
00:10:11
давайте мы еще объявим переменную с
00:10:14
текстом нашего сообщения и
00:10:20
сделаем вот что
00:10:23
с клеем текст нашего сообщения из двух
00:10:27
частей с помощью функции concat из
00:10:29
библиотеки стандарт первое это будет имя
00:10:32
экземпляра а второй как раз текст значит
00:10:35
:
00:10:37
пробел и просто напишем started
00:10:45
и соответственно уже вот эту перемену
00:10:47
передаем в качестве последнего аргумента
00:10:49
функции в качестве текста сообщения
00:10:51
лаггера
00:10:54
запускаем и
00:11:01
переходим журнал
00:11:07
смотрим теперь передается имя
00:11:10
конкретного экземпляра функционал блоков
00:11:12
в тексте нашего сообщения блога тут
00:11:15
придется полный путь то есть девайс
00:11:17
апликэйшен так далее в принципе
00:11:19
обычным все это неинтересно интересен
00:11:21
интересно дольки имя экземпляра и у
00:11:24
некоторых случаях ими программой с
00:11:25
которая называется
00:11:27
надо отметить что тут может быть
00:11:29
несколько программ например когда вы в
00:11:30
одной программе зеваете другую программу
00:11:32
а уже в этой программе вызывайте
00:11:33
экземпляр функциональным блоком если вам
00:11:37
этот текст кажется избыточным вы можете
00:11:39
вот эту переменную instance ps как-то
00:11:42
аткинсон знаем точнее мою как-то
00:11:44
обработать например отрезать из нее
00:11:47
нужны и первые как вот эти элементы с
00:11:50
именем устройство именем приложение тут
00:11:53
все на ваше усмотрение
00:11:57
напоследок давайте обсудим зачем в
00:11:59
принципе может потребуется вводить
00:12:00
сообщение в лоб ну во первых если вы
00:12:02
все-таки создаете какую-то библиотеку
00:12:04
или более того разработаете компонент то
00:12:06
это довольно удобный способ обеспечить
00:12:09
полис для информации диагностики работе
00:12:12
вашего блока
00:12:15
кроме того такой механизм довольно
00:12:17
удобен при отладке как вы наверное
00:12:19
знаете в enterprise языков
00:12:21
программирования достаточно часто
00:12:22
используется отладка методом вывода на
00:12:24
печать например если вы попадаете в
00:12:25
какой-то фрагмент вашего кода вы можете
00:12:28
добавить просто вы сообщение в лоб и
00:12:30
тогда собственно вы поймете что
00:12:32
действительно выполнение программы дошло
00:12:34
до этого места и вы попали например
00:12:36
именно в ту ветку и филиалов которого
00:12:38
ожидали
00:12:41
собственно все что хотела сегодня
00:12:43
рассказать я рассказал спасибо вам за
00:12:46
внимание и увидимся в следующих видео

Описание:

Полезные ссылки по теме: https://ftp.owen.ru/CoDeSys3/98_Books/CodesysCmpLog.pdf https://help.codesys.com/webapp/_cds_pragma_attribute_instance_path;product=codesys;version=3.5.17.0

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "74. Вывод сообщений в лог контроллера (CmpLog)"?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "74. Вывод сообщений в лог контроллера (CmpLog)" выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "74. Вывод сообщений в лог контроллера (CmpLog)"?mobile menu icon

  • Полностью зависать браузер/компьютер не должен! Если это произошло, просьба сообщить об этом, указав ссылку на видео. Иногда видео нельзя скачать напрямую в подходящем формате, поэтому мы добавили возможность конвертации файла в нужный формат. В отдельных случаях этот процесс может активно использовать ресурсы компьютера.

mobile menu iconКак скачать видео "74. Вывод сообщений в лог контроллера (CmpLog)" на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "74. Вывод сообщений в лог контроллера (CmpLog)"?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "74. Вывод сообщений в лог контроллера (CmpLog)"?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

  • Нисколько. Наши сервисы абсолютно бесплатны для всех пользователей. Здесь нет PRO подписок, нет ограничений на количество или максимальную длину скачиваемого видео.