首页 理论教育 装载和传送指令:信息交换与编程

装载和传送指令:信息交换与编程

时间:2023-06-29 理论教育 版权反馈
【摘要】:可使用装载和传送指令进行编程,以在输入或输出模块与存储区之间、或在各存储区之间进行信息交换。该指令的执行与状态位无关。例:2.梯形图的装载和传送指令MOVE分配值指令符号为:EN和ENO的数据类型为BOOL型,存储区为I、Q、M、L、D。

装载和传送指令:信息交换与编程

可使用装载(L)和传送(T)指令进行编程,以在输入或输出模块与存储区之间、或在各存储区之间进行信息交换。CPU在每个扫描周期中将这些指令作为无条件指令执行,也就是说,它们不受语句逻辑运算结果的影响。

1.语句表(STL)的装载和传送指令

(1)L 装载

指令格式为:L〈地址

在将ACCU 1的原有内容保存到ACCU 2中,并将ACCU 1复位到“0”后,L〈地址〉会将被寻址的字节、字或双字装载到ACCU 1中。

例:

(2)L STW 将状态字装载到ACCU 1中

指令格式为:L STW

L STW(带有地址STW的指令L)用状态字内容装载ACCU 1。该指令的执行与状态位无关,对状态位也没有影响。注意对于S7-300系列CPU,L STW语句不装载状态字的FC、STA和OR位。只有第1、4、5、6、7和第8位装载到累加器1低字的相应位中。

例:

(3)LAR1 从ACCU 1装载地址寄存器1

指令格式为:LAR1

LAR1用ACCU 1的内容(32位指针)装载地址寄存器AR1。ACCU 1和ACCU 2保持不变。该指令的执行与状态位无关,对状态位也没有影响。

(4)LAR1〈D〉 用长整型(32位指针)装载地址寄存器1

指令格式为:LAR1〈D〉

〈D〉的数据类型为DWORD或指针常量,存储区为D、M、L。LAR1〈D〉用所寻址的双字〈D〉的内容或指针常量装载地址寄存器AR1。ACCU 1和ACCU 2保持不变。该指令的执行与状态位无关,对状态位也没有影响。

例1:直接地址

例2:指针常量

(5)LAR1 AR2 从地址寄存器2装载地址寄存器1

指令格式为:LAR1 AR2

LAR1 AR2(带有地址AR2的指令LAR1)用地址寄存器AR2的内容装载地址寄存器1。AC-CU 1和ACCU 2保持不变。该指令的执行与状态位无关,对状态位也没有影响。

(6)LAR2 从ACCU 1装载地址寄存器2

指令格式为:LAR2

LAR2用ACCU 1的内容(32位指针)装载地址寄存器AR2。ACCU 1和ACCU 2保持不变。该指令的执行与状态位无关,对状态位也没有影响。

(7)LAR2〈D〉 用长整型(32位指针)装载地址寄存器2

指令格式为:LAR2〈D〉

〈D〉的数据类型为DWORD或指针常量,存储区为D、M、L。LAR1〈D〉用所寻址的双字〈D〉的内容或指针常量装载地址寄存器AR2。ACCU 1和ACCU 2保持不变。该指令的执行与状态位无关,对状态位也没有影响。

例1:直接地址

例2:指针常量

LAR2 P#M100.0∥用32位指针常量装载AR2

(8)T 传送

指令格式为:T〈地址〉

T〈地址〉的数据类型为BYTE、WORD、DWORD,寻址存储区为I、Q、PQ、M、L、D。

如果主控继电器打开(MCR=1),T〈地址〉会将ACCU 1的内容传送(复制)到目标地址。如果MCR=0,则用0写目标地址。从ACCU 1复制的字节数取决于目标地址中表明的长度。传送后,ACCU 1还保存此数据。当传送至直接I/O区域(存储器类型PQ)时,还将ACCU1的内容或“0”(如果MCR=0)传送至过程映像输出表(存储器类型Q)中的相应地址。该指令的执行与状态位无关,对状态位也没有影响。

例:

(9)T STW 将ACCU 1传送至状态字

指令格式为:T STW

T STW(带有地址STW的指令T)将ACCU 1的0~8位传送给状态字。该指令的执行与状态位无关。

例:

T STW∥将ACCU 1的0~8位传送给状态字

(10)CAR 交换地址寄存器1和地址寄存器2

指令格式为:CAR

CAR交换地址寄存器AR1和AR2的内容。该指令的执行与状态位无关,对状态位也没有影响。地址寄存器AR1的内容移到地址寄存器AR2中,地址寄存器AR2的内容移到地址寄存器AR1中。

(11)TAR1 将地址寄存器1传送至ACCU 1

指令格式为:TAR1

TAR1将地址寄存器AR1的内容传送给ACCU 1(32位指针)。ACCU 1中的原有内容保存在ACCU 2中。该指令的执行与状态位无关,对状态位也没有影响。

(12)TAR1〈D〉 将地址寄存器1传送至目标地址(32位指针)(www.xing528.com)

指令格式为:TAR1〈D〉

TAR1〈D〉将地址寄存器AR1的内容传送给寻址的双字〈D〉。目标区域可以为存储器双字(MD)、本地数据双字(LD)、数据双字(DBD)和实例数据字(DID)。ACCU 1和ACCU 2保持不变。该指令的执行与状态位无关,对状态位也没有影响。

(13)TAR1 AR2 将地址寄存器1传送至地址寄存器2

指令格式为:TAR1 AR2

TAR1 AR2(带有地址AR2的指令TAR1)将地址寄存器AR1的内容传送给地址寄存器AR2。ACCU 1和ACCU 2保持不变。该指令的执行与状态位无关,对状态位也没有影响。

(14)TAR2 将地址寄存器2传送至ACCU 1

指令格式为:TAR2

TAR2将地址寄存器AR2的内容传送给ACCU 1(32位指针)。ACCU 1的内容提前保存到ACCU 2中。该指令的执行与状态位无关,对状态位也没有影响。

(15)TAR2〈D〉 将地址寄存器2传送至目标地址(32位指针)

指令格式为:TAR2〈D〉

TAR2〈D〉将地址寄存器AR2的内容传送给寻址的双字〈D〉。目标区域可以为存储器双字(MD)、本地数据双字(LD)、数据双字(DBD)和实例双字(DID)。ACCU 1和ACCU 2保持不变。该指令的执行与状态位无关,对状态位也没有影响。

例:

2.梯形图(LAD)的装载和传送指令(MOVE分配值)

(1)MOVE分配值

指令符号为:

EN(起用输入)和ENO(起用输出)的数据类型为BOOL型,存储区为I、Q、M、L、D。IN(源值)的数据类型为所有长度为8、16或32位的基本数据类型,存储区为I、Q、M、L、D或常数。OUT(目标地址)的数据类型为所有长度为8、16或32位的基本数据类型,存储区为I、Q、M、L、D。MOVE(分配值)通过起用EN输入来激活。在IN输入指定的值将复制到在OUT输出指定的地址。ENO与EN的逻辑状态相同。MOVE只能复制BYTE、WORD或DWORD数据对象。用户自定义数据类型(如数组或结构)必须使用系统功能“BLKMOVE”(SFC 20)来复制。

MCR(主站控制继电器)依存。只有当“传送”框位于激活的MCR区内时,才会激活MCR依存。在激活的MCR区内,如果开起了MCR,同时有通往起用输入的电流,则按如上所述复制寻址的数据。如果MCR关闭,并执行了MOVE,则无论当前IN状态如何,均会将逻辑“0”写入到指定的OUT地址。

注意:将某个值传送给不同长度的数据类型时,会根据需要截断或以零填充高位字节。

例:

如果I0.0为“1”,则执行该指令。把MW10的内容复制到当前打开DB的数据字12。如果执行了该指令,则Q4.0为“1”。

如果该梯级在激活的MCR区之内:如果MCR开起,则按如上所述将MW10数据复制到DBW12;如果MCR关闭,则将“0”写入到DBW12。

(2)立即读取和立即写入

对于“立即读取”功能,必须按以下实例所示创建符号程序段。

对于对时间要求苛刻的应用程序,对数字输入的当前状态的读取可能要比正常情况下每OB1扫描周期一次的速度快。“立即读取”在扫描“立即读取”梯级时从输入模块中获取数字输入的状态。否则,必须等到下一OB1扫描周期结束,届时将以P存储器状态更新I存储区。

要从输入模块立即读取一个输入(或多个输入),请使用外设输入(PI)存储区来代替输入(I)存储区。可以字节、字或双字形式读取外设输入存储区。因此,不能通过触点(位)元素读取单一数字输入。

根据立即输入的状态有条件地传递电压。

1)CPU读取包含相关输入数据的PI存储器的字。

2)如果输入位处于接通状态(为“1”),将对PI存储器的字与某个常数执行产生非零结果的AND运算。

3)测试累加器的非零条件。

例:可以立即读取外设输入I1.1的梯形图程序段。

必须指定∗MWx,才能存储程序段。x可以是允许的任何数。

WAND_W 指令说明:

在此实例中,立即输入I1.1与I4.1和I4.5串联。

字PIW1包含I1.1的立即状态。对PIW1与W#16#0002执行AND运算。如果PB1中的I1.1(第二位)为真(“1”),则结果不等于零。如果WAND_W指令的结果不等于零,触点A〈〉0时将传递电压。

(3)立即写入

对于“立即写入”功能,必须按以下实例所示创建符号程序段。

对于对时间要求苛刻的应用程序,将数字输出的当前状态发送给输出模块的速度可能快于正常情况下在OB1扫描周期结束时发送一次的速度。“立即写入”将在扫描“立即写入”梯级时将数字输出写入输入模块。否则,必须等到下一OB1扫描周期结束,届时将以P存储器状态更新Q存储区。

要将一个输出(或多个输出)立即写入输出模块,请使用外设输出(PQ)存储区来代替输出(Q)存储区。可以字节、字或双字形式读取外设输出存储区。因此,不能通过线圈单元更新单一数字输出。要立即向输出模块写入数字输出的状态,将根据条件把包含相关位的Q存储器的字节、字或双字复制到相应的PQ存储器(直接输出模块地址)中。

注意:由于Q存储器的整个字节都写入了输出模块,因此在执行立即输出时,将更新该字节中的所有输出位。如果输出位在程序各处产生了多个中间状态(1/0),而这些状态不应发送给输出模块,则执行“立即写入”可能会导致危险情况(输出端产生瞬态脉冲)发生。作为常规设计原则,在程序中只能以线圈形式对外部输出模块引用一次。如果用户遵循此设计原则,则可以避免使用立即输出时的大多数潜在问题。

例:立即写入外设数字输出模块5通道1的等价梯形图程序段。

可以修改寻址输出Q字节(QB5)的状态位,也可以将其保持不变。程序段1中给Q5.1分配I0.1信号状态。将QB5复制到相应的直接外设输出存储区(PQB5)。

字PIW1包含I1.1的立即状态。对PIW1与W#16#0002执行AND运算。如果PB1中的I1.1(第二位)为真(“1”),则结果不等于零。如果WAND_W指令的结果不等于零,触点A〈〉0时将传递电压。

在此实例中,Q5.1为所需的立即输出位。

字节PQB5包含Q5.1位的立即输出状态。

MOVE(复制)指令还会更新PQB5的其他7位。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