PDA

Просмотр полной версии : ПР200 + ИП320, энергонезависимые переменные.



Aleksey Efremov
17.03.2017, 10:09
Доброго всем дня, форумчане!
Прошу вашего совета. Не могу реализовать энергонезависимость в данной паре. Смысл в том, что необходимо на панели ИП320 менять значения уставок и записывать их в некие переменные в ПР200 (галочку энергонезависимости ставлю). Но... менять-то меняю, и в ПР записываю, и все вроде хорошо, но при повторном включении питания панели значения обнуляются и идет запись нолей в ПР.
Пробовал делать через отдельный экран на панели с подтверждением сохранения параметров, а при переходе на экран изменения параметров считывать из переменных, такая ересь получается. Кто может уже исполнял данное чудо, прошу поделиться решением.

Серёга Букашкин
17.03.2017, 10:27
Доброго всем дня, форумчане!
при повторном включении питания панели значения обнуляются и идет запись нолей в ПР.
Надо производить запись отдельной командой с ИП320, тогда все хорошо будет. А если писать постоянно или по детектору изменения - будут нули.

Aleksey Efremov
17.03.2017, 10:33
Надо производить запись отдельной командой с ИП320, тогда все хорошо будет. А если писать постоянно или по детектору изменения - будут нули.

Хм... а как это на ИП320 сделать? В ПР200 надо снимать галочку с переменной "Запись по изменению"?

Василий Кашуба
17.03.2017, 10:41
Хм... а как это на ИП320 сделать? В ПР200 надо снимать галочку с переменной "Запись по изменению"?

Кто мастер сети? Если панель, то нужно сделать так, чтобы панель при включении питания, самой первой командой читала регистры ПР200, а не записывала свои нули в регистры ПР200.

Aleksey Efremov
17.03.2017, 10:44
Кто мастер сети? Если панель, то нужно сделать так, чтобы панель при включении питания, самой первой командой читала регистры ПР200, а не записывала свои нули в регистры ПР200.

Мастер ПР200. Сейчас пробую баловаться с командами на запись и чтение в ПР.

Василий Кашуба
17.03.2017, 11:02
Мастер ПР200. Сейчас пробую баловаться с командами на запись и чтение в ПР.

Тогда не по изменению параметра, а по событию "команда с панели, нажатие кнопки".

Павел Братковский
17.03.2017, 11:20
Я тоже с переменными с бубном плясал, подробностей не помню, но задача выполнима.....если на домашнем компе есть напишу, как делал....на работе есть, но это в понедельник.

Aleksey Efremov
17.03.2017, 11:38
Я тоже с переменными с бубном плясал, подробностей не помню, но задача выполнима.....если на домашнем компе есть напишу, как делал....на работе есть, но это в понедельник.

Спасибо, буду ждать.
Запись/чтение в сетевую переменную по команде из ПР пока не получается. Делаю так: При выходе из экрана редактирования ИП320 по кнопке ESC произвожу установку бита "Момент 1" на запись. А при входе в экран редактирования установку бита "Момент 1" на чтение. Т.е. у меня два бита, один на чтение, один на запись.
30095
Пока так и не получилось. При включении питания идет сброс переменных в ноль.

Василий Кашуба
17.03.2017, 11:51
Спасибо, буду ждать.
Запись/чтение в сетевую переменную по команде из ПР пока не получается. Делаю так: При выходе из экрана редактирования ИП320 по кнопке ESC произвожу установку бита "Момент 1" на запись. А при входе в экран редактирования установку бита "Момент 1" на чтение. Т.е. у меня два бита, один на чтение, один на запись.
30095
Пока так и не получилось. При включении питания идет сброс переменных в ноль.
Галочку зря убрали, я вам говорил
Тогда не по изменению параметра, а по событию "команда с панели, нажатие кнопки"., а это другой регистр, другая команда, и уже по принятии этой команды, в программе делаете либо чтение, либо запись.

Aleksey Efremov
17.03.2017, 12:18
Галочку зря убрали, я вам говорил

Не совсем понял о чем речь была. Сейчас поставил галочку и убрал команды на чтение/запись. Посредством ПР пытаюсь записывать и читать.
30096
Вроде заработало, но пока по нажатию по кнопкам. Решаю как сделать, чтобы в автоматическом режиме считывалось или записывалось. Наверное при сравнении номера экрана делать сие.

