使用场景:主线上有一台WinCC上位机,各单元有触摸屏,其中WinCC中存储用于自动化产线生产相关的配方数据,在自动生产模式时,将配方数据下发给各单元,在单元脱机模式时,单元内部触摸屏可选择要生产的产品类型(或手动输入),之后点击“获取设定配方值”按钮来请求位于WinCC中的配方数据。从而保证所有配方数据一个数据源,并保证单元在脱机模式下可根据需求选择不同的配方数据。
参考资料:
WINCC读写SQL数据库的例子
创建变量用于存储各单元脱机模式的配方值,数据类型与之前一致
创建变量用于存储各单元脱机模式的配方值,数据类型与之前一致。
创建一个按钮,当按钮状态变为1时,进行数据库配方数据读取。
创建全局脚本VBS
双击打开“VBS-Editor”
在“动作”一栏创建1个动作,名称如下
Option Explicit Function action Dim sSql Dim sCom Dim oRs Dim conn Dim oCom Dim Con Dim data00,data01,data02,data03,data04,data05,data06,data07,data08,data09 Dim data10,data11,data12,data13,data14,data15,data16,data17,data18,data19 Dim dataselect '下面的dataselect变量为在HMI所输入的型号查询变量,结合下面的SELECT语法,将输入与表中编号比较,等于则取出该行值。 dataselect=HMIRuntime.Tags ("Unit1_ReqType").Read '连接数据库 Con="Provider=SQLOLEDB.1; Integrated Security =SSPI;Persist Security Info=False; Initial Catalog=CC_Test1_19_05_28_09_45_33R;Data Source=.\WINCC" Set conn=CreateObject("ADODB.Connection") conn.ConnectionString= Con conn.CursorLocation=3 conn.Open 'Msgbox "。。。。。" '读取数据库 '下面语句为查询数据库SELECT语句 sSql="SELECT * FROM UA#Scan WHERE Type = '"&dataselect&"';" '标准的数据库操作属性和方法 Set oRs=CreateObject("ADODB.Recordset") Set oCom=CreateObject("ADODB.Command") Set oCom.ActiveConnection=conn oCom.CommandType=1 oCom.CommandText=sSql Set oRs=oCom.Execute '此处为赋表中的列0-9值到变量data10-19 data10=oRs.Fields(0).Value data11=oRs.Fields(1).Value data12=oRs.Fields(2).Value data13=oRs.Fields(3).Value data14=oRs.Fields(4).Value data15=oRs.Fields(5).Value data16=oRs.Fields(6).Value data17=oRs.Fields(7).Value data18=oRs.Fields(8).Value data19=oRs.Fields(9).Value Set data00=HMIRuntime.Tags ("Unit1_ID") Set data01=HMIRuntime.Tags ("Unit1_Type") Set data02=HMIRuntime.Tags ("Unit1_Active") Set data03=HMIRuntime.Tags ("Unit1_Draw") Set data04=HMIRuntime.Tags ("Unit1_Weight") Set data05=HMIRuntime.Tags ("Unit1_OP10Num") Set data06=HMIRuntime.Tags ("Unit1_OP20Num") Set data07=HMIRuntime.Tags ("Unit1_OP30Num") Set data08=HMIRuntime.Tags ("Unit1_OP40Num") Set data09=HMIRuntime.Tags ("Unit1_OP50Num") '下面为将data10-19值写入data00-09中。 data00.read data00.write data10 data01.read data01.write data11 data02.read data02.write data12 data03.read data03.write data13 data04.read data04.write data14 data05.read data05.write data15 data06.read data06.write data16 data07.read data07.write data17 data08.read data08.write data18 data09.read data09.write data19 'ScreenItems("静态文本4").text = data1.read '读取数据在静态文本中输出 'ScreenItems("静态文本5").text = data2.read 'ScreenItems("静态文本6").text = data3.read '数据库操作完的结束语句,为标准格式语句。 Set oRs=Nothing conn.Close Set conn=Nothing End Function
之后给动作添加触发器
测试效果
当点击获取设定配方值时,其结果显示与配方表一致。
到此这篇wincc读写oracle数据库方法_wincc软件的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/sjkxydsj/1475.html