- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Cкрипты или другие способы как передавать данный из WinCC Prof Runtime (TIA Portal v15) на внешнюю БД?
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 22 авг 2012, 00:53
- Имя: David Belov
- Страна: Russia
- город/регион: Moscow
Cкрипты или другие способы как передавать данный из WinCC Prof Runtime (TIA Portal v15) на внешнюю БД?
Подскажите есть ли готовые скрипты или другие способы как передавать данный из WinCC Prof Runtime (TIA Portal v15) на внешнюю БД ( наша собственная БД MS SQL на сервере)?
-
- эксперт
- Сообщения: 2340
- Зарегистрирован: 20 дек 2018, 04:45
- Имя: Сергей
- Страна: РБ/РФ
- город/регион: РФ Сергиев Посад
- Благодарил (а): 1998 раз
- Поблагодарили: 176 раз
Cкрипты или другие способы как передавать данный из WinCC Prof Runtime (TIA Portal v15) на внешнюю БД?
Ищите примеры VBScript.
Они есть, но без учета вашей задачи.
Они есть, но без учета вашей задачи.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
-
- освоился
- Сообщения: 290
- Зарегистрирован: 15 сен 2016, 18:47
- Имя: Андрей
- Страна: Россия
- город/регион: Вологда
- Благодарил (а): 19 раз
- Поблагодарили: 76 раз
Cкрипты или другие способы как передавать данный из WinCC Prof Runtime (TIA Portal v15) на внешнюю БД?
Вот пример
Код: Выделить всё
Sub SaveToDB()
Dim TableName, Uname, DBPassword, DataBaseName, SQLServer
Dim SQLConnection
Dim SQLConnectionString
Dim SQLFields,SQLValues
Dim SQLQueryString
Dim SQLCommand
Dim D_Date
DataBaseName = "DBName"
Uname = "user"
DBPassword = "password"
SQLServer = "127.0.0.1\SQLEXPRESS"
TableName = "dbo.table"
Dim TagGroup
Set TagGroup = HMIRuntime.Tags.CreateTagSet
TagGroup.Add("HMI_1")
TagGroup.Add("HMI_2")
TagGroup.Add("HMI_3")
TagGroup.Add("HMI_4")
TagGroup.Add("HMI_5")
TagGroup.Add("HMI_6")
TagGroup.Add("HMI_7")
TagGroup.Add("HMI_8")
TagGroup.Add("HMI_9")
TagGroup.Add("HMI_10")
TagGroup.Add("HMI_11")
TagGroup.Add("HMI_12")
TagGroup.Add("HMI_13")
TagGroup.Add("HMI_14")
TagGroup.Read()
D_Date = Now
SQLConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" & Uname & ";Pwd=" & DBPassword & ";Initial Catalog=" & DataBaseName & ";Data Source=" & SQLServer & ""
Set SQLConnection = CreateObject("ADODB.Connection")
SQLConnection.ConnectionString = SQLConnectionString
SQLConnection.Open
Set SQLCommand = CreateObject("ADODB.Command")
SQLCommand.ActiveConnection = SQLConnection
SQLFields = " (D_Date, " &_
" field_2, " &_
" field_3, " &_
" field_4, " &_
" field_5, " &_
" field_6, " &_
" field_7, " &_
" field_8, " &_
" field_9, " &_
" field_10, " &_
" field_11, " &_
" field_12, " &_
" field_13, " &_
" field_14, " &_
" field_15)"
SQLValues = " Values('" & D_Date & "','" &_
"" & TagGroup("HMI_1").Value & "','" &_
"" & TagGroup("HMI_2").Value & "','" &_
"" & TagGroup("HMI_3").Value & "','" &_
"" & TagGroup("HMI_4").Value & "','" &_
"" & TagGroup("HMI_5").Value & "','" &_
"" & TagGroup("HMI_6").Value & "','" &_
"" & TagGroup("HMI_7").Value & "','" &_
"" & TagGroup("HMI_8").Value & "','" &_
"" & TagGroup("HMI_9").Value & "','" &_
"" & TagGroup("HMI_10").Value & "','" &_
"" & TagGroup("HMI_11").Value & "','" &_
"" & TagGroup("HMI_12").Value & "','" &_
"" & TagGroup("HMI_13").Value & "','" &_
"" & TagGroup("HMI_14").Value & "') "
SQLQueryString = "INSERT INTO " & TableName & SQLFields & SQLValues
SQLCommand.CommandText = SQLQueryString
SQLCommand.Execute
Set SQLCommand = Nothing
SQLConnection.Close
Set SQLConnection = Nothing
End Sub
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 22 авг 2012, 00:53
- Имя: David Belov
- Страна: Russia
- город/регион: Moscow
Cкрипты или другие способы как передавать данный из WinCC Prof Runtime (TIA Portal v15) на внешнюю БД?
Спасибо огроменное!
А еще подскажите сразу с ПЛК s7-1200 можно в БД (MS SQL) писать (черед web-client или еще как)
Готов оплатить помощь специалиста !
А еще подскажите сразу с ПЛК s7-1200 можно в БД (MS SQL) писать (черед web-client или еще как)
Готов оплатить помощь специалиста !
-
- освоился
- Сообщения: 262
- Зарегистрирован: 31 авг 2012, 06:30
- Имя: Фоменко Максим Анатольевич
- Страна: РФ
- город/регион: гор. Нижнйи Тагил, Свердловской обл.
- Благодарил (а): 3 раза
- Поблагодарили: 76 раз
Cкрипты или другие способы как передавать данный из WinCC Prof Runtime (TIA Portal v15) на внешнюю БД?
Посмотрите на цепочку решений:
https://johanneskinzig.de/index.php/sof ... isher-role
https://support.industry.siemens.com/cs ... 0&lc=en-WW
в
https://it4it.club/topic/72-uchimsya-pe ... nyh-mysql/
https://iotbytes.wordpress.com/store-mq ... -database/
https://johanneskinzig.de/index.php/sof ... isher-role
https://support.industry.siemens.com/cs ... 0&lc=en-WW
в
https://it4it.club/topic/72-uchimsya-pe ... nyh-mysql/
https://iotbytes.wordpress.com/store-mq ... -database/
-
- эксперт
- Сообщения: 2340
- Зарегистрирован: 20 дек 2018, 04:45
- Имя: Сергей
- Страна: РБ/РФ
- город/регион: РФ Сергиев Посад
- Благодарил (а): 1998 раз
- Поблагодарили: 176 раз
Cкрипты или другие способы как передавать данный из WinCC Prof Runtime (TIA Portal v15) на внешнюю БД?
Тоже озаботился этим вопросом некоторое время назад. 1500 умеет. 1200 - нет.
Это не напрямую. Это даже не через "прокси". Минимальное количество шлюзов (TIA RT не катит, не нашел, как vbs по событию от контроллера запускать, плюс, база может находиться на другом железе), это вот в этом видео.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
-
- освоился
- Сообщения: 248
- Зарегистрирован: 31 янв 2017, 08:44
- Имя: Маркушин Андрей Геннадьевич
- Страна: Россия
- город/регион: Нижегородская обл., Выкса
- Благодарил (а): 19 раз
- Поблагодарили: 64 раза
Cкрипты или другие способы как передавать данный из WinCC Prof Runtime (TIA Portal v15) на внешнюю БД?
Настройки соединения с использованием ODBC выполняются в ОС ("Источники данных ODBC"), в том числе и для удаленного железа, емнип.
Реакцию на события можно реализовать так: сделать задачу ("Sheduled task") c выполнением по триггеру, цикл опроса - Uppon cange, на событие Update повесить соответствующий скрипт
-
- эксперт
- Сообщения: 2340
- Зарегистрирован: 20 дек 2018, 04:45
- Имя: Сергей
- Страна: РБ/РФ
- город/регион: РФ Сергиев Посад
- Благодарил (а): 1998 раз
- Поблагодарили: 176 раз
Cкрипты или другие способы как передавать данный из WinCC Prof Runtime (TIA Portal v15) на внешнюю БД?
Вот тут и "порылась собака". Планировщик - по времени. Не по "событию". По событию нажатия кнопки на экране - да. Но это совсем не то. Еще и от RT.
А вопрос был:
Отправлено спустя 3 минуты 38 секунд:
Прошу прощения за резкую критику.
Дайте мне два дня на проверить? В прошлый раз у меня не получилось "c выполнением по триггеру".
Это конечно, не напрямую, но что-то.
Я "ближайший маршрут" нашел на запись всех событий в "журнал", а на стороне сервера уже проверял в базе условия. Но там все равно таймер.
В трансформаторной будке живет трансформаторная собака (с) Прозрачный гонщик.
-
- освоился
- Сообщения: 248
- Зарегистрирован: 31 янв 2017, 08:44
- Имя: Маркушин Андрей Геннадьевич
- Страна: Россия
- город/регион: Нижегородская обл., Выкса
- Благодарил (а): 19 раз
- Поблагодарили: 64 раза
Cкрипты или другие способы как передавать данный из WinCC Prof Runtime (TIA Portal v15) на внешнюю БД?
Да на здоровье, для меня этот форум - одно из средств повышения собственной квалификации, знаний и возможность помочь в этом коллегам :) Так что критика даже приветствуется.keysansa писал(а): ↑15 май 2019, 15:05 Прошу прощения за резкую критику.
Дайте мне два дня на проверить? В прошлый раз у меня не получилось "c выполнением по триггеру".
Это конечно, не напрямую, но что-то.
Я "ближайший маршрут" нашел на запись всех событий в "журнал", а на стороне сервера уже проверял в базе условия. Но там все равно таймер.
-
- не первый раз у нас
- Сообщения: 343
- Зарегистрирован: 12 дек 2018, 14:47
- Имя: Влад
- Благодарил (а): 1 раз
- Поблагодарили: 44 раза
Cкрипты или другие способы как передавать данный из WinCC Prof Runtime (TIA Portal v15) на внешнюю БД?
Я так понимаю что в HMI стоит защита от запуска скрипта и не только по событию без участия оператора.
Можно попробовать запустить скрипт при смене экрана из PLC через Area Pointer в connections
Можно попробовать запустить скрипт при смене экрана из PLC через Area Pointer в connections
-
- здесь недавно
- Сообщения: 11
- Зарегистрирован: 22 авг 2012, 00:53
- Имя: David Belov
- Страна: Russia
- город/регион: Moscow
Cкрипты или другие способы как передавать данный из WinCC Prof Runtime (TIA Portal v15) на внешнюю БД?
Вопрос чуток изменился: как напрямую читать/ писать из s7-1200 в ms sql ?
Может это использовать ?
https://openplclibrary.com/
Может это использовать ?
https://openplclibrary.com/
-
- освоился
- Сообщения: 248
- Зарегистрирован: 31 янв 2017, 08:44
- Имя: Маркушин Андрей Геннадьевич
- Страна: Россия
- город/регион: Нижегородская обл., Выкса
- Благодарил (а): 19 раз
- Поблагодарили: 64 раза
Cкрипты или другие способы как передавать данный из WinCC Prof Runtime (TIA Portal v15) на внешнюю БД?
S7-1200 - контроллеры не того ценового сегмента и, подозреваю, производительности, чтобы иметь на борту дополнительный функционал по обеспечению работы с SQL с использованием стандартных драйверов. Как было сказано выше, 1500-й программный контроллер такой драйвер имеет, но реализуется он скорее средствами ОС компьютерной системы, где развернут этот программный контроллер.
А указанная библиотека, судя по описанию, используется для связки контроллера и HMI, точнее - заготовки для отображения на HMI состояния поддерживаемого оборудования (клапанов, двигателей, входов-выходов) и предоставления элементов (скорее всего фейсплейтов) для управления им. В общем - не подойдёт.
В любом случае придется организовывать шлюз.
А указанная библиотека, судя по описанию, используется для связки контроллера и HMI, точнее - заготовки для отображения на HMI состояния поддерживаемого оборудования (клапанов, двигателей, входов-выходов) и предоставления элементов (скорее всего фейсплейтов) для управления им. В общем - не подойдёт.
В любом случае придется организовывать шлюз.
-
- освоился
- Сообщения: 290
- Зарегистрирован: 15 сен 2016, 18:47
- Имя: Андрей
- Страна: Россия
- город/регион: Вологда
- Благодарил (а): 19 раз
- Поблагодарили: 76 раз
Cкрипты или другие способы как передавать данный из WinCC Prof Runtime (TIA Portal v15) на внешнюю БД?
А почему бы не сделать базу в контроллере, а результат не записывать в базу MSSQL по "Sheduled task"? У меня производительность, например, вот так считается
Код: Выделить всё
FUNCTION_BLOCK "Productivity"
TITLE =
VERSION : 0.1
VAR
Front3 : BOOL ;
Front1 : BOOL ;
BoardsNumber1min : INT ;
CurrentDateAndTime : DATE_AND_TIME ;
Error : INT ;
BoardCount : "CTU";
Second : BYTE ;
ResetCount : BOOL ;
Front2 : BOOL ;
BoardsNumber10 : INT ;
BoardsNumber9 : INT ;
BoardsNumber8 : INT ;
BoardsNumber7 : INT ;
BoardsNumber6 : INT ;
BoardsNumber5 : INT ;
BoardsNumber4 : INT ;
BoardsNumber3 : INT ;
BoardsNumber2 : INT ;
BoardsNumber1 : INT ;
BoardsNumber10min : INT ;
BoardsNumberCounter : INT ;
Front4 : BOOL ;
LoopCount : INT ;
LoopCount2 : INT ;
DogCount : "CTU";
DogCounter : INT ;
Front5 : BOOL ;
DogsNumber1min : INT ;
DogsNumber10min : INT ;
DogsNumber10 : INT ;
DogsNumber9 : INT ;
DogsNumber8 : INT ;
DogsNumber7 : INT ;
DogsNumber6 : INT ;
DogsNumber5 : INT ;
DogsNumber4 : INT ;
DogsNumber3 : INT ;
DogsNumber2 : INT ;
DogsNumber1 : INT ;
END_VAR
BEGIN
NETWORK
TITLE =Shift Data and Calc Number of boards per 10 min
A #ResetCount;
FP #Front4;
JCN _end;
OPN "ProductivityDB";
L P##BoardsNumber10;
LAR1 ;
L 9;
Loop: T #LoopCount;
L DBW [AR1,P#2.0];
T DBW [AR1,P#0.0];
L DBW [AR1,P#50.0]; //DogsNumber
T DBW [AR1,P#48.0];
L 16;
+AR1 ;
L #LoopCount;
LOOP Loop;
L #BoardsNumberCounter;
T #BoardsNumber1min;
T #BoardsNumber1;
L #DogCounter;
T #DogsNumber1min;
T #DogsNumber1;
L 0;
T #BoardsNumber10min;
T #DogsNumber10min;
L P##BoardsNumber10;
LAR1 ;
L 10;
Loo1: T #LoopCount2;
L #BoardsNumber10min;
L DBW [AR1,P#0.0];
+I ;
T #BoardsNumber10min;
L #DogsNumber10min;
L DBW [AR1,P#48.0]; //DogsNumber
+I ;
T #DogsNumber10min;
L 16;
+AR1 ;
L #LoopCount2;
LOOP Loo1;
_end: NOP 0;
NETWORK
TITLE =Board Counter
CALL #BoardCount (
CU := "DB_Pos150_ID_Number".Piece_in_dog,
R := #ResetCount,
CV := #BoardsNumberCounter);
NETWORK
TITLE =Dog Counter
CALL #DogCount (
CU := "DB_Shift_reg".Enc_Shift_Pulse,
R := #ResetCount,
CV := #DogCounter);
NETWORK
TITLE =Read time, save number of second
R #ResetCount;
CALL "READ_CLK" (
RET_VAL := #Error,
CDT := #CurrentDateAndTime);
LAR1 P##CurrentDateAndTime;
L B [AR1,P#5.0];
BTI ;
T #Second;
NETWORK
TITLE =
A( ;
L #Second;
L 0;
==I ;
) ;
FP #Front3;
S #ResetCount;
END_FUNCTION_BLOCK
-
- освоился
- Сообщения: 248
- Зарегистрирован: 31 янв 2017, 08:44
- Имя: Маркушин Андрей Геннадьевич
- Страна: Россия
- город/регион: Нижегородская обл., Выкса
- Благодарил (а): 19 раз
- Поблагодарили: 64 раза
Cкрипты или другие способы как передавать данный из WinCC Prof Runtime (TIA Portal v15) на внешнюю БД?
Вариантов решения задачи передачи значений масса, но последнее уточнение условий: прямая передача с контроллера в MSSQL
-
- освоился
- Сообщения: 290
- Зарегистрирован: 15 сен 2016, 18:47
- Имя: Андрей
- Страна: Россия
- город/регион: Вологда
- Благодарил (а): 19 раз
- Поблагодарили: 76 раз
Cкрипты или другие способы как передавать данный из WinCC Prof Runtime (TIA Portal v15) на внешнюю БД?
Не зря придумали OPC. Используйте их. Попробуйте написать сервис на Sharp7 http://snap7.sourceforge.net/sharp7.html
-
- освоился
- Сообщения: 262
- Зарегистрирован: 31 авг 2012, 06:30
- Имя: Фоменко Максим Анатольевич
- Страна: РФ
- город/регион: гор. Нижнйи Тагил, Свердловской обл.
- Благодарил (а): 3 раза
- Поблагодарили: 76 раз
Cкрипты или другие способы как передавать данный из WinCC Prof Runtime (TIA Portal v15) на внешнюю БД?
Множество решений через OPC, например
на S7-1200 поднять Modbus TCP по
https://cache.industry.siemens.com/dl/f ... 200_en.pdf
и использовать например Lectus Modbus OPC/DDE сервер умеющий писать в MS SQL
http://www.lectussoft.com/opcserver.html
Писать можно:
как по событию из S7-1200 Modbus TCP Master --> OPC Slave --> SQL,
так и циклически из S7-1200 Modbus TCP Slave --> OPC Master (опрос) --> SQL.
-
- освоился
- Сообщения: 248
- Зарегистрирован: 31 янв 2017, 08:44
- Имя: Маркушин Андрей Геннадьевич
- Страна: Россия
- город/регион: Нижегородская обл., Выкса
- Благодарил (а): 19 раз
- Поблагодарили: 64 раза
Cкрипты или другие способы как передавать данный из WinCC Prof Runtime (TIA Portal v15) на внешнюю БД?
Прямой обмен данными с SQL сервером реализован у этого http://www.proenergo.ru/news/omron-nj-s ... dpriyatiy/, например, контроллера. Описанные выше решения - с использованием промежуточных шлюзов.