PDA

Просмотр полной версии : разные вопросы новичка



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

Sulfur
13.01.2020, 09:08
Вопрос
Есть ли готовые макросы рампы для ПР200? Мне нужно, что бы после скачкообразного изменения значения аналоговой real-переменной после рампы значение менялось плавно в течении установленного времени.

Сергей0308
13.01.2020, 09:41
Вопрос
Есть ли готовые макросы рампы для ПР200? Мне нужно, что бы после скачкообразного изменения значения аналоговой real-переменной после рампы значение менялось плавно в течении установленного времени.

Мне кажется, в менеджере компонентов есть нечто подобное, у меня из готовых только ограничение скорости изменения параметра, выкладывал на форуме неоднократно, темы не припомню!

Алексей Геннадьевич
13.01.2020, 09:45
Вопрос
Есть ли готовые макросы рампы для ПР200? Мне нужно, что бы после скачкообразного изменения значения аналоговой real-переменной после рампы значение менялось плавно в течении установленного времени.
Есть. Держите.

Sulfur
13.01.2020, 10:22
Алексей Геннадьевич
Спасибо большое.
Однако это вероятно не то что мне нужно. Мне нужно один аналоговый вход, вход уставки скорости рампы, и один аналоговый выход. Т. е. такой "сглаживающий фильтр" с регулируемой характеристикой. Вопрос не срочный, может сам что накропаю.

Сергей0308
13.01.2020, 12:31
Алексей Геннадьевич
Спасибо большое.
Однако это вероятно не то что мне нужно. Мне нужно один аналоговый вход, вход уставки скорости рампы, и один аналоговый выход. Т. е. такой "сглаживающий фильтр" с регулируемой характеристикой. Вопрос не срочный, может сам что накропаю.

Вот здесь посмотрите в постах 56, 59: https://owen.ru/forum/showthread.php?t=32153&page=6
Только повторю, там не время перехода задаётся, как Вы хотели, а скорость изменения параметра, если она более заданной то ограничивается до заданной:

46651

syrman
15.01.2020, 15:01
Доброго времени суток. Пытаюсь программировать пр200. Столкнулся с проблеммой при обкатке проги на ходу. 4 аналоговых входа, подключил ТС Pt100. При включении питания температура показывает, меняется всё ok. При симуляции обрыва значения падают в 0.00, а вот при восстановлении связи значения не восстанавливаются. Как это исправить? Значения меняются в состояние на входах.

Сергей0308
15.01.2020, 15:10
Как вариант: применить нормирующий преобразователь встроенный в датчик или отдельный: https://owen.ru/product/npt

syrman
15.01.2020, 15:35
То бишь сверху пристроить преобразователь 4-20?

syrman
15.01.2020, 15:38
Как это поможет восстановлению значений на экранеПР200?

melky
15.01.2020, 15:49
syrman это вроде косяк макроса, возможно есть переделанный. По этому в 4-20 поможет

syrman
15.01.2020, 15:55
А в эмуляции проекта показания идут как положено, даже после имитации обрыва. А если косяк то в чем именно он выражается? Перестает подавать показания с макроса после обрыва и восстановления? У меня процесс завязан на температуру и при обрыве выходит на циркуляцию а после восстановления продолжается. Теперь после обрыва весь процесс с сначала начинать?

Сергей0308
15.01.2020, 16:01
Тогда макрос преобразования сопротивления в температуру будет не нужен, для симуляции работы программы хватит, но я бы так и сделал и в железе! Плюсы, надеюсь, сами найдёте!
Короче, ищите исправленную версию макроса преобразования и потом не говорите, что я Вам не советовал!

syrman
15.01.2020, 16:15
Спасибо за совет.
Просто думал может кто из профи сталкивался с данным багом и знает как его легко пофиксить.

Сергей0308
15.01.2020, 16:31
Спасибо за совет.
Просто думал может кто из профи сталкивался с данным багом и знает как его легко пофиксить.

А Вы давно этот макрос из менеджера компонентов скачивали? Может сейчас уже поправили?

syrman
15.01.2020, 16:32
https://owen.ru/forum/showthread.php?t=25067&page=38&p=319720&viewfull=1#post319720
Похоже вот и ответ.

syrman
15.01.2020, 16:32
Месяц назад.

nickbeljaev
22.01.2020, 18:25
Добрый день. Заблудился в трех соснах, прошу подсказать. Как реализовать изменение значения целочисленной переменной в зависимости от того, какой из трех входов активен. Например при входе I1 значение 0, при I2 - 1, I3 - 2.

Видимо через тернарный SEL

ВалераМ
23.01.2020, 07:02
Всем здравствуйте! Не могу наладить связь с ПЛК 160 и ПЛК 100 (со 110 проблем нет), через преобразователь MOXA к порту RS232 подключаюсь, Кодесис не конектится, как только ресетну ПЛК и прослушаю через Терминал, связь появляется, всё прекрасно работает. Что за безобразие, кто подскажет?

Сергей0308
23.01.2020, 12:22
Всем здравствуйте! Не могу наладить связь с ПЛК 160 и ПЛК 100 (со 110 проблем нет), через преобразователь MOXA к порту RS232 подключаюсь, Кодесис не конектится, как только ресетну ПЛК и прослушаю через Терминал, связь появляется, всё прекрасно работает. Что за безобразие, кто подскажет?

Вероятно Вы к RS-232 Debug подключаетесь и этот интерфейс не горячего подключения, наверно пытаетесь ПЛК спалить?!
И есть более подходящие темы на форуме для подобных вопросов!

farikpwnz
26.01.2020, 11:56
Все сделал,спасибо

rovki
26.01.2020, 12:01
Народ помогите с алгоритмом,не могу понять с кнопкой как сделать.
Все сделал кроме, кнопок менее 1 секунды включается одна программа, и более 1 секунды другая программа
Именно выбором алгоритма
Спасибо большое! 46871

Программа она всегда одна ,как и проект в ПР ...

farikpwnz
26.01.2020, 12:06
Программа она всегда одна ,как и проект в ПР ...

Ну это понятно

farikpwnz
26.01.2020, 12:18
все получается

Newcomer
04.02.2020, 12:34
Добрый день.

В режиме Slave сетевые переменные не поддерживают булевский тип данных. Однако в Таблица 6.2 – Регистры, доступные по протоколу Modbus видно (см.картинку) что ПР200 может писать и читать по сети битовые переменные. В связи с этим предположение - если Master сети будет писать в ПР200 булеву переменную с адресом 0, то вероятно эта переменная будет записана в нулевой бит регистр с адресом 512. Булева переменная с адресом 1 будет записана в первый бит регистра 512 и т.д. Правильно ли я думаю ?

petera
04.02.2020, 13:07
Добрый день.

В режиме Slave сетевые переменные не поддерживают булевский тип данных. Однако в Таблица 6.2 – Регистры, доступные по протоколу Modbus видно (см.картинку) что ПР200 может писать и читать по сети битовые переменные. В связи с этим предположение - если Master сети будет писать в ПР200 булеву переменную с адресом 0, то вероятно эта переменная будет записана в нулевой бит регистр с адресом 8192. Булева переменная с адресом 1 будет записана в первый бит регистра 8192 и т.д. Правильно ли я думаю ?

Правильно
См. примеры обмена битовыми переменными https://owen.ru/forum/showthread.php?t=32194

borovvitalij5
09.02.2020, 10:55
Добрый день.
Есть мешалка с 3-х скоростным мотором.Скорости меняются одна за одной, для каждой стоит свой таймер. Будет использоваться 3 рецепта с разными уставками времени и возможностью их менять с панели оператора. Как реализовать замену уставок времени в зависимости от рецепта? Первая программа, не могу никак сообразить:') 47194

rovki
09.02.2020, 13:03
Добрый день.
Есть мешалка с 3-х скоростным мотором.Скорости меняются одна за одной, для каждой стоит свой таймер. Будет использоваться 3 рецепта с разными уставками времени и возможностью их менять с панели оператора. Как реализовать замену уставок времени в зависимости от рецепта? Первая программа, не могу никак сообразить:') 47194

Используйте SEL

Сергей0308
09.02.2020, 13:03
Добрый день.
Есть мешалка с 3-х скоростным мотором.Скорости меняются одна за одной, для каждой стоит свой таймер. Будет использоваться 3 рецепта с разными уставками времени и возможностью их менять с панели оператора. Как реализовать замену уставок времени в зависимости от рецепта? Первая программа, не могу никак сообразить:') 47194

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

47196

47197

borovvitalij5
09.02.2020, 22:11
Спасибо, разобрался. Не додумался мультиплексор использовать.

Garry777
10.02.2020, 08:42
Добрый день , есть 4 группы светильников. Подскажите как выключить их все одним выключателем (кнопка) который подключен к I5, уходя с объекта?
Спасибо.

4720547206

Сергей0308
10.02.2020, 09:21
Добрый день , есть 4 группы светильников. Подскажите как выключить их все одним выключателем (кнопка) который подключен к I5, уходя с объекта?
Спасибо.

4720547206

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

https://owen.ru/forum/showthread.php?t=32290&highlight=%D2-%F2%F0%E8%E3%E3%E5%F0

Newcomer
12.02.2020, 13:25
Добрый день.

Взведется ли триггер в заданное время. Будет ли это работать в симуляторе ?

игорь68
12.02.2020, 13:35
Так включите режим симуляции и увидите.

petera
12.02.2020, 13:40
Добрый день.

Взведется ли триггер в заданное время. Будет ли это работать в симуляторе ?

Линии задержки от констант на входы Часы.Off и Минуты.Off - бессмыслица полная, т.к. линия задержки работает только на один цикл выполнения программы
А значит в первый цикл после включения программы Часы.Off = 0 и Минуты.Off =0, а затем НАВСЕГДА Часы.Off = 13 и Минуты.Off =17
и равны часам и минутам включения.

Сергей0308
12.02.2020, 13:40
Для симуляции время можно настраивать(менять)!

dan75
12.02.2020, 14:03
Добрый день.

Взведется ли триггер в заданное время. Будет ли это работать в симуляторе ?

Хотите узнать, взведётся ли триггер за один цикл? Должен взвестись, и в симуляторе тоже. Только задержка на цикл так не делается, petera объяснил почему.

Newcomer
12.02.2020, 14:22
А так триггер взведется ? В симуляторе этот макрос не работает и проверить его я не могу.

VladGC
12.02.2020, 14:56
Добрый день!

Не могу понять, как добавить группу в группы экранов?

mihatin
12.02.2020, 15:13
Добрый день!
Подскажите пожалуйста как мне передать переменными уставки в счетчик и таймер. Это макрос.

