Advertisement

WINCC中应用VBS脚本对SQL Server数据文件进行读写操作

  • 5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:PDF


简介:
在WINCC中利用VBS脚本进行SQL Server数据库文件的读取与写入知识点概览 知识点涉及的主要内容包括本指南将深入探讨在Windows Control Center(WINCC)环境下使用Visual Basic Scripting(VBS)技术完成对SQL Server数据库文件的读写操作的过程。通过几个关键部分的系统介绍,我们将详细阐述如何利用VBS工具实现这些数据操作的具体步骤与注意事项。首先,在接下来的几个部分中,我们将系统地介绍如何利用VBS技术在WINCC环境中进行SQL Server数据库操作的关键要点。具体来说,本指南将深入探讨以下几点:注册一个符合标准的VBS开发环境;配置路径变量以确保程序能够访问所需资源;以及使用脚本完成基本的数据读写操作。这些步骤都将通过详细的描述和示例来帮助您更好地掌握相关技术。此外,我们还将提供一些实用的建议,以优化您的数据操作流程并提高效率。 **数据库的建立与配置操作**:包括在SQL Server环境中进行数据库文件的创建和相关表结构的设计与设置,以满足数据存储和管理的需求。 **WINCC系统变量与其对应数据库表字段的数据类型匹配问题**:需要确保WINCC系统中的变量信息与其对应的数据库字段类型保持一致,以便实现数据的一致性和完整性。 VBS脚本编写流程: - 编写用于将WINCC系统中变量信息注入到目标数据库表中的VBS脚本代码。 - 编写程序以从目标数据库表中提取数据,并同步更新WINCC系统中的相关变量信息。 #### 二、数据库的创建与配置 1. 根据项目需求选择适合的数据库类型。 2. 指定存储引擎以及最大连接数等基本参数设置。 3. 配置访问权限策略以确保数据安全和合规性。 4. 定义必要的表结构并执行相应的DDL语句。在SQL Server中建立一个名为“读写数据库”的新数据表,并将其命名为“个人信息”。随后,在该数据库内创建包含以下字段的新数据表:ID列为数据库表中的唯一标识符;名称字段将存储用户的姓名信息;年龄字段记录用户的具体年龄。三、WINCC变量与数据库表之间的映射关系是怎样的? 为了确保WINCC中的变量能够与数据库中的数据保持一致,我们需要为每个数据库字段设计相应的变量。具体来说,在WINCC中,当处理一个数据库字段时,我们应根据其数据类型来决定相应的变量类型。例如,对于数值类型的字段如“编号”,我们会为其分配整数型变量;而对于文本类型的字段如“姓名”,则设置为字符串型变量。这种做法的主要目的是保证在不同系统之间的数据传递能够准确无误。例如,在WINCC中处理的数据必须与数据库中的原始信息保持一致,避免因类型 mismatch 导致的信息丢失或错误。该模块的主要任务是开发适用于嵌入式系统的VBS脚本编写程序。 4.1 编写一份完整的数据脚本文档在WINCC的图形界面工具里设计并展示一个带有保存数据按钮的应用场景。当按下该按钮时,会启动并运行一个VBA宏。```vb 定义变量 Dim sCon, sSql, oRs, conn, oCom Dim con, data1, data2, data3 读取WINCC变量 data1 = HMIRuntime.tags(编号).read data2 = HMIRuntime.tags(姓名).read data3 = HMIRuntime.tags(年龄).read 连接数据库 con = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;InitialCatalog=读写数据库;DataSource=.WINCC Set conn = CreateObject(ADODB.Connection) conn.ConnectionString = con conn.CursorLocation = 3 conn.Open 写入数据库 sSql = INSERT INTO 个人信息 VALUES( & data1 & , & data2 & , & data3 & ); Set oRs = CreateObject(ADODB.Recordset) Set oCom = CreateObject(ADODB.Command) Set oCom.ActiveConnection = conn oCom.CommandType = 1 oCom.CommandText = sSql Set oRs = oCom.Execute Set oRs = Nothing conn.Close Set conn = Nothing ``` 4.2 数据解析流程同时,在WINCC中添加一个带有“读数据”按钮的界面元素。单击该按钮时,会触发下面这个VBScript代码:```vb 定义变量 Dim sCon, sSql, oRs, conn, oCom Dim con, data1, data2, data3, data4, data5, data6, data7 data7 = HMIRuntime.tags(编号).read 连接数据库 con = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;InitialCatalog=读写数据库;DataSource=.WINCC Set conn = CreateObject(ADODB.Connection) conn.ConnectionString = con conn.CursorLocation = 3 conn.Open sSql = SELECT * FROM 个人信息 WHERE 编号= & data7 & ; Set oRs = CreateObject(ADODB.Recordset) Set oCom = CreateObject(ADODB.Command) Set oCom.ActiveConnection = conn oCom.CommandType = 1 oCom.CommandText = sSql Set oRs = oCom.Execute data4 = oRs.Fields(0).Value data5 = oRs.Fields(1).Value data6 = oRs.Fields(2).Value Set data1 = HMIRuntime.Tags(编号) Set data2 = HMIRuntime.Tags(姓名) Set data3 = HMIRuntime.Tags(年龄) data1.Read data1.Write data4 data2.Read data2.Write data5 data3.Read data3.Write data6 Set oRs = Nothing conn.Close Set conn = Nothing ``` 以下是您需要关注的重点包括 1. **变量名称一致性**:要求WINCC中的变量名与脚本引用的变量名保持一致。 2. **数据库连接字符串**:建议对数据库连接字符串进行适当调整,使其更好地适应具体应用场景。 3. **数据类型匹配**:强调WINCC变量与数据库字段数据类型的对应关系,防止因类型不符引发数据问题。 4. **安全性**:在投入生产前,必须确保所有操作均遵循安全标准。 以上步骤全面阐述了如何利用VBS脚本在WINCC系统中进行对SQL Server数据库文件的读写操作的过程。通过学习和实践这些技术点,可以进一步加深对WINCC系统的数据处理能力及其灵活性的理解。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • WinCCVBSSQL Server
    优质
    本文介绍如何在WinCC项目中使用VBS脚本进行SQL Server数据库的操作,包括连接、查询和更新数据的方法。 在WinCC中可以使用VBS脚本来读写SQLServer数据库文件。
  • WinCCVBSSQL库的
    优质
    本教程详解了如何在WinCC项目中使用VBS脚本实现与SQL数据库的数据交互,重点介绍向数据库写入数据的具体步骤和方法。适合需要将实时监控信息存储至数据库的用户学习参考。 本代码位于E:\WinccProjects\DBSQL工程目录下,功能是对该工程下的CC_DBSQL_11_04_19_19_19_51R数据库中的表GH_table的字段“Temp”进行写操作。具体来说,写入的内容是DBSQL工程中过程变量Temp的值。此代码作为按钮控件响应脚本,在用户按下鼠标时执行相应动作。写入的时间和次数由按钮的动作决定。
  • WinCC画面vbs总结
    优质
    本文档是对西门子WinCC软件中使用VBS脚本进行界面控制和自动化编程的经验与技巧的全面总结,旨在帮助用户优化其监控系统。 VBs操作WinCC画面脚本是工业自动化领域的一项实用技术,它允许开发者通过编写脚本来控制Windows Control Center(WinCC)系统中的用户界面(HMI)。作为一款广泛应用在制造业的监控软件,WinCC能够实现数据采集、处理以及可视化等功能。借助于VBs脚本,开发人员可以动态地操控WinCC中画面的各项元素,包括修改控件属性、更新显示内容及读写数据等操作。 本段落将对使用VBs进行WinCC界面脚本编写的关键知识点进行全面总结,涵盖以下主题: 1. 控制WinCC画面上的控件属性: - 利用定义好的Sub过程直接调整控件特性。例如,在SubOnClick事件处理器中修改Radius(半径)等属性。 - 通过设定PictureName属性来切换画面中的对象。 2. 设置界面文本信息: - 使用HMIRuntime对象获取指定屏幕的SCREEN实体,再进一步访问其中的SCREENITEM元素。 - 利用SCREENITEM.Text属性更新或检索静态文字内容,并支持追加字符操作。 3. VBs字符串处理函数的应用实例: - 左截取:Left(str, n) 函数用于提取字符串开头n个字符; - 中间截取:Mid(str, p, n) 从p位置开始,获取接下来的n个字符; - 右截取:Right(str, n),返回最后n个字符。 4. WinCC内嵌VBs脚本的技术手段: - 解释如何通过VBs读取外部VB程序的数据。 - 提供了基于DDE(动态数据交换)和OLE(对象链接与嵌入)技术实现WinCC与其它应用程序间信息共享的具体方法步骤。 5. VBs在WinCC项目中的作用及优势: - 详细描述了如何利用脚本增强WinCC项目的配置灵活性。 - 对比介绍了从V6版本开始提供的C脚本和VB脚本系统,分别阐述各自的特性和适用场景。 6. WinCC项目中应用的脚本策略: - 强调了在基本设置之外通过编写代码实现复杂功能的重要性。 - 重点讨论了C脚本支持API函数及ODK函数调用的特点,并且介绍了VB脚本易于使用和快速上手的优点。
  • 使VBSWinCC向SQLServer.docx
    优质
    本文档介绍了如何利用VBS脚本将数据从西门子WinCC系统高效地传输到SQL Server数据库,提供详细的步骤和示例代码。 本段落将探讨如何使用Visual Basic Script (VBS) 在西门子WinCC人机界面系统中编写脚本以向SQL Server数据库写入数据的过程。此过程主要包括建立数据库连接、编写SQL查询语句以及处理数据的插入或更新操作。 首先,需要在SQL Server上创建一个数据库和相应的表。在此示例中,我们有`date` 和 `AT300` 表,它们可能包含有关生产流程的不同信息,如釜序号(Brewery Sequence Number)、原料编号、目标值及不同时间点的MI值等。 在WinCC项目中添加一个按钮组件,并在其单击事件中编写VBS代码。以下是一个示例: ```vbscript Dim data1, data2, data3, data4, data5, data6, data7, data8 数据赋值 data1 = 5004 data2 = 1234 data3 = 5 data4 = 5.2 data5 = 5.8 data6 = 10 data7 = 10.33483 data8 = 42 创建数据库连接 Dim Con, conn Con = Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DH;Data Source=.WINCC Set conn = CreateObject(ADODB.Connection) conn.ConnectionString = Con conn.CursorLocation = 3 conn.Open 查询语句 Dim sSql, sSql2, sSql3, sSql4, m, n sSql2 = SELECT * FROM date WHERE 釜序号= & data1 & sSql4 = SELECT * FROM AT300 WHERE 釜序号= & data1 & sSql = INSERT INTO date (釜序号, 原料编号, 目标, MI5, [MI5-30], MI30, [MI30-60], MI60, TIME) VALUES( & data1 &, & data2 &, & data3 &, & data4 &, & data7 &, & data5 &, & data8 &, & data6 &, & Now() &); sSql3 = UPDATE AT300 SET 结果值= & data4 WHERE 釜序号= & data1 执行查询并检查记录 Dim oRs2, oCom2 Set oRs2 = CreateObject(ADODB.Recordset) Set oCom2 = CreateObject(ADODB.Command) oCom2.ActiveConnection = conn oCom2.CommandType = 1 oCom2.CommandText = sSql2 Set oRs2 = oCom2.Execute m = oRs2.RecordCount oCom2.CommandText = sSql4 Set oRs2 = oCom2.Execute n = oRs2.RecordCount 写入数据或显示提示 If m = 0 Then Set oRs = CreateObject(ADODB.Recordset) Set oCom = CreateObject(ADODB.Command) oCom.ActiveConnection = conn oCom.CommandType = 1 oCom.CommandText = sSql Set oRs = oCom.Execute Else MsgBox & data1 & 数据已存在 End If If n > 0 Then oCom.CommandText = sSql3 Set oRs = oCom.Execute End If conn.Close ``` 这段代码首先声明了需要的数据变量,并给它们赋值。接着,通过`ADODB.Connection`对象建立与数据库的连接。随后使用 `ADODB.Command` 对象执行SQL查询和更新命令,例如`sSql2` 和 `sSql4` 用于检查 `date` 和 `AT300` 表中是否有与 `data1` 匹配的记录;而`sSql` 则用于向 `date` 表插入新的数据。 在执行查询后通过检查记录数量来确定是否需要执行插入或更新操作。如果查询没有返回记录,则表示 m=0,此时应执行插入操作;若 `AT300` 表中已存在与 `data1` 匹配的记录,则需进行更新操作。确保关闭数据库连接以释放资源。 此过程展示了如何在WinCC环境中利用VBS进行数据库交互,这对于实时监控和控制生产流程中的数据记录至关重要。通过这种方式可以保证 WinCC 界面与数据库之间的数据同步,从而实现生产和数据分析自动化。
  • MFCTXT
    优质
    本文章介绍了如何使用Microsoft Foundation Classes (MFC)在Windows应用程序中实现对TXT文件的基本数据读取和写入功能。通过详细步骤讲解了文件操作类的运用,帮助开发者轻松管理文本文件中的信息。适合初学者学习和掌握MFC环境下处理TXT文件的相关技能。 实现简单向TXT文档中写入数据并读取数据的示例适用于初级C++和MFC学习者,是一个很好的小应用。
  • 使LinqSql Server
    优质
    本教程介绍如何利用LINQ(Language Integrated Query)技术简化SQL Server数据库的操作,包括查询、插入、更新和删除等基本操作。适合希望提高C#编程效率的数据开发者学习。 **Linq操作Sql Server数据库详解** Linq(Language Integrated Query)是.NET Framework 3.5引入的一种强大的数据查询技术,它允许开发者使用C#或Visual Basic等编程语言的语法直接对各种数据源进行操作,包括SQL Server数据库。Linq极大地简化了数据访问,提高了代码的可读性和可维护性。 **1. Linq的基本概念** Linq的核心在于将SQL查询语句与C#或VB.NET语法融合,使得在代码中可以直接编写查询表达式。它提供了一种统一的方式来处理各种类型的数据源,如集合、数组、XML文档以及数据库。 **2. Linq to SQL** Linq to SQL是专门用于处理SQL Server数据库的Linq子集。通过建立对象模型来映射数据库表,开发者可以通过操作这些对象实现对数据库的操作。 **3. 使用Linq进行数据库操作** - **添加数据**:调用DataContext对象的SubmitChanges()方法可以将修改提交到数据库。 ```csharp var db = new MyDataContext(); MyTable myTable = new MyTable(); myTable.Name = New Record; db.MyTable.InsertOnSubmit(myTable); db.SubmitChanges(); ``` - **查询数据**:Linq提供了丰富的查询表达式,如Where、Select和OrderBy等。 ```csharp var result = (from t in db.MyTable where t.Name == SomeName select t).ToList(); ``` - **更新数据**:修改对象属性后再次调用SubmitChanges()即可更新数据库。 ```csharp myTable = result.First(); myTable.Name = Updated Name; db.SubmitChanges(); ``` - **删除数据**:使用DeleteOnSubmit()方法标记要删除的对象,然后提交更改。 ```csharp db.MyTable.DeleteOnSubmit(result.First()); db.SubmitChanges(); ``` **4. Linq查询表达式** Linq支持两种主要的语法风格: - **方法语法**:基于扩展方法,如`Where()`、`Select()`等。 ```csharp var query = db.MyTable.Where(t => t.Name.StartsWith(A)); ``` - **查询语法**:类似于SQL的SELECT语句,更加直观。 ```csharp var query = from t in db.MyTable where t.Name.StartsWith(A) select t; ``` 两者可以互相转换。查询语法通常更易于阅读和理解。 **5. 数据上下文(DataContext)** DataContext是Linq to SQL中的关键类,它作为与数据库交互的桥梁。它负责管理对象生命周期、跟踪对数据库所做的更改,并在需要时执行SQL命令。 **6. 映射关系** 通过DBML文件或代码First方式定义数据库表和对象之间的映射关系。 - **图形化设计工具(如DBML)**: 用于可视化地建立数据模型。 - **代码First方式**: 使用C#或VB.NET语言直接编写模型的定义。 **7.事务处理** Linq支持数据库事务。可以使用TransactionScope类进行控制,确保一系列操作具有原子性。 ```csharp using (var scope = new TransactionScope()) { 数据库操作 db.SubmitChanges(); scope.Complete(); } ``` **8.性能考虑** 虽然Linq简化了开发过程,但在处理大量数据时应关注查询效率。使用延迟执行和适当的数据加载策略有助于优化性能。 通过学习和掌握Linq,开发者可以更加便捷地进行SQL Server数据库操作,并享受到强类型及编译时检查带来的安全性和稳定性。
  • FileStream象在C#
    优质
    本教程详细介绍如何使用C#中的FileStream类执行高效的文件读取和写入操作,帮助开发者掌握文件处理的基础技能。 在项目开发过程中经常会遇到文件读写的任务。C# 提供了多种方法来实现这一功能,其中FileStream 对象是一个重要的工具。它表示磁盘或网络路径上的一个指向具体文件的流。通常情况下,我们习惯使用StreamReader 和 StreamWriter 来操作字符数据,因为它们更加直观和方便。 然而,在一些特定的情况下,比如需要随机访问文件中间某点的数据时,则必须使用FileStream对象来完成任务。这是因为FileStream 对象处理的是字节及字节数组而不是文本字符串。创建一个FileStream 对象可以通过多种方式实现,其中一种方法是通过指定文件名以及FileMode枚举值来进行。 例如,在读取文件的时候需要引用 System.IO 命名空间: ```csharp using System; ``` 以上就是使用FileStream对象进行基本操作的一个简要介绍。
  • WinCCVBS弹窗与画面切换
    优质
    本文介绍如何在WinCC项目中使用VBS脚本来实现弹出窗口和画面切换功能,帮助用户提升监控系统的交互性和自动化水平。 在WinCC中可以使用VBS脚本来实现弹窗功能以及画面切换操作。
  • Delphi使TFileStream
    优质
    本教程介绍在Delphi编程语言中如何利用TFileStream类实现文件的基本读取和写入操作,帮助开发者掌握高效处理文件的方法。 在Delphi中使用TFileStream读取并追加存储img格式的图片文件的方法如下:首先创建一个指向目标文件的TFileStream对象,并设置其模式为fmOpenReadWrite或fmCreate,以便于对现有文件进行读写操作或者当指定路径不存在时新建该文件。接着通过Seek方法将文件指针移动到当前末尾位置,然后利用Write方法向流中追加图片数据即可实现img格式的图像内容存储。 步骤包括: 1. 初始化TFileStream对象。 2. 设置正确的模式以支持读写或创建新文件。 3. 调用Seek来定位至当前文件末端准备进行追加操作。 4. 使用Write函数将新的图像信息添加到流中。