- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Диагностика каналов WinCC TIA Portal
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 3
- Зарегистрирован: 26 дек 2019, 14:11
- Имя: Евгений
Диагностика каналов WinCC TIA Portal
Доброго времени суток форумчане, при разработке скада системы для жилого здания возник один момент который не могу решить уже длительное время и прошу вашей помощи. Дело в том, что в WINCC есть приложение Chanell Diagnostic которое отлично работает, но при пропаже связи с каким либо из контроллеров нет никакой индикации а постоянно открывать и мониторить связь возможности нет(количество контроллеров около 100шт.). . Вижу как решение создание отдельных тегов для мониторинга каждого соединения и занесение их в аларм лист. Подскажите как вы реализовываете данный вопрос.
-
- освоился
- Сообщения: 222
- Зарегистрирован: 19 сен 2019, 10:09
- Имя: Макс
- Страна: Россия
- город/регион: Славянск-на-Кубани
- Благодарил (а): 5 раз
- Поблагодарили: 38 раз
Диагностика каналов WinCC TIA Portal
Есть подприложение Create redundant connection которое создает внутренние теги, по которым можно определить состояние коннекшена.
Сам тег называется как-то так, если не изменяет память "@ConnectionStatus"
Сам тег называется как-то так, если не изменяет память "@ConnectionStatus"
WinCC 7.4 SP1 Upd15, Step5.6
-
- освоился
- Сообщения: 208
- Зарегистрирован: 16 дек 2011, 15:13
- Имя: Алексей
- Страна: Россия
- Благодарил (а): 67 раз
- Поблагодарили: 53 раза
Диагностика каналов WinCC TIA Portal
Ставите галочку "Clock Memory" в HW Config на вкладке "Cycle/Clock Memory" и указываете адрес. Например на картинке 0.
по адресу MB(адрес) PLC будет формировать биты с разной частотой (читайте help). Объявляете в SymbolEditor тег. В WinCC создаете дополнительно два внутренних bool тега (на один ПЛК): TriggerConnection1 и TriggerConnectionInterrupted1. Первый будет = 1, когда соединение установлено; второй = 1, когда соединение с ПЛК разорвано.
в GlobalScripts добавляете global actions "checkConnection1" с триггером Cyclic , например раз 5 сек.
И так для каждого ПЛК.
В AlarmLogging два сообщения на эти триггерные теги: "Соединение с ПЛК хххх установлено", "Соединение с ПЛК хххх разорвано".
Update.
Оп. Мимо. невнимательно прочитал тему топика. тема про TIA Portal.
Решение тоже есть.
Дополню отдельным сообщением.
по адресу MB(адрес) PLC будет формировать биты с разной частотой (читайте help). Объявляете в SymbolEditor тег. В WinCC создаете дополнительно два внутренних bool тега (на один ПЛК): TriggerConnection1 и TriggerConnectionInterrupted1. Первый будет = 1, когда соединение установлено; второй = 1, когда соединение с ПЛК разорвано.
в GlobalScripts добавляете global actions "checkConnection1" с триггером Cyclic , например раз 5 сек.
Код: Выделить всё
#include "apdefap.h"
int gscAction( void )
{
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
#define TriggerConn "TriggerConnection1"
#define TriggerConnectionInterrupted "TriggerConnectionInterrupted1"
#define clockByte1 "ClockByte"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END
// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
DWORD dwState = 0;
GetTagSWordState (clockByte1, &dwState);
if (dwState == 0)
{
//Tag status OK
//printf ("Tag status Ok: [Statuscode (hex):%X]\r\n",dwState);
SetTagBit (TriggerConn, FALSE);
SetTagBit (TriggerConnectionInterrupted, FALSE);
}
else if (dwState & 0x0001)
{
SetTagBit (TriggerConnectionInterrupted, TRUE);
}
else
{
//Tag status deviant
//printf ("Tag status deviant: [Statuscode (hex):%X]\r\n",dwState);
SetTagBit (TriggerConn, TRUE);
SetTagBit (TriggerConnectionInterrupted, FALSE);
}
return 0;
}
В AlarmLogging два сообщения на эти триггерные теги: "Соединение с ПЛК хххх установлено", "Соединение с ПЛК хххх разорвано".
Update.
Оп. Мимо. невнимательно прочитал тему топика. тема про TIA Portal.
Решение тоже есть.
Дополню отдельным сообщением.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- здесь недавно
- Сообщения: 3
- Зарегистрирован: 26 дек 2019, 14:11
- Имя: Евгений
Диагностика каналов WinCC TIA Portal
Вопрос решил вот таким образом:
1. Создал тег c типом данных Int на контроллере (пол часа времени потерял с типом данных Bool, и не добился успеха))
2. Занес данный тег в WinCC и назвал connection_lost
3. Затем нажал на тег Properties Values и нажал галочку After communication error и задал значение после потери связи 100
4. Создал аналоговую аварию
5. Добавил верхний лимит 99
6. Проверил на симуляторе
При работающем контроллере:
При выключении контроллера(красным обозначены текущие аварии):
При включении контроллера(зеленым обозначены архивные аварии):
Если есть какие либо дополнения или мой вариант не верный, прошу указать в комментариях
1. Создал тег c типом данных Int на контроллере (пол часа времени потерял с типом данных Bool, и не добился успеха))
2. Занес данный тег в WinCC и назвал connection_lost
3. Затем нажал на тег Properties Values и нажал галочку After communication error и задал значение после потери связи 100
4. Создал аналоговую аварию
5. Добавил верхний лимит 99
6. Проверил на симуляторе
При работающем контроллере:
При выключении контроллера(красным обозначены текущие аварии):
При включении контроллера(зеленым обозначены архивные аварии):
Если есть какие либо дополнения или мой вариант не верный, прошу указать в комментариях