PDA

Просмотр полной версии : Общие вопросы



andrew29
04.07.2016, 15:04
Почему тип данных "Целочисленные" носит название INT, тогда как реально возможные значения переменных и констант, которые можно реализовать данным типом являются данными типа UINT - беззнаковый целый тип занимает в памяти 4 байта и позволяет выражать целочисленные значения от 0 до 4 294 967 295?
Все это немного рвет шаблон знаний ;)

petera
04.07.2016, 15:41
Почему тип данных "Целочисленные" носит именно такое название, тогда как реально возможные значения переменных и констант, которые можно реализовать данным типом являются данными DWORD - двойное слово, что подтверждает справка: "Диапазон значений для переменных данных этого типа от 0 до 4294967295". Кроме того целочисленные числа - 16 битные, где 16 разряд - это "знак"?
Все это немного рвет шаблон знаний ;)

Целочисленные потому, что диапазон представления только целые числа, дробей нет.
И совсем необязательно им быть 16 битыми, зависит от разрядной сетки вычислительного устройства, например, в 8 битных микропроцессорах они будут 8 битными от 0 до 255.

andrew29
04.07.2016, 17:11
Я свой вопрос немного поправил.
Что числа целые - это понятно. То, что зависит от разрядной сетки - тоже. Но вы же не будете спорить о том, что, если это именно INT, то а где же знак? Ведь минус 12 (-12) тоже ведь целое число. И число INT.

Евстигнеев Максим
04.07.2016, 17:44
То что Вы пишете про префикс "U", зависит от конкретного языка.
У меня подозрения, что Вы пришли из "Си". Если бы Вы пришли из Java, то вообще удивились об существовании беззнаковой арифметики.

А а OWEN Logic беззнаковая арифметика. Если бы было поддержано "беззнаковые целые" и "целые со знаком", то имел бы смысл иметь префикс.

Владимир Ситников
04.07.2016, 18:09
А а OWEN Logic беззнаковая арифметика. Если бы было поддержано "беззнаковые целые" и "целые со знаком", то имел бы смысл иметь префикс.
Вообще говоря, это смущает. В голову не приходит язык общего назначения, где есть _только_ беззнаковые.

ASo
04.07.2016, 18:13
Вот в этом и Ваша проблема.
Вы просто не понимаете, подо что "заточены" ПР.

Владимир Ситников
04.07.2016, 18:15
Целочисленные потому, что диапазон представления только целые числа, дробей нет.
И совсем необязательно им быть 16 битыми, зависит от разрядной сетки вычислительного устройства, например, в 8 битных микропроцессорах они будут 8 битными от 0 до 255.

Согласно документации ОЛ, INT'у (в ОЛ) обязательно быть 32-и битным.

Целочисленный тип (int)
Переменная данного типа - целое число, принимает значение в диапазоне от 0 до 4294967295.

Никаких поправок на "тип процессора" там нет, значит на всех моделях ПР тип INT должен работать как "беззнаковое в диапазоне от 0 до 4294967295".

capzap
04.07.2016, 18:25
Вообще говоря, это смущает. В голову не приходит язык общего назначения, где есть _только_ беззнаковые.

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

Владимир Ситников
04.07.2016, 18:35
знак минус важен только для человека, бездушной машине фиолетово, она спокойно может принять для вычислений и число 2147483660 и 4294967283

Подумайте, и ответьте на 1 простой вопрос: для кого делаются языки программирования, для человека или машины?
Языки делаются для людей, поэтому аргумент "машине фиолетово" не является весомым.

ASo
04.07.2016, 18:43
Скажем так, для устройств класса ПР отрицательные числа мало востребованы.

capzap
04.07.2016, 19:01
Подумайте, и ответьте на 1 простой вопрос: для кого делаются языки программирования, для человека или машины?
Языки делаются для людей, поэтому аргумент "машине фиолетово" не является весомым.

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

rovki
04.07.2016, 19:15
Языки делаются для людей, поэтому аргумент "машине фиолетово" не является весомым.
Что за бред !!?? Язык это средство общения .Для Человек-Человек одни языки ,для Человек-Машина другие .Это пара субьектов и если они понимают друг друга ,то язык он как для Человека так и для Машины.И для этой пары ,как и для пары людей существуют множество языков .Если бы Адам жил на земле один он бы был немой .
Другой вопрос ,что для общения с машиной человек сам изобретает языки ,причем сначала такие что бы лучше его понимала машина ,а другие пусть потеют .Но развитие не стоит на месте и программирование становится не уделом одиночек интеллектуалов ,поэтому языки становятся все больше интуитивно понятными для широкого круга задач и специалистов .

Владимир Ситников
04.07.2016, 20:52
Что за бред !!?? Язык это средство общения .Для Человек-Человек одни языки ,для Человек-Машина другие .Это пара субьектов и если они понимают друг друга ,то язык он как для Человека так и для Машины.И для этой пары ,как и для пары людей существуют множество языков .Если бы Адам жил на земле один он бы был немой .
Другой вопрос ,что для общения с машиной человек сам изобретает языки ,причем сначала такие что бы лучше его понимала машина ,а другие пусть потеют .Но развитие не стоит на месте и программирование становится не уделом одиночек интеллектуалов ,поэтому языки становятся все больше интуитивно понятными для широкого круга задач и специалистов .

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

Владимир Ситников
04.07.2016, 20:58
какие языки программирования, текстовые или графические? Меня не сильно беспокоит результат блока SUB, я после него веду линию дальше.
Любые.

А на что вы расчитываете, если "не беспокоит результат sub"? Например, в языке C при переполнении unsigned int вообще что угодно может возникать. Хоть перезагрузка компьютера. Сомневаюсь, что подобное поведение было бы допустимо для ПР

capzap
04.07.2016, 21:19
Любые.

А на что вы расчитываете, если "не беспокоит результат sub"? Например, в языке C при переполнении unsigned int вообще что угодно может возникать. Хоть перезагрузка компьютера. Сомневаюсь, что подобное поведение было бы допустимо для ПР
ну так попробуйте переполнить, деловто в лоджике из нуля вычесть 13 а потом прибавить 20. Тут высказываются что Вы выдающийся человек, я вот только не пойму в демагогии что ли. Вы возрастом еще не вышли посылать меня подумать.

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

rovki
04.07.2016, 21:52
Если в итоге со мной согласились, то зачем начинать словами "что за бред"?
В 21ом веке языки программирования делаются для людей, а рассуждать о том как Адам программировал бы это уж точно бред.
Любитель передергивать .Вы -"язык для людей" .Я- "язык для людей и машин" ."Только для людей" еще не придумали языков для общения с машиной (слов,жестов не понимает),разве что приложения ,а не среды разработки о которых речь.
Причем тут Адам программист .Я говорил что если нет у человека собеседника(говорить ,слушать) ,то он вырастит немым по любому .

rovki
04.07.2016, 22:01
Любые.

А на что вы расчитываете, если "не беспокоит результат sub"? Например, в языке C при переполнении unsigned int вообще что угодно может возникать. Хоть перезагрузка компьютера. Сомневаюсь, что подобное поведение было бы допустимо для ПР
Вот поэтому разработчики и позаботились о нас ,не смышленых ( бездарей) ,что бы голова у нас не болела и ПР не висла и не вылетала и собака цепная не лаяла .

andrew29
05.07.2016, 09:44
Спасибо всем за развернутую дискуссию.
Смысл моего вопроса был в том, чтобы все формулировки и значения были как можно точными и простыми и, следовательно, однозначно понятны любому человеку, имеющему отношения к программированию без разницы откуда он "пришел" в OWEN Logic.
Считаю, что цель совместно достигнута. Теперь, когда речь идет о представлении типов данных в OWEN Logic нужно начинать с того, что используется БЕЗЗНАКОВЫЕ целые числа, а дальше, как говорится по тексту... :)

И еще... Раз я начал эту новую тему. Еще один общий, казалось бы дурацкий вопрос-предложение. Представьте ситуацию: человек впервые взял в руки ПР ОВЕН и впервые установил OWEN Logic, при этом имеет опыт программирования подобных девайсов. Что этот человек видит на "железе" (имею ввиду надписи на входах и выходах) и что он видит на программном холсте в OWEN Logic?
Раз здесь присутствую люди прямо или косвенно влияющие на модернизацию ПО у меня предложение: ЗАМЕНИТЕ название дискретных входов и выходов в OWEN Logic с "I" на "DI" и с "Q" на "DO", чтобы они соответствовали названиям входов/выходов на ПР ОВЕН.
Понимаю, что это мелочь. Но с таких мелочей состоит мир :))))

PS И еще, чтобы закончить тему мелочей. Не сочтите занудой, но что это за прилагательное "БУЛЕВСКОЕ" (число/тип вывода...)? Это на каком языке? Не БУЛЕВСКОЕ, а БУЛЕВО - булевое, на худой конец. Булева алгебра, а не булевСКАЯ алгебра

Владимир Ситников
05.07.2016, 12:43
Любитель передергивать .Вы -"язык для людей" .Я- "язык для людей и машин" ."Только для людей" еще не придумали языков для общения с машиной (слов,жестов не понимает),разве что приложения ,а не среды разработки о которых речь.
Причем тут Адам программист .Я говорил что если нет у человека собеседника(говорить ,слушать) ,то он вырастит немым по любому .

Полегче. Я не передёргиваю, а придерживаюсь одной ясной позиции: "странно, что в ОЛ только беззнаковые целые, ведь в других языках программирования либо одновременно с беззнаковыми есть знаковые, либо беззнаковых вообще нет".

Если моя позиция непонятна, то всегда можно переспросить -- я уточню что имею ввиду.
Заметьте, я никогда не общаюсь в духе "дурак штоле?"

