西门子应用指令
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
// 将 角 度 转 化 为 3.数学函数变换指令对标志位的影响及操作数的寻址范围 弧度 (1)平方根/自然对数/指数/三角函数运算指令执行的结果影响特殊存储器 位:SM1.0(零),SM1.1(溢出),SM1.2(负),SM1.3(被0除)。 TAN AC0, AC1 (2)使能流输出ENO=0的错误条件是:SM1.1(溢出),SM4.3(运行时间), //求正切指令结果存放到 0006(间接寻址)。 AC1
四 程序控制类指令
包括系统控制、跳转、循环、子程序调用、顺序控制等指令。 .1 系统控制类指令 (1.) 暂停指令(STOP) 使能输入有效时,立即终止程序的执行, (2.) 结束指令(END/MEND)
结束指令直接连在左侧电源母线时,为无条件结束指令(MEND), 不连在左侧母线时,为条件结束指令(END)。 (3.) 看门狗复位指令(WDR) 使能输入有效时,将看门狗定时器复位。在没有看门狗错误的情况 下,可以增加一次扫描允许的时间。若使能输入无效,看门狗定时器 定时时间到,程序将中止当前指令的执行,重新启动,返回到第一条 指令重新执行。
3 移位指令
[例] 将VD0右移2位送AC0。 NETWORK
LD
1 //使能输入
I0.0
MOVD VD0, AC0 //VD0=AC0 SRD AC0, 2 //AC0右移2位 寄存器移位指令最大移位位数N≤数据类型(B、 W、D)对应的位数,移位位数(次数)N为字节 型数据。
[例5.18] 字或/双字异或/字求反/字节与操作编程举例。
NETWORK 1 LD I0.0 MOVW LW10, LW30 //LW 10=LW30 ORW LW20, LW30 //字或操作 NETWORK 2 LD I0.1 MOVD VD100, VD120 XORD VD200, VD120 //双字异或 操作 NETWORK 3 LD I0.2 MOVW AC0, AC1 INVW AC1 //字取反操作 NETWORK 4 LD I0.3 MOVB AC0, AC1 ANDB 255, AC1 //字节与操作
[例]暂停(STOP)、条件结束(END)、看门狗指令应用举
例。
例5.22题图
2 跳转、循环指令
(1.) 程序跳转指令(JMP) JMP n 跳转指令 LBL n 跳转标号 跳转指令(JMP)和跳转地址标号指令(LBL)配 合实现程序的跳转。使能输入有效时,使程序跳转 到指定标号n处执行(在同一程序内),跳转标号n =0~255。使能输入无效时,程序顺序执行。
2. 三角函数
SIN IN,OUT //SIN(IN)=OUT
COS IN,OUT // COS(IN)=OUT
TAN IN,OUT //TAN(IN)=OUT
[例] 求65o的正切值
LDN I0.0 //使能输 入 MOVR 3.14159, AC0 //π 装 入 AC0 /R 180.0, AC0 // 得 π /1800 弧度 *R 65.0, AC0
[例]整数(16位有符号整数)比较指令应用 计数器C0的当前值大于或等于1000时,输出 线圈Q0.0通电。
NETWORK 1 LDW>= C0, +1000 = Q0.0
二 算术、逻辑运算指令
1 算术运算指令 IN1+IN2=OUT
IN1—IN2=OUT
加减指令盒由指令类型,使能端EN,操作数(IN1、IN2)输入 端,运算结果输出OUT,逻辑结果输出端ENO等组成。
(NEXT)
工作原理: 使能输入(EN)有效,循环体开始执行,执行到NEXT指令时返回,每 执行一次循环体,当前计数器(INDX)增1,达到终值(FINAL)时,循环 结束。
(3.)子程序调用指令(SBR)
子程序可以多次被调用,也可以嵌套(最多8 层),还可以递归调用(自己调自己)。
[例] 求以10为底,150的常用对数,150存于VD100, 结果放到AC1(应用对数的换底公式求解)。 当求解以10为底的常用对数时,用实数除法指令将自 然对数除以2.302585即可。(LN10≈2.302585)
I0.1 //使能输入 VD100, AC1 //自然对数 //Ln(VD100)=AC1 LN 10.0, VD200 //自然对数 //Ln(10)=VD200 /R VD200, AC1 //实数除法指令 //AC1/VD200=VD200 LD LN
[例]将从VW100开始的256个字节(128个字)存储单元清零。
LD I0.0
NETWORK 1 //使能输入 FILL +0, VW100, 128 //128个字填充0
本条指令执行结果:从VW100开始的256个字 节(VW100~VW354)的存储单元清零。
3 移位指令
移位指令分为类左、右移位和循环左、右移位及寄存器移位指令三大 类。 左、右移位和循环左、右移位指令按移位数据的长度又分为字节型、 字型、双字型三种。
(2.) 循环控制指令(FOR)
循环控制指令,用于描述一段程序的重复循环执行。 由FOR和NEXT指令构成程序的循环体。 FOR标记循环开始,NEXT为循环体结束。 FOR指令为指令盒格式,主要参数有使能 使能输入EN,当前值计数器INDX,循环 次数初始值INIT,循环计数终值FINAL。
与(或、异或)指令功能:使能输入有效时,把两个字节(字、 双字)长的输入逻辑数按位相与(或、异或) ,得到的一个字节 (字、双字)逻辑运算结果,送到OUT指定的存储器单元输出。 取反指令功能:使能输入有效时,将一个字节(字、双字)长的 逻辑数按位取反,得到的一个字节(字、双字)逻辑运算结果,送到 OUT指定的存储器单元输出。
[例]将变量存储器VW100中内容送到VW200 中。
NETWORK 1 LD I0.0 //使能输入 MOVW VW100, VW200 //VW100=VW200
2 字节交换/填充指令
1、字节交换指令(SWAY IN) 使能输入(EN)有效时, 将输入字(IN)的高、低字 节交换的结果输出到(IN) 存储器单元。 2、字填充(FILL IN,OUT,N) 使能输入(EN)有效时, 字型输入数据(IN)填充从 输出(OUT)指定单元开始 的N个字存储单元。 N(BYTE)的数据范围0~255。
三 数据处理指令
数据处理指令包括数据传送指令,交换、填充指令,移位指令等。 1数据传送 (1.) 单个数据传送
LAD
STL
MOV IN,OUT
//IN= OUT
(2). 数据块传送
指令类型:字节、字或双字的N个数据成组传送。
功能:使能输入(EN)有效时,把从输入 (IN)字节开始的N个字节数据传送到以输 出字节(OUT)开始的N个字节、字或双字 中。
乘/除法指令的应用
NETWORK 1 LDN I0.0 //装入常 闭触点 *R AC1, VD100 //实数 乘法 /R VD10, VD200 //实数 除法 运行结果:
3 数学函数变换指令
1. 平方根/自然对数/指数指令 SQRT IN,OUT //求平方根指令 SQRT(IN)=OUT LN IN,OUT //求(IN)的自然对数指令 LN(IN)=OUT EXP IN,OUT //求(IN)的指数指令EXP(IN)=OUT 平方根(自然对数、指数)指令是把一个双字长(32位)的实数(IN) 开方(取自然对数、取以e为底的指数),得到32位的实数运算结果, 通过(OUT)指定的存储器单元输出。
(3)IN、OUT操作数的数据类型为REAL,寻址范围见附表1。
3 增1/减1计数
增1/减1计数器用于自增、自减操作,以实现累加计 数和循环控制等程序的编制。
字节、字、双字增1 OUT+1=OUT
字节、字、双字减1 OUT-1=OUT
.4 逻辑运算指令
逻辑运算是对无符号数进行的逻辑处理,主要包括逻 辑与、逻辑或、逻辑异或和取反等运算指令。
左、右移位指令(SHL 、SHR )的功能:使能输入有效时,将输入的 字节、字或双字(IN)左、右移N位后(右、左端补0),将结果输出 到OUT所指定的存储单元中,最后一次移出位保存在SM1.1。 循环左、右移位指令(ROL 、ROR )的功能:使能输入有效时,字节、 字或双字(IN)数据循环左移N位后,将结果输出到OUT所指定的存储 单元中,并将最后一次移出位送SM1.1。
比较比较运算符:==、<=、>=、<、>、<> 操作数类型:字节比较B(Byte);(无符号整数) 整数比较I(Int)/W(Word);(有符号整数) 双字比较D(Double Int/ Word);(有符号整数) 实数比较R(Real);(有符号双字浮点数)
2. 比较指令程序设计举例
4.寄存器移位指令
寄存器移位指令是一个移位长度可指定的移位指令。
SHRB I1.1, M1.0, +10
功能:指令执行时,DATA位的值移入移位寄存器。 S-BIT为寄存器的最低位,N为移位寄存器的长度(1~64)。每次 使能有效时,整个移位寄存器移动1位。 N为正值时,左移位(由低位到高位),DATA值从S-BIT位移入, 移出位进入SM1.1; N为负值时右移位(由高位到低位),S-BIT移出到SM1.1,高端补 充DATA移入位的值。 最高位的计算方法:(N 的绝对值-1+(S_BIT的位号))/8,余 数即是最高位的位号,商与S_BIT的字节号之和即是最高位的字节号。
加法运算应用举例
NETWORK 1 LD I0.0 //装入常开触 点 MOVW VW100, VW200 / / VW100 → VW200 +I +100, VW200 //VW200+100= VW200
2. 乘/除运算
乘法运算
除法运算
MUL I/DIV I为整数乘/除运算,MUL DI/DIV DI双整数乘/除运算, MUL/DIV整数乘/除的结果双整数输出,MUL R/DVI R实数乘/除运算 指令执行的结果:乘法 IN1*IN2=OUT 除法 IN1/IN2=OUT
CALL SBR0//子程序调用
CRET//条件返回
RET//无条件返回(自动)
பைடு நூலகம்
[例]循环、跳转及子程序调用指令应用程序。
NETWORK 1 LDW>= AC0, +100 JMP 10 //跳转 NETWORK 2 LD M0.0 FOR VW100, +1, +20 //循环开始 NETWORK 3 LD I0.0 CALL SBR_0 //调用子程序 NETWORK 4 NEXT //循环返回 NETWORK 5 LD I0.1 S Q0.0, 1 //位置1 NETWORK 6 LBL 10 //标号
西门子应用指令
一 比较指令
比较指令用于两个操作数按一定条件的比较。操作数可以是 整数,也可以是实数(浮点数)。在梯形图中用带参数和运算符 的触点表示比较指令,比较条件满足时,触点闭合,否则打开。 1. 指令格式 装载 LDB= IN1, IN2 串联 AB= IN1, IN2 并联 OB= IN1, IN2 操作数IN1和IN2为整数
[例]循环、跳转及子程序调用指令应用程序。
子程序 SUB0 NETWORK 1 LD SM0.0 INCW VW200 //VW200增1 NETWORK 2 LD I0.2 CRET //条件返回
4. 带参数的子程序调用指令