西门子S7-200编程语言的基本单位是语句,而语句的构成是指令,每条指令有两部分:一部分是操作码,另一部分是操作数。操作码指出这条指令的功能是什么,操作数则指明操作码所需要的数据所在。所谓寻址,就是寻找操作数的过程。S7-200 CPU的寻址分为三种:立即寻址、直接寻址和间接寻址。 1)立即寻址 在一条指令中,如果操作码后面的操作数就是操作码所需要的具体数据,这种指令的寻址方式就叫立即寻址。 例如,在传送指令MOV IN OUT中,操作码“MOV”指出该指令的功能是把IN中的数据传送到OUT中,其中IN为源操作数,OUT为目标操作数。 若该指令为MOVD 2505 VD500,则其功能为:将十进制数2505传送到VD500中,这里2505就是源操作数。因这个操作数的数值已经在指令中,不用再去寻找,这个操作数即为立即数。这个寻址方式就是立即寻址方式。而目标操作数的数值在指令中并未给出,只给出了要传送到的VD500,这个操作数的寻址方式就是直接寻址。 2)直接寻址 在一条指令中,如果操作码后面的操作数是以操作数所在的形式出现的,这种指令的寻址方式就叫直接寻址。 例如:MOVD VD400 VD500 功能:将VD400中的双字数据传给VD500。 3)间接寻址 在一条指令中,如果操作码后面的操作数是以操作数所在的形式出现的,这种指令的寻址方式就叫间接寻址。 例如:MOVD 2505 *VD500 *VD500是指存放2505地址的地址。 若VD500中存放的是VDO,则VDO是存放2505的地址。 该指令的功能:将十进制数2505传送给VDO地址中。 |
图 脉冲指令
(2) S7-200有两台PTO/PWM发生器,建立高速脉冲串或脉宽调节信号信号波形。一台发生器*给数字输出点Q0.0,另一台发生器*给数字输出点Q0.1。一个*的特殊内存(SM)位置为每台发生器存储以下数据:一个控制字节(8位值)、一个脉冲计数值(一个不带符号的32位值)和一个周期值及脉宽值(一个不带符号的16位值)。
(3) PTO/PWM发生器和过程映像寄存器共用Q0.0和Q0.1。PTO或PWM功能在Q0.0或Q0.1位置现用时,PTO/PWM发生器控制输出,并禁止输出点的正常使用。输出信号波形不受过程映像寄存器状态、点强迫数值、执行立即输出指令的影响。PTO/PWM发生器非现用时,输出控制转交给过程映像寄存器。
(4)过程映像寄存器决定输出信号波形的初始和较终状态,使信号波形在高位或低位开始和结束。脉冲串(PTO)功能提供方波(50%占空比)输出或*的脉冲数和*的周期。脉宽调制(PWM)功能提供带变量占空比的固定周期输出。
(5)每台PTO/PWM发生器有一个控制字节(8位)、一个周期值和脉宽值(不带符号的16位值)及一个脉冲计数值(不带符号的32位值),这些值全部存储在特殊内存( SM)区域的*位置。一旦设置这些特殊内存位的位置,选择所需的操作后,执行脉冲输出指令( PLS)即启动操作。该指令使S7-200读取SM位置,并为PTO/PWM发生器编程。
(6)通过修改SM区域中(包括控制字节)要求的位置,可以更改PTO或PWM的信号波形特征,然后执行PLS指令。可以在任意时间向控制字节(SM67.7或SM77.7)的PTO/PWM启用位写入零,禁用PTO或PWM信号波形的生成,然后执行PLS指令。
小编提示:所有控制位、周期、脉宽和脉冲计数值的默认值均为零。PTO/PWM输出必须至少有10%的额定负载,才能完成从关闭至打开及从打开至关闭的顺利转换。
运算指令包括算术运算和逻辑运算两大类。算术运算有加、减、乘、除运算和常用的数学函数变换;逻辑运算包括与、或指令和取反指令等,如图所示。
图 逻辑运算
ANDD(双字与)指令对两个输入双字按位与,得到一个双字结果(OUT)。 ORD(双字或)指令对两个输入双字按位或,得到一个双字结果(OUT)。 XORD(双字异或)指令对两个输入双字按位异或,得到一个双字结果(OUT)。 使ENO=0的错误条件是SM4.3(运行时间)0006(间接寻址)。 这些指令影响下面的特殊存储器位SM1.0(零),如表所示。 表 双字与、双字或,双字异或影响的特殊存储器位 |