PDA

Просмотр полной версии : Плк 63 + МУ 110-8И + МВ 110-8АС HELP



KIPiA_Krg
09.01.2012, 09:39
Добрый день !!! (можно сказать я "чайник")
как можно подробнее подскажите как управлять (передать значение ) выходами МУ 110-8И желательно на языке ST )))

сетевой адрес 24 выход AO1 [6]

send_fl_owen не могу разобраться

Николаев Андрей
09.01.2012, 10:49
Вам нужно использовать библиотеку owen.lib или ModBus.lib.

Примеры использования на диске к контроллеру ПЛК63. На st.

KIPiA_Krg
09.01.2012, 12:57
чтение получилось по примеру а вот запись не получилось как осуществить ? (желательно по подробнее) не то что бы не получилось понять не могу , можно на конкретном примере показать ?

Николаев Андрей
09.01.2012, 15:33
Подробнее в чем Вам конкретно помочь и что не понятно в примерах шлите на plc@owen.ru

capzap
09.01.2012, 15:47
http://www.owen.ru/forum/showthread.php?t=11237тут то что, разве плохие примеры?

KIPiA_Krg
11.01.2012, 07:28
День добрый !! Николаев Андрей я вам отправил на почту plc@owen.ru

KIPiA_Krg
11.01.2012, 09:15
тут то что, разве плохие примеры?
хорошие ))) но вот подскажите как в частности записать значение на выход МУ 110-8И ?

capzap
11.01.2012, 09:42
По протоколу ModBus в прибор передается значение, подаваемое на аналоговый ВЭ (в диапазоне от 0 до 1000) (см. таблицу 4.1). Запись в соответствующие регистры осуществляется командой 16 (0x10), чтение – командами 3 (0x03) или 4 (0x04). Список регистров протокола ModBus приведен в Приложении В (таблица В.4)

Открываете архив под номером 7, открываете проект под названием "Modbus запись Int и Real (ST).pro" и выбираете за основу своего проекта запись 16 функцией, с одной лишь разницей что (*количество записываемых регистров*) ставите равным 1, таким образом Вы запишите всего лишь одно INT-овое значение. Как то так

KIPiA_Krg
11.01.2012, 10:30
По протоколу ModBus в прибор передается значение, подаваемое на аналоговый ВЭ (в диапазоне от 0 до 1000) (см. таблицу 4.1). Запись в соответствующие регистры осуществляется командой 16 (0x10), чтение – командами 3 (0x03) или 4 (0x04). Список регистров протокола ModBus приведен в Приложении В (таблица В.4)

Открываете архив под номером 7, открываете проект под названием "Modbus запись Int и Real (ST).pro" и выбираете за основу своего проекта запись 16 функцией, с одной лишь разницей что (*количество записываемых регистров*) ставите равным 1, таким образом Вы запишите всего лишь одно INT-овое значение. Как то так
спасибо*.
а по протоколу ОВЕН ? (просто все модули и сама программа написана с использованием протокола ОВЕН ) .

capzap
11.01.2012, 11:07
тоже самое, открываете проект "OWEN запись и чтение REAL из TPM201(ST).pro", используете все что касается send_fl_owen
Адрес прибора в соответствии с таблицей Г.1 руководства, если у Вас
сетевой адрес 24 выход AO1 [6], то 6 выход будет 29
Имя параметра "r.ое"
Value от 0.0 до 1.0

KIPiA_Krg
11.01.2012, 11:33
send_fl_owen(
Enable:=Enabl , (* разрешение работы блока *)
Addr:= 29, (*адрес прибора*)
AddrLen:=A8BIT, (*длина адреса*)
Name:= 'r.OE', (*имя параметра, значение которого записываем в МУ 110-8И *)
Index:= 0, (*индекс параметра*)
RealType:= FLOAT24, (*тип параметра, значение которого записываем*)
Value:=a , (*параметр, значение значение которого записываем a = 0.2 )
ComHandle:=Settings.Port, (*номер COM-порта*)
TimeOut:=TimeOut , (* время тайм-аута [мс] - макс. задержка на обработку запроса *)
Complete=>cmpl , (* скопировать признак готовности результата *)
Error=> err); (* скопировать регистр ошибок *)

контролер перезагружается и все ..... как быть ?

ASo
11.01.2012, 11:48
1. На какой FB указывает send_fl_owen?
2. Вы не правильно пользуетесь библиотекой в общем случае. Enable - это триггер. Его взвели, сбросили и ждем готовности Complete. А иначе - постоянная попытка рестарта посылки.

KIPiA_Krg
11.01.2012, 11:50
1. На какой FB указывает send_fl_owen?
2. Вы не правильно пользуетесь библиотекой в общем случае. Enable - это триггер. Его взвели, сбросили и ждем готовности Complete. А иначе - постоянная попытка рестарта посылки.

owen_set_real

KIPiA_Krg
11.01.2012, 12:10
CASE Addres OF
24..31: a:=AO1[i]; (*присваиваем массиву значение на выходе*)

END_CASE
так правильно ? 29 адрес , a = AO1[6] (a=0.2 для примера то на выходе AO1[6] = 0.2 )

KIPiA_Krg
11.01.2012, 12:21
цель такая , нужно что бы на выходе МУ 110-8И переменная AO1 [i] = j (i =6, j=0.2 для примера)

ASo
11.01.2012, 12:26
Проект выложите. Будет время, посмотрю.