VladGC
12.02.2020, 15:31
Добрый день!
Подскажите пожалуйста как мне передать переменными уставки в счетчик и таймер. Это макрос.

Надо выбрать "write to fb" затем на панели со свойствами выбрать нужный ФБ и параметр

47257

если передавать через "write to fb" то надо учитывать что там время в мс, несмотря что в свойствах блока выставлено что то иное

47259

mihatin
12.02.2020, 16:20
У меня выбирается только таймер , а счетчик нет.

VladGC
12.02.2020, 16:25
У меня выбирается только таймер , а счетчик нет.

В CTU не выбирается, а в CTN да, поставьте его. не знаю почему так :)
Вроде в справке было примечание такое

mihatin
12.02.2020, 16:26
Спасибо большое!

игорь68
12.02.2020, 19:08
Можно добавить только экран. Группу экраном добавит нельзя.

игорь68
12.02.2020, 19:28
[QUOTE=mihatin;325864]Добрый день!
Подскажите пожалуйста как мне передать переменными уставки в счетчик и таймер. Это макрос.
примерно так.

dan75
12.02.2020, 19:59
У меня выбирается только таймер , а счетчик нет.

А, ну да, точно. В CTU невозможно поменять уставку. Я в таких случаях лепил свой счётчик в виде макроса.

bayk
13.02.2020, 00:03
Добрый день!

Не могу понять, как добавить группу в группы экранов?
Никак. Этот функционал до сих пор не реализован.

Юрий Н
13.02.2020, 08:41
Добрый день!

Не могу понять, как добавить группу в группы экранов?

А зачем ?

игорь68
13.02.2020, 08:46
Видимо для того что бы интегрировать дерево экранов в проект

Юрий Н
13.02.2020, 09:04
Так в самой группе можно настроить переходы к группам. Сколько угодно.

VladGC
13.02.2020, 09:43
Так в самой группе можно настроить переходы к группам. Сколько угодно.

Вот так ?

47273

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

mihatin
13.02.2020, 16:51
Добрый день!
Подскажите как записать данные с экрана пр200 в переменные, что бы они сохранились и были использованы при последующем включении.

VladGC
13.02.2020, 21:18
Добрый день!
Подскажите как записать данные с экрана пр200 в переменные, что бы они сохранились и были использованы при последующем включении.

Надо поставить галочку «энергонезависимая» в свойствах это переменной

mihatin
13.02.2020, 21:30
В симуляторе после остановки переменные сбрасываются на умолчания, а нужно что бы осталось последнее введенное значение.

VladGC
14.02.2020, 07:07
В симуляторе после остановки переменные сбрасываются на умолчания, а нужно что бы осталось последнее введенное значение.
Вот из справки:

Режим симуляции работает по следующим правилам:
• программа (вкладка Схема) и макросы моделируются по отдельности;
• работа блоков, не имеющих связи ни с одним из выходов прибора или выходным блоком сетевой переменной, не симулируется;
• симуляция не будет работать для энергозависимых и некорректно привязанных переменных.
То есть для энергонезависимых переменных есть ограничения.
Да и вообще лучше сразу забить на симулятор, в симуляторе всякие штуки с таймерами, по крайней мере у меня, работают совсем не так как на ПР.

mihatin
14.02.2020, 08:17
Значит, если я правильно понял, введенные с экрана пр200 энергонезависимые переменные при повторном включении не будут сбрасываться на по умолчанию? Самого прибора нет и реально проверить не могу.

VladGC
14.02.2020, 08:41
Значит, если я правильно понял, введенные с экрана пр200 энергонезависимые переменные при повторном включении не будут сбрасываться на по умолчанию?
Да, с экрана сохранятся.
Только надо помнить, что при повторной загрузке проекта в ПР, значения будут взяты из "по умолчанию"

dan75
14.02.2020, 09:39
В симуляторе после остановки переменные сбрасываются на умолчания, а нужно что бы осталось последнее введенное значение.

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

mihatin
14.02.2020, 09:51
Спасибо за объяснение!!!

Newcomer
18.02.2020, 12:43
Добрый день.

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

Newcomer
18.02.2020, 13:05
Боитесь заглянуть внутрь макроса?

Может поясните зачем мне туда заглядывать. Я использую макрос из онлайн базы. Среда явно выдает абсурдное сообщение. Тут разработчикам среды и макроса надо думать.

Lukas
18.02.2020, 13:48
Может поясните зачем мне туда заглядывать. Я использую макрос из онлайн базы. Среда явно выдает абсурдное сообщение. Тут разработчикам среды и макроса надо думать.

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

Newcomer
18.02.2020, 14:05
Если освободить один выход макроса, то все нормально. Налицо явный косяк.

Lukas
18.02.2020, 14:43
Если освободить один выход макроса, то все нормально. Налицо явный косяк.

Ну, если Вы освободите выход макроса, тогда можно и сам макрос убрать)).

Newcomer
18.02.2020, 16:15
Ну, если Вы освободите выход макроса, тогда можно и сам макрос убрать)).

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

alexx751
18.02.2020, 17:20
А оператор SEL в симуляции работает? Что-то у меня не получается.

Lukas
18.02.2020, 18:03
А куда же вдруг делась проблема с циклической связью в макросе ? Получается все со связями в макросе в порядке.
Не забивайте себе голову, вот Вам макрос не в "желтом"

Newcomer
18.02.2020, 18:25
Не забивайте себе голову, вот Вам макрос не в "желтом"

И что вы там сделали ?

Lukas
18.02.2020, 18:27
А оператор SEL в симуляции работает? Что-то у меня не получается.

Работает. Может выходную переменную никуда не привязал. Выведи ее хоть на экран, или в свойствах сделай э/независимой.

Lukas
18.02.2020, 18:32
И что вы там сделали ?

Ровно то, что предлагал Вам в п.1320)

Newcomer
18.02.2020, 18:36
Жёлтый это не проблема, а предупреждение. А то что перестало подсвечивать, так потому что не контролируются элементыформирующие выход который не используется

Нет, не подсвечивается.

alexx751
18.02.2020, 18:53
Работает. Может выходную переменную никуда не привязал. Выведи ее хоть на экран, или в свойствах сделай э/независимой.
Спасибо. Даже мысли не было что энергонезависимость играет роль. Мне она кстати совсем не нужна - надо будет при включении обнулять.

Newcomer
18.02.2020, 19:03
Ровно то, что предлагал Вам в п.1320)

И правильно температуру будет показывать ?

Lukas
18.02.2020, 19:33
И правильно температуру будет показывать ?

Правильно.В симуляторе разве нельзя проверить?

Lukas
18.02.2020, 19:34
Спасибо. Даже мысли не было что энергонезависимость играет роль. Мне она кстати совсем не нужна - надо будет при включении обнулять.

Если не нужна, убрать после проверки в симуляторе.

Сергей0308
18.02.2020, 19:52
Спасибо. Даже мысли не было что энергонезависимость играет роль. Мне она кстати совсем не нужна - надо будет при включении обнулять.

Зачем обнулять выходную переменную? И работа в железе никак не изменится от того энергонезависима эта переменная или нет, она же привязана в выходу макроса! Какие-то неадекватные желания!

alexx751
18.02.2020, 20:16
Сергей0308, ну по ПР-кам опыта нет вообще. Да и тема соответствующая:). И железа пока нет.
Так и не понял почему в симуляторе надо делать так, а в железе по другому. Приму это как данность.

Lukas
18.02.2020, 20:32
Зачем обнулять выходную переменную? И работа в железе никак не изменится от того энергонезависима эта переменная или нет, она же привязана в выходу макроса! Какие-то неадекватные желания!

В данном примере без разницы э/н переменная или нет. В других случаях это важно. Привыкать объявлять или нет переменную э.н. нужно так сказать "рождения")).

IVM
19.02.2020, 12:34
Не забивайте себе голову, вот Вам макрос не в "желтом"

Зачем вы вход Rпровода макроса подключили к аналоговому входу ПР ? Вход Rпровода достаточно подключить к блоку константы. Еще более непонятно зачем выход t,°C макроса подключен к аналоговому выходу ПР.

Lukas
19.02.2020, 13:35
[QUOTE=IVM;326475]Зачем вы вход Rпровода макроса подключили к аналоговому входу ПР ? Вход Rпровода достаточно подключить к блоку константы. Еще более непонятно зачем выход t,°C макроса подключен к аналоговому выходу ПР.[/QUO

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

IVM
19.02.2020, 13:48
Это просто пример макроса. Как макрос использовать далее,человек решит сам. Неужели вы считаете что кто то будет грузить это в ПР?

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

melky
19.02.2020, 13:49
IVM это все из-за того, что эмуляция не работает без связей, и как их человек сделает для проверки монописуально...

capzap
19.02.2020, 14:04
без связей ни как, только если внутри макроса проверять симуляцию

Lukas
19.02.2020, 15:41
Я конечно грузить не буду, но примеры надо корректные выкладывать.

Я выложил МАКРОС из базы. Вам не нравится что я не стал создавать переменные? Зачем? Человек просто 1 раз поигрался с ним в симуляции, а затем забрал его в другой проект. Или вообще удалил, если он ему не нравится. Вы мне еще расскажите что входа прибора в примере не правильно настроены).

игорь68
19.02.2020, 23:49
IVM. Просто некоторы макросы что есть в базе сделаны до того как был переработан механизм обратных связей. И с новой версией ОЛ на некоторых "старых"макросам выскакивает сообщение о обратной связи. Те кто давно уже привыкли поэтому открывают макрос и меняют связь. Желтезна пропадает. И пользуемся этим макросом дальше в своих проекта без "желтезны". РS Почему Овен не поправили макросы-я не знаю.

Ревака Юрий
20.02.2020, 12:01
IVM. Просто некоторы макросы что есть в базе сделаны до того как был переработан механизм обратных связей. И с новой версией ОЛ на некоторых "старых"макросам выскакивает сообщение о обратной связи. Те кто давно уже привыкли поэтому открывают макрос и меняют связь. Желтезна пропадает. И пользуемся этим макросом дальше в своих проекта без "желтезны". РS Почему Овен не поправили макросы-я не знаю.

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

Сергей0308
20.02.2020, 18:41
Пересохранить сейчас все макросы, значит автоматом ограничить их открытие в более ранних версиях,

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

ultraviolet
21.02.2020, 09:05
Здравствуйте. Подскажите, пожалуйста, можно ли в OWEN Logic реализовать однократное присвоение значения переменной? Например, по переднему фронту сигнала. Детектор переднего фронта RTRIG вижу, а как сделать присвоение значения по его сигналу? Может быть есть какой-то аналог блока MOVE из CodeSys?

ultraviolet
21.02.2020, 09:24
Узрите SEL c обратной связью на средний вход

