PDA

Просмотр полной версии : Кнопки на панели СП307



alesandro
04.07.2017, 18:47
Здравствуйте!
Имеется следующая конфигурация. Контролёр ПЛК100КМ, Slave, Панель СП307- Master. Связь по RS-232. Работает всё хорошо, вот только мне не нравиться, что при включении питания и после установки связи кнопка "Работа" становиться нажатой самопроизвольно т.е. включается режим "Работа". Я бы хотел, что бы это происходило после нажатия на кнопку. Кнопки запрограммированы через функциональные области. Пробовал добавлять дополнительную функциональную область с различными настройками сброса бита кнопки "Работа", не получается. Подскажите решение проблемы.
31965
31966
31965
31967
3196831969
Выложил скриншоты настроек.

Евгений Кислов
04.07.2017, 19:45
Кнопка становится нажатой не самопроизвольно - панель просто считывает состояние соответствующего бита из ПЛК.
Можете при загрузке панели однократно сбрасывать этот бит - в функциональной области выберите режим После загрузки проекта, и сбрасывайте бит 0x0 (тот самый, который соответствует кнопке - на вашем скриншоте почему-то 0x1 и 0x2).

alesandro
04.07.2017, 19:57
Бит 0х1 - это кнопка "Мойка", а бит 0х2 - "Вытеснение. Дело в том, что кнопка "Работа" не сразу становиться нажатой, а через небольшую задержку. Возможно секунды 2-3. Откуда она берётся непонятно. Если на компьютере наблюдать программу в CodeSys, то можно видеть, как квадратик напротив переменной "panel0" становится синим. При этом на экране СП307 кнопку "Работа" никто не нажимал.

Евгений Кислов
04.07.2017, 20:16
Бит 0х1 - это кнопка "Мойка", а бит 0х2 - "Вытеснение. Дело в том, что кнопка "Работа" не сразу становиться нажатой, а через небольшую задержку. Возможно секунды 2-3. Откуда она берётся непонятно. Если на компьютере наблюдать программу в CodeSys, то можно видеть, как квадратик напротив переменной "panel0" становится синим. При этом на экране СП307 кнопку "Работа" никто не нажимал.

Если не подключать панель к ПЛК - кнопка в программе все равно будет срабатывать (квадратик становится синим) после старта контроллера?

Выложите проекты для ПЛК и панели, пожалуйста.

petera
04.07.2017, 20:20
Бит 0х1 - это кнопка "Мойка", а бит 0х2 - "Вытеснение. Дело в том, что кнопка "Работа" не сразу становиться нажатой, а через небольшую задержку. Возможно секунды 2-3. Откуда она берётся непонятно. Если на компьютере наблюдать программу в CodeSys, то можно видеть, как квадратик напротив переменной "panel0" становится синим. При этом на экране СП307 кнопку "Работа" никто не нажимал.

Все переменные в слейве ПЛК являются энергонезависимыми, по этому если перед выключением питания ПЛК было включено состояние "Работа", то после включения питания Вы увидите на панели и в конфигурации слейва ПЛК "самопроизвольное" включение кнопки.
Попытки принудительного выключения этих бит в ПЛК из панели с помощью ф.областей с запуском "При включении питания" скорей всего будут безуспешными, т.к. панель начинает функционировать практически мгновенно, в то время как ПЛК начинает исполнять программу с существенной задержкой от момента включения питания. По этому принудительные функции "ВЫКЛ бит" будут отправлены в никуда.
Эту задачу нужно всегда решать в программе ПЛК, что делается элементарно - в первом цикле выполнения программы в ПЛК принудительно сбрасывать такие биты в слейве. Всего пару строчек кода.

alesandro
04.07.2017, 20:30
Спасибо за разъяснения. Я предполагал, что что то надо сделать в программе. Присвоение переменной в slave 0 будет достаточно (в моём случае "panel0:BOOL:=0")? Ой, ошибка, вместо "0" надо "FALSE"

Sulfur
04.07.2017, 21:28
Можно сдлеать так:
PLC_PRG
var
init:bool:=true;
end_var;
--------------
if init then panel0:=false;
init:=false;
end_if;

Будет выполнен однократный сброс переменной panel0, и в дальнейшем её можно пользовать как угодно, до выключения.

alesandro
05.07.2017, 05:14
Большое спасибо.