PDA

Просмотр полной версии : Фичи и баги OWEN Logic



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

Dimensy
16.03.2024, 18:30
Добрый день, возможно, что то не то делаю или не в той ветке задаю вопрос, прошу понять. При использовании таймера TP на языке ST в функциональном блоке, таймер не сбрасывается после первой итерации, то есть задаю время задержки включения отключения и подвязываю выход, в симуляции подаю сигнал на разрешение работы таймера, таймер отрабатывает как должен, но в пследующем при повторной подаче разрешающего сигнала, таймер не запускается. Такой проблемы нет если я использею FB блок, я его подключил к тому же разрешающему входу, отрабатывает как надо. Программируемое реле ПР200, в живое железо не заливал, так как в симуляции не могу нормльно проверить.

А показать текст программы религия не позволяет?

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.

Dimensy
17.03.2024, 12:59
Ага))


Я бы так сделал




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 ведет себя таким образом. И ответа после гугления не нашел, надо проверить.

FPavel
17.03.2024, 20:50
При обработке битовой маски в целом числе, полученном по сети, хотел на ST выделить нужные биты оператором AND. Но ST не поддерживает эту операцию - пришлось реализовать получением остатка от деления MOD.

Хотя на FBD выделение по маске оператором AND прекрасно выполняется.

Если это не ограничение согласно стандарту на ST - может быть есть смысл добавить битовые операции над целыми числами?

capzap
17.03.2024, 22:08
При обработке битовой маски в целом числе, полученном по сети, хотел на ST выделить нужные биты оператором AND. Но ST не поддерживает эту операцию - пришлось реализовать получением остатка от деления MOD.

Хотя на FBD выделение по маске оператором AND прекрасно выполняется.

Если это не ограничение согласно стандарту на ST - может быть есть смысл добавить битовые операции над целыми числами?

Чем точка не устраивает?

FPavel
18.03.2024, 06:22
Чем точка не устраивает?
В случае вычислений, например, масштабирование - умножение в целых числах на 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 или просто формулы работать с отдельными битами числа (через точку).

Если стандарт против - попрошу прощения за нелепое предложение.

Sbersh
19.03.2024, 07:59
Добрый день. Не не могу понять почему: есть импорт переменных в csv файл но нет экспорта . Зачем нужен импорт? у меня переезд на другую платформу , fb & st перенес, спасибо помогли. А на список переменных смотрю и плачу .

1exan
19.03.2024, 08:05
Добрый день. Не не могу понять почему: есть импорт переменных в csv файл но нет экспорта . Зачем нужен импорт? у меня переезд на другую платформу , fb & st перенес, спасибо помогли. А на список переменных смотрю и плачу .

Точнее наоборот - экспорт есть, импорта нет

Sbersh
19.03.2024, 08:14
о да , описался ! слезы глаза замутили....:D

Sbersh
19.03.2024, 08:45
А вообще удобно БЫ (в качестве улучшайдинга) : т.к. в fb/fx объявлены все глобальные переменные и их тип - ОбаНа (по нажатию чего нить, например) и они в таблице переменных.

Kotenko
20.03.2024, 13:27
Добрый день. Во время создания fb на st, при переходе на основную схему возникла ошибка (см скрин). В самом фб ошибок 0. Каких то других ошибок тоже не наблюдается. Куда смотреть?
74523

Королев Кирилл
20.03.2024, 13:33
Добрый день. Во время создания fb на st, при переходе на основную схему возникла ошибка (см скрин). В самом фб ошибок 0. Каких то других ошибок тоже не наблюдается. Куда смотреть?
74523

Добрый день!

Присылайте проект на почту.

kondor3000
20.03.2024, 14:26
Добрый день. Во время создания fb на st, при переходе на основную схему возникла ошибка (см скрин). В самом фб ошибок 0. Каких то других ошибок тоже не наблюдается. Куда смотреть?
74523

Значит надо по правой кнопке мыши на ФБ, нажать обновить блок. Или просто удалить ФБ и вставить по новой.