Это, конечно, замечательно, но при его использовании среда выдаёт пугающее предупреждение "обнаружены циклические связи".
Узрев такое можно подумать, что подход неправильный. Надо ли каким-то образом в данном случае менять её на некие линии задержки, о которых невзначай упоминает среда?

stanislau
22.02.2020, 12:29
Такой вопрос. Int в OL 32 битный же? Это UInt? Просто если в скаде указать, что инт 32 бита, то получается ерунда какя-то. Но, если указать 16 бит, то все нормально отображается.

dan75
22.02.2020, 13:33
Такой вопрос. Int в OL 32 битный же? Это UInt? Просто если в скаде указать, что инт 32 бита, то получается ерунда какя-то. Но, если указать 16 бит, то все нормально отображается.

Внутренние переменные 32х-битные, а сетевые -- 16ти-битные, вроде. Это когда ПР в режиме slave. Когда он master, количество регистров в целочисленной переменной можно выбирать в её свойствах.

melky
22.02.2020, 13:38
stanislau вам нужно разложить внутреннюю переменную ОЛ на 2 регистра, и считать в Scada как 2-х регистровую, тогда вы получите желаемое.

stanislau
24.02.2020, 13:14
А можно "склеить" 24 целочисленные переменные в одну-две чтобы по сети меньше передавать? Переменная меняет значение от 0 до 3.

dan75
24.02.2020, 16:04
А можно "склеить" 24 целочисленные переменные в одну-две чтобы по сети меньше передавать? Переменная меняет значение от 0 до 3.
В одну-две не получится. Минимум в 3. В регистре 16 бит, для передачи чисел 0-3 надо 2 бита. 2Х24/16=3.

stanislau
24.02.2020, 22:33
Да, Вы же писали, что по сети 16бит инт, а я опять про 32бита:rolleyes:
Но паковать как?

Сергей0308
24.02.2020, 23:01
Вот пример, как я упаковывал-распаковывал 4 переменные диапазона 0-255 в одну 32 битную переменную, по аналогии можно упаковать восемь 2-х битных переменных в одну 16-ти битную или 16 переменных в одну 32-х битную переменную!
Короче, здесь глаза разбегаются от вариантов:

47584

47585

stanislau
24.02.2020, 23:09
OK, спасибо. Завтра буду разбираться.

Сергей0308
24.02.2020, 23:31
OK, спасибо. Завтра буду разбираться.

Это один из вариантов, не самый простой, вот ещё один вариант, попроще:

47586

47587

stanislau
25.02.2020, 12:29
Т.е. для моих двух бит будет достаточно вот этого?

Сергей0308
25.02.2020, 12:58
Т.е. для моих двух бит будет достаточно вот этого?

Если Вы хотите сделать универсальный макрос для упаковки-распаковки двухбитных переменных(диапазона 0-3) в одну 16(32)-битную переменную, то ещё необходимо в свойства макроса добавить номера извлекаемых-вставляемых бит, аналогично как у меня в примере!

stanislau
25.02.2020, 13:16
три целочисленных
Надо 24. Наверно слишком много будет вычислений.
Что-то я туплю.

Серёга Букашкин
25.02.2020, 14:01
Вот есть запароленный макрос. Пароль знаю, могу открыть. Что надо сделать чтобы он не требовал больше пароль?

melky
25.02.2020, 14:33
Если в свойствах макроса нигде нет удаления пароля, просто создайте новый свой и перетащите все туда и сохраните новый макрос.

Сергей0308
25.02.2020, 14:53
Вот есть запароленный макрос. Пароль знаю, могу открыть. Что надо сделать чтобы он не требовал больше пароль?

Удалите пароль, оставив пустое место, это когда ничего нет(ни каких знаков), всё!

stanislau
25.02.2020, 23:25
больше читать надо, начиная с информатики
Я как бы в курсе. Вы сколько занимаетесь программированием ПЛК, ПР, если не секрет?
Я - 1,5 года, когда получается. Я не инженер АСУ и не занимаюсь разработкой. У меня непосредственных должностных хватает. Так, что я понимаю, что мои знания в данном вопросе начальные. Поэтому и спрашиваю в теме "разные вопросы новичка".

Сергей0308
26.02.2020, 00:06
Надо 24. Наверно слишком много будет вычислений.
Что-то я туплю.

Наверно и подписать надо по-человечьи, чтобы не попутать, например так:

47605

Юрий Н
07.03.2020, 13:19
Доброго дня.
Подскажите такую безделицу. В ОЛ нужно чтобы
Нажали вход первый раз, включился выход 1, отпустили выключился.
Нажали второй раз включился выход 2, отпустили выключился.
И так далее по кругу выход 1-2-1-2..
Спасибо

Сергей0308
07.03.2020, 15:12
Доброго дня.
Подскажите такую безделицу. В ОЛ нужно чтобы
Нажали вход первый раз, включился выход 1, отпустили выключился.
Нажали второй раз включился выход 2, отпустили выключился.
И так далее по кругу выход 1-2-1-2..
Спасибо

Примерно так:

47799

Много раз подобное обсуждалось:

https://owen.ru/forum/showthread.php?t=27724&page=2

https://owen.ru/forum/showthread.php?t=12691&page=56

rovki
07.03.2020, 15:51
Доброго дня.
Подскажите такую безделицу. В ОЛ нужно чтобы
Нажали вход первый раз, включился выход 1, отпустили выключился.
Нажали второй раз включился выход 2, отпустили выключился.
И так далее по кругу выход 1-2-1-2..
Спасибо
Это типа задачка ???
Вот одно из 10 решений

Юрий Н
07.03.2020, 16:23
Нет, это не задачка. :)
Пару дней пытался соорудить функцию управления насосной станцией. Там два насоса работающих попеременно. Пробовал на тригерах, ни чего путного не вышло.
Сергей спасибо, думаю это то что нужно.

Сергей0308
07.03.2020, 19:45
Нет, это не задачка. :)
Пару дней пытался соорудить функцию управления насосной станцией. Там два насоса работающих попеременно. Пробовал на тригерах, ни чего путного не вышло.
Сергей спасибо, думаю это то что нужно.

Для насосов тоже делали программы для ротации и автоматического включения другого при аварии работающего насоса: https://owen.ru/forum/showthread.php?t=12691&page=41

47804

Юрий Н
07.03.2020, 20:33
Рисовал простой проект для управления 3-мя насосами. Щиты с такой же, но на релейной автоматике, работают на нескольких котельных уже несколько лет.
Входы 1,2,3 это команда на включение насосов. Входы 4,5,6 это команда с доп контактов выключателей и тепловых реле насосов, о том что они в норме.
Одновременно в работе 2 насоса, третий резервный и включается при аварии одного из первых двух. Наработки и ротации нет, включаются в ручную. Выход 7 общая авария для всех трех насосов.
Может кому и сгодится.

Сергей0308
08.03.2020, 01:34
Рисовал простой проект для управления 3-мя насосами. Щиты с такой же, но на релейной автоматике, работают на нескольких котельных уже несколько лет.
Входы 1,2,3 это команда на включение насосов. Входы 4,5,6 это команда с доп контактов выключателей и тепловых реле насосов, о том что они в норме.
Одновременно в работе 2 насоса, третий резервный и включается при аварии одного из первых двух. Наработки и ротации нет, включаются в ручную. Выход 7 общая авария для всех трех насосов.
Может кому и сгодится.

Ничего вечного не бывает, например один из насосов сломался или ещё что, например сальники набить нужно, короче, надо выключить, чтобы насос не включился! Так вот у Вас это не предусмотрено, придётся, чтобы насос не включился например автоматический выключатель выключить, а то при аварии других насосов он запустится! У меня это предусмотрено на каждый насос имеется селекторный переключатель на 3 положения: включение автоматического режима/выключен/включён!
Можно и с экрана управлять режимом работы насосов, например с помощью комбобокса и включение-выключение ротации с экрана сделать, если она не всегда нужна!

Юрий Н
08.03.2020, 09:18
Полностью согласен. Хочу добавить, что в своих шкафах отказались от автомата по переключению насосов, очень сильно хлопают обратные клапана в процессе. Переключаем в ручную, сначала запускаем второй насос, а после первый отключаем, грохоту меньше.

Сергей0308
08.03.2020, 09:46
Полностью согласен. Хочу добавить, что в своих шкафах отказались от автомата по переключению насосов, очень сильно хлопают обратные клапана в процессе. Переключаем в ручную, сначала запускаем второй насос, а после первый отключаем, грохоту меньше.

Так у меня так и сделано, сначала включается второй, затем выключается первый! Вы насосу не говорите, что это автоматика переключает, он будет думать, что Вы вручную переключили и будет меньше хлопать, если Вам верить! И можно добавить изменение(редактирование) времени задержки выключения с экрана, надеюсь суть ясна?!

47809

mihatin
13.03.2020, 10:33
В проекте соединение ФБ между собой правильнее или эффективней - выполнять переменными или соединительными линиями?Это как-то отражается на работе программы?

bayk
15.03.2020, 15:19
выполнять переменными или соединительными линиями?
Значения, по сути не имеет. если только переменная не энергонезависимая.
эффективнее конечно переменными, поскольку потом в коде можно разобраться, но с другой стороны выполнять все это дольше, а и переменных в списке появляется очень много.
Поэтому связи, которые не имеют очень много пунктов назначения и видны в пределах одного экрана можно смело выполнять просто линиями.

mihatin
15.03.2020, 18:36
Спасибо за разъяснения!

Derejor
26.03.2020, 12:44
Доброго всем времени суток. С Owen Logic работаю совсем недавно, для решения простых задач понимания хватало) Но столкнулся со следующей задачей: выключатель кнопочного типа одним нажатием вкл/откл 1 группу освещения, нажатием в несколько секунд вкл/откл 2 группу освещения, двойным нажатием производит отключение обеих групп освещения.
Сам вроде выкрутился, но уверен мой топорный метод знатоки со слезами на глазах оценят) Подскажите, есть ли решение вопроса более правильное с точки зрения логики, да и в целом более верное. Спасибо. Может кому пригодится в будущем подобная затея
48118

Ревака Юрий
26.03.2020, 12:57
Доброго всем времени суток. С Owen Logic работаю совсем недавно, для решения простых задач понимания хватало) Но столкнулся со следующей задачей: выключатель кнопочного типа одним нажатием вкл/откл 1 группу освещения, нажатием в несколько секунд вкл/откл 2 группу освещения, двойным нажатием производит отключение обеих групп освещения.
Сам вроде выкрутился, но уверен мой топорный метод знатоки со слезами на глазах оценят) Подскажите, есть ли решение вопроса более правильное с точки зрения логики, да и в целом более верное. Спасибо. Может кому пригодится в будущем подобная затея
48118

