文档库 最新最全的文档下载
当前位置:文档库 › 西门子PLC FB41中PID功能块说明和调整方法

西门子PLC FB41中PID功能块说明和调整方法

西门子PLC FB41中PID功能块说明和调整方法

时间:2010-01-19 01:01来源:未知作者:admin 点击:268次

FB41称为连续控制的PID用于控制连续变化的模拟量,与FB42的差别在于后者是离散型的,用于控制开关量,其他二者的使用方法和许多参数都相同或相似。PID的初始化可以通过在OB100中调用一次,将参数COM-RST置位,当然也可在别的地方初始化它,关键的是要控制CO

FB41称为连续控制的PID用于控制连续变化的模拟量,与FB42的差别在于后者是离散型的,用于控制开关量,其他二者的使用方法和许多参数都相同或相似。

PID的初始化可以通过在OB100中调用一次,将参数COM-RST置位,当然也可在别的地方初始化它,关键的是要控制COM-RST;

PID的调用可以在OB35中完成,一般设置时间为200MS,

一定要结合帮助文档中的PID框图研究以下的参数,可以起到事半功倍的效果

以下将重要参数用黑体标明.如果你比较懒一点,只需重点关注黑体字的参数就可以了。其他的可以使用默认参数。

A:所有的输入参数:

COM_RST: BOOL: 重新启动PID:当该位TURE时:PID执行重启动功能,复位PID内部参数到默认值;通常在系统重启动时执行一个扫描周期,或在PID 进入饱和状态需要退出时用这个位;

MAN_ON: BOOL:手动值ON;当该位为TURE时,PID功能块直接将MAN 的值输出到LMN,这可以在PID框图中看到;也就是说,这个位是PID的手动/自动切换位;

PEPER_ON: BOOL:过程变量外围值ON:过程变量即反馈量,此PID可直接使用过程变量PIW(不推荐),也可使用 PIW规格化后的值(常用),因此,这个位为FALSE;

P_SEL: BOOL:比例选择位:该位ON时,选择P(比例)控制有效;一般选择有效;

I_SEL: BOOL:积分选择位;该位ON时,选择I(积分)控制有效;一般选择有效;

INT_HOLD BOOL:积分保持,不去设置它;

I_ITL_ON BOOL:积分初值有效,I-ITLVAL(积分初值)变量和这个位

对应,当此位ON时,则使用I-ITLVAL变量积分初值。一般当发现PID功能的积分值增长比较慢或系统反应不够时可以考虑使用积分初值;

D_SEL : BOOL:微分选择位,该位ON时,选择D(微分)控制有效;一般的控制系统不用;

CYCLE : TIME:PID采样周期,一般设为200MS;

SP_INT: REAL:PID的给定值;

PV_IN : REAL:PID的反馈值(也称过程变量);

PV_PER: WORD:未经规格化的反馈值,由PEPER-ON选择有效;(不推荐)

MAN : REAL:手动值,由MAN-ON选择有效;

GAIN : REAL:比例增益;

TI : TIME:积分时间;

TD : TIME:微分时间;

TM_LAG: TIME:我也不知道,没用过它,和微分有关;

DEADB_W: REAL:死区宽度;如果输出在平衡点附近微小幅度振荡,可以考虑用死区来降低灵敏度;

LMN_HLM: REAL:PID上极限,一般是100%;

LMN_LLM: REAL:PID下极限;一般为0%,如果需要双极性调节,则需设置为-100%;(正负10V输出就是典型的双极性输出,此时需要设置-100%);

PV_FAC: REAL:过程变量比例因子

PV_OFF: REAL:过程变量偏置值(OFFSET)

LMN_FAC: REAL:PID输出值比例因子;

LMN_OFF: REAL:PID输出值偏置值(OFFSET);

I_ITLVAL:REAL:PID的积分初值;有I-ITL-ON选择有效;

DISV :REAL:允许的扰动量,前馈控制加入,一般不设置;

B:部分输出参数说明:

LMN :REAL:PID输出;

LMN_P :REAL:PID输出中P的分量;(可用于在调试过程中观察效果)

LMN_I :REAL:PID输出中I的分量;(可用于在调试过程中观察效果)

LMN_D :REAL:PID输出中D的分量;(可用于在调试过程中观察效果)

