文档库 最新最全的文档下载
当前位置:文档库 › 组态王与数据库通讯

组态王与数据库通讯

组态王与数据库通讯
组态王与数据库通讯

1、如何使组态王与数据库建立连接

使用组态王与数据库进行数据通讯,首先要建立它们之间的连接。下面通过一个实例介绍如何使组态王与数据库建立连接。

例如:

◆ 继续使用“定义ODBC数据源”中的例子。在机器上D盘根目录下建立的“SQL 数据库.mdb”数据库中建立一个名为kingview的表格。在组态王的数据词典里定义新变量,变量名称:DeviceID,变量类型:内存整型;

◆ 然后在本机上的ODBC数据源中建立一个数据源,比如数据源名为mine。详

细配置请参照“定义ODBC数据源”一节;

◆ 在组态王工程浏览器中建立一个名为BIND的记录体,定义一个字段:name (对应组态王内存字符串变量name),详细定义请参照“记录体”一节;

◆ 连接数据库:新建画面“数据库连接”,在画面上作一个按钮,按钮文本为:“连接数据库”,在按钮“弹起时”动画连接中使用SQLConnect()函数和SQLSelect()函数建立与“mine”数据库进行连接:

SQLConnect( DeviceID, "dsn=mine;uid=;pwd=");

/*建立和数据库mine连接,其中DeviceID是用户创建的内存整型变量,用来保存SQLConnect()函数为每个数据库连接分配的一个数值*/

/*注意在执行SQLDisconnect(断开和数据库的连接函数)之前,重复执行SQLConnect将会增加DeviceID,DeviceID最多为255*/

SQLSelect( DeviceID, "kingview", "BIND", "", "");/* SQLSelect()函数:访问一个数据库并返回一个表的信息,此信息可以被查询、删除、清空等操作*/

以上指令执行之后,使组态王与数据库建立了连接。

2、如何创建一个表格

组态王与数据库连接成功之后,可以通过组态王操作在数据库中创建表格。下面通过一个实例介绍如何创建一个表格。

例如:

◆ 在组态王中创建一个表格模板:table1。定义三个字段:salary(整型)、name (定长字符串型,字段长度:255)、age(整型)。详细定义请参照“19.1.1 表格模板”一节;

◆ 将上节实例中画面上“连接数据库”按钮“弹起时”动画连接命令语言该为:

SQLConnect( DeviceID, "dsn=mine;uid=;pwd=");

◆ 创建数据库表格:在“数据库连接”画面上新作一个按钮,按钮文本为:“创建表格”,在按钮“弹起时”动画连接中使用SQLCreateTable()函数创建表格。SQLCreateTable( DeviceID, "KingTable", "table1" );

/*创建数据库表格名称为:KingTable*/

该命令用于以表格模板“table1”的格式在数据库中建立名为“KingTable”的表格。在自动生成的KingTable表格中,将生成三个字段,字段名称分别为:salary,name,age。每个字段的变量类型、变量长度及索引类型与表格模板“table1”中的定义所决定。

3、如何将数据存入数据库

创建数据库表格成功之后,可以将组态王中的数据存入到数据库表格中。下面通过一个实例介绍如何将数据存入数据库。

例如:

将数据存入数据库

◆ 在组态王中创建一个记录体:BIND1。定义三个字段:salary(整型,对应组态王变量record1)、name(定长字符串型,字段长度:255,对应组态王变量name)、age(整型,对应组态王变量age)。详细定义请参照“记录体”一节;

◆ 在“数据库连接” 画面上作一个按钮,按钮文本为:“插入记录”,在按钮“弹起时”动画连接中使用SQLInsert()函数:

SQLInsert( DeviceID, "KingTable", "BIND1" );

该命令使用记录体BIND1中定义的连接在表格KingTable中插入一个新的记录。

该命令执行后,组态王运行系统会将变量salary的当前值插入到Access数据库表格“KingTable”中最后一条记录的“salary”字段中,同理变量name、age 的当前值分别赋给最后一条记录的字段:name、age值。运行过程中可随时点击该按钮,执行插入操作,在数据库中生成多条新的记录,将变量的实时值进行保存。

4、如何进行数据查询

组态王在运行过程中还可以对已连接的数据库进行数据查询。下面通过一个实例介绍如何进行数据查询。

例如:

进行数据查询

◆ 在组态王中定义变量。这些变量用于返回数据库中的记录。“记录salary”:内存实型;“记录name”:内存字符串型;“记录age”:内存整型。定义记录体BIND2,用于定义查询时的连接。如图19.14所示。

图19.14 数据查询记录体

◆ 在“数据库连接” 画面上作一个按钮,按钮文本为:“得到选择集”,在按钮“弹起时”动画连接中使用SQL连接函数,得到一个指定的选择集:

SQLSelect( DeviceID, "KingTable", "BIND2" ,"","");

该命令选择表格KingTable中所有符合条件的记录,并以记录体BIND2中定义的连接返回选择集中的第一条记录。此处没有设定条件,将返回该表格中所有记录。

执行该命令后,运行系统会把得到的选择集的第一条记录的“salary”字段的值赋给记录体BIND2中定义的与其连接的组态王变量“记录salary”,同样“KingTable”表格中的name、age字段的值分别赋给组态王变量记录name、记录age。

◆ 画面中查询返回值的显示:在画面上做三个“##”文本,分别定义值输出连接到变量“记录salary”、“记录name”和“记录age”,如图19.15所示。

图19.15 查询返回值画面

在执行SQLSelect()函数后,首先返回选择集的第一条记录,在画面上“##”将显示返回值。

◆ 查询记录:在“数据库连接” 画面上做四个按钮。

按钮文本:第一条记录

“弹起时”动画连接:SQLFirst( DeviceID );

按钮文本:下一条记录

“弹起时”动画连接:SQLNext( DeviceID );

按钮文本:上一条记录

“弹起时”动画连接:SQLPrev( DeviceID );

按钮文本:最后一条记录

“弹起时”动画连接:SQLLast( DeviceID );

◆ 断开连接:在“数据库连接” 画面上做一个按钮,按钮文本:断开连接,“弹起时”动画连接:SQLDisconnect( DeviceID );

该命令用于断开和数据库的连接。最后的生成画面如图19.16所示:

图19.16 组态王SQL数据库访问

定义复杂的查询

SQL访问管理允许用户指定一个复杂的查询和设计自己的SQL语句。这些查询可以动态的建立或由外部文件包含。另外,这些查询可能包含需要在运行时转化成查询的参数。SQL访问管理API允许用户执行任何一个用户的数据库支持的SQL 语句,并且返回查询结果。同时,存储过程也可有效执行。(存储过程不能被充分支持)

更详细资料,请参阅“支持存储过程”。

复杂的查询必须调用SQLSetStatement 函数

