SIEMENS, DF&PD

Предыдущее посещение: Вс июл 10, 2016 17:43 Текущее время: Вс июл 10, 2016 17:43

Часовой пояс: UTC + 3 часа




 [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: WINCC -> Access (с примером)
СообщениеДобавлено: Чт июл 26, 2012 9:16 
Не в сети
Новый писатель

Зарегистрирован: Чт июл 26, 2012 9:04
Сообщения: 11
Приятного времени суток, помогите разобраться ...
Необходимо скриптом из WINCC 6 дублировать показания в access (в примере лишь дата и время), синтаксических ошибок вроде как нет, но запись в *.mdb не происходит.
--------------------------------------------------------------
Sub getdata

Dim cn
Dim rs
Dim cmd 'Строка подключения
Dim sql 'Строка запроса
Dim DReport
Dim TReport

HMIRuntime.Tags("Date_Report").Write CStr(Date)
HMIRuntime.Tags("Time_Report").Write CStr(Time) //берем системные дату и время

'Строка подключения
cmd = "Provider=Microsoft.Jet.OLEDB.3.51;" & _
"Persist Security Info=False;" & _
"Data Source=D:\*****\DBase\****.mdb"

'Подключаемся к базе
Set cn = New ADODB.Connection
cn.ConnectionString = cmd

'Открываем БД
cn.Open

'Создаем запрос к таблице
sql = "select * from *****"

'Открываем набор записей
Set rs = New ADODB.Recordset
rs.Open sql, cn, adOpenForwardOnly, adLockOptimistic

'Добавляем пустую запись
rs.AddNew
'Заполняем поля


DReport = MCP.GetValue("Date_Report")
TReport = MCP.GetValue("Time_Report")

rs("N_Date") = DReport
rs("N_Time") = TReport

rs.Update

'Закрываем набор записей и отключение
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing

End Sub


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 26, 2012 12:02 
Не в сети
Начинающий писатель

Зарегистрирован: Пн авг 22, 2005 14:05
Сообщения: 98
Откуда: г. Казань НПК "Волга-Автоматика"
MCP это что?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 26, 2012 12:02 
Не в сети
Начинающий писатель

Зарегистрирован: Пн авг 22, 2005 14:05
Сообщения: 98
Откуда: г. Казань НПК "Волга-Автоматика"
MCP не объявлен


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 26, 2012 13:11 
Не в сети
Новый писатель

Зарегистрирован: Чт июл 26, 2012 9:04
Сообщения: 11
DReport = MCP.GetValue("Date_Report") - нашла в одном работающем скрипте написанном в Visual Basic 6.0 (внешнем, не в том что встроен в wincc), ошибок не показало в скаде

заменила эту часть кода на

DReport = HMIRuntime.Tags("Date_Report").Read
TReport = HMIRuntime.Tags("Time_Report").Read

Все равно в access не записывает... Мб. есть какая-та особенность есть при создании файла *.mdd

Ранее писала для себя, работало как-то


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 26, 2012 14:06 
Не в сети
Известный Писатель

Зарегистрирован: Пн июн 18, 2007 13:24
Сообщения: 365
Откуда: Azovstal Iron And Steel Works, Mariupol, Ukraine
Ïîïðîáóéòå ñäåëàòü òàê, êàê îïèñàíî â ðàçäåëå General Examples äîêóìåíòàöèè WinCC V7.0 SP1 MDM - WinCC: Scripting (VBS, ANSI-C, VBA) System manual http://support.automation.siemens.com/WW/view/en/37572697:
Код:
Example: Configuring a Database Connection with VBS
Introduction
The following examples describe the configuration of an Access database link via an ODBC driver.
Example 1 writes a tag value from WinCC in an Access database.
Example 2 reads a value from the database and writes it in a WinCC tag.
The examples do not contain any handling faults.

Procedure, Example 1
Create the Access database with the WINCC_DATA table and columns (ID, TagValue) with the ID as the Auto Value.
Set up the ODBC data source with the name "SampleDSN", reference to the above Access database.
---------------------------------------------------------------------------------------
'VBS108
Dim objConnection
Dim strConnectionString
Dim lngValue
Dim strSQL
Dim objCommand
strConnectionString = "Provider=MSDASQL;DSN=SampleDSN;UID=;PWD=;"
lngValue = HMIRuntime.Tags("Tag1").Read
strSQL = "INSERT INTO WINCC_DATA (TagValue) VALUES (" & lngValue & ");" 
Set objConnection = CreateObject("ADODB.Connection")
objConnection.ConnectionString = strConnectionString
objConnection.Open
Set objCommand = CreateObject("ADODB.Command")
With objCommand
    .ActiveConnection = objConnection
    .CommandText = strSQL
End With
objCommand.Execute
Set objCommand = Nothing
objConnection.Close
Set objConnection = Nothing
---------------------------------------------------------------------------------------
There are several ways in which to define the ConnectionString for the connection depending on the provider used:

Microsoft OLE DB provider for ODBC
Enables connections to any ODBC data source. The corresponding syntax is:
"[Provider=MSDASQL;]{DSN=name|FileDSN=filename};
[DATABASE=database;]UID=user; PWD=password"

Other Microsoft OLE DB Providers (e.g. MS Jet, MS SQL Server)
It is possible to work without DSN. The corresponding syntax is:
"[Provider=provider;]DRIVER=driver; SERVER=server;
DATABASE=database; UID=user; PWD=password"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт июл 26, 2012 14:29 
Не в сети
Новый писатель

Зарегистрирован: Чт июл 26, 2012 9:04
Сообщения: 11
Всем спасибо за шухер, получилось)

Вот процедурка для потомков, прям из WINCC

Sub getdata()

'Процедура записи в таблицу
Dim strConnectionString
Dim strSQL
Dim cn
Dim rs

Dim DReport
Dim TReport

' Строка подключения через ODBC
strConnectionString = "Provider=MSDASQL;DSN=Tehnolog;UID=;PWD=;"

'Подключаемся к базе
Set cn = CreateObject("ADODB.Connection")
cn.ConnectionString = strConnectionString
cn.Open

'Создаем запрос к таблице ParamProc
strSQL = "select * from ParamProc"

'Открываем набор записей
Set rs = CreateObject("ADODB.Recordset")
rs.Open strSQL, cn, 0, 3

'Добавляем новую запись
rs.AddNew

'Записываем данные

HMIRuntime.Tags("Date_Report").Write CStr(Date)
HMIRuntime.Tags("Time_Report").Write CStr(Time)

DReport = HMIRuntime.Tags("Date_Report").Read
TReport = HMIRuntime.Tags("Time_Report").Read

rs("N_Date") = DReport
rs("N_Time") = TReport


rs.Update

'Закрываем набор записей и отключение
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing

End Sub


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re:
СообщениеДобавлено: Ср апр 20, 2016 12:16 
Не в сети
Новый писатель

Зарегистрирован: Вт апр 26, 2011 15:11
Сообщения: 27
Откуда: Хабаровск
Вот спасибо Светланке87! Через 4 года мне очень пригодилось! Странно, что Example из сименсовского System Manual'a не помог. Только Светланкин код работает (у меня WinCC Advanced v13 SP1).


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
 [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group