Как осуществить контроль сети MPI между S7-300 и WinCC

Панели оператора PP/OP/TP/TD/MP.
Программные пакеты ProTool/WinCC flexible, SCADA система WinCC
Sergey177
Posts: 43
Joined: Thu Aug 18, 2011 2:39 pm

Как осуществить контроль сети MPI между S7-300 и WinCC

Post by Sergey177 »

Столкнулся тут с задачей. На действующем проекте нужно контролировать связь между контроллером S7-300 и рабочей станцией на WinCC. Связь осуществлена по MPI и изменена на другой тип не может. Задача - при потере связи или ошибках обмена - контроллером должна быть получена информация, для дальнейшей обработки и соответствующих действий. Господа - помогите плиз!
CHANt
Posts: 501
Joined: Tue Jun 27, 2006 5:52 am
Location: Russia

Re: Как осуществить контроль сети MPI между S7-300 и WinCC

Post by CHANt »

Простейший вариант.
В GlobalScripts скрипт делаешь который к значению переменной добавляет единичку каждую секунду. Переменную отсылаешь в контроллер.
В контроллере, берем стандартную функцию FC90 "WSR"
Image
Заводим в ДБ массив из 5 переменных (или сколько надо) и переменную принимаемую из WinCC.
На вход EN устанавливаем тактовый меркер 1 сек.
Как работать с FC90 показано на скриншоте и дано в справке Step7
Затем берем компаратор и сравниваем, ну например, 2 и 5 значение из массива. Если не равны - связь есть.
serg_58
Posts: 99
Joined: Thu Jun 03, 2010 7:43 pm
Location: Russia

Re: Как осуществить контроль сети MPI между S7-300 и WinCC

Post by serg_58 »

Ну, вообще то можно еще проще.
Берешь в PLC тактовую переменную, например 2 hz, посылаешь его в WinCC, проверяешь наличие изменений, присваиваешь это значение другому тегу и возвращаешь тот же сигнал на другую переменную. Далее мониторишь наличие изменений в PLC. Если их нет в течении заданного времени - Alarm. Так можно проверять связь с любой HMI и любым протоколом. Я это делал с Wonderware. :D
Sergey177
Posts: 43
Joined: Thu Aug 18, 2011 2:39 pm

Re: Как осуществить контроль сети MPI между S7-300 и WinCC

Post by Sergey177 »

Спасибо за советы! В общем на основе ваших рекомендаций придумал свой вариант: написал скрипт в С - оценивает состояние бита, полученного из PLC - если он 1 - устанавливает его в 0, если 0 - устанавливает единицу. Тригер 1с. В общем получился тактовый меркер, формируемый в WinCC. В PLC частота изменения бита контролируется таймером.