电动机功率 | 4kW | 外形尺寸 | 5mm |
---|---|---|---|
应用领域 | 环保,食品/农产品,地矿,包装/造纸/印刷,纺织/印染 | 重量 | 3kg |
西门子S7-1200 控制器是我们新推出产品的核心,可实现简单却高度精确的自动化任务。西门子S7-1200 控制器实现了模块化和紧凑型设计,功能强大、投资安全并且*适合各种应用。可扩展性强、灵活度高的设计,可实现标准工业通信的通信接口以及一整套强大的集成技术功能,使该控制器成为完整、全面的自动化解决方案的重要组成部分。
![]() |
参考价 | ¥322 |
订货量 | 1 |
更新时间:2019-06-18 12:18:55浏览次数:382
联系我们时请说明是化工仪器网上看到的信息,谢谢!
西门子S7-1200PLC模块江西代理商
西门子S7-300/400的数据块指令
数据块指令见表3-22。在访问数据块时,需要指明被访问的是哪一个数据块,以及访问该数据块中的哪一个存储单元的地址。指令如果同时给出数据块的编号和数据在数据块中的地址(例如DB2. DBX4.5),可以直接访问数据块中的数据。访问时可以使用地址,也可以使用符号地址。这种访问方法不容易出错,建议尽量使用这种方法。
OPN(Open a Data Block)指令用来打开数据块。访问已经打开的数据块内的存储单元时,可以省略其地址中数据块的编号。
表3-22 数据块指令
指令 | 描 述 |
OPN | 打开数据块 |
CDB | 交换共享数据块和背景数据块的编号 |
L DBLG | 共享数据块的长度装入累加器1 |
L DBNO | 共享数据块的编号装入累加器1 |
L DILG | 背景数据块的长度装入累加器1 |
L DINO | 背景数据块的编号装入累加器1 |
同时只能分别打开一个共享数据块和一个背景数据块,打开的共享数据块和背景数据块的编号分别存放在DB寄存器和DI寄存器中。打开新的数据块后,原来打开的数据块自动关闭。调用一个功能块时,它的背景数据块被自动打开。如果该功能块调用了其他的逻辑块,调用结束后返回该功能块,原来打开的背景数据块不再有效,必须重新打开它。下面是打开数据块的例程。
OPN DI 3 //打开背景数据块DB 3
L DIB 40 //将DB3.DIB40装入累加器1
OPN DB 2 //打开共享数据块DB 2
T DBB 27 //累加器1的低字节传送到DB2.DBB27
在梯形图中,与数据块操作有关的只有一条无条件打开共享数据块或背景数据块的指令(见图3-111)。因为打开了数据块DB 10,图中的数据位DBX1.0相当于DB10. DBX1.0。
图3-111 打开数据块
累加器指令只能在语句表中使用,用于处理单个或多个累加器的内容(见表3-23)。这些指令的执行与RLO(逻辑运算结果)无关,也不会对RLO产生影响。对于有4个累加器的CPU,累加器3、4的内容保持不变。
TAK指令交换累加器1和累加器2的内容。
【实例】 下面的程序用MW10和MW12中较大的数减去较小的数,运算结果存放在MW14。
L MW 10 //MW10的内容装入累加器1的低字
L MW 12 //累加器1的内容装入累加器2,MW12的值装入累加器1的低字
>I //如果MW10>MW12,RLO=1
JC NEX1 //跳转到标号NEX1处
TAK //交换累加器1和累加器2低字的内容
NEX1: -I //累加器2低字的内容减去累加器1低字的内容
T MW 14 //运算结果传送到MW14
表3-23 累加器指令
语句表 | 描 述 | 语句表 | 描 述 |
TAK | 交换累加器1、2的内容 | INC | 累加器1低字节加上8位常数 |
PUSH | 入栈 | DEC | 累加器1低字节减去8位常数 |
POP | 出栈 | BLD | 程序显示指令(空指令) |
ENT | 进入ACCU堆栈 | NOP 0 | 空操作指令 |
LEAVE | 离开ACCU堆栈 | NOP 1 | 空操作指令 |
主控继电器(Master Control Relay)简称为MCR。主控继电器指令用来控制MCR区内的指令是否被正常执行,相当于一个用来接通和断开“能流”的主令开关。MCR指令用得并不多,S7 - 200没有MCR指令。
在图3-110中,MCRA为激活主控继电器指令,MCRD为取消激活主控继电器指令。
打开主控继电器区指令“MCR<”在MCR堆栈中保存该指令之前的逻辑运算结果RLO(即MCR位),关闭主控继电器区指令“MCR>”从MCR堆栈中取出保存在里面的RLO。“MCR<”与“MCR>”用来表示受控临时“电源线”的形成与终止。
MCR指令可以嵌套使用,即MCR区可以在另一个MCR区之内。MCR堆栈是一种后进先出的堆栈,允许的大嵌套深度为8级。
图3-110的MCR位受到I0.2的控制,MCR堆栈中的MCR位与I0.2的状态相同。MCR位为1状态时,才会执行MCR控制区内的Q4.0的线圈指令和MOVE指令。MCR位为0状态时,Q4.0为0状态。
下面是用语句表编写的实现字逻辑“或”运算的程序,该操作将QW10的低4位置为1,其余各位保持不变。
L QW 10 //QW10的内容装入累加器1的低字
OW W#16#000F //累加器1低字的内容与W#16#000F逐位相或,结果在累加器1低字
T QW 10 //累加器1低字中的运算结果传送到QW10中
假设用IW20的低12位读取3位拨码开关的BCD码,下面的程序将读取的数据的高4位清0,低12位的数据保持不变。
L IW 20 //IW20的内容装入累加器1的低字
AW W#16#OFFF //累加器1低字的内容与W#16#0FFF逐位相与,结果在累加器l低字
T MW 10 //运算结果保存在MW10。
字逻辑运算指令(见表3-21)对两个16位字或32位双字逐位进行逻辑运算,一个操作数在累加器1,另一个操作数在累加器2,或者在指令中用立即数(常数)的形式给出。运算结果在累加器1中。如果字逻辑运算的结果为0,状态字的CC1位为1,反之为0。在任何情况下,状态字的CC0和OV位被清零。
表3-21 字逻辑运算指令
“与”运算时如果两个操作数的同一位均为1,运算结果的对应位为1,否则为0。
“或”运算时如果两个操作数的同一位均为0,运算结果的对应位为0,否则为1。
“异或”运算时如果两个操作数的同一位不相同,运算结果的对应位为1,否则为0。
扩展的浮点数数学运算指令包括各种浮点数函数运算指令(见表3-20)。操作数和运算结果都是累加器1中的32位浮点数。下面的程序用来求DB17.DBD0的平方根,如果运算没有出错,运算结果存放在DB17.DBD4。
表3-20 浮点数函数运算指令
语句表 | 梯形图 | 描 述 |
+R | ADD_R | 累加器1、2的浮点数相加,浮点数运算结果在累加器1 |
-R | SUB_R | 累加器2的浮点数减去累加器1的浮点数,浮点数运算结果在累加器1 |
*R | MUL_R | 累加器1、2的浮点数相乘,浮点数乘积在累加器1 |
/R | DIV_R | 累加器2的浮点数除以累加器1的浮点数,浮点数商在累加器1,余数被丢掉 |
ABS | ABS | 累加器1的浮点数取值,浮点数运算结果在累加器1 |
SQR | SQR | 求累加器1的浮点数的平方,浮点数运算结果在累加器1 |
SQRT | SQRT | 求累加器1的浮点数的平方根,浮点数运算结果在累加器1 |
EXP | EXP | 求累加器1的浮点数的自然指数,浮点数运算结果在累加器1 |
LN | LN | 求累加器1的浮点数的自然对数,浮点数运算结果在累加器1 |
SIN | SIN | 求累加器l的浮点数的正弦函数,浮点数运算结果在累加器1 |
COS | COS | 求累加器1的浮点数的余弦函数,浮点数运算结果在累加器1 |
TAN | TAN | 求累加器1的浮点数的正切函数,浮点数运算结果在累加器1 |
ASIN | ASIN | 求累加器1的浮点数的反正弦函数,浮点数运算结果在累加器1 |
ACOS | ACOS | 求累加器1的浮点数的反余弦函数,浮点数运算结果在累加器1 |
ATAN | ATAN | 求累加器1的浮点数的反正切函数,浮点数运算结果在累加器1 |
OPN DB 17 //打开数据块DB 17
L DBD 0 //DB17.DBD0的浮点数装入累加器1
SQRT //求累加器1的浮点数的平方根,运算结果在累加器1
AN OV //如果运算时没有出错
JC OK //跳转到标号OK处
BEL_ //如果运算时出错,逻辑块无条件结束
OK:T DBD 4 //累加器1的运算结果传送到DB17.DBD4
浮点数开平方指令SQRT(Generate the Square Root)的输入值应大于等于0,运算结果为正数或0。浮点数自然指数指令EXP(Natural Exponential)和浮点数自然对数指令LN( Natural Logarithm)中的指数和对数的底数e=.
西门子S7-1200PLC模块江西代理商