S7-200 PLC的存储器空间大致分为三个空间,即程序空间、数据空间和参数空间。
1.程序空间
该空间主要用于存放用户应用程序,程序空间容量在不同的CPU中是不同的。另外CPU中的RAM区与内置EEPROM上都有程序存储器,但它们互为映像,且空间大小一样。
2.数据空间
该空间的主要部分用于存放工作数据称为数据存储器,另外有一部分作寄存器使用称为数据对象。
(1)数据存储器 它包括变量存储器(V),输入信号缓存区(输入映象存储器I),输出信号缓冲区(输出映象存储区Q),内部标志位存储器(M)又称内部辅助继电器,特殊标志位存储器(SM)。除特殊标志位外,其他部分都能以位、字节、和双字的格式自由读取或写入。
变量存储器(V)是保存程序执行过程中控制逻辑操作的中间结果,所有的V存储器都可以存储在*存储器区内,其内容可在与EEPROM或编程设备双向传送。
输入映象存储器(I)是以字节为单位的寄存器,它的每一位对应于一个数字量输入结点。在每个扫描周期开始,PLC依次对各个输入结点采样,并把采样结果送入输入映象存储器。PLC在执行用户程序过程中,不再理会输入结点的状态,它所处理的数据为输入映象存储器中的值。
输出映象存储器(Q)是以字节为单位的寄存器,它的每一位对应于一个数字输出量结点。PLC在执行用户程序的过程中,并不把输出信号随时送到输出结点,而是送到输出映象存储器,只有到了每个扫描周期的末尾,才将输出映象寄存器的输出信号几乎同时送到各输出结点。使用映象寄存器优点:①同步地在扫描周期开始采样所有输入点,并在扫描的执行阶段冻结所有输入值;②在程序执行完后再从映象寄存器刷新所有输出点,使被控系统能获得好稳定性;⑧存取映象寄存器的速度**存取I/O速度,使程序执行的快;④I/O点只能以位为单位存取,但映象寄存器则能以位、字节、双字进行存取。因此,映象寄存器提供了高的灵活性。另外对控制系统中个别I/O点要求实时性较高的情况下,可用直接I/O指令直接存取输入/输出点。
内部标志位(M)又称内部线圈(内部继电器等),它一般以位为单位使用,但也能以字、双字为单位使用。内部标志位容量根据CPU型号不同而不同。
特殊标志位(SM)用来存储系统的状态变量和有关控制信息,特殊标志位分为只读区和可写区,具体划分随CPU不同而不同。
(2)数据对象 数据对象包括定时器、计数器、高速计数器、累加器、模拟量输入/输出。
定时器类似于继电器电路中的时间继电器,但它的精度高,定时精度分为lms,10ms和100ms三种,根据精度需要由编程者选用。定时器的数量根据CPU型号不同。
计数器的计数脉冲由外部输入,计数脉冲的有效沿是输入脉冲的上升沿或下降沿,计数的方式有累加1和累减1两种方式。计数器的个数同各CPU的定时器个数。
高速计数器与一般计数器不同之处在于,计数脉冲频率高可达2kHz/7kHz,计数容量大,一般计数器为16位,而高速计数器为32位,一般计数器可读可写,而高速计数器一般只能作读操作。
在S7-200CPU中有4个32位累加器,即AC0~AC3,用它可把参数传给子程序或任何带参数的指令和指令块。此外,PLC在响应外部或内部的中断请求而调用中断服务程序时,累加器中的数据是不会丢失的,即PLC会将其中的内容压入堆栈。因此,用户在中断服务程序中仍可使用这些累加器,待中断程序执行完返回时,将自动从堆栈中弹出原先的内容,以恢复中断前累加器的内容。但应注意,不能利用累加器作主程序和中断服务子程序之间的参数传递。
模拟量输入/输出可实现模拟量的A/D和D/A转换,而PLC所处理的是其中的数字量。
3.参数空间
用于存放有关PLC组态参数的区域,如保护口令、PLC站地址、停电记忆保持区、软件滤波、强制操作的设定信息等,存贮器为EEPROM。
在S7-200PLC中所处理数据有三种,即常数、数据存贮器中的数据和数据对象中的数据。
1.常数及类型
在S7-200的指令中可以使用字节、字、双字类型的常数,常数的类型可*为十进制、
十六进制(6#7AB4)、二进制(2#10001100)或ASCII字符(‘SIMATIC’)。PLC不支持数据类型的处理和检查,因此在有些指令隐含规定字符类型的条件下,必须注意输入数据的格式。
2.数据存贮器的寻址
(1)数据地址的一般格式 数据地址一般由二个部分组成,格式为:Aal.a2。其中:A区域代码(I,Q,M,SM,V),al字节首址,a2位地址(0~7)。例如I10.1表示该数据在I存储区10号地址的1位。
(2)数据类型符的使用 在使用以字节、字或双字类型的数据时,除非所用指令已隐含有规定的类型外,一般都应使用数据类型符来指明所取数据的类型。数据类型符共有三个,即B(字节),W(字)和D(双字),它的位置应紧跟在数据区域地址符后面。例如对变量存贮器有VBl00、VW100、VDl00。同一个地址,在使用不同的数据类型后,所取出数据占用的内存量是不同的。
3.数据对象的寻址
数据对象的地址基本格式为:An,其中A为该数据对象所在的区域地址。A共有6种:T(定时器),C(计数器),HC(高速计数器),AC(累加器),AIW(模拟量输入),AQW(模拟量输出)
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中存放的是VB0,则VD0则是存放2505的地址。
该指令的功能:将十进制数2505传送给VD0地址中。
6ES72111BE400XB0 | CPU 1211C AC/DC/Rly,6输入/4输出,集成2AI |
6ES72111AE400XB0 | CPU 1211C DC/DC/DC,6输入/4输出,集成2AI |
6ES72111HE400XB0 | CPU 1211C DC/DC/Rly,6输入/4输出,集成2AI |
6ES72121BE400XB0 | CPU 1212C AC/DC/Rly,8输入/6输出,集成2AI |
6ES72121AE400XB0 | CPU 1212C DC/DC/DC,8输入/6输出,集成2AI |
6ES72121HE400XB0 | CPU 1212C DC/DC/Rly,8输入/6输出,集成2AI |
6ES72141BG400XB0 | CPU 1214C AC/DC/Rly,14输入/10输出,集成2AI |
6ES72141AG400XB0 | CPU 1214C DC/DC/DC,14输入/10输出,集成2AI |
6ES72141HG400XB0 | CPU 1214C DC/DC/Rly,14输入/10输出,集成2AI |
6ES72151BG400XB0 | CPU 1215C AC/DC/Rly,14输入/10输出,集成2AI/2AO |
6ES72151AG400XB0 | CPU 1215C DC/DC/DC,14输入/10输出,集成2AI/2AO |
6ES72151HG400XB0 | CPU 1215C DC/DC/Rly,14输入/10输出,集成2AI/2AO |
6ES72171AG400XB0 | CPU 1217C DC/DC/DC,14输入/10输出,集成2AI/2AO |