Presentation is loading. Please wait.

Presentation is loading. Please wait.

“什么是 口令? ” 源文件编程和用户程序的重新接线 目录 页

Similar presentations


Presentation on theme: "“什么是 口令? ” 源文件编程和用户程序的重新接线 目录 页"— Presentation transcript:

1 “什么是 口令? ” 源文件编程和用户程序的重新接线 目录 页
目录 页 编程工具 ………… 利用文本编辑器生成程序… 启动文本编辑器...………… 编辑一个源文件(1)……… 编辑一个源文件(2)……… 代码块的语法......………… 数据块的语法 ………… 变量声明 ………… 保护属性 ………… 保存, 一致性检查和编译… 练习2.1:利用源文件将FC转换为FB 程序重新接线简介……… 用SIMATIC 进行重新接线 ………………… 概述:用源程序进行重新接线 …………………… 从已有的S7 程序生成源程序 …………………………………… 生成的源程序 …………………… 符号表:改变绝对地址 ………………………….. 19 重新接线的结果 …… ……... 20 用“符号优先”进行重新接线 … ……… 练习2.2:用SIMATIC管理器进行重新接线 …………… 修改扫描 …………… 练习2.3:修改扫描 ……………… “什么是 口令? ”

2 编程工具 程序编辑器 使用程序编辑器你可以建立语句表和梯形图形式的用户程序(OB,
PRGG_T2D 程序编辑器 使用程序编辑器你可以建立语句表和梯形图形式的用户程序(OB, FB,FC,DB)。把这些程序下载到CPU后,你可以在监视器窗口 中对这些块进行检查。 可以用两种模式生成块: -增量模式:在这种模式中指令立即接受语法检查并编译成 机器码。在符号编程时,首先必须存在一个符 号表。 -自由编辑模式:用于输入和处理一个源程序(ASCII码文件)。 在文件中你喜欢用多少个块都可以。当编辑 完文件后需要对其进行编译。也可采用符号 编程,符号列表仅当编译时才需要。 该工具也可用作对程序进行检验(监视器窗口)。 符号编辑器 用于生成符号表,以提供符号显示或编程。在每一个用户程序中 存在一个符号表,里面给出了符号及其绝对地址。 PRGG_T2D

3 利用文本编辑器生成程序 文本编辑器 除了在语句表中编程外,你可以在已安装的文本编辑器中编程以生
文本编辑器 除了在语句表中编程外,你可以在已安装的文本编辑器中编程以生 成 源文件。你可以连续输入你的文件(每一个源文件中甚至可以有 7个块)。文本编辑器中没有语法检查。 源文件的作用 • 利用符号的自动重新接线 • 分配块的参数,例如,块的保护属性 • 整个程序的数据保护 • 编辑和处理块的更灵活的手段: - 更改块的类型 - 插入/删除段的分隔 - 将程序的元件和注释融合为新的块 - 安装STEP7之前,利用其它文本编辑器编写源程序 - 完成符号编程而不经过语法检查,等

4 启动文本编辑器 从SIMATIC管理器开始 在SIMATIC管理器下,你可以双击一个源文件以启动文本编辑器。
你必须首先按照下列菜单的顺序在源文件夹中生成一个源文件: 1)选中源文件夹。 2)选择“Insert New Object->STL Source File”菜单命令 另外,你可以使用文本编辑器中的File-->New菜单命令生成一个 源程序。

5 编辑一个源文件 (1) 被编辑的源文件 块样板 插入块样板 插入块 产生 块 文件 插入文件 插入文件 文件
插入块样板 一个块样板包含所有以必要顺序排列的必须遵循的关键字。对于不需 要的输入选项你可以简单地删除掉。 为了插入一个块样板你可以选择Insert->Block Template-> OB/FB/FC/DB/IDB/DB/UDT菜单序列。 插入块 使用Insert->Object->Block菜单序列,你可以在源文件中 插入一个已存在的块(即块的源代码)。插入到光标位置后面 的一个相关的源文件由选中的块自动产生。 插入源文件 使用Insert->Object->Source File菜单序列,你可以随意插入其它的 源程序文件。 插入文本文件 使用Insert->Object->File菜单序列,你可以随意插入其它的文本文件。 插入文件 文件

6 编辑一个源文件 (2) 分配给 UDT 调用 全局 DB 调用 UDT型 DB 调用 分配给 FB3 FB3的背景 DB 调用 FC5
最重要的输入规则 有些规则需要加以注意,例如: - 与语句表的语法相同,在每条指令完后用“;”。这样一行中可 以有多条指令。 - 变量名的大小写有区别。 - 注释部分则用“//”开始。 例如: CALL FC1(param1:=I0.0, param2:=I0.1); 代码段的注释部分 为了在以后的增量式编辑器中以1:1的比例对注释部分进行显示,需 考虑下列情况: - 当你将当前参数赋给源文件中的形式参数时,必须与在变量声 明表中的形式参数顺序保持一致。(否则可能会与注释部分混淆)。 - 在“OPN”指令后面的注释部分在块编译时可能会丢失。 应避免下列情况: - 程序紧缩, 例如: L DB5.DBW20; // 注释 - 插入 NOP 指令, 例如: OPN DB5 ; // 注释 NOP 0; L DB5.DBW20; // 注释 2 FC5 OB1

7 代码块的语法

8 数据块的语法

9 变量声明 最重要的输入规则 只要使用变量,就必须按声明类型中的命名顺序出现。 例子 变量名: 数据类型; //注释
最重要的输入规则 只要使用变量,就必须按声明类型中的命名顺序出现。 例子 变量名: 数据类型; //注释 变量名: 数据类型:=起始值; 声明部分中的注释 为了在以后的增量式编辑器中以1:1的比例对注释部分进行显示, 需考虑下列情况: -变量声明部分的注释只能有一行(若有多行则不能全显示) -在增量式编辑器的变量声明表中关键词后面的注释不显示 (特例:结构和数组的注释)

10 保护属性 保护属性和块属性一起输入 块保护 KNOW_HOW_PROTECT (在所有其它块属性之前必须给予定义)
--> 你不能参看增量式编辑器中的指令部分 --> VAR和VAR_TEMP类型的变量在声明部分中隐含 --> 在源文件中不能对块进行反编译 数据块的写保护 READ_ONLY--> 在程序顺序执行时不能覆盖数据。 非连接属性 只用于数据块。 系统不把数据块从装载内存传到工作内存中。 可以通过SFC访问装载内存中的数据块,这样做仅能够复制工 作内存中数据块的内容-->这样可以更经济地利用内存。

11 保存, 一致性检查和编译 保存 将源文件(可以含有错误)保存在硬盘上。
保存 将源文件(可以含有错误)保存在硬盘上。 一致性检查和 源文件必须保存在S7程序的源文件夹中(以便和现有的块或符号 编译的条件 表联接)。 一致性检查 检查语法,符号以及现存的所有块,但是不生成新的块。 错误更正 错误列出在窗口的第二部分中,当你选中一条错误信息时, 相应的出错位置将在源文件中显示出来。 编译 用于生成块。 任何已有的同名的块将被覆盖

12 练习2.1: 利用源文件将FC转换为FB (1) 概述 除了采用高级的编程语言,还可以利用源文件(文本文件)生成一个块。对源文件编译后可生成可执行的块文件。同理,源文件也可以由已存在的块生成。采用上述方法,可以很简便地将第1章练习中的FC20转化为FB20。 步骤 1. 打开一个块。 2. 在LAD/STL/FBD编辑器中,选择菜单功能Options ->Customize, 然后在 “Editor”项目下的 “View” 选择框中选择“Symbolic representation”。 3. 在LAD/STL/FBD编辑器中选择菜单功能 File -> Generate Source File 在“New”窗口中的“Object name”对话框内输入要生成的源文件名。 5. 之后出现了“Generate Source File”窗口,从“Unselected Blocks”窗口 中逐一选择要转化为源文件的块。 6. 单击“OK”开始将块文件转化为源代码。生成的源文件以前面指定的名称保 存在S7程序的“Source Files”文件夹中。

13 练习2.1: 利用源文件将FC转换为FB (2) : : : :
源程序 在幻灯片的左半部分为FC20的源程序,右半部分为FB20的源程序。可见,在FB20中输入了FB块的关键字,并且将两个标志定义为静态变量。 编译之后,将生成一个可执行的FB 20块。 说明 如果你不知道关键字,可用通过菜单功能Insert -> Block Template -> FB插入一个块的模板。 源文件将在高级编程课程中继续讨论。 此外 在FB20源文件中,插入关键字“KNOW HOW PROTECT”, 对该块进行编译然后打开。 结果如何? 为什么? 从源文件中删除关键字“KNOW HOW PROTECT” : : : :

14 程序重新接线简介 信号模板 前连接器 A I 16.7 . “旧” 程序 AN I16.7 失效的通道 I 16.7 可用的通道
“新” 程序 可用的通道 I 17.0 应用示例 已经发现输入模板上的一个通道(I 16.7)失效。 如果模板上的输入没有被占满,就可以把传感器重新连接到可用的通道上 (例如:I 17.0)。 必须修改程序来适应新的接线。这就是说程序中所使用过的输入I 16.7必须用输入I 17.0替换。 重新接线 有三种方法完成程序的重新接线(适应新的地址): • 用SIMATIC 管理器,通过给出旧地址和新地址完成重新接线 (该方法不需要 符号表)。 • 用源程序重新接线,这种方法需要符号表。 • 用“符号优先”重新接线,这种方法也需要符号表。

15 用SIMATIC管理器实现重新接线 简介 在已有程序中,所有块中的旧地址(例如:Q4.4)要用新地址(例如:Q 8.4 )替换。 利用该功能可以把现有设备的用户程序和变化的硬件环境相适应。 步骤 • 在SIMATIC管理器中,选择“Blocks”文件夹 • 选择菜单命令 Options -> Rewire 或用鼠标右键在块文件夹上单击 • 在重新接线窗口中,输入旧地址和新地址,如果需要,激活“All addresses within the specified address area”(就是说对相关地址的基于位的所有访问 也修改) • 用“OK”确认 • 如果需要,可以打开重新接线结果的报告文件。

16 概述:用源程序实现重新接线 “Blocks” 文件夹 “Source Files” 文件夹 带符号地址的 源程序 1 “Blocks”
重新接线的 带符号地址的 STEP 7 程序 3 带符号地址的 STEP 7 程序 符号表 (旧) 符号表 (新) 2 概述 也可以用源程序实现重新接线。对于这种方法,需要从用户程序中产生一个带符号的源程序,然后,在符号表中输入新的绝对地址。当编译源程序时要使用这些新的绝对地址。 要求 符号表中一定要有需要重新接线的所有输入、输出、位存储器、定时器、计数器和块。

17 从已有的S7程序产生源程序 要求 有进行地址重新接线需要的符号表。
要求 有进行地址重新接线需要的符号表。 步骤 打开需要进行重新接线的S7程序的块。 选择菜单命令 File -> Generate Source File. 在弹出的“新”窗口中,在“Object name:”行输入要生成的源程序名称,用“OK”确认。 在随后的“Generate Source File”窗口中,在“Unselected blocks”窗口中逐个选择要进行重新接线的程序块, 利用“-->”把这些块传送到“Selected blocks”窗口中。选择地址盒中的“Symbolic”,用“OK”确认你要选择的所有块。这样,可以将块转换成源文本文件。转换后的块放在S7程序的“Source Files”文件夹中。 注 一步一步地转换程序并不常用。

18 生成的源程序 源程序 生成的源文件包含用ASCII码表示的所有被转换的块。如果要修改该文件,要保证源文件编辑器不执行任何语法检查。错误的输入只能在编译时被发现和标识。 重新接线 对符号表中存在的要重新接线的地址,在源文件中不需要修改。