C:规格化概念及方法:

PID参数中重要的几个变量,给定值,反馈值和输出值都是用0.0~1.0之间的实数表示,

而这几个变量在实际中都是来自与模拟输入,或者输出控制模拟量的

因此,需要将模拟输出转换为0.0~1.0的数据,或将0.0~1.0的数据转换为模拟输出,这个过程称为规格化

规格化的方法:(即变量相对所占整个值域范围内的百分比对应与27648数字量范围内的量)

对于输入和反馈,执行:变量*100/27648,然后将结果传送到PV-IN

和SP-INT

对于输出变量,执行:LMN*27648/100,然后将结果取整传送给PQW

即可;

D:PID的调整方法:

一般不用D,除非一些大功率加热控制等惯大的系统;仅使用PI即可,

一般先使I等于0,P从0开始往上加,直到系统出现等幅振荡为止,记下此时振荡

的周期,然后设置I为振荡周期的0.48倍,应该就可以满足大多数的需求。我记得网络上有许多调整PID的方法,但不记得那么多了,先试试吧。

附录:PID的调整可以通过“开始—>SIMATIC->STEP7->PID调整”打开PID调整的控制面板,通过选择不同的PID背景数据块,调整不同回路的PID参数。

一、在ob35里面插入FB41,方框顶上会有红字,输入一个类似“DB120”的,系统会问你要不要生成这个Db,yes就可以

二、大部分参数不要填,默认就行,下面是常用参数,用变量连接:

1、MAN_ON:用一个bool量,如m0.0,为true则手动,为false则自动;

2、cycle:,这个值与ob35默认的100ms一致;

3、SP_INT:MD2,是hmi发下来的设定值,0-100.0的范围,real型;

4、PV_IN:md6,实际测量值,比如压力,要从piw×××转换为0-100.0的量程;

5、MAN:MD10,op值,也就是手动状态下的阀门输出,real型,0-100.0的范围;

6、GAIN:md14,Pid的P啊,默认写1-2吧(系统默认是2),调试的时候再改

7、TI:MW20,pid的i啊.默认写T#30S吧,调试的时候改;

8、DEAD_W:md22,死区,就是sp和pv的偏差死区,0-100.0的范围,默认0,调试的时候改;

输出:

9、LMN:MD26,0-100。0,最终再用fc106转换为word型move到pqw×××,如果pid运算结果不再有工艺条件其他限制可以用LMN_PER更简单就不用fc106了。

三、用plcsim模拟

1、手动

man_on=true,看输出是否等于man;

2、自动

man_on=false,调整pv或者sp,使得有偏差大于死区,看输出变化,这里的模拟只能说明pid工作了,不能测试实际调节效果啊。

3、如果需要反作用,有三种方法:

a、pv和sp颠倒输入

b、p值用负的

c、输出用100减

1.用pid向导设置的pid模块,输出总是回路输出的低限,如果低限为零,输出也为零,是什么原因?

-----------你的P值=1.0,这里P是正值,则当PV大于SV时,输出变小,如果最小值设置为0,则PID输出为0。

pv是过程变量值,也就是你的AIW0,是模拟量输入信号,但这是PID运算值,你的设置范围是:低限3200 高限16000,你输入电压是多少?如果按0-10V对应是0-32000时,你的输入值应该是1V至5V,你输入电压是这个范围吗?

上面说的是PV值,现在计论SV,其实,SV必须与PV一致,也就是PV值必须在低限3200 高限16000这个范围,要不然PID工作不正常,现在你的SV=0-100,明显是低于3200-16000这个值了。所以PID输出为0,不足为怪。

2.如果输入信号时1-5V,回路输入选项的过程变量范围是不是应该写6400-16000?--------应该间3200-16000。

3.pid模块上的PV_I端口,是直接写我的模拟量输入寄存器名吗?比如AIW0。这个数值不需要转换吗?因为如果不用向导直接写PID的话,过程变量,设定值似乎都是0-1之间

------------可以直接写AIW0;其实PID解释里所说的0-1,其实对应的是0%-100%,如果输入是3200-16000,则16000是100%,也就是1,0 对应的是0。

4.output端,结果是否需要转换?直接发送给我的模拟量输出端就行吗?

请高手不吝赐教

