Archived

Этот пост заблокирован, редактирование отключено

Программное обеспечениеВопросы по zWorkbenchRe: Не могу залить готовый код в контроллер

Вопросы по системе сквозного проектирования и менеджмента проектов
Исходное сообщение:
mike, 16.02.2017, 19:10
mike
Re: Не могу залить готовый код в контроллер
Не успел))) Сергей все сказал правильно.
В сетях RS485 используется адресация от 1 до 247.
Количество контроллеров на линии может быть от 1 до 247.
Но.
1. сеть из 247 контроллеров будет страшенно тормозной.
2. + к этому будет очень капризной
3. + к этому "обычные" девайсы в нее не впихнуть.
по третьему пункту. Есть драйверы (микросхемы) 485 скажем, стандартные, а есть не стандартные.
Последние крайне редки на рынке, но могут отдать в сеть 485 большой ток.
Так вот, если вся сеть построена с использованием спец драйверов, то она (теоретически) сможет "прокачать" 247 девайсов на линии.
Но правильный вопрос "а нафига?" ставит все на свои места.
Ибо, как я говорил: тормоза, капризы линии и использование только специализированных драйверов в линейных устройствах.

Поэтому принято использовать от 1 до 32 адресов в одной линии.
Ответы:
mike, 16.02.2017, 19:17
mike
Re: Не могу залить готовый код в контроллер
Что касается как подключать слейвы.
В прикреплении "классическая" схема. Все контроллеры висят на общей линии своими COM0
В качестве рабочей станции может выступать N450EV / Компьютер, SCADA. Любой мастер.
mike, 16.02.2017, 19:32
mike
Re: Не могу залить готовый код в контроллер
Структура посложнее.
У одного слейва есть подчиненная подсеть.
В качестве подчиненных подсети могут быть контроллеры, двигатели с ModBUSом, панели.

Например, вы используете контроллер M120 и управляете 2я двигателями EBM по модбасу.
Два двигателя у вас встают в подчиненную сеть контроллера.
Вы все собрали, все здорово, но вот неудача:
Движки то надо сконфигурировать.
Вы идете и разрываете связь от контроллера до двигателей, подключаете адаптер 485 и запускаете программу настройки двигателей на ПК. Нашли, насторили, потом восстанавливаете соединение с M120.

Второй пример.
M120 имеет в качестве подсети еще 3 M120 в качестве модулей расширения. Внутришкафная сеть собрана.
А вам надо запрограммировать 3 контроллера. Или еще лучше - отладить. Что делать? Рвать сеть?
А вот и нет. Вы выставляете на первом контроллере (отмечен красным) режим моста и работаете с подчиненной сетью так, как будто бы красного контроллера и нет в помине.
mike, 16.02.2017, 19:39
mike
Re: Не могу залить готовый код в контроллер
Что касается загрузки большого кол-ва контроллеров.
Есть свойства порта Рабочей станции (то есть ПК, с которого идет программирование) "Загрузить программы"
В этом случае автоматически будет загружена вся сеть, подключенная к данному порту рабочей станции.
Исключение составляют подсети - их придется загружать в полуавтоматическом режиме. Ограничение связано с критически малым объемом памяти исполняющего процессора - всего 64кБ из которых половина - ваши программы.
eric, 17.02.2017, 01:15
eric
Re: Не могу залить готовый код в контроллер
Спасибо Михаил и Сергей.
Теперь все более менее становится на свои места.
Но все же  если предположить, что в сети есть 96 контроллеров Z400
Следуя вашему примеру:
Делим их на три группы (по 32). COM0 первого контроллера каждой группы
подключаем к  единственному  мастеру (компьютеру), а COM1 к оставшемуся 31 контроллеру этой группы (по COM0 на каждом).
Когда нам нужно администрировать первую группу - первый контроллер первой группы включаем в режим моста
и администрируем всю группу. Аналогично поступаем с двумя другими группами. То есть централизованно управляем 31-им контроллером за раз. Или можно сразу первые три контроллера включить навсегда в режим моста (потеряв их функциональность и используя их просто как репитеры) Но при этом мы опять будем иметь тормозную сеть при нормальных электрических параметрах. Поэтому скорее первый вариант предпочтительнее.

Вопрос - будет оно вообще так работать?

Второй и не менее важный вопрос, который так и остался в стороне:
При таком построении сети, возможно ли COM1 каждого из 93-х оставшихся  контроллеров
подключить к своей панельке Z033 для локального управления каждым контроллером по отдельности?

