Самостоятельно учусь программировать логические контроллеры , с языком FBD разобрался очень быстро , так же как и с LD , но язык ST привносит некоторые трудности . Каким образом написать таймер внутри кода на язвке ST ? Необходимо , чтоб при срабатывании дискретного входа X (кнопка без фиксации) включался выход Y на 5 секунд и после выход отключается: IF x= true THEN Y:= TRUE; END_IF Каким образом в этот код внедрить таймер , чтоб логика работала как описано выше ?
Добрый день! Наши продукты поддерживают стиль объектно-ориентированного программирования. Но углубленное изучение непосредственно методологии программирования курсы не предполагают.
@@reglab-ekb жаль. Интересное направление. Разработал один раз и дополняй или переопределяй. Очень удобно. Хотя в лоб (как это часто бывает), многие даже не замроачиваются с функциями. Лепят сразу фб. Проблемы начинаются при масштабировании. Приходится переписывать фб, а если сложная зависимость, то потом сложно отлавливать ошибки. С классами проще. Не трогая базовый, можно в дочернем переопределить или добавить что-то, точно зная что остальное не сломается. Для меня это очень удобно.
@@ЕвгенийХасанов-т7р если float во float, то опять же нужна операция присвоения float1 := float2; ютуб блокирует комментарии, поэтому лучше пишите в саппорт РегЛаба (сверху у них на сайте кнопка - Задать вопрос), они очень оперативно отвечают
Добрый день! Нет, сейчас нет возможности динамически создавать экземпляры функциональных блоков, структуры данных, массивы. И, вероятнее всего, такой возможности не будет предоставлено в Astra.IDE и дальше. Это связано с необходимости выделения или перераспределения памяти контроллера, т.е. требует новой компиляции проекта прикладного ПО.
@@reglab-ekbспасибо за ответ! Но сегодня я случайно в справке наткнулся на оператор ___NEW И ___DELETE для создания экземпляров, с условием что определённая опция активирована. Это не работает?
В плк, динамическое создание не допускается. Это один из принципов программирования. Абсолютно все должно быть определено заранее и должно быть 100% предсказуемо. Поэтому динамического создания не будет во всяком случае в ближайшей перспективе. Динамическое создание чего либо, непредсказуемо. Отлавливать ошибки или предсказать как себя поведёт плк практически невозможно. А это противоречит стандартам мэк
Отличный разбор, спасибо. Среда очень похожа на CoDeSys 3.5
Быть такого не может 😂😂😂
Отличный урок.
Самостоятельно учусь программировать логические контроллеры , с языком FBD разобрался очень быстро , так же как и с LD , но язык ST привносит некоторые трудности . Каким образом написать таймер внутри кода на язвке ST ? Необходимо , чтоб при срабатывании дискретного входа X (кнопка без фиксации) включался выход Y на 5 секунд и после выход отключается:
IF x= true THEN
Y:= TRUE;
END_IF
Каким образом в этот код внедрить таймер , чтоб логика работала как описано выше ?
Хотелось бы увидеть интерфейсы с классами.
Добрый день! Наши продукты поддерживают стиль объектно-ориентированного программирования.
Но углубленное изучение непосредственно методологии программирования курсы не предполагают.
@@reglab-ekb жаль. Интересное направление. Разработал один раз и дополняй или переопределяй. Очень удобно. Хотя в лоб (как это часто бывает), многие даже не замроачиваются с функциями. Лепят сразу фб. Проблемы начинаются при масштабировании. Приходится переписывать фб, а если сложная зависимость, то потом сложно отлавливать ошибки. С классами проще. Не трогая базовый, можно в дочернем переопределить или добавить что-то, точно зная что остальное не сломается. Для меня это очень удобно.
Можете подсказать как правильно пишется строка с оператором MOV, если тип данных bolean?
оператор MOVE? на языке ST? если ответы на вопросы - да и да, то передача делается присвоением bool1 := bool2;
@@niksosov Я затупил, не BOLEAN a FLOAT.
@@ЕвгенийХасанов-т7р если float во float, то опять же нужна операция присвоения float1 := float2;
ютуб блокирует комментарии, поэтому лучше пишите в саппорт РегЛаба (сверху у них на сайте кнопка - Задать вопрос), они очень оперативно отвечают
На ST нет оператора MOVE. Если что то надо то либо непосредственно присваиваешь что то типа
Vat_int:=real_to_int(var_real).
почему такой звук на голосе?(какой то фленджер наложен))
Добрый день, можно ли подсказку как у вас в видео
Добрый день! Подскажите, пожалуйста, про какую именно подсказку идет речь?
@@reglab-ekb 8:28 , описание типа переменных и т.д
файл программы или текст.
@@dmitriysed reglab.ru/uploads/Cours/projects/educational%20projects.zip
@@reglab-ekb спасибо вам большое! Как говорится лайк подписка)
Бомба
Что то эта IDE очень похожа на CODESYS
здесь ядро Codesys, на его основе и сделали Astra.ide
Совпадение?😂😂😂
А есть возможность динамически создавать экземпляры функциональных блоков, структуры данных, массивы???
Добрый день! Нет, сейчас нет возможности динамически создавать экземпляры функциональных блоков, структуры данных, массивы. И, вероятнее всего, такой возможности не будет предоставлено в Astra.IDE и дальше. Это связано с необходимости выделения или перераспределения памяти контроллера, т.е. требует новой компиляции проекта прикладного ПО.
@@reglab-ekbспасибо за ответ! Но сегодня я случайно в справке наткнулся на оператор ___NEW И ___DELETE для создания экземпляров, с условием что определённая опция активирована. Это не работает?
В плк, динамическое создание не допускается. Это один из принципов программирования. Абсолютно все должно быть определено заранее и должно быть 100% предсказуемо. Поэтому динамического создания не будет во всяком случае в ближайшей перспективе. Динамическое создание чего либо, непредсказуемо. Отлавливать ошибки или предсказать как себя поведёт плк практически невозможно. А это противоречит стандартам мэк