Программирование ПЛК на FBD с нуля. Урок 5. Типы данных и арифметика

  Рет қаралды 4,599

Дима Лимите

Дима Лимите

Жыл бұрын

Типы данных и арифметические функции:
- булевый тип BOOL;
- целочисленный тип INT;
- действительный тип REAL;
- конвертация типов данных;
- сложение ADD;
- вычитание SUB;
- умножение MUL;
- деление DIV.
Рассмотрение примеров конвертирования типов данных. Создание программы определения количества срабатываний механизма для ПЛК на языке FBD семейства МЭК 61131-3. Тестирование на симуляторе.
Уроки ориентированы на людей, которые хотят научиться программировать логические контроллеры (ПЛК), но не знают с чего начать. Сложность уроков постепенно увеличивается.
Рекомендую к просмотру:
• Основы программировани... Основы программирования контроллеров за 5 минут
• Программирование ПЛК н... Программирование ПЛК на FBD с нуля
Рекомендую к прочтению:
• Программируемые контро... Программируемые контроллеры. Обзор книги
Скачать среду разработки OwenLogic можно на сайте Овен owen.ru/product/programmnoe_o...
Телеграмм t.me/dimalimite
Дзен dzen.ru/id/6237a097dbe8996261...
Ютуб / @dimalimite

