西门子PLC实现软冗余的原理
软冗余的原理和系统配置要求
能够实现软冗余功能的CPU有具体的要求,在S7-300中,315-2DP型(包括313C-2DP、314C-2DP)以上的CPU才能支持,所有的S7-400 CPU都支持软冗余。主、备系统的CPU型号可以不同,如其中一套系统采用S7-400系列,另一套系统采用S7-300系列。数据同步可以通过MPI、PROFIBUS、Ethernet三种不同的网络方式。需要两套系统共同控制的I/O信号需要采用ET200M从站采集,由于要接入两套CPU中,因此ET200M要选用冗余的IM153-2接口模块,并且采用有源总线模块。软件需要安装软冗余软件包,只有安装了软件冗余包STEP7中才会出现冗余功能库。
软冗余系统的编程调试和故障诊断
STEP7中的冗余软件包包含了多个功能块,每个功能块都有特定的功能和调用方法,而且不同程序库中的功能块应用的场合不同,使用时需要加以区分。由于是通过软件程序来实现冗余,因此软冗余系统在编程调试时有些特点要注意。如在OB100中初始化程序块FC100,定义系统运行的参数要正确,冗余输出映像区地址要连续。修改系统参数后要对CPU进行复位,重新下载全部项目到PLC。
软冗余系统与其他系统连接
6ES7 211-0AA23-0XB0 | CPU221 DC/DC/DC,6输入/4输出 |
6ES7 211-0BA23-0XB0 | CPU221 继电器输出,6输入/4输出 |
6ES7 212-1AB23-0XB8 | CPU222 DC/DC/DC,8输入/6输出 |
6ES7 212-1BB23-0XB8 | CPU222 继电器输出,8输入/6输出 |
6ES7 214-1AD23-0XB8 | CPU224 DC/DC/DC,14输入/10输出 |
6ES7 214-1BD23-0XB8 | CPU224 继电器输出,14输入/10输出 |
6ES7 214-2AD23-0XB8 | CPU224XP DC/DC/DC,14DI/10DO,2AI/1AO(PNP) |
6ES7 214-2AS23-0XB8 | CPU224XPsi DC/DC/DC,14DI/10DO,2AI/1AO(NPN) |
6ES7 214-2BD23-0XB8 | CPU224XP 继电器输出,14DI/10DO,2AI/1AO |
6ES7 216-2AD23-0XB8 | CPU226 DC/DC/DC,24输入/16输出 |
6ES7 216-2BD23-0XB8 | CPU226 继电器输出,24输入/16输出 |
6ES7 221-1BH22-0XA8 | EM221 16入 24VDC,开关量 |
6ES7 221-1BF22-0XA8 | EM221 8入 24VDC,开关量 |
6ES7 221-1EF22-0XA0 | EM221 8入 120/230VAC,开关量 |
6ES7 222-1BF22-0XA8 | EM222 8出 24VDC,开关量 |
6ES7 222-1EF22-0XA0 | EM222 8出 120V/230VAC,0.5A 开关量 |
6ES7 222-1HF22-0XA8 | EM222 8出 继电器 |
6ES7 222-1BD22-0XA0 |
|
| EM222 4出 继电器 干触点 |
6ES7 223-1BF22-0XA8 | EM223 4入/4出 24VDC,开关量 |
6ES7 223-1HF22-0XA8 | EM223 4入 24VDC/4出 继电器 |
6ES7 223-1BH22-0XA8 | EM223 8入/8出 24VDC,开关量 |
6ES7 223-1PH22-0XA8 | EM223 8入 24VDC/8出 继电器 |
6ES7 223-1BL22-0XA8 | EM223 16入/16出 24VDC,开关量 |
6ES7 223-1PL22-0XA8 | EM223 16入 24VDC/16出 继电器 |
6ES7 223-1BM22-0XA8 | EM223 32入/32出 24VDC,开关量 |
6ES7 223-1PM22-0XA8 | EM223 32入 24VDC/32出 继电器 |
6ES7 231-0HC22-0XA8 | EM231 4入*12位精度,模拟量 |
6ES7 231-0HF22-0XA0 | EM231 8入*12位精度,模拟量 |
6ES7 231-7PB22-0XA8 | EM231 2入*热电阻,模拟量 |
6ES7 231-7PC22-0XA0 | EM231 4入*热电阻,模拟量 |
6ES7 231-7PD22-0XA8 | EM231 4入*热电偶,模拟量 |
6ES7 231-7PF22-0XA0 | EM231 8入*热电偶,模拟量 |
6ES7 232-0HB22-0XA8 | EM232 2出*12位精度,模拟量 |
6ES7 232-0HD22-0XA0 | EM232 4出*12位精度,模拟量 |
冗余系统在实际应用中还会涉及到与其他系统进行数据通信、连接上位监控软件WinCC时如何建立冗余链接等情况。
控制器6ES7314-6EH04-0AB0 控制器6ES7314-6EH04-0AB0
数据块(Data Blocks,简称DB)是用来存放执行用户程序时所需的数据与存储程序执行结果的数据存储区,其作用与标志寄存器类似,但数量更多。数据块DB按不同的用途可以分为即时数据块(Instance DataBlocks,又称背景数据块,简称DI)和通用数据块(Data Blocks,又称共享数据块,简称DB)两类。 即时数据块( DI)用于传递功能块的参数,只能被*的功能块FB访问。调用功能块FB时,必须同时*用于该功能块的即时数据块DI,即时数据块内的数据可以自动生成,它们可以是FB变量声明表中的数据(不含临时变量)。 通用数据块(DB)用于存储PLC的全局数据,所有的FB、FC或OB都可以对通用数据块进行读写操作,因此,又被称为共享数据块。通用数据块内的数据不会因用户程序的结束而删除。
功能块(Function Blocks,简称FB块)是由用户编写的、需要**数据块(Instance Data Blocks,称为“即时数据块”或“背景数据块”,简称DI)支持的常用逻辑块。 FB块与FC块的作用基本相同,但FB中除可以使用“**地址”或“符号地址”进行编程外,在结构化编程时必须使用“程序变量”进行编程,因此,FB必须配套的、独立的数据存储区域——“即时数据块DI”。DI -方面可以为调用FB提供执行程序所需要的“程序变量”赋值与其他数据,另一方面,功能块FB也能通过DI给调用它的逻辑块返回所需要的数据。 与功能调用块FC -样,功能块FB中也有部分为PLC生产厂家所提供的、集成在S7 CPU操作系统中的功能块,称为系统功能块(System Function Blocks,简称SFB)。系统功能块SFB同样属于PLC内部操作系统的一部分,用户不需要编写,也不可以对其进行编辑,但可以根据需要直接调用。
6ES7 312-1AE13-0AB0 CPU312,32K内存
6ES7 312-1AE14-0AB0
6ES7 312-5BE03-0AB0
6ES7312-5BF04-0AB0 CPU312C,32K内存 10DI/6DO
6ES7 313-5BF03-0AB0
6ES7313-5BG04-0AB0 CPU313C,64K内存 24DI/16DO / 4AI/2AO
6ES7 313-6BF03-0AB0
6ES7313-6BG04-0AB0 CPU313C-2PTP,64K内存 16DI/16DO
6ES7 313-6CF03-0AB0
6ES7313-6CG04-0AB0 CPU313C-2DP,64K内存 16DI/16DO
6ES7 313-6CF03-0AM0 CPU313C-2DP,64K内存 16DI/16DO组合件(6ES7 313-6CF03-0AB0+6ES7 392-1AM00-0AA0)
6ES7 314-1AG13-0AB0 CPU314,96K内存
6ES7 314-1AG14-0AB0 CPU314,128K内存
6ES7 314-6BG03-0AB0
6ES7314-6BH04-0AB0 CPU314C-2PTP 96K内存 24DI/16DO / 4AI/2AO
6ES7 314-6CG03-0AB0
6ES7314-6CH04-0AB0 CPU314C-2DP 96K内存 24DI/16DO / 4AI/2AO
6ES7 314-6EH04-0AB0 CPU314C-2PN/DP 192K内存/24DI/16DO/ 4AI/2AO
6ES7 314-6CG03-9AM0 CPU314C-2DP 96K内存 24DI/16DO / 4AI/2AO组合件(6ES7 314-6CG03-0AB0+6ES7 392-1AM00-0AA0*2)
6ES7 315-2AG10-0AB0 CPU315-2DP, 128K内存
6ES7 315-2AH14-0AB0 CPU315-2DP, 256K内存
6ES7 315-2EH13-0AB0
6ES7315-2EH14-0AB0 CPU315-2 PN/DP, 256K内存
6ES7 317-2AJ10-0AB0
6ES7317-2AK14-0AB0 CPU317-2DP,512K内存
6ES7 317-2EK13-0AB0
6ES7317-2EK14-0AB0 CPU317-2 PN/DP,1MB内存
6ES7 318-3EL00-0AB0
6ES7318-3EL01-0AB0 CPU319-3PN/DP,1.4M内存
1)cad:改变累加器1中双字的字节顺序。 实数转换为整数时,一般用四舍五入的指令round,偶尔用截位取整的指令trunc。下面两条指令用得很少:rnd+:将浮点数转换为大于等于它的较小双整数,rnd-:将浮点数转换为小于等于它的较大双整数。 2)cdb:交换共享数据块和实例db,l dblg:共享数据块的长度送累加器1,l dbno:共享数据块的编号送累加器1,l dilg:背景db的长度送累加器1,l dino:背景db的编号送累加器1。 3)jl:多分支跳转指令。 jcb:rlo=1时跳转,将rlo复制到br,jnb:rlo=0时跳转,将rlo复制到br。 4)l stw:将状态字装载到累加器1中,t stw:将累加器1传送至状态字,car:交换地址寄存器1和地址寄存器2。 5)与主控继电器有关的指令。s7-200没有类似的指令。 6)rlda:累加器1的双字通过cc1循环左移,rrda:累加器1的双字通过cc1循环右移累加器1 (32 位)。 7)累加器指令 tak:交换累加器1、2的内容。 s7-400 cpu有4个累加器,组成了一个堆栈,可以用下面的指令,将一些临时数据保存在累加器3、4: push:入栈指令,pop:出栈指令,ent:进入累加器堆栈指令,leave:离开累加器堆栈指令。 如果使用上述指令,在编程时需要记住每个累加器中放的是什么数据。可以将中间结果保存在累加器之外的存储区,所以实际上很少使用堆栈指令。