Вам, rovki, нужно познакомиться с бритвой Оккама и перестать приплетать к размышлениям лишние сущности.
Приведу конкретные примеры, которые вы, rovki, приплели, и которые вообще никак не относятся к обсуждаемой проблеме: "Язык это средство общения", "Если бы Адам", "если нет у человека собеседника" и т.п. Эти примеры никак не относятся к изначально обсуждаемой проблеме "ОЛ это единственный язык программирования, где только беззнаковые целые".
Да, эти примеры можно обсудить отдельно, но уже в рамках какой-нибудь другой дискуссии/темы.

Владимир Ситников
05.07.2016, 13:07
Вот поэтому разработчики и позаботились о нас ,не смышленых ( бездарей) ,что бы голова у нас не болела и ПР не висла и не вылетала и собака цепная не лаяла .

Именно. Разработчики в справке описали что будет, если подать выходящие за границы значения на ADD/SUB/MUL и т.п.
Но тут вы, rovki, вмешиваетесь в мой с capzap разговор. Capzap говорил, что его "не сильно беспокоит результат блока SUB", а я утверждаю, что результат отдельного блока SUB должен беспокоить. И, да, хвала авторам ОЛ, они описали то, как работает SUB/ADD/MUL в краевых случаях.

Devoter
05.07.2016, 13:12
Возьмите здесь: http://www.owen.ru/forum/showthread.php?t=12691&p=214054&viewfull=1#post214054, сегодня добавил. Реализация операций ADD, SUB, MUL и EQ не требуется, так как встроенные работает прекрасно. TO INT также работает корректно для отрицательных чисел, а вот вместо TO FLOAT написан макрос ITOF. Enjoy.
P.S.: К слову о востребованности - никто отрицательные температуры пока не отменял, и далеко не всегда удобно работать с ними, как с вещественными числами, часто достаточно округлить до целого.

capzap
05.07.2016, 14:07
никто отрицательные температуры пока не отменял, и далеко не всегда удобно работать с ними, как с вещественными числами, часто достаточно округлить до целого.
отрицательные температуры в формате ИНТа как я и говорил нужны только человеку и только в визуализации, любой контроллер будет использовать флоат для того же ПИД-регулятора. Вам не надо с ним работать, за Вас это делает машина. Опять же если и передавать в визуализацию целочисленное представление температуры, то не в четырех же байтах, выгоды ни какой, флоат столько же занимает. Поэтому когда куда то передаеют, то сокращают до одного слова, а как в регистр модбас выдать отрицательное число на форуме обсуждалось и макрос выкладывался

Devoter
06.07.2016, 23:22
Почему-то мне кажется, что вы решаете за всех, задачи бывают разные, не стоит обобщать. Впрочем, вас лично никто ведь не заставляет пользоваться целыми отрицательными числами.

capzap
07.07.2016, 06:04
Почему-то мне кажется, что вы решаете за всех, задачи бывают разные, не стоит обобщать. Впрочем, вас лично никто ведь не заставляет пользоваться целыми отрицательными числами.

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

VGM
24.07.2016, 15:53
Здравствуйте, вероятно тема уже всплывала но найти на форуме не удалось. Логик и вин хп сп3 не дружат совсем, может есть какие средства вылечить проблему подскажите пожалуйста. Файл справки текст не отображает (свойства файла смотрел - ничего криминального).
На вин10 проблем нет пока, т.к. только знакомлюсь)

petera
24.07.2016, 17:38
Здравствуйте, вероятно тема уже всплывала но найти на форуме не удалось. Логик и вин хп сп3 не дружат совсем, может есть какие средства вылечить проблему подскажите пожалуйста. Файл справки текст не отображает (свойства файла смотрел - ничего криминального).
На вин10 проблем нет пока, т.к. только знакомлюсь)

Да все нормально в XP
25517

AI!
24.07.2016, 18:34
.NET проверь...

VGM
24.07.2016, 21:00
наверно только переустановка поможет) Спасибо
25518 25519

Евстигнеев Максим
24.07.2016, 22:41
Здравствуйте, вероятно тема уже всплывала но найти на форуме не удалось. Логик и вин хп сп3 не дружат совсем, может есть какие средства вылечить проблему подскажите пожалуйста. Файл справки текст не отображает (свойства файла смотрел - ничего криминального).
На вин10 проблем нет пока, т.к. только знакомлюсь)

Рекомендации даны по следующему пути:
http://www.owen.ru/catalog/programmnoe_obespechenie_owen_logic/72837766
в архиве zip-файла руководства пользователя, файл readme.txt.

Текст следующий:
При скачивании файла-справки через Интернет возможна блокировка содержимого операционной системой MS Windows. При этом страницы справки будут пустыми.
Для исправления данной ситуации необходимо правой кнопкой мыши открыть "Свойства" файла и во вкладке "Общие" нажать кнопку "Разблокировать".


Картинки тут можно посмотреть: http://prostocomp.net/sistema/kak-v-windows-10-razblokirovat-zagruzhennyj-iz-interneta-fajl.html
Или подобное: https://social.technet.microsoft.com/Forums/ru-RU/993698a4-bc4d-4dcb-8805-baf93b5edf78/-?forum=windows8ru

Сергей0308
25.07.2016, 03:25
То что Вы пишете про префикс "U", зависит от конкретного языка.
У меня подозрения, что Вы пришли из "Си". Если бы Вы пришли из Java, то вообще удивились об существовании беззнаковой арифметики.

А а OWEN Logic беззнаковая арифметика. Если бы было поддержано "беззнаковые целые" и "целые со знаком", то имел бы смысл иметь префикс.

Можно умереть со смеху, по-вашему получается, если рядом нет женщины, мужика следует называть гермафродитом???
Вот вам справка из кодесис, если самим недосуг посмотреть: 25522
Короче, что хотел сказать: проще назвать вещи своими именами(общепринятыми), чем каждому объяснять ваше значение слова, никого не хотел обидеть, лично моё мнение!

Евстигнеев Максим
25.07.2016, 09:09
Сергей0308, я никого не собираюсь убеждать. Мои сообщения носят разъяснительный характер.

Вы либо принимаете принципы работы системы OWEN Logic, либо, в противном случае, можете пользоваться другой системой с "общепринятыми" понятиями. Например, приведённой Вами системой КоДеСис.

По поводу фразы: "если самим недосуг посмотреть", прошу Вас быть внимательнее и не переходить на личность.

VGM
25.07.2016, 17:48
Рекомендации даны по следующему пути:
http://www.owen.ru/catalog/programmnoe_obespechenie_owen_logic/72837766
в архиве zip-файла руководства пользователя, файл readme.txt.
Читал я эту мантру - не спасает). Как выяснилось в дальнейшем и в некоторых др. других приложениях справка голая..

Евстигнеев Максим
25.07.2016, 18:03
То есть она и через F1 "голой" открывается?
Правильно я понимаю?

VGM
25.07.2016, 18:20
То есть она и через F1 "голой" открывается?
Да.

p.s. решено; на другом компе с хп все в порядке :)

Алексей Геннадьевич
29.07.2016, 07:18
Да.

p.s. решено; на другом компе с хп все в порядке :)

Вы параметры компов выложите.
На каком процессоре (Intel\AMD) комп на котором справка не запускалась.
Сведения - к VAL79.

petera
29.07.2016, 09:13
Да.

p.s. решено; на другом компе с хп все в порядке :)

Сравните настройки IE Explorer на обоих компьютерах
25622

Эдуард_Н
30.07.2016, 14:04
Что нового в версии OwenLogic 1.8.84 ? Стоит ли переходить на неё?

petera
30.07.2016, 14:32
Что нового в версии OwenLogic 1.8.84 ? Стоит ли переходить на неё?

Среда программирования OWEN Logic версии 1.8.84.7050
Устранены следующие замечания:

Встроенное ПО ПР200: устранена ошибка "Сбой памяти", возникающая при включении питания прибора.
Ошибка была следствием некорректного сохранения retain-области при выключении питания прибора.
Устранена ошибка создания связи с сообщением в статус-баре: "Object reference not set to an instance of an object" ("Ссылка на объект не указывает на экземпляр объекта").
Исправлена ошибка "недопустимое значение свойств" при задании значения по умолчанию для сетевой переменной типа "С плавающей запятой".

VGM
30.07.2016, 14:49
Сравните настройки IE Explorer на обоих компьютерах
Все - работает после переустановки системы.
Виндовс хп лицензия, англ. с сп3. Забавно что она еще обновляется и активируется онлайн.

timik2009
31.07.2016, 17:43
добрый вечер. хотел задать вопрос. не получается записать временные переменные в Blink(генератор) в симуляторе все работает записываешь в ПР200.не работает.

Эдуард_Н
31.07.2016, 17:56
добрый вечер. хотел задать вопрос. не получается записать временные переменные в Blink(генератор) в симуляторе все работает записываешь в ПР200.не работает.

ясновидящих нет.

timik2009
31.07.2016, 17:59
добрый вечер. хотел задать вопрос. не получается записать временные переменные в Blink(генератор) в симуляторе все работает записываешь в ПР200.не работает.

Андрей Иванников
01.08.2016, 09:01
У вас исходное состояние Blink по 0 сек. чтобы произвести запись "Write to FB" нужна команда на запись (обычно используют SEL).

Юрий_Р
01.08.2016, 10:18
У Вас версия OWEN Logic 1.8.84.7050, если да, то в ней действительно выявлены проблемы с записью ФБ, вопрос передан разработчикам, используйте предыдущую версию OL.

ASo
01.08.2016, 20:54
Он откатит FW ПР?

Сергей0308
01.08.2016, 21:08
Лишний раз убеждает, что если не хотите проблем, казалось на ровном месте, лучше не использовать блок записи в ФБ!