Вот тут https://youtu.be/-OIIJcl5Hdg еще один из вариантов, три канала дискретных и один аналоговый, одной кнопкой. Пример с проектом прикреплен.

Юрий Н
26.03.2020, 13:35
Что за блок И.Реле?

Derejor
26.03.2020, 14:00
Импульсное реле. On-Off
48121
48122

SergeyDon
03.04.2020, 10:00
почему с элементарным примером возникают сложности?

при запуске похаговой отладки var=0.... и так она остаётся пока ей не присвоить статус "энергонезависимой". Где про это есть в справке?

48225

manjey73
03.04.2020, 10:06
нужна или связь с выходом или энергонезависимость, это да....

Юрий Н
03.04.2020, 10:20
почему с элементарным примером возникают сложности?

при запуске похаговой отладки var=0.... и так она остаётся пока ей не присвоить статус "энергонезависимой". Где про это есть в справке?

48225

Может потому что она ни куда не подключена?

48226

SergeyDon
04.04.2020, 09:10
это никак не влияет..
вот никуда не подключена, но включен признак "энергонеза.."

48243


а вот если установить переменной var "энергонезависимость - V" то все работает!

у меня ПР-200 там нет аналоговых выходов... мне переменная нужна внутри программы.

Lukas
04.04.2020, 09:41
это никак не влияет..

а вот если установить переменной var "энергонезависимость - V" то все работает!

у меня ПР-200 там нет аналоговых выходов... мне переменная нужна внутри программы.

Ну так и используйте ее где нибудь.И все будет работать. Хоть на экране ее используйте хотя бы. Или для проверки временно ставьте э/независимость.

SergeyDon
04.04.2020, 09:53
ладно, я уже понял, что это не моё... (останусь на Zelo)

но Вы считаете такую логику правильной? учитывая выше указанный пример и вот это:

с выкл. опцией "энергонеза..."

48244

с вкл. опцией "энергонеза..."
48245

(я подозреваю почему так происходит... )

rovki
04.04.2020, 10:02
Сохранение в энергонезависимую память осуществляется после выключения питания ,а пока не сохранили ,то при включении там ноль ...Что не логичного ?

SergeyDon
04.04.2020, 10:07
Что не логичного ?

не логично, что вы пытаетесь ответить не вникая в суть вопроса ;)

я вам привер скрины первого шага исполнения программы....

manjey73
04.04.2020, 10:20
SergeyDon а вы в Zelio первый шаг программы можете отследить ? думаете там будет иначе ? ШАГА, не ЦИКЛА заметьте

Юрий Н
04.04.2020, 10:36
Почему у меня все работает?

48246

48247

Ревака Юрий
04.04.2020, 11:49
это никак не влияет..
вот никуда не подключена, но включен признак "энергонеза.."

48243


а вот если установить переменной var "энергонезависимость - V" то все работает!

у меня ПР-200 там нет аналоговых выходов... мне переменная нужна внутри программы.

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

manjey73
04.04.2020, 12:27
Да что же вы все пытаетесь найти фичи на недоделках ? Это просто недоделки ОЛ, в других ПО вам просто не дадут ничего сделать или будут аналогичные "фичи"...

Ревака Юрий
04.04.2020, 12:35
На толкнулся на фичу если вход переменной весит в воздухе то редактировать её не возможно
всегда записывается ноль так должно быть или нет ???????????48249

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

Lukas
04.04.2020, 13:40
ладно, я уже понял, что это не моё... (останусь на Zelo)

но Вы считаете такую логику правильной? учитывая выше указанный пример и вот это:

с выкл. опцией "энергонеза..."

48244

с вкл. опцией "энергонеза..."
48245

(я подозреваю почему так происходит... )

Не могу знать,чего Вы там вытворяете, но у меня все работает в обоих случаях.

manjey73
04.04.2020, 14:21
Алексеев При чем тут ошибки ОЛ, которые вы сами и создаете кривостью программы и ошибки MasterScada ? (это даже не продукт Овен)...

Sima42
07.04.2020, 08:54
Добрый день. Пр200 вопрос по переменным а вернее их сохранение. Управлять овеном буду по 485 через скаду. Хочу хранить уставки. Сделал что бы сохранялись после выключения прибора и изменялись. Все вроде хорошо. Но при заливке проекта все стирается на ноль. Как быть?

Sima42
07.04.2020, 08:59
Добрый день. Пр200 вопрос по переменным а вернее их сохранение. Управлять овеном буду по 485 через скаду. Хочу хранить уставки. Сделал что бы сохранялись после выключения прибора и изменялись. Все вроде хорошо. Но при заливке проекта все стирается на ноль. Как быть?

А можно как нибудь изменить константу по 485?

capzap
07.04.2020, 08:59
Добрый день. Пр200 вопрос по переменным а вернее их сохранение. Управлять овеном буду по 485 через скаду. Хочу хранить уставки. Сделал что бы сохранялись после выключения прибора и изменялись. Все вроде хорошо. Но при заливке проекта все стирается на ноль. Как быть?

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

Sima42
07.04.2020, 09:13
как обычно, открыть документацию и воспользоваться поиском

Повторяю энергонезависимости я добился. Прибор выключаю включаю все сохраняется. Как быть с заливкой проекта? Заливаю проект и все данные стираются.

capzap
07.04.2020, 09:19
Повторяю энергонезависимости я добился. Прибор выключаю включаю все сохраняется. Как быть с заливкой проекта? Заливаю проект и все данные стираются.

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

ЗЫ вообще подумайте стоит ли этим заниматься, потому что пусконоладочные работы это не есть установка принята в эксплуатацию

petera
07.04.2020, 09:27
Повторяю энергонезависимости я добился. Прибор выключаю включаю все сохраняется. Как быть с заливкой проекта? Заливаю проект и все данные стираются.

В свойствах энергонезависимых переменных есть "Значение по умолчанию". Это как раз для Вашего случая.


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

Алексеев
07.04.2020, 09:35
Повторяю энергонезависимости я добился. Прибор выключаю включаю все сохраняется. Как быть с заливкой проекта? Заливаю проект и все данные стираются.

Как Я понимаю тебе необходима при заливки и естественно при выключения ( включении прибора ) записывать в
сетевые переменные значения из энергонезависимой памяти . При заливки прибора это будут значения по умолчанию .
В последующих это значения из энергонезависимой памяти . Есть макросы SelChgB SelChgI SelChgF .
А при включении прибора используй таймер TON с постоянной на включение , секунды выбери Сам
и в первый момент записывай с помощью SEL в сетевую переменную из энергонезависимой . А затем используй макросы .
Мне тоже пришлось помучится чтобы организовать обратные связи переменных энергонезависимых
и сетевых . И добился чего хотел .

Sima42
07.04.2020, 09:44
Как Я понимаю тебе необходима при заливки и естественно при выключения ( включении прибора ) записывать в
сетевые переменные значения из энергонезависимой памяти . При заливки прибора это будут значения по умолчанию .
В последующих это значения из энергонезависимой памяти . Есть макросы SelChgB SelChgI SelChgF .
А при включении прибора используй таймер TON с постоянной на включение , секунды выбери Сам
и в первый момент записывай с помощью SEL в сетевую переменную из энергонезависимой . А затем используй макросы .
Мне тоже пришлось помучится чтобы организовать обратные связи переменных энергонезависимых
и сетевых . И добился чего хотел .

А можно как нибудь программно изменить значение по умолчанию? Это бы решило проблему

Алексеев
07.04.2020, 09:53
А можно как нибудь программно изменить значение по умолчанию? Это бы решило проблему

Изменить можно только с экрана редактируя энергонезависимую переменную . У меня допустим
если оператор изменил переменную изменение сразу отражается в Мастер СКАДЕ .
Переменные (их значение) должно быть приблизительно соответствовать реальности .
Со временем можно добиться что в энергонезависимой памяти у тебя будет то что нужно .
По умолчанию изменить не как нельзя только в исходнике проекта .

Sima42
07.04.2020, 09:55
48326


48327



48328

Я вот так сделал. По адресу 512 считывание а 514 ввод. Все сохраняется выключается включается. А вот при заливке никак.

Сергей0308
07.04.2020, 10:08
Боюсь, такая конструкция решит все проблемы:

48329

48330

Алексеев
07.04.2020, 10:12
Или вот так 48331 СС - энерго независимая и естественно
сетевая тоже по умолчанию энергонезависимая . Но в начале будет записываться
та которая в памяти ПР200 ( при заливки проекта) .
А в последующих то что было изменено ранее .

melky
07.04.2020, 11:57
Sima42 нынче, чтобы при заливке проекта у вас в Modbus сразу были нужные значение, необходимо делать программно, используя макросы SelChgF и SelChgI

Ранее параметр "Значение по умолчанию" действовало и для Modbus переменных, потом, с появлением ПР200 в Овен что-то сломалось и это в ОЛ выключили. При чем выключили даже для ПР114, в котором это РАБОТАЛО....

Алексеев
07.04.2020, 12:22
Sima42

Ранее параметр "Значение по умолчанию" действовало и для Modbus переменных, потом, с появлением ПР200 в Овен что-то сломалось и это в ОЛ выключили. При чем выключили даже для ПР114, в котором это РАБОТАЛО....

rovki https://owen.ru/forum/showthread.php?t=9398&p=329268&viewfull=1#post329268 .
Я Сам не когда не надеялся на что сетевая сохранится всегда использовал обычные энергонезависимые .
Но rovki утверждает , что это работает .

capzap
07.04.2020, 12:32
Повторю основною тему вопрошавшего

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

Алексеев
07.04.2020, 12:42
48326


48327



48328

Я вот так сделал. По адресу 512 считывание а 514 ввод. Все сохраняется выключается включается. А вот при заливке никак.

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

Естественно когда заливается проект записываются переменные которые были заданы по умолчанию в проекте .
Или же как советует petera Все значения допустим секретные подключается через Модбас сервер
и прописывает во вновь записанный проект через SLAVE

Сергей0308
07.04.2020, 12:49
По сети невозможно изменить значения по умолчанию, разумеется перед перезаливкой программы, требуется изменить значения по умолчанию на новые или после перезаливки изменить их по сети, когда это некритично!

dan75
07.04.2020, 16:40
Повторю основною тему вопрошавшего

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

Тогда нужно предусмотреть возможность сохранить энергонезависимые переменные в скаде, а после перезаливки программы сохранить их из скады в ПР. Иными словами, сделать бекап. И делать это можно с помощью тех приёмов, о которых говорят Сергей, Мелкий и Алексеев. Но, конечно, потребуется написать саму программу (или макрос) резервного копирования.

