Interação de dados entre o wincc e o banco de dados Access (gravar dados)

O armazenamento de dados do wincc é atualmente armazenado principalmente no banco de dados, e os bancos de dados principais atuais são principalmente bancos de dados SQL Server e Access. Este artigo é principalmente sobre como gravar dados entre os bancos de dados wincc e Access.

entrada Descrição
Ambiente operacional wincc7.5 SP1
Banco de dados de acesso Edição 2010

Tela de execução

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui

Procedimentos operacionais

Insira a descrição da imagem aqui

Crie uma tabela de banco de dados do Access

1. Crie um arquivo de banco de dados Access, nome do arquivo: Wincc_Access_Data.accdb
2. Crie uma tabela de banco de dados, nome da tabela: DataTest, os campos da tabela são: Data1, Data2, Data3, Data4, Data5, Data6, Data7, Data8. O tipo de dados é um número. Conforme mostrado na figura:
Insira a descrição da imagem aqui

3. Coloque o arquivo de banco de dados Access criado no diretório raiz do disco.

Tela de configuração

1. Wincc cria uma tela, o nome da tela é DataWrite.Pdl
2. Crie uma variável de dados, crie 8 variáveis ​​de dados na lista de variáveis
Insira a descrição da imagem aqui

3. Novos objetos de controle na tela.
Insira a descrição da imagem aqui

Objeto nome
Texto estático predefinição
Botão predefinição
Domínio de entrada e saída predefinição

Geração de dados

Os dados testados são gerados por função aleatória, consulte "Wincc Random Data Generation" para o método de geração específico

Gravação de dados

A função de gravação de dados é realizada escrevendo o script do evento do botão. O script é o seguinte:

Sub OnClick(Byval Item)                            
'1.测试时,注意不要讲Access数据库中的字段设置为中文,最好用英文表示
'2.创建Access数据库文件时,会出现两种文件后缀,mdb和accdb,其实这两个都是Access数据库的文件格式,只不过代表不同版本的Access数据库,mdb为07版以前(不包括07版)。accdb为07版以后。因此对于不同的文件后缀,Provider链接字符串也有所区别。
'mdb:Provider=Microsoft.Jet.OleDb.4.0
'accdb:Provider=Microsoft.ACE.OLEDB.12.0
'3.创建数据库时,不要将数据库文件放到中文目录下,尽量放到根目录或者根目录下的英文文件夹,路径不要太长。
'4.sql语句查询的数据和保证正确。
'5.wincc脚本定义的变量要和实际使用的保持一样。 
Dim conn,comd
Dim strConnectionString,strSQL
Dim Data1,Data2,Data3,Data4,Data5,Data6,Data7,Data8
Data1= HMIRuntime.Tags("Data1").Read 
Data2= HMIRuntime.Tags("Data2").Read 
Data3= HMIRuntime.Tags("Data3").Read 
Data4= HMIRuntime.Tags("Data4").Read 
Data5= HMIRuntime.Tags("Data5").Read 
Data6= HMIRuntime.Tags("Data6").Read 
Data7= HMIRuntime.Tags("Data7").Read 
Data8= HMIRuntime.Tags("Data8").Read 
strConnectionString = "Provider=MSDASQL;DSN=wincc_DB;UID=;PWD=;" '//wincc_DB为ODBC数据源
strSQL = "INSERT INTO DataTest(Data1,Data2,Data3,Data4,Data5,Data6,Data7,Data8)VALUES("&Data1&","&Data2&","&Data3&","&Data4&","&Data5&","&Data6&","&Data7&","&Data8&")" '创建sql语句,其中ID等为字段名,machineinfo为数据库表名
Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString = strConnectionString
conn.Open
Set comd = CreateObject("ADODB.Command")

With comd

.ActiveConnection = conn

.CommandText = strSQL

End With

comd.Execute

Set comd = Nothing

conn.Close

Set conn = Nothing

End Sub

Precauções

  1. Ao criar uma string de link, você precisa primeiro criar uma fonte de dados ODBC. Para métodos de criação específicos, consulte "Criação de fontes de dados ODBC para sistemas Windows"
  2. Ao criar um banco de dados, não coloque o arquivo do banco de dados no diretório chinês, tente colocá-lo no diretório raiz ou na pasta em inglês sob o diretório raiz, e o caminho não deve ser muito longo.
  3. Os dados consultados pela instrução sql têm a garantia de estar corretos.
  4. As variáveis ​​definidas pelo script wincc devem permanecer iguais às realmente usadas.

Aquisição de recursos

Acho que você gosta

Origin blog.csdn.net/yue008/article/details/114001775
Recomendado
Clasificación