rovki
01.08.2016, 21:29
Просто не спешите обновлять новые версии ,если конечно вы не тестер :cool:.

Владимир Ситников
01.08.2016, 22:05
Лишний раз убеждает, что если не хотите проблем, казалось на ровном месте, лучше не использовать блок записи в ФБ!

Лишний раз убеждает, что в ОЛ хорошо бы добавить тест на "запись в ФБ". Неужели нет автоматического теста, который тестирует этот блок?

Эдуард_Н
02.08.2016, 04:12
Просто не спешите обновлять новые версии ,если конечно вы не тестер :cool:.

Как не обновляться то? Вроде не бета версия была?

melky
02.08.2016, 07:06
Пример последнего обновления, починили одно, сломали другое, что уже работало.
Надеюсь .84 версию уже нет на сайте.

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

1. Когда исправят запись значений по умолчанию в прибор для Сетевых переменных ?
2. Выставив значение по умолчанию вставьте переменную для записи далее в программе, там значение 0
3. Как это будет взаимодействовать если Сетевую переменную применяют на экране ? там есть параметры минимум и максимум, что произойдет при записи переменной по сети, не попадающей в этот диапазон ?
4. Когда уже появится параметр для экрана, обозначающий его номер а так же системная переменная - какой экран включен.
5. з.ы. учитывая, что в мозгах микрочип, хотелось бы увидеть системную переменную doubletime для чтения и записи (раз уж ПО написано на NET не должно быть сильно сложным)
Проще будет корректировать из SCADA время.
6. когда же уже научат Блок записи в FB работать с периодом времени Функционального блока, для которого он предназначен. Если пишем в Таймер с периодом "мин" до и блок записи должен подавать "мин" Без вставок дополнительных умножений на мс ?

ASo
02.08.2016, 07:27
7. И подредактируйте мин-макс для вещественных переменных.

Просто не спешите обновлять новые версии ,если конечно вы не тестер :cool:.
Ну да, ну да...
Особенно когда исправляют критические для тебя ошибки.

melky
02.08.2016, 09:05
Так я обновлял, потому что исправили ошибку с вводом вещественного числа для сетевой переменной, а тут херась и сломали вообще передачу переменных с экрана в программу.... орлы....

Эдуард_Н
03.08.2016, 07:21
У Вас версия OWEN Logic 1.8.84.7050, если да, то в ней действительно выявлены проблемы с записью ФБ, вопрос передан разработчикам, используйте предыдущую версию OL.

А разработчики что на это скажут?

wal79
03.08.2016, 10:38
А разработчики что на это скажут?

Проблема устранена. В ближайшие дни будет выложена исправленная версия.

melky
03.08.2016, 11:42
Зы, перед выкладыванием проверьте не только запись в FB но и просто переменные int, передающиеся с экрана в программу,
У меня отвалились все переменные, привязанные на экранах, не только то, что шло на запись в FB но и простые. Например из Combobox ничего не передавалось.
На версии .62 все работает в этом плане.

Юрий_Р
03.08.2016, 14:20
Зы, перед выкладыванием проверьте не только запись в FB но и просто переменные int, передающиеся с экрана в программу,
У меня отвалились все переменные, привязанные на экранах, не только то, что шло на запись в FB но и простые. Например из Combobox ничего не передавалось.
На версии .62 все работает в этом плане.

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

evg3798
17.08.2016, 03:10
Скажите - шунты для AO1 и AO2 ПР200 выбирать по аналогии с ПР114 (в руководстве нигде не нашел)?

Юрий_Р
17.08.2016, 08:56
Скажите - шунты для AO1 и AO2 ПР200 выбирать по аналогии с ПР114 (в руководстве нигде не нашел)?

Добрый день! Страница 25 руководства по эксплуатации http://www.owen.ru/uploads/rp_pr200_21.pdf

evg3798
18.08.2016, 02:30
Добрый день! Страница 25 руководства по эксплуатации http://www.owen.ru/uploads/rp_pr200_21.pdf

Спасибо. Закрутился и пропустил страницу.

Серёга Букашкин
25.08.2016, 10:04
Сделал программу в ОЛ для ПР200-24.2, но применять ее теперь решил для ПР200-220.2. Проверить не могу, сейчас есть только 24, но внушает подозрение почему при открытии проекта эти типы разделены? Не будет ли какой то проблемы. Я полагаю, что отличия только аппаратные. Кто сталкивался с подобными заменами 24 на 220, сообщите есть ли тут проблема с универсальностью программы для них.

Юрий_Р
25.08.2016, 10:24
Сделал программу в ОЛ для ПР200-24.2, но применять ее теперь решил для ПР200-220.2. Проверить не могу, сейчас есть только 24, но внушает подозрение почему при открытии проекта эти типы разделены? Не будет ли какой то проблемы. Я полагаю, что отличия только аппаратные. Кто сталкивался с подобными заменами 24 на 220, сообщите есть ли тут проблема с универсальностью программы для них.

Если отличия только в напряжении питания, а набор входов/выходов одинаковый, проблем быть не должно.

Сергей0308
25.08.2016, 10:32
Если отличия только в напряжении питания, а набор входов/выходов одинаковый, проблем быть не должно.

Тогда зачем выбор модели, если нет разницы?

25957

Юрий_Р
25.08.2016, 10:44
Тогда зачем выбор модели, если нет разницы?

25957

Ну там где 220.1 и 220.2 или 24.1 и 24.2 там будет проблема если залить программу с использованием аналоговых вх/вых в реле где они отсутствуют, или наоборот залить программу без аналоговых вх/вых в ПР в которых они есть. А выбор модели 220 и 24 обусловлен тем, что в реле 24 вольта имеется строка задания фильтра, в реле на 220 она отсутствует, но параметр фильтра можно задать с самого реле из меню входов. Вот на основании этого я и делаю такой вывод, ну и так же я сам постоянно записываю программы написанные для ПР200.24 в ПР200.220 и наоборот, правда я настройками фильтра пользуюсь редко, тут на 100% не могу пока подтвердить, а логика должна вся работать.

azat385
15.09.2016, 16:07
Добрый день,

напишите как перенести уже подключенную линию? какую комбинацию клавиш удерживать?

сейчас приходиться удалять линии и соединять заново.
версия 1.8.90.7193

Спасибо.

Ревака Юрий
15.09.2016, 16:25
Добрый день,

напишите как перенести уже подключенную линию? какую комбинацию клавиш удерживать?

сейчас приходиться удалять линии и соединять заново.
версия 1.8.90.7193

Спасибо.

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

Владимир Ситников
15.09.2016, 16:51
напишите как перенести уже подключенную линию? какую комбинацию клавиш удерживать?
сейчас приходиться удалять линии и соединять заново.
версия 1.8.90.7193

Это пожелание значится под названием

* Возможность передвигать соединение на новое место (http://www.owen.ru/forum/showthread.php?t=23235). Сейчас приходится удалять и рисовать все связи заново.

Если есть ещё какие-то пожелания к ОЛ/ПР/ПЛК -- пишите сюда: http://www.owen.ru/forum/showthread.php?t=24753&p=213716&viewfull=1#post213716

AI!
15.09.2016, 20:04
дыг года 3 уж как переносятся с лёгкостю....
по крайней мере у меня как минимум 3 года уже как получается...

Владимир Ситников
15.09.2016, 20:15
дыг года 3 уж как переносятся с лёгкостю....
по крайней мере у меня как минимум 3 года уже как получается...

Не путайте операцию "сделать схему покрасивее" с операцией "перецепить провод к другому элементу". После подключения нельзя просто взять и перецепить на другое место. Только удалением связи и добавлением новой.

AI!
15.09.2016, 20:44
понял.
а зачем?

rovki
15.09.2016, 21:13
понял.
а зачем?
Для ленивых ,те кто ластиком не любит работать ;)

Владимир Ситников
15.09.2016, 21:32
понял.
а зачем?

Я же всё описал. По ссылке ходили? http://www.owen.ru/forum/showthread.php?t=23235&p=194975&viewfull=1#post194975


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

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

azat385
16.09.2016, 00:55
Я не говорю, что оно постоянно нужно, но когда нужно, то незаменимо. Приходится связь удалять, и это лишний шанс внести ошибку.

поддерживаю! иногда быстрее удалить и заново соединить, а иногда там 10 связей и проект 2х летней давности (подзабытый малость) вот тут есть вероятность накосяпорить )

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

вроде бы все прозрачно или я чего то не понимаю?

capzap
16.09.2016, 06:50
поддерживаю! иногда быстрее удалить и заново соединить, а иногда там 10 связей и проект 2х летней давности (подзабытый малость) вот тут есть вероятность накосяпорить )

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

вроде бы все прозрачно или я чего то не понимаю?

т.е, Вы утверждаете что объект проработал два года и вдруг выяснилось наличие ошибки?

Pavel_
16.09.2016, 15:20
т.е, Вы утверждаете что объект проработал два года и вдруг выяснилось наличие ошибки?
Может быть azat385 утверждает, что для новой задачи за основу берет уже давно написанный проект и вносит в него необходимые изменения...

capzap
16.09.2016, 15:41
Может быть azat385 утверждает, что для новой задачи за основу берет уже давно написанный проект и вносит в него необходимые изменения...допустим, я выделил линию, у которой собираюсь перенести один конец в другое место, как срок давности проекта мне может помешать запомнить откуда и куда тянуть ветку?

Ревака Юрий
16.09.2016, 17:02
допустим, я выделил линию, у которой собираюсь перенести один конец в другое место, как срок давности проекта мне может помешать запомнить откуда и куда тянуть ветку?