capzap
07.04.2020, 17:03
Тогда нужно предусмотреть возможность сохранить энергонезависимые переменные в скаде
позвольте поинтересоваться, а зачем в таком случае дублирование рецептов в ПР? Если есть скада, где выбирают техпроцесс, ну значит и рецепт по этому событию можно хранить и передать в ПР соответствующий и редактировать в скаде удобнее и права организовать, чтоб не каждый проходящий мог изменить технологию
От того что знаете приемы, не значит что их надо обязательно применить. Зачем усложнять, когда можно найти более простое решение, кто только не жаловался из вас всех на плохую симуляцию, неопределенность работы, нелогичность интерфейса управления окнами...

melky
07.04.2020, 17:41
Алексеев сетевые энергонезависимы, я о другом говорю, раньше (версия 1.8) можно было им назначить значения по умолчанию. Потом это отключили, сославшись на какие-то проблемы прошивки или аппаратной части ПР200. Почему нужно было это отключать и для ПР114 мне не ведомо...

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

Собственно макросы SelChgF и SelChgI и появились благодаря этой проблеме. Уже не помню кто принимал участие в их создании, точно AI! и petera кажется.

Юрий Н
08.04.2020, 21:34
Доброго дня. Вопрос по ПР200.
Научите пожалуйста как сделать чтобы при появлении аварии, на экран вывелась эта авария.
К примеру сравнивая разницу в переменных получаю буль 0 или 1 и привязываю к аварии.
пересмотрел ютуб, прочитал инструкции к ОЛ и ПР200, ни чего не нашел. Заранее извиняюсь, может плохо искал...

пс. есть такое видео, уважаемого Юрия
https://www.youtube.com/watch?v=NDxnh2Nxs8A&t=125s
вроде как понятно в общем.
AL1 это регистрируемая переменная? а Y1 это то что будет выведено в эту строку? в данном случае "Авария1"?

48347

Сергей0308
08.04.2020, 22:33
Доброго дня. Вопрос по ПР200.
Научите пожалуйста как сделать чтобы при появлении аварии, на экран вывелась эта авария.
К примеру сравнивая разницу в переменных получаю буль 0 или 1 и привязываю к аварии.
пересмотрел ютуб, прочитал инструкции к ОЛ и ПР200, ни чего не нашел. Заранее извиняюсь, может плохо искал...

пс. есть такое видео, уважаемого Юрия
https://www.youtube.com/watch?v=NDxnh2Nxs8A&t=125s
вроде как понятно в общем.
AL1 это регистрируемая переменная? а Y1 это то что будет выведено в эту строку? в данном случае "Авария1"?

48347

Много тем про аварии:

https://owen.ru/forum/showthread.php?t=31113&page=7

https://owen.ru/forum/showthread.php?t=29865

В принципе темы небольшие, можно полностью просмотреть!

dan75
08.04.2020, 22:44
В данном примере AL1 -- это переменная, привязанная к аварии. Т.е. когда она =1, на экран выводится слово "Авария", а когда =0, выводится пустая строка. Переменная Y1 -- это номер строки, в которой будет отображаться значение переменной AL1.

Юрий Н
08.04.2020, 22:44
Благодарю. Изучу непременно. Уже склоняюсь к тому чтобы вкрячить журнал аварий. :)

dan75, это я уже понял, а выведется ли она на экран автоматом?

melky
08.04.2020, 23:11
Юрий Н для этих целей там должна быть переменная, которая активирует экран Аварий. Правильно его не сбрасывать, пока ручками этого не сделаешь, но можно и сбросить при желании. Например оставить гореть красный светодиод F2 который. Вариаций то масса.

Юрий Н
09.04.2020, 09:00
В общем ни чего не получилось. Не работает то что мне нужно.
переменная [_/-] вообще не понятно куда и зачем...

Ревака Юрий
09.04.2020, 09:22
В общем ни чего не получилось. Не работает то что мне нужно.
переменная [_/-] вообще не понятно куда и зачем...

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

verpup
09.04.2020, 09:24
здравствуйте, помогите найти решение плз
условия:
1. на выход 1 подается логическая 1 от макроса терморегулятора, в соответствии с показаниями датчика
2. при появлении логической 1 на входе 1, необходимо, чтобы на выход 1 поступал прерывающийся сигнал от генератора импульсов, с периодом 20 мин вкл/ 20 мин выкл, независимо от наличия или отсутствия 1 от терморегулятора.

