硬件:两台315-2dp,没有cp342-5模块,组成的冗余系统。
网络组成:电脑通过profibus线连接到cpu的MPI口,从MPI上rs485-90出来连接到另外一个cpu的MPI口。两个cpu通过dp口分别链接到ET200M的两个IM153-2。
现象:
1. OB100中调用的fc100,如果冗余的数据MB, IEC, DB, DB_A_B_NO, DB_B_A_NO的“长度”均设置成零,那么整个冗余系统能工作,可以通过断电或者是DB5.DBX10.0进行冗余切换;
2. 如果以上任何一个数据长度不为零,两个cpu一开启就必然有一个cpu进入stop模式,缓冲区指示:一系列的“读取和写入区域长度错误”+“由优先级系统引起的stop模式”。比如:“事件 2 / 100: 事件 ID 16# 2522; 读取时发生区域长度错误; 全局 DB,双字访问, 访问地址: 938; 所需的 OB:编程错误 OB (OB121); 优先级:12;内部错误, 进入的事件”;
3. 如果把程序下载到PLC中,然后关闭计算机,啥问题都没了,工作正常;
4. “3”工作正常的情况下,一旦打开电脑,CPU又进入“2”中的错误;
备注:第“2”中的现象,除了冗余必须的程序外,没有任何其它程序也会出错;第“3”中的现象,即使OB35中有冗余程序段,也不会出错。
请教大家:
1. 以上现象,是因为我的电脑造成的,还是因为没有CP模块造成的。
以前已经请教过大家好几次了,再麻烦大家一下
问题补充:
DB_WORK_NO DB_SEND_NO DB_RCV_NO不是说“用户不需要生成该数据块,也不使用该数据块的数据”吗,我的块中看不到DB1-DB3
最佳答案
1、软冗余可以通过MPI、DP、TCP/IP等方式进行同步,所以并不是因为没有CP模块造成的。
2、如果修改冗余数据<MB, IEC, DB, DB_A_B_NO, DB_B_A_NO>的长度,CPU重启前务必将自动生成的DB块<DB_WORK_NO、DB_SEND_NO、DB_RCV_NO>在线删除,否则系统无法自动生成新的DB块,从而导致<读取和写入区域长度错误>。
3、计算机会引起CPU工作不正常??这点倒是很奇怪。
补充:是在线Online查看。
提问者对于答案的评价:
感谢各位的热心回答,尤其是dcount的qq联系和西门子技术人员,都非常热心!最终调试成功了:
cpu1和cpu2的软冗余通信,均采用a1b1-a1b1,计算机到cpu1采用a1b1-a2b2;
改变fc100的参数后,吧ob35里面的fb101删除重新写入;
删除db5,重新写入;
再次感谢各位!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc177256.html