建立动态查询

为了建立动态查询,需用到两个函数:SQLSetStatement()和SQLAppendStatement()。SQLSetStatement()开始一个新的SQL语句。它可以是任何有效的SQL语句,包括存储过程的名字。因为组态王只支持131个字符,SQLAppendStatement()用来附加字符串到语句中。

例如:ResultCode = SQLSetStatement ( ConnectionID, “Select LotNo, LotName, LotDescription, LotQuantity from LotInfo, ProductionInfo” );

ResultCode = SQLAppendStatement ( ConnectionID, “where LotInfo.LotNo= ProductionInfo.LotNo” );

ResultCode = SQLAppendStatement ( ConnectionID, “order by LotNo, NotName, LotQuantity” );

这时,语句就可以执行了。

注意:许多数据库列名和表名区分大小写。

从文件中读SQL语句

用户可以在其他软件例如,Microsoft Access 和其他数据库工具建立查询,然后使用组态王的SQLLoadStatement()函数调用这一查询。

例如:

ResultCode = SQLLoadStatement ( ConnectionID,

“c:\myappdir\lotquery.sql” );

这时,语句就可以执行了。

修改扩展的SQL语句

为了提供完全的SQL功能,SQL Access Manager允许用户指定一个包含组态王

变量的where语句。为了允许运行时指定SQL参数,需用到以下函数:

SQLPrepareStatement(),SQLSetParamType(), QLClearStatement(), SQLClearParam();

为了实现SQL语句的替换,在用户想要在以后再指定的参数位置替代为一个“?”。这一语句是一个替代语句,当参数设置后,语句即可以执行。

SQLPrepareStatement()为一个执行准备一个语句。它并不执行语句,它只是激活语句使用户能设置参数。

例如:

ResultCode = SQLSetStatement ( Conne ctionID, “select LotNo, LotName, LotDescription, LotQuantity from LotInfo, ProductionInfo” );

ResultCode = SQLAppendStatement ( ConnectionID, “where LotInfo.LotNo = ?”);

ResultCode = SQLAppendStatement ( ConnectionID, “order by LotNo, LotName, LotQuantit y”);

ResultCode = SQLPrepareStatement ( ConnectionID, SQLHandle ); ResultCode = SQLSetParameInt ( SQLHandle, 1, tagLotNumber );

现在,语句已经准备好,可以执行了。

一旦语句执行,并且用户不再使用准备的语句,可以调用SQLClearStatement()来释放语句相关的资源。

执行扩展的SQL语句

根据前文可知,语句可以被动态创建或从文件中读出,可以被准备和修改。现在,可以执行语句了。SQL 访问管理器使用SQLExecute()函数来实现此功能。SQLExecute()将执行当前激活的语句或原来准备好的语句句柄。

例如1:

ResultCode = SQLLoadStatement ( ConnectionID, “c:\sql\lotquer y.sql” ); ResultCode = SQLExecute ( ConnectionID, “BIND1”, 0 );

例如2:

ResultCode=SQLSetStatement( DeviceID, "select name from kingviewT");/*SQL查询语句:从表格kingviewT选取name列*/

ResultCode=SQLAppendStatement( DeviceID, "where salary = ?");/*使用?以后赋值*/

ResultCode=SQLPrepareStatement( DeviceID, handle);/*准备语句*/

ResultCode=SQLSetParamInt(handle,1, value );/*为?设置参数value为内存整数*/

ResultCode=SQLExecute( DeviceID, "BIND1" , handle );/*执行*/ 例如3:

SQLSetStatement( ConnectID, “select agg from kingviewT” ); SQLExecute( ConnectID, 0 );

例3中,SQLExecute()函数中句柄设置为零,语句没有必要用SQLPrepare()来准备。

支持存储的过程

SQLExecute函数支持存储过程的执行。假设用户在数据库服务器上建立了一个名为“LotInfoProc”的过程,此过程包含语句:“Select LotNo,LotName from LotInfo”。用户可以在组态王命令语言中写入以下指令实现:

当使用微软SQL Server:

ResultCode = SQLSetStatement ( ConnectionID, “LotInfoProc” );

R esultCode = SQLExecute( ConnectionID, “BIND1”, 0 );

当使用Oracle或Microsoft Access:

ResultCode = SQLSetStatement ( ConnectionID, “{CALL LotInfoProc}” );

ResultCode = SQLExecute( ConnectionID, “BIND1”, 0 );

组态王软件详细教程 第九讲 数据库

第九讲组态王与Access数据库连接 组态王SQL访问功能实现组态王和其他外部数据库(支持ODBC访问接口)之间的数据传输。它包括组态王的SQL访问管理器和SQL函数。 以Ms Access数据库为例,下面说明组态王与其相连的例子。 SQL访问管理器 SQL访问管理器用来建立数据库列和组态王变量之间的联系。包括表格模板和记录体两部分功能。通过表格模板在数据库表中建立表格;通过记录体建立数据库表格列和组态王之间的联系,允许组态王通过记录体直接操作数据库中的数据。表格模板和记录体都是在工程浏览器中建立的。 创建表格模板 在工程浏览器中左侧工程目录显示区中选择“SQL访问管理器”下的“表格模板”项,在右侧目录内容显示区中双击“新建”,弹出“创建表格模板对话框”,如下图。

在表格模板中建立五个记录,字段名称,变量类型,变量长度,索引类型分别如上图所示。 建立表格模板的目的在于定义一种格式,在后面用到是SQLCreatTable()以次格式在Access数据库中建立表格。 创建记录体 在工程浏览器左侧的工程目录显示区中选择SQL访问管理器下的记录体,在右侧的目录内容显示区中双击“新建”,弹出“创建表格模板对话框”,如下图。

记录体定义了组态王变量$日期、$时间、原料油液位、催化剂液位、成品油液位和Access 数据库表格中相应字段日期、时间、原料油液位值、催化剂液位值、成品油液位值之间的对应连接关系。(注意:记录体中的 字段名称和顺序必须与表格模板中的字段名称和顺序必须保持一致,记录体中的字段对应的变量的数据类型必须和表格模板中相同字段对应的数据类型相同。) 建立Ms Access数据库 1.建立一空Access文件,定名为mydb.mdb. 2.定义数据源 双击控制面板下的“ODBC数据源(32位)”选项,弹出“ODBC数据源管理器”对话框, 选择“用户DSN”属性页,并单击添加”按钮。 在弹出的“创建新数据源”对话框中,选择“Mirosoft Access Driver” 单击“完成”按钮。 弹出“ODBC Microsoft Access安装”对话框:

组态王与单片机通信协议1

一、通讯参数: 通讯参数包括数据位,停止位,波特率、校验方式。 数据位、停止位、波特率由单片机决定。组态王中的设定和单片机一致即可。校验方式参照“数据传输格式”中相关部分。 二、数据传输格式: 格式1、组态王发送地址请求格式:(此时检验位为1) ENQ Sta EOT CRC 格式2、单片机应答地址格式:(此时检验位为0) ACK Sta ETX CRC 格式3、组态王读数据请求格式:(此时检验位为0) ENQ R DataType DataAddr DataNum EOT CRC 格式4、单片机应答读数据格式(正确):(此时检验位为0) ACK DataLong Data….ETX CRC 格式5、单片机应答读数据格式(错误):(此时检验位为0) NAK ErrorCode ETX CRC 格式6、组态王写数据请求格式:(此时检验位为0) ENQ W DataType DataAddr Data….EOT CRC 格式7、单片机应答写数据格式(正确):(此时检验位为0) ACK ErrorCode ETX CRC 三、时序: 读数据: 组态王单片机

第一步:格式1 第二步:格式2 第三步:格式3 第四步:格式4或格式5 第五步:如果第四步单片机执行格式4, 结束。否则,执行格式1。 第六步:格式2 第七步:格式3 第八步:格式4或格式5 写数据: 组态王单片机 第一步:格式1 第二步:格式2 第三步:格式6 第四步:格式7 第五步:如果第四步单片机执行格式7 的ErrorCode=0,结束。否则,执行格 式1。 第六步:格式2 第七步:格式6 第八步:格式7 四、协议说明: 数据传输:所有数据均为16进制数 ENQ(头) H05 询问请求帧的开始代码 ACK(头) H06 确认ACK应答帧的开始代码NAK(头) H15 否认NAK应答帧的开始代码EOT(尾) H04 正文的结束请求帧的结束ASCII代码ETX(尾) H03 结束正文应答帧的结束ASCII代码 Sta::设备地址1字节 R:读标志1字节(0x52) W:写标志1字节(0x57)

组态王与数据库连接

首先,安装SQL server,和组态王。 1.将采集到的数据需要存入数据库的先编辑到记录体。 a.记录体名可以按照存储变量来设定,与存入数据库表格名称可以不一样(建议设置 一样)。 b.字段名称不需要和变量名称一致,设置简单明了的标示名称即可,但是必须要和存 入数据库表格名称一致。 c.记录体变量顺序必须和存入数据库表格顺序一致,否则数据不能插入表格。 d.时间:建议可新建一个内存字符串,并在命令语言内如图定义。 2.新建数据库以及数据库表格。 新建数据库:名称可随意设置(如:ceshi) 新建数据库表格: 列名:必须和记录体内字段名称一致(在报表调用时名称可以修改)。 数据类型:和存入的数据类型要一致,时间varchar模拟量float 开关量bit

长度:根据数据类型自动设置。 保存表格时输入表格名称即可。(名称尽量和记录体一致,操作起来方便一些)

3.创建数据源(ODBC) 依次打开控制面板→管理工具→数据源(ODBC) →系统DSN 步骤(只是需要修改的,其他都默认): a.添加→选择新数据源SQL sever(下拉最后一个)→完成 b.名称可随意设置,(建议和数据库名称一样,如:ceshi),描述可以省略,服务器: (local) c.使用用户输入登录ID和密码的SQLserver 验证。登录ID:sa,密码:安装数据库时 设置的密码(如,admin)。 d.更改默认的数据库,选择刚刚新建的数据库(如ceshi),创建完成。 4.连接组态和数据库插入数据 a.在组态王数据词典中新建内存整形变量DeviceID b.应用程序命令语言启动时: SQLConnect( DeviceID, "dsn=数据源名称;uid=sa(登录ID);pwd=admin(密码)"); 该命令语言是组态王连接上数据。 c.SQLInsert( DeviceID, "记录体名称", "数据库表格名称" ); 该命令语言是将记录体数据插入数据库表格内,可根据不同需求设定不同是采集频率。(如图,为一分钟采集一次;) 注:如果采集时间为十分钟可以建内存实数,让新建变量等于10分钟,并在命令语言中实现。 报表功能下期再见。

组态王6.53与51单片机上课讲义

组态王6.53与51单 片机

基于51单片机的智能仪表与组态王的通讯 1242人阅读 | 0条评论发布于:2009-8-10 23:01:00 1、引言 随着工业自动化进程的不断加快,现场仪器、仪表、设备正不断向数字化、智能化和网络化方向推进。 单片机以其强大的现场数据处理能力,低廉的价格,紧凑的系统结构、高度的灵活性,微小的功耗等一系列优良特性成为构建智能化现场仪器仪表、设备的重要手段,现已广泛应用于工业测量和控制系统中。 组态王 Kingview工控组态软件以其工作性能稳定可靠、人机界面友善、硬件配置方便以及编程简单易用同时其驱动程序较为丰富,如支持DDE、板卡、OPC服务器、PLC、智能仪表、智能模块等;支持ActiveX控件、配方管理、数据库访问、网络功能、冗余功能。其扩展性强,配有加密锁,支持工程加密;可方便与管理计算机或控制计算机联网通信等优良特性,提供了对工业控制现场大量数据进行采集、监控、处理的解决方案。在各种工业控制领域中得到了大量使用[1-2]。 将单片机和组态王优良的特性结合起来,使它们实现“强强联合”,成为改造传统工业,提升企业技术竞争力的重要趋势。 目前许多测控系统是由通用机或工控机和底层单片机控制装置组成,通用机或工控机通过组态软件控制现场仪器设备,单片机采集数据和现场状态通过串行口传送到通用机或工控机,由组态软件对采集到的现场数据进行分析、存储或显示,并将命令和控制通过串行口传到单片机以监控现场设备的运转。可靠地实现它们之间的通讯是实现各种测控任务必须解决的首要问题。对于一些重要名家厂商的板卡和模块,一般组态王可直接提供为数据采集和控制所需的底层硬件设备的驱动程序。但对于绝大多数一般用户自行设计开发的采集、控制装置则没有驱动程序提供。因此实现它们“强强联合”,必须解决它们之间之间的通信问题。迄今为止,人们对单片机与组态王的通信问题进行了广泛的研究[1-2]。 目前,单片机与组态王的通讯方法有主要有3种[3]:①利用组态的驱动程序开发包进行驱动开发自己的通讯驱动程序,该方法适用于专业厂商;②通过动态数据交换(DDE)方式进行通讯,该方法带来一些额

组态王与ACCESS数据库的数据交换的例子

