Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 20 из 20

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

  1. #11

    По умолчанию

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

  2. #12

    По умолчанию

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

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

    По умолчанию

    Цитата Сообщение от Terrano1992 Посмотреть сообщение
    Зачем в него вмешиваться, когда контроллер сам это успешно делает? Отслеживает изменение переменной, своевременно записывает ее в EEPROM...
    Ну, это не есть идеально, ИМХО. Как минимум 2 соображения у меня есть:
    1) может быть переменная Retain, которая изменияется достаточно часто, но тренировать память с ограниченным числом циклов перезаписи незачем. Я хочу сохранять ее по определенным событиям (воля оператора или какой-то таймер, делающий запись не очень частой). Тогда выгодно тот алгоритм "автоматического сохранения" как-то блокировать.
    Ну, я понимаю, что придется завести копию этой переменной (объявив ее Retain), и именно туда сбрасывать измененное значение рабочей переменной.

    2) При работе с параметрами я считаю удобным, чтобы оператор не дрожал, боясь напортить. Поэтому хочу, чтобы можно было поиграть с параметрами, не изменяя их сохраняемые значения. И только по осмысленному вызову функции "Сберечь" перенести все в ЭППЗУ.

    Поэтому, если я тебя правильно понял, мне вообще придется завести полную копию всех Retain-параметров и работать с ней. А потом заносить измененные (точнее - предназначенные для запоминания) значения в ту область, где у меня переменные, обозначенные как Retain. А потом уже знать, что ПЛК их сам упрячет куда надо.
    То есть примерно так:

    Код:
    VAR RETAIN
    byVarRetain : BYTE;
    END_VAR
    VAR
    byX : BYTE := byVarRetain;
    END_VAR
    Дальше работаем только с byX, а в нужный нам момент делаем

    byVarRetain := byX;

    ...и знаем. что ПЛК позаботится о сохранении byVarRetain.
    Так?

    Цитата Сообщение от Terrano1992 Посмотреть сообщение
    Получить их в ПЛК "через ИП320" невозможно в любом случае, чисто по техническим ограничениям. Не умеет ИП320 взять данные из одного регистра и скопировать их в другой, ее таким операциям не научили.
    Понял. Это я погорячился. Ну и фиг с ним. Этот вариант 3 не катит (чтобы ИП320 всем мастерам мастер был).

    Но я рассматриваю вариант 2, когда в паре АЦП-ПЛК все же АЦП может быть мастером. Ищу в твоих ответах серьезные аргументы проив - и пока не вижу.
    Ты пишешь про вариант 1:
    Цитата Сообщение от Terrano1992 Посмотреть сообщение
    - это подцепить ИП320 мастером на RS232, а АЦП и прочие прибамбасы навесить на RS485, где мастером будет ПЛК. Тогда, если выбьете из разработчика АЦП все его "хау-ноу" , заполучив полную спецификацию на команды конфигурирования, сможете наваять нужную процедуру на ПЛК (и управлять ее выполнением через ИП320).
    Выбивать ноу-хау, может быть, и не придется. У меня есть великолепный АЦП, который работает не по Модбасу. Если научу его модбасить или разберусь, как заставить ПЛК общаться с нестандартными протоколами (я уже видел ссылки на библиотеку NMU или как там ее) - то лучшего АЦП мне и не надо.
    В любом случае, этот вариант 1 вполне в общепринятом русле и я понимаю, что его можно реализовать.
    Но обдумываю, а почему нельзя вариант 2? Не вижу, не вижу препятствий. И очень надеюсь, что мне кто-то их покажет (медленно и два раза, я же новичек), чтобы не напороть глупостей. А если не покажет - буду пороть

    далле ты про вариант 1 говоришь:
    Цитата Сообщение от Terrano1992 Посмотреть сообщение
    В то же время, такая система хотя бы частично останется работоспособной при сбое/отказе ИП320
    Дык и вариант 2 такое обещает! Не вижу разницы. Отказал ИП320. Ослеп оператор и с параметрами не может работать. Но 99% времени с параметрами никто не работает. Есть дополнительные кнопки (для грубых операторских рук) и лампочки на шкафу. Работай на здоровье! И какая разница, то ли ПЛК периодически запрашивает у АЦП данные, то ли АЦП их периодически сбрасывает в ПЛК?

    Цитата Сообщение от Terrano1992 Посмотреть сообщение
    А как быть с тем, что кроме АЦП в этой системе есть еще ПЛК и панель, которые все равно без компьютера не запрограммировать?...
    Или по условиям задачи необходимо какие-то отдельные рабочие настройки АЦП оперативно изменять?
    Именно! Панель - то при выпуске и все.
    Но по условиям моей задачи на объекте происходит практически обязательное конфигурирование АЦП. Причем, это делается не только при пуско-наладке, но и потом - персоналом заказчика. И, поверь человеку, который по телефону не один десяток раз руководил процессом, очень важно, чтобы делалось все без компа.
    Ты просто не представляешь, в каких "полевых" условиях все это выполняется. На вопрос: "У вас тестер есть?" слышишь смущенное сопение в трубке

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

    По умолчанию

    Цитата Сообщение от Terrano1992 Посмотреть сообщение
    И как он должен отличить ситуацию "мастер умер" от ситуации "мастер жив, но измеряемые/вводимые параметры остаются неизменными"?
    Ну, фиг его знает. Например, АЦП записывает нечто новенькое и битик такой неприметный "есть новости!". А ПЛК сбрасывает этот битик всякий раз по вычитке результатов. И если битик никто не вздрочит снова - умер Мастер Либо связи нет. А какая разница? Кричим караул и отказываемся работать.
    Где-то так.

    Там еще могут быть и не быстроизменяющиеся результаты измерения, а что-то другое. Я обдумаю. И выкладу свою концепцию на обсуждение. Хотя обсудителей здесь маловато. Тихое место...

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

    По умолчанию

    2 Валенок:

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

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

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

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

    По умолчанию

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

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

    По умолчанию

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

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

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

  8. #18

    По умолчанию

    завести полную копию всех Retain-параметров и работать с ней. А потом заносить измененные (точнее - предназначенные для запоминания) значения в ту область, где у меня переменные, обозначенные как Retain.
    Если есть желание отделить рабочий набор параметров от сохраняемых настроек - можно и так поступить. Правда, разбираться с тем, какие из них были изменены, а какие нет, вряд ли есть смысл. Просто копируем весь набор.
    У меня есть великолепный АЦП, который работает не по Модбасу. Если научу его модбасить или разберусь, как заставить ПЛК общаться с нестандартными протоколами (я уже видел ссылки на библиотеку NMU или как там ее) - то лучшего АЦП мне и не надо.
    Ну, если этот чудо-АЦП такой умный, что может быть мастером - на здоровье. Останется только разрулить конфликты (когда два устройства имеют возможность писать в один и тот же регистр) между двумя "мастерами", которые и не подозревают о существовании друг друга. Либо убедиться, что такие конфликты в принципе невозможны.
    то есть, когда выключается питание, плк это узревает и, непрерывно питаясь от своего аккумулятора, по-быстренькому сохраняет в эппзу все переменные с ключевым словом Retain? и никогда раньше?
    аналогично, при включении питания все области Retain заполняются из эппзу - и все?
    Ну, примерно так. Хотя какая разница, как именно это реализовано в конкретной модели контроллера? ОВЕН делает так, Simatic как-то иначе, Delta своим методом... Ну и какая в конечном счете разница прикладному программисту? Пусть эти Retain'ы внутри контроллера хоть гномики нанозубилами на кремниевых пластинах высекают, лишь бы их значение сохранилось после пропажи и повторной подачи питания... А о том, чтобы эти кремниевые скрижали подольше служили, уже разработчики контроллера позаботились.

  9. #19

    По умолчанию

    наверное реализация мастера намного сложнее?
    правильная догадка... намного сложнее, и вычислительных ресурсов гораздо больше требует.
    а что, всякие там мв110-2а не могут принять от плк100 некую команду, по которой изменят, например, свой коэффициент преобразования на пол-шишечки? то есть, прокалибруются.
    Могут. Где-то в тех же "полезностях" (или отдельной темой на форуме) даже такой пример был, с конфигурированием модуля через ПЛК.
    Последний раз редактировалось Terrano1992; 05.11.2010 в 20:26.

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

    По умолчанию

    начинаю прозревать. спасибо за внимание и терпение!

    попробую подвести промежуточные итоги.

    1) по экранам.

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

    экрана меню может не быть вовсе. если экранов всего 4-5, то юзер добредет куда следует.

    2) динамические регистры.

    здесь подход с подбрасыванием в некий "регистр, из которого инфо попадает на это место экрана". подбрасывает туда плк, а ип320 просто делате то, что его научили - выводит этот регистр на экран. а возле него ип320 научен выводить динамический текст. номер этого текста плк тоже подкинет тот, что нужно - и будет нам и название, и значение параметра на экране.
    а чтобы значение еще и нужный формат имело, мы и экран переключим на один из нескольких - в одном приготовлен формат ххххх, в другом хххх.х, в третьем ххх.хх и так далее. юзер и не знает, что работает с несколькими.

    если ничего не изменится после внимательного рассмотрения примера от валенка, то все нормально. так и будет.

    3) объем памяти ввода-вывода.

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

    4) ерзание запятой

    про изменение представления дробного числа при изменении его значения ответа я не получил. но будем смотреть по жизни. скоро приедет из гонконга мой преобразователь и включу ип320 в живую.

    5) работа плк с ип320 и с ацп. доступ у параметрам ацп от ип320 и их изменение операторм с панели.

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

    возвращаемся к обычной системе:
    ип320 мастре - плк слейв
    плк мастер - ацп слейв
    .

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

    вот так я понял. надеюсь, сильно не напутал, иначе ткните сразу.

    еще раз благодарю и ухожу в осмысление.

Страница 2 из 2 ПерваяПервая 12

Ваши права

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