6ES7288-1SR20-0AA0西门子S7-200 SMART CPU SR20
SIMATIC S7-200 SMART,CPU SR20, 上,AC/DC/继电器, 机载 I/O: 12 个 24V DC 数字输入;8 DO 继电器 2A; 电源:交流 47-63Hz 时 85-264V AC, 程序存储器/数据存储器 20 KB
|
SIEMENS西门子
上海丽丞工业自动化设备有限公司
全新原装,质量保证,保修一年
销售及维修西门子各类工控自动化配件;
:S7-200CN、S7-200SMART、S7-300、S7-400、 S7-1200、S7-1500、ET200、LOGO逻辑控制模块 、西门子可编程控制器
西门子楼宇自控
西门子HMI人机界面:触摸屏
西门子变频器:MM420、MM430、MM440、G110、G120、6SE70
西门子工业以太网:通讯网卡、通讯电缆、通讯接头、总线连接器 工控机、交换机、自动化软件等系型号齐全,快速报价,买我们的产品无忧所值,我们的产品都承诺质保一年,让您买的省心舒心,用的放心!
如果不能使用系统支持的冗余I/O(将冗余 I/O 连接到 PROFIBUS DP 接口小节),比如说因为相关模块并未在所支持的组件之列,则可在用户层上应用冗余I/O。
支持下列冗余I/O组态:
为此,CPU 0子系统和CPU 1子系统各插入一个信号模块。
带有有源背板总线的两个ET 200M分布式I/O设备各插入一个信号模块。
提示 使用冗余I/O时,可能需要在计算出的监视时间基础之上增加时间,请参见确定监视时间小节 |
使用冗余I/O的建议策略:
提示 建议不要使用相同的逻辑地址来组态输入模块和输出模块。 否则,除了要查询逻辑地址外,还需要查询OB 122中故障模块的类型(输入或输出)。 当系统处于单模式(例如,直接访问)时,用户程序还必须更新冗余、单向输出模块的过程映像。 如果使用过程映像分区,用户程序必须在OB 72中更新它们(SFC 27“UPDAT_PO”)(恢复冗余)。否则,当系统切换到冗余模式后,在备用CPU的单通道单向输出模块上会首先输出旧值。 |
下面的实例程序显示了两个冗余数字量输入模块的用法:
通过直接访问在OB 1中读取两个模块之一。 对于下列情况,通常假定所述模块为A(变量MODA的值为TRUE)。 如果没有发生错误,则以所读取的数值继续处理。
如果发生I/O数据区访问错误,则直接读取模块B(OB 1中的“第二次尝试”)。 如果没有发生错误,则以所读取的数值继续处理模块B。 然而,如果在此也出现了错误,则两个模块当前都有故障,而且会以替换值继续运行。
实例程序基于这样一种事实:模块A上发生访问错误并更换模块A后,在OB 1中总是先处理模块B。只有模块B上发生访问错误后,在OB 1中再次优先处理模块A。
提示 MODA和IOAE_BIT变量必须在OB 1和OB 122外仍然有效。但ATTEMPT2变量只能用在OB 1中。 |
下面列出了用户程序(OB 1、OB 122)所需的元素。
列表: 冗余I/O实例,OB 1部分
STL |
描述 |
---|---|
NOP 0; |
|
SET; |
|
R ATTEMPT2; |
//初始化 |
A MODA; |
//首先读取模块A? |
JCN CMOB; |
//如果否,则继续模块B |
CMOA:SET; |
|
R IOAE_BIT; |
//删除IOAE位 |
L PID 8; |
//从CPU 0中读取 |
A IOAE_BIT; |
//在OB 122中检测到了IOAE吗? |
JCN IOOK; |
//如果否,过程访问则正常 |
A ATTEMPT2; |
//是第二次尝试该访问吗? |
JC CMO0; |
//如果是,则使用替换值 |
SET; |
|
R MODA; |
//以后不要再首先读取模块A |
S ATTEMPT2; |
|
CMOB:SET; |
|
R IOAE_BIT; |
//删除IOAE位 |
L PID 12; |
//从CPU 1中读取 |
A IOAE_BIT; |
//在OB 122中检测到了IOAE吗? |
JCN IOOK; |
//如果否,过程访问则正常 |
A ATTEMPT2; |
//是第二次尝试该访问吗? |
JC CMO0; |
//如果是,则使用替换值 |
SET; |
|
S MODA; |
//在将来重新首先读取模块A |
S ATTEMPT2; |
|
JU CMOA; |
|
CMO0: L SUBS; |
//替换值 |
IOOK: |
//要使用的数值位于ACCU1中 |
列表: 冗余I/O实例,OB 122部分
STL |
描述 |
---|---|
|
//模块A引起IOAE了吗? |
L OB122_MEM_ADDR; |
//相关的逻辑基址 |
L W#16#8; |
|
==I ; |
//模块A? |
JCN M01; |
//如果否,继续M01 |
|
//访问模块A期间的IOAE |
SET; |
|
= IOAE_BIT; |
//设置IOAE位 |
JU CONT; |
|
|
//模块B引起IOAE了吗? |
M01:NOP 0; |
|
L OB122_MEM_ADDR; |
//相关逻辑起始地址 |
L W#16#C; |
|
==I ; |
//模块B? |
JCN CONT; |
//如果否,继续CONT |
|
//访问模块B期间的IOAE |
SET; |
|
= IOAE_BIT; |
//设置IOAE位 |
CONT: NOP 0; |
|
提示 如果已使I/O模块冗余并在程序中对此进行了考虑,则可能需要给已计算出的监视时间加上一个前置时间,以使输出模块上不会出现波动(HW Config -> CPU属性 -> H参数)。 |
只有当将下表中的模块作为冗余模块运行时,才需要再加上前置时间。
列表: 带有冗余I/O的监视时间
模块类型 |
前置时间(ms) |
---|---|
ET200M: 标准输出模块 |
2 |
ET200M: HART 输出模块 |
10 |
ET200M: F输出模块 |
50 |
带模拟量输出的ET200L–SC |
≤ 80 |
带模拟量输出或技术模块的ET200S |
≤ 20 |
步骤如下:
6ES7288-1SR20-0AA0西门子S7-200 SMART CPU SR20