1功能介绍
s7-1500产品系列的cpu支持在运行期间扩展函数块的接口,或者增加全局数据块的变量。此过程无需将cpu设置为stop模式,既可下载已修改的块,此时也不会影响已经加载变量的过程值。这是一种简单的程序更改实施方式,这一加载过程(无需重新初始化的加载)不会对受控对象造成fumian影响。
原理:被激活为“优化块访问”(optimized blockaccess)属性的函数块或者数据块已经默认包含一个预留存储区间,该预留区间在初期并未使用,可用于后续的函数块接口的扩展或者数据块变量的增加。预留功能会占用更多的存储区。如果希望已经带有存储区预留的程序块用于下载无需重新初始化功能,那么新声明的所有变量都将保存到存储器预留的区域中,所有新增变量的大小必须小于预留的存储区的大小。执行无需重新初始化的下载不会影响任何已经加载的变量或对运行造成不利影响。
2功能实现
2.1要求
要实现下载函数块或者数据块无需重新初始化功能,需要满足以下条件:
1) 项目是博途v12版本创建的
2) 使用s7-1500产品系列的cpu
3) 函数块在lad、fbd、stl、或scl中创建
4) 块由用户创建,即这些块不能是博途 v12安装后自身带有的块
5)这些块设置为优化访问方式
2.2应用举例
下面以db为例,来说明怎样实现下载无需重新初始化功能。
序号 | 操作 | 图示 |
1. | 打开博途 v12软件,切换至项目视图,添加一款s7-1500cpu。 | |
2. | 添加一个新的数据块,数据块名称和编号使用缺省值即可。 | |
3. | 默认情况下,数据块已经被设置为优化的块访问方式,如果不是,手动设置为优化的块访问方式。 | |
4. | 默认预留存储空间大小为100字节,可以修改这一存储预留区域以适应用户的需求,大可以设置为2m。这部分预留存储空间由装载存储器提供。 保持存储区中默认情况下没有设置预留区域,这是因为保持型存储区由cpu提供,这一存储区是有限的(例如cpu1516为484000个字节)。如果增加的变量需要设置为保持属性,那么就需要设置预留可保持性存储器的大小。 | |
5. | 在在数据块中建立变量,本例中建立以下三个变量“variable1”、“variable2”和“variable3”,数据类型分别为bool,real和int。 | |
6. | 在ob1中对这些变量赋值,此赋值过程为使用上升沿与跳转指令赋值,只持续一个周期 | |
7. | 在线监视赋值结果。 | |
8. | 点击下载无需初始化功能图标,弹出提示对话框,点击确定。 | |
9. | 注意:一旦激活了下载无需初始化按钮,则无法再shanchu现有变量。除了“默认值”、“起始值”和“注释”属性之外,其它属性均不得再进行更改。也不能修改步骤4中保留存储器的大小。 | |
10. | 可以在现有变量标签上选择“插入行”或者“添加行”来增加变量,本例增加了两个变量,分别是“variable4”和“variable5”,并且修改了“variable3”的启动值。 | |
11. | 在编译期间,新声明的变量将插入到预留存储器中。 如果预留存储器过小,编译将终止,并显示一条错误消息,通知发生错误。 点击下载,将数据块下载到cpu中,下载预览中的“消息”栏中,没有出现下载需要初始化选项,说明成功实现下载程数据块无需重新初始化功能。 | |
12. | 查看增加新变量后的块属性,可以观测到保留存储区的剩余资源。 | |
13. | 下载后监视数据块,原有变量的过程值保留原来的值,并没有被重新初始化为启动值,新增加的变量被初始化为启动值。 |
3其它注意事项
3.1修改缺省预留存储区大小
如果要在项目中为所有新创建的块设置预留存储器的大小,请按以下步骤操作:
1) 在“选项”(options) 菜单中,选择“设置”(settings) 命令。选择后将在工作区中显示“设置”(settings)窗口。
2) 在区域导航中选择“编程 >; 常规”(plc programming >; general) 组。
3) 在“无需重新初始化设置下载的预留存储器”(reserved memory for download withoutreinitialization) 组中,在“存储器预留区域”(memory reserve)的输入框中输入为函数块或者数据块进行后续扩展而分配的预留存储区的字节数。
设置完成后,当新建一个优化的函数块或者数据块时,步骤4中缺省的预留存储空间变为新指定的大小。而已经存在的块不受此次更改的影响。
设置界面如图3-1所示。
图3-1修改系统缺省预留存储区大小
3.2取消下载无需初始化功能
如果取消下载无需初始化功能,可以将之前位于预留区域的所有变量都移动到常规区域。 需要对块进行编译并加载。 cpu中变量的值在加载期间重新初始化。预留存储器仍然存在,可供之后进行扩展时使用, 并具有块属性中所定义的空间大小。
3.3重至预留存储区
要重置一个或多个块的预留存储器,请按以下步骤操作:
1) 选择“程序块”(program blocks) 文件夹,或该文件夹中的特定块。
2) 在快捷菜单中,选择“编译 >; 软件(重置预留存储器)”(compile >; software (resetmemory reserve))命令。
此操作的结果是,之前位于预留存储器中所选块的所有变量,都从此区域移动到常规区域中,并且块重新被编译。变量在下一次加载期间将重新初始化。块中所组态的预留存储器将保留,且继续保持活动状态。
注意:取消下载无需初始化功能和重置预留存储器时,在预留存储器中之前设置的所有变量都将在下次加载时重新初始化。这适用于保持性和非保持性变量。在工厂运行期间,更改变量值将导致严重的财产损失和人身伤害!在重置预留存储器后必须先在测试环境中进行全面彻底地检查之后,才能使用。
s7连接是s7系统之间进行通讯时,采用的一种通讯方式
s7容错连接是指400h系统,与上位机通讯时,所建立的链接。
1、s7的容错连接:它是西门子的s7的一种连接,通过冗余的通讯组件,双方建立两个以上的连接。
详见上传的图片。
2、在冗余的角度来件,s7连接是非冗余的。
s7连接的类型:s7连接区分为双边组态的s7连接和单边组态的s7连接。
1、符号表的作用
在程序的编写过程中如果我们不建立符号表直接使用i/o点位进行编写程序如图1?1所示那么我们程序中只会出现i/o点位,如果程序很短还好说如果当程序非常大结构非常复杂,那么我们就看不出来这个程序到底是什么意思了,自然就无法对程序进行修改与调试,我们希望看到的程序是如图1-2所示的程序,这样我们的整个程序中每个点位都有具体的含义了,对于我们理解与调试程序都起到了非常大的作用。
图1-1
图1-2
2、符号表的结构
图2-1
图2-1所示就是step 7中的符号表由图2-1可以看出每条符号都包含五个信息我们一起来了解一下这五个信息分别代表什么含义
状态:显示该条符号的状态正常情况下为空如果有错误将会有相应的显示后面会具体介绍。
符号:定义该条符号的符号名。
地址:确定该条符号定义的是哪个地址。
数据类型:设定该条符号的数据类型。
注释:对该条符号的具体解释。
3、错误信息
在上一段中我们提到了状态栏的显示,如果该条符号没有任何问题状态栏是没有任何显示的,此处我将会向大家具体讲解我们建立符号表的时候一般都会出现哪些问题,以及当出现这些问题的时候状态栏将会显示什么内容。
1)当状态栏显示“x”
图3-1
当符号表中出现“x”表示该条符号中有错误出现,这些错误包括没有定义符号、没有设定地址、当没有设置数据类型是状态栏不会又任何显示该条符号依然是红色表示出现错误,此处需要注意的注释一栏的内容可有可无不会产生任何问题。
2)当状态栏显示“=”
图3-2
图3-3
当符号表的状态栏中出现“=”时说明我们符号表中至少有两条及两条以上的符号有符号名或者是地址重复的错误