Бывают случаи когда, допустим с выхода одного блока расходятся лучи в 5-10 мест, и если этот блок удаляется, то необходимо затем вернуть все "лучи" на место, что не всегда удобно, наверное об этом речь. Я обычно перестраховываюсь, добавляя перед таким разветвлением элемент "ИЛИ", тогда перед элементом можно удалять элементы, а связи остаются, это привычка с другого редактора, но смысл такой же. К сожалению не всегда знаешь когда и что понадобится переделывать, как вариант промежуточные переменные добавлять.

Эдуард_Н
16.09.2016, 17:10
как вариант промежуточные переменные добавлять.
Ну оно конечно можно и на костылях ходить.

melky
19.09.2016, 11:06
Киньте ссылку на макрос rovki - усреднение по принципу плавающего окна или как-то так...
Что-то найти не могу...

Василий Кашуба
19.09.2016, 12:46
Киньте ссылку на макрос rovki - усреднение по принципу плавающего окна или как-то так...
Что-то найти не могу...
Я делаю так. Если будут вопросы, спрашивайте.

melky
19.09.2016, 13:01
Спасибо, попробую...

Алексей Геннадьевич
19.09.2016, 13:14
Усреднитель "скользящим окном"26449
Необходимое значение циклов усреднения вводим в константу (кол-во циклов в 2 раза больше введённого)

sdy
20.09.2016, 00:45
Усреднитель "скользящим окном"26449
Необходимое значение циклов усреднения вводим в константу (кол-во циклов в 2 раза больше введённого)
Еще бы описание алгоритма, а то в этой паутине визуально трудно разобраться.

Алексей Геннадьевич
20.09.2016, 07:49
Еще бы описание алгоритма, а то в этой паутине визуально трудно разобраться.
3 регистра :
1- накопление (согласно установленному к-ву тактов накопления)
2- хранение
3 - списывание равными частями, кратными к-ву тактов накопления. (из-за особенности построения алгоритм "сглаживает" пиковые значения - если в одном такте пришло значение 900 а в следующем - 100, (при к-ве тактов=2) то списаны они будут равными частями по 500).

Алексей Геннадьевич
20.09.2016, 10:53
Здорово, но имхо сложновато для реализации столь простой задачи. Если сделать по принципу тактового конвейера сигнала на SEL то тот же результат получается проще, без этих 1,2,3, просто на выходе суммированием конвейера (ну потом просто поделить надо на кол-во элементов конвейера).
Так сделайте такой макрос на усреднение "скользящим окном" скажем... 500-2000 значений. Или когда неизвестна необходимая глубина накопления, и её нужно при ПНР менять. А потом поговорим.
Всё очень сильно от задачи зависит.

Владимир Ситников
20.09.2016, 10:58
Так сделайте такой макрос на усреднение "скользящим окном" скажем... 500-2000 значений. Или когда неизвестна необходимая глубина накопления, и её нужно при ПНР менять. А потом поговорим.
Всё очень сильно от задачи зависит.
Поговорим ещё раз об экспоненциальном сглаживании (http://www.owen.ru/forum/showthread.php?t=17153&page=136&p=200921&viewfull=1#post200921)?

2 умножения, одно сложение, и глубина окна легко настраивается

Алексей Геннадьевич
20.09.2016, 11:17
Поговорим ещё раз об экспоненциальном сглаживании (http://www.owen.ru/forum/showthread.php?t=17153&page=136&p=200921&viewfull=1#post200921)?

2 умножения, одно сложение, и глубина окна легко настраивается
http://www.owen.ru/forum/showthread.php?t=17153&page=137&p=201368&viewfull=1#post201368
Займитесь, если вам нетрудно. Только ширина "окна" должна настраиваться при необходимости.

Серёга Букашкин
20.09.2016, 12:23
2 умножения, одно сложение, и глубина окна легко настраивается
Рекуррентные методы сглаживания для целочисленных теряют точность. Метод с конвейерным хранением предистории последних выборок с переменным временем выборки дает и точность, и возможность измерять скорость изменения сигнала. Непонятно зачем на относительно большую глубину времени обрабатывать часто, "скользящим окном".

AI!
21.09.2016, 05:42
Рекуррентные методы сглаживания для целочисленных теряют точность. Метод с конвейерным хранением предистории последних выборок с переменным временем выборки дает и точность, и возможность измерять скорость изменения сигнала. Непонятно зачем на относительно большую глубину времени обрабатывать часто, "скользящим окном".я вам больше скажу - метод со "скользящим окном", где самый старый элемент удаляется не "лично", а "равными долями" - это и есть метод с экспоненциальным сглаживанием.
только вещественная точка искусственно сдвинута (напр. если n=4, то на два двоичных разряда, если n=10, то а 1 десятичный)

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

capzap
21.09.2016, 07:36
в прогах для форекса много вариантов всяких сглаживающих и во вполне понятных исходниках

azat385
21.09.2016, 10:07
Хочу сказать СПАСИБО разработчикам owen logic. Думал будет все намного сложнее :rolleyes:
сделал проект с нуля (впервые установил ПО) на ~100DI/50DO/4AI за 1 неделю и не проклял мир.

СПАСИБО разработчики!

Хотел спросить:
1.На чем написан лоджик?
2.Планируется ли сделать менеджер макросов? (насколько я понимаю, все макросы хранятся в самом проекте, что затрудняет переиспользование макросов: только через импорт/экспорт)

Евстигнеев Максим
21.09.2016, 11:41
Хочу сказать СПАСИБО разработчикам owen logic. Думал будет все намного сложнее :rolleyes:
сделал проект с нуля (впервые установил ПО) на ~100DI/50DO/4AI за 1 неделю и не проклял мир.

СПАСИБО разработчики!

Хотел спросить:
1.На чем написан лоджик?
2.Планируется ли сделать менеджер макросов? (насколько я понимаю, все макросы хранятся в самом проекте, что затрудняет переиспользование макросов: только через импорт/экспорт)

Добрый день!

Спасибо за отзыв.

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

orbita-skb
21.09.2016, 12:07
1.На чем написан лоджик?

Logic написан на C#

melky
22.09.2016, 12:23
Василий Кашуба http://www.owen.ru/forum/showthread.php?t=24760&p=220721&viewfull=1#post220721 - Не работает с отрицательными числами похоже это Усреднение....

Сергей0308
22.09.2016, 12:58
Василий Кашуба http://www.owen.ru/forum/showthread.php?t=24760&p=220721&viewfull=1#post220721 - Не работает с отрицательными числами похоже это Усреднение....

Замените элементы макросов и поставьте для значений с плавающей запятой, там же всё очень просто и понятно!

26507

Вместо SEL - FSEL и т. д.

melky
22.09.2016, 14:40
Спасибо, так и поступил.

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

melky
22.09.2016, 17:36
Удивился, что нет округлялки значений с плавающей точкой, может плохо искал и уже было ?
получилось вот такая ерунда, проверьте правильно ли работает ?

Если отбрасываемая цифра больше 5 то увеличивает на 1
Если отбрасываемая 5, а оставляемая четная, то не меняет последнюю, если нечетная то увеличивает.

Правда не городил огород с проверкой наличия цифр после 5-ки

Упрощенный вариант fRounde, соответствует округлению в Exel (без 3-его правила, см. ниже описание), подсмотрел у AI! как получать 1 и -1 :)

Сергей0308
22.09.2016, 18:23
Удивился, что нет округлялки значений с плавающей точкой, может плохо искал и уже было ?
получилось вот такая ерунда, проверьте правильно ли работает ?

Если отбрасываемая цифра больше 5 то увеличивает на 1
Если отбрасываемая 5, а оставляемая четная, то не меняет последнюю, если нечетная то увеличивает.

Правда не городил огород с проверкой наличия цифр после 5-ки

Вынужден с Вами не согласиться, только совсем недавно обсуждали, по моему вроде как разрулили или что не устраивает?
http://www.owen.ru/forum/showthread.php?t=9398&page=263

26521

melky
22.09.2016, 22:37
Сергей0308 не видел его, только не понял, где там округление до 2-х знаков после запятой ?

Получить хотел вот это, но в выложенном варианте немного ошибся...

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

Число 25,863 округлённо записывается как – 25,9. В данном случае цифра 8 будет усилена до 9, так как первая отсекаемая цифра 6, больше чем 5.
Число 45,254 округлённо записывается как – 45,3. Здесь цифра 2 будет усилена до 3, так как первая отсекаемая цифра равна 5, а за ней следует значащая цифра 1.

Второе правило
В случае если первая из отсекаемых цифр меньше чем 5, то усиления не производится.

Число 46,48 округлённо записывается как – 46. Число 46 наиболее близко к округляемому числу, чем 47.

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

Число 0,0465 округлённо записывается как – 0,046. В данном случае усиления не делается, так как последняя оставляемая цифра 6 является чётной.
Число 0,935 округлённо записывается как – 0,94. Последняя оставляемая цифра 3 усиливается, так как она является нечётной.

Ну и с минусами у меня тоже проблема :)

Обновил макрос. Округление вверх с учетом 3-его правила и отрицательных чисел.

Сергей0308
23.09.2016, 06:28
Сергей0308 не видел его, только не понял, где там округление до 2-х знаков после запятой ?

Получить хотел вот это, но в выложенном варианте немного ошибся...

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

Число 25,863 округлённо записывается как – 25,9. В данном случае цифра 8 будет усилена до 9, так как первая отсекаемая цифра 6, больше чем 5.
Число 45,254 округлённо записывается как – 45,3. Здесь цифра 2 будет усилена до 3, так как первая отсекаемая цифра равна 5, а за ней следует значащая цифра 1.

Второе правило
В случае если первая из отсекаемых цифр меньше чем 5, то усиления не производится.

