1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Диагностика каналов WinCC TIA Portal

Ответить

Автор темы
Palladins
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 26 дек 2019, 14:11
Имя: Евгений

Диагностика каналов WinCC TIA Portal

Сообщение Palladins »

Доброго времени суток форумчане, при разработке скада системы для жилого здания возник один момент который не могу решить уже длительное время и прошу вашей помощи. Дело в том, что в WINCC есть приложение Chanell Diagnostic которое отлично работает, но при пропаже связи с каким либо из контроллеров нет никакой индикации а постоянно открывать и мониторить связь возможности нет(количество контроллеров около 100шт.). . Вижу как решение создание отдельных тегов для мониторинга каждого соединения и занесение их в аларм лист. Подскажите как вы реализовываете данный вопрос.

makesstr
осмотрелся
осмотрелся
Сообщения: 194
Зарегистрирован: 19 сен 2019, 10:09
Имя: Макс
Страна: Россия
город/регион: Славянск-на-Кубани
Благодарил (а): 5 раз
Поблагодарили: 34 раза

Диагностика каналов WinCC TIA Portal

Сообщение makesstr »

Есть подприложение Create redundant connection которое создает внутренние теги, по которым можно определить состояние коннекшена.
Сам тег называется как-то так, если не изменяет память "@ConnectionStatus"
WinCC 7.4 SP1 Upd15, Step5.6

LexSL
осмотрелся
осмотрелся
Сообщения: 192
Зарегистрирован: 16 дек 2011, 15:13
Имя: Алексей
Страна: Россия
Благодарил (а): 65 раз
Поблагодарили: 46 раз

Диагностика каналов WinCC TIA Portal

Сообщение LexSL »

Ставите галочку "Clock Memory" в HW Config на вкладке "Cycle/Clock Memory" и указываете адрес. Например на картинке 0.
по адресу MB(адрес) PLC будет формировать биты с разной частотой (читайте help).
HW_Config.png
Объявляете в SymbolEditor тег.
symbol_editor.png
В 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.
Решение тоже есть.
Дополню отдельным сообщением.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Автор темы
Palladins
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 26 дек 2019, 14:11
Имя: Евгений

Диагностика каналов WinCC TIA Portal

Сообщение Palladins »

Вопрос решил вот таким образом:
1. Создал тег c типом данных Int на контроллере (пол часа времени потерял с типом данных Bool, и не добился успеха))
2. Занес данный тег в WinCC и назвал connection_lost
3. Затем нажал на тег Properties -> Values и нажал галочку After communication error и задал значение после потери связи 100
Изображение
4. Создал аналоговую аварию
Изображение
5. Добавил верхний лимит 99
Изображение
6. Проверил на симуляторе
При работающем контроллере:
Изображение
При выключении контроллера(красным обозначены текущие аварии):
Изображение
При включении контроллера(зеленым обозначены архивные аварии):
Изображение

Если есть какие либо дополнения или мой вариант не верный, прошу указать в комментариях
Ответить

Вернуться в «WinCC»