PDA

Просмотр полной версии : ПР200



Страницы : 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15 16 17 18 19 20 21

Ревака Юрий
26.09.2016, 10:08
Все... Приконектился.

Я так понял ограничение касалось только использования переменной типа bool, при выборе int или float ограничений нет.

Jman
26.09.2016, 10:52
Я так понял ограничение касалось только использования переменной типа bool, при выборе int или float ограничений нет.

Ага, это я чет затупил немного.

Jman
26.09.2016, 11:07
Можно - ли подсветку дисплея сделать постоянной?

Сергей0308
26.09.2016, 11:18
Можно - ли подсветку дисплея сделать постоянной?

Уже ОЛ лень открыть:

26611

Можно!

Jman
26.09.2016, 11:21
Уже ОЛ лень открыть:

26611

Можно!
Спасибо не углядел. И еще такой вопрос по часам и дате. Как нули добавить, что бы не было 12:5:33 например.

Ревака Юрий
26.09.2016, 11:25
Спасибо не углядел. И еще такой вопрос по часам и дате. Как нули добавить, что бы не было 12:5:33 например.

Пока такого механизма нет, ну или я его не видел.

Pavel_
26.09.2016, 11:45
Спасибо не углядел. И еще такой вопрос по часам и дате. Как нули добавить, что бы не было 12:5:33 например.

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

http://www.owen.ru/forum/attachment.php?attachmentid=26614&d=1474878774

Можно сделать только с помощью элемента "динамический текст" забив в него 60 строк: 00,01,02 - 60.

petera
26.09.2016, 12:42
Я пытался решить эту проблему, разбив двухзначное число, на два числа и выводить их на экран, но и тут наткнулся на засаду - для целочисленного значения длинна строки не может быть меньше 2.

http://www.owen.ru/forum/attachment.php?attachmentid=26614&d=1474878774

Можно сделать только с помощью элемента "динамический текст" забив в него 60 строк: 00,01,02 - 60.

Я думаю, что два комбобокса вместо динамического текста помогут в этой ситуации

petera
26.09.2016, 12:54
Я думаю, что два комбобокса вместо динамического текста помогут в этой ситуации
Хотя у меня и для динамического текста тоже можно задать длину в один символ.
26624

????

Ревака Юрий
26.09.2016, 13:04
Общими усилиями возможно получится решить проблему отсутствующего "0", самый быстрый способ добавить один знак из динамического текста и если число меньше 10 высвечивать "0", осталось проверить не будет ли перекрытия от 2х -значного числа.

Pavel_
26.09.2016, 13:41
Написал выше сообщение (http://www.owen.ru/forum/showthread.php?t=17153&page=167&p=221574&viewfull=1#post221574), и потом решил проверить, а не появилась ли возможность в новом ОЛ (1.8.90), для целочисленного значения указать длину строки равную 1, и да, появилась, теперь ОЛ "не ругаецо...", но при указании длинны равной 1, значение на экране прибора не отображается!
Если указать длину равную 2, то число отображается но перед ним пробел(пустое знакоместо), по всей видимости при указании длинны равной 1, отрезается знакоместо для числа, а одно знакоместо, которое остается на экране, видимо предназначено для отображения знака +/-.

В итоге придумал лайфхак ))) оставив длину в 2 знакоместо и наложив элементы экрана друг на друга (но важно соблюдать порядок наложения):
http://www.owen.ru/forum/attachment.php?attachmentid=26636&stc=1&d=1474893850

("mm = m1,m2.tpl.zip" - удалить ".zip")

Ревака Юрий
26.09.2016, 13:55
И от меня вариант на скорую руку, в часах специально изменил порядок наложения, разницы нет.

Jman
26.09.2016, 16:53
Спасибо. С датой сделал аналогично, только год / 100. и добавил 20 в динамический текст. Еще такой вопрос. Вот приходят мне ошибки в Decimal. Например Авария сети, код 10. Как эту 10 интерпретировать в текстовую строку на дисплей? Все, отбой. Сделал.

Ревака Юрий
26.09.2016, 17:06
Спасибо. С датой сделал аналогично, только год / 100. и добавил 20 в динамический текст. Еще такой вопрос. Вот приходят мне ошибки в Decimal. Например Авария сети, код 10. Как эту 10 интерпретировать в текстовую строку на дисплей?

Ну так же через динамический текст, только надо смотреть какие номера у вас используются, чтоб не писать длинный перечень, если от 1 до 10 то 10 строк, номер выводимой строки=№ошибки которая содержится в переменной назначенной в свойствах.

melky
26.09.2016, 21:20
А если ошибки формируются битовой маской, как сделать так, чтобы для экрана ошибок выводился список ошибок на каждой строке своя ошибка ?
Не бегущей строкой а именно списком

Jman
27.09.2016, 11:57
Всем привет. Можно ли редактировать RTC из комбобокса например?

Ревака Юрий
27.09.2016, 12:40
А если ошибки формируются битовой маской, как сделать так, чтобы для экрана ошибок выводился список ошибок на каждой строке своя ошибка ?
Не бегущей строкой а именно списком

Ну например так:

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

Ревака Юрий
27.09.2016, 12:42
Всем привет. Можно ли редактировать RTC из комбобокса например?

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

Jman
27.09.2016, 13:43
Сами внутренние часы нет, а уставку для сравнения можно, но не через комбобокс, а через редактирование переменной в режиме INT.

А если сядет батарейка например? Невозможно будет выставить время в RTC?

Ревака Юрий
27.09.2016, 13:51
А если сядет батарейка например? Невозможно будет выставить время в RTC?

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

melky
27.09.2016, 14:04
Ревака Юрий некрасивый вариант, будет 1 и 5 ошибки и между ними пусто или Нет ошибок....

Ревака Юрий
27.09.2016, 14:12
Ревака Юрий некрасивый вариант, будет 1 и 5 ошибки и между ними пусто или Нет ошибок....


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

melky
27.09.2016, 14:37
Да, речь как раз чтобы ошибки шли подряд.

petera
27.09.2016, 15:28
Ревака Юрий некрасивый вариант, будет 1 и 5 ошибки и между ними пусто или Нет ошибок....

А как Вам такой вариант
1. Динамический текст.
26685
Первая (0) строчка пустая. Затем 16 строк с авариями.
2. Если аварий несколько, то
26686 26687
каждая выводится по очереди и отображается в течение 2 сек, затем отображается следующая в течение 2 сек и т.д.

petera
27.09.2016, 16:02
А для упакованного значения, например из сетевой переменной еще проще
26689

26690

Pavel_
27.09.2016, 16:20
в часах специально изменил порядок наложения, разницы нет.
Извините, но порядок наложения соблюдать так-же желательно...

http://www.owen.ru/forum/attachment.php?attachmentid=26693&d=1474982427
http://www.owen.ru/forum/attachment.php?attachmentid=26694&d=1474982439

Ревака Юрий
27.09.2016, 16:37
Извините, но порядок наложения соблюдать так-же желательно...

Хм, странно, я сейчас как не пытался, у меня всегда динамический текст оказывается сверху. И поэтому мне не удалось повторить перекрытие.:confused:

melky
27.09.2016, 16:39
Наложение соблюдать нужно, если младшие разряды выдаются через INT. так как он перетирает старший разряд, выводимый динамическим текстом.
petera вариант с выводом по очереди получше, если правильно понимаю, выводом списком сделать нельзя простыми средствами. Ваять уходящий в даль как в Звездных войнах разве что, но это тоже бред конечно....

з.ы. было бы неплохо иметь элемент - Список. Что-то вроде Динамического текста, только для строк булевые переменные 0 (не выводить) и 1 (выводить) ну и соответственно чтобы переменные, которые выводить шли потом по очереди порядка сортировки.

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

Jman
30.09.2016, 14:42
Здравствуйте. У меня такой вопрос. К аналоговому входу подключил термосопротивление. Вернее подкинул резистор на 2700 Ом. Вход настроил как 0 - 4000 Ом. Переменную передаю на дисплей как INT. На дисплее постоянно 9999. Читаю регистры по modbus. Выводит значение 2700. Куда нужно тыкнуть?

Ревака Юрий
30.09.2016, 14:47
Здравствуйте. У меня такой вопрос. К аналоговому входу подключил термосопротивление. Вернее подкинул резистор на 2700 Ом. Вход настроил как 0 - 4000 Ом. Переменную передаю на дисплей как INT. На дисплее постоянно 9999. Читаю регистры по modbus. Выводит значение 2700. Куда нужно тыкнуть?

Если на дисплее именно 4 разряда, по идее такого быть не должно, нужно посмотреть нет ли ограничения на вывод значения или может на дисплей выводится модифицированное значение выходящее за пределы 9999.

Jman
30.09.2016, 15:01
Сможете пожалуйста посмотреть набросок?

Jman
30.09.2016, 15:13
Все нормально, работает.

Ревака Юрий
30.09.2016, 15:29
Все нормально, работает.

Набросок еще не смотрел, но я так понял уже и не надо?:D

Jman
30.09.2016, 15:48
Да. Пришлось блок сравнения добавить, что бы мусор не выводился.

Ревака Юрий
30.09.2016, 16:27
Да. Пришлось блок сравнения добавить, что бы мусор не выводился.

А у Вас джампера установлены для 3 канала на режим сопротивления, по идее там мусора быть не должно, девятки у Вас могут появиться только в случае отключения сопротивления от входа ПР200, тогда в системе считается число 9999999, что и вызывает переполнение разрядов на экране.

rovki
30.09.2016, 16:42
Ребята подскажите ПИД без заморочек и простой .Нужно поддерживать температуру 100-120гр (+-1гр) на ТЭНах (9квт,2шт) ,выходит в диапазон температур где то 10мин .Если можно с нужными коэффициентами .Это нагревательный алюминиевый стол (1200х1300мм) с 27 ТЭН по 300вт ,а точнее два стола (сверху и снизу а посреди материал) ,раскинутых на 3 фазы (220в) .Управлять буду через ТТР ШИМом .А то нет времени на эксперименты ... Спасибо .

Jman
30.09.2016, 21:40
отключения сопротивления от входа ПР200, тогда в системе считается число 9999999, что и вызывает переполнение разрядов на экране. Ну так обрыв датчика контролировать.

Алексей Геннадьевич
03.10.2016, 07:06
Ребята подскажите ПИД без заморочек и простой .Нужно поддерживать температуру 100-120гр (+-1гр) на ТЭНах (9квт,2шт) ,выходит в диапазон температур где то 10мин .Если можно с нужными коэффициентами .Это нагревательный алюминиевый стол (1200х1300мм) с 27 ТЭН по 300вт ,а точнее два стола (сверху и снизу а посреди материал) ,раскинутых на 3 фазы (220в) .Управлять буду через ТТР ШИМом .А то нет времени на эксперименты ... Спасибо .

Так вам 2 ПИДа ставить по-любому придётся.
Мой чем не устраивает? http://www.owen.ru/forum/showthread.php?t=23453&page=4&p=200940#post200940