Число 46,48 округлённо записывается как – 46. Число 46 наиболее близко к округляемому числу, чем 47.

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

Число 0,0465 округлённо записывается как – 0,046. В данном случае усиления не делается, так как последняя оставляемая цифра 6 является чётной.
Число 0,935 округлённо записывается как – 0,94. Последняя оставляемая цифра 3 усиливается, так как она является нечётной.

Ну и с минусами у меня тоже проблема :)

Обновил макрос. Округление вверх с учетом 3-его правила и отрицательных чисел.

Так это же проще пареной репы, что бы округлить до n знаков, после запятой, попробуйте число предварительно умножить, а после округления разделить на 10 в n-ой степени!
Можно и все ваши другие хотелки реализовать, но Вам наверно потребуется признак чётности-нечётности числа, по моему, если на 2 делится без остатка, значит 100% чётное, наверно есть варианты!

26549

Второй вход, для задания количества знаков после запятой!

AI!
23.09.2016, 08:34
там же всё очень просто и понятно!
26507Сделал стек с плавающей точкой ещё проще.

Ревака Юрий
23.09.2016, 09:19
Добавил последние макросы в общий перечень первого сообщения, в группу аналоговые преобразования. Спасибо всем за участие.

Ревака Юрий
23.09.2016, 09:25
...

Упрощенный вариант fRounde, соответствует округлению в Exel (без 3-его правила, см. ниже описание), подсмотрел у AI! как получать 1 и -1 :)

При добавлении в проект сразу двух макросов, OL считает что такой макрос уже в проекте есть, хоть он и имеет другое имя, и не добавляет его, чтобы этого не происходило сохраняйте макрос через "Сохранить как новый макрос", тогда будет сгенерирован новый id, и макросы будут считаться разными.

melky
23.09.2016, 09:30
Извиняюсь, обновил вложение на архив. Теперь там оба макроса, простой и расширенный с 3-им правилом (его чуть подкорректировал, убрал лишние элементы за счет упрощения проверки)
Теперь можно загружать в проект оба Округлятора, простой и Ex - расширенный

Да, я с утра понял, что OL их по ID определяет, поэтому подправил.
Оба макроса с округлением вверх, по крайней мере округляет как Exel без явного указания как это делать.

Ревака Юрий , ссылку на файлик тогда подправите по возможности.

Ссылку исправил!

melky
23.09.2016, 15:17
Наверное было нефик делать, раз сделал такое. Не знаю, было или не было. AND, OR, XOR для целочисленных значений до 32-х бит.

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

Начинал делать на простых Extract, Putbit но что-то показалось, что для 32-х бит такая простыня в макросе окажется, что решил сделать как сделал.

Ревака Юрий
23.09.2016, 15:32
Наверное было нефик делать, раз сделал такое. Не знаю, было или не было. AND, OR, XOR для целочисленных значений до 32-х бит.

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

Начинал делать на простых Extract, Putbit но что-то показалось, что для 32-х бит такая простыня в макросе окажется, что решил сделать как сделал.

Я Вас наверное расстрою, но:D

melky
23.09.2016, 15:37
Аха-ха, не, не расстроили, чета я тормознул, что они меняют свои входа когда к ним подключаются int-ами :)

В любом случае зарядка для мозгов :)26561

Ревака Юрий
23.09.2016, 15:48
Аха-ха, не, не расстроили, чета я тормознул, что они меняют свои входа когда к ним подключаются int-ами :)

В любом случае зарядка для мозгов :)26561

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

melky
23.09.2016, 15:58
а я помнил, да забыл, сейчас глянул в справку и точно :)))

Кстати не хватает ROR и ROL может быть кто-то делал, не помню...

Точно кто-то делал, нашел у себя в архивах... только не хватает именно таких, как SHL, SHR в самом ПО
Чтобы импульсы не подавать и т.д.

В общем можно удалить этот велосипед с and, or, xor

Сергей0308
25.09.2016, 13:43
Так сделайте такой макрос на усреднение "скользящим окном" скажем... 500-2000 значений. Или когда неизвестна необходимая глубина накопления, и её нужно при ПНР менять. А потом поговорим.
Всё очень сильно от задачи зависит.

Вроде как просили, даже переборщил малёк с "бесконечной длиной стека"(пока сброс не нажмёшь), или что не так?

26593

Вот поправил со стеком длиной 1000:

26597

26601

26602

Я всю свою речь веду к тому, неужели нельзя проще придумать, чем у Вас:

26595

Лично я, глядя на подобные конструкции начинаю выяснять, не проще ли на абаке посчитать!

Алексей Геннадьевич
26.09.2016, 15:02
Сергей0308 Вы макрос "сумматор" откройте. И программу приложите.
И всё зависит от того, для какой цели применяете.

Лично я, глядя на подобные конструкции начинаю выяснять, не проще ли на абаке посчитать!
И чего непонятно?
Для тех целей, для которых макрос писался-самое то.

абак
"феликса" возьмите, зачем так сразу в древний мир? ;)

Сергей0308
26.09.2016, 19:17
Сергей0308 Вы макрос "сумматор" откройте. И программу приложите.
И всё зависит от того, для какой цели применяете.

И чего непонятно?
Для тех целей, для которых макрос писался-самое то.

"феликса" возьмите, зачем так сразу в древний мир? ;)

26668

Вот проект, работает так: опрашивает аналоговый вход 100 раз в секунду, значения первых 1000 измерений суммируются и делятся на количество измерений(1000), затем каждый раз к сумме добавляется новое значение измерения и списывается значение равное сумме всех значений, делённое на 1000(количество измерений), тоесть как Вы написали равными частями, можно глубину вложения хоть миллион сделать, может быть упростит вашу каракатицу и за ПНР можно быть спокойным! Позже деление на 1000 перенёс с выхода на вход, так как: a/c + b/c = (a+b)/c и добавил функцию сохранения текущего значения на выходе при сбросе(например изменения глубины вложения), на время достижения этой глубины!

26669

AI!
27.09.2016, 11:24
Вот проектсудя по названию, внутри должен быть стек? но его там я не нашёл!

Сергей0308
27.09.2016, 11:42
судя по названию, внутри должен быть стек? но его там я не нашёл!

Да, название неправильное, щёлкнул на имевшимся файле и добавил несколько цифр, чтобы не затереть его(для себя сохранял, но попросили выложить), исправлю! Просили списывать равными частями, а в этом случае стек избыточен и достаточно всё в кучу суммировать! Хотя со стеком считаю "правильней", но иногда "правильность" страдает из-за простоты!

melky
27.09.2016, 23:18
Сижу ломаю голову, светлых мыслей нет ваще.
Суть, есть обычные гаражные роллеты с кнопочкой и приводом. Нажали, роллета поехала вверх, нажали - остановилась, нажали еще раз - поехала вниз.
Физически могу поставить только одну релюшку на открытое состояние, больше на ПР нет свободных входов, но возможно когда-то добавятся.
Нужно - по команде (сухой контакт параллельно кнопке) запускать на открытие, при этом мы не знаем, куда поедет роллета. Дождаться сработки концевика и остановиться. Если не дождались, подать импульс на открытие еще раз, дождаться сработки концевика и заблокироваться в данном положении.

сигнала с концевика открытого состояния пока не будет и появится непонятно когда. Но когда появится, сигнал на закрытие должен так же реагировать как и на открытие.

Собственно как организовать двойной импульс при отсутствии сигнала от концевика и как заблокировать дальнейшие попытки что-то делать ? так как потом роллетой могут и руками управлять...
Что-то фигня какая-то получается...

rovki
27.09.2016, 23:39
Не хватает выходов используйте блютуз\вайфай реле ;) https://youtu.be/AQ2do_6KrwA

игорь68
27.09.2016, 23:50
Если физически сделать так что при выключенном выходе ПР роллеты закрыты. То на выход ПР сажаем простое реле с перекидным контактом. Подал питание на реле с выхода ПР -сигнал на открытие. Снял питание с выхода ПР сигнал на закрытие.

melky
28.09.2016, 09:18
игорь68 так физически сделать нельзя, кнопкой необходимо управлять и в ручном режиме без ПР.
Сделать обратную связь от кнопки можно, добавив транзисторный ключ, залезть в схему управления роллеты для согласования с напряжением ПР но нет входов. Даже на концевик закрытого состояния сейчас входа нет.

rovki нет такой возможности...

Ревака Юрий
28.09.2016, 09:38
игорь68 так физически сделать нельзя, кнопкой необходимо управлять и в ручном режиме без ПР.
Сделать обратную связь от кнопки можно, добавив транзисторный ключ, залезть в схему управления роллеты для согласования с напряжением ПР но нет входов. Даже на концевик закрытого состояния сейчас входа нет.

rovki нет такой возможности...

А если программно считать положение роллеты, я такой алгоритм пробую реализовать в макросе КЗР. Но надо быть уверенным что время закрытия/открытия ~одинаково в каждом цикле, хотя если будет один концевик, то можно делать принудительную установку "0", т.е. ошибка не будет накапливаться.

Алексей Геннадьевич
28.09.2016, 10:12
Сергей0308
1) "Скользящее окно" в вашей программе не обнаружено. Есть накопление определённого к-ва импульсов с последующим выводом.
2) Зачем нужен вход сброса?
3) Тактирование должно быть привязано к источнику сигнала - тактам ПИД-регулятора, например. Или иному внешнему подсчёту, т.к. измеряем технологическую величину, а не диаметр сферического коня в вакууме.

Посмотрите как работает обычное скользящее окно на 10 элементов.

melky
28.09.2016, 10:18
Ревака Юрий да нельзя там программно считать положение по причине того, что сохраняется ручное управление и роллету можно открыть частично, при этом оба концевика размыкаются., потом можно чуть приоткрыть еще, чуть призакрыть еще руками. А обратной связи с кнопкой нет и думаю не будет.

