Зарегистрирован: May 02, 2006 Сообщения: 40 Рейтинг: +0/-0
Добавлено: Вт 17 Окт, 2006 8:30:52 Заголовок сообщения: RSView состояние связи с контроллером
Есть системный тег system\CommStatusValue1. Но как то не понятно как отслеижавть по нему состояние связи сконтроллером. Например если контроллер отключен и связи нет что будет в этом теге?
Еще бы хотелось узнать. Вот в WinCC при отсутствие связи все анимированые объкты заштриховываются (нет связи). А в RSView если связи нету то вид объектов не изменяется, как решить такую проблему?
Для контроля связи можно использовать следующие штатные средства RSView:
Цитата:
Monitoring communications
Use any of the following methods to monitor communications:
- Activities—In the Activity Log Setup editor, ensure
communication errors, warnings, and remarks are enabled and are
set up to log to the log file and activity bar. At runtime,
information appears in the log file and activity bar, indicating any
problems.
- Communication status—Ensure communication status is turned
on, otherwise communication errors will not be logged to the
activity log file or activity bar (even if they have been configured to
do so in the Activity Log Setup editor). By default, communication
status is turned off until you run the project. To turn
communication status on, use the ComStatusOn command.
- Tag monitor—Use the tag monitor to check the communication
status for a device tag.
The states are:
- Disabled if the node has been disabled in the Node editor or
disabled using the NodeDisable command
- Error if RSView32 has tried to acquire a value but could not
because of some kind of communication error, such as a node
not being available or a DDE server not running
- Stale if the tag value has been acquired before but does not
have an updated value
- Uninitialized if the value has never been acquired
- Valid if RSView32 has a valid value for the tag
- None if there is a problem with the tag definition such as it is
not a valid tag type or if the tag database has been accessed with
a third–party tool such as Microsoft® Access. If the underlying
tag type is valid, editing and saving the tag and then redisplaying
the tag monitor will fix the problem.
System\com tags—Use the system\com tags to receive a more
detailed error message. If the tag monitor reports an error, move
to an empty cell in the tag monitor, type system\com* and, when
the dialog box appears, click Select All. For a complete list of
system\com tags, see Appendix B, System tags.
Для диагностики можно, например, назначить какие-нибудь действия (Event), основываясь на бите коммуникаций
system\ComErrorValue1 или system\ComErrorValueOPC и т.п.
.
Цитата:
Вот в WinCC при отсутствие связи все анимированые объкты заштриховываются (нет связи). А в RSView если связи нету то вид объектов не изменяется, как решить такую проблему?
В RSView Вам предоставляется возможность не просто заштриховать объект, а решить самостоятельно, что с ним делать, и вообще делать ли что-нибудь. Вы можете "надеть" на объект анимацию мигания или изменения цвета, или изменения штриховки на осовании выражения, которое Вы описываете в поле Expression. Хотите заштриховать - штрихуйте по тому или иному биту, нет проблем.
Есть системный тег system\CommStatusValue1. Но как то не понятно как отслеижавть по нему состояние связи сконтроллером. Например если контроллер отключен и связи нет что будет в этом теге?
Еще бы хотелось узнать. Вот в WinCC при отсутствие связи все анимированые объкты заштриховываются (нет связи). А в RSView если связи нету то вид объектов не изменяется, как решить такую проблему?
Мы в своей работе реализовали алгоритм проверки наличия связи следующим образом: завели в контроллере переменную счетчик (например 0..1000 с зацикливанием), а в RSView реализовали проверку изменения этого тега каждые 5 секунд. При отсутствии изменений (нет связи или PLC находится не в RUNе), вываливаем сообщение, что связи нет, данные не актульны. А дальше при наступлении такого события, что нет связи, с объектами и экранами можно делать что угодно: прятать их, менять цвет, закрывать другими объектами и т.д.
system\ComErrorValue1 или system\ComErrorValueOPC
где можно найти описание значений принимаемых тегами.
Мне важно узнать когда отвалился контроллер, какое значение принимают теги?
system\ComErrorValue1 или system\ComErrorValueOPC
где можно найти описание значений принимаемых тегами.
Мне важно узнать когда отвалился контроллер, какое значение принимают теги?
Пробовал методом тыка, получается, что эти теги хранят последнее значение ошибки, произошедшей со связью. При пропадании связи в проекте, состоящем из одного экрана и одного тега, вываливается код ошибки 120 для system\ComErrorValueOPC, а сообщение system\ComErrorStringOPC '(RSLinx OPC Server) Server: Bad quality'. Восстанавливаю связь, эти значения так и висят.
Если остановить RSLinx, то после его автостарта будет код 22 с сообщением '(RSLinx OPC Server) Client: OPC Server has unexpectedly disconnected'.
Для канала не пробовал, но думаю мой метод сработает
Может, конечно, я ничего нового не открыл, но просто сам я уже с этим махался, в итоге забил на эти коды.
Нигде не встречал подробное описание этих тегов, хотелось бы его почитать. Пока тока помогает работа с полигоном.
У нас тоже одно время стояла задача диагностики связи через ОРС.
Но в конце - концов, все зависит от поставленной задачи. Например, мне гораздо важнее определить действия контроллера при отсутствии связи, т.к. техпроцесс предполагает наличие контроля со стороны оператора и прямого управления.
Поэтому метод, предложенный Mr_Wasp наиболее реальный. При модификации можно и время дизконнекта зафиксировать и определить события как для Logix, так и для RSView32. Достаточно организовать самый элементарный обмен какими-либо данными.
Для таких элементарных задач не обязательно глубоко искать,
разве что интереса ради
А в RSView если связи нету то вид объектов не изменяется...
Верно только для случая, когда к этому объекту не привязан тег устройства.
Цитата:
Для диагностики можно, например, назначить какие-нибудь действия (Event), основываясь на бите коммуникаций
system\ComErrorValue1 или system\ComErrorValueOPC
Не удачный совет, контроллеров может быть более одного...
В RSView32 есть замечательная функция - "comm_err(TagName)".
Еще RSLinx имеет "DDE/OPC predefined items", некоторые из них:
- @Mode returns the current mode of the processor as a string (Run, Program, Remote Run, or Remote Program).
- @Status returns the current status of the processor as a string (Ok or Faulted).
- @StatusNumber returns the current status of the processor as a number.
- @IsPresent allows you to check if your ControlLogix processor is available prior to performing reads or writes.
Еще RSLinx имеет "DDE/OPC predefined items", некоторые из них:
- @Mode returns the current mode of the processor as a string (Run, Program, Remote Run, or Remote Program).
- @Status returns the current status of the processor as a string (Ok or Faulted).
- @StatusNumber returns the current status of the processor as a number.
- @IsPresent allows you to check if your ControlLogix processor is available prior to performing reads or writes.
А можно поподробней насчет механизма использования этих item-ов из RSView32? Никогда этого не использовал, а штука может быть полезной в случае ее реальной возможности применения.
Смотри Help на RSLinx -> указатель -> "predefined items"
Смотрел...
Вы, наверное, не поняли вопроса: Если вы использовали в RSView эти Items, то может приведете пример, как обратиться к любому из них. Я этого не делал, поэтому и интересуюсь.
Принцип интересен как прочитать значения из них, например, создается тег типа Analog, в адресе ему пишется что-то, затем бросаем этот тег на форму и наслаждаемся... В таком духе.
Или это надо писать на VBA. Если делали, то подскажите как.
Принцип интересен как прочитать значения из них, например, создается тег типа Analog, в адресе ему пишется что-то, затем бросаем этот тег на форму и наслаждаемся... В таком духе.
Именно так. Какие могут быть проблемы?
Я пробовал для: @Mode и @Status, эти теги String со значеними указанными в Help.
Цитата:
Или это надо писать на VBA. Если делали, то подскажите как.
Накакого VBA.
Мое мнение - VBA нужно использовать только когда штатных средств недостаточно.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
Smart Solutions VDT GmbH | Friedrich-List-Allee 38, D-41844 Wegberg-Wildenrath, Germany Tel.: +49 2432 933 57 83 | e-Mail: office@vdt-solutions.de Все товарные знаки и торговые марки являются собственностью их владельцев.
При использовании материалов сайта ссылка на данный сайт обязательна. Открытие страницы: 0.153 секунды