Bender
17.03.2017, 16:33
Здравствуйте. Может не по теме, не нашёл нужной ветки. Возник вопрос по передаче переменных в сеть с пр200. Я передаю переменную с плавающей запятой, адрес регистра 512. Пр200 slave. На ПЛК режим мастер, читаю real input module адрес так же, 512. В мониторе codesys в этом регистре, число не совсем в том виде в каком я его отправлял. Примеров в сети так же нет, связки плк и пр200. Может быть кто подскажет как это сделать? Желательно в виде примеров. Спасибо.

melky
17.03.2017, 16:49
Bender скорее всего нужно менять регистры местами. Сам ПР этого делать еще НЕ УМЕЕТ, хотя перестановка в настройках присутствует.

Bender
17.03.2017, 16:54
Пробовал в разных вариациях, не выходит.

melky
17.03.2017, 16:58
там вариантов то всего, поменять
1. байты местами
2. регистры местами
3. байты и регистры местами

адрес в 0x00 записать
прибавить к адресу 1, но для приборов Овен скорее всего не надо.

Bender
17.03.2017, 16:58
Вот что получается. Оба регистра 512 адрес имеют. Так на всякий случай.
30103

Серёга Букашкин
17.03.2017, 17:00
Bender скорее всего нужно менять регистры местами. Сам ПР этого делать еще НЕ УМЕЕТ, хотя перестановка в настройках присутствует.
Пр200 это делает. Интересно что у разных прибров ОВЕН разная последовательность байтов чтония Float (например у ТРМ212 и СМИ1), пришлось методом подбора вариантов пока не стало отображаться правильно. Перестановка последовательности есть и работает.

melky
17.03.2017, 17:02
но какое то значение вы же получаете ? ну так получив его и попробуйте загнать в DWORD и поменять местами байты в разных вариантах и потом обратно в real.

melky
17.03.2017, 17:03
Серёга Букашкин на какой версии ?, на 99 хрен она что делает, я scada проверял, что бы не ставил в ПР, в scada приходится всегда ставить байты 2301

Bender
17.03.2017, 17:05
С целочисленным числом получилось, всё работает. А вот REAL???
30104

Серёга Букашкин
17.03.2017, 17:05
на 93-й это работает. и на более ранних всегда работало. Страху нагоняете...После 93-й не обновлял. Сейчас работаю в режиме 1-2-3-4 (без галочек) и СМИ1 так читает. А для ИП320 или для ТРМ212 нужно 3-4-1-2. Даже внутри себя ОВЕН одного стандарта не придерживается.

Aleksey Efremov
19.03.2017, 11:15
В общем, снова я по своей теме. Наковырял что-то, вроде пока работает. Может и лишнего, можно где-то упростить, попробую довести до ума.
30119

По картинке: "Stat" - переменная статуса прибора. При включении ИП320 записывает в нее единицу, ПР производит чтение локальных переменных в сетевые. Поставил временной импульс чтения в течении 1 сек. т.к. при одномоментном импульсе было замечено "недочтение" некоторых переменных, т.е. просто ноль.
После ввода переменных на ИП320, выходим из экрана ввода по кнопке ESC. При этом переходим на отдельный экран, где просто пишем, что настройки изменены и через 2 сек. переходим на экран Меню.
"Scr" - переменная текущего экрана. "mon" - переменная автозамены экрана.
В остальном, пытаюсь чтоб переменные записи/чтения всегда были в ноль.
Перекрестные соединения пришлось поставить на верхних ФБ SEL, т.к. при вводе значений с ИП, после запроса от ПР они все равно обнулялись. Вот как-то так.
Кто что скажет?

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

Bender
20.03.2017, 08:16
Нет, не получается. Переустановка галочек не приводит к положительному результату. Работает только с целым. Остаётся только реал помножить на 10, для смещения запятой. Преобразовать в инт и передать в сеть. Только как быть с отрицательными значениями.... Но пока мне это не интересно.

Bender
20.03.2017, 09:05
Ура, получилось. Только в жизни не догадался бы, что такое возможно. Просто, на дурачка, решил инкрементировать адрес регистра. Так что, дело было не в галочках.3013930139
30140

petera
20.03.2017, 09:40
Ура, получилось. Только в жизни не догадался бы, что такое возможно. Просто, на дурачка, решил инкрементировать адрес регистра. Так что, дело было не в галочках.3013930139
30140

Это неправильно! Т.к. 24,75 - это 0х41C60000, то Вам просто повезло, что один из двух регистров =0000.
Скорей всего рано или поздно получите в ПЛК неверные данные из ПР.
Все зависит от содержимого соседних с 516,515 регистров ПР, да и от самого значения.
Надо оставить в ПР для Float 516 регистр, а вот в ПЛК следует изменить настройки в UMD
30141

melky
20.03.2017, 10:12
Согласен с petera, так как ПЛК и панель обе Овеновские, адресация у них с нуля. Это не scada или сторонние приборы, где адресация может начинаться с 1.

Bender
20.03.2017, 10:43
Мда, вы правы. Этот момент я не учёл. Мне нужна была лишь одна переменная. Но чтобы не вводить в заблуждение других, замечание верное. Спасибо. Последнее время я много сталкиваюсь с глюками при программировании плк, потому и подумал что и тут что-то не допилено до конца.
Например: IF true THEN a:=TRUE; b:=TRUE;END_IF
Результат: а = истина, в = ложь.....?
А если дописать IF a THEN b:= TRUE; END_IF
Всё работает. Причём это происходит на определённом участке редактора. Так что, и не знаешь уже что думать.

melky
20.03.2017, 12:09
Это нормально, так как записывая в одну строку все заканчивается на первом ;
Это кажется только нюансы синтаксиса.

Bender
20.03.2017, 12:42
Это нормально, так как записывая в одну строку все заканчивается на первом ;
Это кажется только нюансы синтаксиса.
Не могу согласиться.30146
А в проекте, на определённом участке редактора так не работает.

melky
20.03.2017, 16:32
Серёга Букашкин покажите скринами как ? я переключаю Прибор - Настройка прибора - Интерфейс (выбираю слейв) и ставлю "Старшим регистром вперед".
В scada как стояло при снятой галке "Старшим регистром вперед" 2301 (или 3412 по терминологии ПР) так и осталось стоять и значения правильные, а ведь ДОЛЖНЫ были бы измениться и заставить поменять последовательность байт.

Версия 99.

Серёга Букашкин для понимания реальности это не стандарт Овен, это зависит от типа процессора + протокол. Но если в приборе заявлено, что он может менять регистры и байты местами, то это должно отражаться на работе с другим оборудованием или scada системами. Так вот этого как раз и нет.
для ПР мастером не проверял, я говорю о ПР слейве.

melky
20.03.2017, 18:07
Что значит не может если я в ПР ставлю Старшим регистром вперед и должен сразу при чтении получить наоборот.... Это как так может не может ???? Если ПР в Скада посылал Пупкин Вася, я меняю регистры и должен получить Вася Пупкин а как получал Пупкин Вася так и продолжаю получать ?

Серёга Букашкин
21.03.2017, 11:17
как получал так и продолжаю получать ?
Проверил. У ПР200 в слейве как не ставь галочки последовательности передачи, всё одинаково. Наверное так не должно быть? А если должно, то почему эти галочки активные?

melky
21.03.2017, 12:04
Вот и я к тому, что так быть не должно и писал уже об этом давно, но все как-то мимо ушей прошло...

Ревака Юрий
21.03.2017, 12:14
Добрый день, сейчас уточню этот вопрос.

Данные настройки в режиме Slave работают только для описанных в РЭ входов и выходов
для переменных ОВЛ данный функционал недоступен.

petera
21.03.2017, 12:49
Проверил. У ПР200 в слейве как не ставь галочки последовательности передачи, всё одинаково. Наверное так не должно быть? По этому вопросу ухожу в подходящую тему...там напишу подробнее что в этом вопросе взрывает мозги.
Слейву, ЛЮБОМУ!!! по барабану в каком порядке раскладывать Float по регистрам потому, что в стандарте Modbus нет понятия INT, FLOAT, REAL и проч.
Modbus оперирует регистрами- мастер читает/пишет один регистр или несколько регистров, а как интерпретировать нолики и единички в этих регистрах это задача не протокола, а ПО верхнего уровня.
Я же Вам уже картинку показал в 24 посте.
30157
В мастере ПЛК измените в UMD порядок чтения/записи регистров
Вместо Trace_Mode сделайте Native в параметре Byte Sequence

