PDA

Просмотр полной версии : Какими функциями или блоками можно реализовать в ПР200 такой алгоритм



Kruschens
06.01.2018, 02:14
Какими функциями или блоками можно реализовать в ПР200 такой алгоритм


1) Если (EN1==TRUE) {NETW1=NETW1+2;} , иначе { NETW1=VAL1;}
2) Если (EN2==FALSE) {NETW2= 17; } , иначе {NETW2= 15; }

// NETW1 - переменная типа unsigneg 16 на Modbus Device_ID=3; Addr=H4001;
// NETW2 - переменная типа unsigneg 16 на Modbus slave этого же ПР200, снаружи доступна по адресу 600 (десятичный)
// VAL1 тип unsigneg 16, вычисляемое выражение в зависимости от значений входов в текущем цикле
// EN1 и EN2 Bool переменные вычисляемые в текущем цикле

Kruschens
06.01.2018, 03:23
например, так (см рис) Ow Logic не позволяет считать и записать в одну и ту же переменную NETW1.

Попутно дополнительный вопрос: как сделать, если запись через Master-modbus в некую сетевую переменную на удаленном устройстве не желательна в каждом цикле ПР200, чтобы не перегружать сеть, а должна работать в зависимости от состояния разрешающей Bool переменной ?

Сергей0308
06.01.2018, 03:50
например, так (см рис) Ow Logic не позволяет считать и записать в одну и ту же переменную NETW1.

Попутно дополнительный вопрос: как сделать, если запись через Master-modbus в некую сетевую переменную на удаленном устройстве не желательна в каждом цикле ПР200, чтобы не перегружать сеть, а должна работать в зависимости от состояния разрешающей Bool переменной ?

Вот по второму вопросу, как-то так:

34954

По первому непонятно, какие проблемы, у меня все пишется и читается:

34955

Может не тот тип переменной создали?

Kruschens
06.01.2018, 05:05
Вот по второму вопросу, как-то так:
По первому непонятно, какие проблемы, у меня все пишется и читается:
Может не тот тип переменной создали?
Тип переменной корректный, это косвенно видно по цвету соединительных линий (Черн. BOOL Красн. UINT16 Фиолет. FLOAT)

Спасибо за ответ. Номера вопросов и ответов немного перепелелись, но проблема такова : при попытке присвоить переменной PR_LAN значения выражения, в котором она же участвует, выдает ошибку (рис1). Потом Owen Logic внешне якобы принимает PR_LAN, но при копировании блока выражений убирает вторую PR_LAN (рис 2, крест)

PS: ПР200 нет живьем, будут не раньше середины месяца, но программу надо писать заранее. Без живого ПР200 сетевые переменные внешних устройств не сконфигурировать?

Сергей0308
06.01.2018, 05:42
Тип переменной корректный, это косвенно видно по цвету соединительных линий (Черн. BOOL Красн. UINT16 Фиолет. FLOAT)

Спасибо за ответ. Номера вопросов и ответов немного перепелелись, но проблема такова : при попытке присвоить переменной PR_LAN значения выражения, в котором она же участвует, выдает ошибку (рис1). Потом Owen Logic внешне якобы принимает PR_LAN, но при копировании блока выражений убирает вторую PR_LAN (рис 2, крест)

PS: ПР200 нет живьем, будут не раньше середины месяца, но программу надо писать заранее. Без живого ПР200 сетевые переменные внешних устройств не сконфигурировать?

Вы, образно выражаясь, пытаетесь два выхода подключить к одному входу, это ни одна программа не позволит! Допускается объединять выходы с открытым коллектором или с высокоимпендансным состоянием, называется "Монтажное ИЛИ"

Вот, со скольких угодно мест можно записать переменную:

34960

http://www.owen.ru/forum/showthread.php?t=26216&page=41

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

Kruschens
06.01.2018, 06:12
1. Вот, со скольких угодно мест можно записать переменную:
2. И для написания программы никакого реле не требуется! Можете всю программу сделать без реле!

1. У меня OL при попытке составить формулу PR_LAN=PR_LAN+2 пишет про "только один блок записи" http://www.owen.ru/forum/attachment.php?attachmentid=34956&d=1515204241
2. Всю без ПР не напишу без тестирования сетевого обмена и некоторых realtime функций.

Сергей0308
06.01.2018, 06:27
1. У меня OL при попытке составить формулу PR_LAN=PR_LAN+2 пишет про "только один блок записи" http://www.owen.ru/forum/attachment.php?attachmentid=34956&d=1515204241
2. Всю без ПР не напишу без тестирования сетевого обмена и некоторых realtime функций.

1. Правильно она всё пишет, попробуйте применить, что я предложил, там и ссылка есть, в соседней теме обсуждали! Или не подключать два выхода к одному входу!
2. Старайтесь по максимуму, что возможно, лучше потом чуть изменить, если что не так, чем всё полностью делать!