Пікірлер: 25
@leowinch8828
@leowinch8828 Жыл бұрын
👍👍👍👍👍👍
@Kipp547
@Kipp547 Жыл бұрын
Подскажите если используешь сетевые переменные то параллельно локальные использовать уже ненужно, сетевые выполняют и для передачи по сети и локальные?
@dimalimite
@dimalimite Жыл бұрын
День добрый. Я правильно понимаю ваш вопрос: условно есть какая-то сетевая переменная Уставка_1. Нужно ли создавать ещё локальную переменную Уставка_1? Правильно? Если правильно понимаю, то нет не нужно. Одной переменной достаточно.
@user-bt1bh7ny2x
@user-bt1bh7ny2x Жыл бұрын
Дмитрий добрый вечер. Смотрю ролики, жду когда пойдет что нибудь сложное) совет нужен. Генератором считаю секунды импульса сервопривода, фиксирую их на счетчике с реверсом ( суть- контроллер знает на сколько секунд он открыл задвижку, соответственно при закрытии эти секунды отнимаются). Проблема что при пропаже питания импульсы отчитываются опять и задвижка физически уже находясь в нужном положении опять идет в открытие. Сохранение положения через энергонезависимость и запись в блок не помогли. Может есть макросы на подобие kzr? Есть ли они в общем доступе?
@dimalimite
@dimalimite Жыл бұрын
Вечер добрый. Почему энергонезависимость не помогла (как сохранять без энергонезависимой памяти при пропадание питания я не знаю)? Может вы что-то не так делаете (например при старте вашей программе эти значения обнуляются самой программой)? А в чём у вас вообще задача заключается? Для чего вам это положение нужно?
@user-bt1bh7ny2x
@user-bt1bh7ny2x Жыл бұрын
Проблема именно в этом- что значение обнуляется. Значение зависят от уставки, показаний и кусочно линейной аппроксимации, и времени полного хода- эти значения не меняются и пишутся в энергонезависимую память, соответственно не должно меняться и количество секунд «открытия». Ситуация: задвижке дано указание откройся на 15 секунд, пропадает питание, фактический отчет обнуляется, а задание остается и при уже физическом нахождении задвижки на 15 секундах она еще делает открытие на те же 15 секунд и оказывается в положении 30 секунд. Подбор положения осуществляется не ПИДом а апроксимацией
@dimalimite
@dimalimite Жыл бұрын
У вас 100% какой-то "косяк" в программе. Попробуйте в симуляторе в шаговом режиме погонять. Скорее всего в первый момент что-то проскакивает и обнуляет ваши секунды. Если переменная энергонезависимая, то вы сами (ваша программа) её и обнуляет. Без вариантов :)
@user-cj8uo6nf9m
@user-cj8uo6nf9m Жыл бұрын
Здраавствуйте, можно ли таймеры то что в программе при симуляции работают, вывести на экран пр200 чтоб можно было с кнопок вводить значения на таймер и изменять при необходтмости?
@1FrozenHeart1
@1FrozenHeart1 Жыл бұрын
Можно с помощью менеджера экрана и специальных функций чтения и записи из/в функционального блока, Менеджер экранов слева от рабочей области, специальные функции чтения/записи слева от конвертеров типа данных. Необходимо создать нужные переменные привязать их к функциям чтения/записи, а в менеджере экранов добавить строку ввода/вывода под тип данных переменных и в свойствах указать имя переменной, для каждой переменной свою строку.
@dimalimite
@dimalimite Жыл бұрын
Макс Соколов всё верно написал. Могу только лишь добавить, что значения времени будут передаваться в таймер (например в TON) в мсек.
@MrLockdown377
@MrLockdown377 Жыл бұрын
Добрый день. Почему в уроке используете сетевые переменные, а не локальные?
@dimalimite
@dimalimite Жыл бұрын
Хороший вопрос :). Спасибо. Если использовать локальные переменные, то для их отображения в симуляторе пришлось бы их размещать в менеджере экранов на какой-нибудь экран. А если бы я начал их туда добавлять, то это бы уже превратилось в уроки по OWEN Logic, а у меня была цель сделать видео чтобы подходило под условно любой редактор FBD. Поэтому посчитал, что использование сетевых переменных будет самое то :). С одной стороны покажу работу в симуляторе, а с другой стороны вызову вопросы у людей, кто действительно решит повторять эти уроки, что поспособствует их проф. развитию. Вот как-то так.
@ivanmatew568
@ivanmatew568 Жыл бұрын
Дмитрий, здравствуйте. Видел Вас на стриме у S0er-а. Этот язык совсем не похож на классические. Вы знаете еще какие-то языки программирования?
@dimalimite
@dimalimite Жыл бұрын
День добрый. Это один из 5-ти специализированных языков для программирования именно промышленных контроллеров (МЭК 61131-3). FBD занимает больше половины "рынка" АСУТП. К Web программированию, про которое рассказывает Soer, имеет очень-очень-очень отдалённое отношение. Я в основном (95%) использую язык ST. Он тоже относится к МЭК 61131-3 и представляет собой что-то типа паскаля. Могу "что-то" на Си изобразить. Из Web вещей я не могу ни чего :))). Я предлагал кстати Soer-у записать типа стрима про отличия Web программирования от АСУТП. Он проигнорировал. Ещё Михаилу Флёнову (когда у него только-только появился его канал) предлагал. Он ответил, что надо подумать...ну и потом в никуда это ушло :).
@ivanmatew568
@ivanmatew568 Жыл бұрын
Я тоже не делаю web напрямую. Да и Соер вещает вещи больше общепрограммистского толка :). У меня бывший коллега писал программы к микроконтроллерам. Не помню, что за язык, но там точно был вечный цикл. Сам я программист на заводе, а отопление мое хобби. Собрал уже несколько систем. :) Много написал, но мне показалось интересным, что наши с вами интересы немного совпадают.
@dimalimite
@dimalimite Жыл бұрын
А вы программист чего? Что программируете то?
@dimalimite
@dimalimite Жыл бұрын
Я к "Web" отношу всё, что не имеет реального ввода и вывода :)
@ivanmatew568
@ivanmatew568 Жыл бұрын
Я пишу на Delphi. Так уж сложилось много лет назад. Программа для завода включает всё. От бухгалтерии и платежных систем до управления станками. С железом напрямую почти не работаю.
@den-ned
@den-ned Жыл бұрын
Спасибо, но ведь счётчик нажатий прекрасно работает и без функции арифм. операции умножения MUL...
@dimalimite
@dimalimite Жыл бұрын
Да всё правильно. Я уже тут отвечал на этот вопрос )
@RS_83
@RS_83 Жыл бұрын
Блок умножения на 9:30 создан в учебных целях? Без него же работает.
@dimalimite
@dimalimite Жыл бұрын
Отличный вопрос! Рад что вы обратили внимание! Это что-то вроде "подсказки" в какую сторону смотреть если потребуется изменить "вес" этого импульса. Эту конструкцию же можно использовать не только так :)
@RS_83
@RS_83 Жыл бұрын
@@dimalimite спасибо, теперь понял)
Программирование ПЛК на FBD с нуля. Задание 1
12:07
I wish I could change THIS fast! 🤣
00:33
America's Got Talent
Рет қаралды 76 МЛН
Vivaan  Tanya once again pranked Papa 🤣😇🤣
00:10
seema lamba
Рет қаралды 22 МЛН
Полезные макросы для ПР200
9:51
Дима Лимите
Рет қаралды 9 М.
Парсим админку Мегамаркета с помощью скрытых API
30:56
Алексей Куличевский
Рет қаралды 45 М.
Secret Wireless charger 😱 #shorts
0:28
Mr DegrEE
Рет қаралды 2 МЛН
How To Unlock Your iphone With Your Voice
0:34
요루퐁 yorupong
Рет қаралды 27 МЛН
💅🏻Айфон vs Андроид🤮
0:20
Бутылочка
Рет қаралды 736 М.
Ждёшь обновление IOS 18? #ios #ios18 #айоэс #apple #iphone #айфон
0:57