 | |
Предыдущие результаты
[quote:b899f3937f]Я вобщем-то и не утверждал что мы реализуем ПИДы и прочее в СКАДе, но при этом и не отрицал что это легко возможно, например в скриптах. :)[/quote:b899f3937f]
Но Ваши скрипты хотя бы резидентно находятся и исполняются в контроллере? Или таки на каком-то из компьютеров?...
[quote:b899f3937f]Концепция уже давно утверждена - GeFanuc и никаких гвоздей! :)[/quote:b899f3937f]
Что ж.... тогда ой :)
[quote:b899f3937f]Позвольте полюбопытсвовать как Вы решаете задачи коммуникаций между контроллерами на базе TCP/IP по типу вызова низкоуровневых процедур в ПЛК ?[/quote:b899f3937f]
Пожалуйста :)
Контроллеры Allen-Bradley - это очень высокоорганизованные устройства, обладающие очень высоким уровнем интеллекта и очень серьёзной мультизадачной операционной системой реального времени. Именно поэтому никаких низкоуровневых процедур на уровне пользователя в этих контроллерах не предусмотрено. Да и необходимости в них никакой нет.
Есть два основных способа обмена данными между контроллерами:
1) В концепции Producer-Consumer любой контроллер в сети является Producer'ом, т.е. предоставляет свои данные (тэги) в сеть для всеобщего пользования. Все остальные контроллеры просто (одновременно) используют эти тэги, т.е. их потребляют так, как если бы эти тэги находились в их памяти. Т.е., являются Consumer'ами этих тэгов.
Этот механизм прозрачных "соеднинений" между производителем и потребителями данных обеспечивается протоколом CIP, который поддерживается сетями Ethernet/IP, ControlNet, DeviceNet.
Всё происходит на уровне операционной системы контроллера, пользователь организацией обмена не занимается.
2) В исторически более старой концепции, восходящей ещё к временам PLC-3 (или даже раньше) контроллер имеет в своей системе команд специальную команду MSG. С её помощью один контроллер либо читает единицу данных, находящуюся по фиксированному адресу в памяти другого, либо записывает данные в память другого контроллера по фиксированному адресу.
Этот способ обмена характерен для старых контроллеров с фиксированным распределением памяти и однозадачной операционной системой. В новых контроллерах эти приказы MSG тоже всё ещё поддерживаются, хотя операционная система в них мультизадачная и распределение памяти, соответственно, динамическое, Поэтому пользователь имеет доступ не к фиксированому адресу в "чужой памяти", а к единице хранения данных с символическим именем - тэгу.
В этом варианте пользователь также никак не программирует собственно сетевой обмен. Коммуникациями между контроллерами занимается не пользователь, а операционная система контроллера.
Весь обмен данными в любом из вариантов обмена происходит асинхронно к скану программы. В многозадачной операционной системе реального времени задача обмена по сети - это скрытая от пользователя системная задача с одним из наивысших приоритетов.
|
Прошел :) Результат таков:
Контроллеры:
Total score: 34 out of 60, 57% :)
(RSLogix5000 - passed, а вот с SLC и PLC дела обстоят похуже)
Сети:
Total score: 39 out of 59, 66% :)
(ControlNet Passed. Ethernet Passed. Засыпался на топологиях DeviceNet)
Кто еще похвастается результатами?
|
Уважаемые коллеги, имеется ряд вопросов для понимания процессов при обмене данными процессоров ControlLogix через RSLinx Classic со SCADA .
Имеется система из 2-х из двух корзин ControlLogix, в каждой по контроллеру, связанные по ControlNet. В одной из корзин модуль ENBT. Одна или несколько таких систем связаны через Ethernet<->RSLinx Classic со SCADA, в которой имеются несколько приложений являются OPC-клиентами для RSLinx.
Цель оптимально сконфигурировать связь с SCADA c контроллерами ControlLogix.
Есть документ: «Руководство по применению: Сбор данных ControlLogix в RSLinx Classic» (в английском варианте присутствует на диске с RSLinx).
Документ поясняет, что RSLinx Classic получая запросы от OPC-клиентов и выгрузив из контроллера список доступных тегов создает «Оптимизированные пакеты ControlLogix».
«Оптимизированные пакеты ControlLogix» - блоки размером 486 байт, которыми обменивается RSLinx Classic и контроллер ControlLogix. Этих пакетах помещаются запрашиваемые из контроллера данные. Данные в пакетах компонуются так, чтобы этих пакетов было минимальное число.
«Оптимизированные пакеты ControlLogix» RSLinx Classic использует подключения
[i:34d52664a2]Цитата:
[b:34d52664a2]Как RSLinx Classic использует подключения (Connection) ControlLogix[/b:34d52664a2]
При сборе данных из ControlLogix RSLinx Classic использует Подключения, т.е. специальные каналы связи. При чтении данных из процессора ControlLogix каждый Оптимизированных пакет ControlLogix (ControlLogix Optimized Packet) использует данные Подключения. Он получает свое Подключение из пула Подключений (pool of connections), общего для всех Оптимизированных пакетов ControlLogix. Максимальное количество подключений, которое используется в этом пуле, можно изменить, но по умолчанию оно задано четыре Подключения, так как во многих случаях это количество является оптимальным[/i:34d52664a2].
У меня возникли следующие вопросы, на которые я не нашел ответа:
1. Что же это за «пул подключений(connection)» ?
2. Какой механизм их выделения?
3. Связаны эти подключения количеством connections модуля ENBT?
4. Т.е. как определять оптимально ли 4 подключения (Например если оптимизированных пакетов получается больше 4-х)?
5. Как количество подключений может быть связано с объемом и скоростью получения данных из процессора в SCADA через RSLinx Classic?
А также буду благодарен за информацию поясняющую:
6. Обосновано ли использовать модуль EN2T в место ENBT для связи со SCADA?
|
Вот, посмотрите в Knowledge Base:
[b:235d3d6c37]CIP Messaging Reference[/b:235d3d6c37]
[b:235d3d6c37]DH+ / RIO[/b:235d3d6c37]
DH+ Diagnostics G18529
DHRIO remote rack retry counters G20391
DHRIO DH+ node address A17910
DHRIO DH+ active node table A17854
DHRIO rio status object A17914
Getting and Clearing Diagnostic Counters G96749451
[b:235d3d6c37]ControlNet[/b:235d3d6c37]
Flex Module Info G19246
Node Number G19205
CPU Utilization G18809
LED Status G18643
CNB node address Q51228857
Cnet diagnostic and cable redundancy status A18170
Cip messages to 1747SCNR P19786
Resetting PLC5 diags counters on ControlNet A8361507
resetting ControlNet Diagnostic Counters TN ID 41650
[b:235d3d6c37]EtherNet[/b:235d3d6c37]
ENET IP Information G18770
ENET diagnostic counters A18389
ENBT Diagnostic Counters Q16739464
ENBT Media Counters Q111833722
ENBT Baud and Duplex Q7753033
ENBT Forcing Baud and Duplex A41930091
ENBT CPU utilization G63659254
ENBT IP Information G82553071
ENBT Host Name Q111838865
[b:235d3d6c37]DeviceNet[/b:235d3d6c37]
DNB explicit message example A17630
DNB Explicit message to Panelview example A17520
[b:235d3d6c37]Processor[/b:235d3d6c37]
Firmware Level Q29537172
Program Edits A29430452
Program Download Q29427803
Program Name A28555551
Date and Time G20246
Mode Change (Run / Program) G19586
Changes periodic task execution interval A19765
Clear controller faults (major) G20159
Grab controller free memory G19880
Gets controller run/prog mode status A10549732
cpu backplane counters A20360
Increasing the CPU's unconnected buffers A2846512
Obtaining the controller FW level A21366
Changing the serial port from user to system A20455
Lgx unconnected Buffer changes G20181
OK LED status, Keyswitch position Q63938700
Changing the Serial Port Control Line Programmatically A67244256
Obtaining the keyswitch position A86054621
[b:235d3d6c37]I/O Modules[/b:235d3d6c37]
1794VHSC CIP messages. G20558
Flex with LGX, Cnet and no profiles before 11.xx A20248
Resetting diagnostic latch bits A45740757
Resetting electronic fusing A19814
Obtaining Calibration Data (1756-IR6I/IT6I) A67051751
Obtaining Calibration Data (1756-IF16) G51632465
[b:235d3d6c37]SERCOS Modules[/b:235d3d6c37]
Current Ring Phase Q62831754
|
Помогите пожалуйста новичку.
Проектируется система:
1. Резервируемый контроллер ControlLogix на базе 1756-L61 и 2-х шасси с модулями ввода/вывода. Всё соединено через ControlNet.
2. 2 рабочих станции, которые подключаются к контроллеру по отдельной сети CN
Железа пока нет.
Программа для контроллера написана.
Вопрос в следующем: Как втянуть тэги из БД проекта контроллера в проект визуализации RSView. Что для этого надо?
|
Доброго времени суток.
Как привязывается RSView32 к дублированному контроллеру ControlLogix (SRM модули) с линией связи по ControlNet(CNBR) и EtherNet(ENBT)?
Понятно, что RSView32 видит топики, которые ей предоставляет RSLinx. Так вот, RSLinx видит два контролера и сответственно делается два топика с ручным переключением или один? Или там сделано автоматическое переключение посредством alias в RSLinx?
Дайте, пожалуйста, ссылку на соответствующую документацию.
|
Добрый день! Кто-нибудь сталкивался с разработкой алгоритма выравнивания нагрузок приводов в многодвигательном приводе, работающем на общий вал?
Если конкретизировать - то имеем 4 двигателя постоянного тока. Каждый работает от своего преобразователя FlexPak3000. Управление приводами осуществляется от Controllogix по сети Controlnet. Задача состоит в том, чтобы разработать алгоритм управления приводами таким образом, чтобы выравнивать динамические нагрузки двигателей во время работы.
P.S. привода настроены в режиме регуляторов скорости.
|
Активный keeper - это всегда модуль с самым маленьким адресом сети. Т.е. если у Вас будет всего 2 корзины, а следовательно и 2 модуля сети ControlNet, адреса модулей Вы выставите 1 и 2 соответственно, то активным keeper-ом будет модуль с адресом 1. Если у Вас ContolLogix, то модуль Вы можете ставить в любой слот корзины. Адреса модулей в корзинах выставляете также сугубо по Вашему вкусу. На работу сети это никак не скажется. Главное правильно настроить сеть. Единственное, я бы посоветовал взять маленькие адреса, и ограничить их общее количество скажем 5-ю, чтобы при просмотре сети не приходилось каждый раз сканить все 99 возможных адресов.
|
Есть вопрос. Как скажется на работу сети ControlNet установка активного кипера (модуль CNB) в корзину с контроллером. Сеть состоит всего из двух корзин. Есть ли правила выбора места установки активного киппера и почему?
|
А RSLogix5000 подсоединится к контроллеру через RSLinx Enterprise.
Контроллеры связаны с серверами посредством ControlNet, поэтому GW в такой структуре - актуальное решение.
|
Предыдущие результаты
Ещё результаты |
|
| |
|