2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > WinCC读取SQL数据库案例

WinCC读取SQL数据库案例

时间:2021-07-01 17:23:08

相关推荐

WinCC读取SQL数据库案例

使用场景:主线上有一台WinCC上位机,各单元有触摸屏,其中WinCC中存储用于自动化产线生产相关的配方数据,在自动生产模式时,将配方数据下发给各单元,在单元脱机模式时,单元内部触摸屏可选择要生产的产品类型(或手动输入),之后点击“获取设定配方值”按钮来请求位于WinCC中的配方数据。从而保证所有配方数据一个数据源,并保证单元在脱机模式下可根据需求选择不同的配方数据。

参考资料:

WINCC读写SQL数据库的例子

创建变量用于存储各单元脱机模式的配方值,数据类型与之前一致

创建变量用于存储各单元脱机模式的配方值,数据类型与之前一致。

创建一个按钮,当按钮状态变为1时,进行数据库配方数据读取。

创建全局脚本VBS

双击打开“VBS-Editor”

在“动作”一栏创建1个动作,名称如下

Option ExplicitFunction actionDim sSqlDim sComDim oRsDim connDim oComDim ConDim data00,data01,data02,data03,data04,data05,data06,data07,data08,data09Dim data10,data11,data12,data13,data14,data15,data16,data17,data18,data19Dim 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= Conconn.CursorLocation=3conn.Open'Msgbox "。。。。。"'读取数据库'下面语句为查询数据库SELECT语句sSql="SELECT * FROM UA#Scan WHERE Type = '"&dataselect&"';"'标准的数据库操作属性和方法Set oRs=CreateObject("ADODB.Recordset")Set oCom=CreateObject("mand")Set oCom.ActiveConnection=mandType=mandText=sSqlSet oRs=oCom.Execute'此处为赋表中的列0-9值到变量data10-19data10=oRs.Fields(0).Valuedata11=oRs.Fields(1).Valuedata12=oRs.Fields(2).Valuedata13=oRs.Fields(3).Valuedata14=oRs.Fields(4).Valuedata15=oRs.Fields(5).Valuedata16=oRs.Fields(6).Valuedata17=oRs.Fields(7).Valuedata18=oRs.Fields(8).Valuedata19=oRs.Fields(9).ValueSet 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.readdata00.write data10data01.readdata01.write data11data02.readdata02.write data12data03.readdata03.write data13data04.readdata04.write data14data05.readdata05.write data15data06.readdata06.write data16data07.readdata07.write data17data08.readdata08.write data18data09.readdata09.write data19'ScreenItems("静态文本4").text = data1.read '读取数据在静态文本中输出'ScreenItems("静态文本5").text = data2.read'ScreenItems("静态文本6").text = data3.read'数据库操作完的结束语句,为标准格式语句。Set oRs=Nothingconn.CloseSet conn=NothingEnd Function

之后给动作添加触发器

测试效果

当点击获取设定配方值时,其结果显示与配方表一致。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。