-------------output端可以直接输出,如果输出的模拟量符合你的设计要求,可以不转换,不符合可以转换,当然可以间接输出。

请大家都来谈谈西门子S7-200系列PLC的PID功能块的应用问题,把实际经验都写出来,让大家都受益!

PID参数的整定:

1、可以在软件中进行自动整定;

2、自动整定的PID参数可能对于系统来说不是最好的,就需要手动凭经验来进行整定。P 参数过小,达到动态平衡的时间就会太长;P参数过大,就容易产生超调。

PID功能块在梯形图(程序)中应当注意的问题:

1、最好采用PID向导生成PID功能块;

2、我要说一个最简单的也是最容易被人忽视的问题,那就是:PID功能块的使能控制只能采用SM0.0或任何1个存储器的常开触点并联该存储器的常闭触点这样的永不断开的触点!笔者在以前的一个工程调试中就遇到这样的问题:PID功能块有时间动作正常,有时间动作不正常,而且不正常时发现PID功能块都没问题(PID参数正确、使能正确),就是没有输出。最后查了好久,突然意识到可能是使能的问题——我在使能端串联了启动/停止控制的保持继电器,我把它改为SM0.0以后,一切正常!

同时也明白了PID功能块有时间动作正常,有时间动作不正常的原因:有时在灌入程序后保持继电器处于动作的状态才不会出现问题,一旦停止了设备就会出现问题——PID功能块使能一旦断开,工作就不会正常!

把这个给大家说说,以免出现同样失误。

下面是PID控制器参数整定的一般方法:

