Page 1 of 1

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

Posted: Mon Apr 08, 2019 11:24 am
by Alex3110
Всем привет !

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

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

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

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

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

Posted: Mon Apr 08, 2019 11:49 am
by Rex2701
https://support.industry.siemens.com/cs ... 7&lc=en-RU
Читаешь из одного тега, пишешь в другой.

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

Posted: Tue Apr 09, 2019 5:48 am
by Alex3110
Спасибо за ответ.

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

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

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

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

Code: Select all

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

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

Posted: Wed Apr 10, 2019 9:07 am
by sania
обязательно VB?
можно же в свойствах тага проца, в эвентах использовать SetTag , в нём внутренний таг(ворд) а значение - таг проца(бит)
в алармах пишешь ворд а триггер бит =8 и всё...

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

Posted: Wed Apr 10, 2019 5:17 pm
by Alex3110
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
Да и не обязательно. Чем проще,тем лучше. Завтра гляну на работе.

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

Posted: Wed Apr 10, 2019 7:44 pm
by Rex2701
Пишу по памяти, возможно есть ошибка:

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
И что сложного?

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

Posted: Tue Apr 16, 2019 10:26 am
by Alex3110
Да в принципе, наверное, и ничего...
Если работаешь с этим не раз в 3 года :-)

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

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