Le stockage des données de wincc est actuellement principalement stocké dans la base de données, et les bases de données courantes actuelles sont principalement des bases de données SQL Server et Access. Cet article traite principalement de la façon d'écrire des données entre les bases de données wincc et Access.
entrée | la description |
---|---|
Environnement d'exploitation | wincc7.5 SP1 |
Accéder à la base de données | Édition 2010 |
Écran d'exécution
Procédures d'exploitation
Créer une table de base de données Access
1. Créez un fichier de base de données Access, nom de fichier: Wincc_Access_Data.accdb
2. Créez une table de base de données, nom de table: DataTest, les champs de la table sont: Data1, Data2, Data3, Data4, Data5, Data6, Data7, Data8. Le type de données est un nombre. Comme le montre la figure:
3. Placez le fichier de base de données Access créé dans le répertoire racine du disque.
Écran de configuration
1. Wincc crée un écran, le nom de l'écran est DataWrite.Pdl
2. Créez une variable de données, créez 8 variables de données dans la liste des variables
3. Nouveaux objets de contrôle à l'écran.
Objet | Nom |
---|---|
Texte statique | défaut |
Bouton | défaut |
Domaine d'entrée et de sortie | défaut |
Génération de données
Les données testées sont générées par une fonction aléatoire, veuillez vous référer à "Wincc Random Data Generation" pour la méthode de génération spécifique
Écriture de données
La fonction d'écriture de données est réalisée en écrivant le script de l'événement bouton. Le script est le suivant:
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
Précautions
- Lors de la création d'une chaîne de lien, vous devez d'abord créer une source de données ODBC. Pour des méthodes de création spécifiques, reportez-vous à «Création de sources de données ODBC pour les systèmes Windows».
- Lors de la création d'une base de données, ne placez pas le fichier de base de données dans le répertoire chinois, essayez de le mettre dans le répertoire racine ou dans le dossier anglais sous le répertoire racine, et le chemin ne doit pas être trop long.
- L'exactitude des données interrogées par l'instruction sql est garantie.
- Les variables définies par le script wincc doivent rester les mêmes que celles réellement utilisées.