PDA

Просмотр полной версии : ПЛК100+ИП320



Frayl
25.03.2013, 07:30
Здравствуйте. Подскажите решение или правильное направление, пожалуйста.
Есть у меня несколько экранов, на них жмутся кнопки. Панель работает в режиме слейв(так надо, потому что rs232 занят - была бы мастером я бы не задавал таких вопросов). Проблема в том что если ставить реакцию на кнопку "Моментальное 1" плк не успевает опросить и увидеть что панель выставила свой бит в единицу.
Попробовал делать так чтобы все кнопки при нажатии на них записывали в некий один регистр своё значение и обрабатывать изменение этого регистра на плк с помощью тригера R_TRIG. Вот и возникла проблема - повторно на кнопку уже не нажать. Попробовал писать потом с плк в этот регистр (панели) "0" а он не пишется.

в ПЛК-конфигурации есть Register input r_buttons с адресом 32 и Register Output Module state wr_buttons и comwr_buttons тоже с адресом 32.


b_main_zero_trig(clk:=(r_buttons=1));

IF but_pressed THEN
wr_buttons:=0;
comwr_buttons:=255;
but_pressed:=FALSE;
ELSE
comwr_buttons:=254;
END_IF;

IF b_main_zero_trig.Q THEN
but_pressed:=TRUE;
END_IF;

Николаев Андрей
25.03.2013, 07:50
В ИП320 есть свойство кнопки - поменять значение. Или Вам надо при нажатии именно включить, а выключается само?

Frayl
25.03.2013, 07:56
реверс? мне нужно чтобы можно было многократное нажатие кнопки отслеживать.

Frayl
25.03.2013, 07:59
b_main_zero_trig(clk:=(b_main_zero<>r_buttons.0));(*триггер нажатия кнопки ВВОД(главная) с панели*)
b_rec_ent_trig(clk:=(b_rec_ent<>r_buttons.1)); (*триггер нажатия кнопки ВВОД(рецепты) с панели*)
b_cal_zero_trig(clk:=(b_cal_zero<>r_buttons.2));(*триггер нажатия кнопки НОЛЬ(калибровка) с панели*)
b_cal_weight_trig(clk:=(b_cal_weight<>r_buttons.3));(*триггер нажатия кнопки ВЕС(калибровка) с панели*)
b_cal_accept_trig(clk:=(b_cal_accept<>r_buttons.4));(*триггер нажатия кнопки ПРИНЯТЬ(калибровка) с панели*)
b_cnt_ent_trig(clk:=(b_cnt_ent<>r_buttons.5));(*триггер нажатия кнопки ВЛЕВО(счетчики) с панели*)
b_cnt_clr_trig(clk:=(b_cnt_clr<>r_buttons.6));(*триггер нажатия кнопки ОЧИСТКА(счетчики) с панели*)

b_main_zero:=r_buttons.0;
b_rec_ent:=r_buttons.1;
b_cal_zero:=r_buttons.2;
b_cal_weight:=r_buttons.3;
b_cal_accept:=r_buttons.4;
b_cnt_ent:=r_buttons.5;
b_cnt_clr:=r_buttons.6;


Как то вот так только получился добиться желаемого. И поставил реакцию кнопки на "Реверс бита"