[?+]: мои ошибки при экспериментах PLCSIM с WinCC flex

Панели оператора PP/OP/TP/TD/MP.
Программные пакеты ProTool/WinCC flexible, SCADA система WinCC
restrry
Posts: 9
Joined: Wed Dec 17, 2008 10:16 am
Location: Russia

[?+]: мои ошибки при экспериментах PLCSIM с WinCC flex

Post by restrry » Wed Dec 17, 2008 10:25 am

тут такая загвоздка делаю сейчас диплом.
Для имитации обработки реального сигнала надо подавать некоторый случайный аналоговый сигнал на вход.
Проблема - и программа в степе и в ВинСиСи Флексе интерфейс работают,
но когда пытаешься связать через PLCSIM,
то посланное с ВинСС значение на вход (любой - и аналоговый и дискретный) перезаписывают в следующем цикле значениями с симулятора.
Пытался использовать в ВинСС flex отправку и в I и в PI.
Извиняюсь, если подобная тема была, но ничего не нашел похожего. настройки ставил как было сказано в топике
http://plc.net.ru/viewtopic.php?t=7951& ... ncc+plcsim, но вообще тогда линка между степом и PLCSIM не наблюдается.

bunglehead
Posts: 109
Joined: Thu Oct 19, 2006 7:00 am
Location: Russia

Post by bunglehead » Wed Dec 17, 2008 12:09 pm

Зачем со скады писать в I? Лучше использовать какую то промежуточную память для таких нужд.

Как вариант можно вообще отключить обновление областей ввода/вывода, это позволит свободно писать во входы.

CoMod
Site Admin
Posts: 3977
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia

Post by CoMod » Wed Dec 17, 2008 5:01 pm

С PLCSIM 5.4 вяжется без проблем со Step7, Flex и WinCC.
Флекс вяжется даже если панель подключена через СР342 - чего прежние PLCSIM не позволяли.

У меня стоит этот программный, хотя появились вот эти новые после установки последнего симулятора
Image

Флекс запускаешь в режиме Runtime - то есть на компе работает полная имитация панели (если проект панели).

Как я и прежде писал:
- Ты что то не так делаешь...

В Setting PG/PC посмотри установленные драйвера - с последним PLCSIM добавилась куча новых именно для отладки
Открой проект Симатик Менеджер
Открой PLCSIM
Выбери интерфейс для "подключения" к контроллеру
Нажми кнопку Загрузки в контроллер - загрузи конфигурацию и блоки
Нажми в PLCSIM Run-p
Открой блок в Степ7 и нажми на очки (Online) - внизу забегает зелёная полоса...

restrry
Posts: 9
Joined: Wed Dec 17, 2008 10:16 am
Location: Russia

Post by restrry » Thu Dec 18, 2008 7:22 am

bunglehead wrote: Как вариант можно вообще отключить обновление областей ввода/вывода, это позволит свободно писать во входы.
попробую сделать, но как отключить обновление? в мануале к ПЛКСим не нашел.

в настройках как раз стоит интерфейс PLCSIM (MPI), проект линкуется, да и все вроде нормально, говорю - посланое из скады знаение в I перезаписывается на следующем цикле, как я полагаю видимо косяк в настройках ВинСС, а не в интерфейсе...
посылаю дискретный сигнал по средствам команды setBit, аналоговый вообще не могу никак ввести - даже на один цикл - либо производиться только отображение значения, введенного с симулятора, либо вообще ничего не вводится...
ввод значений со скады нужен для имитации отработки концевиков на задвижке - реализуется алгоритм повышенной надежности и приходиться все вводить вручную, т.к. реального контроллера естественно нет.
попробую сейчас принтскрины выложить настроек интерфейса, объявления переменных и тэгов.

restrry
Posts: 9
Joined: Wed Dec 17, 2008 10:16 am
Location: Russia

Post by restrry » Thu Dec 18, 2008 8:02 am

Image
Image
Image
Image

CoMod
Site Admin
Posts: 3977
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia

Post by CoMod » Thu Dec 18, 2008 8:55 am

Что за комп, № ХРюни, антивируса, Стенка, Флекса, PLCSIM ?
посланое из скады знаение в I перезаписывается на следующем цикле
Поточнее в формулировках - где, кем, чем, в каком цикле ?
Я не понял :cry:

restrry
Posts: 9
Joined: Wed Dec 17, 2008 10:16 am
Location: Russia

Post by restrry » Thu Dec 18, 2008 8:28 pm

ну для примера открываем ВинСС и добавляем на экран элемент switch. в своиствах элемента устанавливаю(объвления переменных в программе и тэгов выше на картинках):
general->process->tag->x1 I8.0
events->switch on->SetBit->x1 I8.0
events->switch off->ResetBit->x1 I8.0
также задаем просто индикатор - добавляю элемент circle. в своиствах задаю
appearance->tag->x1.
для нулевого знаения задаю один цвет, для единичного другой.
далее захожу в симантик менеджер,затем запускаю PLCSim. из менеджера загружаю программу в контроллер (конфигурацию задал) и задаю режим online. проверяю - все работает - там простецкая программа - элемент AND с двумя входами и еще сумматор для интеджер чисел. все в поряде.
теперь включаем в ВинСС start runtime system (не start runtime system with simulator) и наблюдаем. все входы отображаются как заданы величины в plcsim`е и меняются с периодичностью определенной для каждой переменной атрибутом Acquisition cycle. опять же вроде все ясно. x1 в plcsim не трогаем и оно имеет значение false.
Теперь нажимаю на switch. он меняет свое положение на визуализации. на индикаторе на время которое было объявлено в свойствах Acquisition cycle для тэга x1 зажигается сигнализатор того, что x1 уствнолен в тру и в plcsim`е этот бит I 8.0 устанавливается в единицу(!). далее этот тэг произвольно сбрасывается.
если наоборот мы x1 устанавлевам в plcsim в тру, а по средствам switch из ВинСС его сбрасывам, то картина та же. один цикл x1 имеет знаение false и также отображается в plcsim`e, а на следующем цикле и в винсс и в плксиме сбрасывается.

bunglehead
Posts: 109
Joined: Thu Oct 19, 2006 7:00 am
Location: Russia

Post by bunglehead » Thu Dec 18, 2008 8:49 pm

restrry wrote:ну для примера открываем ВинСС и добавляем на экран элемент switch. в своиствах элемента устанавливаю(объвления переменных в программе и тэгов выше на картинках):
general->process->tag->x1
events->switch on->SetBit->x1
events->switch off->ResetBit->x1
также задаем просто индикатор - добавляю элемент circle. в своиствах задаю
appearance->tag->x1.
для нулевого знаения задаю один цвет, для единичного другой.
далее захожу в симантик менеджер,затем запускаю PLCSim. из менеджера загружаю программу в контроллер (конфигурацию задал) и задаю режим online. проверяю - все работает - там простецкая программа - элемент AND с двумя входами и еще сумматор для интеджер чисел. все в поряде.
теперь включаем в ВинСС start runtime system (не start runtime system with simulator) и наблюдаем. все входы отображаются как заданы величины в plcsim`е и меняются с периодичностью определенной для каждой переменной атрибутом Acquisition cycle. опять же вроде все ясно. x1 в plcsim не трогаем и оно имеет значение false.
Теперь нажимаю на switch. он меняет свое положение на визуализации. на индикаторе на время которое было объявлено в свойствах Acquisition cycle для тэга x1 зажигается сигнализатор того, что x1 уствнолен в тру и в plcsim`е этот бит I 8.0 устанавливается в единицу(!). далее этот тэг произвольно сбрасывается.
если наоборот мы x1 устанавлевам в plcsim в тру, а по средствам switch из ВинСС его сбрасывам, то картина та же. один цикл x1 имеет знаение false и также отображается в plcsim`e, а на следующем цикле и в винсс и в плксиме сбрасывается.
Это абсолютно нормальное поведение. Process Image обновляется автоматически перед каждым циклом, симулятор в данном случае ведет себя совершенно правильно. Установка значения в PLCSIM в данном случае почти то же самое, что форсирование входа (который скада разумеется сбросить не в состоянии).

