Действительно, работа с панелью-слэйвом тяжела, необходимо по три переменных. Посмотрите этот пример:
IPslv_retain.zip
Действительно, работа с панелью-слэйвом тяжела, необходимо по три переменных. Посмотрите этот пример:
IPslv_retain.zip
Эта ветка у нас продублировалась. Точнее в моей другой теме начался оффтоп.
Посмотрел пример, суть понятна. Попробовал у себя реализовать на SFC - не получается. Тот UMD, который предназначен для восстановления настроек, отрабатывает, записывает данные в соответствующие регистры панели. Однако, в саму панель данные не попадают! Поэтому и в в UMD, предназначенном для чтения значений, заданных пользователем, соответствующие регистры содержат нули. И еще не совсем понял, для чего в примере используется ФБ BLINK?
Пробовал реализовать работу этих UMD By Command и By poll time. Результат не порадовал.
Последний раз редактировалось Flomaster; 18.11.2008 в 14:56.
Сам такое пробовал на разных языках.
Очень много проблем если много переменных. Даже если они на разных экранах.
Глобальная проблема в скорости опроса. наилучший результат на 38400. 115200 - кто-то не работал.
Вообщем намучился и бросил тупую затею.
Им надо было сделать сохраняемые переменные в панели. Тогда там можно хранить настройки и уставки.
Вложение 826
Вот часть проекта, в которой пытаюсь сохранить данные с панельки и затем восстановить.
Ко всему прочему появился вопрос по ФБ TON, который используется в данном примере. На его вход подано IN:=TRUE, интервал времени истек, а на выходе TRUE так и не появляется. Такое замечал уже не раз при использовании TON. Почему это может происходить?
project.RAR
Еще раз.
Для чего тогда был этот пост? Если для того, чтобы просто отписаться, проще было сказать, что Вы не можете мне помочь. А как задать вопрос еще более конкретно - фантазии уже не хватает.
Если созданы 2 UMD, которые определяют одно и то же физическое устройство, то при здравой логике запись в регистры одного UMD (при выключенном втором UMD) должна отражаться на ИП320. Однако в программе в регистры значения попадают, а в самой ИП320 ничего не меняется. Причем посыл команды 0x00FF тому UMD, который должен восстановить настройки, ничего не меняет. Уж как только не пробовал.
Так что как с этим всем бороться - неизвестно...
блок blink у вас вызывается следующим образом
BLINK_RESTORE(ENABLE:=TRUE , TIMELOW:=T#98ms , TIMEHIGH:=T#200ms );
соответственно, 98 мс передача не производится, а потом в течение 200мс в каждом цикле вы заставляете umd стучаться в панель.
Попробуйте задать
BLINK_RESTORE(ENABLE:=TRUE , TIMELOW:=T#200ms , TIMEHIGH:=T#2ms );
Быть может даже не 200мс, а более в time low, но timehigh надо задать примерно равным одному циклу ПЛК.
Еще одно важное замечание.
Поставьте в конфигурации ПЛК в модбас мастере в свойствах интерфейса параметр framing time 10 или 20 мс.
и в UMD параметр amount repeat 1.
Уважаемая техподдержка!
Как там дела с моей проблемой? Есть ли у вас мысли по поводу ее решения?