rovki
03.10.2016, 07:58
Да может одним обойдусь ,точность не критична и одним датчиком ...Спасибо

Алексей Геннадьевич
03.10.2016, 09:51
Да может одним обойдусь ,точность не критична и одним датчиком ...Спасибо
:confused:
У вас нагрев только с одной стороны стола?
И смотря какой материал- можно и перегреть/недогреть "бесконтрольную сторону"...

rovki
03.10.2016, 13:03
алюминевый слот из профиля 135х25 с отверстиями под тэны .каждый тэн 300вт ,на 1 стол 27 тэнов .Сам тэн в воздухе не может нагреться более 120гр (диаметр тэна 16мм-большая площадь отдачи ) ,длина тэна 1300мм,...и в пр0филе есть теплоотдача столу и материалу .я хочу выставлять температуру 100-120гр .

Vlad84
05.10.2016, 19:59
Здравствуйте! Подскажите, какого номинала сопротивление стоит в ПР200 на аналоговые входы? Мне надо с датчиками температуры ТСПУ-0104 использовать резисторы по 500 Ом. Спасибо.

Алексей Геннадьевич
06.10.2016, 08:37
Vlad84 А РЭ почитать?
Стр 12

Vlad84
06.10.2016, 15:32
Ну да, там 121 Ом. А как быть с подключением датчика, когда надо другое сопротивление, 500 Ом?

Ревака Юрий
06.10.2016, 15:37
Ну да, там 121 Ом. А как быть с подключением датчика, когда надо другое сопротивление, 500 Ом?

Посмотрел описание, выход 4-20 mA, ПР200 работает в таком диапазоне, зачем Вам еще что-то знать, или у Вас что-то особенное там?

Vlad84
06.10.2016, 16:51
В инструкции к датчику написано, что нагрузочный резистор должен быть 500 Ом. А тут 121. Это норм?

Ревака Юрий
06.10.2016, 17:11
В инструкции к датчику написано, что нагрузочный резистор должен быть 500 Ом. А тут 121. Это норм?

Если Вы о пункте 3.3 то мне кажется речь идет про Rмакс, но в любом случае можно поставить последовательно резистор.

Стажер
06.10.2016, 20:46
Добрый вечер, подскажите пожалуйста сколько времени будут храниться retain переменные в пр200, если пропало питающее напряжение?

Сергей0308
06.10.2016, 20:48
Добрый вечер, подскажите пожалуйста сколько времени будут храниться retain переменные в пр200, если пропало питающее напряжение?

Устанешь ждать, десятки лет!

Стажер
06.10.2016, 21:02
все, разобрался, я в счетчике не поставил сохранение значения, поэтому при пропадании напряжения счет начинался сначала. Спасибо

Vlad84
07.10.2016, 06:31
Зачем тогда ставить резистор внутрь, если надо последовательно всё равно ставить? Просто сейчас непонятно, ставить резистор, чтобы набрать требуемые 500 Ом для датчика 4...20 мА или просто подключать датчик ко входу без дополнительного резистора?

Сергей0308
07.10.2016, 06:39
Зачем тогда ставить резистор внутрь, если надо последовательно всё равно ставить? Просто сейчас непонятно, ставить резистор, чтобы набрать требуемые 500 Ом для датчика 4...20 мА или просто подключать датчик ко входу без дополнительного резистора?

Последовательно с датчиком ставят для уменьшения рассеиваемой мощности выходного элемента, может у вас написано не более 500 Ом, тогда и ставить ничего дополнительно не обязательно!

Ревака Юрий
07.10.2016, 09:16
Последовательно с датчиком ставят для уменьшения рассеиваемой мощности выходного элемента, может у вас написано не более 500 Ом, тогда и ставить ничего дополнительно не обязательно!

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

Vlad84
07.10.2016, 12:10
А, получается, я вместо внешнего нагрузочного резистора в разрыв цепи включаю вход 4...20мА ПР-200.

Ревака Юрий
07.10.2016, 14:20
А, получается, я вместо внешнего нагрузочного резистора в разрыв цепи включаю вход 4...20мА ПР-200.

Для ПР200 в инструкции есть схемы подключения для всех типов входов, так же джампера внутри прибора, для соответствующего входа, должны быть настроены на 4-20mA.

melky
07.10.2016, 19:04
Как организованы выходы ПР200 без аналоговых входов ? так же COM общий на 2 реле или все реле раздельные ?

все, нашел в РЭ, так же объединены по 2, жаль...

Сергей0308
07.10.2016, 19:23
Как организованы выходы ПР200 без аналоговых входов ? так же COM общий на 2 реле или все реле раздельные ?

все, нашел в РЭ, так же объединены по 2, жаль...

Не расстраивайтесь, можно поставить внешние реле хоть с 4 группами переключающих контактов, насколько мне известно большинство считает применение внешних реле и я в том числе наиболее практичным(ресурс не бесконечный, может и КЗ произойти) и будет Вам счастье, а в случае КЗ вашему счастью не будет конца!

melky
07.10.2016, 19:44
угу, а если одним внешним реле надо управлять через + а другим через минус ставить еще одно промежуточное ?

Сергей0308
07.10.2016, 19:56
угу, а если одним внешним реле надо управлять через + а другим через минус ставить еще одно промежуточное ?

Так контакты внешних реле куда угодно можно воткнуть, если на встроенных в ПР реле один контакт общий для 2 реле, так на внешнем все контакты реле никак не связаны, какие здесь могут быть проблемы?!

rovki
07.10.2016, 20:48
А не подскажет ли кто -какие программируемые реле в мире могут работать по интерфейсам RS485, bluetooth, wifi, ethernet(по выбору) ??? Что бы знать своих конкурентов в лицо так сказать ..И второй вопрос -какие еще интерфейсы Вы бы хотели видеть на борту ПР200?

игорь68
07.10.2016, 21:13
Француз Краузет миллениум и немец сименс(нет bluetooth)
У француза процессор как ПР2000 только там есть версии и с GSM .И все это в одной коробке. У немца 8 серии еще и GPS модуль есть. Софт у француза очень похож на еще на одно реле но марку не помню

rovki
07.10.2016, 21:25
Это что ли http://conrad.su/Kompaktnyj-upravljajuschij-LM-millenium-cd12-bez-dopolnitelnyh-komlektujuschih-crouzet-88970041-p-19046.html за 20килорублей ?
Так что то там я не увидел коммуникаций ...Там даже RS485 идет дополнительным модулем ...Я же спрашивал про встроенные коммуникации ..

melky
07.10.2016, 22:47
Сергей0308, проблемы стоимости управления слаботочными сигналами. Речь то не о лампочках 220В

игорь68
08.10.2016, 12:23
Это что ли http://conrad.su/Kompaktnyj-upravljajuschij-LM-millenium-cd12-bez-dopolnitelnyh-komlektujuschih-crouzet-88970041-p-19046.html за 20килорублей ?
Так что то там я не увидел коммуникаций ...Там даже RS485 идет дополнительным модулем ...Я же спрашивал про встроенные коммуникации ..

Посмотрите вот здесь http://www.crouzet-automation.com/products/em4-nano-plc/

melky
08.10.2016, 18:35
Из-за чего экран ПР может мерцать ? пропадают все надписи и мпеременные, потом появляются. Реле при это выполняет свои функции.
Сталкивались с таким ?

игорь68
08.10.2016, 21:08
Из-за чего экран ПР может мерцать ? пропадают все надписи и мпеременные, потом появляются. Реле при это выполняет свои функции.
Сталкивались с таким ?

проверяй питание

melky
08.10.2016, 22:54
хм, действительно может быть из-за питания, мерцание происходит только когда питается от генератора....

Стажер
11.10.2016, 09:19
может в курсе кто, есть возможность распечатать или сохранить отдельным файлом список используемых переменных в ОЛ?

melky
11.10.2016, 09:36
Пока нет, разработчики опрос проводили в каком виде это делать, вроде как договорились до csv и pdf, ну по крайней мере 1-й сделают и то хорошо

rovki
12.10.2016, 11:30
Подскажите ,бывалые ,какие первоночально ставить коэффициенты в ФБ ПИД регулятор (овен) .Имеем инерционность нагрева от20 до 120гр за 20мин .Это будет стол сушки ...Времени на большие эксперименты нет совсем .Хотя бы первоначальные значения ,а уж потом я подберу...Спасибо заранее.

Ревака Юрий
12.10.2016, 15:19
Подскажите ,бывалые ,какие первоночально ставить коэффициенты в ФБ ПИД регулятор (овен) .Имеем инерционность нагрева от20 до 120гр за 20мин .Это будет стол сушки ...Времени на большие эксперименты нет совсем .Хотя бы первоначальные значения ,а уж потом я подберу...Спасибо заранее.

А самонастройку не пробовали проводить, какие коэффициенты туда подбираются автоматически?

rovki
12.10.2016, 16:03
А как ее попробовать ,я поставил на угад в свойствах такие настройки .Сегодня включил - перескок Т составляет 6 град(+). При задании 100 или 110 .Когда падает температура ,то регулятор держит с точностью 1гр .

Ревака Юрий
12.10.2016, 16:26
А как ее попробовать ,я поставил на угад в свойствах такие настройки .Сегодня включил - перескок Т составляет 6 град(+). При задании 100 или 110 .Когда падает температура ,то регулятор держит с точностью 1гр .

OWENLogic->Помощь->Справка->Библиотека->Функциональный блок->Регуляторы->PID там приведено описание и скрины.

rovki
12.10.2016, 16:30
OWENLogic->Помощь->Справка->Библиотека->Функциональный блок->Регуляторы->PID там приведено описание и скрины.
Спасибо ,далеко запрятали ,сейчас посмотрю ,завтра попробую ...

energvk
12.10.2016, 20:50
Сегодня проект к ПР200-220.2(4) залил в ПР200-24.2(4). Всё работает. Надеюсь ничего страшного в этом нет?

Василий Кашуба
13.10.2016, 10:22
Сегодня проект к ПР200-220.2(4) залил в ПР200-24.2(4). Всё работает. Надеюсь ничего страшного в этом нет?
Главное, ни какое питание, а какая конфигурация.

energvk
13.10.2016, 10:45
По конфигурации идентичны.

Ревака Юрий
13.10.2016, 10:50
По конфигурации идентичны.

Значит все будет работать.

energvk
13.10.2016, 11:12
Отлично, спасибо. А не планируется в ближайшее время функция экспорта/импорта переменных. Копипаст из проекта ещё туда-сюда,но перебивать все переменные очень много времени отнимает

energvk
13.10.2016, 14:50
Столкнулся с непонятной проблемой. ПР200 в режиме мастера подключён к ПЧ Altivar ATV212. Не могу считать регистры.При этом запись идёт нормально. Перепробовал уже все варианты настроек мастера - не помогает. В чём может быть причина?

Ревака Юрий
13.10.2016, 15:04
Столкнулся с непонятной проблемой. ПР200 в режиме мастера подключён к ПЧ Altivar ATV212. Не могу считать регистры.При этом запись идёт нормально. Перепробовал уже все варианты настроек мастера - не помогает. В чём может быть причина?

