winccとAccessデータベース間のデータの相互作用(データの書き込み)

現在、winccのデータストレージは主にデータベースに格納されており、現在の主流のデータベースは主にSQL ServerとAccessデータベースです。この記事では、主にwinccデータベースとAccessデータベース間でデータを書き込む方法について説明します。

エントリ 説明
動作環境 wincc7.5 SP1
データベースにアクセスする 2010年版

実行画面

ここに画像の説明を挿入
ここに画像の説明を挿入

作業手順

ここに画像の説明を挿入

Accessデータベーステーブルを作成する

1. Accessデータベースファイルを
作成します。ファイル名:Wincc_Access_Data.accdb 2.データベーステーブルを作成します。テーブル名:DataTest、テーブルのフィールドはData1、Data2、Data3、Data4、Data5、Data6、Data7、Data8です。データ型は数値です。図に示すように:
ここに画像の説明を挿入

3.作成したAccessデータベースファイルをディスクのルートディレクトリに置きます。

設定画面

1. Winccが画面を作成し、画面名はDataWrite.Pdlです。2
。データ変数を作成し、変数リストに8つのデータ変数を作成します。
ここに画像の説明を挿入

3.画面上の新しいコントロールオブジェクト。
ここに画像の説明を挿入

オブジェクト 名前
静的テキスト デフォルト
ボタン デフォルト
入出力ドメイン デフォルト

データ生成

テストされたデータはランダム関数によって生成されます。特定の生成方法については、「Winccランダムデータ生成」を参照してください。

データ書き込み

ボタンイベントのスクリプトを書くことでデータ書き込み機能を実現します。スクリプトは以下のとおりです。

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

予防

  1. リンク文字列を作成するときは、最初にODBCデータソースを作成する必要があります。具体的な作成方法については、「Windowsシステム用のODBCデータソースの作成」を参照してください。
  2. データベースを作成するときは、データベースファイルを中国のディレクトリに配置せず、ルートディレクトリまたはルートディレクトリの下の英語のフォルダに配置してください。パスが長すぎないようにしてください。
  3. sqlステートメントによって照会されたデータは正しいことが保証されています。
  4. winccスクリプトで定義された変数は、実際に使用されているものと同じままである必要があります。

リソースの取得

おすすめ

転載: blog.csdn.net/yue008/article/details/114001775
おすすめ