PID控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。现在一般采用的是临界比例法。利用该方法进行PID控制器参数的整定步骤如下:(1)首先预选择一个足够短的采样周期让系统工作;(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期;

(3)在一定的控制度下通过公式计算得到PID控制器的参数。

PID参数的设定:是靠经验及工艺的熟悉,参考测量值跟踪与设定值曲线,从而调整P\I\D 的大小。

比例I/微分D=2,具体值可根据仪表定,再调整比例带P,P过头,到达稳定的时间长,P 太短,会震荡,永远也打不到设定要求。

PID控制器参数的工程整定,各种调节系统中P.I.D参数经验数据以下可参照:

温度T:P=20~60%,T=180~600s,D=3-180s;

压力P:P=30~70%,T=24~180s;

液位L:P=20~80%,T=60~300s;

流量L:P=40~100%,T=6~60s。

书上的常用口诀:

参数整定找最佳,从小到大顺序查;

先是比例后积分,最后再把微分加;

曲线振荡很频繁,比例度盘要放大;

曲线漂浮绕大湾,比例度盘往小扳;

曲线偏离回复慢,积分时间往下降;

曲线波动周期长,积分时间再加长;

曲线振荡频率快,先把微分降下来;

动差大来波动慢。微分时间应加长;

理想曲线两个波,前高后低4比1;

一看二调多分析,调节质量不会低。

经过多年的工作经验,我个人认为PID参数的设置的大小,一方面是要根据控制对象的具体情况而定;另一方面是经验。P是解决幅值震荡,P大了会出现幅值震荡的幅度大,但震荡频率小,系统达到稳定时间长;I是解决动作响应的速度快慢的,I大了响应速度慢,反之则快;D是消除静态误差的,一般D设置都比较小,而且对系统影响比较小。对于温度控制系统P在5-10%之间;I在180-240s之间;D在30以下。对于压力控制系统P在30-60%之间;I在30-90s之间;D在30以下。

这里介绍一种经验法。这种方法实质上是一种试凑法,它是在生产实践中总结出来的行之有效的方法,并在现场中得到了广泛的应用。

这种方法的基本程序是先根据运行经验,确定一组调节器参数,并将系统投入闭环运行,然后人为地加入阶跃扰动(如改变调节器的给定值),观察被调量或调节器输出的阶跃响应曲

线。若认为控制质量不满意,则根据各整定参数对控制过程的影响改变调节器参数。这样反复试验,直到满意为止。

经验法简单可靠,但需要有一定现场运行经验,整定时易带有主观片面性。当采用PID调节器时,有多个整定参数,反复试凑的次数增多,不易得到最佳整定参数。

下面以PID调节器为例,具体说明经验法的整定步骤:

A. 让调节器参数积分系数S0=0,实际微分系数k=0,控制系统投入闭环运行,由小到大改变比例系数S1,让扰动信号作阶跃变化,观察控制过程,直到获得满意的控制过程为止。

B. 取比例系数S1为当前的值乘以0.83,由小到大增加积分系数S0,同样让扰动信号作阶跃变化,直至求得满意的控制过程。

C. 积分系数S0保持不变,改变比例系数S1,观察控制过程有无改善,如有改善则继续调整,直到满意为止。否则,将原比例系数S1增大一些,再调整积分系数S0,力求改善控制过程。如此反复试凑,直到找到满意的比例系数S1和积分系数S0为止。

D. 引入适当的实际微分系数k和实际微分时间TD,此时可适当增大比例系数S1和积分系数S0。和前述步骤相同,微分时间的整定也需反复调整,直到控制过程满意为止。

PID参数是根据控制对象的惯量来确定的。大惯量如:大烘房的温度控制,一般P可在10以上,I=3-10,D=1左右。小惯量如:一个小电机带一台水泵进行压力闭环控制,一般只用PI控制。P=1-10,I=0.1-1,D=0,这些要在现场调试时进行修正的。

PID控制说明:

在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。即当我们不完全了解一个系统和被控对象﹐或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。PID控制,实际中也有PI和PD控制。PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。

比例(P)控制:比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差。

积分(I)控制:在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。

微分(D)控制:在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。

现在我在学习ifix与s7-300的通讯。在网站https://www.wendangku.net/doc/9a1565985.html,的技术文档中有一篇《Siemens S7与上位监控软件通讯》文章,其中我有些不太明白,想要请教您。 1. 在文中作者提到:“CP5611与S7的Profibus DP通讯: A.WinCC,一般是在DP链路上走S7协议,驱动内置,直接支持.可连接8个PLC

B.iFix,iFix自己的IO Driver中没有DP驱动,应该安装OPC Server. 这个目前看来仅可以使用SimaticNet.”这时还需要SI7驱动吗

客服人员9999

回复:ifix与s7通讯 2008-8-15 10:02:02

1.S7A 是一家德国公司做的,非GE的驱动,但是做的很好。

2.安装SimaticNet后,如果Net 配置为 OPC Server,那末iFix用 OPC PowerTool做OPCClient就可以了。如果Net配置为 Application,那末iFix 可以用SI7.走的是S7API 你装SI7 还是一样要装SimaticNet的,我说的是这个意思。

CP5611与S7的MPI通讯:

A.WinCC,这个不用讲了,驱动内置,直接支持.

B.iFix,iFix自己的IO Driver中没有MPI驱动,可以安装S7A for iFix驱动.

虽然不是GE-Intellution公司出品的,但是不收费,而且很好用.

C.Intouch,Intouch的IO Server中没有MPI驱动,应该安装OPC Server.

用西门子SimaticNet.需要Profibus SoftNet-S7授权.

6GK17045CW633AA0 RMB7845.50

5CW63中的63代表版本号V6.3,现在最新的该是5CW64了,因为好多人对订货号

很晕点,所以提一下.以下相同,不再赘述了.

其他厂家的没有内置MPI驱动的监控软件也类似.比如AB RSView等.

D.Citect,Wizcon,力控,组态王,紫金桥等,驱动内置,直接支持.

其实这些软件很多都是用Prodave写的底层库驱动.

Tips:

A.CP5512和CP5611一样,区别仅仅在于CP5512用于笔记本做现场调试,一般很少

实际长时间用于工程现场而已.

B.MPI方式组网,站点数理论值最大只能是32,但是CP5611最多只能支持8个MPI连接.每台电脑仅支持1块CP5611卡.

C.如果电脑要通过MPI连接的PLC数量多于8,而小于31,可以换用CP5613卡.

D.CP5611最常用的速率是187.5K.在跟某些机型连接时,可以达到12M.

某些机型是那些呢?是那些MPI/DP口,如400全系列的X1口,31X-2PN的X1口,

318-2DP的X1口,319-3PN的X1口.

当然了,19.2K的速度也是支持的,但是买了CP5611而用19.2K的话,人家会认

为我们脑子有问题,这样还不如买跟PC Adtaper,还能省些银子.

E.用CP5611时,电脑可以有多台,每个CPU能跟多少台电脑进行通讯,取决于该

机型的具体型号,S7-300参数可以在Step7中的硬件\CPU\通讯中有连接资源

的设置.S7-400的应该在硬件\CPU\存储器中有通讯资源的设置.

2.CP5611与S7的Profibus DP通讯:

A.WinCC,一般是在DP链路上走S7协议,驱动内置,直接支持.可连接8个PLC

B.iFix,iFix自己的IO Driver中没有DP驱动,应该安装OPC Server.

西门子SimaticNet.需要Profibus SoftNet-DP授权.

6GK17045DW633AA0 RMB5868.50 (V6.3)

这个目前看来仅可以使用SimaticNet.

注意,当这样做时,计算机算个2类DP主站,CP5611可以支持多于8个的PLC.

走DP协议最多可以支持60个PLC做DP从站.

即使是WinCC,要用CP5611连接超过8个以上的PLC时,也需要SimaticNet.

不建议计算机和做DP主站的PLC来连接,即使要连接,数量最好不要超过1个PLC

C.Intouch,同iFix。

D.Citect,Wizcon,力控,组态王,紫金桥等,同iFix.

备注:

A.原来以为CP5611跟DP口通讯(比如315-2DP的X2口),只能做DP主站,

其实不是,也是可以做DP从站的,可以被1个DP主站来挂接,

这个主站可以是PLC,也可以是计算机,

但是在计算机监控软件和PLC通讯的方案中这样做没有任何意义.

B.因为DP链路上可以走S7协议.

所以理论上Profibus SoftNet-S7 可以替代Profibus SoftNet-DP.

3.CP5613与S7的Profibus DP通讯:

A.WinCC,DP链路上走S7协议,驱动内置,直接支持.可连接50个PLC

B.iFix,iFix自己的IO Driver中没有DP驱动,应该安装OPC Server.

需要西门子SimaticNet.跟CP5611的差异在于不用Profibus SoftNet-DP授权.

而需要Profibus DP-5613授权.

6GK17135DB633AA0 RMB4611.50 (V6.3)

这样做2类DP主站,最多可以连接122个DP从站.

即使是WinCC,要用CP5613连接超过50个以上的PLC时,也需要SimaticNet.

不建议计算机和做DP主站的PLC来连接,即使要连接,数量最好不要超过1个PLC

C.Intouch,同iFix。

D.Citect,Wizcon,力控,组态王,紫金桥等,同iFix.

备注:

A.CP5613跟CP5611一样,都是可以做主,也可以做从的.做从的意义不大.

B.因为DP链路上可以走S7协议.

所以理论上Profibus S7-5613可以替代Profibus DP-5613.

C.每台电脑最多支持4块CP5613.

InTouch与PLC连接和通讯

InTouch与PLC连接心得

按连接的物理媒介来分:可以分可以分为2大类,一类为专业级通讯卡,诸如Applicom卡这类,另一种就是普通网卡了。因此通信方式根据通讯卡有2大类,如果你使用APPLICOM 卡你会发现与plc的连接非常简单,只须你将PLC的IP地址添加的applicom卡中并为之定义好“topic”NAME就可以了,剩下的就是你使用一种协议建立起applicom卡与intouch 的“通道”(path),大体又可以分为3种,PCDDE,DASsever,OPC,其中,pcdde最简单,DASsever最高效,支持的协议最多,而OPC则是传统的通讯方式,设置还要与I/O Sever 软件包中的OPClink配合使用,对OPC不是很难理解的估计不容易成功,虽然OPC效率不算高,可人家毕竟是国际标准,所以你会发现intouch 与wincc很容易对联,通过这种方式,PLC与DCS之间的通讯也是容易实现的。令一类是使用普通网卡,你没的选择,还是使用DASSIDirect吧,还有一种方法不过设置复杂些,你可以使用SMATIC NET中的OPC 功能配合INTOUCH的opclink来实现通讯,不过设置过多,而且还要在plc中组态,本人试验多次才成功。

--------------------------------------------------------------------------------

intouch与PLC通讯问题

一般情况下,通过InT ouch自带的I/O SERVER实现与不同的PLC连接。然后,InTouch 与I/O SERVER以DDE的方式实现数据交换。

在InT ouch中的IO SERVER 有相关的帮助文件,其中详细说明了使用该I/O SERVER 时的地址配置。

如果和AB系列的SLC500的PLC做NET通讯的话使用Allen-Bradley Ethernet Direct 这个I/O SERVER 不过一定要在主机里面的HOST中添加该PLC的IP地址。

宇电OPC SERVER在IFIX 3.x中的配置应用

厦门宇电自动化科技有限公司技术部

摘要:介绍了OPC技术和发展,描述了如何把厦门宇电AI系列人工智能调节器中的实时数据及参数通过厦门宇电OPC Server软件及IFIX内置的OPC Client驱动互连到IFIX数据库的具体过程和详细配置。

关键词:IFIX,OPC Server ,OPC Client,厦门宇电AI系列人工智能调节器

1 OPC的产生

OPC全称OLE for Process Control,是随过程控制的发展产生的一种工业标准。现阶段SCADA即数据采集与监视控制系统已经由集中控制逐步转换成集散式控制,所以监控系统、人机接口等应用程序需要通过硬件驱动程序的方式和现场的硬件设备通讯。驱动程序一般是由监控软件的开发商根据硬件厂商的产品来制作的,不同的厂商,不同的设备需要不同的驱动程序,同一个硬件设备对于不同的监控软件也需要不同的驱动程序,这样对软件监控工程的顺利完成造成了很多麻烦,使现场硬件设备、远程监控软件和驱动程序的兼容成为一个棘手的问题。虽然MODBUS协议的产生解决了一部分问题,但是并不是所有的现场设备都适用MODBUS协议,就算是勉强兼容也不能100%的发挥远程监控软件对现场设备的控制功能。由于实际需要软件制造商和系统集成商以及硬件开发商急切需要一种高效,可靠,开放,互操作强的的驱动程序模式,于是OPC标准产生了。

OPC的产生解决了硬件、软件厂商的矛盾,满足了系统集成中无缝访问的条件,提高了整个系统的开放性和互交换的操作性,使组件多样化的集散式监控系统更为简单。

2 OPC技术特点

OPC是以OLE/COM/DCOM机制作为应用程序级的通讯标准,采用了Client/Server模式,作为现场硬件和监控软件之间的一个中间环节,使不同的客户端软件可以任意访问服务器器端的数据源,而不会像DLL驱动程序那样受到限制。开发OPC服务器端访问接口的任务由硬件生产厂家来完成,以OPC Server软件的形式提供给软件用户,而监控软件制造商只要在软件中加入OPC Client驱动就可以。OPC服务器访问底层硬件,并将数据以OPC接口的方式提供到任何具有OPC客户端接口的软件。如图1

OPC规范要求硬件生产商在提供新的硬件设备的同时也提供一款根据新设备的协议开发的可以和新设备通讯的符合OPC标准的服务器端软件,为设备提供基本的协议接口,并具有OLE/COM连接,一般用来完成数据交互和数据前置处理。这样任何标准的OPC客户端都可以以标准方式访问该OPC服务器。OPC规范还要求监控软件制造商必须提供符合OPC 标准的客户端驱动,客户端驱动负责按标准的OPC接口函数对OPC服务器进行数据访问,这样不管现场设备是那种形式,客户端都可以用统一的方式去访问,方便了硬件和监控软件数据间的交互。当OPC服务器里的数据发生改变时,服务器端将向客户端发出信息,客户端得到信息后再进行必要的处理,同样当客户端数据改变时,客户向服务器端发出信息,服务器也会相应的处理数据,这样就不需要花费大量时间来互相查询数据。

OPC技术对工业控制系统的集成是革命性的,使不同的现场设备和系统软件都可以互相兼容,OPC作为一种连接件,按标准的COM对象、方法属性,提供了更为简单的数据交互。无论是公司管理系统还是现场监控系统,无论是DCS还是FCS,无论是PLC还是智能仪表,都可以通过OPC快速交换数据。简单来说OPC技术增强了整个监控系统的功能,提

高了系统内各个组件的兼容性。

3 IFIX OPC Client与厦门宇电OPC Server的配置和使用

Intellutinon公司的IFIX软件在国内非常通用,性能稳定功能强大,界面友好,最重要的是一直都支持OPC功能,即可以作为OPC服务器,也可以作为OPC客户端。厦门宇电自动化科技有限公司的产品AI系列人工智能调节器应用的范围也非常广,涉及到各个工业及科研领域。但是IFIX软件中却没有厦门宇电仪表的驱动,实际上大多数国内仪表,在IFIX软件中都是没有驱动的,毕竟IFIX是国外的组态软件,这也使IFIX的用户使用性价比高的国内智能仪表成为一个难解决的问题,除非自己做驱动程序或恰好该仪表通讯协议符合MODBUS兼容协议。但厦门宇电OPC Server软件的出现解决了该问题。下面将详细解说将厦门宇电AI系列人工智能调节器上的数据通过OPC读取到IFIX数据库中的过程。

3.1 厦门宇电OPC Server的配置和使用

宇电全系列仪表标准OPC2.0 SERVER软件可以在厦门宇电网站资料下载区下载,按《厦门宇电仪表OPC服务器帮助》正确安装后,运行该软件会在桌面右下角任务栏中显示,右击恢复窗口按钮后继续按照帮助配置,添加1个COM口,5个宇电仪表(地址分别0,1,2,3,4)后保存设置,重新运行该软件,在下位机宇电AI系列人工智能调节器和计算机串口通讯正常的情况下见图2

点击com下的设备,右边的参数数据会实时刷新,说明OPC Server与下位机仪表通讯成功。

*BIN设备为起始位置因为IFIX OPC Client的原因需要闲置,后面会详细说明。

3.2 IFIX OPC Client的配置和使用

安装完IFIX,桌面上出现多个IFIX图标,然后先安装好“OPCDrv OLE for Process Control Client,Version 7.32c”驱动,如果没有该驱动软件可以向软件销售商索要。先进入SCU系统配置,在SCADA组态的I/O驱动器定义中加载OPC驱动,安装完成后SCU里就出现了OPC这一项,双击进入“I/O Driver Server Connection”界面。如图3

在“I/O Driver Server Connection”界面请选择“使用本地服务器”,服务器名称是

“opc.yudian.1”然后点“下一步”进入PowerTool。

PowerTool是IFIX的OPC客户端软件,所有配置工作都在这里完成,它主要用来连接OPC 服务器。如图4

该画面为PowerTool出现的第一个界面不用设置,右面文字框内的数字分别表示左面树型结构的数目。左面OPC根目录下有默认的一个服务器名称,这里我改成了“yudianopc” “yudianopc”连接的服务器是OPC Server for Yudian Instruments,选择opc.yudian.1。服务器位置还是选择“本地”,同时需要在Enable打上勾表示启用。左面树型结构中的数据组名称改成了“ai1” 如图5

在数据组界面,I/O选项中的异步(Asynchronous)和同步(Synchronous)信号。异步为数据有变化时才更新,或看门狗超时才访问OPC服务器;同步为定期访问服务器。一般模拟量用异步,开关量用同步。数据组的Enable也要勾上。其他参数对通讯影响不大可以默认。如图6

在数据项界面如图7,数据类型设置为“signed”,然后用”Browse Server…”按钮进入服务器数据项的选择画面如图8。选择完成后“OPC Item Settings”会相应的改变。数据项的Enable 也要勾上。图7

图8

*OPC.yudian.1的第一行“Branches:”数据项不可用,需要在宇电OPC服务器实际连接的仪表驱动前加了一个空的驱动BIN设备。

在以上设置全部正确的情况下,先在左面的树型结构中选择一个数据项,然后点击菜单“Display Mode”下的“数据状态”按钮,接着点击菜单栏上的绿色箭头,运行OPC Client。图9中显示的就是OPC Client与OPC Server通讯正常的情况,通讯正常的标志是“Data”项的显示为GOOD。图9

3.3 IFIX数据库于IFIX OPC Client的连接

如图10,在数据库管理器中建立一个模拟量输入变量,I/O地址是不可以选择的必须自己按照默认格式逐个填写【server;group;item;access】四项缺一不可,否则报错。例子中填写的是:yudianopc;ai1;com.518-1.HIAL;No Access Path。硬件选项选择Signed。工程单位先确定好数字范围0-10000,其他默认。点击保存按钮后变量添加到列表中,接着再次点击存盘按钮,保存列表,然后在表格上右击选择刷新,该变量的当前值就显示出来了,如果当前量位置显示“????”,说明连接或设置有错。图10

3.4常见问题处理

前面已经说明了数据传送的过程。厦门宇电OPC服务器软件直接与仪表硬件通讯,IFIX OPC客户端PowerTool从OPC服务器上读取数据,提供给IFIX数据库管理器使用。3.4.1 数据库的启动顺序:

1)启动OPC服务器。在启动过程中,要连接控制器,可能会在连接的控制器上显示红X,提示找不到所要的OPC文件,这时就要从组态的那台电脑上把工程文件DCSProj拷到本机,连接控制器时,手动指定DCSProj中OPC配置文件的位置。OPC配置文件包含了数据点名等的信息。

