Добрый день.
Задача следующая - ввести 4 значения: два в формате INT и две уставки времени для таймеров (те, которые будут на входе PT).
Пример "Редактирование уставок" есть, но там для одной уставки, а поскольку я до этого работал только с контроллерами SIEMENS, то вопросов много....
Начать с того, как мне сказать, что у меня будет несколько экранов для ввода параметров?
Код:
IF NOT starting THEN (*то что выполняется один раз при запуске программы*)
SetWorkScreenCount(ЗДЕСЬ???);
Как ввести значение в формате TIME?
Для того, чтобы можно было зайти в режим редактирования достаточно будет вставить этот код в программу (и соответствующие библиотеки Int_Mode.lib и Work_Mode.lib)?
Код:
ft(clk:=kbrd=key); (*если пользователь нажал заданное сочетание клавиш*)
IF ft.Q THEN (*отработаем по отпусканию клавиш*)
flag:=TRUE; (*установим флаг первой стадии редактирования*)
flag1:=TRUE; (*и флаг необходимости переключения в single_mode*)
END_IF
IF flag THEN (*первая стадия редактирования*)
IF flag1 THEN (*если необходимо переключение в single_mode*)
Switch_To_Single_Mode(); (*осуществим переключение в single_mode*)
flag1:=FALSE; (*сбросим флаг необходимости перехода в single_mode*)
END_IF
ton2(in:=TRUE,pt:=t#1000ms); (*с момента запроса перехода в режим редактирования подождём 1000 мс*)
IF ton2.Q THEN (*1000 мс прошло?*)
Switch_To_EDITOR(pnode_); (*переключаемся в режим редактора*)
flag:=FALSE; (*сбрасываем флаг первой стадии редактирования*)
flag2:=TRUE; (*устанавливаем флаг второй стадии редактирования*)
ton2(in:=FALSE,pt:=t#1000ms); (*сбрасываем таймер ton2*)
END_IF
END_IF
IF flag2 THEN (*последняя стадия -- отслеживаем редактирование*)
dm:=Get_Display_Mode(); (*в dm занесём текущий режим*)
IF dm<>editor_mode THEN (*пользователь вышел из редактирования? тогда в dm будет single_mode*)
ton2(in:=TRUE,pt:=t#1000ms); (*подождём после выхода 1000 мс*)
IF ton2.Q THEN (*1000 мс прошло?*)
Switch_To_PREV_Mode(); (*переключаемся в предыдущий режим. То есть в work_mode*)
flag2:=FALSE; (*сбросим флаг второй стадии редактирования*)
ton2(in:=FALSE,pt:=t#1000ms); (*сбросим таймер ton2*)
END_IF
END_IF
END_IF
Как с панели контроллера перейти в режим редактирования? В программе указано сочетание:
Код:
key:BYTE:=136; (*код сочетания альт+стрелка вверх*)
Это можно изменить или это стандартная комбинация?
И как получить доступ к функциональным клавишам Ф1, Ф2, Ф3?
В документе РП ПЛК63.73 для ПЛК73 состояние клавиатуры WORD и значения: