我在做S7-300软冗余系统,用的是两套315-2DP类型的CPU。
我在官网找到了软冗余包以及相关的软冗余例子,自己编写了简单的软冗余程序想做个练习。
我按照软冗余手册资料进行了相应的硬件组态,并分别将主、备站冗余程序块【包括软冗余包程序块,背景数据块,各种错误处理OB程序块等】下载至两套CPU中,OB100初始化正常,OB86调用FC102正常。然后,我主备站都在程序块OB35中调用的FB101冗余,并且在OB35中编写了简单的程序。
如:主站中编写了常闭触点输出Q0.2,备站编写了常闭触点输出Q0.7。【其实就是为了在主备站切换时候区分到底有没有切换成功,所以主站输出0.2,备站输出0.7】
然后,硬件组态编译没有任何问题,冗余链接正常;主备站OB35程序监视中的返回值均为0,也正常;主备站之间可以实现控制字切换,并且主备站的状态字切换前后均正常,接口模块ACT动作正常。我用的PROFIBUS通讯模块【CP342-5】实现冗余数据传输。
但是问题是,我在主备站切换完成后,I/O模块输出值本应该由主站输出的Q0.2变为备站输出的Q0.7才对,但现在从站I/O模块同时输出了Q0.2和Q0.7,请问这是什么原因?
即使将两套系统中的主备站程序交换一下,还是会出现同样的问题,即I/O模块同时会把主备站的程序输出。我该怎么找到错误原因所在,如何解决。
最佳答案
1、检查组态的一致性,软冗余要求组态绝对的一致性
2、切换时间,软冗余是秒级以上的切换,如果切换时间不够可能导致切换不完全。
提问者对于答案的评价:
1、我的硬件组态是完全一致的,都核对过了。
2、至于您说的软冗余系统切换时间不够,我不明白是什么意思。
怎么查看软冗余系统的切换时间,如何设置主备站的切换时间,能麻烦您具体讲一下么
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc290056.html