当前位置:首页 > 第3章 SIMATIC S7-200的指令系统与基本程序
第3章 SIMATIC S7-200的指令系统与基本程序 ? OUT(BYTE): 同IN。
? 字和双字的逻辑异或指令,读者可以参见表3.8。 注意
IN和OUT地址不同时,STL中可参考算术运算指令的处理方式。
4. 取反指令 程序
指令类型 使能输入端 输入 使能输出端 INVB IN, OUT
输出 LAD(梯形图)
STL(语句表)
具体解析
? 将两个输入值IN的相应位进行取反操作,将结果存入OUT中。
? IN(BYTE): IB、QB、VB、MB、SMB、SB、LB、AC、*VD、*LD、*AC、常数。 ? OUT(BYTE): 同IN。
? 字和双字的取反指令,读者可以参见表3.8。 注意
IN和OUT地址不同时,STL中可参考算术运算指令的处理方式。读者可以参照图3.18的示例理解。
表3.8 逻辑运算指令
LAD 与 WAND_□ EN ENO IN1 OUT IN2 或 将两个输入值IN1和IN2WOR_□ EN ENO IN1 OUT IN2 ·104·
OR□ IN1, OUT 的相应位进行或操作,将结果存入OUT中。 □为B、W、D AND□ IN1, OUT 将两个输入值IN1和IN2的相应位进行与操作,将结果存入OUT中。 □为B、W、D IN1、IN2、IN: IB、QB、VB、MB、SMB、SB、LB、AC, IW、QW、VW、MW、SMW、SW、LW、T、C、AC、AIW、ID、QD、VD、MD、SMD、SD、LD、AC、HC、*VD、*LD、*AC、常数 OUT: 同IN STL 说 明 数据类型及操作数 第3章 SIMATIC S7-200的指令系统与基本程序 异或 WXOR_□ EN ENO IN1 OUT IN2 取反 INV_□ EN ENO IN OUT 将输入IN取反的结果存INV□ IN, OUT 入OUT中 □为B、W、D XOR□ IN1, OUT 将两个输入值IN1和IN2的相应位进行异或操作,将结果存入OUT中。 □为B、W、D 5. 应用示例
图3.16、图3.17分别是与、或和异或指令示例和取反指令示例。读者可以根据这两个例子举一反三,了解逻辑运算指令的功能及应用方法。下面将按照运算律的不同进行详细讲解。
Network 1 LD ANDW ORW XORW
I4.0 AC1, AC0 AC1,VW100 AC1, AC0
(b) STL 字与:
AC1 0001 1111 0110 1101 与
AC0 1101 0011 1110 0110 等于
AC0 0001 1111 0110 1101
(a) LAD
字或:
AC1 1101 0011 1010 0000 或
VW100 1101 1111 1110 1101 等于
字异或:
AC1 0001 1111 0110 1101 或
VW100 0000 1100 0000 1001 等于
·105·
第3章 SIMATIC S7-200的指令系统与基本程序 VW100 0001 1111 0110 1101 VW100 0001 0011 0110 0100 (c) 运算法则
图3.21 与、或和异或指令示例
Network 1 LD INVW
(a) LAD
执行前 1101 0101 1110 0011 执行后 0010 1010 0001 1100 (c) 运算法则 图3.22 取反指令示例
(b) STL
I4.0 AC0
3.3.7 表功能指令
表功能指令用来建立和存取字型的数据表。S7-200的表功能指令包含有填表、查表、先进先出、后进先出等指令,如表3.9所示。
1.
填表指令
ATT指令向表(TBL)中增加一个数值(DATA)。DATA 为数据输入,指出被填表的字型数据或其地址;TBL为表格的首地址,用以指明被填表格的位置。DATA、TBL为字型数据。表存数时,新填入的数据添加在表中最后一个数据的后面,且实际填表数EC值自动加1。填表指令会影响特殊存储器标志位SMl.4。影响允许输出ENO正常工作的出错条件:SM4.3(运行时间),0006(间接寻址错误),0091(操作数超界)。
表3.9 表功能指令
LAD STL 说 明 ATT指令向表(TBL)中 填表 ATT DATA, TBL 增加一个数值(DATA)。一个表最多可以有100条数据。 数据类型及操作数 DATA(INT): IW、QW、VW、MW、SMW、SW、LW、T、C、AC、AIW、*VD、*LD、*AC、常数 TBL(WORD): ·106·
第3章 SIMATIC S7-200的指令系统与基本程序 IW、QW、VW、MW、SMW、SW、T、C、LW、*VD、*LD、*AC TBL(WORD): 同上 从INDX开始搜索表TBL_FIND EN ENO TBL PTN INDX CMD FND= TBL, PTN, INDX FND<> TBL, PTN, INDX FND< TBL, PTN, INDX FND> TBL, PTN, INDX TBL,寻找符合条件PTN和CMD的数据。 梯形图中CMD=1~4分别代表:=、<>、<和> 如果找到符合条件的数据,INDX指向表中该数据的位置。 PTN(INT): IW、QW、VW、MW、SMW、SW、LW、T、C、AC、AIW、*VD、*LD、*AC、常数 INDX(WORD): IW、QW、VW、MW、SMW、SW、T、C、LW、AC、*VD、*LD、*AC CMD(BYTE): 常数 先进先出 FIFO EN ENO TBL DATA FIFO TBL, DATA 从TBL指明的表中移出第一个数据,并将该数据输出到DATA,剩余数据依次上移一个位置。每次取出一个数据,实际填表数EC值自动减1。 后进先出 LIFO EN ENO TBL DATA LIFO TBL, DATA 从TBL指明的表中移出最后一个数据,并将该数据输出到DATA,剩余数据依次上移一个位置。每次取出一个数据,实际填表数EC值自动减1。 TBL(WORD): IW、QW、VW、MW、SMW、SW、T、C、LW、*VD、*LD、*AC DATA(INT): IW、QW、VW、MW、SMW、SW、T、C、LW、AC、AQW、*VD、*LD、*AC AD_T_TBL EN ENO DATA OUT TBL 查表 2. 查表指令
查表指令是从字型数据表中找出符合条件数据在表中的地址编号,编号范围为0-99。在
梯形图中4个数据输人端:TBL为表格首地址,用以指明被访问的表格;PTN是用来描述查表条件时进行比较的数据;CMD是比较运算的编码,它是一个1~4的数值,分别代表运算符=、<>、<、>;INDX用来指定表中符合查找条件的数据所在的位置。
表查找指令执行前,应先对INDX的内容清零。当使能输入有效时,从数据表的第0个数据开始查找符合条件的数据,若没有发现符合条件的数据,则INDX的值等于EC;若找到一个符合条件的数据,则将该数据在表中的地址装入INDX中;若找到一个符合条件的数据后,想继续向下查找,必须先对INDX加1,然后重新激活表查找指令,从表中符合条件
·107·
共分享92篇相关文档