组态王与ACCESS数据库的数据交换 ——以中山创污水处理为例 一、创建表格模板和记录体。 在组态王工程浏览器中的SQL访问管理器点击表格模板。在右侧目录内容中双击“新建”创建一个名称为“1”且字段为“工号”“日期”“时间”“酸”“碱”“混凝剂”“还原剂”“氯化钙”“PAM正”“PAM负”的表格。注意:当编辑字段名称时,应与新建组态王变量一样(最好不要用字符),不含非法字符,如:“+”“-”“=”“#”等。此表格格式决定了ACCESS数据库的表格格式。 同样在SQL管理器中点击记录体,在右侧目录内容中双击“新建”,创建一个名称为“1”的记录体。其字段名称与表格模板中的字段相对应。组态王变量是连接的组态王内部变量。编辑字段名称的规则与编辑表格模板一样。 二、建立MS ACCESS数据库。 1.建一个空的ACCESS数据库,定名为20,保存在D:\29所污水处理工程。 2.定义数据源 双击控制面板下的“ODBC数据源(32位)”选项,弹出“ODBC数据源管理器” 对话框。 选择“用户DSN”属性页,并单击“添加”按钮。 在弹出的“创建新数据源”对话框中,选择“Mirosoft Access Driver”单击“完成”按钮。 弹出“ODBC Microsoft Access安装”对话框,定义数据源名为“20” 单击“选择”按钮,从中选择路径D:\29所污水处理工程\20.MDB 单击“确定”按钮,完成对数据源的配置。

三、组态王开发界面的组态 在组态王开发系统中创建如下画面: 其中表格为KV ADODBGrid CLASS控件。 四、对数据库的操作。 点保存弹出对话框。在“确定”按钮的动画连接向导的“弹起时”输入命令语言 SQLConnect( \\本站点\ID, "dsn=20;DATABASE=20;uid=;pwd="); //连接名称为“20”,数据源名称为“20”的数据库。 SQLCreateTable( \\本站点\ID, "10", "1" ); //在数据库“20”内创建名称为“10”的表格,表格模板名称为“1”表格模板在组态王中已编辑。 SQLInsert( \\本站点\ID, "10", "1" ); //在名称为“10”的表格内插入名称为“1”的记录体。记录体在组态王中已编辑。 ClosePicture("手动确定"); //关闭“手动确定”画面。 数据库中的被记录变量必须要先被当前组态画面显示后才能在数据库中记录下来。(本工程中要记录的变量已经在KV ADODBGrid CLASS控件上方显示过了,即褐色的部分,显示后再点击“保存”按钮,进入保存对话框,点击“确定”按钮,数据才能进入数据库。 五:进入组态王运行状态,点击保存弹出对话框,点击“确定”按钮;将会自动在Microsoft Access 中生成名字为“10”的数据库表格;

组态王与SQL SERVER 2000交互教程

目录 1.SQL SERVER2000的准备工作 (2) 1.1安装SQL S ERVER2000数据库(安装方法略),新建数据库K ING V IEW (2) 1.2在K ING V IEW数据库中新建数据表R EAL D ATA、H ISTORY D ATA,用于存放组态王中的实时和 历史数据 (2) 2.组态王的准备工作 (4) 2.1在组态王建立两个内存实数变量,作为H ISTORY D ATA和R EAL D ATA的数据源,提供数据 变化至SQL S ERVER2000的数据库K ING V IEW (4) 2.2新建组态王画面T EST F OR SQLS ERVER2000,设置标签监控内存实数变量K ING1和K ING25 2.3建立一个内存字符串变量,时刻记录组态王的日期加时间,写入历史数据表作为时 间变量6 3.数据库与组态王数据交互 (6) 3.1建立组态王与数据库表之间的连接 (7) 3.2建立ODBC数据源,建立组态王与数据库之间的数据通道 (7) 3.3组态王打开数据库连接 (10) 3.4利用组态王脚本语言实现捕捉字段变化进而触发数据库操作 (13) 3.5组态王显示SQL S ERVER中历史数据表内容 (14) 3.6实际测试 (17)

1.SQL Server2000的准备工作 1.1安装SQL Server2000数据库(安装方法略),新建数据库 KingView 新建kingView数据库 1.2在KingView数据库中新建数据表RealData、HistoryData, 用于存放组态王中的实时和历史数据 定义历史数据表字段,注意需要把ID设置成自增1,才可以保证你数据表中记录不断的增加

031第八讲_组态王与数据库连接

第八讲 组态王与数据库连接 第一节 SQL 访问管理器 概述 组态王SQL 访问功能实现组态王和其他外部数据库(通过ODBC 访问接口)之间的数据传输。它包括组态王的SQL 访问管理器和相关的SQL 函数。 SQL 访问管理器用来建立数据库字段和组态王变量之间的联系,包括“表格模板”和“记录体”两部分。通过表格模板在数据库表中建立相应的表格;通过记录体建立数据库字段和组态王之间的联系。同时允许组态王通过记录体直接操作数据库中的数据。 创建数据源及数据库 首先外建一个数据库,这里我们选用Access 数据库(路径:d:\peixun ,数据库名为:mydb.mdb )。 然后,用Windows 控制面板中自带的ODBC Data Sources (32bit)管理工具新建一个Microsoft Access Driver(*.mdb)驱动的数据源,名为:mine ,然后配置该数据源,指向刚才建立的Access 数据库(即mydb .mdb ),如图8-1所示: 图8-1ODBC 数据源的建立

创建表格模板 1、在工程浏览器窗口左侧“工程目录显示区”中选择“SQL访问管理器”中的“表格模板”选项,在右侧“目录内容显示区”中双击“新建”图标弹出创建表格模板对话框,在对话框中建立三个字段,如图8-2所示: 图8-2创建表格模板对话框 2、单击“确认”按钮完成表格模板的创建。 建立表格模板的目的是定义数据库格式,在后面用到SQLCreatTable()函数时以此格式在Access数据库中自动建立表格。 创建记录体 1、在工程浏览器窗口左侧“工程目录显示区”中选择“SQL访问管理器”中的“记录体”选项,在右侧“目录内容显示区”中双击“新建”图标弹出创建记录体对话框,对话框设置如图8-3所示: 图8-3创建记录体对话框 记录体中定义了Access数据库表格字段与组态王变量之间的对应关系,对应关系如下所示:

组态王与单片机的通信

组态王与单片机的通信与设计 前言本文主要是解决装有组态王的PC机与单片机的通信问题,这里选择通过计算机的COM1口进行串行通信。单片机和PC机的串行通行一般采用RS-232、RS-422或RS-485总线标准接口,也有采用非标准的20mA电流环的。为保证通信的可靠,在选择接口时必须注意:(1)通信的速率;(2)通信距离:(3)抗干扰能力;(4)组网方式,既可以保证正常通信时的最大通信端口数量。这里采用RS-232接口与单片机通信的方法。由于两者间的电平规范不一致,实现两者间的通信要解决接口电路的电平转换问题。 正文 选题背景随着单片机和微机技术的不断发展,单片机的应用也从独立的单机向网络发展,由PC机和多台单片机构成的多级网络测控系统已成为单片机技术发展的一个方向。在一个大型的应用系统中,通常由单片机完成数据的采集和上传,后台则通过PC机对数据进行分析并处理,复杂的还要建立数据库形成网络,二者的结合,充分发挥了单片机在实时数据采集和微机对图形处理、显示以及数据库管理上的优点,使得单片机的应用已不仅仅局限于传统意义上的自动监测或控制,而形成了向以网络为核心的分布式多点系统发展的趋势。 随着微电子技术、计算机控制技术、工业以太网技术及现场总线技术的发展,作为用户无需改变运行程序原代码的软件平台工具——工控组态软件日渐成熟。由于工控组态软件在实现工业控制的过程中免去了大量烦琐的编程工作,解决了长期以来控制工程人员缺乏计算机专业知识与计算机专业人员缺乏控制操作技术和经验的矛盾,极大地提高了自动化工程的工作效率。近年来,工控组态软件在中小型工业过程控制工程、工业自动化工程中越来越受到欢迎。不仅如此,工控组态软件还在配电自动化、智能楼宇、农业自动化、能源监测等领域也逐步展示了其独特的优势。 单片机控制系统以其高性能价格比、稳定、易于实现等特点而被广泛使用,但他难以实现动态复杂的图形监控界面;而组态王软件具有强大丰富的监控界面设计功能,却难以实现复杂的控制算法,而单片机则难以实现动态复杂的图形监控界面,若采用以单片机为下位机,以装有组态王的PC极为上位机的控制方式,将彻底改变原来单片机控制系统的单调、简单的控制界面的缺陷,进一步推动单片机控制方式的广泛应用。 在这个设计中有以下问题待以解决:1、TTL/RS232电平转换及其接口电路的处理。2、由于组态王接收的是数据的ASCII码,因此要实现数据与它所对应的ASCII码的转换。3、组态王监控界面的设计。 设计要求 设计组态王监控界面,编写单片机发送接受程序以实现组态王与单片机两者间的通信。 方案论证 过程论证

组态王及数据库连接的实现方法

组态王与数据库连接的实现方法 1准备工作 1.1创建数据源及数据库 1.右键新建一个Access数据库(D:\example,数据库名:ku.mdb)。 2.依次点击屏幕左下角“开始\控制面板\管理工具”,双击“数据源 (ODBC)”打开ODBC数据源管理器如错误!未找到引用源。: 图 1 3.点击“添加”新建一个数据源,驱动程序选择“Microsoft Access Driver(*.mdb)”点击“完成”,如错误!未找到引用源。:

图 2 4.配置该数据源,数据源名:yuan。指向新建的Access 数据库 (ku.mdb)步骤如错误!未找到引用源。所示: 图 3

1.2创建表格模板 打开工程“yangli”在工程浏览器窗口左侧找到“系统\SQL访问管理器\表格模板”选项如图 4,在右侧双击“新建”打开如图 5“创建表格模板”对话框。 图 4 模板名称:muban1,,依次输入字段名称:ziduan1、字段长度:9,选择变量类型为:定长字符串型,点击增加字段。用同样方法增加字段ziduan2、ziduan3。 图 5 1.3创建记录体 注意:记录体中的字段名称必须与表格模板中的字段名称保持一致,记录体中字段对应的变量数据类型必须和表格模板中相同字段对应的数据类型相同。 1.在工程浏览器窗口“数据库\数据词典”中新增三个内存字符串型变量 (ziduan1、 ziduan2、ziduan3)。

2.找到工程浏览器窗口左侧“SQL 访问管理器\记录体”选项,双击右侧 “新建”图标建立名为“jiluti1”的记录体,对话框设置如图 6所 示: 图 6 依次增加ziduan1、ziduan2、ziduan3三个字段点击“确认”。 2连接并插入记录 2.1连接数据库并创建数据库表格 1.在工程浏览器窗口“数据库\数据词典”中定义一个内存整型变量: 变量名:DeviceID 变量类型:内存整型 2.在工程浏览器窗口的“命令语言\应用程序命令语言\启动时”窗口输入 命令: SQLConnect( DeviceID, "dsn=yuan;uid=;pwd="); SQLCreateTable( DeviceID, "biaoge1", "muban1" ); 命令语言中的“yuan”为前面配置的数据源的名称。 3.在工程浏览器窗口的“命令语言\应用程序命令语言\停止时”窗口输入 命令: SQLDisconnect( DeviceID);

关于组态王数据库绘制曲线的方式

