PDA

Просмотр полной версии : Ограничения по количеству переменных в ModBus Salve ПЛК-110



CTARuK
04.12.2014, 16:14
Существуют ли какие-либо ограничения по количеству переменных в ModBus Slave контроллера ПЛК-110?
Столкнулся с проблемой что при размере области памяти Modbus Slave в 408 регистров, сразу после программирования контроллера, в независимости от установленного длительности цикла, происходит сбрасывание соединения c ПЛК по Ethernet? При уменьшении кол-ва регистров до 248 ситуация не сильно улучшилась.

Гарчев Евгений
04.12.2014, 16:48
408 регистров - не так уж и мало, можно, конечно, переписать обмен через библиотеки, чтобы не затрагивать конфигурационную область памяти, но как вариант, попробуйте прошивку 2.15.3 (http://www.owen.ru/forum/showthread.php?t=14536&page=6&p=120358&viewfull=1#post120358). Длительность цикла не должна превышать 20-30 мс для нормальной работы портов. Проблема именно с обменом по ModBus TCP?

CTARuK
05.12.2014, 08:51
408 регистров - не так уж и мало, можно, конечно, переписать обмен через библиотеки, чтобы не затрагивать конфигурационную область памяти, но как вариант, попробуйте прошивку 2.15.3 (http://www.owen.ru/forum/showthread.php?t=14536&page=6&p=120358&viewfull=1#post120358). Длительность цикла не должна превышать 20-30 мс для нормальной работы портов. Проблема именно с обменом по ModBus TCP?

Опрашиваться контроллер будет по RS-485. Пробовал менять на RS-232. Результат такой-же...
Программирование контроллера осуществляется по Ethernet каналу. При программировании контроллера, после этапа заливки файла PRG, во время заливки файла "config.dat", в "Конфигурации ПЛК" экран статистики обновляется регулярно. После заливки конфигурационного файла и в момент заливки файла "SDB" обновление прекращается и соединение обрывается. Последующие подключения к контроллеру через Ethernet обновляют один раз отображаемый экран и снова происходит обрыв соединения.

Yegor
05.12.2014, 09:11
408?! Что там в них? Это ж несколько тысяч точек дискретного I/O. Это ж две сотни чисел с плавающей запятой. Откуда столько берётся, если не секрет?

CTARuK
05.12.2014, 11:18
408?! Что там в них? Это ж несколько тысяч точек дискретного I/O. Это ж две сотни чисел с плавающей запятой. Откуда столько берётся, если не секрет?
Вывод на панель температур по 7 нагнетателям - 102 аналоговых тега по 2 байта, 102 1-но байтных ошибки по этим тегам, 8-ми строковый архив событий по 40 байт на строку. ну и еще управляющие и дискретные теги.
С ограничениями на память не сталкивался пока, поэтому использую эту память на "широкую ногу"...

Гарчев Евгений
05.12.2014, 11:35
После заливки конфигурационного файла и в момент заливки файла "SDB" обновление прекращается и соединение обрывается. Последующие подключения к контроллеру через Ethernet обновляют один раз отображаемый экран и снова происходит обрыв соединения.

А зачем Вам нужен символьный файл (SDB)? Вы также собираетесь передавать данные через ОРС-сервер от 3S?


в "Конфигурации ПЛК" экран статистики обновляется регулярно.
Вот этот момент не совсем понятен, можете пояснить?

melky
05.12.2014, 11:48
Каким образом 408 регистров = 816 байт поместились в ограничение М=360 байт ? и 248 регистров = 496 байт
Модификация ПЛК самим Кодсисом же ограничена ?

Sergey666
05.12.2014, 11:49
Что-то не то у вас .
ПЛК 110-60м живет нормально и работает в конфигурации на слэйве 520 вордов и еще 50 даблвордов .
Длительность цикла 5 мс.

CTARuK
05.12.2014, 16:42
А зачем Вам нужен символьный файл (SDB)? Вы также собираетесь передавать данные через ОРС-сервер от 3S?
Да. Есть какие-то замечания по нему?

Вот этот момент не совсем понятен, можете пояснить?
Проще - после заливки config.dat соединение обрывается. При последующих подключениях к ПЛК происходит единичное обновление данных на экране и снова соединение обрывается.

Каким образом 408 регистров = 816 байт поместились в ограничение М=360 байт ? и 248 регистров = 496 байт
Модификация ПЛК самим Кодсисом же ограничена ?
Здесь написано подругому (http://www.owen.ru/catalog/plc110_old/opisanie)

L - объем памяти ввода/вывода 360 байт (Low license)
M - объем памяти ввода/вывода не ограничен (Med. license)

Что-то не то у вас .
ПЛК 110-60м живет нормально и работает в конфигурации на слэйве 520 вордов и еще 50 даблвордов .
Длительность цикла 5 мс.
Значит буду дальше искать причину...

lazy
05.12.2014, 17:07
С помощью библиотеки ModBus.lib можно запилить слейв на RS. правда только ModBus ASСII. и передавать хоть тыщю регистров )
использовал MB_ASCII_RX & MB_ASCII_TX

capzap
05.12.2014, 17:17
Значит буду дальше искать причину...

ну раз у Вас слейв по последовательному порту, а по ethernet Вы кодесисом смотрите, так может у Вас просто плк в перегруз выходит. Можете ведь оставить только конфигурацию, а PLC_PRG "пустой" сделать и проверить будет в таком случае отпадать соединение или нет

CTARuK
05.12.2014, 19:22
С помощью библиотеки ModBus.lib можно запилить слейв на RS. правда только ModBus ASСII. и передавать хоть тыщю регистров )
использовал MB_ASCII_RX & MB_ASCII_TX Ну это оставлю на крайний случай :).


ну раз у Вас слейв по последовательному порту, а по ethernet Вы кодесисом смотрите, так может у Вас просто плк в перегруз выходит. Можете ведь оставить только конфигурацию, а PLC_PRG "пустой" сделать и проверить будет в таком случае отпадать соединение или нет

На чисто пустом проекте не проверял конечно... Но всю прогу почти закоментировал...

Частично разобрался... сейчас конфигурация нормально работает на 350 регистрах. После физ.перегрузки контроллера такая конфигурация некоторое время нормально загружаться.
Придется немного проект доработать конечно, но уже что-то.
Выше рекомендовали прошивку новую. Попробую её еще.

Да, еще. Не упомянул наверно главное... В проекте Master ModBus опрашивает 14 МВА8 и 7 МДВВ - в сумме 102 Real + 116 Word (102 ошибки по параметрам).
Я первое время пытался экспериментально установить количество регистров, выкидывая их из проекта, дошло аж до 102 регистров.
Потом только додумался контроллер перезагрузить :(.

С понедельника продолжу экспериментировать. Все же у Sergey666 и большее количество регистров было?

capzap
05.12.2014, 19:46
скорость какая на сом-порту?

Валенок
05.12.2014, 22:26
Долгие перетирания и, традиционно, проекта так и нету.


С помощью библиотеки ModBus.lib можно запилить слейв на RS. правда только ModBus ASСII. и передавать хоть тыщю регистров )
использовал MB_ASCII_RX & MB_ASCII_TX
ПЛК110-60/30..-M.
Штатный слейв на RS482-2 совмещенный с Модбас-TCP.
Размер - 8000 (восемь тысяч) байт (2000 x 4 byte)
Мастером был ПЛК63 (тут рулил syslibcom), клиентом - прожка на делфи.
Тест - простой. Запись значений 1..4000 в регистры (ф.16, 32x123рег+1x64рег). Слейв прибавлял N. Чтение и проверка (ф.3 32x125рег). Ошибок - нет.
(Проверял возможности)


408?! Что там в них? Это ж несколько тысяч точек дискретного I/O. Это ж две сотни чисел с плавающей запятой. Откуда столько берётся, если не секрет?
)) Краткий пример одного из проектов.
6 x МВ110-8А (полностью) -> на [RS-485-1 мастер ПЛК110-60..-M слейв RS-485-2/TCP] -> Внешнее приложение
Данные с МВ читаются сразу в область слейва на 482-2/TCP - вот и 576 байт. МинЦ - 0. Реально болтается 0.5-2.5мс т.к. есть еще и рабочий код.
Всё работает

melky
05.12.2014, 23:48
CTARuK М вроде 600 байт или около.
Или это для другого ПЛК было указано. Вообще техподдержка точно долна сказать, сколько для какого ПЛК
Да, действительно, М ограничен только объемом оперативы, по умолчанию включено на ввод-вывод 16 кБ

Гарчев Евгений
08.12.2014, 15:13
Да. Есть какие-то замечания по нему?

Проще - после заливки config.dat соединение обрывается. При последующих подключениях к ПЛК происходит единичное обновление данных на экране и снова соединение обрывается.

Здесь написано подругому (http://www.owen.ru/catalog/plc110_old/opisanie)


Значит буду дальше искать причину...

А какой объем проекта (файл default.prg)?
Для обмена с ОРС 3S лучше использовать последнюю версию GateWay-сервера. Если обмен будет по ТСР, то лучше и прошивку сменить на 2.15.3.

SBER
08.12.2014, 22:36
Да есть ограничения по передаче данных через конфигуратор, причем сумме объема всех переменных по всем портам конфигуратора. Пару лет на назад не смог запихнуть в плк 100 опрос Float переменных с 48 МВА8, тормознулся где-то на 40. Решил вопрос опросом через библиотеку.

CTARuK
09.12.2014, 09:50
скорость какая на сом-порту?
38400 или 115200. Контроллер физически отключён от оборудования.


Долгие перетирания и, традиционно, проекта так и нету.
Для Вас :) выкладываю пустой проект с конфигурацией. (В котором конфигуратор также отключается при программировании)


