组态王与ACCESS数据库的数据交换的例子
- 格式:doc
- 大小:3.02 MB
- 文档页数:6
组态王与Access数据库通讯1定义ODBC数据源组态王与Access数据库通讯--①定义ODBC数据源定义ODBC数据源组态王SQL访问功能能够和其他外部数据库(支持ODBC访问接口)之间的数据传输。
实现数据传输必须在系统ODBC数据源中定义相应数据库。
1.0 进入“控制面板”中的“管理工具”,用鼠标双击“数据源(ODBC)”选项,弹出“ODBC数据源管理器”对话框,如图19.6所示。
有些计算机的ODBC数据源是中文的(如上图所示),有些的是英文的,视机器而定,但是两种的使用方法相同。
ODBC数据源管理器”对话框中前两个属性页分别是“用户DSN”和“系统DSN”,二者共同点是:在它们中定义的数据源都存储了如何与指定数据提供者在连接的信息,但二者又有所区别。
在“用户DSN”中定义的数据源只对当前用户可见,而且只能用于当前机器上;在“系统DSN”中定义的数据源对当前机器上所有用户可见,包括NT服务。
因此用户根据数据库使用的范围进行ODBC数据源的建立。
2.0 选择系统DSN,然后点击添加,就会跳出如下界面,选择Microsoft Access Driver,点击完成3.0 如下图,跟这个数据源取个别名,这里就叫mysql,然后要选择数据库,如果没有建的话,点击创建(如果你在外面直接右键新建的话可能格式不一样,我新建的是.accdb格式的,直接不支持,所以如果遇到我这种情况,可以直接创建)3.1 新建数据库,会出现以下画面,这里要填几个参数,数据库名,驱动器(放置位置)其他一般默认就可以了,点击确定就完成了一个ACCESS数据库的创建创建格式的数据库,点击确定成了设置5.0 你在刚刚创建数据库的路径,也能看到实际的数据库文件了组态王与Access数据库通讯--②组态王设置组态王定义设置1.0 立项,这里叫TEST项目2.0 选择数据库--数据词典,新建3个变量,DeviceID(内存整数),level1,level2(内存整数),DeviceID是用来存储SQLConnect分配给每个数据库连接的数值3.0 找到左边栏的SQL访问管理器--表格模板,新建一个叫table的模板3.1 如下图,增加4个字段,这个新增的字段就是表格的横向类别,从上到下对应表格的从左到右,字段的顺序会影响表格表头的左右顺序,如果已经创建表格了,再更改这个字段顺序,那边表格的顺序也不会变了,只有删除数据库文件,才会重置表格,关闭数据库不会删除数据库数据4个字段,日期--定长字符串型--32,时间--定长字符串型--32,level1--整型--1,level2--整型--1如下图4.0 如下图选择记录本,新建bind14.1 在记录本上新建4个字段和变量的衔接,比如字段:日期跟变量\\local\$Date,意思就是\\local\$Date变量代表日期,每次插入记录就会记录一次这个变量的值,如下图做四个变量,时间=\\local\$Time,level1=\\local\level1,level2=\\local\level23.组态王画面设置组态王与Access数据库通讯--③组态王画面设置组态王画面设置1.0 首先要做个组态王的按钮画面,新建画面,命名数据库画面,其他先默认好了2.0 如下图,先建立4个按钮,分别为数据库连接,数据库断开连接,创建数据表格,插入记录3.0 另外要给按钮写入命令语言,双击数据库连接按钮,点击按下时,SQLConnect( \\local\DeviceID, "dsn=mysql;uid=;pwd="); ,\\local\DeviceID 为上一期新建的内存整数变量,用来存储SQLConnect 分配给每个数据库的值,(这里注意,SQL 在断开连接之前,重复执行SQLConnect 会增加DeviceID 的值,最大值为255);而dsn 为需要连接的数据库,这里就写上我们在ODBC 数据源配置的数据库,uid 和pwd 账号密码有就设没有就不写;小知识点:在命令语言界面下方,有归总的函数集,SQL里面有很多,双击SQL连接函数,出来是SQLConnect( DeviceID, "dsn=;uid=;pwd=");整体的格式就出来了还是挺方便,双击DeviceID,然后在左下角点击变量,就会跳转到数据词典中的变量,选择你需要的变量就可以直接替代3.1 如上所述,其他几句命令语言分别是断开连接SQLDisconnect( \\local\DeviceID);,创建数据库表格SQLCreateTable(\\local\DeviceID, "表格", "table" );,插入记录SQLInsert( \\local\DeviceID, "表格", "bind1" );都是设置在按下时激活4.数据库测试组态王与Access数据库通讯--④数据库测试数据库测试1.0 打开组态王,点击运行2.0 界面如下,点击数据库连接,创建数据库表格,如果不创建表格,打开数据库文件的话,是空的3.0 找到刚才我们放置的数据库文件,双击打开,就会看到下面的表格,可以看到表格的表头分别是我们在组态王中设置的字段,从左到右分别是日期,时间,level1,level2,这里就说明我们的建表已经完成4.0 再回到组态王界面,点击插入记录三下,你会发现表格中还是空的,怎么样才能看到最新的呢,重新打开表格就可以了4.1 如下图,重新打开后的数据库表格,可以看到我们插入的三次记录,可以看到日期,时间你可以看到秒数的变化,level1和level2的值都是50,60,就是我们设置的初始值,他没有发生变化。
CP243-1的连接资源为8个S7连接+ 1个PG连接,PG连接即为S7200编程软件1、配置CP243-1模块连接数目即为S7连接的个数(如果没有上位机,仅是PLC 编程软件上下载程序、监控,此处可以填0)CP243-1与组态王或是力控连接的时候,CP24-1是作为服务器的,第一个连接,本地TSAP 默认是10.00且不能修改,远程TSAP可以修改,使用默认即可,此时本地TSAP与远程TSAP相同,都为10.00勾选接受所有请求连接请求,点击下一个连接,配置与此类似。
(如下图所示)注意:2个连接的远程TSAP尽量不要相同,否则当连接数目多的情况下,某些连接通讯会失败。
TSAP地址包含两部分,第一部分:通信连接号,建议(10-99)10以下不行;第二部分:CP243-1模块安装在S7-200的机架/槽号,如“00” 代表CP243-1安装在0号机架0号槽(即CPU之后的第一个模块)本例远程TSAP分别为10.00和11.00。
切记:配置完成后CP243-1模块重新上电,使配置生效!2、配置力控IO设备组态设备IP地址即为CP243-1的IP地址,下图是配置CP243-1时的IP地址,两者应对应。
端口号:102,切勿修改,否则无法通信TSAP(PLC)与配置CP243-1时的本地TSAP 对应,TSAP(PC)与配置CP243-1时的远程TSAP 对应。
3、配置组态王IO设备组态格式为CP243-1的IP地址:0,如上图:192.168.1.110:0 CP243-1与组态王通信默认占用的是PG资源,如果还需要PLC编程软件监控程序,则需要修改组态王DRIVER文件夹下KVS7200的配置文件,如下图所示第一行[CP243-1的IP地址:0];第二行LocalTSAP的值与配置CP243-1远程TSAP对应;第三行RemoteTSAP的值与配置CP243-1本地TSAP对应;如果LocalTSAP=4D57 RemoteTSAP=4D57则此时通信占用了CP243-1的PG资源。
组态王和Access数据库交互新建一个access数据库文件,mdb格式或者accdb都可以然后在里面建立一个表,命名为table1,插入几个字段如下图。
姓名格式为文本,年龄格式是长整型,成绩为单精度型也就是小数,点击保存2.建立odbc数据源依次点击计算机->控制面板->管理工具->数据源(odbc)第一步:第二步:然后点击系统DNS点击添加找到驱动点击完成。
输入数据源名称点击选择找到你建立的数据库然后点击确定打开组态王新建三个变量姓名:内存字符串年龄内存实数(也可以为整数)成绩内存实数点击记录体插入三个字段字段名称必须和数据库名称一样,但是数量不必相同,你可以只建姓名跟年龄字段,成绩不建也能插入数据库然后建立一个内存整形变量DeviceID在画面建立三个输入框当按下时插入记录按钮代码如下dsn=所建立的dsn名称table1是数据库表名T1是记录体名称点击插入记录试一下输入小数的年龄可以看到年龄四舍五入了2,查询数据库插入控件并且改一下名字然后右键选择控件属性点击浏览点击连接找到你的数据源点击确定。
新建一个查询按钮插入一下命令SQLConnect( DeviceID, "dsn=linjjl;uid=;pwd=");查询表.Where="姓名='linjjl'";查询表.FetchData();查询表.FetchEnd();SQLDisconnect( DeviceID);注意查询表.Where 双引号里面的内容姓名=’linjjl’注意单引号在画面上新建一个字符串输出变量把查询表.Where 显示一下方便调试点击查询查询上面是查询表.Where 字符串的内容我们可以根据输入内控查询先在数据库增加几条内容在组态王新建一个字符串变量查询的姓名然后在画面上做一个字符串输入查询按钮的代码改一下注意姓名后面有个单引号最后双引号里面有个单引号组态王中字符串拼接用+ 号运行一下多加一个查询条件年龄=5时排序按成绩排序为了试验先把数据库里的成绩改一下然后改一下组态王代码运行情况如下看看Id号反过来了判断单元格是不是空行如图建立几个单元格为空的行改一下查询语句注意空检测的语句IsNull()区分大小写就这么写小写是错的查询结果更新数据库把上次我们查到的成绩为空的改成100 新建一个变量初始值改成100然后再见一个记录体再画面新建一个按钮更新成绩运行一下完。
组态王通过数据库access实现数据的采集与输出前提:➢数据库用Microsoft Office Access 2003,数据库路径为D:\历史记录.mdb➢组态王版本为6.53➢PC机系统为XP一、创建数据库表1. 新建名为“历史记录”的数据库,新建完成后,打开数据库2. 创建表,点击使用设计器创建表,进入设计视图对话框,输入字段名日期时间、毫秒、污泥浓度、溶氧仪、进水COD、电磁流量计、超声波流量计、二在线COD,其中字段名日期时间的数据类型为日期/时间、毫秒的数据类型为数字长整型、其他字段名数据类型为数字单精度型。
3. 保存名为:10分钟记录二、创建ODBC打开控制面板→管理工具→数据源(ODBC),弹出“ODBC数据管理器”,在用户DSN标签下,点击添加弹出“创建数据库源”选择此项创建数据库源完成后弹出输入数据源名称选择之前创建的数据库确定完成。
三、组态王内部设置1. 新建变量在数据词典中创建本地变量,,变量名称分别为日期时间、DeviceID、nReturnValue。
2. 打开到组态王工程浏览器,新建记录体创建名为“历史记录”的记录体3. 创建事件命令语言点击创建,弹出事件命令语言对话框事件描述为:(((\\本站点\$分)%10==0)&&((\\本站点\$秒-1)%60==0))==1 4. 创建应用程序命令语言输入记录体名称字段名称要与数据库中的名称相一致添加数据词典中已存在的变量显示已增加的字段10分钟记录一次每10分钟操作一次该命令5. 使用趋势来读取数据库数据新建趋势画面,趋势控件为历史趋势控件,选中控件并鼠标右击选择“控件属性”,进入“设置数据库曲线”对话框在“运行”时标签栏下输入刷新时间输入该命令行点击此按钮,添加数据库中的变量添加好的数据附录:若要做报表通过读取数据库的数据,则使用通用控件中的KVADODBrid Class 。
并制作查询按钮,脚本如下:\\本站点\nReturnValue=Ctrl.QueryDialog(); if (\\本站点\nReturnValue==1) { Ctrl.FetchData();}选择表名称选择数据库中的“日期时间” 选择数据库中的“毫秒”选择数据库中的要显示的趋势数据选择线颜色输入最大值、最小值。
组态王与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”表格模板在组态王中已编辑。
连接架构说明:举例说明1、I/O数据采集(下属站点)负责数据采集处里,组态王与PLC通讯连接采集现场实时数据,传到下属站电脑上。
(长堤)2、数据访问(上位中心)通过网络(局域网)与下属站点的电脑网络共享通讯调取下属站点的单点变量数据,实时读取及控制。
(桩一接转站监控中心)具体操作过程:1、组建下属站点与上位中心局域网共享工作组,使下属站点与上位中心都在一个工作组中,能够互相查看调取对方共享的文件。
操作步骤1.在上位中心电脑上组建工作组,电脑桌面我的电脑右击属性—计算机名---键入计算机描述名-------点击更改-----键入计算机名-------键入工作组名----单机确定------重启计算机。
上位机工作编辑完成。
2.下属站点电脑步骤同上,工作名改为上位中心电脑编辑的工作名。
3.将两者需要共享的文件设为共享,双方电脑就可以互相查看共享的文件了。
2、下属站点安装组态王运行软件,编写好工程程序,将工程所属的直接文件夹设为共享,单机组态王网络配置-----点击网络参数----设为连网-----键入本机节点名(计算机名或IP地址)-----点击节点类型-------本机是登录服务器、本机是I/O服务器、进行数据类型备份,都打钩。
---点击确定退出。
3、上位中心安装组态王运行程序,新建空白工程程序,单机组态王网络配置----点击网络参数-----设为连网------键入本机节点名(计算机名或IP地址)-----点击节点类型------本机是登录服务器打钩-------点击确认退出对话框—点击组态王站点-------新建远程站点---------点击读取节点配置----从网上邻居,整个网络选择下属站点共享的工程程序文件-----点击确认----此时下属站点的工程参数将显示在新建远程站点中------点击组态王系统-----点击网络配置------点击节点类型----勾掉本机是登录服务器----在右选框中选择下属站点的名称-------本机是I/O服务器打钩---报警服务器、历史记录服务器都打勾-----点击客户配置-----客户打勾----I/O服务器打勾----点击确认退出对话框。
组态王与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”的数据库表格;
六:进入Microsoft Access中,打开D:\29所污水处理工程\20.MDB,就会看到自动生成的名字为“10”的数据库表格
七、创建KV ADODBGrid CLASS控件
1.在画面中插入控件:组态王画面菜单中编辑\插入通用控件,或在工具箱中单击“插入通用控件”按钮,在弹出的对话框中选择 KVDBGrid Class,单击确定。
2.按下鼠标左键,并拖动,在画面上绘制出表格区域。
3.双击控件。
弹出KVADODBGrid CLASS控件动画连接属性。
在控件名那栏填上“手动历史数据库”。
注意:控件名最好为汉字。
4.设置控件属性:选择控件右键菜单中“控件属性”。
弹出控件固有属性页,可分别设置如下属性:
(1)、数据源:
单击“浏览”按钮可选择已建的ODBC数据源“20”。
选择数据源后“表名称”组合框中就自动填充了可选的表名称,可弹出下拉列表选择要显示的数据所在的表名称“10”。
选择表名称后,“有效字段”中自动填充表中的所有字段“工号”“日期”
“时间”“酸”“碱”“混凝剂”“还原剂”“氯化钙”“PAM正”“PAM负”,
可通过“添加”、“删除”,“上移”,“下移”按钮来选择要显示的字段和
显示顺序。
单击显示的字段,可在右侧设置字段显示的标题、格式、对齐等属性。
(2)、表格属性:
可设置表格的一般属性。
说明:如固定行数大于1,则第一行显示选择字段的标题,其它固定行不
自动填充,要由使用者在设计状态编辑其显示内容。
(3)、颜色:
可设置表格颜色,背景颜色,文本颜色等信息。
(4)、字体:
可设置固定行字体,普通行字体,打印页眉,页脚,标题字体。
(5)、打印设置:
可设置打印标题,页眉,页脚及其位置。
页码格式和位置。
分页位置等。
5.KVADODBGrid CLASS控件方法。
(1)显示数据库表格查询数据
在“显示”按钮的动画连接向导的“弹起时”输入命令语言
手动历史数据库.FetchData();
手动历史数据库.FetchEnd();
(2)表格中字段“工号”“日期”“时间”“酸”“碱”“混凝剂”“还原剂”“氯化钙”“PAM正”“PAM负”的累加值。
在“累积”按钮的动画连接向导的“弹起时”输入命令语言LONG a;
a=3;
\\本站点\酸累积值=手动历史数据库.SumInField(a);
LONG b;
b=4;
\\本站点\碱累积值=手动历史数据库.SumInField(b);
LONG c;
c=5;
\\本站点\混凝剂累积值=手动历史数据库.SumInField(c);
LONG d;
d=6;
\\本站点\还原剂累积值=手动历史数据库.SumInField(d);
LONG e;
e=7;
\\本站点\CACL2累积值=手动历史数据库.SumInField(e);
LONG f;
f=8;
\\本站点\PAM正累积值=手动历史数据库.SumInField(f);
LONG g;
g=9;
\\本站点\PAM负累积值=手动历史数据库.SumInField(g); (3)查询表中数据。
在“查询”按钮的动画连接向导的“弹起时”输入命令语言手动历史数据库.QueryDialog();注:6.5版本无此命令. (4)刷新表中数据
在“刷新”按钮的动画连接向导的“弹起时”输入命令语言手动历史数据库.RefreshData();
(5)打印表格
在“刷新”按钮的动画连接向导的“弹起时”输入命令语言手动历史数据库.Print();。