1、 图4 新建采集器工业库对话框配置 对话框配置OPC Server图5 新建采集器配置 点击“确定”,提示创建成功,完成OPC采集器配置 选中opc采集器,点击右边菜单栏“启动” 图6 启动OPC采集器 从采集器检索导出变量2.选择“开始程序KingHistorian3.0客户端管理工具”,进入到系统管理平台 图7 系统管理平台 点击左边“系统管理变量管理器”,在变量管理器中通过采集器检索 变量scada变量管理器中检索8 图图9 变量管理器中检索OPC采集器KS变量 备注:SCADA需要运行,SCADA变量基本属性中 “允许其他应用访问”前需要打钩。选中要导出的变量,保存 1 文件excel
2、检索到的变量导出到10 图图10 检索到的变量导出到excel文件2 导出表格如下 图11 工业库变量导出表 表中可以看出,数据源地址的格式为Local.变量名 3.把变量导入到工业库中 在“变量管理器变量组根组”下,右键,导入变量从文件,将刚才导出的变量导入到变量根组下面 图12 从文件导入变量 点击“确定”,添加变量成功。 图13 添加变量 打开实时查看器,将自动刷新频率改为1s 实时查看器14 图图15 实时查看器2 这样工业库就可以通过opc读取KingSCADA数据。SCADA展示工业库数据 Report1, 打开scada开发界面,建立一个画面,在画面上建立一个报表,报表命名默认为
3、 图16 scada画面报表显示 另外在画面上建立一个按钮,上面文本改为“查询”如图 建立查询按钮17 图双击按钮,如图 命令语言写在鼠标左键按下时18 图在按钮左键按下时写,如图 KDBDisConnect(?湡汤?);KDBGetConnectID(?,DSN=wang;ServerAddress=127.0.0.1;ServerPort=5678;UID=慳瀻摷猽?敎睴牯呫浩潥瑵?KDBGetDataset1(?瑡獡瑥, ?, select TagName, DataTime,DataValue from 敲污楴敭); Report1.SetDataset1(?瑡獡瑥); 图19 sca
4、da命令语言 bool KDBGetConnectID(string strConnectIDName, string ConnectStr) 功能:连接数据库,获得一个连接句柄,并保持与数据库的连接和打开状态。数据库作为服务器,提供数据服务时,需要和客户端建立服务连接,因为数据库一般都是要为多用户、多程序服务的,服务连接是一种关键的、有限的资源,如果不需要服务了,就要把服务连接给断掉,释放资源,如KDBGetDataset()函数,每执行1次,就创建1次连接,执行完SQL命令后,就关闭连接,下一次执行,再重新连接。 但是,如果客户端对数据库的访问是连续而密集的,那么频繁的建立、关闭连接,会极
5、大地降低数据库性能,甚至造成数据库服务器堵塞,为了避免频繁建立、关闭数据库连接带来的的开销,我们提供获取句柄方式,实现对数据库的连接复用。 用户可通过KDBGetConnectID()方法建立一个数据库连接,利用这个连接,用KDBGetDataset1方法向数据库发送SQL命令,数据库执行完SQL命令,返回操作结果,并不关闭连接,该连接句柄可以一直使用,直到调用KDBDisConnect()函数将其断开。通过获取句柄方法,使得一个数据库连接方法可以得到高效、安全的复用。长期占用数据库连接而不释放,可能会影响到数据库对其它用户的服务,建议只在需要这种方式的情况下使用,不要滥用。 因为网络、数据库
6、本身的稳定性原因,即使没有执行释放连接句柄的脚本,时间长了,连接句柄也可能会自动失效,在网络好、数据库访问量不太大的情况下,1个连接句柄大概能坚持几天的时间,建议在执行SQL命令的脚本里,增加获取返回值的语句,来判断是否需要重新获取连接句柄。例句: bool tmpbool;tmpbool=KDBGetDataset1(MyDataset, Handle1, select * from Table_LotCols);if (tmpbool=0) KDBDisConnect(Handle1); KDBGetConnectID(Handle1,DSN=wang;DATABASE=pubs;UID=
7、sa; PWD=); KDBGetDataset1(MyDataset, Handle1, select * from Table_LotCols); 参数:strConnectIDName:与数据库连接的句柄名称,字符串类型 ConnectStr:数据库连接字符串,字符串类型 返回值:true:连接成功 false:通讯失败 例如:KingSCADA以sa身份登录(无密码)和名为wang的SQL Server中的pubs数据库连接,并获得名为Handle1的句柄。KDBGetConnectID (Handle1, DSN=wang; DATABASE=pubs; UID=sa;bool KD
8、BGetDataset1(string DatasetName, string strConnectIDName, string SqlStr) 功能:通过连接句柄,从数据库中获取数据集,获取完毕后不断开和数据库的连接。DatasetName:数据集名称,字符串类型 与数据连接的句柄名称,字符串类型 SqlStr:SQL查询语句,字符串类型 获得数据集成功 获得数据集失败 KDBGetDataset1(MyDataset, Handle1, select * from Table_LotCols); 的数据集,该数据集中的记录符合查询条件?瑡獡瑥执行此函数得到一个名为在使用此函数之前需使用KD
9、BGetConnectID函数得到名为Hand1的句柄. int SetDataset1(string strDatasetName) strDatasetName:数据集名称。返回值说明:0 - 成功;1 - 执行错误;2 - 忙(上次命令执行中);6 - 输入参数格式错误;7 - 未找到该数据集。举例:KDBGetDataset(“MyDataset”, “DSN=KingSCADADB”, “select * from Table_LotCols”); /执行函数得到一个名为“MyDataset”的数据集。Report1.SetDataset1(“MyDataset”) /清除报表中原有
10、的数据,将符合条件的数据集显示在Report1报表中,默认显示的起始单元格是报表中第一行第一列对应的单元格。画面保存之后,点击运行图标,运行之后点击查询按钮,如图所示 查询结果图19 工业库中变量在KingGraphic引用 不能包含空格字符和如下28个无效字符:,:;+-*/%&!|=(). ”?变量名因KingGraphic那么在工业库中可以引用的变量OPC_Local.liquid_level,在KingGraphic引用就会有问题,需要把变量中间的“.”去掉。具体操作步骤如下 1.打开工业库导出的变量,我们需要添加的就只有三项,变量名、变量描述、数据源地址,其他的变量域都相同,因此,要
11、添加几个float类型的变量,就复制出几个,然后替换变量 。17名、变量描述、数据源地址这三项就可以了,如图 1工业库导出变量图20 2工业库导出变量图21 工程变量导出,如图KingSCADA服务器的opc将作为2.图22 SCADA变量导出 打开KS变量表,在上面的工业库变量表中我们知道数据源地址的格式为Local.变量名,那么在KS的变量表中,变量名我们知道,只要把变量名前面增加“Local.”就变成工业库中变量的数据源地址了,因此我们可以按照下面的方式实现。找到没有数据的一列,写上“Local.”,再找一列空的,写公式合并两个单元格内容,例如:“=BM2&C2”,即把“Local.”与
12、变量名合成一个字符串,变成工业库的变量的数据源地址。 图23 合成数据源地址1 中的数据源地址那tags1.xls拷贝合并后的内容,将这列内容覆盖到工业库的变量表中列中,如图21 图24合成数据源地址2 图25 数据源地址复制到工业库 拷贝KS变量表中的变量名、变量描述的内容,分别将内容覆盖到工业库的变量表中tags1.xls 中的变量名、变量描述那列中。 图26 编辑好的新的工业库变量表 在工业库中导入修改后的tags1.xls文件,就可以把KS的变量加载到工业库中,采集和存储。 导入变量表27 图 1导入变量步骤图28 1 导入变量步骤29 图导入变量时为变量添加前缀“KH_” 230 导入变量步骤图点击确定按钮,完成变量导入,如图 图31 变量管理器变量浏览 采集器,实时查看器查看数据OPC重启 变量管理器变量实时查看32 图
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2