西门子S7-400PLC

发布时间:2018/5/29 10:02:00

西门子S7-400PLC

6ES7416-3XR05-0AB0SIMATIC S7-400,CPU 416-3 中央处理器,带: 内存 11.2 MB, (5.6 MB 代码,5.6 MB 数据), 1. 接口 MPI/DP 12 MBIT/S, 第 2 个 PROFIBUS DP 接口, 第 3 个 SS IFM 模块接口,可插拔

说明   下表包含了延迟跳转到下一步的几个示例步骤。步骤 1 到 4 中的每个步骤都通过编程建立了一个互锁。互锁和结构变量的含义如下所示: 互锁 C:互锁的一个可编程条件,它影响单个动作的执行。 STEP1 U:不被中断的步初始化时间。 STEP1 T:全部步的初始化时间。 STEP1 LA:互锁未完成。 ......

说明  
下表包含了延迟跳转到下一步的几个示例步骤。步骤 1 到 4 中的每个步骤都通过编程建立了一个互锁。互锁和结构变量的含义如下所示:

  • 互锁 C:互锁的一个可编程条件,它影响单个动作的执行。

  • STEP1 U:不被中断的步初始化时间。

  • STEP1 T:全部步的初始化时间。

  • STEP1 LA:互锁未完成。

例如,互锁在步骤 1 中完成,顺控器经指定的时间 T2 后生成到下一步的跳转并完成跳转。
 

序号跳转到下一步的互锁功能实例的示例步骤:
1步骤 1
一旦步激活,且完成互锁,立即启动时间 T2。当指定的时间 T2 结束后,通过查询下一个跳转条件完成到下一步的跳转。


图 01

缺点 
如果在进入步时未完成互锁,则不启动定时器 T2。

注意事项 
应在下使用之前复位定时器 T2;通过“S0 TR”动作离开步骤 1 时完成复位操作。启动后时间 T2 独立于互锁条件运行。即使互锁条件未满足,也将执行到下一步的跳转。

2步骤 2
一旦实现激活步骤的互锁条件,定时器 T2 立即启动。因为在进入该步骤时互锁条件已满足。


图 02

缺点 
如果进入该步骤时,互锁没有实现,则不启动定时器 T2。只有在激活的步骤中将条件禁止然后再重新激活,定时器 T2 才启动。

注意事项 
应在下使用之前复位定时器 T2。通过“S0 TR”动作离开步骤时完成复位操作。启动后时间 T2 独立于互锁条件运行。即使互锁条件未满足,也将执行到下一步的跳转。

但是,通过组合“L1 TR T2”动作,可以避免步骤 1 和步骤 2 的缺点。通过“L1 TR T2”动作,如果发生下面的情况将停止计时:

  • 激活步骤中的互锁条件不再满足。

  • 步骤激活时,互锁条件不再满足。

3步骤 3
不使用定时器,而使用内部时间。指定的时间是 IEC 时间。指定的 10 秒时间结束后,当标志位 M0.2 或标志位 M200.0 接收到逻辑真信号时,跳转 T3 将步骤 S3 跳转到下一个步骤。


图 03

缺点 
步骤 S3 中的互锁仅阻止时间结束后的跳转,没有为步骤提供其它条件。

4步骤 4
不使用定时器,而使用内部 IEC 时间。此处仅仅考虑步骤处于连续激活状态的那一段时间。也可以选择步骤持续时间 T 被计时的那段时间。通过比较查询完成跳转。


图 04

5定时器的另一个缺点是:在同一个周期中不能对所用的定时器进行复位操作并重新使用。因此,必须为依次直接激活的步骤选用独立的定时器。 在 S7-GRAPH 中,也可以选择跳过后续的步骤。通过“Options > Block Settings > Tab: Compile/Save”,在“Sequencer Properties”中激活“Jump steps”选项。如果步骤之前和之后的跳转条件同时满足,则在激活“Jump steps”选项时就不激活该步骤。


图 05

