Written on: 02. 04. 2012 [10:01]
|
Bkmz
Ilya Sytyi
Topic creator
registered since: 27.07.2011
Posts: 11
|
Подскажите пожалуйста как сделать так что бы функция SYS.system("....не важно что.....",true); вызывалась только один раз при старте скады?
|
Written on: 05. 04. 2012 [07:51]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"Bkmz" wrote:
Подскажите пожалуйста как сделать так что бы функция SYS.system("....не важно что.....",true); вызывалась только один раз при старте скады?
Читаем документацию на предмет флага "f_start":
f_start — Флаг первого выполнения программы контроллера, запуск, только чтение.
Learn, learn and learn better than work, work and work.
|
Written on: 27. 06. 2018 [17:27]
|
Sergei26
Сергей Рождествин
registered since: 10.05.2018
Posts: 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.
|
Written on: 28. 06. 2018 [16:41]
|
sonder
Олександр Клюшин
registered since: 24.12.2009
Posts: 47
|
В соответствии с
документацией
SYS.DAQ.ModBus.mb1.a1.var1.set( ElTp val, int tm = 0, int utm = 0, bool sys = false ) — записывает значение val в атрибут с меткой времени tm:utm и признаком системного доступа sys.
[This article was edited 2 times, at last 28.06.2018 at 16:44.]
|
Written on: 02. 07. 2018 [15:56]
|
Sergei26
Сергей Рождествин
registered since: 10.05.2018
Posts: 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);
[This article was edited 1 times, at last 02.07.2018 at 16:11.]
|