тут такая загвоздка делаю сейчас диплом.
Для имитации обработки реального сигнала надо подавать некоторый случайный аналоговый сигнал на вход.
Проблема - и программа в степе и в ВинСиСи Флексе интерфейс работают,
но когда пытаешься связать через PLCSIM,
то посланное с ВинСС значение на вход (любой - и аналоговый и дискретный) перезаписывают в следующем цикле значениями с симулятора.
Пытался использовать в ВинСС flex отправку и в I и в PI.
Извиняюсь, если подобная тема была, но ничего не нашел похожего. настройки ставил как было сказано в топике
http://plc.net.ru/viewtopic.php?t=7951& ... ncc+plcsim, но вообще тогда линка между степом и PLCSIM не наблюдается.
[?+]: мои ошибки при экспериментах PLCSIM с WinCC flex
-
- Posts: 9
- Joined: Wed Dec 17, 2008 10:16 am
- Location: Russia
-
- Site Admin
- Posts: 3992
- Joined: Thu Feb 16, 2006 3:25 pm
- Location: Russia
С PLCSIM 5.4 вяжется без проблем со Step7, Flex и WinCC.
Флекс вяжется даже если панель подключена через СР342 - чего прежние PLCSIM не позволяли.
У меня стоит этот программный, хотя появились вот эти новые после установки последнего симулятора
Флекс запускаешь в режиме Runtime - то есть на компе работает полная имитация панели (если проект панели).
Как я и прежде писал:
- Ты что то не так делаешь...
В Setting PG/PC посмотри установленные драйвера - с последним PLCSIM добавилась куча новых именно для отладки
Открой проект Симатик Менеджер
Открой PLCSIM
Выбери интерфейс для "подключения" к контроллеру
Нажми кнопку Загрузки в контроллер - загрузи конфигурацию и блоки
Нажми в PLCSIM Run-p
Открой блок в Степ7 и нажми на очки (Online) - внизу забегает зелёная полоса...
Флекс вяжется даже если панель подключена через СР342 - чего прежние PLCSIM не позволяли.
У меня стоит этот программный, хотя появились вот эти новые после установки последнего симулятора
Флекс запускаешь в режиме Runtime - то есть на компе работает полная имитация панели (если проект панели).
Как я и прежде писал:
- Ты что то не так делаешь...
В Setting PG/PC посмотри установленные драйвера - с последним PLCSIM добавилась куча новых именно для отладки
Открой проект Симатик Менеджер
Открой PLCSIM
Выбери интерфейс для "подключения" к контроллеру
Нажми кнопку Загрузки в контроллер - загрузи конфигурацию и блоки
Нажми в PLCSIM Run-p
Открой блок в Степ7 и нажми на очки (Online) - внизу забегает зелёная полоса...
-
- Posts: 9
- Joined: Wed Dec 17, 2008 10:16 am
- Location: Russia
попробую сделать, но как отключить обновление? в мануале к ПЛКСим не нашел.bunglehead wrote: Как вариант можно вообще отключить обновление областей ввода/вывода, это позволит свободно писать во входы.
в настройках как раз стоит интерфейс PLCSIM (MPI), проект линкуется, да и все вроде нормально, говорю - посланое из скады знаение в I перезаписывается на следующем цикле, как я полагаю видимо косяк в настройках ВинСС, а не в интерфейсе...
посылаю дискретный сигнал по средствам команды setBit, аналоговый вообще не могу никак ввести - даже на один цикл - либо производиться только отображение значения, введенного с симулятора, либо вообще ничего не вводится...
ввод значений со скады нужен для имитации отработки концевиков на задвижке - реализуется алгоритм повышенной надежности и приходиться все вводить вручную, т.к. реального контроллера естественно нет.
попробую сейчас принтскрины выложить настроек интерфейса, объявления переменных и тэгов.
-
- Posts: 9
- Joined: Wed Dec 17, 2008 10:16 am
- Location: Russia
ну для примера открываем ВинСС и добавляем на экран элемент 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, а на следующем цикле и в винсс и в плксиме сбрасывается.
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, а на следующем цикле и в винсс и в плксиме сбрасывается.
-
- Posts: 109
- Joined: Thu Oct 19, 2006 7:00 am
- Location: Russia
Это абсолютно нормальное поведение. Process Image обновляется автоматически перед каждым циклом, симулятор в данном случае ведет себя совершенно правильно. Установка значения в PLCSIM в данном случае почти то же самое, что форсирование входа (который скада разумеется сбросить не в состоянии).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 (это делается в настройках CPU), если конечно вам позарез надо писать именно в область входов.
-
- Site Admin
- Posts: 3992
- Joined: Thu Feb 16, 2006 3:25 pm
- Location: Russia
Никогда
Тебе не кажется, что у тебя получается конфликт данных получаемых из PLCSIM I8.0 и из Флекса I8.0 ?
Ведь реальное состояние входа достаётся только со входа - и может устанавливаться только из окна PLCSIM.
Аналогичный "глюк" у тебя с попыткой установить значение аналогового входа из Флекса -
я не заметил при первом чтении этой строчки в первом сообщении - поэтому её покрасил
В связке PLCSIM-Флекса значение входов можно устанавливать только из PLCSIM.
Значение выхода или меркера можно изменять в программе или во Флексе или PLCSIM - надо учитывать, чтобы также не было конфликта изменения этого значения в программе иначе также будут "глюки" конфликта двух разных значений из 2-х источников данных.
По указанной тобой выше ссылке ведь был этот рисунок - показано как можно изменить из Флекса ВЫХОДЫ и ПАМЯТЬ, но не входы
Добавь в таблицу символов меркеры в памяти -
и меняй их как хочешь с экрана - как и с выходами глюков не будет.
Кстати в PLCSIM есть возможность записывать изменения входов в текстовый файл и последующего "проигрывания" этой записи для имитации реального процесса во времени.
При этом автоматом будут изменяться изменяемые входы и можно интерактивно нажимать кнопки на экране как в жизни.
Файл можно вручную подредактировать и вбить напрямую нужные значения с указанием времени от начала проигрывания.
То есть ты пытаешься через Flex устанавливать значение на ВХОДЕ модуля ввода I8.0 !events->switch on->SetBit->x1 I8.0
events->switch off->ResetBit->x1 I8.0
Тебе не кажется, что у тебя получается конфликт данных получаемых из PLCSIM I8.0 и из Флекса I8.0 ?
Ведь реальное состояние входа достаётся только со входа - и может устанавливаться только из окна PLCSIM.
Аналогичный "глюк" у тебя с попыткой установить значение аналогового входа из Флекса -
я не заметил при первом чтении этой строчки в первом сообщении - поэтому её покрасил
НИЗЯ из Флекса или из чего нибудь кроме PLCSIM или настоящего входа устанавливать значение на входе.restrry wrote:Пытался использовать в ВинСС flex отправку и в I и в PI.
В связке PLCSIM-Флекса значение входов можно устанавливать только из PLCSIM.
Значение выхода или меркера можно изменять в программе или во Флексе или PLCSIM - надо учитывать, чтобы также не было конфликта изменения этого значения в программе иначе также будут "глюки" конфликта двух разных значений из 2-х источников данных.
По указанной тобой выше ссылке ведь был этот рисунок - показано как можно изменить из Флекса ВЫХОДЫ и ПАМЯТЬ, но не входы
Добавь в таблицу символов меркеры в памяти -
Code: Select all
Button_10 М1.0
Button_11 М1.1
.....
Button_17 М1.7
Кстати в PLCSIM есть возможность записывать изменения входов в текстовый файл и последующего "проигрывания" этой записи для имитации реального процесса во времени.
При этом автоматом будут изменяться изменяемые входы и можно интерактивно нажимать кнопки на экране как в жизни.
Файл можно вручную подредактировать и вбить напрямую нужные значения с указанием времени от начала проигрывания.
-
- Posts: 9
- Joined: Wed Dec 17, 2008 10:16 am
- Location: Russia
это я уже сделал))) но хотелось бы по человечески. поэтому и попросил помощи, спасибо за инструкции, вечером попробую все сделатьКстати в PLCSIM есть возможность записывать изменения входов в текстовый файл и последующего "проигрывания" этой записи для имитации реального процесса во времени.
При этом автоматом будут изменяться изменяемые входы и можно интерактивно нажимать кнопки на экране как в жизни.
Файл можно вручную подредактировать и вбить напрямую нужные значения с указанием времени от начала проигрывания.
-
- Posts: 9
- Joined: Wed Dec 17, 2008 10:16 am
- Location: Russia
все спасибо, получилось. еще вопрос просто для саморазвития - когда производишь запись в ПЛК-СИМе, то данные сохраняються в формате DECIMAL, как можно их перевести в REAL. ну и наоборот - как необходимое число в real`е перевест в DECIMAL, чтобы произвести имитацию подачи реального сигнала с помехой?