Показано с 1 по 10 из 43

Тема: ип320, номера регистров

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    лично я делаю как Валенок)),на двадцать своих экранов использую всего девять(максимум десять регистров обмена), панель в режиме мастер:
    -tlister - регистр номера текущего листа;
    -lister - регистр изменения номера листа;

    шесть регистров обмена значений(больше на лист панельки не влезает);
    -Reg1, Reg2, Reg3, Reg4, Reg5, Reg6;

    два байта (16 бит) на обработку кнопочек панели
    -b_1, b_2... b_0,b_END...b_DOWN

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

    далее в CASE смотрю что за лист и соответственно её обрабатываю:

    CASE tlister OF
    1: (*проверяем изменился ли лист*)
    IF NOT(last_list=tlister) THEN
    last_list:=tlister;
    END_IF
    (*если информацию нужно выводит, просто присваиваем требуемое значение*)
    Reg1:=value1;
    ....
    Reg6:=value6;
    2: (*если требуется редактировать значения, то в начеле выводим текущие значения...*)
    IF NOT(last_list=tlister) THEN
    last_list:=tlister;
    Reg1:=value1;
    ....
    Reg6:=value6;
    END_IF
    (*а потом подтверждаем изменения, например нажатием кнопки ENT...*)
    if b_ENT then
    b_ENT:=false;(*кстати обнулять следует и при первом входе на лист*)
    value1:=Reg1;
    ...
    value6:=Reg6;
    end_if
    (*или например отслеживая изменения регистра...*)
    if NOT(Reg1=value1) then
    value1:=Reg1;
    end_if
    3: (*переключатся между экранами можно стандартно(настраивая в конфигураторе панели) или программно...
    IF NOT(last_list=tlister) THEN
    last_list:=tlister;
    b_UP:=false;
    END_IF
    if b_UP then
    lister:=1;
    b_UP:=false;
    end_if
    end_case

    конечно в реале программа получается несколько посложней, все переменные для безопасности локализованы в одной процедуре, посложней обработчик програмного переключения экранов(так как тут после изменения регистра lister, регистр tlister изменяется с запозданием на несколко рабочих циклов, что, редко, но бывает критично), но в общем я придерживаюсь этой структуры...

  2. #2
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    Цитата Сообщение от Crusash Посмотреть сообщение
    лично я делаю как Валенок))
    Так и я теперь как Валенок

    Спасибо!

    Уважаемые Админы! Могу ли я попросить перенести тему в форум для панелей? Впредь постараюсь выбирать место размещения более внимательно

Ваши права

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