关于组态王历史曲线的绘制 在作项目中,常常遇到需要查看工程的历史数据图和历史曲线。 在使用组态王的过程中遇到了以下问题。 问题;工程要求要能查找历史数据和查看历史曲线。组态王内置历史曲线可以绘制,但数据不能第三方访问。且历史数据记录不能停止。 要绘制历史曲线,首先要有历史数据,组态王本身有历史数据库。也可使用第三方数据库。 组态王自己的历史数据库不开放(只可用函数语句表另存为),第三方不能访问。 第三方数据库是微软的access数据库或者是SQL sever 数据库等。 在测试access数据时发现。组态王保存的历史数据在绘制历史曲线调用时,有个日期时间格式的数据需要选取。但在数据库里边没有符合这个格式的选项。 经查看发现组态王合成的日期时间格式在access里是字符串(文本)格式,不符合datetime格式。于是手动更改为datetime格式,组态王可以调用历史数据绘制曲线了。但数据又不能插入了。测试失败。 方法1.在SQL several数据库中同时插入两个一摸一样的表格,表格1插入数据,表二在表1插入时同时插入数据并转换数据格式,然后在历史曲线控件里调用。 在表格1调用触发器,然后再插入数据到表格2,同时更改日期时间字符串为datetime格式,直接在组态王历史控件里调用即可。 create trigger myinserta on MODE for insert as declare @a char(15),@b int,@c char(8),@d char(10),@e char(24),@f int,@g int,@h int,@i int,@j int,@k int,@l int,@m char(10); select @a=工件号编码,@b=序号,@c=时间,@d=日期,@e=DATATIME,@f=毫秒,@g=轨顶温度,@h=轨顶温度,@i=轨低温度,@j=轨低温度,@k=喷风温度,@l=喷风压力,@m=用户FROM INSERTED INSERT INTO MODE1 values (@a,@b,@c,@d,@e,@f,@g,@h,@i,@j,@k,@l,@m); 上面第一个触发器定义中间变量和数据长度和格式,定义的格式应当和组态王模板设定的长度和数据类型一致。 下面的触发器在每次插入触发时更改DATATIME列的格式为datetime日期时间格式。 create trigger STTTOTIMEa on MODE --(//记录体名称) ALTER TABLE MODE1 ALTER COLUMN DATATIME datetime; 方法2还是使用SQL several数据库。 在定义组态王模板时定义一个内部空变量,定义类型为long,长整型。随模板一起插入,在组态里,转换DATATIME字符串为datetime日期时间格式,并赋值给定义的长整型(long),在组态历史控件里就可以调用了

亚控科技公司提供的通用单片机通讯协议

组态王通用单片机协议(ASCII) 概述 通用单片机ASCII协议支持单片机与组态王通讯,用户只要按照我们的协议编写单片机通讯程 序就可实现与组态王的通讯. 组态王设置 1、定义组态王设备 定义组态王定义设备时请选择:智能模块\单片机\通用单片机ASCII\串口 组态王的设备地址定义格式:##.# 前面的两个字符是设备地址,范围为0-255,此地址为单片机的地址,由单片机中的程序决定; 后面的一个字符是用户设定是否打包,"0"为不打包、"1"为打包,用户一旦在定义设备时确定了 打包,组态王将处理读下位机变量时数据打包的工作,与单片机的程序无关. 2、组态王通讯 通讯方式:RS-232,RS-485,RS-422均可。 波特率:由单片机决定(2400,4800,9600and19200bps)。 注意:在组态王中设置的通讯参数如波特率,数据位,停止位,奇偶校验必须与单片机编程中 的通讯参数一致 组态王数据词典--变量定义 在组态王中定义的寄存器数据格式(类型):由单片机决定。

斜体字dd代表数据地址,此地址与单片机的数据地址相对应. 注意: 在组态王中定义变量时,一个X寄存器根据所选数据类型(BYTE,USHORT,FLOAT)的不同,分别 占用一个、两个,四个字节,定义不同的数据类型要注意寄存器后面的地址,同一数据区内 不可交叉定义不同数据类型的变量。为提高通讯速度建议用户使用连续的数据区。 例如, 1、在单片机中定义从地址0开始的数据类型为BYTE型的变量: 则在组态王中定义相应的变量 的寄存器为X0、X1、X2、X3、X4。。。。。。。。,数据类型为BYTE,每个变量占一个字节 2、在单片机中定义从地址100开始的数据类型为USHORT型的变量: 则在组态王中定义相应的变 量的寄存器为X100、X102、X104、X106、X108。。。数据类型USHORT,每个变量占两个字节 3、在单片机中定义从地址200开始的数据类型为FLOAT型的变量: 则在组态王中定义相应的变 量的寄存器为X200、X204、X208、X212。。。。。。数据类型FLOAT,每个变量占四个字节 组态王与单片机通讯的命令格式: 具体协议内容请参看组态王安装盘:\Value Pack\单片机\通用单片机通讯协 议(ASCII).doc

组态王连接Accesss大数据库与历史曲线显示

我是依据组态王帮助文件里面的案例,不过我写的会更详细! 以某工业现场应用为例,需要对原料进行称量,并记录原料的生产厂家、原料编号、称量日期、称量时间,值班人员、原料重量。针对这种关系数据,使用组态王的历史库是无法记录的,因此我们使用关系数据库Access 进行记录。下面就以此为例来演示完成这一现场需求的设置步骤。 操作步骤: 1、新建数据库以及表: 1.1)在Access 中新建一个空数据库,例如建立路径为:D:\数据库存储例程\数据.mdb。 1.2)在数据库D:\数据库存储例程\数据.mdb 中创建一个数据表:表的名称为:原料数据。字段为:称量日期、称量时间、原料重量、原料厂家、原料编号、值班人员、datetime(这个变量是我自己需要历史曲线用的)。如下图所示:(下面的值是我测试的) 其中原料重量字段类型为“数字”设置为“单精度”,datetime设置为日期/时间默认值改为now()。其余为“文本”类型。(这里默认的视图是数据表视图,要切换到设计视图,如图所示:)

在这下面设置字段大小为单精度型,小数位数为2(这个按自己需求设置位数)。 2、设置ODBC 数据源: 2.1) 在“控制面板”-----“管理工具”----“ODBC 数据源”中建立ODBC 数据源,点击“ODBC数据源”弹出“ODBC 数据源管理器”,如下图所示:(这里注意的是如果系统是64位系统的话,则打开C:\Windows\SysWOW64\odbcad32.exe)

2.2) 在“用户DSN”中点击“添加”,弹出“选择数据源驱动程序”窗口,如下图所示:选择“Microsoft Access Driver (*.mdb)”驱动,点击“完成”。弹出如图所示窗口,填写ODBC数据源的名称,根据需要对数据源进行命名,如“数据”,点击“选择(S)”,如图所示,选择我们前面定义的数据库文件“D:\数据库存储例程\数据.mdb”。点击“确定”完成ODBC 数据源的定义,如图所示。其他数据库如SQLServer 的ODBC 定义请参考相关文档。

基于51与组态王的智能仪表

基于51单片机的智能仪表与组态王的通讯 圈子类别:嵌入式系统 (未知) 2009-8-10 23:01:00 [我要评论] [加入收藏] [加入圈子] 1、引言 随着工业自动化进程的不断加快,现场仪器、仪表、设备正不断向数字化、智能化和网络化方向推进。 单片机以其强大的现场数据处理能力,低廉的价格,紧凑的系统结构、高度的灵活性,微小的功耗等一系列优良特性成为构建智能化现场仪器仪表、设备的重要手段,现已广泛应用于工业测量和控制系统中。 组态王Kingview工控组态软件以其工作性能稳定可靠、人机界面友善、硬件配置方便以及编程简单易用同时其驱动程序较为丰富,如支持DDE、板卡、OPC服务器、PLC、智能仪表、智能模块等;支持ActiveX控件、配方管理、数据库访问、网络功能、冗余功能。其扩展性强,配有加密锁,支持工程加密;可方便与管理计算机或控制计算机联网通信等优良特性,提供了对工业控制现场大量数据进行采集、监控、处理的解决方案。在各种工业控制领域中得到了大量使用[1-2]。 将单片机和组态王优良的特性结合起来,使它们实现“强强联合”,成为改造传统工业,提升企业技术竞争力的重要趋势。 目前许多测控系统是由通用机或工控机和底层单片机控制装置组成,通用机或工控机通过组态软件控制现场仪器设备,单片机采集数据和现场状态通过串行口传送到通用机或工控机,由组态软件对采集到的现场数据进行分析、存储或显示,并将命令和控制通过串行口传到单片机以监控现场设备的运转。可靠地实现它们之间的通讯是实现各种测控任务必须解决的首要问题。对于一些重要名家厂商的板卡和模块,一般组态王可直接提供为数据采集和控制所需的底层硬件设备的驱动程序。但对于绝大多数一般用户自行设计开发的采集、控制装置则没有驱动程序提供。因此实现它们“强强联合”,必须解决它们之间之间的通信问题。迄今为止,人们对单片机与组态王的通信问题进行了广泛的研究[1-2]。 目前,单片机与组态王的通讯方法有主要有3种[3]:①利用组态的驱动程序开发包进行驱动开发自己的通讯驱动程序,该方法适用于专业厂商;②通过动态数据交换(DDE)方式进行通讯,该方法带来一些额外的开销,如会降低系统实时性,增加系统的不可靠性等,对开发人员的要求也更高。而自己开发通讯驱动程序,有一定的难度,且增加开发周期、成本。⑧利用组态王提供的与单片机的通用通讯协议,该方法简单且实时性好,适用于一般用户。 本文介绍了一种采用通用单片机通讯协议,通过RS485接口实现组态王与基于51单片机的智能化仪器、仪表、设备的通讯方法,描述了单片杌和组态王通信的系统结构,电路组成,采用的通讯协议。并将该方法用于熔融氧化锑液位高度的实时远程测量中。

组态王通用单片机协议(ASCII)说明

组态王通用单片机协议(ASCII)说明 概述 通用单片机ASCII协议支持单片机与组态王通讯,用户只要按照我们的协议编写单片机通讯程 序就可实现与组态王的通讯. 组态王设置 1、定义组态王设备 定义组态王定义设备时请选择:智能模块\单片机\通用单片机ASCII\串口 组态王的设备地址定义格式:##.# 前面的两个字符是设备地址,范围为0-255,此地址为单片机的地址,由单片机中的程序决定;后面的一个字符是用户设定是否打包,"0"为不打包、"1"为打包,用户一旦在定义设备时确定了打包,组态王将处理读下位机变量时数据打包的工作,与单片机的程序无关. 2、组态王通讯 通讯方式:RS-232,RS-485,RS-422均可。 波特率:由单片机决定(2400,4800,9600and19200bps)。 注意:在组态王中设置的通讯参数如波特率,数据位,停止位,奇偶校验必须与单片机编程中的通讯参数一致 3.组态王数据词典--变量定义 在组态王中定义的寄存器数据格式(类型):由单片机决定。 斜体字dd代表数据地址,此地址与单片机的数据地址相对应. 注意:

在组态王中定义变量时,一个X寄存器根据所选数据类型(BYTE,USHORT,FLOAT)的不同,分别占用一个、两个,四个字节,定义不同的数据类型要注意寄存器后面的地址,同一数据区内不可交叉定义不同数据类型的变量。为提高通讯速度建议用户使用连续的数据区。 例如, 1、在单片机中定义从地址0开始的数据类型为BYTE型的变量: 则在组态王中定义相应的变量 的寄存器为X0、X1、X2、X3、X4。。。。。。。。,数据类型为BYTE,每个变量占一个字节 2、在单片机中定义从地址100开始的数据类型为USHORT型的变量: 则在组态王中定义相应的变 量的寄存器为X100、X102、X104、X106、X108。。。数据类型USHORT,每个变量占两个字节 3、在单片机中定义从地址200开始的数据类型为FLOAT型的变量: 则在组态王中定义相应的变 量的寄存器为X200、X204、X208、X212。。。。。。数据类型FLOAT,每个变量占四个字节

组态王通过数据库实现数据的采集与输出

组态王通过数据库实现数据的采集与输出 The Standardization Office was revised on the afternoon of December 13, 2020

组态王通过数据库实现数据的采集与输出 作者:蒋妤媜 版本:.1 前提: ?数据库用Microsoft Office Access 2003,数据库路径为D:\历史记录.mdb ?组态王版本为 ?PC机系统为XP 一、创建数据库表 1. 新建名为“历史记录”的数据库,新建完成后,打开数据库 2. 创建表,点击使用设计器创建表,进入设计视图对话框,输入字段名 日期时间、毫秒、污泥浓度、溶氧仪、进水COD、电磁流量计、超声波流量计、二在线COD,其中字段名日期时间的数据类型为日期/时间、毫秒的数据类型为数字长整型、其他字段名数据类型为数字单精度型。 3. 保存名为:10分钟记录 二、创建ODBC

打开控制面板→管理工具→数据源(ODBC),弹出“ODBC数据管理器”,在用户DSN标签下,点击添加 弹出“创建数据库源” 选择此创建数据库源完成后弹出“ODBC Access 安装”

输入数 选择之前 确定完成。 三、组态王内部设置 1. 新建变量 在数据词典中创建本地变量,,变量名称分别为日期时间、DeviceID、nReturnValue。

2. 打开到组态王工程浏览器,新建记录体 创建名为“历史记录”的记录体 3. 创建事件命令语言 点击创建,弹出事件命令语言对话框 事件描述为:(((\\本站点\$分)%10==0)&&((\\本站点\$秒-1)%60==0))==1 输入记 字段名称要与数据库中 添加数据词典 显示已增

组态王及单片机多机串口通信的设计

组态王与单片机多机串口通信的设计 1 引言随着工业化要求提高,分布式系统发展以及控制设备与监控设备之间通讯需要,组态软件设计的监控系统逐步普及。现在组态软件繁多,比如KingVieW(组态王)、MCGS、WinCC等。KingView软件基于Microsoft Windows XP,NT/2000操作系统.具有友好的人机操作界面、强大的IO设备端口驱动能力,可与各种PLC、智能仪表、智能模块、板卡、变频器等实时通讯。由于在检测大量模拟量的工业现场使用PLC与组态软件通讯势必增加产品成 随着工业化要求提高,分布式系统发展以及控制设备与监控设备之间通讯需要,组态软件设计的监控系统逐步普及。现在组态软件繁多,比如KingVieW(组态王)、MCGS、WinCC等。KingView软件基于Microsoft Windows XP,NT/2000操作系统.具有友好的人机操作界面、强大的IO设备端口驱动能力,可与各种PLC、智能仪表、智能模块、板卡、变频器等实时通讯。由于在检测大量模拟量的工业现场使用PLC与组态软件通讯势必增加产品成本。而单片机接口丰富,与A/D转换模块组合可以完成相同的工作,并且系统可靠、成本低。 2 组态王与单片机的串口通讯方法 目前,组态王与单片机的通信多是通过动态数据交换(DDE)或通过自己开发通讯驱动程序完成。DDE是Windows平台上的一个完整的通信协议,组态王通过该协议与其他应用程序交换数据。但不可靠和非实时。而自己开发通讯驱动程序会带来设计困难,增加系统开发周期,可行性不高。组态王专门提供一种与单片机多机串口通信方法,可满足大多数系统需求。