Если можно напишите какие регистры, желательно описание на ПЧ где расписаны регистры, и настройки для ПР, если есть возможность, попробуйте считать данные регистры сторонним ПО без ПР и сравнить результаты, и еще, в чем проявляется невозможность считать регитры, нулевые значения или ошибки?

energvk
13.10.2016, 15:14
Пытаюсь считать регистры 64768 и 64769 (текущая частота и словосостояние). Получаю нулевые значения. ПЛК160 и ПЛК110[M01] читается без проблем. Регистр общих ошибок чтения - 0. Конкретно по регистрам привязывать не пробовал.
Прикладываю руководство (на английском правда).
27014

P.S. Запись в регистры 64000 и 64001 (словозадание и задание частоты) выполняется без проблем

Ревака Юрий
13.10.2016, 15:46
Конкретно по регистрам привязывать не пробовал.


Не совсем понял, а как происходит чтение или на чем основан вывод что регистр не читается?

energvk
13.10.2016, 16:00
В настройке мастера привязаны переменные к Статус и Опрос (опрос всегда = 1). Соответственно Статус всегда = 0, значения регистров также = 0. Но у конкретных регистров также есть команды на чтение/запись + Статус. Вот этот Статус я не привязывал к переменной. Сейчас привязал, пойду проверю.

melky
13.10.2016, 16:08
energvk не пробовали читать их раздельно, ну и посмотреть логером какая идет посылка ?

Судя по документации Альтивар не поддерживает групповых запросов по данным адресам, чтение 0х03 один WORD.

Ревака Юрий
13.10.2016, 16:17
В настройке мастера привязаны переменные к Статус и Опрос (опрос всегда = 1). Соответственно Статус всегда = 0, значения регистров также = 0. Но у конкретных регистров также есть команды на чтение/запись + Статус. Вот этот Статус я не привязывал к переменной. Сейчас привязал, пойду проверю.

А какой командой читаете, попробуйте без статусов, не посылается ли туда команда на запись. Скрин настроек переменных ПР ускорит процесс.

rovki
13.10.2016, 18:19
Попробовал автонастройку ФБ ПИД ,стало лучше ,потом подправил чуть в ручную стало совсем хорошо +-1% ,а было 3 ..

energvk
13.10.2016, 18:46
Всё, спасибо, разобрался. Был слишком маленький таймаут (нолик к 5 мс потерялся :rolleyes:)

Jman
14.10.2016, 09:08
Всем привет. Скажите пожалуйста, если подключить термосопротивление 50М, нужно-ли калибровать аналоговый вход? Как вообще его от масштабировать?

melky
14.10.2016, 09:17
так макросы посмотрите, есть там для ПР200 макрос под 50М.

А отмасштабировать поможет макрос SCALE_R, capzap делаал для ПР-ки, где-то в темах про 114-й пробегал.

Jman
14.10.2016, 09:40
так макросы посмотрите, есть там для ПР200 макрос под 50М.

А отмасштабировать поможет макрос SCALE_R, capzap делаал для ПР-ки, где-то в темах про 114-й пробегал.

Если у вас есть, не могли бы в этой ветке скинуть, перелопатил ветку 114, найти их не могу.

melky
14.10.2016, 10:42
Так а зачем вам масштабировать если макрос 50М на выходе дает температуру ?

А так макрос их есть у меня :) странно, что его до сих пор не прикрепили в общей ветке с указанием ссылки на оригинальный пост capzap
я его уже раз несколько тоже выкладывал...

Jman
14.10.2016, 10:45
Спасибо. У меня еще такой вопрос. Вот у меня на 8 дискретных входов подаются аварии. Как мне текст выводить в одном текстовом поле разных аварий. Ну например на 5й вход пришел сигнал, я написал авария 5, но если сработает другая авария, то я вывожу ее уже в другом текстовым поле вместе с текущей, которая пришла на 5 вход.

melky
14.10.2016, 10:58
capzap то, что переделали из oscat я помню, вы как бы автор переноса макроса для ОЛ :)

http://www.owen.ru/forum/showthread.php?t=12687&p=123611&viewfull=1#post123611 - вот нашел оригинальный ваш пост....

melky
14.10.2016, 11:05
Jman сложноватая задача, когда аварий несколько. Тут пробегал макрос логгера. Называется Фиксатор. Но памяти есть много...

У меня при одной аварии происходит останов и я применяю такую связку BitToByte а на выходе CD32, будет показана всегда старшая авария но одна. так как при любой происходит останов, то 1 на входе BtB всегда одна, так что пока устраивает...
А вот для нескольких пока не придумал как сделать менее затратно. Думаю использовать макрос ППЗУ, в первую ячейку записывать время в Unix, во вторую (или второй ППЗУ) тип аварии и менять их с периодом на экране ПР.

з.ы. жду когда разработчики сделают системную переменную для экранов... :)

Jman
14.10.2016, 11:23
Я сделал при помощи суммирования... От 0 до 8. И в журнале в зависимосте от аварии меняю текст. Но вот как все показать, это да =) Можно в принципе тернарными условиями перебрать. Подумаю.

melky
14.10.2016, 11:28
Jman тут больше проблема не в том, как сохранить, а как отобразить. Так как есть некоторые ограничения по выводу на экран.
1. Пока только с паузой показывать последовательно
2. сделать "простыню" на одном экране нет события или есть для всех аварий.

Василий Кашуба
14.10.2016, 12:03
Jman тут больше проблема не в том, как сохранить, а как отобразить. Так как есть некоторые ограничения по выводу на экран.
1. Пока только с паузой показывать последовательно
2. сделать "простыню" на одном экране нет события или есть для всех аварий.
И третий вариант, в одном окошке писать слово авария, а во втором №ХХ аварии.

Jman
14.10.2016, 12:05
А как макрос scale_r1 работает. Зачем вх_мин/макс и выход мин/макс, что за данные? Константные, температура или сопротивление?

Алексей Геннадьевич
14.10.2016, 12:08
Спасибо. У меня еще такой вопрос. Вот у меня на 8 дискретных входов подаются аварии. Как мне текст выводить в одном текстовом поле разных аварий. Ну например на 5й вход пришел сигнал, я написал авария 5, но если сработает другая авария, то я вывожу ее уже в другом текстовым поле вместе с текущей, которая пришла на 5 вход.
Можно через комбобокс... но 256 строк заполнять для всех комбинаций...:(
Лучше битовыми переменными выводить в одну строку- так проще будет. С общим переходом на экран аварий по изменению переменной.

Василий Кашуба
14.10.2016, 12:08
А как макрос scale_r1 работает. Зачем вх_мин/макс и выход мин/макс, что за данные? Константные, температура или сопротивление?
Это нижний и верхний предел одной переменной преобразуется в другую переменную, с новым нижним и верхним пределами.

melky
14.10.2016, 12:09
Василий Кашуба а надо номерА аварий.... а лучше список аварий если их 2 и более.

Jman ну как capzap и писал, это аналог LIN_TRAFO. Есть вход с датчика, вх_мин/макс говорят о пределе входа, например 0В и 10В, выход_мин/макс это то, что вы хотите видеть вместо мин входа и макс входа например -40 градусов и 100 градусов.
Тогда при 0В на входе у вас будет -40гр на выходе при 10В на входе будет 100 гр на выходе. Ну и все промежуточные значения будут соответствовать линейке.

Василий Кашуба
14.10.2016, 12:15
Василий Кашуба а надо номерА аварий.... а лучше список аварий если их 2 и более.
Так просуммируйте их в двоичной системе и выводите на экран сумму.

melky
14.10.2016, 12:20
Василий Кашуба так это не кошерно для простого оператора :) беги потом ему рассказывай, что надо проверить каждый бит на 1 и определиться сколько у него аварий и каких :)

petera
14.10.2016, 12:28
Спасибо. У меня еще такой вопрос. Вот у меня на 8 дискретных входов подаются аварии. Как мне текст выводить в одном текстовом поле разных аварий. Ну например на 5й вход пришел сигнал, я написал авария 5, но если сработает другая авария, то я вывожу ее уже в другом текстовым поле вместе с текущей, которая пришла на 5 вход.


Василий Кашуба так это не кошерно для простого оператора :) беги потом ему рассказывай, что надо проверить каждый бит на 1 и определиться сколько у него аварий и каких :)

Здесь есть макрос http://www.owen.ru/forum/showthread.php?t=17153&p=221769&viewfull=1#post221769
с динамическим текстом

Jman
14.10.2016, 12:55
Это касается напряжения? А если датчик 50М?

melky
14.10.2016, 13:10
макрос датчика 50М уже выдает вам температуру, зачем вам еще масштабировать ?

Jman
14.10.2016, 13:27
макрос датчика 50М - а где этот макрос можно найти? Это же не scale_r1 как вроде?

Василий Кашуба
14.10.2016, 13:32
макрос датчика 50М - а где этот макрос можно найти? Это же не scale_r1 как вроде?
В теме обсуждение макросов ОЛ. Макросы в онлайн базе OWEN Logic

Jman
14.10.2016, 14:33
Спасибо. Разобрался... У меня почему-то в OL не была активная строка в контекстном меню -> Онлайн база макросов. Перезапустил OL - Все заработало.

Jman
14.10.2016, 16:32
А можно-ли что-то на подобии журнала аварий вывести? Скажем 5-6 retain переменных запоминать и делать список.

Василий Кашуба
14.10.2016, 17:42
А можно-ли что-то на подобии журнала аварий вывести? Скажем 5-6 retain переменных запоминать и делать список.
Внимательно читайте предыдущие посты. http://www.owen.ru/forum/showthread.php?t=17153&p=223739&viewfull=1#post223739

energvk
16.10.2016, 02:16
Дорой ночи! Вопрос: как можно отслеживать состояние связи modbus master? Например при опросе преобразователя частоты, при отсутствии его в сети переменная состояния связи никак не меняется?

Ревака Юрий
17.10.2016, 09:58
Дорой ночи! Вопрос: как можно отслеживать состояние связи modbus master? Например при опросе преобразователя частоты, при отсутствии его в сети переменная состояния связи никак не меняется?

Добрый день! Прикрепите, пожалуйста, скриншот как Вы используете переменную состояния связи? Я сейчас проверил со статусом устройства, срабатывает при записи переменной, когда используется флаг записи переменной, при сдергивании разъема, переменная статус устройства обнуляется.

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

energvk
17.10.2016, 10:36
У меня также как у вас на скрине. Отличие только в том, что мне нужно знать статус не при записи, а при чтении.


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

Я правильно понимаю, что если при включении ПР, устройство обмена физически отключено от порта (ну либо по каким-либо причинам связь нарушена), то мы об этом не узнаем? То есть ошибка связи будет отображаться только если связь была, а потом с ней какие-то сбои? Также не понятно, статус ошибки только при записи в устройство работает, при чтении нет?

Ревака Юрий
17.10.2016, 10:40
У меня также как у вас на скрине. Отличие только в том, что мне нужно знать статус не при записи, а при чтении.



