Как, с помощью VBscript, скопировать PLC-бит в бит «панельного» слова ?

Панели оператора PP/OP/TP/TD/MP.
Программные пакеты ProTool/WinCC flexible, SCADA система WinCC
Post Reply
Alex3110
Posts: 113
Joined: Mon Sep 27, 2010 7:17 pm

Как, с помощью VBscript, скопировать PLC-бит в бит «панельного» слова ?

Post by Alex3110 » Mon Apr 08, 2019 11:24 am

Всем привет !

TIA-portal и панельTP1500 Comfort.
На панели есть PLC-шный битовый тэг.
Нужно создать новое сообщение на панели, но я не хочу ничего делать в PLC (создавать дополнительное слово, или копировать тот бит в уже имеющееся «алармное» слово ), чтобы использовать «классический» метод передачи битов сообщений через слова.

Можно ли скопировать «внешний» битовый тег в любой бит «внутреннего» слова панели, например, в бит № 3 ?

Как это сделать в коде VBS ?

Заранее благодарен.

Rex2701
Posts: 262
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

Re: Как, с помощью VBscript, скопировать PLC-бит в бит «панельного» слова ?

Post by Rex2701 » Mon Apr 08, 2019 11:49 am

https://support.industry.siemens.com/cs ... 7&lc=en-RU
Читаешь из одного тега, пишешь в другой.

Alex3110
Posts: 113
Joined: Mon Sep 27, 2010 7:17 pm

Re: Как, с помощью VBscript, скопировать PLC-бит в бит «панельного» слова ?

Post by Alex3110 » Tue Apr 09, 2019 5:48 am

Спасибо за ответ.

В ссылке указан раздел «SmartTags» документа, где приведён пример, в котором рассказывается как в одно и то же поле вывода выводить различные параметры одного и того же графического объекта «Motor», созданного пользователем. Объект содержит 3 элемента : "RPM" (Int), "On" (Bool) и "Off" (Bool). В зависимости от введённого в определённое поле ввода имени элемента, в поле вывода выводится значение/состояние этого элемента.

Что-то не уловил связь с моей задачей.

Rex2701
Posts: 262
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

Re: Как, с помощью VBscript, скопировать PLC-бит в бит «панельного» слова ?

Post by Rex2701 » Tue Apr 09, 2019 10:01 am

Alex3110 wrote:
Tue Apr 09, 2019 5:48 am
Что-то не уловил связь с моей задачей.
Так будет понятнее?

Code: Select all

SmartTag("Tag1").Value = SmartTag("Tag2").Value
Понятно, что отдельный бит так не скопировать. Надо наворачивать логические операции, чтобы маскировать его... Но общая идея-то должна быть понятна.

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

Re: Как, с помощью VBscript, скопировать PLC-бит в бит «панельного» слова ?

Post by sania » Wed Apr 10, 2019 9:07 am

обязательно VB?
можно же в свойствах тага проца, в эвентах использовать SetTag , в нём внутренний таг(ворд) а значение - таг проца(бит)
в алармах пишешь ворд а триггер бит =8 и всё...

Alex3110
Posts: 113
Joined: Mon Sep 27, 2010 7:17 pm

Re: Как, с помощью VBscript, скопировать PLC-бит в бит «панельного» слова ?

Post by Alex3110 » Wed Apr 10, 2019 5:17 pm

Rex2701 wrote:
Tue Apr 09, 2019 10:01 am
Так будет понятнее?

Code: Select all

SmartTag("Tag1").Value = SmartTag("Tag2").Value
Понятно, что отдельный бит так не скопировать. Надо наворачивать логические операции, чтобы маскировать его... Но общая идея-то должна быть понятна.
Вобщем идея была понятна, непонятны были детали.
Т.е. :
Сначала надо найти такое слово (или байт), в который попадает нужный бит, а потом, с помощью указанной Вами "конструкции" передать это слово из внешнего "PLC"-ного тэга (слова или байта)" во "внутренний" HMI-ный.
Это если найдётся такое слово (байт) ...
А точно бит нельзя напрямую передать из "внешнего" во "внутренний" ?
Ну а если нельзя и не найдётся уже созданное такое слово (байт), то придётся создавать новый тэг формата "слово" (байт) в который нужный бит попадает. А это уже работа внутри кода PLC, т.е. основное условие "не залазить в PLC" - нарушается.
Тогда мне проще воспользоваться классической схемой, т.е. в ПЛК создать новое слово, накидать в него все нужные биты и передавать это слово в HMI.


sania wrote:
Wed Apr 10, 2019 9:07 am
обязательно VB
Да и не обязательно. Чем проще,тем лучше. Завтра гляну на работе.

Rex2701
Posts: 262
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

Re: Как, с помощью VBscript, скопировать PLC-бит в бит «панельного» слова ?

Post by Rex2701 » Wed Apr 10, 2019 7:44 pm

Пишу по памяти, возможно есть ошибка:

Code: Select all

Dim w as Word
Dim b as Int
w = SmartTag("HMIWord").Value
b = SmartTag("PLCbit").Value
w = w AND (b * 8)
SmartTag("HMIWord").Value = w
И что сложного?

Alex3110
Posts: 113
Joined: Mon Sep 27, 2010 7:17 pm

Re: Как, с помощью VBscript, скопировать PLC-бит в бит «панельного» слова ?

Post by Alex3110 » Tue Apr 16, 2019 10:26 am

Да в принципе, наверное, и ничего...
Если работаешь с этим не раз в 3 года :-)

Rex2701
Posts: 262
Joined: Wed Oct 13, 2010 8:44 am
Location: Russian Federation

Re: Как, с помощью VBscript, скопировать PLC-бит в бит «панельного» слова ?

Post by Rex2701 » Tue Apr 16, 2019 10:48 am

Alex3110 wrote:
Tue Apr 16, 2019 10:26 am
Да в принципе, наверное, и ничего...
Если работаешь с этим не раз в 3 года :-)
Последний раз я писал скрипт в WinCC Flexible как раз где-то 3-4 года назад.

Post Reply