Kotenko
20.03.2024, 15:00
вероятнее всего не при создании, а после внесения правок. Удалить с хоста и вставить по новой должно решить проблему

не помогло.

Kotenko
20.03.2024, 15:00
Значит надо по правой кнопке мыши на ФБ, нажать обновить блок. Или просто удалить ФБ и вставить по новой.

он у меня даже не вставлен в основную схему.

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 блокировало бы работу всей программы.

Cs-Cs
21.03.2024, 10:46
В этом случае Лоджик не прав: 0 должен быть значением по уморлчанию для неинициализированной переменной. И вроде так было всегда: я использую блоки на 4-8 ИЛИ и попрой остаются незанятые входы. Взведение неподключенных в 1 вместо 0 блокировало бы работу всей программы. Ответ неверен. Поведение OwenLogic сделано аналогичным поведению блоков AND и OR в Siemens Logo. Это поведение является ИСКЛЮЧЕНИЕМ для упрощения создания программ на FBD, чтобы не захламлять константами экран:
* Для элементов AND все НЕподключенные входы трактуются как TRUE
* Для элементов OR все НЕподключенные входы трактуются как FALSE
Ещё раз повторяю: это сделано специально, чтобы упросить разработку программ и действует только на эти элементы. Во всех остальных случаях (для других блоков и элементов) неподключенные входы будут равны FALSE.

petera
21.03.2024, 10:47
.. И вроде так было всегда: я использую блоки на 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.
Надо в документации прям прописать....

1exan
21.03.2024, 11:34
Это ужасное поведение, которое нарушает все логики стандартных программ.
Вроде практически во всех языках принято, что если не объявил, то 0.
Надо в документации прям прописать....

Ужасно (и бессмысленно) использовать функции (логические элементы в том числе) с неподключенными входами.
Тот-же кодесис в таком случае даже компилироваться не будет

melky
21.03.2024, 11:40
goranach не путайте языки программирования и интерпритаторы, коим является ОЛ, CodeSys и так далее у других производителей. Там четко все, AND неподключенный 1, иначе он у вас работать не будет. OR неподключенный 0.
В некоторых программируемых реле вообще не существует AND или OR на два входа, то есть абсолютно. начинается с 4-х входов (не помню у кого) и что, вы будете лепить везде константы на поле программы?

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

И скажите в чем нарушение, если у вас блок на 4 входа, а вам нудны только 3 из них ?

kaftanati
21.03.2024, 11:40
Ужасно (и бессмысленно) использовать функции (логические элементы в том числе) с неподключенными входами.
Тот-же кодесис в таком случае даже компилироваться не будет
Есть явная инициализация и неявная. В экономии времени программиста/автоматчика есть смысл, но только при 100% уверенности в повторяемости результата/процесса инициализации/объявления. Но, как говорится, есть нюанс... и недавно обновленный программный пакет меняет поведение или, программист по невнимательности упускает мелочь, которая при отладке просто взрывает мозг.

Потому опытные разработчики думают наперед, обжегшись на таких простых вещах: явно инициализовать все - это правильно и безопасно. Что-то оставлять на стандартное поведение программы - самонадеянно и не 100% повторяемо.

Cs-Cs
21.03.2024, 12:24
начинается с 4-х входов (не помню у кого) и что, вы будете лепить везде константы на поле программы? Как раз на Siemens Logo и начинается.
74569

melky
21.03.2024, 14:29
Cs-Cs вот, точно. Представляю как человек на поле лепит там единички и нолики :)

Sbersh
22.03.2024, 15:29
Здравствуйте, уважаемые разработчики ! Есть возможность усилить хелп в OL в разделе "зарезервированные ключевые слова" ? Ссылки на разъяснения, вариантами использования/примеры (если возможно)?

Денисов Максим Сергеевич
23.03.2024, 13:14
Добрый день, на данный момент в справке описаны все зарезервированные слова и примеры использования конструкций, функциональных блоков и функций. С чем вы столкнулись конкретно, что не описано в справке?