Я правильно понимаю, что если при включении ПР, устройство обмена физически отключено от порта (ну либо по каким-либо причинам связь нарушена), то мы об этом не узнаем? То есть ошибка связи будет отображаться только если связь была, а потом с ней какие-то сбои? Также не понятно, статус ошибки только при записи в устройство работает, при чтении нет?

Чтение не проверял, сейчас попробую соорудить что-нибудь.

С переменной на чтение еще проще, статус устройства меняет свое состояние при каждом обрыве связи, вывел сначала читаемую переменную на экран, затем удалил с экрана, оставил только в схеме, статус реагирует сразу. Если нет переменных для чтения, и запись происходит по изменению, то да при включении питания ПР не увидит обрыв связи. Ну тут вариантов особо и нет, что бы получить состояние устройства, нужно послать ему "ping", если ничего не отсылается, то ничего и не меняется. В реальной системе я думаю нет сложности читать какой-то регистр, и по нему мониторить связь с устройством.

energvk
17.10.2016, 11:12
Чтение не проверял, сейчас попробую соорудить что-нибудь.

С переменной на чтение еще проще, статус устройства меняет свое состояние при каждом обрыве связи, вывел сначала читаемую переменную на экран, затем удалил с экрана, оставил только в схеме, статус реагирует сразу. Если нет переменных для чтения, и запись происходит по изменению, то да при включении питания ПР не увидит обрыв связи. Ну тут вариантов особо и нет, что бы получить состояние устройства, нужно послать ему "ping", если ничего не отсылается, то ничего и не меняется. В реальной системе я думаю нет сложности читать какой-то регистр, и по нему мониторить связь с устройством.

По записи по изменению понятно. По чтению не очень. У меня сейчас физически не подключен ПЧ. Ошибок нет при этом
27055

Ревака Юрий
17.10.2016, 11:20
По записи по изменению понятно. По чтению не очень. У меня сейчас физически не подключен ПЧ. Ошибок нет при этом
27055

Я статус использую для устройства.

energvk
17.10.2016, 11:30
Я статус использую для устройства.

Да у меня так и было изначально. Это я уже в процессе экспериментов убрал.

27057
27058

Ревака Юрий
17.10.2016, 11:46
Да у меня так и было изначально. Это я уже в процессе экспериментов убрал.


И что, бит при обрыве связи никак не изменяется?

energvk
17.10.2016, 11:52
Вообще когда тестил в связке с ПЧ - не менялся. Сейчас физически ПЧ нет, уехал на объект, проверить не могу. Но при отсутствии ПЧ - бит не меняется. Хотя на мой взгляд должен, если он срабатывает только при обрыве связи, а не при её отсутствии - это некорректно. Для примера: на объекте отключилось питание. После включения ПЧ по каким-либо причинам не вышел на связь - мы об этом не узнаем по этому биту получается.

Ревака Юрий
17.10.2016, 12:14
Вообще когда тестил в связке с ПЧ - не менялся. Сейчас физически ПЧ нет, уехал на объект, проверить не могу. Но при отсутствии ПЧ - бит не меняется. Хотя на мой взгляд должен, если он срабатывает только при обрыве связи, а не при её отсутствии - это некорректно. Для примера: на объекте отключилось питание. После включения ПЧ по каким-либо причинам не вышел на связь - мы об этом не узнаем по этому биту получается.

Я проверял все описанное выше в связке ПР200 и ModBus Slave на ПК через преобразователь, самый надежный вариант при котором у меня бит статуса изменялся всегда-добавить в сетевые устройства реальный адрес регистра ПЧВ на чтение, можно его никуда не заводить, в таком варианте бит статуса у меня изменяется мгновенно если пропадает связь независимо от того записываем мы в устройство данные или нет, по изменению состояния или с использованием флагов, также и при перезапуске ПР200.

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

energvk
17.10.2016, 13:21
а какой программкой на ПК вы это делали?

Хотя всё равно непонятно. Допустим программкой попробую, но не могу понять почему сейчас при физически отключенном ПЧ нет ошибки связи

Ревака Юрий
17.10.2016, 14:37
а какой программкой на ПК вы это делали?

Хотя всё равно непонятно. Допустим программкой попробую, но не могу понять почему сейчас при физически отключенном ПЧ нет ошибки связи

Программа ModBus Slave, по логике должно работать одинаково что с ПК что с реальным ПЧ.

energvk
17.10.2016, 15:46
Подключился, но связи не наблюдаю. С настройками видимо что-то не так, не могу разобраться

Ревака Юрий
17.10.2016, 15:52
Подключился, но связи не наблюдаю. С настройками видимо что-то не так, не могу разобраться

Параметры связи должны совпадать, далее выставляем адрес слейва в программе и задаем номера регистров которые читаем или пишем с ПР200.

Допустим если взять адреса которые приведены на прошлой странице, берем 2 адреса подряд выставляем их в Setup->Read/Write Definition F8 далее записываем туда значения и принимаем их на ПР200, на экране допустим.

melky
17.10.2016, 16:31
совпадают параметры связи или нет, запущенный ПР с отключенным прибором об этом не ведает....
Если в ПР настраиваем чтение некоего прибора, а его нет, должен же быть статус что прибора нет на связи ?

rovki
17.10.2016, 16:33
И не только при чтении ,но и записи мастер должен определять отсутствие слейва по таймауту .

Ревака Юрий
17.10.2016, 16:41
совпадают параметры связи или нет, запущенный ПР с отключенным прибором об этом не ведает....
Если в ПР настраиваем чтение некоего прибора, а его нет, должен же быть статус что прибора нет на связи ?

Ну собственно да, если бит равен 0, значит обмена с устройством нет.

Ревака Юрий
17.10.2016, 16:44
И не только при чтении ,но и записи мастер должен определять отсутствие слейва по таймауту .

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

melky
17.10.2016, 16:51
так а кто ж пишет в устройство, которого нет ?
так, читаешь что-то из устройства постоянно, знаешь что оно на связи, при необходимости записать - пишешь. Если устройство отвалилось, то смысл в него писать не важно в каком режиме.?

rovki
17.10.2016, 17:12
Если нет обмена ,то нет и ошибки .таймер взводится по команде записи и если ответ от слейва не приходит вовремя (например 1сек) ,то флаг аварии .

rovki
17.10.2016, 17:14
так а кто ж пишет в устройство, которого нет ?
так, читаешь что-то из устройства постоянно, знаешь что оно на связи, при необходимости записать - пишешь. Если устройство отвалилось, то смысл в него писать не важно в каком режиме.?
О том что отвалилось устройства не узнаешь пока не попробуешь записать\прочитать ..

melky
17.10.2016, 17:54
Так я и говорю, что его всегда надо читать, хоть одну переменную. А зная, что оно не читается, нет смысла и писать...

Как проверка связи на компах, пингуем, есть пинг все отлично, нет, ну на нет и суда нет или орем и кого-нить зовем :)

rovki
17.10.2016, 18:24
Так это от задачи и устройства зависит ...иногда нужно только писать в данный регистр .

energvk
17.10.2016, 21:42
Ну собственно да, если бит равен 0, значит обмена с устройством нет.

Тогда наверное это всё меняет, у меня то бит и равен 0. Устройства нет - бит не взведен. Я думал наоборот он взводится при отсутствии связи. Плохо, что пока не проверить.

melky
18.10.2016, 10:27
ПР200 потянет считать сигнал с частотой 300 Гц или забыть ?

Ревака Юрий
18.10.2016, 10:54
ПР200 потянет считать сигнал с частотой 300 Гц или забыть ?

Добрый день!
Забыть:)

melky
18.10.2016, 10:57
жаль конечно :) но лучшего устройства пока не нашел.
А то тут задачка прилетела от знакомого, измерять скорость ветра, а дискретные датчики гораздо дешевле, чем с выходом 4-20мА, но придется брать их.

Ревака Юрий
18.10.2016, 10:58
жаль конечно :) но лучшего устройства пока не нашел.

А что за задача и какая модификация ПР?

melky
18.10.2016, 11:27
ПР200 с аналоговыми входами планируется.
Задача по отключению и торможению ветрогенератора при усилении ветра + управление неприоритетными нагрузками при питании от возобновляемых источников по току и времени.

в автономном электропитании здания.

Ревака Юрий
18.10.2016, 11:46
ПР200 с аналоговыми входами планируется.
Задача по отключению и торможению ветрогенератора при усилении ветра + управление неприоритетными нагрузками при питании от возобновляемых источников по току и времени.

в автономном электропитании здания.

По модификации меня в первую очередь интересовало входа ПР200 будут принимать 24 постоянного тока или ~220. Если 220 то однозначно нет, что касается постоянки, то тут много факторов и время фильтра и загруженность программы. Судя по намеченному алгоритму программа будет не самая простая. Может сразу посмотреть в сторону счетчика по RS485 и дальше уже спокойно работать с данными в ПР не опасаясь за пропуски сигнала и тому подобные вещи.

melky
18.10.2016, 12:20
Нет, модификация будет именно 24В.

Датчик будет с выходом 4-20 мА, так проще, не надо оглядываться на ресурсы.
Программа будет скорее всего действительно сложная вся целиком. Раз у меня программа автозапуска генератора на 4-ом генераторе выросла до 20% памяти для ПР200. Пока не пробовал засунуть ее в ПР110 или 114 для проверки.
А тут еще ветряк добавится и еще что-то...

Ревака Юрий
18.10.2016, 12:31
Нет, модификация будет именно 24В.
Датчик будет с выходом 4-20 мА, так проще, не надо оглядываться на ресурсы.


Так а 300Гц как и куда, или 4-20 это вместо импульсов, тогда думаю проблем быть не должно.

melky
18.10.2016, 12:36
Датчики скорости ветра есть с выходом 4-20мА, 0-5В и импульсные.

до 30 м/с с дискретностью 0,1 м/с если правильно понимаю, то при скорости ветра 30 м/с будет 300 импульсов с датчика. то есть 300 Гц.
Так что проще чуть переплатить и купить датчик с токовым выходом и не париться о пропусках.

zamnarzanom
19.10.2016, 08:19
тут зависит на сколько переплачивать.
108км/ч такая скорость будет очень редко...
или поставь делитель частоты на 2 или на 4, уменьшится точность измерения, но и частота упадёт до 150 и 75Гц.

ILich
19.10.2016, 09:06
Журнал Аварий еще актуален?
есть вариант несколько динамических текстов с выбором по значению переменной. примерно так получилось (строка выводит аварию с большим значением, следующая с меньшим и т.д. если значение = 0 текст не выводится)
2709027091

АААА как программу выкладывать? (на железе еще не пробовал, так на вскидку накидал программку её еще дорабатывать можно или в макрос закинуть)

melky
19.10.2016, 09:17
zamnarzanom смысл ставить делитель, при наличии датчиков с 4-20мА не вижу.

ILich вы проторенным путем идете :)
http://www.owen.ru/forum/showthread.php?t=25068&p=223832&viewfull=1#post223832 вот макрос для этого, идея от petera, его вариант есть в заголовке темы где-то

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

