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

Тема: ип320 - динамические номера регистров

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

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

    По умолчанию

    можно честно сделать параметр флоат
    Можно. Если не забывать, что соответствующий ему тип данных занимает вдвое больше пространства, чем целочисленный. В каких-то проектах на ПЛК с лицензией L (лимит 360 байт на ввод-вывод - оставим за рамками причины, по которым в каждом частном случае оказалось невозможно заменить ПЛК на "безлимитный") этот перерасход может оказаться критичным.
    По части того, как Float поступает с положением десятичной точки - не пробовал использовать его на практике. Но вроде бы, если эту галочку поставить, то поля форматирования остаются активными - т.е. должно подчиняться заданному положению точки...
    а дальше? юзер нажимает кнопку работы с параметрами, и...?
    Ну, полагаю, примерно так.
    Мы неким образом (неважно каким, через построенные в проекте панели экранные меню/кнопки/поля ввода) выбрали условный порядковый номер параметра для редактирования. И записали его в специально отведенный регистр.
    ПЛК читает этот регистр. Его ответные действия по ненулевому значению регистра: заслать порядковые номера строк динамического текста для этой формы в другие (отведенные вами для этой цели) регистры и установить в регистре "Авт.смена экрана" номер экрана, содержащего подходящую для этого параметра форму ввода. Откуда он эти номера строк и прочие "атрибуты" возьмет - ваше дело. Можете CASE использовать, или выбор констант из массивов, как вам будет угодно и удобно.
    Панель переходит на заданный в "Авт.смене" экран и заполняет текстовые поля в нем "динамическим текстом", дорисовывая окончательный вид формы. ПЛК в это время дожидается, пока регистр "Текущий экран" не будет равен "Авт. смене", после чего пишет в "Авт. смену" ноль (команда перехода на заданный экран выполнена, и незачем принудительно удерживать панель на этом экране).
    Юзер выполняет ввод новых уставок, штатными средствами панели. ПЛК читает их из регистров (т.е. полей ввода формы) и переписывает во внутренние переменные программы, ориентируясь на номер параметра, который использовался выше.
    Далее юзер жмет кнопку ESC и вываливается на предыдущий уровень (откуда он попал в форму редактирования). ПЛК по изменившемуся номеру "Текущего экрана" обнаруживает это событие и записывает в регистр с номером редактируемого параметра ноль (точнее говоря, значение, имеющее смысл "ни хрена пока что не выбрано"). Или, если надо, может принудительно инициировать переход панели на какой-то иной экран (механизм описан выше).
    В принципе, все. Сейчас можно выбрать параметр с другим порядковым номером и повторить процесс.
    Обращаю внимание, что это все "черновик", предназначенный для общего понимания, и отнюдь не оптимизированный. Наверняка, чуть подумав, многие места можно сделать красивее. Мне просто сейчас думать лень.
    Полностью согласен с Валенок, что при большом количестве редактируемых параметров это самый экономный способ по ресурсам как области ввода-вывода, так и памяти, занимаемой проектом в панели...
    Создаю таблицу регистров и не понимаю, как они реально сохраняются, сколько места занимают.
    PLC_Configuration_OWEN.pdf, страница 7 (сколько занимает тот или иной тип данных) и 50..52 (как они располагаются в области ввода-вывода). На 52-й странице полезная картинка, иллюстрирующая все это. Обращайте внимание на выравнивание переменных при расчете их адресов - при желании можно сгруппировать регистры так, чтобы обойтись без "дыр", используемых на выравнивание. Например, не раскидывать четыре 8-битных регистра в живописном беспорядке среди регистров REAL (или WORD), а собрать их рядышком.
    Последний раз редактировалось Terrano1992; 04.11.2010 в 19:51.

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

    По умолчанию

    Радостно видеть внимание к моим вопросам! Но тут, елы-палы, чем больше ответов, тем больше новых вопросов.

    Цитата Сообщение от Terrano1992 Посмотреть сообщение
    Если не забывать, что соответствующий ему тип данных занимает вдвое больше пространства, чем целочисленный. В каких-то проектах на ПЛК с лицензией L (лимит 360 байт на ввод-вывод - оставим за рамками причины, по которым в каждом частном случае оказалось невозможно заменить ПЛК на "безлимитный") этот перерасход может оказаться критичным.
    У меня безлимитный. Но опять же, что это значит? Читаю ТТХ ПЛК100, какие-то 8 М ОЗУ, 4 К ЭППЗУ - что и как связано с той памятью, которая используется в обсуждаемой области памяти ввода-вывода?
    Вообще-то и тут же новая непонятка. Если мне нужно, чтобы (многие, почти все) регистры сохранялись при выключении питания, то что? - Загружать их после включения из ЭППЗУ или можно объявить переменную области ввода-вывода как Retain?

    Манипуляции с экранами для работы с параметрами - буду вкуривать постепенно. Похоже, что здесь боль-мень проясняется.

    А вот интересный момент по отражению параметров от третьего устройста. Представим себе, что есть ИП320, который по RS232 работает Мастером с ПЛК100. Отлично, создаем у ПЛК100 нехилую такую область размером в несколько сот байт, которая доступна Мастеру - и он ее отображает, позволяет пользователю смотреть и редактировать параметры и прочее.
    А в системе еще есть некий модуль (пусть АЦП), который также имеет много параметров, задаваемых пользователем. И я хочу, чтобы он конфигурировался прямо тут, при работе с ПЛК и ИП320. То есть, его параметры - такие же, как и параметры ПЛК100, их нужно уметь смотреть и редактировать с ИП320.
    Сначала я думал связать АЦП (я его еще не выбрал, поэтому называю условно, но считаем, что это тоже стройство с Модбасом) с ПЛК по 485 и в этой паре чтобы ПЛК был Мастером. Однако, прочтя вот это:
    "во внутреннее пространство этой памяти можно вставить не только переменные, но и устройство, отображаемое как память", подумал о другом варианте.
    Может быть, сделать ПЛК Слейвом в квадрате? Пусть ИП320 берет из него данные и записывает на их место редактированные значения, а тот самый АЦП пусть просто складывает свои параметры в область ввода-вывода ПЛК100, доступную и для ИП320. Тогда нет проблем с редактированием параметров АЦП с панели ИП320. Все, что нужно АЦП для работы, он возьмет из своего ЭППЗУ (если у него есть) и вдует в самом начале работы в ПЛК100. Эти параметры свободно доступны ИП320 для отображениея и редактирования - и их изменение станет видно модулю АЦП, он втянет измененные параметры в свою память.
    А результаты непосредственно работы АЦП (результаты измерения) тоже будут складываться в область ввода-вывода. И ПЛК100 может оттуда черпать что ему нужно для работы (преобразование, сравнение, принятие тех или иных решений), что-то изменять в своих регистрах, которые пойдут для отображения на панель. И все счастливы.

    Что вы можете сказать о модели, в которой самый умный (ПЛК) - с обеих сторон Слейв?

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

    По умолчанию

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

    Цитата Сообщение от валенок Посмотреть сообщение
    плетка, наручники.. попробуйте. так интересней.
    что-то не вкурил. я ж новичек, не забывай. давай, как блондину?

    Цитата Сообщение от валенок Посмотреть сообщение
    рядовая ситуация с разными интерфейсами.но.
    если производство ответственное, тот прибор сможет как-то сообщить о том что он умер ?
    производство ответственное? не знаю. там ничего не взорвется, это точно. но при чем здесь это?

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

    если умер кто-то из мастеров. допустим, ацп. тогда плк100 может увидеть по вторичным половым признакам, что ему новых результатов никто в область ввода-вывода не кладет - узнает. что еще надо?
    ну, а если ип320... тут интересно. я хочу обдумать вариант, когда плк + ацп могут по включению разобраться, что ип320 нет в системе - и работать без него. там задача управления, в которой оператор не обязательно и смотрит на индикатор. теоретически можно работать без индикации. ну, это решение еще впереди...

  4. #4

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    алгоритм работы должен предусматривать любой вариант развития ситуации, или возможность быстрой доработки для этого.
    Угу. Не раз уже сталкивался с тем, что какую-то пустячную функцию, упущенную в ходе разработки (как обычно - не было в ТЗ, необходимость в ней выявилась только в ходе опытной эксплуатации), впоследствии оказывается невозможно добавить без серьезных переделок установки в целом. Уж лучше еще на этапе разработки разумную избыточность заложить.

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

    По умолчанию

    2 Валенок:

    За пример спасибо! Еще не рассмотрел, вопросы будут.

    Но вот такого я не понимаю:
    Цитата Сообщение от Валенок Посмотреть сообщение
    алгоритм работы должен предусматривать любой вариант развития ситуации, или возможность быстрой доработки для этого.
    Это общие слова, извини! Почему вариант АПЦ(Мастер) - ПЛК(Слейв) как-то проигрывает в приведенном тобой замечании?

    Еще раз: я не настаиваю на варианте слейвового ПЛК. Я пробую разобраться. что в этом плохого.

Ваши права

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