基于Python+.NET的OPC.分布式数据采集及Web发布应用研究
z。 n g h e Y a n j u:堡垒里
基于 P y t h o n+. NE T的 OP C分布式数据采集及 We b发布应用研究 .
荣
东
杨大村
(平顶山中选自控系统有限公司,河南平顶山 4 6 7 0 0 0 ) 摘要:主要介绍了使用 P y t h o n和 O p e n O P C进行分布式数据采集与 We b发布的设计与实现方法,并说 NT应用效果。
关键词: O P C数据采集; We b S e r v i c e . NE T; P y t h o n O p e n O P C
下一步是将采集到的数据传输到远程服务器。 1基于 P y t h o n+. N E T的 O P C分布式数据采集及 W e b 的数据值了,
发布应用概述 在工业生产中,实时生产数据监测对于生产控制、安全检测非常重要。为了实现对实时生产数据的有效监测,需要通过 对过程控制中的 O P C数据进行采集。数据采集的方式虽然多
2 . 2 . 2分布式数据传输
使用 We b S e r v i c e作为数据接收程序,服务程序使用编 写。在 W e b服务页面中定义了一个方法,包含 2个参数: t a g
(标签名)和v a l u e ( d o u b l e类型的值),方法中将得到的值以及接收的时间存储 S QL S E R VE R中,以备查询显示。 代码: p u b l i c v o i d Ge t Ta g Va l u e ( s t r i n g t a g,d o u b l e v a l u e ){ S q l Co n n e c t i o n c o n n—n e w S q l C o n n e c t i o n(’’ i n i t i a l c a t a l o g:
种多样,但从传输速度和可靠性考虑,基于 P y t h o n+. NE T的 O P C数据采集及 We b发布方式更适合在选煤厂的生产中应 用。这种技术是一种集多种技术为一体的自有技术,从设计方
OPC d a t a; d a t a s o u r c e ̄ .; u s e r i d=s a; p a s s wo r d=” ); S q l C o mm a n d c md=c o n n . Cr e a t e C o mma n d ( ); c md . Co mma n d Te x t一” i n s e r t i n t o OP CTa b l e v a l u e s (
’ +t a g+I I"" H + Da t e Ti me . No w. To S t r i n g (” y y y y - MM- d d HH: mm:
法的形成到选煤厂中的成熟应用,通过多次实践和改进,目前已在自动化生产中广泛应用。
2设计与实现方法 2 . 1设计方法
s s” )+I t,, 1 1+v a l u e+” )”;
基于P y t h o n十. NE T的 OP C分布式数据采集及 We b发布方式的设计方法主要是将 P y t h o n语言及接口组件、 We b S e r v i c e技术、 . NE T开发及 A J A X技术进行整合,实现了从后
c md . Ex e c u t e No n Qu e r y ( );
)
我们使用 s u d s we b s e r v i c e s c l i e n t进行 P y t h o n的 We b
台的数据传输到前台的数据展现过程。 后台的数据采集及传输主要是通过一种简单实用的 P y t h o n语言, P y t h o n是一种开源的解释型语言,方便移植与调 试,且具有丰富的标准库。P y t h o n通过 Op e n OP C将采集到的
S e r v i c e交互,它是一种轻量级的基于 s o a p的 We b服务客户端实现。现在我们把刚刚读取到的 v a l u e通过调用远程 we b服务的方式传输给服务器。P y t h o n代码: f r o m s u d s i mp o r t We b Fa u l t
数据传输到 We b服务器,使用 We b S e r v i c e技术实现数据的接收。We b S e r v i c e是一种用于实现分布式互操作的 We b应用程 序,可以使用这种技术将采集到的数据发送到远程服务器。
f r o m s u d s . c l i e n t i mp o r t C l i e n t
u r l一 h t t p:// l o .1 0 .2 2 .8 2/ we b S e r v i c e s/ Ge t OP C d a t a . a s mx? W SD L"
We b S e r v i c e将接收到的数据通过. NE T网站发布到前台,并使 用A J A X异步刷新数据,方便用户能及时看到工业生产的状态,以便监测生产过程控制中的问题,并尽快地进行处理解决。
ws c l i e n t= Cl i e n t ( u r
1 ) ws c l i e n t . s e r v i c e . Ge t Ta g Va l u e ( Te s t Ta n k, v a l u e )
We b服务接收到之后将数据存储到 S QL S E RV E R中。 2 . 2 . 3数据展示页面
这种设计方法的优点在于简化了数据采集的步骤,提高了数据采集的效率,使用前沿的技术进行数据发布,瘦客户端的访问方式方便了用户的使用,并且实现简单可靠。 2 . 2实现方法
数据展示页面使用 AS P . N E T页面实现,并且使用 A J AX 技术实现数据后台异步刷新,使程序更友善易用。Ht ml页面 中绘制了一个液罐背景的区域,液位数字显示在这个区域中。 <s t y l e>≠} Te s t T a n k{ b a c k g r o u n d: u r l (” i m g/ Ta n k . j P g” ); wi d t h: 1 5 0 p x; h e i g h t: 2 4 0 p x; l i n e - h e i g h t: 2 2 0 p x; t e x t - a l i g n: c e n—
2 . 2 . 1使用 P y t h o n结合 O p e n OP C进行数据读取 首先在 OP C主机上安装 P y t h o n和 Op e n O P C组件。编写数据采集脚本。P y t h o n代码: i mp o r t Op e n OP C} j I导人 Op e n OP C模块
t e r; c o l o r: Re d; f o n t— we i g h t: b o l d;}</ s t y 1 e>
<d i v i d=“ T e s t T a n k”></ d i v>
Op c C l i e n t= Op e n OP C . c l i e n t ( )≠}建立 O p e n OP C客户端对象 Op c C l i e n t . c o n n e c t (” I n t e l l u t i o n . OP C i F I X . 1” )#连接 O P C 服务 v a l u e, q u a l i t y, t i me= Op c Cl i e n t . r e a d( ix f .Te s t Ta n k . F CV —
编写一个一般处理程序以供 A J A X请求,返回 T e s t T a n k 的数据。C拌代码: p u b l i c v o i d P r o c e s s R e q u e s t ( Ht t p C o n t e x t c o n t e x t ){ S q l C o n n e c t i o n c o n n—
n e w S q l Co n n e c t i o n (” i n i t i a l c a t a l o g
OP Cd a t a; d a t a s o u r c e=.; u s e r i d=s a; p a s s wo r d=” ); S q l C o mma n d c md—c o n n . Cr e a t e C o mm a n d O;
, ) 读取“ T e s t T a n k”数据
至此已经可以读取出 O P C服务器中标签名为“ T e s t T a n k” 机电信息
(下转第 1 5 9页)
2 0 1 3年第 1 5期总第 3 6 9期 1 5 7



