PDA

Просмотр полной версии : СПК110 Modbus Slave



Mikewolf
26.02.2018, 15:06
Здравствуйте, меня интересует как решить проблему "отваливания" интерфейса Modbus при его реализации через библиотеку Modbus Slave. Интерфейс задействован для связи со скадой и ранее был реализован при помощи стандартных средств Codesys. После того, как переделал на библиотеку Modbus Slave - начала постоянно отваливаться связь по Modbus. Причём в той же сети висят еще 5 контроллеров со старой программой и с ними связь как была стабильной так и остаётся. В чём может быть проблема?

Евгений Кислов
26.02.2018, 15:11
Здравствуйте, меня интересует как решить проблему "отваливания" интерфейса Modbus при его реализации через библиотеку Modbus Slave. Интерфейс задействован для связи со скадой и ранее был реализован при помощи стандартных средств Codesys. После того, как переделал на библиотеку Modbus Slave - начала постоянно отваливаться связь по Modbus. Причём в той же сети висят еще 5 контроллеров со старой программой и с ними связь как была стабильной так и остаётся. В чём может быть проблема?

Добрый день. Без проекта и подробного описания проблемы (в чем проявляется отваливание, с какой частотой наблюдается и т.д.) дать какие-либо комментарии представляется затруднительным.

Mikewolf
26.02.2018, 17:31
Добрый день. Отваливание заключается в том, что контроллер перестает обмениваться данными с OPC-сервером. Статус устройства в OPC-сервере - TimeOut. Проявляется по-разному. Может стабильно держаться двое суток, может пропасть через два часа. Восстанавливается только сбросом питания контроллера. Кусок кода, отвечающий за обмен прилагаю ниже. Если необходим полный проект - могу отправить Вам на почту.

stComSettings.sPort := 2;

stComSettings.byStopBits := 1;
stComSettings.byParity := 0;
CASE sbr OF
0: stComSettings.ulBaudrate := 4800;
1: stComSettings.ulBaudrate := 9600;
2: stComSettings.ulBaudrate := 19200;
3: stComSettings.ulBaudrate := 38400;
4: stComSettings.ulBaudrate := 57600;
5: stComSettings.ulBaudrate := 115200;
END_CASE;



stComSettingsEx.byByteSize := 8;
IF I<200 THEN
fbComService
(
Enable := TRUE,
Settings := stComSettings,
sets_ex := stComSetting****
Task := ComSerice.COM_TSK.OPEN_TSK,
Ready=> ,
handle=>
);
ELSE
fbComService
(
Enable := TRUE,
Settings := stComSettings,
sets_ex := stComSetting****
Task := ComSerice.COM_TSK.RESET_TSK,
Ready=> ,
handle=>
);
j:=j+1;
IF j>10 THEN
J:=0;
I:=0;
END_IF;
END_IF;


IF xSlaveEnable AND fbComService.Ready THEN

fbModbusSlave
(
ComHandle := fbComService.handle,
DevAddr := bySlaveID,
pBuffer := ADR(awSlaveBuffer),
BufSize := SIZEOF(awSlaveBuffer),
NewData=> ,
Error=>
);

END_IF;

IF fbModbusSlave.NewData=FALSE THEN i:=i+1; END_IF;

Евгений Кислов
26.02.2018, 18:46
1. Отправьте проект на support@owen.ru
2. Какой OPC-сервер используете?
3. История с постоянным пересбросом порта при отсутствии записи из OPC - это так и задумано?

Mikewolf
26.02.2018, 19:13
1. Проект отправил.
2. ОPC-сервер ОВЕН версия 1.9.54.11942
3. Да, это была попытка сделать автоматическую перезагрузку интерфейса. Скада раз в секунду перещелкивает один бит в посылке туда-обратно, для того, чтобы данные постоянно обновлялись.

Bigcrash
27.02.2018, 07:25
Добрый день.
Вопрос конкретного новичка. Где можно почитать (или так подскажите) как обмениваться ModBus переменными между и СПК110 и любым другим контроллером. Допустим в Сигнетиксах есть полноценная MB карта. А как такую сделать на СПК?

Евгений Кислов
27.02.2018, 08:39
Добрый день. Ознакомьтесь с документами СПК. Modbus и СПК. Настройка обмена с верхним уровнем.
http://www.owen.ru/catalog/codesys_v3/27661129

Ильнур Гибадуллин
27.02.2018, 14:07
1. Проект отправил.
2. ОPC-сервер ОВЕН версия 1.9.54.11942
3. Да, это была попытка сделать автоматическую перезагрузку интерфейса. Скада раз в секунду перещелкивает один бит в посылке туда-обратно, для того, чтобы данные постоянно обновлялись.

Получил проекты, поставил и через несколько минут контроллер выпал по Watchdog'у, опрос остановился. Я рекомендую для начала отключить сторожевые таймеры в Конфигурации задач - убрать галочки Watchdog и выставить цикл выполнения VISU_TASK 200 мс. Свободное выполнение (freewheeling) не рекомендуем.

UfaFox
09.08.2023, 08:03
1. Проект отправил.
2. ОPC-сервер ОВЕН версия 1.9.54.11942
3. Да, это была попытка сделать автоматическую перезагрузку интерфейса. Скада раз в секунду перещелкивает один бит в посылке туда-обратно, для того, чтобы данные постоянно обновлялись.

Добрый день! Подскажите, как-то удалось решить данную проблему? Столкнулся с аналогичной проблемой. В сети 10 ПЛК, и связь пропадает попеременно, до перезагрузки. Пробовали с 2-мя, ситуация аналогичная, то у одного пропадет, то у второго.

Евгений Кислов
09.08.2023, 11:32
Добрый день! Подскажите, как-то удалось решить данную проблему? Столкнулся с аналогичной проблемой. В сети 10 ПЛК, и связь пропадает попеременно, до перезагрузки. Пробовали с 2-мя, ситуация аналогичная, то у одного пропадет, то у второго.

Добрый день.
Пришлите, пожалуйста, ваш проект и подробное описание проблемы на support@owen.ru (кто мастер, как детектируется пропадание связи, с какой периодичностью оно просходит и т.д.).

UfaFox
15.08.2023, 12:46
Добрый день.
Пришлите, пожалуйста, ваш проект и подробное описание проблемы на support@owen.ru (кто мастер, как детектируется пропадание связи, с какой периодичностью оно просходит и т.д.).

Проект отправил на почту, описал проблему подробнее