Sbersh
23.03.2024, 16:09
Добрый вечер , Максим Сергеевич . Я вижу в хелпе только лишь таблицу . 74625 Ссылок в ней нет, поиск по хелпу не дает результата ( или просто ссылка на эту же таблицу )
С уважением

Kliper
23.03.2024, 17:57
1. Жутко раздражает постоянное разворачивание Owen Logic на весь экран. К тому же в этом случае низ окна немного вылезает за панель задач и не виден. Просьба сделать запоминание размеров и положения окна на экране! Это элементарно.
2. Не работает изменение размеров окна:
а) если тянуть за нижний левый угол - вообще не работает
б) если тянуть за правый нижний угол, и окно находится на другом мониторе слева. В моем случае у него отрицательные значения местоположения по X. Видимо связано именно с этим.
Win7 64.

Kliper
23.03.2024, 19:48
74635
Почему не работает этот вариант, если переменная привязана к экрану (динамический текст)?

FPavel
23.03.2024, 19:58
Сделайте сброс через таймер TP со временем импульса 0,1 с.

kondor3000
23.03.2024, 21:05
74635
Почему не работает этот вариант, если переменная привязана к экрану (динамический текст)?

Сделайте запись в конце цикла 74637

Kliper
23.03.2024, 21:30
Сделайте запись в конце цикла 74637

Похоже глюки лоджика.
Поставил галку - заработало. Снял - тоже работает.

Dimensy
23.03.2024, 21:32
74635
Почему не работает этот вариант, если переменная привязана к экрану (динамический текст)?

Зачем такие сложности

74638

или, даже так

74639

Kliper
23.03.2024, 21:41
Зачем такие сложности
Это просто пример, который не работает. Верней то работает, то нет.
Всунешь макрос между ними как у вас выше - не работает. Сделаешь на логике попроще - работает. Среда живет своей жизнью. Какие-то траблы на экранных переменных.

Dimensy
23.03.2024, 23:09
Это просто пример, который не работает. Верней то работает, то нет.
Всунешь макрос между ними как у вас выше - не работает. Сделаешь на логике попроще - работает. Среда живет своей жизнью. Какие-то траблы на экранных переменных.

Так что вы хотите получить от экранных переменных?

Kliper
24.03.2024, 10:55
Так что вы хотите получить от экранных переменных?

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

pkl
25.03.2024, 09:21
Добрый день.
Во вложении сообщение об ошибке. Подскажите в чем причина, и что делать?
Версия OL 2.6.347.0.
PS.
Разобрался сам. На одном ПК разделитель дробной части запятая, на другом точка. При открытии на компьютере где разделитель точка ругается на запятую в поле Ввод/вывод INT/Float. После удаления и новой вставки уже с разделителем точка предупреждение пропало. Разработчикам -пожелание чтобы при такой ошибке было указание на местонахождение таких ошибок или сделайте обработку таких ситуаций.

kondor3000
25.03.2024, 09:29
Добрый день.
Во вложении сообщение об ошибке. Подскажите в чем причина, и что делать?
Версия OL 2.6.347.0.

Вы бы лучше проект выложили.

melky
25.03.2024, 09:41
Судя по ошибке неверный формат строки для преобразования во float если читать дальше. Возможно точка или запятая что-то из них не воспринимается при парсинге.

pkl
25.03.2024, 10:06
Так и есть. Заменил запятую на точку и ошибка пропала.

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

Денисов Максим Сергеевич
25.03.2024, 10:30
Так и есть. Заменил запятую на точку и ошибка пропала.
Уточните для какого прибора создан проект, в каком параметре и какое значение было указано?

pkl
25.03.2024, 10:39
ПР200-24.1.X. Редактор экранов параметр Ввод/вывод INT/Float поля ограничения Мин Макс.

kondor3000
25.03.2024, 14:25
ПР200-24.1.X. Редактор экранов параметр Ввод/вывод INT/Float поля ограничения Мин Макс.

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

melky
25.03.2024, 14:31
kondor3000 а какая разница для чего используется float в рамках данной ошибки? Если ввод с цифрового блока клавиатуры лепит запятую в русской культуре ?

pkl
25.03.2024, 16:49
Не проще. В моем случае.

Mishqa
26.03.2024, 15:58
Не знаю может так и должно быть, делаю картинку для пр205,выбираю цвета не из палитры готовой, а через определить цвет,после выбора цвета он не сохраняется в дополнительных, сбрасывается

Денисов Максим Сергеевич
26.03.2024, 16:26
Не знаю может так и должно быть, делаю картинку для пр205,выбираю цвета не из палитры готовой, а через определить цвет,после выбора цвета он не сохраняется в дополнительных, сбрасывается

Данный баг уже исправляем. Исправление выйдет в версии Owen Logic 2.7

Ollema
30.03.2024, 14:43
Ошибку подтверждаю, взяли в работу. Пока рекомендую использовать функцию

Вышла новая версия 347, однако и в ней баг с 31-м битом не исправлен.

Денисов Максим Сергеевич
31.03.2024, 10:50
Вышла новая версия 347, однако и в ней баг с 31-м битом не исправлен.

Фикс данного бага выйдет в 2.6.348

Ollema
31.03.2024, 11:57
Функции тоже ломаются при изменении любого бита в 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 работает исправно

Dimensy
31.03.2024, 21:58
Проверил данный код функции, в версии 2.6 работает исправно

А вы попробуйте подать на вход число от 2 147 483 648 и выше

1exan
01.04.2024, 04:49
Версия 2.6.347.0

запустите, нечего не трогайте, пейте чай.
Как попьете и пойдет очередной круг - поднимите Di1

(Просьба не рассказывать про то как это обойти, не тратьте время. Интересует - почему)
И кто-нить - расскажите как оно на живой железе?

На живой работает и при наличии сигнала и без него

Ollema
01.04.2024, 08:43
Проверил данный код функции, в версии 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

1exan
04.04.2024, 11:38
День добрый! При создание проекта с помощью Мастера тиражирования появляются предупреждения, на сколько они критичны? 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 и всё равно показывает только цифры, а не текст! Какой вообще предел допустимых диапазон цифр и их количество в графическом элементе Динамический текст?!

Sbersh
09.04.2024, 11:01
Добрый день . При попытке поиска в менеджере компонентов вылезает ошибка и фризит окно. только выйти и зайти можно . но поиск приводит к такой же ошибке.


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)

Sbersh
09.04.2024, 16:24
Еще одну багу поймал . Или поясните почему ошибка. При создании четвертой 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
Доброе утро. Вопрос к Овену, а когда хоть наладят доступ к инету в овенлоджик?

Dimensy
11.04.2024, 09:19
Доброе утро. Вопрос к Овену, а когда хоть наладят доступ к инету в овенлоджик?

у меня доступ есть

kondor3000
11.04.2024, 09:25
у меня доступ есть

Речь про расширения, они до сих пор не работают. Скрин выше.

ProRus
11.04.2024, 10:45
Это баг или фича?

Реально задолбался уже...
Что я делаю не так и как это исправить?
https://youtu.be/AR3ryW_te6g

Королев Кирилл
11.04.2024, 10:50
Это баг или фича?

Реально задолбался уже...
Что я делаю не так и как это исправить?
https://youtu.be/AR3ryW_te6g

Пришлите, пожалуйста, Ваш проект через файлообменник мне на почту, проверим.

Bone
11.04.2024, 19:39
Добрый вечер!

Обнаружил, что в ОЛ в онлайн-отладке булевые сетевые переменные могут принимать значения

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.

Bone
11.04.2024, 20:46
Это такая фича, биты обрабатываются как Маска бит в регистре. 75161
Если вы не знали, то например включение 0 и 1 бита - даёт число 3, 7 бита даёт число 128, а всех 16 бит в регистре - число 65535.

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

