PDA

Просмотр полной версии : Запись дискретных значений в ПЛК 110 М2



oasafronov
07.10.2020, 18:43
Здравствуйте. Необходимо изменять значения бит целочисленной переменной в контроллере с помощью кнопок из визуализации. Напрямую привязаться кнопка к биту целочисленной переменной я так понимаю, не может. Приходится в виртуальном контроллере объявлять массив логических переменных, кнопки привязываются к элементам массива, а сам массив к ФБ "шифратор ДП". Выход ФБ на канал ввода вывода, связанной с переменной в контроллере по Modbus TCP. Если оставить значения переменных массива неопределенными, то кнопки в визуализации не активны с надписью "ош 3", если задать начальные значения, то при перезапуске сервера сбора данных (перезагрузке компьютера) эти значения запишутся в контроллер, что совершенно не нужно. Каким образом это избежать? Может я не правильно к битам обращаюсь и можно проще?

Сергей Сисейкин
12.10.2020, 12:44
Здравствуйте. Необходимо изменять значения бит целочисленной переменной в контроллере с помощью кнопок из визуализации. Напрямую привязаться кнопка к биту целочисленной переменной я так понимаю, не может. Приходится в виртуальном контроллере объявлять массив логических переменных, кнопки привязываются к элементам массива, а сам массив к ФБ "шифратор ДП". Выход ФБ на канал ввода вывода, связанной с переменной в контроллере по Modbus TCP. Если оставить значения переменных массива неопределенными, то кнопки в визуализации не активны с надписью "ош 3", если задать начальные значения, то при перезапуске сервера сбора данных (перезагрузке компьютера) эти значения запишутся в контроллер, что совершенно не нужно. Каким образом это избежать? Может я не правильно к битам обращаюсь и можно проще?

У Вас ПЛК110-30.ТЛ?

в среде разработки какой у Вас выбран ПЛК? так же ПЛК110 или wklogic? )

можно установить начальное значение и писать бит в энергонезависимую память ( при условии что он меняется не часто)
Сохранение в энергонезависимую память устанавливается там же где и стартовое значение (в соседней строчке)

oasafronov
12.10.2020, 17:41
Нет, проcто ПЛК 110 м2, ПО для ПЛК разрабатывалось в CoDeSys. В ТЛ выбирал контроллер wklogic

Sulfur
13.10.2020, 09:39
Может я не правильно к битам обращаюсь и можно проще?
Например так:
VAR
Гравицапа_работает:BOOL;
Гравицапа_перегрев:BOOL;
Гравицапа_статус:WORD;
---
Гравицапа_статус.0:=Гравицапа_работает;
Гравицапа_статус.1:=Гравицапа_перегрев;
Гравицапа_статус.2:=Гравицапа_работает AND Гравицапа_перегрев; (*Громко кричим "Караул" и срочно сажаем пепелац куда придется*)

oasafronov
13.10.2020, 17:15
Например так:
VAR
Гравицапа_работает:BOOL;
Гравицапа_перегрев:BOOL;
Гравицапа_статус:WORD;
---
Гравицапа_статус.0:=Гравицапа_работает;
Гравицапа_статус.1:=Гравицапа_перегрев;
Гравицапа_статус.2:=Гравицапа_работает AND Гравицапа_перегрев; (*Громко кричим "Караул" и срочно сажаем пепелац куда придется*)
Это вы про ТЛ? Пробовал в скрипте прямое обращение к битам, компилятор выдает ошибку. Или Вы про CoDeSys? К нему вопросов нет, там все работает, именно так я и обращаюсь к битам.