Просмотр полной версии : Фичи и баги OWEN Logic
Страницы :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[
16]
17
18
melky А ты почитай ссылку. Там шла инициализация таймера в тиках и на быстром проце они переполнялись.
я в курсе, что некоторые меряли тиками процессора, но эти времена ушли давно.
А теперь, надеюсь, мы получим ответ на вопрос, ЗАЧЕМ это нужно.
Спрашиваю без сарказма: ведь такое "регулирование" времени выполнения программы - это крайне нештатное НАСИЛИЕ над ПРкой.
Придется переделывать многие проекты и цена вопроса должна быть минимальной вот и приходиться перед началом большого перевода проектов с одной платформы на другую оценивать примерную совместимость по быстродействию контроллера на который хотим перевести , а как проверить ? Зная логику исходного проекта и понимая примерное количество строк кода и чем программа в этих строках занимается нужно просто последовательно выполнить примерные эквиваленты этих строк на новой платформе и посмотреть возможно ли будет нормальная работа проекта на новом оборудовании или придётся доплачивать (что ОЧЕНЬ не желательно) за более быстродействующее и тут попался на глаза ИПП120 и столкнулся с проблемой которую описал на форуме , ну это так вообщем и в кратком изложении надеюсь понятно объяснил. Ну и если с ИПП120 не получиться то мне дешевле выйдет на кассовых терминалах с экраном все сделать.
я в курсе, что некоторые меряли тиками процессора, но эти времена ушли давно.
Сегнетик тиками меряет, насколько я помню
А ты почитай ссылку. Там шла инициализация таймера в тиках и на быстром проце они переполнялись.
Не работали те проги на виндах которые обращались на прямую к оборудованию что на виндовс сильно затруднительно , а вот на более шустрых процах и в DOSe ? те проги которые использовали таймер - все ок , а которые с програмной задержкой то - Дррр и усё кончилось.
ИПП120 если не ошибаюсь, это ПР200 без входов/выходов. А оно не умеет групповых запросов от слова вообще. Уже только на это бы обратили внимание.
з.ы. я вот ковыряю панельку https://aliexpress.ru/item/1005006826025212.html?spm=a2g2w.orderdetail.0.0.68 854aa6mKafss&sku_id=12000038427272932
openPlc еще не пробовал на нее ставить, пока только RapidScada. крутится, опрашивает счетчик Пульсар.
ИПП120 если не ошибаюсь, это ПР200 без входов/выходов. А оно не умеет групповых запросов от слова вообще. Уже только на это бы обратили внимание.
з.ы. я вот ковыряю панельку [url]https://aliexpress.ru.
Мне не надо групповых запросов , одиночные по событию штук по 10 за цикл сойдут, ну а алик для нас не вариант.
за цикл? вы не в себе :)
Обьяснитесь пожалуйста , или это оскорбление ?
Мне не надо групповых запросов , одиночные по событию штук по 10 за цикл сойдут
О каком цикле речь?
О каком цикле речь?
Да это правильный вопрос , речь о одиночном цикле чтения за несколько циклов выполнения программы ,о чем я не упомянул. Да даже и если в каждом цикле выполнения программы , не принципиально.
за цикл? вы не в себе :)
1. 115000 бит.с / 10 бит (это один байт по 485 интерфейсу) = 11500 байт за секунду
2. 11500 байт / 15 байт в одном запросе-ответе целочисленном = 766 запрос-ответ в секунду
3. 766 з.от / 10 отдельных посылок = 76 ("груповых" по 10)посылок за 1000 милисек.
4. 1000милсек - (10м.с время реакции на запрос * 2 (запрос-ответ)) * 10 запросов = 800 миллисекунд остаётся для 76 групп запросов по 10 в группе
5. 800 / 76 = 10,5 раз в секунду можно отправить 10 посылок по 8 байт в каждой и получить на неё ответ из 7 байт ,
что удлиняет время цикла выполнения на (1000/10.5=) 95 миллисекунд что меня вполне устраивает.
Так что в себя надо приходить вам или обьяснить ваши слова.
В ПР так быстро Modbus работать НЕ будет. Время одного запроса будет равно около 100 мсек с голой программой.
А как только программа будет работать (особенно с циклами FOR), время опроса станет ещё реже.
В общем, три страницы темы потрачено на то, что ОВЕН != Другой контроллер, и не надо пытаться его заставить таким быть.
с п.2 поскакали сферические кони (а может и п.1 выкатилось пони, 8n1 это не гарантия 10, некоторые так шпарят по 11..12 т.к. все равно есть старт-бит)
Не учтены задержки (если мы про rtu)
тугодумность слейвов неизвестная величина,
... неохота дальше
Вообщем 100 запросов в сек это идеал тута. Да и не тока тута.
Но как слейв ПР интересней. Отвечает на групповой запрос всех 64 регистров даже если не все 64 прописаны. 20мс на все.
Лучше бы задачу описали - и тут бы оценили, потянет или нет
В ПР так быстро Modbus работать НЕ будет. Время одного запроса будет равно около 100 мсек с голой программой.
А как только программа будет работать (особенно с циклами FOR), время опроса станет ещё реже.
В общем, три страницы темы потрачено на то, что ОВЕН != Другой контроллер, и не надо пытаться его заставить таким быть.
Да я понял , всем спасибо за подсказки и направления .
i'll be back !
с п.2 поскакали сферические кони (а может и п.1 выкатилось пони, 8n1 это не гарантия 10, некоторые так шпарят по 11..12 т.к. все равно есть старт-бит)
Не учтены задержки (если мы про rtu)
тугодумность слейвов неизвестная величина,
... неохота дальше
Вообщем 100 запросов в сек это идеал тута. Да и не тока тута.
Но как слейв ПР интересней. Отвечает на групповой запрос всех 64 регистров даже если не все 64 прописаны. 20мс на все.
Да в расчетах количества посылок по 485 лажанулся , не правильно посчитал задержки там в 4 пункте 200 мс для 10 одиночных посылок посчитано а не для 76 из 10 ну и дальше все ...
По использованию ИПП120 пока решаю . Спасибо за совет.
Валенок, это из практики на ПР или на ПЛК? или теоретические выкладки для скоростей?
Ой, это наверное больше автору 😀
Вообще интересен выбор ипп120 чем обусловлен?
Был обусловлен? 😀
Подскажите с разной периодичностью вылетает из редактора ОЛ вот с этим:
78609
Проект не сохраняется что обидно.
Приходиться все заново запускать и восстанавливать что не сохранил !:(
Винда 7/32 .
iljael переключите в режим OFFLINE внизу справа и попробуйте поработать так. Тоже вылетит?
iljael переключите в режим OFFLINE внизу справа и попробуйте поработать так. Тоже вылетит?
Попробую , но ОЛ даже без загруженного проекта так вылетает , позже напишу был вылет или нет.
iljael переключите в режим OFFLINE внизу справа и попробуйте поработать так. Тоже вылетит?
Да вы правы , если ставить галочку на OFFLINE то вылеты прекращаются , другой вопрос что с этим делать , переключая режим OFFLINE забываешь его потом включать и раза три четыре были обидные вылеты после длительного но несохранённого редактирования проекта .
kondor3000
18.09.2024, 11:27
Да вы правы , если ставить галочку на OFFLINE то вылеты прекращаются , другой вопрос что с этим делать , переключая режим OFFLINE забываешь его потом включать и раза три четыре были обидные вылеты после длительного но несохранённого редактирования проекта .
Привыкайте сохранять проект сразу после значительных изменений и сохранять как новую версию, а не в тот же проект.
Привыкайте сохранять .. а не в тот же проект.
А что были прецеденты с порчей проектов , или на всякий случай ?
МихаилГл
18.09.2024, 12:46
А что были прецеденты с порчей проектов , или на всякий случай ?
Очень много...
kondor3000
18.09.2024, 13:46
А что были прецеденты с порчей проектов , или на всякий случай ?
Вот у меня не было, а на форуме полно таких случаев. Наверно потому, что сохраняю проекты сразу.
Сергей0308
18.09.2024, 14:34
Вот у меня не было, а на форуме полно таких случаев. Наверно потому, что сохраняю проекты сразу.
Так это они то, в смысле, в своей криворукости, мягко выражаясь, пытаются(хотят) других обвинить, это я так думаю!
Да, опять попался))) обновился на 358, сегодня дернули слегка расширить функционал ПР103 на объекте. Там старенькая она, версию даже не помню. Залил, пуск - а ПЧ нет в сети. И так и сяк ну не как, два часа - понял, все, не в программе дело. Обновил под 359 (прочитал об прошивке 1.8.2). Запустилось - нет слов)))
Скажите, а есть объяснение почему FTRIG - это по заднему фронту, а RTRIG - по переднему?
Логично было ведь ровно наоборот сделать - F - Front, R - Rear
kondor3000
19.10.2024, 15:06
Скажите, а есть объяснение почему FTRIG - это по заднему фронту, а RTRIG - по переднему?
Логично было ведь ровно наоборот сделать - F - Front, R - Rear
R_TRIG - Rising edge detector ( Детектор нарастающего фронта)
F_TRIG - Fall edge detector ( Детектор спадающего фронта)
Скажите, а есть объяснение почему FTRIG - это по заднему фронту, а RTRIG - по переднему?
Логично было ведь ровно наоборот сделать - F - Front, R - Rear
R - Rise, F - Fall
Подскажите.
Не возможность поменять целевую платформу с ПР205.1211.6 на ПР205.1211.2 - это баг или фича?
kondor3000
24.10.2024, 14:25
Подскажите.
Не возможность поменять целевую платформу с ПР205.1211.6 на ПР205.1211.2 - это баг или фича?
Пока нельзя, возможно позже сделают замену платформы. Пока открывайте рядом 2 проекта и переносите копипастом.
Пока нельзя, возможно позже сделают замену платформы. Пока открывайте рядом 2 проекта и переносите копипастом.
А экраны как перенести? Таблицу переменных?
Дмитрий Костюков
25.10.2024, 09:58
А экраны как перенести? Таблицу переменных?
Сначала копируйте логику.
Потом копируйте визуализацию. Экраны можно выделить все сразу(в окошке слева), скопировать и вставить.
Так и переменные перенесутся, и привязки к визуализации тоже.
Alexandr88
09.11.2024, 19:27
Здраствуйте. Подскажите пожалуйста почему в OL иногда (довольно часто виснет прога) прочитал выше отключить авто обнаружение прибора - стало реже, но теперь в момент загрузки бывает зависает или в момент вставки картинки когда программируешь ПР205й?
И еще вопрос, может кто сталкивался...
почему нельзя сделать сброс аварий на ПР205 кнопкой (прямоугольник, задаю через настройка действия , короткое нажатие "ок", авария сбрасывается, но кнопка "остается нажатой", или можно такое реализовать ТОЛЬКО через динамический текст? Может у кого-то есть решение через "бул" по типу кнопку "без фиксации", вот как реализовать кнопку без фиксации? (сформулировал ))) )
только учусь не кидайте камни сразу пожалуйста ...
kondor3000
09.11.2024, 19:39
Здраствуйте. Подскажите пожалуйста почему в OL иногда (довольно часто виснет прога) прочитал выше отключить авто обнаружение прибора - стало реже, но теперь в момент загрузки бывает зависает или в момент вставки картинки когда программируешь ПР205й?
И еще вопрос, может кто сталкивался...
почему нельзя сделать сброс аварий на ПР205 кнопкой (прямоугольник, задаю через настройка действия , короткое нажатие "ок", авария сбрасывается, но кнопка "остается нажатой", или можно такое реализовать ТОЛЬКО через динамический текст? Может у кого-то есть решение через "бул" по типу кнопку "без фиксации", вот как реализовать кнопку без фиксации? (сформулировал ))) )
только учусь не кидайте камни сразу пожалуйста ...
Лоджик бывает и зависает, не открывайте много проектов одновременно. Сохраняйтесь чаще.
По поводу кнопки, нужен сброс после включения переменной, например импульс на R-trig на 1 цикл или на таймере TP, на 1 сек. 79947
Alexandr88
09.11.2024, 19:59
Лоджик бывает и зависает, не открывайте много проектов одновременно. Сохраняйтесь чаще.
По поводу кнопки, нужен сброс после включения переменной, например импульс на R-trig на 1 цикл или на таймере TP, на 1 сек. 79947
Спасибо.
А по поводу кнопки, я так и сделал через TP, мне не понятно другое:
Я сделал кнопку сброс, при "нажатии" на ТР поступает "1" у меня происходит сброс всех аварий, но кнопка сброса остается нажатой, сейчас проверил, так и динамический текст тоже в "1" остается!!! как сделать что бы она возвращалась в "0"!? подскажите пожалуйста...
kondor3000
09.11.2024, 20:23
Спасибо.
А по поводу кнопки, я так и сделал через TP, мне не понятно другое:
Я сделал кнопку сброс, при "нажатии" на ТР поступает "1" у меня происходит сброс всех аварий, но кнопка сброса остается нажатой, сейчас проверил, так и динамический текст тоже в "1" остается!!! как сделать что бы она возвращалась в "0"!? подскажите пожалуйста...
Вы не кнопку значит сбрасываете, а аварию. Покажите на примере 1 аварии как вы делаете.
GeraZverev
10.11.2024, 06:05
... как сделать что бы она возвращалась в "0"!? подскажите пожалуйста...
Вот здесь https://owen.ru/forum/showthread.php?t=26216&p=450554&viewfull=1#post450554 смоделировал "сброс" кнопки.
И опять возник вопрос.
Здравствуйте. Подскажите плиз. Появилась необходимость подключить ПР103. Обновил ОвенЛоджик до 2.8.360.0, Открываю смотрю приборы, Нет 103 модификации. Всю голову сломал. Потом зашел на компе под админом, там открыл ОвенЛоджик, там есть 103! Как так ? подскажите плиз раньше не сталкивался с таким
kondor3000
11.11.2024, 10:25
Здравствуйте. Подскажите плиз. Появилась необходимость подключить ПР103. Обновил ОвенЛоджик до 2.8.360.0, Открываю смотрю приборы, Нет 103 модификации. Всю голову сломал. Потом зашел на компе под админом, там открыл ОвенЛоджик, там есть 103! Как так ? подскажите плиз раньше не сталкивался с таким
Обновляться надо тем, кто устанавливал программу и им же открывать проекты. В вашем случае админом.
Файлы в папке Owen Logic вы можете скопипастить, если надо, из документов админа в документы пользователя.
Спасибо, но я и устанавливал и обновлял под пользователем?!
kondor3000
11.11.2024, 10:34
Спасибо, но я и устанавливал и обновлял под пользователем?!
Нет, файлы по умолчанию устанавливаются в папку документы админа, поэтому вы и не видите ПР103
Так а что делать то? я работаю под пользователем. Программа пишет версия 2.8.360.0, а прибора 103 нет.
kondor3000
11.11.2024, 10:45
Так а что делать то? я работаю под пользователем. Программа пишет версия 2.8.360.0, а прибора 103 нет.
Выше всё было написано, учитесь читать не только 1 строчку.
Файлы в папке Owen Logic вы можете скопипастить, если надо, из документов админа в документы пользователя.
Выше всё было написано, учитесь читать не только 1 строчку.
Файлы в папке Owen Logic вы можете скопипастить, если надо, из документов админа в документы пользователя.
классно, спасибо, ......как?
Всем спасибо вопрос снимаю
Aleks Che
18.11.2024, 11:10
Всем добра. Недавно тут. Вчера пробовал накидать реверсивное управление электродвигателем и столкнулся с непонятными сложностями с блоком "Детектор переднего фронта". Если в одном варианте вставить сначала детектор и протянуть провода к входу и выходу, а в другом варианте сначала соединить вход и выход и потом вставить в "разрыв" провода детектор, то при пошаговой симуляции эти два варианта ведут себя по разному. Детекторы заднего фронта тоже по разному себя ведут в пошаговой симуляции в зависимости от очередности размещения на холсте. Другие блоки не проверял. Релиз 2.8.360.0
https://youtu.be/_SgRmtgpyPU
P.S. Разобрался вроде: Во втором случае "врезка в провод" только визуальна - блок перемещается отдельно от провода. Моя невнимательность. Сразу подумалось - а почему нет "автоматической" врезки блока при размещении его на проводе? Но это уже не относится к сути сообщения. Еще раз пардон. Учимся дальше
Сергей0308
19.11.2024, 20:08
Всем добра. Недавно тут. Вчера пробовал накидать реверсивное управление электродвигателем и столкнулся с непонятными сложностями с блоком "Детектор переднего фронта". Если в одном варианте вставить сначала детектор и протянуть провода к входу и выходу, а в другом варианте сначала соединить вход и выход и потом вставить в "разрыв" провода детектор, то при пошаговой симуляции эти два варианта ведут себя по разному. Детекторы заднего фронта тоже по разному себя ведут в пошаговой симуляции в зависимости от очередности размещения на холсте. Другие блоки не проверял. Релиз 2.8.360.0
https://youtu.be/_SgRmtgpyPU
P.S. Разобрался вроде: Во втором случае "врезка в провод" только визуальна - блок перемещается отдельно от провода. Моя невнимательность. Сразу подумалось - а почему нет "автоматической" врезки блока при размещении его на проводе? Но это уже не относится к сути сообщения. Еще раз пардон. Учимся дальше
Я когда то был поражён данной "схемой":
80201
Её один форумчанин выложил, Вы представляете как бы бахнуло(коротнуло), в подобных случаях если исполнить ваши желания?
Здравствуйте, уважаемые. Вопрос, возможно, обсуждался, кто знает - направьте.
Есть ФБ "Импульс включения заданной длительности (TP)". В описании (в справке) указано, что "Допустимый диапазон значений Тимп от 0 до 4147200000 мс". В свойствах самого ФБ масштаб времени начинается с секунд, миллисекунды нельзя выбрать, их просто нет. Программа допускает установку Тимп как числа с плавающей точкой, в свойствах можно задать 100 мс как 0,1с. Однако в этом случае невозможно использовать блок записи в ФБ, т.к. он работает только с целочисленными значениями, то есть в данном случае, с точностью до секунд. Принципиальное решение "в циклах" ПР у меня есть, но там время скорее "в попугаях", примерно только пересчитывается в мс, иногда требуется определенная величина времени.
С целочисленными - с точностью до 1 МИЛЛИСЕКУНДЫ
С целочисленными - с точностью до 1 МИЛЛИСЕКУНДЫ
ОК, подскажите, как там установить 500 мс, например, если единицы измерения времени в настройках ФБ можно выбрать из "сек", "мин", "час", "день".
ОК, подскажите, как там установить 500 мс, например, если единицы измерения времени в настройках ФБ можно выбрать из "сек", "мин", "час", "день".
Когда вы используете блок записи в ФБ - единицы измерения - мс, без вариантов
kondor3000
27.11.2024, 17:57
ОК, подскажите, как там установить 500 мс, например, если единицы измерения времени в настройках ФБ можно выбрать из "сек", "мин", "час", "день".
1 секунда - это 1000 мс, выставить 500 мс можно как 0.5 секунды. 1 мс - это 0.001 секунды
Если записывать время в таймер через WriteToFb, то записывать надо как 500.
1 секунда - это 1000 мс, выставить 500 мс можно как 0.5 секунды. 1 мс - это 0.001 секунды
Если записывать время в таймер через WriteToFb, то записывать надо как 500.
Да, я про это написала, можно мс указывать как тысячные доли секунд, OL допускает, не ругается. Но я предполагаю, что при подстановке из WriteToFb целочисленного значения, оно будет интерпретировано так, как указано в свойствах ФБ, минимально как секунды. Проверить на ПР нет возможности, поэтому тут спрашиваю
Когда вы используете блок записи в ФБ - единицы измерения - мс, без вариантов
Спасибо, проверю
kondor3000
27.11.2024, 18:41
Да, я про это написала, можно мс указывать как тысячные доли секунд, OL допускает, не ругается. Но я предполагаю, что при подстановке из WriteToFb целочисленного значения, оно будет интерпретировано так, как указано в свойствах ФБ, минимально как секунды. Проверить на ПР нет возможности, поэтому тут спрашиваю
Для этого ПР не нужен, запустите эмуляцию и всё видно будет. 80380
Спасибо всем за помощь. Для меня оказалось неочевидно, что параметр "Длительность импульса" задается по-разному в зависимости от способа ввода - через свойства или через блок записи в ФБ. В одном случае в комбинации с масштабом, в другом - в "исходных" единицах. Так себе инкапсуляция, после 25+ лет программирования на с++ такие вещи в принципе воспринимаются как "условно невозможные".
Спасибо всем за помощь. Для меня оказалось неочевидно, что параметр "Длительность импульса" задается по-разному в зависимости от способа ввода - через свойства или через блок записи в ФБ. В одном случае в комбинации с масштабом, в другом - в "исходных" единицах. Так себе инкапсуляция, после 25+ лет программирования на с++ такие вещи в принципе воспринимаются как "условно невозможные".
Это действительно неочевидно, но подозреваю, что в справке этот момент описан
Юрий_Влад
29.11.2024, 07:08
ПР102, проект в Owen Logic изменяю на экране, сохраняю проект. После этого загружаю в реле, а загружается старый вариант. Проект с изменениями загрузился только после перезапуска программы. Может я чего не так делаю?
master2113
03.12.2024, 09:59
Вчера на домашнем компьютере обновил OwenLogic до 2,8,361 причем спокойно с первого раза - как обычно. Сегодня на работе пытаюсь сделать тоже самое, но не могу. Пишет сообщение о загрузке файла с ошибкой.
80520
Соответственно проект который правил дома на работе открыть не могу. Это только у меня данная проблема или общий баг?
kondor3000
03.12.2024, 10:38
Вчера на домашнем компьютере обновил OwenLogic до 2,8,361 причем спокойно с первого раза - как обычно. Сегодня на работе пытаюсь сделать тоже самое, но не могу. Пишет сообщение о загрузке файла с ошибкой.
80520
Соответственно проект который правил дома на работе открыть не могу. Это только у меня данная проблема или общий баг?
Прямо сейчас обновился, всё работает. Но вы не спешите обновляться без причины, часто новые версии с багами.
У меня все версии отдельно, могу открыть любую из последних. А для проектов всегда держите копию в старой версии.
master2113
05.12.2024, 07:05
Спасибо за отклик. Разобрался. Проблема во внутренней сетке оказалась. Раздал интернет с телефона, все с первого раза обновилось.
Верните функцию "Сохранить устройство ка шаблон" и "Тиражировать" в настройке прибора ПР103.
80651
80650
При открытии OL 2.8.362.0 без интернета возникает сообщение:
80661
На более ранних версиях такого не было.
Добрый день,
Подскажите можно ли надеятся, что в новом обновлении добавят возможность работать с битами в целочисленных переменных на языке ST, так как это реализовано в Codesys.
Речь идёт о возможности как извлекать, так и записывать бит в целочисленную переменную указав имя переменной, после чего ставится точка и указывается бит с которым надо работать (a:= example.bit0)?
Добрый день,
Подскажите можно ли надеятся, что в новом обновлении добавят возможность работать с битами в целочисленных переменных на языке ST, так как это реализовано в Codesys.
Речь идёт о возможности как извлекать, так и записывать бит в целочисленную переменную указав имя переменной, после чего ставится точка и указывается бит с которым надо работать (a:= example.bit0)?
Возможность обратиться к биту целочисленной переменной через точку, указав номер бита есть в OL и сейчас. А то, что в вашем примере - и в кодесисе вроде как работает, только если bit0 - это константа
kondor3000
12.12.2024, 08:08
Добрый день,
Подскажите можно ли надеятся, что в новом обновлении добавят возможность работать с битами в целочисленных переменных на языке ST, так как это реализовано в Codesys.
Речь идёт о возможности как извлекать, так и записывать бит в целочисленную переменную указав имя переменной, после чего ставится точка и указывается бит с которым надо работать (a:= example.bit0)?
В каждом втором примере, на ST есть извлечение и упаковка бит через точку. https://owen.ru/forum/showthread.php?t=38920&page=2#13
p_dima90
12.12.2024, 10:55
Добрый день!
Подскажите, пожалуйста, не могу сохранить проект - скрины в приложении.
При всем при этом, день нормально отлаживалась программа, проблем не было, день закончился, нажал кнопку сохранить и вот:
Если нажать кнопку "Сохранить" - скрин №1
Если нажать кнопку "Сохранить проект как" - скрин №1
В каждом втором примере, на ST есть извлечение и упаковка бит через точку. https://owen.ru/forum/showthread.php?t=38920&page=2#13
Искренне обнимаю и жму руку, на форуме это не находил, а в справке увы не описано.
А оказывается все очень даже просто, пиши имя переменной, ставь после точку и номер бита и присваивай. Кайф!
Так ST и для меня истинный кайф в ПР.
Недавно пришлось старый проект переделывать. Открыл функциональный блок и закрыл испугавшись. Удалил нафиг и все описал строчками кода. А входов там 450 штук, да и выходов не на много меньше. Excel здорово помогла автоматизировать набор переменных.
Так ST и для меня истинный кайф в ПР.
Недавно пришлось старый проект переделывать. Открыл функциональный блок и закрыл испугавшись. Удалил нафиг и все описал строчками кода. А входов там 450 штук, да и выходов не на много меньше. Excel здорово помогла автоматизировать набор переменных.
Как Excel помогла автоматизировать набор переменных ?
kaftanati
12.12.2024, 17:49
Excel вообще весьма универсальный инструмент. Я в последнее время почти любую программу начинаю с заполнения самодельного генератора регистров, который:
1. Позволяет собрать по шаблонам группы объектов управления (насосы, датчики, фильтры и т.д.)
2. Составить шаблонно связанные регистры - с автоматическим назначением адреса/номера бита/единиц измерений и т.п.
3. На выходе - готовые таблицы для импорта в панель Weintek (как регистров так и журналов событий/аварий)
4. На выходе - готовые таблица с json для импорта в OwenCloud (вот прям 300-800 регистров/тегов/битов с текстовым описанием/текстовым подстановкой/единицами/коэффициентами и т.п., разложенными по подпапкам)
5. На выходе - готовая таблица регистров управления/диспетчеризации в приложения к шкафу / заказчику/подрядчику.
6. Жду импорта переменных для ПР205/103 чтоб и туда сразу махом все подтягивать. Но пока разработчики OL завтраками кормят.
7. Разбираюсь (но это не точно) как в MasterScada подтянуть, но чую, что сходу не получится.
Есть замысел эту таблицу таки превратить в отдельную программу со встроенной БД и... но пока это только замысел
Excel вообще весьма универсальный инструмент. Я в последнее время почти любую программу начинаю с заполнения самодельного генератора регистров, который:
1. Позволяет собрать по шаблонам группы объектов управления (насосы, датчики, фильтры и т.д.)
2. Составить шаблонно связанные регистры - с автоматическим назначением адреса/номера бита/единиц измерений и т.п.
3. На выходе - готовые таблицы для импорта в панель Weintek (как регистров так и журналов событий/аварий)
4. На выходе - готовые таблица с json для импорта в OwenCloud (вот прям 300-800 регистров/тегов/битов с текстовым описанием/текстовым подстановкой/единицами/коэффициентами и т.п., разложенными по подпапкам)
5. На выходе - готовая таблица регистров управления/диспетчеризации в приложения к шкафу / заказчику/подрядчику.
6. Жду импорта переменных для ПР205/103 чтоб и туда сразу махом все подтягивать. Но пока разработчики OL завтраками кормят.
7. Разбираюсь (но это не точно) как в MasterScada подтянуть, но чую, что сходу не получится.
Есть замысел эту таблицу таки превратить в отдельную программу со встроенной БД и... но пока это только замысел
C экспортом в МастерСкаду (4D) тоже можно такое провернуть - не сложнее, чем в вайнтек.
С модбасом это так выглядит - в дерево скады добавляется протокол и устройство, потом двойным кликом на устройстве открывается окно импорта-экспорта. Формат файлов - Excel.
80754
На других протоколах думаю аналогично должно быть
kaftanati Молодец! Отлично! Я ща такое решение встраиваю в свою базу 1Ски. Будет генерить:
* Расчёт мощностей блоков питания
* Список синалов IO и код для них по шаблонам
* Карты регистров и код для них по шаблонам
abaklazhov
25.12.2024, 22:52
После обновления OWEN Logic при редактировании ST постоянно вываливается ошибка, даже когда просто правишь комментарии 81001 Не подскажете как исправить?
Только меня смущает качество отображения чисел с плавающей точкой в среде Owen Logic?
Если там используются стандартные float, то точность отображения должна быть порядка 6 знаков (пример: 123.456, 1.00000). Сейчас же если число не выводится в формате 1 или 1.0, то сразу начинает выводиться в научном формате: 8.33E+00. Вопрос, зачем?!? Вы так показываете округление? Предлагаю или сделать на галочке, или просто сразу отображать нормально: если число в обычном десятичном формате занимает не более 8 символов (с учетом десятичной точки/запятой), то в нем и выводить. При таком алгоритме возможны проблемы с числами по модулю меньше 1, но тут можно просто до E-03 выводить в обычной форме.
А то отлаживаешь, а у тебя все цифры скачут в разные стороны.
b-s-a Меня на смущает. Меня БЕСИТ просто, потому что мне непривычен формат с E+xx. Я его видел в начале 00ых годов в институте и сейчас в OwenLogic.
Ничего не имею против него. Это научный формат. Мы в институте, обычно, писали 0,1234*10^-6, но 0.1234e-6 несколько лаконичней. Этот формат очень удобен для сохранения необходимой точности вычислений: нельзя написать 10*9.8*3.1415926=307.8760748 - надо писать 0.31e+3, так как исходные данные имеют минимальную точность 2 знака. В науке это важно...
Но вся эта херня не имеет отношения к OwenLogic, так как здесь ограничения по точности накладывает только битовая разрядность переменных. Я посмотрел представление OL - в научном формате число занимает 8 символов: 3 значащих знака, десятичная запятая, буква E, знак степени и две цифры степени. Поэтому можно спокойно писать числа до миллиона в нормальном виде, более миллиона в научном, с шагом экспоненты 3: 1.23, 12.3, 123, 1230, 12300, 123000, 1.23е+06, 12.3е+06, 123е+06, 1.23е+09... Аналогично для чисел меньше 1: 0.123, 0.0123, 0.00123, 123е-06, 12.3е-06, 1.23е-06, 123е-09... Почему так? Во-первых, близкие числа не будут так часто скакать между экспонентами - а то смотришь, параметр должен расти, а он на первый взгляд в 10 раз уменьшается, это только потом, если успеваешь, можно разобрать изменение экспоненты. Во-вторых, наиболее популярные значения будут в интуитивно понятном виде. В-третьих, когда присутствует экспонента, она сразу совместима со стандартными размерностными приставками (микро, мега...).
Если так нельзя, то хотя бы всегда отображать float в научном формате с шагом экспоненты 3: 0.123e+03, 1.23e+03, 12.3e+03, 0.123e+06... и 12.3e+00, 1.23e+00, 0.123e+00, 12.3e-03, 1.23e-03...
В науке - пусть. Меня бесит, когда я пишу числовую константу типа 4294967295 (0xFFFFFFFF) и вижу там этот формат.
АРТ.Кар 64
01.01.2025, 19:44
Если так нельзя, то хотя бы всегда отображать float в научном формате с шагом экспоненты 3: 0.123e+03, 1.23e+03, 12.3e+03, 0.123e+06... и 12.3e+00, 1.23e+00, 0.123e+00, 12.3e-03, 1.23e-03.
Не спорю. Но насколько помнится( могу и ошибаться),что мантисса всегда должна принимать значение от 1 до 10..
Но как написать мантиссу-тоже регламентируется.(стандартизуется).
1.23e+03,
Вот это правильно.
Сергей0308
01.01.2025, 20:05
Мантисса должна быть от 1 до 10, называется стандартный вид числа, изучается в 8 классе школы:
https://math-prosto.ru/ru/pages/standard_form_number/standard_form_number/
https://nsportal.ru/shkola/algebra/library/2012/12/17/urok-algebry-v-8-klasse-standartnyy-vid-chisla
https://ege-study.ru/ru/oge/materialy/matematika/standartnyj-vid-chisla/?utm_num_popup=3
АРТ.Кар 64
01.01.2025, 20:38
Сергей.
Читать такую массу полезной информации 1-го числа Наступившего года как-то несвоевременно..Но хочется сказать ,что хорошо хоть то ,что числа отображаются в "десятичном формате",если бы в "двоичном"-то вообще бы "задолбались".
Но про то ,что нужно что-то в существующей "редакции менять" так и осталось для меня "тайной за 7-ю печатями".
всего-то достаточно сделать настройку как отображать числа float. и сколько знаков после запятой. При программировании той же вентиляции как-то глубоко пофигу на E+, достаточно и 2-х знаков.
всегда ставлю макросы округления и не парюсь. Но ведь можно было обойтись и без макросов.
Да. Я не хочу изучать математику и все эти мантиссы и какие-то ерунды. Мне это не нравилось и не нравится. И когда пишут что-то типа 2.08E-2 я буду дико тупить, потому что не знаю (и не хочу знать), как это ввести в калькулятор Windows чтобы получить понятное число.
Поэтому не надо тут всякой школы и высшей математики. Я наелся этим по горло. Я хочу программировать и видеть свои цифры, а не в ВУЗ играть. Фу.
АРТ.Кар 64
02.01.2025, 12:12
Если это шутка-то это просто классная шутка!
Такое чувство,что число с "плавающей точкой" Вы стараетесь подменить на число с "фиксированной точкой"
Тогда числу "плыть" будет некуда и при "математических вычислениях" Вы очень проиграете в точности.
Либо придётся округлять.
всегда ставлю макросы округления и не парюсь.
Всё совершенно правильно.(Чуть не написал "С лёгким паром!")
А то ,что удобно-я не спорю. Но "машина" вычисляет именно так ,как и "затеяно" в ОЛ.
81099
А когда вы что-то проверяете,то в любом случае получается "более понятливее". Впрочем убрать "целый пласт курса за 8 класс" и отпустить учеников на каникулы- это тоже не плохо.
Дело не в том, что кто-то курс пропустил. А в том, что это дико не удобно, когда у тебя при отладке значения прыгают 9,82 -> 1,01e+01 -> 9,93 -> 1,12e+01...
Сергей0308
05.01.2025, 12:33
Дело не в том, что кто-то курс пропустил. А в том, что это дико не удобно, когда у тебя при отладке значения прыгают 9,82 -> 1,01e+01 -> 9,93 -> 1,12e+01...
Хотя бы прочитали, для чего нужен(используют) стандартный вид числа, короче, если кратко, как раз для удобства и используют!!!
Если с шифтом перетащить переменную на вход блока - можно получить такую интересную конструкцию:
81150
И наверное это всё же баг, а не фича
Если с шифтом перетащить переменную на вход блока - можно получить такую интересную конструкцию:
81150
И наверное это всё же баг, а не фича
Попробовал, ругается
81151
Попробовал, ругается
Когда я случайно так сделал - написал "Ошибка компиляции".
Пробовал специально на пустом проекте - он даже запустился в эмуляции/
Похоже, что компилятор это понимает как то, что переменная подключена одновременно ко входу и к выходу блока
Хотя бы прочитали, для чего нужен(используют) стандартный вид числа, короче, если кратко, как раз для удобства и используют!!!
я не спорю про удобство. Вот только это удобство возникает при унификации вывода. Опять же, 0.00000001 выглядит хуже, чем 1.0e-8, но 0.01e-6 выглядит еще лучше, хоть и не соответствует стандарту. Но проблема не в этом, а в том, что при отладке числа на блоках постоянно меняют способ отображения. То стандартный, то простая десятичная дробь, то экспонента меняется. Постоянно меняются порядки. Ну, невозможно адекватно оценивать числа, когда они ежесекундно меняются так: 9,82 -> 1.01e+01 -> 1.23e+02... Здесь не научная статья, а представление чисел должно быть максимально удобно для анализа. Вот я и предложил форматировать следующим образом: 0,752 -> 9,82 -> 10,1 -> 123,0 -> 1,05e+03... Т.е. экспоненты кратны 3-м например. Это дает, что близкие значения очень редко меняют экспоненту (кстати, даже эти изменения тоже можно сократить - например, если текущая экспонента всего на 1 отличается от предыдущей кратной 3, то использовать предыдущую). Наиболее популярные значения в тысячных долях в пределах тысячи представляются в виде классической десятичной дроби (0,001 ... 999,999). Это очень удобно для разработчика схем в OL, и сделать это не сложно для программистов.
Если ну принципиально хочется стандартное отображение, то никто не запрещает отказаться от простого вида в пользу 1,000e+00. Но только с сохранением кратности порядков, чтобы скакания не было, а то полумера получается.
Traveller
29.01.2025, 09:24
Всем доброго времени суток!
Я надеюсь этот форум читают разработчики данного софта. :)
Возможно я сейчас задам очень глупый вопрос, но тем не менее. Почему в данной программе нет функции скажем так описания проекта, вернее что то подобное есть "Сведения о проекте", но там нет текстового поля куда я смог бы руками написать те изменения которые я в нес в текущую версию программы, что бы я ее скажем открыл через полгодика и смог понять что там было изменено, сейчас приходится все это впихивать в имя файла, что не айс, не понимаю, неужели так трудно добавить текстовое поле, что бы можно было за комментировать какие нить детали, не, я понимаю, эти комменты можно по на вставлять в саму схему проекта, но я не хочу перегружать поле избыточной информацией.
В общем сейчас это выглядит вот так:
81623
81624
Но хотелось бы что бы это выглядело примерно так, как в Zelio Logic:
81625
Это трудно сделать? :)
Всем доброго времени суток!
Я надеюсь этот форум читают разработчики данного софта. :)
Возможно я сейчас задам очень глупый вопрос, но тем не менее. Почему в данной программе нет функции скажем так описания проекта, вернее что то подобное есть "Сведения о проекте", но там нет текстового поля куда я смог бы руками написать те изменения которые я в нес в текущую версию программы, что бы я ее скажем открыл через полгодика и смог понять что там было изменено, сейчас приходится все это впихивать в имя файла, что не айс, не понимаю, неужели так трудно добавить текстовое поле, что бы можно было за комментировать какие нить детали, не, я понимаю, эти комменты можно по на вставлять в саму схему проекта, но я не хочу перегружать поле избыточной информацией.
В общем сейчас это выглядит вот так:
81623
81624
Но хотелось бы что бы это выглядело примерно так, как в Zelio Logic:
81625
Это трудно сделать? :)
И по возможности добавить в меню прибора название загруженного проекта.
то, есть которое дал ему программист - к примеру v1_2901_itog/
Чтобы при возможном обновление, залез и увидел, базу которую загрузил.
Traveller
29.01.2025, 11:42
И по возможности добавить в меню прибора название загруженного проекта.
то, есть которое дал ему программист - к примеру v1_2901_itog/
Чтобы при возможном обновление, залез и увидел, базу которую загрузил.Кстати да, тоже не хватает этой информации, выгрузить же ничего нельзя, так хоть знать что там загружено!
И по возможности добавить в меню прибора название загруженного проекта.
то, есть которое дал ему программист - к примеру v1_2901_itog/
Чтобы при возможном обновление, залез и увидел, базу которую загрузил.
В ПР200 вы сможете посмотреть в системном меню то, что забили на вкладке алгоритм.
В ПР100 и 102 - куда вы залезете чтобы посмотреть название?
В ПР103 и ПР205 скорее всего, сможете через конфигуратор глянуть что вы на вкладке Алгоритм забили
Traveller
29.01.2025, 13:40
В ПР200 вы сможете посмотреть в системном меню то, что забили на вкладке алгоритм.
Ну хоть что то, но все равно хотелось бы что бы было поле куда можно забить более подробную информацию
В ПР100 и 102 - куда вы залезете чтобы посмотреть название?Ну вот это плохо, не знаю может для кого то и хорошо, что в реле можно только залить, а прочитать уже ничего нельзя, какая то инфа все равно должна считываться...
Ну хоть что то, но все равно хотелось бы что бы было поле куда можно забить более подробную информацию
Ну вот это плохо, не знаю может для кого то и хорошо, что в реле можно только залить, а прочитать уже ничего нельзя, какая то инфа все равно должна считываться...
В общем, кое-какую информацию по ПР200 и ПР102 можно в Лоджике посмотреть
81630
По ПР103 и ПР205, как я уже говорил, скорее всего, в конфигураторе надо смотреть
ПР100 пролетает.
Почему так сделано - программистов из Овен умом не понять, они на какой-то другой планете живут
ага, в каком-нибудь Цинь-Дзяне :)
ПР200, кажется не очень давно, "подружили" с OwenConfigurator. Там можно подключиться к ПР200 в любой момент и посмотреть эти данные.
Не очень уверен, но при включении питания или в системном меню была возможность увидеть на экране сведения об алгоритме.
Если будет поле "Комментарии", доступные только в среде разработки - будет неплохо, я бы нашёл им применение.
Хотя, для ведения реестра изменений, лучше пользоваться чем-то независимым от среды разработки и более распространённым, чтобы представитель эксплуатации после прочтения выдал на руки самую свежую версию.
Добрый день,
Писал в поддержку, решил продублировать сюда.
Использую битовые маски. Для комфортной работы с битами состояния извлекаю их из целочисленной маски и присваиваю ячейкам булевого массива.
Чтобы не делать жесткое присвоение (arrayB[0]:= udintVar.0) решил прогнать целочисленное значение циклом FOR смещая бит в право и записывая его в каждую ячейку массива.
Выглядит следующим образом:
var_input
udintVar: udint;// битовая маска
end_var
var
udintArray: array [0..15] of bool; // булевый массив для записи каждого из битов состояния
selectIn: udint; // итератор цикла
end_var
for selectIn := 0 to 15 do
udintVar:= shr(udintVar,selectIn);
udintArray[selectIn]:= udintVar.0;
end_for
В итоге провожу тест:
целочисленное 1 = bit0 true
целочисленное 2 = bit1 true
целочисленное 3 = bit0 true и bit1 true
целочисленное 4 = все биты 0, вместо того, чтобы bit2 был true.
Соответственно все, что больше 4 в десятичном виде, уже откровенно не совпадает с действительность.
Сделал подобное при помощи FBD SHR и EXTRACT и все работает корректно, а в рамках ST не работает.
Либо я делаю что-то неверно, либо это баг.
kondor3000
03.02.2025, 15:58
Соответственно все, что больше 4 в десятичном виде, уже откровенно не совпадает с действительность.
Сделал подобное при помощи FBD SHR и EXTRACT и все работает корректно, а в рамках ST не работает.
Либо я делаю что-то неверно, либо это баг.
А где переменные выхода? Или вы функцию сделали?
А где переменные выхода? Или вы функцию сделали?
Здесь не указывал, так как тестировал алгоритм.
Тестировал с 16 булевыми переменными выхода.
Добрый день,
Писал в поддержку, решил продублировать сюда.
Использую битовые маски. Для комфортной работы с битами состояния извлекаю их из целочисленной маски и присваиваю ячейкам булевого массива.
Чтобы не делать жесткое присвоение (arrayB[0]:= udintVar.0) решил прогнать целочисленное значение циклом FOR смещая бит в право и записывая его в каждую ячейку массива.
Выглядит следующим образом:
var_input
udintVar: udint;// битовая маска
end_var
var
udintArray: array [0..15] of bool; // булевый массив для записи каждого из битов состояния
selectIn: udint; // итератор цикла
end_var
for selectIn := 0 to 15 do
udintVar:= shr(udintVar,selectIn);
udintArray[selectIn]:= udintVar.0;
end_for
В итоге провожу тест:
целочисленное 1 = bit0 true
целочисленное 2 = bit1 true
целочисленное 3 = bit0 true и bit1 true
целочисленное 4 = все биты 0, вместо того, чтобы bit2 был true.
Соответственно все, что больше 4 в десятичном виде, уже откровенно не совпадает с действительность.
Сделал подобное при помощи FBD SHR и EXTRACT и все работает корректно, а в рамках ST не работает.
Либо я делаю что-то неверно, либо это баг.
У вас проблема здесь: udintVar:= shr(udintVar,selectIn);
Вы сдвигаете на бит и запоминаете число, потом в этом новом числе вы сдвигаете на два бита и т.д.
В общем,
var //объявление локальных переменных
bitArray : array [0..15] of bool;
flag : udint;
i : udint;
end_var
for i := 0 to 15 do
flag := shr(bitMask, i);
bitArray[i] := flag.0;
end_for
У вас проблема здесь: udintVar:= shr(udintVar,selectIn);
Вы сдвигаете на бит и запоминаете число, потом в этом новом числе вы сдвигаете на два бита и т.д.
В общем,
var //объявление локальных переменных
bitArray : array [0..15] of bool;
flag : udint;
i : udint;
end_var
for i := 0 to 15 do
flag := shr(bitMask, i);
bitArray[i] := flag.0;
end_for
Точно, упустил момент.
Спасибо. Добавил переменную для смещенных битов и все работает.
Спасибо за консультацию. Хорошего дня:)
Почему в окне слейв-сетевых переменных нет столбца "Использование в проекте" как на вкладке с обычными переменными?
Причём в слейв переменных это более важно, т.к. неподключенные сетевые переменные "выпадают" из области памяти слейва и напрочь рушат весь опрос мастера.
Вот и сидишь тычешь в каждую переменную списка, проверяя наличие ссылок на неё - просто капец как удобно.
Или сделайте так, чтобы все объявленные слейв-сетевые переменные были доступны для опроса, независимо от участия их в схеме
Добрый день.
При выполнении арифметического действия в программе (вычитание), в разных строчках программы переменная имеет разное значение, меньше на 1. При этом с переменной в этом месте программы ни каких действий не производится.
Пробовал переносить строчку в разные места программы, удалял и из новых компонентов писал строчку, ни чего не помогает. Эта ошибка проявляется как при выполнении программы в контроллере, так и в режиме симулятора.
Прошу подсказать, где ошибка.
81804
Среда разработки Овен Лоджик 2.8.362.0
ПР103-24.1610.03.X.0
kondor3000
06.02.2025, 13:27
Добрый день.
При выполнении арифметического действия в программе (вычитание), в разных строчках программы переменная имеет разное значение, меньше на 1. При этом с переменной в этом месте программы ни каких действий не производится.
Пробовал переносить строчку в разные места программы, удалял и из новых компонентов писал строчку, ни чего не помогает. Эта ошибка проявляется как при выполнении программы в контроллере, так и в режиме симулятора.
Прошу подсказать, где ошибка.
Среда разработки Овен Лоджик 2.8.362.0
ПР103-24.1610.03.X.0
Вы в пошаговом режиме смотрите, так выходная переменная уже получила новое значение, а входная получит в следующем цикле.
А вообще вычитание (любое действие) надо делать в одном месте, а не в 3 как у вас, на пол страницы размахали вместо 2 элементов.
Либо вы просто перемудрили в программе, тогда выкладывайте проект.
делал и в пошаговом и в непрерывном цикле видно, что из-за разницы значений уменьшается общий результат вычислений.
То что сделано на несколько шагов, на скриншоте видно, что одна и таже переменная имеет разные значения. Так быть не должно.
Столько много действий - пытался выловить почему происходит ошибка.
Куда выложить проект?
kondor3000
06.02.2025, 15:01
делал и в пошаговом и в непрерывном цикле видно, что из-за разницы значений уменьшается общий результат вычислений.
То что сделано на несколько шагов, на скриншоте видно, что одна и таже переменная имеет разные значения. Так быть не должно.
Столько много действий - пытался выловить почему происходит ошибка.
Куда выложить проект?
В расширенном режиме, значок добавить файл, прямо здесь.
делал и в пошаговом и в непрерывном цикле видно, что из-за разницы значений уменьшается общий результат вычислений.
То что сделано на несколько шагов, на скриншоте видно, что одна и таже переменная имеет разные значения. Так быть не должно.
Столько много действий - пытался выловить почему происходит ошибка.
Куда выложить проект?
пока на скрине всё логично, сперва считается разность, далее идет селектор который присваивает переменной Уменьшаемое значение из переменной СумматорРасходомерСмолы 81805
пока на скрине всё логично, сперва считается разность, далее идет селектор который присваивает переменной Уменьшаемое значение из переменной СумматорРасходомерСмолы 81805
Одна и таже переменная имеет разные значения.
Результат одной и той же операции разный.
kondor3000
06.02.2025, 15:18
Прикладываю проект
Всё как и сказал, работа не синхронизирована, выходы уже получили число 25, а входы (где число 24) получат в следующем цикле.
Но 1 шаг сделать нельзя, потому что счётчик насчитает ещё 25, до 50.
Вот смотрите, период BLINK увеличил с 2 мс до 200, сразу стало видно, 81807
что у вас периодически уменьшаемое, становится меньше вычитаемого
А если поставить 20 мс, то через раз переменные становятся равны, то есть на вход успевает записаться число. 81808
А через раз также разница в 1.
Одна и таже переменная имеет разные значения.
Результат одной и той же операции разный.
COUNT := 0; // чему равно значение переменной?
COUNT := COUNT + 1; // а сейчас чему равно значение этой же переменной?
здесь нет одной и той же операции, есть последовательное выполнение каких либо операций
Вот смотрите, период BLINK увеличил с 2 мс до 200, сразу стало видно, 81807
что у вас периодически уменьшаемое, становится меньше вычитаемого
Вот за это Спасибо.
У меня не проявлялась эта ошибка
Всё как и сказал, работа не синхронизирована, выходы уже получили число 25, а входы (где число 24) получат в следующем цикле.
Но 1 шаг сделать нельзя, потому что счётчик насчитает ещё 25, до 50.
У меня на столе стоит ПР103.
Загружаю в него программу. Смотрю не в режиме отладки, а в реальном времени идет суммирование.
Если суммировать результат с разных строчек итога вычитания, то получаются разные результаты. Здесь дело не в шагах симулятора.
kondor3000
06.02.2025, 16:10
Вот за это Спасибо.
У меня не проявлялась эта ошибка
Но дело не в этом, при 2 мс всё работает, а разные числа из за отсутствия синхронизации. 81810
Вот скрин, перенёс Разность -1 и Разность в одно место и всё чётко считает
81812
Есть счет еще в одном месте, выделил зеленым.
Так же считает правильно.
Красным выделил, где считает неправильно.
Думаю вопрос не в шагах симулятора, т.к. в режиме реального времени на ПР103 эта ошибка так же проявляется.
На одном проходе программы эти строки должны были посчитаться одинаково. Если они не считаются одинаково, то как можно сказать, что в ходе работы оно будет считаться правильно.
Где здесь ошибка.
81812
Есть счет еще в одном месте, выделил зеленым.
Так же считает правильно.
Красным выделил, где считает неправильно.
Думаю вопрос не в шагах симулятора, т.к. в режиме реального времени на ПР103 эта ошибка так же проявляется.
На одном проходе программы эти строки должны были посчитаться одинаково. Если они не считаются одинаково, то как можно сказать, что в ходе работы оно будет считаться правильно.
Где здесь ошибка.
Это не ошибка - это вопрос последовательности обработки ФБ (которая в OL устанавливается по своим алгоритмам и никак не отображается к сожалению).
Там где у обведено красным - подключите вместо переменной "Уменьшаемое" непосредственно выход блока SEL и все будет считаться так. как ожидаете
kondor3000
06.02.2025, 17:36
Красным выделил, где считает неправильно.
Где здесь ошибка.
Выше скрин уже выложил, и перенёс туда, где считает правильно
Это не ошибка - это вопрос последовательности обработки ФБ (которая в OL устанавливается по своим алгоритмам и никак не отображается к сожалению).
Там где у обведено красным - подключите вместо переменной "Уменьшаемое" непосредственно выход блока SEL и все будет считаться так. как ожидаете
Я заметил что выполняется в той последовательности, в которой добавлялись блоки.
dimon_ag
07.02.2025, 08:15
Обновление 2.9 Перестало работать быстрое копирование имен переменных Ctrl С - Ctrl V.
Пришлось откатиться на последнею 2.8. Вбивать полностью имя для каждой новой переменной, крайне не удобно.
kondor3000
07.02.2025, 08:41
Обновление 2.9 Перестало работать быстрое копирование имен переменных Ctrl С - Ctrl V.
Пришлось откатиться на последнею 2.8. Вбивать полностью имя для каждой новой переменной, крайне не удобно.
Проверил, вставка Ctrl С - Ctrl V нормально работает. Вставляет и текст и блоки.
А ещё, Реализован режим симуляции кода для языка ST, теперь можно в работе тестировать 81819
dimon_ag
07.02.2025, 09:23
Проверил, вставка Ctrl С - Ctrl V нормально работает. Вставляет и текст и блоки.
А ещё, Реализован режим симуляции кода для языка ST, теперь можно в работе тестировать 81819
Еще раз попробовал. Блоки нормально, текст не копируется вообще никак. В 2.8 нет проблем. Значит баг в проге. Не под все компы идет.
kondor3000
07.02.2025, 09:55
Еще раз попробовал. Блоки нормально, текст не копируется вообще никак. В 2.8 нет проблем. Значит баг в проге. Не под все компы идет.
Где у вас не копируется? Скрином покажите
Вот мой скрин, накопировал блоков и текста без проблем 81820
dimon_ag
07.02.2025, 10:03
Ютуб не работает. Как же все бесит!!!:(
Ладно. Работаем в 2.8 ждем следующего обновления. Но на этом ноуте я с 2020 работаю, ни с одним обновлением такого не было.
Версия 2.9. Идея распределить переменные по папкам хорошая, но невозможность свернуть эти папки в панели переменных сводит на нет эту идею
81829
Версия 2.9. Идея распределить переменные по папкам хорошая, но невозможность свернуть эти папки в панели переменных сводит на нет эту идею
81829 Я разочарован! Это не то, что я ожидал, и не то окно, как я его представлял, когда мы с Максимом Денисовым всё обсуждали.
Попробуй ради интереса нажать + и - на NumPad'е, когда курсор будет стоять на папке в дереве.
Если это стандартный контрол "Дерево", то он должен такие кнопки обрабатывать штатно, даже если плюсиков нет.
dimon_ag
08.02.2025, 09:42
Ужас какой то а не обновление. Ошибка драйвера! Не могу связаться с ПР200.
Что натворили??? Было же все нормально.81850
2 часа уже на объекте бьемся. До обновы все в норме было.
Разрабы что делать то?
Полный снос и переустановка не помогли!!!
dimon_ag
08.02.2025, 11:21
Тишина в эфире.
Всем спасибо. Ноут сел. Обнова суа=пер. Нихрена не получилось, ОВЕН как всегда на высоте. Едем на базу.
Тимур Назарбоев
10.02.2025, 11:37
Ужас какой то а не обновление. Ошибка драйвера! Не могу связаться с ПР200.
Что натворили??? Было же все нормально.81850
2 часа уже на объекте бьемся. До обновы все в норме было.
Разрабы что делать то?
Полный снос и переустановка не помогли!!!
Добрый день, попробуйте отключить цифровую подпись драйверов. Пример: https://remontka.pro/disable-drivers-signature-check-windows-10/
Ужас какой то а не обновление. Ошибка драйвера! Не могу связаться с ПР200.
Что натворили??? Было же все нормально.81850
2 часа уже на объекте бьемся. До обновы все в норме было.
Разрабы что делать то?
Полный снос и переустановка не помогли!!!
Эта фигня могла прилететь и от обновления самой винды.
Как вам уже написали - отключайте цифровую подпись драйверов
=provincial=
10.02.2025, 14:54
Установил версию 2.9.363.0 и сразу же столкнулся с отсутствием сортировки по столбцам переменных в таблицах.
Ужас какой то а не обновление. Ошибка драйвера! Не могу связаться с ПР200.
Что натворили??? Было же все нормально.81850
2 часа уже на объекте бьемся. До обновы все в норме было.
Разрабы что делать то?
Полный снос и переустановка не помогли!!!
Есть топик на форуме с такой-же ситуацией: https://owen.ru/forum/showthread.php?t=40088
Ошибка драйвера! Не могу связаться с ПР200.
С драйверами поступаю просто.
Всего в мире несколько микросхем для USB-COM, вероятно, что уже довелось пользоваться разными "шнурками" и ставить драйвера для них.
Нужно при подключении ПР102 не устанавливать драйвер, а указать установщику, что устройство "PR102" обслуживается уже установленным ранее драйвером и выбрать его из списка.
Если драйвер не ставили, то просто установите самый свежий драйвер от производителя микросхем.
Детали с окошками уже не вспомню, но их можно найти в интернете.
А на будущее, чаще вспоминайте, что чернобыльская авария произошла в ночь на субботу перед праздниками. Т.е. какие могут быть эксперименты с прошивками и обновлениями после выхода на объект?
У меня самого был случай. Несколько лет назад на выходных ушёл "в запой" и ноутбук не включал. В ночь на субботу производитель обновил прошивку BIOS и трезвенники обновили ноуты. А в понедельник из новостей я узнал, что обновлённые ноуты отправляют в сервис-центры для "раскирпичивания".
Производитель ноутов - крайне серьёзная фирма, мой ноут из линейки профессиональных с повышенной защитой и соответствующей ценой.
Теперь у Вас и у меня есть опыт, говорящий о ненужности скорейших обновлений.
Надеюсь, совет с драйверами поможет. Овен использует микросхемы, названия которых начинается с буквы "S", точнее не помню, но и микросхем не много.
Установил версию 2.9.363.0 и сразу же столкнулся с отсутствием сортировки по столбцам переменных в таблицах.
Правый щелчок мыши на заголовке столбца...
Если уж сделали возможность группировки переменных, то выбрав одну переменную в какой либо категории, в этой категории бы оставаться при закрытии окна выбора. А то каждый раз нужно туда лезть, либо по старинке искать в общей куче - что порой и быстрее...
Новый элемент "График" не поддерживает симуляцию?
Или для симуляции нужна Windows 10+?
У меня - Windows 7.
Если нужна Win10+ добавьте об этом в справке.
kondor3000
12.02.2025, 20:23
Новый элемент "График" не поддерживает симуляцию?
Или для симуляции нужна Windows 10+?
У меня - Windows 7.
Если нужна Win10+ добавьте об этом в справке.
В эмуляции не работает на любой винде, на 10 тоже.
Спасибо.
Раз так, то просьба к разработчикам - отметить это в справке. Думаю, что читал её внимательно, перед тем как на форум написать.
Доброго времени суток. Обновил лоджик до последней версии 2.9.363.0. При попытке найти расширения ооооочень долго думает и выдает что расширений для этой версии не найдено, обновитесь до последней. Откатился на предыдущую - та же история. А нужен экспорт в OC. Есть мысли? Переустанавливать уже пробовал.
Тимур Назарбоев
14.02.2025, 10:26
Доброго времени суток. Обновил лоджик до последней версии 2.9.363.0. При попытке найти расширения ооооочень долго думает и выдает что расширений для этой версии не найдено, обновитесь до последней. Откатился на предыдущую - та же история. А нужен экспорт в OC. Есть мысли? Переустанавливать уже пробовал.
Добрый день, данная проблема известна, инженеры уже работают над её решением.
Добрый день, данная проблема известна, инженеры уже работают над её решением.
Спасибо. Риторический, конечно, вопрос но всё же: нельзя ли попросить инженеров прекратить работать по формуле "Х*2 и в продакшн"? В бюджетном сегменте особо вариантов кроме вас нет, а такие вещи очень сильно тормозят работу и иногда просто ну очень не вовремя.
Королев Кирилл
14.02.2025, 13:49
Спасибо. Риторический, конечно, вопрос но всё же: нельзя ли попросить инженеров прекратить работать по формуле "Х*2 и в продакшн"? В бюджетном сегменте особо вариантов кроме вас нет, а такие вещи очень сильно тормозят работу и иногда просто ну очень не вовремя.
Добрый день. Обновление OL не затрагивало сервер расширений, проблема в том, что этот сервер прилег. В любом случае, спасибо, что сообщили об ошибке.
Здравствуйте, обновился сегодня на Версию 2.9.363.0. Очень классное добавление каталогов для переменных в "Панель переменных". Но если бы эти каталоги можно было бы сворачивать, это было бы очень удобно. Спасибо
Добрый день. Обновление OL не затрагивало сервер расширений, проблема в том, что этот сервер прилег. В любом случае, спасибо, что сообщили об ошибке.
Спасибо за ответ. Так хотя бы понятно что происходит и чего можно ждать.
dimon_ag
16.02.2025, 14:22
Всем спасибо за советы, с драйвером разобрались. Правда пришлось винду переустановить. Стояла корпоративная с отключенной системой восстановления. Установили Вин 10 про.
Но проблема с копированием имен переменных не ушла. Так что работаю на предыдущей версии Лоджика.
Разработчикам: у нас в городе Ютуб не работает Совсем никак. Поэтому не могу показать видео проблемы. Может уже подключите что нибудь типа Рутуб? Или подождем когда санкции снимут?
kondor3000
16.02.2025, 15:41
Всем спасибо за советы, с драйвером разобрались. Правда пришлось винду переустановить. Стояла корпоративная с отключенной системой восстановления. Установили Вин 10 про.
Но проблема с копированием имен переменных не ушла. Так что работаю на предыдущей версии Лоджика.
Разработчикам: у нас в городе Ютуб не работает Совсем никак. Поэтому не могу показать видео проблемы. Может уже подключите что нибудь типа Рутуб? Или подождем когда санкции снимут?
Достаточно скрины было выложить.
Рутуб работает, более того большая часть обучающих видео от Овен есть и на Рутуб.
А при желании, спокойно находится в Инете, как заставить работать Ю-туб.
МихаилГл
16.02.2025, 17:16
А при желании, спокойно находится в Инете...
Ну на счет "спокойно", не знаю. Это в случае если уже сидите на впн, возможно, а так, тот еще... А если на руках дома только смартфон, то считай вообще невозможно.
kondor3000
16.02.2025, 17:52
Ну на счет "спокойно", не знаю. Это в случае если уже сидите на впн, возможно, а так, тот еще... А если на руках дома только смартфон, то считай вообще невозможно.
На компе без ВПН, на браузер ставите расширение (в разных браузерах разные расширения) и смотрите спокойно. Есть и за деньги и бесплатно.
Бесплатно, чуть помедленнее работает и нет 4К.
dimon_ag
16.02.2025, 18:50
Вот очень интересно, как скрином вы покажете динамичный процесс?
kondor3000
16.02.2025, 18:59
Вот очень интересно, как скрином вы покажете динамичный процесс?
Вы уже 9 день не можете показать что вы копируете, откуда и куда. Для этого достаточно 2 скринов, выделить на скрине и дописать пару строк пояснений.
7 числа ещё выложил свой скрин https://owen.ru/forum/showthread.php?t=12264&p=456821&viewfull=1#post456821
и за 9 дней никто не написал, что у него не копируется что-то.
dimon_ag
16.02.2025, 19:41
Вы уже 9 день не можете показать что вы копируете, откуда и куда. Для этого достаточно 2 скринов, выделить на скрине и дописать пару строк пояснений.
7 числа ещё выложил свой скрин https://owen.ru/forum/showthread.php?t=12264&p=456821&viewfull=1#post456821
и за 9 дней никто не написал, что у него не копируется что-то.
Ваш скрин ничего не имеет общего с вышеописанной проблемой.
Я не не могу, я не хочу заниматься всякой фигней, потому как понятно что до следующего обновления проблема не решиться. А работать мне вполне комфортно и в предыдущей версии.
Разработчикам: у нас в городе Ютуб не работает Совсем никак. Поэтому не могу показать видео проблемы. Может уже подключите что нибудь типа Рутуб? Или подождем когда санкции снимут?
Залейте видео на яндекс диск и выложите здесь ссылку.
dimon_ag
17.02.2025, 07:44
Залейте видео на яндекс диск и выложите здесь ссылку.
https://rutube.ru/video/private/1b9d26cc43b363063c8b5ad2e5db2644/?p=v4ZZlzy8INs6sNs2eve0Tg
kondor3000
17.02.2025, 08:02
https://rutube.ru/video/private/1b9d26cc43b363063c8b5ad2e5db2644/?p=v4ZZlzy8INs6sNs2eve0Tg
И зачем куча лишних движений? Если переменные дублируются прямо в списке по ПКМ и по Cntrl+D 81995
По кнопкам Cntrl+C и Cntrl+V тоже работает (это неудобно, надо выделять строку)
Как на видео тоже работает, надо выделить строку (поставить курсор) 81996 Скопировать и вставить имя переменной,
выходить на поле программы не надо.
dimon_ag
17.02.2025, 13:01
Дублировать это вообще не то. К примеру нужно переменные прописать в сетевые, раньше щелкнул на нее, она выделилась дальше Ctrl C - Ctrl V в окне сетевой переменной, добавили например буковку с в конец имени (типо сетевая) чтобы Лоджик на одинаковые имена не ругался и все. Быстро удобно. Так вот, на двух компах пробовал, в последнем обновлении Ctrl V не отрабатывает, так же как и на видео правой кнопкой мыши. Причем на ноут уже лицензионную винду поставили и все обновления сделали. Все равно в последнем обновлении Ctrl V НЕ РАБОТАЕТ. А так как опробовано уже на двух компах и трех разных Виндовс, то понятно что баг именно в новом обновлении, т.к. откат Лоджика на предыдущую версию проблему решает!
У каждого конечно своя манера работать. Но вот мне этого копирования очень сильно не хватает.
dimon_ag
18.02.2025, 08:55
в том и дело что у каждого своя, поэтому Вас ни кто не понимает https://drive.google.com/file/d/1fOJYwa_sRCK2sPZoFeVE0xq-d3pnoK4W/view?usp=sharing
Смешно ей богу. Куда понятней то.
Ладно заканчиваем диалог. ;)
dimon_ag
18.02.2025, 09:16
подождите, куда Вы сливаетесь. На вопрос дайте ответ, находясь в окне переменных у Вас получается копировать и вставлять, а про то что Вы делаете копировать, потом выходите из окна, заходите по новой и вставить не доступна Вы ни где до этого не писали, пока видео не выдложили
Я четко написал, Не работает копирование имен переменных! Не понимаю что не понятно?
Вот видео со звуком об элементарности поставленного вопроса. https://rutube.ru/video/private/d48fa3e31728bc94af94d652a9261d31/?p=tEYGXjAvYrRzlSAempdJPw
Виде с предыдущей версии. В последней это копирование, по крайней мере у меня не работает!
dimon_ag
18.02.2025, 09:31
Сори, но я его не видел.
Ютуб умер, публичные Рутуб, ВК, которыми и я пользуюсь. Танцами с бубном с других источников заниматься просто некогда. Еще раз сори.
Если у вас работает значит у меня проблемы с компами причем сразу с двумя. :(
В последней это копирование, по крайней мере у меня не работает!
Насколько я понял, при открытии окна переменных почему-то очищается буфер обмена. Видать, разработчики где-то не там галку поставили
Как вариант (пока не починят): копируете переменную на холсте, потом открываете, там копируете имя и вставляете в пустую строку
а я показал видео что всё работает, что не понятно?
В локальных переменных всё нормально, а вот в списке СЕТЕВЫХ переменных - текст в название переменной не вставляется/
Да, похоже буфер очищается при переходе в этот список/
А ещё точнее - при переходе в ЛЮБОЙ из списков переменных
dimon_ag
18.02.2025, 09:52
здесь сетевые? https://owen.ru/forum/showthread.php?t=12264&p=457475&viewfull=1#post457475
да и сетевыми попробовал все работает если не выходить из окна
Как не выходить из окна когда вы имя в разные типы переменных копируете? В предыдущем видно как это работает, в новом (Видео разработчикам) как это стало работать И комп тут не при чем. 100% уверен есть баг в новом обновлении! https://rutube.ru/video/private/80adf0441bd4ff559a17e9238a244893/?p=fgSwojuoGDbNMagCy4l51Q
dimon_ag
18.02.2025, 10:26
когда появилось это условие?
почувствовали разницу, первая Ваша ссылка(которую я привожу где Вы меня сейчас цитируете) и текущая. Когда пишите что не работает копипаст это только Вам известно про что это, а классический он работает во всех версиях и под любой виндой
а почему разработчики чистят буффер, ну возможно чтоб не было таких переменных например
С самого начала!!! Не работает копирование ИМЕН, ИМЕН, ИМЕН, а не переменных или их дублирование!!! Что не понятно???????
Все. Пусть разрабы разбираются.
До свидание. Здоровья, удачи вам от всего сердца.
Диалог закончен.
Ded_Paxom
18.02.2025, 15:48
Еще, с новым обновлением перестала работать симуляция дисплея на ПР-200. Даже кнопка пропала
Еще, с новым обновлением перестала работать симуляция дисплея на ПР-200. Даже кнопка пропала
Так симуляции экрана на ПР200 и не было никогда
Королев Кирилл
18.02.2025, 16:59
С самого начала!!! Не работает копирование ИМЕН, ИМЕН, ИМЕН, а не переменных или их дублирование!!! Что не понятно???????
Все. Пусть разрабы разбираются.
До свидание. Здоровья, удачи вам от всего сердца.
Диалог закончен.
Добрый день.
Задачу завели, спасибо за обратную связь.
kov.alex91
23.02.2025, 13:26
Здравствуйте!
Возникла проблема с просмотром переменных в "Окне просмотра" в режиме симулятора. При нажатии на кнопку троеточия в поле "Имя" появляется окно с ошибкой "Object reference not set to an instance of an object.". Полный текст ошибки:
2.9.363.0
System.NullReferenceException: Object reference not set to an instance of an object.
at ProgramRelayFBD.PresentationLayer.Presenters.Varia bleCollectionViewModel.<>c__DisplayClass8_0.<GetTreeNodes>b__0(VariableInfoBaseDecorator item)
at System.Linq.Enumerable.SelectListIterator`2.MoveNe xt()
at System.Collections.Generic.LargeArrayBuilder`1.Add Range(IEnumerable`1 items)
at System.Collections.Generic.EnumerableHelpers.ToArr ay[T](IEnumerable`1 source)
at ProgramRelayFBD.Views.VariablesServicePage..ctor(I VariableCollectionViewModel viewModel)
at ProgramRelayFBD.InfrastructureLayer.Details.Variab lesPageFactory.CreateInputVariablesPage()
at ProgramRelayFBD.InfrastructureLayer.SchemeEditor.T ablePagesFactoryFromWatchList.Create(DrawingDocume nt drawing)+MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerabl e`1 collection)
at ProgramRelayFBD.InfrastructureLayer.Adapters.Manag erVariablesPresenter..ctor(IEnumerable`1 tableVariablesPages, BaseVariableInfo currentVariableInfo, String textNullablePage, IMappingParameterRepository mappingParameterRepository, IVariableManager variableManager, ExtensionPanelPresenter extensionPanelPresenter, VariablesCatalogPresenter variablesCatalogPresenter)
at ProgramRelayFBD.InfrastructureLayer.Adapters.FormP resenter.CreateManagerVariablesPresenter(IEnumerab le`1 pages, BaseVariableInfo currentVariableInfo, String textNullablePage, IVariableManager variableManager, ExtensionPanelPresenter extensionPanelPresenter)
at ProgramRelayFBD.InfrastructureLayer.Adapters.FormP resenter.SelectVariableFromTable(IEnumerable`1 pages, BaseVariableInfo currentVariableInfo, DrawingDocument drawingDocument, String textNullablePage, IWin32Window owner)
at ProgramRelayFBD.InfrastructureLayer.Adapters.FormP resenter.SelectVariableFromCurrentDocument(BaseVar iableInfo currentVariableInfo, String textNullablePage, IWin32Window owner, ITablePagesFactory pagesFactory)
at ProgramRelayFBD.InfrastructureLayer.SchemeEditor.L abelButtonEditingPresenter.SelectNewValue()
at Owen.ExternalInterfaces.LabelButtonEditingControl.<CreateChildControls>b__17_0(Object <p0>, EventArgs <p1>)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at Nevron.UI.WinForm.Controls.NButton.OnClick(EventAr gs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventAr gs mevent)
at Nevron.UI.WinForm.Controls.NButton.OnMouseUp(Mouse EventArgs e)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at Nevron.UI.WinForm.Controls.NButton.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, WM msg, IntPtr wparam, IntPtr lparam)
Версия программы: 2.9.363.0. Операционная система Windows 11 23H2 и Windows 10 22H2.
Воспроизведение ошибки:
1. Открываем программу
2. Создаем новый проект
3. Выбираем модель устройства ПР102-24.2416.16
4. В меню "Прибор -> Настройки прибора" добавляем модуль расширения ПРМ-24.1
5. Сохраняем файл проекта на рабочий стол под именем 123.owle
6. Закрываем программу
7. Открываем программу, дважды нажав на файл 123.owle
8. Включаем режим симулятора
9. В "Окне просмотра" нажимаем на кнопку троеточия в поле "Имя"
10. Появляется окно с сообщением об ошибке, приведенном выше.
Если после описанных действий удалить модуль расширения ПРМ-24.1 в меню "Настройки прибора", то ошибка не появляется и переменные просмотреть можно. При повторном добавлении модуля расширения, сохранении проекта, закрытии и открытии программы ошибка вновь появляется.
Подскажите, пожалуйста, как решить данную проблему?
Версия Owen_Logic 2.9.363.0 - при открытии окна переменных на корешке вкладки у слова "Схема" появляется звёздочка, как будто проект изменён. При том, что ничего не менялось, просто было открыто окно переменных. То же самое происходит при входе в окошко новых многострочных комментариев - даже если комментарий не изменять, звёздочка всё равно появляется.
То есть толку теперь от неё нет.
Это было и на более ранних версиях OL
Это было и на более ранних версиях OL
2.8.360 - открытие окна переменных не вызывает появление звёздочки. 2.9.363 - вызывает. На каких более ранних? Между этими версиями два обновления. И в любом случае это неправильно, хоть было раньше, хоть нет.
Многострочных комментариев до 2.9.363 вообще не было.
Из вашего ответа можно только уяснить себе, что Owen_Logic вы не пользуетесь. Больше никакой пользы. Так для чего вы его писали?
Morozbl4
01.04.2025, 09:12
Добрый день.
А будет ли как-то решаться вопрос с масштабированием интерфейса программы для больших разрешений экрана?
Присутствуют некоторые неудобства.
При программировании ПР205 из версии OL 2.9.364.0 замечено отсутствие подсветки фокуса перемещения по редактируемым элементам на экране (при нажатии SEL). Ранее такое выделение было видно за счёт утолщения на 1 пиксель рамки на выбранном элементе. В системном меню с этим проблем нет.
При программировании ПР205 из версии OL 2.9.364.0 замечено отсутствие подсветки фокуса перемещения по редактируемым элементам на экране (при нажатии SEL). Ранее такое выделение было видно за счёт утолщения на 1 пиксель рамки на выбранном элементе. В системном меню с этим проблем нет.
Это уже давно так
https://owen.ru/forum/showthread.php?t=37840&p=455069&viewfull=1#post455069
Королев Кирилл
01.04.2025, 16:25
При программировании ПР205 из версии OL 2.9.364.0 замечено отсутствие подсветки фокуса перемещения по редактируемым элементам на экране (при нажатии SEL). Ранее такое выделение было видно за счёт утолщения на 1 пиксель рамки на выбранном элементе. В системном меню с этим проблем нет.
Толщина фокуса сейчас привязана к толщине рамки контрола.
Толщина фокуса сейчас привязана к толщине рамки контрола.
И это навсегда или можно что-то изменить, если на то будут многочисленные просьбы трудящихся?
Королев Кирилл
03.04.2025, 09:39
И это навсегда или можно что-то изменить, если на то будут многочисленные просьбы трудящихся?
Многочисленные просьбы уже видим :) Сейчас прорабатываем функционал настройки толщины фокуса. Предварительно - появится новое окно с общими настройками визуализации проекта (настройки из него будут применяться для всей визуализации). Помимо толщины фокуса в планах добавить еще возможность настраивать цвет фокуса.
kondor3000
03.04.2025, 15:16
Многочисленные просьбы уже видим :) Сейчас прорабатываем функционал настройки толщины фокуса. Предварительно - появится новое окно с общими настройками визуализации проекта (настройки из него будут применяться для всей визуализации). Помимо толщины фокуса в планах добавить еще возможность настраивать цвет фокуса.
Толщина вообще не нужна, надо выделять весь элемент, а вот цвет как раз нужен, чтобы была инверсия цвета элемента.
Королев Кирилл
03.04.2025, 16:31
Толщина вообще не нужна, надо выделять весь элемент, а вот цвет как раз нужен, чтобы была инверсия цвета элемента.
А есть какие-нибудь референсы/визуализация такого решения? Если есть - пришлите, пожалуйста.
kondor3000
03.04.2025, 18:04
А есть какие-нибудь референсы/визуализация такого решения? Если есть - пришлите, пожалуйста.
Вот пример не выделенного и выделенного для изменения элемента 82862 настраиваемая инверсия цвета элемента и шрифта.
Может у других будет другое мнение, но выделение даже толстой рамки это не выход, плохо будет видно.
Petrovi4
03.04.2025, 18:48
Инверсия цвета при выделении превращается в тыкву, если рядом попадутся элементы совпадающие по цвету с инверсным цветом. ИМХО только вариант рамки с маркерами или возможность выбора цвета/шрифвтов/толщины рамки для каждого состояния объекта.
Такую же тыкву можно получить и с рамкой - кто-то запретил навставлять штатных рамок?
.. прорабатываем функционал настройки толщины фокуса.
.. добавить еще возможность настраивать цвет фокуса.
все сёстрам по серьгам
Королев Кирилл
04.04.2025, 14:59
Вот пример не выделенного и выделенного для изменения элемента 82862 настраиваемая инверсия цвета элемента и шрифта.
Может у других будет другое мнение, но выделение даже толстой рамки это не выход, плохо будет видно.
При нахождении фокуса на контроле числового ввода/вывода мигает выбранный для редактирования разряд (заметно, на мой субъективный взгляд). Проблема сейчас, в основном, может возникнуть с динамическим текстом и примитивами (многоугольник/круг).
Для примитивов вариант с цветовым выделением заливкой не подойдет (т.к. у них есть настройка цвета состояний true/false).
Если для дин текста добавить индикацию, похожую на числовой ввод - мигание галочки, когда контрол в фокусе, но "свернут", то это улучшит ситуацию?
kondor3000
04.04.2025, 17:37
При нахождении фокуса на контроле числового ввода/вывода мигает выбранный для редактирования разряд (заметно, на мой субъективный взгляд). Проблема сейчас, в основном, может возникнуть с динамическим текстом и примитивами (многоугольник/круг).
Для примитивов вариант с цветовым выделением заливкой не подойдет (т.к. у них есть настройка цвета состояний true/false).
Если для дин текста добавить индикацию, похожую на числовой ввод - мигание галочки, когда контрол в фокусе, но "свернут", то это улучшит ситуацию?
Ну тогда для динамич. текста выделение рамки в настраиваемой шириной и цветом и мигание галочки. Для примитивов рамка, для дисплеев рамка с мигающим разрядом.
Что то другие молчат, наверно нужно мнение и других участников.
При нахождении фокуса на контроле числового ввода/вывода мигает выбранный для редактирования разряд (заметно, на мой субъективный взгляд). Проблема сейчас, в основном, может возникнуть с динамическим текстом и примитивами (многоугольник/круг).
Для примитивов вариант с цветовым выделением заливкой не подойдет (т.к. у них есть настройка цвета состояний true/false).
Если для дин текста добавить индикацию, похожую на числовой ввод - мигание галочки, когда контрол в фокусе, но "свернут", то это улучшит ситуацию?
Я не видел экран в живую, но думаю достаточно выделять рамкой толщиной 3 пикселя, при этом рамка должна на 1 пиксель выходить за контур контрола. ну и выбор выбор цвета выделения оставить за пользователем
kondor3000
11.04.2025, 13:34
У меня после установки OWEN Logic2.10.365 и обновления NET, теперь проекты открываются с ошибкой 83014 и 83015Виндовс 7 (32 бит)
На версии OWEN Logic2.9.364 всё работает хорошо 83016 те же проекты на Винде 10 (64 бит) и версии OWEN Logic2.10.365 открываются нормально.
Один из примеров выложил.
Мало того, даже при создании нового проекта, тоже ошибка. Что 7 Винду совсем в утиль?
У меня после установки OWEN Logic 2.10.365 и обновления NET возникают ошибки при запуске эмуляции 83044,83045, и при закрытии этих окон все висит. Винда: Выпуск Windows 10 Pro Версия 22H2
Дата установки 27.12.2024
Сборка ОС 19045.3031
при попытке открыть проект, над которым работал пару дней назад и проблем не было.
как теперь открыть?
Добрый день. Как-то уже пытался найти ответ на этот вопрос, но так и не нашёл. Баг или фича? Дано: ПР-103 и китайский релейный модуль, подкинутый к ПР по модбас-рту. у модуля есть два дискретных входа. Теоретически они должны считываться ПР-кой либо в две булевых переменных, либо в одну вордовую, из которой можно потом побитно эти входы считать. Но практически все интереснее: оба входа считываются в одну БУЛЕВУ переменную. И если ее прокинуть на выход ПР, то выход срабатывает только при подаче сигнала на первый вход модуля. А если замкнуть второй вход китайского модуля - В БУЛЕВОЙ ПЕРЕМЕННОЙ отображается циферка 2 - но выход ПР, на который она прокинута, не срабатывает. Как это вообще возможно такое поведение? И опять же - я читаю дискретные входы из китайского модуля функцией модбас 02, которая вроде как подразумевает чтение НЕСКОЛЬКИХ дискретных входов - и согласно этой логике для такого поведения должен выбираться целочисленный тип переменной. Но выбирается только булевый. Это можно как-то пофиксить/обойти? Или так будет всегда?
831898319083191
kondor3000
17.04.2025, 10:51
Добрый день. Как-то уже пытался найти ответ на этот вопрос, но так и не нашёл. Баг или фича? Дано: ПР-103 и китайский релейный модуль, подкинутый к ПР по модбас-рту. у модуля есть два дискретных входа. Теоретически они должны считываться ПР-кой либо в две булевых переменных, либо в одну вордовую, из которой можно потом побитно эти входы считать. Но практически все интереснее: оба входа считываются в одну БУЛЕВУ переменную. И если ее прокинуть на выход ПР, то выход срабатывает только при подаче сигнала на первый вход модуля. А если замкнуть второй вход китайского модуля - В БУЛЕВОЙ ПЕРЕМЕННОЙ отображается циферка 2 - но выход ПР, на который она прокинута, не срабатывает. Как это вообще возможно такое поведение? И опять же - я читаю дискретные входы из китайского модуля функцией модбас 02, которая вроде как подразумевает чтение НЕСКОЛЬКИХ дискретных входов - и согласно этой логике для такого поведения должен выбираться целочисленный тип переменной. Но выбирается только булевый. Это можно как-то пофиксить/обойти? Или так будет всегда?
831898319083191
Пробуйте считать целое, функцией 03 или 04, Маску бит и выделить из них биты, 1 - 0 бит, 2 -1 бит.
Пробуйте считать целое, функцией 03 или 04, Маску бит и выделить из них биты, 1 - 0 бит, 2 -1 бит.
целое не считывается, к сожалению
Добрый день. Как-то уже пытался найти ответ на этот вопрос, но так и не нашёл. Баг или фича? Дано: ПР-103 и китайский релейный модуль, подкинутый к ПР по модбас-рту. у модуля есть два дискретных входа. Теоретически они должны считываться ПР-кой либо в две булевых переменных, либо в одну вордовую, из которой можно потом побитно эти входы считать. Но практически все интереснее: оба входа считываются в одну БУЛЕВУ переменную. И если ее прокинуть на выход ПР, то выход срабатывает только при подаче сигнала на первый вход модуля. А если замкнуть второй вход китайского модуля - В БУЛЕВОЙ ПЕРЕМЕННОЙ отображается циферка 2 - но выход ПР, на который она прокинута, не срабатывает. Как это вообще возможно такое поведение? И опять же - я читаю дискретные входы из китайского модуля функцией модбас 02, которая вроде как подразумевает чтение НЕСКОЛЬКИХ дискретных входов - и согласно этой логике для такого поведения должен выбираться целочисленный тип переменной. Но выбирается только булевый. Это можно как-то пофиксить/обойти? Или так будет всегда?
А если эту "булевую" двойку преобразовать в целое - что будет?
А если эту "булевую" двойку преобразовать в целое - что будет?
83197 ну вот такое получается
МихаилГл
17.04.2025, 11:21
Это как так:
Булево регистр 0 бит 0 и ниже
Булево регистр 0 бит 1...
Скидывайте инструкцию на девайс...
PS Сам неправ, потому что с коилами не работал.
Может пр'ка не булевы цифры показывает, а основной регистр?
Это как так:
Булево регистр 0 бит 0 и ниже
Булево регистр 0 бит 1...
Скидывайте инструкцию на девайс...
PS Сам неправ, потому что с коилами не работал.
Может пр'ка не булевы цифры показывает, а основной регистр?
https://pcus.ru/moduli/moduli-rele/rele-s-interfejsom-rs485-dvojnoj-modbus-rtu-2x - вся инструкция, какую нашёл. Это чудеса - как вообще в булевой переменной может отображаться целочисленная двойка?
kondor3000
17.04.2025, 12:47
https://pcus.ru/moduli/moduli-rele/rele-s-interfejsom-rs485-dvojnoj-modbus-rtu-2x - вся инструкция, какую нашёл. Это чудеса - как вообще в булевой переменной может отображаться целочисленная двойка?
Это баг ОЛ, и уже давно. Читаем бит как регистр 0 бит 1, получаем маску, число 2 ( в данном случае), а по факту это бит.
Китайские реле не хотят работать с ПР от Овен, да и с ПЛК иногда только через биб-ку.
Это баг ОЛ, и уже давно. Читаем бит как регистр 0 бит 1, получаем маску, число 2 ( в данном случае), а по факту это бит.
Китайские реле не хотят работать с ПР от Овен, да и с ПЛК иногда только через биб-ку.
А какие библиотеки можно использовать для ПЛК?
kondor3000
17.04.2025, 13:27
А какие библиотеки можно использовать для ПЛК?
Биб-ки Модбас, примеры на сайте. Разговор о ПЛК1хх
Биб-ки Модбас, примеры на сайте. Разговор о ПЛК1хх
а на ПЛК 2хх?
Это баг ОЛ, и уже давно...
Не то что бы баг. Для ф1..2 задается и кол-во битов. В ОЛ же нет задания кол-ва битов? А считывает (имхо) все 8
Накой там вообще поле регистра для битовых функций (я не знаю)
Судя по фотке с X-I приведение происходит по 0-му биту контейнера содержащего буль
А при значении 2 Q1 щелкнул?
Если в этом китайце есть >8 битов, то может попробывать в другую бульную переменную считать с 1-ого бита?
kondor3000
17.04.2025, 14:04
а на ПЛК 2хх?
На ПЛК2хх, не пробовал китайские модули. Но там тоже, кроме конфигурации, есть биб-ки Модбас и Овен. Примеры есть на сайте тоже.
kondor3000
17.04.2025, 14:08
Не то что бы баг. Для ф1..2 задается и кол-во битов. В ОЛ же нет задания кол-ва битов? А считывает (имхо) все 8
Накой там вообще поле регистра для битовых функций (я не знаю)
Судя по фотке с X-I приведение происходит по 0-му биту контейнера содержащего буль
А при значении 2 Q1 щелкнул?
Если в этом китайце есть >8 битов, то может попробывать в другую бульную переменную считать с 1-ого бита?
Не получится, у кого больше 1 бита, в китайских модулях, сталкиваются с проблемами чтения и записи. У китайцев это отдельные области (как положено),
а у Овена всё наложено друг на друга.
Не то что бы баг. Для ф1..2 задается и кол-во битов. В ОЛ же нет задания кол-ва битов? А считывает (имхо) все 8
Накой там вообще поле регистра для битовых функций (я не знаю)
Судя по фотке с X-I приведение происходит по 0-му биту контейнера содержащего буль
А при значении 2 Q1 щелкнул?
Если в этом китайце есть >8 битов, то может попробывать в другую бульную переменную считать с 1-ого бита?
при значении 2 Q2 не щёлкает.
Камрады, тут еще другая проблема, никак не связанная с этой - почему может вылезать табличка во время онлайн-отладки "Устройство было сброшено"?
при значении 2 Q2 не щёлкает.
предположение
"приведение X-I происходит по 0-му биту контейнера содержащего буль"
получило подтверждение.
+ определение самого буля по 0-му биту. Что вообще странно для тех кто "if(x){....}", но конкретно здесь может (не обязано) помочь после выяснения вопроса ниже
Не получится, у кого больше 1 бита, в китайских модулях, сталкиваются с проблемами чтения и записи.
"Не получится" - это утверждение или предположение для данного случая?
Попытка прочитать c 1-ого (не 0-ого) бита - была?
..У китайцев это отдельные области (как положено), а у Овена всё наложено друг на друга.
Конкретно это никак ни на что не влияет. Тут мастеру сказали функцию, адрес бита и, видимо, неявно какое-то количество (8/16/32?) битов. Совмещены ли у слейва области или нет - мастеру абсолютно пофиг.
Есть ли у слейва биты 1..8/16/32 (не 0..7/15/31 !!) - это вопрос illegal adress
Может ли слейв прислать биты с любого адреса - это вопрос реализации самого слейва. В рамках протокола хоть с 13-ого 69 штук. Вот тут овен-слейв вроде чудит. Но разговор за китайцев-слейвцев, а овена - мастера.
kondor3000
17.04.2025, 17:17
предположение
"приведение X-I происходит по 0-му биту контейнера содержащего буль"
получило подтверждение.
+ определение самого буля по 0-му биту. Что вообще странно для тех кто "if(x){....}", но конкретно здесь может (не обязано) помочь после выяснения вопроса ниже
"Не получится" - это утверждение или предположение для данного случая?
Попытка прочитать c 1-ого (не 0-ого) бита - была?
Выше уже все ответил, на эти вопросы, приходит булевая, в ней число. Извлечь это число не возможно в ОЛ (кроме 0 бита), потому что переменная булевая.
1 работает, больше 1 для буля в ОЛ это 0. Конвертация в целое не работает. ТС уже не первый, у кого ничего не вышло.
Разрабы могли бы исправить работу, маска же приходит, но так ничего и не сделали.
kondor3000, так и я ответил. Для возможного решения проблемы в рамках текущей версии ОЛ/ПР нужно точно сказать - читается ли с 1-ого (не 0-ого) бита.
Точно, а не где-то когда то.
Не больше 1 не работает, а для буля юзают 0-й бит. Хоть и похоже, но есть смысловая разница. Но это же и можно использовать если прочитается с 1-ого. Это будет 1-й бит слейва на месте 0-ого в другой переменной мастера - это же очевидно.
А для нормализации таких булей желательно просто X—I - - - I—X
Или стонать и ждать другой версии ОЛ. Проверит ли ТС свой всего лишь шанс - мне лично побоку.
предположение
"приведение X-I происходит по 0-му биту контейнера содержащего буль"
получило подтверждение.
+ определение самого буля по 0-му биту. Что вообще странно для тех кто "if(x){....}", но конкретно здесь может (не обязано) помочь после выяснения вопроса ниже
"Не получится" - это утверждение или предположение для данного случая?
Попытка прочитать c 1-ого (не 0-ого) бита - была?
Конкретно это никак ни на что не влияет. Тут мастеру сказали функцию, адрес бита и, видимо, неявно какое-то количество (8/16/32?) битов. Совмещены ли у слейва области или нет - мастеру абсолютно пофиг.
Есть ли у слейва биты 1..8/16/32 (не 0..7/15/31 !!) - это вопрос illegal adress
Может ли слейв прислать биты с любого адреса - это вопрос реализации самого слейва. В рамках протокола хоть с 13-ого 69 штук. Вот тут овен-слейв вроде чудит. Но разговор за китайцев-слейвцев, а овена - мастера.
попытка прочитать с первого (не нулевого) бита была. я специально сделал несколько переменных и попривязывал их к 0.0, 0.1, 1.0, 1.1, 2.0 (регистр.бит). Везде, кроме первого варианта, при замыкании входов нолики. Если внимательно посмотреть на первый скриншот в моем стартовом сообщении, там видно куда привязаны остальные переменные. И на остальных скриншотах так же видно, что при замыкании входов китайца в этих переменных нолики
Kipiamail
18.04.2025, 15:06
8325883259
Добрый день. Не совсем понятный случай.
1 рисунок. Беру сетевую переменную, передаю значение в стандартную переменную, затем использую ее в ФБ, то она не передается внутри блока в переменную.
2 рисунок Если использую стандартную переменную или константу, то значение передается
Вначале в ФБ использовал сетевую и не мог понять проблему. В данном случае передаю в переменную для наглядности.
Преобразователь совсем не причем - пробовал как вариант
kondor3000
18.04.2025, 15:52
8325883259
Добрый день. Не совсем понятный случай.
1 рисунок. Беру сетевую переменную, передаю значение в стандартную переменную, затем использую ее в ФБ, то она не передается внутри блока в переменную.
2 рисунок Если использую стандартную переменную или константу, то значение передается
Вначале в ФБ использовал сетевую и не мог понять проблему. В данном случае передаю в переменную для наглядности.
Преобразователь совсем не причем - пробовал как вариант
Вот скрин, сетевая входит и выходит без проблем. 83264 можно в сетевую или в обычную, главное, чтобы последняя не перезаписывалась ниже по программе и передавалась в блоке. У вас на входе разные значения, поэтому и выход может переключиться.
На вашем скрине видно, что открыты несколько программ, да ещё запущена отладка. Этого делать не стоит, только для переноса программы, потом зарыть лишнее, сохранить и работать. При открытии и работе нескольких программ, они могут влиять друг на друга.
Или выкладывайте проект.
скриншотах так же видно, что при замыкании входов китайца в этих переменных нолики
Не срослось. Что китаец что овен - недоделанные. Для задачи кого нить из них - в мусор
У меня в версии OWEN Logic2.10.365 на Win7x32 вообще невозможно создать проект для ПР200, ПР205 или ПР225.
Да, это известный косяк. Сейчас овеновцы думают, как исправить
savitovir
21.04.2025, 09:34
83297
как быть :? что за подстава!!!?? Повторная установка ничего не меняет
kondor3000
21.04.2025, 09:45
83297
как быть :? что за подстава!!!?? Повторная установка ничего не меняет
Поставьте снова OWEN Logic2.9.364 http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/Setup/Archive/
Из Бекапа достаньте проект в предыдущей версии и открывайте в ней.
savitovir
21.04.2025, 10:27
Поставьте снова OWEN Logic2.9.364 http://ftp-ow.owen.ru/softupdate/OWEN%20Logic/Setup/Archive/
Из Бекапа достаньте проект в предыдущей версии и открывайте в ней.
Пробовал откатить , все тот же результат , пробовал переустановить библиотеку VCREDIST_X86 не помогло , короче что-то в винде сломалось после установки OL 2.10.
МихаилГл
21.04.2025, 10:52
Пробовал откатить , все тот же результат , пробовал переустановить библиотеку VCREDIST_X86 не помогло , короче что-то в винде сломалось после установки OL 2.10.
Сервисное программное обеспечение (обязательное)
Microsoft .NET Desktop Runtime 6.0.20 (Owen Logic версии 2.0 и старше)
zip
103.88 MB
Microsoft Visual C++ 2015-2022 (Owen Logic версии 1.22 и старше)
zip
36.69 MB
Это поставили?
PS Сейчас через меню программы обновил, вроде работает. Но там уже 366 релиз...
Умурзаков Денис
21.04.2025, 11:48
Пробовал откатить , все тот же результат , пробовал переустановить библиотеку VCREDIST_X86 не помогло , короче что-то в винде сломалось после установки OL 2.10.
Добрый день, сегодня вышло обновление 2.10.366, в котором была решена проблема работы с 32-разрядными ОС. Подскажите, на новом обновлении ошибка воспроизводится?
А на сайте все еще предлагается глючная версия.
savitovir
21.04.2025, 13:21
Сервисное программное обеспечение (обязательное)
Microsoft .NET Desktop Runtime 6.0.20 (Owen Logic версии 2.0 и старше)
zip
103.88 MB
Microsoft Visual C++ 2015-2022 (Owen Logic версии 1.22 и старше)
zip
36.69 MB
Это поставили?
PS Сейчас через меню программы обновил, вроде работает. Но там уже 366 релиз...
нифига ничего не помогло, ("привет" дремлющей поддержке овен) кроме как по пути ошибки вручную положил файл vcruntime140.dll
kondor3000
21.04.2025, 13:42
У меня на версии Owen Logic2.10.366 всё заработало, на Виндовс 7 (32 бит)
jereghi1979
21.04.2025, 13:53
Версия 2.10.366.0 проект для ПР225:
Константа (целочисленное) - связь - сетевая переменная(целочисленное)
При установленном значении более 9999 преобразуется (переполняется) и в окне просмотра переменных другое число.
Пример 9999 ->9999, а 99999 -> 34463
83302
Сетевые переменные - 2-х байтные. Максимальное значение = 65535. 99999 - 65536 = 34463
МихаилГл
21.04.2025, 14:31
Версия 2.10.366.0 проект для ПР225:
Константа (целочисленное) - связь - сетевая переменная(целочисленное)
При установленном значении более 9999 преобразуется (переполняется) и в окне просмотра переменных другое число.
Пример 9999 ->9999, а 99999 -> 34463
83302
А не связано ли это с WORD? ПРки вроде больший формат в сетевых не тянут... Хотя я не спец в ПР...
Николай Суриков
21.04.2025, 15:56
Да - это такой прикол. В программе целочисленные значения типа UDINT(4 байта), а в сетевых переменных целочисленные UINT(2 байта). Причем если из программы переменную привязать в сетевые, то никакой ошибки не будет, просто при значении больше 65535 будет в сетевой переменной мусор.
Нигде про это не написано, разбирайтесь сами с такими багами.
Для меня ПР исчезли навсегда как приборы после обнаружении такой фичи.
Сергей0308
21.04.2025, 16:06
Насколько знаю: в режиме мастер ПР умеет работать с 32 битными сетевыми переменными, в режиме слейв - надо вручную разделять 32 битную переменную на два смежных регистра!
Николай Суриков
21.04.2025, 16:14
Насколько знаю: в режиме мастер ПР умеет работать с 32 битными сетевыми переменными, в режиме слейв - надо вручную разделять 32 битную переменную на два смежных регистра!
В справке написано что есть три типа данных - булевые, целочисленные и вещественные, так же написано что нет неявного преобразования из одного типа в другой.
Значит если одну переменную можно привязать к другой и проект компилируется без ошибок, значит они имеют одинаковый тип, но это не так, в слейве целочисленные это UINT.
Значит это баг и притом нигде про него не написано (возможно ошибаюсь, поправьте).
Сергей0308
21.04.2025, 16:41
В режиме слейв 32 битная целочисленная внутренняя переменная обрежется до 16 младших бит, для правильной передачи надо вручную разделить на два смежных регистра, вроде об этом много разговоров было, поэтому я запомнил, где это написано не знаю, может потом допишут, если ещё не написали или добавят поддержку работы с такими переменными в режиме слейв.
Николай Суриков
21.04.2025, 17:16
Извините, я не хочу к вам цепляться, но как разделить одну переменную 4 байта на две по 2 байта если в ПР нет переменных по 2 байта?))
Получается мы делим VAR1 (UDINT) на две VAR2 и VAR3 тоже UDINT и потом так же через баг лоджика присваиваем к сетевым переменным UINT.
Далее выходит "обновление" (которые уже стали выходить каждую неделю) и все проекты полетят.
kondor3000
21.04.2025, 17:41
Извините, я не хочу к вам цепляться, но как разделить одну переменную 4 байта на две по 2 байта если в ПР нет переменных по 2 байта?))
Получается мы делим VAR1 (UDINT) на две VAR2 и VAR3 тоже UDINT и потом так же через баг лоджика присваиваем к сетевым переменным UINT.
Далее выходит "обновление" (которые уже стали выходить каждую неделю) и все проекты полетят.
Что значит нет, 1 регистр это и есть 2 байта. Вы это должны знать как никто другой.
Передаёте сетевую целочисленную 1 или 2 регистрами, то есть передаёте WORD (65535) или DWORD (4294967295).
Отправляя число больше 65535 надо выбирать 2 регистра, для программиста это как азбука.
Так же как типы переменных, разборка и сборка 32 битных переменных на две 16 битных и это не меняется при обновлении ОЛ.
Николай Суриков
21.04.2025, 18:02
Есть переменная из часов реального времени "Время в миллисек" - она целочисленная.
Есть локальная переменная - она целочисленная.
Есть сетевая переменная - она тоже целочисленная.
Привязываю локальную переменную к часам реального времени и выношу на холст.
Выношу на холст сетевую переменную, связываю их линией, ниточкой, проводочком.
Обе переменных целочисленные, в описании к приборам и среде программирования есть только три вида данных и только один целочисленный.
Но оказывается сетевые переменные не совсем такие как написано в руководстве, она обрезанная, и где-то на 180 странице темы на форуме об этом написано.
Так как мне в слейв передать переменную часов реального времени?
Штатными средствами разделить 4 байта на 2 по 2?
Сергей0308
21.04.2025, 18:34
Есть переменная из часов реального времени "Время в миллисек" - она целочисленная.
Есть локальная переменная - она целочисленная.
Есть сетевая переменная - она тоже целочисленная.
Привязываю локальную переменную к часам реального времени и выношу на холст.
Выношу на холст сетевую переменную, связываю их линией, ниточкой, проводочком.
Обе переменных целочисленные, в описании к приборам и среде программирования есть только три вида данных и только один целочисленный.
Но оказывается сетевые переменные не совсем такие как написано в руководстве, она обрезанная, и где-то на 180 странице темы на форуме об этом написано.
Так как мне в слейв передать переменную часов реального времени?
Штатными средствами разделить 4 байта на 2 по 2?
Если Вы передаёте в слейв, значит сетевой интерфейс ПР в режиме мастер, мне кажется, никаких дополнительных манипуляций не нужно!
Николай Суриков
21.04.2025, 18:42
Если Вы передаёте в слейв, значит сетевой интерфейс ПР в режиме мастер, мне кажется, никаких дополнительных манипуляций не нужно!
Хорошо, но если ПР в режиме слейв... то начинается магия.
kondor3000
21.04.2025, 18:43
Есть переменная из часов реального времени "Время в миллисек" - она целочисленная.
Так как мне в слейв передать переменную часов реального времени?
Штатными средствами разделить 4 байта на 2 по 2?
Если ПР Мастер, то ставите 2 регистра,
если ПР слейв, то разбираете 32 битную на две 16 битных и передаёте 2 переменных. 83315
Мне кажется, в самой последней версии OL вводилась возможность чтения 32-разрядных переменных.
Надеюсь - не ошибся. Вот только проверить не могу, у меня Win7.
Мне кажется, в самой последней версии OL вводилась возможность чтения 32-разрядных переменных.
Надеюсь - не ошибся. Вот только проверить не могу, у меня Win7.Я могу наврать, но чтение 32х разрядов было вон ещё на ПР200 давно.
Просто в количестве регистров указываем 2 штуки. И запись вроде тоже.
kondor3000
21.04.2025, 19:33
Мне кажется, в самой последней версии OL вводилась возможность чтения 32-разрядных переменных.
Надеюсь - не ошибся. Вот только проверить не могу, у меня Win7.
Ставьте Owen Logic2.10.366, уже проверил, работает на Win7 (32 бит), а 2 переменные в слейве поставить нельзя.
Я могу наврать, но чтение 32х разрядов было вон ещё на ПР200 давно.
Просто в количестве регистров указываем 2 штуки. И запись вроде тоже.
Только в Мастере 2 регистра можно поставить , в слейве нет до сих пор, во всех моделях.
Ясно. Спасибо.
Пока не буду обновляться - через 2-3 недели сдача, а критически важных улучшений/исправлений для этого проекта не предложено.
Не совсем понял про Win7 (32 бит) - знал, что такая версия существует, но не думал, что кто-то использует - предполагал, что большинство x64 применяют Win7x64.
Только в Мастере 2 регистра можно поставить , в слейве нет до сих пор, во всех моделях.Принято, СПАСИБО тебе! Ты лучше всех всё знаешь!
МихаилГл
21.04.2025, 21:10
Кстати, по обновлению. При обновлении сегодня с 2.7 на 2.10 изменил путь установки (всегда так делаю, даже не знаю почему) и всегда старая версия остается живой, без всяких танцев с бубнами. Т.е. на ПК доступны сразу 2 версии. Для любителей обновить и потом думать как откатить назад пригодится...
В руководстве к OL знаковая переменная типа Long не описывается, всплывающая подсказка несколько смущает. 16 битное целочисленное используем для сетевых переменных?
kondor3000
21.04.2025, 22:52
В руководстве к OL знаковая переменная типа Long не описывается, всплывающая подсказка несколько смущает. 16 битное целочисленное используем для сетевых переменных?
Знаковых типа INT и DINT в Лоджике нет, используйте Функции FLOAT_TO_INT и INT_TO_FLOAT
FLOAT_TO_DINT и DINT_TO_FLOAT https://owen.ru/forum/showthread.php?t=22915&page=311&p=429821#post429821
Для передачи 1 регистра 16 битное WORD (INT), для 2 регистров 32 битное UDINT (DINT, DWORD ).
Товарищи, толи я дурак, толи лыжи не едут. OWL Версия 2.10.366.0
Нет доступа к булевому входу макроса, внутри макрос работает. К примеру
83375
83376
83377
Переменную Out привяжете или к физическому выходу ПР или к выводу на экран.
Если результат не используется - оптимизация удаляет неиспользуемый код.
здравствуйте! скорее всего это уже упоминали где-то но я не нашла. есть проблема с отображением овен лоджик на ноутбке с разрешением 3200х2000. Масштаб стоит 200%, рабочая область с блоками отображается нормально, но вот панели управления справа слева и сверху с очень маленьким шрифтом и частично даже не видны. можете пожалуйста это починить? на мониторе с меньшим разрешением все нормально отображается83410
есть несоответствия в справке 83457 раз уж в ST используется real, в справке совершенно не к месту тип float в третьем пункте на скрине.
Элемент экрана Ввод/Вывод времени некорректно отображает время (я использую формат MM:SS) из Modbus Slave переменных. Понятно что это связано с количеством бит в переменной, но наверно можно какой-то костыль придумать?
P.S. а в симуляции все работает так как требуется.
kondor3000
08.05.2025, 10:22
Элемент экрана Ввод/Вывод времени некорректно отображает время (я использую формат MM:SS) из Modbus Slave переменных. Понятно что это связано с количеством бит в переменной, но наверно можно какой-то костыль придумать?
P.S. а в симуляции все работает так как требуется.
Вы бы хоть скрины показали и выложили проект с куском кода, что там некорректно.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot