PDA

Просмотр полной версии : Временные параметры ПЛК



Fudz
21.03.2013, 18:16
Возникла такая проблема. Есть ПЛК110-32 на одном RS485 подключено 11 устройств. Среди них есть температурный датчик. Опрашивается этот датчик раз в секунду (Plling time ms 1000). Но в действительности он отвечает раз где-то в 3 секунды. Не могу понять где теряется время.

Yegor
22.03.2013, 05:57
Что значит «отвечает раз где-то в 3 секунды»? Значение меняется раз в три секунды или опрос проходит успешно только раз в три секунды?

Не удивлюсь, если в руководстве к вашему датчику сказано, что 3000 мс это нормальный для него период обновления значений. Считывать-то можно хоть каждые 10 мс, но это не значит, что измеритель будет так часто свои показания пересчитывать.

Fudz
22.03.2013, 10:04
Что значит «отвечает раз где-то в 3 секунды»? Значение меняется раз в три секунды или опрос проходит успешно только раз в три секунды?

Не удивлюсь, если в руководстве к вашему датчику сказано, что 3000 мс это нормальный для него период обновления значений. Считывать-то можно хоть каждые 10 мс, но это не значит, что измеритель будет так часто свои показания пересчитывать.


Запрос значения регистра датчика идет не раз в 1 секунду, а где-то раз в 3 секунды. У датчика ограничение по скорости обновления значений нету. При создании нового проекта, где на одном канале RS-485 находится один только датчик, время ответа равно одной секунде. Может проблема в том, что у меня много устройств находится на одном интерфейсе или время цикла программы слишком долгое?

Crusash
22.03.2013, 10:54
Запрос значения регистра датчика идет не раз в 1 секунду, а где-то раз в 3 секунды. У датчика ограничение по скорости обновления значений нету. При создании нового проекта, где на одном канале RS-485 находится один только датчик, время ответа равно одной секунде. Может проблема в том, что у меня много устройств находится на одном интерфейсе или время цикла программы слишком долгое?

Вообще при стольких приборах на одном канале 3 секунды это хороший показатель!
А вообще, очень сложно представить задачу в которой есть необходимость так часто опрашивать температурный датчик (он сам по себе инертность имеет огого какую), тем более чтобы это превращалась в проблему...

Fudz
22.03.2013, 12:09
Вообще при стольких приборах на одном канале 3 секунды это хороший показатель!
А вообще, очень сложно представить задачу в которой есть необходимость так часто опрашивать температурный датчик (он сам по себе инертность имеет огого какую), тем более чтобы это превращалась в проблему...

Да но у меня есть приборы которые нужно опрашивать раз в 30мс и это время должно быть точным. А если вы говорите что при таком количестве приборов эта цифра и должна прыгать так тогда смысл этого свойства в конфигурации. Мне кажется это не правильно или как?

Crusash
22.03.2013, 12:25
Да но у меня есть приборы которые нужно опрашивать раз в 30мс и это время должно быть точным. А если вы говорите что при таком количестве приборов эта цифра и должна прыгать так тогда смысл этого свойства в конфигурации. Мне кажется это не правильно или как?

ну тогда и надо настраивать прибор, при этом сам прибор должен позволять опросы с такой скоростью. среди измерителей температурных сопротивлений я такого прибора, с такой скоростью, не встречал...
Да и программа на ПЛК для таких скоростей должна быть оптимизирована, чтобы программный цикл не превышал 30 мс, те лучше чтобы она, программа, вообще ничего не делала)))

Fudz
22.03.2013, 12:40
ну тогда и надо настраивать прибор, при этом сам прибор должен позволять опросы с такой скоростью. среди измерителей температурных сопротивлений я такого прибора, с такой скоростью, не встречал...

А кто говорил что я опрашиваю раз в 30 млc температурный датчик? Температурный датчик я опрашиваю раз в 1 сек. и да он не резистивный, а построенный на базе Dallas.


Да и программа на ПЛК для таких скоростей должна быть оптимизирована, чтобы программный цикл не превышал 30 мс, те лучше чтобы она, программа, вообще ничего не делала)))
А как мне узнать сколько временни занимает один программный цикл? Я так понимаю в блоки статистики.
Cycle Time in 100mks = 26
Free pocessor resourse mks in 1 cycle = 1256
Да и MinCycleLength = 4ms

Crusash
22.03.2013, 13:26
А кто говорил что я опрашиваю раз в 30 млc температурный датчик? Температурный датчик я опрашиваю раз в 1 сек. и да он не резистивный, а построенный на базе Dallas.


а какой там протокол, и как он по 485 работает?



