PDA

Просмотр полной версии : Проблема с МУ110-6У



Badrey
23.07.2014, 07:13
Пропадание реакции на аналоговых выходах при изменении значения в соответствующих регистрах, при обмене по modbus rtu (ПЛК), конфигуратора и сторонней программы modbus Master RTU. Обмен проходит всегда успешно, без ошибок. Если посмотреть лог обмена RTU, все в норме. ответы от МУ110-6У корректные, вроде как все хорошо. Но значения напряжения на выходах не меняются и равны нулю. Прибор отдавали в СЦ там его проверили, только конфигуратором, у них все работает. Схему тестирования проверял раз десять, хотя что там проверять..

Интересно то что если остановить обмен с ПЛК и запустить конфигуратор -> проверку работы аналоговых выходов, конфигуратор считывает значения с регистров которые записывались в модуль с ПЛК!

Nts
23.07.2014, 12:34
похожая ситуация будет,если записывать значения больше 1.Ошибок не будет,однако на выходе 0.Переменная должна быть от 0 до 1.Т.е. например 0.5 будет соответствовать 5В.
а вообще конечно лучше выкладывать проект и файл конфигурации.На "свежую" голову кто-нибудь чего-нибудь может "нарыть".

Badrey
23.07.2014, 13:55
Пишу в 0..1000 как в РЭ написано, обмен сделан с помощью бибки modbus.lib, проект позже выложу.

Nts
24.07.2014, 07:49
Ну да,не уточнил,у меня было подключение по протоколу овен на ПЛК100 через конфигурацию.Поэтому и 0-1 надо было записывать.Отлично работает.

Badrey
31.07.2014, 07:10
Тема остается открытой, выложил проект, вот кусок кода который должен инициировать отправку данных на МУ110:

IF enabl THEN
Buffer[1] := WORD_TO_BYTE(MV110_6Y[1]);
Buffer[0] := WORD_TO_BYTE(SHR(MV110_6Y[1],8));
Buffer[3] := WORD_TO_BYTE(MV110_6Y[2]);
Buffer[2] := WORD_TO_BYTE(SHR(MV110_6Y[2],8));
Buffer[5] := WORD_TO_BYTE(MV110_6Y[3]);
Buffer[4] := WORD_TO_BYTE(SHR(MV110_6Y[3],8));
Buffer[7] := WORD_TO_BYTE(MV110_6Y[4]);
Buffer[6] := WORD_TO_BYTE(SHR(MV110_6Y[4],8));
Buffer[9] := WORD_TO_BYTE(MV110_6Y[5]);
Buffer[8] := WORD_TO_BYTE(SHR(MV110_6Y[5],8));
Buffer[11] := WORD_TO_BYTE(MV110_6Y[6]);
Buffer[10] := WORD_TO_BYTE(SHR(MV110_6Y[6],8));
END_IF

wrt1_modbus(
ENABLE:=enabl ,
Mode:=MB_RTU,
DevAddr:=MV110_6Y_ADR,
FirstAddr:=0,
Quantity:=6,
ComHandle:=Settings.Port ,
TimeOut:=TimeOut ,
Buffer:=Buffer ,
Complete=>cmpl ,
Exception=>err,
regCnt=>DataSize );
enabl:=cmpl;

IF cmpl THEN
err_link_d2:=SEL(err=0, TRUE, FALSE);
step:=0;
END_IF

ASo
31.07.2014, 07:26
Вы постоянно инициируете обмен, не давая ему проходить.

Nts
31.07.2014, 07:38
овеновские модули прекрасно работают через конфигурацию
через протокол ОВЕН или Модбас,советую сразу привыкать к модбасу.

Badrey
31.07.2014, 09:43
Вы постоянно инициируете обмен, не давая ему проходить.

С чего бы это? :) a "enabl:=cmpl;" зачем тогда? да даже если бы и без сброса enabl, он нормально проходит на термодате, проверено.
да вообще обмен проходит, как я писал выше, судя по дампу обмена му110 отвечает что все ок.
Почему эти модули работают при опросе по протоколу ОВЕН при подключении конфигуратору без передергивания перемычки заводских настроек сети? выбран же модбас рту? Нафиг тогда вообще эта перемычка?