用户程序的重新接线 目录 页 目标 ..............…………............................................................................................................................ 2 概述………............................................................................................................................................. 3 用SIMATIC 管理器重新接线 ………………….......................................................................................... 4 重新接线的结果 …….....................................................................................................................……... 5 用“符号优先” 重新接线 …...................................................................................................………..... 6 符号表:匹配绝对地址 ..............................................................................……………..…………….. 7 用LAD/FBD/STL编辑器重新接线 ………………….................................................................................. 8 显示参考数据.......................................................................................................................................... 9 I,Q,M,T,C分配表 .................................................................................................................................. 10 块的比较 (1) .......................................................................................................................................... 11 块的比较 (2) ......................................................................................................................................... 12 练习:准备重新接线 ....................................................................…….................................………....... 13 练习:用SIMATIC管理器重新接线点动传送带电机 .............................................................………....... 14 练习:用LAD/FBD/STL编辑器重新接线点动传送带电机 ........................................................……....... 15 练习:块的比较 ..............................................................................................................……………..... 16
目标 学习了本章之后,你将 ... ... 了解如何重新接线和如何应用 ... 能够用SIMATIC®进行重新接线 ... 了解如何重新接线和如何应用 ... 能够用SIMATIC®进行重新接线 ... 能够用符号表进行重新接线(“符号优先”) ... 能够显示输入、输出、标志、定时器和计数器的赋值表 并能够解释它们 ... 能够比较在线 - 离线和离线 - 离线的S7块
概述 信号模板 前连接器 A I 16.7 . “旧” 程序 AN I16.7 失效的通道 I 16.7 可用的通道 I 17.0 “新” 程序 可用的通道 I 17.0 用途 • 已经发现输入模板上的一个通道(画面中I 16.7)失效。 如果模板上的输入没有被占满,就可以把传感器重新连接到可用的通道 上 (画面中I 17.0)。 • 必须修改程序来适应新的接线, 传感器和执行器已经接到不同的地址上。 重新接线 在各种情况下,程序必须适应新的接线(程序中新的地址) ,本例中所有的输入I 16.7必须用输入I 17.0替换。 有四种方法完成程序的重新接线(适应新的地址): • 用SIMATIC 管理器(该方法不需要符号表)。 • 用“符号优先”重新接线,这种方法也需要符号表。 - 用LAD/FBD/STL编辑器 - 用块的一致性检查(Check block consistency)功能 • 用源程序重新接线。 注 “块的一致性检查”功能和用源程序在高级编程课中讨论。
用SIMATIC管理器实现重新接线 或 重新接线 和符号表无关,在已有程序中,所有块中的旧地址(例如: I 16.7 )用新地址(例如: I 17.0 )替换。原来的块被新的、重新接线的块覆盖。 用SIMATIC 管理器重新接线时,必须在块文件夹Object Properties中选择Address priority: Absolute value 。 在几个块中 如果你要替换一个或几个块中的地址,你应在启动本功能前选择这些块。 在所有块中 如果你要重新接线既替换所有块中的地址,你应在启动本功能前选择S7程序的块文件夹。 …All Accesses 如果你检查(激活)这一选项, 所选的字节、字或双字地址中的各位也被重新 Within the Specified 接线。如本例所示,输入I 16.7是“旧地址”输入字节IB 16 的一个位,被重 Addresses 新接线到输入I 17.0 ,它是“新地址”输入字节IB 17 的一个位。 步骤 1. 关闭LAD/STL/FBD Editor以便确实没有块在处理 2. 在SIMATIC管理器中,选择“Blocks”文件夹或要重新接线的块 3. 启动重新接线 SIMATIC® Manager -> Options -> Rewiring... 4. 在重新接线窗口中,输入旧地址和新地址,如果需要,激活“All addresses within the specified address area” 5. 用“OK”确认
重新接线的结果 FC 99 “旧” FC 99 “新” 结果 在重新接线的块和/或整个用户程序中,旧地址(例如: I 16.7 )已经被新地址 (例如: I 17.0 )替换。原来的块(例如FC 99)被覆盖。 注 重新接线后,可以打印出在这些块中多少替换发生的协议。
用“符号优先”重新接线 概述 也可以用LAD/STL/FBD 中的“符号优先”或“块的一致性检查”功能重新接线S7程序。 前提条件是: • 符号表存在 • 在块文件夹的对象属性,选择设置“符号优先….对所有访问(I, Q, M, T, C, 和 DB)” 步骤 可以设置块文件夹 - 对象属性“符号优先”如下 1. 在SIMATIC管理器离线显示中选择S7 程序的块文件夹 2. 打开块文件夹的对象属性 选择菜单功能Edit 或在块文件夹单击鼠标右键 -> Object Properties 3. 在窗口中选择标签“Address Priority ” 4. 选择下列属性 “Symbol has priority…..For all accesses (I, Q, M, T, C, and DB)”
符号表: 匹配绝对地址 之前 之后 匹配绝对地址 在你用LAD/FBD/STL编辑器或用块的一致性检查功能重新接线之前,你已经在符号表中输入了新地址的绝对地址。该地址的符号必须不变。 在示例中,绝对地址I 16.7 被输入I 17.0 替换,不改变符号“Input2”。 注意 在符号表中匹配绝对地址仅在你已经在块文件夹的对象特性中选择了符号作为地址优先后才可发生!以前的改变不被识别!
用 LAD/FBD/STL 编辑器重新接线 2x 重新接线 重新接线的最后一步,用“符号优先”,是打开包含地址已经改变的符号的块。你需要应答信息“至少一个符号赋值改变”。总结: 1. 在块特性的地址优先,选择“符号”。 2. 在符号表编辑器中,你已经改变了需要重新接线的符号的绝对地址。 3. 最后,你打开包含地址以经改变的符号的块。 注意 重新接线仅在你已经用编辑器打开块时执行!块的重新接线仅当块被保存时才奏效。 如果程序的几个或所有的块中的一个或多个地址要重新接线既改变,所有的块必须用编辑器一个接一个地打开然后保存。
显示参考数据 用途 对于复杂的程序,在排除逻辑错误时,特别需要有一个概览,哪个地址被扫描或被赋值, 哪个输入和输出实际使用, 或整个用户程序如何被分层调用的。 “参考数据” (“Reference Data”)给出用户程序结构的概览以及使用的地址。参考数据由离线存储的用户程序生成。 对功能错误,可以跟踪逻辑程序错误 (例如双重赋值) ,你会发现“Program Status”(程序状态)和 “Reference Data” (参考数据)工具非常有用。 例如,如果逻辑操作不满足是因为一个内存位的条件没置位,可以利用参考数据工具来确定该位是在哪里被赋值的。 参考数据生成 可以在 SIMATIC Manager (离线打开了“Blocks”文件夹)或 LAD/STL/FBD Editor中触发生成并显示参考数据 显示 选择菜单功能 Options -> Reference Data -> Display 或 >Filter and Display 过滤器 参考数据由各种表格组成(见画面中 Customize) 显示过滤后的数据(不论是否在菜单Options中选择了Display或 Filter选项)。当选择显示参考数据,可以在用户定制信息对话框中选择哪张表先显示。然后可以选择任何不同的表。
I,Q,M,T,C分配表 I/Q/M分配表 选择菜单功能View ->Assignment -> Inputs, Outputs and Bit Memory 或单击相关图标可以打开 I/Q/M 分配表(assignment)。 分配表中概括了在程序中过程映像输入区(I)、输出区(Q)和标志存储区 (M)的位、字节、字或双字已及定时器和计数器的使用情况。 每一行包含一个字节,并根据使用情况对其中的8个位分别予以标定。还可以在 B、W及D看出是否是以字节、字或双字的形式进行的访问。 I/Q/M分配表中标识符的意义: • 白区: 地址未被访问,可以自由使用 • x: 直接的访问 • 蓝区: 以字节、字或双字指令的访问于是已被间接使用 Filter 利用“Filter”功能,可以选择要显示的存储区域及地址范围。其用法与交叉参考表中的滤波器相同。
块的比较 (1) 概述 块的比较功能可以用来比较离线和在线的块或者硬盘上的两个用户程序的块。 例如,可以利用该功能来确定在离线编程并下装后,后来在CPU中是否对程序 做过修改及在哪些段上程序不同。 步骤 1. 用鼠标右键选择S7程序中的块文件夹。 2. 选择菜单Compare Blocks。 3. 选择比较对象是在线/离线程序还是两个离线程序,然后用“OK”按钮确认。 4. 在随后的画面中,列出了块的区别。 5. 选择有区别的行然后单击“Details”按钮。 6. 在“Compare Blocks - Details”窗口中,可以确定块被修改的时间和块的长 度是否被改变。 7. 单击“Go To…”按钮后,有区别的在线和离线块将分别在两个窗口中打 开,并显示第一个不同之处。 注 只能在离线窗口修改程序。 见下页
块的比较 (2) 区别 单击“Go To…” 按钮后(见上页),编辑器中将并列打开两个窗口中,并显示有区别的块中第一个不同之处。 使用“上一个” (“Previous”)和“下一个” (“Next”)按钮可以快捷地在不同的段或程序区之间切换 例如 在上例中,以离线 - 离线比较两个不同的S7程序的块。两个S7程序都含有FC16块,但每个都有不同的程序代码。 通过读“Compare Blocks - Results”窗口中的时间标签,可以识别出哪一个块是最后修改的。
练习:准备重新接线 1. 2. 任务 为熟悉重新接线的各种形式,你要重新接线用户程序两次。所以当你完成时原程序仍然有效,你要用原程序的拷贝做重新接线。为此,在你的项目中生成与硬件无关的S7程序“Rewiring1“和“Rewiring2“ 。 做什么 1. 用拖拽,直接拷贝S7程序“My_Program“作为与硬件无关的程序到项目 ”My_Project“ 。 2. 把拷贝的程序改名为“Rewiring1“ 点击 S7 程序两次 (不是双击!) -> 写 “Rewiring1“覆盖旧名 3. 重复拷贝过程并命名新拷贝“Rewiring2“ 3.
练习: 用 SIMATIC® 管理器重新接线点动传送带电机 DI DO Q 4.... I 0.0 T_System_ON .0 V I 0.1 T_System_OFF L_System .1 I 0.2 T_Jog_RT L_MAN .2 I 0.3 T_Jog_LT L_AUTO .3 I 0.4 S_M/A_ModeSelect .4 I 0.5 T_M/A_Accept .5 I 0.6 .6 -15V...+15V -15V...+15V AI2 AO1 AO2 I 0.7 .7 AI1 AI1 Weight V AI2 I 1.2 T_Jog_RT I 1.3 T_Jog_LT 任务 S7程序“Rewiring1“的FC 16中的点动传送带电机功能要用SIMATIC重新接线。用于点动向右和向左的暂态开关要用其他代替(见图)。用户程序必须通过重新接线适当调整。 重新接线: 旧: 新: • 点动向右的暂态开关 I 0.2 -> I 1.2 • 点动向左的暂态开关 I 0.3 -> I 1.3 做什么 1. 首先,检查赋值表,在当前程序是否仍未使用新地址 在 SIMATIC® 管理器中, 选择 S7 程序 “Rewiring1“的块文件夹-> Options -> Reference Data... -> display -> (如果还没有发生: update 或 generate new) -> 输入、输出和标志的赋值表 2. 选择 S7 程序 “Rewiring1“的块文件夹并启动重新接线功能 SIMATIC® Manager -> Options -> Rewiring 3. 在重新接线的对话表中,输入旧地址和新地址并用OK确认 4. 用LAD/STL/FBD编辑器打开FC 16块并观察结果检查重新接线是否成功 5. 通过在符号表中输入用于传送带电机点动向右和向左的暂态开关新的绝对 地址修改程序注释 在LAD/STL/FBD 编辑器中右键点击 I 1.2 or I 1.3 -> Edit Symbols... 6. 下装修改过的块到CPU并通过模拟器测试新功能 结果 用新地址,程序满足和原程序相同的功能。 0 8 1 5 AI1 AI2 AO1 AO2
练习: 用 LAD/STL/FBD编辑器重新接线点动传送带电机 DI DO Q 4.... I 0.0 T_System_ON .0 V I 0.1 T_System_OFF L_System .1 I 0.2 T_Jog_RT L_MAN .2 I 0.3 T_Jog_LT L_AUTO .3 I 0.4 S_M/A_ModeSelect .4 I 0.5 T_M/A_Accept .5 I 0.6 .6 -15V...+15V -15V...+15V AI2 AO1 AO2 I 0.7 .7 AI1 AI1 Weight V AI2 I 1.2 T_Jog_RT I 1.3 T_Jog_LT 任务 FC 16中的传送带电机的点动要再次重新接线,这次用S7程序“Rewiring2“。使用LAD/STL/FBD编辑器重新接线。 这里,再一次,这些地址重新接线: 重新接线: 旧: 新: • 点动向右的暂态开关 I 0.2 -> I 1.2 • 点动向左的暂态开关 I 0.3 -> I 1.3 做什么 1. 赋值对象属性“Address priority: Symbol S7“到程序 “Rewiring2“的块文件夹 在 SIMATIC® 管理器中, 选择 S7 程序 “Rewiring1“的块文件夹-> 右键点击块文件夹-> 在对话框中选择 ”Blocks” 标签 -> 选择Address priority "Symbol" 2. 在符号表中,用新绝对地址替换旧地址,不改变符号 SIMATIC® Manager ->双击符号表 3. 用LAD/STL/FBD编辑器打开FC 16块并观察结果检查重新接线是否成功 4. 下装修改过的块到CPU并通过模拟器测试新功能 结果 S7程序“Rewiring1“和“Rewiring2“的块文件夹中的程序相同,并且使用新地址,满足和原程序相同的功能。 0 8 1 5 AI1 AI2 AO1 AO2
练习: 块的比较 任务 #1 使用“块比较”功能,检查经过重新接线后的变化。比较重新接线的S7程序“Rewiring2“和原程序“My_Program“ 。 做什么 1. 在 SIMATIC® 管理器中, 选择原程序 “My_Program“的块文件夹并启动“块 比较”功能 SIMATIC® Manager -> Options -> Compare Blocks 2. 在接下来的对话框中,选择“Path 1 / Path 2“作为比较的类型并点击SIMATIC® 管理器窗口中的S7程序“Rewiring2“的块文件夹(见图)。用OK启动该功能 3. 窗口中的“Details...”显示出现比较的结果 4. 接着在窗口中出现细节, 用 “Go To...”.显示FC 16的不同版本(从 “My_Program” 和 "Rewiring2") 任务 #2 • 使用“块比较”功能检查两个S7程序“Rewiring1“和“Rewiring2“是否相同(它 们实际应该相同)。 • 再比较在线存储的程序和原程序“My_Program“