А как мне узнать сколько временни занимает один программный цикл? Я так понимаю в блоки статистики.
Cycle Time in 100mks = 26
Free pocessor resourse mks in 1 cycle = 1256
Да и MinCycleLength = 4ms

Да, по моему первый регистр отображает время одного цикла.

Fudz
22.03.2013, 13:56
а какой там протокол, и как он по 485 работает?

Этот температурный датчик собственного проиизводства работает по 485 протокол Modbus RTU. Элементом который меряет температуру является DS1821.



Да, по моему первый регистр отображает время одного цикла.

Ну так получается что у меня один цикл программы выполняется за 26 мкс? Так почему время плывет?

Crusash
22.03.2013, 14:12
Ну так получается что у меня один цикл программы выполняется за 26 мкс? Так почему время плывет?

кто знает, может ваш контроллер так криво отвечает, может пакеты теряются, может у плк регистров (в том числе не отвечающих) много и он с таймаутами не справляется...

Рекомендую найти бубен, включить приятную музыку и начать танец))

Fudz
22.03.2013, 14:22
Классный ответ специалиста, многообещающий. А если регистров и правду много? У меня на два интерфейса 25 устройств по 4 регистра в устройстве. Плюс подмодуль Modbus TCP c 90 2x-байтными регистрами. Может в ЭТОМ проблема?

Crusash
22.03.2013, 14:43
Классный ответ специалиста, многообещающий. А если регистров и правду много? У меня на два интерфейса 25 устройств по 4 регистра в устройстве. Плюс подмодуль Modbus TCP c 90 2x-байтными регистрами. Может в ЭТОМ проблема?

Какой я специалист, так балуюсь немного))

Попробуйте проверить скорость опроса с одним датчиком в пустом проекте с одним регистром.

Как вариант можно отказаться от встроенного конфигуратора Модбас, и реализовать протокол на SysLibCom, где вы сами жёстко будете контролировать таймауты. Но сами понимаете, это не из лёгких путь...

Fudz
22.03.2013, 14:54
Попробуйте проверить скорость опроса с одним датчиком в пустом проекте с одним регистром.



Пробовал все работает отлично




Как вариант можно отказаться от встроенного конфигуратора Модбас, и реализовать протокол на SysLibCom, где вы сами жёстко будете контролировать таймауты. Но сами понимаете, это не из лёгких путь...



Это увеличение программного кода а значить и время одного цикла программы.
Это бы было необходимым если бы имелись приборы с нестандартными протоколами. А так не вижу смысл лезть в дебри.

Да как-то не очень меня радует ПЛК производства ОВЕН:confused:

Crusash
22.03.2013, 15:21
Пробовал все работает отлично


Значит играйтесь в конфигураторе с увеличением таймаутов на не столь критичные регистры, распределяйте так сказать ресурсы.



Это увеличение программного кода а значить и время одного цикла программы.
Это бы было необходимым если бы имелись приборы с нестандартными протоколами. А так не вижу смысл лезть в дебри.


Зато на конфигурированный модбас процессорное время не будет тратится, кто знает может то на то по времени и выйдет.
Тем более у вас свой контроллер, может и со своим протоколом у вас легче пойдёт.

Malyshevsergey
27.03.2013, 01:39
Здравствуйте!
Внесу свои 5 копеек в вашу тему.
Ваял я проект на плк100 с 10 мвв использовал стандартный конфигуратор связи по модбас, так вот задержка получения данных составляла до 3 сек. Мне это надоело и я решил попробовать библиотечный модбас, так результат время с ответами сократилось до долей секунд (точно не могу сказать сколько, не мерил).

Николаев Андрей
27.03.2013, 07:31
Пробовал все работает отлично
Это увеличение программного кода а значить и время одного цикла программы.
Это бы было необходимым если бы имелись приборы с нестандартными протоколами. А так не вижу смысл лезть в дебри.
Да как-то не очень меня радует ПЛК производства ОВЕН:confused:
Не всегда. Грамотная программа не сильно увеличивает цикл.
К сожалению по другому ModBus конфигурацией реализовать сложно. Вообще мало кто делает это конфигурацией. Приведете примеры - буду благодарен. Опыт полезный.



Здравствуйте!
Внесу свои 5 копеек в вашу тему.
Ваял я проект на плк100 с 10 мвв использовал стандартный конфигуратор связи по модбас, так вот задержка получения данных составляла до 3 сек. Мне это надоело и я решил попробовать библиотечный модбас, так результат время с ответами сократилось до долей секунд (точно не могу сказать сколько, не мерил).
Полностью поддерживаю.
Конфигуратор он хорош тогда, когда модулей 1-3, ну 5. Дискретных можно больше.
А дальше библиотеки. Не просто так мы их создали, и примеры работы с ними тоже...