[SERVER]
Server= OPCServer.WinCC //OPCServer名称
[GROUP] //定义组别
TEMP
PRESS
FLOW
[TEMP]//组别:TEMP中的变量定义UpdateRate=100
//更新速率(毫秒)
IsSubscribed=1 //标记,总是=1
JUNRE_Q_T1
JUNRE_Q_T2
JUNRE_H_T1
JUNRE_H_T2
JIA2_Q_T
JIA2_H_T
JIA1_Q_T
JIA1_H_T
YURE_T
HUANRE_YAN_Q_T
HUANRE_YAN_H_T
REFENG_T
[PRESS]
UpdateRate=100
IsSubscribed=1
LU_P.Value
MEIQI_P
KONGQI_P
YS_KONGQI_P
[FLOW]
UpdateRate=100
IsSubscribed=1
JUNRE_CO_F1
JUNRE_CO_F2
JIA2_CO_F1
JIA2_CO_F2
JIA1_CO_F1
JIA1_CO_F2
JUNRE_AIR_F1
JUNRE_AIR_F2
JIA2_AIR_F1
JIA2_AIR_F2
JIA1_AIR_F1
JIA1_AIR_F2
CO_F_ACC
2、在VB工程中引用OPC_DLL:
3、创建BCA_OPC全局对象:
Public MyOPC As New BCA_OPC
4、创建5秒定时器,事件如下:
Private Sub Timer1_Timer()
If MyOPC.Server_Connected = False Then
MyOPC.Dll_Initial(wincc.ini)
MyOPC.ConnectServer
MyOPC.SetConfiguration
StatusBar1.Panels(7).Text = "通讯: 断开 "
Else
StatusBar1.Panels(7).Text = "通讯: 连接 "
End If
End Sub
5、当连接上后读取数据:
Dim real_Junre_q_t1 as double
If MyOPC.Server_Connected = True Then
real_Junre_q_t1=GetData(“JUNRE_Q_T1”)
end if
6、写数据:
Private Sub Command_write_Click()
WriteData(“JUNRE_Q_T1”,1234.0)
End Sub
五、总结
本动态连接库已在山东九福饲料有限公司的饲料生产线工程上获得很好的应用。系统采用SIEMENS S7400,外挂多个ET200M站,CPU414-2DP通过CP443-1连接两台IPC作为操作员站,采用WINCC作为上位机,分别对系统进行监视和控制;另外配置一台服务器,通过交换机与前两台IPC相连,执行饲料生产管理,管理软件采用VB开发,执行饲料管理、原料管理、配方管理、生产任务管理等功能,本软件通过OPC_DLL动态连接库同时登陆两台操作员站的WINCC OPC服务器,读取现场数据进行数据归档和报表处理;同时将用户配置的生产任务通过WINCC OPC通道写入PLC执行。
当然如果不采用此模式,直接通过WINCC数据库功能实现也是可以的,但要实现本系统复杂的数据管理还是比较困难,另外如果服务器也直接连接到CP443-1,一方面可能带来数据采集的一致性问题,另一方面也增加了CP443-1的通讯负载。因此相比本模式还是较优化的。当然WINCC出现问题或操作员站故障,VB通过OPC采集就会中断,如果在软件中监测OPC连接,一旦WINCC OPC通道中断,则切换采用SIMATIC NET的IE OPCServer直接连接CP443-1采集数据,这样就更加完善了。
上一篇:智能化小区与信息化小区