PDA

Просмотр полной версии : Передача значений переменных в ПЛК



merlinkun
21.08.2019, 09:33
Здравствуйте!

Вроде простая проблема, но никак не могу разобраться. Есть узлы ПЛК110-60 и АРМ. В проекте MasterSCADA 4D созданы переменные (типа INT) в обоих узлах. Вопрос: как передать значение переменной из узла в узел? В руководстве написано - простым перетаскиванием источника данных на получателя данных, и вроде как по внутреннему протоколу данные будут передаваться. Сделал. Результат: из ПЛК в АРМ данные передаются, из АРМ в ПЛК - нет. Проект во вложении, буду признателен за помощь!

Версия MasterSCADA 1.2.5.9307

KrAssor
21.08.2019, 12:14
Попробуйте для начала сделать IP адрес АРМ не "127.0.0.1", а действительный адрес в локальной сети. Желательно, чтобы он был в той же подсети, что и контроллер. Если вы не меняли сетевые настройки в контроллере, то маска по умолчанию 255.255.255.0, соответственно IP адрес АРМ должен быть 10.0.6.Х. Наличие связи с обеих сторон проверить пингами.

merlinkun
21.08.2019, 12:55
Огромное спасибо! Вроде и адрес ставил, а догадаться проверить пинг со стороны PLC не смог. :) Все зло в ******** Windows Firewall. Спасибо!

akphantom
07.10.2019, 07:01
Добрый день! На самом деле у меня из АРМ в ПЛК логические сигналы на цифровые выходы напрямую не передавались. Пришлось создать в параметрах ПЛК переменные и через них передавать на выходы. Цифровые входы передаются сразу напрямую. Почему так?

melky
07.10.2019, 09:44
akphantom все у вас передавалось, вот только программа ПЛК их сразу переписывала на значения согласно программе.

akphantom
07.10.2019, 12:42
akphantom все у вас передавалось, вот только программа ПЛК их сразу переписывала на значения согласно программе.

В ПЛК не было программы, которая обращалась к выходам. Весь проект крутится в АРМ, в ПЛК только опросы устройств по разным шинам, входов и выходов. Или же речь идёт об драйвере выходов, вшитом в ПЛК? Он перезаписывает?

melky
07.10.2019, 12:52
Без программы ПЛК выходы не запишет вообще ни при каких обстоятельствах. Вам надо организовать программу управления от сетевых переменных к выходам.
Это безопасность прежде всего. Кроме случаев, когда ПЛК или ПР способен работать в режиме обычного модуля ввода/вывода, например ПР200 можно загнать в такой режим. В остальных случаях регистры выходов являются Только для чтения о их состоянии.

melky
07.10.2019, 13:06
И что ? программу для управления выходами там писать не надо ? Тупо лезть в регистры и надеяться, что сработает выход?

melky
07.10.2019, 14:01
Относятся. Предположим что в одной части MasterScada мы написали код для ПЛК, который будет управлять выходами по логике.
А в другом месте мы читаем состояния выходов данного ПЛК и что, просто тут же пишем в эти выходы ?

ну-ну.... особенно если он сработает не вовремя..... Принципов работы ПЛК никто не отменял, принципов безопасности тоже. А то, что ПЛК не на CodeSys а на MasteScada не отменяет этих принципов. Не написали программы для управления выходами, они не попали в ПЛК. все.

akphantom
09.10.2019, 04:34
Спасибо за ответы! Вопрос этот уточню в тех.поддержке. Но вероятно, действительно напрямую выходы задействовать нельзя по той причине, что они перезаписываются нулевыми значениями. Я так думаю, что по аналогии это как если из любой программы передавать значения в её выходной параметр, т.е. его надо передавать постоянно в каждом цикле вызова программы. Если его перестать передавать, то программа будет возвращать нулевое значение. С выходами ПЛК полагаю, что ситуация такая же. Когда выход связываем через параметр в дереве системы, то значение выхода будет в каждом цикле считываться с этого параметра.

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