не могу сообразить, как связать два этих условия((

Ревака Юрий
09.04.2020, 09:27
здравствуйте, помогите найти решение плз
условия:
1. на выход 1 подается логическая 1 от макроса терморегулятора, в соответствии с показаниями датчика
2. при появлении логической 1 на входе 1, необходимо, чтобы на выход 1 поступал прерывающийся сигнал от генератора импульсов, с периодом 20 мин вкл/ 20 мин выкл, независимо от наличия или отсутствия 1 от терморегулятора.

не могу сообразить, как связать два этих условия((

Добрый день. "1" защелкнуть на триггере, выход триггера на вход Blink с заданными временем вкл. и выкл.

Юрий Н
09.04.2020, 10:06
По ней идет переход на аварийный экран, .
Юрий спасибо. Теперь понял.
Появилась другая проблема. На экране две верхние строки накладываются друг на друга.

48348
48349

пс.
Вроде разобрался. Поле Y не трогал вообще.

48352

mihatin
10.04.2020, 13:35
По ней идет переход на аварийный экран, изменение уровня с низкого на высокий, после того как перешли на аварийный экран, она автоматически сбросится в "0", Вам с ней ничего делать не нужно, кроме как назначить на переход в экранах по изменению переменной.

Добрый день! Объясните, пожалуйста, механизм "после того как перешли на аварийный экран, она автоматически сбросится в "0" ",.

melky
10.04.2020, 13:40
mihatin да, если программа будет всегда писать 1 для перехода, то вы войдете в экран и не сможете из него выйти. Это вообще правило для переходов на экраны из программы, сбросить потом переменную перехода в 0

mihatin
10.04.2020, 13:50
mihatin да, если программа будет всегда писать 1 для перехода, то вы войдете в экран и не сможете из него выйти. Это вообще правило для переходов на экраны из программы, сбросить потом переменную перехода в 0

Даже если с датчика в эту переменную пишется 1? Получается для перехода по аварии нужно отдельную переменную?

melky
10.04.2020, 14:06
С датчика пишется 1 (в смысле авария?) ну это пусть пишется хоть постоянно. Суть о переменной перехода на экран, если новой аварии нет, а старая уже зафиксирована и не меняется, вы и так уже перешли на экран, подойдя к ПР вы видите этот экран, далее жмете некую кнопку и возвращаетесь на основной экран например. Смысл программно возвращаться на экран, если вы его видели и прочитали ?

Юрий Н
10.04.2020, 15:52
Залил в прибор программу с аварийным экраном. Не удается выйти кнопками в основной экран, откуда был назначен переход по переменной. Захожу в другие, в моем случае три, а в первый не пускает.
Подозреваю, что пустит когда пропадет авария.

melky
10.04.2020, 17:14
значит что-то не так в программе. У меня в тестовом варианте одна из ошибок не пропадает, но я возвращаюсь на Главный экран без проблем.
https://owen.ru/forum/showthread.php?t=32279&p=320574&viewfull=1#post320574
Вот тут выложил.
Одна из тестовых аварий после таймера висит постоянно но записывается один раз, до возникновения других аварий.

Значит у вас где-то при значении Аварии все равно происходит вызов экрана.

Aviator_VZh
27.04.2020, 20:13
Добрый день.
Нужна помощь. ОЛ 1.16.252.20224. ПР200 Мастер. Пытаюсь прочитать регистр 30003 командой 0х04 из регистра 3 и регистр 40003 командой 0х03 из регистра 3. ОЛ выдает конфликт совпадающих Modbus регистров. Как быть?

petera
27.04.2020, 21:40
Добрый день.
Нужна помощь. ОЛ 1.16.252.20224. ПР200 Мастер. Пытаюсь прочитать регистр 30003 командой 0х04 из регистра 3 и регистр 40003 командой 0х03 из регистра 3. ОЛ выдает конфликт совпадающих Modbus регистров. Как быть?

https://owen.ru/forum/attachment.php?attachmentid=11947&d=1392750251

Ревака Юрий
27.04.2020, 21:58
Добрый день.
Нужна помощь. ОЛ 1.16.252.20224. ПР200 Мастер. Пытаюсь прочитать регистр 30003 командой 0х04 из регистра 3 и регистр 40003 командой 0х03 из регистра 3. ОЛ выдает конфликт совпадающих Modbus регистров. Как быть?

Если это косяк OwenLogic, то разнесите регистры в разные группы с одинаковыми адресами подчиненного устройства.

Aviator_VZh
27.04.2020, 22:30
Если это косяк OwenLogic, то разнесите регистры в разные группы с одинаковыми адресами подчиненного устройства.

Да, спасибо, помогло!

Сергей0308
27.04.2020, 22:33
Добрый день.
Нужна помощь. ОЛ 1.16.252.20224. ПР200 Мастер. Пытаюсь прочитать регистр 30003 командой 0х04 из регистра 3 и регистр 40003 командой 0х03 из регистра 3. ОЛ выдает конфликт совпадающих Modbus регистров. Как быть?

Это как? Регистр из регистра умудряетесь читать, это же у Вас как кощеева смерть получается? Короче, обычно, мне так кажется, регистры находятся в каком-то слейв устройстве с каким-то адресом и все адреса слейв устройств в одной сети уникальные!

Aviator_VZh
29.04.2020, 15:36
Друзья, подскажите еще!
Ограничение на 64 регистра у ПР200 касается только Slave или включая Master?

petera
29.04.2020, 16:18
Друзья, подскажите еще!
Ограничение на 64 регистра у ПР200 касается только Slave или включая Master?

Только для слейва - это внутренняя память ПР.

Aviator_VZh
29.04.2020, 16:24
Отлично, спасибо!

Сергей0308
06.05.2020, 21:04
Подскажите пожалуйста . Импортирую Макрос из файла . Меняю название , содержимое ,
количество входов / выходов --------- экспортирую под другим названием . 48843

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

Так и должно быть ??????? Раньше с этим плотно не сталкивался .
Всегда нужно создавать заново ???????????????

Заново конечно не нужно создавать, есть такой пункт в меню редактирования макроса: Сохранить макрос как... , это Вам поможет!

Алексеев
06.05.2020, 22:39
Заново конечно не нужно создавать, есть такой пункт в меню редактирования макроса: Сохранить макрос как... , это Вам поможет!

Глаз замылился . Пытаюсь через Экспорт Импорт . Спасибо .

Сергей0308
06.05.2020, 22:46
Глаз замылился . Пытаюсь через Экспорт Импорт . Спасибо .

Потом можно и экспортировать в файл!

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

Сергей0308
12.05.2020, 16:29
Добрый день.
Подскажите пожалуйста как передать (преобразовать) значение с плавающей запятой (температуру) на аналоговый выход?

Привести к диапазону 0-1, всё!

48998

https://owen.ru/forum/showthread.php?t=25068&page=40

Ампер
12.05.2020, 16:33
Привести к диапазону 0-1, всё!

Я понимаю, что нужно привести к диапазону 0-1, а как это сделать?

IVM
12.05.2020, 16:38
Я понимаю, что нужно привести к диапазону 0-1, а как это сделать?

Посмотри про уравнение прямой, проходящей через две заданные точки. Для тебя: Х1 = 0; Х2 = REALmax; Y1 = 0; Y2 = 1;

Ампер
12.05.2020, 16:56
Уравнение прямой это получается некая пропорция, не понимаю как ее можно создать..
У меня вот такая схема, какие блоки нужно вставить?
Извиняюсь, за глупые вопросы..48999

Ревака Юрий
12.05.2020, 17:21
Уравнение прямой это получается некая пропорция, не понимаю как ее можно создать..
У меня вот такая схема, какие блоки нужно вставить?
Извиняюсь, за глупые вопросы..48999

Макрос SCALE в базе, где вход IN температура, MAX_Q=1, MIN_Q=0, и MAX_IN и MIN_IN макс/мин значение температуры которую нужно выдавать на аналоговый выход 0-1.0.

Ампер
12.05.2020, 18:34
Юрий, большое спасибо!

Lilian
26.05.2020, 01:53
Кстати тут спрашивали касательно кабеля, если берете сетевой кабель, то лучше не переплачивать тут, а брать просто классику по типу KLM (UTP Solid) 4х2х0.50 мм ССА ПВХ https://klaster.ua/shop/kabelnye-seti/kabelnaya-produkciy , у него большой плюс что он простой в протяжке, 4 парный, плюс локалку можно развернуть на любое расстояние. Дешево и сердито получается. Я его брал для проводки под роутер. Пока нормально держит, мастера сказали, что он по сути точно так же защищен, как и дорогие варианты, у него только один минус через несколько лет может начать нестабильно передавать сеть. Но мне ненадолго надо, потому если хотите на несколько лет, а не на десятилетия, то он подойдет, а если хотите навека то лучше подороже конечно же посмотреть. По току постоянный напряг 72 В, ну кароче типичный бюджетный стандарт, но подходит для большей части сетей, потому "зачем платить больше?")

Алексеев
26.05.2020, 09:24
Подскажите какой кабель подойдет для подключения бойлера? Тянуть проводку собираемся.

Для силовых МЫ используем ПВС 49254 для датчиков МКЭШ . Сечение для силовых выбираем по току для датчиков МКЭШ 2х0.35 . 49255

bayk
26.05.2020, 10:46
Подскажите какой кабель подойдет для подключения бойлера? Тянуть проводку собираемся.
а какой бензин нужен для машины?
не хотите поподробнее технические характеристики, способ подключения тэнов и прочее рассказать?
ПВС - не сильно стационарный и долговечный кабель, да еще его оконцевать как следует для работы в нагревательных приборах целая проблема (но опять же это зависит от типа клемм)

melky
26.05.2020, 10:55
А почему ПВС не может быть не стационарным ?, например провод с вилкой таковым не является. Тут то же самое. Коробка с клеммным блоком рядом с бойлером, из коробки к бойлеру ПВС. это допускается.

patsak
26.05.2020, 12:07
Приветствую.

Получится ли без преобразователя считать расход с помощью вот такого датчика: http://pumpcontroller.ru/product/datchik_raskhoda_vody_rezba_3_4_dyuyma/ ?

Ревака Юрий
26.05.2020, 13:41
Приветствую.

Получится ли без преобразователя считать расход с помощью вот такого датчика: http://pumpcontroller.ru/product/datchik_raskhoda_vody_rezba_3_4_dyuyma/ ?

Делал пример на похожем датчике
https://youtu.be/zfS6MxKpct8, там рассказал про тонкости, на максимальном расходе нужно смотреть по времени цикла, не будет ли пропусков, и запитку датчика нужно делать с учетом что уровень "1" на DI от 15 вольт.
А вообще, лучше поискать что-то с выходом 4-20mA.

vardrager
27.05.2020, 08:35
подскажите как правильно реализовать в modbus запись пары переменных по событию (установка переменной в определенное значение) ?

Ревака Юрий
27.05.2020, 13:23
подскажите как правильно реализовать в modbus запись пары переменных по событию (установка переменной в определенное значение) ?

Если событие одноразовое, то в принципе, запись можно делать по изменению, установив чекбокс в настройках регистра, если это регистр float, то лучше делать по флагу. Все режимы показаны тут https://www.youtube.com/watch?v=k9rUF5_kLqk

Saint999
28.05.2020, 12:04
День добрый, читал неделю форум но так и не нашел примера решения моей задачи, если слепой ткните носом)

Нужно на ПР (не принципиально какой, но с 485 интерфейсом, сейчас тестируюсь на пр200) переключатель с фиксацией.
49299
Принцип работы как у переключателя с фото.
Тоесть у нас есть 8 кнопок (столько входов/выходов ПР), нажимаем первую, зажигаем ее подсветку первой релюшкой, нажимаем вторую, щелкаем вторую реле и отпускаем первую реле, и так все 8. Попутно все состояния кнопок пишем в регистры модбас, что бы головной контроллер мог считать их.
Это я реализовал так:
49300
Все работает, но можно одновременно нажать несколько кнопок. Можно поставить тригер с приоритетом включения и детектор заднего фронта, тогда одновременно нельзя нажать несколько кнопок (точнее нажать то можно, включится та которая последней опуститься), но если нажать на кнопку и держать ее то все выключены будут, а так нельзя, какая то всегда должна гореть.

В идеале алгоритм такой:

8 кнопка "Стоп" она в приоритете, то есть по нажатию на нее не важно в комбинации с другими или одну ее сразу зажигаем ее.
Остальные кнопки переключаются так: нажимаем первую, зажигаем ее подсветку первой релюшкой, нажимаем вторую, щелкаем вторую реле и отпускаем первую реле и так все 7.
Если нажата первая и вторая то приоритет отдаем той которая была нажата первой, если их нажали одновременно то приоритет у той которая уже нажата (пусть даже это 7, а не одна из тех которые нажали одновременно).

Буду благодарен за любые подсказки!

Сергей0308
28.05.2020, 13:49
День добрый, читал неделю форум но так и не нашел примера решения моей задачи, если слепой ткните носом)

Нужно на ПР (не принципиально какой, но с 485 интерфейсом, сейчас тестируюсь на пр200) переключатель с фиксацией.
49299
Принцип работы как у переключателя с фото.
Тоесть у нас есть 8 кнопок (столько входов/выходов ПР), нажимаем первую, зажигаем ее подсветку первой релюшкой, нажимаем вторую, щелкаем вторую реле и отпускаем первую реле, и так все 8. Попутно все состояния кнопок пишем в регистры модбас, что бы головной контроллер мог считать их.
Это я реализовал так:
49300
Все работает, но можно одновременно нажать несколько кнопок. Можно поставить тригер с приоритетом включения и детектор заднего фронта, тогда одновременно нельзя нажать несколько кнопок (точнее нажать то можно, включится та которая последней опуститься), но если нажать на кнопку и держать ее то все выключены будут, а так нельзя, какая то всегда должна гореть.

В идеале алгоритм такой:

8 кнопка "Стоп" она в приоритете, то есть по нажатию на нее не важно в комбинации с другими или одну ее сразу зажигаем ее.
Остальные кнопки переключаются так: нажимаем первую, зажигаем ее подсветку первой релюшкой, нажимаем вторую, щелкаем вторую реле и отпускаем первую реле и так все 7.
Если нажата первая и вторая то приоритет отдаем той которая была нажата первой, если их нажали одновременно то приоритет у той которая уже нажата (пусть даже это 7, а не одна из тех которые нажали одновременно).

Буду благодарен за любые подсказки!

Какая-то полная лабуда, много было подобных тем, вот здесь смотрели: https://owen.ru/forum/showthread.php?t=33123
Немного подрихтовал под ваши хотелки:

49301

49302

Или так:

49674

49685

Saint999
28.05.2020, 15:05
Спасибо больше за быструю помощь, все работает, подредактировал только что бы 8 кнопка стопом была и подсветку ей организовал.
49306
Но как работает, так и не понял. Буду пробовать разбираться.
Еще раз спасибо!

Saint999
28.05.2020, 16:28
Не долго музыка играла...
Вставляю сетевую переменную, копирую макрос дешифратор в исполнительное устройство и идет сдвиг на 1 ногу, я то могу связями это нивелировать, мне просто интересно как так происходит и почему.
Шифратор и дешифратор в исполнительное устройство копировал, ничего не меняется.
49309
49310

Сергей0308
28.05.2020, 16:33
Не долго музыка играла...
Вставляю сетевую переменную, копирую макрос дешифратор в исполнительное устройство и идет сдвиг на 1 ногу, я то могу связями это нивелировать, мне просто интересно как так происходит и почему.
Шифратор и дешифратор в исполнительное устройство копировал, ничего не меняется.
49309
49310

Там имеются настройки в свойствах макроса, короче, скопируете(перенесите) настройки из моего проекта!

Saint999
28.05.2020, 17:03
Разобрался, и научился константы в настройки выносить)
Когда макрос копируешь он применяет настройки из констант, потому просто копирование не подходило.
Раз пишу уже, зачем последовательно шифратор дешифратор стоят?

melky
28.05.2020, 17:11
Наверное отсечь, все что младше и вернуть только один бит потом

Сергей0308
28.05.2020, 18:35
Разобрался, и научился константы в настройки выносить)
Когда макрос копируешь он применяет настройки из констант, потому просто копирование не подходило.
Раз пишу уже, зачем последовательно шифратор дешифратор стоят?

Это функции записи/чтения бита!
В целочисленном виде, как правило, проще логику реализовать, например сдвиговый регистр:

49320

49321

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

Saint999
09.06.2020, 12:08
Еще раз спасибо за ответы на предыдущие вопросы, но есть новые )

Есть до 8 "Постов" как в прошлом примере, у которых битовая маска это сетевая переменная, и я ее собираю со всех постов другим реле (пока у меня все на пр200) и в зависимости от того какой пост включаю выводы МУ110-16Р так же битовой маской. На каждый пост я выделил по 8 выходов (делится хорошо и у постов у нас 8 кнопок), тоесть у нас максимум может быть 4 штуки МУ110-16Р.
Простейший агоритм как долно быть я сделал, но потом меня посетила "гениальная идея", сделать настраиваемыми выходы, что бы на каждый пост на каждую кнопку можно было настроить сколько выходов МУ110-16Р счелкнет (до 8 штук одновременно или в любой последовательности). Настраиваться будет так:
49542
Стоит - выход неактивен, стоит + выход активен все просто.
Но потом я посчитал сколько мне нужно переменных для этого всего и мне стало грустно, и я решил спросить у Вас помощи. Нужно делать все 8 постов * 8 программ = 64 переменные на настройку + 64 переменные выходов МУ110-16Р + куча связей и модулей и или. Я пока только так вижу это:
49543

Вопрос: можно ли все это сделать более элегантно, может не расшифровывая битовую маску а потом зашифровывая ее назад как делаю я, или как то еще, или мне запасаться терпением и делать все эти переменные?

Спасибо!

Сергей0308
09.06.2020, 12:52
Еще раз спасибо за ответы на предыдущие вопросы, но есть новые )

Есть до 8 "Постов" как в прошлом примере, у которых битовая маска это сетевая переменная, и я ее собираю со всех постов другим реле (пока у меня все на пр200) и в зависимости от того какой пост включаю выводы МУ110-16Р так же битовой маской. На каждый пост я выделил по 8 выходов (делится хорошо и у постов у нас 8 кнопок), тоесть у нас максимум может быть 4 штуки МУ110-16Р.
Простейший агоритм как долно быть я сделал, но потом меня посетила "гениальная идея", сделать настраиваемыми выходы, что бы на каждый пост на каждую кнопку можно было настроить сколько выходов МУ110-16Р счелкнет (до 8 штук одновременно или в любой последовательности). Настраиваться будет так:
49542
Стоит - выход неактивен, стоит + выход активен все просто.
Но потом я посчитал сколько мне нужно переменных для этого всего и мне стало грустно, и я решил спросить у Вас помощи. Нужно делать все 8 постов * 8 программ = 64 переменные на настройку + 64 переменные выходов МУ110-16Р + куча связей и модулей и или. Я пока только так вижу это:
49543

Вопрос: можно ли все это сделать более элегантно, может не расшифровывая битовую маску а потом зашифровывая ее назад как делаю я, или как то еще, или мне запасаться терпением и делать все эти переменные?

Спасибо!

У вас имеется 8 кнопок, и 8 выходов в каждом посте, Вы хотите оперативно настраивать какие выхода будут включаться при нажатии каждой из кнопок? Опустим пока всё остальное и непринципиальное, для понимания ваших хотелок! Я правильно понимаю?

Saint999
09.06.2020, 13:25
Да, именно так!

Сергей0308
09.06.2020, 13:50
Да, именно так!

Я примерно как-то так делал:

49544

В проекте имеется матрица памяти на 32 ячейки и я сам принцип хотел показать, а что там настраивать - неважно!

Saint999
09.06.2020, 15:41
Честно ничего не понял, не умею думать головой, буду руками.
Спасибо

Saint999
09.06.2020, 16:52
Пока сделал так, для проверки, тоесть настройка одна на все посты
на все программы.
49546
Дальше буду создавать переменные )
Хотел еще спросить, генерация ошибки в частности сейчас как нет связи с каким либо постом или модулем, сделал так и все работает, но как сделать что бы ошибка предсказуемой была, так как в моем случае если по одному можно вычислить с каким постом ошибка, то если их несколько то не понятно, можно конечно составить таблицу расшифровки, но блин "это же не наш метод")
49547

Сергей0308
09.06.2020, 19:22
Честно ничего не понял, не умею думать головой, буду руками.
Спасибо

Тогда может это посмотрите, здесь попроще будет:

49550

И, хотел добавить, что больше или равно как-то так попроще будет раза в два:

49551

Уставку на верхний вход функции!

Можно залить программу в ПР200, поклацать кнопками, понастраивать, посмотреть, может к Вам озарение придёт! Если не придёт процесс повторить!

melky
09.06.2020, 21:01
Можно без таблиц, сделать вывод на экран списком кто виноват исходя из битовой маски

Сергей0308
09.06.2020, 21:41
В этой теме аварии на экран выводили:https://owen.ru/forum/showthread.php?t=31113&page=7

Saint999
10.06.2020, 09:15
Можно залить программу в ПР200, поклацать кнопками, понастраивать, посмотреть, может к Вам озарение придёт! Если не придёт процесс повторить!

Не поверите пол дня именно этим занимался, меня с работы скоро уволят, что ничего не делаю)

Спасибо, буду разбираться с этим примером!

Сергей0308
10.06.2020, 12:26
Не поверите пол дня именно этим занимался, меня с работы скоро уволят, что ничего не делаю)

Спасибо, буду разбираться с этим примером!

Для начала сделайте, как для Вас кажется проще, то есть сохраняйте настройки в булевых энергонезависимых переменных, так как у вас 4 поста по 8 кнопок для каждой по 8 переменных, соответствующих выходам 1-8, всего получается 256 булевых переменных каждая булева переменная занимает 1 байт энергонезависимой памяти - вполне хватает энергонезависимой памяти(всего 1016 байт) и я выкладывал ранее как можно 32 булевы переменные сохранять в одной целочисленной внутренней энергонезависимой переменной, что позволяет в 8 раз использовать память более рационально:

49564

49565

49566

49567

Saint999
10.06.2020, 14:40
У меня 8 постов по 8 кнопок по 8 значений на каждую = 512 переменных (байт) + у меня счетчики наработки стоят на каждый пост (8 счетчиков).
Наверное буду перепаковывать, что бы осталось памяти.

Сергей0308
10.06.2020, 21:59
У меня 8 постов по 8 кнопок по 8 значений на каждую = 512 переменных (байт) + у меня счетчики наработки стоят на каждый пост (8 счетчиков).
Наверное буду перепаковывать, что бы осталось памяти.

Всё равно хватает памяти с избытком, одна внутренняя целочисленная переменная занимает 4 байта, 8 счётчиков - 32 байта, если к 512 добавится 32 это погоды не сделает!
И я ссылку давал на тему с авариями, там, кстати, у меня в проекте имеется функция включения-выключения аварий, мне кажется подобное подойдёт вам для реализации ваших хотелок, короче, там можно посмотреть пример реализации и сделать по аналогии!

49583

Saint999
11.06.2020, 13:55
По регистрации аварий как раз разбираюсь с 15 версией, а счетчики моточасы моторов считают и количество включений, просто размножил на 8 моторов и сделал макрос, потом макрос скопировал и сделал кнопку сброса.
В итоге имеем пробег общий и пробег от ТО.
49594

Saint999
12.06.2020, 10:25
Хотел спросить, два дня не мог понять что не так я делаю, оказалось все так просто настройки в епром неправильные, при этом в меню настройки параметров отображает то что я задал, а вот при работе не правильно выводами счелкает.
Скопировал в отдельный проект только макрос генерации битовой маски и в ручную по выводам прошелся, все работает верно, залил программу все работает верно, как то нужно память очищать при изменении?

Сергей0308
12.06.2020, 10:53
Хотел спросить, два дня не мог понять что не так я делаю, оказалось все так просто настройки в епром неправильные, при этом в меню настройки параметров отображает то что я задал, а вот при работе не правильно выводами счелкает.
Скопировал в отдельный проект только макрос генерации битовой маски и в ручную по выводам прошелся, все работает верно, залил программу все работает верно, как то нужно память очищать при изменении?

Возможно макрос попался с изменёнными(относительно настройкам по умолчанию) настройками в свойствах макроса, эти настройки не копируются, надо переносить их вручную, это так - моё предположение!

Saint999
12.06.2020, 15:29
Макрос тот же, настроек не имеетничего не менял просто почти пустую программу записал, а потом свою и только тогда все стало хорошо работать.
В отладке обратил внимание что программа правильно выполнялась, переменные энергонезависымые так стояли.
Ладно работает и работает.
Пока создал на все посты свою настройку каждой программы, по постам решил не разбивать, может позже сделаю, переменные пачкой нельзя копировать, только каждую отдельно?

Saint999
12.06.2020, 15:43
49609
Мы берем число в первый цикл его подставляем в сравнение, во второй цикл его подставляем и сохраняем, тем самым у нас изменяется переменная только при изменении ее?

Сергей0308
12.06.2020, 17:03
49609
Мы берем число в первый цикл его подставляем в сравнение, во второй цикл его подставляем и сохраняем, тем самым у нас изменяется переменная только при изменении ее?

Это я такую логику придумал при изменение любой из 32 булевых переменной их битовая маска сохраняется в энергонезависимой целочисленной переменой, позволяет в 8 раз меньше занимать энергонезависимой памяти(уже ранее писал об этом) и не надо нажимать "запись", значение само сохраняется при изменении, надеюсь понятно написал?!

Сергей0308
12.06.2020, 17:08
Макрос тот же, настроек не имеетничего не менял просто почти пустую программу записал, а потом свою и только тогда все стало хорошо работать.
В отладке обратил внимание что программа правильно выполнялась, переменные энергонезависымые так стояли.
Ладно работает и работает.
Пока создал на все посты свою настройку каждой программы, по постам решил не разбивать, может позже сделаю, переменные пачкой нельзя копировать, только каждую отдельно?

Ну, чудес не бывает, то работает, то не работает - так не бывает, может чего упустили?
И зачем эти намёки? Или выкладывайте проекты, где считаете что неверно работает или не пишите вообще об этом, это я так думаю!

Saint999
12.06.2020, 17:23
И, хотел добавить, что больше или равно как-то так попроще будет раза в два:


Не заработало (

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

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

Saint999
12.06.2020, 17:31
Ну, чудес не бывает, то работает, то не работает - так не бывает, может чего упустили?
И зачем эти намёки? Или выкладывайте проекты, где считаете что неверно работает или не пишите вообще об этом, это я так думаю!

Вот прямо сейчас проект аварий залил, потом в меню убрал + почти все, потом перезаписал проект, а +- остались те что я выставил до этого с экрана. что бы вручную все не переставлять затер Ваш проект своим, а потом снова Ваш залил, и только тогда стали все аварии отслеживаться. Сейчас еще раз просто стер записал программу и епром изменился. Что то я не понимаю )

megadocent
12.06.2020, 17:33
Подскажите, пожалуйста, с экранами.
Правильно я делаю, или есть способы проще.