melky
21.03.2017, 13:02
Аналоговый вход №1 (число с плавающей точкой) float32 0x0B00, 0х0B01
Аналоговый вход №2 (число с плавающей точкой) float32 0x0B02, 0х0B03
Аналоговый вход №3 (число с плавающей точкой) float32 0x0B04, 0х0B05
Аналоговый вход №4 (число с плавающей точкой) float32 0x0B06, 0х0B07

Я правильно понял, что это работать будет только с этими регистрами ?
Тогда может быть на вкладке ОЛ это указать, а не вводить людей в заблуждение... Или доделать до ума, чтобы это работало и на сетевые переменные.

Когда же вы уже перед выкладыванием релиза начнете САМИ его проверять...... ????????????????
Просто бесит уже. "Необрабатываемое исключение" так вашу за ногу...

Серёга Букашкин
21.03.2017, 13:31
работать будет только с этими регистрами ?
Тогда может быть на вкладке ОЛ это указать, а не вводить людей в заблуждение... Или доделать до ума, чтобы это работало и на сетевые переменные.
Вот оно чё! Слейву конечно всё равно, но протокол прибора должен описывать последовательность укладки сетевой переменной если она неуправляема. А то приходится со стороны мастера подбирать эту последовательность, и не всегда это тоже поддерживается. Это может ПЛК или ПР200. А если мастер ИП320? Там нет такой настройки. И непонятно главное: это ошибка или так и задумано? Если у них протокол не может отличить float от просто двух регистров, то зачем указываем тип сетевой переменной при назначении адреса?

Ревака Юрий
21.03.2017, 13:34
Аналоговый вход №1 (число с плавающей точкой) float32 0x0B00, 0х0B01
Аналоговый вход №2 (число с плавающей точкой) float32 0x0B02, 0х0B03
Аналоговый вход №3 (число с плавающей точкой) float32 0x0B04, 0х0B05
Аналоговый вход №4 (число с плавающей точкой) float32 0x0B06, 0х0B07

Я правильно понял, что это работать будет только с этими регистрами ?
Тогда может быть на вкладке ОЛ это указать, а не вводить людей в заблуждение... Или доделать до ума, чтобы это работало и на сетевые переменные.

Когда же вы уже перед выкладыванием релиза начнете САМИ его проверять...... ????????????????
Просто бесит уже. "Необрабатываемое исключение" так вашу за ногу...

Да, МБ слейв в ПР работает с массивом регистров (или битов) про то что два соседних регистра - это переменная float, которую нужно перевернуть, модуль не знает это могут быть просто два соседних регистра, по поводу указать это в OL, пометил.

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

melky
21.03.2017, 14:08
А зайти в настройки Прибор - Настройки прибора и отхватить ошибку уже не в состоянии на собственном компе ?
Я уже не говорю, что должны устанавливать тестовые программы на живой ПР перед тем, как выкладывать релизы...
А то у народа и русский слетает и многое другое.

Ревака Юрий
21.03.2017, 15:29
А зайти в настройки Прибор - Настройки прибора и отхватить ошибку уже не в состоянии на собственном компе ?
Я уже не говорю, что должны устанавливать тестовые программы на живой ПР перед тем, как выкладывать релизы...
А то у народа и русский слетает и многое другое.

На живых ПРах и происходит тестирование, опишите подробнее что у Вас происходит, проявляется это постоянно или носит спонтанный характер.

melky
21.03.2017, 15:32
Постоянно на версии 105 при входе в Параметры прибора до возврата на версию 101. Ставить еще раз нет желания.
Ошибка так же проявилась при открытии совершенно пустого проекта - новое открытие ОЛ.

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

Windows 8.1

И еще вопрос - КОГДА вылечите установку значений по умолчанию для сетевых переменных ?
А то как сломали при переходе на 200-ку так и остается сломанным.

Отключил ПР, запускаю, обновляюсь, новый проект - ПР200 - Получите и распишитесь...

Ревака Юрий
21.03.2017, 15:51
Постоянно на версии 105 при входе в Параметры прибора до возврата на версию 101. Ставить еще раз нет желания.
Ошибка так же проявилась при открытии совершенно пустого проекта - новое открытие ОЛ.

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

Windows 8.1

И еще вопрос - КОГДА вылечите установку значений по умолчанию для сетевых переменных ?
А то как сломали при переходе на 200-ку так и остается сломанным.

Отключил ПР, запускаю, обновляюсь, новый проект - ПР200 - Получите и распишитесь...

Спасибо, понятно, проблема решается.