Собственно как я это вижу. Первоначально будет снят сигнал только с открытого положения и возможно добавится сигнал с полностью закрытого, но это под вопросом. Мне необходимо открыть по условию.
имеем. 1 сигнал "открыто"
Не знаем в каком положении роллета если она открыта не до конца. Подаем импульс на кнопку (время импулся ТР для регулировки)
Ждем Н время до открытия (засекается на действующих роллетах + запас полного хода если были полностью закрыты), если сигнал №1 не пришел, подаем еще раз импульс и пять ждем. Пришел сигнал №1 все, больше ничего не делаем, даже если роллету потом закрыли руками.

Сигнал №2 (когда появится) - положение "закрыто". Если знаем точно, что роллета закрыта то просто подаем импульс и ждем сигнала №1 и не предпринимаем попыток подавать 2-й импульс на случай, если человек был рядом и сам кнопкой остановил ход роллеты.
Опять же, если у меня будет сигнал №2, но при этом роллета была открыта на половину, то идем по алгоритму, который выше

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

Навертел что непонятно ажжж

Василий Кашуба
28.09.2016, 11:03
Ревака Юрий да нельзя там программно считать положение по причине того, что сохраняется ручное управление и роллету можно открыть частично, при этом оба концевика размыкаются., потом можно чуть приоткрыть еще, чуть призакрыть еще руками. А обратной связи с кнопкой нет и думаю не будет.

Собственно как я это вижу. Первоначально будет снят сигнал только с открытого положения и возможно добавится сигнал с полностью закрытого, но это под вопросом. Мне необходимо открыть по условию.
имеем. 1 сигнал "открыто"
Не знаем в каком положении роллета если она открыта не до конца. Подаем импульс на кнопку (время импулся ТР для регулировки)
Ждем Н время до открытия (засекается на действующих роллетах + запас полного хода если были полностью закрыты), если сигнал №1 не пришел, подаем еще раз импульс и пять ждем. Пришел сигнал №1 все, больше ничего не делаем, даже если роллету потом закрыли руками.

Сигнал №2 (когда появится) - положение "закрыто". Если знаем точно, что роллета закрыта то просто подаем импульс и ждем сигнала №1 и не предпринимаем попыток подавать 2-й импульс на случай, если человек был рядом и сам кнопкой остановил ход роллеты.
Опять же, если у меня будет сигнал №2, но при этом роллета была открыта на половину, то идем по алгоритму, который выше

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

melky
28.09.2016, 11:08
Василий Кашуба выложил первый вариант. Какой-то он монструозный получился... Счетчик планировался как защита, если вдруг не сработает концевик нужного положения, чтобы потом макрос не гонял роллеты туда суда а к примеру остановился на полпути (типа подав 3-й импульс), уменьшив время полного хода. Чтобы при открытии (или закрытии) так как ПР может не знать на какую операцию следующее нажатие кнопки будет направлено роллеты хоть как-то остались открыты.... Но пока и с полными циклами целый огород получается.

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

Да, входов "открыть" и "закрыть" не будет, это только для макроса. Это будут сетевые переменные потом

Ревака Юрий
28.09.2016, 11:11
Ревака Юрий да нельзя там программно считать положение по причине того, что сохраняется ручное управление

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

melky
28.09.2016, 11:22
ручная кнопка эта штатная от роллет, питание скорее всего 5В и подается скорее всего на транзисторный ключ платы в модуле роллет. Не хотелось бы ее куда-то заводить через ПР. Мало ли. ПР может быть выключен, поломаться и что, оставаться без управления роллет ?
А так, реле ПР просто дублирует работу кнопки. Просто человек хочет сделать удаленное управление.
Скорее всего один вход я еще смогу освободить, чтобы оба концевика положения завести, но пока не факт. К тому же потом хотят добавить и внешние ворота....

Кстати когда там модули DIO появятся для ПР200 ? :)

Ревака Юрий
28.09.2016, 11:39
ручная кнопка эта штатная от роллет, питание скорее всего 5В и подается скорее всего на транзисторный ключ платы в модуле роллет. Не хотелось бы ее куда-то заводить через ПР. Мало ли. ПР может быть выключен, поломаться и что, оставаться без управления роллет ?
А так, реле ПР просто дублирует работу кнопки. Просто человек хочет сделать удаленное управление.
Скорее всего один вход я еще смогу освободить, чтобы оба концевика положения завести, но пока не факт. К тому же потом хотят добавить и внешние ворота....

Кстати когда там модули DIO появятся для ПР200 ? :)

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

melky
28.09.2016, 12:11
Кнопка не даст понимания о положении роллеты, так как по повторному нажатию она остановится, по третьему пойдет в другую сторону.
Это тогда надо 3 сигнала заводить на реле. "открыто", "закрыто", "кнопка" и по нажатиям кнопки и первоначальному положению роллеты определять что будет дальше - закрытие, останов или открытие.
Входов просто столько нет. А когда появится модуль неизвестно.
Хотя да, неплохо было бы сделать макрос с учетом еще и кнопки... но промежуточное реле на нее не поставишь, это просто кнопка а не выключатель.

Василий Кашуба
28.09.2016, 12:13
Василий Кашуба выложил первый вариант. Какой-то он монструозный получился... Счетчик планировался как защита, если вдруг не сработает концевик нужного положения, чтобы потом макрос не гонял роллеты туда суда а к примеру остановился на полпути (типа подав 3-й импульс), уменьшив время полного хода. Чтобы при открытии (или закрытии) так как ПР может не знать на какую операцию следующее нажатие кнопки будет направлено роллеты хоть как-то остались открыты.... Но пока и с полными циклами целый огород получается.

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

Да, входов "открыть" и "закрыть" не будет, это только для макроса. Это будут сетевые переменные потом
Посмотрите мой вариант, может какую идею возьмёте. Писал года три назад для ПР110.

Ревака Юрий
28.09.2016, 12:22
Кнопка не даст понимания о положении роллеты, так как по повторному нажатию она остановится, по третьему пойдет в другую сторону.
Это тогда надо 3 сигнала заводить на реле. "открыто", "закрыто", "кнопка" и по нажатиям кнопки и первоначальному положению роллеты определять что будет дальше - закрытие, останов или открытие.
Входов просто столько нет. А когда появится модуль неизвестно.
Хотя да, неплохо было бы сделать макрос с учетом еще и кнопки... но промежуточное реле на нее не поставишь, это просто кнопка а не выключатель.

Тогда ждать модулей расширения, или через RS485, а ПР200 в какой конфигурации?

melky
28.09.2016, 12:50
Василий Кашуба кажется даже лучше не вникать :) попробовал в эмуляторе, даже алгоритм работы ворот совершенно другой. при запуске сразу включится Q2, так понимаю закрытие, если ворота приоткрыты, а если не надо закрывать пока не дали команду ?

Сергей0308
28.09.2016, 13:04
Сергей0308
1) "Скользящее окно" в вашей программе не обнаружено. Есть накопление определённого к-ва импульсов с последующим выводом.
2) Зачем нужен вход сброса?
3) Тактирование должно быть привязано к источнику сигнала - тактам ПИД-регулятора, например. Или иному внешнему подсчёту, т.к. измеряем технологическую величину, а не диаметр сферического коня в вакууме.

Посмотрите как работает обычное скользящее окно на 10 элементов.

Вот Ваша цитата: 3 - списывание равными частями, кратными к-ву тактов накопления. (из-за особенности построения алгоритм "сглаживает" пиковые значения - если в одном такте пришло значение 900 а в следующем - 100, (при к-ве тактов=2) то списаны они будут равными частями по 500).
При нормальном стеке, новое значение пишется в стек, а самое "старое" списывается, так что я старался сделать как Вы написали, теперь Вы пишите нужен стек, как бы не помешало бы или определиться или разобраться что как работает, Вы не видите здесь противоречия?

Василий Кашуба
28.09.2016, 13:34
Василий Кашуба кажется даже лучше не вникать :) попробовал в эмуляторе, даже алгоритм работы ворот совершенно другой. при запуске сразу включится Q2, так понимаю закрытие, если ворота приоткрыты, а если не надо закрывать пока не дали команду ?
Я же сказал, что это для ворот, а не для ставней. а так обратите внимание на макрос, он делался для управления от радиокнопки. Входы 2 и 4 можно не использовать.

Алексей Геннадьевич
28.09.2016, 14:51
Вот Ваша цитата: 3 - списывание равными частями, кратными к-ву тактов накопления. (из-за особенности построения алгоритм "сглаживает" пиковые значения - если в одном такте пришло значение 900 а в следующем - 100, (при к-ве тактов=2) то списаны они будут равными частями по 500).
При нормальном стеке, новое значение пишется в стек, а самое "старое" списывается, так что я старался сделать как Вы написали, теперь Вы пишите нужен стек, как бы не помешало бы или определиться или разобраться что как работает, Вы не видите здесь противоречия?
У вас даже намёка на стек или его подобие нет.

так что я старался сделать как Вы написали,
Вопрос- зачем, для решения какой задачи вам нужен макрос "скользящего окна"? Всё от задачи зависит, если с изменением температуры-скорости за 2 минуты и с усреднением пойдёт, то для учёта кол-ва деталей - нет.

Сергей0308
28.09.2016, 21:26
Так сделайте такой макрос на усреднение "скользящим окном" скажем... 500-2000 значений. Или когда неизвестна необходимая глубина накопления, и её нужно при ПНР менять. А потом поговорим.
Всё очень сильно от задачи зависит.


