Просмотр полной версии : Какими функциями или блоками можно реализовать в ПР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 заказали с двумя сетевыми интерфейсами(платами), а то щас на втыкаем, а потом удалять придётся?
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot