Просмотр полной версии : Фичи и баги OWEN Logic
Страницы :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[
15]
16
17
18
SoulGoodman
17.03.2024, 11:14
А показать текст программы религия не позволяет?
Ага))
function_block Ottaika1 //Работа оттайки.
var_input //объявление входных переменных
u_Isparenie: udint;
b_Enable: bool := false;
end_var
var_output //объявление выходных переменных
b_Ten : bool := false;
b_Obratka : bool := false; //Обратка
end_var
var //объявление локальных переменных
TP_Ob: SYS.TP;
t_Isparenie : TIME;
end_var
t_Isparenie := udint_to_time(u_Isparenie);
if b_Enable then
b_Ten := true;
//Испарение
TP_Ob(I := b_Enable, T := t_Isparenie, Q => b_Obratka);
else
b_Obratka := false; //Обратка
end_if
end_function_block
kondor3000
17.03.2024, 11:26
Ага))
function_block Ottaika1 //Работа оттайки.
end_function_block
Вызов таймера надо вынести из конструкции IF, а в ней уже управлять входом таймера.
Время, если в секундах, то надо умножать на 1000.
Ага))
Я бы так сделал
function_block Ottaika1 //Работа оттайки.
var_input //объявление входных переменных
u_Isparenie: udint; //Время в мс
b_Enable: bool := false;
end_var
var_output //объявление выходных переменных
b_Ten : bool := false;
b_Obratka : bool := false; //Обратка
end_var
var //объявление локальных переменных
TP_Ob: SYS.TP;
end_var
TP_Ob.T := udint_to_time(u_Isparenie);
//Испарение
TP_Ob(I := b_Enable, Q => b_Obratka);
b_Ten := b_Obratka; //Или b_Ten := b_Enable, в зависимости как вы входом управляете
end_function_block
Правда, не знаю, правильно ли ТЭН выключаю (но у вас, вообще, ТЭН не выключается)
SoulGoodman
17.03.2024, 17:56
Спасибо за ответы, понял, по ТЭНу там все нормально когда лишнее удалял и в else удалил Ten := false; Там суть была, что входом enable, я включаю или выключаю работу таймеров, просто не думал, что таймер в условии if ведет себя таким образом. И ответа после гугления не нашел, надо проверить.
При обработке битовой маски в целом числе, полученном по сети, хотел на ST выделить нужные биты оператором AND. Но ST не поддерживает эту операцию - пришлось реализовать получением остатка от деления MOD.
Хотя на FBD выделение по маске оператором AND прекрасно выполняется.
Если это не ограничение согласно стандарту на ST - может быть есть смысл добавить битовые операции над целыми числами?
При обработке битовой маски в целом числе, полученном по сети, хотел на ST выделить нужные биты оператором AND. Но ST не поддерживает эту операцию - пришлось реализовать получением остатка от деления MOD.
Хотя на FBD выделение по маске оператором AND прекрасно выполняется.
Если это не ограничение согласно стандарту на ST - может быть есть смысл добавить битовые операции над целыми числами?
Чем точка не устраивает?
Чем точка не устраивает?
В случае вычислений, например, масштабирование - умножение в целых числах на 0,00512
https://owen.ru/forum/showthread.php?t=26216&p=432043&viewfull=1#post432043
вместо выделения 16 младших разрядов по маске AND, пришлось делить.
// преобразование входного значения во внутренний формат с учётом умножения на (2^9) = 512
A2 := shr(Reg0x1300, 32-9);
A1 := shr(Reg0x1300, 7) mod (max_value + 1);
A0 := shl(Reg0x1300, 9) mod (max_value + 1);
В случае выделения бит состояния устройства и каких-то действий.
В слове состояния устройства три младших бита показывают 000 - останов, 001 - неисправность, 010 - работа по байпасу, 011 - разгон, 100 - торможение
Хотел выделить эти биты по маске и через case выполнить какие-то действия.
Конечно, можно через if или просто формулы работать с отдельными битами числа (через точку).
Если стандарт против - попрошу прощения за нелепое предложение.
Добрый день. Не не могу понять почему: есть импорт переменных в csv файл но нет экспорта . Зачем нужен импорт? у меня переезд на другую платформу , fb & st перенес, спасибо помогли. А на список переменных смотрю и плачу .
Добрый день. Не не могу понять почему: есть импорт переменных в csv файл но нет экспорта . Зачем нужен импорт? у меня переезд на другую платформу , fb & st перенес, спасибо помогли. А на список переменных смотрю и плачу .
Точнее наоборот - экспорт есть, импорта нет
о да , описался ! слезы глаза замутили....:D
А вообще удобно БЫ (в качестве улучшайдинга) : т.к. в fb/fx объявлены все глобальные переменные и их тип - ОбаНа (по нажатию чего нить, например) и они в таблице переменных.
Добрый день. Во время создания fb на st, при переходе на основную схему возникла ошибка (см скрин). В самом фб ошибок 0. Каких то других ошибок тоже не наблюдается. Куда смотреть?
74523
Королев Кирилл
20.03.2024, 13:33
Добрый день. Во время создания fb на st, при переходе на основную схему возникла ошибка (см скрин). В самом фб ошибок 0. Каких то других ошибок тоже не наблюдается. Куда смотреть?
74523
Добрый день!
Присылайте проект на почту.
kondor3000
20.03.2024, 14:26
Добрый день. Во время создания fb на st, при переходе на основную схему возникла ошибка (см скрин). В самом фб ошибок 0. Каких то других ошибок тоже не наблюдается. Куда смотреть?
74523
Значит надо по правой кнопке мыши на ФБ, нажать обновить блок. Или просто удалить ФБ и вставить по новой.
вероятнее всего не при создании, а после внесения правок. Удалить с хоста и вставить по новой должно решить проблему
не помогло.
Значит надо по правой кнопке мыши на ФБ, нажать обновить блок. Или просто удалить ФБ и вставить по новой.
он у меня даже не вставлен в основную схему.
kondor3000
20.03.2024, 15:03
он у меня даже не вставлен в основную схему.
Выложите проект.
Королев Кирилл
20.03.2024, 16:30
Такая индикация возникает из-за того, что есть обращение к биту несуществующей переменной через точку. Owen Logic должен был выделить это как ошибку в редакторе ST, но данная ситуация не обработана. Будем исправлять.
Casper17
21.03.2024, 09:32
Здравствуйте! А можно добавить вставку в Динамический текст значения из файла или из буфера обмена? А то надо добавлять список аварий и там по 50 а то и больше значений и в ручную не удобно вставлять их. В excel есть два столбца номер аварии и значения. Вот их бы скопировать и вставить в Динамический текст, что сэкономит кучу времени!
Денисов Максим Сергеевич
21.03.2024, 09:33
Выпустили обновление Owen Logic 2.6.347 в котором увеличили таймаут соединения Owen Logic с прибором по Ethernet/Wi-Fi до 1000 мс
goranach
21.03.2024, 09:51
74563
Почему не подключенные переменные в блоке AND являются 1?
kondor3000
21.03.2024, 09:59
74563
Почему не подключенные переменные в блоке AND являются 1?
Лоджик за вас сделал схему работоспособной, подключите входы сами и будет как вам надо. И не оставляйте входы и выходы пустыми.
kaftanati
21.03.2024, 10:36
Лоджик за вас сделал схему работоспособной, подключите входы сами и будет как вам надо. И не оставляйте входы и выходы пустыми.
В этом случае Лоджик не прав: 0 должен быть значением по уморлчанию для неинициализированной переменной. И вроде так было всегда: я использую блоки на 4-8 ИЛИ и попрой остаются незанятые входы. Взведение неподключенных в 1 вместо 0 блокировало бы работу всей программы.
В этом случае Лоджик не прав: 0 должен быть значением по уморлчанию для неинициализированной переменной. И вроде так было всегда: я использую блоки на 4-8 ИЛИ и попрой остаются незанятые входы. Взведение неподключенных в 1 вместо 0 блокировало бы работу всей программы. Ответ неверен. Поведение OwenLogic сделано аналогичным поведению блоков AND и OR в Siemens Logo. Это поведение является ИСКЛЮЧЕНИЕМ для упрощения создания программ на FBD, чтобы не захламлять константами экран:
* Для элементов AND все НЕподключенные входы трактуются как TRUE
* Для элементов OR все НЕподключенные входы трактуются как FALSE
Ещё раз повторяю: это сделано специально, чтобы упросить разработку программ и действует только на эти элементы. Во всех остальных случаях (для других блоков и элементов) неподключенные входы будут равны FALSE.
.. И вроде так было всегда: я использую блоки на 4-8 ИЛИ и попрой остаются незанятые входы. Взведение неподключенных в 1 вместо 0 блокировало бы работу всей программы.
Всегда было - не подключенный вход == 1
74566
kaftanati
21.03.2024, 10:59
Ответ неверен. Поведение OwenLogic сделано аналогичным поведению блоков AND и OR в Siemens Logo. Это поведение является ИСКЛЮЧЕНИЕМ для упрощения создания программ на FBD, чтобы не захламлять константами экран:
* Для элементов AND все НЕподключенные входы трактуются как TRUE
* Для элементов OR все НЕподключенные входы трактуются как FALSE
Ещё раз повторяю: это сделано специально, чтобы упросить разработку программ и действует только на эти элементы. Во всех остальных случаях (для других блоков и элементов) неподключенные входы будут равны FALSE.
Ну тут я был невежествен, но прав: я использую FBD блоки, в которых триггерами защелкиваю аварийные сигналы. И для неинициализированных переменных, в т.ч. и для блоков это ожидаемо.
Про специальное поведение атомарных блоков &/|| - не знал, каюсь, теперь знаю, не буду вешать напрасные дефолтные переменые.
goranach
21.03.2024, 11:23
Ответ неверен. Поведение OwenLogic сделано аналогичным поведению блоков AND и OR в Siemens Logo. Это поведение является ИСКЛЮЧЕНИЕМ для упрощения создания программ на FBD, чтобы не захламлять константами экран:
* Для элементов AND все НЕподключенные входы трактуются как TRUE
* Для элементов OR все НЕподключенные входы трактуются как FALSE
Ещё раз повторяю: это сделано специально, чтобы упросить разработку программ и действует только на эти элементы. Во всех остальных случаях (для других блоков и элементов) неподключенные входы будут равны FALSE.
Это ужасное поведение, которое нарушает все логики стандартных программ.
Вроде практически во всех языках принято, что если не объявил, то 0.
Надо в документации прям прописать....
Это ужасное поведение, которое нарушает все логики стандартных программ.
Вроде практически во всех языках принято, что если не объявил, то 0.
Надо в документации прям прописать....
Ужасно (и бессмысленно) использовать функции (логические элементы в том числе) с неподключенными входами.
Тот-же кодесис в таком случае даже компилироваться не будет
goranach не путайте языки программирования и интерпритаторы, коим является ОЛ, CodeSys и так далее у других производителей. Там четко все, AND неподключенный 1, иначе он у вас работать не будет. OR неподключенный 0.
В некоторых программируемых реле вообще не существует AND или OR на два входа, то есть абсолютно. начинается с 4-х входов (не помню у кого) и что, вы будете лепить везде константы на поле программы?
Именно для этого это все и сделано, чтобы вас не утруждать лишним..
И скажите в чем нарушение, если у вас блок на 4 входа, а вам нудны только 3 из них ?
kaftanati
21.03.2024, 11:40
Ужасно (и бессмысленно) использовать функции (логические элементы в том числе) с неподключенными входами.
Тот-же кодесис в таком случае даже компилироваться не будет
Есть явная инициализация и неявная. В экономии времени программиста/автоматчика есть смысл, но только при 100% уверенности в повторяемости результата/процесса инициализации/объявления. Но, как говорится, есть нюанс... и недавно обновленный программный пакет меняет поведение или, программист по невнимательности упускает мелочь, которая при отладке просто взрывает мозг.
Потому опытные разработчики думают наперед, обжегшись на таких простых вещах: явно инициализовать все - это правильно и безопасно. Что-то оставлять на стандартное поведение программы - самонадеянно и не 100% повторяемо.
начинается с 4-х входов (не помню у кого) и что, вы будете лепить везде константы на поле программы? Как раз на Siemens Logo и начинается.
74569
Cs-Cs вот, точно. Представляю как человек на поле лепит там единички и нолики :)
Здравствуйте, уважаемые разработчики ! Есть возможность усилить хелп в OL в разделе "зарезервированные ключевые слова" ? Ссылки на разъяснения, вариантами использования/примеры (если возможно)?
Денисов Максим Сергеевич
23.03.2024, 13:14
Добрый день, на данный момент в справке описаны все зарезервированные слова и примеры использования конструкций, функциональных блоков и функций. С чем вы столкнулись конкретно, что не описано в справке?
Добрый вечер , Максим Сергеевич . Я вижу в хелпе только лишь таблицу . 74625 Ссылок в ней нет, поиск по хелпу не дает результата ( или просто ссылка на эту же таблицу )
С уважением
1. Жутко раздражает постоянное разворачивание Owen Logic на весь экран. К тому же в этом случае низ окна немного вылезает за панель задач и не виден. Просьба сделать запоминание размеров и положения окна на экране! Это элементарно.
2. Не работает изменение размеров окна:
а) если тянуть за нижний левый угол - вообще не работает
б) если тянуть за правый нижний угол, и окно находится на другом мониторе слева. В моем случае у него отрицательные значения местоположения по X. Видимо связано именно с этим.
Win7 64.
74635
Почему не работает этот вариант, если переменная привязана к экрану (динамический текст)?
Сделайте сброс через таймер TP со временем импульса 0,1 с.
kondor3000
23.03.2024, 21:05
74635
Почему не работает этот вариант, если переменная привязана к экрану (динамический текст)?
Сделайте запись в конце цикла 74637
Сделайте запись в конце цикла 74637
Похоже глюки лоджика.
Поставил галку - заработало. Снял - тоже работает.
74635
Почему не работает этот вариант, если переменная привязана к экрану (динамический текст)?
Зачем такие сложности
74638
или, даже так
74639
Зачем такие сложности
Это просто пример, который не работает. Верней то работает, то нет.
Всунешь макрос между ними как у вас выше - не работает. Сделаешь на логике попроще - работает. Среда живет своей жизнью. Какие-то траблы на экранных переменных.
Это просто пример, который не работает. Верней то работает, то нет.
Всунешь макрос между ними как у вас выше - не работает. Сделаешь на логике попроще - работает. Среда живет своей жизнью. Какие-то траблы на экранных переменных.
Так что вы хотите получить от экранных переменных?
Так что вы хотите получить от экранных переменных?
Это уставки. Надо чтобы они управлялись с экрана, со среды, программно, и для удобства чтобы автоматически вбивались после заливки. Вроде сделал уже.
Добрый день.
Во вложении сообщение об ошибке. Подскажите в чем причина, и что делать?
Версия OL 2.6.347.0.
PS.
Разобрался сам. На одном ПК разделитель дробной части запятая, на другом точка. При открытии на компьютере где разделитель точка ругается на запятую в поле Ввод/вывод INT/Float. После удаления и новой вставки уже с разделителем точка предупреждение пропало. Разработчикам -пожелание чтобы при такой ошибке было указание на местонахождение таких ошибок или сделайте обработку таких ситуаций.
kondor3000
25.03.2024, 09:29
Добрый день.
Во вложении сообщение об ошибке. Подскажите в чем причина, и что делать?
Версия OL 2.6.347.0.
Вы бы лучше проект выложили.
Судя по ошибке неверный формат строки для преобразования во float если читать дальше. Возможно точка или запятая что-то из них не воспринимается при парсинге.
Так и есть. Заменил запятую на точку и ошибка пропала.
з.ы. удивляют программисты, которые не могут парсить как с точкой так и с запятой. Да еще если берут эти данные из культуры системы... ну там же ешкин кот всего пару строк кода.... :(
Денисов Максим Сергеевич
25.03.2024, 10:30
Так и есть. Заменил запятую на точку и ошибка пропала.
Уточните для какого прибора создан проект, в каком параметре и какое значение было указано?
ПР200-24.1.X. Редактор экранов параметр Ввод/вывод INT/Float поля ограничения Мин Макс.
kondor3000
25.03.2024, 14:25
ПР200-24.1.X. Редактор экранов параметр Ввод/вывод INT/Float поля ограничения Мин Макс.
С каких пор время на Таймеры задается через FLoat, так ведь даже считать не удобно, не проще целочисленными задавать ?
kondor3000 а какая разница для чего используется float в рамках данной ошибки? Если ввод с цифрового блока клавиатуры лепит запятую в русской культуре ?
Не знаю может так и должно быть, делаю картинку для пр205,выбираю цвета не из палитры готовой, а через определить цвет,после выбора цвета он не сохраняется в дополнительных, сбрасывается
Денисов Максим Сергеевич
26.03.2024, 16:26
Не знаю может так и должно быть, делаю картинку для пр205,выбираю цвета не из палитры готовой, а через определить цвет,после выбора цвета он не сохраняется в дополнительных, сбрасывается
Данный баг уже исправляем. Исправление выйдет в версии Owen Logic 2.7
Ошибку подтверждаю, взяли в работу. Пока рекомендую использовать функцию
Вышла новая версия 347, однако и в ней баг с 31-м битом не исправлен.
Денисов Максим Сергеевич
31.03.2024, 10:50
Вышла новая версия 347, однако и в ней баг с 31-м битом не исправлен.
Фикс данного бага выйдет в 2.6.348
Функции тоже ломаются при изменении любого бита в 32-разрядном числе!
function function1: udint; //имя функции и тип данных выхода
var_input //объявление входных переменных
IN : udint;
end_var
var
V: udint;
end_var
V:= IN;
V.0:=false;
function1 := V;
end_function
Денисов Максим Сергеевич
31.03.2024, 20:51
Функции тоже ломаются при изменении любого бита в 32-разрядном числе!
function function1: udint; //имя функции и тип данных выхода
var_input //объявление входных переменных
IN : udint;
end_var
var
V: udint;
end_var
V:= IN;
V.0:=false;
function1 := V;
end_function
Проверил данный код функции, в версии 2.6 работает исправно
Проверил данный код функции, в версии 2.6 работает исправно
А вы попробуйте подать на вход число от 2 147 483 648 и выше
Версия 2.6.347.0
запустите, нечего не трогайте, пейте чай.
Как попьете и пойдет очередной круг - поднимите Di1
(Просьба не рассказывать про то как это обойти, не тратьте время. Интересует - почему)
И кто-нить - расскажите как оно на живой железе?
На живой работает и при наличии сигнала и без него
Проверил данный код функции, в версии 2.6 работает исправно
Запустите этот проект в симуляции:
74879
Денисов Максим Сергеевич
01.04.2024, 09:27
Запустите этот проект в симуляции:
74879
Подтверил баг, спасибо за помощь, фикс также попадет в 2.6.348
Casper17
04.04.2024, 11:16
День добрый! При создание проекта с помощью Мастера тиражирования появляются предупреждения, на сколько они критичны? Owen Logic 2.6.347 Windows 10 x64, 7 x64
74960
День добрый! При создание проекта с помощью Мастера тиражирования появляются предупреждения, на сколько они критичны? Owen Logic 2.6.347 Windows 10 x64, 7 x64
Обычно не влияет на работу.
Если есть возможность - прошейте с использованием сделанного файла
Casper17
04.04.2024, 13:23
Прошил, вроде как работает!
Есть следующий нюанс работы ПР205 На экране использую динамический текст,там порядка 60 значений от 1 до 2001. В эмуляторе все значения показывает корректно, а в самом приборе начиная с 1000 значения уже не подставляет текст, а только само значение.7496274963
Casper17
05.04.2024, 08:51
Изменил цифры с 1000 на 300 и всё равно показывает только цифры, а не текст! Какой вообще предел допустимых диапазон цифр и их количество в графическом элементе Динамический текст?!
Добрый день . При попытке поиска в менеджере компонентов вылезает ошибка и фризит окно. только выйти и зайти можно . но поиск приводит к такой же ошибке.
2.6.347.0
System.NullReferenceException: Object reference not set to an instance of an object.
at ProgramRelayFBD.DomainLayer.Behaviors.DataGridBeha viors.ComponentDataGridBehaviour.OnCellPainting(Da taGridViewCellPaintingEventArgs e, NPalette dataGridPalette)
at Nevron.UI.WinForm.Controls.NDataGridView.OnCellPai nting(DataGridViewCellPaintingEventArgs e)
at System.Windows.Forms.DataGridViewCell.PaintWork(Gr aphics graphics, Rectangle clipBounds, Rectangle cellBounds, Int32 rowIndex, DataGridViewElementStates cellState, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts)
at System.Windows.Forms.DataGridViewRow.PaintCells(Gr aphics graphics, Rectangle clipBounds, Rectangle rowBounds, Int32 rowIndex, DataGridViewElementStates rowState, Boolean isFirstDisplayedRow, Boolean isLastVisibleRow, DataGridViewPaintParts paintParts)
at System.Windows.Forms.DataGridViewRow.Paint(Graphic s graphics, Rectangle clipBounds, Rectangle rowBounds, Int32 rowIndex, DataGridViewElementStates rowState, Boolean isFirstDisplayedRow, Boolean isLastVisibleRow)
at System.Windows.Forms.DataGridView.PaintRows(Graphi cs g, Rectangle boundingRect, Rectangle clipRect, Boolean singleHorizontalBorderAdded)
at System.Windows.Forms.DataGridView.PaintGrid(Graphi cs g, Rectangle gridBounds, Rectangle clipRect, Boolean singleVerticalBorderAdded, Boolean singleHorizontalBorderAdded)
at System.Windows.Forms.DataGridView.OnPaint(PaintEve ntArgs e)
at Nevron.UI.WinForm.Controls.NDataGridView.OnPaint(P aintEventArgs e)
at System.Windows.Forms.Control.PaintWithErrorHandlin g(PaintEventArgs e, Int16 layer)
at System.Windows.Forms.Control.WmPaint(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.DataGridView.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)
Еще одну багу поймал . Или поясните почему ошибка. При создании четвертой FX
2.6.347.0
System.InvalidOperationException: Operation is not valid due to the current state of the object.
at ProgramRelayFBD.ApplicationLayer.ST.ChangeCalledPr ogramElementService.ChangeFunction(ChangeFunctionR equest data)
at System.Collections.Generic.List`1.ForEach(Action`1 action)
at CommandProcessor.EventAggregator.<>c__DisplayClass9_0.<Publish>b__0(Object <p0>)
Дополню.
При попытке создать функцию вылезает ошибка и каким то образом эта функция записывается самостоятельно в раздел FB.
Александр37
10.04.2024, 11:54
Добрый день, подскажите что не так. Овен лоджик в разделе расширений пишет нет доступа к интернету (хотя на самом деле интернет есть), пробовал от разных точек доступа, пробовал выключать брандмауэр, пробовал менять сеть (частная\общественная) ничего не помогает. Вин10-64, пробовал на другом компе (вин 7-32) таже фигня. Версия лоджика последняя.
kondor3000
10.04.2024, 12:15
Добрый день, подскажите что не так. Овен лоджик в разделе расширений пишет нет доступа к интернету (хотя на самом деле интернет есть), пробовал от разных точек доступа, пробовал выключать брандмауэр, пробовал менять сеть (частная\общественная) ничего не помогает. Вин10-64, пробовал на другом компе (вин 7-32) таже фигня. Версия лоджика последняя.
Это похоже, что ещё не восстановили полностью сайт после хакерской атаки. В версии 2.6.345.0 то же самое 75105
Александр37
10.04.2024, 12:20
Спасибо, ясно, а то я всю голову изломал.
Александр37
11.04.2024, 08:04
Доброе утро. Вопрос к Овену, а когда хоть наладят доступ к инету в овенлоджик?
Доброе утро. Вопрос к Овену, а когда хоть наладят доступ к инету в овенлоджик?
у меня доступ есть
kondor3000
11.04.2024, 09:25
у меня доступ есть
Речь про расширения, они до сих пор не работают. Скрин выше.
Это баг или фича?
Реально задолбался уже...
Что я делаю не так и как это исправить?
https://youtu.be/AR3ryW_te6g
Королев Кирилл
11.04.2024, 10:50
Это баг или фича?
Реально задолбался уже...
Что я делаю не так и как это исправить?
https://youtu.be/AR3ryW_te6g
Пришлите, пожалуйста, Ваш проект через файлообменник мне на почту, проверим.
Добрый вечер!
Обнаружил, что в ОЛ в онлайн-отладке булевые сетевые переменные могут принимать значения
0: 75153
1: 75154
2: 75155
3: 75156
И даже 128: 75152
Мастер - ПР103 75150, подключен к компу по Eternet'у.
Слейв - китайский аналог СП307Б.
Панель с ПР-кой соединены по RS-485.
Такое происходит, когда я добавляю к элементу "Переключатель с индикацией" бит видимости.
Чем дальше бит видимости отстоит от бита переключателя, тем больше получается число в сетевой переменной. Например, если бит переключателя PSB256, а бит его видимости PSB257, то получается как на первых 4-х скринах. А если бит видимости сделать PSB263, то получится, как на 5-м скрине.
Если же сделать бит видимости PSB264, то становится всё нормально.
Версия ОЛ: 75151
Сам дискретный выход на ПР-ке при этом работает корректно.
Это баг или фича? Или я делаю что-то неправильно?
Проекты прилагаю.
kondor3000
11.04.2024, 20:10
Сам дискретный выход на ПР-ке при этом работает корректно.
Это баг или фича? Или я делаю что-то неправильно?
Проекты прилагаю.
Это такая фича, биты обрабатываются как Маска бит в регистре. 75161
Если вы не знали, то например включение 0 и 1 бита - даёт число 3, 7 бита даёт число 128, а всех 16 бит в регистре - число 65535.
Это такая фича, биты обрабатываются как Маска бит в регистре. 75161
Если вы не знали, то например включение 0 и 1 бита - даёт число 3, 7 бита даёт число 128, а всех 16 бит в регистре - число 65535.
Ну, это я знал, конечно, и примерно догадывался, что тут так реализовано, но мне не совсем понятно, зачем в онлайн-отладке на дискретном выходе показывать маску, а не бит.
Получается, что, например, я в отладке вижу на выходе какое-то значение, а по факту он отключен...
Наверно, неплохо было бы в код ОЛ добавить кусок, выполняющий функцию такого макроса:
75164
Тогда и состояния дискретных выходов в онлайн-отладке отображались бы корректно.
Да и как-то неожиданно было обнаружить в булевых переменных что-либо, отличное от нуля и единицы...
Сергей0308
11.04.2024, 22:25
Наверно, неплохо было бы в код ОЛ добавить кусок, выполняющий функцию такого макроса:
75164
Тогда и состояния дискретных выходов в онлайн-отладке отображались бы корректно.
Да и как-то неожиданно было обнаружить в булевых переменных что-либо, отличное от нуля и единицы...
Нескромный вопрос, где Вы видите в булевых переменных, что-то отличное от нуля и единицы?
На ваших картинках такого нет!
Короче, надо хотя бы представить ваши фантазии, в смысле, сделайте скриншот или по памяти нарисуйте, а то непонятно, в смысле, Вы что-то утверждаете, но на представленных вами картинках такого нет! Сами себя опровергаете!
Нескромный вопрос, где Вы видите в булевых переменных, что-то отличное от нуля и единицы?
На ваших картинках такого нет!
Короче, надо хотя бы представить ваши фантазии, в смысле, сделайте скриншот или по памяти нарисуйте, а то непонятно, в смысле, Вы что-то утверждаете, но на представленных вами картинках такого нет! Сами себя опровергаете!
:confused::confused::confused::eek:
https://owen.ru/forum/showthread.php?t=12264&page=358&p=434968&viewfull=1#post434968
Нескромный вопрос, где Вы видите в булевых переменных, что-то отличное от нуля и единицы?
На ваших картинках такого нет!
Короче, надо хотя бы представить ваши фантазии, в смысле, сделайте скриншот или по памяти нарисуйте, а то непонятно, в смысле, Вы что-то утверждаете, но на представленных вами картинках такого нет! Сами себя опровергаете!
Что это было???
Добрый вечер!
Обнаружил, что в ОЛ в онлайн-отладке булевые сетевые переменные могут принимать значения
0: 75153
1: 75154
2: 75155
3: 75156
И даже 128: 75152
Мастер - ПР103 75150, подключен к компу по Eternet'у.
Слейв - китайский аналог СП307Б.
Панель с ПР-кой соединены по RS-485.
Такое происходит, когда я добавляю к элементу "Переключатель с индикацией" бит видимости.
Чем дальше бит видимости отстоит от бита переключателя, тем больше получается число в сетевой переменной. Например, если бит переключателя PSB256, а бит его видимости PSB257, то получается как на первых 4-х скринах. А если бит видимости сделать PSB263, то получится, как на 5-м скрине.
Если же сделать бит видимости PSB264, то становится всё нормально.
Версия ОЛ: 75151
Сам дискретный выход на ПР-ке при этом работает корректно.
Это баг или фича? Или я делаю что-то неправильно?
Проекты прилагаю.
Давайте рассмотрим две фичи
1. Адресация битовых сетевых переменных в мастере ПР как бит номер тако-то в регистре таком-то
2. Интересная фича панели СП3хх
Про вторую более подробно
Вы не когда не задумывались, почему в настройках различных элементов панели (дисплеи, функции, кнопки...), там где есть тип данных не бит, а регистр т.е. WORD (DWORD), несмотря на это можно в качестве регистра операнда помимо PSW или PFW дополнительно выбрать PSB.
ВНИМАНИЕ
PSB как регистр, а не бит!
https://owen.ru/forum/attachment.php?attachmentid=75166&d=1712876739
На самом деле в панели нет памяти для битовых переменных PSB, а есть регистровая память для БАЙТОВ, где в каждом байте упакованы отдельные биты PSB!
По этому к группе из 16(32) последовательных битов PSB можно обращаться как к одному регистру
Я про это писал еще десять лет назад, в 2013 https://owen.ru/forum/showthread.php?t=15352
https://owen.ru/forum/attachment.php?attachmentid=75168&d=1712877775
Есть одна особенность - адреса РЕГИСТРОВ из PSB должны быть кратными 8
Теперь про Ваш конкретный случай
Пусть есть 8 отдельных переключателей PSB256..263
75169
и дисплей с РЕГИСТРОМ PSB256
75170
Тогда мы можем наблюдать Ваш "феномен" на дисплее панели
1: 75171
2: 75172
3: 75173
И даже 128: 75175
Из этого следует, что мастер ПР читает не одиночные биты регистра, а сразу целыми байтами(что мы видим на экране отладки в сетевой переменной), а для результата берет только один заданный бит
petera, спасибо за такой подробный ответ!
Теперь пришло понимание, как сделать "красиво", т.е., чтобы на дискретных выходах в онлайн-отладке были булевые данные: писать кнопки в биты регистров PSW в панели, а в ПР-ке доставать их из маски и разводить по выходам...
ShmoninEN
22.04.2024, 18:06
Всем привет. После обновления до версии 2.6.347.0 начал очень сильно "тормозить" интерфейс OL. Уже как минимум на трёх компьютерах попробовал. В режиме разработки это проявляется как "замирание" интерфейса на 2-3 секунды без реакции на какие-либо действия, в режиме симуляции видно, что таймер внизу экрана, отсчитывающий "циклы" контроллера замирает на 2-3 секунды. Очень напряжно стало работать, скажу даже невозможно. Это у меня одного так, или проблема повсеместная? Диспетчер задач смотрел, процессор почти не занят. Что может вызывать такие тормоза?
kondor3000
22.04.2024, 19:28
Всем привет. После обновления до версии 2.6.347.0 начал очень сильно "тормозить" интерфейс OL. Уже как минимум на трёх компьютерах попробовал. В режиме разработки это проявляется как "замирание" интерфейса на 2-3 секунды без реакции на какие-либо действия, в режиме симуляции видно, что таймер внизу экрана, отсчитывающий "циклы" контроллера замирает на 2-3 секунды. Очень напряжно стало работать, скажу даже невозможно. Это у меня одного так, или проблема повсеместная? Диспетчер задач смотрел, процессор почти не занят. Что может вызывать такие тормоза?
Нет никаких тормозов. Думаю дело в вашей программе.
Для проверки, возьмите любой из примеров и проверьте в симуляторе и онлайн работе
https://owen.ru/forum/showthread.php?t=37203&page=9&p=429067#81
Лучше посложнее, типа этого, 3 вариант https://owen.ru/forum/showthread.php?t=38239&page=11#105
ShmoninEN
23.04.2024, 18:30
Дело в том, что даже не открывая программу, а только запустив OL уже есть эти тормоза. Если водить мышкой по пунктам меню, винда ставит "фокус" на этот пункт в виде выделенной рамки. И даже здесь этот фокус сначала перескакивает с пункта на пункт по мере прохождения над ними курсора мыши, а потом пропадает, хотя курсор уже переместился далее. И на кнопках управления окном OL так же.
https://www.youtube.com/watch?v=XK6AfWUMrsE
Неважно какая программа открыта, поведение OL такое же, с тормозами. Ничего невозможно делать :mad:
kondor3000
23.04.2024, 19:08
Дело в том, что даже не открывая программу, а только запустив OL уже есть эти тормоза. Если водить мышкой по пунктам меню, винда ставит "фокус" на этот пункт в виде выделенной рамки. И даже здесь этот фокус сначала перескакивает с пункта на пункт по мере прохождения над ними курсора мыши, а потом пропадает, хотя курсор уже переместился далее. И на кнопках управления окном OL так же.
Неважно какая программа открыта, поведение OL такое же, с тормозами. Ничего невозможно делать :mad:
Повторил, как на видео, у меня нет тормозов. Всё быстро работает.
При чём и на старом компе с 7 виндой и на новом с 10.
Дело в том, что даже не открывая программу, а только запустив OL уже есть эти тормоза. Если водить мышкой по пунктам меню, винда ставит "фокус" на этот пункт в виде выделенной рамки. И даже здесь этот фокус сначала перескакивает с пункта на пункт по мере прохождения над ними курсора мыши, а потом пропадает, хотя курсор уже переместился далее. И на кнопках управления окном OL так же.
Неважно какая программа открыта, поведение OL такое же, с тормозами. Ничего невозможно делать :mad:
Это давнишняя проблема - просто переключитесь в офлайн (в правой стороне строки состояния)
АРТ.Кар 64
23.04.2024, 19:54
Что может вызывать такие тормоза?
Совет может показаться по меньшей мере странным...Но если стоит какой-то "антивирус"-то на время работы отключите его на фиг.
Проверил на 10-й Винде....Комп ,конечно не скакун-но такого "фокуса" нет.
Правда "таргеты" грузятся с такой скоростью,что как будто тянут из болота бегемота.
На "семёре",где нет Каспера вообще всё отлично. Дело не в программе,а в чём-то ином.
Денисов Максим Сергеевич
23.04.2024, 20:34
Дело в том, что даже не открывая программу, а только запустив OL уже есть эти тормоза. Если водить мышкой по пунктам меню, винда ставит "фокус" на этот пункт в виде выделенной рамки. И даже здесь этот фокус сначала перескакивает с пункта на пункт по мере прохождения над ними курсора мыши, а потом пропадает, хотя курсор уже переместился далее. И на кнопках управления окном OL так же.
https://www.youtube.com/watch?v=XK6AfWUMrsE
Неважно какая программа открыта, поведение OL такое же, с тормозами. Ничего невозможно делать :mad:
Уточните, пожалуйста, характеристики вашего ПК и версию ОС. Приложите скрин из диспетчера задач, чтобы понимать в каком объеме лоджик потребляет ресурсы.
ShmoninEN
24.04.2024, 04:39
Компьютер, на котором снято это видео достаточно мощный, ryzen 5600, 16gb ram ddr4, Windows 10 pro. Стороннего антивируса нет, стандартный защитник windows. Если открыть диспетчер задач, то видно что процессор не нагружен совсем, и процесс OL занимает очень мало процессорного времени. Похожая картина происходит на рабочем компьютере с процессором intel 12100f, 8 gb ram, Windows 10 pro. Попробую режим оффлайн, по результатам напишу.
75362
Ничего не тупит, даже с каспером и кучей всякого в трее.
Только связь постоянно отваливается, особенно если через OpenVPN подключаться. Простое увеличение задержки похоже не очень то помогло. Ну и онлайн отладка на большом мониторе это ужас - масштаб до 400% поднимать приходится чтоб хоть какие-то данные пошли.
Игорь Волкоедов
24.04.2024, 17:10
Коллеги, прошу помощи здесь, ибо странно.
У меня на ПЭВМ с вин 10 ОЛ Версия 2.6.347.0 - ПР 205 в списке есть.
У коллеги ПЭВМ с вин 7 ОЛ Версия 2.6.347.0 (поставили недавно) - ПР 205 в списке НЕТ.
Куда копать?
Королев Кирилл
24.04.2024, 17:31
Коллеги, прошу помощи здесь, ибо странно.
У меня на ПЭВМ с вин 10 ОЛ Версия 2.6.347.0 - ПР 205 в списке есть.
У коллеги ПЭВМ с вин 7 ОЛ Версия 2.6.347.0 (поставили недавно) - ПР 205 в списке НЕТ.
Куда копать?
Проверьте, от одного ли пользователя устанавливался и запускается OL:
75393
Игорь Волкоедов
25.04.2024, 08:08
У коллеги ставил администратор. Запускается под юзером. Корпоративный комп.
На моей ПЭВМ я ставил и запускаю.
goranach
26.04.2024, 12:40
При обновлении OwenLogic ярлык на рабочем столе сначала удаляется, а потом создаётся.
Можно сделать проверку на его наличие, чтобы не перетаскивать потом ярлык на другое место)
rumactep
27.04.2024, 09:02
Коллеги, прошу помощи здесь, ибо странно.
У меня на ПЭВМ с вин 10 ОЛ Версия 2.6.347.0 - ПР 205 в списке есть.
У коллеги ПЭВМ с вин 7 ОЛ Версия 2.6.347.0 (поставили недавно) - ПР 205 в списке НЕТ.
Куда копать?
программа устанавливается под админом, инсталлятор ставит спец файлы в [c:\Users\admin\]AppData\Roaming\OWEN\OWEN Logic\[номер версии типа "2.6.347.0"]
а пользователь, который потом запускает программу ищет файлы в подобном каталоге пользователя
выход - из-под админа вручную скопировать папку с номером последней версией типа "2.6.347.0" из админовской папки в юзеровскую.
в техподдержку OWEN звонил с этой проблемой - решение подсказали, но решать видимо не собираются
ShmoninEN
01.05.2024, 11:26
Это давнишняя проблема - просто переключитесь в офлайн (в правой стороне строки состояния)
Действительно помогло, спасибо. Но раньше и так работало нормально, без включения режима Оффлайн.
Я обычно делаю portable версию Лоджика и использую ее без установки на домашнем компе, на рабочем или на ноуте.
Алексеев
06.05.2024, 10:39
Можете мне объяснить . На объекте всё работает , а в симуляторе выдаёт предупреждение . перевел проект в ОЛ 2.6 думал БАГ . попробовал включить симуляцию в ОЛ 1.22 . тоже самое .
Что это означает , проект большой . Невалидная переменная 75582 может это фича ??????
Денисов Максим Сергеевич
06.05.2024, 11:26
Можете мне объяснить . На объекте всё работает , а в симуляторе выдаёт предупреждение . перевел проект в ОЛ 2.6 думал БАГ . попробовал включить симуляцию в ОЛ 1.22 . тоже самое .
Что это означает , проект большой . Невалидная переменная 75582 может это фича ??????
Выложите проект здесь или пришлите нам на почту soft@owen.ru
Заметил изменения между двумя ОЛ 1.22 и 2.6 В проекте 75592 № , а реально 75593 -- это так должно быть ?????
Это проблема в ЖК индикаторе ??????
Из инструкции на ПР200
75594
Алексеев
06.05.2024, 16:31
Спасибо вопрос снят . Значит раньше не обращал внимание .
Greengener
01.06.2024, 12:37
Здравствуйте! Объясните, пожалуйста, это баг или фича: при включении симуляции Owen Logic подвисает. В ходе экспериментов выяснил, что если при любом времени цикла, особенно большом, например 1 секунда, owen logic "считает" все миллисекунды в ФБ. То есть выглядит это так: если задать время цикла 100 мс, и смотреть на ФБ например, BLINK, то OL быстро перебирает цифры под блоком и ждёт дальнейшей команды пользователя, то есть так как и должно быть. Но если поставить время цикла, например 1 секунду, то он так же перебирает быстро цифры и на всё это время программа перестаёт отвечать на запросы пользователя: не нажимаются кнопки, интерфейс периодически перестаёт отвечать. Загрузка ЦП поднимается до 50-60%(только на OL).
Мне кажется, что скорость "перебора цифр" должна как-то меняться. Сейчас попробовал сделать шаг с временем цикла 1 минута. В общем он пытался считать, но остановить его или выйти из режима не получилось. Пришлось убить процесс OwenLogic.
Может быть я не правильно понимаю работу OL? На Windows 7 всё очень шустро работало и таких глюков не замечал.
Машина: Core i7-8650U, 16Гб ОЗУ, Windows 11 Pro 23H2 сборка 22631.3593
Owen Logic 2.6.348.0
kondor3000
01.06.2024, 12:55
Здравствуйте! Объясните, пожалуйста, это баг или фича: при включении симуляции Owen Logic подвисает. В ходе экспериментов выяснил, что если при любом времени цикла, особенно большом, например 1 секунда, owen logic "считает" все миллисекунды в ФБ. То есть выглядит это так: если задать время цикла 100 мс, и смотреть на ФБ например, BLINK, то OL быстро перебирает цифры под блоком и ждёт дальнейшей команды пользователя, то есть так как и должно быть. Но если поставить время цикла, например 1 секунду, то он так же перебирает быстро цифры и на всё это время программа перестаёт отвечать на запросы пользователя: не нажимаются кнопки, интерфейс периодически перестаёт отвечать. Загрузка ЦП поднимается до 50-60%(только на OL).
Мне кажется, что скорость "перебора цифр" должна как-то меняться. Сейчас попробовал сделать шаг с временем цикла 1 минута. В общем он пытался считать, но остановить его или выйти из режима не получилось. Пришлось убить процесс OwenLogic.
Может быть я не правильно понимаю работу OL? На Windows 7 всё очень шустро работало и таких глюков не замечал.
Машина: Core i7-8650U, 16Гб ОЗУ, Windows 11 Pro 23H2 сборка 22631.3593
Owen Logic 2.6.348.0
Не надо ставить цикл 1 секунду, вы программе работать не даёте. Если работаете в симуляции, чтобы не тормозило, справа внизу включите OFFLINE.76181
В Симуляции время цикла 100 мс, в реальном ПР от 1 до 100 мс, в зависимости от сложности программы.
Если вам нужна задержка по времени в секундах, минутах или часах, ставьте таймер.
Время в таймере изберяется в мс, для перевода в секунды умножаете на 1000.
Здравствуйте! Объясните, пожалуйста, это баг или фича: при включении симуляции Owen Logic подвисает. В ходе экспериментов выяснил, что если при любом времени цикла, особенно большом, например 1 секунда, owen logic "считает" все миллисекунды в ФБ. То есть выглядит это так: если задать время цикла 100 мс, и смотреть на ФБ например, BLINK, то OL быстро перебирает цифры под блоком и ждёт дальнейшей команды пользователя, то есть так как и должно быть. Но если поставить время цикла, например 1 секунду, то он так же перебирает быстро цифры и на всё это время программа перестаёт отвечать на запросы пользователя: не нажимаются кнопки, интерфейс периодически перестаёт отвечать. Загрузка ЦП поднимается до 50-60%(только на OL).
Мне кажется, что скорость "перебора цифр" должна как-то меняться. Сейчас попробовал сделать шаг с временем цикла 1 минута. В общем он пытался считать, но остановить его или выйти из режима не получилось. Пришлось убить процесс OwenLogic.
Может быть я не правильно понимаю работу OL? На Windows 7 всё очень шустро работало и таких глюков не замечал.
Машина: Core i7-8650U, 16Гб ОЗУ, Windows 11 Pro 23H2 сборка 22631.3593
Owen Logic 2.6.348.0
Хотите, чтобы Лоджик циферки быстрее перебирал, уменьшите период
Новый лоджик 2.7.349.
Создаю функциональный блок на ST, пишу название в комментариях, сохраняю файл проекта. После открытия проекта комментарий ФБ исчезает.
Комментарии и в функциях на ST не сохраняются.
Королев Кирилл
04.06.2024, 10:16
Новый лоджик 2.7.349.
Создаю функциональный блок на ST, пишу название в комментариях, сохраняю файл проекта. После открытия проекта комментарий ФБ исчезает.
Комментарии и в функциях на ST не сохраняются.
Добрый день. Приложите, пожалуйста, Ваш проект и скриншоты с последовательным описанием, что за чем делали. Попробовал повторить по описанному сценарию - ошибка не воспроизводится.
Добрый день. Приложите, пожалуйста, Ваш проект и скриншоты с последовательным описанием, что за чем делали. Попробовал повторить по описанному сценарию - ошибка не воспроизводится.
Создаю функцию на ST и пишу комментарий:
76230
При наведении мышкой комментарий виден:
76231
Сохраняю проект, открываю заново - комментария нет:
76232
Файл:
76233
Королев Кирилл
04.06.2024, 11:50
Создаю функцию на ST и пишу комментарий:
76230
При наведении мышкой комментарий виден:
76231
Сохраняю проект, открываю заново - комментария нет:
76232
Файл:
76233
Спасибо за обратную связь, задачу добавил. В данный момент можно воспользоваться тегом ///<Description>..</Description> перед названием ФБ. Содержимое тега будет отображаться на всплывающей подсказке.
Спасибо за обратную связь, задачу добавил. В данный момент можно воспользоваться тегом ///<Description>..</Description> перед названием ФБ. Содержимое тега будет отображаться на всплывающей подсказке.
О, а нельзя тогда как-то связать поле "Комментарий" и тег ///<Description>..</Description>. Тогда, если мы заполняем поле комментарий, автоматом создается тег ///<Description>..</Description> и наоборот
Добрый день.
Поймал фичу, если не уследили и в программе на ST вышли за пределы массива, то получаем сообщение
76391
об ошибке, но в самом редакторе ошибок нет
76392
И самое главное. В редакторе перестает работать клавиша BaclSpace и DEL.
Я чуть клавиатуру не сломал :D !!!!! , в попытке удалить неправильный символ.
Т.Е. перемещение клавишами в редакторе работает, вкладки переключать могу , а символ удалить не могу.
Поправьте пожалуйста. и сделайте информативным сообщение об ошибке, а то при большом количестве блоков на холсте не понятно где это произошло.
Тестовый проект прикладываю.
P.S. OL крайний.
kondor3000
08.06.2024, 14:33
Добрый день.
Поймал фичу, если не уследили и в программе на ST вышли за пределы массива, то получаем сообщение
об ошибке, но в самом редакторе ошибок нет
И самое главное. В редакторе перестает работать клавиша BaclSpace и DEL.
Я чуть клавиатуру не сломал :D !!!!! , в попытке удалить неправильный символ.
Т.Е. перемещение клавишами в редакторе работает, вкладки переключать могу , а символ удалить не могу.
Поправьте пожалуйста. и сделайте информативным сообщение об ошибке, а то при большом количестве блоков на холсте не понятно где это произошло.
Тестовый проект прикладываю.
P.S. OL крайний.
Ошибка у вас в цикле FOR, переменная i может меняться от 1 до 2,
а в цикле может принять значение 3, [i+1] , а это выход за пределы массива. Ошибка только в работе, поэтому для компилятора не считается ошибкой. Это чисто ошибка программиста.
IF IN <> 0 THEN
FOR i := 1 TO 2 DO
fQ:= fPoint_X[i]+ fPoint_X [i+1];
END_FOR;
END_IF;
Клавиши BaclSpace и DEL у меня работают нормально. После ошибки и выхода из симуляции, убираю +1 и всё работает.
СергейНовосиб
17.06.2024, 06:19
При редактировании проекта увидел такое:
76610
ОЛ 2.7.350.0
Это при копировании получилось.
СергейНовосиб
17.06.2024, 06:33
Как увидеть экран всех переходов для ПР205 как у ПР200?
Не видно куда сделан переход, куда не сделан и правильно сделан.
При редактировании проекта увидел такое:
76610
ОЛ 2.7.350.0
Это при копировании получилось.
Это давно такое случается. Еще и фантомы блоков и переменных иногда остаются
Как увидеть экран всех переходов для ПР205 как у ПР200?
Не видно куда сделан переход, куда не сделан и правильно сделан.
Графически переходы на ПР205 не отображаются
Версия Лоджика 2.7.350.0. Интересный косяк нашел. В демонстрации достаточно легко из него вышел. Но это не всегда так получается
Видео https://disk.yandex.ru/i/URe42GeaACSM6Q
Королев Кирилл
28.06.2024, 16:00
Версия Лоджика 2.7.350.0. Интересный косяк нашел. В демонстрации достаточно легко из него вышел. Но это не всегда так получается
Видео https://disk.yandex.ru/i/URe42GeaACSM6Q
Спасибо за обратную связь, ошибку подтвердили, исправим в ближайших хотфиксах.
Asu$Nick
29.06.2024, 22:20
Коллеги , обнаружил такую штуку. При выводе сетевой переменной на экран ПР205 , она ограничена в поле значением 65535. Так как переменная 16 разрядная это нормально. Но если перейти в режим онлайн отладки , можно увидеть что в сетевую переменную можно записать число больше 65535. Сетевая переменная в программе ведет себя как 32 разрядная. Соответственно после превышения границы за 65535 на экране цифры одни , а в программе другие. Тоже самое происходит и в симуляции.
76940
Коллеги , обнаружил такую штуку. При выводе сетевой переменной на экран ПР205 , она ограничена в поле значением 65535. Так как переменная 16 разрядная это нормально. Но если перейти в режим онлайн отладки , можно увидеть что в сетевую переменную можно записать число больше 65535. Сетевая переменная в программе ведет себя как 32 разрядная. Соответственно после превышения границы за 65535 на экране цифры одни , а в программе другие. Тоже самое происходит и в симуляции.
76940
Это и на других ПРках наблюдается. Я думаю, разработчики просто не стали заморачиваться, и внутри ПРки переменная остается 32 битной
Asu$Nick
29.06.2024, 22:57
Это и на других ПРках наблюдается. Я думаю, разработчики просто не стали заморачиваться, и внутри ПРки переменная остается 32 битной
Это просто неправильная работа - баг.
Главное, при привязке переменной к полю на экране, правила все соблюдаются , если сетевая то мин макс автоматом для 16 разрядов, если обычная переменная , то лимиты на 32 разряда.
При этом лимиты работают на экране , а в самой программе переменная живет своей неограниченной жизнью.
Мда,... можно наворотить таких дел ...
Сергей0308
29.06.2024, 23:06
В режиме мастер и ПР200 поддерживало 32-х разрядные сетевые переменные.
Asu$Nick
29.06.2024, 23:15
В режиме мастер и ПР200 поддерживало 32-х разрядные сетевые переменные.
Ну если бы я выбрал два регистра на 32 бита , то вопросов и нет. В данном случае одинарные регистры.
76941
Это просто неправильная работа - баг.
Это не баг - это фича
Главное, при привязке переменной к полю на экране, правила все соблюдаются , если сетевая то мин макс автоматом для 16 разрядов, если обычная переменная , то лимиты на 32 разряда.
При этом лимиты работают на экране , а в самой программе переменная живет своей неограниченной жизнью.
По-моему, логично - смысл задавать с экрана сетевой переменной значение, которое она не сможет передать мастеру
Мда,... можно наворотить таких дел ...
А вы не воротите, вы, просто, держите в уме, что сетевая переменная не должна быть больше 65535
Asu$Nick
30.06.2024, 09:52
Это не баг - это фича
По-моему, логично - смысл задавать с экрана сетевой переменной значение, которое она не сможет передать мастеру
А вы не воротите, вы, просто, держите в уме, что сетевая переменная не должна быть больше 65535
Так не работает ограничение на экране!!! Если поставить 3000 условно, лимит поля на экране, переменную должно обрезать и в программе тоже!!!
Значения в программе и на экране должны быть одинаковыми. Вот на скриншоте счетчик литров расходомера.
Оператор регистрирует показания время от времени. Информация в данном случае является достоверной!!!???
Вы считаете это фичей!!!???
76944
kondor3000
30.06.2024, 11:07
Так не работает ограничение на экране!!! Если поставить 3000 условно, лимит поля на экране, переменную должно обрезать и в программе тоже!!!
Значения в программе и на экране должны быть одинаковыми. Вот на скриншоте счетчик литров расходомера.
Оператор регистрирует показания время от времени. Информация в данном случае является достоверной!!!???
Вы считаете это фичей!!!???
Вам же написали, в ПР мастере может быть 2 регистра в целочисленной, если сделать как вы пишите, получится фигня при выборе мастера и 2 регистров.
Это вы должны при выборе 1 регистра, ограничить переменную до 65535.76946
Asu$Nick
30.06.2024, 11:25
Вам же написали, в ПР мастере может быть 2 регистра в целочисленной, если сделать как вы пишите, получится фигня при выборе мастера и 2 регистров.
Мне не нужен двойной регистр, я беру стандартный.
[QUOTE] Это вы должны при выборе 1 регистра, ограничить переменную до 65535.[QUOTE]
Это не работает
При объявлении переменной , в окошке свойств есть минимум и максимум. Это сделано как раз для ограничения.Правильно?
Если максимум сделать 5000, какой результат вы предполагаете получить?
Так не работает ограничение на экране!!! Если поставить 3000 условно, лимит поля на экране, переменную должно обрезать и в программе тоже!!!
Значения в программе и на экране должны быть одинаковыми. Вот на скриншоте счетчик литров расходомера.
Оператор регистрирует показания время от времени. Информация в данном случае является достоверной!!!???
Вы считаете это фичей!!!???
76944
Лимит на экране никак не связан с обрезкой переменной в программе - это разные вещи
А вот здесь, промежуточный результат (переменная 1) насколько он, по вашему достоверен?
76947
kondor3000
30.06.2024, 11:37
Мне не нужен двойной регистр, я беру стандартный.
Это вы должны при выборе 1 регистра, ограничить переменную до 65535.
Это не работает
При объявлении переменной , в окошке свойств есть минимум и максимум. Это сделано как раз для ограничения.Правильно?
Если максимум сделать 5000, какой результат вы предполагаете получить?
Это ограничение ввода переменной, ограничивать надо в вашем случае в ФБ, либо сделать вход этой переменной, там будет правильное значение, смотрите скрин выше.
Asu$Nick
30.06.2024, 11:45
[QUOTE=Dimensy;440605]Лимит на экране никак не связан с обрезкой переменной в программе - это разные вещи
На экране должно быть тоже число , что и внутри программы, какое бы оно не было.
Asu$Nick
30.06.2024, 11:51
А вот здесь, промежуточный результат (переменная 1) насколько он, по вашему достоверен?
76947
Это не имеет отношения к вопросу, в вашем примере просто отражена особенность механизма обработки разных типов данных , он описан в справке.
Даже в этом случае,числа на выходе выполнения операций, должны быть идентичными на экране.
Это не имеет отношения к вопросу, в вашем примере просто отражена особенность механизма обработки разных типов данных , он описан в справке.
Даже в этом случае,числа на выходе выполнения операций, должны быть идентичными на экране.
Экран - это отдельная программа, которая крутиться параллельно с программой в ПРке. Вывод результат на экран - это операция чтения и с этим, как вам показали здесь https://owen.ru/forum/showthread.php?t=12264&p=440600&viewfull=1#post440600 все нормально
Asu$Nick
30.06.2024, 12:13
Экран - это отдельная программа, которая крутиться параллельно с программой в ПРке. Вывод результат на экран - это операция чтения и с этим, как вам показали здесь https://owen.ru/forum/showthread.php?t=12264&p=440600&viewfull=1#post440600 все нормально
Хоть отдельная , хоть не отдельная , но на экране должны быть актуальные данные в любом случае.
Сейчас установленные лимиты режут отображение числа на экране , а этого быть не должно.
kondor3000
30.06.2024, 12:17
Хоть отдельная , хоть не отдельная , но на экране должны быть актуальные данные в любом случае.
Записывая заведомо большее число в регистр, где не может быть больше чем 65535, это чисто ошибка программиста. В чём вы упорно пытаетесь обвинить Лоджик.
Достаточно написать одну строку ограничения в ФБ.
Asu$Nick
30.06.2024, 12:25
Записывая заведомо большее число в регистр, где не может быть больше чем 65535, это чисто ошибка программиста. В чём вы упорно пытаетесь обвинить Лоджик.
Это только вы , сугубо лично, так думаете , что пытаюсь обвинить.
Я хочу чтобы Лоджик был лучше. Эта ветка для этого и создана.
Обнаружил недочет, сообщил. Обвинений ни разу не выдвигал, описал по делу, привел примеры.
"Сейчас установленные лимиты режут отображение числа на экране , а этого быть не должно." -- Вы с этим тоже так и не согласны?
МихаилГл
30.06.2024, 12:34
По всему вышеописанному...
https://youtu.be/s3aYelkS0Yo?si=VXZITykCmiilbid7
kondor3000
30.06.2024, 12:35
Это только вы , сугубо лично, так думаете , что пытаюсь обвинить.
Я хочу чтобы Лоджик был лучше. Эта ветка для этого и создана.
Обнаружил недочет, сообщил. Обвинений ни разу не выдвигал, описал по делу, привел примеры.
"Сейчас установленные лимиты режут отображение числа на экране , а этого быть не должно." -- Вы с этим тоже так и не согласны?
Да не лимиты режут, а число отображается как больше чем 65535. Вот что у вас происходит 76949 Отображается младший регистр из 2, так как в Лоджике нет 16 битного WORD (UINT), а только 32 битное UDINT (DWORD)
Это только вы , сугубо лично, так думаете , что пытаюсь обвинить.
Я хочу чтобы Лоджик был лучше. Эта ветка для этого и создана.
Обнаружил недочет, сообщил. Обвинений ни разу не выдвигал, описал по делу, привел примеры.
"Сейчас установленные лимиты режут отображение числа на экране , а этого быть не должно." -- Вы с этим тоже так и не согласны?
Никто ничего не режет. Сетевая переменная 16 битная, поэтому и на экран выводится только 16 бит
Asu$Nick
30.06.2024, 13:25
Да не лимиты режут, а число отображается как больше чем 65535. Вот что у вас происходит 76949 Отображается младший регистр из 2, так как в Лоджике нет 16 битного WORD (UINT), а только 32 битное UDINT (DWORD)
Никто ничего не режет. Сетевая переменная 16 битная, поэтому и на экран выводится только 16 бит
Коллеги, я это все понимаю , но
1. На экране переменная должна отображаться правильно - Достоверно
Для этого надо отображать на экране поля всегда в 32 битном виде, тогда все предложенные и вами и мной варианты будут видны корректно.
Зависимости от ширины переменной , не нужно вообще.
2. Лимит поля должен отрабатывать не на отображение , а на событие изменения данных.
3. В идеальном варианте , обработчик программы , должен автоматом обрезать заведомо 16 битное значение до 65535.
И в примере , когда пишем константу 70000 в одиночный регистр либо вообще не давать грузить такой код, либо динамически делать 70000->65535
Тоже самое в примере со счетчиком, который сетевая переменная. Он должен досчитать до 65535 и остановится на этом.
Тогда все везде будет по людски, и никто не ошибется.
kondor3000
30.06.2024, 13:33
Тоже самое в примере со счетчиком, который сетевая переменная. Он должен досчитать до 65535 и остановится на этом.
Тогда все везде будет по людски, и никто не ошибется.
На это вам уже ответил выше, никто не должен что-то переделывать, если вы сами делаете ошибки, не ограничивая 16 битную переменную в коде. Или в том же счётчике.
Сергей0308
30.06.2024, 13:38
Коллеги, я это все понимаю , но
1. На экране переменная должна отображаться правильно - Достоверно
Для этого надо отображать на экране поля всегда в 32 битном виде, тогда все предложенные и вами и мной варианты будут видны корректно.
Зависимости от ширины переменной , не нужно вообще.
2. Лимит поля должен отрабатывать не на отображение , а на событие изменения данных.
3. В идеальном варианте , обработчик программы , должен автоматом обрезать заведомо 16 битное значение до 65535.
И в примере , когда пишем константу 70000 в одиночный регистр либо вообще не давать грузить такой код, либо динамически делать 70000->65535
Тоже самое в примере со счетчиком, который сетевая переменная. Он должен досчитать до 65535 и остановится на этом.
Тогда все везде будет по людски, и никто не ошибется.
Какое-то очень странное желание, на мой взгляд, в смысле, если счётчик остановится - станет невозможно работать с энкодерами и т. п.
Я так понимаю, если сделать по-вашему - прибор перестанет работать!
Asu$Nick
30.06.2024, 13:47
На это вам уже ответил выше, никто не должен что-то переделывать, если вы сами делаете ошибки, не ограничивая 16 битную переменную в коде. Или в том же счётчике.
Я писал не про вас, а о поведении счетчика "в примере со счетчиком, который сетевая переменная. Он должен досчитать до 65535 и остановится на этом."
По поводу ошибок.
Создавая программы в Лоджике , я должен предусмотреть , как программист, все возможные ситуации которые может создать оператор. Чем более профессиональный программист , тем больше
ситуаций он может просчитать, выставить лимиты, защиты от дурака и блокировки.
Те же правила существуют и для программистов Лоджика, они на своем уровне занимаются тем же. И если суть проблемы ясна, почему бы не сделать лучше?
Asu$Nick
30.06.2024, 13:51
Какое-то очень странное желание, на мой взгляд, в смысле, если счётчик остановится - станет невозможно работать с энкодерами и т. п.
Я так понимаю, если сделать по-вашему - прибор перестанет работать!
А что ему еще делать, если разряды кончились.
Даже 32 битный кончиться может.
Как вариант перейти через ноль.
Зато если перестал считать , я быстро пойму в чем проблема.
Коллеги, я это все понимаю , но
1. На экране переменная должна отображаться правильно - Достоверно
Для этого надо отображать на экране поля всегда в 32 битном виде, тогда все предложенные и вами и мной варианты будут видны корректно.
Зависимости от ширины переменной , не нужно вообще.
Зачем отображать в 32 битном виде 16 битную переменную? Хотя, еще раз напишу, скорее всего сетевые переменные в Лоджике остаются 32 битными, но при чтении компилятор отдает только младшие 16 бит.
2. Лимит поля должен отрабатывать не на отображение , а на событие изменения данных.
Лимит поля ограничивает вводимые с экрана значения. При выходе за предел вводимое число не обрезается, просто не происходит запись
3. В идеальном варианте , обработчик программы , должен автоматом обрезать заведомо 16 битное значение до 65535.
И в примере , когда пишем константу 70000 в одиночный регистр либо вообще не давать грузить такой код, либо динамически делать 70000->65535
Тоже самое в примере со счетчиком, который сетевая переменная. Он должен досчитать до 65535 и остановится на этом.
Тогда все везде будет по людски, и никто не ошибется.
Так он и обрезает. То что мы может в сетевую переменную записать 32 бита - забейте на это, потому что при чтении мы получим только младшие 16 бит. Считайте старший разряд мусорным.
Что касается счетчика, то досчитав до 65535, дальше у нас младший разряд обнуляется и начинает считать заново - все как в 16 битной переменной. На старший разряд, опять же, не обращаем внимание
Что касается "динамически делать 70000->65535". Где вы такое преобразование видели? В Codesys, например преобразование dint_to_int отбрасывает старшие 16 битов, и Лоджик делает то же самое. А ограничивать переменную - то ли до 65535, то ли до 100 - это уже забота программиста
А что ему еще делать, если разряды кончились.
Даже 32 битный кончиться может.
Как вариант перейти через ноль.
Зато если перестал считать , я быстро пойму в чем проблема.
Смиритесь, в АСУ переполнение не вызывает исключение, а просто осуществляется переход через ноль (по крайней мере, с целыми числами)
Asu$Nick
30.06.2024, 17:12
76953
То что 16 битная переменная ведет себя как 32х - пойдет.....
На экране одно число, а в программе другое - пойдет...
Так и будем пользоваться.
76953
То что 16 битная переменная ведет себя как 32х - пойдет.....
На экране одно число, а в программе другое - пойдет...
Так и будем пользоваться.
Вы же написали что чем больше опыта тем больше программисты могут предусмотреть. возможно на экране будет лучше смотреться обычная переменная, а не сетевая. А сетевые пусть занимаются своим главным предназначением, передают данные по сети, для 32хразрядного значения их нужно будет две
Asu$Nick
30.06.2024, 18:18
Вы же написали что чем больше опыта тем больше программисты могут предусмотреть. возможно на экране будет лучше смотреться обычная переменная, а не сетевая. А сетевые пусть занимаются своим главным предназначением, передают данные по сети, для 32хразрядного значения их нужно будет две
Да уже все исказили, за время этой дискуссии. Мне эти 32 бита и не нужно было ни разу. Я про это вообще не спрашивал.
Суть в том , что при онлайн отладке в программе я вижу в переменной одно число, а на экран выводится другое. Переменная одна и та же. Где то надо навести порядок.
Да уже все исказили, за время этой дискуссии. Мне эти 32 бита и не нужно было ни разу. Я про это вообще не спрашивал.
Суть в том , что при онлайн отладке в программе я вижу в переменной одно число, а на экран выводится другое. Переменная одна и та же. Где то надо навести порядок.
Повторяю, наведите у себя, отображайте на экране не сетевую переменную. Потому что если сетевую расширить до 32 разряда, на другом конце сети все равно придет регистр, получится у Вас в устройстве все красиво, а на другом, которое может программировать другой человек, будут такие же непонятки , отладка сложнее
Asu$Nick
30.06.2024, 19:56
Потому что если сетевую расширить до 32 разряда,
Я же вам только что написал , что мне и не надо было никаких переменных в 32 разряда!!!
У меня изначально все переменные размером в регистр , а лоджик их отрабатывает как 32.
https://owen.ru/forum/showthread.php?t=12264&p=440596&viewfull=1#post440596
переменная на картинке сетевая в один регистр =16 бит
Я же вам только что написал , что мне и не надо было никаких переменных в 32 разряда!!!
У меня изначально все переменные размером в регистр , а лоджик их отрабатывает как 32.
А кому нужен ОЛ с 16 разрядными переменными. В документации указан тип целочисленной переменной, если нужен зоопарк типов данных, берите плк
Asu$Nick
30.06.2024, 20:25
А кому нужен ОЛ с 16 разрядными переменными
Зачем тогда при выборе целочисленной переменной на экране, при выборе сетевой ограничение на значение в 16 бит, а при выборе обычной ограничение в 32 бита. Кто же этот зоопарк использует?
Зачем тогда при выборе целочисленной переменной на экране, при выборе сетевой ограничение на значение в 16 бит, а при выборе обычной ограничение в 32 бита. Кто же этот зоопарк использует?
тут не важно кто, а как. Кто читает документацию тот знает об особенностях 76956
Asu$Nick
01.07.2024, 10:00
тут не важно кто, а как. Кто читает документацию тот знает об особенностях 76956
Я все эти особенности знаю и понимаю.
Вы так и не поняли суть моего замечания в начале всей беседы.
Еще раз:
при онлайн отладке сетевая переменная в программе может отрабатывать значения до ширины 32 бита, при этом эта же переменная на экране ПР отображается урезанной до ширины 16 бит.
Может возникнуть ситуация когда программа внутри работает по одним значениям, а пользователь видит другие значения( из младшего слова от 32 бит)
Мой запрос простой:
сделать хотя бы разрядность отображения поля всегда в 32 бита. Это будет универсально и всегда отработает корректно на всех переменных и сетевых и обычных.
Я все эти особенности знаю и понимаю...пользователь видит другие значения( из младшего слова от 32 бит)
Мой запрос простой:
сделать хотя бы разрядность отображения поля всегда в 32 бита. Это будет универсально и всегда отработает корректно на всех переменных и сетевых и обычных.
так как это совмещается, если программист знает особенности и позволяет пользователю видеть не то что нужно? Вас кто то за руку держит и не дает добавить внутреннюю переменную для отображения на экране
сделать хотя бы разрядность отображения поля всегда в 32 бита
как у Вас всё просто, Вы просчитали какие проблемы могут быть из-за этого или Ваша задача только генерировать вопросики а остальные пусть работают пока солнце высоко
Asu$Nick
01.07.2024, 11:40
так как это совмещается, если программист знает особенности и позволяет пользователю видеть не то что нужно?
На данный момент это программисты лоджик позволили мне как пользователю видеть не то что нужно.
Я понимаю что происходит , но хотел сгладить данный момент, с пользой для всех
Вы просчитали какие проблемы могут быть из-за этого или Ваша задача только генерировать вопросики а остальные пусть работают пока солнце высоко
Да просчитал. Проблема есть сейчас, а если подправить то будет лучше.
Да просчитал. Проблема есть сейчас, а если подправить то будет лучше.
ну как лучше, в каком месте Вы хотите что оставалось 32-разрядное значение 76961
Если считаете что значение перед входом в сетевую переменную это и есть сама сетевая переменная то это не так, в панель и в сеть уйдет действительное значение переменной после неявного преобразования, на скрине правая часть
Asu$Nick
01.07.2024, 11:57
Я про то что лимит на ввод не должен влиять на лимит отображения поля.
Поле всегда могло бы показать и 16 и 32 бита.
76962
Я про то что лимит на ввод не должен влиять на лимит отображения поля.
Поле всегда могло бы показать и 16 и 32 бита.
76962
если сетевая переменная 16разрядов, то зачем тратить память для отображения в два раза больше, это же экран ПР а не ПК, предлагал же перейдите на плк/спк
Asu$Nick
01.07.2024, 12:11
если сетевая переменная 16разрядов, то зачем тратить память для отображения в два раза больше, это же экран ПР а не ПК, предлагал же перейдите на плк/спк
Если я правильно понимаю , процессор ПРки 32 битный, из-за этого одна переменная в любом случае занимает 32 бита.
Именно поэтому и возникает коллизия с отображением. Мы складываем 16х регистр в 32х переменную.
Я думаю что и для экранного поля исходно используется также переменная в 32 бита. Поэтому экономии никакой не будет.
Наоборот программа упростится:)
Если я правильно понимаю , процессор ПРки 32 битный, из-за этого одна переменная в любом случае занимает 32 бита.
Именно поэтому и возникает коллизия с отображением. Мы складываем 16х регистр в 32х переменную.
Я думаю что и для экранного поля исходно используется также переменная в 32 бита. Поэтому экономии никакой не будет.
Наоборот программа упростится:)
тогда по Вашей логике поле уже 32разрядное и отображется всё равно не больше 65535. Вам придется признать что переменная сетевого интерфейса привязана к регистру протокола модбас а не к разрядности процессора. Не нравится, вместо плк берите МК и творите что душе угодно
ЗЫ хотя можно и в ОЛ придумывать разные штуки, как на видео, было бы воображение и/или память
Asu$Nick
01.07.2024, 12:52
тогда по Вашей логике поле уже 32разрядное и отображется всё равно не больше 65535.
Совершенно верно. Надо это лимит и убрать, чтобы максималка была всегда
Вам придется признать что переменная сетевого интерфейса привязана к регистру протокола модбас а не к разрядности процессора.
Это вам надо признать , что разрядность сетевой переменной , привязана к разрядности процессора 32х. И в программе она спокойно принимает значения более 65535.
Не нравится, вместо плк берите МК и творите что душе угодно
Мне ПР нравится, хочу им пользоваться и творить на нем!
И в программе она спокойно принимает значения более 65535.
где? Я показал что она обрезается до одного слова, покажите скрином где Вы видели
Asu$Nick
01.07.2024, 13:02
где? Я показал что она обрезается до одного слова, покажите скрином где Вы видели
76966
Счетчик выдает результат в переменную которая привязана к стандартному регистру одинарному.
76966
Счетчик выдает результат в переменную которая привязана к стандартному регистру одинарному.
https://owen.ru/forum/showthread.php?t=12264&p=440674&viewfull=1#post440674 этот пост Вы проигнорировали, скрин и после описание, ну ок
День добрый, хотел бы задать вопрос, при попытке юстировать аналоговый вход ПР200 отправила такой код ошибки. Кто-то сталкивался с такой ошибкой? Если да, то подскажите что можно сделать для устранения ошибки. Заранее спасибо77063
Попробуйте юстировку на других сопротивлениях. скорее всего получается слишком большой коэффициент коррекции.
После появления функционала изображений на экране ПР205 возникло несколько вопросов.
1. Все изображения bmp можно оптимизировать по размерам без потери качества при помощи пакета FileOptimizer. Соотношение размеров при этом 30 кБайт исходного bmp к 2,5 кБайт сжатого оптимизированного. Есть ли смысл перед загрузкой в проект сжимать изображение или внутри оно будет храниться в собственном формате и в итоге сжатие не повлияет на размеры проекта и на другие характеристики вывода (скорость) и заполненности памяти ОЗУ визуализации?
2. Ещё не скачал и не попробовал новую версию OwenLogic - поэтому вопрос - будет ли OwenLogic воспринимать эти оптимизированные файлы (знаю, что не все панели оператора могут их воспринять)?
Не пробовал новую версию, т.к. сейчас завершаю работу над проектом и боюсь ошибок от нововведений, поэтому пользуюсь устойчиво хорошей предпоследней версией, но скоро конечно же обновлюсь.
kondor3000
11.07.2024, 08:26
После появления функционала изображений на экране ПР205 возникло несколько вопросов.
Не пробовал новую версию, т.к. сейчас завершаю работу над проектом и боюсь ошибок от нововведений, поэтому пользуюсь устойчиво хорошей предпоследней версией, но скоро конечно же обновлюсь.
У меня стоит больше 10 версий Лоджика, в том числе последняя, какую надо, такую и открываю. Проекты надо открывать из Лоджика, а не нажатием на проект и нет проблем.
Всё остальное быстрее проверить самому.
После появления функционала изображений на экране ПР205 возникло несколько вопросов.
1. Все изображения bmp можно оптимизировать по размерам без потери качества при помощи пакета FileOptimizer. Соотношение размеров при этом 30 кБайт исходного bmp к 2,5 кБайт сжатого оптимизированного. Есть ли смысл перед загрузкой в проект сжимать изображение или внутри оно будет храниться в собственном формате и в итоге сжатие не повлияет на размеры проекта и на другие характеристики вывода (скорость) и заполненности памяти ОЗУ визуализации?
2. Ещё не скачал и не попробовал новую версию OwenLogic - поэтому вопрос - будет ли OwenLogic воспринимать эти оптимизированные файлы (знаю, что не все панели оператора могут их воспринять)?
Не пробовал новую версию, т.к. сейчас завершаю работу над проектом и боюсь ошибок от нововведений, поэтому пользуюсь устойчиво хорошей предпоследней версией, но скоро конечно же обновлюсь.
2. Лоджик кушает оптимизированный bmp, сама ПРка - х.з.
1. Картинка 100х100 точек из предложенных Овеном - что оптимизированный (3К), что нет (30К) - помещается на экране порядка 70 штук, после чего память заканчивается
2. Лоджик кушает оптимизированный bmp, сама ПРка - х.з.
1. Картинка 100х100 точек из предложенных Овеном - что оптимизированный (3К), что нет (30К) - помещается на экране порядка 70 штук, после чего память заканчивается
Получается, что всё хранится в собственном формате (возможно, совпадающем с существующим), который не использует сжатие.
Т.е. предварительная оптимизация файла бесполезна...
У меня стоит больше 10 версий Лоджика, в том числе последняя
Думаю, это несколько избыточно...
Разве, что возможный поиск ошибки при помощи онлайн отладки вынуждает.
Всё остальное быстрее проверить самому.
Согласен, справедливо.
Но, может, кто-то уже придумал другой способ или систему правил снижения объёмов памяти на элемент, чтобы отодвинуть неизбежную перспективу ограничения по памяти самого нагруженного экрана. Смысл то и неуспешного предложения оптимизации изображения в этом.
Конечно, эксперимент с заменой на мнемосхеме первого экрана десятка линий и нескольких квадратов/кругов на изображение обязательно проведу и посмотрю на поведение ОЗУ (сейчас около 88%).
Получается, что всё хранится в собственном формате (возможно, совпадающем с существующим), который не использует сжатие.
Т.е. предварительная оптимизация файла бесполезна...
...
Возможно просто ограничено количество загруженных картинок?
Тоже интересен результат эксперимента
Возможно просто ограничено количество загруженных картинок?
Тоже интересен результат эксперимента
Сжатие / расжатие - это телодвижения, которые тратят ресурсы микропроцессора и могут влиять на быстродействие отображения картинки. Поэтому, думаю, что все элементы тупо приводятся к картинке в формате bmp в разрешении экрана
Экспорт переменных в cvs файл есть , а ИМПОРТ из него не нашёл , подскажите где искать ! ОЛ - Версия 2.7.350.0
Пока нигдее. Импорт не сделали.
Когда снята галочка "энергонезависимость" в переменной то в отладчике не выводиться её реальное значение , а отображается 0 серым. может поправите или я не так что-то делаю ?
77339
ОЛ Версия 2.7.350.0
Сергей0308
16.07.2024, 16:41
Когда снята галочка "энергонезависимость" в переменной то в отладчике не выводиться её реальное значение , а отображается 0 серым. может поправите или я не так что-то делаю ?
77339
ОЛ Версия 2.7.350.0
Программа должна иметь какой-то смысл, ну там значение подаётся на выход, выведено на экран и т. п., короче, не надо делать что-то абсолютно бессмысленное, в смысле, ОЛ это видит и не симулирует!
Сергей если бы не имела смысла то симулятор просто не запускается ты должен это знать судя по дате регистрации а так на картинке видно что rpio1 имеет значение и оно в каждом цикле увеличивается или уменьшается .
Когда снята галочка "энергонезависимость" в переменной то в отладчике не выводиться её реальное значение , а отображается 0 серым. может поправите или я не так что-то делаю ?
77343
ОЛ Версия 2.7.350.0
дублирую сообщение еще раз.
Кто знает про эту "проблему" прошу ответить.
Когда снята галочка "энергонезависимость" в переменной то в отладчике не выводиться её реальное значение , а отображается 0 серым. может поправите или я не так что-то делаю ?
77343
ОЛ Версия 2.7.350.0
дублирую сообщение еще раз.
Кто знает про эту "проблему" прошу ответить.
У вас на картинке две переменные 'rpio2' с разными значениями - проверьте, может с именами переменных напутали
Когда снята галочка "энергонезависимость" в переменной то в отладчике не выводиться её реальное значение , а отображается 0 серым. может поправите или я не так что-то делаю ?
77343
ОЛ Версия 2.7.350.0
дублирую сообщение еще раз.
Кто знает про эту "проблему" прошу ответить.
Похоже на косяк, причем давний
77344
Нет не перепутал и алгоритм правильно работает , только в панели просмотра при отладке значение не отображается. И если я галочку энергонезависимости с rpio2 на rpio1 переставлю , то будет видно 3 а 5 пропадёт и станет 0 серым , а rpio1 наоборот из серой станет черной.
спасибо , может программисты поправят в будущих релизах , а так просто не очень удобно но не критично.
Не знаю как для давнишних пользователей которые привыкли , а по мне пришедшего с другой системы разработки вот такое определение переменных резануло глаз и хотя разбираться долго не пришлось , но имхо , определение входного и выходного блока переменных нужно поменять местами.
77352
как по мне - помеченным красным блок и есть выходной и нужно ввести ещё ВХОДНОЙ который примет инициализирующее значение но в ОЛ почему-то решили наоборот. у кого какое мнение на этот счет.
Сергей0308
16.07.2024, 22:14
Не знаю как для давнишних пользователей которые привыкли , а по мне пришедшего с другой системы разработки вот такое определение переменных резануло глаз и хотя разбираться долго не пришлось , но имхо , определение входного и выходного блока переменных нужно поменять местами.
77352
как по мне - помеченным красным блок и есть выходной и нужно ввести ещё ВХОДНОЙ который примет инициализирующее значение но в ОЛ почему-то решили наоборот. у кого какое мнение на этот счет.
Всем до лампочки как они чего назвали, главное чтобы правильно работало!
Наверно Вы многого не знаете, например в ОЛ переменные "INT" - беззнаковые!
Я пытался(много лет назад) интересоваться почему не написать "UINT", в смысле, чтобы людей не путать, короче, в ответ кроме грубостей ничего не услышал, типа мы так написали, принимайте как есть, короче, не вижу смысла что-то им писать!
Да меня это сильно удивило , но для булевой арифметики если отрицательное число представлено в допвиде можно всё правильно и складывать и вычитать(для вывода на экран не удобно) . ( типа мы так написали, принимайте как есть, короче, не вижу смысла что-то им писать!) да уж , но как говориться капли камень точат , видел ответ разрабов , что типа планируем в будущем ввести новые типы, значит камень маленько сдвинулся _ надо тюкать дальше.
Иногда для решительного шага в перёд необходимо дать хорошего пинка под зад (не в обиду будет сказано).:))
kaftanati
17.07.2024, 09:54
Косяков в OwenLogic хватает, о некоторых я писал тут - игнорирование со стороны администрации. Наш личный (компании) мененджер все хотел получить обратную связь после внедерения ПР205 в реальные объекты - я ему сразу ворох замечаний и по OwenLogic и по OwenCloud и... еще чего-то. Надеюсь, может через этот канал связи дойдет до разработчиков.
Во вложении список, собранный за последние пару месяцев, кому интересно.
Меня больше всего последний пункт раздражает.
Сергей0308
17.07.2024, 17:13
Косяков в OwenLogic хватает, о некоторых я писал тут - игнорирование со стороны администрации. Наш личный (компании) мененджер все хотел получить обратную связь после внедерения ПР205 в реальные объекты - я ему сразу ворох замечаний и по OwenLogic и по OwenCloud и... еще чего-то. Надеюсь, может через этот канал связи дойдет до разработчиков.
Во вложении список, собранный за последние пару месяцев, кому интересно.
А чего не написали что клеммы проваливаются вовнутрь при смене целевой платформы, если комментарии выступают за холст программы, вроде не раз это обсуждали много лет назад!
К счастью(можно показать), не поправили, в смысле, проверил на последнем проекте, что на форуме выкладывал: https://owen.ru/forum/showthread.php?t=39764&page=2
77381
В смысле, в отличии от большинства выше приведённых косяков, этот косяк является критическим, так как потом уже этот провал поправить не представляется возможным, надеюсь, хотя бы здесь это понимают!
77382
В смысле, в отличии от большинства выше приведённых косяков, этот косяк является критическим, так как потом уже этот провал поправить не представляется возможным, надеюсь, хотя бы здесь это понимают!
Поправить можно, убрав комментарии и сменив целевую платформу. Главное, выбрать такую новую платформу, чтобы размеры холста поменялись
77384
Сергей0308
17.07.2024, 18:56
Поправить можно, убрав комментарии и сменив целевую платформу. Главное, выбрать такую новую платформу, чтобы размеры холста поменялись
77384
Вот убрал комментарии и вернул изначальную целевую платформу:
77386
Короче, у меня не получается, в смысле, может и можно это вернуть взад какими-то изощрёнными способами, но тут уже выбор возникает, что быстрей проект восстановить или поиск каких-то неизвестных изощрённых методов, когда не знаешь что такие существуют!
Короче, мне подсказали прятать комментарии в пределах холста программы, тогда при смене целевой платформы провалов не происходило и сохранить проект можно перед сменной платформы.
kaftanati
18.07.2024, 08:14
А чего не написали что клеммы проваливаются вовнутрь при смене целевой платформы, если комментарии выступают за холст программы, вроде не раз это обсуждали много лет назад!...
А я ни разу с таким не сталкивался. Но кажется сходу понял причину - размещение блока комментариев вне рабочего поля - видите границы отступают от края комментариев в аккурат на ширину клеммы. Программа просто не ожидает ничего за пределами холста кроме клемм.
У меня теперь как привычка при создании проекта добавлять блок комментариев в самый верхний левый угол размером клетку*клетку. чтоб при автоперестроении поля (добавление ноги макроса/обновлении платформы) мои блоки/клеммы не уползали в сторону.
Косяков в OwenLogic хватает, о некоторых я писал тут - .
Хотелось бы так же увидеть возможность сохранять поляну с проектом в картинку.
Если саму поляну еще можно при помощи костылей сохранить, через назначеный принтер Microsoft XPS Document Writer, в файл, то экраны уже ни как...
kondor3000
19.07.2024, 08:35
Хотелось бы так же увидеть возможность сохранять поляну с проектом в картинку.
Если саму поляну еще можно при помощи костылей сохранить, через назначеный принтер Microsoft XPS Document Writer, в файл, то экраны уже ни как...
Если у вас нет простых копировщиков картинок, используйте встроенный PAINT, скрин с экрана в нём можно обрезать до нужного размера.
Использую микро программу FSCapture.exe, можно вырезать любую картинку с экрана, сделать надпись и обвести нужное за несколько секунд.77430
Если у вас нет простых копировщиков картинок, используйте встроенный PAINT, скрин с экрана в нём можно обрезать до нужного размера.
Использую микро программу FSCapture.exe, можно вырезать любую картинку с экрана, сделать надпись и обвести нужное за несколько секунд.
я конечно понимаю, что для вас нет ни какой разницы..
Хотелось бы так же увидеть возможность сохранять поляну с проектом в картинку.
Если саму поляну еще можно при помощи костылей сохранить, через назначеный принтер Microsoft XPS Document Writer, в файл, то экраны уже ни как...
Старая песня...
В виндах есть и встроенные "ножницы" и "набросок на фрагменте экрана".
Так-же можно скачать "LCD Dot" шрифт и рисовать себе любые экраны для инструкций
я конечно понимаю, что для вас нет ни какой разницы..
Расскажите, как на практике используется данная картинка?
для сопроводительной документации
мне довелось однажды столкнуться с ситуацией.
взяв на обслуживание объект понадобилось переделать её работу
и огромная благодарность тому неизвестному герою, который оставил всем вам не нужные картинки с логикой ПР-ки...
он мне сэкономил массу времени и и избавил от кучи не нужных проблем..
для сопроводительной документации
мне довелось однажды столкнуться с ситуацией.
взяв на обслуживание объект понадобилось переделать её работу
и огромная благодарность тому неизвестному герою, который оставил всем вам не нужные картинки с логикой ПР-ки...
он мне сэкономил массу времени и и избавил от кучи не нужных проблем..
Может герой обязан был оставить исходник программы, не не сделал этого?
Не понял - вы по картинке восстановили программу?
Может герой обязан был оставить исходник программы, не не сделал этого?
Не понял - вы по картинке восстановили программу?
написал заново. со своими исправлениями.
благо все понятно было, что и как....
пс
по первой строке смешно..
я тут как то спросил на форуме показать как сделан один модуль
а в ответ - я на это потратил кучу времени и способностей, так что х тебе...
написал заново. со своими исправлениями.
благо все понятно было, что и как....
Если программу можно восстановить по картинке - то почему бы вместе с картинкой не оставить исходник.
Если программу нельзя восстановить по картинке - то зачем нужна эта картинка?
по первой строке смешно..
я тут как то спросил на форуме показать как сделан один модуль
а в ответ - я на это потратил кучу времени и способностей, так что х тебе...
Т.е. картинка этого модуля никак не помогла понять содержание?
Т.е. картинка этого модуля никак не помогла понять содержание?
в этом случае картинки не было.
было восторженное описание как всё это дело замечательно работает.
Если программу можно восстановить по картинке - то почему бы вместе с картинкой не оставить исходник.
Если программу нельзя восстановить по картинке - то зачем нужна эта картинка?
это не ко мне вопрос, почему не оставили исходник
и где искать того человека, который писал программу...
Небольшая опечатка в справке
77496
Тимур Назарбоев
23.07.2024, 08:55
Небольшая опечатка в справке
77496
Добрый день, большое спасибо вам за обратную связь, опечатку исправим.
MAX12360
26.07.2024, 16:23
Есть ли возможность защиты проекта не через ключ-файл, а через например серийный номер прибора, чтобы программа запускалась только на единичном экземпляре прибора при совпадении номеров?
Есть ли возможность защиты проекта не через ключ-файл, а через например серийный номер прибора, чтобы программа запускалась только на единичном экземпляре прибора при совпадении номеров?
А зачем? Программу то все равно не вытащить из прибора
kaftanati
29.07.2024, 15:55
Почему есть ограничение на выбор адреса регистра для опроса стороннего устройства по modbus?
Пример - Ph метр (МАРК 902) с битовыми ячейками по адресам 4096 и далее, а в настройках устройства для команд 01/*02 нельзя указать адрес более чем 4095 - т.е. опросить не получится из-за искусcтвенных ограничений OL.
Королев Кирилл
29.07.2024, 16:36
Почему есть ограничение на выбор адреса регистра для опроса стороннего устройства по modbus?
Пример - Ph метр (МАРК 902) с битовыми ячейками по адресам 4096 и далее, а в настройках устройства для команд 01/*02 нельзя указать адрес более чем 4095 - т.е. опросить не получится из-за искусcтвенных ограничений OL.
Таких ограничений нет. Вам нужно вычислить адрес регистра и указать требуемый бит (см. справку):
77682
kaftanati
29.07.2024, 17:07
Таких ограничений нет. Вам нужно вычислить адрес регистра и указать требуемый бит (см. справку):
77682
Хм... если пользователь что-то делает не так, как задумал разработчик, не всегда виноват пользователь.
Логика понятна, но не оправдывает невозможности просто задать номер бита в абсолютной адресации.
Pavel5698
30.07.2024, 16:35
Хм... если пользователь что-то делает не так, как задумал разработчик, не всегда виноват пользователь.
Логика понятна, но не оправдывает невозможности просто задать номер бита в абсолютной адресации.
Точно также как желание увеличения нативности приложения не оправдывает пользователя, который не может зайти в раздел "Справка" прежде чем задавать вопрос.
Добрый день.
Установлена версия 2.7.353 OWEN Logic. Периодически, при запуске отладки вылетает следующая ошибка:
78036
После нажатия кнопки ОК становятся недоступными практически все кнопки, включая кнопку сохранение проекта.
Подробности ошибки:
2.7.353.0
System.InvalidOperationException: Operation is not valid due to the current state of the object.
at ProgramRelayFBD.InfrastructureLayer.Adapters.MainF ormStates.DefaultMainFormState.ConfigureDocumentsF orSimulation(Form1 form, BaseMainFormState simulateFormState)
at ProgramRelayFBD.InfrastructureLayer.Adapters.MainF ormStates.DefaultMainFormState.TryConfigureDocumen tsForSimulation(Form1 form, BaseMainFormState simulateFormState)
at ProgramRelayFBD.InfrastructureLayer.Adapters.MainF ormStates.DefaultMainFormState.HandleSwitchModeSim ulator(Form1 form)
Помимо меня, с проблемой столкнулись еще несколько моих коллег.
Добрый день.
Установлена версия 2.7.353 OWEN Logic. Периодически, при запуске отладки вылетает следующая ошибка:
78036
После нажатия кнопки ОК становятся недоступными практически все кнопки, включая кнопку сохранение проекта.
Подробности ошибки:
Помимо меня, с проблемой столкнулись еще несколько моих коллег.
Гляньте, возможно, это ваша проблема https://owen.ru/forum/showthread.php?t=38352&p=443504&viewfull=1#post443504
Редактирую комментарий к выходному блоку переменной в окне свойств. Принимает, сохраняет, отражает во всплывающем окне. Иду в таблицу переменных, нахожу искомую переменную, текст комментария остался неизменным (предыдущим). Далее, беру входной блок этой переменной - коммент соответствует таблице переменных. Изменяю комментарий, сохраняю, тест меняется во всех блоках и таблице. Так же, если меняю текст в таблице, он поменяется во всех блоках. Но если действую из под выходного блока, то коммент получается для него индивидуальным и не меняется ни в таблице, ни во входных блоках.
подскажите адрес разрабов куда отослать проект и сохранённую ошибку . В проекте при отладке не возможно добавить переменную для контроля , вылетает по ошибке.
kondor3000
29.08.2024, 13:47
подскажите адрес разрабов куда отослать проект и сохранённую ошибку . В проекте при отладке не возможно добавить переменную для контроля , вылетает по ошибке.
Можете выложить прект здесь или напишите на support@owen.ru
Надеюсь версия Лоджика последняя?
(Можете выложить прект здесь.)
Спасибо , отослал на поддержку , здесь не знаю как прикреплять файлы к сообщению. версия ол последняя 2.7.354.0 , но переводилась с предпоследней не помню номера.
Здравствуйте!
При написаний функций
RealToUdint
условие RealToUdint := lreal_to_udint(in)*10; и последующей попытке симуляций, программа выдает критическую ошибку и не выходит из симуляций блокируя вкладки функций и схемы и дальше ни как.
Вместо Real вписал lreal
Причем lreal подсвечивается оранжевым78456
Здравствуйте!
При написаний функций
RealToUdint
условие RealToUdint := lreal_to_udint(in)*10; и последующей попытке симуляций, программа выдает критическую ошибку и не выходит из симуляций блокируя вкладки функций и схемы и дальше ни как.
Вместо Real вписал lreal
Причем lreal подсвечивается оранжевым78456
ну, не запускайте симуляцию, пока не устраните ошибки
я такое воспроизвести не смог - Лоджик не дает запустить симуляцию, пока не устранишь ошибку. Поэтому, подробнее, что вы делали, а лучше, проект
kondor3000
04.09.2024, 22:33
Причем lreal подсвечивается оранжевым
Где тут ошибаться, скопируйте текст и проверьте 78457
function Real_udint: udint;
var_input
inVar : real;
end_var
Real_udint := real_to_udint(inVar*10);
end_function
Если умножение на 10 вынести за скобки, то из 12.3 получите 120 вместо 123 в примере, на скрине.
Здравствуйте!
При написаний функций
RealToUdint
условие RealToUdint := lreal_to_udint(in)*10; и последующей попытке симуляций, программа выдает критическую ошибку и не выходит из симуляций блокируя вкладки функций и схемы и дальше ни как.
Вместо Real вписал lreal
Причем lreal подсвечивается оранжевым
Это ответ сам себе
Прога на ST используя FB должна была регулировать время цикла выполнения в большую и меньшую стороны (эксперимент).
Используется ИПП120.
При вводе значения по нажатию кнопки SEL значение задержки можно редактировать во 2.й строчке экрана. При увеличении значения , время исполнения цикла тоже увеличивается , а вот при уменьшении , ожидаемого уменьшения времени исполнения не происходит , остаётся как будто ни чего не изменял. Время исполнения цикла в мс. также выводиться во 2.й стоке экрана панели. Если ещё увеличивать то всё получиться , а в обратку ни в какую не хочет. Выводимое на экран значение совпадает с системным временем исполнения программы из менюшки.
Для задержек пробовал циклы for и while , разницы в работе нет. Проект прилагается. Может тут кто подскажет куда копать или в поддержку придётся писать ?
kondor3000
05.09.2024, 13:16
Прога на ST используя FB должна была регулировать время цикла выполнения в большую и меньшую стороны (эксперимент).
Используется ИПП120.
При вводе значения по нажатию кнопки SEL значение задержки можно редактировать во 2.й строчке экрана. При увеличении значения , время исполнения цикла тоже увеличивается , а вот при уменьшении , ожидаемого уменьшения времени исполнения не происходит , остаётся как будто ни чего не изменял. Время исполнения цикла в мс. также выводиться во 2.й стоке экрана панели. Если ещё увеличивать то всё получиться , а в обратку ни в какую не хочет. Выводимое на экран значение совпадает с системным временем исполнения программы из менюшки.
Для задержек пробовал циклы for и while , разницы в работе нет. Проект прилагается. Может тут кто подскажет куда копать или в поддержку придётся писать ?
Это полная фигня, то чем вы занимаетесь и непонимание работы контроллера и цикла.
Не надо пытаться задерживать цикл, наоборот он должен быть как можно меньше, код надо оптимизировать, а все временные задержки делаются на таймере, еcли не нужно выполнять кусок программы, сделайте обход куска по IF...THEN
Лучше бы написали, что вы хотите, вам бы помогли найти правильный подход.
Это полная фигня, то чем вы занимаетесь и непонимание hаботы контроллера и цикла.
Не надо пытаться задерживать цикл, наоборот он должен быть как можно меньше, а все временные задержки делаются на таймерах, еcли не нужно выполнять кусок программы, сделайте обход куска по IF...THEN
Ну вот если вы понимаете работу контроллера и цикла то обьясните почему в + работает задержка , а в - не работает , остальное не интересует от слова ВООБЩЕ !
ЗЫ. на контроллерах других фирм подобное работает без проблем.
в минус не может быть меньше реального цикла, как бы вы не хотели. Увеличивать всегда можно, тем же while в конце программы, но уменьшить неуменьшаемое нельзя.
в минус не может быть меньше реального цикла, как бы вы не хотели. Увеличивать всегда можно, тем же while в конце программы, но уменьшить неуменьшаемое нельзя.
Вы проект смотрели ? там нет ни каких минусов меньше реального цикла , только значение количества итераций цикла может меняться с панели от 0 до UDINT MAX.
Проект не смотрел, надо ОЛ обновлять, не до него. Значит я не понял, про какой цикл вы говорите.
Надо напоминать, что ваш проект сам по себе выполняется всегда в цикле? может здесь проблема?
Вы проект смотрели ? там нет ни каких минусов меньше реального цикла , только значение количества итераций цикла может меняться с панели от 0 до UDINT MAX.
Я вот сейчас смотрю проект. Очень интересно!!!
78467
Как же достали эти криворукие пЕсатели ОЛ..... вот если у вас версии совпадают, почему такая портянка ошибок?
Вот как после этого обновлять ОЛ? как говорится: работает, не трожь.
з.ы. из-за этого и не смотрю проекты, если нет крайней необходимости.
Я вот сейчас смотрю проект. Очень интересно!!!
:confused:
Я вот сейчас смотрю проект. Очень интересно!!!
78467
Скачал свой проект с сайта все норм открывается . У меня ОЛ Версия 2.7.354.0
Скачал свой проект с сайта все норм открывается . У меня ОЛ Версия 2.7.354.0
Я верю Вам. У меня всё открывает без проблем, только Ваш не хочет.
78469
Я верю Вам. У меня всё открывает без проблем, только Ваш не хочет.
78469
но вот у Юрия на два сообщения выше картинка схемы с моего проекта , так что загадка ?
kondor3000
06.09.2024, 07:58
ЗЫ. на контроллерах других фирм подобное работает без проблем.
У вас, имхо, не совсем правильный подход. Не надо тормозить цикл (или разгонять), надо выбрать подходящий прибор для ваших задач. Если вы собираетесь на ПР делать большие проекты, то это ошибка, ПР для малых проектов. Всего 64 сетевых переменных, групповой опрос отсутствует, какие выводы?
Для средних и больших проектов используйте ПЛК110 и ПЛК2хх.
Все эксперименты на ПР с длительностью цикла, даже обсуждать не буду. Это будет срач на 20 станиц, мне жалко времени.
У вас, имхо, не совсем правильный подход. Не надо тормозить цикл (или разгонять), надо выбрать подходящий прибор для ваших задач. Если вы собираетесь на ПР делать большие проекты, то это ошибка, ПР для малых проектов. Всего 64 сетевых переменных, групповой опрос отсутствует, какие выводы?
Для средних и больших проектов используйте ПЛК110 и ПЛК2хх.
Все эксперименты на ПР с длительностью цикла, даже обсуждать не буду. Это будет срач на 20 станиц, мне жалко времени.
Ну коли так , у меня тогда вопрос лично к вам . Вы отвечаете (разрабатываете) ОЛ или ST для ОЛ или может руководитель данной ветки продукта , просто да или нет ?
ЗЫ. если вы обычный пользователь как и я тогда мне ваше время не нужно если не хотите то и не надо и я не ПОНИМАЮ зачем мне это "Это будет срач на 20 станиц". я в туалет здесь не хожу , а какие контроллеры выбрать зависит не от меня , точнее не только от меня но и результатов к каким я приду после теста ИПП120.
iljael Просьба сменить тон. Отвечаю по делу: модель работы OwenLogic взята с модели работы CodeSys 2.3.
Она циклическая, как в CodeSys. С невытесняющей многозадачностью (когда каждой задаче выделяется определённый квант времени работ: программе, обмену по RS, обработке экранов).
Поэтому всё поведение циклов будет работать согласно стандарту МЭК на программирование ПЛК (входы => программа => выходы; описано вот тут в моей статье (https://cs-cs.net/funkciya-fun-i-funkcionalniy-blok-fb-codesys-owenlogic#1)): цикл FOR будет стремиться выполниться за один цикл программы.
Если он сожрёт много ресурсов, то планировщик задач попытается выделить программе больше времени за счёт урезания времени работы с экраном и опросом по RS. Это штатная функция OwenLogic: чем нагруженнее программа, тем больше время её цикла и тем больше тормозит опрос по RS.
Собственно, просьба сменить тон относится к тому, что кой смысл ругаться? У ОВЕНа OwenLogic работает так, как я описал. Если это не устраивает - что нужно? Чтобы ОВЕН переделал ядро? Пожалуйста: эта работа будет стоить денег. Если вы готовы её оплатить - просьба обратиться в ОВЕН официально. Скорее всего к Максиму Денисову, который занимается разработкой OwenLogic.
Если не готовы оплатить - то дальше разговор продолжать смысла не имеет: ОВЕН работает так, как работает.
Я не понял про тон , я задаю вопросы чисто технического характера и ругаться ни с кем не хотел. Вы можете объяснить почему мой "проект" не работает , точнее работает но в одну сторону, сторону увеличения длительности а в сторону уменьшения длительности не работает ?
iljael цикл FOR будет стремиться выполниться за один цикл программы.
Если он сожрёт много ресурсов, то планировщик задач попытается выделить программе больше времени за счёт урезания времени работы с экраном и опросом по RS.
.
Вот вы мне сейчас пытаетесь сказать что цикл for может, по вашим словам ,использовать ДВА ЦИКЛА программы ,или я вас не правильно понял ???
Так и не смог я открыть проект. Но решил попробовать создать FB, который бы выполнял определенное действие с определенной периодичностью.
На входе время в мс, на выходе значение счетчика. У меня как увеличивается частота выполнения так и уменьшается без проблем.
78484
function_block Task1 // Задача 1
var_input
CycleTime : udint;
end_var
var_output
Q : udint;
end_var
var
Tick : SYS.TON;
end_var
Tick(I := true, T := udint_to_time(CycleTime));
if Tick.Q Then
Q := Q + 1; Tick(I := false);
end_if
end_function_block
Может я не вник в суть проблемы?
Скрин экрана это следствие, обратите внимание на то что окна под замком а симуляция не включена. Кроме этого не удавалось удалить ФБ блок из за этого.
Больше не дружу с Lreal f а только с real
))))
iljael Объяснил же: процессорное время ОДНОКРАТНО перераспределяется так, чтобы дать проекту максимум. Обратно НЕ перераспределяется. Так устроен ОВЕН.
Про FOR и два цикла программы - да, не так понял. Такого по МЭКовскому стандарту никогда не может быть.
Денисов Максим Сергеевич
06.09.2024, 15:08
Скрин экрана это следствие, обратите внимание на то что окна под замком а симуляция не включена. Кроме этого не удавалось удалить ФБ блок из за этого.
Больше не дружу с Lreal f а только с real
))))
Этот баг исправим в Owen Logic v2.8
Да вы меня не так поняли , изменяется количество итераций цикла for в большую или меньшую сторону (в зависимости от введенного с панели числа)и из за этого динамически изменяется количество раз сколько код исполниться внутри цикла и соответственно должно меняться время исполнения цикла программы , а не задержка как у вас. В большую изменяется а в меньшую нет , что для меня и не понятно хотя количество циклов реально меняется в обе стороны а вот время выполнения только в одну сторону.
Хотя вот в посту #3746 похоже замаячил свет в конце туннеля.
Объяснил же: процессорное время ОДНОКРАТНО перераспределяется так, чтобы дать проекту максимум. Обратно НЕ перераспределяется. Так устроен ОВЕН.
А вы уверены что только в большую сторону ? вроде замечал что значение времени исполнения цикла меняется правда не на много в обе стороны или мне это показалось , откуда эта уверенность ? Где про это можно прочитать ?
Хотя вот в посту #3746 похоже замаячил свет в конце туннеля. Да.
А теперь, надеюсь, мы получим ответ на вопрос, ЗАЧЕМ это нужно.
Спрашиваю без сарказма: ведь такое "регулирование" времени выполнения программы - это крайне нештатное НАСИЛИЕ над ПРкой.
Которое ещё и будет работать нестабильно. Например, изменит ОВЕН процессор в ПРке. Он станет работать ещё быстрее - и всё замедление рухнет одномоментно (например, как было в DOS'овских программах на Pascal: если их запускать под Windows, то там вылезала ошибка деления на ноль (https://retrocomputing.stackexchange.com/questions/12111/why-did-ms-dos-applications-built-using-turbo-pascal-fail-to-start-with-a-divisi/12112) - по ссылке на английском ОЧЕНЬ поучительная история о том, как задержка Delay была сделана циклом, и он рушился под Windows).
Поэтому информацию - в студию. ЗАЧЕМ? Мы подскажем, как решить по другому.
Где про это можно прочитать ? Только во внутренней документации на OwenLogic (для сотрудников ОВЕНа). Но для этого надо как минимум пойти работать в ОВЕН.
если Sleep (Delay) в секундах, то какая разница, насколько там быстрый процессор?
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot