PDA

Просмотр полной версии : ПР200 ограничение на количество счетчиков, блинкеров, TON, TOF, TP в проекте



ВадимМеханика
19.05.2022, 05:37
Здравствуйте, подскажите есть ли ограничения на количество счетчиков и различных таймеров в проекте?

ПР200-220.5.0(2).0 с двумя ПР-ИП485.
ЭСППЗУ 23%, ПЗУ 12%, ОЗУ 18%, перем 1%, ФБ 0%.

Дело в том что при создании 17 CTN, 1 blink, 2 TP, 3 TON, последний CTN17 не работает как обязан, убираешь любой счетчик другой он работает как часы и в отладке и в железе. Большинство счетчиков связаны с blink периодом 0,4 сек (0.2, 0.2) напрямую либо косвенно, но не все. Среднее время цикла программы 10 мс + не отрабатывают новые добавленные TP, TON, которые с blink вообще не связаны. Приходится мастерить цепи из RS и SR триггеров, которые тоже работают не верно!

К примеру есть SR триггер, которому прилетает тот самый blink с периодом 0,4 сек (0.2, 0.2) на S вход, выход триггера подцеплен к элементам SEL (для обнуления сетевых переменных), с 1-2 переменными работает как надо и в отладке и в железе, начинаешь добавлять больше, например 6 шт., триггер просто дублирует значение с blink. Я понимаю что по хорошему надо добавить TON и "1" к примеру туда завести чтобы сработал с задержкой, но повторюсь что не отрабатывает, поэтому мастерю огород.

Подскажите, возможно ли такое из-за структуры проекта, поэтому не отрабатывает?

Прилагаю схему с SR-RS SEL.

Филоненко Владислав
19.05.2022, 09:01
Это явно не связанно с числом таймеров (коих мало)

ВадимМеханика
19.05.2022, 09:04
Есть предположения почему так может происходить? Особенно глюки с триггерами? Куда мне смотреть чтобы оптимизировать работу?

Dimensy
19.05.2022, 10:55
А как вообще должно работать обнуление сетевых переменных? Сейчас переменные обнуляются при включении питания, но тогда зачем здесь blink?

ВадимМеханика
19.05.2022, 12:15
Потому что ни TON ни TOF ни TP ни CTN при добавлении не работает, blink работает, просто где мне ещё взять время в начальный момент на обнуление? Как бы суть не в этом, а в том что странно работают SR-RS триггеры помимо беды с CTN

melky
19.05.2022, 12:25
Подавать на R_Trig "частоту" и постоянно обнулять переменные это очень интересный ход, непонятно только зачем ?

ВадимМеханика
19.05.2022, 12:58
Потому что по другому почему-то не работает! По-моему я пояснил, читайте пожалуйста внимательнее прежде чем смеяться

Dimensy
19.05.2022, 13:43
Потому что ни TON ни TOF ни TP ни CTN при добавлении не работает, blink работает, просто где мне ещё взять время в начальный момент на обнуление? Как бы суть не в этом, а в том что странно работают SR-RS триггеры помимо беды с CTN

А может тогда так
60732

Сергей0308
19.05.2022, 14:14
А может тогда так
60732

Можно и детектор переднего фронта убрать, короче, типа так сделать:

60733

Dimensy
19.05.2022, 15:06
Можно и детектор переднего фронта убрать, короче, типа так сделать:

60733

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

keysansa
19.05.2022, 15:19
Здравствуйте, подскажите есть ли ограничения на количество счетчиков и различных таймеров в проекте?


Это явно не связанно с числом таймеров (коих мало)

Хорошее такое ограничеие ) Прямо, хоть в документацию вставляй )

игорь68
19.05.2022, 17:30
А вот так будет работать?

Сергей0308
19.05.2022, 19:02
А вот интересно, это баг или фича. С сетевой переменной такой способ в эмуляторе не срабатывает (как в железе не знаю, сейчас нет возможности проверить), а вот если вместо сетевой переменной поставить просто энергонезависимую, то в эмуляторе работает

В симуляторе много чего нельзя, например нельзя проверить энергонезависимость, не компьютер же перезагружать?!

keysansa
19.05.2022, 19:08
В симуляторе много чего нельзя, например нельзя проверить энергонезависимость, не компьютер же перезагружать?!

Как и количество счетчиков/таймеров... В симуляции работает/не работает, на железе не работает/работает.

)))

ВадимМеханика
20.05.2022, 05:23
А вот так будет работать?

Смысл в том что не работают триггеры в нагруженном с моей логикой проекте, то есть огород делается не потому что я не знаю как должно быть и как можно сделать проще, а потому что работает с моей логикой только вот так, почему не отрабатывается триггер не понятно. Либо когда добавляю счетчики CTN, либо TON, TOF, TP они не срабатывают вообще, в эмуляторе, либо в отладке смотришь уже на устройстве на железе - ага на вход CTN есть то 1 то 0, по сути должен считать, на R приходит 0, всё правильно, на R не меняется логика судя по всем схемам впереди, а счёта на выходе нету, и как так? Понятно если отдельно схему делать будет работать.

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

ВадимМеханика
20.05.2022, 05:24
Хорошее такое ограничеие ) Прямо, хоть в документацию вставляй )

Сталкивались с этим? Просто никто внятный ответ так и не дал

ВадимМеханика
20.05.2022, 05:25
А может тогда так
60732

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

Филоненко Владислав
20.05.2022, 09:44
Хорошее такое ограничеие ) Прямо, хоть в документацию вставляй )

Коих мало в данной программе. Вообще все таймеры программые и пока есть ОЗУ - их можно добавлять до 16к штук :)

ВадимМеханика
20.05.2022, 10:26
Коих мало в данной программе. Вообще все таймеры программые и пока есть ОЗУ - их можно добавлять до 16к штук :)

А в чём тогда причина может быть несрабатывания? Вот в режиме отладки на реальном железе не работает, ну и собственно и без режима отладки также не работает, видео прилагаю и ссылку на него -


https://youtu.be/Wz7Jj3hEULY

Dimensy
20.05.2022, 10:28
Покажите вариант где SR триггер дублирует состояние blink

Dimensy
20.05.2022, 10:39
А вот такой вопросик - у вас ведь последняя 1.23.295 версия? А какая 32 или 64 разрядная?

ВадимМеханика
20.05.2022, 10:45
Покажите вариант где SR триггер дублирует состояние blink

Вот тоже видео записал, тут всё видно, только запись в ПР долгая можете отмотать, как бы вариант проверенный, с сервера менял значения а они сбрасывались при работе когда SR -RS триггеры состояния дублировали -


https://youtu.be/g03pHDOukAw

capzap
20.05.2022, 10:50
А в чём тогда причина может быть несрабатывания?

может весь проект покажете, можно создать ситуацию когда и второй счетчик не будет считать 60753

kondor3000
20.05.2022, 10:53
Вот тоже видео записал, тут всё видно, только запись в ПР долгая можете отмотать, как бы вариант проверенный, с сервера менял значения а они сбрасывались при работе когда SR -RS триггеры состояния дублировали -


Чем 10 видосов снимать, лучше один раз прокт выложите, пользы больше будет)

ВадимМеханика
20.05.2022, 11:08
А вот такой вопросик - у вас ведь последняя 1.23.295 версия? А какая 32 или 64 разрядная?

Да верно версия последняя "Версия 1.23.295.0". ПО в ПР200 обновлял до V2.31 уже давно, и переобновлял тоже вроде бы как раз идёт с версией 1.23.295, версия приложения 64-разрядная.

ВадимМеханика
20.05.2022, 11:08
Чем 10 видосов снимать, лучше один раз прокт выложите, пользы больше будет)

выше проект есть

ВадимМеханика
20.05.2022, 11:09
может весь проект покажете, можно создать ситуацию когда и второй счетчик не будет считать 60753

Весь проект выкладывал выше вместе с комментариями, вроде бы тема ещё не сильно большая

ВадимМеханика
20.05.2022, 11:12
......................................

ВадимМеханика
20.05.2022, 11:21
может весь проект покажете, можно создать ситуацию когда и второй счетчик не будет считать 60753

Дело в том, что эта часть схемы работала раньше буквально позавчера, я делал правки в другую часть и теперь не работает, в эту часть схемы я изменений не вносил, она не связана логически с другой схемой кроме как c blink

ВадимМеханика
20.05.2022, 11:22
Да добавил второй счётчик - просто экспериментировал... Всё плохо не помогло

Dimensy
20.05.2022, 14:37
Вот тоже видео записал, тут всё видно, только запись в ПР долгая можете отмотать, как бы вариант проверенный, с сервера менял значения а они сбрасывались при работе когда SR -RS триггеры состояния дублировали -


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

keysansa
22.05.2022, 11:29
Сталкивались с этим? Просто никто внятный ответ так и не дал
Это был сарказм.

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

ВадимМеханика
23.05.2022, 07:28
Ну это явный глюк лоджика - не должны так триггеры работать. А в эмуляции тоже триггеры так себя ведут? Просто я сейчас не могу в железе проверить, а в эмуляторе у меня все нормально отрабатывает - и счетчик считает и триггеры не моргают

В эмуляции так себя не ведут, только в железе

Филоненко Владислав
23.05.2022, 07:54
Вот смотрю я на первый пост в теме, и вижу неподключённые входа. Так не надо делать!

ВадимМеханика
24.05.2022, 10:44
Вот смотрю я на первый пост в теме, и вижу неподключённые входа. Так не надо делать!

Да занулил уже всё, смысловой нагрузки никакой, что так не работает что так, даже проект полностью перерисовал, стало только хуже работать, а насчёт неподключенных входов в общем спорно конечно, это же ведь не в реальной схеме ТТЛ какой-нибудь. Обычно в логике к чему-то подтягивают, и чаще всего к 0.

melky
24.05.2022, 13:20
Когда переменной некуда писаться в ПР то не работает ВСЯ ветвь кода.... Особенность ОЛ, которую уже много раз обсуждали и обсасывали на форуме.

ВадимМеханика
25.05.2022, 04:45
Когда переменной некуда писаться в ПР то не работает ВСЯ ветвь кода.... Особенность ОЛ, которую уже много раз обсуждали и обсасывали на форуме.

Что имеется ввиду? ОЗУ 10% ПЗУ 10% ЭСППЗУ 22% Перем. 1% ФБ 0%. Что значит некуда? Я так понимаю эти параметры мои распространяются на работу всей программы или я чего-то не понимаю?
Поясните пожалуйста.

capzap
25.05.2022, 07:23
Что имеется ввиду? ОЗУ 10% ПЗУ 10% ЭСППЗУ 22% Перем. 1% ФБ 0%. Что значит некуда? Я так понимаю эти параметры мои распространяются на работу всей программы или я чего-то не понимаю?
Поясните пожалуйста.

даже когда переменная куда то пишется не факт что ветка будет работать https://owen.ru/forum/showthread.php?t=36353&p=381437&viewfull=1#post381437 показывал же

ВадимМеханика
27.05.2022, 04:44
даже когда переменная куда то пишется не факт что ветка будет работать https://owen.ru/forum/showthread.php?t=36353&p=381437&viewfull=1#post381437 показывал же

И как с этим бороться?

ВадимМеханика
27.05.2022, 05:43
Выкинул часть с дисплеем и паролем, вроде бы всё заработало как надо, сохранил эту версию, но естественно же хочется с вводом пароля и тому подобным управлением с дисплея, но ладно. Не стал его добавлять, хотел улучшить программу, буквально добавил 2 элемента 4и, вместо бинарного или добавил 3или и пару линий связи, и угадайте, опять начали глючить счетчики и триггеры. Добавок минимум, проблем максимум, причем отвалившиеся части программ находятся в логике очень далеко и влияют практически косвенно, либо вообще не связаны, например счетчик удержания реле на выходе по поступлению управляющего сигнала по RS-485. В общем глючная то ли ПР200 то ли что, как бороться? Логику перелопачивал уже уйму раз. Но причины так и не ясны.

ВадимМеханика
27.05.2022, 05:54
пытался делать в версии 1.22.288 переписывал весь проект - толку 0

ВадимМеханика
27.05.2022, 12:56
если как на скрине то сделать переменную энергонезависимой. В целом совет давали не раз, каждый путь должен чем то заканчиваться, тогда это будет работать
и еще раз, говоря о том что Вы "нащупали" некий предел элементов в программе, сравните с моим https://owen.ru/forum/showthread.php?t=32589&p=324145&viewfull=1#post324145 и работает же

Не могу открыть ваш проект, ошибки типа Microsoft.Runtime, не знаю с чем это связано.6093460934

ВадимМеханика
27.05.2022, 13:15
если как на скрине то сделать переменную энергонезависимой. В целом совет давали не раз, каждый путь должен чем то заканчиваться, тогда это будет работать
и еще раз, говоря о том что Вы "нащупали" некий предел элементов в программе, сравните с моим https://owen.ru/forum/showthread.php?t=32589&p=324145&viewfull=1#post324145 и работает же
Всё нашёл версию в которой открыл. Ну так я же спрашиваю про количество счетчиков или элементов задержки, а не вообще про количество элементов, в вашем проекте нет ни одного счётчика или задержки типа TP TON TOF, одна математика и логические функции, сделанные в другой версии OWL. А ещё у меня камень китайский клон STM32F303 на ПР200, т.е. GD32F303 что-то такое. В общем если предположить что на МК залит RTOS, то процессы задержки по времени и организация счётчиков может отличаться и неудивительно что ваш "Монстр", который меня ничуть не устрашил работает вполне успешно.

ВадимМеханика
27.05.2022, 13:18
если как на скрине то сделать переменную энергонезависимой. В целом совет давали не раз, каждый путь должен чем то заканчиваться, тогда это будет работать
и еще раз, говоря о том что Вы "нащупали" некий предел элементов в программе, сравните с моим https://owen.ru/forum/showthread.php?t=32589&p=324145&viewfull=1#post324145 и работает же
нельзя тут делать энергонезависимую переменную, у меня счётчик, тем более он всё равно с выходом хоть и косвенно связан. Ну просто мол а почему такой же счетчик тогда рядом в том же селекторе считается, а этот нет. Может что скажете про версии различные, бывали ли подобные чудеса с ПР или с изделиями ОВЕН, при переходе проекта на новую версию OWL?

capzap
27.05.2022, 13:46
нельзя тут делать энергонезависимую переменную, у меня счётчик, тем более он всё равно с выходом хоть и косвенно связан. Ну просто мол а почему такой же счетчик тогда рядом в том же селекторе считается, а этот нет. Может что скажете про версии различные, бывали ли подобные чудеса с ПР или с изделиями ОВЕН, при переходе проекта на новую версию OWL?ну ок, такой проект тоже не работает?

ЗЫ в довесок если мало счетчиков было

Dimensy
27.05.2022, 14:20
Всё нашёл версию в которой открыл. Ну так я же спрашиваю про количество счетчиков или элементов задержки, а не вообще про количество элементов, в вашем проекте нет ни одного счётчика или задержки типа TP TON TOF, одна математика и логические функции, сделанные в другой версии OWL. А ещё у меня камень китайский клон STM32F303 на ПР200, т.е. GH32F303 что-то такое. В общем если предположить что на МК залит RTOS, то процессы задержки по времени и организация счётчиков может отличаться и неудивительно что ваш "Монстр", который меня ничуть не устрашил работает вполне успешно.

Вы что, в реле процессор перепаяли?

ВадимМеханика
30.05.2022, 04:59
ну ок, такой проект тоже не работает?

ЗЫ в довесок если мало счетчиков было

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

ВадимМеханика
30.05.2022, 05:01
Вы что, в реле процессор перепаяли?

Когда перемычки менял и модули RS-485 ставил обратил внимание, с чего вы взяли что я что-то перепаивал? Такой с завода проц стоит.

Филоненко Владислав
30.05.2022, 08:32
Всё нашёл версию в которой открыл. Ну так я же спрашиваю про количество счетчиков или элементов задержки, а не вообще про количество элементов, в вашем проекте нет ни одного счётчика или задержки типа TP TON TOF, одна математика и логические функции, сделанные в другой версии OWL. А ещё у меня камень китайский клон STM32F303 на ПР200, т.е. GD32F303 что-то такое. В общем если предположить что на МК залит RTOS, то процессы задержки по времени и организация счётчиков может отличаться и неудивительно что ваш "Монстр", который меня ничуть не устрашил работает вполне успешно.

Работа таймеров не зависит от аппаратного и программного обеспечения лоджика - т.к. они на вход получают системное время (которое везде одинаково) и далее никак с ОС/особенностями аппаратуры не заимодействуют

ВадимМеханика
30.05.2022, 09:53
Работа таймеров не зависит от аппаратного и программного обеспечения лоджика - т.к. они на вход получают системное время (которое везде одинаково) и далее никак с ОС/особенностями аппаратуры не заимодействуют

Тогда в чём причина несработки триггеров и счётчиков в железе может крыться? Есть идеи? Урезал проект, экран выкинул и вроде бы работать стало, грешил на экран и на меню, но при дальнейшей разработке без экрана при добавлении таких элементов как 4и 3или и др. + пару линий задержки на цикл - счётчики или триггеры опять перестают работать нормально, сейчас время исполнения программы 10 мс (может тут причина?). Логики добавил не так много 3-5 блоков типа КЛС, не считая линий задержки конечно, а глючить опять начало.

Филоненко Владислав
30.05.2022, 13:33
Тогда в чём причина несработки триггеров и счётчиков в железе может крыться? Есть идеи? Урезал проект, экран выкинул и вроде бы работать стало, грешил на экран и на меню, но при дальнейшей разработке без экрана при добавлении таких элементов как 4и 3или и др. + пару линий задержки на цикл - счётчики или триггеры опять перестают работать нормально, сейчас время исполнения программы 10 мс (может тут причина?). Логики добавил не так много 3-5 блоков типа КЛС, не считая линий задержки конечно, а глючить опять начало.

Есть вполне успешно работающие программы и с циклом 100 мс. И огроменным числом блоков.
Возможно, ОвенЛоджик запутывается как-то в этих линиях задержки и не может автоматически добавить промежуточную (скрытую от пользователя) переменную для хранения промежуточного результата. Помочь может добавление их вручную.
Или использование вместо них TON/TOF (что более верно с точки зрения удержания стабильного времени вне зависимости от длины программы).

ВадимМеханика
30.05.2022, 13:54
Есть вполне успешно работающие программы и с циклом 100 мс. И огроменным числом блоков.
Возможно, ОвенЛоджик запутывается как-то в этих линиях задержки и не может автоматически добавить промежуточную (скрытую от пользователя) переменную для хранения промежуточного результата. Помочь может добавление их вручную.
Или использование вместо них TON/TOF (что более верно с точки зрения удержания стабильного времени вне зависимости от длины программы).

Стал использовать счётчики как раз потому что начали неотрабатывать TON/TOF, передумаю схему, соберу по-другому, но думаю проблема не уйдёт, может это ещё из-за того что я на st функциональные блоки делаю.

ВадимМеханика
31.05.2022, 11:41
Есть вполне успешно работающие программы и с циклом 100 мс. И огроменным числом блоков.
Возможно, ОвенЛоджик запутывается как-то в этих линиях задержки и не может автоматически добавить промежуточную (скрытую от пользователя) переменную для хранения промежуточного результата. Помочь может добавление их вручную.
Или использование вместо них TON/TOF (что более верно с точки зрения удержания стабильного времени вне зависимости от длины программы).

Добавление промежуточных переменных к сожалению не помогло

Филоненко Владислав
01.06.2022, 10:32
Добавление промежуточных переменных к сожалению не помогло

Долбите в техподдержку. У нас, к сожалению, всё стало маленько забюракратизировано, но некоторая настойчивость поможет дойти до разработчика ОвенЛоджика.

ВадимМеханика
17.06.2022, 08:11
В общем была ещё такая ситуация, залип RS-триггер, перекидываешь выход переменной без связки с логикой - начинает тупить счетчик CTN, в общем беда похоже действительно с компиляцией. У меня были написаны блоки на ST, решил я их всё переписать через макросы, вдруг косяк в них, и о чудо! Больше вроде бы не глючит и проект работает и могу его расширять нормально, опять добавил экран всё работает по логике, не уверен конечно, но беда похоже была в компиляторе при совместной работе в проекте с блоками на ST, ибо функционал блоков какой был - такой и остался, по сути просто перенёс свой код на схему, вот и всё. Это конечно мои предположения, если проект работать как-то ещё не будет, опять тупить или подобные чудеса, отпишусь. А так вроде бы проблема ушла. Счётчики стали наконец-то считать как надо!

ВадимМеханика
25.06.2022, 04:50
Да, все глюки были из-за того, что добавлены блоки ST, скорее всего виноват ОЛ в этом, во всяком случае больше таких глюков не наблюдалось, проект переделывался много раз.