Насчет методов - можете, например, в этом документе посмотреть примеры их создания и использования: ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Archives_v3.0.pdf А насчет "курса работы с библиотеками" - можно подробнее? Какие библиотеки вас интересуют?
Во второй вид Ретейн хорошо делать сохранение часов наработки к примеру или ещё какие-то сервисные параметры который не должны терятся на оборудовании из-за сбоя программы или тд
Спасибо, как всегда информативно и структуироаано. Хотелось еще добавить к видео поведение Retain И Persistent Retain переменных при их локализации (AT Declarations). Как одновременно иметь локализованных переменные и в тоже время энергонезависимые. Спасибо!
Это хороший вопрос. Я в принципе рекомендую избегать прямых адресов (AT Declarations), поэтому не уделил ему внимания. Документация в этом вопроса однозначна - в области RETAIN нельзя использовать AT-адресацию ("An assignment of inputs, outputs, or memory addresses with the AT keyword is not permitted."). content.helpme-codesys.com/en/CODESYS%20Development%20System/_cds_var_retain.html В вашем случае можно использовать функционал рецептов - на канале есть отдельный плейлист на эту тему.
Не всегда рецепты подходят к примеру пропало питание на длительное время, а контроллер электрическлй печью управляет и нет смысла делать через рецепты если уставки меняются сравнительно не часто и их количество не меняется одновременно. Спасибо за видео, я конечно понял, но послушать ни когда не лишнее, думаю просмотрев видео до конца я что-то новое почерпну для себя.
Добрый вечер. Спасибо за интересный ролик. Я хотел бы узнать об Persistance Manager. Использование которого даёт возможность создавать структуру данных где определённые вариабле могут быть перзистент
Спасибо, полезно! О чем хотелось бы посмотреть: разобрать пример записи лога аварий на флешку. Чтоб велась накопительная история событий. Codesys 2.3 делал, по вашим примерам и сдал объекты. Codesys 3.5 пока нет, требует времени
Вопросу записи данных в файлы посвящен целый документ: ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Archives_v3.0.pdf Примеры там есть. Видео о работе с файлами тоже есть на канале.
Добрый день. Спасибо за качественный контент. Подскажите, пожалуйста, что будет с retain переменными, если обновить boot application без codesys, а с помощью файлового менеджера?
Добрый день. Применительно к нашим ПЛК (где эта ситуация обрабатывается стандартным механизмом CODESYS) - новое приложение не загрузится из-за ошибки контрольной суммы RETAIN-памяти (простыми словами - рантайм "поймет", что текущий слепок RETAIN-памяти не соответствует загруженному приложению). Поэтому, например, в наших скриптах при загрузке проекта с USB или SD RETAIN-память полностью зачищается перед копированием нового приложения в память контроллера.
По поводу идей для видео - я бы хотел немного узнать об 2-3х устройств в одном проекте (соккетами вроде это называется на одном из вэбинаров вскользь касались этой темы) узнать это на примере связки ПЛК210 и СПК1xx - плюсы и минусы если одно из устройств будет необходимо временно обесточить (мусор в виде отчёта об ошибках и избежания ситуаций с опросом устройства пока оно спит) Спасибо. Пока что-то особо не знаю что предложить, если только рассказать про обьект AxisGroup (я так понимаю что это идеально подходит для Серводрайверов все параметры или частотников в коопе с серводвигателями)
По первому вопросу - на том вебинаре не "касались вскользь", а демонстрировался конкретный пример: ua-cam.com/video/-MYbECw9Ots/v-deo.html Насчет описанной ситуации про обесточивание не понял - лучше задайте этот вопрос на нашем форуме, более подробно описав, что именно вас интересует. По второму вопросу - наши контроллеры не поддерживают AxisGroup, так что нем могу ничего про него рассказать.
Правильно ли я понял, что в программе не надо контролировать частоту изменений persistent переменной, так как запись все равно будет происходить 1 раз в секунду и это не приведет к износу памяти? А если значение переменной не изменится, то и запись не будет происходить раз в секунду?
Если я правильно понял вопрос и он касается момента на 14:45 - то в группе рецептов PersistentVariables в рецепте PersVars нужно для тех переменных, которым не нужно восстанавливать значения, сделать пустые ячейки.
@@CodesysOneLove вопрос касается момента 18:50. Там показывается как сделать слепок Persistent переменных. Можно ли как то выбрать те переменные которые мне нужны для сохранения, а не все Persistent?
Добрый день. Подскажите, пожалуйста, чем отличаются теплый (WARM) старт и холодный (COLD) старт, кроме как в связи с поведением RETAIN- переменных? И перезагрузка ПЛК отключением автомата, это что: теплый сброс, холодный сброс, пообще не сброс в данном смысле?
Хотел по поводу тем, возможно интересно будет пояснить чем кардинально отличаются методы, к примеру метод добавили а внизу в ПРГ написали ACT(); к примеру, что интересного можно указывать между скобками, какой метод более лучше для начала если хочется просто не путаться в коде и разбить логику на компоненты оборудования и исключать по булевой переменной ненужный метод (про отключения узлом мастером шикарно и понятно была рассказано, там имя узла выбирать и энейбл вроде очевидно, но очевидно для проффи) Разбил на несколько указал в список SD_copy_USB (); и другие в этом духе, а вот сейчас думаю, а вот выйдет из строя пчв или почистить его, я исключу его из опроса, а хочется что-бы в коде контроллер не трогал переменные - не знаю интересно ли это народу, так что это мысли так сказать в комментариях. Спасибо.
Не получится. Только экземпляр структуры целиком. Или изворачиваться - например, вместо переменной в структуре объявлять указатель на нее, и передавать при инициализации в него адрес RETAIN-переменной.
Эта галочка нужна, когда вы создаете библиотеку на языке ANSI C, которую потом планируете использовать в CODESYS. Чтобы узнать, как ее использовать - приходите к нам работать (или к другому производителю, который разрабатывает ПЛК с рантаймом CODESYS).
Я не говорил, что мне "не нравится ретейн в фб" - лишь описал, какие последствия имеет такой подход. Фраза "рассказать как это делается " тоже не очень понятна. Чтобы использовать ретейн в ФБ - достаточно добавить в области объявления блока секцию VAR RETAIN. Больше рассказывать, на мой взгляд, тут нечего. Что касается "конфигурационных переменных" - если речь о VAR_CONFIG, то они не имеют отношения к RETAIN.
@@CodesysOneLove да, прошу прощения, это я смешал в кучу ретейн и конфигурационные переменные... В овене нет такой функциональности, чтобы объявить назначенные конфигурационные переменные как ретейн (при этом весь FB не попадает в ретейн) А возможно такое было в ваго, где область регистров модбас была ретейном и по этим же адресам можно было прописать конфигурационные переменные из ФБ (причем не используемые переменные прописывались на один адрес и экономили кучу места)
@@CodesysOneLove Как я понял, персистент переменные можно сохранять лишь вручную в персистент варс, через рецепты, также восстановить. А есть ли возможность автоматически их сохранять через код программы?
@@КонстантинФедоров-о3л нет, это не так. Кратко повторю некоторые тезисы из видео: Механизм сохранения PERSISTENT-переменных может быть разным и зависит от конкретного контроллера; в контроллерах ОВЕН они сохраняются автоматически, как и RETAIN - при изменении любой из относящихся к ним переменных, но не чаще раза в секунду. То, что касается рецептов - это просто возможность сохранить "слепок" текущих значений PERSISTENT-переменных на ПК (например, для дальнейшего анализа).
@@CodesysOneLove Мне как раз таки и нужно автоматически сохранять переменные персистент в рецепты. Для этого требуется библиотека Recipe Management или есть, также возможность обратиться через библиотеку CmpApp?
Спасибо, очень полезная информация! Подача как всегда на уровне.
Хотелось бы разобраться с методами (не нашёл про это почти ничего) и курс работы с библиотеками. Ролик замечательный, спасибо Вам за труды!
Насчет методов - можете, например, в этом документе посмотреть примеры их создания и использования:
ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Archives_v3.0.pdf
А насчет "курса работы с библиотеками" - можно подробнее? Какие библиотеки вас интересуют?
Во второй вид Ретейн хорошо делать сохранение часов наработки к примеру или ещё какие-то сервисные параметры который не должны терятся на оборудовании из-за сбоя программы или тд
Спасибо, как всегда информативно и структуироаано. Хотелось еще добавить к видео поведение Retain И Persistent Retain переменных при их локализации (AT Declarations). Как одновременно иметь локализованных переменные и в тоже время энергонезависимые. Спасибо!
Это хороший вопрос. Я в принципе рекомендую избегать прямых адресов (AT Declarations), поэтому не уделил ему внимания. Документация в этом вопроса однозначна - в области RETAIN нельзя использовать AT-адресацию ("An assignment of inputs, outputs, or memory addresses with the AT keyword is not permitted."). content.helpme-codesys.com/en/CODESYS%20Development%20System/_cds_var_retain.html
В вашем случае можно использовать функционал рецептов - на канале есть отдельный плейлист на эту тему.
Не всегда рецепты подходят к примеру пропало питание на длительное время, а контроллер электрическлй печью управляет и нет смысла делать через рецепты если уставки меняются сравнительно не часто и их количество не меняется одновременно. Спасибо за видео, я конечно понял, но послушать ни когда не лишнее, думаю просмотрев видео до конца я что-то новое почерпну для себя.
Добрый вечер. Спасибо за интересный ролик. Я хотел бы узнать об Persistance Manager. Использование которого даёт возможность создавать структуру данных где определённые вариабле могут быть перзистент
Спасибо за идею - добавил себе в список.
Cделал видео: ua-cam.com/video/of8meE9WeXI/v-deo.html
Спасибо, полезно!
О чем хотелось бы посмотреть:
разобрать пример записи лога аварий на флешку. Чтоб велась накопительная история событий. Codesys 2.3 делал, по вашим примерам и сдал объекты. Codesys 3.5 пока нет, требует времени
Вопросу записи данных в файлы посвящен целый документ: ftp.owen.ru/CoDeSys3/11_Documentation/03_3.5.11.5/CDSv3.5_Archives_v3.0.pdf
Примеры там есть. Видео о работе с файлами тоже есть на канале.
@@CodesysOneLove Спасибо!
Добрый день. Спасибо за качественный контент. Подскажите, пожалуйста, что будет с retain переменными, если обновить boot application без codesys, а с помощью файлового менеджера?
Добрый день. Применительно к нашим ПЛК (где эта ситуация обрабатывается стандартным механизмом CODESYS) - новое приложение не загрузится из-за ошибки контрольной суммы RETAIN-памяти (простыми словами - рантайм "поймет", что текущий слепок RETAIN-памяти не соответствует загруженному приложению). Поэтому, например, в наших скриптах при загрузке проекта с USB или SD RETAIN-память полностью зачищается перед копированием нового приложения в память контроллера.
По поводу идей для видео - я бы хотел немного узнать об 2-3х устройств в одном проекте (соккетами вроде это называется на одном из вэбинаров вскользь касались этой темы) узнать это на примере связки ПЛК210 и СПК1xx - плюсы и минусы если одно из устройств будет необходимо временно обесточить (мусор в виде отчёта об ошибках и избежания ситуаций с опросом устройства пока оно спит) Спасибо. Пока что-то особо не знаю что предложить, если только рассказать про обьект AxisGroup (я так понимаю что это идеально подходит для Серводрайверов все параметры или частотников в коопе с серводвигателями)
По первому вопросу - на том вебинаре не "касались вскользь", а демонстрировался конкретный пример:
ua-cam.com/video/-MYbECw9Ots/v-deo.html
Насчет описанной ситуации про обесточивание не понял - лучше задайте этот вопрос на нашем форуме, более подробно описав, что именно вас интересует.
По второму вопросу - наши контроллеры не поддерживают AxisGroup, так что нем могу ничего про него рассказать.
Приветствую, особенность retain переменных в ФБ это фишка ОВЕН, или codesys в общем? Спасибо).
Это фишка самого CODESYS.
Правильно ли я понял, что в программе не надо контролировать частоту изменений persistent переменной, так как запись все равно будет происходить 1 раз в секунду и это не приведет к износу памяти? А если значение переменной не изменится, то и запись не будет происходить раз в секунду?
Да, но это касается именно ПЛК ОВЕН. В других контроллерах может быть другая реализация RETAIN.
Вопрос про сохранение и восстановление Persistent переменных. Как выбрать переменные которые нужно сохранить , не все а только те что выбрал ?
Если я правильно понял вопрос и он касается момента на 14:45 - то в группе рецептов PersistentVariables в рецепте PersVars нужно для тех переменных, которым не нужно восстанавливать значения, сделать пустые ячейки.
@@CodesysOneLove вопрос касается момента 18:50. Там показывается как сделать слепок Persistent переменных. Можно ли как то выбрать те переменные которые мне нужны для сохранения, а не все Persistent?
@@apple_wow6016 нет, в этом случае в файле сохраняется полный слепок энергонезависимой памяти (включая все RETAIN- и PERSISTENT-переменные).
Добрый день.
Подскажите, пожалуйста, чем отличаются теплый (WARM) старт и холодный (COLD) старт, кроме как в связи с поведением RETAIN- переменных?
И перезагрузка ПЛК отключением автомата, это что: теплый сброс, холодный сброс, пообще не сброс в данном смысле?
Добрый день. Других отличий нет.
@@CodesysOneLove спасибо!
Хотел по поводу тем, возможно интересно будет пояснить чем кардинально отличаются методы, к примеру метод добавили а внизу в ПРГ написали ACT(); к примеру, что интересного можно указывать между скобками, какой метод более лучше для начала если хочется просто не путаться в коде и разбить логику на компоненты оборудования и исключать по булевой переменной ненужный метод (про отключения узлом мастером шикарно и понятно была рассказано, там имя узла выбирать и энейбл вроде очевидно, но очевидно для проффи) Разбил на несколько указал в список SD_copy_USB (); и другие в этом духе, а вот сейчас думаю, а вот выйдет из строя пчв или почистить его, я исключу его из опроса, а хочется что-бы в коде контроллер не трогал переменные - не знаю интересно ли это народу, так что это мысли так сказать в комментариях. Спасибо.
Между скобками можно указать аргументы метода - точно так же, как это делается для функции.
Как добавлять переменные из структур в энергонезависимую память?
Не получится. Только экземпляр структуры целиком. Или изворачиваться - например, вместо переменной в структуре объявлять указатель на нее, и передавать при инициализации в него адрес RETAIN-переменной.
а можно щи в ПерсистенВар врисывать начальные переменные ? - что-бы при заливке проекта на новый контроллер не были нули
Да, можно.
@@CodesysOneLove спасибо, я тогда уставки из Ритейн в список Персистем перевиду. P/S надеюсь попаду на Вэбинар, на днях зарегистрируюсь.
Вопрос по кодесисту 3.5 в свойствах fb или POU есть галочка внешняя реализация. Что за зверь и как ее пользовать?
Эта галочка нужна, когда вы создаете библиотеку на языке ANSI C, которую потом планируете использовать в CODESYS. Чтобы узнать, как ее использовать - приходите к нам работать (или к другому производителю, который разрабатывает ПЛК с рантаймом CODESYS).
@@CodesysOneLove спасибо за ответ. Может подскажите как посмотреть на что она ссылается?)
@@ОлегПфлюг-к3ц я не понимаю вопроса, извините.
Не смотря на то, что вам не нравится ретейн в фб, рассказать как это делается и об конфигурационных переменных можно было бы.
Я не говорил, что мне "не нравится ретейн в фб" - лишь описал, какие последствия имеет такой подход. Фраза "рассказать как это делается " тоже не очень понятна. Чтобы использовать ретейн в ФБ - достаточно добавить в области объявления блока секцию VAR RETAIN. Больше рассказывать, на мой взгляд, тут нечего. Что касается "конфигурационных переменных" - если речь о VAR_CONFIG, то они не имеют отношения к RETAIN.
@@CodesysOneLove да, прошу прощения, это я смешал в кучу ретейн и конфигурационные переменные... В овене нет такой функциональности, чтобы объявить назначенные конфигурационные переменные как ретейн (при этом весь FB не попадает в ретейн) А возможно такое было в ваго, где область регистров модбас была ретейном и по этим же адресам можно было прописать конфигурационные переменные из ФБ (причем не используемые переменные прописывались на один адрес и экономили кучу места)
Можно ли персистент переменные сохранять через код программы?
Поясните причину вашего вопроса, пожалуйста, чтобы я смог точнее на него ответить.
@@CodesysOneLove Как я понял, персистент переменные можно сохранять лишь вручную в персистент варс, через рецепты, также восстановить. А есть ли возможность автоматически их сохранять через код программы?
@@КонстантинФедоров-о3л нет, это не так. Кратко повторю некоторые тезисы из видео: Механизм сохранения PERSISTENT-переменных может быть разным и зависит от конкретного контроллера; в контроллерах ОВЕН они сохраняются автоматически, как и RETAIN - при изменении любой из относящихся к ним переменных, но не чаще раза в секунду. То, что касается рецептов - это просто возможность сохранить "слепок" текущих значений PERSISTENT-переменных на ПК (например, для дальнейшего анализа).
@@CodesysOneLove Мне как раз таки и нужно автоматически сохранять переменные персистент в рецепты. Для этого требуется библиотека Recipe Management или есть, также возможность обратиться через библиотеку CmpApp?
@@КонстантинФедоров-о3л В данном случае потребуется именно Recipe Management. CmpApp для вашей задачи не подойдет.