电动机功率 | 4kW | 外形尺寸 | 3mm |
---|---|---|---|
应用领域 | 环保,食品/农产品,地矿,包装/造纸/印刷,纺织/印染 | 重量 | 5kg |
全新的西门子S7-200SMART带来两种不同类型的CPU 模块,标准型和经济型,*满足不同行业、不同客户、不同设备的各种需求。标准型作为可扩展CPU 模块,可满足对I/O 规模有较大需求,逻辑控制较为复杂的应用;而经济型CPU 模块直接通过单机本体满足相对简单的控制需求。
![]() |
参考价 | ¥544 |
订货量 | 1 |
更新时间:2019-07-11 13:37:50浏览次数:858
联系我们时请说明是化工仪器网上看到的信息,谢谢!
河北西门子S7-200SMART系列PLC代理商
西门子S7-300/400比较指令
比较指令用于比较累加器1与累加器2中的数据大小(见表3-7),被比较的两个数的数据类型应该相同,数据类型可以是整数、双整数或浮点数(即实数)。如果比较的条件满足,则RLO为1,否则为0。状态字的CC0和CC1位用来表示两个数的大于、小于和等于关系。
比较指令影响状态字,用指令测试状态字的有关位,可以得到更多的信息。
整数比较指令用来比较两个整数字的大小,指令助记符中用I表示整数。
双整数比较指令用来比较两个双字的大小,指令助记符中用D表示双整数。
浮点数比较指令用来比较两个浮点数的大小,指令助记符中用R表示浮点数。
表3-7 比较指令
语句表 | 梯形图 | 描述 |
?I | CMP?I | 比较累加器2和累加器1低字中的整数是否==,<>,>,<,>=,<=,如果条件满足,RLO=1 |
?D | CMP?D | 比较累加器2和累加器1中的双整数是否==,<>,>,<,>=,<=,如果条件满足,RLO=1 |
?R | CMP?R | 比较累加器2和累加器1中的浮点数是否==,<>,>,<,>=,<=,如果条件满足, RLO=1 |
表3-7中的“?”可以取==、<>、>、<、>=和<=。
下面是比较两个浮点数的例子:
L MD 4 //MD4中的浮点数装入累加器1
L 2. 345E+02 //累加器1的值装入累加器2,浮点数常数装入累加器1
>R //比较累加器1和累加器2的值
= Q 4.2 //如果MD4>234.5,则Q4.2为1
梯形图的方框比较指令用来比较两个同类型的数,与语句表的比较指令类似,可以比较整数(I)、双整数(D)和浮点数(R)。在使能输入信号为1时,比较IN1和IN2输入的两个操作数。方框比较指令在梯形图中相当于一个常开触点,可以与其他触点串联和并联。如果被比较的两个数满足指令的大于、等于、小于等条件,比较结果为“真”,等效触点闭合,指令框才有可能有能流流过。如果图3-54中I0.6的常开触点闭合,且MW2<=MW4,Q4.1被置位为1。
图3-54 比较指令
梯形图中比较指令框的输入和输出均为BOOL变量,可以取I、Q、M、L和D;被比较数IN1和IN2的数据长度与指令有关,可以取整数、双整数和浮点数。数据类型为I、Q、M、L、D或常数。
1)使用SFC 20“BLKMOV”(块移动),可将源存储区的内容复制到目标存储区。源区域与目标区域不能交叉。下面是使用SFC 20传送20个字节的例子。
CALL "BLKMOV” //调用SFC 20
SRCBLK :=P#M 54.0 BYTE 20 //源存储器区
RET_VAL:=MW10 //执行SFC 20出错时的错误代码
DSTBLK :=P#DB2.DBX0.0 BYTE 20//目标存储器区
2)使用SFC 21“FILL”,可以将源数据区的数据填充到目标数据区。假设MB20和MB21的值为7和5,执行下面的例程后DB2的DBB30~DBB34的值分别为7、5、7、5和7。源区域与目标区域不能交叉。
CALL "FILL" //调用SFC 21
BVAL :=P#M 20.0 BYTE 2 //源存储器区
RET_VAL:=MW12 //执行SFC 21出错时的错误代码
BLK :=P#DB2.DBX30.0 BYTE 5 //目标存储器区
3) SFC 81“UBLKMOV”(不间断的块移动)与SFC 20的功能和使用方法基本上相同,SFC 81的复制操作不会被其他操作系统的任务打断。
梯形图的传送指令(见图3-53)只有一条MOVE指令,它直接将源数据传送到目的地址,不需经过累加器中转。输入变量和输出变量可以是8位、16位或32位的基本数据类型。同一条指令的输入变量和输出变量的数据类型可以不相同,例如可以将MB0中的数据传送到MW2。如果将MW4的数据传送到MB6时,MW4中的数据超过255,只是将MW4的低位字节(MB5)中的数据传送到MB6,应避免出现这种情况。
图3-53 传送指令
可以用L指令将定时器字的十六进制剩余时间值装入累加器1的低字,称为直接装载。也可以用LC指令以BCD码格式将剩余时间值装入累加器1的低字。使用LC指令可以同时获得时间值和时间基准,时间基准与时间值相乘得到实际的定时剩余时间。
可以用L指令将十六进制计数值装入累加器1的低字,或用LC指令将BCD码格式的计数值装入累加器1的低字。
L T 5 //将定时器T5中的十六进制时间值装入累加器1的低字
LC T 5 //将定时器T5中的BCD码格式的时间值装入累加器1的低字
C 3 //将计数器C3中的十六进制计数值装入累加器1的低字
LC C 16 //将计数器C16中的BCD码格式的计数值装入累加器1的低字。
S7中有两个地址寄存器AR1和AR2,通过它们可以对各存储区的存储器内容作寄存器间接寻址。地址寄存器的内容加上偏移量形成地址指针,后者指向数据所在的存储单元。
图3-51 存储器间接寻址的双字指针格式
图3-52 寄存器间接寻址的双字指针格式
地址寄存器存储的双字地址指针见图3-52。其中第0~2位(xxx)为被寻址地址中位的编号(0~7),第3~18位为被寻址地址的字节的编号。第24~ 26位(rrr)为被寻址地址的区域标识号(见表3-6),第31位x为0则为区域内的间接寻址,为1则为区域间的间接寻址。
表3-6 区域间寄存器间接寻址的区域标识号
区域标识符 | 存储区 | 二进制数rrr |
I | 过程映像输入 | 001 |
Q | 过程映像输出 | 010 |
M | 位存储区 | 011 |
DB | 共享数据块 | 100 |
DI | 背景数据块 | 101 |
L | 局部数据(L堆栈) | 110 |
V | 上一级赋值的局部数据 | 111 |
如果要用寄存器指针访问一个字节、字或双字,必须保证指针的位地址编号为0。
*种地址指针格式包括被寻址数值所在的存储单元地址的字节编号和位编号,存储区的类型在指令中给出。这种指针格式适用于在某一存储区内寻址。第24~26位(rrr)和第31位应为0。下面是区域内间接寻址的例子:
L P#5.0 //将间接寻址的指针装入累加器1
L AR1 //将累加器l的内容送到地址寄存器1
A M[ AR1,P#2.3] //AR1中的P#5.0加偏移量P#2.3,对M7.3进行操作
= Q[ AR1,P#0.2] //逻辑运算的结果送Q5.2
L DBW[AR1,P#18.0] //将DBW23装入累加器1
指针常数#P5.0对应的二进制数为2#0000 0000 0000 0000 0000 0000 0010 1000。
第二种地址指针格式的第24~26位还包含了说明数值所在存储区的存储区域标识符的编号rrr,这种指针格式用于区域间寄存器间接寻址。下面是区域间间接寻址的例子:
L P#M6.0 //将存储器位M6.0的双字地址装入累加器1
LAR1 //将累加器1的内容送到地址寄存器1
L W[ AR1,P#50.0] //将存储器字MW56的内容传送到累加器l
P#M6.0对应的二进制数为2#1000 0011 0000 0000 0000 0000 0011 0000。因为地址指针P#M6.0已经包含有区域信息,使用间接寻址的指令“L W[AR1,P#50]”时没有必要再使用地址标识符M。
河北西门子S7-200SMART系列PLC代理商