组态王连接Accesss数据库与历史曲线显示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
我是依据组态王帮助文件里面的案例,不过我写的会更详细!
以某工业现场应用为例,需要对原料进行称量,并记录原料的生产厂家、原料编号、称量日期、称量时间,值班人员、原料重量。针对这种关系数据,使用组态王的历史库是无法记录的,因此我们使用关系数据库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 定义请参考相关文档。
3.组态王中定义变量:
3.1) 定义变量:
在组态王中定义四个变量:原料厂家(内存字符串)、原料编号(内存字符串)、原料重量(内存实数)、DeviceID(内存整数),其中原料重量是从称重仪表设备中采集的。DeviceID变量是使用组态王SQL 函数时需要用到的变量。其他需要记录的称量日期、称量时间为系统的日期、时间,值班人员为组态王登录的用户。称重仪表的判稳可以通过仪表上传稳定信号也可以通过操作人员来判断,因为此例程中需要输入原料厂家以及编号,因此有操作人员进行重量稳定的判断,并有操作人员确定后记入数据库。
4.组态王中定义记录体:
记录体是用来连接数据库的表格的字段和组态王数据词典中的变量。
创建记录体:如图七所示:记录体名:Bind,字段名称为数据库中表的字段名称,变量名称为组态王数据词典中的变量。字段类型与变量类型需要一致。字段名称要与数据库中表的字段名称一致。变量名称与字段名称可以不同。
图七定义记录体
5.建立组态王与数据库的关联:
组态王与数据库建立与断开关联主要是通过SQL 函数来实现。
通过SQLConnect()函数建立组态王与数据库的连接。
通过SQLDisconnect()函数断开组态王与数据库的连接。
对于本例程用到的函数的详细说明请参考函数手册或者帮助文档。
本例程中数据库无用户名和密码,具体用法如下:
SQLConnect( DeviceID, "dsn=数据;uid=;pwd=");
其中DeviceID 是用户在数据词典中创建的内存整型变量,用来保存SQLConnect()为每个数据库连接分配的一个数值。
建议将建立数据库连接的命令函数放在组态王的应用程序命令语言的启动时执行,这样当组态王进入运行系统后自动连接数据库。如下图八所示:
图八
建议将断开数据库连接的命令函数放在组态王的应用程序命令语言的停止时执行,这样当组态王退出运行系统时自动断开数据库的连接。如下图图九所示:
图九
注意:此函数在组态王运行中只须进行一次连接,不要把此语句写入“运行时”,多次执行此命令而造成错误。
6.记录数据到数据库:
数据库连接成功后,我们就可以通过执行SQLinsert()函数插入数据到创建好的Access数据库的表格中。
首先利用组态王提供的画图工具新建一个组态王画面,如下图所示:
日期、时间、值班人员动画连接为字符串输出,连接的变量为\\本站点\$日期、\\本站点\$时间、\\本站点\$用户名。原料厂家、原料编号动画连接为字符串输入、字符串输出,连接的变量为\\本站点\原料厂家、\\本站点\原料编号。原料重量动画连接为模拟值输出,连接的变量为\\本站点\原料重量。
“用户登录”按钮的弹起时命令语言为登录函数:LogOn();
“用户注销”按钮的弹起时命令语言为注销函数:LogOff();
“称量确认”按钮的弹起时命令语言为SQL 插入函数:SQLInsert( DeviceID, "原料数据",
"Bind" ); 其中“原料数据”为数据库的表的名称,“Bind”为记录体的名称。
“称量确认”的优先级设置为300,这样就要求值班人员必须登录并且权限大于300 才可以进行称量确认。
“系统退出”按钮的弹起时命令语言为系统退出函数:Exit( 0 );
关于使用到的函数的详细使用方法请参考函数使用手册或者帮助文档。
7.进入运行系统:
画面开发完成后保存画面,在工程浏览器的“系统设置”-“设置运行系统”-“主画面配置”中,将新建的画面设置为主画面。确认后点击工程浏览器的“View”按钮切换到运行系统。
系统运行后会将主画面打开,如下图所示:
如果操作人员不进行登录则“称量确认”按钮为灰色,不允许进行“称量确认”操作。
只有值班人员以自己的用户名、密码登录后此按钮才处于激活状态,操作人员才可以操作。其中“原料厂家”、“原料编号”可以有操作人员手动输入,原料重量来自于称量仪表采集的数据。
当值班人员确认本次称量有效时可以执行“称量确认”,点击“称量确认”后会将数据存入Access数据库“数据.mdb”的数据表“原料数据”中。我们可以打开数据库看数据是否写入数据表中。
历史曲线显示
正常的添加控件,时间选择datetime,毫秒选择ID即可。