西门子模块6ES7221-1EF22-0XA0品质好货
西门子模块6ES7221-1EF22-0XA0品质好货
4 通信程序设计
在通信程序设计中,子局的通信参数可以通过PLC上的DIP开关直接进行设定,而主局的通信参数设定则需要软件实现。在该系统中,主局的通信软件编制采用VB6.0。
MSComm控件提供串行通信功能,具有事件驱动、查询两种通信方式。事件驱动通信是利用控件的OnComm事件捕获通信事件或通信错误,并执行OnComm的事件处理过程。当前发生的通信事件或通信错误由控件的CommEvent属性来判断。
在本系统中,工业控制计算机作为主局,向作为子局的PLC发出呼叫及命令帧,并采用中断方式等待PLC的响应,即在MSComm控件的OnComm事件中根据CommEvent属性值来编制相应的响应过程或错误处理程序。在通信开始前,首先通过控件的Settings设定通信参数为“9600,0,8,1”,依据CCM协议的每次实际传送数据量,定义Rthreshold为应收到的字节数。完成串口初始化定义后,打开通信口,主局发出呼叫,在得到子局响应时,CommEvent属性值变为comEvReceive,激活OnComm事件处理相应事件,事件程序流程图如图3所示。首先将读取的子局信息处理,判断其与呼叫帧是否一致,若一致,发送首标命令帧,否则重新呼叫。在得到子局的首标回应后,开始数据的读取或写入操作,依据数据传送方向及数据量的不同设定控件的Rthreshold属性。后通信以主局接收到EOF为结束。循环执行上述过程以完成数据的连续读写。
对于通信中的错误,一般可以通过接收到的CommEvent属性值来判断处理。但对于线路故障或PLC出现掉电等情况时,CommEvent属性值无法激活,就要利用看门狗的思想,设定定时程序,若通信超时,则结束前次通信,重新呼叫。
5 结 语
该技术已在兖矿集团兴隆庄煤矿井下5300胶带运输机监控系统中投入使用。经现场运行表明,该技术在应用方便了现场控制监视,有利于故障的及时排除,提高了生产的安全性及系统可靠性,便于进行网络扩展,在车间级监控系统中有较好的推广前景。
1 引 言
近几年来,PLC因其可靠性高、编程简单、抗干扰强等优点在工业控制领域得到了广泛应用。但PLC在人机交互性能方面较弱,而工业控制计算机具有良好的人机界面及控制决策能力,因此,将二者结合起来可有效实现整个生产过程的综合控制。
本文所介绍的PLC通信技术应用于由PLC与工业控制计算机组成的胶带运输实时监控系统。该系统采用上下位机主从式结构,PLC作为下位机完成工业现场数据的实时采集和分站控制功能;上位机采用工业控制计算机实现数据的显示、报警等功能。该系统可实现胶带运输过程中的模拟显示、故障报警、实时控制等。
2 通信方式
该系统采用华光公司的SU-6系列PLC,通信方式采用串行通信,通信接口均为PLC与工业控制计算机上的RS232接口。但是由于RS232采用非平衡方式传输数据,传输距离近,而胶带输送机趋向大功率、长距离,且单机监测信息量多,控制要求复杂,直接采用RS232方式不能满足传输距离要求。因此,采用RS485方式。因为RS485采用平衡差动式进行数据传输,适合于远距离传输,并具有较强抗干扰能力。式中:RS232与RS485之间的信号转换采用通信转换器,总体通信结构如图1所示。
3 通信规程
SU-6系列PLC串行通信采用半双工异步传送,支持CCM通信协议,并具有以下功能:(1)上位通信功能;(2)主局功能;(3)一对一功能;(4)无协议串行通信功能。以上功能可以实现PLC的寄存器和内部继电器的读入和写出、传送状态的跟踪等。由于CCM协议采用主从通信方式,所以通信过程中由主局保持主动权,向子局发出呼叫,并通过向子局发送命令帧来控制数据传送的方向、格式和内容;子局对得到的主局呼叫作出响应,并根据命令帧要求进行数据传输。由于在胶带运输控制系统中要进行数据的读取和写入双向操作,因此采用一对一方式,工业控制计算机作为主局,PLC作为子局。
数据传输过程以主局向子局写入数据为例,如图2所示,通信是主局向子局提出呼叫开始,子局作出应答以建立连接,主局接到应答后,向子局发送首标,子局将依据首标各项要求与主局进行数据传输,在子局作出响应后,开始传送数据,数据以128字节(ASCⅡ方式)为单位进行分组传送,后主局发送EOF信号结束本次通信。其中,首标作为命令帧,规定了数据传送方向、数据操作起始地址及数据传送量等。
在进行数据通信时,通信应答时间决定了系统读写速度,而作为主局的计算机通信时间因上位计算机类型、PC扫描时间、PLC数据通信接口模块应答延迟时间设定值、波特率、数据传送量的不同而不同。其中,PC扫描时间与应答延迟时间对通信时间的影响:当PC扫描时间比应答延迟时间短时,前者对通信时间没有影响;反之,当PC扫描时间比应答延迟时间长时,在计算总通信时间时,采用PC扫描时间,计算公式如下:
总通信时间=A+B+C+D
式中:A、B、C、D分别为呼叫发送/应答时间、首标发送/应答时间、数据发送/应答时间、通信结束应答时间。以数据发送时间为例:
数据发送时间=数据传送字符数×通信时间/字符+PC扫描时间
数据通信中,数据传送量因采用的传送方式不同而不同。传送方式支持ASCⅡ码和二进制两种。其中ASCⅡ码是用8bit表示数字、字母等,因此采用它来进行数据通信时,一字节二进制数要由两字节ASCⅡ来表示,实际传输量就是采用二进制数据通信的两倍。而在胶带运输系统中要求较强的可靠性和实时性,为提高通信速率,更好地实现实时监控,选用二进制传输方式,波特率选用9600bps,并采用奇校验,通信时间/字符为1ms/字符。
因为OB86中只调用FCl02诊断模块,所以tE由FCl02的执行时间决定。为分析OB86中调用FCl02时FCl02的执行顺序,对FCl02进行了适当的修改以便采集数据。这些修改主要包括:在FCl02的开始加入采集状态程序段;在跳转指令处采集跳转条件。在手动触发一些故障之后,对得到的数据进行分析便得到了FCl02的执行顺序。在各个代码段两端插入读系统时间功能块,对FCl02的程序执行时间进行分段测量。结果如表1所示(表中,为SFC58执行时间;t(2ss)8为2次SFC58执行时间;t’为其余时间;t(PC102)为FCl02总执行时间)。
测量结果中FCl02执行时间并不等于各个时间段之和,这是因为读系统时间功能块的测量精度只能达到l ms。但从表中仍不难看出FCl02执行时间主要集中在调用系统功能SFC58向ET200M写数据(控制从站切换)的操作上,SFC58的调用次数等于ET200M从站个数,因此可以近似得出tE=3 ms×ET200M从站个数。
式(3)中ts与主CPU的OB86中断产生的时刻有很大关系。
如果主CPU在调用FB101执行发送功能之前产生OB86中断,则在发送数据时主CPU直接把故障状态发送给备站,在这种情况下ts短,为发送一次数据所用时间tt,即
(4)
若主CPU调用FBl01执行完发送功能时产生OB86中断,则主CPU要把先前数据发送完毕才能发送故障状态到备站。在这种情况下,由于先前数据发送完毕的时刻不同,ts也会得到不同的值。
a.若先前数据发送完毕在主CPU调州FB 101执行发送功能之前,将立即发送主站的状态,则
(5)
b.若先前数据发送完毕在主CPU执行完发送功能之后,则要等到下个周期调用发送功能时才能发送主站的故障状态。此时,ts是长的。
(6)
式(3)中tD与备站接收完故障状态的时刻有密切关系。
若数据接收完成是在备CPU调用FBl01执行接收功能之前,则备CPU将马上得到主CPU状态,并在调用发送功能时备CPU切换成主CPU。此时tD小,仅为一个FBl01的执行时间,即
(7)
若数据接收完成是在备CPU调用FBl01执行接收功能之后,则备CPU要等到下个周期调用接收功能时才能获得主站的状态,并在调用发送功能时切换成主CPU。此时tD是大的。
(8)
由以上分析可知,在以下2种情况将得到这2类故障主备CPU切换时间的极限值。
a.如果故障发生后主CPU马上发送故障状态,并且备CPU接收完数据是在备CPU调用接收功能之前,主备切换时间是短的。
(9)
b.如果故障发生时主CPU已经开始发送数据。并且此数据发送完毕是在主CPU调用完发送数据功能之后,而备CPU接收完数据是在备CPU调用完接收功能时,主备切换时问是长的。
(10)
以上所涉及的时间中,tE、t.和k所占比重大,其余时问经测量均约为1 ms。如果要减小主备切换时间,必须减小tE、t,和k。要减小tE就要减少ET200M从站数量,即在满足要求的情况下减少I/0数量。减少t。好的方法是选择主站与备站之间较快的数据同步通信方式。如Profibus总线方式比西门子PLC自带的MPI方式能在较短的时间内发送更多个字节数据。但前一种方式需要另外配置通信模块。k为PLC循环扫描周期,与用户程序长度有关。典型的中等规模的PLC控制系统,经计算主备切换时间的极限值范围约为150---500 ms。
3、数据同步时间分析
在PLC软冗余系统中,要使主系统发生故障时,备系统接替主系统继续工作,则系统在正常运行时,主控制器必须把需要同步的数据发送给备控制器,从而当故障发生时能够实现无扰切换。
数据同步时间是指系统正常运行时,主站将同步数据发送至备站所需时间。西门子软冗余系统的数据同步是根据数据量的大小通过定时中断方式分多次进行,单次同步的数据量相同。主CPU在同步开始时将所有需要同步的数据保存起来,然后每次发送相同长度的数据块到备CPU。备CPU每接收到一个数据块就将其分配到对应的地址空间中去。这种方式将时间平均分配到了各个执行周期,避免了单次发送所有数据消耗过多时间。但是这也导致了备站得到的数据将滞后手主站。
通过分析可知,数据同步时间为
(11)
其中,LD为同步数据量。它为PLC输出过程映像区、位地址区所有冗余数据块、定时器和计数器的背景数据块和非冗余数据块长度之和。N为1次数据传送量,与数据同步方式有关。如Profibus总线方式可在1.5 Mbit/s传输速率下。每60 ms传送240个字节数据。而西门子PLC自带的MPI方式只能在187.5 Kbit/s传输速率下,每152 ms传送76个字节数据。行为传送1次数据程序执行周期数,即
(12)
式中td为传送1次数据的时间,与数据同步方式有关;Tob35为定时中断间隔时间。
为减小数据同步时间,应尽量减少同步数据量LD,选择较快的数据同步方式以增加1次数据传送量N和减少传送1次数据时间td。典型的中等规模PLC控制系统,数据同步时间可能超过l s。
4、结论
,PLC软冗余系统出现特定故障时,系统通过软件冗余主备切换机制,使备站在经过主备切换时间后接替主站保持系统继续T作,避免系统停止运行。主备切换完成后,备用系统以后一次完整的同步数据作为基础执行控制任务。PLC软冗余系统主备切换的功能,达到了提高可靠性、降低成本的目的。
但是,由于主备切换时间较长,在主备切换过程中系统暂时失去了控制功能,故不适合实时性要求较高的控制场合。PLC软冗余系统比较适合应用于实时性要求较低的过程控制应用场合。
在工业自动化系统中,为了使系统长期稳定可靠地运行,大量选用可编程逻辑控制器(PLC)作为控制器,甚至在此基础上组建冗余系统进一步提高系统的可靠性。冗余的分类方式很多。目前,采用的PLC冗余方式分为2种,即软冗余和硬冗余。西门子公司在这2方面均给出了解决方案。基于S7-400H的硬冗余的可靠性高,但构建系统成本也较高。而基于S7-300或S7-400的软冗余是一种综合考虑提高可靠性和降低成本的折中方案。目前,软冗余系统已经在污水处理、冶金、化工等控制工程中得到了普遍应用。但目前对于软冗余的性能,仍缺乏系统的研究。文中首先叙述西门子PLC软冗余系统的实现原理,然后重点分析主备切换时间和数据同步时间,以便为类似控制系统设计提供参考依据。
1、 软冗余实现原理
典型的PLC软冗余系统组成案例如图1所示。
图1 典型的PLC软冗余系统组成
在系统运行时2个CPU均启动,但只有主CPU执行控制命令,备用CPU检测主CPU状态,时刻准备接替主CPU继续工作。与主CPU通信的IMl 53—2模块处于激活状态使主CPU能访问I/0模块。当系统发生特定故障时,系统可以实现主备切换,备站接替主站继续运行。这些故障包括:主机架电源、背板总线等故障;CPU故障;Profibus现场总线网络故障;ET200M站的通信接口模块IMl53故障。
PLC软冗余系统要实现软冗余功能,需要存程序中调用冗余软件包的功能模块,其主要包括:初始化冗余系统运行参数的FCl00模块;故障诊断、主备切换的FCl02模块;发送/接收数据的FBl03模块;调用FBl03进行数据同步、分析系统状态的FBl01模块。带有冗余功能的程序结构见图2。
图2 带有冗余功能的程序结构
在PLC每个循环执行周期中,主系统先凋用FBl01接收并分析备系统状态,然后执行冗余程序,后再调用FBl01将需要同步的数据发送到备系统。备系统先调用FBl01接收并分析主系统状态,跳过冗余程序,然后将备系统状态发送到主系统。需注意的是,实现冗余功能的重要模块FBl01执行时先分析主备系统状态,然后再发送数据(或接收数据)。由于软件是顺序执行,将导致接收到对方故障信息后,对故障处理的滞后。软件顺序执行机制是导致软冗余切换时间较长的一个重要原因。
2、主备切换时间分析
主备切换时间是指系统发生故障到备站接替主站正常丁作所需要的时间。
2.1 主CPU或电源模块故障分析
当前2种故障发生时,ET200M站的主通信接口模块IMl53与主CPU失去连接。自动在主备通信接口模块IM]53之间实现切换。同时备CPU在向主CPU发送备站状态时将检测到同步线数据传输错误,继而主动切换成主CPU。
如果主CPU故障出现在备CPU调用FBl01执行发送功能之前,那么接下来备CPU在调用发送功能时就能检测到与主CPU通信连接故障,并在下一个周期调用接收功能时备CPU切换成主CPU。此时主备切换时间t短。
(1)
式中t为主备切换时间;Tcyc为PLC循环扫描周期;t(FB101)为冗余功能块FBl01执行时间。
如果主CPU故障发生时备CPU刚调用FB101执行完发送功能,那么备CPU要在下一个周期调用发送功能时才能检测到与主CPU通信连接故障,并且还要等待调用接收功能时备CPU切换成主CPU。此时主备切换时间t长。
(2)
2.2 Profibus或ET200M主站故障分析
当后2种故障发生时,发生故障的ET200M从站的备IMl53将检测到主IMl53故障,自动将自己切换为主IMl53。主CPU将因为与故障IMl53失去连接而引发OB86(故障诊断)中断,并在中断中调用诊断模块FCl02完成所有从站的切换,并将自己置为备用。然后,主CPU将故障信息发送到备CPU。备CPU收到故障信息后将自己切换成主CPU。这时的切换时间为
(3)
式中tR为OB86中断响应时间,CPU315—2DP为1 ms;tE为OB86执行时问;ts为故障状态发送时间;tD为数据接收完毕到备站切换成主站的时间间隔。