Всем привет !
TIA-portal и панельTP1500 Comfort.
На панели есть PLC-шный битовый тэг.
Нужно создать новое сообщение на панели, но я не хочу ничего делать в PLC (создавать дополнительное слово, или копировать тот бит в уже имеющееся «алармное» слово ), чтобы использовать «классический» метод передачи битов сообщений через слова.
Можно ли скопировать «внешний» битовый тег в любой бит «внутреннего» слова панели, например, в бит № 3 ?
Как это сделать в коде VBS ?
Заранее благодарен.
Как, с помощью VBscript, скопировать PLC-бит в бит «панельного» слова ?
-
- Posts: 159
- Joined: Mon Sep 27, 2010 7:17 pm
-
- Posts: 374
- Joined: Wed Oct 13, 2010 8:44 am
- Location: Russian Federation
Re: Как, с помощью VBscript, скопировать PLC-бит в бит «панельного» слова ?
https://support.industry.siemens.com/cs ... 7&lc=en-RU
Читаешь из одного тега, пишешь в другой.
Читаешь из одного тега, пишешь в другой.
-
- Posts: 159
- Joined: Mon Sep 27, 2010 7:17 pm
Re: Как, с помощью VBscript, скопировать PLC-бит в бит «панельного» слова ?
Спасибо за ответ.
В ссылке указан раздел «SmartTags» документа, где приведён пример, в котором рассказывается как в одно и то же поле вывода выводить различные параметры одного и того же графического объекта «Motor», созданного пользователем. Объект содержит 3 элемента : "RPM" (Int), "On" (Bool) и "Off" (Bool). В зависимости от введённого в определённое поле ввода имени элемента, в поле вывода выводится значение/состояние этого элемента.
Что-то не уловил связь с моей задачей.
В ссылке указан раздел «SmartTags» документа, где приведён пример, в котором рассказывается как в одно и то же поле вывода выводить различные параметры одного и того же графического объекта «Motor», созданного пользователем. Объект содержит 3 элемента : "RPM" (Int), "On" (Bool) и "Off" (Bool). В зависимости от введённого в определённое поле ввода имени элемента, в поле вывода выводится значение/состояние этого элемента.
Что-то не уловил связь с моей задачей.
-
- Posts: 374
- Joined: Wed Oct 13, 2010 8:44 am
- Location: Russian Federation
Re: Как, с помощью VBscript, скопировать PLC-бит в бит «панельного» слова ?
Так будет понятнее?
Code: Select all
SmartTag("Tag1").Value = SmartTag("Tag2").Value
-
- Site Admin
- Posts: 1387
- Joined: Sat Aug 13, 2005 6:15 am
Re: Как, с помощью VBscript, скопировать PLC-бит в бит «панельного» слова ?
обязательно VB?
можно же в свойствах тага проца, в эвентах использовать SetTag , в нём внутренний таг(ворд) а значение - таг проца(бит)
в алармах пишешь ворд а триггер бит =8 и всё...
можно же в свойствах тага проца, в эвентах использовать SetTag , в нём внутренний таг(ворд) а значение - таг проца(бит)
в алармах пишешь ворд а триггер бит =8 и всё...
-
- Posts: 159
- Joined: Mon Sep 27, 2010 7:17 pm
Re: Как, с помощью VBscript, скопировать PLC-бит в бит «панельного» слова ?
Вобщем идея была понятна, непонятны были детали.Rex2701 wrote: ↑Tue Apr 09, 2019 10:01 am Так будет понятнее?Понятно, что отдельный бит так не скопировать. Надо наворачивать логические операции, чтобы маскировать его... Но общая идея-то должна быть понятна.Code: Select all
SmartTag("Tag1").Value = SmartTag("Tag2").Value
Т.е. :
Сначала надо найти такое слово (или байт), в который попадает нужный бит, а потом, с помощью указанной Вами "конструкции" передать это слово из внешнего "PLC"-ного тэга (слова или байта)" во "внутренний" HMI-ный.
Это если найдётся такое слово (байт) ...
А точно бит нельзя напрямую передать из "внешнего" во "внутренний" ?
Ну а если нельзя и не найдётся уже созданное такое слово (байт), то придётся создавать новый тэг формата "слово" (байт) в который нужный бит попадает. А это уже работа внутри кода PLC, т.е. основное условие "не залазить в PLC" - нарушается.
Тогда мне проще воспользоваться классической схемой, т.е. в ПЛК создать новое слово, накидать в него все нужные биты и передавать это слово в HMI.
Да и не обязательно. Чем проще,тем лучше. Завтра гляну на работе.
-
- Posts: 374
- Joined: Wed Oct 13, 2010 8:44 am
- Location: Russian Federation
Re: Как, с помощью VBscript, скопировать PLC-бит в бит «панельного» слова ?
Пишу по памяти, возможно есть ошибка:
И что сложного?
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
-
- Posts: 159
- Joined: Mon Sep 27, 2010 7:17 pm
Re: Как, с помощью VBscript, скопировать PLC-бит в бит «панельного» слова ?
Да в принципе, наверное, и ничего...
Если работаешь с этим не раз в 3 года
Если работаешь с этим не раз в 3 года
-
- Posts: 374
- Joined: Wed Oct 13, 2010 8:44 am
- Location: Russian Federation