CTARuK Да, действительно, М ограничен только объемом оперативы, по умолчанию включено на ввод-вывод 16 кБ
Да. В этом я разобрался :)


А какой объем проекта (файл default.prg)?
Для обмена с ОРС 3S лучше использовать последнюю версию GateWay-сервера. Если обмен будет по ТСР, то лучше и прошивку сменить на 2.15.3.
На пустом проекте где-то 30 кБ. Config.dat - 64 кБ, Download.SDB - 28 кБ. Точнее можете в выложенном файле посмотреть
Версия CodeSys у меня 2.3.9.41. Прошивку пока не пробовал сменить.

Да есть ограничения по передаче данных через конфигуратор, причем сумме объема всех переменных по всем портам конфигуратора. Пару лет на назад не смог запихнуть в плк 100 опрос Float переменных с 48 МВА8, тормознулся где-то на 40. Решил вопрос опросом через библиотеку.
Хмм. Вот это бы хотел поточнее определить. У меня пока получалось залить неотваливающуюся конфигурацию в 48 кБ (config.dat). Но я удалял из конфигурации сразу группы параметров...

CTARuK
16.12.2014, 07:06
В итоге добился нормальной связи с ПЛК при размере Config.dat - 55кб. На этом и остановился. Всем спасибо. Тему можно закрывать.

Филоненко Владислав
16.12.2014, 12:29
Config.dat - есть ограничение не более 100 кБ.
Делать опрос сотен и тысяч переменных через конфигурацию - ИМХО, изврат. Возможности конфигурации по гибкости и переносимости меньше библиотеки.

CTARuK
18.12.2014, 11:16
Config.dat - есть ограничение не более 100 кБ.
Делать опрос сотен и тысяч переменных через конфигурацию - ИМХО, изврат. Возможности конфигурации по гибкости и переносимости меньше библиотеки.

Хмм. Мой уровень программирования не так хорош, чтобы писать библиотеки для ПЛК. Но на будущее буду иметь ввиду...

capzap
18.12.2014, 11:44
Хмм. Мой уровень программирования не так хорош, чтобы писать библиотеки для ПЛК. Но на будущее буду иметь ввиду...

Хм, сложно осилить готовые проекты для примеров? http://www.owen.ru/forum/showthread.php?t=13584

CTARuK
19.12.2014, 10:07
Хм, сложно осилить готовые проекты для примеров? http://www.owen.ru/forum/showthread.php?t=13584

Я похоже неправильно понял Филоненко Владислава. Подумал, что он предлагает засунуть опрос в библиотеку, а не использовать ModBus.lib.

Но и данные примеры не видел. Спасибо!
На будущее рассмотрю и такой вариант.

YuriBel
10.06.2015, 15:13
Присоединюсь к вопросу. Наступил вот на какие грабли: при внесении в slave элементов 8 bit восемь таких элементов опрашиваются нормально, девятый не откликается. Итого получается, что через конфигурацию можно поимоновать всего 64 битовых переменных. Речь даже не про 500 регистров, а всего про 64 бита. Кто-нибудь с подобным сталкивался?

Вольд
10.06.2015, 15:19
Присоединюсь к вопросу. Наступил вот на какие грабли: при внесении в slave элементов 8 bit восемь таких элементов опрашиваются нормально, девятый не откликается. Итого получается, что через конфигурацию можно поимоновать всего 64 битовых переменных. Речь даже не про 500 регистров, а всего про 64 бита. Кто-нибудь с подобным сталкивался?
Зачем передавать биты, передавай байты или слова, а затем распаковывай.

Валенок
10.06.2015, 15:29
Наступил вот на какие грабли: при внесении в slave элементов 8 bit восемь таких элементов опрашиваются нормально, девятый .....?

Долгие перетирания и, традиционно, проекта так и нету.
добрая такая традиция

YuriBel
10.06.2015, 18:33
За комментарии спасибо, мне уже подсказали, в чем я не прав.

Sashokxxx
18.08.2015, 13:42
С помощью библиотеки ModBus.lib можно запилить слейв на RS. правда только ModBus ASСII. и передавать хоть тыщю регистров )
использовал MB_ASCII_RX & MB_ASCII_TX

Не могли бы скинуть примерчик использования библиотеки ModBus.lib протокол ModBus ASСII. Sashokxxx@rambler.ru

Филоненко Владислав
18.08.2015, 20:39
Присоединюсь к вопросу. Наступил вот на какие грабли: при внесении в slave элементов 8 bit восемь таких элементов опрашиваются нормально, девятый не откликается. Итого получается, что через конфигурацию можно поимоновать всего 64 битовых переменных. Речь даже не про 500 регистров, а всего про 64 бита. Кто-нибудь с подобным сталкивался?

У конфигуратора есть пределы. Используйте опрос регистров или string и потом распаковывайте через указатель. Не забываем данные копировать, а не работать напрямую с областью памяти I/O по указателю.