Страница 1 из 1

Какой блок использовать чтобы включить в true bool переменную?

Добавлено: 18 янв 2018, 11:13
Alor
Здравствуйте.
Начал осваивать FlProg, но периодически возникают вопросы использования библиотечных блоков.

Как установить состояние переменной в определенное состояние? Т.е. какой блок осуществляет присваивание?
b = true;

В CodeSys подобное
ST
b:=true;

CFC
делал через импульс по фронту r_trig фиксацией переменной с флагом S

FBD
либо оператором move.

КАк в FLProg?

Какой блок использовать чтобы включить в true bool переменную?

Добавлено: 18 янв 2018, 11:18
Олег
Если постоянно, то правой клавишей мыши на вход переменной и установить константу. Если запись с различных блоков, то включить в установrах вход En

Какой блок использовать чтобы включить в true bool переменную?

Добавлено: 18 янв 2018, 11:52
pan
Alor писал(а): 18 янв 2018, 11:13b:=true;
Изображение



Изображение

вы почаще то кнопочки разные нажимайте с свойства смотрите

Какой блок использовать чтобы включить в true bool переменную?

Добавлено: 18 янв 2018, 12:13
Sancho
pan писал(а): 18 янв 2018, 11:52вы почаще то кнопочки разные нажимайте с свойства смотрите
Согласен.
Но [ref]Alor[/ref] понимаю - в CoDeSys, в CFC это немного иначе. Но это всего-лишь вопрос времени. :yahoo:

Какой блок использовать чтобы включить в true bool переменную?

Добавлено: 18 янв 2018, 12:19
Alor
Олег писал(а): 18 янв 2018, 11:18Если постоянно, то правой клавишей мыши на вход переменной и установить константу. Если запись с различных блоков, то включить в установrах вход En
Разве по En это не разрешение на запись?
Значение должно остаться после записи.
Т.е. допустим прошел импульс значение bool переменной переключилось в true и осталось в этом состоянии после снятия true на входе.
Константа и En тут не подходят

Наверное правильно будет скачать, что нужен оператор присваивание по разрешению.

Какой блок использовать чтобы включить в true bool переменную?

Добавлено: 18 янв 2018, 12:23
pan
Alor писал(а): 18 янв 2018, 12:19допустим прошел импульс значение bool переменной переключилось в true и осталось в этом состоянии.
какой такой импульс. это соответствует коду

Какой блок использовать чтобы включить в true bool переменную?

Добавлено: 18 янв 2018, 12:24
Phazz
что-то я совсем не понял что Вы хотите

Какой блок использовать чтобы включить в true bool переменную?

Добавлено: 18 янв 2018, 12:25
Sancho
Alor писал(а): 18 янв 2018, 12:19Разве по En это не разрешение на запись?
Значение должно остаться после записи.
Т.е. допустим прошел импульс значение bool переменной переключилось в true и осталось в этом состоянии.
Это оно и есть.
Олег имел ввиду, что константы здесь устанавливаются и таким образом. Например, если плата выполняется по условию, и там значение может изменится однажды, то вход en излишен. Когда делаешь по типу архитектуры SFC.

Какой блок использовать чтобы включить в true bool переменную?

Добавлено: 18 янв 2018, 12:27
pan
стоп. то что выше написал это относительно константы.

а по поводу EN...
это будет соответствовать

Код: Выделить всё

if(en) { b=true ; }

Какой блок использовать чтобы включить в true bool переменную?

Добавлено: 18 янв 2018, 12:27
Sancho
[ref]Alor[/ref],
Запись по EN
if (en) then
a:=true
end if

Какой блок использовать чтобы включить в true bool переменную?

Добавлено: 18 янв 2018, 12:34
Phazz
Разве не это?
[spoiler]Изображение[/spoiler]

Какой блок использовать чтобы включить в true bool переменную?

Добавлено: 18 янв 2018, 12:36
Alor
Извиняюсь за путаницу лучше приведу графический пример, что нужно:

Изображение

Но подразумевал как именно присваивание осуществляется, может следующий раз уже не bool переменная может быть, а int или float.
В выше приведенном примере за присваивание отвечает оператор move без разницы на тип переменной, в FlpProg и интересовало есть такое или нет.

Какой блок использовать чтобы включить в true bool переменную?

Добавлено: 18 янв 2018, 12:45
Sancho
[ref]Alor[/ref], Объедините переменную b и move - тоже самое, что Вам и писали в посте выше.

Отправлено спустя 43 секунды:
Alor писал(а): 18 янв 2018, 12:36за присваивание отвечает оператор move без разницы на тип переменной, в FlpProg и интересовало есть такое или нет.
Тоже самое - вход у переменной, любой, включаете En - получаете move

Какой блок использовать чтобы включить в true bool переменную?

Добавлено: 18 янв 2018, 12:53
Alor
Ясно, немного другой подход, благодарю всех.

Какой блок использовать чтобы включить в true bool переменную?

Добавлено: 20 янв 2018, 20:50
sherti
Подскажите как можно реализовать выставление 1, 0 в зависимости от увеличения или уменьшения числа.
Например при любом увеличении числа ставить 1 при уменьшении ставить 0.
Число берется с датчика температуры.

Какой блок использовать чтобы включить в true bool переменную?

Добавлено: 20 янв 2018, 21:24
sherti
Есть датчик температуры с него идут показания от -15 до + 100 например.
Каким блоком или как можно реализовать на выходе 1 или 0 в зависимости от того растет или падает температура. Температура относительно предыдучего значения температуры.
В общем надо изменить направление вращения шагового двигателя в зависимости от растет или падает температура.
ЕЕПРОМ желательно не трогать.

Какой блок использовать чтобы включить в true bool переменную?

Добавлено: 20 янв 2018, 21:28
pan
элементарно. раз в несколько секунд записываете температуру в дополнительную переменную, и подключаете
эту переменную и текущую температуру на блок сравнения.
радуемся.

Какой блок использовать чтобы включить в true bool переменную?

Добавлено: 20 янв 2018, 21:34
sherti
А не получится что там и там одна и таже температура будет записанна?
Щас попробую конечно.

Какой блок использовать чтобы включить в true bool переменную?

Добавлено: 20 янв 2018, 21:46
pan
конечно получится. она самая там и будет. но в момент изменения на выходе сравнения будет 1 или 0