PDA

Просмотр полной версии : Записать в BOOL состояние дискретного выхода



IIkIIkIIk
18.03.2024, 21:19
Здравствуйте!
Необходимо в HMI передавать для индикации состояния выходов контроллера.

m_yK1 := yK1;
m_yK2 := yK2;
m_yK3 := yK3;
m_yK4 := yK4;
m_yK5 := yK5;
m_yK6 := yK6;
m_yK7 := yK7;
m_yK8 := yK8;
m_yK9 := yK9;
m_yK10 := yK10;

Как я понял, такой код работать не будет. (m_yK1 - BOOL, yK1 - выход контроллера).

Подскажите, пожалуйста, как быть.

IIkIIkIIk
18.03.2024, 21:20
Пытался запаковать в WORD побитно - не получилось. (word_value.0 := yK1; и так далее)

МихаилГл
18.03.2024, 21:31
Если уК1 и т.д. bool, то должно работать. Возможно выхода напрямую нельзя использовать, тогда примените промежуточную переменную. Вы же где то уК1 присвоили какое-то значение. Так сделайте это значение в промежуточной переменной и работайте с ней.

IIkIIkIIk
18.03.2024, 21:35
Если уК1 и т.д. bool, то должно работать. Возможно выхода напрямую нельзя использовать, тогда примените промежуточную переменную. Вы же где то уК1 присвоили какое-то значение. Так сделайте это значение в промежуточной переменной и работайте с ней.

yK1 - это выход контроллера. Присваивать выходу значение булевой переменной можно. А вот наоборот (присвоить булевой переменной значение выхода), как я понял, нельзя. А мне именно это и нужно сделать.

IIkIIkIIk
18.03.2024, 21:37
Если уК1 и т.д. bool, то должно работать. Возможно выхода напрямую нельзя использовать, тогда примените промежуточную переменную. Вы же где то уК1 присвоили какое-то значение. Так сделайте это значение в промежуточной переменной и работайте с ней.

Я понял, о чем Вы говорите, но программа построена иначе. Может есть другое решение...

МихаилГл
18.03.2024, 21:37
Используйте промежуточную, ту что вы присваиваите выходу. Я же написал выше.

МихаилГл
18.03.2024, 21:39
У вас в коде есть уК1:= perembool. Например.
Ну и делайте: trebuemyiword.1:= perembool.
Или покажите программу

IIkIIkIIk
18.03.2024, 21:44
У вас в коде есть уК1:= perembool. Например.
Ну и делайте: trebuemyiword.1:= perembool.
Или покажите программу

Спасибо большое, я разобрался. Ошибка у меня была.