Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: Ввод уставок в ПЛК73

  1. #1
    Пользователь
    Регистрация
    23.01.2012
    Адрес
    Днепропетровская область
    Сообщений
    14

    По умолчанию Ввод уставок в ПЛК73

    Добрый день.
    Задача следующая - ввести 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 и значения:

  2. #2

    По умолчанию

    значение в формате time вводить и не надо, вводите обычное число и уже в программе преобразовывайте в time
    pt := t#1s * уставка_таймера;

  3. #3

    По умолчанию

    1. Число экранов вводится в параметре WorkInd PLC Configuration
    2. А чем Вас не устраивает ввод параметров через меню?
    3. Слово состояния клавиатуры находится в Configurational-Additional

  4. #4
    Пользователь
    Регистрация
    23.01.2012
    Адрес
    Днепропетровская область
    Сообщений
    14

    По умолчанию

    Ээээ, собственно:
    1. Как преобразовать в INT в time?
    2. Ввод параметров через меню очень даже устроит. Что это за меню, как к нему получить доступ? Какие параметры будут доступны для изменения?
    Нужно ли для этого добавлять код, который я указывал?
    3. Какой код для клавиш Ф1, Ф2, Ф3?
    Последний раз редактировалось AndreyAPG; 24.01.2012 в 10:21.

  5. #5

    По умолчанию

    Цитата Сообщение от AndreyAPG Посмотреть сообщение
    1. Как преобразовать в INT в time?
    Какой инт в какой тайм? См. далее
    Цитата Сообщение от AndreyAPG Посмотреть сообщение
    2. Ввод параметров через меню очень даже устроит. Что это за меню, как к нему получить доступ? Какие параметры будут доступны для изменения?
    Ээээ.
    У вас в PLC Conf. есть три слота для задания параметров. Вот в них и постройте стандартное древовидное меню. Дам есть параметры для даты и времени и есть функции в ОВЕНовских библиотеках для преодразования в системный формат.
    Цитата Сообщение от AndreyAPG Посмотреть сообщение
    3. Какой код для клавиш Ф1, Ф2, Ф3?
    Что вы называете кодом? Считайте указанный в 7.3.5 параметр, и возьмите соответствующий бит

  6. #6

    По умолчанию

    var
    pt: time;
    timer_ust: int;
    end_var

    pt := t#1s * max(0,timer_ust); (* где t#1s - задаваемый минимальный интервал времени *)

  7. #7
    Пользователь
    Регистрация
    23.01.2012
    Адрес
    Днепропетровская область
    Сообщений
    14

    По умолчанию

    Так, более понятно, вроде.
    Я добавляю ветки в конфигурации ПЛК:

    Доступ в программе к этим параметрам будет в таком виде:
    Код:
    IF rr < ryad
    А вот с time..
    О какой библиотеке идёт речь?
    У меня есть вот эти (скачал с сайта ОВЕН):
    Arm7_Specific.lib
    ComService.lib
    Ind_Mode.lib
    ModBus.lib
    Owen_FB.lib
    OwenNet.lib
    Pid_Reg2.lib
    Sound.lib
    Work_Mode.lib
    Время в ветке имеет тип TimeP с форматом ЧЧ:ММ:СС, а мне надо просто секунды, да желательно с миллисекундами....
    При этом вот этот код мне для редактирования параметров не нужен будет, я правильно понимаю?
    Код:
    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

  8. #8

    По умолчанию

    Тогда задайте в меню время, как Float с точностью до 3-х знаков после запятой. В программе переведете в нужный формат, если будет нужно. А скорее всего - нет

  9. #9
    Пользователь
    Регистрация
    23.01.2012
    Адрес
    Днепропетровская область
    Сообщений
    14

    По умолчанию

    По-поводу времени попробую.
    Код? Код, в программе
    Код:
    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
    ....................
    нужен будет или нет?
    Или и без этого кода будет доступ к меню и возможность редактирования параметров?
    Последний раз редактировалось AndreyAPG; 24.01.2012 в 11:36.

  10. #10

    По умолчанию

    Не понял вопроса.
    1. Доступ на чтение из меню - он очевиден. Присвоили переменную в конфигураторе - и читаем.
    2. Редактирование оператором производится встроенной ПО ПЛК.
    3. Редактирование из программы - возможно, но за несколько шагов. И по изменению величины - она сохраняется во Флэшь, можно "протереть".

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Чтение уставок ТРМ133
    от Kliper в разделе Сетевые технологии
    Ответов: 2
    Последнее сообщение: 14.12.2011, 19:31
  2. И снова об ПЛК73
    от ASo в разделе ПЛК63/73
    Ответов: 3
    Последнее сообщение: 30.06.2011, 18:55
  3. ПЛК73
    от nevii в разделе ПЛК63/73
    Ответов: 8
    Последнее сообщение: 15.05.2011, 20:10
  4. Профиль уставок в CoDESYS
    от DimaSik в разделе ПЛК1хх
    Ответов: 10
    Последнее сообщение: 05.08.2009, 17:08

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •