西门子 S7-300 PLC 从入门到精通的100个问答 点击:3894 | 回复:115



angelwin

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 568回
  • 年度积分:0
  • 历史总积分:420
  • 注册:2013年3月10日
发表于:2013-03-30 22:38:19
楼主

1:使用CPU 315F和ET 200S时应如何避免出现“通讯故障”消息?

使用CPU S7 315F, ET 200S以及故障安全DI/DO模块,那么您将调用OB35 的故障安全程序。而且,您已经接受所有监控时间的默认设置值,并且愿意接收“通讯故障”消息。 OB 35 默认设置为100毫秒。您已经将F I/O模块的F监控时间设定为100毫秒,因此至少每100毫秒要寻址一次I/O模块。但是由于每100毫秒才调用一次OB 35,因此会发生通讯故障。要确保OB35的扫描间隔和F监控时间有所差别,请确保F监控时间大于OB35的扫描间隔时间。

S7分布式安全系统,一直到V5.2 SP1 和 6ES7138-4FA00-0AB0,6 ES7138-4FB00-0AB0,6ES7138-4CF00-0AB0 都会出现这个问题。在新的模块中,F 监控时间设定为150毫秒.




angelwin

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 568回
  • 年度积分:0
  • 历史总积分:420
  • 注册:2013年3月10日
发表于:2013-03-30 22:57:55
21楼

22:为什么不能通过MPI在线访问CPU?

如果在CPU上已经更改了MPI参数,请检查硬件配置。可以将这些值与在"Set PG/PC interface"下的参数进行比较,看是否有不一致。

或者可以这样做:打开一个新的项目,创建一个新的硬件组态。在CPU的MPI接口的属性中为地址和传送速度设置各自的值。将"空"项目写入存储卡中。把该存储卡插入到CPU 然后重新打开CPU的电压,将位于存储卡上的设置传送到CPU。现在已经传送了MPI接口的当前设置,并且像这样的话,只要接口没有故障就可以建立连接。这个方法适用于所有具有存储卡接口的S7-CPU。

angelwin

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 568回
  • 年度积分:0
  • 历史总积分:420
  • 注册:2013年3月10日
发表于:2013-03-30 22:58:46
22楼

23:错误OB的用途是什么?

如果发生一个所描述的错误(见文件1),则将调用并处理相应OB。如果没有加载该OB,则CPU进入STOP(例外:OB70、72、7 3和81) 

S7-CPU可以识别两类错误:

1) 同步错误: 这些错误在处理特定操作的过程中被触发,并且可以归因于用户程序的特定部分。

2) 异步错误: 这些错误不能直接归因于运行中的程序。这些错误包括优先级类的错误,自动化系统中的错误(故障模块)或者冗余的错误。

angelwin

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 568回
  • 年度积分:0
  • 历史总积分:420
  • 注册:2013年3月10日
发表于:2013-03-30 22:59:12
23楼

24:在DP从站或CPU315-2DP型主站里应该编程哪些“故障 OBs”?

在组态一个作为从站的CPU315-2DP站时,必须在STEP7程序中编程下列OB以便评估分布式I/O类型的错误信息:

OB82 诊断中断OB 、OB 86 子机架故障 OB 、OB 122 I/O 访问出错

1) 诊断OB82:如果一个支持诊断,并且已经对其释放了诊断中断的模块识别出一个错误,它既对进入事件也对外出的事件向 CPU 发出一个诊断中断的请求。操作系统然后调用 OB82。在 OB82 自己的局部变量里包含有有缺陷模块的逻辑基地址和 4 个字节的诊断数据。如果你还没有编程 OB82, 则 CPU 进入“停止”模式。你可以阻断或延迟诊断中断 OB ,并通过 SFC 39 - 42 重新释放它。

2) 子机架故障OB86:如果识别出一个 DP 主站系统或一个分布式 I/O 站有故障(既对进入事件也对外出的事件),该 CPU 的操作系统就调用 OB 86 。如果没有编程 OB 86 但出现了这样一个错误, CPU 就进入“停止”模式。你可以阻断或延迟 OB86 并通过 SFC 39 - 42 重新释放它。

3) I/O 访问出错OB122:当访问一个模块的数据时出错,该CPU的操作系统就调用OB 122。比方说,CPU在存取一个单个模块的数据时识别出一个读错误,那么操作系统就调用OB 122。该OB 122以与中断块有相同的优先级类别运行。如果没有编程OB 122,那么CPU由“运行”模式改为“停止”模式。

angelwin

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 568回
  • 年度积分:0
  • 历史总积分:420
  • 注册:2013年3月10日
发表于:2013-03-30 23:00:18
24楼

25:为什么在某些情况下,保留区会被重写? 

在STEP 7的硬件组态中,可以把几个操作数区定义为“保留区”。这样可以在掉电以后,即使没有备份电池的话,仍能保持这些区域中的内容。如果定义一个块为“保留块”,而它在 CPU 中不存在或只是临时安装过,那么这些区域的部分内容会被重写。在电源接通/断开之后,其他内容会在相关区里找到。

angelwin

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 568回
  • 年度积分:0
  • 历史总积分:420
  • 注册:2013年3月10日
发表于:2013-03-30 23:01:02
25楼

26:为何不能把闪存卡的内容加载入S7 300CPU?

你的项目在闪存卡上。现在要用它加载 S7 300 。但加载结束后发现 CPU 的 RAM 中仍是空的。 出现此问题的原因是你的程序里有无法处理的,"错误的"组织块(比如说, OB86 没有 DP 接口)。在重新设置和重新启动 CPU 后, RAM 仍是空的。 诊断缓冲区对这个"无法加载"的块会提示一些信息。

angelwin

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 568回
  • 年度积分:0
  • 历史总积分:420
  • 注册:2013年3月10日
发表于:2013-03-30 23:01:26
26楼

27:当把 CPU315-2DP 作为从站,把 CPU315-2DP 作为主站时的诊断地址

在组态一个 CPU315-2DP 站时,你使用 S7 工具 “H/W CONFIG” 来分配诊断地址。如果发生一个故障,这些诊断地址被加入诊断 OB 的变量“OB82_MDL_ADDR” 里。 你可在 OB82 里分析此变量,确定有故障的站并作出相应的反应。

下面是如何分配诊断地址的例子:

第 1 步: 通过 CPU315-2DP 组态从站并赋予一个诊断地址,比如 422。

第 2 步: 通过 CPU315-2DP 组态主站

第 3 步: 把组态好的从站链接到主站并赋予一个诊断地址,比如 1022。

angelwin

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 568回
  • 年度积分:0
  • 历史总积分:420
  • 注册:2013年3月10日
发表于:2013-03-30 23:01:51
27楼

28:需要为S7-300 CPU的DP从站接口作何种设置,才可以使用它来进行路由选择?

如果使用CPU作为I-Slave,并且该CPU也起S7 路由器的作用,那么请注意如下事项:

用于路由选择的从站的DP接口必须设置为活动状态。这可以在HW Config中完成:在DP接口的属性对话框中,选项" Commissioning/Testoperation"或"Programming,status/modify..."必须激活。关于这些设置的注意事项可以在下表中获得。

对于S7 路由连接,有 4 种可用的连接资源-与其它任何连接资源无关。没有使用PG/OP的连接资源或S7基本通信。

如果必须通过DP接口来建立一个与位于其机架上的通信伙伴连接时(如在 CP 343-1 中),也要使用一个路由连接。而对于通过MPI接口与一个位于其机架上的通信伙伴的连接,则不使用路由连接资源,因为在这种情况下,能够直接到达伙伴。注意事项:这不适用于CPU 318。

angelwin

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 568回
  • 年度积分:0
  • 历史总积分:420
  • 注册:2013年3月10日
发表于:2013-03-30 23:02:19
28楼

29:为什么当使用S7-300 CPU的内部运行时间表时,没有任何返回值?

当对CPU 312IFM到316-2DP参数化系统功能块 SFC2, SFC3 和 SFC4 时,为一个运行时间表规定了一个大于 "B#16#0"的标识符,那么将出错并且所需的功能也无法用。 此种情况下,将在块的" RETVAL"输出处输出标识符"8080h" 。

