Может быть выполнить работу с Com-портом не в ФБ, а в отдельной PRG с собственным циклом? Проще отслеживать будет.
Вид для печати
Может быть выполнить работу с Com-портом не в ФБ, а в отдельной PRG с собственным циклом? Проще отслеживать будет.
Как здесь (пост № 154 http://www.owen.ru/forum/showthread....ght=modbus.lib) ???????
Тогда вопрос как все правильно разнести если у меня 54 модуля МДВВ, примерно по 27 на каждый из портов RS485 контроллера ПЛК 110-220.60
Мне кажется, разнести в любом случае. Во-первых: сократится периодичность опроса каждого модуля по отдельности, а во-вторых: если я не ошибаюсь, то советуют использовать репитеры после каждых 32 приборов на RS-485.
Ну репитер думаю мне не нужен, так как все модули будут рядышком возле контроллера по 27 шт на каждый из двух портов контроллера, а вот как разнести правильно программно опрос: например если брать 27 модулей на одном порту, это получается 27 слов - чтение входов и 27 байт - запись выходов, которые кстати не получается еще и записать.
Может правильно разнести так:
1 функциональный блок инициализация порта RS485-1;
2 функциональный блок инициализация порта RS485-2;
3 функциональный блок чтение модулей на порте RS485-1 - 27 слов;
4 функциональный блок чтение модулей на порте RS485-2 - 27 слов;
5 функциональный блок запись в модули на порте RS485-1 - 27 байт;
6 функциональный блок запись в модули на порте RS485-2 - 27 байт;
а есть же еще два порта RS232, на них же тоже можно наверное вешать преобразователь RS232<=>RS485 и тоже опрашивать модули???
Как тут поступить????????????????????????????????????????
Был проект на ПЛК-110.60, где использовались модули МВ110-32ДН, МУ110-8Р и МВ110-8АС, общим количеством 13 штук. Все на одном порту RS-485. Опрос организовал через конфигуратор. Работает нормально, но там было не критично время задержки. Примерно раз в секунду данные обновляются. Здесь же все модули дискретные, поэтому всё зависит от поставленной задачи, а так, скорость обмена будет нормальной.
64 регистра в общем вышло.
И да, запись производится тоже словами, а не байтами, там просто в одном байте управление, а второй всегда нулю равен.
Вас почему всех так тянет спросить способ совершить невозможное? Пять импульсов в секунду это минимум потребуется сделать 10 запросов в секунду,а это 100мс из них на запрос уходит примерно 20мс, так возможно опросить всего пять модулей, ну даже пускай десять,этого все равно не достаточно
Сеть собирал не я - мне нужно переделать после другого программиста, а она собрана повторюсь 54 шт мдвв. Мне нужно "вытянуть" максимум по просу. Ну может 5 секунд я и загнул конечно. Вот и спрашиваю совет, как правильно все организовать.,
Подскажите пожалуйста как правильно записать байт в 50 регистр МДВВ (см. посты выше).
Счетчиков потребуется примерно пол сотни, а это дополнительная нагрузка на обмен, все таки дополнительно читать еще 50 регистров, придется жертвовать точностью в сторону скорости.
Я уже реализовал подобный объект, правда управление без контроллера с МастерСкада и модулей 23 шт. и не МДВВ, а МВ. Счетчики не использовал - то в принцпе устраивает, да импульсы иногда пропускает - но не критично.
Так себе думаю, получается все 54 модуля нужно разделить на 4 порта ( RS-485-1, RS-485-2, RS-232+преобразователь, DebugRS-232+преобразователь) - итого 13 модулей на порт - 13 слов - входа, и 13 байт - выходов. Все это дело опрашивать с помощью библиотеки Modbus.lib, так как http://www.owen.ru/forum/showthread....ght=modbus.lib и с конфигуратором похоже лучше не связываться.
Осталось разобраться с modbus.lib. В тойже теме пост № 149 человек написал: "А затем выясняется: что для N количества модулей необходимо вынести открытие порта в одну задачу, обращение к N устройствам еще в несколько, а обработку полученных данных в другую задачу."
Вот у меня отсюда и вопрос - как же тогда правильно программно организовать опрос.????
Кто нибуть вообще пол сотни МДВВ опрашивал?????