и на счет сортировки тоже макросы были

ILich
19.10.2016, 09:26
melky
Так пустые строки завсегда внизу будут. до них можно и не листать.

melky
19.10.2016, 09:28
Это да, можно применить сортировку и выводить, но тогда при значительном количестве аварий, например 16 штук, надо делать 16 одинаковых динамических текстов.
Что тоже достает.

ILich
19.10.2016, 09:36
так сортировка уже по переменным, мороки много, конечно же, но быстро и просто это не всегда про ОВЕН. некоторых логических блоков просто нет в ОЛ (таких как например у сигнетикса) приходится выкручиваться.
ИМХО с 16-ю авариями программма будет выглядеть огромной (и это только сортировка по старшенству).
сталкивался с автоматизацией котельного оборудования (котел с шурующей планкой) и автоматизацией Вентиляции, там максимум по 5-8 аварий.

melky
19.10.2016, 09:59
Я не говорю, что все 16 будут одновременно, я говорю о том, чтонет простых способов отсортировать список, чтобы последовательно отобразить 3, 7 и 12 аварию.
А не было так. пусто, пусто, авария, пусто, пусто, пусто, авария и так далее...

ILich
19.10.2016, 10:06
я за то и "смастырил" программку, там 4 аварии и 2 строки (должно 4 как и переменых А1-А4) к переменным привязанные А1, А2, вся программа присваивает каждой аврии (булевское значение) числительное значение с номером АV1-АV4 или просто 0 если аварии нет, а потом в переменную А1 записывает значение максимальное из имеющихся, в А2 выбирается значение с меньшим номером и т.д. так при 3-х авариях (1-я, 2-я и 4-я) будут высвечиваться текстом 3 первых строки с авариями по старшинству (1 строка - 4-я авария; 2 строка - 2-я авария; 3 строка - 1-я авария.) а дальше пустота.

ILich
19.10.2016, 10:07
каюсь, "смастырил" тут самое точное определение, программа еще сырая и выполнена за 15 минут. тут еще работать и работать, но принцип играбельный.

ILich
19.10.2016, 10:13
melky, Хотелось бы попросить Вас опробовать в железе, под рукой из ОВЕН есть только ОЛ. в симуляции все работает, а как будет в железе не ведаю и посмотреть не могу.

melky
19.10.2016, 10:18
ну у меня есть пока ПРка под рукой.
Но я бы смотрел в сторону сортировки, чтобы не мудрить....

Ревака Юрий
19.10.2016, 10:18
некоторых логических блоков просто нет в ОЛ (таких как например у сигнетикса) приходится выкручиваться.


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

ILich
19.10.2016, 10:38
Добрый день.
Напишите пожалуйста, каких именно блоков Вам не хватает, может получится что-то придумать.
хотелось бы выбор числительных не из 2-х а более 3,4,5... вариантов по номеру входа (у SMlogic подсмотрел, работа с экаранами у них кстати тоже на уровне я бы перенял), сравнение чисел (выбор большего из 3,4,5,6... чисел). в общем комбинаторика.

Ревака Юрий
19.10.2016, 10:45
хотелось бы выбор числительных не из 2-х а более 3,4,5... вариантов по номеру входа .

Возможно это Вам подойдет MXF (Мультиплексор переменных типа FLOAT, описание макроса (http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/OnlineMacroes/Analog%20conversion/MXF.pdf))

Ревака Юрий
19.10.2016, 10:53
мне кажется в ОЛ не хватает, отдельных компонентов текстовых меток, чтоб создать один список и на экране отображать два и более его экземпляров. А сейчас получается

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

ILich
19.10.2016, 11:55
Возможно это Вам подойдет MXF (Мультиплексор переменных типа FLOAT, описание макроса (http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/OnlineMacroes/Analog%20conversion/MXF.pdf))
макрос это прекрасно, но хотелось бы расширить именно базу стандартных элементов. ведь и RS, и D - триггер можно собрать на логических элементах в отдельный макрос, а они (триггеры) в ОЛ уже стандартно имеются. для новичков проще будет, да и для опытных меньше заморочек.

ILich
19.10.2016, 12:00
эту страницу прочтите http://www.owen.ru/forum/showthread.php?t=7023&page=470&p=194793#post194793
тут выбор номера входа, а смысл выдавать наибольшее число и поданных на разные входы.

Алексей Геннадьевич
19.10.2016, 13:03
макрос это прекрасно, но хотелось бы расширить именно базу стандартных элементов. ведь и RS, и D - триггер можно собрать на логических элементах в отдельный макрос, а они (триггеры) в ОЛ уже стандартно имеются. для новичков проще будет, да и для опытных меньше заморочек.

:)
Ломал по этому поводу копья... Лог. элементы с возможностью добавления и инверсии входов-выходов.
Rovki ФБ ПЗУ придумал - почему-то не взлетел. Потом я макросы с такой-же функциональностью сделал.
Видимо тут путь особый. Через макросы.

ILich
19.10.2016, 13:13
на "пальцах" можно объяснить что Вы написали, лучше в картинках.

Я правильно понял этот рисунок (http://www.owen.ru/forum/attachment.php?attachmentid=27090&d=1476857086)?

в принципе да, только количество переменных (А1, А2) ровняется количеству строк и количеству аварий (входов) соответственно. тогда у Вас будет журнал аварий с отображением построчно без пустых строк между авариями.

ILich
19.10.2016, 13:19
capzap,
"на пальцах" выводить аварии с 1 по n, построчно, без пробелов, если возникла авария с номером 2 и авария №4, должно отображаться 2 строки подряд в первой идет авария с большим номером во второй с меньшим (а не отображение 1-й пустой строки, потом второй с аврией, третьей пустой и 4-й с аварией). "Журнал Аварий" если вкратце. так доступно?

ILich
19.10.2016, 13:22
ну код для А3 и А4 будет еще меньше, но не как у Вас в любом случае

15 минут обеденного времени и попытки вспомнить ФБ ОЛ, где что есть и что должно быть. :rolleyes:, просто вопрос идет не на 4-5 аварий, а если их порядка 18? то и строк 18, и переменных, и программа будет, даже в вашем варианте, не маленькая и исчерчена линиями связи.

ILich
19.10.2016, 13:31
журнал аварий это когда список состоит отсортированный по мере возникновения событий, а не по порядковому номеру входа. Из Вашего примера, когда каждому входу Вы присваиваете некий приоритет можно обойтись и без сортировки, как это проще сделать я показал
во всяком случае, и такую мелочь приходится собирать макросами, когда в том же SMLogiс, это уже вшито причем с сортировкой по времени. в ПР200 еще есть сложности с отображением на экран. надеюсь это будут править, прибор очень понравился.

ILich
19.10.2016, 13:41
#1750
Jman
" Спасибо. У меня еще такой вопрос. Вот у меня на 8 дискретных входов подаются аварии. Как мне текст выводить в одном текстовом поле разных аварий. Ну например на 5й вход пришел сигнал, я написал авария 5, но если сработает другая авария, то я вывожу ее уже в другом текстовым поле вместе с текущей, которая пришла на 5 вход. "

на него ответ был.

melky
19.10.2016, 13:57
ILich Идея думаю понятна, осталось только макрос сортировки сделать на 32 ячейки.

http://www.owen.ru/forum/attachment.php?attachmentid=27118&d=1476874597

melky
19.10.2016, 14:05
Так я для примера, второй макрос это так, чтобы выхода прицепить от второго BitToByte :)

Конечно лентяй, а еще я мороженное за ILich кушать буду :)

AI!
19.10.2016, 15:45
эту страницу прочтите http://www.owen.ru/forum/showthread.php?t=7023&page=470&p=194793#post194793мой вариант...
http://www.owen.ru/forum/showthread.php?t=7023&p=98104&viewfull=1#post98104
без вложенных макросов... (их тогда просто не было)

PS у меня кол-во "comparator"-ов меньше...

Владимир Ситников
19.10.2016, 16:20
мой вариант...
http://www.owen.ru/forum/showthread.php?t=7023&p=98104&viewfull=1#post98104
без вложенных макросов... (их тогда просто не было)

Так у вас целочисленная, а у capzap float версия. Давайте-ка без fSEL'а. Конечно, можно "без вложенных макросов", но это та ещё дичь будет.

Вариант capzap'а гораздо проще окинуть взглядом, и:
1) Понять что он делает
2) Дополнить для большего количества связей
3) Сократить лишние входы (если не нужны)
4) Мысленно проверить, что он "правильно работает"


PS у меня кол-во "comparator"-ов меньше...
Один же всё равно лишний остался?
Для 6-и элементов достаточно 12-и comparator'ов (http://www.owen.ru/forum/showthread.php?t=7023&page=470&p=194787&viewfull=1#post194787).

ILich
19.10.2016, 16:48
ILich Идея думаю понятна, осталось только макрос сортировки сделать на 32 ячейки.

http://www.owen.ru/forum/attachment.php?attachmentid=27118&d=1476874597

Это просто прекрасно. остался еще один малый недостаток - писать все 8(16...+100500) аварий на 8(16...+100500) строках динамического текста, с присвоением значений и переменных и не запутаться. если его поборете, можете за меня и ТОРТ с ликером скушать (на здоровье и для мозгов полезно). для HOVAC точно хватит с головой, для управления 2-мя, 3-мя насосами или котлом автоматическим тоже (там не более 8 аварий надо будет), так глядишь и полный "Журнал событий" можно разработать с записью по времени (можно и в энергонезависимую) и сбросом по команде.

ЗАЧЁТ и УВАЖУХА :D

ILich
19.10.2016, 16:50
мелкий, Вы лентяй, вместо того чтоб расширить макрос сортировки до восьми входов/выходов, добавили в проект еще один на шесть :)

это только для примера. так можно (хотя главное условие при этом не выполняется аварии 3,6 и 7, будут с пробелом в 4 пустых строки)

МегаВольт
19.10.2016, 17:00
Подскажите пожалуйста, как подключать ПР200 к компьютеру? В инструкции написано, что его нужно подключать к COM-порту, с помощью USB- кабеля. Это как?
То есть , насколько я понимаю, во-первых, на компе должен быть COM-порт. А во- вторых, чтобы подключить к нему USB-кабель- что, нужен переходник?

ILich
19.10.2016, 17:10
Подскажите пожалуйста, как подключать ПР200 к компьютеру? В инструкции написано, что его нужно подключать к COM-порту, с помощью USB- кабеля. Это как?
То есть , насколько я понимаю, во-первых, на компе должен быть COM-порт. А во- вторых, чтобы подключить к нему USB-кабель- что, нужен переходник?

просто необходимо подключть USB кабель к USB портам ПР200 и ПК (надеюсь не перепутаете ) поставить диск в CD-rom (какой я старый...) включить ПР200, установить драйвера с диска... и ВУАЛЯ

ILich
19.10.2016, 17:12
Подскажите пожалуйста, как подключать ПР200 к компьютеру? В инструкции написано, что его нужно подключать к COM-порту, с помощью USB- кабеля. Это как?
То есть , насколько я понимаю, во-первых, на компе должен быть COM-порт. А во- вторых, чтобы подключить к нему USB-кабель- что, нужен переходник?

