Секреты и трюки ТИА Портала

Инженерное программное обеспечение
Ответить
Михайло
Администратор
Сообщения: 4024
Зарегистрирован: 19 сен 2012, 19:16

Секреты и трюки ТИА Портала

Сообщение Михайло »

Здесь буду выкладывать ответы на некоторые животрепещущие вопросы по ТИА Порталу.

Михайло
Администратор
Сообщения: 4024
Зарегистрирован: 19 сен 2012, 19:16

Re: Секреты и трюки ТИА Портала

Сообщение Михайло »

1) Step 7 + WinCC: как переключать экраны (окна) на панели оператора в программе контроллера?

1. Нужно в PLC Tags создать тэг типа USInt, он позволит задавать номер экрана от 0 до 255.
Экран_PLC.png
2. Создать соответствующий тэг в HMI Tags и связать их между собой.
Экран_HMI.png
3. В свойствах тэга экрана в HMI Tags обязательно нужно настроить способ обновления тэга Acquisition mode = Cyclic continuous (постоянное циклическое обновление). Это делается, потому что тэг не будет связан ни с одним графическим объектом на экранах.
Экран_HMI_Acquisition_mode.png
4. В событии Value change тэга пишем функцию ActivateScreenByNumber, которая при изменении тэга переключит экран на соответствующий номер.
Экран_HMI_Value_change.png
5. Теперь в программе ПЛК можно произвольным образом переключать экраны, используя функцию MOVE.
Экран_PLC_Move.png
How do you configure a screen change via the controller in WinCC (TIA Portal)?
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Михайло
Администратор
Сообщения: 4024
Зарегистрирован: 19 сен 2012, 19:16

Re: Секреты и трюки ТИА Портала

Сообщение Михайло »

2) Step 7 + WinCC: как связать кнопку на панели оператора с соответствующим тэгом в контроллере? Необходимо, чтобы при нажатии кнопки тэг включался, а при отпускании кнопки - выключался (как кнопка с пружинным возвратом).

В событии Press ("нажата") кнопки имеется специальная функция SetBitWhileKeyPressed ("ВключитьБитПокаКнопкаНажата"), которая реализует задуманное.
SetBitWhileKeyPressed.png
Некоторые по незнанию используют два события - Press и Release ("нажата" и "отпущена") и соответственно функции SetBit ("включить бит") и ResetBit ("сбросить бит"). Это в принципе почти одно и то же, только требует больше телодвижений при программировании.

Имеются примечания:
1. Если используется функция SetBitWhileKeyPressed, при нажатой кнопке и переключении экрана соответствующий тэг кнопки автоматически сбросится (как будто кнопка отпущена). При этом автоматически будут выполнены функции в событии Release ("отпущена").
2. Если используется функция SetBitWhileKeyPressed, тэг кнопки нельзя сбрасывать или устанавливать в программе ПЛК, так как этот тэг является read-only. Если требуется доступ к тэгу, используйте SetBit/ResetBit.
3. Если связь панели с контроллером перегружена по траффику, то при кратковременном нажатии кнопки установление соответствующего тэга в ПЛК может не произойти. В этом случае для важных кнопок типа "СТОП" рекомендуется использовать функцию SetBit, а сбрасывать тэг кнопки в программе ПЛК функцией сброса бита ---(R) после реагирования на нажатие кнопки.
4. В справке ТИА Портала про функцию SetBitWhileKeyPressed написано следующее интересное примечание:
If the PLC supports BOOL tags, do not use this system function. Use the "SetBit" system function instead.
Если ПЛК поддерживает тэги типа BOOL, не используйте эту функцию. Используйте лучше системную функцию "SetBit".
Странное примечание, ведь еще есть функция "SetBitInTag". Возможно рекомендация дана для уменьшения траффика между ПЛК и панелью. :) Я использую SetBitWhileKeyPressed и еще ничего не сломалось.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Ответить