Чувствую напрашивается ответ - НЕТ, но все же......

Собственно весь этот ворох вопросов родился из за наличия 2-х COM портов на контроллере.
Не очень понятно зачем их два, при таких ограничениях. В чем была изначально идея двух портов на Z400?

Моя идея использовать ваши контроллеры в общем схожая с упралением 93 фанкойлами в 93-х комнатах с централизованным контролем и наличием  локальных панелек, для индивидуальной подстройки комфорта в каждой отдельной комнате. Как-то так.








VoronovMaksim88, 17.02.2017, 04:04
VoronovMaksim88
Re: Не могу залить готовый код в контроллер
Если у вас так много контроллеров, то бейте их в группы по 32 устройства.
В каждой группе соединяем сом0.
Каждую группу вешайте на свой порт ПК, сколько групп столько понадобится и портов.
А на сом1 каждого ПЛК вешаем панель 033 в качестве слэйва.
Всё просто, всё надёжно всё красиво.

2 сом порта это прекрасно!
По одному загружаем и отлаживаем по другому вешаем слэйвы: модули расширения, панели, частотники, датчики.
mike, 17.02.2017, 07:16
mike
Re: Не могу залить готовый код в контроллер
Доброе утро, друзья!
Максим сказал все правильно.
Добавлю:
Мостовой режим нужен только для технических нужд. При сбросе питания он сбрасывается.
Что касается создания топологии сети.
Это практически религиозная сторона нашего с вами общего ремесла.
Но, в любом убеждении надо руководствоваться здравым смыслом.

Максим правильно объяснил вашу топологию. Вы меня невнимательно прочитали.
Давайте попробуем еще раз:
У контроллера 400 есть два порта. Каждый из этих портов может работать независимо друг от друга, в разных режимах, на разных скоростях.
Если оба порта работают в режиме подчиненного, то пространство регистров доступно по двум портам.
COM0 контроллера - главный порт. Его рекомендуется держать на "внешней" стороне.

Посмотрите проект для 400 контроллера для приточной установки (на сайте в готовых решениях).
Там реализован опрос панели по COM1 (то есть контроллер работает по этому порту в режиме мастера). А по порту COM0 он работает в режиме подчиненного и производит синхронизацию параметров между панелью и верхним уровнем.

Возвращаясь к здравому смыслу.
Если в сети 32 контроллера и скорость 9600 и у каждого по 20 переменных 2байта, то время отклика сети будет около 20-40 сек.
На мой взгляд это уже страшные тормоза (причём это специфика работы любого модбас устройства).
Что бы сеть откликалась моментально, в качестве шлюзов рекомендуется использовать N450EV.
serge197a, 17.02.2017, 10:11
serge197a
Re: Не могу залить готовый код в контроллер
Для работы с верхнем уровнем можно увеличить скорость к примеру до 115200 бит.
теоретически это ок 560 2-х байтных переменных в секунду.
Вы собираете данные с группы на коммуникационный контроллер,
а коммуникационный контроллер опрашиваете верхним уровнем.
не нужно ждать ответа от каждого из устройств в сети,
а к примеру все читается сразу в одном запросе с одного устройства.
получаете приемлемую скорость обмена данными без тормозов.
eric, 17.02.2017, 10:18
eric
Re: Не могу залить готовый код в контроллер
Друзья,

ОГРОМНОЕ СПАСИБО!
Вы сняли все мои сомнения.
Значит  все будет работать именно так как я задумал. Ура!
Теперь буду понемногу учиться программировать контроллер под свои нужды
и вперед к выполнению поставленной задачи. На самом деле задача -
- подключить около 200 контроллеров, но после ваших объяснений
думаю это не станет проблемой.  Должно замечательно все получиться.

Еще раз БОЛЬШУЩЕЕ спасибо.
mike, 17.02.2017, 10:36
mike
Re: Не могу залить готовый код в контроллер
Добро пожаловать в наш тесный уютный коллектив!
serov, 20.02.2017, 19:17
serov
Re: Не могу залить готовый код в контроллер
Добавлю свои 5 копеек. 2 порта это очень нужная штука для контроллера, которых иногда даже не хватает. Сейчас всё чаще появляются различные датчики и устройства на RS-485, но одни могут работать на одних настройках (скорость, четность и т.д.), а вторые на других, а ещё одни выступают мастером, а вторые слэейвом.  А ещё есть панель управления, которую лучше повесить на отдельный интерфейс.