Archived
Этот пост заблокирован, редактирование отключено
Программное обеспечениеВопросы по zWorkbenchRe: Не могу залить готовый код в контроллер
Вопросы по системе сквозного проектирования и менеджмента проектов
Исходное сообщение:
mike, 16.02.2017, 19:10
Re: Не могу залить готовый код в контроллер
Не успел))) Сергей все сказал правильно.
В сетях RS485 используется адресация от 1 до 247.
Количество контроллеров на линии может быть от 1 до 247.
Но.
1. сеть из 247 контроллеров будет страшенно тормозной.
2. + к этому будет очень капризной
3. + к этому "обычные" девайсы в нее не впихнуть.
по третьему пункту. Есть драйверы (микросхемы) 485 скажем, стандартные, а есть не стандартные.
Последние крайне редки на рынке, но могут отдать в сеть 485 большой ток.
Так вот, если вся сеть построена с использованием спец драйверов, то она (теоретически) сможет "прокачать" 247 девайсов на линии.
Но правильный вопрос "а нафига?" ставит все на свои места.
Ибо, как я говорил: тормоза, капризы линии и использование только специализированных драйверов в линейных устройствах.
Поэтому принято использовать от 1 до 32 адресов в одной линии.
В сетях RS485 используется адресация от 1 до 247.
Количество контроллеров на линии может быть от 1 до 247.
Но.
1. сеть из 247 контроллеров будет страшенно тормозной.
2. + к этому будет очень капризной
3. + к этому "обычные" девайсы в нее не впихнуть.
по третьему пункту. Есть драйверы (микросхемы) 485 скажем, стандартные, а есть не стандартные.
Последние крайне редки на рынке, но могут отдать в сеть 485 большой ток.
Так вот, если вся сеть построена с использованием спец драйверов, то она (теоретически) сможет "прокачать" 247 девайсов на линии.
Но правильный вопрос "а нафига?" ставит все на свои места.
Ибо, как я говорил: тормоза, капризы линии и использование только специализированных драйверов в линейных устройствах.
Поэтому принято использовать от 1 до 32 адресов в одной линии.
Ответы:
mike, 16.02.2017, 19:17
Re: Не могу залить готовый код в контроллер
Что касается как подключать слейвы.
В прикреплении "классическая" схема. Все контроллеры висят на общей линии своими COM0
В качестве рабочей станции может выступать N450EV / Компьютер, SCADA. Любой мастер.
В прикреплении "классическая" схема. Все контроллеры висят на общей линии своими COM0
В качестве рабочей станции может выступать N450EV / Компьютер, SCADA. Любой мастер.
mike, 16.02.2017, 19:32
Re: Не могу залить готовый код в контроллер
Структура посложнее.
У одного слейва есть подчиненная подсеть.
В качестве подчиненных подсети могут быть контроллеры, двигатели с ModBUSом, панели.
Например, вы используете контроллер M120 и управляете 2я двигателями EBM по модбасу.
Два двигателя у вас встают в подчиненную сеть контроллера.
Вы все собрали, все здорово, но вот неудача:
Движки то надо сконфигурировать.
Вы идете и разрываете связь от контроллера до двигателей, подключаете адаптер 485 и запускаете программу настройки двигателей на ПК. Нашли, насторили, потом восстанавливаете соединение с M120.
Второй пример.
M120 имеет в качестве подсети еще 3 M120 в качестве модулей расширения. Внутришкафная сеть собрана.
А вам надо запрограммировать 3 контроллера. Или еще лучше - отладить. Что делать? Рвать сеть?
А вот и нет. Вы выставляете на первом контроллере (отмечен красным) режим моста и работаете с подчиненной сетью так, как будто бы красного контроллера и нет в помине.
У одного слейва есть подчиненная подсеть.
В качестве подчиненных подсети могут быть контроллеры, двигатели с ModBUSом, панели.
Например, вы используете контроллер M120 и управляете 2я двигателями EBM по модбасу.
Два двигателя у вас встают в подчиненную сеть контроллера.
Вы все собрали, все здорово, но вот неудача:
Движки то надо сконфигурировать.
Вы идете и разрываете связь от контроллера до двигателей, подключаете адаптер 485 и запускаете программу настройки двигателей на ПК. Нашли, насторили, потом восстанавливаете соединение с M120.
Второй пример.
M120 имеет в качестве подсети еще 3 M120 в качестве модулей расширения. Внутришкафная сеть собрана.
А вам надо запрограммировать 3 контроллера. Или еще лучше - отладить. Что делать? Рвать сеть?
А вот и нет. Вы выставляете на первом контроллере (отмечен красным) режим моста и работаете с подчиненной сетью так, как будто бы красного контроллера и нет в помине.
mike, 16.02.2017, 19:39
Re: Не могу залить готовый код в контроллер
Что касается загрузки большого кол-ва контроллеров.
Есть свойства порта Рабочей станции (то есть ПК, с которого идет программирование) "Загрузить программы"
В этом случае автоматически будет загружена вся сеть, подключенная к данному порту рабочей станции.
Исключение составляют подсети - их придется загружать в полуавтоматическом режиме. Ограничение связано с критически малым объемом памяти исполняющего процессора - всего 64кБ из которых половина - ваши программы.
Есть свойства порта Рабочей станции (то есть ПК, с которого идет программирование) "Загрузить программы"
В этом случае автоматически будет загружена вся сеть, подключенная к данному порту рабочей станции.
Исключение составляют подсети - их придется загружать в полуавтоматическом режиме. Ограничение связано с критически малым объемом памяти исполняющего процессора - всего 64кБ из которых половина - ваши программы.
eric, 17.02.2017, 01:15
Re: Не могу залить готовый код в контроллер
Спасибо Михаил и Сергей.
Теперь все более менее становится на свои места.
Но все же если предположить, что в сети есть 96 контроллеров Z400
Следуя вашему примеру:
Делим их на три группы (по 32). COM0 первого контроллера каждой группы
подключаем к единственному мастеру (компьютеру), а COM1 к оставшемуся 31 контроллеру этой группы (по COM0 на каждом).
Когда нам нужно администрировать первую группу - первый контроллер первой группы включаем в режим моста
и администрируем всю группу. Аналогично поступаем с двумя другими группами. То есть централизованно управляем 31-им контроллером за раз. Или можно сразу первые три контроллера включить навсегда в режим моста (потеряв их функциональность и используя их просто как репитеры) Но при этом мы опять будем иметь тормозную сеть при нормальных электрических параметрах. Поэтому скорее первый вариант предпочтительнее.
Вопрос - будет оно вообще так работать?
Второй и не менее важный вопрос, который так и остался в стороне:
При таком построении сети, возможно ли COM1 каждого из 93-х оставшихся контроллеров
подключить к своей панельке Z033 для локального управления каждым контроллером по отдельности?
Чувствую напрашивается ответ - НЕТ, но все же......
Собственно весь этот ворох вопросов родился из за наличия 2-х COM портов на контроллере.
Не очень понятно зачем их два, при таких ограничениях. В чем была изначально идея двух портов на Z400?
Моя идея использовать ваши контроллеры в общем схожая с упралением 93 фанкойлами в 93-х комнатах с централизованным контролем и наличием локальных панелек, для индивидуальной подстройки комфорта в каждой отдельной комнате. Как-то так.
Теперь все более менее становится на свои места.
Но все же если предположить, что в сети есть 96 контроллеров Z400
Следуя вашему примеру:
Делим их на три группы (по 32). COM0 первого контроллера каждой группы
подключаем к единственному мастеру (компьютеру), а COM1 к оставшемуся 31 контроллеру этой группы (по COM0 на каждом).
Когда нам нужно администрировать первую группу - первый контроллер первой группы включаем в режим моста
и администрируем всю группу. Аналогично поступаем с двумя другими группами. То есть централизованно управляем 31-им контроллером за раз. Или можно сразу первые три контроллера включить навсегда в режим моста (потеряв их функциональность и используя их просто как репитеры) Но при этом мы опять будем иметь тормозную сеть при нормальных электрических параметрах. Поэтому скорее первый вариант предпочтительнее.
Вопрос - будет оно вообще так работать?
Второй и не менее важный вопрос, который так и остался в стороне:
При таком построении сети, возможно ли COM1 каждого из 93-х оставшихся контроллеров
подключить к своей панельке Z033 для локального управления каждым контроллером по отдельности?
Чувствую напрашивается ответ - НЕТ, но все же......
Собственно весь этот ворох вопросов родился из за наличия 2-х COM портов на контроллере.
Не очень понятно зачем их два, при таких ограничениях. В чем была изначально идея двух портов на Z400?
Моя идея использовать ваши контроллеры в общем схожая с упралением 93 фанкойлами в 93-х комнатах с централизованным контролем и наличием локальных панелек, для индивидуальной подстройки комфорта в каждой отдельной комнате. Как-то так.
VoronovMaksim88, 17.02.2017, 04:04
Re: Не могу залить готовый код в контроллер
Если у вас так много контроллеров, то бейте их в группы по 32 устройства.
В каждой группе соединяем сом0.
Каждую группу вешайте на свой порт ПК, сколько групп столько понадобится и портов.
А на сом1 каждого ПЛК вешаем панель 033 в качестве слэйва.
Всё просто, всё надёжно всё красиво.
2 сом порта это прекрасно!
По одному загружаем и отлаживаем по другому вешаем слэйвы: модули расширения, панели, частотники, датчики.
В каждой группе соединяем сом0.
Каждую группу вешайте на свой порт ПК, сколько групп столько понадобится и портов.
А на сом1 каждого ПЛК вешаем панель 033 в качестве слэйва.
Всё просто, всё надёжно всё красиво.
2 сом порта это прекрасно!
По одному загружаем и отлаживаем по другому вешаем слэйвы: модули расширения, панели, частотники, датчики.
mike, 17.02.2017, 07:16
Re: Не могу залить готовый код в контроллер
Доброе утро, друзья!
Максим сказал все правильно.
Добавлю:
Мостовой режим нужен только для технических нужд. При сбросе питания он сбрасывается.
Что касается создания топологии сети.
Это практически религиозная сторона нашего с вами общего ремесла.
Но, в любом убеждении надо руководствоваться здравым смыслом.
Максим правильно объяснил вашу топологию. Вы меня невнимательно прочитали.
Давайте попробуем еще раз:
У контроллера 400 есть два порта. Каждый из этих портов может работать независимо друг от друга, в разных режимах, на разных скоростях.
Если оба порта работают в режиме подчиненного, то пространство регистров доступно по двум портам.
COM0 контроллера - главный порт. Его рекомендуется держать на "внешней" стороне.
Посмотрите проект для 400 контроллера для приточной установки (на сайте в готовых решениях).
Там реализован опрос панели по COM1 (то есть контроллер работает по этому порту в режиме мастера). А по порту COM0 он работает в режиме подчиненного и производит синхронизацию параметров между панелью и верхним уровнем.
Возвращаясь к здравому смыслу.
Если в сети 32 контроллера и скорость 9600 и у каждого по 20 переменных 2байта, то время отклика сети будет около 20-40 сек.
На мой взгляд это уже страшные тормоза (причём это специфика работы любого модбас устройства).
Что бы сеть откликалась моментально, в качестве шлюзов рекомендуется использовать N450EV.
Максим сказал все правильно.
Добавлю:
Мостовой режим нужен только для технических нужд. При сбросе питания он сбрасывается.
Что касается создания топологии сети.
Это практически религиозная сторона нашего с вами общего ремесла.
Но, в любом убеждении надо руководствоваться здравым смыслом.
Максим правильно объяснил вашу топологию. Вы меня невнимательно прочитали.
Давайте попробуем еще раз:
У контроллера 400 есть два порта. Каждый из этих портов может работать независимо друг от друга, в разных режимах, на разных скоростях.
Если оба порта работают в режиме подчиненного, то пространство регистров доступно по двум портам.
COM0 контроллера - главный порт. Его рекомендуется держать на "внешней" стороне.
Посмотрите проект для 400 контроллера для приточной установки (на сайте в готовых решениях).
Там реализован опрос панели по COM1 (то есть контроллер работает по этому порту в режиме мастера). А по порту COM0 он работает в режиме подчиненного и производит синхронизацию параметров между панелью и верхним уровнем.
Возвращаясь к здравому смыслу.
Если в сети 32 контроллера и скорость 9600 и у каждого по 20 переменных 2байта, то время отклика сети будет около 20-40 сек.
На мой взгляд это уже страшные тормоза (причём это специфика работы любого модбас устройства).
Что бы сеть откликалась моментально, в качестве шлюзов рекомендуется использовать N450EV.
serge197a, 17.02.2017, 10:11
Re: Не могу залить готовый код в контроллер
Для работы с верхнем уровнем можно увеличить скорость к примеру до 115200 бит.
теоретически это ок 560 2-х байтных переменных в секунду.
Вы собираете данные с группы на коммуникационный контроллер,
а коммуникационный контроллер опрашиваете верхним уровнем.
не нужно ждать ответа от каждого из устройств в сети,
а к примеру все читается сразу в одном запросе с одного устройства.
получаете приемлемую скорость обмена данными без тормозов.
теоретически это ок 560 2-х байтных переменных в секунду.
Вы собираете данные с группы на коммуникационный контроллер,
а коммуникационный контроллер опрашиваете верхним уровнем.
не нужно ждать ответа от каждого из устройств в сети,
а к примеру все читается сразу в одном запросе с одного устройства.
получаете приемлемую скорость обмена данными без тормозов.
eric, 17.02.2017, 10:18
Re: Не могу залить готовый код в контроллер
Друзья,
ОГРОМНОЕ СПАСИБО!
Вы сняли все мои сомнения.
Значит все будет работать именно так как я задумал. Ура!
Теперь буду понемногу учиться программировать контроллер под свои нужды
и вперед к выполнению поставленной задачи. На самом деле задача -
- подключить около 200 контроллеров, но после ваших объяснений
думаю это не станет проблемой. Должно замечательно все получиться.
Еще раз БОЛЬШУЩЕЕ спасибо.
ОГРОМНОЕ СПАСИБО!
Вы сняли все мои сомнения.
Значит все будет работать именно так как я задумал. Ура!
Теперь буду понемногу учиться программировать контроллер под свои нужды
и вперед к выполнению поставленной задачи. На самом деле задача -
- подключить около 200 контроллеров, но после ваших объяснений
думаю это не станет проблемой. Должно замечательно все получиться.
Еще раз БОЛЬШУЩЕЕ спасибо.
mike, 17.02.2017, 10:36
Re: Не могу залить готовый код в контроллер
Добро пожаловать в наш тесный уютный коллектив!
serov, 20.02.2017, 19:17
Re: Не могу залить готовый код в контроллер
Добавлю свои 5 копеек. 2 порта это очень нужная штука для контроллера, которых иногда даже не хватает. Сейчас всё чаще появляются различные датчики и устройства на RS-485, но одни могут работать на одних настройках (скорость, четность и т.д.), а вторые на других, а ещё одни выступают мастером, а вторые слэейвом. А ещё есть панель управления, которую лучше повесить на отдельный интерфейс.