Bone
11.04.2024, 21:43
Наверно, неплохо было бы в код ОЛ добавить кусок, выполняющий функцию такого макроса:
75164
Тогда и состояния дискретных выходов в онлайн-отладке отображались бы корректно.
Да и как-то неожиданно было обнаружить в булевых переменных что-либо, отличное от нуля и единицы...

Сергей0308
11.04.2024, 22:25
Наверно, неплохо было бы в код ОЛ добавить кусок, выполняющий функцию такого макроса:
75164
Тогда и состояния дискретных выходов в онлайн-отладке отображались бы корректно.
Да и как-то неожиданно было обнаружить в булевых переменных что-либо, отличное от нуля и единицы...

Нескромный вопрос, где Вы видите в булевых переменных, что-то отличное от нуля и единицы?
На ваших картинках такого нет!
Короче, надо хотя бы представить ваши фантазии, в смысле, сделайте скриншот или по памяти нарисуйте, а то непонятно, в смысле, Вы что-то утверждаете, но на представленных вами картинках такого нет! Сами себя опровергаете!

Bone
11.04.2024, 22:57
Нескромный вопрос, где Вы видите в булевых переменных, что-то отличное от нуля и единицы?
На ваших картинках такого нет!
Короче, надо хотя бы представить ваши фантазии, в смысле, сделайте скриншот или по памяти нарисуйте, а то непонятно, в смысле, Вы что-то утверждаете, но на представленных вами картинках такого нет! Сами себя опровергаете!

:confused::confused::confused::eek:
https://owen.ru/forum/showthread.php?t=12264&page=358&p=434968&viewfull=1#post434968

Bone
11.04.2024, 23:00
Нескромный вопрос, где Вы видите в булевых переменных, что-то отличное от нуля и единицы?
На ваших картинках такого нет!
Короче, надо хотя бы представить ваши фантазии, в смысле, сделайте скриншот или по памяти нарисуйте, а то непонятно, в смысле, Вы что-то утверждаете, но на представленных вами картинках такого нет! Сами себя опровергаете!

Что это было???

petera
12.04.2024, 02:23
Добрый вечер!

Обнаружил, что в ОЛ в онлайн-отладке булевые сетевые переменные могут принимать значения

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

Из этого следует, что мастер ПР читает не одиночные биты регистра, а сразу целыми байтами(что мы видим на экране отладки в сетевой переменной), а для результата берет только один заданный бит

Bone
15.04.2024, 10:14
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.

1exan
23.04.2024, 19:17
Дело в том, что даже не открывая программу, а только запустив 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. Попробую режим оффлайн, по результатам напишу.

RV9WFJ
24.04.2024, 06:29
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
Это давнишняя проблема - просто переключитесь в офлайн (в правой стороне строки состояния)

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

Ollema
02.05.2024, 01:00
Я обычно делаю portable версию Лоджика и использую ее без установки на домашнем компе, на рабочем или на ноуте.

Алексеев
06.05.2024, 10:39
Можете мне объяснить . На объекте всё работает , а в симуляторе выдаёт предупреждение . перевел проект в ОЛ 2.6 думал БАГ . попробовал включить симуляцию в ОЛ 1.22 . тоже самое .
Что это означает , проект большой . Невалидная переменная 75582 может это фича ??????

Денисов Максим Сергеевич
06.05.2024, 11:26
Можете мне объяснить . На объекте всё работает , а в симуляторе выдаёт предупреждение . перевел проект в ОЛ 2.6 думал БАГ . попробовал включить симуляцию в ОЛ 1.22 . тоже самое .
Что это означает , проект большой . Невалидная переменная 75582 может это фича ??????

Выложите проект здесь или пришлите нам на почту soft@owen.ru

Dimensy
06.05.2024, 15:43
Заметил изменения между двумя ОЛ 1.22 и 2.6 В проекте 75592 № , а реально 75593 -- это так должно быть ?????
Это проблема в ЖК индикаторе ??????

Из инструкции на ПР200
75594

Алексеев
06.05.2024, 16:31
Спасибо вопрос снят . Значит раньше не обращал внимание .