3 PC机与单片机的硬件接口电路 图1为上位PC机与下位单片机80C51的连接电路。PC机与单片机本身都自带串行通讯接口,但由于在分布式系统中PC机与各单片机的分布不集中,不能利用RS-232通讯传输,只能改用RS-485。RS-485采用差分式传输信号,最大传输距离为1 219 m.最大传输速率为10 Mb/s.对同时出现的两条信号线A、B 的干扰有较强的抑制能力。当两条线绞在一起时,被通信各种分布参数耦合过来的干扰信号可平均地分配到这两条线上,因此对RS-485的差分式传输线路而言,用双绞线可获得较强的抗干扰能力。RS-485采用二线与四线平衡传输方式,二线制可实现真正的多点双向通信,但需要在传输线上接电阻(约120 Ω)。 由于80C51系列单片机STC89C52串行接口的,TTL电气特性与RS-485电气特性不相符,STC89C52不能与RS-485直接连接,需要电气转换。这里采用Maxim公司的MAX485,图2为其接口电路。

组态王与Oracle数据库的连接问题

组态王与Oracle数据库的连接问题  声名:  在使用Oracle作为数据时应先考虑随数据库软件所携带ODBC版本问题(针对X86系统而言),在使用过程中发现早期的Oracle所提供的ODBC版本不能正常在Win2000下运行(8 AND 8i),可以到Oracle的官方网站下在最新的ODBC版本(WWW. https://www.wendangku.net/doc/b0311256.html,)。如使用其它版本数据库也应考虑其ODBC的版本,以避免不必要的麻烦。  关于数据类型:  组态王的数据类型与Oracle数据类型的对应关系:(建议)  整型??Number  实型??Number  字符串??Char 离散型和时间类型转换为字符串型再进行处理。 建议使用组态王来创建数据库中的表,如果直接使用Oracle 的Schema管理工具来创建表的话建议不要设置数据类型的”Precision”和”Scale”属性  数据库表的建立:  Oracle数据库的结构简单的说可以表示为数据库?模式(Schema)?表(Table)?记录。  Oracle数据库中的模式与用户帐号是一一对应的。(如使用System用户登陆则只能对System模式中的数据库表进行操作,虽然在有些情况下可以浏览其它数据表但不可操作)。  Oracle数据库在成功安装之后创建了一些系统自定义的模式和数据表,(如System 等),建议在使用时确保系统可靠,通过自定义创建新的模式(Schema)共我们使用。  下简述模式的建立方法(更详细的信息请参考Oracle的相关资料,本说明是以Oracle 8为例):  1、 启动“Database Administration Tools”;  2、 使用“Schema”建立自定义的模式;

组态王6.53与51单片机

基于51单片机的智能仪表与组态王的通讯 1242人阅读| 0条评论发布于:2009-8-10 23:01:00 1、引言 随着工业自动化进程的不断加快,现场仪器、仪表、设备正不断向数字化、智能化和网络化方向推进。 单片机以其强大的现场数据处理能力,低廉的价格,紧凑的系统结构、高度的灵活性,微小的功耗等一系列优良特性成为构建智能化现场仪器仪表、设备的重要手段,现已广泛应用于工业测量和控制系统中。 组态王Kingview工控组态软件以其工作性能稳定可靠、人机界面友善、硬件配置方便以及编程简单易用同时其驱动程序较为丰富,如支持DDE、板卡、OPC服务器、PLC、智能仪表、智能模块等;支持ActiveX控件、配方管理、数据库访问、网络功能、冗余功能。其扩展性强,配有加密锁,支持工程加密;可方便与管理计算机或控制计算机联网通信等优良特性,提供了对工业控制现场大量数据进行采集、监控、处理的解决方案。在各种工业控制领域中得到了大量使用[1-2]。 将单片机和组态王优良的特性结合起来,使它们实现“强强联合”,成为改造传统工业,提升企业技术竞争力的重要趋势。 目前许多测控系统是由通用机或工控机和底层单片机控制装置组成,通用机或工控机通过组态软件控制现场仪器设备,单片机采集数据和现场状态通过串行口传送到通用机或工控机,由组态软件对采集到的现场数据进行分析、存储或显示,并将命令和控制通过串行口传到单片机以监控现场设备的运转。可靠地实现它们之间的通讯是实现各种测控任务必须解决的首要问题。对于一些重要名家厂商的板卡和模块,一般组态王可直接提供为数据采集和控制所需的底层硬件设备的驱动程序。但对于绝大多数一般用户自行设计开发的采集、控制装置则没有驱动程序提供。因此实现它们“强强联合”,必须解决它们之间之间的通信问题。迄今为止,人们对单片机与组态王的通信问题进行了广泛的研究[1-2]。 目前,单片机与组态王的通讯方法有主要有3种[3]:①利用组态的驱动程序开发包进行驱动开发自己的通讯驱动程序,该方法适用于专业厂商;②通过动态数据交换(DDE)方式进行通讯,该方法带来一些额外的开销,如会降低系统实时性,增加系统的不可靠性等,对开发人员的要求也更高。而自己开发通讯驱动程序,有一定的难度,且增加开发周期、成本。⑧利用组态王提供的与单片机的通用通讯协议,该方法

第九讲 组态王与数据库连接

第九讲组态王与数据库连接 在本课程您将: ↓了解组态王SQL访问管理器 ↓了解如何与外部数据库进行连接 ↓了解如何向数据库中写入数据 ↓了解如何查询数据库中的数据 第一节SQL访问管理器 概述 组态王SQL访问功能实现组态王和其他外部数据库(通过ODBC访问接口)之间的数据传输。它包括组态王的SQL访问管理器和相关的SQL函数。 SQL访问管理器用来建立数据库字段和组态王变量之间的联系,包括“表格模板”和“记录体”两部分。通过表格模板在数据库表中建立相应的表格;通过记录体建立数据库字段和组态王之间的联系。同时允许组态王通过记录体直接操作数据库中的数据。 创建数据源及数据库 首先建一个数据库,这里我们选用Access数据库(路径:d:\peixun,数据库名为:mydb.accdb)。 然后,用Windows控制面板——管理工具——数据源(ODBC)新建一个Microsoft Access Driver(*.mdb, *.accdb)驱动的数据源,名为:mine,然后配置该数据源,指向刚才建立的Access数据库(即mydb.accdb),如图9-1所示:

图9-1 ODBC数据源的建立 创建表格模板 1、在工程浏览器窗口左侧“工程目录显示区”中选择“SQL访问管理器”中的“表格模板”选项,在右侧“目录内容显示区”中双击“新建”图标弹出创建表格模板对话框,在对话框中建立三个字段,如图9-2所示: 图9-2 创建表格模板对话框 2、单击“确认”按钮完成表格模板的创建。 建立表格模板的目的是定义数据库格式,在后面用到SQLCreatTable()函数时以此格式在Access数据库中自动建立表格。

相关文档
相关文档 最新文档