Да, все правильно.
Вид для печати
Да, все правильно.
Задача: подключить к ПР114 датчик температуры с нормирующим преобразователем или датчик давления с аналоговым выходом.
Решение:
1) Допустим у нас есть датчик давления 4-20мА, диапазон преобразования 0-100МПа, это значение необходимо обработать в программе.
2) Запускаем OwenLogic, выбираем модификацию программируемого реле и открываем свойства аналогового входа.
3) В свойствах аналогового входа задаем параметры:
-сигнал датчика (4-20мА или 0-10В)
- режим работы входа – аналоговый
- нижняя и верхняя границы измерений ( 0-100МПа)
4) сигнал датчика 4-20мА преобразован в 0-100 МПа, далее вы его можете использовать в теле программы.
http://ipic.su/img/img7/fs/1.1364469337.jpg
http://ipic.su/img/img7/fs/2.1364469413.jpg
http://ipic.su/img/img7/fs/3.1364469448.jpg
http://ipic.su/img/img7/fs/4.1364469479.jpg
Есть ли способ программу для ПР110-24.12Д.8Р загрузить в ПР110-24.8Д.4Р или нужно переписывать? Спасибо.
Делается это так -открываете проект ,выделяете все элементы и копируете (правой кнопкой мышки) .Затем создаете новый проект на ПР8\4 ,вставляете то что скопировали в на рабочее поле .Но прежде -если есть макросы ,то загрузите в библиотеку ,потом вставляйте.Если есть блоки записи в ФБ ,то сделайте новые назначения ,потому как при копировании они не сохраняются .Подсоедините входа\выхода в нужные места схемы .Вот и все-грузите .Можно сохранять под новым именем ,что бы и старый вариант остался .
Спасибо большое.
А вашу тему ПР110 попросим удалить модераторов ,после удаления сообщений
Подскажите, как сделать округление числа до сотых, желательно по правилу с 5-кой. например 0,001=0,00, а 0,005=0,01 ?
Например мне надо разделить число и его округлить до сотых.
умножить на 100, прибавить 0,5, преобразовать в целочисленное.
если необходимо, сделать обратное преобразование в вещественное, с последующим делением на 100.
PS если исходные данные целочисленные, то лучше поступить немного подругому.
x/y с округлением = (x*100+y/2)/y -> to-float -> /100
или даже так
x/y с округлением = ((x*200)/y+1)/2 -> to-float -> /100
AI! в ощем значения целочисленные, секунды, минуты, часы, дни.
Но тот же DIV при делении отсекает все после запятой.
Вот и думаю, как проще считать наработку, универсальными счетчиками или иначе.
Чтобы можно было сохранять ДНИ, Часы, Минуты.
capzap, так мне необходимо вывести значения наработки в удобоваримом варианте как раз в минутах, часах, днях.
Я посмотрел пример на ПЛК100 со снятием времени из системных часов в мс, но там как-то через энное место, с проблемой перехода через ноль.
В идеале выводить в месяцах и годах, но к сожалению у нас месяцы с разным количеством дней, да и года тоже. Можно конечно усреднить до 30 дней в принципе и не париться, не та погрешность.
capzap я собственно в теме Пр задал вопрос из-за того, чтобы сделать универсальный макрос подсчета наработки, независимый от прибора и часов, будь то ПР110, ПР114 или ПЛК.
По крайней мере любой макрос, сделанный на ПР можно перенести в виде библиотеки на ПЛК. Будут отличаться только способы сбора информации и ее хранение.
Например не вижу смысла считать мс или даже с, достаточно минут, часов, дней, месяцев и годов мне так кажется. Хотя если делать универсальный макрос, можно считать и мс с секундами, а на выборку брать то, что необходимо.
capzap вот именно о том и речь, что из ПЛК не все можно перенести в ПР, зато из ПР можно практически все перенести в ПЛК.
Хм, сейчас понял, что без счетчиков счет когда-нибудь остановится, лет через 136 :), ограничение 32 битного параметра (4294967295)...
Врядли столько будет жить прибор, но все-таки это отсутствие универсальности. :)
Я тут подумал, как примерно можно считать правильно месяцы. Например можно использовать макрос ППЗУ с заданными параметрами в ячейках количества дней в месяце и согласно дням заводить на счетчик.
Месяц февраль для высокосного года можно считать по аналогии с нашими совдеповскими часами "Электроника".
0 - высокосный год
1 - 1-й после высокосного
2 - 2-й после высокосного
3 - 3-й после высокосного
И это все в цикле.
При установке прибора на объекте ввод данных согласно календарю. год (0, 1, 2, 4), месяц (0,-,12 для правильного начала выборки из ППЗУ), день, чтобы ППЗУ меняло время смены месяцев вовремя.
Ну и хранение смены состояния при отключении питания.
Прошил программу с выставленными значениями и запустил прибор. (имеется ввиду после пусконаладки перед окончательным запуском)
Так если вы считаете наработку оборудования ,то зачем вам знать какой месяц или год .считайте в мс или сек ,потом минуты ,часы ,дни и все .получите 567дней ,23 часа 47мин 32сек.Выключилось оборудование прекратился счет ,включили -продолжили ..Естественно нужно сохранять в энергонезависимой памяти .А если Пр114 с часами ,то возможно читать время через сетевые переменные
rovki да это я просто заморачиваюсь от нечего делать :)
фактически в принципе достаточно Д.Ч.М.
Мне только непонятно, а зачем при этом считать мс или сек, их можно просто отсекать и все.
AI! просто сперва думал считать через вещественные переменные, но понял, что это сложнее, чем на целочисленных и тем более на счетчиках.
ТОгда 3 счетчика и все ,а если секунды считать ,4 счетчика .Вам же их не покупать.Ну или один счетчик ,тогда делите.Только счетчик возьмите 32 разряда
AI! понятно.
Не могу вот сейчас понять, как сохранять в энергонезависимую память и правильно потом вынимать данные при включении ?
на простом примере, прошло 30 сек и прибор отключился. При включении счетчик окажется обнулен и вариант сразу после счетчика использовать EQ с уставкой 60 для подсчета минут как-то выглядит криво.
Счетчик задайте в свойствах =энергонезависимый (для ПР114)
rovki - в режиме эмуляции не работает, недоработка программы ?
я уже предлагал свой вариант эмуляции энергонезависимой памяти.
оно?
PS ничего подобного в эмуляторе пока нет.
Железа нет под рукой проверять, поэтому ориентируюсь только на эмулятор. Поэтому и поинтересовался как ОЛ работает.
Эх, нет радости без физических железок :( чтобы можно было только на эмуляторах гонять программу
в Модус 5680 есть энергонезависимые переменные?
Судя по ОЛ ,то нет .Если не прав ,разработчики поправят ,может ОЛ еще не доделан для них.
1) В Модус 5680 аппаратно Retein есть, программно пока не поддержан.
2) Для эмуляции Retain пока можно использовать свойство для переменных - значение по умолчанию. По другому пока никак.
Опишите пожалуйста как вы видите симуляцию сохранения значения при отключении питания?
Евгений Сергеевич например добавлением кнопочки "обнуление Ratain переменных" при входе в режим симуляции.
Ведь выходя и входя в режим симуляции все обнулено, и никто не мешает этого не делать, а выполнять по запросу, ведь так ?
Здравствуйте. Ситуация такая: мне по сети нужно включать и выключать 4-й выход в ПР-110. В Owen Logic адрес регистра дискретных выходов 0х0000. Адрес нулевого бита совпадает с адресом регистра. Можно сделать вывод, что размер регистра 1 байт, или нет?
В конфигурации ПЛК100 вставляю модуль "8 bit output module". Указал Register adress = 0. Однако не работает...:confused:
Вопросы:
1. Какой размер регистра дискретного выхода в ПР-110?
2. Какой модуль использовать в конфигурации ПЛК100 для управления выходами ПР-110 по сети?
С уважением, Михаил.
Как там в ПЛК не знаю (в конфигураторе),но если вы хотите записать в 4 выход ,то адрес его 3 ,а не 0 .размер регистра скорее всего 16бит .И тип банных должен быть БИТ,имхо, если вы работаете с битами ,а не словом
В конфигураторе ПЛК модуль ("8 bit output module") оформлен в виде отдельных битов и каждый бит настраивается отдельно, а в адресе регистра указывается адрес регистра слэйв устройства.
Я уже пробовал подключать модули 16 бит и 32 бита. Похоже, что напрямую управлять дискретными выходами ПР-110 по сети пока не реализовано. Или я ошибаюсь.
С плк не пробовал ,а вот с панели ИП320 все получалось ,значит дело не в ПР ,а в ПЛК (проекте или конфигураторе ,уж не знаю) .
Работать с модбасом учусь. Фрагмент проекта прилагаю.
Не понятно только почему в теме о ПР выкладываете проекты ПЛК
Уважаемый rovki. В том фрагменте проекта, что я выложил описана конфигурация для связи с ПР-110. Я смог наладить связь с сетевыми переменными, но не получилось управлять напрямую дискретными выходами ПР-110. В документации подробностей не нашел, методом тыка не получилось. Вот и уважаемый capzap говорит, что надо у специалистов по ПР спросить. А они должны быть тут, в теме о ПР.
Я управлял битами в ПР110 только из Панели ИП320 (настраивая панель из ее конфгуратора ) ,а не ПЛК,пример http://www.owen.ru/forum/showpost.ph...5&postcount=35 .А вашу конфигурацию ПЛК я да же посмотреть не могу .
Внесем ясность)
ПР работает и по RTU и по ASCII (автоопределение по первому запросу, далее ждет только того же типа, сбрасывается после перезагрузки).
в выходные регистры вы можете записывать что угодно однако реально будет применено значение из алгоритма а там при пустом проекте скрыто висят нулевые константы. Т.е. для управления выходами необходимо создать сетевую переменную и с помощью "Extract bit" привязать ее (переменной) биты к выходам.
Ровки, к сожалению, Ваш пример открыть не смог, у меня версия OWEN Logic не последняя, выдал сообщение: "Адресат вызова создал исключение". Но я предполагаю, что для связи с панелью Вы использовали создание сетевой переменной, но это не совсем то, о чем я спрашивал. Так и у меня получилось. Я имел в виду: Таблица адресов Modbus -> вкладка "Дискретные выходы". Это дало бы возможность, не меняя проект в ПР, по сети включить какой-либо выход. Ну да ладно, это мелочи. Сделаем через сетевую переменную.
Евгений Сергеевич уже внес ясность, что напрямую по сети управлять выходами не получится.
Подведем итог: в OWEN Logic в таблице адресов Модбас реально работают регистры сетевых входов и регистры сетевых выходов. Регистры дискретных выходов не работают. Регистры дискретных входов не проверял.
Если ошибаюсь, пусть меня поправят.
ПР- не модуль вывода ,что бы управлять его выходами из сети .Зачем он тогда ,точнее зачем его тогда интеллект? .Хотя задачи бывают разные .Главное что через сетевую переменную можно и то хорошо .
А какая проблема обновить ОЛ.?