значит надо переходить на библиотеки, проверять наличие соединения и после этого подключать слейв в свободный доступ и вместо штатного ретайна, самостоятельно при пуске вычитывать данные из файла, ну и запись производить по приходу изменения
значит надо переходить на библиотеки, проверять наличие соединения и после этого подключать слейв в свободный доступ и вместо штатного ретайна, самостоятельно при пуске вычитывать данные из файла, ну и запись производить по приходу изменения
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Не совсем понял идею.
Собственно что мне нужно:
Смотреть, менять значения уставок по месту (на СПК207)
Смотреть, менять значения этих же уставок с верхнего уровня (ВУ).
И что бы значения уставок сохранялись при выключении/включении контроллера.
(ВУ) хочет читать уставку и записывать её по одному адресу регистра хранения.
Читать уставку (ВУ) будет периодически, записывать непосредственно один раз при вводе/изменению.
Как это реализовать на СПК207, я пока не вижу, наверное это невозможно.
Последний раз редактировалось @ND; 04.02.2016 в 13:06.
. Организуем слэйв для уставки из верхнего уровня (далее ВУ).
. Заводим глобальную переменную для уставки по месту (далее "переменная по месту").
. Заводим глобальную рабочую переменную текущей уставки, которая будет использоваться в программе.
При первом старте:
. ПЛК читает уставку из файла.
. записываем прочитанную уставку в слэйв ВУ и в переменную по месту.
Делаем ФБ
входы:
. уставка ВУ
. уставка по месту
вместо выхода используем глобальную переменную (или VAR_IN_OUT):
. уставка текущая
ФБ на свои входы получает уставки из двух мест и контролирует их изменение.
1. Уставку по месту постоянно сравниваем с текущей (рабочей). Если изменилась, то присваиваем ее значение текущей и в слэйв ВУ.
2. Если изменилась уставка ВУ, то присваиваем ее значение текущей (рабочей).
Для того, чтобы менять уставку по месту используем переменную уставки по месту, а для отображения по месту используем текущую (рабочую).
Если проверяем изменения именно в таком порядке, то приоритет имеет уставка от ВУ.
После каждого изменения текущей (рабочей) уставки сохраняем значения в файл. Из него данные будут читаться при включении ПЛК (вместо РЕТАИН).
Всё бы хорошо, да только есть одна проблема!. записываем прочитанную уставку в слэйв ВУ и в переменную по месту.
111.png
Как я уже говорил выше, не получается записывать значения в область памяти %I, хоть через соотнесение переменных, хоть напрямую!
Вот он корень зла!!!
Последний раз редактировалось @ND; 09.02.2016 в 06:59.