2)启动OPC客户端PowerTool。打开相应的导入文件,点击绿三角,进入运行状态。从停止到运行要等一段时间。如果很快得进入了运行状态,要看一下SERVER的设置是否为LOCAL。OPC数据结构是树形的,依次为SERVER,GROUP,ITEM,这三层都有使能端ENABLE,要将ENABLE勾上对应的数据项才会进行通讯。所以要保证所有的这三层的都ENABLE勾上。

3.4.2 画面上数据点显示问号:

如果在画面上显示问号,则在FIX数据库中此数据点也会显示问号,这表示数据还没有读上来,如果是刚启动,则要等一会儿。如果问号一直存在,就要在PowerTool中找原因。对于某些输出的点,如果一定时间(默认为五分钟)没有数据存取操作,则将数据状态置为BAD。可以先将数据项ITEM置为DISABLE,然后再ENABLE,如果OPC中的确存在这个点,则数据状态等一会儿就会变为GOOD。另外一种办法是将数据项ITEM的访问时间设为Disabled,则PowerTool会一直更新这个数据项,不超时。如果数据项仍为BAD,则要打开OPC服务器,手动查找数据库中是否真的存在这个点。路径设错会出现这种情况。IFIX数据库对AI、DI会一直读取数据,一般不存在访问超时的情况。如果是AO、DO点,画面不对这些点进行写操作,IFIX数据库会让这些点超时,这时数据库里显示问号。例如,某个设备在画面上的联锁投入和切除按钮,它们的写值与读值连的是同一个变量,如果不将数据项ITEM的访问时间设为Disabled,则一段时间之后,画面上这两个按钮会显示红色,点任何一个按钮则颜色恢复正常。这是因为点击这个操作将这个变量激活,系统重新对这个点进行计时,直到下一次超时再将此变量退出活动状态。