Kruschens
06.01.2018, 06:44
1. Правильно она всё пишет, попробуйте применить, что я предложил, там и ссылка есть, в соседней теме обсуждали! не допонял, в чем суть предложения?


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

У Вас есть аналогичное (но не порождающая реального выбора из-за to_INT(AI2)== to_INT(AI2) ) выражение для переменной Н1Насос http://www.owen.ru/forum/attachment.php?attachmentid=34960&d=1515206546

Сергей0308
06.01.2018, 07:04
не допонял, в чем суть предложения?


Покажите пожалуйста место, в котором я пытаюсь присоединить 2 выхода к одному входу ?

У Вас есть аналогичное (но не порождающая реального выбора из-за to_INT(AI2)== to_INT(AI2) ) выражение для переменной Н1Насос http://www.owen.ru/forum/attachment.php?attachmentid=34960&d=1515206546

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

Kruschens
06.01.2018, 07:08
Покажите пожалуйста место моей программы, в котором два выхода соединены вместе.

Сергей0308
06.01.2018, 07:14
Покажите пожалуйста место моей программы, в котором два выхода соединены вместе.

Ваша картинка?

34961

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

Kruschens
06.01.2018, 07:30
Вы пытаетесь это сделать(невозможное), программа как может упирается и не даёт Вам этого сделать! Что "это" сделать ?

Сергей0308
06.01.2018, 07:36
Что "это" сделать ?

Вы для начала, программу обновите, до последней версии, может всё и "рассосётся"!

34967

Kruschens
06.01.2018, 07:36
Еще хотелось бы узнать, как можно записать значение в сетевую переменную удаленного устройства не в цикле ПР, не по изменению значения переменной, а по триггеру - активности переменной типа Bool ?

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

Kruschens
06.01.2018, 07:41
Вы для начала, программу обновите, до последней версии, может всё и "рассосётся"!
34967

Версию я проверил до создания темы, но на сайте доступна "Среда программирования OWEN Logic (версия 1.9.125)"
http://www.owen.ru/catalog/programmiruemoe_rele_pr200/77396741 и у меня установлена 1.9.125 http://www.owen.ru/forum/attachment.php?attachmentid=34962&d=1515212691

где Вы взяли 1.9.147 ?

Сергей0308
06.01.2018, 07:45
Еще хотелось бы узнать, как можно записать значение в сетевую переменную удаленного устройства не в цикле ПР, не по изменению значения переменной, а по триггеру - активности переменной типа Bool ?

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

Насколько мне известно, ПР не поддерживает групповую запись, можно только по одной переменой писать!

Сергей0308
06.01.2018, 07:47
Версию я проверил до создания темы, но на сайте доступна "Среда программирования OWEN Logic (версия 1.9.125)"
http://www.owen.ru/catalog/programmiruemoe_rele_pr200/77396741 и у меня установлена 1.9.125 http://www.owen.ru/forum/attachment.php?attachmentid=34962&d=1515212691

где Вы взяли 1.9.147 ?

Меню помощь, проверить обновления, из программы!

Kruschens
06.01.2018, 08:00
Насколько мне известно, ПР не поддерживает групповую запись, можно только по одной переменой писать! Групповая запись не нужна, нужно управление записью в сеть по bool-переменной. Если FALSE, записи быть не должно.

Kruschens
06.01.2018, 08:05
Меню помощь, проверить обновления, из программы! Обновил версию, ошибка осталась

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

Сергей0308
06.01.2018, 08:16
Групповая запись не нужна, нужно управление записью в сеть по bool-переменной. Если FALSE, записи быть не должно.

Не отдельной переменной, а всего устройства, скорей всего "Опрос", но я им никогда ещё не пользовался:

34972

Но тогда оно и читать перестанет, наверно правильно деактивировать запись всех переменных!

Kruschens
06.01.2018, 08:31
Не отдельной переменной, а всего устройства, скорей всего "Опрос", но я им никогда ещё не пользовался:

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

Сергей0308
06.01.2018, 08:36
Нет доступа к настройкам без прибора. Предыдущая версия даже в это пустое меню не пускала - программа Owen Logiс завершалась аварийно.
Полный писец, приехали.

Всё там есть, создайте устройство, или подчинённого на мастера переключите!

Kruschens
06.01.2018, 08:41
Всё там есть, создайте устройство Как создать не знаю, но можно выбрать порт и модель ПР.

или подчинённого на мастера переключите! что имеется в виду и как переключить ?

Сергей0308
06.01.2018, 08:48
Как создать не знаю, но можно выбрать порт и модель ПР.
что имеется в виду и как переключить ?

Это непросто, а очень просто:

34974

Другое: Интерфейсы, добавить интерфейс, RS485 и Вы добавите второй интерфейс!

И надеюсь Вы ПР200 заказали с двумя сетевыми интерфейсами(платами), а то щас на втыкаем, а потом удалять придётся?