说明:对于这些 CPU,只有一个计时器可用。因此你应该只用标识符 "B#16#0"。 在一个周期块(OB1, OB35)里一定不能调用系统功能 SFC2 "SET_RTM",而是应该在重启动OB(OB100)调用它。你也可以通过外部触发器来启动该块。不然的话,该块将老是复位运行计时表,永远完成不了计数。

angelwin

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 568回
  • 年度积分:0
  • 历史总积分:420
  • 注册:2013年3月10日
发表于:2013-03-30 23:02:57
29楼

30:变量是如何储存在临时局部数据中的?

堆栈永远以地址“0”开始。 在 L 堆栈中,会为每个数据块保留相同个数的字节,作为存放每个块所拥有的静态或局部数据。

当某个块终止时,那么它的空间随之也被重新释放出来。 指针总是指向当前打开块的第一个字节。

angelwin

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 568回
  • 年度积分:0
  • 历史总积分:420
  • 注册:2013年3月10日
发表于:2013-03-30 23:03:23
30楼

31:在CPU经过完全复位后是否运行时间计数器也被复位?

使用S7-300时,带硬件时钟(内置的 “实时时钟”)和带软件时钟的CPU 之间有区别。对于那些无后备电池的软件时钟的 CPU,运行时间计数器在 CPU 被完全复位后其最后值被删除。而对于那些有后备电池的硬件时钟的 CPU,运行时间计数器的最后值在 CPU 被完全复位后被保留下来。同样, CPU 318 和所有的 S7-400 CPU 的运行时间计数器在 CPU 被完全复位后其最后值被保留。

angelwin

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 568回
  • 年度积分:0
  • 历史总积分:420
  • 注册:2013年3月10日
发表于:2013-03-30 23:03:49
31楼

32:如何把不在同一个项目里的一个S7 CPU组态为我的S7 DP主站模块的DP从站?

缺省情况下, 在STEP 7里只可以把一个S7CPU组态为从站,如果说该站是在同一个项目中的话。该站然后在“PROFIBUS-DP > 已经组态的站”下的硬件目录里作为“CPU 31x-2 DP”出现。用这种途径,可以设置起 DP 主站与 DP 从站间的链接。

还存在一个选项,可把一个与主站不在同一个项目里的S7 CPU组态为从站。进行如下:

按常规组态DP从站。

从网上下载要用作从站的S7-300 CPU的GSD文件。该文件位于客户支持网址的“PROFIBUS GSD 文件 / SIMATIC”下。

打开SIMATIC Manager 和硬件配置。

打开“选项 ; 安装新的 GSD...”,把刚下载的 GSD 文件插入硬件目录 。 (注意:此过程中在 HW Config 中无须打开任何窗口) 

通过“选项; 更新目录”来更新硬件目录。 < 

现在可以组态你的 DP 主站。将可以在 “PROFIBUS-DP > 更多现场设备 > SPS” 下发现作为从站的该 S7-300 CPU 。

注意:如果是手动来结合该 DP 从站, 要确保总线参数,该 DP 从站的PROFIBUS 地址 和它的 I/O 组态在两个项目里必须相同。

angelwin

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 568回
  • 年度积分:0
  • 历史总积分:420
  • 注册:2013年3月10日
发表于:2013-03-30 23:04:25
32楼

33:无备用电池情况下断电的影响与完全复位一样吗?

不一样。在CPU被完全复位的情况下,其硬件配置信息被删除(MPI地址除外),程序被删除, 剩磁存储器也被清零。

在无备用电池和存储卡的情况下关电,硬件配置信息(除了MPI地址) 和程序被删除。然而,剩磁存储器不受影响。如果在此情况下重新加载程序,则其工作时采用剩磁存储器的旧值。比方说,这些值通常来自前 8 个计数器。如果不把这一点考虑在内,会导致危险的系统状态。

建议:无备用电池和存储卡的情况下断电后,总是要做一下完全复位。

angelwin

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 568回
  • 年度积分:0
  • 历史总积分:420
  • 注册:2013年3月10日
发表于:2013-03-30 23:04:45
33楼

34:以将 2 线制传感器连接到紧凑型CPU的模拟输入端吗?

可以将 2 线制和 4 线制的传感器连接到CPU300C的模拟输入端。使用一个 2 线制传感器时,在硬件组态中将“I = 电流”设置为测量类型,与 4 线制传感器的设置一样。

注意事项:请注意紧凑型CPU仅支持有源传感器( 4 线制传感器)。如果使用无源传感器( 2 制传感器),必须使用外部电源。

警告:请注意所允许的最大输入电流。2 线制传感器在出现短路时可能会超出最大允许电流。技术数据中规定的最大允许电流是50mA(破坏极限)。对于这种情况(例如,对 2 线制传感器加电流限制或与传感器串联一个PTC热敏电阻),确保提供足够保护。

angelwin

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 568回
  • 年度积分:0
  • 历史总积分:420
  • 注册:2013年3月10日
发表于:2013-03-30 23:05:20
34楼

35:SM322-1HH01也能在负载电压为交流 24 V的情况下工作吗?

是的,您也可以在负载电压为交流 24 V的情况下使用SM322-1HH01。

angelwin

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 568回
  • 年度积分:0
  • 历史总积分:420
  • 注册:2013年3月10日
发表于:2013-03-30 23:05:48
35楼

36:要确保SM322-1HF01 接通最小需要多大的负载电压和电流?

SM322-1HF01 继电器模块需要 17 V和 8 mA才能确保开闭正常。对于触点的寿命来说,这样的值比手册上提供的这个模块的值(10 V和 5 mA)更好。手册的规定值应该认为是最低要求值。

angelwin

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 568回
  • 年度积分:0
  • 历史总积分:420
  • 注册:2013年3月10日
发表于:2013-03-30 23:06:08
36楼

37:需要为哪些24V数字量输入模块(6ES7 321-xBxxx- ...)连接电源?

24V数字量输入模块的电源插针连接 (L+ / M) 。

angelwin

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 568回
  • 年度积分:0
  • 历史总积分:420
  • 注册:2013年3月10日
发表于:2013-03-30 23:06:33
37楼

38:在 ET200M 里是否也能使用 SM321 模块(DI16 x 24V)?

模块 SM321 (MLFB 6ES7 321-7BH00-0AB0) 也可在 ET200M里使用。其中 CPU 31x-2DP 作为 DP 主站或者是通讯处理器 CP CP342-5 作为 DP 主站。同样该模块可以通过 ET200M 和 S7-400 通讯处理器 CP443-5 连接到一个S7-400 CPU。

angelwin

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 568回
  • 年度积分:0
  • 历史总积分:420
  • 注册:2013年3月10日
发表于:2013-03-30 23:06:54
38楼

39:SM323数字卡所占用的地址是多少? 

SM323模块有 16 位类型(6ES7 323-1BL00-0AA0)和 8 位类型(6ES7 323-1BH00-0AA0)两种。对于 16 位类型的模块,输入和输出占用“X”和“X+1”两个地址。如果 SM323 的基地址为 4 (即 X=4; 插槽为 5),那么输入就被赋址在地址 4 和 5 下面, 输出的地址同样也被赋址在地址 4 和 5 下面。在模块的接线视图中,输入字节“X”位于左边的顶部,输出字节“X”在右边的顶部。

对于 8 位类型的模块,输入和输出各占用一个字节,它们有相同的字节地址。若用固定的插槽赋址,SM323 被插入槽 4, 那么输入地址为I 4.0 至 I 4.7,输出地址为Q 4.0 至 Q 4.7。

angelwin

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 568回
  • 年度积分:0
  • 历史总积分:420
  • 注册:2013年3月10日
发表于:2013-03-30 23:07:16
39楼

40:在不改变硬件配置的情况下,能用SM321-1CH20代替SM321-1CH80 吗?

SM321-1CH20 和SM321-1CH80 模块的技术参数是相同的。区别仅在SM321-1CH80 可以应用于更广泛的环境条件。因此您无需更改硬件配置。

angelwin

  • 精华:1帖
  • 求助:0帖
  • 帖子:16帖 | 568回
  • 年度积分:0
  • 历史总积分:420
  • 注册:2013年3月10日
发表于:2013-03-30 23:07:39
40楼

41:进行I/O的直接访问时,必须注意什么?

需要注意在一个S7-300组态中,如果进行跨越模块的I/O直接读访问(用该命令一次读取几个字节),那么就会读到不正确的值。 可以通过hardware中查看具体的地址。

热门招聘
相关主题

官方公众号

智造工程师