此外,当控制器发生故障时,也会出现这种情况。

3.4.3 有前景的画面对象显示红色

红色是IFIX的系统报警色,如果此前景对应的数据点通讯故障,会出现这种情况。比如上一段提到的情况。

3.4.4 数据显示不正确:

可能的原因:

1)检查IFIX画面数据连接是否连到了相应的数据库点。

2)检查CBM中对应测点的量程范围是否设对。

3)检查通道信号。

3.4.5 数据库管理器中变量的I/O地址格式错:

格式必须是:【server;group;item;access】

4 结束语

OPC既可以用于将现场设备的下位机数据采集到DCS或SCADA中来,也可以用于将数据从一种DCS或SCADA系统采集到另一种DCS系统、SCADA系统或其他上位应用程序中,虽然在上文中没有详细叙述。在OPC的客户端/服务器结构中,同一个程序可以访问多个服务器,同一个服务器也可以同时为多个客户端服务。事实上带有OPC驱动的应用软件既可以是客户端,又可以是服务器,IFIX OPC驱动同样也可以作为OPC 服务器,提供数据给其他应用程序。甚至可以将OPC结合网络计算机来采集数据,允许客户从网络上运行的

OPC服务器中获取需要的数据。

总之,把这一技术引进过程控制系统,使得OPC成为自动化系统、现场设备与工厂办公管理应用程序之间的有效联络工具,相互之间的数据交换得以简捷化和标准化,极大的方便了硬件开发商、软件开发商和最终用户,目前已广泛应用在国外的各类软件,如:IFIX、WINCC、LABVIEW。今后必将在DCS系统FCS系统中发挥出极大的作用。

参考文献:

相关文档