УкраїнськаEnglishmRussian
Вход/Новый
В теме много сообщений

Кнопка FormEl и запись в регистр


Автор Сообщение
Сообщение создано: 02. 04. 2012 [10:01]
Bkmz
Ilya Sytyi
Создатель темы
Зарегистрирован(а) с: 27.07.2011
Сообщения: 11
Подскажите пожалуйста как сделать так что бы функция SYS.system("....не важно что.....",true); вызывалась только один раз при старте скады?
Сообщение создано: 05. 04. 2012 [07:51]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"Bkmz" wrote:

Подскажите пожалуйста как сделать так что бы функция SYS.system("....не важно что.....",true); вызывалась только один раз при старте скады?

Читаем документацию на предмет флага "f_start":
f_start — Флаг первого выполнения программы контроллера, запуск, только чтение.


Learn, learn and learn better than work, work and work.
Сообщение создано: 27. 06. 2018 [17:27]
Sergei26
Сергей Рождествин
Зарегистрирован(а) с: 10.05.2018
Сообщения: 4
Здравствуйте коллеги.
Подскажите пожалуйста. Описываю подробно для полноты картины и чтобы в дальнейшем можно было этим воспользоваться.
Есть контроллер (Siemens S-1200)
В программе есть блок MB_Server, в блоке массив регистров.
Подключаюсь к контроллеру:
OpenScada - Сбор данных - ModBus - mb1 - a1
Запрос вида:
R:1:rw:var1:Переменная1 (т.е. читать/писать)
Значение считывается. В "Атрибутах" в окошке можно поменять значение. И соответственно меняется значение на контроллере.
В программе, в "Вычислитель на Java Подобном языке" в запросе вида:

var test;
test = SYS.DAQ.ModBus.mb1.a1.var1.get();
Значение считывается.

ВНИМАНИЕ ВОПРОС !?
Каким образом изменить значение, (не в окошке в Атрибутах, а) в программе и передать его через ModBus в Контроллер?

В форумах находил решения типа
SYS.Transport.Serial.out_rtu.messIO(pdu, "DATA");

Но как я понимаю нужно в OpenScad'у создавать ModBus - master. Т.е. Создавать входной Сокет в транспортах и тд.
А как в Роли client'а передать данные в контроллер через modbus.

Сообщение создано: 28. 06. 2018 [16:41]
sonder
Олександр Клюшин
Зарегистрирован(а) с: 24.12.2009
Сообщения: 47
В соответствии с
документацией
SYS.DAQ.ModBus.mb1.a1.var1.set( ElTp val, int tm = 0, int utm = 0, bool sys = false ) — записывает значение val в атрибут с меткой времени tm:utm и признаком системного доступа sys.

[Сообщение редактировалось 2 раз(а), в последний раз 28.06.2018 в 16:44.]
Сообщение создано: 02. 07. 2018 [15:56]
Sergei26
Сергей Рождествин
Зарегистрирован(а) с: 10.05.2018
Сообщения: 4
Спасибо "sonder"
Все получилось.
Напишу для новичков

Запись
SYS.DAQ.ModBus.mb1.a1.var1.set(23232323232323, tm = 0, utm = 0, sys = false);

Осуществляет запись значения 23232323232323 в переменную :
Сбор данных / ModBus / mb1 / a1 / R:1:rw:var1
mb1 / a1 / var1 - у Вас будут свои

Вместо конкретного значения 23232323232323 можно записать свою переменную.
Например
SYS.DAQ.ModBus.mb1.a1.var1.set(var2, tm = 0, utm = 0, sys = false);

[Сообщение редактировалось 1 раз(а), в последний раз 02.07.2018 в 16:11.]



5043