利用RSVIEW32的事件机制实现软冗余自动切换 for baidu

利用RSVIEW32的事件机制实现软冗余自动切换原文作者:darnis@21cn摘要:在RSVIEW32中支持事件机制,当RSVIEW32中定义的事件被调用EventOn启用后,在事件指定的触发方式下,会周期性或者连续地扫描执行。而每当事件被扫描时,如果事件条件结果由0变换到1,那么事件就发生,此时该事件所指定的执行行为将被RSVIEW32自动执行,按RSVIEW32对事件的固有支持特性,在配置有双PLC的软冗余系统中成功实现了快速接管活动PLC工作的任务。关键字事件冗余PLCRSIVEW32在硬件投资不足的情况下,我们为了获得足够的冗余功能,往往可以配置双PLC再辅以PLC程序来实现软件冗余功能。这里不对PLC程序如何保证双PLC之间的冗余功能作深入的探讨,只对已经实现软件冗余功能的双PLC系统中,RSVIEW32如何正确有效地连接到当前活动的PLC上作研究。说到RSVIEW32对软冗余的支持,我们必须对RSLINX对软冗余的支持作一些技术说明,RSLINX作为RSVIEW32与PLC通讯的中间桥梁提供了对软冗余功能的基本支持。在RSLINX可以配置AliasTopics,通过Alias来管理多个不同Topic之间的切换工作,我们知道AB的PLC网络中一个Topic可以连接到一个特定的PLC,这样通过对RSLINX的Alias功能就可以实现RSVIEW32正确有效地连接到活动的PLC。当然这里说到的只是可行的途径,具体我们怎么来做呢?1、实现冗余切换首先,我们通过RSLINX的菜单“DDE/OPC”“AliasTopicsConfiguration…”菜单项可以进入别名管理界面,在这里面我们可以增加一个新的别名,并且这个别名将会管理我们实际需要进行冗余备份功能的两个PLC的Topic。如下图所示。在ConfigureAliasTopics对话框中,我们同时可以设置别名所管理的Topic之间如何,在哪种时机做何种切换行为。A.Switchonerror,在错误时发生进行切换B.Switchoncommand,接受命令切换C.Switchwhenbitiszeroorone,指定的位为0或者1时切换有经验的工作者都知道,如果我们使用Switchonerror或者Switchwhenbitiszeroorone进行自动管理Alias往往都不能如我们意地在网络故障时进行自动切换工作,因为RLINX与PLC之间是通过TCP进行通讯的,在网络断电或者其它异常情况导致的网络中断时(PLC断电),TCP协议决定了网络故障发现时间在10秒左右的时间(RSLinx发现网络故障的时间更长)。在网络故障未被发现的这段时间内,RSLINX会维护最后一次通讯的值,直到发现网络故障时,才做出通讯质量判断(RSVIEW32上的表现,OPCClient未做测试)。这就导致A、C方式的自动切换很可能因为RSLINX对网络状态的判断不及时而不能如意地进行切换。B方式的切换给予了开发者根据实际情况进行程序控制切换的能力。在RSVIEW32中也正好可以通过RSLINX的内嵌命令@SwitchTopc进行Topic之间的程控切换,如何让RSVIEW32灵敏地探测到PLC的活动状态并且自动通知RSLINX进行Topic进行切换呢?下面对技术方面作详细说明。结合PLC对冗余的快速反应和RSVIEW32的事件机制特性,我们拟采用PLC通知RSVIEW32向RSLINX发送切换命令的方案来保证RSVIEW32始终连接到当前活动的PLC上。RSVIEW32为了快速地检测到当前活动的PLC,我们在RSVIEW32中建立两个分别直接到PLC1和PLC2的TAG(在RSVIEW32标记数据库中命名为r1,r2),并且这个TAG在PLC发生了切换后,会产生一定周期性的方波以通知RSVIEW32,RSVIEW32检测到变化后,通知RSLINX进行切换,并且根据RSLINX执行结果再通知PLC程序切换工作是否变成,如果完成,PLC锁定TAG值为0。这样在RSVIEW32事件中创建一个新的事件,并且增加事件记录,事件条件为r1||r2,执行动作为str1=string;done=1。这样就可以在任意一个PLC接管工作后,产生方波通知RSVIEW32,RSVIEW32的周期性事件条件r1||r2总能检测到请求,再执行切换操作str1=string,切换成功后再通知PLC已经完成切换done=1。这样通过PLC与RSVIEW32相配合来完成在PLC切换后,RSVIEW32能够以最快速度影响切并且切换连接到当前活动的PLC上。2、RSVIEW32控制RSLinx切换的原理神奇的str1=string赋值语句将会执行切换工作。查看RSLinx的联机说明文档,可以看到RSLinx具有很多命令可以调用,其中对我们冗余直接有效的就是SwitchTopic指令,它是用于通知RSLinx把别...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?