Секреты и трюки ТИА Портала
Секреты и трюки ТИА Портала
Здесь буду выкладывать ответы на некоторые животрепещущие вопросы по ТИА Порталу.
Re: Секреты и трюки ТИА Портала
1) Step 7 + WinCC: как переключать экраны (окна) на панели оператора в программе контроллера?
1. Нужно в PLC Tags создать тэг типа USInt, он позволит задавать номер экрана от 0 до 255.
2. Создать соответствующий тэг в HMI Tags и связать их между собой.
3. В свойствах тэга экрана в HMI Tags обязательно нужно настроить способ обновления тэга Acquisition mode = Cyclic continuous (постоянное циклическое обновление). Это делается, потому что тэг не будет связан ни с одним графическим объектом на экранах.
4. В событии Value change тэга пишем функцию ActivateScreenByNumber, которая при изменении тэга переключит экран на соответствующий номер.
5. Теперь в программе ПЛК можно произвольным образом переключать экраны, используя функцию MOVE.
How do you configure a screen change via the controller in WinCC (TIA Portal)?
1. Нужно в PLC Tags создать тэг типа USInt, он позволит задавать номер экрана от 0 до 255.
2. Создать соответствующий тэг в HMI Tags и связать их между собой.
3. В свойствах тэга экрана в HMI Tags обязательно нужно настроить способ обновления тэга Acquisition mode = Cyclic continuous (постоянное циклическое обновление). Это делается, потому что тэг не будет связан ни с одним графическим объектом на экранах.
4. В событии Value change тэга пишем функцию ActivateScreenByNumber, которая при изменении тэга переключит экран на соответствующий номер.
5. Теперь в программе ПЛК можно произвольным образом переключать экраны, используя функцию MOVE.
How do you configure a screen change via the controller in WinCC (TIA Portal)?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: Секреты и трюки ТИА Портала
2) Step 7 + WinCC: как связать кнопку на панели оператора с соответствующим тэгом в контроллере? Необходимо, чтобы при нажатии кнопки тэг включался, а при отпускании кнопки - выключался (как кнопка с пружинным возвратом).
В событии Press ("нажата") кнопки имеется специальная функция SetBitWhileKeyPressed ("ВключитьБитПокаКнопкаНажата"), которая реализует задуманное.
Некоторые по незнанию используют два события - Press и Release ("нажата" и "отпущена") и соответственно функции SetBit ("включить бит") и ResetBit ("сбросить бит"). Это в принципе почти одно и то же, только требует больше телодвижений при программировании.
Имеются примечания:
1. Если используется функция SetBitWhileKeyPressed, при нажатой кнопке и переключении экрана соответствующий тэг кнопки автоматически сбросится (как будто кнопка отпущена). При этом автоматически будут выполнены функции в событии Release ("отпущена").
2. Если используется функция SetBitWhileKeyPressed, тэг кнопки нельзя сбрасывать или устанавливать в программе ПЛК, так как этот тэг является read-only. Если требуется доступ к тэгу, используйте SetBit/ResetBit.
3. Если связь панели с контроллером перегружена по траффику, то при кратковременном нажатии кнопки установление соответствующего тэга в ПЛК может не произойти. В этом случае для важных кнопок типа "СТОП" рекомендуется использовать функцию SetBit, а сбрасывать тэг кнопки в программе ПЛК функцией сброса бита ---(R) после реагирования на нажатие кнопки.
4. В справке ТИА Портала про функцию SetBitWhileKeyPressed написано следующее интересное примечание:
Я использую SetBitWhileKeyPressed и еще ничего не сломалось.
В событии Press ("нажата") кнопки имеется специальная функция SetBitWhileKeyPressed ("ВключитьБитПокаКнопкаНажата"), которая реализует задуманное.
Некоторые по незнанию используют два события - 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.
Странное примечание, ведь еще есть функция "SetBitInTag". Возможно рекомендация дана для уменьшения траффика между ПЛК и панелью.Если ПЛК поддерживает тэги типа BOOL, не используйте эту функцию. Используйте лучше системную функцию "SetBit".

У вас нет необходимых прав для просмотра вложений в этом сообщении.