6使用结构变量 STEP3 U、STEP3 LA 和 STEP3 T 编程动作
步骤 3 中的动作 (D M200.0,T#10s 或 D C M200.0,T#10s) 可以通过查询 STEP3.U、S TEP3.LA或STEP3.T 代替 。例如,动作“D C M200.0,T#10s”对应于跳转中的条件“STEP3.LA AND STEP3.T>=T#10s”。

更多动作 (图 06)

  • 计算没有互锁的周期数 (步骤 7)。

  • 计算没有互锁的持续时间 (步骤 8)。
    使用“IEC Function Blocks”库中的标准功能 FC25 (MAX) 可以计算没有互锁的时间。可以在本步骤中调用该 FC。

  • 计算“Step was not interlocked for at least one cycle”的标志 (步骤 9)。
    在个周期中,将所需参数初始化 (“S1 R Operand”或“S1 N Operand:= Initial value”),在后续周期中参数根据互锁条件进行改变。


图 06

西门子S7-400PLC

注意在块设置中选择“Jump steps”选项:
在正常操作中,调用 S7-GRAPH FB 时检查当前步的跳转。 如果满足跳转条件,则将跳转到下一步并执行该步。无论下跳转条件是否满足,S7-GRAPH FB 将停止执行,处理循环程序的剩余部分。

当在 S7-GRAPH 顺控器重选择了“Jump steps”选项时,处理到不满足跳转条件的下一步的跳转,并执行该步骤。在已执行的上一步和当前激活的步 (即,满足上一步和下一步跳转条件之间的步骤) 之间的所有步都不处理。

当“Jump steps”选项激活 时,在调用 S7-GRAPH FB 后在一个不同的块中处理关键步的互锁 。如果初始步与目标步之间有多个步,这也不成问题,因为在到达关键步之前有多个OB1 周期。在正常操作中,始终在关键步到达之前处理互锁功能。

选择了“Jump steps”选项时,如果初始步和关键步之间的所有步被跳过,则只能在关键步后执行带互锁功能的块。因此,在到达关键步之前不满足互锁条件,该步骤在顺控器控件中标记为红色。

在这种情况下,为了即使在选择了“Jump steps”选项时也能与正常操作的特性相同,必须在 S7-GRAPH FB 之前调用带互锁处理的块。

描述
下表是 STEP 7 (TIA Portal) V11 的两个关于输入信号延迟输出处理的样例程序。 

序号应用和样例程序
1"STEP7_TIA_Portal_V11_DeadTime"包含延迟输出其输入信号的功能块"DeadTime  "(FB22)。 应用该功能块前需先参数化以下的输入和输出变量。
  • 输入变量

    • INV:输入信号为 Real  类型

    • N_SMP:延迟时间间隔的系数为 INT 类型

    • COM_RST:重新触发条件为 Bool 类型

  • 输出变量 

    • OUTV:输出信号为 Real  类型

为了保证程序在一个固定时间间隔内被执行,应该在“循环中断”OB(OB200)中调用"DeadTime"功能块。在每个时间间隔内输入信号被保存在静态变量"STORE"中,数据类型是20 个实数的数组"ARRAY "。 用"N_SMP"定义ARRAY  数组的个数,然后在每个时间间隔内将输入信号从当前的数据寄存地址送到下一个地址。 一旦输入数据被送到一个寄存地址就将该输入信号传送给输出变量"OUTV"。您可以定义 20 个数据寄存的数组。 数组数据寄存器之间的固定时间间隔是延时时间的一个测量单元.


图. 01

例如
在这个功能块中将输入信号"INV"延时一秒输出为"OUTV"。“循环中断 ”OB的时基默认为 100 毫秒。因此输入变量的系数"N_SMP"应为 10。

  • DeadTime  = "N_SMP" * 时间间隔(OB200) = 10 * 100ms = 1000ms = 1s.


附件"STEP7_TIA_Portal_V11_DeadTime"是一个 STEP 7 (TIA Portal) V11  项目,块说明有德语和英语注释。拷贝"STEP7_TIA_Portal_V11_DeadTime.zip" 文件到一个独立目录下,然后双击打开。 这个 STEP 7 项目和所有相关子目录自动解压缩。然后您可以用 STEP 7 V11 打开并执行该压缩项目。


2"StepZero"功能是定义一个零输出步长,这个零输出步长指的是将输入信号从接受开始到达一个特定时间点后被输出的时间。下面是"StepZero"功能的输入和输出变量。
  • 输入变量

    • Tzero:零输出步长时间为 DTL 数据类型

    • INV:输入信号为 Real  类型

  • 输出变量

    • OUTV:输出信号为 Real  类型

在STEP 7 V11 中通过使用指令"RD_SYS_T"读出 CPU 系统时间,然后和零输出步长时间"Tzero"参数进行比较。CPU 的系统时间被保存在 DB  变量"DBStore1.DateTimeCPU "中,零输出步长时间被保存在 DB 变量"DBStore1.DateTimeSet"中。 根据下面的条件计算零步长(输出为 0)运行时间及延时控制输出。

  1. DBStore1.DateTimeCPU < Tzero : OUTV = 0.0

  2. DBStore1.DateTimeCPU = Tzero : OUTV = INF

  3. DBStore1.DateTimeCPU > Tzero : OUTV = INF

例如
"Tzero"参数是选择零输出步长时间 ,在本例中将" T#2010-12-1-11:10 "时间作为结束零输出步长时间。在DB变量" DBStore1.DateTimeCPU "到2010年12月1日11点10分之前输出变量"OUTV"一直为0。在到达这个指定时间之后输出变量的值就是输入变量的值。


图. 02


附件"STEP7_TIA_Portal_V11_StepZero"是一个 STEP 7 (TIA Portal) V11  项目,块说明有德语和英语注释。打开并拷贝"STEP7_TIA_Portal_V11_StepZero.zip" 文件到一个独立目录下。 这个 STEP 7 项目和所有相关子目录自动解压缩。然后您可以用 STEP 7 V11 打开并执行该压缩项目。


表 01

两种功能的区别

表 02 是"STEP7_TIA_Portal_V11_DeadTime" 和 "STEP7_TIA_Portal_V11_StepZero"功能的区别。 

功能DeadTimeStepZero
应用:延迟实数信号延迟实数信号
输入变量数量:32
输出变量数量:11
输入和输出变量数据类型:REALREAL ,TIME
执行的延迟时间:用“ 循环中断块”(OB200)用“ 主程序块”(OB1),“ 启动程序块” (OB100)

表 02

创建环境
表 03列出了创建这个条目和验证此功能所使用的组件。
 

测试环境版本
PC平台Intel(R) Core(TM)2 Duo CPU P8700 2.53 GHz
PC 操作系统微软 Windows XP SP3
STEP 7V11 + SP2
CPU 1214C (6ES7214-1AE30-0XB0)固件版本 V2.0

西门子S7-400PLC