您现在的位置是:首页 > PLC技术 > PLC技术
STL编程语言中数据寻址中的特殊点
来源:艾特贸易2017-06-05
简介1 . DB 寄存器中内容的变化 用下列功能,程序编辑器生成能够影响两个数据块寄存器之一的内容的附加指令。 (1) 数据地址的全局寻址 每次数据地址是全局寻址时,程序编辑器用 OPN
1.DB寄存器中内容的变化
用下列功能,程序编辑器生成能够影响两个数据块寄存器之一的内容的附加指令。
(1)数据地址的全局寻址
每次数据地址是全局寻址时,程序编辑器用OPN DB首先打开数据块,然后存取数据地址。每次都要重写DB寄存器。当用全局寻址的数据地址预置块参数时,这也是适用的。
(2)存取块参数
存取下面的块参数改变DB寄存器的内容:对于功能,为复杂数据类型的所有块参数;对于功能块,为复杂数据类型的输入/输出参数。
(3)块调用CALL FB和CALL SFB
在实际的块调用之前,CALL FB和CALL SFB在DB寄存器中存储当前实例数据块数据(通过交换数据块寄存器),并且为被调用功能块打开实例数据块。以这种方式,与被调用数据块有关的实例数据块总是打开的。在实际的块调用之后,CALL FB和CALL SFB再次交换数据块寄存器,当前实例数据块在调用功能块中是有效的。以这种方式,CALL FB和CALL SFB改变了DB寄存器的内容。
(4)功能块中的DI寄存器
在功能块中,DI寄存器总是包含当前实例数据块的数字。所有存取块参数或静态局部数据通过DI寄存器实现。顺便说一下,在“multi instance-capable”(多实例能力)功能块情况下,也可以通过地址寄存器AR2。如果用户用CDB或OPN DI改变DI寄存器的内容,请注意这个固定的设置。
例如,用户想同时用两个数据块寄存器进行数据交换,必须首先保存寄存器的内容,然后恢复它们。图18-6显示的例子描述了相关的方法。
图18-6 两个数据块寄存器直接使用举例
2.后来改变数据块的赋值
在离线对象容器Blocks的属性窗口中的“Blocks”(块)选项卡上,改变已经存储的代码块的数据块配置,并再次显示和存储它们时,用户可以指明绝对地址或符号地址的优先权。
“绝对地址优先”是默认的(与先前的STEP 7版本相同)。这个默认意味着,当声明发生变化时,程序中符号地址发生变化而绝对地址保持不变;如果选择“符号地址优先”这个约定,当绝对地址发生变化时符号地址保持不变。
举例:假定在数据块DB 1中,数据字DBW 10的符号地址是Ac tual_value,在程序中用户可以通过
L"Data" .Actual_value DB1.DBW 10来加载该数据字。
假定式中“Data”是数据块DB 1的符号地址。如果想用符号地址MaxCurrent在DBW 10数据字前添加一个数据字,当代码块下一次打开(或存储)时,程序将包含以下内容:
在“绝对地址优先”的情况下,写成
L ”Data”.MaxCurrent DB1.DBW 10
在“符号地址优先”的情况下,写成
L ”Data”.Actual_value DB1.DBW 12
在全局数据块中,存取数据地址的方法与存取全局地址的相同(以输入为例),符号地址已在符号表中指定。
点击排行
