Всем доброе утро, посмотрите на код, как считаете, нормальный? SendUp - датчик, pump - насос.
Вложение 43407
Вид для печати
Всем доброе утро, посмотрите на код, как считаете, нормальный? SendUp - датчик, pump - насос.
Вложение 43407
Было бы здорово, если бы перед заливкой картинок они проверялись. Всё размыто, ничего не понятно.
Ну и поставленную задачу неплохо бы описать более подробно.
Задача: осуществить передачу воды из одной емкости в другую при срабатывании датчика, посредством насоса.
Я сделал так: когда датчик срабатывает насос передающий воду в след емкость срабатывает, иначе он не работает и мы переходим к след метке.
Картинку более точную сейчас сделаю
Прикладываю фотографию кода Вложение 43408
есть ли хоть какой то опыт работы с контроллерами или только работали с компьютерными языками программирования. По коду, Вы вроде не поняли принцип работы плк
Новичок в этом, вы правы, что не так, что изменить надо?
как минимум прыжки вовсе не обязательны, код и так выполнятся, потому что в контроллерах весь код выполняется с периодичностью называемой время цикла/скана, с лева на право с верху в низ. Если хотите чтоб программа застревала на каком то этапе, вместо меток должны быть кейсы оператора CASE
ЗЫ такую задачу, более расторопный студент уже задавал здесь, попробуйте поискать возможно решение уже давалось
Понятно, есть ли критические ошибки? Беспокоюсь что не так как задумано будет работать.
Exen3city
Ну вот как-то так:
Вложение 43409
Не хватает защиты от дребезга датчиков.
если этот код работает как задумано, то значит критических ошибок нет. Хотя если смотреть на задание, сам код одна сплошная ошибка
Спасибо! А в коде у меня есть ошибки?
Говорите загадками, почему одна сплошная ошибка? Напишите конкретно что на ваш взгляд не так, благодарю.
как преподаватель, я бы хотел видеть от учеников, что они идентифицировали общие элементы на технологической схеме участка, построили общий класс, в данном случае это емкость с одним входным аргументом(это сенсор) и первым выходным элементом(это насос) и вторым выходным элементом(это индикация лампочки) Внутри класса описали бы алгоритм, что если сенсор в активном состоянии или удовлетворяющий определенным порогам включения и выключения насоса(одним словом гистерезис), то включался бы насос, в идеале это должна быть одна строчка без всяких условий или уж если условие, то были оставлены комментарии какой блок для чего. Когда общий класс(функциональный блок) создан, останется разместить в программе экземпляры созданного ФБ с присвоением соответствующих входов/выходов
Понятно, у меня есть шаблон программы с ФБ. Решил что код небольшой и можно все уместить в одном POU.
Exen3city
Потому что в данном конкретном случае предоставленный вами код избыточен от слова "весь". В КоДеСисе такие задачи решаются гораздо проще. В моем примере я показал как можно обойтись одним блинкером вместо четырех. При желании данный код можно уместить в буквально несколько строк на ST, применяя булевые массивы для датчиков, насосов и ламп и адресацию.Цитата:
почему одна сплошная ошибка?
Вложение 43410
Понятно, от неопытности сделал громоздко, согласен. Спасибо большое за помощь!
Sulfur, спасибо!
ладно было бы написанопроверяющий бы оценил для чего это нагорожено, но без этого, непойму, почему нельзя сделать PUMP:=FLAG;Цитата:
IF FLAG THEN
PUMP:=TRUE;
(* TODO *)
ELSE
PUMP:=FALSE;
(* TODO *)
END_IF;