Прочитайте мой предыдущий комментарий. Есть вариант отключить обновление Process Image (это делается в настройках CPU), если конечно вам позарез надо писать именно в область входов.

CoMod
Site Admin
Posts: 3977
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia

Post by CoMod » Fri Dec 19, 2008 3:30 am

Никогда
events->switch on->SetBit->x1 I8.0
events->switch off->ResetBit->x1 I8.0
То есть ты пытаешься через Flex устанавливать значение на ВХОДЕ модуля ввода I8.0 !
Тебе не кажется, что у тебя получается конфликт данных получаемых из PLCSIM I8.0 и из Флекса I8.0 ?
Ведь реальное состояние входа достаётся только со входа - и может устанавливаться только из окна PLCSIM.
Аналогичный "глюк" у тебя с попыткой установить значение аналогового входа из Флекса -

я не заметил при первом чтении этой строчки в первом сообщении - поэтому её покрасил
restrry wrote:Пытался использовать в ВинСС flex отправку и в I и в PI.
НИЗЯ из Флекса или из чего нибудь кроме PLCSIM или настоящего входа устанавливать значение на входе.
В связке PLCSIM-Флекса значение входов можно устанавливать только из PLCSIM.
Значение выхода или меркера можно изменять в программе или во Флексе или PLCSIM - надо учитывать, чтобы также не было конфликта изменения этого значения в программе иначе также будут "глюки" конфликта двух разных значений из 2-х источников данных.

По указанной тобой выше ссылке ведь был этот рисунок - показано как можно изменить из Флекса ВЫХОДЫ и ПАМЯТЬ, но не входы
Image

Добавь в таблицу символов меркеры в памяти -

Code: Select all

Button_10 М1.0
Button_11 М1.1
.....
Button_17 М1.7
и меняй их как хочешь с экрана - как и с выходами глюков не будет.

Кстати в PLCSIM есть возможность записывать изменения входов в текстовый файл и последующего "проигрывания" этой записи для имитации реального процесса во времени.
При этом автоматом будут изменяться изменяемые входы и можно интерактивно нажимать кнопки на экране как в жизни.
Файл можно вручную подредактировать и вбить напрямую нужные значения с указанием времени от начала проигрывания.

restrry
Posts: 9
Joined: Wed Dec 17, 2008 10:16 am
Location: Russia

Post by restrry » Fri Dec 19, 2008 6:42 am

Кстати в PLCSIM есть возможность записывать изменения входов в текстовый файл и последующего "проигрывания" этой записи для имитации реального процесса во времени.
При этом автоматом будут изменяться изменяемые входы и можно интерактивно нажимать кнопки на экране как в жизни.
Файл можно вручную подредактировать и вбить напрямую нужные значения с указанием времени от начала проигрывания.
это я уже сделал))) но хотелось бы по человечески. поэтому и попросил помощи, спасибо за инструкции, вечером попробую все сделать :D

restrry
Posts: 9
Joined: Wed Dec 17, 2008 10:16 am
Location: Russia

Post by restrry » Wed Jan 14, 2009 12:36 pm

все спасибо, получилось. еще вопрос просто для саморазвития - когда производишь запись в ПЛК-СИМе, то данные сохраняються в формате DECIMAL, как можно их перевести в REAL. ну и наоборот - как необходимое число в real`е перевест в DECIMAL, чтобы произвести имитацию подачи реального сигнала с помехой?

sania
Site Admin
Posts: 1371
Joined: Sat Aug 13, 2005 6:15 am

Post by sania » Wed Jan 14, 2009 9:50 pm

данные сохраняются в виде 0 и 1 :shock:
ты себе выбрал отображение DECIMAL
выбери REAL и не надо ничего городить :D
P.S. DECIMAL to REAL -> DTR (STL) наоборот RND