Вопрос первый. Может есть примеры/описание, как следующую хотелку реализовать?
Автоматический вывод экранов по их приоритету.
Имеется N экранов, на каждом свой параметр. Хочется:
1) Чтобы при аварии связанной с параметром высвечивался его экран.
2) Если появляется авария на более приоритетном параметре - высвечивался его экран.
3) Если авария пропала - переключение на экран с менее приоритетной.
4) Если аварий нет - главный экран.
5) Если пользователь ковыряется в параметрах - не переключать экраны.
6) Если пользователь ничего не делал больше N секунд - переключать экраны согласно авариям.

На текущий момент я пришел к следующему решению: Все аварии завожу в макрос. На выходу у него N булевских переменных, из которых активна только одна нужная.
Для каждого экрана в условиях перехода добавляю N-1 условий, что если такая-то переменная поменялась - переходим на такой-то экран.
Проблемы:
1) Геморно на N экранах вводить N условий для перехода, помимо ручных. Ощущение, что я делаю что-то не то и должен быть более простой способ.
(Я так понимаю, для этого задумывались коллекции переходов, чтобы создать один раз коллекцию переходов и на каждом экране выбрать её. Но сейчас это просто на будущее, которая не работает.)
2) Как запретить переходы при возникновении аварии, если пользователь сам ходит по экранам - я так понял никак.

Вопрос второй.
Часть параметров связана с другими устройствами, висящими на шине RS485 (другая ПР200, прочие датчики). При проблемах с доступом хочется, чтобы вместо цифр высвечивалось "Нет связи".
Сделал это наложением 2 надписей в строке. Одна с параметром, вторая булевская, в зависимости от статуса прибора на порту показывает "Нет связи" или ничего.
Работает как хотелось. Но собственно вопрос - это вообще, нормальный и штатный путь, накладывать разные надписи на одно знакоместо или я через одно место делаю?
По мне это как-то неочевидно и додумался до такого не сразу.

Ревака Юрий
12.06.2020, 17:46
Подскажите, пожалуйста, с экранами.
Правильно я делаю, или есть способы проще.

Вопрос первый. Может есть примеры/описание, как следующую хотелку реализовать?
Автоматический вывод экранов по их приоритету.
Имеется N экранов, на каждом свой параметр. Хочется:
1) Чтобы при аварии связанной с параметром высвечивался его экран.
2) Если появляется авария на более приоритетном параметре - высвечивался его экран.
3) Если авария пропала - переключение на экран с менее приоритетной.
4) Если аварий нет - главный экран.
5) Если пользователь ковыряется в параметрах - не переключать экраны.
6) Если пользователь ничего не делал больше N секунд - переключать экраны согласно авариям.

На текущий момент я пришел к следующему решению: Все аварии завожу в макрос. На выходу у него N булевских переменных, из которых активна только одна нужная.
Для каждого экрана в условиях перехода добавляю N-1 условий, что если такая-то переменная поменялась - переходим на такой-то экран.
Проблемы:
1) Геморно на N экранах вводить N условий для перехода, помимо ручных. Ощущение, что я делаю что-то не то и должен быть более простой способ.
(Я так понимаю, для этого задумывались коллекции переходов, чтобы создать один раз коллекцию переходов и на каждом экране выбрать её. Но сейчас это просто на будущее, которая не работает.)
2) Как запретить переходы при возникновении аварии, если пользователь сам ходит по экранам - я так понял никак.

Вопрос второй.
Часть параметров связана с другими устройствами, висящими на шине RS485 (другая ПР200, прочие датчики). При проблемах с доступом хочется, чтобы вместо цифр высвечивалось "Нет связи".
Сделал это наложением 2 надписей в строке. Одна с параметром, вторая булевская, в зависимости от статуса прибора на порту показывает "Нет связи" или ничего.
Работает как хотелось. Но собственно вопрос - это вообще, нормальный и штатный путь, накладывать разные надписи на одно знакоместо или я через одно место делаю?
По мне это как-то неочевидно и додумался до такого не сразу.


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

Из второго: наложение как вариант, можно еще управлять координатами "Х" контрола, получается сдвиг в невидимую область.

melky
12.06.2020, 17:57
1. много экранов, много путаницы. лично у меня всего два экрана на аварии, один это код аварии, второй это расшифровка
2. случилась авария, включился экран аварий, не надо его никуда переключать автоматически, человек увидит, прочтет и переключится на другой экран
3. всегда можно вернуться на экран аварий

megadocent
12.06.2020, 18:30
Понятно. Спасибо.
Как я понимаю, это не я не понял, как эти переходы готовить, а переходы это и правда геморно и ими не пользуются.

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

Про управление координатой не знал.
Я правильно понимаю, что, несмотря на то, что в редакторе нельзя за границы выходить, то управляя переменной из программы я могу задавать всякие -1 или +20 и оно просто спрячется?
Если так, что с помощью этого можно на одном экране отобразить нужные аварии, задавая N прописанным текстовым меткам свои координаты Y, показывая в вверху списка самые приоритетные сообщения.

Сергей0308
12.06.2020, 18:35
Не заработало (

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

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

Это позвольте полюбопытствовать как? По одному значению - всё верно, а не по одному, я так понимаю - неверно! Разве возможно одновременно на вход подать не одно значение! Прям лабуда лабудовая, функция или выполняется или нет, третьего не дано!

bayk
12.06.2020, 18:36
По авариям есть очень хорошая тема, созданная мной. Там в итоге пришли к практически идеальному варианту со всеми плюшками и не геморройным созданием списка.

megadocent
12.06.2020, 18:57
По авариям есть очень хорошая тема, созданная мной. Там в итоге пришли к практически идеальному варианту со всеми плюшками и не геморройным созданием списка.

А не поделитесь конкретной ссылкой или по каким ключевым словам искать?

Эта?
https://owen.ru/forum/showthread.php?t=31113

Saint999
12.06.2020, 19:15
Это позвольте полюбопытствовать как? По одному значению - всё верно, а не по одному, я так понимаю - неверно! Разве возможно одновременно на вход подать не одно значение! Прям лабуда лабудовая, функция или выполняется или нет, третьего не дано!

Вот так работает у меня:
49614
Вот так предложили Вы:
49615
Вот так я инвертировал:
49616
А вот так я пока эксперименты ставил допер что можно начать с 0 и все заработает:
49617

Спасибо за помощь!!!

Сергей0308
12.06.2020, 19:25
Вот так работает у меня:
49614
Вот так предложили Вы:
49615
Вот так я инвертировал:
49616
А вот так я пока эксперименты ставил допер что можно начать с 0 и все заработает:
49617

Спасибо за помощь!!!

Вообще-то я не так предлагал, как Вы сделали! Я даже написал, что уставку следует подавать на верхний вход элемента сравнения на большее, а на нижний вход сигнал для сравнения, короче: всё правильно, только наоборот, надеюсь вторая попытка будет более удачной!

49619

qwertyfuck
13.06.2020, 17:27
Собственно вопрос: как сгенерировать случайное простое число ?
если воспользоваться генератором случайного числа то как организовать его проверку на простоту ?

ну или как модифицировать вот этот генератор так чтобы он получая лог 1 на дополнительный вход прекращал свою работу ?
49629

^ если подать 1 на элемент нет то генератор прекращает работу

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

Сергей0308
13.06.2020, 17:58
Собственно вопрос: как сгенерировать случайное простое число ?
если воспользоваться генератором случайного числа то как организовать его проверку на простоту ?

ну или как модифицировать вот этот генератор так чтобы он получая лог 1 на дополнительный вход прекращал свою работу ?
49629

Беспокоитесь, чтобы он сильно не изнашивался? Иначе достаточно по условию писать значение в нужную переменную!

Сведения о простых числах были в древнем Египте второго тысячелетия до н.э., печально отставать в своём развитии на четыре тысячелетия!
Может хотя бы прочитаете пару строк википедии: https://ru.wikipedia.org/wiki/Простое_число

qwertyfuck
13.06.2020, 20:16
Беспокоитесь, чтобы он сильно не изнашивался? Иначе достаточно по условию писать значение в нужную переменную!

Сведения о простых числах были в древнем Египте второго тысячелетия до н.э., печально отставать в своём развитии на четыре тысячелетия!
Может хотя бы прочитаете пару строк википедии: https://ru.wikipedia.org/wiki/Простое_число

Я не могу натянуть на свою голову как правильно реализовать остановку работы генератора после выполнения условия a^n (mod n) = a (mod n) и продолжить выполнение остальной части. Большинство тестов на простоту опираются на нахождение делителей и требуют возможности выполнять действие в цикле и я не могу понять как можно реализовать цикл "пока" ... :(

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

capzap
13.06.2020, 20:19
Я не могу натянуть на свою голову как правильно реализовать остановку работы генератора после выполнения условия a^n (mod n) = a (mod n) и продолжить выполнение остальной части. Большинство тестов на простоту опираются на нахождение делителей и требуют возможности выполнять действие в цикле и я не могу понять как можно реализовать цикл "пока" ... :(

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

qwertyfuck
13.06.2020, 20:25
и ник у Вас неудачный и устройство выбрали совершенно не подходящее для такой математики. Циклов в ПР нет и нет условных переходов, весь код выполняется в каждом цикле программы

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

capzap
13.06.2020, 20:27
я больше скажу, и на ПЛК этот фокус может не прокатить, потому что в зависимости от числа и расчета рекурсии от него можно легко выйти в watchdog

qwertyfuck
13.06.2020, 20:37
я больше скажу, и на ПЛК этот фокус может не прокатить, потому что в зависимости от числа и расчета рекурсии от него можно легко выйти в watchdog

и что мне тогда делать если на плк не получится ?

capzap
13.06.2020, 21:04
и что мне тогда делать если на плк не получится ?

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

Сергей0308
13.06.2020, 21:45
И в чём проблема, ограничьте диапазон ГСЧ до 1000, там всего 168 простых чисел и все простые числа боюсь невозможно определить!
Наверно нужно думать о квантовом шифровании: https://www.youtube.com/watch?v=mVQE40eWISg&t=6s

Saint999
15.06.2020, 14:24
Вообще-то я не так предлагал, как Вы сделали! Я даже написал, что уставку следует подавать на верхний вход элемента сравнения на большее, а на нижний вход сигнал для сравнения, короче: всё правильно, только наоборот, надеюсь вторая попытка будет более удачной!


Вот я идиот, еще и читать не умею...
Да действительно все заработало как надо.
Спасибо!

Saint999
15.06.2020, 15:16
Я правильно понимаю, для того что бы от внутренних переменных ошибки отслеживать мне нужно сделать два макроса PUTBIT16 in 1 (по типу как на скриншоте PUTBIT32) и каждый подключить к Рег_1 и Рег_2?
49645
А если выделенное красным удалить и подключить один макрос PUTBIT32?
49646

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