S7-300PLC 经典问题及解答 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 毫秒 2 为 S7CPU 上的 I/O 模块 ( 集中式或者分布式的 ) 分配地址时应当注意哪些问题? 创建的数据区域 ( 如一个双字 ) 不能组态在过程映象的边界上, 因为在该数据块中, 只有边界下面的区域能够被读入过程映像, 因此不可能从过程映像访问数据 因此, 这些组态规则不支持这种情况 : 例如, 在一个 256 字节输入的过程映像的 254 号地址上组态一个输入双字 如果一定需要如此选址, 则必须相应地调整过程映像的大小 ( 在 CPU 的 Properties 中 ) 3 配置 CPU 31x-2 PN/DP 的 PN 接口时, 当 PROFINET 接口偶尔发生通信错误时, 该如何处理? 请确定以太网 (PROFINET) 中的所有组件 ( 转换 ) 都支持 100 Mbit/s 全双工基本操作 避免中心分配器割裂网络, 因为这些设备只能工作于半双工模式 4 如何使用 SFC65,SFC66,SFC67 和 SFC68 进行通信? 对于单向基本通信, 使用系统功能 SFC67 (X_GET) 从一个被动站读取数据, 使用系统功能 SFC68(X_PUT) 将数据写入一个被动站 ( 服务器 ) 这些块只有在主动站中才调用 对于一个双向基本通信, 调用站中的系统功能 SFC65 (X_SEND), 在该站中想将数据发送到另一个主动站 在同样为主动的主动接收站中, 数据将通过系统功能 SFC66 (X_RCV) 记录 两种类型的基本通信中, 每次块调用可以处理最多 76 字节的用户数据 对于 S7-300 CPU, 数据传送的数据一
致性是 8 个字节, 对于 S7-400 CPU 则是全长 如果连接到 S7-200, 必须考虑到 S7-200 只能用作一个被动站 5 什么是自由分配 I/O 地址? 地址的自由分配意味着您可对每种模块 (SM/FM/CP) 自由的分配一个地址 地址分配在 STEP 7 里进行 先定义起始地址, 该模块的其它地址以它为基准 自由分配地址的优点 : 因为模块之间没有地址间隙, 就可以优化地使用可用地址空间 在创建标准软件时, 分配地址过程中可以不考虑所涉及的 S7-300 的组态 6 诊断缓冲器能够干什么? 更快地识别故障源, 因而提高系统的可用性 评估 STOP 之前的最后事件, 并寻找引起 STOP 的原因 诊断缓冲器是一个带有单个诊断条目的循环缓冲器, 这些诊断条目显示在事件发生序列中 ; 第一个条目显示的是最近发生的事件 如果缓冲器已满, 最早发生的事件就会被新的条目所覆盖 根据不同的 CPU, 诊断缓冲器的大小或者固定, 或者可以通过 HW Config 中通过参数进行设置 7 如何确定 MMC 的大小以便完整地存储 STEP 7 项目? 为了给项目选择合适的 MMC, 需要了解整个项目的大小以及要加载块的大小 可以按照如下所述的方法来确定项目的大小 :(1) 首先归档 STEP 7 项目 然后在 Windows 资源浏览器中打开已归档项目, 并确定其大小 ( 选中该项目并右击 ) 这会告诉您归档文件的大小 (2) 将块加载入 CPU 现在仍然需要选择 "PLC > Module Information > Memory" 在此, 在 " Load memory RAM + EPROM" 中, 可以看到分配的加载内存的大小 (3) 必须将该值和已经确定的归档项目的大小相加 这样就可以得出在一个 MMC 上保存整个项目所需的总内存的大小 8 CPU 全面复位后哪些设置会保留下来? 复位 CPU 时, 内存没有被完全删除 整个主内存被完全删除了, 但加载内存中数据, 以及保存在 Flash-EPROM 存储卡 (MC) 或微存储卡 (MMC) 上的数据, 则会全部保留下来 除了加载内存以外, 计时器 (CPU 312 IFM 除外 ) 和诊断缓冲也被保留 具有 MPI 接口或一个组合 MPI/DP 接口的 CPU 只在全部复位之前保留接口所采用的当前地址和波特率 另一方面, 另一个 PROFIBUS 地址也被完全删除, 不能再访问 重要事项 : 重新设置 PG/PC 之后, 与 CPU 之间的通讯只能通过 MPI
或 MPI/DP 接口来建立 9 为什么不能通过 MPI 在线访问 CPU? 如果在 CPU 上已经更改了 MPI 参数, 请检查硬件配置 可以将这些值与在 "Set PG/PC interface" 下的参数进行比较, 看是否有不一致 或者可以这样做 : 打开一个新的项目, 创建一个新的硬件组态 在 CPU 的 MPI 接口的属性中为地址和传送速度设置各自的值 将 " 空 " 项目写入存储卡中 把该存储卡插入到 CPU 然后重新打开 CPU 的电压, 将位于存储卡上的设置传送到 CPU 现在已经传送了 MPI 接口的当前设置, 并且像这样的话, 只要接口没有故障就可以建立连接 这个方法适用于所有具有存储卡接口的 S7-CPU 10 错误 OB 的用途是什么? 如果发生一个所描述的错误 ( 见文件 1), 则将调用并处理相应 OB 如果没有 加载该 OB, 则 CPU 进入 STOP( 例外 :OB70 72 7 3 和 81) S7-CPU 可以识别 两类错误 :1) 同步错误 : 这些错误在处理特定操作的过程中被触发, 并且可以归因于用户程序的特定部分 2) 异步错误 : 这些错误不能直接归因于运行中的程序 这些错误包括优先级类的错误, 自动化系统中的错误 ( 故障模块 ) 或者冗余的错误 11 变量是如何储存在临时局部数据中的? L 堆栈永远以地址 0 开始 在 L 堆栈中, 会为每个数据块保留相同个数的字节, 作为存放每个块所拥有的静态或局部数据 当某个块终止时, 那么它的空间随之也被重新释放出来 指针总是指向当前打开块的第一个字节 12 在 CPU 经过完全复位后是否运行时间计数器也被复位? 使用 S7-300 时, 带硬件时钟 ( 内置的 实时时钟 ) 和带软件时钟的 CPU 之间有区别 对于那些无后备电池的软件时钟的 CPU, 运行时间计数器在 CPU 被完全复位后其最后值被删除 而对于那些有后备电池的硬件时钟的 CPU, 运行时间计数器的最后值在 CPU 被完全复位后被保留下来 同样, CPU 318 和所有的 S7-400 CPU 的运行时间计数器在 CPU 被完全复位后其最后值被保留 13 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 14 在不改变硬件配置的情况下, 能用 SM321-1CH20 代替 SM321-1CH80 吗? SM321-1CH20 和 SM321-1CH80 模块的技术参数是相同的 区别仅在 SM321-1CH80 可以应用于更广泛的环境条件 因此您无需更改硬件配置 15 进行 I/O 的直接访问时, 必须注意什么? 需要注意在一个 S7-300 组态中, 如果进行跨越模块的 I/O 直接读访问 ( 用该命令一次读取几个字节 ), 那么就会读到不正确的值 可以通过 hardware 中查看具体的地址 16 当不能卸载 STEP 7 时, 该怎么办? 设法通过控制面板卸载 STEP 7 如果安装文件已损坏, 卸载程序常会出错, 并伴随出错信息 另外 STEP 7 CD 包含文件 Simatic STEP7.msi 可以通过这个文件卸载 STEP 7 17 加密的 300PLC MMC 处理方法? 如果您忘记了您在 S7-300CPU Protection 属性中所设定的密码, 那么您只能够采用 siemens 的编程器 PG(6ES7798-0BA00-0XA0) 上的读卡槽或采用带 USB 接口的读卡器 (USB delete?s7 Memory Card?prommer 6ES7792-0AA00-0XA0), 选择 SIMATIC Manager 界面下的菜单 File 选项删除 MMC 卡上原有的内容, 这样 MMC 就可以作为一个未加密的空卡使用了, 但无法对 MMC 卡进行 jie 密, 读取 MMC 卡中的程序或数据 18 以 314C 为例计数时如何清计数器值? 有两种方法 :(1) 在参数设置中 Gate function 选 Cancel count 软件门为 0, 在为 1 时, 值将清零 ;(2) 利用写 Job 的方式, 写计数值的任务号为 1 19 如果想通过上位或触摸屏对 PLC 中 S5TIME 类型的参数进行设定, 有什么方
法? (1) 从上位机写整型数 INT 或实数 REAL 到 PLC, 首先该数值需包含以毫秒为单位的时间值, 在写入 PLC 的数据存储区后, 利用 ITD(Integer to Double Integer) 或 RND(Real to Double Integer with Rounding Off) 将该值转换为双整形, 然后将该值写到类型为 TIME 的变量里, 在程序中调用 FC40, 将 TIME 转换成 S5TIME 即可 (2) 从上位机写 WORD 到 PLC, 首先该数值需包含以某时基为单位的时间值, 在写入 PLC 的数据存储区后, 用 Word Logic 下的 WOR_W 指令将该值与其时基相或, 再利用 MOVE 指令将得到的数值写入 S5TIME 类型的变量中 (3) 如果使用 WinCC 作为上位软件, 或上位软件支持 32 位带符号浮点数, 可以从上位写 32 位带符号浮点数到 PLC 中定义为 TIME 的变量, 然后在程序中调用 FC40, 将 TIME 转换成 S5TIME 即可 20 加密的 300PLC MMC 处理方法? 如果您忘记了您在 S7-300CPU Protection 属性中所设定的密码, 那么您只能够采用 siemens 的编程器 PG(6ES7798-0BA00-0XA0) 上的读卡槽或采用带 USB 接口的读卡器 (USB delete?s7 Memory Card?prommer 6ES7792-0AA00-0XA0), 选择 SIMATIC Manager 界面下的菜单 File 选项删除 MMC 卡上原有的内容, 这样 MMC 就可以作为一个未加密的空卡使用了, 但无法对 MMC 卡进行解密, 读取 MMC 卡中的程序或数据