3 регистра :
1- накопление (согласно установленному к-ву тактов накопления)
2- хранение
3 - списывание равными частями, кратными к-ву тактов накопления. (из-за особенности построения алгоритм "сглаживает" пиковые значения - если в одном такте пришло значение 900 а в следующем - 100, (при к-ве тактов=2) то списаны они будут равными частями по 500).


У вас даже намёка на стек или его подобие нет.

Вопрос- зачем, для решения какой задачи вам нужен макрос "скользящего окна"? Всё от задачи зависит, если с изменением температуры-скорости за 2 минуты и с усреднением пойдёт, то для учёта кол-ва деталей - нет.

Для решения подобной задачи, что Вы озвучили, когда списывается равными частями, стек не подходит, уже писал почему, он списывает не равными частями а самое "старое", поэтому я его и не поставил, что он не подходит, что и пытаюсь безрезультатно Вам объяснить! К слову раньше выкладывал где-то, возможно в виде картинки подобный стек, только там был дополнительный целочисленный вход для указания ширины окна:

26735

Мне лично пока хватает скользящего среднего:

26725

26726

Во встречной любезности , если кого заинтересовало, выкладываю свой стек, особо комментировать пока не буду, у входов-выходов есть комментарии, если чё, спросите!

Игорюня
04.10.2016, 13:40
Подскажите. Что такое "[B]Обратная связь[B]"? Кнопочка сверху. В хелпе вообще за нее не сказано.

Сергей0308
04.10.2016, 13:43
Подскажите. Что такое "[B]Обратная связь[B]"? Кнопочка сверху. В хелпе вообще за нее не сказано.

Задержка на цикл!

Игорюня
04.10.2016, 15:12
Спасибо. Это я так понимаю - линия будет выполняться в последнюю очередь в цикле? Или через цикл?

Владимир Ситников
04.10.2016, 15:20
Спасибо. Это я так понимаю - линия будет выполняться в последнюю очередь в цикле? Или через цикл?

У неё очень простой смысл: значение на её выходе равно "значению входа этой связи в прошлом цикле".
Не надо заморачиваться и думать "в какой момент она работает". Она просто хранит значение входа с прошлого цикла и подаёт его в следующем цикле на свой выход.

Так понятнее?

Ещё вариант -- можно считать, что это "линия задержки на 1 такт".

AI!
04.10.2016, 15:29
"линия задержки на 1 такт".на глобусе есть похожая линия - "линия перемены даты", в ПР она тоже пунктирная :cool:

Игорюня
04.10.2016, 16:46
Теперь все понятно.

Серёга Букашкин
18.10.2016, 12:21
Существует ли возможность отправлять по Modbus под командой "10" не 2 регистра, а больше, массив данных, например 20 регистров с адресами подряд? Очень надо для ускорения обмена.

energvk
18.10.2016, 13:06
12 регистров можно за раз отправить

Серёга Букашкин
18.10.2016, 14:35
12 регистров можно за раз отправить
Хорошо бы...только как? Речь идет о ПР200 в режиме Мастер. Галочка "групповой запрос" не активна. Как указать длину массива на отправку?

Ревака Юрий
18.10.2016, 15:57
Хорошо бы...только как? Речь идет о ПР200 в режиме Мастер. Галочка "групповой запрос" не активна. Как указать длину массива на отправку?

Данный функционал не реализован, только по очереди читать/писать.

Эдуард_Н
20.10.2016, 17:25
Люди, подскажите версия 93 ОЛ нормально программирует ПР110 или надо 51-ой?

Сергей0308
20.10.2016, 18:27
Люди, подскажите версия 93 ОЛ нормально программирует ПР110 или надо 51-ой?

ПР110 не имеем, а в ПР114 совсем недавно программу заливал без особых проблем!

27149

Павел Братковский
21.10.2016, 08:06
Люди, подскажите версия 93 ОЛ нормально программирует ПР110 или надо 51-ой?

пр110 нормально программируется новой версией

Эдуард_Н
21.10.2016, 08:45
Спасибо всем, успокоили.

Серёга Букашкин
15.11.2016, 13:32
Когда к ОЛ 1.8.93 подключил ПР200, то драйвер поставился на СОМ12, но ОЛ отказывается с ним работать (в свойствах порта на ОЛ тоже конечно СОМ12). Пишет что СОМ12 не существует. На самом деле драйвер встал нормально. Только когда поменял сам порт с СОМ12 на СОМ2 и в свойствах порта на ОЛ тоже на СОМ2), то связь появилась. ОС- WIN7. Это так и должно быть? ОЛ ограничен в поддержке возможных портов СОМ?

Ревака Юрий
15.11.2016, 13:36
Когда к ОЛ 1.8.93 подключил ПР200, то драйвер поставился на СОМ12, но ОЛ отказывается с ним работать (в свойствах порта на ОЛ тоже конечно СОМ12). Пишет что СОМ12 не существует. На самом деле драйвер встал нормально. Только когда поменял сам порт с СОМ12 на СОМ2 и в свойствах порта на ОЛ тоже на СОМ2), то связь появилась. ОС- WIN7. Это так и должно быть? ОЛ ограничен в поддержке возможных портов СОМ?

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

Серёга Букашкин
22.11.2016, 11:06
При переходе от ОЛ117 к 1.8.93 приятно удивило сокращение объемов файлов проектов на 30% примерно. Это хорошо. А есть ли надежда увидеть более быструю отрисовку на большом проекте? При объеме проекта более 30 мегов отрисовка ворочается еле-еле. Было бы хорошо чтобы можно было открыть еще страницы в том же проекте, связанные общим списком переменных, но снова с быстрой отрисовкой, как при создании макроса. Если часть проекта засунуть в макрос без использования его входов и выходов (только ради быстрой отрисовки) и связать с другими через переменные, а не через входы и выходы макроса, эти функции не будут работать. У макроса свой список переменных и они не связываются с одноименными в главном списке проекта. Эти связи переменных макроса с основным проектом через общие переменные сделать совсем невозможно? Чтобы была бы в макросе часть проекта, но без провождения через его входы/выходы.

Серёга Букашкин
22.11.2016, 12:51
При назначении переменной в макросе что значит её опция "Использование в макросе"? Можно ли оставлять НЕТ?

Алексей Геннадьевич
22.11.2016, 14:04
При назначении переменной в макросе что значит её опция "Использование в макросе"? Можно ли оставлять НЕТ?
Эта опция нужна если используется несколько однотипных макросов с разными заданными параметрами.
Параметры задаёте в свойствах макроса.

Серёга Букашкин
22.11.2016, 15:05
Эта опция нужна если используется несколько однотипных макросов с разными заданными параметрами.
Параметры задаёте в свойствах макроса.

Не понимаю чем это отличается от ввода в макрос переменной с параметром через отданный для этого вход макроса.

Ревака Юрий
22.11.2016, 15:56
Не понимаю чем это отличается от ввода в макрос переменной с параметром через отданный для этого вход макроса.

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

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

Эдуард_Н
23.11.2016, 18:26
ОВЕНовцы пожалуйста выложите пример программы в котором показано как правильно делать переходы по экранам.

Владимир Ситников
23.11.2016, 18:30
ОВЕНовцы пожалуйста выложите пример программы в котором показано как правильно делать переходы по экранам.

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

Эдуард_Н
23.11.2016, 18:34
Пришли же уже к выводу, что правильный вариант -- доработать ОЛ, чтобы в программе можно было обрабатывать нажатия клавиш и переключать экраны по номерам.

Ну пока доработают это я уже на пенсию пойду:), а как это переключать экраны по номерам?

Эдуард_Н
23.11.2016, 18:42
Если бы в ОЛ была эмуляция работы экрана то и вопросов меньше было.

Владимир Ситников
23.11.2016, 18:44
Ну пока доработают это я уже на пенсию пойду:), а как это переключать экраны по номерам?

Например, так:
1) У каждого экрана указывается его номер (или даже название -- тут нужно подумать)
2) Делается ФБ "сменить_экран" с одним входом -- "номер_экрана"
3) Если значение этого входа меняется, то ПР меняет отображаемый экран

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

Но это, разумеется, ещё не реализовано в ОЛ.

Sacha
23.11.2016, 18:53
Здравствуйте! Подключаю ПР200 к стороннему прибору по RS486. Предположим надо опросить адрес регистра 0x000A. В ПР задавать адрес - 10?

Эдуард_Н
23.11.2016, 18:55
У меня сейчас очень не удобные переходы, и клиенту сложно объяснять как гулять по меню.

Sacha
23.11.2016, 19:02
Осуществил небольшой проект используя ПР200 и панель СП307. Обнаружил в ПР200 некорректность работы PID-регулятора в режиме "холодильник". Наглядно это заметно, если Ti и Тd =0 (PID-регулятор работает,как П-регулятор), перехожу на ручной режим (переключив вход "Е"), вывожу установку на средний диапазон работы, предположим PWR =20 (с помощью блока "Запись в ФБ"), на выходе соответственно тоже наблюдаем 20% мощности и при достижении рассогласования близким к нулю (на входах "Pv" и "Sp") перевожу систему в автомат (переключив вход "Е") в этот момент, на выходе в место 20% становится 80%(что ни есть "гуд"). Как выкрутился? 1.Перевел регулятор в режим "нагреватель" 2.от 100 отнял мощность установленную в ручке и подал на вход РWR (блок "Запись в ФБ") 3.100 минус выход РWR -получил искомую величину. Уставки "выход MAX" и "выход MIN" вообще не понял как работает... пришлось отключить. OWEN Logic 1.8.93.7745.

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

С уважением, Александр.

Сергей0308
23.11.2016, 22:44
При назначении переменной в макросе что значит её опция "Использование в макросе"? Можно ли оставлять НЕТ?

Вот для наглядности:

27747

27748

Хотя в самом макросе значения констант соответственно 1 - 16(можно открыть любой из 32 экземпляров и посмотреть), но свойства макроса имеют приоритет над значениями, назначенными в макросе, поэтому это и фунциклирует!

Эдуард_Н
24.11.2016, 04:11
Осуществил небольшой проект используя ПР200 и панель СП307. Обнаружил в ПР200 некорректность работы PID-регулятора в режиме "холодильник". Наглядно это заметно, если Ti и Тd =0 (PID-регулятор работает,как П-регулятор), перехожу на ручной режим (переключив вход "Е"), вывожу установку на средний диапазон работы, предположим PWR =20 (с помощью блока "Запись в ФБ"), на выходе соответственно тоже наблюдаем 20% мощности и при достижении рассогласования близким к нулю (на входах "Pv" и "Sp") перевожу систему в автомат (переключив вход "Е") в этот момент, на выходе в место 20% становится 80%(что ни есть "гуд"). Как выкрутился? 1.Перевел регулятор в режим "нагреватель" 2.от 100 отнял мощность установленную в ручке и подал на вход РWR (блок "Запись в ФБ") 3.100 минус выход РWR -получил искомую величину. Уставки "выход MAX" и "выход MIN" вообще не понял как работает... пришлось отключить. OWEN Logic 1.8.93.7745.

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

С уважением, Александр.

Проектик бы выложили, если не секретный.

Sacha
24.11.2016, 11:04
Проектик бы выложили, если не секретный.

Вот!!! Пожалуйста!!!
27752

Ревака Юрий
25.11.2016, 11:02
ОВЕНовцы пожалуйста выложите пример программы в котором показано как правильно делать переходы по экранам.

Все зависит от задачи, у каждого свое понятие как правильно. Все возможности как осуществляются переходы, есть в настройках экрана, это и нажатие и удержание кнопок и всевозможные комбинации. В прикрепленном файле есть 2 примера, первый самый простой, переход между экранами по нажатию ALT, второй вызов меню по дискретному входу, с автоматическим возвратом через 5 сек, настраивается в программе. Я использую как правило кнопку ALT, по той причине что она не участвует явно в управлении экраном, к примеру если на экране строк несколько, то кнопки вниз вверх будут для пролистывания, и если эти кнопки назначить на переход, может получиться не очень удобно работать, так же и с остальными кнопками, если нет редактируемых переменных, можно задействовать SEL и т.д.

Эдуард_Н
25.11.2016, 11:14
Вот-вот, очень не удобно если две строки и переход через SEL, надо нажать SEL потом кнопку вверх и если не то выбралось то нажать вниз потом опять SEL и вверх. Полная хрень, чё нельзя в ОЛ сделать что бы одна строка всегда была выделенной и при листании эта выделенность переходила от строки к строке и по нажатии на ввод осуществлялся вход в следующее меню.

Эдуард_Н
28.11.2016, 10:30
Вот-вот, очень не удобно если две строки и переход через SEL, надо нажать SEL потом кнопку вверх и если не то выбралось то нажать вниз потом опять SEL и вверх. Полная хрень, чё нельзя в ОЛ сделать что бы одна строка всегда была выделенной и при листании эта выделенность переходила от строки к строке и по нажатии на ввод осуществлялся вход в следующее меню.

И кто ни будь из ОВЕНа возмёт на заметку для исправления или мы так и будем мучится?

Ревака Юрий
28.11.2016, 10:34
И кто ни будь из ОВЕНа возмёт на заметку для исправления или мы так и будем мучится?

Так в чем мучение, не используйте переходы по SEL в тех экранах где есть редактируемые переменные, по поводу постоянной выделенности не совсем понятно, в одной строке может быть до 16 регулируемых переменных, и как их тогда выбирать, если вся строка будет выделенной?

Эдуард_Н
28.11.2016, 10:48
Так в чем мучение, не используйте переходы по SEL в тех экранах где есть редактируемые переменные, по поводу постоянной выделенности не совсем понятно, в одной строке может быть до 16 регулируемых переменных, и как их тогда выбирать, если вся строка будет выделенной?

Ну я же выкладывал проект где и показано как у меня сделаны переходы.

Эдуард_Н
28.11.2016, 11:06
по поводу постоянной выделенности не совсем понятно

Вы когда по меню телека или ДВДишника ходите видите, что эта выделенность переходит от строки к строке? Вот так и нужно делать.

Ревака Юрий
28.11.2016, 13:09
Ну я же выкладывал проект где и показано как у меня сделаны переходы.

Посмотрел программу, залив в реле, честно говоря, меню не самое удобное, даже имея исходник, я не сразу понял как работает управление. Вся фишка в том, что при нажатии SEL нет индикации что элемент выделен, потому что для режима false нет ничего на индикации.

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

Ревака Юрий
28.11.2016, 13:22
Вы когда по меню телека или ДВДишника ходите видите, что эта выделенность переходит от строки к строке? Вот так и нужно делать.

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

Серёга Букашкин
28.11.2016, 13:30
при нажатии SEL нет индикации что элемент выделен, потому что для режима false нет ничего на индикации.
Поэтому сейчас на false нужно что-то ставить в символ, чтобы была индикация мигания. Это не всегда красиво...Нельзя ли если там пробел мигать хотя бы точкой?

Эдуард_Н
28.11.2016, 13:38
Посмотрел программу, залив в реле, честно говоря, меню не самое удобное, даже имея исходник, я не сразу понял как работает управление. Вся фишка в том, что при нажатии SEL нет индикации что элемент выделен, потому что для режима false нет ничего на индикации.

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

Не знаю на сколько Ваш вариант удобней, а у меня индикация выбора осуществляется знаком"<".
И вообще, видите как в этом плане недоработан ОЛ?

Ревака Юрий
28.11.2016, 13:38
Поэтому сейчас на false нужно что-то ставить в символ, чтобы была индикация мигания. Это не всегда красиво...Нельзя ли если там пробел мигать хотя бы точкой?

Посмотрите вариант который я привел выше, может он тоже подойдет, пробел и есть пробел.

Серёга Букашкин
30.11.2016, 15:09
Существует ли возможность в ОЛ отслеживать отправку или прием сетевой переменной? Прямых средств похоже нет. Есть ли косвенные методы считать отправки или акты приема с целью наблюдения за качеством и интенсивностью связи по RS-485? У сетевой переменной есть понятие назначения целочисленной переменной, в которой ее статус. Что там содержится? Надежда осталась только на этот никем не поясняемый статус сетевой переменной, к тому же в виде числа. Объясните его содержание.

Pavel_
01.12.2016, 16:49
Существует ли возможность в ОЛ отслеживать отправку или прием сетевой переменной? Прямых средств похоже нет. Есть ли косвенные методы считать отправки или акты приема с целью наблюдения за качеством и интенсивностью связи по RS-485? У сетевой переменной есть понятие назначения целочисленной переменной, в которой ее статус. Что там содержится? Надежда осталась только на этот никем не поясняемый статус сетевой переменной, к тому же в виде числа. Объясните его содержание.

В этой теме: "ПР200, "управляемые" запросы Modbus на несколько устройств. (http://www.owen.ru/forum/showthread.php?t=22974)" обсуждался ваш вопрос, но решения пока нет.

СергейНовосиб
15.02.2017, 06:18
Привет!
У меня на ПР200 выполнен проект, работает и находится на расстоянии около 4000км, и надо внести изменения в программу. Там есть человек, который сможет залить новую программу, но нет гарантии, что перед заливкой он не внесет изменения (по знанию, незнанию, с умыслом или нет).
Вопрос разработчикам: можно сделать так, что бы с компилированную программу заливать в ПР200? Или без возможности открытия исходного текста.

Сергей0308
15.02.2017, 06:32
Привет!
У меня на ПР200 выполнен проект, работает и находится на расстоянии около 4000км, и надо внести изменения в программу. Там есть человек, который сможет залить новую программу, но нет гарантии, что перед заливкой он не внесет изменения (по знанию, незнанию, с умыслом или нет).
Вопрос разработчикам: можно сделать так, что бы с компилированную программу заливать в ПР200? Или без возможности открытия исходного текста.

Как вариант частичного решения - закрыть макросом с паролем!

Алексей Геннадьевич
15.02.2017, 12:29
Привет!
У меня на ПР200 выполнен проект, работает и находится на расстоянии около 4000км, и надо внести изменения в программу. Там есть человек, который сможет залить новую программу, но нет гарантии, что перед заливкой он не внесет изменения (по знанию, незнанию, с умыслом или нет).
Вопрос разработчикам: можно сделать так, что бы с компилированную программу заливать в ПР200? Или без возможности открытия исходного текста.

Обратитесь к нему - http://www.owen.ru/forum/member.php?u=7993
Вроде есть возможность удалённой заливки.
Или радмин вам в помощь...

Ревака Юрий
15.02.2017, 12:32
Привет!
У меня на ПР200 выполнен проект, работает и находится на расстоянии около 4000км, и надо внести изменения в программу. Там есть человек, который сможет залить новую программу, но нет гарантии, что перед заливкой он не внесет изменения (по знанию, незнанию, с умыслом или нет).
Вопрос разработчикам: можно сделать так, что бы с компилированную программу заливать в ПР200? Или без возможности открытия исходного текста.

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

СергейНовосиб
15.02.2017, 13:39
Не совсем подходит, так как по одной шине обмен с ПЧВ, а по другой с контроллером верхнего уровня.
Да и придется весь проект переделывать.

Ревака Юрий
15.02.2017, 14:55
Не совсем подходит, так как по одной шине обмен с ПЧВ, а по другой с контроллером верхнего уровня.
Да и придется весь проект переделывать.

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