PDA

Просмотр полной версии : ПЛ110-30 М02 , ModbusSlave через RS-232



monteg
05.06.2016, 11:51
Здравствуйте,
имеется ПЛ110-30(М02) и СП307, соединение через rs-232, панель - мастер. Обмен в панели сделан через макрос. Очень плохо работает Writes, особенно если length > 10.
Причем
1. замена Writes на несколько Write работает хорошо
2. замена ПЛК110-30(М02) на старый образец, то же все хорошо

получается в ПЛК110-30(М02) плохо реализовано 16 функция modbus, или я что-то накосячил?

monteg
05.06.2016, 15:23
Сделал такой "костыль", вроде работает



BOOL writes( WORD address, WORD amount, WORD *buffer ) {
BOOL result;
WORD i;
for ( i = 0; i < amount; i++ ) {
result = Write( PLC, 1, MODBUS_RTU_REG_4X, address, 0, TYPE_WORD, buffer[ i ] );
if ( result ) {
address++;
} else {
break;
}
}
//result = Writes( PLC, 1, MODBUS_RTU_REGS_4X, address, amount, buffer );
return result;
}

Валенок
05.06.2016, 15:34
При куче плюсов МО2, в нем есть и куча минусов. Один из минусов - штатный слейв. Шаг назад по сравнению с МО1.
За свои слова - отвечаю.

monteg
05.06.2016, 16:35
а можно немного поподробней, интересно же

monteg
05.06.2016, 16:38
ведь про проблемы в мануалах не пишут

Валенок
05.06.2016, 17:16
В отличие от МО1, в МО2 немерянная задержка ответа штатного слейва по RS485-1/2.
Опросить быстрее 14мс так и не удалось. Куда время уходит - без понятия. Какие-то мифические системные задачи в проекте из ";" которых тупо не было в MO1 (его за это время пару раз с хвостиком опросить можно было, при этом он еще несколько десятков фб прогоняет)

monteg
05.06.2016, 18:54
да, неприятная особенность, особенно когда нельзя время ожидания ответа поменять

Валенок
05.06.2016, 19:20
Ну не все потеряно. Syslibcom - как часы, видима тута нужно и слейва программного запиливать.

monteg
05.06.2016, 21:15
Да было бы здОрово, можно было бы параметры подключения из пользовательской программы менять

monteg
05.06.2016, 21:18
в принципе функции 3, 4, 6, 16 можно за неделю реализовать... ну плюс отладка

ASo
05.06.2016, 21:32
Так это.... реализовано в бибке modbus.lib

Валенок
05.06.2016, 21:35
Слейв. Не мастер )

monteg
05.06.2016, 21:43
одна проблема - нужен короткий цикл, может не для каждого приложения подойти

ASo
05.06.2016, 21:55
Слейв. Не мастер )Ну, тогда надо попросить ОВЕН портировать слэйв из КДС3.
Скорее всего, он также работает через syslibcom и они скорее всего одинаковые.

Валенок
05.06.2016, 22:09
одна проблема - нужен короткий цикл, может не для каждого приложения подойти
А тута вступают в силу плюсы МО2. Написать длинный цикл (минц) - надо постараться ))

monteg
05.06.2016, 22:10
кстати да, не подумал...

Валенок
05.06.2016, 22:10
...попросить ОВЕН портировать слэйв из КДС3...
Всего-то делов )))

Евгений Дударев
07.06.2016, 12:36
Здравствуйте, рабочая версия Modbus_slave для Codesys 2.
Прошу любить и тестировать.

capzap
07.06.2016, 13:22
Здравствуйте, рабочая версия Modbus_slave для Codesys 2.
Прошу любить и тестировать.

Позвольте полюбопытствовать, а зачем Вы дублируете выполнение таймера

monteg
17.06.2016, 08:49
при попытке залить этот "проект" в ПЛК, вылазит ошибка

monteg
17.06.2016, 08:57
даже , если в "пустой" проект подключить енту библиотеку вылазит тоже самой