WinCC脚本案例保留

更新时间:2023-09-21 03:12:01 阅读量: 自然科学 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

WinCC脚本案例保留 2010-09-16 16:44

最近做一个WinCC跟ERP通讯的一个小项目,将脚本语言保留下来,以备不时之需! 仅仅是保留,各位看官如发现不妥之处请加以指教.

1.通过扫描枪扫描到ID号传给PLC,WinCC读取到ID号从ERP数据库中查找相关数据,写回到PLC,并给PLC一个写完成确认信号.(数据库是SqlServer2000)

Dim DB240trigger,db241trigger

db240trigger=HMIRuntime.Tags(\db241trigger=HMIRuntime.Tags(\Dim ss,str

str=HMIRuntime.Tags(\ss=CStr(str)

If (db240trigger=1 And db241trigger=0 ) Then Dim sPro,sDsn,sSer,sCon,sSql

Dim oRsMaterial,conn,oCom,oItem,oRsSCHEMA Dim database,server,uid,pwd

sCon =\Set conn = CreateObject(\conn.ConnectionString = sCon conn.Open

Set oRsMaterial = CreateObject(\

sSql= \oRsMaterial.open ssql,conn,1,1 Dim m,n

m=oRsMaterial.recordcount

If m<>1 Then

MsgBox \这个ID号找不到唯一的一条参数信息,请手动输入信息!\Exit Function End If

Dim sCon2,sSql2

Dim oRsnftz,conn2

sCon2=\Set conn2 = CreateObject(\conn2.ConnectionString = sCon2 conn2.Open

Dim LAST

LAST=orsMaterial.fields(\LAST=LAST+1

Set oRsnftz = CreateObject(\

sSql2= \oRsnftz.open ssql2,conn2,1,1

Dim GJID,PIHAO,PANHAO,GANGZHONG,ZHIJING,ZHONGLIANG,P Dim PP

PP=oRsnftz.fields(\

If (Left(PP,1) = \HMIRuntime.Trace \

HMIRuntime.Tags(\Else

HMIRuntime.Trace \

HMIRuntime.Tags(\HMIRuntime.Tags(\HMIRuntime.Tags(\

MsgBox \该材料现在不在P处理模式,请核实,或者手动输入信息!\Exit Function End If

GJID=HMIRuntime.Tags(\PIHAO=orsMaterial.fields(\

PANHAO=orsMaterial.fields(\GANGZHONG=orsMaterial.fields(\ZHIJING=orsMaterial.fields(\

ZHONGLIANG=orsMaterial.fields(\

HMIRuntime.Tags(\

HMIRuntime.Tags(\HMIRuntime.Tags(\HMIRuntime.Tags(\HMIRuntime.Tags(\HMIRuntime.Tags(\HMIRuntime.Tags(\HMIRuntime.Tags(\oRsMaterial.Close

Set oRsMaterial = Nothing oRsnftz.Close

Set oRsnftz = Nothing conn.Close

Set conn = Nothing conn2.Close

Set conn2 = Nothing End If

2.开始上料程序

PLC接受到上料按钮的命令,将处理数据传给相应的DB数据块,并产生一条开始处理记录.插入到ERP的数据库中. Dim a,b,c,d,itrigger1,itrigger2

itrigger1=HMIRuntime.Tags(\itrigger2=HMIRuntime.Tags(\If (itrigger1=1 And itrigger2<>1 ) Then

a=HMIRuntime.Tags(\b=HMIRuntime.Tags(\c=HMIRuntime.Tags(\d=HMIRuntime.Tags(\HMIRuntime.Tags(\HMIRuntime.Tags(\HMIRuntime.Tags(\HMIRuntime.Tags(\HMIRuntime.Tags(\End If

/////插入记录的程序

Dim sPro,sDsn,sSer,sCon,sSql

Dim oRsMaterial,conn,conn2,oCom,oItem,oRsSCHEMA Dim database,server,uid,pwd Dim ss,str

str=HMIRuntime.Tags(\ss=CStr(str)

Dim lianjiezifuchuan,shujuku,shanchusql

lianjiezifuchuan =\Set shujuku = CreateObject(\shujuku.ConnectionString = lianjiezifuchuan shujuku.Open

shanchusql= \Dim mingling

Set mingling =CreateObject(\With mingling

.ActiveConnection=shujuku .ComMandText=shanchusql End With

mingling.Execute Set mingling=Nothing shujuku.Close

Set shujuku = Nothing

If (ss<> \

'sCon =\

sCon =\Set conn = CreateObject(\conn.ConnectionString = sCon conn.Open

Set oRsMaterial = CreateObject(\

sSql= \ oRsMaterial.open ssql,conn,1,1

Dim mm

mm= oRsMaterial.recordcount If mm<1 Then

MsgBox \条码\查询不到相关的数据,请检查\Exit Sub End If

If mm>1 Then

MsgBox \条码\查询到相关的数据不止一条,请检查\Exit Sub End If

Dim STRState

STRState=oRsMaterial.fields(\If STRState<>20 Then

MsgBox \条码\查询到的材料状态不是20,请检查!\Exit Sub End If

Dim intlastprocedure,intlastprocedure2,cailiaohao

intlastprocedure=orsMaterial.fields(\intlastprocedure2=intlastprocedure+1

cailiaohao=orsMaterial.fields(\ Set conn2 = CreateObject(\conn2.ConnectionString = sCon conn2.Open

sSql= \& CStr(cailiaohao) & \

Set oRsSCHEMA = CreateObject(\oRsSCHEMA.open ssql,conn2,1,1

Dim n

n=oRsSCHEMA.recordcount If n>1 Then

MsgBox \条码\查询到的调度信息不止一条,请检查\Exit Sub End If

If n<1 Then

MsgBox \条码\查询不到调度信息,请检查\Exit Sub End If

Dim gonghao,banzu,shike

gonghao=HMIRuntime.Tags(\banzu=HMIRuntime.Tags(\shike=HMIRuntime.Tags(\Dim s1,s2,s3,s4,s5,s6,s7

Dim A1,A2,A3,A4,A5,A6,A7,A8,A9,A10

Dim A11,A12,A13,A14,A15,A16,A17,A18,A19,A20 Dim A21,A22,A23,A24,A25,A26,A27,A28,A29,A30 Dim A31,A32,A33,A34,A35,A36,A37,A38,A39,A40

A1=orsMaterial.fields(\ ''引用自BRGS_GP_Material表

A2=orsMaterial.fields(\ ''从BRGS_GP_MATERIAL表中Plant_No中复制过来 A3=orsMaterial.fields(\ ''从BRGS_GP_MATERIAL表中Stuff_no中复制过来 A4=orsMaterial.fields(\从BRGS_GP_MATERIAL表中MaterialPre_No中复制过来

A28=orsMaterial.fields(\ ''从BRGS_GP_MATERIAL表中Bf_No中复制过来 A20=orsMaterial.fields(\ ''这个就是条码上的内容//////这个要确定

A5=orsMaterial.fields(\ ''钢种,从BRGS_GP_MATERIAL表中Snm中复制过来 A29=orsMaterial.fields(\ ''原料规格,从BRGS_GP_MATERIAL表中FirstSPC中复制过来 A30=orsMaterial.fields(\ ''开工时的标称规格,从BRGS_GP_MATERIAL表中CardSPC中复制过来

A31=orsMaterial.fields(\ ''完工时的标称规格,从BRGS_GP_MATERIAL表中CardSPC中复制过来

A32=orsMaterial.fields(\ ''开工时的实测规格,从BRGS_GP_MATERIAL表中RealSPC中复制过来

A33=orsMaterial.fields(\ ''完工时的实测规格,从BRGS_GP_MATERIAL表中RealSPC中复制过来

A7=orsMaterial.fields(\ ''制令单号,从BRGS_GP_MATERIAL表中Mo_No中复制过来 '''''''''''''''''''''''''''''''

'''''''from schema table''''''' '''''''''''''''''''''''''''''''

A8=oRsSCHEMA.fields(\ ''制程代码,从BRGS_GP_SCHEMA表中的SUnit读取 A9=oRsSCHEMA.fields(\ ''通知单号,从BRGS_GP_SCHEMA表中的TzNo读取 A10=oRsSCHEMA.fields(\ ''制程名称,从BRGS_GP_SCHEMA表中的ZcNo读取 A11=oRsSCHEMA.fields(\ ''制程说明,从BRGS_GP_SCHEMA表中的ZcRem读取 A21=oRsSCHEMA.fields(\ ''计划机台,从BRGS_GP_SCHEMA表中的SUnit读取

A37=oRsSCHEMA.fields(\ ''调度号,对应BRGS_GP_SCHEMA中的主键,表明本次操作,对应那一个调度

A12=\ ''工作的机组,对于自动酸洗线是401202J

A34=\ ''拉丝模具号,这里为空字符串

A35=\ ''酸洗的吊钩号,这里为空 A13=1 ''始终为1 A14=CStr(shike) ''开工时间 A15=CStr(gonghao) ''开工操作员工号

A16=\ ''完工时间

A17=\ ''完工操作员工号 A25=CStr(banzu) ''开工的班组

A27=\ ''完工的班组

A19=0 ''切头切尾量,不理会,设置为0

A22=1 ''质检标志,永远为1 A23=\ ''质检人员,永远为System A24=\ ''质检时间,与完工时间一致,暂时未空

A36=21 ''工序的类型,对于酸洗,永远是21

A38=0 ''在插入时设置为0,后面的操作不要更动这个字段

A40=\ ''在插入时设置为空串,后面的操作不要更动这个字段

A39=0 ''设置为0

A6=\ ''未作说明,设置为0 A18=0 ''ENDWEIGHT A26=0 ''BeginWeight

sSql= \& A6 & \CStr(A14)& \A21 & \\&\Dim objCommand

Set objCommand=CreateObject(\

With objCommand

.ActiveConnection=Conn .ComMandText=ssql End With

objCommand.Execute

Dim objCommand2

Set objCommand2=CreateObject(\

sSql= \MaterialState='22',Region='401202J',LastProcedure=\& intlastprocedure2 & \With objCommand2

.ActiveConnection=Conn .ComMandText=ssql End With

objCommand2.Execute

Dim objCommand3

本文来源:https://www.bwwdw.com/article/6j6h.html

Top