SIEMENS西门子内江授权代理商
运行模式
CPU 417-4H、CPU 414-4H 和 CPU 412-3H 的操作系统可自主执行 S7-400H 的所有必要附加功能:
数据交换 故障响应(控制转换给备用设备) 两个子设备的同步 自检
冗余原理
S7-400H的工作符合“热备份”模式的主动冗余原理(支持故障发生时的无重启自动切换功能)。根据该原理,在*运行期间,两个子单元都处于工作状态。当故障发生时,未出现故障的设备将独立地接管过程控制。
为了确保平稳的控制接管,必须通过中央控制器链路实现高速、可靠的数据交换。
在控制转移期间,设备自动地使用
相同的用户程序 相同的数据块 相同的过程图像内容 相同的数据,例如定时器、计数器、位存储单元等
这意味着,这两个设备的更新操作始终*一样,并可以在出现故障时独立地继续执行控制功能。
I/O 工作于冗余模式时,其结果将是:
在*的工作期间,两个模块均处于工作状态,即,在存在冗余输入的情况下,例如通过两个模块读入的共用传感器(也可以设置两个传感器)的信号,会对其结果进行比较,以将*性的值提供给用户以进一步处理。对于冗余输出来说,由用户程序计算出的值通过两个模块来输出。 如果出现了故障,例如输入模块中有一个或者两个均出现了故障,则不再寻址故障模块,且对故障进行报告处理,此后,仅使用未出现故障的模块继续工作。联机修理工作完成之后,又可以寻址两个模块。
对于无重启切换,必须实现两个子单元的同步。
S7-400H采用“事件驱动同步”技术。
同步操作伴随着导致两个子单元内部状态出现差异的每个事件而进行。这些事件的发生情况例如有:
直接访问 I/O 中断、报警 更新用户时间,或 使用通信功能更改数据。
同步由操作系统自动完成,程序编制期间无需处理。
自检
S7-400H 可执行大量自检。这涉及到以下部分的检测工作:
中央控制器的连接。 CPU 处理器/ASIC 存储器
每个检测到故障都将被报告。
启动时自检
启动时,每个子单元都会完整地执行全部自检功能。
循环工作期间的自检
完整的自检需要多个循环。每个循环仅执行一小部分的自检,因此,施加至物理控制器上的负荷很小。
组态、编程
S7-400H 的编程与 S7-400 相类似。所有可用的 STEP 7 功能都可以使用。
对 S7-400H 进行编程需要使用 STEP 7 V5.2。
I/O模块的组态
硬件组态时,用户必须通过HW Config明确地指出彼此相互冗余的模块。这仅需指出需要工作于冗余模式的模块和需要作为“冗余伙伴”的第二个模块。在用户程序中,程序编制时使用地址低的那个模块。第二个地址对用户来说不可见,无论是冗余还是非冗余I/O,控制部分的编程工作都*相同。与非冗余I/O的差别是,冗余I/O程序有两个块库中的功能块(RED_IN 和 RED_OUT),且在用户程序的起始和结束部分调用这两个功能块。
SIMATIC S7-400,定位组件 FM 451,用于急速/慢速 驱动,3 通道 包括项目组态包 在 CD 上
编程:
如果调试面板没有问题可以回到程序块进行编程,程序块的管脚及使用方法与之前的调试面板完全一致,所以非常方便的参考调试面板进行编程(图17),工艺功能块的部分主要参数及功能请参见表02。
图17. 高速计数程序功能块
计数器工艺功能的主要参数:
序号 | 名称 | 功能 |
1 | SwGate | 软件门:通过该控制位来控制计数器启动和停止; |
2 | ErrorACK | 错误应答:出现错误并处理错误后通过此控制位来复位故障状态; |
3 | EventACK | 事件应答:确认计数器事件状态,如:计数值超限等; |
4 | SetCountValue | 设置计数值:通过该控制位可以将当前计数值更改为其他值,注意:修改值需要写到工艺对象静态变量“NewCountValue”中; |
5 | StatusHW | 工艺模块状态位: 模块已组态并准备好运行, 模块数据有效; |
6 | StatusGate | 门状态位:该状态位反映了内部门的实际状态,只有改状态为为"True"时,计数器才会工作; |
7 | StatusUp | 增计数状态位:表示当前计数方向为增计数; |
8 | StatusDown | 减计数状态位:表示当前计数方向为减计数; |
9 | PosOverflow | 超上限状态位:表示当前计数值已经超过设定的计数值上限; |
10 | NegOverflow | 超下限状态位:表示当前计数值已经超过设定的计数值下限; |
11 | Error | 错误状态位:表示当前计数工艺对象有错误; |
12 | ErrorID | 错误代码:显示当前工艺对象错误的故障代码; |
13 | CounterValue | 计数值:计数器工艺对象的实际计数值; |
表02. 计数器工艺功能的主要参数
7. 通过用户程序修改实际计数值:
在很多情况下都有可能需要人工修改一下当前的实际计数值,这需要首先将要修改的值传送到工艺DB的新计数值"NewCountValue"中,然后置位功能块输入管脚“SetCountValue” 则新计数值生效(图18)。具体步骤如下:
(1). 选中左面项目树的"High_Speed_Couter"工艺对象;
(2). 展开下面的详细视图,则可以看到工艺DB中的所有变量;
(3). 找到"NewCountValue"变量,并将其拖拽到用户程序的传送指令输出端;
(4). 将新的计数值传送到"NewCountValue";
(5). 置位功能块输入管脚“SetCountValue” ;
(6). 新的计数值生效。
图18. 通过用户程序修改实际计数值
8. 通过用户程序修改比较值:
同修改实际计数值的方法类似,用户也可以通过用户程序修改该组态里面预制的比较值(图19),具体步骤如下:
(1). 选中左面项目树的"High_Speed_Couter"工艺对象;
(2). 展开下面的详细视图,则可以看到工艺DB中的所有变量;
(3). 找到"NewReferencevalue0"变量,并将其拖拽到用户程序中进行赋值;
(4). 找到"SetReferencevalue0"变量,并将其拖拽到用户程序中进行置位,就可以将刚刚修改的新比较值写到计数器模块中。
图19. 通过用户程序修改比较值
9. 查看工艺对象 DB 中的所有变量
上 述查找工艺对象变量的方法适用于 STEP 7 TIA Protal V13 以上版本,之前的版本可以通过鼠标右键点击工艺对象名称,选则下面的"打开 DB 编辑器" ,这样可以通过数据视图显示工艺对象 DB 里面的所有变量,使用变量的时候可以在用户程序中直接敲入相应的变量名即可(图20)。
图20. 查看工艺对象 DB 中的所有变量