COM порт в данном случае будет виртуальным через USB. его найдете в диспетчере устройств Windows. на Linux не ставил не знаю как.
успехов Вам.

ILich
19.10.2016, 17:25
у меня так же для целочисленных, сейчас ставил на пять минут гонять оба макроса через ГСЧ, ошибок по совпадению не было, сортируют одинаково

ЗЫ хотя да, понять где компараторы сложновато без употребления

а усложнять задачу будем? привязка ко времени с записью в архив события (хотя бы номера события). часы в ПР200 вшиты, возможность значит есть. :rolleyes:

melky
19.10.2016, 17:53
МегаВольт подключать к USB, в ОС посмотреть на какой СОМ порт он присел, выбрать в программе этот СОМ порт.

ILich я так подумал, а зачем нам вообще сортировать целочисленные значения для отображения аварий ?

Вот вариант 2, Всего будет выводится до 8 СТАРШИХ аварий, надо больше, надо добавлять выходов или смотрите пример как выводить иначе :)

Запутаться там НЕВОЗМОЖНО, редактируем динамический текст, присваиваем переменную, потом копипаст и меняем переменную.

Блин, не успел пример сбацать, выложу из дома....

МегаВольт
19.10.2016, 18:26
Что- то все равно- не понятно! Драйвер на ПР-200 с приложенного диска я поставил, создал виртуальный COM-порт. В диспетчере устройств при подключенном ПР в разделе "порты COM и LPT" появляется надпись "ПР-200 порт COM-3". Выбираю в программе Owen Logiс порт сom-3, пишет- нет связи с прибором!

melky
19.10.2016, 23:17
Привязать ко времени не проблема, но это не задача управляющего отображением на экране ПР.

ILich
20.10.2016, 05:12
МегаВольт подключать к USB, в ОС посмотреть на какой СОМ порт он присел, выбрать в программе этот СОМ порт.

ILich я так подумал, а зачем нам вообще сортировать целочисленные значения для отображения аварий ?

Вот вариант 2, Всего будет выводится до 8 СТАРШИХ аварий, надо больше, надо добавлять выходов или смотрите пример как выводить иначе :)

Запутаться там НЕВОЗМОЖНО, редактируем динамический текст, присваиваем переменную, потом копипаст и меняем переменную.

Блин, не успел пример сбацать, выложу из дома....

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

ILich
20.10.2016, 05:15
я конечно не удивлен, в стране придумавшей сказку про Емелю, всегда были те, кто хочет применять оборудование не по назначению. Я в таких случаях использую отдельно панель, отдельно устройство управления

можно использовать и ноут с ОРС-сервером и т.п. для управления приточной установкой с 2-мя нагревателями (8 аварий всего), вопрос цены/функциональность.
такой же спор сейчас в теме ИП120, нужен он за 4к рублей, или ПР200 это наше всё?

Алексей Геннадьевич
20.10.2016, 06:34
можно использовать и ноут с ОРС-сервером и т.п. для управления приточной установкой с 2-мя нагревателями (8 аварий всего), вопрос цены/функциональность.
Далеко пойдёт парень... Если конечно Ростехнадзор не остановит.

ILich
20.10.2016, 07:01
Далеко пойдёт парень... Если конечно Ростехнадзор не остановит.

а Вы считаете целесообразно использовать полноценный контроллер (+20к руб.) и панель(+15к руб.) там где справится ПР200?

Алексей Геннадьевич
20.10.2016, 07:09
а Вы считаете целесообразно использовать полноценный контроллер (+20к руб.) и панель(+15к руб.) там где справится ПР200?
Всё от объекта зависит. И целесообразно использовать то, что имеет разрешение на применение в данных условиях.
Если у ПЛК+панель разрешение на данное применение есть а у ПР+планшетник/ноут нет, то выбор очевиден.
Всю кровь ведь выпьют в случае чего.

ILich
20.10.2016, 10:32
Всё от объекта зависит. И целесообразно использовать то, что имеет разрешение на применение в данных условиях.
Если у ПЛК+панель разрешение на данное применение есть а у ПР+планшетник/ноут нет, то выбор очевиден.
Всю кровь ведь выпьют в случае чего.
с такой постановкой вопроса, ДА. тут все правы, а некоторые (Ростехнадзор, МРСК, Энергосбыт) немножечко правее.


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

вопрос в выборе оборудования и производителя оного, не просто "что дешевле", а и с чем удобнее и приятнее работать. да и как потом объяснить обслуживающему персоналу (не всегда квалифицированному), что если тут "1" то вам надо вооон ту задвижку закрыть и привод выбросить?

ILich
20.10.2016, 10:35
мне приятно работать с ОВЕНОМ, в том числе благодаря Вам уважаемые форумчане.
"там где трудно одному... где чего-то не пойму, разберусь с друзьями"

ILich
20.10.2016, 11:11
а тот пример который Вы приводили, где динамические текст типа: Авария 1, Авария 2 ..., объяснять не придется где что, нормальные сообщения всёравно не вывести, на экране ПР200 во первых нужно вовремя открывать экран аварий, во вторых видно две строки и это надо обязательно листать вниз, чтоб убедиться что их две а не более. А одна строка сразу всё покажет и для особо не догадливых распечатку на шкаф повесить какое знакоместо за что отвечает, так то в любой инструкции найдете что за код ошибки и какие действия нужно совершить

динамический текст можно написать сокращенно, но понятно, "Прев. Давл." например, или "перегрев М(№ двигателя)" "авария насоса (№ насоса)" и экран аварии включат когда у видят "красну лампочку" с подписью "АВАРИЯ". разве не так пишут в Журнале Аварий?

melky
20.10.2016, 11:30
Погнали наши городских :)

Ехал вчера домой и думал, а почему собственно сортировка только сверху вниз ? в общем тестируйте....

Макрос делался не ради извращения, то есть он ограничен одновременным выводом 8-ми (ВОСЕМЬ) аварий либо от большего aA=false, либо от меньшего aA=true, по умолчанию от большего, так работает быстрее если его каскадировать до 32-х одновременных аварий, см. пример "*down")

Для правильной работы со старшим разрядом необходимо установить параметр Hb в true. При каскадировании Hb=false, так же необходимо с последнего выхода t8 подать на вход bit следующего макроса (см. пример)

Запуск счета работает по 2-м параметрам, входу C и изменению входной переменной code
Выход RS (Ready state) сигнал готовности, если bit равно 0 то RS не станет true, можно подавать на вход С следующего макроса, но так как в примере быстрее.

В примере есть экран, список собран копипастом с изменением переменной. То есть постоянно редактировать весь список нет необходимости.

Скажу больше, при авариях можно переключить экран на Экран Аварий
Спарва или слева можно сделать индикаторы, что список еще не до конца прочитан...

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

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

Ревака Юрий
20.10.2016, 11:33
динамический текст можно написать сокращенно, но понятно, "Прев. Давл." например, или "перегрев М(№ двигателя)" "авария насоса (№ насоса)" и экран аварии включат когда у видят "красну лампочку" с подписью "АВАРИЯ". разве не так пишут в Журнале Аварий?

А что если попробовать применить бугущую строку для вывода названия аварий? Приемущество: можно вывести название длиннее 16 символов. Но есть неудобство с конфигурированием экрана при большом кол-ве сообщений и опять таки если выводить сообщения в одну строку, то долго ждать прокрутки если есть допустим авария 1 и 7, а между ними ничего нет. По аналогии можно использовать автоматическую вертикальную прокрутку, нюансы те же.

ILich
20.10.2016, 11:59
Погнали наши городских :)

Ехал вчера домой и думал, а почему собственно сортировка только сверху вниз ? в общем тестируйте....

Макрос делался не ради извращения, то есть он ограничен одновременным выводом 8-ми (ВОСЕМЬ) аварий либо от большего aA=false, либо от меньшего aA=true, по умолчанию от большего, так работает быстрее если его каскадировать до 32-х одновременных аварий, см. пример "*down@")

Для правильной работы со старшим разрядом необходимо установить параметр Hb в true. При каскадировании Hb=false, так же необходимо с последнего выхода t8 подать на вход bit следующего макроса (см. пример)

Запуск счета работает по 2-м параметрам, входу C и изменению входной переменной code
Выход RS (Ready state) сигнал готовности, можно подавать на вход С следующего макроса, но так как в примере быстрее.

В примере есть экран, список собран копипастом с изменением переменной. То есть постоянно редактировать весь список нет необходимости.

Скажу больше, при авариях можно переключить экран на Экран Аварий
Спарва или слева можно сделать индикаторы, что список еще не до конца прочитан...

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

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

Мдя, я так не смогу :(. 32 это много, и что-то дублируются сообщения при не полном "списке" переменные SortAlarm 1 и SortAlarm 3, SortAlarm 2 и SortAlarm 4. а выполнено сильно.

melky
20.10.2016, 12:07
Они не дублируются, макрос работает несколько циклов ПР, не мгновенно, он должен при сигнале на входе С обнулить значения и пересчитать.

Вариант на 32-ве одновременных аварии сверху вниз быстрее и проще чуть чуть - это всего лишь пример.

Один макрос может обрабатывать 32 бита и выведет соответственно до 8-ми одновременных аварий
Соответственно при 32-х битах макрос будет работать больше 32-х циклов ПР.

Проверку на изменения числа можно вынести ЗА макрос и запускать его самостоятельно по входу С.
Макрос просто относительно универсальный. Так что какие-то вещи из него убрать всегда можно :)

ILich
20.10.2016, 12:15
А что если попробовать применить бугущую строку для вывода названия аварий? Приемущество: можно вывести название длиннее 16 символов. Но есть неудобство с конфигурированием экрана при большом кол-ве сообщений и опять таки если выводить сообщения в одну строку, то долго ждать прокрутки если есть допустим авария 1 и 7, а между ними ничего нет. По аналогии можно использовать автоматическую вертикальную прокрутку, нюансы те же.

capzap предложил самую оптимальную, на мой взгляд, систему. его сортировщик и дополнить можно и строки будут высвечиваться по порядку без пробелов, а для того чтобы знать как много прокручивать, можно кол-во аварий вывести 2-значным числом в первой строке (кол-во отображаемых символов 16 достаточно для внятного, сокращенно написанного события.). а действия при аварии доводятся до автоматизма тренировками "КАРАУЛ, В РУЖЬЁ!!!!".

melky
20.10.2016, 12:39
Хм, обнаружил странность, в эмуляции сам макрос работает отлично, но ставишь в поле начинает глючить, непонятно почему, может пропустить значение, которое выставленно в 1 а то и 2....

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

AI!
20.10.2016, 18:54
Погнали наши городских :)я одно не пойму - зачем сортировать то что уже отсортировано?
Биты в слове уже отсортированы!!! надо просто их правильно извлечь от туда — по порядку...

Мой вариант сортировки ошибок, 31шт

melky
21.10.2016, 14:04
AI! так я их не сортирую, а убираю пустоты (нули) и они идут по порядку.
Стати в ПР макрос выполнялся быстро, не как в эмуляции. Но памяти отъедает побольше, тут точно минус

AI!
21.10.2016, 14:31
AI! так я их не сортирую, а убираю пустоты (нули) и они идут по порядку.Про сортировку — это я про предыдущие реализации, где 6-8 ошибок.
А ваш макрос я изучал только после того как свой написал...

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

melky
21.10.2016, 15:22
Да ошибки как выясняется связаны с обратными связями и еще не пойми с чем. сейчас попробую из своего макроса убить обратную связь и проверить просто запуская по импульсу, тогда будет понятнее...

AI!
21.10.2016, 23:29
Ваш макрос очень хорош, но я не люблю такие глобализации на поле, ставить макрос на 32 входа, когда нужно только на 10 как-то по мне не очень.Специально для Вас порезал макрос на части...

melky
21.10.2016, 23:49
AI! цифра 10 была образной :)

AI!
21.10.2016, 23:58
AI! цифра 10 была образной :)10 я взял не из вашего сообщения, а из алгоритма.
У меня максимум 31 бит, а это простое число, ближайшее составное 30, а оно делится на 10,6,5...
Я выбрал 10 и 5, для входа и выхода соответственно.
К тому же так удобнее редактировать внутренности PutBitA: x->1x->2x

ILich
24.10.2016, 13:05
Добрые люди, напомните пожалуйста, есть возможность выдернуть программу из ПР110(ПР200)? запамятовал совсем.

Ревака Юрий
24.10.2016, 13:26
Добрые люди, напомните пожалуйста, есть возможность выдернуть программу из ПР110(ПР200)? запамятовал совсем.

Такой возможности на данный момент нет.

ILich
24.10.2016, 13:42
Такой возможности на данный момент нет.
ЭХ, жаль. а у меня прога на пр110-220, на управление шурующей планкой котла. ладно, по архивам в старом компе пошукаю, авось, найдется, не затерлась.
если найду, адаптирую под ПР200, тут выложу или выкладу как это по русски?

AI!
24.10.2016, 14:21
как это по русски?по-русски пишется через дефис.

melky
24.10.2016, 14:21
Калибровка аналоговых входов.

Использую РЗУ-420, при подаче 0 мА сам РЗУ пишет 0.00 мА, Обрыв.
ПР200 при этом показывает на входе 0,06 мА далее, так как шаги на РЗУ начинаются с 0.20мА и с шагом 0,1 мА вроде все корректно.

Но как избавиться от начального 0,06 мА ?

По верхнему пределу ПР200 застыл на 20,71 :)
После калибровки работа входа на 5+ вот только ноль не совсем ноль. Если отключить подачу тока то значение будет 0,01 мА

Да, и если вход откалибровать на ток, как он потом будет работать по напряжению ? или нужен эталонный БП для калибровки входа по напряжению.?

Vlad84
24.10.2016, 19:47
Здравствуйте! Подскажите, пожалуйста:
1. В режиме симулятора на аналоговом входе с активным датчиком температуры 4...20мА задаётся температура? И как её значение задать ниже нуля?
2. Как передать по сети данные о температуре, поступившие по RS-485 на ПР-200?

melky
24.10.2016, 20:52
1. выбираете датчик 4-20мА в свойствах входа указываете нижнюю границу -40 градусов, верхнюю границу +100 градусов например
2. записать уставку ? любой SCADA системой в режиме Modbus RTU, только придется пока озаботиться сохранением переменной, например при помощи SelChange для плавающей точки, есть в теме макросов.

GooDz
24.10.2016, 21:04
Планирую произвести замену блоков управления Укринтерм МН-120 на 5-ти модулях нагрева, ПР-200 с расширительным блоком дискретных сигналов 8/8 (надеюсь в начале 2017 поступят в продажу). Примерную программу написал, но осталось поработать с экраном (родным), есть ли примеры, например Основной экран - под экраны - переходы, мне бы примеры посмотреть а там думаю потихоньку с Вашей помощью разберусь )))

Сергей0308
24.10.2016, 21:11
Здравствуйте! Подскажите, пожалуйста:
1. В режиме симулятора на аналоговом входе с активным датчиком температуры 4...20мА задаётся температура? И как её значение задать ниже нуля?
2. Как передать по сети данные о температуре, поступившие по RS-485 на ПР-200?

В симуляторе, чтобы задать значение на аналоговом входе ниже нуля, перед значением поставьте знак "-"! Передать отрицательные значения можно во FLOAT или INT, вот макросы: http://www.owen.ru/forum/showthread.php?t=13106&page=3

27253

Vlad84
24.10.2016, 21:12
Спасибо! Я тоже разобрался) Целочисленную переменную на плавающую поменял, и на входе стало возможным задать число с минусом. А в свойствах датчика было всё как надо: 4...20мА и -50...200 градусов. Минус ставил и в первом, и во втором случае) спасибо за ответы!

ILich
25.10.2016, 05:19
ЭХ, жаль. а у меня прога на пр110-220, на управление шурующей планкой котла. ладно, по архивам в старом компе пошукаю, авось, найдется...
нашлась родимая. вот макрос, со времен Холодной войны с Бийским котлом за тепло.

Ревака Юрий
25.10.2016, 09:07
Планирую произвести замену блоков управления Укринтерм МН-120 на 5-ти модулях нагрева, ПР-200 с расширительным блоком дискретных сигналов 8/8 (надеюсь в начале 2017 поступят в продажу). Примерную программу написал, но осталось поработать с экраном (родным), есть ли примеры, например Основной экран - под экраны - переходы, мне бы примеры посмотреть а там думаю потихоньку с Вашей помощью разберусь )))

Добрый день! Если более подробно опишите структуру экранов сделаю для Вас пример. Мне необходимо знать как планируется переход между экранами (по нажатию какой кнопки или комбинаций или удержания либо срабатывание внутренней переменной), а так же разветвленность переходов. В общем желательно общий каркас. Так же прошу обратить внимание на один момент при использовании макросов термосопротивления, перед входом необходимо поставить ограничение на величину немного больше рабочего максимального диапазона по сопротивлению, иначе при обрыве датчика сопротивление на входе стремится к бесконечности, и затем числа проходя через полином выходят за диапазон 2^32.

melky
25.10.2016, 09:46
Ревака Юрий в прошивке хромает переход по удержанию.
Объясню. Когда на одном экране используется переход по нажатию и по удержанию одновременно.
Получается такая байда, что в ПР переход срабатывает по фронту импульса, а надо использовать по спаду и чтобы прошивка определяла время нажатого состояния и принимала решение, это было короткое нажатие или длинное.


з.ы. когда в системных переменных появятся кода кнопок и возможность использовать 2-3 клавиши ? :)

Ревака Юрий
25.10.2016, 09:55
Ревака Юрий в прошивке хромает переход по удержанию.
Объясню. Когда на одном экране используется переход по нажатию и по удержанию одновременно.
Получается такая байда, что в ПР переход срабатывает по фронту импульса, а надо использовать по спаду и чтобы прошивка определяла время нажатого состояния и принимала решение, это было короткое нажатие или длинное.


з.ы. когда в системных переменных появятся кода кнопок и возможность использовать 2-3 клавиши ? :)

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

melky
25.10.2016, 09:57
А, точно, что-то я про отпускание забыл...
Хотя с другой стороны у меня получилось как бы скрытое меню, если не знать в какой момент надо удерживать кнопку :)

Ревака Юрий
25.10.2016, 10:02
А, точно, что-то я про отпускание забыл...
Хотя с другой стороны у меня получилось как бы скрытое меню, если не знать в какой момент надо удерживать кнопку :)

Ну вот, тут оказывается одни плюсы.:)

Алексей Геннадьевич
25.10.2016, 10:59
Ну вот, тут оказывается одни плюсы.:)
А в чём плюс?
Одно дело скрытое меню по паролю делать, и совсем другое - когда по длительности нажатия попадаешь не туда.
Может меню проектировать поаккуратнее следует?:confused:

melky
25.10.2016, 11:16
По паролю есть смысл делать изменение переменных, которые нельзя менять просто так абы кому и когда.
Меню конечно тоже паролить не мешало бы. было бы плюсом.

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

Но больше всего не хватает системной переменной кода кнопок, имхо....

Ревака Юрий
25.10.2016, 11:18
А в чём плюс?
Одно дело скрытое меню по паролю делать, и совсем другое - когда по длительности нажатия попадаешь не туда.
Может меню проектировать поаккуратнее следует?:confused:

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

Алексей Геннадьевич
25.10.2016, 11:47
Ну скажем так, зная тонкости такого поведения, можно спроектировать меню в которое обычному пользователю необязательно попадать, а разработчик будет знать как туда зайти. Понятно что данный вариант, так себе, но если пользователю лень изобретать защиту, то как вариант.

Лет 7-8 назад в терминалах оплаты в меню выбора при точном нажатии на "М" в главном меню вылезал "медвед-Превед" .
Понятно, что это просто хулиганский прикол, (реакция людей была самой разнообразной) но зачем стремиться к таким эффектам в промавтоматике?
Чтобы одних сотрудников в психушку сдать и набрать новых?
Если скрытое меню - под пароль, и чтоб никаких "хитрых" переходов.

Ревака Юрий
25.10.2016, 11:59
Лет 7-8 назад в терминалах оплаты в меню выбора при точном нажатии на "М" в главном меню вылезал "медвед-Превед" .
Понятно, что это просто хулиганский прикол, (реакция людей была самой разнообразной) но зачем стремиться к таким эффектам в промавтоматике?
Чтобы одних сотрудников в психушку сдать и набрать новых?
Если скрытое меню - под пароль, и чтоб никаких "хитрых" переходов.

Ну если это не нужно, значит не делаем:) данную возможность закладывает разработчик программы.

lectorleo
25.10.2016, 12:44
добрый день всем. кто-нибудь имел дело с СМИ2(семисегментный светодиодный индикатор)?
на пр200 необходимо реализовать, чтобы сми2 показывал данные с датчика(давление) и если возникает одна из нескольких ошибок в системе, то периодические через мигание показывать код ошибки.давление(пару секунд) пусто(секунду) код ошибки (пару секунд). буду очень благодарен если подскажите как подобное реализовать

Ревака Юрий
25.10.2016, 13:15
добрый день всем. кто-нибудь имел дело с СМИ2(семисегментный светодиодный индикатор)?
на пр200 необходимо реализовать, чтобы сми2 показывал данные с датчика(давление) и если возникает одна из нескольких ошибок в системе, то периодические через мигание показывать код ошибки.давление(пару секунд) пусто(секунду) код ошибки (пару секунд). буду очень благодарен если подскажите как подобное реализовать


Добрый день!

Отправлять значение на индикатор в зависимости от того есть ошибки или нет используя, например блок SEL. Со СМИ2, если раньше не разберетесь, попробую собрать стенд для проверки, но чуть позже.

lectorleo
25.10.2016, 14:25
Добрый день!

Отправлять значение на индикатор в зависимости от того есть ошибки или нет используя, например блок SEL. Со СМИ2, если раньше не разберетесь, попробую собрать стенд для проверки, но чуть позже.

было бы неплохо, если вас сильно не затруднит :). SEL да, но необходимо что бы давление всеравно показывалось, если только после SEL еще не ставить генератор импульсов или таймер как вариант.

Серёга Букашкин
25.10.2016, 14:31
Почему на ПР110 разрешение Ростехнадзора есть, а на ПР200 нет? Оно будет? Или оно теперь не нужно?

Мордорец
25.10.2016, 14:52
Почему на ПР110 разрешение Ростехнадзора есть, а на ПР200 нет? Оно будет? Или оно теперь не нужно?
их отменили несколько лет назад

Ревака Юрий
25.10.2016, 15:19
было бы неплохо, если вас сильно не затруднит :). SEL да, но необходимо что бы давление всеравно показывалось, если только после SEL еще не ставить генератор импульсов или таймер как вариант.

В каком формате планируется выводить давление и какой диапазон? И код ошибки сколько разрядов должен содержать?

Ревака Юрий
25.10.2016, 17:07
В общем получился такой вариант: предполагается что выводим числа от 0 до 9999 или 0-999.9 если переменная dot установлена. Код ошибки принимает значение от 0 до 9, если 0-выводим число, если >0 то попеременно число и Err.N, где N-номер ошибки. Все можно проверить с экрана ПР200, задать любое число от 0 до 9999, установить бит dot для вывода точки после 3 разряда и номер ошибки. Параметры для СМИ заводские.

lectorleo
26.10.2016, 07:43
Ревака Юрий, спасибо большое,прям выручили. то что нужно. с моим опытом работы в овен лоджик в несколько дней я бы очень долго мучался.

GooDz
30.10.2016, 03:08
Перечитал всю ветку ПР самый думаю лучший вариант это то что предложил Сергей0308 в ветке ПР200, сделал так, поправьте если что, я так понимаю есть переменная экраны, я вставил в экран combobox и присвоил ей переменную экраны а в списке этой переменной добавил строки значения с названием экранов. Я представляю так, что выбрав строку combobox, у меня будет выбор экрана, или я ошибаюсь? ПР200 на руках еще нет только догадываюсь как это будет работать.

Сергей0308
30.10.2016, 12:55
Перечитал всю ветку ПР самый думаю лучший вариант это то что предложил Сергей0308 в ветке ПР200, сделал так, поправьте если что, я так понимаю есть переменная экраны, я вставил в экран combobox и присвоил ей переменную экраны а в списке этой переменной добавил строки значения с названием экранов. Я представляю так, что выбрав строку combobox, у меня будет выбор экрана, или я ошибаюсь? ПР200 на руках еще нет только догадываюсь как это будет работать.

Совсем непонятно, как собираетесь возвращаться назад в основное меню(наверно можно по времени сделать) и наверно можно операцию сравнения заменить на TO BOOL:

27350

Vlad952mir
31.10.2016, 09:13
ПР-200 не выводит переменную, и при редактировании элементы ввод/вывод не сохраняет переменную, после нажатия кнопки ОК.
Похоже экран не воспринимает эту переменную.

melky
31.10.2016, 09:46
Vlad952mir Версия ОЛ ?

Какую именно переменную вы меняете ?

Vlad952mir
31.10.2016, 11:45
целочисленная переменная

Vlad952mir
31.10.2016, 11:46
целочисленную

Vlad952mir Версия ОЛ ?

Какую именно переменную вы меняете ?

Алексей Геннадьевич
01.11.2016, 17:07
Перечитал всю ветку ПР самый думаю лучший вариант это то что предложил Сергей0308 в ветке ПР200, сделал так, поправьте если что, я так понимаю есть переменная экраны, я вставил в экран combobox и присвоил ей переменную экраны а в списке этой переменной добавил строки значения с названием экранов. Я представляю так, что выбрав строку combobox, у меня будет выбор экрана, или я ошибаюсь? ПР200 на руках еще нет только догадываюсь как это будет работать.
Нет.
Комбобоксы придётся ставить на всех экранах, А из целочисленной переменной сформировать булевы переменные, которые будут соответствовать числам целочисленной.
А уже по изменению фронта этих переменных переходить на экран.

mcleon
04.11.2016, 15:23
Не сочтите за наглость.
Прошу поделиться примером простейшего проекта для связки weintek (мастер) и ПР200 (слейв). Хочется увидеть пример обмена хоть одной переменной.
Что-то идёт не так, нет связи и всё тут, кто путает педали - не могу понять.

rovki
04.11.2016, 16:44
С адресацией регистров внимательно и настройками уарта ...

mcleon
05.11.2016, 12:50
Вот проект для ПР.
Опрашиваются только сетевые переменные (holding или input регистры). Перемычки на интерфейсе стоят в положении S (slave).
Пишу в модбас полл опрос одного регистра по 03 (холдинги), слейв с адресом 16, 115200-8-нет-1, прошу дать регистр с номером 518 (тут, даже если ошибся с адресацией регистров - либо 518 либо 517, либо 516 но доступны),
строка в модбасполл - Tx:10 03 02 05 00 01 96 F2 - все время говорит - таймаут еррор.
Проводочки местами менял, только до осциллографа не добрался, потому что выходные.
Естественно, если уж модбасполл не может добиться ответа, панель вайнтек тем более не сможет.
Кто тут виноват, почему нет ответа?

ПС: осциллограф нашелся и тоже ничего не показал - запрос есть, ответа - нет.

ППС: Проблема решена. Не знаю кто, может я, а может и нет, модуль RS485 подключил неправильно, два пина разъема модуля торчали в воздухе, определил при помощи махинаций и осциллографа.

Извините, может это кому поможет.

По самые по...
06.11.2016, 23:40
Кто сталкивался с такой бедой? Аналоговый вход AI3, установленный в режим дискретного входа, не срабатывает на перепад напряжения. Перемычки установлены в соответствии с руководством по эксплуатации. Пороги по напряжению заданы: "0" - 2в, "1" - 5в. Сигнал напряжения подаю на этот вход с внешнего регулируемого источника напряжения 0...10в.
Проверку провожу соединив в ОЛ этот вход с дискретным релейным выходом. Выход не переключается.
Также не изменяется и состояние входа при проверке в системном меню.
Что делаю не так?
Сам вход живой, обратная установка в режим аналогового ввода по напряжению подтвердила исправность входа.

Сергей0308
07.11.2016, 00:03
Кто сталкивался с такой бедой? Аналоговый вход AI3, установленный в режим дискретного входа, не срабатывает на перепад напряжения. Перемычки установлены в соответствии с руководством по эксплуатации. Пороги по напряжению заданы: "0" - 2в, "1" - 5в. Сигнал напряжения подаю на этот вход с внешнего регулируемого источника напряжения 0...10в.
Проверку провожу соединив в ОЛ этот вход с дискретным релейным выходом. Выход не переключается.
Также не изменяется и состояние входа при проверке в системном меню.
Что делаю не так?
Сам вход живой, обратная установка в режим аналогового ввода по напряжению подтвердила исправность входа.

Как понять на перепад, это же не детекторы переднего-заднего фронта, должны работать по уровню сигнала на входе!

По самые по...
07.11.2016, 00:15
Как понять на перепад, это же не детекторы переднего-заднего фронта, должны работать по уровню сигнала на входе!
Ну ясен пень, это режим компаратора уровня.. Только вот не робит.

Сергей0308
07.11.2016, 00:48
Ну ясен пень, это режим компаратора уровня.. Только вот не робит.

В симуляторе хоть работает? И перемычки надо менять, для каждого режима, по-разному ставить! Скорей всего Вы перемычки не трогали, поставили для измерения напряжения и считаете, что так как в дискретном режиме также напряжение измеряется, то и трогать их нет нужды, но это не так:

27460

maximov2009
07.11.2016, 04:07
Добрый день. По моему Вы создаёте трудности там, где их не должно быть.
Если Вы перевели в режим дискрета, то подавайте на него 24 В. и он сработает так же как все остальные дискретные входа.
Если Вы хотите чтобы вход срабатывал при определённом напряжении от 0 до 10В, то переводите вход перемычками в режим измерения 0-10В, а в программе уже ставьте какие Вам надо компараторы, детекторы фронтов и пр.
С уважением.

По самые по...
07.11.2016, 10:03
Добрый день. По моему Вы создаёте трудности там, где их не должно быть.
Если Вы перевели в режим дискрета, то подавайте на него 24 В. и он сработает так же как все остальные дискретные входа.
Если Вы хотите чтобы вход срабатывал при определённом напряжении от 0 до 10В, то переводите вход перемычками в режим измерения 0-10В, а в программе уже ставьте какие Вам надо компараторы, детекторы фронтов и пр.
С уважением.

А для кого тогда это написано:
27462

melky
07.11.2016, 10:18
По самые по... и че ?, на заборе и не то пишут.... речь идет о том, что ПР 10 и выше вольт воспримет как логическую 1.

maximov2009
07.11.2016, 10:19
И снова здравствуйте. Я же и написал выше. Ищите трудности - действуйте а том же направлении.
Скорее всего, задаёте не ту разницу напряжений. Обычно дискретный (как я и писал выше) рассчитан на напряжение 24В. Поэтому обычно диапазон задаётся в нижней трети питания - 0, в верхней 1.
А если уж Вам нужно поймать разницу в несколько вольт, то как я и писал - переведите в измерение 0-10В и вылавливайте какую хотите разницу, хоть милливольты.
Так что определитесь - что Вам нужно.
Но вольному как говорится воля.
Если теория сталкивается с практикой ......
С уважением.

По самые по...
07.11.2016, 10:26
В симуляторе хоть работает? И перемычки надо менять, для каждого режима, по-разному ставить! Скорей всего Вы перемычки не трогали, поставили для измерения напряжения и считаете, что так как в дискретном режиме также напряжение измеряется, то и трогать их нет нужды, но это не так:

27460

Всё правильно выставил! Вот скрин свойств данного входа:
27463

Теперь рассказ о том что обнаружил.
Чтобы исключить все подозрения на железо, был демонтирован еще один ПР200, перепрограммирован, переключен перемычками и проверен.
Подозрения оправдались! Железо не определяет пороги срабатывания компаратора, установленные в свойствах входа!
Была проведена проверка на предмет плавного увеличения напряжения на входе. При значении 9,9В, происходит срабатывание компаратора и состояние входа изменяется с "0" на "1". При уменьшении напряжения состояние входа изменяется на обратное (с "1" на "0") при значении 5,4В.

В системном меню данного входа, в параметре "Масштаб", прописано "Не используется". Это подтверждает моё предположение, что запрограммированные мной свойства входа по порогам срабатывания компаратора не вносятся в память ПР200.
Таким образом, я как потребитель продукции компании "Овен", вижу несоответствие заявленных компанией характеристик своего изделия ПР200 реальным характеристикам и свойствам! Что будем делать господа?