19 符号表:改变绝对地址 之前 之后 地址修改 修改程序中的地址, 仅需要修改符号表中的相应的绝对地址。

20 重新接线的结果 FC 5 “旧” FC 5 “新” 重新接线 打开源文件。 通过选择File -> Compile 或图标 启动重新接线。 如果没有修改源文件,并且符号表没有错误,编译后会显示“0个错误”。 结果 如果重新接线后用符号地址来查看程序,它与原来的程序相同。但是,如果取消符号表示,就可以看到重新接线的结果。 注 重新接线后切换到“Blocks”文件夹,有时需要用F5键更新块的显示。

21 用“符号优先”重新接线 概述 第三种重新接线的方法是利用“符号优先”。采用该方法,需利用符号表并设置块文件夹属性为“符号优先” 。 该方法适用于只有部分块需重新接线的情况。 步骤 • 选择S7 程序的块文件夹 • 选择菜单功能 Edit -> Object Properties 或单击鼠标右键来设置其属性 • 在“Properties - Block Folder Offline 窗口中选择标签“ Blocks ” • 在“Address priority ”对话框中选择“Symbol ” • 打开要重新接线的块 • 选择菜单功能 Options -> Symbol Table 打开符号编辑器 • 在符号表中,输入新的绝对地址并保存符号表 • 切换回程序编辑器,可以看到程序中出现了新的绝对地址,然后保存被修改的 块

22 练习2.2:用SIMATIC 管理器实现重新接线
步骤 操作 结果 1 在SIMATIC管理器中,从项目“STOE_32” 下将S7程序REWIRE拷贝到“My Project”项目 一个名为“REWIRE”的S7程序被存在 项目“My Project”中。 在S7程序“REWIRE”中,单击“Blocks”对象 对象被选中。 2 选择菜单命令 Options -> Rewire. 弹出“重新接线”窗口。 3 在旧地址中输入I 8.0,在新地址中输入I 9.0, 用“OK”钮确认 S7 程序“REWIRE”被修改成新地址。 4 从S7 程序“REWIRE”打开符号表,把符号 LB1的地址从 I 8.0 换成 I 9.0。 保存符号表并退出符号编辑器。 符号LB1被分配一个新地址。 5 目的 输入信号从I 8.0改接到 I 9.0后, 调整程序以适应新的地址。 关于第6步 输入I 8.0不会再出现在交叉参考标中,替代它的是I 9.0,在OB 1 (network 9) 和 FC 6 (network 5)中被扫描。 利用交叉参考表检查重新接线是否成功。 I 9.0替换程序中原来的 I 8.0。 6

23 修改扫描 2x 原因 例如,故障检测时发现一个标志位或输出在程序中的多处受到影响。用户必须首先确定这些位置,以便排除故障。为此建议采用 Reference Data 功能。 Reference Data 例如,在交叉参考表中发现对某个位或输出有两次赋值操作。为排除该错误,在交叉参考表中双击该有问题的变量,可直接跳转到相关块的程序段上。 修改 接下来在相关块中修改程序以排除错误。修改完毕后,保存块并下装到CPU中。 查找和替换 利用Edit 菜单中的功能 Find and Replace,可以在一个块中用新的字符串替换原来的字符串。 如果希望在整个程序中实现这种替换,可利用源文件来完成: Generate Source File --> Edit Source File --> Compile.

24 练习2.3:修改扫描 为安全起见,采用常闭触点 (NC) 停止设备。当出现断线或接地故障时, 这个开关停止设备运行。
程序中的对信号“1”的扫描必须用对信号“0”的扫描代替。 目的 在逻辑程序中做简单的修改。 步骤 • 察看 S7 程序“ REWIRE” 的交叉参考表 • 确定输入“S6”(I 0.1) 在程序中出现的位置 • 将所有的扫描信号“ 1”指令变为扫描信号“0”


Download ppt "“什么是 口令? ” 源文件编程和用户程序的重新接线 目录 页"

Similar presentations


Ads by Google